
























Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
Introduction to SPIKE, Fuzzer Creation Kit, Demo and Vulnerability, Using the SPIKE API, Samples included with SPIKE, How the SPIKE API works, SPIKE Datastructure and many other topics of Computer Network can be find in my documents.
Typology: Slides
1 / 32
This page cannot be seen from the preview
Don't miss anything!
Demo and Vulnerability
Theory
● Goals ● Using the SPIKE API ● Useful samples included with SPIKE
Questions throughout and at end
SPIKE is a GPL'd API and set of tools that allows you to quickly create network protocol stress testers
Most protocols are built around extremely similar data formatting primitives
Many of these are already supported in SPIKE
Others soon will be. :>
Find new vulnerabilities by
● Making it easy to quickly reproduce a complex binary protocol
● Develop a base of knowledge within SPIKE about different kinds of bugclasses affecting similar protocols
● Test old vulnerabilities on new programs
● Make it easy to manually mess with protocols
A SPIKE is a kind of First In First Out Queue or
“Buffer Class”
A SPIKE can automatically fill in “length fields”
● s_size_string(“post”,5);
● s_block_start(“Post”);
● s_string_variable(“user=bob”);
● s_block_end(“post”);
Length fields come in many varieties
More than one length field can “listen” for
a particular block to be closed
Blocks can be nested or intertwined
Basic TCP connectivity
● spike_tcp_connect(host,port);
● spike_send();
● spike_close_tcp();
Basic UDP Connectivity
● spike_udp_connect(host,port);
● spike_send();
Size values will automatically get updated
Can handle binary data cleanly via s_binary();
Already knows about many different types of interesting strings to use for fuzzstrings
Integrates cleanly with libntlm or other GPL’d libraries in C for doing encryption or other things for which you don’t already have perl modules
Use Ethereal to cut and paste the packets into s_binary();
Replace as much of the protocol as possible with deeper level spike calls
● s_xdr_string(); s_word(); etc
Find length fields and mark them out with size calls and s_block_start(), s_block_end();
Make sure protocol still works :>
Integrate with fuzzing framework (2 while() loops) and let the SPIKE fuzzer do the boring work
Manually mess with the packets to see if you can cause any aberrant behaviour (attach ollydebug first)
Write up the exploits
Web Focused
MSRPC protocol support
Miscellaneous other demos
msrpcfuzz
Citrixfuzz
Quake,halflife (UDP demos)
ntlm2/ntlm_brute
webmitm
makewebfuzz.pl
webfuzz.c
closed_source_web_server_fuzzer
generic_web_server_fuzz
Tries to do a dictionary attack on NTLM authenticating web servers
Somewhat slow but easy to parallelize
Very simple to use with provided do_ntlm_brute.sh
Ntlm2 useful for doing “webfuzz” activity on a page that requires NTLM authentication