
CVE-2026-33017 - Langflow < 1.9.0 未認証RCE PoC
██╗ ██╗ ██████╗ ███████╗███████╗ ██████╗ ██████╗ ██████╗ ███████╗
██║ ██║██╔═══██╗██╔════╝██╔════╝██╔═══██╗██╔══██╗██╔═══██╗██╔════╝
██║ ██║██║ ██║███████╗███████╗██║ ██║██║ ██║██║ ██║███████╗
╚██╗ ██╔╝██║ ██║╚════██║╚════██║██║ ██║██║ ██║██║ ██║╚════██║
╚████╔╝ ╚██████╔╝███████║███████║╚██████╔╝██████╔╝╚██████╔╝███████║
╚═══╝ ╚═════╝ ╚══════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝
███████╗██╗ ██╗███████╗███╗ ██╗████████╗██╗
██╔════╝██║ ██║██╔════╝████╗ ██║╚══██╔══╝██║
███████╗██║ ██║█████╗ ██╔██╗ ██║ ██║ ██║
╚════██║██║ ██║██╔══╝ ██║╚██╗██║ ██║ ╚═╝
███████║╚██████╔╝███████╗██║ ╚████║ ██║ ██╗
╚══════╝ ╚═════╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚═╝
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░ 同時スキャナー × Nuclei × Recon ░
░ バナー取得 · サービス識別 · 脆弱性検出 ░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┌──────────────────────────────────────────────────────────────┐
│ │
│ ランダムIPをスキャン → バナー取得 → サービス識別 │
│ → Nucleiに送る → 脆弱性発見 → 利益 │
│ │
└──────────────────────────────────────────────────────────────┘
高性能な同時ポートスキャナー。バナー取得、サービスフィンガープリンティング、Nuclei統合により、大規模な自動脆弱性発見を実現。
コアエンジン
|
Nucleiパイプライン
|
# 1. リポジトリをクローン
git clone https://github.com/Usman0220/port-scanner.git && cd port-scanner
# 2. ビルド
go build -o port-scanner main.go
# 3. 実行 — ポート5678を500ワーカー、1万IPでスキャン
./port-scanner -port 5678 -w 500 -n 10000
# 4. フルパイプライン — スキャン → フィルタ → nuclei
./port-scanner -port 80 -w 1000 -n 50000 -o http-open.txt
awk -F'[|]' '{print $1}' http-open.txt | sed 's/\[OPEN\] //' | cut -d: -f1 | sort -u > http-targets.txt
nuclei -l http-targets.txt -tags http -severity critical,high -o findings.txt
╔═══════════════════════════════════╗
║ ポートスキャナーエンジン ║
╚═══════════════════════════════════╝
│
┌───────────────┼───────────────┐
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ IP生成器 │ │ ゴルーチン │ │ 結果 │
│ │ │ プール │ │ 収集器 │
│ ランダムIP │ │ │ │ │
│ プライベート│ │ Nワーカー │ │ チャネル │
│ 除外 │ │ 同時実行 │ │ バッファ付き │
│ 1-223.x.x.x│ │ │ │ │
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘
│ │ │
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ TCP接続 │ │ プローブ送信 │ │ バナー読取 │
│ │ │ │ │ │
│ Dialタイム │ │ プロトコル │ │ サービス │
│ アウト │ │ 認識 │ │ フィンガー │
│ デフォルト2s│ │ │ │ プリント │
└──────────────┘ └──────────────┘ └──────────────┘
│
╔═══════════════╧═══════════════╗
║ 出力: results.txt ║
╚═══════════════╤═══════════════╝
│
┌───────────────┼───────────────┐
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ awk / grep │ │ sort -u │ │ nuclei -l │
│ IP抽出 │ │ 重複排除 │ │ 脆弱性スキャン│
└──────────────┘ └──────────────┘ └──────────────┘
│
╔═══════════════╧═══════════════╗
║ 発見結果: nuclei-*.txt ║
╚═══════════════════════════════╝
# ┌─────────────────────────────────────────────────────────────┐
# │ ステップ1: スキャン — 稼働中のサービスを検出 │
# │ ステップ2: 抽出 — 結果からIPを抽出 │
# │ ステップ3: 監査 — Nuclei脆弱性スキャン │
# └─────────────────────────────────────────────────────────────┘
# スキャン
./port-scanner -port 21 -w 1000 -n 50000 -o ftp-open.txt
# 抽出
awk -F'[|]' '{print $1}' ftp-open.txt | sed 's/\[OPEN\] //' | cut -d: -f1 | sort -u > ftp-targets.txt
# 監査
nuclei -l ftp-targets.txt -tags ftp -severity critical,high -o ftp-findings.txt
#!/bin/bash
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# フルレコンパイプライン — スキャン → 抽出 → Nuclei → レポート
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PORTS=(21 22 23 25 80 110 143 443 3306 5432 6379 8080 8443 9090 27017 5678)
WORKERS=1000
IPS=30000
SEVERITY="critical,high,medium"
TEMPLATES="$HOME/.local/nuclei-templates"
echo "╔══════════════════════════════════════════════════════════╗"
echo "║ フルレコンパイプライン開始 ║"
echo "╚══════════════════════════════════════════════════════════╝"
for port in "${PORTS[@]}"; do
echo ""
echo "┌──────────────────────────────────────────────────────┐"
echo "│ [*] ポート $port をスキャン中"
echo "│ ワーカー: $WORKERS | ターゲット: $IPS"
echo "└──────────────────────────────────────────────────────┘"
# スキャン
./port-scanner -port $port -w $WORKERS -n $IPS -o "scan-port${port}.txt"
# ターゲット抽出
awk -F'[|]' '{print $1}' "scan-port${port}.txt" | \
sed 's/\[OPEN\] //' | cut -d: -f1 | sort -u > "targets-port${port}.txt"
count=$(wc -l < "targets-port${port}.txt")
echo "[+] ポート$port で $count の稼働ホストを検出"
# Nuclei監査
if [ "$count" -gt 0 ]; then
echo "[*] ポート$port のNucleiテンプレートを実行中..."
nuclei -l "targets-port${port}.txt" \
-p-port $port \
-t "$TEMPLATES" \
-severity $SEVERITY \
-o "nuclei-port${port}.txt" \
-silent -stats
vulns=$(wc -l < "nuclei-port${port}.txt" 2>/dev/null || echo "0")
echo "[!] ポート$port で $vulns 件の脆弱性を発見"
fi
done
# すべての発見結果を統合
echo ""
echo "┌──────────────────────────────────────────────────────┐"
echo "│ [*] すべての発見結果をマージ中"
echo "└──────────────────────────────────────────────────────┘"
cat nuclei-port*.txt 2>/dev/null | sort -u > all-findings.txt
total=$(wc -l < "all-findings.txt" 2>/dev/null || echo "0")