20. Reverse TCP Shell
In this chapter, we’ll create a reverse TCP shell - a shellcode that connects back to an attacker-controlled machine, providing remote access. This is often more effective than bind shells as it by...
In this chapter, we’ll create a reverse TCP shell - a shellcode that connects back to an attacker-controlled machine, providing remote access. This is often more effective than bind shells as it by...
In this chapter, we’ll create a bind TCP shell - a shellcode that opens a network port and binds a shell to it, allowing remote connections. This is extremely useful in penetration testing and netw...
Now in our journey of shellcoding we will try to eliminate bad chars which create nuisance and break our exploit. Common Bad Characters: 0x0A (newline) - breaks in input functions 0x0D (carr...
Now let’s explore how to create shellcode that spawns a shell. This you will mostly use in exploit development. 1. The execve System Call The most common way to spawn a shell in Linux is using th...
Now that we understand the theory, let’s create our first working shellcode! We’ll build a simple “Hello World” shellcode that writes directly to stdout using system calls. The Goal We want to cr...
Now that we understand how shellcode gets executed, let’s explore what it actually does. Most meaningful shellcode needs to interact with the operating system - to open files, create network connec...
Shellcoding is the art of writing compact, position-independent machine code that can be injected and executed inside another process. At its core, shellcode is pure machine code — hexadecimal byte...
Welcome to the final chapter of our x86-64 assembly journey! Now we’ll learn how to write structured, maintainable code using the stack and procedures - the foundation of functions, local variables...
String instructions are specialized x86-64 operations designed for efficient processing of strings and memory blocks. They automatically handle pointer increment/decrement and can repeat operations...
Shift and rotate instructions are powerful bit manipulation operations that are faster than multiplication and division for powers of two. They allow you to move bits within registers, performing e...