Questions about this topic? Sign up to ask in the talk tab.

Difference between revisions of "Shellcodecs"

From NetSec
Jump to: navigation, search
(Contents)
(Contents)
Line 27: Line 27:
 
:* A dynamic loader for remotely executable code ([[Shellcode/Appendix#socket-loader.c|socket-loader.c]])
 
:* A dynamic loader for remotely executable code ([[Shellcode/Appendix#socket-loader.c|socket-loader.c]])
 
</div>
 
</div>
 
  
  
Line 73: Line 72:
 
-----
 
-----
  
        Description:   32-bit shellcode unpacker
+
:* 32-bit shellcode unpacker ''89 bytes'' ([[Shellcode/Appendix#decoder-32.s|decoder-32.s]]) ([[Shellcode/Self-modifying#The_unpacker|Docs]])
        Filename:      decoder-32.s
+
:* 64-bit shellcode unpacker (mmap) ''102 bytes'' ([[Shellcode/Appendix#decoder-64.s|decoder-64.s]]) ([[Shellcode/Self-modifying#The_unpacker|Docs]])
        Documentation: http://www.blackhatlibrary.net/Shellcode/Self-modifying#The_unpacker
+
:* 64-bit shellcode unpacker ''69 bytes'' ([[Shellcode/Appendix#decoder-64.s|decoder-64.s]]) ([[Shellcode/Self-modifying#The_unpacker|Docs]])
        Length:       89 bytes
+
:* 32-bit shellcode packer ''37 bytes'' ([[Shellcode/Appendix#packer-32.s|packer-32.s]]) ([[Shellcode/Self-modifying#32_bit]])
        Description:  64-bit decoder (mmap)
+
:* 64-bit shellcode packer ''55 bytes'' ([[Shellcode/Appendix#packer-64.s|packer-64.s]]) ([[Shellcode/Self-modifying#64_bit]])
        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
+
  
 
</div>
 
</div>
Line 101: Line 85:
  
 
-----
 
-----
        Filename:     ascii_binsh.s   
+
:* alphanumeric execve('/bin/sh',0,0) ''111 bytes''' ([[Shellcode/Appendix#ascii_binsh.s|ascii_binsh.s]]) ([[Shellcode/Alphanumeric|Docs]])
        Description:  alphanumeric execve('/bin/sh',0,0)
+
:* alphanumeric x86* compatible architecture detection stub ''15 bytes'' ([[Shellcode/Appendix#architecture_detection|architecture_detection]]) ([[Shellcode/Environment#Practically_Applied:_Code|Docs]])
        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
+
 
</div>
 
</div>
  
Line 116: Line 95:
  
 
-----
 
-----
 +
:* Self-linking exit code ''135 bytes''' ([[Shellcode/Appendix#linked-exit.s|linked-exit.s]]) ([[Shellcode/Dynamic|Docs]])
 +
:* Self-linking socket reuse shellcode ''268 bytes''' ([[Shellcode/Appendix#linker-fd-reuse.s|linker-fd-reuse.s]]) ([[Shellcode/Dynamic#The_dynamic_shell|Docs]])
 +
:* Self-linking polymorphic socket reuse shellcode ''268 bytes''' ([[Shellcode/Appendix#poly-linker-fd-reuse.s|poly-linker-fd-reuse.s]])
  
        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
 
 
</div>
 
</div>
  
Line 140: Line 110:
 
         Documentation: None
 
         Documentation: None
 
         Length:        81 bytes
 
         Length:        81 bytes
 +
 
         Description:  Socket-reuse shellcode generator  
 
         Description:  Socket-reuse shellcode generator  
 
         Filename:      socket-reuse-generator.py
 
         Filename:      socket-reuse-generator.py

Revision as of 02:36, 2 December 2012

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

RPU0j.png 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

Loaders


Environmental stubs


Null-free


Socket-reuse


Self-modifying


Alphanumeric


Dynamic


Generators

       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