今回から、「ハッキング・ラボのつくりかた 完全版 仮想環境におけるハッカー体験学習」を参考書として、セキュリティについて学んでいきます。
今回は、ParrotOS というペネトレーションテスト(サイバー攻撃手法でシステムに侵入を試みることでセキュリティレベルを評価する取り組み)向けの OS の環境構築を行います。
同じく、ペネトレーションテスト向けの OS として、Kali Linux がありますが、今回の参考書では ParrotOS が使われています。理由は、Kali Linux は、UI が大きく変わる傾向があり、本に書かれてることが使えなくなる可能性が高いためと書かれていました。
それでは、やっていきます。
参考文献
はじめに
冒頭にも言った通り、今回は、ParrotOS のインストールと環境構築を行います。
ParrotOS(OVA)のインストール
ParrotOS をインストールする方法として、一般的なのは、ISO ファイルをダウンロードして、イチからインストールを行う方法だと思います。
しかし、今回は、OVA を選択しました。理由は、インストール作業が不要であることと、VirtualBox 向けに最適化している、と書かれていたためです。
この記事に、OVA でインストールした結果や、問題があった場合はその内容を書きますので、参考になればと思います。
ParrotOS(OVA)ダウンロード
ParrotOS の公式サイトです。
では、早速ダウウンロードします。

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

ダウンロードしたファイルは、約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)に減らしました。
設定が決まれば完了をクリックします。

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

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

VirtualBox の設定や、Ubuntu の初期設定については、以下の記事に細かく書いています。良かったら参考にしてください。
daisuke20240310.hatenablog.com
daisuke20240310.hatenablog.com
起動する前に、ホスト(Windows10)からアクセスできるように、ネットワークにホストオンリーアダプタを追加しておきます。ネットワークと書かれたところをクリックします。
アダプター1 は NAT が設定されているので、アダプター2 をクリックして、ネットワークアダプターを有効化にチェックを入れて、ホストオンリーアダプタを選択して、OK をクリックします。

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 をクリックします。

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

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

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

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(OVA)の起動後の設定
早速、起動してみます。
起動時に、3つのエラーが出ていました。見ているうちに、起動中となり、ParrotOS が起動しました。

画面サイズが合っていませんでした(自動リサイズが働いていない)が、とりあえず、アップデートが表示されたので、アップデートすることにしました。
アップデートは無事に終わったので、再起動しました。
まず、タイムゾーンも合っていないので、メニューから、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 をインストールしました。
次回から、ハッキング・ラボのつくりかた 完全版 仮想環境におけるハッカー体験学習 を読みながら、セキュリティの理解を進めていきたいと思います。
最後になりましたが、エンジニアグループのランキングに参加中です。
気楽にポチッとよろしくお願いいたします🙇
今回は以上です!
最後までお読みいただき、ありがとうございました。