"The Shellcode Lab" is a training course run at Black Hat USA and Hack In The Box Malaysia

Students are provided with a “Virtual Shellcode Development Environment” that is designed to enable shellcode development across multiple platforms. Students will learn how to write shellcode for Linux, Mac 64-bit OSX and Windows.

The course covers everything from the basic assembly and memory management, through to developing shellcode such as command execution, dynamic shellcode, port bind, shellcode networking, egg hunter, and will also learn about staged-loading and kernel level shellcode.

Students will also learn how to integrate their shellcode into standalone public exploits, as well as create Metasploit shellcode modules so that their shellcode is available to hundreds of Metasploit exploits.

Register Now for Black Hat and HITB:

"Project Shellcode" is the knowledge base for all shellcode related resources, including white papers, tutorials, tools, links, assembly code, and of course shellcode.

This allows the community to submit their own shellcode and shellcode related resources to the project so that they are available for others to use and learn from, as well as allowing them to extend their own knowledge and skills by gaining access to new materials and previously unreleased shellcode. This also allows a bridge to be created that enables those new to shellcoding to use the resources at hand to advance their skills so that they too can contribute their own work as they progress.

So create yourself an account now and join the Project Shellcode Community.

Shellcode Tutorial 6: Dynamic Shellcode


Up until now we have created shellcode containing hardcoded Windows function addresses. Hardcoding memory addresses restricts the shellcode to running on a specific version of Windows, service pack, and potentially even patch level. Well that stops here!

Shellcode Tutorial 5: Function Hash Generation


In the previous tutorials we have always had hardcoded addresses pointing to Windows functions that we wanted to call. This prevents the shellcode from being executable on multiple Windows operating systems, service packs, or even differing patch levels.

This tutorial is the first step in moving towards a more dynamic Windows shellcode structure that will be executable on multiple Windows operating system versions, service packs, and patch levels.

Shellcode Tutorial 3: Windows Command Execution Shellcode


This tutorial is simply an extension of the first tutorial; however, instead of creating shellcode that simply sleeps for five seconds, it calls the WinExec function to create a new administrative user on the victim system. This tutorial also teaches you how to define and locate string constants. In this case the command string that you want to execute. We will also exit the process cleanly so that a core dump is not created.

Shellcode Tutorial 4: Message Box Shellcode


This tutorial teaches you some handy tricks when creating shellcode, such as how to load libraries, dynamically locate Windows functions, define and locate string constants, and call Windows functions. This sets you up to start creating your own shellcode.

Some of this tutorial was based on information pulled from http://www.vividmachines.com/shellcode/shellcode.html.

Our aim

Shellcode Tutorial 2: My First Simple Shellcode


This tutorial teaches you the basics of shellcoding, including finding function addresses in Windows DLLs, simple assembly, how to compile ASM code, and how to execute your shellcode to see if it works. We will be creating the most simple shellcode that simply sleeps for five seconds and then exists.

Some of this tutorial was based on information pulled from http://www.vividmachines.com/shellcode/shellcode.html.

Shellcode Tutorial 1: Introduction and Tools Setup


The assembly tutorials contained within this site are aimed towards creating assembly code in the aim to get you ready to create your own assembly and shellcode - which would hopefully be included with the "Project Shellcode Development Framework".

What are the differences between windows shellcode and Linux shellcode?

Shellcode Tutorials

The following are tutorials on how to write shellcode for beginners through to advanced. These tutorials are continually being expanded so make sure to check back to stay up to date with the latest tutorials.

Shellcode Tutorial 1: Introduction and Tools Setup
    Gives an intro into shellcode and steps you through setting up your environment.

Shellcode Tutorial 2: My First Simple Shellcode
    Steps you through creating and testing very simple shellcode.

Shellcode Downloads

The following versions of "Reverse DNS Tunneling Shellcode" are available for download:

Reverse DNS Tunneling Shellcode v0.12 :: reverse-dns-shellcode-v0.12.tgz

Reverse DNS Tunneling Shellcode v0.3 :: reverse-dns-shellcode-v0.3.tgz


The following are external links for a wide range of shellcode resources:

Shellcode Feed
Reverse DNS Tunneling Shellcode Links
Shellcode Resource Links

Reverse DNS Tunneling Shellcode (v0.3) Technical Details

This is not the latest version of Reverse DNS Tunneling Shellcode. Please check the latest paper to find the latest up to date information.

What is Reverse DNS Tunneling Shellcode?

Syndicate content