SLIDE 21 15th Usenix Security Symposium | July 31st – August 4th 2006 | Vancouver B.C. - Canada
Common software engineering practices applied
- Build re-usable components
–
“LSD Win32 Assembly components”
–
http://www.milw0rm.com/shellcode/
–
http://www.metasploit.com/shellcode.html
–
Attack vector
–
Control of execution flow
–
Payload
–
Enconding/(Un)Marshalling
–
Connection methods for command and control
–
“Stagers”
–
Stack overflow, FP, Heap oveflow, SEH,
–
Return-into-libc, signal handlers, GOT, PLT, vpointers, DEP, etc...
- Avoid detection and prevention
–
Polymorphism, metamorphism, fragmentation, multiple enconding
–
StackGuard/Shield/Propolice/ASR/Syscall throttling/API hooking/etc
–
Syscall proxying and other multi-purpose agents, stealthness, rootkits
- A new generation of shellcode experts?
"The Shellcode Generation" - IEEE S&P magazine vol.2 no.5
EXPLOIT CODE & SHELLCODE