26.1.7 Lab - Snort and Firewall Rules .
26.1.7 Lab - Snort and Firewall Rules .
26.1.7 Lab - Snort and Firewall Rules .
Topología
Objetivos
Parte 1: Preparar el entorno virtual
Parte 2: El firewall y los archivos de registro de IDS
Parte 3: Finalizar y desactivar el proceso de Mininet
Antecedentes / Escenario
En una red de producción segura, las alertas de red son generadas por diversos tipos de
dispositivos como dispositivos de seguridad, firewalls, dispositivos IPS, routers, switches y
servidores, entre otros. El problema es que no todas las alertas se crean de la misma manera.
Por ejemplo: las alertas generadas por un servidor las generadas por un firewall serán diferentes
y tendrán distintos contenidos y formatos.
En esta práctica de laboratorio, se familiarizará con las reglas de firewall y las firmas de IDS.
Recursos necesarios
● Máquina virtual CyberOps Workstation
● Conexión a Internet
Nota: En esta práctica de laboratorio, la VM CyberOps Workstation es un contenedor para alojar
el entorno de Mininet que se muestra en la topología. Si se recibe un error de memoria en un
intento de ejecutar cualquier comando, cierre el paso, vaya a la configuración de VM y aumente
la memoria. El valor predeterminado es 1 GB; intente cambiarlo a 2 GB.
Instrucciones
c. Utilicen el comando ifconfig para verificar que la VM CyberOps Workstation ahora tenga
una dirección IP en sus redes locales. También pueden probar la conectividad a un
servidor web público si emiten un ping a www.cisco.com. Presionen Ctrl+C para detener los
pings.
[analyst@secOps ~]$ ping www.cisco.com
PING e2867.dsca.akamaiedge.net (23.204.15.199) 56(84) bytes of data.
64 bytes from a23-204-15-199.deploy.static.akamaitechnologies.com
(23.204.15.199): icmp_seq=1 ttl=54 time=28.4 ms
64 bytes from a23-204-15-199.deploy.static.akamaitechnologies.com
(23.204.15.199): icmp_seq=2 ttl=54 time=35.5 ms
^C
--- e2867.dsca.akamaiedge.net ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 28.446/32.020/35.595/3.578 ms
El cursor de mininet debería aparecer en la pantalla; eso indica que mininet está listo para
recibir comandos.
b. En el cursor de mininet, abran un shell en R1 con el siguiente comando:
mininet> xterm R1
mininet>
Pr:
El shell de R1 se abre en una ventana del terminal con texto negro y fondo blanco. ¿Qué
usuario ha iniciado sesión en ese shell? ¿Qué nos lo indica?
El usuario root. Esto se indica con el signo # después del mensaje.
Nota: No verá ningún indicador porque Snort ahora se está ejecutando en esta ventana. Si
por cualquier motivo, Snort deja de ejecutarse y aparece el indicador [root@secOps
analysts]#, vuelva a ejecutar el script para iniciar Snort. Snort debe estar en ejecución para
poder capturar alertas más adelante en este laboratorio.
d. En el prompt de mininet de la máquina virtual CyberOps Workstation, abra shells para
los hosts H5 y H10.
mininet> xterm H5
mininet> xterm H10
mininet>
e. H10 simulará ser un servidor de Internet que aloja malware. En H10, ejecute el script
mal_server_start.sh para iniciar el servidor.
[root@secOps analyst]#
./lab.support.files/scripts/mal_server_start.sh
[root@secOps analyst]#
f. En H10, utilicen netstat con las opciones -tunpa para verificar que el servidor web se esté
ejecutando. Cuando se utiliza como se indica arriba, netstat genera una lista de todos los
puertos asignados a servicios en este momento:
[root@secOps analyst]# netstat -tunpa
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:6666 0.0.0.0:* LISTEN 1839/nginx: master
[root@secOps analyst]#
Tal como se ve en el resultado anterior, el servidor web ligero nginx se está ejecutando y está
escuchando conexiones en el puerto TCP 6666.
g. Se está ejecutando una instancia de Snort en la ventana del terminal de R1. Para introducir
más comandos en R1, abra otro terminal de R1; para ello, vuelva a introducir xterm R1 en la
ventana del terminal de la máquina virtual CyberOps Workstation. También es posible que
quieran organizar las ventanas del terminal para poder ver e interactuar con cada dispositivo.
h. En la nueva ficha del terminal de R1, ejecuten el comando tail con la opción -f para
monitorear el archivo /var/log/snort/alert en tiempo real. Es en este archivo que se configura
Snort para registrar alertas.
[root@sec0ps analyst]# tail -f /var/log/snort/alert
Como todavía no se registró ninguna alerta, el archivo de registro debería estar vacío. Sin
embargo, si ya han realizado esta práctica de laboratorio, es posible que aparezcan entradas
de alertas extrañas. En cualquier caso, no verán ningún cursor después de escribir este
comando. En esta ventana se mostrarán las alertas a medida que tengan lugar.
i. En H5, utilicen el comando wget para descargar un archivo de
nombre W32.Nimda.Amm.exe. Diseñada para descargar contenido a través de HTTP, wget
es una excelente herramienta para descargar archivos desde servidores web directamente
desde la línea de comandos.
[root@secOps analyst]# wget 209.165.202.133:6666/W32.Nimda.Amm.exe
--2017-04-28 17:00:04-- http://209.165.202.133:6666/W32.Nimda.Amm.exe
Connecting to 209.165.202.133:6666... connected.
HTTP request sent, awaiting response... 200 OK
Length: 345088 (337K) [application/octet-stream]
Saving to: 'W32.Nimda.Amm.exe'
[root@secOps analyst]#
Pregunta:
¿Qué puerto se utiliza al comunicarse con el servidor web que aloja malware? ¿Qué nos lo
indica?
¿El IDS generó alguna alerta relacionada con la descarga del archivo?
si
j. Como el archivo malicioso estaba transitando por R1, el IDS (Snort) pudo inspeccionar su
carga útil. La carga útil coincidió con al menos una de las firmas configuradas en Snort y
generó una alerta en la segunda ventana del terminal de R1 (la ficha en la que se está
ejecutando tail -f). A continuación se muestra la entrada de la alerta. Sus marcas de hora
serán diferentes:
04/28-17:00:04.092153 [**] [1:1000003:0] Malicious Server Hit! [**]
[Priority: 0] {TCP} 209.165.200.235:34484 -> 209.165.202.133:6666
Preguntas:
En función de la alerta que se muestra arriba, ¿cuáles fueron las direcciones IPv4 de origen y de
destino que se utilizaron en la transacción?
En función de la alerta que se muestra arriba, ¿cuáles fueron los puertos de origen y de destino
que se utilizaron en la transacción?
En función de la alerta que se muestra arriba, ¿qué mensaje registró la firma del IDS?
En H5, utilicen el comando tcpdump para capturar el evento y volver a descargar el archivo
malicioso y así poder capturar la transacción. Emitan el siguiente comando para iniciar la
captura de paquetes:
[root@secOps analyst]# tcpdump –i H5-eth0 –w nimda.download.pcap &
[1] 5633
[root@secOps analyst]# tcpdump: listening on H5-eth0, link-type EN10MB
(Ethernet), capture size 262144 bytes
El comando anterior le ordena a tcpdump que capture paquetes en la interfaz H5-eth0 y que
guarde la captura en un archivo de nombre nimda.download.pcap.
El símbolo & del final le indica al shell que ejecute tcpdump en segundo plano. Sin este símbolo,
tcpdump impediría el uso del terminal mientras se está ejecutando. Observen el [1] 5633;
indica que se envió un proceso al segundo plano y que su ID de proceso (PID) es 5366. Sus
PID muy probablemente serán diferente.
k. Presionen INTRO un par de veces para recuperar el control del shell mientras tcpdump se
ejecuta en segundo plano.
l. Ahora que tcpdump está capturando paquetes, vuelvan a descargar el malware. En H5,
vuelvan a ejecutar el comando o utilicen la flecha hacia arriba para recuperarlo del centro del
historial de comandos.
[root@secOps analyst]# wget 209.165.202.133:6666/W32.Nimda.Amm.exe
--2017-05-02 10:26:50-- http://209.165.202.133:6666/W32.Nimda.Amm.exe
Connecting to 209.165.202.133:6666... connected.
HTTP request sent, awaiting response... 200 OK
Length: 345088 (337K) [application/octet-stream]
Saving to: 'W32.Nimda.Amm.exe'
m. Lleve tcpdump al primer plano con el comando fg para detener la captura. Como tcpdump
era el único proceso que se había enviado a segundo plano, no es necesario especificar el
PID. Detengan el proceso de tcpdump con Ctrl+C. El proceso de tcpdump se detiene y
exhibe una resumen de la captura. La cantidad de paquetes puede diferir en sus capturas.
[root@secOps analyst]# fg
tcpdump -i h5-eth0 -w nimda.download.pcap
^C316 packets captured
316 packets received by filter
0 packets dropped by kernel
[root@secOps analyst]#
n. En H5, utilicen el comando ls para verificar que el archivo pcap realmente se haya guardado
en el disco y que su tamaño sea mayor que cero:
[root@secOps analyst]# ls -l
total 1400
drwxr-xr-x 2 analyst analyst 4096 Sep 26 2014 Desktop
drwx------ 3 analyst analyst 4096 Jul 14 11:28 Downloads
drwxr-xr-x 8 analyst analyst 4096 Jul 25 16:27 lab.support.files
-rw-r--r-- 1 root root 371784 Aug 17 14:48 nimda.download.pcap
drwxr-xr-x 2 analyst analyst 4096 Mar 3 15:56 second_drive
-rw-r--r-- 1 root root 345088 Apr 14 15:17 W32.Nimda.Amm.exe
-rw-r--r-- 1 root root 345088 Apr 14 15:17 W32.Nimda.Amm.exe.1
[root@secOps analyst]#
Nota: Es posible que su lista de directorios tenga otra combinación de archivos, pero de todos
modos debería ver el archivo nimda.download.pcap.
Pregunta:
[root@secOps ~]#
Pregunta:
d. Vuelvan a utilizar el comando iptables para asegurarse de que la regla se haya agregado a
la cadena FORWARD. La VM CyberOps Workstation puede demorar algunos segundos para
generar la salida:
[root@secOps analyst]# iptables -L -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination