tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Apoya a HackTricks

Identificaci贸n de binarios empaquetados

  • falta de cadenas: Es com煤n encontrar que los binarios empaquetados no tienen casi ninguna cadena.
  • Muchas cadenas no utilizadas: Adem谩s, cuando un malware utiliza alg煤n tipo de empaquetador comercial, es com煤n encontrar muchas cadenas sin referencias cruzadas. Incluso si estas cadenas existen, eso no significa que el binario no est茅 empaquetado.
  • Tambi茅n puedes usar algunas herramientas para intentar encontrar qu茅 empaquetador se utiliz贸 para empaquetar un binario:
  • PEiD
  • Exeinfo PE
  • Language 2000

Recomendaciones B谩sicas

  • Comienza a analizar el binario empaquetado desde abajo en IDA y sube. Los desempaquetadores salen una vez que el c贸digo desempaquetado sale, por lo que es poco probable que el desempaquetador pase la ejecuci贸n al c贸digo desempaquetado al principio.
  • Busca JMP's o CALLs a registros o regiones de memoria. Tambi茅n busca funciones que empujan argumentos y una direcci贸n de direcci贸n y luego llaman a retn, porque el retorno de la funci贸n en ese caso puede llamar a la direcci贸n que se acaba de empujar a la pila antes de llamarla.
  • Coloca un punto de interrupci贸n en VirtualAlloc, ya que esto asigna espacio en memoria donde el programa puede escribir c贸digo desempaquetado. "Ejecutar hasta el c贸digo de usuario" o usa F8 para obtener el valor dentro de EAX despu茅s de ejecutar la funci贸n y "seguir esa direcci贸n en el volcado". Nunca sabes si esa es la regi贸n donde se va a guardar el c贸digo desempaquetado.
  • VirtualAlloc con el valor "40" como argumento significa Leer+Escribir+Ejecutar (alg煤n c贸digo que necesita ejecuci贸n se va a copiar aqu铆).
  • Mientras desempaquetas c贸digo, es normal encontrar varias llamadas a operaciones aritm茅ticas y funciones como memcopy o VirtualAlloc. Si te encuentras en una funci贸n que aparentemente solo realiza operaciones aritm茅ticas y tal vez alg煤n memcopy, la recomendaci贸n es intentar encontrar el final de la funci贸n (tal vez un JMP o llamada a alg煤n registro) o al menos la llamada a la 煤ltima funci贸n y ejecutarla, ya que el c贸digo no es interesante.
  • Mientras desempaquetas c贸digo, nota cada vez que cambias la regi贸n de memoria, ya que un cambio en la regi贸n de memoria puede indicar el inicio del c贸digo desempaquetado. Puedes volcar f谩cilmente una regi贸n de memoria usando Process Hacker (proceso --> propiedades --> memoria).
  • Mientras intentas desempaquetar c贸digo, una buena manera de saber si ya est谩s trabajando con el c贸digo desempaquetado (as铆 que puedes simplemente volcarlo) es verificar las cadenas del binario. Si en alg煤n momento realizas un salto (tal vez cambiando la regi贸n de memoria) y notas que se a帽adieron muchas m谩s cadenas, entonces puedes saber que est谩s trabajando con el c贸digo desempaquetado. Sin embargo, si el empaquetador ya contiene muchas cadenas, puedes ver cu谩ntas cadenas contienen la palabra "http" y ver si este n煤mero aumenta.
  • Cuando vuelcas un ejecutable desde una regi贸n de memoria, puedes corregir algunos encabezados usando PE-bear.

tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Apoya a HackTricks