
| サリー: ブー? | ブー: Kitty!
Kittyは、Pythonで書かれたオープンソースのモジュール式で拡張可能なファジングフレームワークであり、
OpenRCEのSulley <https://github.com/OpenRCE/sulley>_
およびMichael Eddington(現在はDeja Vu Security)のPeach Fuzzer <http://community.peachfuzzer.com/>_に触発されています。
目標
Kittyの開発を始めたときの目標は、毎回すべてをゼロから書くことなく、非TCP/IP通信チャネル上の独自で難解なプロトコルをファジングするのを支援することでした。考えられるすべてのファジングプロセスに共通する機能を含み、ユーザーが簡単に拡張して特定のターゲットをテストできるような、汎用的で抽象的なフレームワークを目指しました。
特徴
この目標を念頭に置いて、以下の機能は非常に重要でした。
:モジュール性:
ファジングの各部分は独立しています。つまり、同じ監視コードを異なるアプリケーションで使用したり、同じペイロードジェネレータ(別名データモデル)を使用して、異なるチャネルで受信した同じデータの解析をテストしたりできます。
:拡張性:
「新しい」ものをテストする必要がある場合でも、Kittyのコアコードを変更する必要はありません。ほとんどの機能(すべてではないにせよ)はユーザーコードで実装できます。これには、ファジング対象の監視、制御、通信が含まれます。
:豊富なデータモデリング:
データモデルコアは豊富で、文字列、ハッシュ、長さ、条件など、高度なデータ構造を記述できます。そして、フレームワークのほとんどと同様に、必要に応じてさらに拡張できるように設計されています。
:ステートフル:
マルチステージファジングテストのサポート。個々のメッセージのペイロードを記述できるだけでなく、メッセージの順序を記述したり、シーケンスの順序に対してファジングを実行することもできます。
:クライアントとサーバのファジング:
サーバとクライアントの両方をファジングできます(対応するスタックがあれば)。大きな要件のように聞こえますが、そうではありません。つまり、ターゲットと通信する手段があればよく、ほとんどの場合、それはすでにあるはずです。
:クロスプラットフォーム:
Linux、OS X、Windowsで動作します。判断はしません ;-)
さて、Kittyはファジングツールではありません。また、特定のプロトコルや通信チャネルの実装も含んでいません。これを使って独自のファジングツールを作成したり、他の人が作成したKittyベースのコードを使用することはできますが、すぐに使えるファジングツールではありません。
Kittyモデルの実装を入手(および追加)するのに適した場所はKatnipです。
フレームワークとしてのKittyは、ファジングのメインループを実装し、データモデリングのための構文と、完全なファジングセッションを作成するために使用される各要素の基底クラスを提供します。ただし、クラスの具体的な実装はKittyフレームワークの一部ではありません。つまり、Kittyはターゲットとのデータトランザクションを実行するためのインターフェースと基底クラスを定義しますが、HTTP、TCP、UARTを介したデータ送信の実装は提供しません。
さまざまなクラスの実装は、関連リポジトリであるKatnip <https://github.com/cisco-sas/katnip>_にあります。
Kittyのインストール:
::
pip install kittyfuzzer
ReadTheDocs <https://kitty.readthedocs.io>_のドキュメントを読む。
サンプルを確認する
自分だけのファジングツールを作りましょう :-)
Freenodeの#kitty <https://webchat.freenode.net/?channels=kitty>_バグを見つけた?
Issueを開く <https://github.com/cisco-sas/kitty/issues/new>_
修正方法がわかる?
素晴らしい!ぜひプルリクエストを送信 <https://github.com/cisco-sas/kitty/compare>_してください
興味深いコントローラ/モニタ/ターゲットを実装した?
Katnipリポジトリ <https://github.com/cisco-sas/katnip>_にプルリクエストを送信してください
Kittyベースのファジングツールを使って興味深いバグを見つけた? ぜひお知らせください!
|docs| |travis| |coverage| |gitter|
.. |docs| image:: https://readthedocs.org/projects/kitty/badge/?version=latest :alt: Documentation Status :scale: 100% :target: https://kitty.readthedocs.io/en/latest/?badge=latest
.. |travis| image:: https://travis-ci.org/cisco-sas/kitty.svg?branch=master :alt: Build Status :scale: 100% :target: https://travis-ci.org/cisco-sas/kitty
.. |coverage| image:: https://coveralls.io/repos/github/cisco-sas/kitty/badge.svg?branch=master :alt: Test Coverage Status :scale: 100% :target: https://coveralls.io/github/cisco-sas/kitty?branch=master
.. |gitter| image:: https://badges.gitter.im/cisco-sas/kitty.svg :alt: Chat on Gitter :scale: 100% :target: https://gitter.im/cisco-sas/kitty?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge