
vsftpd 2.3.4 バックドア (CVE-2011-2523) 向けの依存関係なし対話式Pythonエクスプロイト。
vsftpd 2.3.4 バックドア 向けの、依存関係のない小さな Python 3 エクスプロイトです。 (CVE-2011-2523)。FTP 経由でバックドアをトリガーし、生成されたリスナー上で 対話型の root シェルを起動します。
Python 3.13 で標準ライブラリから削除された telnetlib に依存していた古い
エクスプロイトスクリプトの、現代的な置き換えとして作成されました。このバージョンは
標準ライブラリのみを使用し、固定スリープの代わりに select でシェルを読み取るため、
出力が切り詰められません。
⚠️ 許可された用途のみ。 これは既知の脆弱性があるサービスを対象としており、 セキュリティ教育や Metasploitable 2 などのラボ環境を意図しています。 所有しているシステム、または明示的な書面によるテスト許可を得たシステムに対してのみ実行してください。
vsftpd 2.3.4 には悪意のあるバックドアが同梱されていました。FTP ユーザー名に
:) という文字列が含まれていると、デーモンが TCP/6200 に root シェルをバインドします。このスクリプトは次のことを行います:
vsftpd 2.3.4 かどうかを確認します。USER <name>:) / PASS <anything> を送信してバックドアを起動します。id; uname -a で権限を確認します。python3 vsftpd_backdoor.py <target-ip> [-p FTP_PORT] [-s SHELL_PORT] [--skip-verify]
例:
# Default: FTP on 21, backdoor shell on 6200, verify banner first
python3 vsftpd_backdoor.py 192.168.243.114
# Non-standard FTP port, skip the banner check
python3 vsftpd_backdoor.py 192.168.243.114 -p 2121 --skip-verify
vsftpd# プロンプトでコマンドを入力します。終了するには exit(または Ctrl-C)を入力します。
このバックドアはトリガーごとに 1 回だけ動作します。6200 への最初の接続に シェルが渡され、そのシェルが開いている間はポートを保持します。 2 回目の接続を受け付けることは一切ありません。
実際の影響:
nc、Metasploit を
同じターゲットに対して同時に実行しないでください。単一のシェルスロットを奪い合い、
「not a fresh shell」というメッセージや接続拒否など、紛らわしいエラーが発生します。exit で終了すると、リモートプロセスが終了して
6200 が解放されます。クライアントを正しく終了しないと、プロセスが孤立して
ポートが開いたままになる可能性があります。6200 がすでにバインドされている場合(ポートは開いているがシェルが使えない場合)、ターゲットをリセットします:
# On the target console
sudo netstat -tlnp | grep 6200
sudo kill -9 <pid>
または、単純に VM を再起動すれば、確実にクリーンで未トリガーのバックドア状態になります。
MIT ライセンスの下で配布されています。詳細は LICENSE を参照してください。