Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
iptable_evil — カーネルレベルのiptablesバックドアで、RFC 3514のevilビットが設定されたすべてのパケットを受け入れ、ファイアウォールルールをバイパスします。Linux向けのin-treeビルドとout-of-treeビルドを含みます。 | Kitploit
ツール/GitHubGitHub/flamingspork/iptable_evil
エクスプロイトIDS/IPS回避ネットワークセキュリティ学習と教育レッドチーミング
GitHubflamingspork/iptable_evil

iptable_evil

カーネルレベルのiptablesバックドアで、RFC 3514のevilビットが設定されたすべてのパケットを受け入れ、ファイアウォールルールをバイパスします。Linux向けのin-treeビルドとout-of-treeビルドを含みます。

リポジトリを見る
54135年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

iptable_evil

iptable_evil は、iptables 用の非常に特殊なバックドアであり、悪意ビット(evil bit)が設定されたすべてのパケットを、ファイアウォールルールに関係なく許可します。

最初の実装は iptable_evil.c にあり、iptables にテーブルを追加し、そのための場所を挿入するためにカーネルヘッダーの修正が必要です。 2 つ目の実装は、ip_tables コアモジュールとその依存モジュールを変更したもので、すべての Evil パケットを許可します。

Linux カーネルバージョン 5.8.0-48 でテストしていますが、これは iptables の完全な実装を備えたほぼすべてのカーネルバージョンに適用可能なはずです。

Evil Bit の説明

RFC3514(2003 年 4 月 1 日公開)は、IP フラグメントオフセットフィールドのそれまで未使用だった最上位ビットをセキュリティフラグとして定義しています。 RFC 準拠のシステムでは、そのビット位置の 1 は悪意のある意図を示し、パケットがブロックされます。

デフォルトではこのビットはオフになっていますが、IP パケット全体を自分で組み立てている場合(一部のハッキングツールのように)、または このパッチ(このリポジトリ こちら にミラーリング)を使用して Linux カーネルでオンにすることができます。

バックドアの仕組み

パケットが Linux カーネルで受信されると、iptables によって処理され、設定されたルールに基づいてユーザースペースに送信されるか、拒否されるか、変更されます。

特に、各 iptables テーブルは ip_tables.c の関数 ipt_do_table を使用して、特定のパケットを受け入れるかどうかを決定します。 私はこれを変更して、Evil ビットが設定された任意のパケットを自動的に受け入れ、それ以降のすべての処理をスキップするようにしました。

また、別のテーブル (iptable_evil.c) を追加して、すべての Evil パケットを受け入れ、他のパケットを標準テーブルに渡して処理しようと試みましたが、パケットを次のテーブルに渡す方法がわからず、ipt_do_table バックドアで概念実証として十分だと判断しました。

なぜこれを行ったのか

コンピューティングセキュリティの授業でかなり大規模なプロジェクトを執筆・実装する必要があり、これはクールなアイデアに思えました。 おそらく期待されていた以上の作業量だと思いますが、¯\_(ツ)_/¯。

ビルド

インツリービルド

evil テーブルはカーネルヘッダーの修正を必要とするため、インストールにはフルツリービルドで生成されたカーネルで実行する必要があります。

  • replace-existing の内容をカーネルソースツリーにコピーし、既存のファイルを上書きします。
  • iptable_evil.c を linux-X.Y.Z/net/ipv4/netfilter にコピーします。
  • (オプション)ip_tables.c を linux-X.Y.Z/net/ipv4/netfilter にコピーします。
  • 各自のディストリビューションの手順に従ってカーネルをコンパイルします(パッケージが生成されるはずです)。
  • パッケージファイルをインストールします。
  • 新しいカーネルで再起動します。
  • iptables -t filter -L
  • iptables -t evil -L(出力は混乱しますが、モジュールはロードされます)

アウトオブツリービルド

こちらははるかに簡単で高速ですが、evil テーブルをサポートせず、カーネルが「汚染」されたとマークされます。 このビルドで生成された ko ファイルを、まったく同じカーネルバージョンの別のコンピュータにコピーすることも可能と思われますが、テストしていません。

  • make を実行します。
  • rmmod iptable_*
  • rmmod ip_tables
  • insmod ip_tables.ko
  • insmod iptable_filter.ko

テスト / デモ

これをテストするには、このパッチ を使用してカーネル全体を再構築するか、Scapy のようなツールを使用して自分でパケットを作成する必要があります。 私は最初の方法を選びました。すでに evil テーブルのためにカーネルをビルドしていたからです。

最初のスクリーンショットでは、iptables でこの VM へのすべてのトラフィックをブロックしていますが、パケットに Evil ビットが設定されているため、SSH 接続が可能です(2 番目のスクリーンショットを参照)。 ブロックされるはずの SSH 接続のスクリーンショット 予約ビットが設定されていることを示す Wireshark のスクリーンショット

Evil ビットを設定しない VM からバックドア付き VM に接続すると、SSH 接続は最終的にタイムアウトします。 SSH 接続がタイムアウトするスクリーンショット 予約ビットが設定されていないことを示す Wireshark のスクリーンショット

バックドアありとなしの SSH 接続のパケットキャプチャは、このリポジトリの docs/ フォルダにあります。

カーネルバージョン

  • 5.8.0-48-generic(Ubuntu 20.04)

参考情報とリソース

  • Evil bit を発明した RFC 3514:https://tools.ietf.org/html/rfc3514
  • Ben Cox による Evil bit の紹介:https://blog.benjojo.co.uk/post/evil-bit-RFC3514-real-world-usage
  • Ben Cox の iptables_uwu(主に調査対象の名前を提供するもの):https://github.com/benjojo/iptables-uwu
  • iptables の仕組みとターゲット/モジュールの追加方法に関するやや古いが非常に詳細な説明:https://inai.de/documents/Netfilter_Modules.pdf
  • https://upload.wikimedia.org/wikipedia/commons/3/37/Netfilter-packet-flow.svg
  • Bootlin の Elixir 検索は、カーネル内の識別子を見つけるのに grep よりもはるかに簡単:https://elixir.bootlin.com/linux/v5.8/source/net/ipv4/netfilter/ip_tables.c#L225
  • Ubuntu のドキュメントでカーネルのビルド方法を説明:https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel
ツールをダウンロード