Shellcoding on linux
Shellcoding on linux is relatively easier to start than shellcoding on windows. There are a few things to know before getting started.
1. Whats the purpose of the shellcode? Shellcode is usually a small program performing a simple task. e.g. Add an administrative user to compromised system.
2. Syscall number or numbers you need to use. The number is placed in eax. Syscall number list
3. Which other registers are required? e.g. for a simple exit shellcode ebx is required to be a 0 and eax requires the syscall 1.
4. Style of assembly programming. At&t or intel e.g. At&t uses instruction source, destination and intel uses instruction destination, source.
5. Tools: Nasm, ld, and objdump. e.g. Compiling file shellcode.asm using nasm would be “nasm -f elf shellcode.asm”.
linking the shellcode.o file created by nasm would be “ld shellcode.o -o shellcode”.
Dumping opcodes for use in your shellcode would be “objdump -d shellcode”. The middle section of opcodes would be placed together in a “\x00\x00” format.
6. Eliminate null bytes from your opcodes. Null bytes are two 0s and prematurely terminate the shellcode. e.g. (intel syntax) instead of mov eax,1 use mov al,1(use the 8bit part of eax) or push byte 1 and pop eax. Instead of mov ebx,0 use xor ebx,ebx.
- @packetu @brandoncarroll Thank you @paul_whitehat for confirming this. 2 days ago
- @packetu @brandoncarroll you guys check out 9.8.1 yet for asa 5506 BVI? L2L VPN cant ssh to opposite asa if inside is the bvi. 2 days ago
- @dabeave666 No prob. Thanks for the hard work on such an awesome open source product. I use it in production in 6 d… twitter.com/i/web/status/8… 3 days ago
- @dabeave666 Well I grabbed the new you have on GitHub and it works. Was a version I had on my custom distro. All is… twitter.com/i/web/status/8… 3 days ago
- @dabeave666 Yea it was “US” 4 days ago
- @dabeave666 Yea I recompiled the most recent version from git. The one I had was showing HOME_COUNRTY|US instead of just US 4 days ago
- An error has occurred; the feed is probably down. Try again later.