๐งExploit Development Tools
Hello.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char *ptr = malloc(30);
strncpy(ptr, "Hello World", 11);
printf("%s - ", ptr);
free(ptr);
puts("First Program");
return 0;
}gcc hello.c -o hello
./helloTool: ldd
Tool: objdump
Getting the Global Offset Table (GOT) and Procedure Linkage Table (PLT)
Finding References to Constant Strings
Step 1: Using strings
Step 2: Using objdump
Tool: strace
Install strace
Run strace
Trace/Filter Specific System Call
Program behavior if write function is not implemented
Inject Error EAGAIN
Injecting Delays
Reference
Tool: ltrace
Install ltrace
Run ltrace
Display System Calls
Tool: checksec
Install checksec
Run checksec
Compile hello.c with security mitigations
Run hello-stronger
libc-database
Clone libc-database
Download libc version for Kali
Find libc versions
Get puts offset
Find script
Online Database
Tool: patchelf
Install patchelf
Patching hello binary
Tool: one_gadget
Manually Using Strings and objdump
Getting offeset address using strings
Look for references using objdump
Using the one_gadget Tool
Install one_gadget
Run one_gadget
Tool: Ropper
Install Ropper
Create a ROP Chain
Extending gdb with Python
GDB Scripts
Pwntools CTF Framework and Exploit Development Library
Install pwntools
Summary of Features
Packing and Unpacking Strings
Assemble and Dissamble Code
ELF symbol resolver
leak-bof.c
leak-bof.c
leak-bof-exploit.py
HeapME (Heap Made Easy) Heap Analysis and Collaboration Tool
Install HeapME
heapme_demo.c
Register and Login
Debug ./heapme_demo
Last updated