Shellcodecs
Shellcodecs is a collection of shellcodes, loaders, sources, and generators designed to ease the exploitation and shellcode programming process.
These shellcodes are provided with documentation located at Shellcode
|
END USER IS LIABLE FOR THEIR OWN ACTIONS |
In order to run these shellcodes, the following dependencies are required:
Shellcodecs is a collection of shellcodes, loaders, sources, and generators designed to ease the exploitation and shellcode programming process.
Unless otherwise noted, code is amd64. There are various intel32 etc examples as well. If you're unaware, amd64 is the main linux tree for 64-bit, so if you have an intel, you should still be ok. If you think you may have an out of date version, or that the official version is out-of-sync with the site, the latest sources will be available 100% of the time in the shellcode appendix.
Contents
- 32-bit executable mmap-based shellcode loader 66 bytes (loader-32.s) (Docs)
- 64-bit executable mmap-based shellcode loader 79 bytes (loader-64.s) (Docs)
- A dynamic loader for locally executable code in C (dynamic-loader.c)
- A dynamic loader for remotely executable code (socket-loader.c)
- A 32-bit getpc (%eax) example 11 bytes (getpc-32.s) (Docs)
- A 64-bit getpc (%rax) example 12 bytes (getpc-64.s) (Docs)
- Alternative 64-bit getpc 10 bytes (getpc-64-alt.s) (Docs)
- int3 detection code 24 bytes (int3-detect-64.s) (Docs)
- 32-bit lastcall example code 4 bytes (lastcall-32.s) (Docs)
- 64-bit lastcall example code 5 bytes (lastcall-64.s) (Docs)
- 64-bit alphanumeric lastcall example code 13 bytes (lastcall-alphanum.s) (Docs)
Payloads
Description: A very short setuid(0); execve('/bin/sh',0,0);
Filename: setuid_binsh.s
Documentation: http://www.blackhatlibrary.net/Shellcode/Null-free
Length: 32 bytes
Description: A small write-to-file payload
Filename: write-file-32.s
Documentation: http://www.blackhatlibrary.net/Shellcode/Null-free
Length: 90 bytes
Description: same-socket-shell payload
Filename: socket-reuse.s
Documentation: http://blackhatlibrary.net/Shellcode/Socket-reuse
Length: 115 bytes
Description: sends socket reuse shellcode
Filename: socket-reuse.c
Description: 32-bit shellcode unpacker
Filename: decoder-32.s
Documentation: http://www.blackhatlibrary.net/Shellcode/Self-modifying#The_unpacker
Length: 89 bytes
Description: 64-bit decoder (mmap)
Filename: decoder.s
Documentation: http://www.blackhatlibrary.net/Shellcode/Self-modifying#The_unpacker
Length: 102 bytes
Description: 64-bit decoder
Filename: decoder-no-mmap.s
Documentation: http://www.blackhatlibrary.net/Shellcode/Self-modifying#The_unpacker
Length: 69 bytes
Description: 32-bit shellcode packer
Filename: packer-32.s
Documentation: http://www.blackhatlibrary.net/Shellcode/Self-modifying#32_bit
Length: 37 bytes
Description: 64-bit shellcode packer
Filename: packer-64.s
Documentation: http://www.blackhatlibrary.net/Shellcode/Self-modifying#64_bit
Length: 55 bytes
Filename: ascii_binsh.s
Description: alphanumeric execve('/bin/sh',0,0)
Documentation: http://www.blackhatlibrary.net/Shellcode/Alphanumeric
Length: 111 bytes
Filename: architecture_detection
Description: alphanumeric x86* compatible architecture detection stub
Documentation: http://www.blackhatlibrary.net/Shellcode/Environment
Length: 15 bytes
Description: Self-linking exit code
Filename: linked-exit.s
Documentation: http://www.blackhatlibrary.net/Shellcode/Dynamic
Length: 135 bytes
Description: Self-linking socket reuse shellcode
Filename: linker-fd-reuse.s
Documentation: http://www.blackhatlibrary.net/Shellcode/Dynamic#The_dynamic_shell
Length: 268 bytes
Description: Self-linking polymorphic socket reuse shellcode
Filename: poly-linker-fd-reuse.s
Documentation: None
Length: 268 bytes
Description: Hash generator for self-linking shellcode
Filename: hash-generator.s
Documentation: None
Length: 81 bytes
Description: Socket-reuse shellcode generator
Filename: socket-reuse-generator.py
Documentation: None
Description: Polymorphic socket reuse generator
Filename: poly-socket-reuse-generator.py
Documentation: None
Description: Nicely assemble and output shellcode in a variety of formats (raw, hex, and as a C variable)
Filename: shellcode-generator.py
Documentation: None
Building the code
* tar xzvf shellcode.tgz * cd shellcode * make It is also possible to make exclusively x86 or x64 binaries using make x86 or make x64. Please keep in mind, there is more support for 64-bit in this package than 32-bit.
Using the tools
[loaders] [generators]
Getting help
Note: We are not your free tech support.
03:54, 2 December 2012 (MSK)03:54, 2 December 2012 (MSK)03:54, 2 December 2012 (MSK)03:54, 2 December 2012 (MSK)03:54, 2 December 2012 (MSK)~~
Reminder: Docs are available at
http://www.blackhatlibrary.net/shellcode
If you're using the tools and there's a problem, try
re-reading the documentation before asking a question. If you're absolutely sure it is programmatical error and not user error preventing the code from working properly, you can let us know by joining our IRC or talking on the shellcode talk page.
If you'd like to pay for professional training on the
materials contained in this courseware, please contact our sponsor at www.viralsec.com
Credits
Lead developer: Hatter Supporting developers: jtRIPper, eax Community: www.blackhatlibrary.net Commercial: www.viralsec.com