Máquina Virtual OSINT de Trace Labs

Body

OSINT colaborativo para encontrar personas desaparecidas

Trace Labs es una organización sin fines de lucro cuya misión es acelerar la reunificación familiar de personas desaparecidas, mientras proporciona entrenamiento a sus miembros en el arte de la inteligencia desde fuentes abiertas (OSINT).

Se ha creado una Máquina Virtual OSINT especializada específicamente para reunir herramientas OSINT más efectivas y scripts personalizados las cuales se utilizan durante sus CTFs de grupos de búsqueda. Inspirada en la infame Máquina Virtual de nombre Buscador, la Máquina Virtual OSINT de Trace Labs se creó de manera similar, para permitir los investigadores OSINT tengan una forma rápida de comenzar y tener acceso hacia las herramientas y scripts OSINT más populares, todos perfectamente empaquetados bajo un mismo techo.

Aplicaciones

La mayoría de las herramientas OSINT ya no vienen previamente empaquetadas con la máquina virtual. Sin embargo existe una opción para descargarlas mediante un script ubicado en el escritorio. Esto mantiene el tamaño de la versión lo suficientemente pequeña como para compilarla y alojarla en Github. Si requiere instalar las herramientas incluidas en el script se debe ejecutarlo.

$ cd Desktop/
$ ./install-tools.sh

Entre las aplicaciones incluidas en la máquina virtual se incluyen programas para; navegación, análisis de datos, dominios, descargadores, correo electrónico, frameworks, números de teléfono, medios sociales, nombres de usuario, y otras herramientas, además de documentación.

Fuentes:

https://www.tracelabs.org
https://www.tracelabs.org/initiatives/osint-vm
https://github.com/tracelabs/tlosint-vm

Herramientas Eliminadas de Kali Linux

Body

Kali Linux es una distribución basada en el sistema operativo GNU/Linux Debian, la cual está orientada hacia las más diversas tareas relacionadas con seguridad de información; tales como; pruebas de penetración, investigación en seguridad, forense de computadoras, e ingeniería reversa.

Kali Linux incluye cientos de herramientas, siendo comprensible por diversas razones, no es factible siempre mantener todas las herramientas en Kali, consecuentemente el proyecto de manera regular elimina herramientas.

Las herramientas eliminadas son presentadas en tres columnas de nombres; Paquete, Fecha, Razón. La columna Paquete expone el nombre del paquete eliminado, la columna Fecha expone la fecha de eliminación, y la columna Razón exponer la razón de su eliminación. Entre las diversas razones para eliminar un paquete se tienen; versión de Pythons, herramientas no mantenida o rota, estar incluida en otra herramienta, cambio de su licencia, o ser una herramienta obsoleta. Siendo factible también obtener más detalles sobre su eliminación, en caso sea requerido.

Así mismo es relativamente fácil validar la eliminación de herramientas, utilizando comandos como apt o which.

Es importante recordar, al realizar pruebas de penetración, hacking ético, u otros tipos de evaluaciones, siempre utilizar las más recientes versiones de las herramientas, iniciando con el criterio fundamental al utilizar herramientas actualmente con soporte.

Fuentes:

https://www.kali.org/tools/
https://www.kali.org/docs/tools/removed-tools/

Retransmisiones (Relays) utilizando la Herramienta Netcat

Body

Netcat es una utilidad de red la cual lee y escribe datos a través de conexiones de red utilizando el protocolo TCP/IP. Está diseñada para ser una herramienta "back-end" confiable la cual puede ser utilizada directamente, o controlada fácilmente mediante otros programas y scripts. Al mismo tiempo es una herramienta para exploración y depuración de redes con muchas funcionalidades, pues puede crear casi cualquier tipo de conexión necesaria, además de tener diversas capacidades integradas interesantes.

Una retransmisión (Relay) aplicado a redes, está relacionado con aquello lo cual permite o es utilizado para reenviar paquetes desde una red hacia otra. Al actuar como un intermediario permite conexión e intercambio de datos entre redes.

Para utilizar Retransmisión en el sistema operativo GNU/Linux, primero se requiere crear un FIFO (tubería nombrada). En este caso el nombre es “backpipe”, creado con el comando nknod.

$ nknod backpipe p

La opción p crea un FIFO (First Input First Output)

Retransmisión Servidor - Cliente

Crea una retransmisión la cual envía paquetes desde un puerto local, hacia un cliente Netcat conectado hacia una dirección IP destino sobre un puerto.

$ nc -l -p 8080 0



$ nc localhost 8080

Se crea un escenario en el cual al establecer una conexión hacia el puerto local número 8080, esta es retransmitida hacia la dirección IP indicada y el puerto 80. Consecuentemente cualquier dato enviado será retransmitido hacia la dirección IP indicada, y los datos recibidos serán mostrados en consola.

Retransmisión Servidor - Servidor

Crea una retransmisión la cual envía paquetes desde cualquier conexión sobre un puerto local hacia cualquier conexión sobre otro puerto.

# nc -l -p 8888 0



# nc localhost 88

Se crea un escenario en el cual cualquier dato enviado sobre el puerto local número 8888 será retransmitido hacia el puerto local número 88. Así mismo cualquier dato recibido desde el segundo puerto local será mostrado en la consola.

Retransmisor Cliente - Cliente

Crea una retransmisión la cual envía paquetes desde la conexión hacia una dirección IP sobre un puerto, hacia un cliente Netcat conectado hacia otra dirección IP sobre un puerto.

$ nc 192.168.0. 1 80 0



# nc -l 192.168.0. 50 -p 2233

Se crea un escenario en el cual, cualquier dato enviado hacia la segunda dirección IP será retransmitido hacia la primera dirección IP. Así mismo cualquier dato recibido desde la primera dirección IP será mostrado en la consola.

Fuentes:

https://netcat.sourceforge.net/
https://linux.die.net/man/1/mknod
https://linux.die.net/man/1/tee

Captura de Banners TCP utilizando la Herramienta Netcat

Body

Netcat es una utilidad de red la cual lee y escribe datos a través de conexiones de red utilizando el protocolo TCP/IP. Está diseñada para ser una herramienta "back-end" confiable la cual puede ser utilizada directamente, o controlada fácilmente mediante otros programas y scripts. Al mismo tiempo es una herramienta para exploración y depuración de redes con muchas funcionalidades, pues puede crear casi cualquier tipo de conexión necesaria, además de tener diversas capacidades integradas interesantes.

Se procede a ejecutar Netcat para establecer conexiones hacia un rango de puertos TCP, desde los cuales se requiere obtener o capturar su banner.

$ echo "" | nc -v -n -r -w1 192.168.50 1-100

El comando “echo” muestra una línea de texto hacia la salida estándar.

La opción “-v” define verbosidad. Utilizarla dos veces para obtener más verbosidad

La opción “-n” define únicamente dirección numérica IP, no DNS.

La opción “-r” permite escanear los puertos locales y remotos de manera aleatoria.

La opción “-w” define el tiempo de espera para conexión y lectura final de red

El resultado del comando echo y las dobles comillas imprime una línea en blanco. El resultado de este comando es canalizado como entrada para el comando Netcat. Consecuentemente aquello lo cual enviará Netcat al establecer una conexión hacia un puerto TCP será una linea en blanco.

La definición de los puertos hacia los cuales se realizarán conexiones para obtener su banner, se define con el siguiente formato; puerto inicial, luego el símbolo guion, luego el puerto final. En este caso se establecerán conexiones desde el puerto TCP número 1 hasta el número 100.

Los resultados del escaneo realizado se muestran en columnas, mostrándose la dirección IP hacia la cual se establece una conexión, el puerto, su servicio asociado, y el mensaje producto de la conexión establecida. El mensaje “Connection timed out” indica la conexión ha superado el tiempo de espera definido. Caso contrario se muestra el texto “open”, lo cual indica el puerto está abierto, para luego mostrar el banner devuelto por el software, programa, o aplicación proporcionando un servicio.

Es importante mencionar no todos los puertos descubiertos en estado abierto devolverán un banner al recibir una línea en blanco. Para estos escenarios se pueden utilizar herramientas más especializadas como Nmap, o utilizar un cliente específico para establecer la conexión hacia el servicio descubierto.

Fuentes:

https://netcat.sourceforge.net/
https://linux.die.net/man/1/echo

Escaneo de Puertos TCP utilizando la Herramienta Netcat

Body

Netcat es una utilidad de red la cual lee y escribe datos a través de conexiones de red utilizando el protocolo TCP/IP. Está diseñada para ser una herramienta "back-end" confiable la cual puede ser utilizada directamente, o controlada fácilmente mediante otros programas y scripts. Al mismo tiempo es una herramienta para exploración y depuración de redes con muchas funcionalidades, pues puede crear casi cualquier tipo de conexión necesaria, además de tener diversas capacidades integradas interesantes.

Se procede a ejecutar Netcat para realizar un escaneo de puertos hacia una dirección IP.

$ nc -v -n -r -z -w1 192.168 .0.50 1-100

La opción “-v” define verbosidad. Utilizarla dos veces para obtener más verbosidad

La opción “-n” define únicamente dirección numérica IP, no DNS.

La opción “-r” permite escanear los puertos locales y remotos de manera aleatoria.

La opción “-z” es el modo de Entrada/Salida cero. Utilizado para escanear.

La opción “-w” define el tiempo de espera para conexión y lectura final de red

La definición de los puertos a escanear se define en el siguiente formato; puerto inicial, luego el símbolo guion, luego el puerto final. En este caso se escaneará desde el puerto TCP número 1 hasta el número 100.

Los resultados del escaneo realizado se muestran en columnas, entre estas la dirección IP escaneada, el puerto escaneado, su servicio asociado, y el mensaje producto de la conexión establecida. Se percibe fácilmente como los puertos descubiertos en estado Abierto incluyen el texto “Open”, en lugar de “Connection timed out”.

De hecho existen otras herramientas diseñadas específicamente para realizar diversos tipos de escaneos, con muchas funcionalidades y características como la herramienta Nmap. Pero resulta importante conocer diversas maneras y herramientas para realizar procedimientos similares, dado el hecho se enfrentarán diversos escenarios a evaluar.

Fuentes:

https://netcat.sourceforge.net/

Validar DNSSEC utilizando el Comando delv

Body

DNSSEC (DNS Security Extensions) o por su traducción al idioma español; Extensiones de Seguridad para DNS, añade seguridad al Sistema para Nombres de Dominio (DNS).

DNSSEC fue diseñado para proteger Internet de ciertos ataques, como el envenenamiento del caché DNS. Es un conjunto de extensiones para DNS los cuales proporcionan; autenticación del origen de datos DNS, integridad de datos, y denegación autenticada de existencia.

Estos mecanismos requieren cambios en el protocolo DNS. DNSSEC agrega cuatro nuevos tipos de registros de recursos: Firma de registro de recursos (RRSIG), Llave Pública DNS (DNSKEY), Firmante de Delegación (DS) y Siguiente Seguro (NSEC). Estos nuevos RRs son descritos en detalle en el RFC 4034.

delv

delv es una herramienta para enviar consultas DNS y validar los resultados, utilizando la misma lógica de validación y resolución interna de named.

delv envía hacia un servidor de nombres especificado todas las consultas necesarias para obtener y validar los datos solicitados; esto incluye la consulta solicitada original, las consultas posteriores para seguir las cadenas CNAME o DNAME, las consultas de DNSKEY, y los registros DS para establecer una cadena de confianza para la validación de DNSSEC. No realiza una resolución iterativa, sino simula el comportamiento de un servidor de nombres configurado para la validación y el reenvío de DNSSEC.

La manera más simple de utilizar el comando delv es definir el nombre de host a consultar, y el nombre o dirección IP del servidor de nombres a consultar. Adicionalmente se puede definir el tipo de consult DNS, A, AA, MX, TX>T, etc.

$ delv example. edu.pe ns-cloud-b2. googledomains.com.

Un registro RRSIG contiene la firma para un conjunto de registros RR con un nombre, una clase, y un tipo particular. El registro RRSIG especifica un intervalo de validez para la firma y utiliza el Algoritmo, el Nombre del Firmante, y la Etiqueta Llave para identificar el registro DNSKEY, el cual contiene la llave pública factible de ser utilizado por un validador para verificar la firma.

El mensaje “unsigned answer” indica la respuesta no ha sido firmada digitalmente utilizando una llave DNSSEC válida. No pudiendo verificarse la autenticidad e integridad de los datos recibidos.

Desde la perspectiva de la ciberseguridad, las firmas digitales de DNSSEC permiten asegurar los datos de una zona DNS no se han alterado durante su transmisión, lo cual intenta proteger contra ataques como el envenenamiento del caché DNS. Así mismo una respuesta firmada indicaría la información proviene de una fuente fiable.

Fuentes:

https://www.dnssec.net/
https://manpages.ubuntu.com/manpages/focal/man1/delv.1.html
https://kb.isc.org/docs/aa-01152
https://www.cyberciti.biz/faq/unix-linux-test-and-validate-dnssec-using…

Obtener el SPF, DKIM, y DMARC utilizando el Comando dig

Body

dig es una herramienta flexible para interrogar servidores de nombres DNS. Realiza búsquedas DNS y muestra las respuestas devueltas por los servidores de nombres consultados. Muchos administradores de DNS utilizan dig para solucionar problemas debido a su flexibilidad, facilidad de uso, y claridad de resultados.

Para las siguientes demostraciones primero se requiere obtener los servidores de nombres (DNS), para el dominio en evaluación.

$ dig -t NS presidencia. gob.pe

SPF - Sender Policy Framework

Es un estándar abierto que especificando un método técnico para prevenir la falsificación de direcciones remitente. Más precisamente protege la dirección del remitente del “sobre”, el cual se utiliza para la entrega de los mensajes.

$ dig -t TXT presidencia. gob.pe @ns1.opticalip.com.pe

DKIM - DomainKeys Identified Mail

Permite que una organización asumir responsabilidad para un mensaje en tránsito. La organización es un manejador del mensaje, ya sea como su creador o como un intermediario. Su reputación es la base para evaluar si se debe confiar en el mensaje para su posterior procesamiento, como la entrega. Técnicamente DKIM proporciona un método para validar la identidad de un nombre de dominio asociado a un mensaje a través de la autenticación criptográfica.

$ dig -t TXT mail._domainkey.presidencia.gob.pe @ns1.opticalip.com.pe

DMARC - Domain-based Message Authentication, Reporting & Conformance

Es un protocolo para autenticación, políticas, y reporte de correo electrónico. Se construye sobre los ampliamente desplehados protocolos SPF y DKIM, agregando un vínculo hacia nombre de dominio del autor (“From:”), políticas publicadas para el manejo de errores de autenticación por parte de los destinatarios e informes de los destinatarios hacia los remitentes, para mejorar yvigilar la protección del dominio contra correo electrónico fraudulento.

$ dig -t TXT _dmarc.presidencia.gob.pe @ns1.opticalip.com.pe

Desde la perspectiva de la Ciberseguridad, SPF, DKIM y DMARC, pueden ayudar a prevenir o evitar ataques de Spoofing; en lo referente a mensajes de correo electrónicos falsos. En la actualidad casi la totalidad de proveedores utilizan estas comprobaciones. Así mismo puede ayudar a mantener una buena percepción o reputación sobre una organización. Adicionalmente al hecho de existir requerimientos para cumplimiento.

Fuentes:

http://www.open-spf.org/
https://dmarc.org/
http://dkim.org/
https://linux.die.net/man/1/dig