viernes, julio 16, 2021

Pentester e Intrusión en un sistema Versus Analista Forense y Detección de Intrusión (Parte III de III)

Para terminar de hacer el Análsisis Forense comenado, en la parte anterior de este artículo, que nos permita explicar de forma narrativa qué es lo que ha pasado en la intrusión que vimos en la primera parte de este artículo y cómo ha pasado, vamos realizar ahora un análisis de los distintos instantes de tiempo o "TimeSpamps" del sistema de ficheros a par tir de la hora de inicio del incidente.

Figura 28: Pentester e Intrusión en un sistema Versus
Analista Forense y Detección de Intrusión (Parte III de III)

Para ello, utilizando los comandos fls y mactime del paquete sleuthkit vamos a generar un archivo CSV (Comma Separated Values) con el listado de todos los ficheros con los timestamps modificados después de las 18:27:29UTC.

Figura 29: Generación del fichero CSV de timestamps de ficheros

Abriendo el archivo CSV, una de las primeras cosas que nos aparece es, a las 18:27:39, un acceso al binario whoami. Esto normalmente indica la ejecución de dicho binario, pero, de cara a establecer la hora en que se produjo la ejecución, siempre tenemos que tener en cuenta que, por motivos de rendimiento, los sistemas de ficheros en GNU/Linux normalmente se montan con el flag relatime.

Figura 30: Libro de Linux Exploiting en 0xWord.

Esto quiere decir que el timestamp de acceso a los ficheros solo va a quedar reflejado si no ha sido actualizado en las últimas 24 horas. Si fue accedido después, estos accesos no quedarán reflejados hasta que pasen 24hs de nuevo:

Figura 31: Acceso marcado por Type (a) a binario whoami

Después podemos ver que se ejecuta el comando wget e inmediatamente después se crean según la fecha de (b: birth time) los ficheros 37292 y exploit.c:

Figura 32: Tipo (b) de creación de ficheros

Un poco más abajo, y en el mismo segundo (18:49:34), vemos la ejecución de gcc, el acceso a exploit.c y la creación en el mismo directorio de exploitExec. Esto indica la compilación del fichero exploit.c para generar exploitExec.

Figura 33: Compilación del exploit

Seguimos bajando y vemos la ejecución de exploitExec, passwd, chsh y gpasswd acompañados de las modificaciones en los ficheros /etc/shadow, /etc/passwd y /etc/gshadow/. Podemos ver también que se crean unos ficheros de “backup” acabados en -.

Figura 34: ejecución de exploit, acceso a passwd y creación de backups

Para acabar con el análisis forense de los timestamps, podemos revisar y localizar el rastro que ha dejado tras de sí la ejecución del comando sudo por parte del usuario www-data.

Figura 35: Actividades del usuario www-data 

Como se puede ver, también hay varios ficheros a los que debemos de echar un vistazo. Comenzaremos con /opt/read- me_app/exploit.c. En la cabecera del fichero encontramos la vulnerabilidad utilizada por el atacante en su explotacion.

Figura 36: Información en la cabecera del exploit

Que por supuesto, si buscamos en Internet, nos llevará al expediente del CVE que ya hemos visto, donde nos va a detallar todo lo que puede hacer ese exploit, en una máquina vulnerable.

Figura 37: Información de lo que permite el exploit

Miraremos ahora las modificaciones realizadas en los ficheros /etc/passwd, /etc/shadow y /etc/groups comparándolas, mediante diff, con sus copias de backup, lo que nos llevaría directamente a la parte relevante del ataque. En /etc/passwd/ vemos como se ha habilitado la shell /bin/bash/ para el usuario www-data.

Figura 38: Búsqueda de las diferencias en los ficherso de passwd

En /etc/shadow vemos cómo, además, se ha establecido también una contraseña para el usuario www-data:

Figura 39: Contraseña en fichero shadow establecida para www-data

Y si ahora realizamos exactamente el mismo proceso pero con el fichero /etc/group, verémos cómo se ha añadido también el usuario www-data al grupo sudo para darle privilegios.

Figura 40: Cambios en /etc/group

Para finalizar el análisis vamos a echar un ojo a algunos de los ficheros de log del sistema. Empezaremos por /var/log/wtmp utilizando para ello el comando last. Podemos ver, a las 19:01 el acceso por ssh del usuario www-data desde 192.168.10.5:

Figura 41: comando last para ver las últimas entradas

En el fichero auth.log también encontramos rastros de las acciones realizadas para habilitar el usuario www-data y el posterior acceso de este por ssh. Y también podemos ver los comandos ejecutados cuando ya se accedió después para hacer el volcado de memoria RAM.

Figura 42: Comandos finales para hacer el volcado de la memoria RAM

Finalmente, con todos los elementos analizados y los timestamps encontrados, podemos establecer una linea temporal de acontecimientos, que podemos resumir en la siguiente tabla:

Figura 43: Historial de acciones

Espero que con este artículo, hayamos visto la misma experiencia de explotación de una vulnerabilidad pero desde dos partes diferentes, el pentester, y el analista forense. Para que podáis ver, en cualquier caso, como lo ve el opuesto al rol que tú poseas.

Saludos,

No hay comentarios:

Publicar un comentario