土日の勉強ノート
AI、機械学習、最適化、Pythonなどについて、技術調査、技術書の理解した内容、ソフトウェア/ツール作成について書いていきます
トップ > セキュリティ > VirtualBoxにParrotOS(OVA)をインストールするVirtualBoxにParrotOS(OVA)をインストールする
今回は、ParrotOS というペネトレーションテスト(サイバー攻撃手法でシステムに侵入を試みることでセキュリティレベルを評価する取り組み)向けの OS の環境構築を行います。
同じく、ペネトレーションテスト向けの OS として、Kali Linux がありますが、今回の参考書では ParrotOS が使われています。理由は、Kali Linux は、UI が大きく変わる傾向があり、本に書かれてることが使えなくなる可能性が高いためと書かれていました。
- 参考文献
- はじめに
- ParrotOS(OVA)のインストール
- ParrotOS(OVA)ダウンロード
- ParrotOS(OVA)のインポート
- ParrotOSの基本的な設定を行う
- ターミナルのフォントサイズの変更
- タイムゾーンの設定
- キーボードの設定
- BASHの設定
- OpenSSHサーバ
- sambaサーバ
- nanoエディタのキーバインド変更
- netcat
- ParrotOS(OVA)のダウンロードとインポート
- ParrotOS(OVA)の起動後の設定
- Guest Additionsのインストール
ParrotOS をインストールする方法として、一般的なのは、ISO ファイルをダウンロードして、イチからインストールを行う方法だと思います。
しかし、今回は、OVA を選択しました。理由は、インストール作業が不要であることと、VirtualBox 向けに最適化している、と書かれていたためです。
ParrotOS(OVA)ダウンロードその後、Virtual → Security → AMD64 を選び、Download をクリックし、VirtualBox と出るので、クリックします。
このキャプチャに、ユーザ:parrot、パスワード:parrot と書かれていますが、正しくは、ユーザ:user、パスワード:parrot です。
ParrotOS(OVA)のインポート既に VirtualBox が入っていて、OVAファイルと関連付けがされていれば、ダウンロードしたファイル(Parrot-security-6.1_amd64.ova)をダブルクリックするとインポートできます。
CPU と RAM は、おそらく、可能な限り大きく設定するようになっているようです。しかし、参考書を見ると、仮想マシンを複数起動して実験するようなので、それぞれ半分ずつ(CPU:8→4、RAM:8192→4096)に減らしました。
しばらくインポートに時間がかかります。完了すると、VirtualBox に Parrot OS Security Edition が追加されていると思います。
VirtualBox の設定や、Ubuntu の初期設定については、以下の記事に細かく書いています。良かったら参考にしてください。
アダプター1 は NAT が設定されているので、アダプター2 をクリックして、ネットワークアダプターを有効化にチェックを入れて、ホストオンリーアダプタを選択して、OK をクリックします。
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 が読まれるように設定しておきます。
if [ -f "$ /.bashrc" ]; then . "$ /.bashrc" fi ソフトウェアのインストールと設定を行う 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 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 で使ってるときと同じ感じになりました。これで、だいぶ楽になりました。
netcatnetcat は、いくつか種類があるようで、とりえあず、ネットでオススメしていた netcat-openbsd を入れておこうと思います。
$ sudo apt install netcat-openbsd update-alternatives: using /bin/nc.openbsd to provide /bin/nc (nc) in auto mode ParrotOS(OVA)Version7.1インストールParrotOS は、WSL にも存在するので、それを使ってみてもよかったのですが、カーネルの機能追加が大変そうだったのと、セキュリティのいろいろな GUIアプリを使うので、VirtualBox(Version 7.2.6)を使うことにしました。
前回は、ParrotOS(OVA)Version 6.1 でしたが、今は、Version 7.1 になっていました。以前の OVA版が調子よかったので、今回も OVA版にしてみました。
ParrotOS(OVA)のダウンロードとインポート ParrotOS(OVA)の起動後の設定まず、タイムゾーンも合っていないので、メニューから、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 をインストールしました。
今回は、Windows10 がインストールされた PC に対して、WSL(Wi… 前回 は、Ubuntu 24.04 のインストールについて書きました。今… 今回は、Ubuntu 24.04 のインストールについて書いていきます。… 社内の Gitサーバや、社内の Linuxサーバ、GitHub に SSH で接… これまでは、「ハッキング・ラボのつくりかた 完全版 仮想環境…- AI (19)
- AI-gemmlowp (1)
- AI-Optuna (5)
- AI-ゼロから作るDeepLearning (2)
- AI-量子化 (8)
- Java (18)
- Java-デザインパターン (10)
- Linux (42)
- Linux-QEMU (17)
- Linux-Raspberry Pi (4)
- Linux-Renode (6)
- Linux-カーネル (1)
- LLM (1)
- Python (14)
- Python-Google Colaboratory (5)
- Python-matplotlib (3)
- ROS2 (3)
- その他 (5)
- セキュリティ (71)
- セキュリティ-CodeQL (9)
- セキュリティ-CTF (36)
- セキュリティ-Ghidra (2)
- セキュリティ-Linux (7)
- セキュリティ-Webアプリケーション (5)
- セキュリティ-セキュアコーディング (1)
- セキュリティ-ネットワーク (2)
- セキュリティ-ハッキングラボのつくりかた (1)
- セキュリティ-徳丸本 (8)
- ブログカスタマイズ (14)
- ブログカスタマイズ-HTML・CSS (10)
- ブログカスタマイズ-JavaScript (1)
- ブログカスタマイズ-Minimalism (7)
- ブログカスタマイズ-はてなブログ (5)
- ブログ作成 (6)
- 便利ツール (21)
- 開発環境 (41)