I really don’t know how to explain but hacking is difficult to understand. Like I watched tutorials on Youtube, took courses and read many books but still I feel like I know nothing. Watching Mr Robot and other documentation made feel even worse, you might say Mr Robot doesn’t portray the real world but the documentation do. Like this video I was completely baffled at how I didn’t have a single clue how they did it what techniques they used.
After all that though, I don’t want to give up on hacking, I want to learn more advanced stuff. If you have an recommendations please dm me or comment.
Sorry for my bad english learning to write too.
It’s like math. You have to understand addition before you can understand multiplication, and have to understand multiplication before you can understand powers.
If you don’t understand, it is probably because you are missing underlying knowledge, which takes a lot of time and effort to obtain.
As others have said - start out by learning simpler stuff that is related, for example for networking related knowledge, the TCP/IP suite, subnet masking, the OSI model, IPv4 versus IPV6, TCP and UDP, 802.1q VLAN tagging, CSMA/CA and CSMA/CD, 802.11 wireless a/b/g/n, WPA2-PSK, Common protocols like DHCP, DNS, ARP, OSPF, BGP.
Learn a little bit of scripting in good starter language like Python and write a lot of garbage code for anything and everything to practice and learn it until you can build bigger things. Get familiar with its standard library, some third party modules, concepts like procedural programming versus functional programming versus object oriented programming.
Learn about tooling to investigate what is going on with various technologies. Wireshark, nmap, whois, a debugger like gdb, ping, traceroute, ssh, telnet, and whatever else catches your eye - making sure to look up how the tool works as much as what the tool is looking at.
Learn about basic operating system architectures, the difference between 64 bit and 32 bit processing, what registers are, what assembly is and how it works at a basic level, different processor queuing algorithms like FIFO, FILO, Round Robin, what a kernel is, what a dll is, how a process looks in memory including areas such as the stack, text, the heap, etc. Learn about emulation versus virtualization, learn the different kinds such as a bare-metal hypervisor versus a piece of software like QEMU/KVM.
The list goes on and on and on, you just have to start somewhere and begin reading. If you read something you don’t understand, you look that up and go read about it till you understand it, recursively, until you understand the original thing you looked up.
Once you have this general knowledge about computer systems, networking, scripting, and hardware - then begin reading up on how these things are exploited. If for example you understand how a process functions in memory, and that the assembly will push ret to the top of the stack when it enters a function call, and you know that memory is allocated from low to high address but written to from high to low - then you can understand how a stack buffer overflow attack works in basic theory.
This does take years, but that is the cost of knowledge.
What kind of hacking do you want to do? Hardware, reverse engineering, Red Teaming, application analysis.
All of those require similar but different skill sets. What you do for Red Teaming is slightly different to IoT hacking.
I want to focus mainly on grey hat stuff. Based on that which hacking category should I choose and where can I find resource to learn them?
What you are likely look for is penetration testing or offensive security. I would use those as your search key phrase.
Find your niche, something you understand well and like at the same time. It might be few CVEs, few services, some interesting scheme from hacking forums. Take it, practice it in testing environment, evaluate it then hunt for real targets. When you start getting targets pwned you will feel good and it will give you motivation to proceed further. You can take something from “Top 10 exploits” google search query, most of them are simple and vulnerable machines can be found online
I have the key to my room, but you notice that the key shape is the same as yours with some minor modifications, so you shave down your key slightly and use it to enter my room.
Or, you notice that the keyhole is large and hollow, so using a very long and thin metal stick, you poke the stick through and drag my jacket to the door, where you slide out my credit cards. You haven’t broken in, but you have sensitive information on me by probing.
Or you put on a disguise and ask for the key to the room so we can check it to see if it’s been compromised by BaDAcToRs.
You shouldn’t learn hacking, you should learn lots upon lots about what you want to hack and think how to make it do what you want it to i.e give you shell. I would start with networking. There’s awesome book by Don Colton about it, and it’s free.
ahhh man, networking is a fun rabbithole to go down. especially once you hit packet analysis, that shit goes hard.
A basic grounding in computer science would be a good starting place.
Do you know the difference between the various processor architectures and operating systems? Do you know the difference between real time computers and interrupt based systems? Are you familiar with the seven layer network model and which layers the different services interact with the hardware and application software? Are you grounded in cryptography and the system of public and private keys, modulo operations, prime number factorisation?
This is assuming that you already understand coding and are proficient in at least one language. None of these skills and knowledge on their own are indispensable or completely necessary but these things are what computers are made of, how they communicate and how they are secured.
Where can I learn those things?
I’m probably in the same boat as you, I have zero formal CS education. The way I originally learned was various: by embarking on small projects, fixing broken computers so I could play games, reading books, watching videos. The key thing in learning any subject is to recognise that when you don’t understand something it’s usually because some foundational knowledge is missing. You cannot properly understand a computer file system before you grasp the concept of binary numbers, bits and bytes, for instance.
Lately I’ve been using Chatgpt. You can ask it to write code in any language. Ask it to solve a particular problem and then start dismantling the answer, step by step. When you don’t understand the answer, ask it to elaborate. For your purposes, you could ask it to script a port scanner on your home network. This is key skill for any aspiring hacker and if you can get that working on your LAN, those principles can be adapted to WAN. Get a copy of the CIA vault 7 library, ask chatgpt to explain snippets of the code. I would imagine you have to preface your questions as coming from a ‘white hat’ perspective or it may balk.
tryhackme.com has some basic courses for free, the rest is behind a subscription.