martes, 27 de octubre de 2015

Miniguía tcpdump



¡Hola de nuevo!¿Qué de tiempo no?
Llevo dos meses queriendo redactar esta entrada con las anotaciones que me hice en verano en una hojita guarra que hacía las veces de chuleta. Lo reconozco, he estado a punto de perderla y/ o tirarla en varias ocasiones y quería redactar esta entrada para poder despreocuparme de que si la tiro o la pierdo.
Reconozco y me da mucho coraje (pero lo hago) mirar 7 veces lo mismo...Miro un tema porque me interesa y/ o me hace falta manejarlo, durante unos días genial "lo tengo fresquito". Al cabo de los días... De no usarlo... Uff! Olvido los parámetros, el orden de los mismos...
Pues a mirarlo otra vez, ahora no encuentras las fuentes que tanto te sirvieron la vez anterior...¡Se acabó!Me hago una chuletilla, miro algún libro, consulto en internet etc y lo pongo por escrito en mi blog. La próxima vez ya sé donde mirar directamente.
Con tcpdump me ha pasado ésto en varias ocasiones, por lo que a continuación describiré unos ejemplos básicos que nos servirán para despegar con tcpdump. En la Red hay multitud de material al respecto, y tcpdump es una herramienta para escribir una biblioteca.
Yo sólo pretendo proporcionar unos ejemplos básicos y a la vez útiles que nos permitirán resolver un porcentaje importante de los problemas a los que nos enfrentaremos, intentando hacer efectivo el principio de Pareto o del 80-20.Resumiéndolo muy mucho viene a decir que el 80% de lo que necesitas saber se encuentra en el 20% que resulta más importante. Ya me estoy yendo por las ramas otra vez.No aprendo.
Tcpdump es un sniffer de red supercompleto por línea de comandos muy útil porque no siempre se dispone de entorno gráfico en el que podríamos usar por ejemplo wireshark. Con él podremos ver los paquetes que viajan por la red/ segmento de red a las que están conectadas las interfaces de la máquina que ejecuta tcpdump y decidamos "escuchar".
Tcpdump proporciona una gran potencia y granularidad, por ejemplo hasta nivel de flags en cabeceras tcp entre otras cosas. Una pasada.
El scope de esta entrada no pretende abarcar tanto aunque dejaré algunos enlaces interesantes para profundizar o mirar algo más concreto algún día.
Empecemos.
Hacer notar que para ejecutar tcpdump es necesario ser/ tener permisos de root.

#tcpdump -D --> Saca una lista con las interfaces disponibles

#tcpdump -i eth0 --> Definimos la interfaz eth0 para "escuchar"

#tcpdump -i eth0 [tcp|udp|icmp] --> Filtra lo que escucha por eth0 por protocolo

#tcpdump -i eth0 not icmp --> Captura el trafico que escucha por eth0 menos el trafico icmp, especificado por not icmp

#tcpdump -i eth0 tcp port 80 --> Captura el tráfico tcp que escucha por eth0 que vaya por el puerto 80. Con port filtramos un puerto

#tcpdump -i eth0 -w captura --> Guarda el tráfico que "escucha" por eth0 en un fichero denominado captura

#tcpdump -r captura --> Lee la captura de tráfico recogida en el fichero captura

#tcpdump src 192.168.1.29 [and|or] dst 192.168.1.105
--> Captura trafico con origen (src) en 192.168.1.29 [and|or] destino (dst) 192.168.1.105

#tcpdump 'src 192.168.1.29 and (dst 192.168.1.105 and icmp)' --> Ojo con las expresiones anidadas, si no les ponemos comillas simples nos arrojarán un error.

#tcpdump ether [src|dst] AA:BB:CC:DD:EE:FF --> Captura el trafico con origen|destino (src|dst) con la MAC (ether) AA:BB:CC:DD:EE:FF 

#tcpdump -i eth0 [-v|-vv|-vvv] --> Captura el trafico que llega a eth0 con un nivel de detalle definido por -v,-vv,-vvv cada cual con más detalle

#tcpdump -i eth0 [-n|-nn] --> Captura el tráfico que llega a eth0 pero no resuelve los hostname con -n, o no resuleve ni los hostanames ni los puertos con -nn

#tcpdump -i eth0 -c100 --> Captura 100 paquetes de los que le llegan por la interface eth0 y se para.

#tcpdump -s 0 --> Captura todos los bytes que conformen los paquetes

Con una combinación de todo lo anterior podemos afrontar el filtrado de una gran cantidad de situaciones. Siempre nos quedará #man tcpdump.
Espero que os haya resultado interesante y útil la entradita.
Me encantaría completarla con las aportaciones de vuestros comentarios.
¿Alguien se anima?
¡Vamos!
Bueno...Al menos nos leemos en la próxima entrada ¿no?

 Fuentes y enlaces interesantes

sábado, 24 de octubre de 2015

Blacklist y SPF en Zimbra


¡Hola de nuevo!
Traigo una nueva entrada relacionada con un tema tan extenso como es el del correo electrónico. Vamos a tratar un caso real de envío/recpción de correos fraudulentos relacionados con la suplantación del remitente, llevar a cabo una valoración de las causas que pudieron provocarla, así como unas recomendaciones básicas para evitarlas y contrarestarlas.
También se hará referencia a la creación de una blacklist/whitelist en Zimbra, una introdución a SPF y su activación también en Zimbra.
¿Zimbra?
Zimbra es una suite colaborativa que proporciona servicios de correo electrónico.
Más información podemos obtenerla aquí.

Hace algunos días un amigo me comentó que había sufrido un incidente de seguiridad que aún estaba investigando,posiblemente relacionado con un caso de physing en el que se podría haber visto comprometida su cuenta de correo, o al menos sus contactos.

¿Cómo se dio cuenta?
 
Detectó que recibía reportes ante la imposibilidad de entregar correos destinados a muchos de sus contactos,recibió correos con nombres parecidos (sospechosos) al de sus contactos en la que la dirección del remitente era la suya y varios de sus compañeros le llamaron para preguntarle acerca de que era ese correo que estaba mandando.
Dicho correo contenía un enlace a una página donde se solicitaban datos que de ser proporcionados serían robados.
Él no había llevado a cabo esos envíos, y dichos correos no se encontraban en su bandeja de enviados. Abrió el correo junto con todas sus cabeceras y pudo observar que los envíos se estaban llevando a cabo desde otro dominio.
Por lo que de alguna manera, habían "secuestrado" sus contactos y habían "spoofeado"/suplantado la dirección del remitente utilizando la suya.
Esta circunstancia es muy peligrosa porque según que usuarios pueden "picar" y proporcionar la información indebidamente pensando que se trataba de un correo legítimo del remitente, pudiendo ser utilizada la información comprometida recabada para futuros usos fraudulentos.Aquí ha entrado en juego la ingeniería social.

¿Cómo pudo verse comprometido su correo y/o sus contactos?
 
  • Esta circunstancia pudo ser motivada por:Si se hace uso de servicios de correo electrónica vía web pudo ser provocado por la explotación de alguna vulnerabilidad del navegador, flash, java, acrobat reader o algún complemento del mismo en la que hubieran quedado expuesta la cuenta de correo y/ o sus contactos.
  • Explotación de alguna vulnerabilidad del sistema operativo, de alguna aplicación de gestión de correo electrónico o de gestión de contactos por parte de algún tipo de malware.
  • Haber sido presa de alguna app maliciosa de gestión de contactos en su smartphone
  • Haber sido presa/ victima de algún "artefacto" de ingeniería social.

¿Qué medidas se deben tomar en estas situaciones?
  • La primera y más urgente cambiar la contraseña de la cuenta de correo.
  • Revisar las versiones del navegador, flash, java, Acrobat Reader, etc y llevar a cabo las actualizaciones necesarias.
  • Actualizar el sistema operativo y las aplicaciones instaladas, prestando especial atención a las relacionadas con la gestión de correos y/ o contactos.
  • Revisar las apps del smartphone en busca de alguna sospechosa haciendo especial hincapié en las relacionas con la gestión de correos y/ o contactos.
  • Hacer uso de algún sistema antivirus/antimalware.
  • Además de las precauciones básicas a la hora de navegar, instalación de aplicaciones, etc, incrementar el nivel de atención a la hora de fiarnos de los correos que recibimos, no sólo del nombre mostrado sino también prestar atención a la dirección desde la que se manda  el correo. En caso de duda eliminarlo y por supuesto no abrir ninguna url que éstos pudieran contener.

Medidas técnicas
 
La seguridad en un servidor de correo es un tema muy interesante y extenso que se escapa del objeto de esta entrada, aunque no descarto dedicarle una en el futuro. En esta entrada sólo daremos "dos pinceladas".
 
Activar Sender Policy Framework (SPF) es un sistema de validación de correos electrónicos basado en la comprobación de que el remitente efectivamente tiene permiso para enviar correos con el dominio desde el que lo hace mediante la verificación de la dirección IP del remitente con un servidor DNS.
La siguiente imagen muestra de forma gráfica como funciona.


Esto permite prevenir el "spoofeado"/ suplantación de los remitentes, ayudando a reducir el correo spam.
Es muy importante configurar bien SPF de lo contrario se puede sufrir problemas con el envío de correos.
 
Por otra parte, podemos querer crear una blacklist para evitar recibir correos desde un dominio, una determinada cuenta de correo a nuestro servidor zimbra.

Creación de blacklist en Zimbra

A continuación se expone como elaborar una blacklist en Zimbra. Por ejemplo si sufrieramos la oleada de correo con el remitente suplantado que sufrió nuestro amigo, mientras que estudiamos como activar SPF, etc y proteger las cuentas de nuestro correo de dichos envíos podríamos empezar por crear una blacklist.
Para crear una balcklist/whitelist en Zimbra, (nosotros nos quedaremos con la blacklist como medida de contención) usaremos un parámetro de de configuración de Amavis llamado read_hash(). Amavis es un filtro de contenido opensource para correo electrónico, y con read_hash() le diremos a Amavis donde debe ir a buscar los ficheros de configuración relacionados con las blacklist/whitelist. EL proceso podríamos definirlo como:
  1. Creamos fichero que contendrá los dominios o correo que formarán parte de la blacklist, con permisos 664 así como propietario y grupo zimbra:zimbra.El fichero lo podemos crear donde queramos, yo recomiendo alguna ubicación relacionada con Zimbra para tenerlo todo "recogidito".Por ejemplo en /opt/zimbra
    1. Supongamos que estamos en /opt/zimbra con vuestro editor de ficheros favoritos vi, nano creamos un fichero que se llame por ejemplo blacklist (imaginación al poder) y dentro pondremos los dominios y/o cuentas de correos de los que queramos evitar recibir correos.
    2. Damos los permisos 664 con #chmod 664 blacklist y establecemos propietario y grupo al fichero #chown zimbra:zimbra blacklist
  2.  El siguiente paso es configurar Amavis con read_hash() para decirle como se llama y donde está el fichero de blacklist que tiene que tener en cuenta, en este ejemplo en /opt/zimbra/blacklist.Para ello tenemos que editar /opt/zimbra/conf/amavisd.conf.in. Justo debajo de la línea que dice #ENVELOPE SENDER SOFT-WHITELISTING/ SOFT-BLACKLISTING añadiremos la siguiente línea read_hash(\%blacklist_sender, '/opt/zimbra/blacklist'); el segundo parámetro alberga la ubicación del fichero blacklist si se ha creado en otra ubicación, habrá que poner ahí dicha ubicación.Guardamos el fichero.
  3.  Con el usuario zimbra, cambiamos a el con #su zimbra reiniciamos Amavis y la mta para ello respectivamente haremos #zmamavisdctl restart#zmmtactl restart
A partir de ahora si hacemos el intento de mandar un correo con esa cuenta y hacemos cat /var/log/mail.log y filtramos con grep el correo/dominio que hayamos incluido en la blacklist, aparecerá como BloquedSPAM.
Sólo decir que si en vez de una blacklist queremos hacer una whitelist es lo mismo, crearemos un fichero whitelist con los mismos permisos,propietario y grupo que el del ejemplo y en amavisd.conf.in pondremos en el mismo sitio que blacklist read_hash(\%whitelist_sender, '/opt/zimbra/whitelist');


Activación SPF
 
Para hacer referencia a SPF y su activación en Zimbra voy a enlazar a una entrada de MFCP blog  http://blog.kvs-solutions.com/?p=940. Ahí aparece descrito superclaro.¿Reinventar la rueda?No, gracias.

Conclusiones

¿Con estas medidas se solucionaría el problema de nuestro amigo?
Se solucionaría sólo el problema relacionado con la recepción de correos enviados en su nombre hacia los contactos de su dominio, para los demás contactos si sus correspondientes servidores de correos no tienen implementados SPF si los recibirán, ya que los envíos pueden seguir sucediéndose exponiédolos a los correos maliciosos.
Entonces,¿las blacklist y SPF sirven para lo mismo? No. Las blacklist "cortarán" la recepción de los correos desde determinados dominios o cuentas de correos concretas pero no implementa mecanismo alguno de comprobación de remitentes.SPF sólo impedirá que se reciban correos desde servidores que no tienen permisos para enviar correos de determinados dominios por desgracia algo muy común, con la consiguiente disminución de correos no deseados.

Espero que os haya resultado útil.
Nos leemeos en la próxima entrada.

Fuentes



Radar COVID

Tras largo tiempo sin publicar una entrada en el Blog, me he animado a escribir acerca de una App que podría llegar a ser muy útil en el con...