Nos han contratado como analistas del SOC (Security Operations Center) para una tienda online y un atacante ha penetrado la red.

Vamos a tener que averiguar, a partir de los registros:

  • Qué técnicas y herramientas ha usado el atacante.
  • Qué endpoints eran vulnerables.
  • Qué datos sensibles se han robado del entorno.

Descargamos el archivo zip con los registros y escribimos «I am ready!» para empezar.

Hay tres archivos registro:

  • auth.log
  • access.log
  • vsftpd.log

Reconocimiento

Analizando los archivos, respondamos a las preguntas.

¿Qué herramientas ha usado el atacante? La pista nos dice que el access.log es intereante y que miremos los encabezados User-Agent porque nos pueden dar pistas.

Nos pide 5 herramientas, vamos a ponerlas por orden de aparición en los registros.

nmap, hydra, sqlmap, curl, feroxbuster

¿Qué endpoint era vulnerable a un ataque?

Vemos la fuerza bruta con Hydra y sobre qué endpoint la hace hasta que, al final, se ha roto bajo el peso del ataque.

/rest/user/login

¿Qué endpoint era vulnerable a inyección SQL?

Lo podemos deducir partiendo de las entradas de registro correspondientes a SQLMap.

/rest/products/search

¿Qué parámetro se ha usado para la inyección SQL?

De nuevo lo vemos echando un vistazo a la parte de SQLMap.

q

¿Qué endpoint usó el atacante para obtener archivos? (incluyendo la /)

/ftp

Datos robados

Para esta sección, analizamos los registros buscando:

  • El movimiento del atacante en la web.
  • Códigos de respuesta.
  • Cadenas de peticiones anormales.

¿Qué sección de la web usó el atacante para obtener direcciones de email?

La pista nos pregunta dónde suelen comentar los usuarios en una web. En el archivo access.log vemos constantes visitas a las secciones de reseñas de los diferentes productos.

product review

¿Tuvo éxito su ataque de fuerza bruta? Si es así, ¿cuál es la marca de tiempo del ataque exitoso?

Hay varios ataques de fuerza bruta, pero la pregunta refiere al ataque de Hydra en /rest/user/login que era vulnerable. Además, es el que tiene los registros con el formato de fecha que nos pide.

Miramos el último intento de Hydra, que es la línea 495 de access.log y qué marca de tiempo tiene.

yay, 11/Apr/2021:09:16:32 +0000

¿Qué información de usuario pudo obtener el atacante del endpoint vulnerable a inyección SQL?

Nos vamos a la sección de SQLMap dentro de access.log. Ahí vemos en la línea 631 que, tras ir probando, hay un ataque UNION SELECT que obtiene email y contraseña. Así que…

email, password

¿Qué archivos ha tratado de descargar el atacante del endpoint vulnerable de la quinta pregunta de la sección anterior (ftp)?

Las líneas 641 y 642 de access.log, casi al final del registro, nos dan los dos nombres de archivo. Los ponemos por orden inverso de aparición en el registro para que acepte la respuesta.

coupons_2013.md.bak, www-data.bak

¿Qué servicio y nombre de cuenta (nombre de usuario) se usó para obtener los archivos de la anterior pregunta?

El servicio es claramente FTP, así que nos vamos al registro de ese servicio, el archivo vsftpd.log. Ahí vemos que la sesión se hace bajo una cuenta anónima, ya que al parecer permite esa clase de usuario, como pasa a veces con el FTP.

ftp, anonymous

¿Qué servicio y nombre de usuario se ha usado para conseguir una shell en el sistema?

Tenemos que echar un vistazo al auth.log, donde vemos un ataque de fuerza bruta al servicio SSH que, finalmente, tiene éxito (línea 186 del registro). Ahí vemos también el usuario con el que se identifica, así que…

ssh, www-data