Shellforge.

A Compiler che trasforma un programma C in shellcode Linux / X86
Scarica ora

Shellforge. Classifica e riepilogo

Annuncio pubblicitario

  • Rating:
  • Licenza:
  • GPL
  • Prezzo:
  • FREE
  • Nome editore:
  • Philippe Biondi
  • Sito web dell'editore:
  • http://www.secdev.org/projects/etherpuppet

Shellforge. Tag


Shellforge. Descrizione

Un compilatore che trasforma un programma C in shellcode Linux / X86 Shellforge è un programma scritto in Python che costruisce shellcodes da C. è ispirato alle chiamate di sistema di avvolgimento di Hellkit.some Stealth's Hellkit. Le chiamate di sistema sono definite in file di intestazione. Il programma C li utilizza invece di chiamate libc. Shellforge utilizza GCC per convertirlo in Assembler. Quindi modificalo un po ', lo compila, estrarre il codice dall'oggetto, potrebbe la codifica e aggiungere un caricatore all'inizio. I caricatori disponibili sono, per il momento: * XOR: codifica il gruppo ShellCode per evitare byte null e aggiungere un semplice byte e aggiungere un semplice byte e aggiungere un semplice XOR decodificatore * Alpha: crea un gruppo di shellCode quasi alfanumerico (vedi esempio) Evoluture future: * Creare Shellforge in grado di generare shellcodes per ulteriori architetture, nativamente o utilizzando compilatori trasversali * Aggiungi altri caricatori (e finisci il caricatore alfa) Esempio: Ecco il Ciao programma mondiale (ciao.c). # Includi "Includi / sfsyscall.h" int principale (Void) {char buf [] = "Hello World! N"; Scrivi (1, BUF, Sizeof (BUF)); EXIT (0);} Possiamo avere il gruppo ShellCode RAW: $ ./Shellforge.py Ciao.C ** Compilazione ciao.C ** Tuning Codice di assemblaggio originale ** Assemblaggio Modificato ASM ** Recupero codice macchina ** Computing XOR Chiave di crittografia ** Shellcode forgiato x55x89xe5x83xecx24x53xe8x00x00x00x00x5bx83xc3xf4x8bx83x67x00x00x00x89x45xf0x8bx83x6bx00x00x00x89x45xf4x8bx83x6fx00x00x00x89x45xf8x0fxb7x83x73x00x00x00x66x89x45xfcx8dx4dxf0xbax0ex00x00x00xb8x04x00x00x00xc7x45xecx01x00x00x00x53x8bx59xfcxcdx80x5bxb8x01x00x00x00xc7x45xecx00x00x00x00x53x8bx59xfcxcdx80x5bx5bxc9xc3x48x65x6cx6cx6fx20x77x6fx72x6cx64x21x0ax00We può provarlo: $ ./shellforge.py -tt ciao.c ** ** La compilazione ciao.c sintonia codice assembler originale ** Assemblaggio asm modificato ** Recupero codice macchina ** Calcolo chiave di crittografia XOR * * ShellCode Forged! ** Compilazione del programma di test ** Test di esecuzione del mondo PROGRAMHELLO! ** TEST FATTO! stato restituito = 0We possono avere lo shellcode pronto per l'inclusione C: $ ./shellforge.py -V0 -C ciao.c unsigned char shellcode [] = "x55x89xe5x83xecx24x53xe8x00x00x00x00x5bx83xc3xf4x8bx83x67" "x00x00x00x89x45xf0x8bx83x6bx00x00x00x89x45xf4x8bx83x6fx00" "x00x00x89x45xf8x0fxb7x83x73x00x00x00x66x89x45xfcx8dx4dxf0" "xbax0ex00x00x00xb8x04x00x00x00xc7x45xecx01x00x00x00x53x8b" "x59xfcxcdx80x5bxb8x01x00x00x00xc7x45xecx00x00x00x00x53x8b" "x59xfcxcdx80x5bx5bxc9xc3x48x65x6cx6cx6fx20x77x6fx72x6cx64" "x21x0ax00"; int principale (void) {(((void (*) ()) shellcode) (); } Possiamo usare un caricatore per evitare di XOR x00 byte nel shellcode $ ./shellforge.py -V0 -x hello.cxebx0dx5ex31xc9xb1x75x80x36x02x46xe2xfaxebx05xe8xeexffxffxffx57x8bxe7x81xeex26x51xeax02x02x02x02x59x81xc1xf6x89x81x65x02x02x02x8bx47xf2x89x81x69x02x02x02x8bx47xf6x89x81x6dx02x02x02x8bx47xfax0dxb5x81x71x02x02x02x64x8bx47xfex8fx4fxf2xb8x0cx02x02x02xbax06x02x02x02xc5x47xeex03x02x02x02x51x89x5bxfexcfx82x59xbax03x02x02x02xc5x47xeex02x02x02x02x51x89x5bxfexcfx82x59x59xcbxc1x4ax67x6ex6ex6dx22x75x6dx70x6ex66x23x08x02We può usare un caricatore alfa per avere una shellcode quasi alfanumerico (dammi un po 'più di tempo per sbarazzarsi dei due durare non alfanumerico byte) $ ./shellforge.py -V0 -R --loader = alpha ciao.c hAAAAX5AAAAHPPPPPPPPah0B20X5Tc80Ph0504X5GZBXPh445AX5XXZaPhAD00X5wxxUPTYII19hA000X5sOkkPTYII19h0000X5cDi3PTY19I19I19I19h0000X50000Ph0A0AX50yuRPTY19I19I19I19h0000X5w100PTYIII19h0A00X53sOkPTYI19h0000X50cDiPTYI19I19hA000X5R100PTYIII19h00A0X500yuPTYI19I19h0000X50w40PTYII19I19h0600X5u800PTYIII19h0046X53By9PTY19 I19I19h0000X50VFuPTYI19I19h0000X5LC00PTYIII19h0060X5u79xPTY19I19I19I19h0000X5000FPTY19I19h2005X59DLZPTYI19h0000X500FuPTYI19I19h0010X5DLZ0PTYII19h0006X50Fu9PTY19I19I19I19h0000X5LW00PTYIII19h0D20X5Lx9DPTY19h0000X5000kPhA0A0X5ecV0PTYI19I19h0B0AX5FXLRPTY19h5550X5ZZZePTYI19 ?? Il classico exec / bin / sh: #include "include / sfsyscall.h" int main (void) {char * a [] = { "/ bin / sh", 0}; Esegui (A , A, 0);} Esempio più complesso: per creare un gruppo di shellcode che esegue la scansione delle porte di localhost: #include "Includi / sfsyscall.h" #include "include / sfsocket.h" #Define First 1 # Definisci lo scorso 1024INT (Void) {Struct SOCKADDR_IN SA; int, io; char buf ; sa.sin_family = pf_inet; sa.sin_addr.s_addr = 0x0100007F; I = First-1; Scrivi (1, "Inizia fine", 4); chiudere (1); uscita (0);}


Shellforge. Software correlato

Egogga.

Tracciamento dei bug, sistema di cattura e sistema di gestione del progetto. ...

165

Scarica

Php PROBLEXTECKET.

PHP I PROBLEXTICKET è il software di tracciamento del problema multiutente interamente scritto in PHP 4. ...

91

Scarica

Biglietto

TicketMith è un sistema di ticket di supporto basato sul web con un gateway e-mail. ...

662

Scarica