schalforge.

Ein Compiler, der ein C-Programm in den Linux / X86-Shellcode umwandelt
Jetzt downloaden

schalforge. Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • GPL
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Philippe Biondi
  • Website des Verlags:
  • http://www.secdev.org/projects/etherpuppet

schalforge. Stichworte


schalforge. Beschreibung

Ein Compiler, der ein C-Programm in Linux / X86-Shellcode umwandelt Shellforge ist ein in Python geschriebenes Programm, das Shellcodes von C aufbaut. Es ist von den Stealth's Hellkit inspiriert. Das C-Programm verwendet sie anstelle von Libc-Anrufen. Shellforge verwendet GCC, um ihn in den Assembler umzuwandeln. Es ändert es dann ein Bit, kompiliert ihn, extrahieren Sie den Code aus dem Objekt, kann es codieren und einen Lader an der Beginn hinzufügen. Die verfügbaren Lader sind für den Moment: * xor: codiert den Shellcode, um Null-Bytes zu vermeiden und ein einfaches zu vermeiden XOR-Decoder * Alpha: Machen Sie einen fast alphanumerischen Shellcode (siehe Beispiel) Future Evolutions: * Machen Sie Maskenforschung, um Schalkodierungen für mehr Architekturen, nativ oder mit Cross-Compilern zu erzeugen. Hello World Program (hello.c). # Include / sfsyscall.h "Int Main (void) {char buf [] =" Hallo World! N "; schreiben (1, buf, sizeof (buf)); Ausfahrt (0);} Wir können den rohen SHELLCODE haben: $ ./shellforge.py hello.c ** compiling helilo.c ** Tuning Original Assembler Code ** Montage modifiziert ASM ** Abrufen von Maschinencode ** Rechenbild-XOR-Verschlüsselungsschlüssel ** Shellcode geschmiedet x55x89xe5x83xecx24x53xe8x00x00x00x00x5bx83xc3xf4x8bx83x67x00x00x00x89x45xf0x8bx83x6bx00x00x00x89x45xf4x8bx83x6fx00x00x00x89x45xf8x0fxb7x83x73x00x00x00x66x89x45xfcx8dx4dxf0xbax0ex00x00x00xb8x04x00x00x00xc7x45xecx01x00x00x00x53x8bx59xfcxcdx80x5bxb8x01x00x00x00xc7x45xecx00x00x00x00x53x8bx59xfcxcdx80x5bx5bxc9xc3x48x65x6cx6cx6fx20x77x6fx72x6cx64x21x0ax00We können es testen: $ ./shellforge.py -tt hello.c ** Kompilieren hello.c ** Tuning ursprünglichen Assembler-Code ** Montage modifizierte asm ** Suchen Maschinencode ** Computing xor Verschlüsselungsschlüssel * * Shellcode Geschmiedet! ** Kompilieren von Testprogramm ** Running Test ProgramHello World! ** test erledigt! Zurückgegebene status = 0WE kann den Shellcode bereit für C Inklusion hat: $ ./shellforge.py -v0 -C hello.c unsigned char Shellcode [] = "x55x89xe5x83xecx24x53xe8x00x00x00x00x5bx83xc3xf4x8bx83x67" "x00x00x00x89x45xf0x8bx83x6bx00x00x00x89x45xf4x8bx83x6fx00" "x00x00x89x45xf8x0fxb7x83x73x00x00x00x66x89x45xfcx8dx4dxf0" "xbax0ex00x00x00xb8x04x00x00x00xc7x45xecx01x00x00x00x53x8b" "x59xfcxcdx80x5bxb8x01x00x00x00xc7x45xecx00x00x00x00x53x8b" "x59xfcxcdx80x5bx5bxc9xc3x48x65x6cx6cx6fx20x77x6fx72x6cx64" "x21x0ax00"; int main (void) {((void (*) ()) shellcode) (); } Wir können einen xor Loader vermeiden x00-Bytes in dem Shellcode $ ./shellforge.py -v0 -x verwenden hello.cxebx0dx5ex31xc9xb1x75x80x36x02x46xe2xfaxebx05xe8xeexffxffxffx57x8bxe7x81xeex26x51xeax02x02x02x02x59x81xc1xf6x89x81x65x02x02x02x8bx47xf2x89x81x69x02x02x02x8bx47xf6x89x81x6dx02x02x02x8bx47xfax0dxb5x81x71x02x02x02x64x8bx47xfex8fx4fxf2xb8x0cx02x02x02xbax06x02x02x02xc5x47xeex03x02x02x02x51x89x5bxfexcfx82x59xbax03x02x02x02xc5x47xeex02x02x02x02x51x89x5bxfexcfx82x59x59xcbxc1x4ax67x6ex6ex6dx22x75x6dx70x6ex66x23x08x02We kann einen Alpha-Loader einen fast alphanumerischen Shellcode zu haben, verwendet (geben Sie mir etwas mehr Zeit den beide loszuwerden letzte nicht alphanumerische Zeichen) $ ./shellforge.py -V0 -R --loader = alpha hello.c hAAAAX5AAAAHPPPPPPPPah0B20X5Tc80Ph0504X5GZBXPh445AX5XXZaPhAD00X5wxxUPTYII19hA000X5sOkkPTYII19h0000X5cDi3PTY19I19I19I19h0000X50000Ph0A0AX50yuRPTY19I19I19I19h0000X5w100PTYIII19h0A00X53sOkPTYI19h0000X50cDiPTYI19I19hA000X5R100PTYIII19h00A0X500yuPTYI19I19h0000X50w40PTYII19I19h0600X5u800PTYIII19h0046X53By9PTY19 I19I19h0000X50VFuPTYI19I19h0000X5LC00PTYIII19h0060X5u79xPTY19I19I19I19h0000X5000FPTY19I19h2005X59DLZPTYI19h0000X500FuPTYI19I19h0010X5DLZ0PTYII19h0006X50Fu9PTY19I19I19I19h0000X5LW00PTYIII19h0D20X5Lx9DPTY19h0000X5000kPhA0A0X5ecV0PTYI19I19h0B0AX5FXLRPTY19h5550X5ZZZePTYI19 ?? Die klassische exec / bin / sh: #include "include / sfsyscall.h" int main (void) {char * a [] = { "/ bin / sh", 0}; Execve (A , A, 0);} komplexer Beispiel: Um einen Shellcode zu erstellen, der Ports von LocalHost scannt: #include "Include / sfsyscall.h" #include "einschließen / sfsocket.h" #define zuerst 1 # Definieren Sie den letzten 1024 Ziehen (leer) {struct sockaddr_in sa; int s, ich; char buf ; SA.SIN_FAMILY = PF_INET; SA.SIN_ADDR.S_ADDR = 0x0100007F; i = First-1; Schreiben (1, "Beginnen Ende", 4); schließen (1); Beenden (0);}


schalforge. Zugehörige Software

Paranamer

Paranamer ist ein Mechamismus, der den Java-Programmierern ermöglicht, auf die Parameternamen der Methoden von Java-Klassen zuzugreifen. ...

165

Herunterladen