All Projects → cisco-sas → Kitty

cisco-sas / Kitty

Licence: gpl-2.0
Fuzzing framework written in python

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Kitty

tracehash
Compress long exception traces down to short signatures
Stars: ✭ 20 (-94.41%)
Mutual labels:  fuzzing
Wordlists
Infosec Wordlists
Stars: ✭ 271 (-24.3%)
Mutual labels:  fuzzing
Winappdbg
WinAppDbg Debugger
Stars: ✭ 338 (-5.59%)
Mutual labels:  fuzzing
profuzzbench
ProFuzzBench - A Benchmark for Stateful Protocol Fuzzing
Stars: ✭ 113 (-68.44%)
Mutual labels:  fuzzing
Dnstwist
Domain name permutation engine for detecting homograph phishing attacks, typo squatting, and brand impersonation
Stars: ✭ 3,124 (+772.63%)
Mutual labels:  fuzzing
Pulsar
Protocol Learning and Stateful Fuzzing
Stars: ✭ 285 (-20.39%)
Mutual labels:  fuzzing
KRFAnalysis
Collection of LLVM passes and triage tools for use with the KRF fuzzer
Stars: ✭ 26 (-92.74%)
Mutual labels:  fuzzing
Pyjfuzz
PyJFuzz - Python JSON Fuzzer
Stars: ✭ 342 (-4.47%)
Mutual labels:  fuzzing
Commodity Injection Signatures
Commodity Injection Signatures, Malicious Inputs, XSS, HTTP Header Injection, XXE, RCE, Javascript, XSLT
Stars: ✭ 267 (-25.42%)
Mutual labels:  fuzzing
Jqf
JQF + Zest: Coverage-guided semantic fuzzing for Java.
Stars: ✭ 340 (-5.03%)
Mutual labels:  fuzzing
SQL-XSS
A few SQL and XSS attack tools
Stars: ✭ 29 (-91.9%)
Mutual labels:  fuzzing
Cryptofuzz
Fuzzing cryptographic libraries. Magic bug printer go brrrr.
Stars: ✭ 262 (-26.82%)
Mutual labels:  fuzzing
Caringcaribou
A friendly car security exploration tool for the CAN bus
Stars: ✭ 298 (-16.76%)
Mutual labels:  fuzzing
libfuzzer
Thin interface for libFuzzer, an in-process, coverage-guided, evolutionary fuzzing engine.
Stars: ✭ 39 (-89.11%)
Mutual labels:  fuzzing
Syzkaller
syzkaller is an unsupervised coverage-guided kernel fuzzer
Stars: ✭ 3,841 (+972.91%)
Mutual labels:  fuzzing
swagger-conformance
Python based tool for testing whether your API conforms to its Swagger schema
Stars: ✭ 51 (-85.75%)
Mutual labels:  fuzzing
Difuze
Fuzzer for Linux Kernel Drivers
Stars: ✭ 285 (-20.39%)
Mutual labels:  fuzzing
Vault
swiss army knife for hackers
Stars: ✭ 346 (-3.35%)
Mutual labels:  fuzzing
Afl Cov
Produce code coverage results with gcov from afl-fuzz test cases
Stars: ✭ 342 (-4.47%)
Mutual labels:  fuzzing
Fuzzdicts
Web Pentesting Fuzz 字典,一个就够了。
Stars: ✭ 4,013 (+1020.95%)
Mutual labels:  fuzzing

Introduction

| Sulley: Boo? | Boo: Kitty!

What is Kitty?

Kitty is an open-source modular and extensible fuzzing framework written in python, inspired by OpenRCE's Sulley <https://github.com/OpenRCE/sulley>_ and Michael Eddington's (and now Deja Vu Security's) Peach Fuzzer <http://community.peachfuzzer.com/>_.

Goal


When we started writing Kitty, our goal was to help us fuzz unusual targets
--- meaning proprietary and esoteric protocols over non-TCP/IP communication
channels --- without writing everything from scratch each time. A generic and
abstract framework that would include the common functionallity of every
fuzzing process we could think of, and would allow the user to easily extend
and use it to test their specific target.

Features

With this goal in mind, the following features were very important to us:

:Modularity:

Each part of the fuzzer stands on its own. This means that you can use the same monitoring code for different applications, or the same payload generator (aka Data Model) for testing parsing of the same data that is received over different channels.

:Extensibility:

If you need to test something "new", you will not need to change Kitty's core code. Most, if not all, features can be implemented in the user code. This includes monitoring, controlling and communicating with the fuzzed target.

:Rich data modeling:

The data model core is rich and allows describing advanced data structures, including strings, hashes, lengths, conditions and many more. And, like most of the framework, it is designed to be extended even further as necessary.

:Stateful:

Support for multi-stage fuzzing tests. Not only you can describe what the payload of an individual message will look like, you can also describe the order of messages, and even perform fuzzing on the sequence's order.

:Client and Server fuzzing:

You can fuzz both servers and clients, assuming you have a matching stack. Sounds like a big requirement, but it isn't: it just means that you should have the means to communicate with the target, which you should have in most cases anyway.

:Cross platform:

Runs on Linux, OS X and Windows. We don't judge ;-)

What it's not?

Well, Kitty is not a fuzzer. It also contains no implementation of specific protocol or communication channel. You can write your own fuzzer with it, and you can use Kitty-based code of others, but it's not an out-of-the-box fuzzer.

A good place to get (and add) implementations of Kitty models is Katnip.

Katnip

Kitty, as a framework, implements the fuzzer main loop, and provides syntax for modeling data and base classes for each of the elements that are used to create a full fuzzing session. However, specific implementations of classes are not part of the Kitty framework. This means that Kitty defines the interface and base class to perform data transactions with a target, but it doesn't provide implementations for data transmition over HTTP, TCP or UART.

Implementations of all sorts of classes can be found in the complimentary repository - Katnip <https://github.com/cisco-sas/katnip>_.

Getting Started

  • Install Kitty:

    ::

      pip install kittyfuzzer
    
  • Read some of the documentation at ReadTheDocs <https://kitty.readthedocs.io>_.

  • Take a look at the examples

  • Build your very own fuzzer :-)

Support

Contribution FAQ

Found a bug? Open an issue <https://github.com/cisco-sas/kitty/issues/new>_

Have a fix? Great! please submit a pull request <https://github.com/cisco-sas/kitty/compare>_

Implemented an interesting controller/monitor/target? Please submit a pull request in the Katnip repository <https://github.com/cisco-sas/katnip>_

Found an interesting bug using a Kitty-based fuzzer? We'd love to hear about it! please drop us a line

|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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].