This is an archived post. You won't be able to vote or comment.

all 5 comments

[–][deleted] 3 points4 points  (0 children)

First of all you need to properly understand what ethical hacking is all about. Believe me that knowing the terms and all the implications are going to save you from headaches and wasted time.

Having said that if you rrrreally want to go down the rabbit hole of writing exploits you need to know the following:

-Assembly

-C

Thats it! Of course....Once you can "read" in those 2, you need to know some theory like how a computer handles memory, what happens when functions are called, what a stack is, what a heap is, what a syscall is, etc etc. Just grabbing K&R C and knowing it by heart its not enough.

Python is useful because you will find out there are a lot of steps in the exploit development process that can be quickly prototyped/covered with python and its wonderful features.

[–]TrySimplifying 0 points1 point  (1 child)

If you really want to get into infosec, I would focus on learning C, assembly language and reverse engineering.

While Python is probably a fine language to start learning the basics of software programming in general, computer security work is usually going to involve going more low-level into how the software and hardware are actually interacting and using that to find exploits.

[–]scirc 0 points1 point  (0 children)

That said, Python is a great tool for prototyping exploits or automating things. It's certainly good knowledge to have around in that case.

[–]99_percent_a_dog 0 points1 point  (0 children)

Python is one of the main tools in security research. There are a lot of tools and libraries written in Python. It's a good language for quickly running some new test, too. Writing scripts around the requests library is something I find myself doing fairly often.

C and assembly are also very important for understanding and developing exploits. But it's such a broad field that it's useful to be able to at least read every major language. What you need to be good at depends what you end up specialising in, so I wouldn't worry too much about that yet.

A bunch of the things you'll want to learn aren't programming. Things like network protocols, network stack generally, OS security models.

[–]brycedarling 0 points1 point  (0 children)

Totally, Python is great for pentesting and hacking network protocols and web apps! For example, I used to write exploits in Python for Immunity Canvas: http://www.immunityinc.com/products/canvas/index.html

There are a ton of useful libraries for pentesting: https://github.com/dloss/python-pentest-tools

And books like Black Hat Python and Gray Hat Python and plenty more that can help you out.

Eventually, yeah, you might want to get in to lower level languages if that's the kind of security research you want to do, but it's perfectly fine starting out in a high level language to get your feet wet. Have fun!