¿Qué herramientas existen para descifrar, deshabilitar y deshacer los efectos de un binario de Linux malicioso? [cerrado]

0

Soy un probador de penetración en la red y estoy tratando de aprender cómo descifrar binarios. Como ejercicio, pasé dos días tratando de descifrar un binario de Linux que supuestamente fue diseñado para ser resquebrajado. Buscar en la web y probar lo que sé en Linux hasta ahora ha sido infructuoso. Solo he podido encontrar la palabra 'PAsswOrd' utilizando las 'cadenas' de la utilidad de Linux. Cuando lo envío, las salidas binarias "hay que esforzarse más". Al ejecutar el ejecutable se muestra 'No soy su propiedad'.

Me doy cuenta de que necesito saber qué herramientas existen más allá de las utilidades básicas de Linux para desentrañar el ejecutable. No estoy pidiendo ninguna parte de la solución o un conjunto de instrucciones. Solo sería útil algún tipo de punto de partida, ya que no veo ninguna pregunta de SO ni capacitación en línea que proporcione esto.

    
pregunta user7451333 21.02.2017 - 14:32
fuente

1 respuesta

0

Lo que estás haciendo se llama ingeniería inversa y un ejecutable. No es inusual que una persona que está codificando una contraseña en el código fuente (una estrategia de seguridad horrible) haga un intento amateur de evitar que aparezca en los datos estáticos intactos. Sin embargo, la contraseña PAssw0rd puede no estar relacionada con la actual. Las diversas respuestas del programa son obviamente intencionales, por lo que las autoridades pueden ser una pista falsa deliberada.

Varias herramientas son comunes en los esfuerzos de ingeniería inversa.

  1. El comando "archivo" que toma la ruta del archivo como primer parámetro para que pueda determinar (en la mayoría de los casos) qué tipo de ejecutable tiene.
  2. Desensambladores que muestran EXACTAMENTE lo que hace el ejecutable, pero es difícil de leer para aquellos que no escriben código de ensamblaje en esa arquitectura específica o tienen experiencia con el desensamblaje.
  3. Los descompiladores como Boomerang, Hex-rays y Snowman pueden proporcionar una mayor legibilidad, pero no recuperan los nombres de las variables o la sintaxis del programa original y no son 100% confiables, especialmente en los casos en que los ingenieros que crearon el ejecutable probado con estos paquetes y trató de ofuscar la seguridad aún más.
  4. diagramas de flujo de datos o tablas. No conozco ninguna herramienta gratuita para hacer esto automáticamente, pero un script de Python o Bash sobre la parte superior de un analizador de texto de la salida del ensamblaje (que se puede escribir en sed o Perl) puede ser útil.
  5. Lápiz y papel, créanlo o no, para anotar flujos e ideas

Un enfoque común es buscar dos cosas en el código descompilado o desensamblado.

  1. Funciones criptográficas, como un algoritmo hash o cifrado
  2. La solicitud del usuario para la contraseña y la lectura posterior de la entrada de usuario

Estos son los dos puntos finales en el flujo de datos. Deseará realizar un seguimiento desde el lugar donde la contraseña ingresa a los algoritmos de criptografía y rastrear hacia adelante la entrada de usuario de la contraseña, con la esperanza de encontrar dónde se encuentran los dos extremos.

Una vez que haya rastreado la ruta entre la entrada del usuario y los componentes de autenticación, podrá ver el mecanismo intermedio. Si la seguridad se realizó correctamente, será un valor hash creado correctamente y su intento terminará mal, pero sospecho que, al ser un ejercicio, será posible obtener resultados favorables.

    
respondido por el Douglas Daseeco 21.02.2017 - 19:44
fuente

Lea otras preguntas en las etiquetas