PythonとNmap NSEを使用してvsFTPd 2.3.4のCVE-2011-2523を検証する、認可されたKali–Metasploitable2ラボ。
⚠️ 認可されたラボ専用 — Kali Linux と Metasploitable2 を使用し、隔離された VirtualBox Host-Only ネットワーク内で実施しました。いかなる時点でも、未認可のシステムへのスキャンやアクセスは行っていません。
CVE-2011-2523 は、オープンソース史上最もよく知られたサプライチェーン侵害の一つです。2011年、vsFTPd 2.3.4 の公式ソースコードがプロジェクトのダウンロードサーバー上でバックドアを仕込まれました。攻撃者がバイナリを改変し、:) を含むユーザー名を入力すると TCP ポート 6200 でバックドアシェルが起動し、任意のリモート攻撃者に root アクセスを付与するようになりました。
本ラボでは、体系的な脆弱性評価手法を用いて CVE-2011-2523 を検証します:
ftp-vsftpd-backdoor を用いた NSE バックドア検証これは実際の脆弱性評価作業です — 認可されたセキュリティ評価を実施するペネトレーションテスターや SOC アナリストが用いるのと同じ手法です。
| コンポーネント | 詳細 |
|---|---|
| 攻撃マシン | Kali Linux |
| ターゲットマシン | Metasploitable2(意図的に脆弱) |
| ハイパーバイザー | Oracle VirtualBox |
| ネットワーク | Host-Only アダプター — 隔離、インターネットアクセスなし |
| ツール | Python 3、Nmap、NSE、python-nmap ライブラリ |
| ターゲット IP | 192.168.56.103 |
| 項目 | 詳細 |
|---|---|
| CVE ID | CVE-2011-2523 |
| 影響を受けるソフトウェア | vsFTPd 2.3.4 |
| CVSS スコア | 10.0 — Critical |
| 脆弱性の種類 | バックドア / サプライチェーン侵害 |
| 攻撃ベクトル | ネットワーク — 認証不要 |
| 影響 | リモート root シェルアクセス(uid=0) |
| 発見 | 2011年7月 |
| MITRE ATT&CK | T1195.002(Compromise Software Supply Chain) |
バックドアの仕組み:
クライアントが vsFTPd 2.3.4 に接続し、:)(スマイリーフェイス)の文字を含むユーザー名を送信すると、バックドアコードが起動します — TCP ポート 6200 でリスナーシェルを開きます。ポート 6200 に接続すると、それ以上の認証なしで対話型の root シェルが得られます。
Step 1: Confirm target IP on Host-Only network
└── ifconfig / ip addr on Metasploitable2
Step 2: Verify connectivity
└── ping 192.168.56.103 from Kali
Step 3: Service & version detection
└── nmap -sV -p 21 192.168.56.103
└── Confirm: vsftpd 2.3.4
Step 4: Python-automated NSE scan
└── python3 pythonnmap.py --host 192.168.56.103 --ports 21
└── NSE scripts executed:
ftp-anon
ftp-bounce
ftp-libopie
ftp-proftpd-backdoor
ftp-vsftpd-backdoor ← CVE-2011-2523 validation
Step 5: Document findings & remediation
sudo nmap -sV -p 21 192.168.56.103
出力:
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.3.4
sudo python3 pythonnmap.py --host 192.168.56.103 --ports 21
sudo nmap --script ftp-vsftpd-backdoor -p 21 192.168.56.103
| サービス | ポート | 検出内容 | 根拠 |
|---|---|---|---|
| FTP | TCP 21 | vsFTPd 2.3.4 を特定 — バックドアが仕込まれた既知のバージョン | Nmap サービス/バージョンスキャン |
| FTP | TCP 21 | 匿名 FTP ログインが許可されている | ftp-anon NSE 出力 |
| FTP | TCP 21 | ターゲットが CVE-2011-2523 に対して脆弱であることを確認 | ftp-vsftpd-backdoor NSE 出力 |
| CVE-2011-2523 | TCP 6200 | バックドアシェルが uid=0(root) gid=0(root) を返した | NSE 検証出力 |



実際の本番環境では、修復には以下が含まれます:
| 対応 | 優先度 |
|---|---|
| vsFTPd 2.3.4 を直ちに削除し、パッチ適用済みのバージョンに置き換える | 🔴 重大 |
| インストール前に、公式ベンダーのハッシュと照合して SHA-256 チェックサムでソフトウェアの完全性を検証する | 🔴 重大 |
| 明示的に必要とされない限り、匿名 FTP アクセスを無効化する | 🟠 高 |
| ファイアウォールルールとネットワークセグメンテーションを使用して FTP サービスの公開を制限する | 🟠 高 |
:) を含む不審なユーザー名がないか FTP 認証ログを監視する | 🟡 中 |
| FTP を完全に SFTP(SSH File Transfer Protocol)に置き換えることを検討する | 🟡 中 |
| コントロール | フレームワーク | 関連性 |
|---|---|---|
| T1195.002 | MITRE ATT&CK | ソフトウェアサプライチェーンの侵害 — vsFTPd のソースにバックドアが注入された |
| T1133 | MITRE ATT&CK | 外部リモートサービス — バックドアがリモートの root シェルを開く |
| T1190 | MITRE ATT&CK | 公開アプリケーションの悪用 — FTP サービスがリモートから悪用される |
| SI-2 | NIST SP 800-53 | 欠陥の修復 — 脆弱なソフトウェアにパッチを適用し削除する |
| SI-7 | NIST SP 800-53 | ソフトウェアの完全性 — 展開前にソフトウェアのチェックサムを検証する |
| RA-5 | NIST SP 800-53 | 脆弱性の監視とスキャン |
| A.12.6 | ISO 27001 | 技術的脆弱性の管理 |
pythonnmap.py スクリプトは、python-nmap ライブラリを使用して Nmap NSE スキャンを自動化します:
# Key functionality
import nmap
scanner = nmap.PortScanner()
scanner.scan(
hosts=target_host,
ports=target_ports,
arguments='-sV --script ftp-anon,ftp-bounce,ftp-libopie,ftp-proftpd-backdoor,ftp-vsftpd-backdoor'
)
Python自動化の利点:
| スキル | 詳細 |
|---|---|
| CVE調査 | CVE-2011-2523を技術的に理解 — 攻撃ベクトル、バックドアの仕組み、CVSSスコア |
| 脆弱性の検証 | NSEスクリプトを使用して、管理された環境で実際のCVEを確認 |
| Nmap & NSE | サービス検出、バージョンスキャン、スクリプトベースの脆弱性検証 |
| Pythonセキュリティ自動化 | python-nmapライブラリを使用したNSEスキャンの自動化 |
| 調査結果の文書化 | 証拠、重大度、修復策を含む構造化された調査結果テーブル |
| 修復計画 | 優先順位付けされた修復推奨事項を作成 |
| MITRE ATT&CKマッピング | T1195.002、T1133、T1190 — サプライチェーンおよびリモートアクセスの手法 |
| NISTフレームワークマッピング | SI-2、SI-7、RA-5 — 欠陥修復および脆弱性スキャンの管理策 |
| ラボの安全性 | 分離されたHost-Onlyネットワークを維持 — 不正アクセスのリスクはゼロ |
cve-2011-2523-vsftpd-validation-lab/
│
├── README.md # This file
├── pythonnmap.py # Python-automated Nmap NSE scanner
├── requirements.txt # Python dependencies (python-nmap)
├── .gitignore # Excludes sensitive files
│
└── screenshots/
├── metasploitable-ip-address.png # Target IP confirmation
├── ftp-service-version-scan.png # vsFTPd 2.3.4 detected
└── ftp-vsftpd-cve-validation.png # CVE-2011-2523 validated
# Clone the repository
git clone https://github.com/alexojocyber/cve-2011-2523-vsftpd-validation-lab.git
cd cve-2011-2523-vsftpd-validation-lab
# Install Nmap and Python dependency
sudo apt install -y nmap
pip install -r requirements.txt
# Run the scanner against your authorized lab target
sudo python3 pythonnmap.py --host TARGET_IP --ports 21
このラボは、意図的に脆弱性を持たせた仮想マシンを使用し、隔離された許可済みの環境でのみ実施されました。すべてのスキャンと検証は、外部接続のないHost-Only VirtualBoxネットワーク上のMetasploitable2に対してのみ実行されました。このプロジェクトは教育および防御的サイバーセキュリティの目的にのみ使用されます。明示的な書面による許可なくシステムをスキャンまたはテストしないでください。
Alex Ojo — サイバーセキュリティ学生 | 脆弱性評価 & セキュリティ自動化
🔗 GitHub | LinkedIn | Portfolio