Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

thEpisode/Linux-Shellcode-Generator

Open more actions menu

Repository files navigation

Linux Shellcode Generator

This is a shellcode generator in ASM to fast development and test it in a C snippet template, I prefer Intel syntax but if you found any AT&T syntax in experiments code don't worry, only read documentation inside source code.

All source codes run on Parrot OS (Debian), I will try to test in some many Linux distros.

Table of contents

Where to start

Some useful links:

Manual compilation and test

If you want to compile and create a trace of all your code use the traditional steps. I know this is hard to remember, use the next snippets.

x86 support

Disclaimer: This section is under x86 support, all code above is only for x86 architectures. In next versions support x64 and x84_64.

Compiling .asm source codes

nasm -f elf sourceCode.asm

ld -o executableName sourceCode.o

Dissasembly compiled to read hexadecimal code

objdump -d executableName

Compiling .c source codes

Normal purposes

gcc -o cExecutableName sourceCode.c

Testing shellcodes

gcc cExecutableName.c -o cExecutableName -fno-stack-protector -z execstack -no-pie

Binary to Shellcode string tool

To easy extracting shellcodes use shellcode.sh script contained in root project folder to generate shellcode strings and test it. You can extract a shellcode and print in console, save in a text file, inject into test project, build to check errors and run injected shellcode. Documentation is exposed below.

shellcode.sh Usage:

> bash shellcode.sh [<options>] [<asm_filename>]

    -e, --extract             Extract shellcode from binary file and print in console
    -s, --save                Save shellcode string into a .txt file
    -t, --test                Inject shellcode string into shellcode.c source code, ready to compile
    -tb, --testbuild          Inject shellcode string and build shellcode.c
    -tbr, --testbuildrun      Inject shellcode string, build shellcode.c and run program

Example:
  > bash shellcode.sh -tbr ~/ASM/HelloWorld/Helloworld.asm

ASM Fast Development Projects

I know that start a new project and contain all generated files is hard, for that reason I developed another tool for fast development in asm, you could create new projects with folder structure and using the shellcode script to compile and test use following tool:

Disclaimer: This section is under x86 support, all code above is only for x86 architectures. In next versions support x64 and x84_64.

ASM Fast Development Usage

> bash ASMFastDevelopment.sh [<options>] [<folder name>]

    -h, --help                Show helps'
    -n, --new                 Create new project with folder name given
    -c, --compile             Compile .asm file inside folder
                              Disclaimer: This script works in current folder, do not try to compile outside this folder

Example:
  > bash ASMFastDevelopment.sh -c HelloWorld

Creating new ASM Fast Development Projects

bash ASMFastDevelopment.sh --new HelloWorld

The previous command create a new .asm file inside a folder with name provided, open it and develop!

Folder tree generated:

| ~/Linux-Shellcode-Generator/
	|- src/
		|- projects/
			|- HelloWorld/
				|- HelloWorld.asm

Warning: Do not change the .asm file name!. If you need change it, you need to change folder name

Compiling ASM Fast Development Projects

bash ASMFastDevelopment.sh --compile HelloWorld

The previous command generate:

| ~/Linux-Shellcode-Generator/
	|- src/
		|- projects/
			|- HelloWorld/
				|- HelloWorld.asm
				|- HelloWorld.o
				|- HelloWorld [your executable file]

Small help

Registers

About

Experiments on Linux Assembly shellcodes injection

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Morty Proxy This is a proxified and sanitized view of the page, visit original site.