Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
network-security-snort — Kali上のSnort 3 IDS → IPSラボ。ICMP偵察、Nmap SYNスキャン、Hydra FTPブルートフォース、vsftpd 2.3.4バックドア(CVE-2011-2523)に対するカスタム検出ルール+iptablesによる強制。 | Kitploit
ツール/GitHubGitHub/taisa456/network-security-snort
防御ツール脆弱性分析エクスプロイトIDS/IPS回避ネットワークセキュリティペネトレーションテスト侵入検知学習と教育ラボと実践
GitHubtaisa456/network-security-snort

network-security-snort

Kali上のSnort 3 IDS → IPSラボ。ICMP偵察、Nmap SYNスキャン、Hydra FTPブルートフォース、vsftpd 2.3.4バックドア(CVE-2011-2523)に対するカスタム検出ルール+iptablesによる強制。

164ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る

Snort IDS/IPS 導入ラボ

Kali Linux 上の 3 台構成の仮想ネットワークにおいて、Snort 3 を侵入検知システム(受動的モニタリング)および侵入防御システム(iptables による能動的ブロック)としてフルサイクル導入し、4 つの攻撃ベクトルに対して検証したラボです。

本ラボは、同一の 4 ベクトル攻撃チェーンを 2 回実行することで、検知と防御の運用上の違いを実証します。最初はログを記録するだけでブロックできない IDS に対して、次に正当なトラフィックを維持しながら攻撃を選択的に破棄する IDS + iptables IPS レイヤーに対して実行します。


目次

  • ラボ環境
  • ネットワークトポロジー
  • 方法
  • Snort 設定
  • カスタム検知ルール
  • ステージ 1 — IDS モード
  • ステージ 2 — IPS モード
  • IDS vs IPS — 結果の比較
  • 考察
  • アーキテクチャに関する注記
  • リポジトリ構成
  • ラボの再現手順
  • 倫理的免責事項
  • ライセンス

ラボ環境

コンポーネント詳細
アナライザー / ルーターKali Linux — 3 つのアダプター: eth0 WAN (192.168.10.143, NAT)、eth1 LAN1 (10.10.10.1, ホストオンリー)、eth2 LAN2 (192.168.50.1, ホストオンリー)
攻撃者Kali Linux — eth0 は VMnet9 上 (10.10.10.10) — デフォルトゲートウェイ 10.10.10.1
ターゲットMetasploitable 2 — eth0 は VMnet10 上 (192.168.50.10) — デフォルトゲートウェイ 192.168.50.1
Snort バージョンSnort++ 3.12.1.0-0kali1(アナライザーにインストール)
攻撃ツールNmap 7.99、Hydra v9.6、Metasploit Framework (msfconsole)
仮想化VMware — VMnet9 = 10.10.10.0/24、VMnet10 = 192.168.50.0/24(いずれもホストオンリー)

ネットワークトポロジー

攻撃者と Metasploitable の間のすべてのトラフィックはアナライザーを経由するため、モニタリングとポリシー適用の両方において自然なチョークポイントとなります。

                           ┌─────────────────────────┐
                           │   Analyzer / Router     │
                           │   Kali + Snort 3        │
                           │                         │
   Attacker Kali ──VMnet9──┤ eth1: 10.10.10.1        │
   10.10.10.10             │                         │
                           │ eth0: 192.168.10.143 ───┼──> WAN (NAT)
                           │                         │
   Metasploitable 2 ─VMnet10┤ eth2: 192.168.50.1     │
   192.168.50.10           │                         │
                           └─────────────────────────┘

図を用意できたら、この ASCII スケッチを screenshots/01-network-topology.png に置き換えてください: Topology


方法

本ラボは 2 つのステージで実行され、各ステージで同一の 4 ベクトル攻撃チェーンを使用します:

  1. ICMP 偵察 — ホスト発見のための ping
  2. Nmap SYN スキャン — ポート列挙のための nmap -sS(1000 ポート)
  3. Hydra FTP ブルートフォース — vsftpd サービスに対する認証情報攻撃
  4. vsftpd 2.3.4 バックドア — CVE-2011-2523 に対する Metasploit エクスプロイト

ステージ 1(IDS) は、アナライザー上で Snort を 5 つのカスタムルールとともに受動的に実行します — アラートをリアルタイムで観察し、それでもエクスプロイトが進行することを確認します。

ステージ 2(IPS) は、外科的ドロップルールを使用する iptables 適用レイヤーと Snort を組み合わせます — ICMP ping と正当な FTP ログインが機能し続ける一方で、攻撃がブロックされることを確認します。

デプロイ前のセットアップ

  1. VMware でアナライザーに 3 つの NIC を構成します(ホストオンリー 2 つ、NAT/ブリッジ 1 つ)。
  2. IP フォワーディングを有効にし、アナライザーがサブネット間および WAN へのルーティングを行うように MASQUERADE + FORWARD ルールを追加します — scripts/router_config.sh を参照。
  3. Snort をインストールする前に、scripts/ping_check.sh を使用して各 VM からのエンドツーエンド接続を確認します。

Snort 設定

Snort は Kali のパッケージマネージャー(sudo apt install snort -y)でインストールされ、/etc/snort/snort.conf で設定されます:

HOME_NET = "10.10.10.0/24,192.168.50.0/24"
EXTERNAL_NET = "any"

ips = {
    enable_builtin_rules = true,
    include = "/etc/snort/rules/local.rules",
    variables = default_variables
}

alert_fast = { file = true, packet = false }

HOME_NET は両方の内部サブネットをカバーするため、Snort はアナライザー上のすべてのサブネット間トラフィックを検査に値するものとして扱います。alert_fast はコンパクトな 1 行アラートを生成します(パケット単位のログ記録は過剰な量を生成するため)。

設定の検証:

sudo snort -T -c /etc/snort/snort.conf
# Result: 652 rules loaded (5 custom text + 647 built-in), 0 warnings

カスタム検知ルール

/etc/snort/rules/local.rules 内の 5 つのルール(完全なファイルは scripts/local.rules):

SID名前トリガー
1000001ICMP Ping 検知いずれかの方向のすべての ICMP トラフィック — 偵察 ping を捕捉
1000002FTP 接続試行ポート 21 へのすべての TCP 接続 — 正当なトラフィックとブルートフォーストラフィックの両方を捕捉
1000003可能性のある Nmap SYN スキャンSYN フラグのみが設定された TCP パケット(flags:S)— ハーフオープンスキャンのシグネチャ
1000004VSFTPD 2.3.4 バックドア試行FTP ポート 21 上の content:":)" — CVE-2011-2523 の正確なトリガー文字列
1000005可能性のある Metasploit シェルコード`content:"

ステージ 1 — IDS モード

Snort は両方の内部インターフェースでパッシブモードで実行されます:

sudo snort -c /etc/snort/snort.conf -i eth1 -i eth2 \
    -A alert_fast -l /var/log/snort/

# Watch alerts in a second terminal:
sudo tail -f /var/log/snort/alert_fast.txt

起動出力で pcap DAQ configured to passive が確認できます — Snort はすべてのパケットを監視できますが、いずれもドロップまたは変更できません。

IDS の結果

攻撃者マシンから scripts/attack_simulator.sh を実行した後:

攻撃検知結果
ICMP 偵察✅ SID 1000001 — 双方向アラートPing 完了
Nmap SYN スキャン✅ SID 1000003 — 1 秒未満で数千のアラート23 個のオープンポートが列挙された
Hydra FTP ブルートフォース✅ SID 1000002 — 繰り返しの FTP 接続アラートmsfadmin:msfadmin の認証情報がクラックされた
vsftpd 2.3.4 バックドア✅ SID 1000004 — :) コンテンツマッチが発火root Meterpreter シェルが取得された

IDS はすべてを検知したが、何も止めなかった。 これがステージ 1 の中心的な教訓です: 適用機能のない IDS は警報システムであり、鍵ではありません。人間のアナリストがアラートを読む頃には、攻撃者はすでに root を取得しています。

副次的な観察: Snort の組み込みルール(116:408、116:414)は DHCP ブロードキャストトラフィックで発火します — 悪意はありませんが、本番環境ではアラートログを実用的に保つために抑制ルールが必要です。


ステージ 2 — IPS モード

IPS レイヤーは scripts/ips_setup.sh でデプロイされます。このスクリプトは次のことを行います:

  1. 既存の iptables ルールをフラッシュする
  2. IP フォワーディングを再び有効にし、ベースラインルーティングを再適用する
  3. 特定の攻撃シグネチャを対象とする 4 つの外科的ドロップルールを適用する
  4. 継続的なログ記録のために Snort をデーモンモード(-D)で起動する

iptables ルール

ルール動作
ACCEPT icmpすべての ICMP を明示的に許可 — 接続確認を維持
DROP tcp dpt:21 STRING ":)"ポート 21 で vsftpd 2.3.4 バックドアのトリガーを含むパケットをドロップ
ACCEPT tcp --syn -m limit --limit 10/s --limit-burst 20レート制限内の通常の TCP ハンドシェイクを許可
DROP tcp --syn(リミット超過後)10/s を超える SYN フラッドをドロップ — Nmap SYN スキャンを無効化
DROP tcp dpt:21 -m connlimit --connlimit-above 5 --connlimit-mask 32送信元ごとに 5 を超える同時 FTP 接続をブロック — Hydra の並列処理を無効化
ACCEPT eth1→eth0、ACCEPT eth2→eth0通常の外向きルーティング
ACCEPT -m conntrack --ctstate RELATED,ESTABLISHEDステートフル — 確立されたセッションを維持

IPS の結果

同じ攻撃スクリプトが攻撃者マシンから再実行されました:

攻撃ステージ 2 の結果
ICMP 偵察✅ 許可(意図的)
Nmap SYN スキャン❌ ブロック — 1000 filtered tcp ports (no-response)、スキャンは 1 秒未満ではなく 21.71 秒かかった
Hydra FTP ブルートフォース❌ ブロック — all children were disabled due too many connection errors — 0 valid password found
vsftpd バックドア❌ ブロック — Rex::ConnectionTimeout — Exploit completed, but no session was created

通常トラフィックの維持

2 つの手動チェックにより、選択的な適用が確認されました:

  • ping -c 4 192.168.50.10 → 4 パケット送信、4 パケット受信、0% ロス
  • msfadmin:msfadmin を使用した ftp 192.168.50.10 → 220 (vsFTPd 2.3.4) … 230 Login successful

実行中の iptables パケットカウンターによる定量的な証拠: 2051 パケット受理、12 パケットが FTP connlimit ルールでドロップ、808 個の ICMP パケットが受理 — 数値で見る選択的な適用です。

Snort の継続的なログ記録

IPS モードでも、Snort は、iptables が後続のパケットをドロップする前に受動的検査ポイントに到達したパケットに対して SID 1000002 / 1000003 のアラートを発火し続けました — つまり、iptables がポリシー適用を、Snort が監査ログ記録を提供し、連携して動作します。


IDS vs IPS — 結果の比較

攻撃 / トラフィックステージ 1(IDS のみ)ステージ 2(IDS + iptables IPS)
ICMP ping検知 ✅許可 ✅(意図的)
Nmap SYN スキャン検知 — 23 個のオープンポートを検出ブロック — 1000 フィルタード
Hydra FTP ブルートフォース検知 — msfadmin:msfadmin をクラックブロック — 0 パスワード検出
vsftpd 2.3.4 エクスプロイト検知 — root Meterpreter シェルブロック — 接続タイムアウト
正当な FTP ログインn/a維持(230 Login successful)

考察

シミュレートされたすべての攻撃は IDS モードで検知されたか?

はい — SID 1000001 ~ 1000004 のすべてが攻撃シミュレーション中に正しく発火しました:

  • ICMP ping (1000001) — すべてのエコー/応答に対する双方向アラート。
  • Nmap SYN スキャン (1000003) — ミリ秒単位で発生するアラートの洪水、特徴的な送信元ポートのランダム化。
  • FTP ブルートフォース (1000002) — Hydra の並列接続試行の正確なタイムスタンプ付きの明確な監査証跡。
  • vsftpd バックドア (1000004) — :) コンテンツマッチが正確なエクスプロイトバイト列を捕捉。
ツールをダウンロード