以下の内容はhttps://daisuke20240310.hatenablog.com/entry/parrotosより取得しました。


VirtualBoxにParrotOS(OVA)をインストールする

今回から、「ハッキング・ラボのつくりかた 完全版 仮想環境におけるハッカー体験学習」を参考書として、セキュリティについて学んでいきます。

今回は、ParrotOS というペネトレーションテスト(サイバー攻撃手法でシステムに侵入を試みることでセキュリティレベルを評価する取り組み)向けの OS の環境構築を行います。

同じく、ペネトレーションテスト向けの OS として、Kali Linux がありますが、今回の参考書では ParrotOS が使われています。理由は、Kali Linux は、UI が大きく変わる傾向があり、本に書かれてることが使えなくなる可能性が高いためと書かれていました。

それでは、やっていきます。

参考文献

はじめに

冒頭にも言った通り、今回は、ParrotOS のインストールと環境構築を行います。

ParrotOS(OVA)のインストール

ParrotOS をインストールする方法として、一般的なのは、ISO ファイルをダウンロードして、イチからインストールを行う方法だと思います。

しかし、今回は、OVA を選択しました。理由は、インストール作業が不要であることと、VirtualBox 向けに最適化している、と書かれていたためです。

この記事に、OVA でインストールした結果や、問題があった場合はその内容を書きますので、参考になればと思います。

ParrotOS(OVA)ダウンロード

ParrotOS の公式サイトです。

parrotsec.org

では、早速ダウウンロードします。

ParrotOSのダウンロードページ
ParrotOSのダウンロードページ

その後、Virtual → Security → AMD64 を選び、Download をクリックし、VirtualBox と出るので、クリックします。

ParrotOS(OVA)のダウンロード
ParrotOS(OVA)のダウンロード

ダウンロードしたファイルは、約7.6GB でした。

このキャプチャに、ユーザ:parrot、パスワード:parrot と書かれていますが、正しくは、ユーザ:user、パスワード:parrot です。

ParrotOS(OVA)のインポート

既に VirtualBox が入っていて、OVAファイルと関連付けがされていれば、ダウンロードしたファイル(Parrot-security-6.1_amd64.ova)をダブルクリックするとインポートできます。

もし、OVAファイルの関連付けがされてない場合は、VirtualBox のメニューのファイル→仮想アプライアンスのインポートで同じことが出来ます。

インポートすると、以下のような画面になります。

CPU と RAM は、おそらく、可能な限り大きく設定するようになっているようです。しかし、参考書を見ると、仮想マシンを複数起動して実験するようなので、それぞれ半分ずつ(CPU:8→4、RAM:8192→4096)に減らしました。

設定が決まれば完了をクリックします。

OVAファイルのインポート
OVAファイルのインポート

ソフトウェアの使用許諾の確認が出るので、問題なければ同意するをクリックします。

ライセンスの確認
ライセンスの確認

しばらくインポートに時間がかかります。完了すると、VirtualBox に Parrot OS Security Edition が追加されていると思います。

ParrotOSがインポートされた
ParrotOSがインポートされた

VirtualBox の設定や、Ubuntu の初期設定については、以下の記事に細かく書いています。良かったら参考にしてください。

daisuke20240310.hatenablog.com

daisuke20240310.hatenablog.com

起動する前に、ホスト(Windows10)からアクセスできるように、ネットワークにホストオンリーアダプタを追加しておきます。ネットワークと書かれたところをクリックします。

アダプター1 は NAT が設定されているので、アダプター2 をクリックして、ネットワークアダプターを有効化にチェックを入れて、ホストオンリーアダプタを選択して、OK をクリックします。

ホストオンリーアダプタの追加
ホストオンリーアダプタの追加

ParrotOSを起動して設定する

早速 ParrotOS を起動してみました。なかなかカッコいいデスクトップですね。

ParrotOSを起動した
ParrotOSを起動した

それでは設定していきます。

ParrotOSの基本的な設定を行う

ParrotOS に関する設定を行っていきます。

ターミナルのフォントサイズの変更

まず、ターミナルを起動します。フォントが大きいです。

Edit → Profile Preferences をクリックします。

ターミナルの設定を開く
ターミナルの設定を開く

Use the system fixed width font のチェックを外し、Font をクリックして、サイズを 9 に設定しました。

フォントサイズを設定する
フォントサイズを設定する

タイムゾーンの設定

続いて、タイムゾーンを設定します。

デスクトップの左上のメニューの System → Administration → Time and Date をクリックします。

タイムゾーンの設定を開く
タイムゾーンの設定を開く

まず、Unlock をクリックしてパスワード(parrot)を入力すると編集できるようになります。Time zone をクリックすると、世界地図が出るので、日本の東京あたりをクリックすると、Asia/Tokyo に設定してくれます。

設定できたら Lock を押して、Close をクリックします。

Asia/Tokyoを選ぶ
Asia/Tokyoを選ぶ

キーボードの設定

次に、キーボードの設定を行います。System → Preferences → Hardware → Keyboard をクリックします。

キーボードの設定を開く
キーボードの設定を開く

Layouts を開き、Add をクリックします。Country で、Japan を選びます。すると、Variants が Japanese になります。Add をクリックします。

日本語キーボードを選択します
日本語キーボードを選択します

Japanese が追加されたと思いますので、もともとあった English (US) は Remove をクリックして削除しておきます。その後、Close をクリックして閉じます。

Japaneseを有効にする
Japaneseを有効にする

BASHの設定

Ubuntu と違って、~/.bashrc が使われません(ファイル自体はホームディレクトリにあるのに)。

~/.profile は読み込まれるので、ここに ~/.bashrc が読まれるように設定しておきます。

~/.profile の末尾に、以下を追記します。

if [ -f "${HOME}/.bashrc" ]; then
  . "${HOME}/.bashrc"
fi

再度ログインし直せば、~/.bashrc が読み込まれるようになります。

ソフトウェアのインストールと設定を行う

続いて、ソフトウェアの設定を行います。

OpenSSHサーバ

ホスト(Windows10)から SSH で接続するために、OpenSSH server の設定を行います。既にインストール済みのようですが、開始していませんので、自動起動するようにして、開始します。

$ apt list --installed | grep -i openssh

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

openssh-client/parrot6,parrot6-security,now 1:9.2p1-2+deb12u2 amd64 [installed,automatic]
openssh-server/parrot6,parrot6-security,now 1:9.2p1-2+deb12u2 amd64 [installed,automatic]
openssh-sftp-server/parrot6,parrot6-security,now 1:9.2p1-2+deb12u2 amd64 [installed,automatic]

$ systemctl status ssh
○ ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; disabled; preset: enabled)
     Active: inactive (dead)
       Docs: man:sshd(8)
             man:sshd_config(5)

$ sudo systemctl enable ssh
Synchronizing state of ssh.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable ssh
Use of uninitialized value $service in hash element at /usr/sbin/update-rc.d line 26, <DATA> line 44.
insserv: warning: current start runlevel(s) (empty) of script `ssh' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (2 3 4 5) of script `ssh' overrides LSB defaults (empty).
insserv: Script `ssh' has overlapping Default-Start and Default-Stop runlevels (2 3 4 5) and (2 3 4 5). This should be fixed.
insserv: warning: current start runlevel(s) (empty) of script `ssh' overrides LSB defaults (2 3 4 5).
Use of uninitialized value $service in hash element at /usr/sbin/update-rc.d line 26, <DATA> line 44.
Created symlink /etc/systemd/system/sshd.service → /lib/systemd/system/ssh.service.
Created symlink /etc/systemd/system/multi-user.target.wants/ssh.service → /lib/systemd/system/ssh.service.

$ sudo systemctl start ssh

これで、Windows10 から SSH で接続できるようになりました。

sambaサーバ

samba は、中途半端な感じでインストールされてる感じでした。stack overflow にも出てましたが、一度削除してインストールすればいいようです。

$sudo apt install samba
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 samba : Depends: python3-samba (= 2:4.17.12+dfsg-0+deb12u1) but it is not going to be installed
         Depends: samba-common (= 2:4.17.12+dfsg-0+deb12u1) but 2:4.20.2+dfsg-6~bpo12+1 is to be installed
         Depends: samba-common-bin (= 2:4.17.12+dfsg-0+deb12u1) but it is not going to be installed
         Depends: samba-libs (= 2:4.17.12+dfsg-0+deb12u1) but 2:4.20.2+dfsg-6~bpo12+1 is to be installed
         Recommends: attr but it is not going to be installed
         Recommends: python3-markdown but it is not going to be installed
         Recommends: samba-vfs-modules but it is not going to be installed
         Recommends: samba-ad-provision but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

$ sudo apt remove samba-common samba-common-bin samba-libs python3-samba

$ sudo apt install samba
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libldb2 : Breaks: samba-libs (< 2:4.19.0~) but 2:4.17.12+dfsg-0+deb12u1 is to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

$ sudo apt remove libldb2

$ sudo apt install samba

なんとかインストールできたようです。設定して動かしてみます。

$ sudo pdbedit -a user
new password:
retype new password:
Unix username:        user
NT username:
Account Flags:        [U          ]
User SID:             S-1-5-21-1148203777-202800493-3546339059-1000
Primary Group SID:    S-1-5-21-1148203777-202800493-3546339059-513
Full Name:
Home Directory:       \\PARROT\user
HomeDir Drive:
Logon Script:
Profile Path:         \\PARROT\user\profile
Domain:               PARROT
Account desc:
Workstations:
Munged dial:
Logon time:           0
Logoff time:          Thu, 07 Feb 2036 00:06:39 JST
Kickoff time:         Thu, 07 Feb 2036 00:06:39 JST
Password last set:    Tue, 23 Jul 2024 22:51:39 JST
Password can change:  Tue, 23 Jul 2024 22:51:39 JST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

$ sudo nano /etc/samba/smb.conf

$ sudo systemctl enable smbd.service
Synchronizing state of smbd.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable smbd
Use of uninitialized value $service in hash element at /usr/sbin/update-rc.d line 26, <DATA> line 44.
insserv: warning: current start runlevel(s) (empty) of script `smbd' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `smbd' overrides LSB defaults (0 1 6).
Use of uninitialized value $service in hash element at /usr/sbin/update-rc.d line 26, <DATA> line 44.
Created symlink /etc/systemd/system/multi-user.target.wants/smbd.service → /lib/systemd/system/smbd.service.

$ sudo systemctl start smbd.service

設定して、samba を自動起動するようにして、起動すると、アクセスできました。

nanoエディタのキーバインド変更

使っていて気付いたのですが、nanoエディタのキーバインド(ショートカットキー)が、Ubuntu とは異なります。参考書によると、ParrotOS 独自の設定とのことです。これは最悪でした。

nanoエディタの設定ファイルは、/etc/nanorc にあります。また、/usr/share/nano に、いろいろ設定ファイルがあるようです。

Ubuntu の /etc/nanorc は、/usr/share/nano を参照しているのですが、ParrotOS の /etc/nanorc は、/usr/share/nano を参照していませんでした。

見比べるのも面倒なので、Ubuntu の /etc/nanorc で上書きしました。すると、Ubuntu で使ってるときと同じ感じになりました。これで、だいぶ楽になりました。

netcat

なぜか、netcat(ncコマンド)が入っていませんでした。

netcat は、いくつか種類があるようで、とりえあず、ネットでオススメしていた netcat-openbsd を入れておこうと思います。

$ sudo apt install netcat-openbsd
update-alternatives: using /bin/nc.openbsd to provide /bin/nc (nc) in auto mode

ncコマンドとして使えるようです。

ここまでで、とりあえず使えるようになりました。また、必要に応じて追記します。

ParrotOS(OVA)Version7.1インストール

ノートパソコンを買い替えてから、しばらくは、WSL だけを使っていました。

ParrotOS は、WSL にも存在するので、それを使ってみてもよかったのですが、カーネルの機能追加が大変そうだったのと、セキュリティのいろいろな GUIアプリを使うので、VirtualBox(Version 7.2.6)を使うことにしました。

前回は、ParrotOS(OVA)Version 6.1 でしたが、今は、Version 7.1 になっていました。以前の OVA版が調子よかったので、今回も OVA版にしてみました。

ParrotOS(OVA)のダウンロードとインポート

ダウンロードしたファイルは、Parrot-security-7.1_amd64.ova です。

ダブルクリックすると、VirtualBox にインポートされました。

ParrotOSがインポートされた
ParrotOSがインポートされた

ParrotOS(OVA)の起動後の設定

早速、起動してみます。

起動時に、3つのエラーが出ていました。見ているうちに、起動中となり、ParrotOS が起動しました。

起動時の3つのエラー
起動時の3つのエラー

画面サイズが合っていませんでした(自動リサイズが働いていない)が、とりあえず、アップデートが表示されたので、アップデートすることにしました。

アップデートは無事に終わったので、再起動しました。

まず、タイムゾーンも合っていないので、メニューから、System → System Settings を選んで、Region & Language で、Language を日本語にしました。すると、タイムゾーンや、その他も設定されました。

Guest Additionsのインストール

自動リサイズを何とかしたいので、VirtualBox のデバイスメニューから、Guest Additions CDイメージを挿入を押すと、「イメージをマウントできません」と出ました。

いったん、シャットダウンして、VirtualBox の管理画面で、ネットワークにホストオンリーアダプタを追加、ストレージに光学ドライブを選択すると Guest Additions があったので、それを追加して、再度 ParrotOS を起動します。Guest Additions CDイメージを挿入を押すと、今度はエラーは出ませんでしたが、何も起きませんでした。

/media の下にも何もありません。そこで、GUI のファイルマネージャ的なもの(Dolphin というらしい)を起動すると、リムーバブルデバイスとして、Guest Additions があったので、そちらをクリックすると、マウントされたようで、ターミナルから /media を確認してみると、Guest Additions がマウントされていました。

インストールします。

$ sudo apt install build-essential bzip2 perl

$ sudo /media/user/VBox_GAs_7.2.6/VBoxLinuxAdditions.run

$ sudo reboot

再起動後、画面のリサイズができるかをやってみましたが、うーん、リサイズされるときもありますが、最大化するとダメですね。。

これは、ちょっと ParrotOS 7.1 は早すぎたのかもしれません。諦めます。。

おわりに

今回は、ParrotOS という Debian ベースのセキュリティ用の OS をインストールしました。

次回から、ハッキング・ラボのつくりかた 完全版 仮想環境におけるハッカー体験学習 を読みながら、セキュリティの理解を進めていきたいと思います。

最後になりましたが、エンジニアグループのランキングに参加中です。

気楽にポチッとよろしくお願いいたします🙇

今回は以上です!

最後までお読みいただき、ありがとうございました。




以上の内容はhttps://daisuke20240310.hatenablog.com/entry/parrotosより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14