見出し画像

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日間でハッキングをはじめる本」をやってみることも考えています。

学んだ、というまで理解していませんが、ハッキングのお作法のとっかかりとしては十分でした。書籍がとても丁寧だったので、ここまで出来ました。
楽しかったです。


いいなと思ったら応援しよう!