420 likes | 546 Vues
Join Iñaki Rodríguez, a seasoned security manager, as he dives deep into the world of fuzzing. Learn how to make applications and networks fail by feeding them various inputs, exploring real vulnerabilities and common issues. Discover the tools and methodologies needed for effective fuzz testing, from unpackers and debugging utilities to automation and data inventory. Understand the importance of a security development lifecycle (SDL) and grasp the significance of responsible disclosure in security practices. Equip yourself with knowledge to protect your software better.
E N D
Show me your Kung Fuzz No Con Name2011 @virtualminds_es / irodriguez at virtualminds.es
Whoisthisguy? • Iñaki Rodríguez • CISSP, CEH • Security Manager at Ackstorm S.L.
Aboutfuzzing • Attempting to cause a program or network to fail by feeding it randomly (or not so) generated data. • Generate a lot of craptocrashanapplication.
Targets • Understandthemostbasicconcepts of fuzzing • Complexity vs Knoweldge • Notyourbussines • Real vulnerabilities • Commonissues
WhyweFuzz • Wedon’t trust our software • Wedon’t trust ourproviders software • $$$ or €€€ • CorporateImage
THE lab (I) • Virtual Servers • Lot of memory • Fasthard disk (SSD) • Snapshotshelpstorevert
THE lab (II) • Physical Servers • Old Hardware • More isbetter • Youlostsnapshots • Butyouhavedeepfreezeand fssnapshots
Software • Unpackers (upx, aspack, *lordpe, *importRec, PeID …) • (Un)Compressors (7zip) • Sysinternal suite • Api Monitor • InterpretedLanguages (perl y python) • Debuggers(gdb, radare, ImmunityDebugger, Olly, …) • Decompilers (Ida Free, Ida Pro $$$ y theother)
inventory • CMDB • Nmap (-sV) • OcsInventory • Repositories
Automatinginventory • Database • CPE Normalization • Stats (use, vulnerabilities, …) • Informationfromoutside (securitylists, osvdb, nvd, …) • Scripting isyourfriend
Clasificationcriteria • Qualitative • Vulnerabilitiesimpact • Complexity • Widelyused • Personal preferences • Cuantitative • Number of installations • Number of knownvulnerabilities • Assetvalue • Visibility (local, remote) • Number of threats (none, few, many)
FuzzingModels • Mutation (Dumbfuzzing) • Generation (Smart fuzzing)
Knowyourenemy • Whatkind of applicationis? • Network Services • Web Applications • Libraries • ActiveX • Whatkind of inputs? • Command Line • Files • Network • Forms • Environment Variables • Url • …
Files (I) • Ifwe are lucky, previouslydocumented • www.wotsit.org • www.fileformat.info • 010 Editor / Hexedit / Others. • Ifnotdocumented • Throughvalid files repository • Google – ext:svg • Bing – type:svg • Reverse engineering
Files (II) • SomeinterestingAPIs • CreateFile / CloseHandle / open / close • Lseek • WriteFile / ReadFile / write / read
Files (III) eax=00000000 cmpwordptr [eax+edx*2],0ffffh
Network services (I) • Open protocols (RFC) • Sniffingtrafficbetweenclient and server • Whataboutclients? • Frompcaptomodel
DEMO I – Network Services • ACTFAX FTP SERVER • Video: http://www.youtube.com/watch?v=yOKVIgZso4M • Python • Sulley • Paimei
Libraries (I) • Probablywelldocumented • “Hidden” api • Exported symbols • Argumentsguessing
DEMO II – LIBRARY • ASPEMAIL • Video: http://www.youtube.com/watch?v=7DxXiChy_Oc • Perl • Vbscript • Do ityourself • Windbg
Active x (I) • Probablywelldocumented • Internet Explorer only • ActiveX Interfaces • AxMan / Comraider
Web applications (I) • Lot of documentation • Notonlyurl (Headers, cookies, methods,…) • Ajax / Javascript / Apptesting • OWASP
Commonproblems • Encryption • Checksum • Unknownformat/protocol/whatever • Relations • Conditions • Codecoverage
AND nowwhat? • Responsibledisclosure • Sellit • Exploit • Patch (binaryorsource) • Full disclosure • IDS signature
Improvements • Parallelprocessing • Modifiedapplication • In-memoryfuzzing • Reversingskillsneeded • Codecoverage
In memoryfuzzing Breakpoint sub_0xC0FF33 Takesnapshot Change input Input interaction Exception? Jumptosnapshot Restoresnapshot End sub Jumptosnapshot
Thanks (ackstormteam) Juan Carlos Fer Joan Carles Me Joan Pau Xavi Jordi Gonzalo Toni Victor