
파이썬으로 작성된 퍼징 프레임워크
| Sulley: Boo? | Boo: 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 기반으로 만든 코드를 사용할 수 있지만, 즉시 사용 가능한(out-of-the-box) 퍼저는 아닙니다.
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>_버그를 찾았나요?
이슈를 열어주세요 <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