Hello to all concerned. I recently started to play/work with Sulley and it has some really nice features which make it stand out from other fuzzers like Spike. The main benefits to using sulley are that (1) it doesn't require a third party debugger (pydbg), (2) if the program crashes it will record the data in a capture file for later analysis and (3) it will automatically restart the program and continue fuzzing.
The really big issue I had with Sulley was the lack of proper installation instructions. There are allot of guides out there and non of them seem to paint the complete picture. That's why I decided to write this guide based on three tutorials I pieced together to help anyone out who wants to give it a go. This install guide is currently fully functional on my "Windows 7 32-bit" VM.
Faze 1: Setting up your windows path
We will first set up the windows path and include all the things we are going to install/need in this tutorial so we don't have to keep coming back to it later.
(1) click start -> right-click "computer" select properties -> select "Advanced system settings" -> select "Environment Variables" (2) Under "System variables" scroll down till you see "Path", select it and edit. Append the following to the "Variable value" -> ";C:\Python27\;C:\Python27\scripts\;C:\MinGW\bin;C:\Program Files\sliksvn\bin"
Faze 2: Get SilkSVN
Head over to the SilkSVN website here and download/install..
Faze 3: Get MinGW
Head over to the MinGW website here and download/install, make sure to check the box to install the c++ compiler.
Faze 4: Get WinPcap
You need two packages. First head here to the WinPcap Download page and install. Then go here to get the WinPcap Developers Pack and extract the archive somewhere with easy access (we will need this later to install pcapy).
Faze 5: Get Python
Just head here to the Python website and download/install the 2.7.x version.
Faze 6: Fix Python to work with MinGW
Later we will need to do some compilation which will throw up an error about gcc not having a module called "mno-cygwin". This module has been depreciated since 2010 (I think). Browse to C:\Python27\Lib\distutils and edit "cygwinccompiler.py" with your favorite text editor. Press Ctrl-f to search for "-mno-cygwin" (there should be 5 instances), delete them and then save the file.
Faze 7: Get Git for windows
Head over to the Git website here and download/install..
Faze 8: Get Pydbg
Open a cmd prompt and and do the following:
(1) git clone https://Fitblip@github.com/Fitblip/pydbg.git (2) cd pydbg (3) python setup.py install
Faze 9: Get libdasm
Open a cmd prompt and and do the following:
(1) svn checkout http://libdasm.googlecode.com/svn/trunk/ libdasm-read-only (2) cd libdasm-read-only/pydasm (3) python setup.py build_ext -c mingw32 (4) python setup.py install
Faze 10: Get Pcapy
Download the Pcapy zip here. When installing Pcapy we will need to use the WinPcap developers pack we downloaded earlier so take note of that directory (eg: C:\WpdPack412\....). Extract the archive browse to the folder in cmd and do the following:
(1) python setup.py build_ext -c mingw32 -I “C:\WpdPack412\WpdPack\Include” -L “C:\WpdPack412\WpdPack\Lib” (2) python setup.py install
Faze 11: Get Impacket
Download the Impacket zip here and extract the archive. Browse to the folder in cmd and do the following:
python setup.py install
Faze 12: Get The Sulley Framework
Open a cmd prompt and and do the following:
svn checkout http://sulley.googlecode.com/svn/trunk/ sulley-read-only
Sulley