elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Temas
Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ... 39
111  Programación / Ingeniería Inversa / WinDbg? en: 17 Julio 2013, 07:53 am
Hola a todos, vengo a hacer una pregunta con respecto a este debugger:

1) ¿Es un buen debugger?

2) ¿Cuando es recomendado usarlo?

3) ¿algunas ventajas con respecto a OllyDbg?

He visto que mucha gente lo usa, creo haber encontrado algunas ventajas como la información que se puede recaudar del Heap, si no me equivoco podría ser que este debugger presenta mayor información sobre el PE en tiempo de ejecución?, a ver si me ayudan y orientan.

Saludos.
112  Programación / Ingeniería Inversa / Duda con baseaddress OllydbScript en: 15 Julio 2013, 20:22 pm
Hola a todos, tengo una duda con respecto a OllyDgScript, ¿cómo podria obtener el baseaddress del ejecutable cargado en memoria?, he visto algunos comandos peros todos se basan en que deben recibir cómo parámetro una dirección (eip), a ver si me ayudan, saludos.
113  Programación / Ingeniería Inversa / Duda con armadillo fingerprint en: 12 Julio 2013, 19:44 pm
Hola a todos, siempre he andado por el lado inverso, pero esta vez me surge una duda a nivel de "programador", ¿cómo instalo armadillo fingerprint en un ejecutable?, ¿o algún derivado que genere licencias de acuerdo a un hardwareid del equipo?
114  Seguridad Informática / Bugs y Exploits / ROP Gadgets finder for OdbgScript en: 9 Julio 2013, 07:33 am
Estudiando sobre creación de exploit, no me he percatado de la existencia de un plugins para OllyDbg que se encargue de mostrar Rop gadgets en todos los módulos executables cargados por el PE, por lo que me animé a crear un script:

El script se encarga de analizar todos los módulos executables del PE, verificando si se encuentran rutinas ROP Gadgets (estas deben ser especificadas por el usuario), tras terminar el script, se crea un archivo con una lista de todas las instrucciones de forma ordenada.

se puede buscar una o varias instrucciones:

PUSH EAX Busca esta instrucciones y la agrega al log si al menos en las 6 siguientes instrucciones existe una instrucción RETN N.

PUSH EAX;PUSH ECX Busca estas dos instrucciones y se agrega al log si almenos las siguientes 6 instrucciones existe una instrucción RETN N.

Se pueden usar:

R32, R16, R8, CONST

Ej: PUSH R32  busca todos los PUSH con registre de propósito general de 32 bits que en donde al menos las siguientes 6 instrucciones existe una instrucción RETN N.

EJ: MOV EAX,CONST busca todos MOV EAX con constantes, que en donde al menos las siguientes 6 instrucciones existe una instrucción RETN N.

*N = RETN hasta RETN 0x30

Código
  1. VAR V_ANY
  2. VAR V_COUNT
  3. VAR V_COUNT_REFERENCE
  4. VAR V_COUNT_OPCODE
  5. VAR V_OPCODE
  6. VAR V_ADDRESS
  7. VAR V_ROP_GADGET
  8. VAR V_MODULE_ADDRESS
  9. VAR V_MODULE_NAME
  10. VAR V_MODULE_MBASE
  11. VAR V_MODULE_CBASE
  12. VAR V_MODULE_SIZE
  13. VAR V_UNICODE
  14. VAR V_INSTRUCTION
  15. VAR V_INPUT_NAME
  16. VAR V_OUTPUT_NAME
  17.  
  18. ASK "Enter instruction(s) EX: "PUSH EAX;PUSH ECX" , "PUSH R32;RETN" , "PUSH CONST", etc."
  19. MOV V_INSTRUCTION,$RESULT
  20.  
  21. ASK "Only Unicode address finder?: (Y)/(N)"
  22. MOV V_UNICODE,$RESULT
  23.  
  24. ASK "Output filename without extension EX: ROP1"
  25. MOV V_INPUT_NAME,$RESULT
  26.  
  27. EVAL "ROPGadgets-{V_INPUT_NAME}.log"
  28. MOV V_OUTPUT_NAME,$RESULT
  29.  
  30. MOV V_ANY,6
  31.  
  32. WRT V_OUTPUT_NAME,"  ------------------------------------ ROP Gadgets v1.0 ------------------------------------"
  33.  
  34. L_ENTRY_POINT:
  35. FINDMEM #546869732070726F6772616D#,V_MODULE_ADDRESS
  36. MOV V_MODULE_ADDRESS,$RESULT
  37. CMP V_MODULE_ADDRESS,0
  38. JE L_EXIT
  39.  
  40. GMI V_MODULE_ADDRESS,NAME
  41. MOV V_MODULE_NAME,$RESULT
  42.  
  43. GMI V_MODULE_ADDRESS,MODULEBASE
  44. MOV V_MODULE_MBASE,$RESULT
  45.  
  46. GMI V_MODULE_ADDRESS,CODEBASE
  47. MOV V_MODULE_CBASE,$RESULT
  48.  
  49. GMI V_MODULE_ADDRESS,MODULESIZE
  50. MOV V_MODULE_SIZE,$RESULT
  51.  
  52. WRTA V_OUTPUT_NAME,"/--------------------------------------------------------------------------------------------\"
  53. EVAL "| Module address:[{V_MODULE_MBASE}]  |  Module size:[{V_MODULE_SIZE}]  |  Name:[{V_MODULE_NAME}]"
  54. WRTA V_OUTPUT_NAME,$RESULT
  55. WRTA V_OUTPUT_NAME,"----------------------------------------------------------------------------------------------"
  56.  
  57. FINDCMD V_MODULE_CBASE,V_INSTRUCTION
  58. CALL L_FIND_GADGET
  59.  
  60. INC V_MODULE_ADDRESS
  61. JMP L_ENTRY_POINT
  62.  
  63. L_EXIT:
  64. RET
  65.  
  66. L_FIND_GADGET:
  67. GREF
  68. MOV V_COUNT_REFERENCE,$RESULT
  69. INC V_COUNT_REFERENCE
  70.  
  71. L_NEXT_REFERENCE:
  72. XOR V_COUNT_OPCODE,V_COUNT_OPCODE
  73. CMP V_COUNT,V_COUNT_REFERENCE
  74. JAE L_RETURN
  75.  
  76. GREF V_COUNT
  77. INC V_COUNT
  78. MOV V_ADDRESS,$RESULT
  79. CMP V_ADDRESS,eip
  80. JE L_NEXT_REFERENCE
  81. CMP V_UNICODE,"Y"
  82. JE L_UNICODE_CHECK
  83. L_UNICODE_CONTINUE:
  84. OPCODE V_ADDRESS
  85. ITOA V_ADDRESS
  86. LEN $RESULT
  87. CMP $RESULT,6
  88. JE L_ADD1_2
  89. CMP $RESULT,7
  90. JE L_ADD1_1
  91.  
  92. L_ADD1_0:
  93. EVAL "|{V_ADDRESS} | {$RESULT_1}\r\n|"
  94. JMP L_ADD_CONTINUE1
  95.  
  96. L_ADD1_1:
  97. EVAL "|0{V_ADDRESS} | {$RESULT_1}\r\n|"
  98. JMP L_ADD_CONTINUE1
  99.  
  100. L_ADD1_2:
  101. EVAL "|00{V_ADDRESS} | {$RESULT_1}\r\n|"
  102.  
  103. L_ADD_CONTINUE1:
  104. MOV V_ROP_GADGET,$RESULT
  105.  
  106. L_NEXT_OPCODE:
  107. ADD V_ADDRESS,$RESULT_2
  108. OPCODE V_ADDRESS
  109. MOV V_OPCODE,$RESULT
  110. ITOA V_ADDRESS
  111. LEN $RESULT
  112. CMP $RESULT,6
  113. JE L_ADD2_2
  114. CMP $RESULT,7
  115. JE L_ADD2_1
  116.  
  117. L_ADD2_0:
  118. EVAL "{V_ADDRESS} | {$RESULT_1}\r\n|"
  119. JMP L_ADD_CONTINUE2
  120.  
  121. L_ADD2_1:
  122. EVAL "0{V_ADDRESS} | {$RESULT_1}\r\n|"
  123. JMP L_ADD_CONTINUE2
  124.  
  125. L_ADD2_2:
  126. EVAL "00{V_ADDRESS} | {$RESULT_1}\r\n|"
  127.  
  128. L_ADD_CONTINUE2:
  129. ADD V_ROP_GADGET,$RESULT
  130.  
  131. CMP "C3",V_OPCODE
  132. JE L_LOG_OPCODE
  133. CMP "C2 0400",V_OPCODE
  134. JE L_LOG_OPCODE
  135. CMP "C2 0800",V_OPCODE
  136. JE L_LOG_OPCODE
  137. CMP "C2 0C00",V_OPCODE
  138. JE L_LOG_OPCODE
  139. CMP "C2 1000",V_OPCODE
  140. JE L_LOG_OPCODE
  141. CMP "C2 1400",V_OPCODE
  142. JE L_LOG_OPCODE
  143. CMP "C2 1800",V_OPCODE
  144. JE L_LOG_OPCODE
  145. CMP "C2 1C00",V_OPCODE
  146. JE L_LOG_OPCODE
  147. CMP "C2 2000",V_OPCODE
  148. JE L_LOG_OPCODE
  149. CMP "C2 4000",V_OPCODE
  150. JE L_LOG_OPCODE
  151. CMP "C2 8000",V_OPCODE
  152. JE L_LOG_OPCODE
  153. CMP "C2 C000",V_OPCODE
  154. JE L_LOG_OPCODE
  155. CMP "C3 0000",V_OPCODE
  156. JE L_LOG_OPCODE
  157. INC V_COUNT_OPCODE
  158. CMP V_COUNT_OPCODE,V_ANY
  159. JA L_NEXT_REFERENCE
  160. JMP L_NEXT_OPCODE
  161.  
  162. L_LOG_OPCODE:
  163. WRTA V_OUTPUT_NAME,V_ROP_GADGET
  164. JMP L_NEXT_REFERENCE
  165.  
  166. L_UNICODE_CHECK:
  167. TEST V_ADDRESS,FF00FF00
  168. JNE L_NEXT_REFERENCE
  169. JMP L_UNICODE_CONTINUE
  170.  
  171. L_RETURN:
  172. WRTA V_OUTPUT_NAME,"\--------------------------------------------------------------------------------------------/" + "\r\n\r\n\r\n\r\n"
  173. XOR V_COUNT,V_COUNT
  174. RET

Ejemplo de búsqueda:

Código:
  ------------------------------------ ROP Gadgets v1.0 ------------------------------------
/--------------------------------------------------------------------------------------------\
| Module address:[400000]  |  Module size:[BE000]  |  Name:[RM2MP3Co]
----------------------------------------------------------------------------------------------
|0040A7A7 | PUSH EAX
|0040A7A8 | PUSH ECX
|0040A7A9 | CALL DWORD PTR DS:[0x43C064]
|0040A7AF | RETN 0x4
|
|0040A7C7 | PUSH EAX
|0040A7C8 | PUSH ECX
|0040A7C9 | CALL DWORD PTR DS:[0x43C898]
|0040A7CF | PUSH EAX
|0040A7D0 | CALL 004372E6
|0040A7D5 | RETN 0x4
|
|0040A835 | PUSH EAX
|0040A836 | PUSH ECX
|0040A837 | CALL DWORD PTR DS:[0x43C0D0]
|0040A83D | RETN 0x1C
|
|0040BA2E | PUSH EAX
|0040BA2F | PUSH ECX
|0040BA30 | CALL 004094D0
|0040BA35 | ADD ESP,0xC
|0040BA38 | POP EDI
|0040BA39 | POP ESI
|0040BA3A | RETN 0xC
|
|0041270C | PUSH EAX
|0041270D | PUSH ECX
|0041270E | CALL DWORD PTR DS:[0x43C840]
|00412714 | MOV ECX,ESI
|00412716 | CALL 00437142
|0041271B | POP ESI
|0041271C | RETN
|
|0041668F | PUSH EAX
|00416690 | PUSH ECX
|00416691 | CALL DWORD PTR DS:[0x43C7A4]
|00416697 | POP EDI
|00416698 | POP ESI
|00416699 | ADD ESP,0x30
|0041669C | RETN 0xC
|
|00425F44 | PUSH EAX
|00425F45 | PUSH ECX
|00425F46 | CALL DWORD PTR DS:[0x43C01C]
|00425F4C | RETN 0x8
|
|00436077 | PUSH EAX
|00436078 | PUSH ECX
|00436079 | CALL DWORD PTR DS:[0x43C840]
|0043607F | RETN 0x4
|
|0043799C | PUSH EAX
|0043799D | PUSH ECX
|0043799E | CALL 004379BE
|004379A3 | POP ECX
|004379A4 | POP ECX
|004379A5 | RETN
|
\--------------------------------------------------------------------------------------------/




/--------------------------------------------------------------------------------------------\
| Module address:[58C30000]  |  Module size:[97000]  |  Name:[comctl32]
----------------------------------------------------------------------------------------------
|58C3E87E | PUSH EAX
|58C3E87F | PUSH ECX
|58C3E880 | PUSH DWORD PTR SS:[EBP+0x10]
|58C3E883 | PUSH DWORD PTR SS:[EBP+0xC]
|58C3E886 | CALL DWORD PTR DS:[0x58C314D0]
|58C3E88C | POP EBP
|58C3E88D | RETN 0x10
|
|58C4237D | PUSH EAX
|58C4237E | PUSH ECX
|58C4237F | CALL 58C41198
|58C42384 | XOR EAX,EAX
|58C42386 | INC EAX
|58C42387 | POP ESI
|58C42388 | POP EBP
|58C42389 | RETN 0x8
|
|58C646C5 | PUSH EAX
|58C646C6 | PUSH ECX
|58C646C7 | CALL 58C5070D
|58C646CC | ADD ESP,0xC
|58C646CF | POP EDI
|58C646D0 | POP ESI
|58C646D1 | POP EBP
|58C646D2 | RETN 0x8
|
|58C6982D | PUSH EAX
|58C6982E | PUSH ECX
|58C6982F | CALL 58C3C278
|58C69834 | POP EBP
|58C69835 | RETN 0xC
|
\--------------------------------------------------------------------------------------------/




/--------------------------------------------------------------------------------------------\
| Module address:[5B150000]  |  Module size:[38000]  |  Name:[uxtheme]
----------------------------------------------------------------------------------------------
\--------------------------------------------------------------------------------------------/




/--------------------------------------------------------------------------------------------\
| Module address:[5CF60000]  |  Module size:[26000]  |  Name:[shimeng]
----------------------------------------------------------------------------------------------
\--------------------------------------------------------------------------------------------/




/--------------------------------------------------------------------------------------------\
| Module address:[61DF0000]  |  Module size:[E000]  |  Name:[mfc42loc]
----------------------------------------------------------------------------------------------
\--------------------------------------------------------------------------------------------/




/--------------------------------------------------------------------------------------------\
| Module address:[6FDB0000]  |  Module size:[1CA000]  |  Name:[AcGenral]
----------------------------------------------------------------------------------------------
\--------------------------------------------------------------------------------------------/




/--------------------------------------------------------------------------------------------\
| Module address:[73D50000]  |  Module size:[FE000]  |  Name:[mfc42]
----------------------------------------------------------------------------------------------
|73D60192 | PUSH EAX
|73D60193 | PUSH ECX
|73D60194 | CALL DWORD PTR DS:[EDX+0x28]
|73D60197 | POP ESI
|73D60198 | RETN 0x4
|
|73D88F8C | PUSH EAX
|73D88F8D | PUSH ECX
|73D88F8E | MOV ECX,ESI
|73D88F90 | CALL 73DCB5A6
|73D88F95 | POP ESI
|73D88F96 | RETN 0x4
|
|73DAAAB9 | PUSH EAX
|73DAAABA | PUSH ECX
|73DAAABB | CALL DWORD PTR DS:[0x73DF66E0]
|73DAAAC1 | ADD ESP,0xC
|73DAAAC4 | SUB DWORD PTR DS:[ESI+0x8],EDI
|73DAAAC7 | POP EDI
|73DAAAC8 | POP ESI
|73DAAAC9 | RETN 0x8
|
|73DCCA4B | PUSH EAX
|73DCCA4C | PUSH ECX
|73DCCA4D | PUSH ESI
|73DCCA4E | CALL 73DC914B
|73DCCA53 | POP ESI
|73DCCA54 | RETN 0x8
|
\--------------------------------------------------------------------------------------------/




/--------------------------------------------------------------------------------------------\
| Module address:[76030000]  |  Module size:[65000]  |  Name:[msvcp60]
----------------------------------------------------------------------------------------------
\--------------------------------------------------------------------------------------------/




/--------------------------------------------------------------------------------------------\
| Module address:[76360000]  |  Module size:[4A000]  |  Name:[comdlg32]
----------------------------------------------------------------------------------------------
|7638A193 | PUSH EAX
|7638A194 | PUSH ECX
|7638A195 | CALL DWORD PTR DS:[0x763613D8]
|7638A19B | POP EBP
|7638A19C | RETN 0xC
|
\--------------------------------------------------------------------------------------------/




/--------------------------------------------------------------------------------------------\
| Module address:[76630000]  |  Module size:[B4000]  |  Name:[userenv]
----------------------------------------------------------------------------------------------
\--------------------------------------------------------------------------------------------/




/--------------------------------------------------------------------------------------------\
| Module address:[76B00000]  |  Module size:[2E000]  |  Name:[winmm]
----------------------------------------------------------------------------------------------
\--------------------------------------------------------------------------------------------/




/--------------------------------------------------------------------------------------------\
| Module address:[770F0000]  |  Module size:[8C000]  |  Name:[oleaut32]
----------------------------------------------------------------------------------------------
115  Programación / Ingeniería Inversa / ¿Dirección base de todos los módulos con OllyDbgScript? en: 8 Julio 2013, 23:08 pm
Pues eso, a ver si alguien me puede ayudar, saludos.
116  Programación / ASM / Duda con RET N en: 8 Julio 2013, 22:24 pm
Hola a todos me surge una duda con RET N (4 * número de variables), mi duda surge en que RET N, se debe especificar para la creación de variables locales y parámetros de entrada o solo para variables locales?, saludos.

PD: Siempre cuando se programa sin directivas de alto nivel, ya que estas crean el ret n, de forma automática.

EDIT: Al parecer esta compensación solo se hace cuando la función/procedimiento recibe parámetros, si es así favor de confirmar, saludos.
117  Programación / Ingeniería Inversa / Obtener la cantidad de módulos executables cargados? en: 8 Julio 2013, 19:04 pm
Cómo podría obtener la cantidad de módulos executables cargados (ALT+E en OllyDbg) ?, ¿hay algún lugar del ejecutable que posea tal contador?, saludos.

EDIT: ¿ PEB LDR_DATA ?

EDI2:

Código
  1. invoke CreateToolhelp32Snapshot, TH32CS_SNAPMODULE, idproc
  2. mov hSnapshot,eax
  3.      mov me32.dwSize, sizeof MODULEENTRY32
  4. invoke Module32First, hSnapshot, addr me32
  5. test eax,eax
  6. je fin

De todas maneras me gustaría saber si algún o API que proporcione esa respuesta, saludos.
118  Seguridad Informática / Bugs y Exploits / Duda con tamaño de una shellcode en: 6 Julio 2013, 17:13 pm
Hola a todos me gustaría saber más menos cuantos bytes (promedio, es para hacerme una idea), tiene una shellcode genérica para windows (todas las versiones de SO y servicepack), y que esta realice una conexión a través sockets de forma inversa (reverse shellcode).

Es para hacerme una idea del tamaño más menos, saludos.
119  Programación / Ingeniería Inversa / Duda con estructura _LDR_DATA_TABLE_ENTRY en: 5 Julio 2013, 00:43 am
Hola a todos tengo una duda con la estructura:

_LDR_DATA_TABLE_ENTRY
 InLoadOrderModuleList
 InMemoryOrderModuleList
 InInitializationOrderModuleList
 ...

Mi duda es si: ¿Esta estructura es siempre así? (según a donde me dirija con Loader data)

Me explico es que si en LoaderData tomo + 0C (InLoadOrderModuleList) siempre hay 6 DWORD (las tres LIST_ENTRY, cada una con flink y blink) antes del campo BaseAddress, pero si en el LoaderData tomo + 1C (InInitializationOrderModuleList) solo hay 2 DWORD antes del BaseAddress, ahora si tomo + 14 (InMemoryOrderModuleList),  hay 4 DWORDS antes del BaseAddress, eso es normal?  a ver si me explican, saludos.
120  Programación / Scripting / Problemas con scripts Python en: 3 Julio 2013, 19:18 pm
Hola a todos estoy teniendo dificultades con los scripts en mi sistema (Windows XP), me he descargado el instalador para windows 32bit y lo he instalado en Windows XP SP 2 en una máquina virtual, pero no logro ejecutar scripts, generalmente me marcan errores, ¿A qué se puede deber este inconveniente?, adjunto un script que me marca el siguiente error:

Citar
C:\Documents and Settings\Administrador\Escritorio\omelet>w32_SEH_omelet.py w32_
SEH_omelet.bin shellcode.bin hola.txt
  File "C:\Documents and Settings\Administrador\Escritorio\omelet\w32_SEH_omelet
.py", line 88
    """
      ^
SyntaxError: invalid syntax

Código
  1. import math
  2. import sys
  3.  
  4. def HexEncode(string):
  5.  result = ''
  6.  for char in string:
  7.    result += '\\x%02X' % ord(char)
  8.  return result
  9.  
  10. def Main(my_name, bin_file, shellcode_file, output_file, egg_size = '0x7F', marker_bytes = '0x280876'):
  11.  if (marker_bytes.startswith('0x')):
  12.    marker_bytes = int(marker_bytes[2:], 16)
  13.  else:
  14.    marker_bytes = int(marker_bytes)
  15.  if (egg_size.startswith('0x')):
  16.    egg_size = int(egg_size[2:], 16)
  17.  else:
  18.    egg_size = int(egg_size)
  19.  assert marker_bytes <= 0xFFFFFF, 'Marker must fit into 3 bytes.'
  20.  assert egg_size >= 6, 'Eggs cannot be less than 6 bytes.'
  21.  assert egg_size <= 0x7F, 'Eggs cannot be more than 0x7F (127) bytes.'
  22.  
  23.  bin = open(bin_file).read()
  24.  marker_bytes_location = ord(bin[-3])
  25.  max_index_location = ord(bin[-2])
  26.  egg_size_location = ord(bin[-1])
  27.  code = bin[:-3]
  28.  
  29.  shellcode = open(shellcode_file).read()
  30.  
  31.  max_index = int(math.ceil(len(shellcode) / (egg_size - 5.0)))
  32.  assert max_index <= 0xFF, ('The shellcode would require %X (%d) eggs of  %X '
  33.      '(%d) bytes, but 0xFF (255) is the maximum number of eggs.') % (
  34.      max_index, max_index, egg_size, egg_size)
  35.  
  36.  marker_bytes_string = ''
  37.  for i in range(0,3):
  38.    marker_bytes_string += chr(marker_bytes & 0xFF)
  39.    marker_bytes >>= 8
  40.  
  41.  max_index_string = chr(max_index)
  42.  egg_size_string = chr(egg_size - 5)
  43.  # insert variables into code
  44.  code = code[:marker_bytes_location] + marker_bytes_string + code[marker_bytes_location+3:]
  45.  code = code[:max_index_location] + max_index_string + code[max_index_location+1:]
  46.  code = code[:egg_size_location] + egg_size_string + code[egg_size_location+1:]
  47.  output = [
  48.    '// This is the binary code that needs to be executed to find the eggs, ',
  49.    '// recombine the orignal shellcode and execute it. It is %d bytes:' % (
  50.      len(code),),
  51.    'omelet_code = "%s";' % HexEncode(code),
  52.    '',
  53.    '// These are the eggs that need to be injected into the target process ',
  54.    '// for the omelet shellcode to be able to recreate the original shellcode',
  55.    '// (you can insert them as many times as you want, as long as each one is',
  56.    '// inserted at least once). They are %d bytes each:' % (egg_size,) ]
  57.  egg_index = 0
  58.  while shellcode:
  59.    egg = egg_size_string + chr(egg_index ^ 0xFF) + marker_bytes_string
  60.    egg += shellcode[:egg_size - 5]
  61.    if len(egg) < egg_size:
  62.      # tail end of shellcode is smaller than an egg: add pagging:
  63.      egg += '@' * (egg_size - len(egg))
  64.    output.append('egg%d = "%s";' % (egg_index, HexEncode(egg)))
  65.    shellcode = shellcode[egg_size - 5:]
  66.    egg_index += 1
  67.  open(output_file, 'w').write('\n'.join(output))
  68.  
  69. if __name__ == '__main__':
  70.  if len(sys.argv) == 1 or sys.argv[1] in ('-h', '-?', '/h', '/?'):
  71.    print """Syntax:
  72.    w32_SEH_omelet.py "omelet bin file" "shellcode bin file" "output txt file"
  73.        [egg size] [marker bytes]
  74.  
  75. Where:
  76.    omelet bin file = The omelet shellcode stage binary code followed by three
  77.                      bytes of the offsets of the "marker bytes", "max index"
  78.                      and "egg size" variables in the code.
  79.    shellcode bin file = The shellcode binary code you want to have stored in
  80.                      the eggs and reconstructed by the omelet shellcode stage
  81.                      code.
  82.    output txt file = The file you want the omelet egg-hunt code and the eggs
  83.                      to be written to (in text format).
  84.    egg size =        The size of each egg (legal values: 6-127, default: 127)
  85.    marker bytes =    The value you want to use as a marker to distinguish the
  86.                      eggs from other data in user-land address space (legal
  87.                      values: 0-0xFFFFFF, default value: 0x280876)
  88. """
  89.  assert len(sys.argv) >= 4 and len(sys.argv) <= 6, (
  90.      'Incorrect arguments; run "w32_SEH_omelet.py -?" for help.')
  91.  exit(Main(*sys.argv))

El script debería funcionar correctamente (estoy siguiendo un tutorial en donde se menciona, y no da problemas)

a ver si me ayudan, saludos.
Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ... 39
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines