{ "info": { "author": "Cisco SAS team", "author_email": "kitty-fuzzer@googlegroups.com", "bugtrack_url": null, "classifiers": [], "description": "Introduction\n============\n\n | *Sulley: Boo?*\n | *Boo: Kitty!*\n\nWhat is Kitty?\n--------------\n\nKitty is an open-source modular and extensible fuzzing framework\nwritten in python,\ninspired by OpenRCE's `Sulley `_\nand Michael Eddington's (and now Deja Vu Security's) `Peach Fuzzer\n`_.\n\nGoal\n~~~~\n\nWhen we started writing Kitty, our goal was to help us fuzz unusual targets\n--- meaning proprietary and esoteric protocols over non-TCP/IP communication\nchannels --- without writing everything from scratch each time. A generic and\nabstract framework that would include the common functionallity of every\nfuzzing process we could think of, and would allow the user to easily extend\nand use it to test their specific target.\n\nFeatures\n~~~~~~~~\n\nWith this goal in mind, the following features were very important to us:\n\n:Modularity:\n\n Each part of the fuzzer stands on its own. This means\n that you can use the same monitoring code for different applications,\n or the same payload generator (aka *Data Model*) for testing parsing\n of the same data that is received over different channels.\n\n:Extensibility:\n\n If you need to test something \"new\",\n you will not need to change Kitty's core code.\n Most, if not all, features can be implemented in the user code.\n This includes monitoring, controlling and communicating\n with the fuzzed target.\n\n:Rich data modeling: \n\n The data model core is rich and allows describing advanced data structures,\n including strings, hashes, lengths, conditions and many more. And,\n like most of the framework,\n it is designed to be extended even further as necessary.\n\n:Stateful:\n\n Support for multi-stage fuzzing tests. Not only you can describe\n what the payload of an individual message will look like,\n you can also describe the order of messages, and even perform \n fuzzing on the sequence's order.\n\n:Client and Server fuzzing:\n\n You can fuzz both servers and clients, assuming\n you have a matching stack. Sounds like a big requirement, but it isn't:\n it just means that you should have the means to communicate with the target,\n which you should have in most cases anyway.\n\n:Cross platform:\n\n Runs on Linux, OS X and Windows. We don't judge ;-)\n\n\nWhat it's not?\n--------------\n\nWell, Kitty is not a fuzzer. It also contains no implementation of specific\nprotocol or communication channel. You can write your own fuzzer with it, and\nyou can use Kitty-based code of others, but it's not an out-of-the-box fuzzer.\n\nA good place to get (and add) implementations of Kitty models is Katnip.\n\nKatnip\n------\n\nKitty, as a framework, implements the fuzzer main loop, and provides\nsyntax for modeling data and base classes for each of the elements\nthat are used to create a full fuzzing session. However, specific\nimplementations of classes are **not** part of the Kitty framework.\nThis means that Kitty defines the interface and base class to perform\ndata transactions with a target, but it doesn't provide implementations\nfor data transmition over HTTP, TCP or UART.\n\nImplementations of all sorts of classes can be found in the complimentary\nrepository - `Katnip `_.\n\nGetting Started\n---------------\n\n- Install Kitty:\n\n ::\n\n pip install kittyfuzzer\n\n- Read some of the documentation at `ReadTheDocs `_.\n- Take a look at the examples\n- Build your very own fuzzer :-)\n\nSupport\n-------\n- Mailing list: https://groups.google.com/forum/#!forum/kitty-fuzzer\n- IRC: `#kitty on Freenode `_\n\nContribution FAQ\n----------------\n\n*Found a bug?*\n Open an `issue `_\n\n*Have a fix?*\n Great! please submit a `pull request `_\n\n*Implemented an interesting controller/monitor/target?*\n Please submit a pull request in the `Katnip repository `_\n\n*Found an interesting bug using a Kitty-based fuzzer?*\n We'd love to hear about it! please drop us a line\n\n|docs| |travis| |coverage| |gitter|\n\n.. |docs| image:: https://readthedocs.org/projects/kitty/badge/?version=latest\n :alt: Documentation Status\n :scale: 100%\n :target: https://kitty.readthedocs.io/en/latest/?badge=latest\n\n.. |travis| image:: https://travis-ci.org/cisco-sas/kitty.svg?branch=master\n :alt: Build Status\n :scale: 100%\n :target: https://travis-ci.org/cisco-sas/kitty\n\n.. |coverage| image:: https://coveralls.io/repos/github/cisco-sas/kitty/badge.svg?branch=master\n :alt: Test Coverage Status\n :scale: 100%\n :target: https://coveralls.io/github/cisco-sas/kitty?branch=master\n\n.. |gitter| image:: https://badges.gitter.im/cisco-sas/kitty.svg\n :alt: Chat on Gitter\n :scale: 100%\n :target: https://gitter.im/cisco-sas/kitty?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/cisco-sas/kitty.git", "keywords": "fuzz,fuzzing,framework,sulley,kitty,kittyfuzzer,security", "license": "", "maintainer": "", "maintainer_email": "", "name": "kittyfuzzer", "package_url": "https://pypi.org/project/kittyfuzzer/", "platform": "", "project_url": "https://pypi.org/project/kittyfuzzer/", "project_urls": { "Homepage": "https://github.com/cisco-sas/kitty.git" }, "release_url": "https://pypi.org/project/kittyfuzzer/0.7.4/", "requires_dist": [ "docopt", "bitstring", "six", "requests" ], "requires_python": "", "summary": "Kitty fuzzing framework", "version": "0.7.4" }, "last_serial": 4854022, "releases": { "0.6.10": [ { "comment_text": "", "digests": { "md5": "d3b861b7b0d027936f82355879d36926", "sha256": "92ad8d9d33a909820eda2bf92dd076d2efa4f4cc418fb84980cae302e3b34909" }, "downloads": -1, "filename": "kittyfuzzer-0.6.10.tar.gz", "has_sig": false, "md5_digest": "d3b861b7b0d027936f82355879d36926", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 299400, "upload_time": "2016-10-26T15:19:32", "url": "https://files.pythonhosted.org/packages/a5/71/cc98b681628ca3e3b800276ac290c757e978a8683a23b13c1ac1062db3a3/kittyfuzzer-0.6.10.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "163e2aa16b6d4a401c08b06f7440c1d1", "sha256": "442db3da0c0dba1df76cd42d70867447fa3814833f1b4e1e66296c6ec030cbf3" }, "downloads": -1, "filename": "kittyfuzzer-0.6.3.tar.gz", "has_sig": false, "md5_digest": "163e2aa16b6d4a401c08b06f7440c1d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 173505, "upload_time": "2016-03-12T23:32:34", "url": "https://files.pythonhosted.org/packages/87/e3/25629751419809dfd2ebab0d61e226a4c726d40e924649b9a44dc9995dab/kittyfuzzer-0.6.3.tar.gz" } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "fe0ead6e1eaeafc3bc81e27fb0517625", "sha256": "dd16029c0d45a15e2d00df5ca8783dd412ab3f5e234eedbf8e5f880bb1809767" }, "downloads": -1, "filename": "kittyfuzzer-0.6.4.tar.gz", "has_sig": false, "md5_digest": "fe0ead6e1eaeafc3bc81e27fb0517625", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 173512, "upload_time": "2016-03-13T11:09:20", "url": "https://files.pythonhosted.org/packages/6c/ec/089ea7dddb0b433aa0d832c15e8c739eb88a79b26d40f71717853c4c77ba/kittyfuzzer-0.6.4.tar.gz" } ], "0.6.5": [ { "comment_text": "", "digests": { "md5": "01985a1024564f3b203470257b822991", "sha256": "7e7b01453bf45852524670bac5704a9933e8a5d04a7c41d0eae3f713cb672c8a" }, "downloads": -1, "filename": "kittyfuzzer-0.6.5.tar.gz", "has_sig": false, "md5_digest": "01985a1024564f3b203470257b822991", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 174474, "upload_time": "2016-03-20T15:06:42", "url": "https://files.pythonhosted.org/packages/4c/96/14a734788715ac1815871b5d4751422c336b07f7270aba82c4de647a9f4b/kittyfuzzer-0.6.5.tar.gz" } ], "0.6.6": [ { "comment_text": "", "digests": { "md5": "55a37718d9ae32fd942addcad973be4e", "sha256": "5fade8a3a7baf497da156609efd0693258dcc4c0b2c6127b25f8d6fad1aaaba7" }, "downloads": -1, "filename": "kittyfuzzer-0.6.6.tar.gz", "has_sig": false, "md5_digest": "55a37718d9ae32fd942addcad973be4e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 288310, "upload_time": "2016-04-03T17:51:11", "url": "https://files.pythonhosted.org/packages/cf/b3/d8c5cccfb5155ae3f37c0108733277dd0d0430e59e28aa8154f0d8c89b48/kittyfuzzer-0.6.6.tar.gz" } ], "0.6.7": [ { "comment_text": "", "digests": { "md5": "cffb81dd6ee81c052a7ef17ddc05d04a", "sha256": "c956a1a4031d01a339dfb9966f96b2d53a01ea098f0226873e078ac0e835cb44" }, "downloads": -1, "filename": "kittyfuzzer-0.6.7.tar.gz", "has_sig": false, "md5_digest": "cffb81dd6ee81c052a7ef17ddc05d04a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 294807, "upload_time": "2016-04-18T16:24:50", "url": "https://files.pythonhosted.org/packages/2c/7f/804fb8379655a52c3f87adc50cb65bdda3ed1f410b11daa43b650c8e46a5/kittyfuzzer-0.6.7.tar.gz" } ], "0.6.8": [ { "comment_text": "", "digests": { "md5": "f936756e170cc55ec2d92006179b3233", "sha256": "befab5faea39897e38a68f835b5718450e1ff8aeb224ecb62b0d4a7737a5ade1" }, "downloads": -1, "filename": "kittyfuzzer-0.6.8.tar.gz", "has_sig": false, "md5_digest": "f936756e170cc55ec2d92006179b3233", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 297193, "upload_time": "2016-05-03T21:31:36", "url": "https://files.pythonhosted.org/packages/e7/aa/730a425d1f13564738f608cab2eb0042ca96466a638d37985f8fd7aa45a2/kittyfuzzer-0.6.8.tar.gz" } ], "0.6.9": [ { "comment_text": "", "digests": { "md5": "7d11c9d0d78ff6e046a29e6361449336", "sha256": "16b7f634c6f18ea360385f0b37761256579e3c1bbcf9eb5d113ddba756cb116d" }, "downloads": -1, "filename": "kittyfuzzer-0.6.9.tar.gz", "has_sig": false, "md5_digest": "7d11c9d0d78ff6e046a29e6361449336", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 298101, "upload_time": "2016-06-04T08:46:23", "url": "https://files.pythonhosted.org/packages/3b/cf/c8797a4791b6deca8f5229b8555553d7d0d2ba694c1145d6c35223011828/kittyfuzzer-0.6.9.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "4e995f02d2f71ddb0455beaf336a6847", "sha256": "0caeb92e4ebf1647ef75257185229acc89bbc206ce0afe54d2f67270d79f2f47" }, "downloads": -1, "filename": "kittyfuzzer-0.7.0.tar.gz", "has_sig": false, "md5_digest": "4e995f02d2f71ddb0455beaf336a6847", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 301217, "upload_time": "2016-11-11T15:56:08", "url": "https://files.pythonhosted.org/packages/c7/6f/40b973ee676bf9f1f3c86d1acf9e2d41f90d3a37401d686ee16801d5d4dd/kittyfuzzer-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "5d1545e74d1ed97f563741e4e09f4d55", "sha256": "f8dcbe02f06d1262865abbd16a7f7c42cfea69787f2180e929e7c956f3036d57" }, "downloads": -1, "filename": "kittyfuzzer-0.7.1.tar.gz", "has_sig": false, "md5_digest": "5d1545e74d1ed97f563741e4e09f4d55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 301785, "upload_time": "2017-03-31T11:19:52", "url": "https://files.pythonhosted.org/packages/61/fc/9b7b03d896d986aafb0000a093a0c9b599d26ba3b35d29e2ed0313b6d852/kittyfuzzer-0.7.1.tar.gz" } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "51c3e0177013143a7cb95614881f3877", "sha256": "11cf1c98fa660745b0677933a5b7f6ee3e756fd83adcf6ecf4aa6df7d87008d8" }, "downloads": -1, "filename": "kittyfuzzer-0.7.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "51c3e0177013143a7cb95614881f3877", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 429238, "upload_time": "2019-02-17T09:26:25", "url": "https://files.pythonhosted.org/packages/e6/f1/a8bdad246af32ddc6b6ee9486fe972e18cd71561574c2834e29d8eb4c87a/kittyfuzzer-0.7.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1b01ccf880b957edaad65fc1a4775ee7", "sha256": "da6d80b6d390ea53fa6939fc613ee3196c6721fb63ea1fb52c07444d1d8f6abd" }, "downloads": -1, "filename": "kittyfuzzer-0.7.2.tar.gz", "has_sig": false, "md5_digest": "1b01ccf880b957edaad65fc1a4775ee7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 387647, "upload_time": "2019-02-17T09:26:29", "url": "https://files.pythonhosted.org/packages/74/be/1d3733693850770ea372aa6face39312a619c65d8bada2ffa778d9e6dbf3/kittyfuzzer-0.7.2.tar.gz" } ], "0.7.3": [ { "comment_text": "", "digests": { "md5": "20e37e45eafa620bc436ca6724f882e8", "sha256": "a381a38b0112d3ab23cd3718cdb07bf2589c07c57f98d6780cd4edaf37fe8b1d" }, "downloads": -1, "filename": "kittyfuzzer-0.7.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "20e37e45eafa620bc436ca6724f882e8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 429246, "upload_time": "2019-02-22T10:38:55", "url": "https://files.pythonhosted.org/packages/54/e6/01eb8ed6f726d29bbe11c78c4180e7ba5956f9d7734f8235400205b34004/kittyfuzzer-0.7.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ac19598ed0189150e2e11c45765e6430", "sha256": "41933cf42d670299a7248bb47304e05acfb04b05035dd6139db3a2c9d62c9b71" }, "downloads": -1, "filename": "kittyfuzzer-0.7.3.tar.gz", "has_sig": false, "md5_digest": "ac19598ed0189150e2e11c45765e6430", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 387687, "upload_time": "2019-02-22T10:38:59", "url": "https://files.pythonhosted.org/packages/dc/0c/b1114e6648dae012542696d735e17d54075251e28072d6050ff176c306ba/kittyfuzzer-0.7.3.tar.gz" } ], "0.7.4": [ { "comment_text": "", "digests": { "md5": "1f444e72bdf2bae8c42ecca033b62a24", "sha256": "673ea19e411bf58fc6931273eee99b9569d43d02126f16ce598ef85de2ee5c9d" }, "downloads": -1, "filename": "kittyfuzzer-0.7.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1f444e72bdf2bae8c42ecca033b62a24", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 433463, "upload_time": "2019-02-22T10:58:36", "url": "https://files.pythonhosted.org/packages/01/29/bc9c94f3e30fe6e7c7cdd6400a42ce9f129bd25b2c4602325c01e74bc7cf/kittyfuzzer-0.7.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "18a8301f4789e4cfc6183ecba2fd9ddc", "sha256": "303e069bcea0e7ca09f61aa1522e408bfcc564084727ccfa675898cc58c91a85" }, "downloads": -1, "filename": "kittyfuzzer-0.7.4.tar.gz", "has_sig": false, "md5_digest": "18a8301f4789e4cfc6183ecba2fd9ddc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 387694, "upload_time": "2019-02-22T10:58:40", "url": "https://files.pythonhosted.org/packages/9f/38/6cb4fc6269a8193d41655b69d64518730e073ae7b5a3ff54a51e6a7599ee/kittyfuzzer-0.7.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1f444e72bdf2bae8c42ecca033b62a24", "sha256": "673ea19e411bf58fc6931273eee99b9569d43d02126f16ce598ef85de2ee5c9d" }, "downloads": -1, "filename": "kittyfuzzer-0.7.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1f444e72bdf2bae8c42ecca033b62a24", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 433463, "upload_time": "2019-02-22T10:58:36", "url": "https://files.pythonhosted.org/packages/01/29/bc9c94f3e30fe6e7c7cdd6400a42ce9f129bd25b2c4602325c01e74bc7cf/kittyfuzzer-0.7.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "18a8301f4789e4cfc6183ecba2fd9ddc", "sha256": "303e069bcea0e7ca09f61aa1522e408bfcc564084727ccfa675898cc58c91a85" }, "downloads": -1, "filename": "kittyfuzzer-0.7.4.tar.gz", "has_sig": false, "md5_digest": "18a8301f4789e4cfc6183ecba2fd9ddc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 387694, "upload_time": "2019-02-22T10:58:40", "url": "https://files.pythonhosted.org/packages/9f/38/6cb4fc6269a8193d41655b69d64518730e073ae7b5a3ff54a51e6a7599ee/kittyfuzzer-0.7.4.tar.gz" } ] }