M1 Macでどこまでできるか、初心者が挑戦「ハッキング・ラボのつくりかた 完全版」
「7日間でハッキングをはじめる本」が楽しかったので、セキュリティについてもう一歩進みたくなりました。
それは、同じ翔泳社さんから出版されている、「ハッキング・ラボのつくりかた 完全版」です。
Macでやるので、出来るもの出来ないものがありましたが、挑戦してみました。ほぼ実習が出来たものは以下の目次に⚪︎をつけました。いくらか出来たものは△としました。目次の通り、私の環境かつ私の実力では、16セクション中、8.5セクション出来ました。つまづいたところなどの記録を残しておきます。
ParrotOSのインストールと日本語環境の整備
すでにUTMはインストール済みだったので、ParrotOSをインストールしてみます。著者のIPUSIRONさんのページを参考にします。
日本語環境を整備するためには、この辺りをやってみました。
両方を拝見して、下段の情報で無事日本語化が終了しました。
最初は、ParrotOS上の設定でやっていましたが、keyboardの設定が上手くいかず、
下段の情報を参考にさせていただいてやり直したら、無事完了しました。
情報ありがとうございました。
Experiment #01 Potato
飛ばし読みしながら、少し手を動かそうと思いました。
仮想マシンを2台用意する方法がわからないので、以下を参考にやってみました。無事、pingも通りました。
続いて、P326のNetcatですが、本とは違い、私の環境ではインストールされていませんでした。
仕方がないので、仮想マシン2台とも一度終了し、環境をホストのみ→共有ネットワークに戻して、インターネットに接続可能な状態に、netcatを2台ともインストールしました。インストールしたら、再びホストのみに戻したところ、netcatで相互通信ができました。
netcatのインストール方法は以下を参照させていただきました。
P339のNetcatによるバインドシェルは、-eコマンドが使えませんでした。
ChatGPTで調べて、以下で代替しました。
mkfifo /tmp/fifo; cat /tmp/fifo | /bin/bash -i 2>&1 | nc -nlvp 5555 > /tmp/fifo
そして今度は、potato.ovaが開けない。
以下を参考にファイルを変換しました。無事、potatoを開くところまでは実行できました。この後は接続です。
IPUSIRONさんの投稿も見ながら、再度potatoを作り直したが、やはりpotatoのIPアドレスを特定できません。どこの設定を直せばいいのか。ChatGPTでも解決できず。
X(Twitter)に状況を投稿したところ、IPUSIRONさん自らコメントくださり、
上記の記事にある、Breakoutで接続できるか試してみることにしました。
Breakoutの環境を作ったところ、IPアドレスも取得してくれ、ParrotOSと通信できました。よかった。
ということで、環境設定自体はできており、VulnHubの中で、IPアドレスを取得できるものとできないものがあるのではないか、というアドバイスをIPUSIRONさんからいただきました。
Potatoはスキップして、この後に進みます。
とりあえず、前進しました。
Experiment #02 DC-1 ⚪︎
Potatoは一旦スキップして、次の環境構築ができるか進んでみました。
DC-1はVulnHubではovaファイルなので、qcow2ファイルへ変換します。
qcow2ファイルに変換後、IPUSIRONさんのブログにある
Breakoutと同じ方法で環境構築したところ、無事ParrotOSと通信できました。環境構築できることは確かめたので、Potatoから本を通し読みして、理解だけはしておきます。第1部から読み直したので、数日かかってしまいました。
そして、改めてExperiment#2に復帰しました。
Potatoでnetcatをやった状態をもう一度作り、Metasploitの起動からセッション確立までを行います。とりあえずMetasploitの起動し、P400までは到達しました。
ここからが再度、行き詰まった一週間でした。
P406から、Meterpreterのコマンドがないのです。pwd, ls , cd ,shellこの辺りが実行できません。エラーに従って、load stdapiを実行しても、これもエラーとなり、拡張ができない様子です。
ChatGPTに聞いてみたら、Metasploitを一度removeして再度インストールし直してみたら、今度はmsfconsoleから動かなくなり、環境が壊れてしまいました。
それで、もう一回ParrotOSのダウンロードから、環境構築をもう一回やり直すことになりました。それで、気を取り直し、環境構築し直して、再トライするもやはり、コマンドが使えず。shell使えないと、この後の大半の演習できないぞ、多分。いろいろ検索しても、今は打開策が見つかりません。
と、Xに投稿したところ、@__kokumotoさんからアドバイスをいただきました。
どうやら、ParrotOSの最新版でも、同様のバグがありそうです。
元々はParrotOS公式から、最新のバージョンである「Parrot-security-6.2_arm64.utm」を使っていましたが、ミラーサイトに行って、古いバージョンを導入することにしました。
ここで「Parrot-security-6.1_arm64.utm」をダウンロードし、アップデート確認も無視して設定したところ、meterpreterのshellも無事に動作しました。これでDC-1は無事完了しました。Potatoは出来ませんでしたが、DC-1で初めて、Experimentを完遂しました。
なお、P418のdroopescanのインストールはエラーが出て、出来ませんでしたが、大勢には影響なさそうなので、スキップしました。
Experiment #03 DC-2 ⚪︎
いつもの手順でDC-2の起動までスムーズに進みました。
実習もテキストに従えば、問題なく終了しました。
Experiment #04 Napping
座学のところでは、netcat関連のパッケージとして、以下を実行し、インストールしてやります。
sudo apt install netcat-traditional
実習は、nappingを起動しましたが、login画面がpotato同様に表示されませんでした。IPアドレスもつかめませんでした。これもpotato同様です。
login画面が表示されないのは、IPアドレスもつかめず、実習が出来ないようですね。読んで、内容だけ追いました。歯応えがある実習と見受けられたので、残念です。次に進みます。
Experiment #05 Victim
これも#04に続き、ParrotOSからIPアドレスが取得できませんでした。
P559のVictimのログイン画面でIPアドレスが127.0.0.1の表示なので、ネットワークアダプタが機能していないのでしょうか。
今のところ、2019年に作成されたDC-1とDC-2は出来ますが、2020年に作成されたPotato、Napping、Victimは出来ません。この後、どうでしょうか。
とりあえず本を読み進めます。
Experiment #06 Pwnlab
Pwnlabは問題なくParrotOSと接続はできました。しかし、ParrotOSのバージョンが最新でないせいか、Burpが起動しませんでした。Javaのバージョンが古いようなエラーが表示されていました。ということで、実習はできなかったので、本の内容を読んで理解しました。
と書いたところで、Burpがダメなだけなので、ParrotOSの最新も仮想環境に入れて、試してみました。それでも同じエラーでBurpが起動しません。
以下の参考リンクを使って対処できないかやってみましたが、参考リンクとBurpの起動シェルの内容が違い、残念ながらできませんでした。
Experiment #07 EvilBox
EvilBoxの作成日は2021年です。ひょっとしてまたParrotOSと接続できないかな、と思いつつ調べてみたら、やはり接続できず。これも本を読むだけになりました。
このあと、残りを見てみたら、作成日が2019年以前のものは8-12がありました。少なくともあと5つは実習ができそうです。
Experiment #08 Raven ⚪︎
Ravenの攻略はスムーズに進みました。wpscanがインストールされていなかったので、途中インストールして進めました。
sudo gem install wpscan
Experiment #09 vulnOSv2 ⚪︎
この実習を始める前に、Linpeas.shをダウンロードしていない時は、ParrotOSを共有ネットワークにして、EvilBoxのページを見ながらホームディレクトリにダウンロードして置いてください。
やられマシンをダウンロードしたところ、今回はovaファイルはありません。その代わり、VulnOSv2.vdiファイルがあり、これをそのままやられマシンとしてUTMでqcow2ファイルと同様に開けば、この実習は可能です。
ボリュームが多いですが、無事にできました。
Experiment #10 NullByte ⚪︎
vulnhubからダウンロードしたファイルには、ovaファイルではなく、vmdk形式のファイルがあったので、これをqcow2に変換して使用しました。もんだなくNullByteは起動しました。
exiftoolがなかったので、以下のコードでインストールしました。
sudo apt install libimage-exiftool-perl
この実習も問題なく終わりました。SQLインジェクションを試せたことが勉強になりました。
Experiment #11 Mr-Robot ⚪︎
いくつかつまづきながらですが、無事終わりました。
つまづいたところをメモしておきます。
P799
EyeWitnessのインストールがうまく出来ず、ここはスキップしました。
P808
Burpが起動しないため、17の手順をスキップしました。そのせいか18の手順も実行できませんでした。18はコマンドが長いので、タイポがあったかもしれません。
P821
Exploitしたところ、記載のエラーの前に、USERNAMEとPASSWORDをセットするようにエラーが出ました。P807のユーザーネームとパスワードをセットしたところ、Exploit出来ました。
Experiment #12 Toppo ⚪︎
この実習もさくさくでした。このあと、13-15は2021年以降作成のものなので、実習ができるかどうか。
Experiment #13 Jangow
jangowのファイルは2021年の作成のためか、ParrotOSから接続できませんでした。本を読むのみとなりました。
Experiment #14 Deathnote
Deathnoteも2021年作成で、接続できませんでした。本を読んで終了です。ただ、通し読みも楽しいです。
Experiment #15 Empire: LupinOne ⚪︎
このやられマシンも2021年作成なので、接続できないかなと諦めつつ接続を試みたところ、このやられマシンは接続できました。物によるということでしょうか。ともかく無事終了しました。あと残るは長い長いExperiment #16です。
Experiment #16 Metasploitable3 △
ovaファイルをダウンロードし、qcow2に変換して、UTMでやられマシンを構築しました。
ub1404マシンとは通信できました。win2k8は出来ないのでしょうね。念のため、ブラウザでub1404のIPアドレス近辺を直接入力してみましたが、接続できませんでした。なので、これ以降は、UTMのParrotOSを使って、ub1404の攻撃が出来るかやってみます。
環境の違いでしょうか、問題を解消できず、出来ないところがありました。
P1004:ABを使ったコマンドができず、リバースシェルを確立できませんでした。
P1008:docker runができず、root奪取ができませんでした。
P1005:ペイロードの変更内容がわからず、これもroot奪取ができませんでした。
P1020:問題はなさそうですが、ペイロードファイルが元々自動削除となっていました。
P1025:ftpがインストールされていなかったので、以下でインストールしました。インストールしましたが、ftpで入った後、dirでファイルなどが表示されませんでした。
sudo apt install ftp
P1047:ポートスキャンで3500は開いていますが、ブラウザからはアクセスできませんでした。その後も3500にはアクセスできず、これ以上はできませんでした。
これで、全体を終わりました。
目次の通り、私の環境かつ私の実力では、16セクション中、8.5セクション出来たイメージでした。
検索してもMacでやるための情報は限られていましたが、IPUSIRONさんのブログやX、そしてChatGPTに助けがあって、書籍の約半分は出来たので満足しています。
これからは、時間を置いて、ParrotOSの環境が良くなったり、参考情報が増えたところで、出来なかったセクションも含めて再度トライし、そして練習問題もやってみる予定です。
あとParrotOSが使いやすいので、これで「7日間でハッキングをはじめる本」をやってみることも考えています。
学んだ、というまで理解していませんが、ハッキングのお作法のとっかかりとしては十分でした。書籍がとても丁寧だったので、ここまで出来ました。
楽しかったです。