Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Grupo: 2150521_24
Tutor
JUAN ESTEBAN TAPIAS
Para el desarrollo de esta actividad hizo uso de los conocimientos obtenidos hasta el
momento y los contenidos compartidos por el tutor del grupo los cuales fueron de gran
ayuda para analizar y plasmar la que se debía implementar para dar solución a la guía
EJERCICIOS SELECCIONADOS
BORIS VALVERDE
Objetivos
Parte 1: Observar registros de flujos de NetFlow - Un sentido
Parte 2: Observar registros de NetFlow correspondientes a una sesión que ingresa y
sale del colector
Aspectos básicos
En esta actividad utilizarán Packet Tracer para crear tráfico de red y observarán los registros
de flujos de NetFlow correspondientes en un colector de NetFlow. Packet Tracer ofrece una
simulación básica de la funcionalidad de NetFlow. No sustituye a aprender NetFlow en un
equipo físico. Puede haber algunas diferencias entre los registros de flujos de NetFlow
generados por Packet Tracer y los registros creados por un equipo de red con todas las
funciones.
Parte 1: Observar registros de flujos de NetFlow - Un sentido
Paso 1: Abran el colector de NetFlow.
a. En el Colector de NetFlow, hagan clic en la ficha Desktop (Escritorio). Hagan clic en el
icono del Colector de Netflow.
b. Hagan clic en el botón de opción “On” (“Activado”) para activar el colector según sea
necesario. Posicionen y cambien el tamaño de la ventana para poder verla desde la
ventana de la topología de Packet Tracer.
Paso 2: Hagan ping al gateway predeterminado desde PC-1.
a. Hagan clic en PC-1.
b. Abran la ficha Desktop y hagan clic en el icono del Símbolo del sistema.
c. Introduzcan el comando ping para probar la conectividad al gateway predeterminado
en 10.0.0.1.
C:\> ping 10.0.0.1
d. Después de una breve demora, en la pantalla del Colector de NetFlow se verá un gráfico
circular.
Nota: Es posible que no se envíe el primer conjunto de pings al Colector de NetFlow
porque el proceso de ARP primero debe resolver direcciones IP y MAC. Si no aparece un
gráfico circular después de 30 segundos, repitan el ping al gateway predeterminado.
e. Hagan clic en el gráfico circular o en la entrada de las referencia para mostrar los detalles
del registro del flujo.
f. El registro del flujo tendrá entradas similares a las de la siguiente tabla. Sus marcas de
hora serán diferentes.
En este caso, el flujo representa al ping de ICMP desde el host 10.0.0.10 hacia 10.0.0.1.
Había cuatro paquetes de ping en el flujo Los paquetes ingresaron a la interfaz Gig0/0 del
exportador.
Nota: En esta actividad, el router perimetral se ha configurado como exportador de flujos
de NetFlow. La interfaz LAN está configurada para monitorear los flujos que ingresan a ella
desde la red LAN. La interfaz en serie se ha configurado para recoger los flujos que
ingresan a ella desde Internet. Esto se ha hecho para simplificar esta actividad.
Para ver el tráfico que coincide con una sesión bidireccional completa, el exportador de
NetFlow tendría que configurarse para recoger flujos que ingresan y salen de la red.
¿Qué esperan ver en los registros de flujo del colector de NetFlow? ¿Cambiarán las
estadísticas correspondientes al registro de flujo ya existente, o aparecerá un flujo nuevo
en el gráfico circular?
Se visualiza un nuevo flujo desde la IP Origen PC2
f. Hagan clic en PC-1 > Desktop. Si es necesario, cierren la ventana del Símbolo del
sistema. Hagan clic en el icono del navegador web.
g. En el navegador web de PC-1, introduzca 192.0.2.100 y haga clic en Ir. Aparecerá la
página web del Sitio web de ejemplo.
h. Después de una breve demora, aparecerá un gráfico circular nuevo en el colector de
NetFlow. Verán al menos dos segmentos circulares correspondientes a la solicitud y a la
respuesta HTTP. Podrían ver un tercer segmento si se excedió el tiempo de espera del
caché de ARP correspondiente a PC-1.
i. Hagan clic en el segmento circular de HTTP para mostrar el registro y verificar sus
predicciones.
j. Hagan clic en el enlace a la página de Copyrights.
¿Qué ocurrió? Expliquen. (Pista: comparen el número de puerto en el host correspondiente
a los flujos).
Se agregaron nuevos registros de trafico
Comparen los flujos. Sin contar las diferencias obvias en la marca de hora, las
direcciones IP de origen y destino, los puertos y las interfaces, ¿qué más difiere entre los
flujos de la solicitud y de la respuesta?
________________________________________________________________________
____________
________________________________________________________________________
____________
________________________________________________________________________
____________
Parte 1, Paso 3b 10
Parte 1, Paso 3c 10
Parte 1, Paso 3d 10
Parte 2, Paso 1f 30
Parte 2, Paso 1j 30
Parte 2, Paso 2c 10
Puntuación total 100
MIGUEL ARIAS
Objetivos
Parte 1: Utilizar syslog para capturar archivos de registro de varios dispositivos de red
Parte 2: Observar los registros de acceso de usuarios AAA
Parte 3: Observar información de NetFlow
Antecedentes / Escenario
En esta actividad, utilizarán Packet Tracer para ver datos de red generados por syslog, AAA y
NetFlow.
Parte 1: Ver entradas de registro con Syslog
Paso 1: Servidor Syslog
Syslog es un sistema de mensajería diseñado para admitir el registro remoto. Los
clientes syslog envían entradas de registro a un servidor syslog. El servidor syslog concentra y
almacena las entradas de registro. Packet Tracer admite operaciones básicas de syslog y se
puede utilizar con fines de demostración. La red incluye un servidor syslog y clientes syslog.
R1, R2, el Switch de núcleo y el Firewall son clientes syslog. Estos dispositivos están
configurados para enviar sus entradas de registro al servidor syslog. El servidor syslog recoge
las entradas de registro y permite que se las lea.
Las entradas de registro se categorizan en siete niveles de gravedad. Los niveles más bajos
representan los eventos más graves. Los niveles son los siguientes: emergencias (0),
alertas (1), crítico (2) errores (3), advertencias (4), notificaciones (5), informativo (6) y
depuración (7). Los clientes syslog se pueden configurar para enviar entradas de registro a
servidores syslog en función del nivel de gravedad.
a. Hagan clic en el Servidor Syslog para abrir su ventana.
Reflexión
Si bien las herramientas presentadas en esta actividad son útiles, cada una tiene su propio
servicio y es posible que tenga que ser ejecutada en dispositivos totalmente diferentes. Una
mejor manera (que se analiza más adelante en el curso) es concentrar toda la información de
registro en una sola herramienta, lo que permite facilitar la referencia cruzada y hace posibles
potentes funcionalidades de búsqueda. Las plataformas de Administración de información y
eventos de seguridad (Security Information and Event Management, SIEM) puede recopilar
archivos de registro y otros datos de diversas fuentes e integrar la información correspondiente
al acceso por medio de una sola herramienta.
JUAN ESTEBAN TAPIAS
Objetivos
En esta práctica de laboratorio, configurarán un entorno de red virtual; para ello, conectarán
varias máquinas virtuales en Virtualbox.
Antecedentes / Escenario
Se utiliza un sandbox de seguridad de la red virtual o un entorno de laboratorio con varias VM
para el análisis y las pruebas de seguridad. Este entorno con varias VM es obligatorio para
prácticas de laboratorio más avanzadas de este curso.
Recursos necesarios
Máquina virtual CyberOps Workstation (cyberops_workstation.ova).
Conexión a Internet
Los siguientes archivos .ova para crear VM adicionales: kali_linux.ova, metasploitable.ova
y security_onion.ova. Hagan clic en cada enlace para descargar los archivos.
Servidor con al menos 8 GB de RAM y 45 GB de espacio libre en disco.
Nota: Si sus computadoras solo tienen 8 GB de RAM, asegúrense de no tener ninguna
otra aplicación abierta excepto por un programa lector de PDF para consultar esta práctica
de laboratorio. Configuración de la VM
Tamaño
del Espacio Contrase
Máquina virtual SO RAM Usuario
archivo en disco ña
OVA
MV Metasploitable
Paso 2: Conecte las máquinas virtuales en red para crear un laboratorio virtual.
En esta parte, se asegurarán de que la red esté configurada entre las VM. En VirtualBox, el
adaptador de red de una VM puede estar en modo puente (visible en la red como cualquier
otro dispositivo físico), en modo NAT (visible en la red pero en un espacio de direcciones IP
aparte) o en modo interno (solo visible para otras máquinas virtuales con el mismo nombre
interno o la misma red de área local [VLAN] virtual).
Examinen la configuración de red correspondiente a cada máquina virtual y fíjense de qué
manera los modos y nombres del adaptador de red ubican las VM en diferentes redes VLAN.
a. Kali tiene un adaptador de red que utiliza el modo red interna la VLAN Internet. Observe
de qué manera se corresponde con el diagrama de red de la página 1.
b. Metasploitable tiene dos adaptadores de red que utilizan el modo red interna, el Adaptador
1 corresponde a esta práctica de laboratorio y está en la VLAN de la dmz. Aunque se
muestra el Adaptador 2 para VirtualBox, no se lo utiliza en esta topología y se lo puede
ignorar.
c. Security Onion tiene cuatro adaptadores de red; tres de ellos utilizan el modo red interna y
uno el modo NAT, que se podría utilizar para conectarse a Internet. Security Onion conecta
a todas las VM de la red virtual, con un adaptador de red en cada una de las redes VLAN
(interna, dmz e Internet).
d. La VM CyberOps Workstation está en modo puente. No está en una red interna con las
otras VM. Tendrán que cambiar el adaptador de red a continuación.
Para realizar este tipo de laboratorios, es de suprema importancia tener bases claras en el sistema
operativo Linux, pues ejecutar comando por ejecutarlos es una tarea sencilla, pero al final no se
está aprendiendo, por ello se sugiere haber realizado los laboratorios de las primeras unidades
donde se trató el tema de OS linux desde cero. Por otro lado, se necesita si o si un computador
con mínimo 12 GB de memoria RAM para que todas las máquinas virtuales corran al mismo tiempo
sin problema.
BORIS VALVERDE
Práctica de laboratorio: Reglas de Snort y de firewalls
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
VM 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.
c. Utilicen el comando ifconfig para verificar que laVM 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>
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?
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 6666 de TCP.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 VM
CyberOps Workstation, tal como se indica a continuación. También es posible que
quieran organizar las ventanas del terminal para poder ver e interactuar con cada
dispositivo. En la siguiente figura vemos una organización efectiva para el resto de esta
práctica de laboratorio.
g. 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.
h. 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'
W32.Nimda.Amm.exe
100%[==========================================>] 337.00K --.-KB/s in
0.02s
[root@secOps analyst]#
¿Qué puerto se utiliza al comunicarse con el servidor web que aloja malware? ¿Qué nos lo
indica?
No me conecta al servidor
¿Se descargó completamente el archivo? No
¿El IDS generó alguna alerta relacionada con la descarga del archivo? _______________
i. 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
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, ¿cuándo tuvo lugar la descarga?
________________________________________________________________________
____________
________________________________________________________________________
____________
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.
j. Presionen INTRO un par de veces para recuperar el control del shell mientras tcpdump se
ejecuta en segundo plano.
k. 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'
W32.Nimda.Amm.exe 100%[===================>] 337.00K --.-KB/s in
0.003s
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.
¿Qué beneficios puede aportar este PCAP al analista especializado en seguridad?
________________________________________________________________________
____________
________________________________________________________________________
____________
Nota: El archivo PCAP se analizará en otra práctica de laboratorio.
[root@secOps ~]#
¿Qué cadenas está utilizando R1 en este momento?
c. Las conexiones al servidor malicioso generan paquetes que deben atravesar el firewall
iptables en R1. Los paquetes que atraviesan el firewall son manejados por la regla de
FORWARD y, por lo tanto, esa es la cadena que recibirá la regla de bloqueo. Para impedir
que las computadoras de los usuarios se conecten al servidor malicioso identificado en el
Paso 1, agreguen la siguiente regla a la cadena FORWARD en R1:
[root@secOps ~]# iptables -I FORWARD -p tcp -d 209.165.202.133 --
dport 6666 -j DROP
[root@secOps ~]#
Donde:
o -I FORWARD: inserta una regla nueva en la cadena FORWARD.
o -p tcp: especifica el protocolo TCP.
o -d 209.165.202.133: especifica el destino del paquete.
o -dport 6666: especifica el puerto de destino.
o -j DROP: define la acción a descartar.
d. Vuelva 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
Antecedentes / Escenario
Esta práctica de laboratorio preparará a los alumnos para aprender dónde se encuentran los
archivos de registro. También aprenderán cómo manipularlos y verlos. Las entradas de registro
son generadas por dispositivos de red, sistemas operativos, aplicaciones y diversos tipos de
dispositivos programables. A un archivo que contiene una secuencia temporizada de entradas
de registro se le llama archivo de registro.
Por naturaleza, los archivos de registro registran eventos que son relevantes a la fuente. La
sintaxis y el formato de los datos que se encuentran dentro de los mensajes de registro a
menudo son definidos por el desarrollador de la aplicación.
Por lo tanto, la terminología utilizada en las entradas de registro a menudo varía según la
fuente. Por ejemplo: dependiendo de la fuente, los términos "iniciar sesión", "conectarse",
"evento de autenticación" y "conexión del usuario" pueden aparecer en entradas de registro
para describir la autenticación exitosa de un usuario en un servidor.
A menudo es aconsejable tener terminología consistente y uniforme en los archivos de registro
generados por diferentes fuentes. Esto es especialmente cierto cuando todos los archivos de
registro son recopilados por un punto centralizado.
El término normalización se refiere al proceso de convertir partes de un mensaje, en este caso
una entrada de registro, a un formato común.
En esta práctica de laboratorio utilizarán herramientas de la línea de comando para normalizar
las entradas de registro manualmente. En la Parte 2, se normalizará el campo de la marca de
hora. En la Parte 3, se normalizará el campo de IPv6.
Nota: Si bien hay numerosos complementos para realizar la normalización de archivos de
registro, es importante comprender los fundamentos básicos que subyacen al proceso de
normalización.
Recursos necesarios
VM CyberOps Workstation
VM Security Onion
El archivo de registro anterior fue generado por la aplicación X. Los aspectos relevantes del
archivo son los siguientes:
o Las columnas están separadas, o delimitadas, por el carácter |. Por lo tanto, el archivo
tiene cinco columnas.
o La tercera columna contiene las marcas de hora en Unix Epoch.
o El archivo tiene una línea adicional al final. Esto será importante más adelante en la
práctica de laboratorio.
Supongan que un analista de archivos de registro necesita convertir las marcas de hora al
formato legible. Sigan los pasos que se detallan a continuación y utilicen AWK para realizar la
conversión manual fácilmente:
a. Abran la VM CyberOps Workstation y, luego, abran una ventana del terminal.
b. Utilicen el comando cd para pasar al directorio /home/analyst/lab.support.files/. Allí se
almacena una copia del archivo que se muestra arriba.
[analyst@secOps ~]$ cd ./lab.support.files/
[analyst@secOps lab.support.files]$ ls -l
total 580
-rw-r--r-- 1 analyst analyst 649 Jun 28 18:34 apache_in_epoch.log
-rw-r--r-- 1 analyst analyst 126 Jun 28 11:13 applicationX_in_epoch.log
drwxr-xr-x 4 analyst analyst 4096 Aug 7 15:29 attack_scripts
-rw-r--r-- 1 analyst analyst 102 Jul 20 09:37 confidential.txt
<output omitted>
[analyst@secOps lab.support.files]$
c. Emitan el siguiente comando de AWK para convertir e imprimir el resultado en el terminal:
Nota: Es común cometer un error de mecanografiado en el siguiente script. Consideren la
posibilidad de copiar el script en un editor de texto para quitar los saltos de línea
adicionales. Luego, copie el script del editor de texto a la ventana del terminal de la VM
CyberOps Workstation. Sin embargo, recuerden estudiar la explicación del script que se
incluye a continuación para enterarse de qué manera modifica el campo de la marca de
hora.
[analyst@secOps lab.support.files]$ awk 'BEGIN
{FS=OFS="|"}{$3=strftime("%c",$3)} {print}'
applicationX_in_epoch.log
2|Z|Mon 18 Aug 2008 11:00:00 AM EDT|AF|0
3|N|Tue 19 Aug 2008 11:00:00 AM EDT|AF|89
4|N|Sun 07 Sep 2008 11:00:00 AM EDT|AS|12
1|Z|Mon 08 Sep 2008 11:00:00 AM EDT|AS|67
5|N|Tue 09 Sep 2008 11:00:00 AM EDT|EU|23
6|R|Wed 10 Sep 2008 11:00:00 AM EDT|OC|89
||Wed 31 Dec 1969 07:00:00 PM EST
[analyst@secOps lab.support.files]$
El comando anterior es un script de AWK. Puede parecer complicado. La estructura
principal del script de AWK es la siguiente:
awk: invoca al intérprete de AWK.
‘BEGIN: define el comienzo del script.
{}: define las acciones que se deben realizar en cada línea del archivo de texto de
entrada. Un script de AWK puede tener varias acciones.
FS = OFS = “|”: esto define el separador de campos (es decir, el delimitador)
como el símbolo (|) de la barra. En distintos archivos de texto se pueden utilizar
diferentes caracteres delimitadores para separar campos. Este operador permite
que el usuario defina qué carácter se utiliza como el separador de campos en el
archivo de texto actual.
$3: esto hace referencia al valor presente en la tercera columna de la línea actual.
En el archivo applicationX_in_epoch.log, la tercera columna contiene la marca
de hora en Epoch que se tiene que convertir.
strftime: esta es la función interna de AWK diseñada para trabajar con la hora. Los
valores %c y $3 entre paréntesis son los parámetros que se pasan a strftime.
applicationX_in_epoch.log: este es el archivo de texto de entrada que se tiene
que cargar y utilizar. Como ya está en el directorio lab.support.files, no es
necesario que agregue la información de la ruta:
/home/analyst/lab.support.files/applicationX_in_epoch.log.
La primera acción del script, definida en el primer conjunto de llaves es definir el carácter
separador de campos como la barra vertical ("|"). Luego, en el segundo conjunto de llaves,
se reescribe la tercera columna de cada línea con el resultado de la función strftime() que
se ejecutó. strftime() es una función interna de AWK creada para manejar la conversión de
la hora. Observen que el script le ordena a la función que utilice el contenido de la tercera
columna de cada línea antes del cambio ($3) y que dé formato a la salida (%c).
¿Se convirtieron las marcas de hora Unix Epoch al formato legible? ¿Se modificaron los
otros campos? Explique.
Sí, el script se convirtió de Epoch a Human Readable. El script cambió solo el campo de
marca de tiempo, conservando el resto del archivo.
Comparen el contenido del archivo con la salida impresa. ¿Por qué está la siguiente línea:
||Wed 31 Dec 1969 07:00:00 PM EST?
La razón de la línea adicional es porque el archivo tiene una línea vacía al final, lo que llevó
al script a interpretarlo erróneamente como 0 y convertirlo en una marca de tiempo legible
por humanos.
Al interpretar la línea vacía como 0, el script convirtió 0 Unix Epoch a Human Readable. 0
Unix Epoch se traduce a 0 segundos después de la medianoche del 1 de enero de 1970. El
script muestra "Wed 31 Dec 1969 07:00:00 PM EST" porque se ajusta automáticamente
para la zona horaria. Debido a que la estación de trabajo CyberOps está configurada para
EST (UTC -5), el script muestra la medianoche del 1 de enero de 1970 menos 5 horas.
d. Utilicen nano (o el editor de texto que prefieran) para quitar la línea vacía adicional del final
del archivo y vuelvan a ejecutar el script AWK.
[analyst@secOps lab.support.files]$ nano applicationX_in_epoch.log
¿Ahora la salida es correcta? Explique.
Sí. Debido a que se eliminó la línea vacía, el script no creó datos adicionales ni los agregó
al archivo de registro.
e. Si bien imprimir el resultado en la pantalla es útil para solucionar problemas en el script, los
analistas probablemente necesitarán guardar la salida en un archivo de texto. Redirijan la
salida del script anterior a un archivo de nombre applicationX_in_human.log para
guardarlo en un archivo:
[analyst@secOps lab.support.files]$ awk 'BEGIN
{FS=OFS="|"}{$3=strftime("%c",$3)} {print}'
applicationX_in_epoch.log > applicationX_in_human.log
[analyst@secOps lab.support.files]$
¿Qué imprimió el comando anterior? ¿Es esperable?
No se imprimió nada en la pantalla. Sí, se espera, ya que la salida del comando se redirigió
a un archivo de texto denominado applicationX_in_human.log.
f. Utilicen cat para ver el archivo applicationX_in_human.log. Observen que ahora se quitó
la línea adicional y que las marcas de hora correspondientes a las entradas de registro se
han convertido al formato legible.
[analyst@secOps lab.support.files]$ cat applicationX_in_human.log
2|Z|Mon 18 Aug 2008 11:00:00 AM EDT|AF|0
3|N|Tue 19 Aug 2008 11:00:00 AM EDT|AF|89
4|N|Sun 07 Sep 2008 11:00:00 AM EDT|AS|12
1|Z|Mon 08 Sep 2008 11:00:00 AM EDT|AS|67
5|N|Tue 09 Sep 2008 11:00:00 AM EDT|EU|23
6|R|Wed 10 Sep 2008 11:00:00 AM EDT|OC|89
[analyst@secOps lab.support.files]$
Parte 2: Normalizar marcas de hora en un archivo de registro
Apache
En forma similar a lo que se hizo con el archivo applicationX_in_epoch.log, los archivos de
registro Apache también se pueden normalizar. Sigan los pasos que se detallan a continuación
para convertir marcas de hora Unix Epoch al formato legible. Analicen el siguiente archivo de
registro Apache, apache_in_epoch.log:
[analyst@secOps lab.support.files]$ cat apache_in_epoch.log
198.51.100.213 - - [1219071600] "GET
/twiki/bin/edit/Main/Double_bounce_sender?topicparent=Main.ConfigurationVar
iables HTTP/1.1" 401 12846
198.51.100.213 - - [1219158000] "GET
/twiki/bin/rdiff/TWiki/NewUserTemplate?rev1=1.3&rev2=1.2 HTTP/1.1" 200 4523
198.51.100.213 - - [1220799600] "GET /mailman/listinfo/hsdivision HTTP/1.1"
200 6291
198.51.100.213 - - [1220886000] "GET /twiki/bin/view/TWiki/WikiSyntax
HTTP/1.1" 200 7352
198.51.100.213 - - [1220972400] "GET /twiki/bin/view/Main/DCCAndPostFix
HTTP/1.1" 200 5253
198.51.100.213 - - [1221058800] "GET
/twiki/bin/oops/TWiki/AppendixFileSystem?template=oopsmore&m1=1.12&m2=1.12
HTTP/1.1" 200 11382
El archivo de registro Apache anterior contiene seis entradas que registran eventos
relacionados con el servidor web Apache. Cada entrada tiene siete campos. Los campos
están delimitados por un espacio:
o La primera columna contiene la dirección IPv4 (198.51.100.213) del cliente web que
está elevando la solicitud.
o La segunda y tercera columna no se utilizan, y se emplea un carácter de “-“ para
representar que no hay ningún valor.
o La cuarta columna contiene la marca de hora en Unix Epoch, por ejemplo:
[1219071600].
o La quinta columna contiene texto con detalles sobre el evento; eso incluye direcciones
URL y los parámetros de la petición web. Las seis entradas son mensajes HTTP GET.
Como estos mensajes incluyen espacios, todo el campo está encerrado entre comillas.
o La sexta columna contiene el código de estado HTTP, por ejemplo: 401.
o La séptima columna contiene el tamaño de la respuesta al cliente (en bytes), por
ejemplo: 12846.
En forma similar a lo se hizo en la Parte uno, se creará un script para convertir la marca de
hora del formato Epoch al legible.
a. En primer lugar, respondan las siguientes preguntas. Son cruciales para la construcción del
script.
En el contexto de la conversión de marcas de hora, ¿qué carácter funcionará bien como
carácter delimitador para el archivo de registro Apache anterior?
El carácter espacial.
e. Para corregir el problema se deben quitar los corchetes del campo de la marca de hora
antes de realizar la conversión. Corrijan el script; para ello, agreguen dos acciones antes
de la conversión, de la siguiente manera:
[analyst@secOps lab.support.files]$ awk 'BEGIN {FS=OFS=" "}
{gsub(/\[|\]/,"",$4)}{print}{$4=strftime("%c",$4)}{print}'
apache_in_epoch.log
Observen que, después de especificar el espacio como delimitador con {FS=OFS=” “},
hay una acción de expresión regular para hacer coincidir y reemplazar los corchetes por
una cadena vacía; eso quita efectivamente los corchetes que aparecen en el campo de la
marca de hora. La segunda acción imprime la línea actualizada para que se pueda realizar
la acción de la conversión.
gsub(): esta es una función interna de AWK que se utiliza para ubicar y sustituir
cadenas. En el script anterior, gsub() recibió tres parámetros separados por
comas, que se describen a continuación.
/\[|\]/: esta es una expresión regular que se pasa a gsub() como primer parámetro.
La expresión regular debe leerse como ‘find “[” OR “]”’. A continuación se
muestra el desglose de la expresión:
o El primer y último carácter “/” marcan el comienzo y el final del bloque de
búsqueda. Cualquier elemento que se incluya entre la primera y la
segunda “/” estará relacionado con la búsqueda. El carácter “\” se utiliza
para dar escape al siguiente “[“. El escape es necesario porque “[“ también
puede ser utilizado por un operador en expresiones regulares. Al escapar
el “[“ con una barra “\” precedente, le estamos diciendo al intérprete que el
“]” forma parte del contenido y no de un operador. El carácter “|” es el
operador OR. Tengan en cuenta que la barra "|" no tiene escape y, por lo
tanto puede verse como un operador. Por último, la expresión regular da
escape al corchete de cierre con “\]”, como se hizo antes.
"": esto representa la ausencia de caracteres, o una cadena vacía. Este parámetro
le dice a gsub() con qué debe reemplazar “[“ y “]”, cuando los encuentre. Al
reemplazar “[“ y “]” por “”, gsub() quita efectivamente los caracteres “[“ y “]”.
$4: esto le dice a gsub() que trabaje solamente en la cuarta columna de la línea
actual, la columna de la marca de hora.
Nota: La interpretación de expresiones regulares es un tema del examen de SECOPS. Las
expresiones regulares se analizan más detalladamente en otra práctica de laboratorio de
este capítulo. Sin embargo, pueden buscar tutoriales en Internet.
f. En un terminal de la VM CyberOps Workstation, ejecuten el script modificado, de la
siguiente manera:
[analyst@secOps lab.support.files]$ awk 'BEGIN {FS=OFS="
"}{gsub(/\[|\]/,"",$4)}{print}{$4=strftime("%c",$4)}{print}'
apache_in_epoch.log
¿El script pudo convertir las marcas de hora correctamente esta vez? Describan la salida.
Sí. El resultado ahora muestra dos líneas para cada entrada de registro. La primera línea
muestra la marca de tiempo en formato Unix Epoch y la segunda línea es la misma entrada de
registro con la marca de tiempo mostrada usando el formato Human Readable.
Parte 4: Reflexión
La normalización de registros es importante y depende del entorno implementado.
Las herramientas populares incluyen sus propias características de normalización, pero los
registros también se pueden normalizar manualmente.
Cuando estén normalizando y preparando archivos de registro manualmente, revisen bien los
scripts para garantizar que se llegue al resultado deseado. Un script de normalización mal
escrito puede modificar los datos, y eso afectaría directamente el trabajo del analista.
Práctica de laboratorio: Tutorial de expresiones regulares
Objetivos
En esta práctica de laboratorio, aprenderán a utilizar expresiones regulares para buscar las
cadenas de información que deseen.
Antecedentes / Escenario
Una expresión regular (regex) es un patrón de símbolos que describe datos que deben
coincidir en una consulta o en cualquier otra operación. Las expresiones regulares se
construyen en forma similar a las aritméticas, utilizando diversos operadores para combinar
expresiones más pequeñas. Hay dos estándares principales de expresiones regulares: POSIX
y Perl.
En esta práctica de laboratorio utilizarán un tutorial en línea para estudiar expresiones
regulares. También describirán la información que coincide con expresiones regulares dadas.
Recursos necesarios
VM CyberOps Workstation
Conexión a Internet
Metacaracteres Descripción
\. Periodo
Patrón de
expresión regular Descripción
Objetivos
Apliquen todo lo que saben sobre procedimientos para el manejo de seguridad para
formular preguntas sobre determinados escenarios de incidentes.
Antecedentes / Escenario
La respuesta a ante incidentes de seguridad informática se ha convertido en un
componente vital de cualquier organización. El proceso para manejar un incidente de
seguridad puede ser complicado e implicar a muchos grupos diferentes. Una
organización debe tener estándares para responder ante incidentes. Estos estándares
deben ser políticas, procedimientos y listas de comprobación. Para responder
correctamente a un incidente de seguridad, el analista debe estar capacitado para
saber qué hacer, y también tiene que seguir todas las pautas estipuladas por la
organización. Las organizaciones disponen de muchos recursos que les permiten
crear y mantener una política para el manejo de las respuestas ante incidentes de
seguridad informática, pero en los temas de los exámenes de SECOPS (Operaciones
de seguridad) de la CCNA se hace referencia específicamente a la Publicación
especial 800-61 del NIST. Aquí pueden encontrar esta publicación:
http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-61r2.pdf
Las respuestas variarán especialmente según los detalles del CSIRC. Ejemplos:
¿Consideraría la organización que esta actividad es un incidente? Si es así, ¿cuál de
las políticas de la organización viola esta actividad?
¿Qué medidas existen para intentar evitar que este tipo de incidente vuelva a ocurrir o
para limitar su impacto?
Detección y análisis:
Las respuestas variarán especialmente según los detalles del CSIRC. Ejemplos:
¿Qué precursores del incidente, si los hubiera, podría detectar la organización? ¿Algún
precursor haría que la organización tomara medidas antes de que ocurriera el incidente?
¿Qué indicadores del incidente podría detectar la organización? ¿Qué indicadores
harían que alguien pensara que un incidente podría haber ocurrido?
¿Qué herramientas adicionales podrían ser necesarias para detectar este incidente en
particular?
Las respuestas variarán especialmente según los detalles del CSIRC. Ejemplos:
¿Qué estrategia debe tomar la organización para contener el incidente? ¿Por qué esta
estrategia es preferible a otras?
¿Qué herramientas adicionales podrían ser necesarias para responder a este
incidente en particular?
¿Qué personal participaría en los procesos de contención, erradicación y/o
recuperación?
¿Qué fuentes de evidencia, si las hay, debería adquirir la organización? ¿Cómo se
adquirirían las pruebas?
¿Dónde se almacenaría? ¿Cuánto tiempo debe conservarse?
Preparación:
Detección y análisis:
SAMUEL CALVIJO
Antecedentes / Escenario
Analizar registros es muy importante, pero también lo es comprender de qué manera suceden
las transacciones de red al nivel de los paquetes.
En esta práctica de laboratorio analizarán el tráfico de un archivo pcap previamente capturado
y extraerán un ejecutable del archivo.
Recursos necesarios
VM CyberOps Workstation
Conexión a Internet
Si bien tcpdump se puede utilizar para analizar archivos capturados, la interfaz gráfica de
Wireshark facilita mucho la tarea. También es importante tener en cuenta que tcpdump y
Wireshark comparten el mismo formato de archivo para las capturas de paquetes; por lo tanto,
los archivos PCAP creados con una herramienta se pueden abrir con la otra.
a. Cambien de directorio para ingresar a la carpeta lab.support.files/pcaps, y generen un
listado de los archivos con el comando ls –l.
[analyst@secOps ~]$ cd lab.support.files/pcaps
[analyst@secOps pcaps]$ ls –l
b. Emita el siguiente comando para abrir el archivo nimda.download.pcap en Wireshark.
[analyst@secOps pcaps]$ wireshark-gtk nimda.download.pcap
c. El archivo nimda.download.pcap contiene la captura de paquetes relacionadas con la
descarga de malware que se realizó en la práctica de laboratorio anterior. El pcap contiene
todos los paquetes enviados y recibidos mientras se estaba ejecutando tcpdump.
Seleccionen el cuarto paquete de la captura y expandan el Protocolo de transferencia de
hipertexto (HTTP) para que aparezca como se indica a continuación.
d. Los paquetes del uno al tres son la el protocolo de enlace TCP. En el cuarto paquete se
muestra la solicitud correspondiente al archivo de malware. A modo de confirmación de lo
que ya se sabía, la solicitud se realizó por HTTP, y se envió como solicitud GET.
e. Como HTTP se ejecuta por TCP, se puede utilizar la característica Follow TCP Stream
(Seguir flujo de TCP) de Wireshark para reconstruir la transacción TCP. Seleccionen el
primer paquete TCP de la captura; es un paquete SYN. Háganle clic derecho y elijan
Follow TCP Stream.
f. En Wireshark se abre otra ventana con los detalles correspondientes a todo el flujo de TCP
seleccionado.
¿Qué son todos esos símbolos que se ven en la ventana de Follow TCP Stream? ¿Son
interferencias de conexión? ¿Son datos? Explique.
Todos esos símbolos son datos que están codificados.
Se pueden distinguir algunas palabras dispersas entre los símbolos. ¿Por qué están allí?
Porque se transmite por el protocolo http.
g. En la ventana de Follow TCP Stream, hagan clic en Close (Cerrar) para regresar al archivo
nimda.download.pcap de Wireshark.
Miguel Arias
Práctica de laboratorio: Interpretar datos HTTP y DNS
para aislar al actor de la amenaza
Objetivos
En esta práctica de laboratorio, analizarán registros durante un aprovechamiento malicioso de
vulnerabilidades HTTP y DNS documentadas.
Parte 1: Preparar el entorno virtual
Parte 2: Investigar un ataque de Inyección SQL
Parte 3: Analizar una exfiltración de datos
Antecedentes / Escenario
MySQL es un sistema de administración de bases de datos relacionales (Relational Database
Management System, RDBMS) que utiliza el lenguaje de consultas estructurado (Structured
Query Language, SQL) para agregar contenido a una base datos, acceder a él y administrarlo.
MySQL es un RDBMS popular que utilizan numerosas aplicaciones web. Desafortunadamente,
un atacante puede emplear una técnica de hacking web llamada inyección SQL para ejecutar
comandos SQL maliciosos en un intento por controlar el servidor de bases de datos de una
aplicación web.
Los servidores de nombres de dominio (Domain Name Servers, DNS) son directorios de
nombres de dominio y traducen los nombres de dominio a direcciones IP. Este servicio puede
utilizarse para exfiltrar datos.
En esta práctica de laboratorio investigarán una posible inyección SQL para acceder a la base
de datos SQL del servidor. También analizarán los registros para investigar una posible
exfiltración de datos y el método de exfiltración.
Recursos necesarios
Servidor con al menos 3 GB de RAM y 10 GB de espacio libre en disco.
Versión más reciente de Oracle VirtualBox
Conexión a Internet
Una máquina virtual: VM Security Onion alternativa
d. En la VM Security Onion alternativa, hagan clic derecho en el Escritorio > Open Terminal
Here (Abrir terminal aquí). Introduzcan 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: Investigar un ataque de Inyección SQL
Cuando analizaron el registro de Sguil, notaron que había un posible ataque de Inyección SQL.
Investigarán los eventos para determinar la gravedad del posible aprovechamiento malicioso.
f. En esta ventana pueden ver que la declaración GET que está utilizando el operador
UNION se empleó para acceder a la información de tarjetas de crédito. Si no ven esta
información, hagan clic derecho sobre otro de los eventos correlacionados.
¿Qué información pueden reunir de la ventana Transcript?
__________datos del cliente, datos del servidor y la transacción realizada, expiraciónde la
tarjeta de crédito
________________________________________________________________________
__
________________________________________________________________________
____________
________________________________________________________________________
____________
g. También puede determinar la información que recuperó el atacante. Hagan clic en Search
(Buscar) e introduzcan username (nombre de usuario) en el campo Find: (Buscar:).
Utilicen el botón Find para encontrar la información capturada. La misma información de
tarjetas de crédito puede aparecer en pantalla con un aspecto distinto al de la figura de
abajo.
l.
m. En este punto podrían guardar los datos de Wireshark si hacen clic en Save As (Guardar
como), en la ventana del flujo de TCP. Como alternativa, también pueden guardar el
archivo pcap de Wireshark. También pueden documentar las direcciones IP y los puertos
de origen y destino, la hora del incidente y el protocolo utilizado para el análisis
subsiguiente a cargo de un analista Nivel 2.
n. Cierren o minimicen Wireshark y Sguil.
b. Hagan clic en Proceed to localhost (unsafe) (Proseguir a un host local [inseguro]) para
continuar al host local.
c. Inicien sesión con el nombre de usuario analyst y la contraseña cyberops. Ahora
realizarán una consulta para buscar una Inyección SQL HTTP de la alerta de Sguil.
d. En el panel izquierdo, seleccionen HTTP > Top Potential SQL Injection (HTTP >
Principales inyecciones SQL potenciales).
e. Haga clic en el campo Desde y seleccione 11/11/17 como la fecha. Hagan clic en Submit
Query (Enviar consulta). Seleccionen 209.165.200.235.
f. Se abre información detallada de la alerta. Esta información está relacionada con la
inyección SQL exitosa. Observen la consulta union que se utilizó durante el ataque. En la
primera entrada, hagan clic en Info.
g. 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.
d. Desplácense hacia abajo por la lista de resultados para ver algunas consultas de
ns.example.com con una cadena hexadecimal como primera parte del nombre de
subdominio. Habitualmente, los nombres de dominio no son expresiones hexadecimales de
63 bytes. Esto podría indicar la presencia de actividad maliciosa porque los usuarios
probablemente no pueden recordar un nombre de subdominio largo con letras y número
aleatorios.
Paso 2:
b. Abran una ventana del terminal y utilicen los comandos echo y xxd para revertir la cadena
hexadecimal. La opción -n impide la salida de la línea nueva de arrastre.
analyst@SecOnion:~/Desktop$ echo -n
"434f4e464944454e5449414c20444f43554d454e540a444f204e4f542053" |
xxd -r -p
CONFIDENTIAL DOCUMENT
DO NOT Sanalyst@SecOnion:~/Desktop$
Si bien las herramientas presentadas en esta actividad son útiles, cada una tiene su propio servicio
y es posible que tenga que ser ejecutada en dispositivos totalmente diferentes. Una mejor manera
(que se analiza más adelante en el curso) es concentrar toda la información de registro en una sola
herramienta, lo que permite facilitar la referencia cruzada y hace posibles potentes funcionalidades
de búsqueda. Las plataformas de Administración de información y eventos de seguridad (Security
Information and Event Management, SIEM) puede recopilar archivos de registro y otros datos de
diversas fuentes e integrar la información correspondiente al acceso por medio de una sola
herramienta.
Para realizar este tipo de laboratorios, es de suprema importancia tener bases claras en el sistema
operativo Linux, pues ejecutar comando por ejecutarlos es una tarea sencilla, pero al final no se está
aprendiendo, por ello se sugiere haber realizado los laboratorios de las primeras unidades donde se
trató el tema de OS linux desde cero. Por otro lado, se necesita si o si un computador con mínimo
12 GB de memoria RAM para que todas las máquinas virtuales corran al mismo tiempo sin problema.