Buffer Overflow
Introductions
- Buffer Overflow Attack - Computerphile: https://www.youtube.com/watch?v=1S0aBV-Waeo
 - Binary Exploitation - Buffer Overflow Explained in Detail: https://0xrick.github.io/binary-exploitation/bof1/
 
Testing tools
- Program to detect the existence of remote / local stack-based buffer-overflow vulnerabilities (FTP, IMAP, POP3 and SMTP): https://github.com/iricartb/buffer-overflow-vulnerability-services-tester-tool
 - https://hakin9.org/bovstt-buffer-overflow-vulnerability-services-tester-tool/
 
Generating Random Patterns
locate pattern_create
pattern_create.rb 2700
pattern_offset.rb 39624438
Bad characters
- Use all hex combinations and append that to buffer (\x01\x02)
 
Finding Gadgets
When main program is not memory protected
EDB -> Op code searcher
Example : ESP -> EIP
When main program is memory protected
- Find a var that loads a memory location into and offset that
 - Find a module with no memory protection and memory module address (base) does not contain any bad characters
 
!mona modules
- Open modules and open the selected module (e)
 - 
Search for a instructions
- JUMP ESP
 - PUSH ESP
 - RTN
 
 - 
If not found look at modules list (m) and check in other sections (if DEP or ASLR is not enabled)
 
nasm_shell
  > jmp esp (to get get opcode)
  > FF E4
!mona find -s "\xff\xe4" -m slmfc.dll