Foro de elhacker.net

Seguridad Informática => Bugs y Exploits => Mensaje iniciado por: .:UND3R:. en 2 Julio 2013, 03:57 am



Título: Instruction finder for UNICODE Shell (OllyDbg script)
Publicado por: .:UND3R:. 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:
Código
  1. VAR ADDRESS
  2. VAR V_OPCODE
  3.  
  4. ASK "Select option: JMP (1) - CALL (2) - POP/POP/RET (3)"
  5. CMP $RESULT,1
  6. JE L_BEGIN_SEARCH_1
  7. CMP $RESULT,2
  8. JE L_BEGIN_SEARCH_2
  9. CMP $RESULT,3
  10. JE L_BEGIN_SEARCH_3
  11. JMP L_EXIT
  12.  
  13. L_BEGIN_SEARCH_1:
  14. FINDMEM #FFE?#
  15. L_SEARCH_JMP:
  16. TEST $RESULT,$RESULT
  17. JE L_EXIT
  18. MOV ADDRESS,$RESULT
  19. TEST ADDRESS,FF00FF00
  20. JNE L_NEXT_SEARCH_JMP
  21. MOV V_OPCODE,$RESULT
  22. INC V_OPCODE
  23. MOV V_OPCODE,[V_OPCODE],1
  24. CMP V_OPCODE,E7
  25. JA  L_NEXT_SEARCH_JMP
  26. GCI ADDRESS,COMMAND
  27. EVAL "ADDRESS:[00{ADDRESS}] - INSTRUCTION:[{$RESULT}]"
  28. LOG "",$RESULT
  29. L_NEXT_SEARCH_JMP:
  30. INC ADDRESS
  31. FINDMEM #FFE?#,ADDRESS
  32. JMP L_SEARCH_JMP
  33.  
  34. L_BEGIN_SEARCH_2:
  35. FINDMEM #FFD?#
  36. L_SEARCH_CALL:
  37. TEST $RESULT,$RESULT
  38. JE L_EXIT
  39. MOV ADDRESS,$RESULT
  40. TEST ADDRESS,FF00FF00
  41. JNE L_NEXT_SEARCH_CALL
  42. MOV V_OPCODE,$RESULT
  43. INC V_OPCODE
  44. MOV V_OPCODE,[V_OPCODE],1
  45. CMP V_OPCODE,D7
  46. JA  L_NEXT_SEARCH_CALL
  47. GCI ADDRESS,COMMAND
  48. EVAL "ADDRESS:[00{ADDRESS}] - INSTRUCTION:[{$RESULT}]"
  49. LOG "",$RESULT
  50. L_NEXT_SEARCH_CALL:
  51. INC ADDRESS
  52. FINDMEM #FFD?#,ADDRESS
  53. JMP L_SEARCH_CALL
  54.  
  55. L_BEGIN_SEARCH_3:
  56. FINDMEM #5?5?C3#
  57. L_SEARCH_POP_POP_RET:
  58. TEST $RESULT,$RESULT
  59. JE L_EXIT
  60. MOV ADDRESS,$RESULT
  61. TEST ADDRESS,FF00FF00
  62. JNE L_NEXT_SEARCH_POP_POP_RET
  63. EVAL "ADDRESS:[00{ADDRESS}] - INSTRUCTION:[POP/POP/RET]"
  64. LOG "",$RESULT
  65. L_NEXT_SEARCH_POP_POP_RET:
  66. INC ADDRESS
  67. FINDMEM #5?5?C3#,ADDRESS
  68. JMP L_SEARCH_POP_POP_RET
  69.  
  70. L_EXIT:
  71. RET

Saludos.


Título: Re: Instruction finder for UNICODE Shell (OllyDbg script)
Publicado por: MCKSys Argentina en 5 Julio 2013, 21:08 pm
Para exploit, usa el "inmundity" debugger, con mona.py...  ;)

Saludos!


Título: Re: Instruction finder for UNICODE Shell (OllyDbg script)
Publicado por: .:UND3R:. en 6 Julio 2013, 17:09 pm
Los he escuchado en los tutoriales que he leído pero como soy cavernícola con OllyDbg, aunque creo que es algo similar, saludos.