The best way is to start from the beginning, in other words read "Smashing the stack for fun and profit". These technics doesn't work on current operating systems but gives to a great start http://insecure.org/stf/smashstack.html
Ask HN: How do you learn to develop exploits?
51–60 of 87 posts
Re: Ask HN: How do you learn to develop exploits?
#52Ideally you have to master a low level language like C, socket programming and assembly on various architectures. You can somehow get away with a scripting language like perl or python and drop-in shellcodes but I suggest you do it the hard way. You can start reading the classics (although most of them not applicable today) like Smashing the Stack for fun and profit by Aleph One, 7350 (teso security group) papers on…
Re: Ask HN: How do you learn to develop exploits?
#53http://exploit-exercises.com/ has a good virtual machine that you can exploit in your own time. I enjoyed working through Nebula.
It reminded me a lot of Hack this site[1], which is a bit older, but can be helpful
Re: Ask HN: How do you learn to develop exploits?
#54Earlier quoted context omitted.
I thought modern OSs make stack memory non-executable, so this attack fail on modern systems.
Right. This is the biggest problem with learning attacks --- the historical attacks no longer work, but they are absolutely essential to 1) get in the mindset of how to find and exploit vulnerabilities, and to learn from the masters. RTM, for example, wrote the first internet worm and one of the attack vectors was a stack smash. Learn from the masters, and how they thought. 2) Since today's systems are built with an…
Re: Ask HN: How do you learn to develop exploits?
#55Get very good with the instruction set. Get very good at gdb. Then learn about memory management and networking protocols. Look up networking libraries in C. To start, I'd say have a good C manual (K&R), have a good book for computer systems (Computer Systems by Randy Bryant, but there are other good ones) and a good documentation on gdb. gdb is where it begins.
Re: Ask HN: How do you learn to develop exploits?
#56seriously, these days they teach these skills at universities; there was even a Coursera (cancelled?) http://www.security-class.org/
a book that only assumes you know some C: http://www.amazon.com/Hacking-The-Art-Exploitation-Edition/
Re: Ask HN: How do you learn to develop exploits?
#571. The Shellcoder's Handbook 2. Hacking: The Art of Exploitation 3. Gray Hat Hacking 4. w00w00 Exploiting Heaps
Basically memory exploits all boil down to overwriting the EIP with an address that points to some code that does something.
Of course there are all sorts of exploits, some simply send bad data to crash the server as a Proof of concept.. others are more sophisticated, either way if you can program all you need to do is learn a few methods and then writing the exploit shouldn't be so bad..
Re: Ask HN: How do you learn to develop exploits?
#58But that's not the reason, why I'm writing here. Since I started to get better at anything I'm doing, I realised that it's always about the little things. If you see someone do one thing that is small, great and everybody loves it, then what actually happened was that this person did millions of small steps that where stupid before. You just didn't see it. Millions, it's not a joke! And of all these things, a lot of them are about just learning boring things. If you want to become a cracker (I'm morally neutral, so I don't really care WHAT you want to become), then you should start out with learning to code and to learn to code quite well. Then you should learn all about how the internet works. That means learning to code more, and then to also learn all about the network protocols and layers and also about how the hardware is wired. Learning all this will automatically show you the limits of what security can achieve (for example you will understand naturally that there can't be a perfect code. Every code must contain the information it tries to hide, some where. So every code will be broken some day.) and also where people did mistakes. And if you have the right mindset you will find ways to hack systems, that actually don't even involve to circumvent security systems.
To make a long story short: You need both, mindest and a lot of knowledge.
Re: Ask HN: How do you learn to develop exploits?
#59Ideally you have to master a low level language like C, socket programming and assembly on various architectures. You can somehow get away with a scripting language like perl or python and drop-in shellcodes but I suggest you do it the hard way. You can start reading the classics (although most of them not applicable today) like Smashing the Stack for fun and profit by Aleph One, 7350 (teso security group) papers on…
Also one thing I forgot. I used to enjoy wargames back in the day.. that is preconfigured buggy blackbox services that you have to exploit in order to progress to the next level. Vortex and PullThePlug used to be some of the really good ones. If someone wants to learn how to exploit software, these games are a really good start.
Re: Ask HN: How do you learn to develop exploits?
#60tptacek (of Matasano) has a list of books on Amazon he has suggested for learning just that: http://www.amazon.com/lm/R2EN4JTQOCHNBA
On that list, TAOSSA is probably the book you want if you're looking to sell exploits to The Gruhhghhgq.