HF 2021 - Call for Papers

House of Heap Exploitation
2021-11-19, 18:30–22:30, Hackfest - Track 1

Heap exploitation is an incredibly powerful tool for a hacker. As exploit mitigations have made exploitation more difficult, modern exploit development has moved to the heap. However, heap exploitation is a subject that has evaded many people for years for one reason: they focus on the techniques instead of the allocator. By learning with an allocator first style, the techniques are easily understood and practical to use.

This workshop is for learning heap exploit development in GLibC Malloc, which is the deallocate allocator on most Linux distros. With this hands-on introduction into GLibC Malloc heap exploitation you will learn how the allocator functions, heap specific vulnerability classes and how to pwn with a variety of techniques. Whether you're an avid CTFer, trying to beat a pwnables challenge or exploiting 0-days, this course is good for adding another tool to the tools arsenal. After taking this course you will understand the GLibC Malloc allocator, be able to discover heap specific vulnerability classes and pwn the heap with a variety of techniques, with the capability to easily learn more.

The workshop starts with an introduction to how the allocator works then dives into heap specific vulnerability classes. Once the ground-work is set, 3 different techniques specific to the allocator are analyzed, which are only possible after going through the previous two sections. Understanding how the allocator works is crucial to pwning the heap!

If you plan on taking the workshop, please do two things:
- Install the virtual machine (VM) prior to the workshop. It is about 3.5 Gb and the link is below with installation steps: https://drive.google.com/drive/folders/1MmMP-oVf7hZYnRwLV06KKXn_K9__NQfV?usp=sharing
- Join the slack channel! We will be placing content and answering questions in here: https://join.slack.com/t/heapworkshoph-4um8827/shared_invite/zt-yjqhuvxf-3eBDGhW0px4c_7PUS2pwow

The outline for the workshop is below:
- Module 1 - Introduction to the GLibC Heap Allocator:
- Basic Data structures
- Chunks
- Bins (Free Chunks Handling)
- Challenge #1: Fixing a chunk
- Arenas
- Malloc & Free Ordering
- Challenge #2: Heap feng shui (if time permits)
- Module 2 - Heap Vulnerability Classes:
- Ideal heap environment testing setup
- Heap buffer overflows
- Use after frees
- Double frees
- Challenge #3: Use after free
- Module 3 - Fd Poisoning:
- Understanding the TCache Bin
- Exploiting fd pointers
- Fastbin Variation
- Challenge #4: Fd Poison
- Module 4: Unlink:
- Understanding the original bins (unsorted, small and large)
- Removing a chunk from a bin
- Unlink attack for arbitrary write primitive
- Unsafe unlink attack
- Challenge #5: Unlink Attack
- Module 5 - Overlapping Chunks:
- Understanding the size and prev_size chunk metadata
- Corrupting the size field
- Overlap chunks by growing and shrinking
- Other variations
- Challenge #6: Overlap two chunks
- Conclusion

Are you releasing a tool? – no Have this talk already be given? – yes