Published on March 12th, 2016 📆 | 6616 Views ⚑0
Kitty – Fuzzing Framework Written In Python
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.
|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?
- Install Kitty:
pip install git+https://github.com/cisco-sas/kitty.git#egg=kitty
- Read some of the documentation at ReadTheDocs .
- Build your fuzzer 🙂
- Need some help - ask at our google group: email@example.com