I don’t know how expert i am but i believe these enough for becoming a hacker and i always try to follow them. So just sharing with you.
1. Python/perl : Learn Python or Perl programming language. You need one of these two language . Do you know why ? For example , creating exploit, Making Custom tools etc.
2.C/C++: You should know this language. Because this will help you in many way. It is powerful language. Perhaps you already know that most of complex and powerful software coded in C/C++. And The Linux/Unix operating system language is created in C Language. For finding exploit or making some nasty thing you need this language.
3. Assembly Language: AH!!! Worry ? Don’t worry. It is not too hard for learning to read or understanding the code. Really you need asm if you are more serious about hacking. Without assembly language you will not be able to find the 0day against software , because debugger only output in asm code. Actually you don’t need to be coder but you should able to read it, understand it… Also if you want to know how computer internal works then best way to learn asm. So go with Intel Syntax and nasm.
But if you are not serious about hacking and want to hack only for fun then some tools will do the job for you(this called skid and script kiddie), But be aware most of time(85%) you will be failed.
Hackers hack over network(Internet?). So guess why you need to learn networking. You have to understand how to connect, get familiar with ports, protocols etc. I suggest you to learn:
1. How network work + TCP/IP.
2. Protocols and port.
3. OSI model
C) Operating System:
Of course without operating system nothing is possible. And you must need to learn about operating system deeply. You should be very good in various OS . Earn some Internal knowledge about operating system. Run all existing tools of an OS. See how it works.
1. Linux: Ah , Linux is My first choice. I love Linux OS. It is Open source. Hacker should choice Open source operating system so that they can see the sources code, can modify , run various open source tools etc. I can’t explain lol, Get it right now!
2. Windows: Favorite target operating system for hackers. A lot of bugs and users over the world. Not open source. So you should learn it well. Still i read Windows assembly language and windows internal books instead Linux.
3.Mac:You may need it. But really i don’t know much about mac.
1. Install 2 targets operating system. Linux(Get Ubuntu,Debain,Fedora,Redhat,OpenSuse etc) and windows. Don’t be fucker as some trainer doing with windows only as it is easy to exploit. So Linux also your target.
1. Install various software and tools. Run them . Learn them. See how it works. Install some security software, attack against your target system(Metasploit, nmap etc).
2. Install various networking software such as http,ftp,pop3,smtp,rdp,ssh,nntp etc and attack them and try to break them. try to find some bug such as BOF by Fuzzers . Even install other software For web hacking such as VB,MyBB,PhpBB , joomla etc and run Various tools against these application.
Now You know what is going on and it is the time to start the journey. Now read some security/hacking books, Search on Google and you will see most of security hole occur from Programming and for networking problem. You will learn very fast. Just remember journey will not be end. So be careful taking enough food(Programming+Networking+OS+Motivation+patient) before starting the long journey.
Don’t give up!
Hope you will be one more genius !!!