Lot of people including some of my friends asked me this question.“Which programming language should I learn?", “How to become a professional Pen tester/ Hacker? ", etc. So here is an article on the Programming Languages that you should learn. I my self am against malpractice and Hacking in specially when it inflicts unnecessary and unjust harm to others. I firmly do not promote illegal practice of hacking. What I do support is hacking for a good cause. Its fascinating to learn and one should posses that knowledge, You never know when it might come in handy in this DIGITAL GENERATION.
The question that will pop up in every lazy amateur mind is Why Programming in first place? Many people will ask is why I should learn any programming language when there are so many tools and Frameworks such as MSF (Metasploit framework) to do my job. All I need to know is how the tool works and what is the purpose of it? The answer for the question is both an Yes and No. You can become a Pentester/Hacker without knowing any programming but how ever you’re not going to become a good pentester /Hacker. Don't be Lazy!!, So knowing Programming is important as it will DIFFERENTIATE you from Script kiddies and Tool Lovers, Help you in understanding about vulnerabilities, Help you in writing your own tools, scripts, Help You in writing exploits, Shell codes etc. Help you modifying Existing scripts, tools according to your needs.
Which Programming Language to Learn? So now that you have understood the importance of knowing programming, the next question in your mind is which programming language should I learn? The answer for this question depends on your interests and goals. For Web App Pentesting /Hacking or security related tasks. All in all it depends on the field of application or pertaining to your task.
- HTML: Hypertext Markup Language (HTML) is the basics for creating web pages and other information that can be displayed in a web browser. So if you don't know HTML you should first learn it. It forms the base and is the simplest language to learn too.
- PHP/SQL: Majority of web applications are written using PHP and MySQL .So it is a must to learn PHP For Writing / Understanding Exploits, Shell Codes, Root kits etc. One basically can know what effect the shell code gonna have.
- C & C++: Most widely used language. More than 70 % of the exploits you will find on the web are written in C & C ++. Learning C & C++ will help you understand about buffer overflows, Stack overflow etc, So learning C and C ++ is a MUST for every hacker/Pen tester.
- ASSEMBLY: Learning assembly will help you in writing and understanding Shell codes, Will help you in Reverse Engineering applications and software's For Building Tools And Scripts.
- PYTHON: It is a very powerful high level language. It’s Easy to learn and code, most of the tools and scripts for automation are written in Python. Knowing Python socket programming will help you a lot in Exploit writing. I would recommend this language for all as it is easy understand and learn too.
- RUBY: is another language which is used to write scripts and tools. Metasploit Frame Work is written in Ruby so learning ruby will help you understand the ins and outs of msf.
- BASH: Learning Bash is very useful in writing small scripts for automation. One could do with or without it but as I said it's always good to know. Python and Bash are more or less used for similar tasks to perform.
The above listed are the basis from which one could begin a journey into the hacking world. In the end what matters is how you apply. Knowing the language wont make you a hacker, but it prepares your path ahead. If your giving it a serious thought, there is a huge wide world ahead of you. Explore it. Start Programming today, If not a hacker you can always be a Developer/Programmer. Happy coding!..