Desafío 21 de ESET Latinoamérica

Un código malicioso ha tenido acceso a una pequeña empresa de desarrolladores web, los cuales están trabajando activamente en un nuevo buscador que estará participando en el mercado. A continuación, una captura del nuevo proyecto:


Para experimentar la funcionalidad del buscador, realizaremos algunas pruebas. En primer lugar, vamos a ingresar la palabra “trololo” para ver si nos arroja algún resultado. La respuesta del servidor a la petición anteriormente comentada es:


Como se puede ver, a este modesto buscador le falta bastante para competir en el mercado, ya que la base de datos aún es muy pequeña, y solo responde a palabras clave como “facebook” o “trololo”:

Debido a que la base de datos es tan escasa, el desarrollador ha decidido redireccionar las búsquedas a otro conocido buscador en caso de que no obtenga resultados. Por ejemplo, probemos con la palabra “nirvana”, que no se encuentra en la base de datos correspondiente al nuevo proyecto:


La búsqueda es redireccionada a otro buscador y el resultado se puede observar a continuación:


Como se puede observar, la acción anterior tiene como objetivo seguir cargando la base de datos en base a la respuesta de los demás buscadores. A grandes rasgos, ya podemos entender como funciona el servidor.

El problema parece ser que esta empresa tiene un atacante interno que se dedicó a analizar vulnerabilidades en el buscador, aún sabiendo que se trataba de una versión alpha. Adicionalmente, recuerden que existe un malware que está activamente reportando todo el tráfico de la red interna hacia el exterior, filtrando así información sensible.

Una captura del último tráfico enviado se puede descargar aquí.

Finalmente, luego de cuatro días, el servidor fue encontrado en el siguiente estado:


Su trabajo será ver si se trata de un ataque externo ejecutado por el autor del código malicioso que se infiltró en los sistemas, o si se trata de un ataque interno. Para ello tendrán que verificar la captura a su disposición para ver si se puede obtener la contraseña del administrador de ese sitio. En caso de poder hacerse ¿cuál es la contraseña?

La continuidad laboral de un compañero sigue en sus manos ¡buena suerte!

Nota: En caso de encontrar prueba irrefutables sobre su inocencia, dejar un comentario y posteriormente desarrollar un pequeño tutorial, demostrando la veracidad del análisis. Aparentemente, solo el usuario root tenia los permisos necesarios para modificar los archivos de la web.

Javier Aguinaga
Malware Analyst

Autor , ESET

  • SilverNeoX

    Cliente: 192.168.66.128 [JAVIER-5CE01453] (Windows)
    Servidor: 172.16.1.102 (fbi.gov)
    Protocolo: FTP
    > Usuario: developer
    > Contraseña: h4ck3r5
    [Login FTP] Fecha y Hora: 03/07/2012 17:49:34

    – 172.16.1.102 [fbi.gov]
    > Incoming sessions: 1
    Server: 172.16.1.102 [fbi.gov] TCP 21 (310 data bytes sent), Client: 192.168.66.128 [JAVIER-5CE01453] [javier-5ce01453] [javier-5ce01453.] (Windows) TCP 1939 (123 data bytes sent), Session start: 03/07/2012 17:49:27, Session end: 03/07/2012 17:49:57
    > Outgoing sessions: 2
    *1º. Server: 192.168.66.128 [JAVIER-5CE01453] [javier-5ce01453] [javier-5ce01453.] (Windows) TCP 5001 (0 data bytes sent), Client: 172.16.1.102 [fbi.gov] TCP 36922 (181 data bytes sent), Session start: 03/07/2012 17:49:36, Session end: 03/07/2012 17:49:36
    *2º. Server: 192.168.66.128 [JAVIER-5CE01453] [javier-5ce01453] [javier-5ce01453.] (Windows) TCP 5002 (0 data bytes sent), Client: 172.16.1.102 [fbi.gov] TCP 60813 (16467 data bytes sent), Session start: 03/07/2012 17:49:47, Session end: 03/07/2012 17:49:47

    – 192.168.66.128 [JAVIER-5CE01453] [javier-5ce01453] [javier-5ce01453.] (Windows)
    > Incoming sessions: 2
    *1º. Server: 192.168.66.128 [JAVIER-5CE01453] [javier-5ce01453] [javier-5ce01453.] (Windows) TCP 5001 (0 data bytes sent), Client: 172.16.1.102 [fbi.gov] TCP 36922 (181 data bytes sent), Session start: 03/07/2012 17:49:36, Session end: 03/07/2012 17:49:36
    *2º. Server: 192.168.66.128 [JAVIER-5CE01453] [javier-5ce01453] [javier-5ce01453.] (Windows) TCP 5002 (0 data bytes sent), Client: 172.16.1.102 [fbi.gov] TCP 60813 (16467 data bytes sent), Session start: 03/07/2012 17:49:47, Session end: 03/07/2012 17:49:47

    > Ataque: Interno [Todas son direcciones privadas]
    Vulnerabilidad: SQL Injection
    Herramienta: SQLMap

    172.16.1.103 – [02/Jul/2012:17:34:31 +0200] “GET /search.php?q=facebook HTTP/1.1” 200 531 “-” “sqlmap/1.0-dev (1bae9955b7) (http://www.sqlmap.org)”

    172.16.1.103 – [02/Jul/2012:17:59:51 +0200] “GET /search.php?q=facebook%27%20AND%20ORD%28MID%28%28SELECT%20IFNULL%28CAST%28user%20AS%20CHAR%29%2C0x20%29%20FROM%20challenge.users%20ORDER%20BY%20id%20LIMIT%201%2C1%29%2C6%2C1%29%29%20%3E%201%20AND%20%27zJfx%27=%27zJfx HTTP/1.1” 302 618 “-” “sqlmap/1.0-dev (1bae9955b7) (http://www.sqlmap.org)”

  • Mateo Calcagno

    Al parecer se trata de un ataque externo, por parte del autor del código malicioso.
    Lo primero que hice fue abrir el archivo de captura con el bloc de notas para ver si encontraba algo fácil, enseguida encontré algo muy notorio en el archivo. Había una charla del dueño del servidor y otra persona, hablaban sobre el hecho de que el servidor fue infectado.
    La otra persona le ofrece un archivo de seguridad “Access.log” y le da derecho de administración al dueño para que pueda corregirlo.
    Pude conseguir el usuario y contraseña:

    User: developer
    Password: h4ck3r5

    Realmente mucho no pude averiguar y conseguí algunos datos de más:
    2 Puertos: 192,168,66,128,19,137 – 192,168,66,128,19,138

    Y un usuario que supongo que será de algunos de los 2 que están charlando: javier-5ce01453
    Espero haber tenido razón, muchas gracias por su tiempo.

  • El compañero es inocente!

    De los paquetes capturados obtenemos la conversación de los compañeros:
    “+ hola buen dia
    – Buen dia
    + creo que mi servidor en desarrollo, ha sido vulnerado :(
    – En serio?
    + me siento muy mal, .hay alguna forma de corroborar esto?
    – Revisaste el archivo access.log
    + para ser sincero, no es mi area y no entiendo mucho de seguridad
    tendrias algun conocido que pueda verificarlo
    – Si, un analista de seguridad, se llama Marcelo Pereyra.
    + yo tengo un backup del access.log en un servidor ftp seguro
    chequeo si es la ultima version y cualquier cosa, le doy las credenciales a tu amigo
    acabo de mirar, y si, corresponde al ultimo log
    ahora te paso las credenciales por un entorno seguro jaja
    – ok perfecto
    + saludos
    – besos <3"

    El comañero ingresa al FTP usando las credenciales developer:h4ck3r5 y descarga el archivo data-intrusion.rar.

    Dentro de este archivo encontramos el access.log y es donde comprobamos que el compañero es inocente.

    Desde la IP 172.16.1.103 se realizó el ataque de SQL Injection usando la herramienta sqlmap, la IP del compañero es 172.16.1.102. A través de un script se analizaron los registros y se encontró que la herramienta obtuvo el hash MD5 del usuario root, que pertenece al texto plano "pepe".

    Los datos obtenidos por sqlmap fueron:
    Base de datos: Challenge
    Tabla: Users
    Columnas: id, user, passwd, description
    1,root,926e27eecdbc7a18858b3798ba99bddd(pepe),
    2,guest,d6a6bc0db10694a2d90e3a69648f3a03(hacker),a poor user

    En sinfocol dot org/eset_20.zip pueden encontrar el análisis y el script desarrollado.

  • Cristian

    El atacante ingreso al servidor porque:
    * El webmaster de entrego la credenciales al atacante
    * Luego el atacante se conecto al servidor por ftp
    * Despues el atacante cargo un malware con el archivo data-intrusion.rar

    Las credenciales son:
    User: developer
    Password: h4ck3r5

  • Creo que lo tengo .
    Hay un culpable y fue la persona en que se confio el analisis forense del ataque.
    Tutorial adonde lo mando??

  • – Fue un ataque interno desde la IP 172.16.1.103.
    – Vulnerabilidad Blind SQLi.
    – Explotación de la vulnerabilidad usando SQLMAP – SQLi Boolean Based.
    – Código de Respuesta del servidor 200 TRUE, 302 FALSE.

    USER: root
    HASH: 926e27eecdbc7a18858b3798ba99bddd -> PASS: pepe

    USER: guest 
    PASS: d6a6bc0db10694a2d90e3a69648f3a03 -> PASS: hacker

    PD: Espero no haberme equivocado en algún caracter del los passwords (soy humano).

  • Todo parece indicar que fue un trabajo interno.
    En el archivo access.log se ve un ataque con la herramienta sqlmap.
    Obtuvieron las credenciales del sitio utilizando una inyección de SQL.
    ¿Acaso el administrador se llama pepe ? por aquello de la contraseña de root.

    Lo más inquietante es que el ataque proviene de la misma dirección ip que el chat donde el administrador pide ayuda.

    En la información obtenida no hay indicios de ataque externo, o del malware, excepto que al resolver el dominio fbi.gov responde con la misma dirección del servidor.

  • Ernesto Flores

    El atacante pudo haber utilizado las credenciales de la cuenta del servidor FTP para poder realizar el deface del sitio cuyas credenciales son las siguientes: user: developer
    Password: h4ck3r5
    esta cuenta puede tener acceso al sistema completo y asi se realizo el ataque.

    El uso de un protocolo inseguro que su autenticación de los usuario se hace por texto claro, es recomentable que utilizen un protocolo mas seguro y que encripte la comunicación.

  • Gracias a todos por participar, pero el ganador del reto es Daniel Correa.

    El escaneo fue interno, pero lo que se trataba de comprobar era si con la información brindada al malware, un atacante externo podía ingresar al servidor.

    Mañana sale oficialmente la solución al reto.

Síguenos