SlideShare a Scribd company logo
AFL - 4Fun & Pr0fit
Muhammad Sahputra - Chief Executive Officer @ Mahapatih.ID
<rasyid /at/ mahapatih.id>
Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
–Erlend Oftedal
https://www.youtube.com/watch?v=DFQT1Yx
vpDo&t=2109s
Basic Fuzzing
• Throw garbage at an application, and see if you hit
something
• Sample application: PNG parser
$ cat /dev/urandom | convert -in — -out data.png
Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
Mutational Fuzzer
• Mutate valid input
• flip bits
• relocate data
• More effective than random
• May run the same thing over and over again
Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
Grammar Fuzzer
• Define rules for how the input should be changed
• Better control over input - good for structured data
• Time consuming to setup - knowledge
Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
Feedback-based Fuzzer
• Application feedback - instrumentation / coverage data
• Slower, but less repetition
• High effectiveness
• For best result, requires source code (compile time
instrumentation)
Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
AFL
• American Fuzzy Lop
• Developed by Michal Zalewski (@lcamtuf)
• Opensource: http://lcamtuf.coredump.cx/afl/
• Optimized and smart
Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
Installing AFL
$ git clone https://github.com/google/AFL.git
$ cd AFL
$ make
$ cd llvm_mode && make && cd ..
$ cd libdislocator/ && make && sudo cp libdislocator.so /usr/local/lib && cd
..
$ sudo make install
Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
LLVM: Fuzzing non-x86
• Instrumentation is CPU-independent
• Build afl-fuzz with AFL_NO_X86=1
Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
Workflow
1. Compile the target binary with AFL
2. Find a test corpus
3. Run the fuzzer
4. Triage the findings
5. Profit..!
Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
Compile the target binary with AFL
• CC / CXX - standard env variable for configuration with C / C++ compiler to use:
- afl-gcc / afl-g++
- afl-clang / afl-clang++
- afl-clang-fast / afl-clang-fast++
• AFL_INST_RATIO - instrumentation ratio (0-100%)
• AFL_HARDEN=1 - adds code hardening (includes -D_FORTIFY_SOURCE=2 and -fstack-
protector-all
See https://github.com/google/AFL/blob/master/docs/env_variables.txt for more
Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
Find a test corpus
$ afl-cmin -i <in folder> -o <out folder> — <binary to run> <options to binary> @@
$ afl-tmin -i <test case file> -o <minimized file> — <binary to run> <options to binary> @@
• Files from unit / integration tests
- Source code repo / github / sample folders
• Optimization: Minimize the list of the cases
• Optimization: Minimize each test file
Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
Run the Fuzzer
$ screen -S <fuzzing session name> /bin/bash -c "afl-fuzz -i <input> -o <output> -M fuzzer1 -- /path/to/app“ [Master]
ctrl+a-c [to create new window]
$ afl-fuzz -i <input> -o <output> -S fuzzer2 -- /path/to/app [Slave]
ctrl+a-c [to create new window]
$ afl-fuzz -i <input> -o <output> -S fuzzer3 -- /path/to/app [Slave]
…
…
ctrl+a “ [to list all windows of running session]
Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
Triage the Findings
• Runt the crash files through normal binary
- Compile without afl
- Possibly use address sanitizer or memory sanitizer
- GDB exploitable plugin: https://github.com/jfoote/exploitable
- GDB exploit development plugin: https://github.com/longld/peda
Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
Triage the Findings
• Report findings to dev team
• Fix if you are part of dev team
• Responsible disclosure (i.e bug bounty)
• Simply keep the bug for yourself and develop reliable exploit for
more $$$ ;)
Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
DEMO
rapidjson
1. Compile the target binary without AFL and have an understanding of how it
works
2. Compile the target binary with AFL to insert instrumentation
3. Find a test corpus
4. Run the fuzzer
5. Triage the findings
6. Profit..!
Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
Compile the target binary without AFL
$ git clone https://github.com/Tencent/rapidjson.git
$ cd rapidjson
$ mkdir build && cd build && cmake ..
$ make
We’re going to fuzz one
of these sample tool:
jsonx
Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
What is jsonx about?
- JSON to JSONx conversion example, using SAX API.
- JSONx is an IBM standard format to represent JSON as XML.
- JSONx parses JSON text from stdin with validation, and convert to JSONx format to stdout.
- https://www-01.ibm.com/support/knowledgecenter/SS9H2Y_7.1.0/com.ibm.dp.doc/json_jsonx.html
See https://github.com/Tencent/rapidjson/blob/master/example/jsonx/jsonx.cpp for more
Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
Compile the target binary with AFL
Research Team Sharing Session - PT Mahapatih Sibernusa
Find test corpus
- Find good test data to seed fuzzing.
- Test data usually readily available throughout the internet.
- Even better, some repo in github already included fuzzing data we can use.
- https://github.com/DaveGamble/cJSON/tree/master/tests/inputs for example
- Make sure uninstrumented binary can use the test data
Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
Corpus minimization: afl-cmin
• Minimize the list of the cases
• According to AFL, only 12 of 15 test files are ‘good’ enough to
seed the fuzzing
Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
Corpus minimization: afl-tmin
• Minimize each test case file
Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
Run the Fuzzer
- AFL utilize CPU core. Use dedicated machine (not shared hosting).
- Check CPU core availability before starting
- Use screen to run several fuzzing session against one target (master + slave)
Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
Triage the findings
- We can observe further and analyze the crash without interrupting the running fuzzer.
- All result availabe under “output” folder.
- Folder “crashes” contains all input that causes crash on fuzzed binary app.
Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
Triage the findings
- Use GDB and several plugins to analyse the crashes.
- Exploitable plugin shows if the crash potentially security related.
- PEDA plugin have several features required to help us develop reliable exploit.
- $ gdb ./jsonx
- $ source ~/exploitable/exploitable/exploitable.py
- $ source ~/peda/peda.py
- $ r < ~/mst/instr/rapidjson/build/fuzzing/output/fuzzer7/crashes/<choose one of the input file that
generate crash>
- use “exploitable” or “peda features” to analyse further
Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
Triage the findings
Exploitable!
Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
Profit
• Fuzzing is an art, need lot of practice to sharpen your sense and skill
• Again, practice makes perfect!
• Tons of application in github to start, make your hand ditry right away
• Fuzz your own apps (e-commerce backend system, banking apps, etc)
• I will continue with more advanced topic later such as distributed fuzzing, fuzzing using libFuzzer, etc
• Ping me if you’re really enjoying the art of hardcore hacking, so we can fuzz together, or develop smart
fuzzer for better future ;) [twitter: @cyberheb / linkedin:
https://www.linkedin.com/in/muhammadsahputra/]
Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
END

More Related Content

PDF
Kernel Recipes 2017: Using Linux perf at Netflix
PDF
Puppet evolutions
PDF
Puppet Continuous Integration with PE and GitLab
PPTX
Django Deployment-in-AWS
PDF
Developing IT infrastructures with Puppet
PDF
Puppet Systems Infrastructure Construction Kit
PDF
How to Reverse Engineer Web Applications
PDF
Puppet control-repo 
to the next level
Kernel Recipes 2017: Using Linux perf at Netflix
Puppet evolutions
Puppet Continuous Integration with PE and GitLab
Django Deployment-in-AWS
Developing IT infrastructures with Puppet
Puppet Systems Infrastructure Construction Kit
How to Reverse Engineer Web Applications
Puppet control-repo 
to the next level

What's hot (20)

PDF
How to inspect a RUNNING perl process
PDF
Python Debugging Fundamentals
PDF
Debugging PHP with Xdebug - PHPUK 2018
PDF
Profiling your Applications using the Linux Perf Tools
PDF
Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)
PDF
Kicking off with Zend Expressive and Doctrine ORM (ZendCon 2016)
PDF
Javascript TDD with Jasmine, Karma, and Gulp
PDF
Nginx pres
PDF
What you need to remember when you upload to CPAN
PDF
fg.workshop: Software vulnerability
PDF
PHP & Performance
PDF
Puppet modules: An Holistic Approach
PPTX
Shellcode mastering
PDF
Can you upgrade to Puppet 4.x?
PPTX
Troubleshooting Puppet
PDF
Devel::NYTProf 2009-07 (OUTDATED, see 201008)
PDF
Setup of EDA tools and workstation environment variables in NCTU 307 Lab. wor...
PDF
Shellcode injection
PDF
Puppet Camp Paris 2016 Data in Modules
PPTX
Web backends development using Python
How to inspect a RUNNING perl process
Python Debugging Fundamentals
Debugging PHP with Xdebug - PHPUK 2018
Profiling your Applications using the Linux Perf Tools
Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)
Kicking off with Zend Expressive and Doctrine ORM (ZendCon 2016)
Javascript TDD with Jasmine, Karma, and Gulp
Nginx pres
What you need to remember when you upload to CPAN
fg.workshop: Software vulnerability
PHP & Performance
Puppet modules: An Holistic Approach
Shellcode mastering
Can you upgrade to Puppet 4.x?
Troubleshooting Puppet
Devel::NYTProf 2009-07 (OUTDATED, see 201008)
Setup of EDA tools and workstation environment variables in NCTU 307 Lab. wor...
Shellcode injection
Puppet Camp Paris 2016 Data in Modules
Web backends development using Python
Ad

Similar to Afl - 4fun and pr0fit (20)

PDF
Fuzzing underestimated method of finding hidden bugs
PDF
Fuzzing softwares for bugs - OWASP Seasides
PDF
FUZZING & SOFTWARE SECURITY TESTING
PDF
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
PDF
Az4301280282
PPTX
Blaze Information Security: Slaying bugs and improving software security thro...
PDF
[Wroclaw #4] Fuzzing - underestimated method of finding hidden bugs
PDF
Fuzzing: The New Unit Testing
PDF
Finding Bugs FASTER with Fuzzing
PPT
Perform fuzz on appplications web interface
PDF
Масштабируемый и эффективный фаззинг Google Chrome
PPTX
Dagstuhl2021
PPTX
Fuzzing.pptx
PPTX
American Fuzzy Lop
PDF
Fuzzing and You: Automating Whitebox Testing
PPTX
OWASP Poland Day 2018 - Jakub Botwicz - AFL that you do not know
PDF
Fuzzing Linux Kernel
PPTX
Binary Analysis - Luxembourg
PDF
Fuzzing - Part 2
PDF
XPDDS17: Using American Fuzzy Lop on the x86 Instruction Emulator - George Du...
Fuzzing underestimated method of finding hidden bugs
Fuzzing softwares for bugs - OWASP Seasides
FUZZING & SOFTWARE SECURITY TESTING
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Az4301280282
Blaze Information Security: Slaying bugs and improving software security thro...
[Wroclaw #4] Fuzzing - underestimated method of finding hidden bugs
Fuzzing: The New Unit Testing
Finding Bugs FASTER with Fuzzing
Perform fuzz on appplications web interface
Масштабируемый и эффективный фаззинг Google Chrome
Dagstuhl2021
Fuzzing.pptx
American Fuzzy Lop
Fuzzing and You: Automating Whitebox Testing
OWASP Poland Day 2018 - Jakub Botwicz - AFL that you do not know
Fuzzing Linux Kernel
Binary Analysis - Luxembourg
Fuzzing - Part 2
XPDDS17: Using American Fuzzy Lop on the x86 Instruction Emulator - George Du...
Ad

Recently uploaded (20)

PDF
Smart Home Technology for Health Monitoring (www.kiu.ac.ug)
PPTX
1402_iCSC_-_RESTful_Web_APIs_--_Josef_Hammer.pptx
PDF
Uptota Investor Deck - Where Africa Meets Blockchain
PPTX
Funds Management Learning Material for Beg
PPT
250152213-Excitation-SystemWERRT (1).ppt
PDF
SlidesGDGoCxRAIS about Google Dialogflow and NotebookLM.pdf
PDF
The New Creative Director: How AI Tools for Social Media Content Creation Are...
PPTX
Introduction to cybersecurity and digital nettiquette
PPTX
artificial intelligence overview of it and more
PDF
mera desh ae watn.(a source of motivation and patriotism to the youth of the ...
PPT
415456121-Jiwratrwecdtwfdsfwgdwedvwe dbwsdjsadca-EVN.ppt
PPTX
Internet Safety for Seniors presentation
PPTX
t_and_OpenAI_Combined_two_pressentations
PPTX
Mathew Digital SEO Checklist Guidlines 2025
PDF
📍 LABUAN4D EXCLUSIVE SERVER STAR GAMING ASIA NO.1 TERPOPULER DI INDONESIA ! 🌟
PDF
The Ikigai Template _ Recalibrate How You Spend Your Time.pdf
PDF
📍 LABUAN4D EXCLUSIVE SERVER STAR GAMING ASIA NO.1 TERPOPULER DI INDONESIA ! 🌟
PDF
simpleintnettestmetiaerl for the simple testint
PPTX
Layers_of_the_Earth_Grade7.pptx class by
PPTX
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION
Smart Home Technology for Health Monitoring (www.kiu.ac.ug)
1402_iCSC_-_RESTful_Web_APIs_--_Josef_Hammer.pptx
Uptota Investor Deck - Where Africa Meets Blockchain
Funds Management Learning Material for Beg
250152213-Excitation-SystemWERRT (1).ppt
SlidesGDGoCxRAIS about Google Dialogflow and NotebookLM.pdf
The New Creative Director: How AI Tools for Social Media Content Creation Are...
Introduction to cybersecurity and digital nettiquette
artificial intelligence overview of it and more
mera desh ae watn.(a source of motivation and patriotism to the youth of the ...
415456121-Jiwratrwecdtwfdsfwgdwedvwe dbwsdjsadca-EVN.ppt
Internet Safety for Seniors presentation
t_and_OpenAI_Combined_two_pressentations
Mathew Digital SEO Checklist Guidlines 2025
📍 LABUAN4D EXCLUSIVE SERVER STAR GAMING ASIA NO.1 TERPOPULER DI INDONESIA ! 🌟
The Ikigai Template _ Recalibrate How You Spend Your Time.pdf
📍 LABUAN4D EXCLUSIVE SERVER STAR GAMING ASIA NO.1 TERPOPULER DI INDONESIA ! 🌟
simpleintnettestmetiaerl for the simple testint
Layers_of_the_Earth_Grade7.pptx class by
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION

Afl - 4fun and pr0fit

  • 1. AFL - 4Fun & Pr0fit Muhammad Sahputra - Chief Executive Officer @ Mahapatih.ID <rasyid /at/ mahapatih.id> Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
  • 3. Basic Fuzzing • Throw garbage at an application, and see if you hit something • Sample application: PNG parser $ cat /dev/urandom | convert -in — -out data.png Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
  • 4. Mutational Fuzzer • Mutate valid input • flip bits • relocate data • More effective than random • May run the same thing over and over again Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
  • 5. Grammar Fuzzer • Define rules for how the input should be changed • Better control over input - good for structured data • Time consuming to setup - knowledge Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
  • 6. Feedback-based Fuzzer • Application feedback - instrumentation / coverage data • Slower, but less repetition • High effectiveness • For best result, requires source code (compile time instrumentation) Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
  • 7. AFL • American Fuzzy Lop • Developed by Michal Zalewski (@lcamtuf) • Opensource: http://lcamtuf.coredump.cx/afl/ • Optimized and smart Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
  • 8. Installing AFL $ git clone https://github.com/google/AFL.git $ cd AFL $ make $ cd llvm_mode && make && cd .. $ cd libdislocator/ && make && sudo cp libdislocator.so /usr/local/lib && cd .. $ sudo make install Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
  • 9. LLVM: Fuzzing non-x86 • Instrumentation is CPU-independent • Build afl-fuzz with AFL_NO_X86=1 Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
  • 10. Workflow 1. Compile the target binary with AFL 2. Find a test corpus 3. Run the fuzzer 4. Triage the findings 5. Profit..! Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
  • 11. Compile the target binary with AFL • CC / CXX - standard env variable for configuration with C / C++ compiler to use: - afl-gcc / afl-g++ - afl-clang / afl-clang++ - afl-clang-fast / afl-clang-fast++ • AFL_INST_RATIO - instrumentation ratio (0-100%) • AFL_HARDEN=1 - adds code hardening (includes -D_FORTIFY_SOURCE=2 and -fstack- protector-all See https://github.com/google/AFL/blob/master/docs/env_variables.txt for more Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
  • 12. Find a test corpus $ afl-cmin -i <in folder> -o <out folder> — <binary to run> <options to binary> @@ $ afl-tmin -i <test case file> -o <minimized file> — <binary to run> <options to binary> @@ • Files from unit / integration tests - Source code repo / github / sample folders • Optimization: Minimize the list of the cases • Optimization: Minimize each test file Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
  • 13. Run the Fuzzer $ screen -S <fuzzing session name> /bin/bash -c "afl-fuzz -i <input> -o <output> -M fuzzer1 -- /path/to/app“ [Master] ctrl+a-c [to create new window] $ afl-fuzz -i <input> -o <output> -S fuzzer2 -- /path/to/app [Slave] ctrl+a-c [to create new window] $ afl-fuzz -i <input> -o <output> -S fuzzer3 -- /path/to/app [Slave] … … ctrl+a “ [to list all windows of running session] Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
  • 14. Triage the Findings • Runt the crash files through normal binary - Compile without afl - Possibly use address sanitizer or memory sanitizer - GDB exploitable plugin: https://github.com/jfoote/exploitable - GDB exploit development plugin: https://github.com/longld/peda Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
  • 15. Triage the Findings • Report findings to dev team • Fix if you are part of dev team • Responsible disclosure (i.e bug bounty) • Simply keep the bug for yourself and develop reliable exploit for more $$$ ;) Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
  • 16. DEMO
  • 17. rapidjson 1. Compile the target binary without AFL and have an understanding of how it works 2. Compile the target binary with AFL to insert instrumentation 3. Find a test corpus 4. Run the fuzzer 5. Triage the findings 6. Profit..! Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
  • 18. Compile the target binary without AFL $ git clone https://github.com/Tencent/rapidjson.git $ cd rapidjson $ mkdir build && cd build && cmake .. $ make We’re going to fuzz one of these sample tool: jsonx Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
  • 19. What is jsonx about? - JSON to JSONx conversion example, using SAX API. - JSONx is an IBM standard format to represent JSON as XML. - JSONx parses JSON text from stdin with validation, and convert to JSONx format to stdout. - https://www-01.ibm.com/support/knowledgecenter/SS9H2Y_7.1.0/com.ibm.dp.doc/json_jsonx.html See https://github.com/Tencent/rapidjson/blob/master/example/jsonx/jsonx.cpp for more Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
  • 20. Compile the target binary with AFL Research Team Sharing Session - PT Mahapatih Sibernusa
  • 21. Find test corpus - Find good test data to seed fuzzing. - Test data usually readily available throughout the internet. - Even better, some repo in github already included fuzzing data we can use. - https://github.com/DaveGamble/cJSON/tree/master/tests/inputs for example - Make sure uninstrumented binary can use the test data Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
  • 22. Corpus minimization: afl-cmin • Minimize the list of the cases • According to AFL, only 12 of 15 test files are ‘good’ enough to seed the fuzzing Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
  • 23. Corpus minimization: afl-tmin • Minimize each test case file Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
  • 24. Run the Fuzzer - AFL utilize CPU core. Use dedicated machine (not shared hosting). - Check CPU core availability before starting - Use screen to run several fuzzing session against one target (master + slave) Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
  • 25. Triage the findings - We can observe further and analyze the crash without interrupting the running fuzzer. - All result availabe under “output” folder. - Folder “crashes” contains all input that causes crash on fuzzed binary app. Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
  • 26. Triage the findings - Use GDB and several plugins to analyse the crashes. - Exploitable plugin shows if the crash potentially security related. - PEDA plugin have several features required to help us develop reliable exploit. - $ gdb ./jsonx - $ source ~/exploitable/exploitable/exploitable.py - $ source ~/peda/peda.py - $ r < ~/mst/instr/rapidjson/build/fuzzing/output/fuzzer7/crashes/<choose one of the input file that generate crash> - use “exploitable” or “peda features” to analyse further Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
  • 27. Triage the findings Exploitable! Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
  • 28. Profit • Fuzzing is an art, need lot of practice to sharpen your sense and skill • Again, practice makes perfect! • Tons of application in github to start, make your hand ditry right away • Fuzz your own apps (e-commerce backend system, banking apps, etc) • I will continue with more advanced topic later such as distributed fuzzing, fuzzing using libFuzzer, etc • Ping me if you’re really enjoying the art of hardcore hacking, so we can fuzz together, or develop smart fuzzer for better future ;) [twitter: @cyberheb / linkedin: https://www.linkedin.com/in/muhammadsahputra/] Research Team Sharing Session - PT Mahapatih Sibernusa Teknologi
  • 29. END