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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
fisy-fuzz — これは、2020年4月に開催されたHack in the Box 2020 Lockdown Editionカンファレンスで発表した、完全なファイルシステムファジングフレームワークです。 | Kitploit
ツール/GitHubGitHub/0xricksanchez/fisy-fuzz
脆弱性分析エクスプロイトファジング
GitHub0xricksanchez/fisy-fuzz

fisy-fuzz

これは、2020年4月に開催されたHack in the Box 2020 Lockdown Editionカンファレンスで発表した、完全なファイルシステムファジングフレームワークです。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

FI(le) SY(stem) - FUZZer

これは、2020年4月に開催されたHack in the Box 2020 Lockdown Editionカンファレンスで発表した、完全なファイルシステムファジングフレームワークです。

  • カンファレンストーク
    • カンファレンストーク(単一動画)
  • カンファレンス資料

Framework overview

目標

このフレームワークの目標は、BSDシステムに重点を置いたUNIXシステム上のカーネルセキュリティバグを発見することです。FreeBSD、OpenBSD、NetBSDに対して開発され、徹底的にテストされていますが、Linuxベースのホストに対してもある程度のサポートがすでにあります。UFSおよびEXTベースのファイルシステムに対して100以上のユニークなカーネルバグを発見することに成功し、最近追加されたZFSについても多くの知見を得ることができました。

テストケースジェネレータ

makeFS2.py は、さまざまな有効なファイルシステムを生成するためのスタンドアロンユーティリティとして使用できます。使用方法はカンファレンス資料リポジトリで詳しく説明されています。

必要条件

このフレームワークはUbuntu 18.04でのみテストされています。KVM、QEMU、libvirtに依存しています。Requirements.sh が必要な依存関係をすべてセットアップします。最新のUbuntu 20.04リリースでも完全に機能する可能性があります。apt ベースではない他のホストシステムも簡単にサポート可能であり、 に小さな変更を加えるだけで済みます。必要条件が完了したら、セットアップ手順に進んでください!

Requirements.sh

セットアップ

SETUP.md を参照してください。不明な点があればお問い合わせください!

ファズリング!

ファザーを起動するには、python3 run.py を実行するだけです。セットアップによっては、sudo 権限が必要になる場合があります。すべてが正常に起動したら、次のようにtmuxファジングセッションにアタッチできます。

root@kitploit:~
(sudo) tmux attach-session -t fsfuzzer

設定

フレームワークはスクリプト src/config/fuzzing_config.py で設定できます。

root@kitploit:~

# [fuzzing task specs]
# List of dictionaries specifying each fuzzing instance
fuzzer = [
    {
        "name": "fuzz1",  # Some name for internal bookkeeping
        "fs_creator_vm": "genBox",  # Name as specified in libvirt for the VM handling the file system generation, can be the same across all instances
        "fuzzing_vm": "fuzzBox_0",  # Name as specified in libvirt for the VM handling the file system generation
        "mutation_engine": "radamsa, 0",  # Mutation Engine that is to be used, and size of mutation (radamsa takes no size argument)
        "target_fs": "ufs2",  # Target file system
        "target_size": 15,  # Max file system size in Megabyte
        "populate_with_files": 10,  # Amount of file that will be generated
        "max_file_size": 1024,  # Maximum file size in bytes for each generated file
        "enable_dyn_scaling": False,  # Dynamic scaling will increase the filesystem size periodically
    },
]

# [credentials]
# Credentials for the root user for the VMs
# It is expected that these are the same across all instances, but not necessarily root
user = "root"
pw = "root"

利用可能なミューテーションエンジンは次のとおりです。

  • radamsa
  • byte_flip_seq
  • byte_flip_rnd
  • metadata

動的スケーリングは、ファイルシステムのサイズがクラッシュの可能性に影響を与えるかどうかをテストするために当初実装されました。クラッシュが変化するファイルシステムサイズのトリガー値を特定できなかったため、このフラグは無効のままにできます。また、大きなファイルシステムはミューテーションに時間がかかるため、長時間の実行でのパフォーマンス低下を防ぐことにもなります。残りの設定パラメータは自明なはずです。

PoC

以下の動画は、2つのファジングインスタンスが両方ともFreeBSDをターゲットとし、radamsaでミューテートされたUFS2とランダムなバイトフリップされたEXTファイルシステムを使用したクイックデモです。ミューテートされたUFSファイルシステムは直接クラッシュを引き起こし、カーネルをどれだけ早くクラッシュさせられるかを示しています。

asciicast

fuzz_example

機能一覧

  • FFS、UFS、EXT、ZFSファイルシステムの完全サポート
    • APFSの部分サポート
  • FreeBSD、NetBSD、OpenBSDの完全サポート
    • Ubuntu(およびおそらく他のDebianベースの派生)の実験的サポート
  • ミューテーション方法
    • radamsa
    • グローバルランダムバイトフリップ
    • グローバルランダムバイトシーケンス変更
    • スーパーブロックのみの変更
  • 破損しているがマウントされたファイルシステムにアクセス/変更するための完全ランダム化ユーザーエミュレーション
  • クラッシュデータベース
  • クラッシュ検証
  • スナップショットによるVMリセット
  • 完全自動ファジングプロセス
  • コマンドラインでの合理的なユーザーインターフェース

将来の作業

  • より多くの/異なるミューテーションエンジンのサポート
  • 自動VMセットアップ
  • 利用可能なスナップショットの確認と、不足している場合のファジング前のスナップショット取得
  • macOSのサポート
  • パフォーマンスの調整
    • フレームワークの非同期化
      • ファジング実行を待たずに継続的なサンプル作成
    • 新しいサンプルを生成する前に、同じサンプルに異なるミューテーションを適用
    • 高速化のためのアルゴリズム/インタラクションの再設計
  • コードのクリーンアップとリファクタリング
    • ログの詳細度を切り替え可能にする

トロフィー

このセットアップにより、FreeBSD、NetBSD、OpenBSDのUFSおよびEXTベースのファイルシステムで100以上のユニークなカーネルバグを発見することができました。これらのクラッシュの中には、非常に興味深いものが多数含まれていました。

  • 範囲外読み取り
  • 範囲外書き込み
  • EXTのダブルフォールト
  • UFSのトリプルフォールト
  • 6つ以上のユニークなコアダンプを伴う非決定論的カーネルバグ

クラッシュの大半はカーネルDoSでした。さらに、遭遇したクラッシュの大部分は今日(2020年5月時点)でもまだ修正されていません。ファイルシステム実装におけるカーネルバグを見つけてみてください :)

免責事項

この全体は「信頼駆動開発」で構築されており、単一のPoCアイデアからあまりにも早く大きくなりすぎました。そのため、テストもなく、おそらくいくつかのバグがあります。カーネルパニックとは関係ないクラッシュに遭遇した場合は申し訳ありませんが、遠慮なくPRを送るか、私に連絡してください。できるだけ早く修正します!

連絡先

Twitter: @0xricksanchez

ツールをダウンロード