From 0x90 to 0x4c454554, a journey into exploitation.
In the last few weeks I have been diving deeper down the rabbit hole of exploitation work and with a bit of work and time to prepare myself for the long run I compiled a set of areas to study in a course type layout. I hope my research will help others spend more time learning and less time searching. 
Because I am doing this myself I may have missed 1 or 2 things and along the way I will add in anything I find to help with process. So let us both get started... 
First off I want to thank the corelan guys for the help they have provided me so far in the process. They have been there for me through my learning with knowledge and help. Thank you! 
layout: I will be posting in a hierarchical structure, each hierarchy structure should be fully understood before moving on to the next section. I will also post sets of Parallel learning topics that you can use to study in line with other topics to help prevent monotony. These Parallel areas will have a start and end mark which shows when they should be complete in perspective to the overall learning 
Here is a PDF of the course to help keep track and understand the layout. Course_layout.pdf 
"New background soon -> desktop background Cheatsheet added to documents page Backgrounds 
Other Posts like this one: 
Because of quality of these two posts I wanted to put them at the top. I could not figure out where to put them in the list because they cover so much. 
past-present-future of windows exploitation 
smashing the stack in 2010(Great resource) 
Part 1: Programming
Parallel learning #1:(complete this section before getting to the book "Hacking Art of exploitation") 
While going through the programming area I concentrate on core topics to help us later on with exploit writing. One area that is very good to pick up is some kind of scripting language. Listed below are some of the most popular scripting languages and ones I feel will prove to be the most useful. 
Python: One of my favorite languages and growing in popularity python is a powerful language that is easy to use and well documented. 
Wikibooks Python 
http://docs.python.org/ 
onlinecomputerbooks.com 
Ruby: If you plan on later on working inside of metasploit this may be the language you want to start with. 
Wikibooks Ruby 
LittleBookOfRuby 
onlinecomputerbooks.com 
Perl: An older language that still has a lot of use perl is one of the highest used scripting languages and you will see it used in many exploits. (I would suggest python over perl) 
[book] O'Reilly Learning Perl 
onlinecomputerbooks.com 
C and C++ programming: 
It is very important to understand what you are exploiting so to get started let us figure out what we are exploiting. You do not need to go through all of these but when finished with this section you should have a good understanding of C and C++ programming. 
Cprogramming.com 
http://www.java2s.com/Tutorial/C/CatalogC.htm 
http://beej.us/guide/bgc/ 
onlinecomputerbooks.com 
X86 Assembly: 
Ok now to understand what the computer reads when we compile C and C++. I am going to mostly stick to the IA-32(X86) assembly language. Read the first link to understand why. It explains it very well. 
Skullsecurity: Assembly 
http://en.wikibooks.org/wiki/X86_Assembly 
[book]The Art of Assembly 
Assembly primer for hackers 
Windows Programming: 
This is to help understand what we are programming in and the structure of libraries in the OS. This area is very important far down the line 
http://en.wikibooks.org/wiki/Windows_Programming 
http://www.relisoft.com/win32/index.htm 
[book]Windows Internals 5 
[book]Windows Internals 4 
Disassembly: 
Dissassembly is not as much programming as it is what the computer understands and the way it is interpreted from CPU and memory. This is where we start getting into the good stuff. 
http://en.wikibooks.org/wiki/X86_disassembly 
Part 2: Getting started
Now that we have a very good understanding of programming languages and what the machine is doing we can start working on task at hand, exploitation. 
Here I will start a lot of the learning in very much a list format and adding in comments or Parallel learning areas when needed. 
Smash the stack for fun and profit (Phrack 49) 
C function call conventions and the stack 
[videos] Code Audit from cryptocity.net 
(Parallel learning #1 finished: You should now have finished on Parallel learning 1 and have a good understanding of one of the 3 languages) 
[Book]Hacking art of exploitation [Chapter 1&2] 
Corelan T1 
Corelan T2 
Parallel learning #2:(complete this section before end of part 2) 
(Read the first few posts on this blog has some good info) 
Kspice blog 
(Read some of the post from this blog they are very helpful with starting out with fuzzers.) 
Nullthreat's blog 
(I am linked directly to a demo exploit for this area but this is a useful blog to keep track of for many things) 
A demo exploit 
tenouk.com: Buffer overflow intro 
The Tao of Windows Buffer Overflow 
nsfsecurity on BOF 
Hacker center: BOF 
[video] Buffer overflow Primer 
[Book]Shellcoder's Handbook Ch1&2 
[Book]Hacking art of exploitation [Chapter 3] 
Corelan T3A 
Corelan T3B 
SEH overwrite simplified 
((Parallel learning #2 finished:) 
Part 3:Tools of the trade
This is a list of tools I have started using and find very useful. 
Immunity Debugger 
Ollydbg 
Windbg 
IDA Pro 
explorer suite 
Sysinternals 
And here are some corelan posts on how to use them. I will supply more in future but this is a very good start. 
Corelan T5 
Corelan: Immunity debugger cheatsheet 
Part 4: Network and Metasploit
(Networking) 
Beej.us network programming 
[Book]Hacking art of exploitation [Chapter 4] 
(Metasploit) 
[Video]Security Tube: Metasploit Megaprimer 
Metasploit.com 
Metasploit Unleashed 
Metasploit Louisville Class 
Metasploitable (a target) 
Corelan T4 
intern0t: developing my first exploit 
DHAtEnclaveForensics: Exploit Creation in Metasploit 
Wikibooks Metasploit/Writing Windows Exploit 
Part 5: Shellcode
Corelan T9 
[Book]Shellcoder's Handbook Ch3 
[Book]Hacking art of exploitation [Chapter 5] 
Writing small shellcode 
Shell-storm Shellcode database 
Part 6: Engineering in Reverse
Parallel Learning #3:(constant place to reference and use for reversing) 
[forum]reverse-engineering.net 
Reverse Engineering the World 
Room362.com reversing blog post 
Ethicalhacker.net intro to reverse engineering 
acm.uiuc.edu Intro to Reverse Engineering software 
[Book]Reversing: secrets of reverse engineering 
[video]Reverse Engineering from cryptocity.net 
CrackZ's Reverse Engineering Page 
Reverse engineering techniques 
[GAME]Crackmes.de 
Part 7: Getting a little deeper into BOF
Parallel Learning #4:(To the end of the course and beyond) 
Find old exploits on Exploit-db download them, test them, rewrite them, understand them. 
[video]Exploitation from cryptocity.net 
Buffer overflow protection 
Wikipedia Executable space protextion 
Wikipedia DEP 
Wikipedia ASLR 
Purdue.edu: Canary Bit 
Corelan T6 
Bypassing Hardware based DEP 
Corelan T7 
Corelan T8 
Corelan T10 
Virtual Worlds - Real Exploits 
[GAME]Smash the stack wargaming network 
Part 8: Heap overflow
rm -rf / on heap overflow 
w00w00 on heap overflow 
[book][Book]Shellcoder's Handbook Ch4&5 
h-online A heap of Risk 
[video]Defcon 15 remedial Heap Overflows 
heap overflow: ancient art of unlink seduction 
Memory corruptions part II -- heap 
[book]Read the rest of Shellcoder's Handbook 
Part 9: Exploit listing sites
Exploit-DB 
Injector 
CVE Details 
Packetstorm 
CERT 
Mitre 
National Vulnerability Database 
(bonus: site that lists types of vulnerabilties and info) 
Common Weakness Enumberation 
Part 10: To come
1. Fuzzing 
2. Might be a while but I plan on doing a whole web exploitation post that will be an add to this but a whole new post 
If anyone has any good links to add post a comment and I will try to add them or send me the link and I will review and add it.
From 0x90 to 0x4c454554, a journey into exploitation. 
In the last few weeks I have been diving deeper down the rabbit hole of exploitation work and with a bit of work and time to prepare myself for the long run I compiled a set of areas to study in a course type layout. I hope my research will help others spend more time learning and less time searching. 
Because I am doing this myself I may have missed 1 or 2 things and along the way I will add in anything I find to help with process. So let us both get started... 
First off I want to thank the corelan guys for the help they have provided me so far in the process. They have been there for me through my learning with knowledge and help. Thank you! 
layout: I will be posting in a hierarchical structure, each hierarchy structure should be fully understood before moving on to the next section. I will also post sets of Parallel learning topics that you can use to study in line with other topics to help prevent monotony. These Parallel areas will have a start and end mark which shows when they should be complete in perspective to the overall learning 
Here is a PDF of the course to help keep track and understand the layout. Course_layout.pdf 
"New background soon -> desktop background Cheatsheet added to documents page Backgrounds 
Other Posts like this one: 
Because of quality of these two posts I wanted to put them at the top. I could not figure out where to put them in the list because they cover so much. 
past-present-future of windows exploitation 
smashing the stack in 2010(Great resource) 
Part 1: Programming
Parallel learning #1:(complete this section before getting to the book "Hacking Art of exploitation") 
While going through the programming area I concentrate on core topics to help us later on with exploit writing. One area that is very good to pick up is some kind of scripting language. Listed below are some of the most popular scripting languages and ones I feel will prove to be the most useful. 
Python: One of my favorite languages and growing in popularity python is a powerful language that is easy to use and well documented. 
Wikibooks Python 
http://docs.python.org/ 
onlinecomputerbooks.com 
Ruby: If you plan on later on working inside of metasploit this may be the language you want to start with. 
Wikibooks Ruby 
LittleBookOfRuby 
onlinecomputerbooks.com 
Perl: An older language that still has a lot of use perl is one of the highest used scripting languages and you will see it used in many exploits. (I would suggest python over perl) 
[book] O'Reilly Learning Perl 
onlinecomputerbooks.com 
C and C++ programming: 
It is very important to understand what you are exploiting so to get started let us figure out what we are exploiting. You do not need to go through all of these but when finished with this section you should have a good understanding of C and C++ programming. 
Cprogramming.com 
http://www.java2s.com/Tutorial/C/CatalogC.htm 
http://beej.us/guide/bgc/ 
onlinecomputerbooks.com 
X86 Assembly: 
Ok now to understand what the computer reads when we compile C and C++. I am going to mostly stick to the IA-32(X86) assembly language. Read the first link to understand why. It explains it very well. 
Skullsecurity: Assembly 
http://en.wikibooks.org/wiki/X86_Assembly 
[book]The Art of Assembly 
Assembly primer for hackers 
Windows Programming: 
This is to help understand what we are programming in and the structure of libraries in the OS. This area is very important far down the line 
http://en.wikibooks.org/wiki/Windows_Programming 
http://www.relisoft.com/win32/index.htm 
[book]Windows Internals 5 
[book]Windows Internals 4 
Disassembly: 
Dissassembly is not as much programming as it is what the computer understands and the way it is interpreted from CPU and memory. This is where we start getting into the good stuff. 
http://en.wikibooks.org/wiki/X86_disassembly 
Part 2: Getting started
Now that we have a very good understanding of programming languages and what the machine is doing we can start working on task at hand, exploitation. 
Here I will start a lot of the learning in very much a list format and adding in comments or Parallel learning areas when needed. 
Smash the stack for fun and profit (Phrack 49) 
C function call conventions and the stack 
[videos] Code Audit from cryptocity.net 
(Parallel learning #1 finished: You should now have finished on Parallel learning 1 and have a good understanding of one of the 3 languages) 
[Book]Hacking art of exploitation [Chapter 1&2] 
Corelan T1 
Corelan T2 
Parallel learning #2:(complete this section before end of part 2) 
(Read the first few posts on this blog has some good info) 
Kspice blog 
(Read some of the post from this blog they are very helpful with starting out with fuzzers.) 
Nullthreat's blog 
(I am linked directly to a demo exploit for this area but this is a useful blog to keep track of for many things) 
A demo exploit 
tenouk.com: Buffer overflow intro 
The Tao of Windows Buffer Overflow 
nsfsecurity on BOF 
Hacker center: BOF 
[video] Buffer overflow Primer 
[Book]Shellcoder's Handbook Ch1&2 
[Book]Hacking art of exploitation [Chapter 3] 
Corelan T3A 
Corelan T3B 
SEH overwrite simplified 
((Parallel learning #2 finished:) 
Part 3:Tools of the trade
This is a list of tools I have started using and find very useful. 
Immunity Debugger 
Ollydbg 
Windbg 
IDA Pro 
explorer suite 
Sysinternals 
And here are some corelan posts on how to use them. I will supply more in future but this is a very good start. 
Corelan T5 
Corelan: Immunity debugger cheatsheet 
Part 4: Network and Metasploit
(Networking) 
Beej.us network programming 
[Book]Hacking art of exploitation [Chapter 4] 
(Metasploit) 
[Video]Security Tube: Metasploit Megaprimer 
Metasploit.com 
Metasploit Unleashed 
Metasploit Louisville Class 
Metasploitable (a target) 
Corelan T4 
intern0t: developing my first exploit 
DHAtEnclaveForensics: Exploit Creation in Metasploit 
Wikibooks Metasploit/Writing Windows Exploit 
Part 5: Shellcode
Corelan T9 
[Book]Shellcoder's Handbook Ch3 
[Book]Hacking art of exploitation [Chapter 5] 
Writing small shellcode 
Shell-storm Shellcode database 
Part 6: Engineering in Reverse
Parallel Learning #3:(constant place to reference and use for reversing) 
[forum]reverse-engineering.net 
Reverse Engineering the World 
Room362.com reversing blog post 
Ethicalhacker.net intro to reverse engineering 
acm.uiuc.edu Intro to Reverse Engineering software 
[Book]Reversing: secrets of reverse engineering 
[video]Reverse Engineering from cryptocity.net 
CrackZ's Reverse Engineering Page 
Reverse engineering techniques 
[GAME]Crackmes.de 
Part 7: Getting a little deeper into BOF
Parallel Learning #4:(To the end of the course and beyond) 
Find old exploits on Exploit-db download them, test them, rewrite them, understand them. 
[video]Exploitation from cryptocity.net 
Buffer overflow protection 
Wikipedia Executable space protextion 
Wikipedia DEP 
Wikipedia ASLR 
Purdue.edu: Canary Bit 
Corelan T6 
Bypassing Hardware based DEP 
Corelan T7 
Corelan T8 
Corelan T10 
Virtual Worlds - Real Exploits 
[GAME]Smash the stack wargaming network 
Part 8: Heap overflow
rm -rf / on heap overflow 
w00w00 on heap overflow 
[book][Book]Shellcoder's Handbook Ch4&5 
h-online A heap of Risk 
[video]Defcon 15 remedial Heap Overflows 
heap overflow: ancient art of unlink seduction 
Memory corruptions part II -- heap 
[book]Read the rest of Shellcoder's Handbook 
Part 9: Exploit listing sites
Exploit-DB 
Injector 
CVE Details 
Packetstorm 
CERT 
Mitre 
National Vulnerability Database 
(bonus: site that lists types of vulnerabilties and info) 
Common Weakness Enumberation 
Part 10: To come
1. Fuzzing 
2. Might be a while but I plan on doing a whole web exploitation post that will be an add to this but a whole new post 
If anyone has any good links to add post a comment and I will try to add them or send me the link and I will review and add it.
Read more.
 
Seems like a rip-off from:
ReplyDeletehttp://myne-us.blogspot.in/2010/08/from-0x90-to-0x4c454554-journey-into.html