Fuentes de información abiertas OSINT

Fuentes de Información Abierta OSINT

El término OSINT es un término anglosajón que hace referencia a las fuentes abiertas, de acceso libre y desclasificadas. Este término hace referencia a la labor de inteligencia realizada a partir de fuentes públicamente accesibles (Open Source Inteligence). Es importante aclarar, en todo caso, que el término ‘fuente abierta’ no está necesariamente vinculado al código abierto (también llamado ‘open source’ en inglés). Las fuentes documentales ‘abiertas’ no tienen por qué ser de acceso gratuito ni contar con licencia Copyleft: lo que las define es, según se recoge en la web de Cartograf, que “todas ellas son fuentes accesibles procedimentalmente (aunque el procedimiento sea tan poco burocrático como rastrear la web abierta), sin necesidad de subterfugios y sin necesidad de realizar o mantener conversaciones en privado ni vigilancia en el sentido detectivesco clásico”

 

 

Esta búsqueda de información en fuentes abiertas es utilizada por los hackers en la fase de Information Gathering, usando herramientas específicas para la búsqueda de esta información. En distribuciones como Kali Linux encontramos una apartado especial para la búsqueda de esta información:

Muchas de estas herramientas no solo tienen el objetivo de buscar información en fuentes abiertas, pero eso será el contenido de otro post. Ahora mismo solo mencionaremos theHArvester como ejemplo de las posibilidades que dan este tipo de herramientas.

The Harvester es un ejemplo de herramienta para buscar en fuentes abiertas,  la cual nos presenta información sobre emails, subdominios, hosts, nombres de empleados, puertos abiertos, banners, etc .. desde fuentes públicas como son los motores de búsqueda, servidores PGP, la red social LinkedIN y la base de datos de SHODAN (Buscador parecido a Google pero con la diferencia que no indexa contenido, si no que registra cualquier dispositivo conectado a Internet).

Clonamos:

 

Vamos a la carpeta con $cd theHarvester:

Y lo lanzamos utilizando el ejemplo que aparece en la propia herramienta para ilustrarlo:

Obteniendo los siguientes resultados:

Ya tenemos un vector de ataque por donde empezar. 🙂

 

Para terminar, comentar que desde el Insituto Nacional de CiberSeguridad (INCIBE) señalan una serie de utilidades para las que puede ser usada esta información:

  1. Conocer la reputación online de un usuario o empresa.
  2. Realizar estudios sociológicos, psicológicos, lingüísticos, etc.
  3. Auditoría de empresas y diferentes organismos con el fin de evaluar el nivel de privacidad y seguridad.
  4. Evaluar tendencias de mercados.
  5. Identificación y prevención de posibles amenazas en el ámbito militar o de la seguridad nacional.
  6. Como aspecto negativo, es utilizado por cibercriminales para lanzar ataques APT y ‘Spear Phishing’.

Todos sabemos del auge de las redes sociales y  lo que supone esta utilización masiva brindando una gran cantidad de información de fuente abierta que nos permite recoger mucha información de cualquier persona y utilizarla para la investigación, ya sea esta para un Pentesting o para otros fines. Si a esta cuestión le añadimos la Inteligencia Artificial y el Big Data podemos pensar la repercusión que puede tener. Quizás no estemos tan alejados de aquella serie de televisión de la CBS “Person of Interest”

 

Referencias:

https://inteltechniques.com/menu.html

http://www.cartograf.net/pedia/inteligencia-fuente-abierta-osint

http://blog.segu-info.com.ar/2015/03/osint-que-es-la-inteligencia-de-fuentes.html

http://osintblog.org

https://www.certsi.es/blog/osint-la-informacion-es-poder

http://hackpuntes.com/obtener-informacion-con-the-harvester/

https://github.com/laramies/theHarvester

Pentesting Fase I. Preparación

Si recordáis en un artículo anterior, hablamos sobre las fases del pentesting:

  1. Preparación
  2. Recopilación de información(pasiva/activa)
  3. Análisis de vulnerabilidades
  4. Explotación de vulnerabilidades
  5. Post-Explotación

En este segundo artículo vamos a centrarnos en la fase de preparación en un pentesting. Siempre hay que tener en cuenta, que antes de establecer algún contacto con la víctima tenemos que tener preparada nuestra máquina instalada y configurada de forma segura con sus aplicaciones deseadas, por ello, voy a separar entre medidas locales y medidas para internet.

Medidas locales

Sabiendo que la información a obtener de un equipo, pueden ir desde el SO al navegador, pasando por la MAC de la tarjeta de red.

Para ello debemos de empezar teniendo una distribución para la auditoría. No entraré en si debe ser Kali, o un Debian personalizado o usando Windows. Esto tiene que ser a criterio de cada persona. Tampoco entraré en las aplicaciones que haya que instalar, porque creo que cada persona tiene que elegir entre todas las herramientas la que mejor considere, no por reputación, sino por conocimiento.

En un principio, para obtener anonimato desde la configuración local hay que empezar por cambiar la dirección MAC, que aunque esto solo se sea a nivel de LAN, hay que tener en cuenta que ponemos un escenario amplio y que este recurso se puede obtener para identificar al equipo. Para ello se puede usar Macchanger, se puede configurar para que se ejecute desde el inicio.

Esta aplicación cambiará la dirección MAC de forma aleatoria o de forma personalizada.

https://technitium.com/tmac/

La siguiente web puede ayudar, tanto a identificar una dirección MAC como para hacerse pasar por otro dispositivo.

http://standards-oui.ieee.org/oui/oui.txt

Luego para la preparación es necesario mantener diccionarios, para realizar ataques de fuerza bruta, o para buscar recursos en un servidor web. Para ello, podemos emplear cewl crear un diccionario.

Esta herramienta puede permitir crear un diccionario a base de recorrer las páginas web.

https://github.com/digininja/CeWL/

 

También tenemos la opción de generar los diccionarios de forma personalizada para fuerza bruta, dependiendo de lo que queramos romper, se debe de aplicar un cifrado u otro, pero básicamente para generar un diccionario en texto plano se podría hacer con crunch.

number dictionary

Donde se genera una salida de 3 a 4 caracteres combinando los valores 1 2 3 y 4.

Medidas para Internet

En este sentido, las aplicaciones son menores:

  • Navegador

Entorno al navegador, se puede modificar el user-agent para que no se identifique correctamente, pero no modificándolo para que sea irreconocible ya que puede que se detecte algún problema y no pase algún filtro, está claro que si el user-agent es extraño tiene que haber algún problema en la trama.

Para ello al navegador podemos modificarle el user-agent con un plugin, en el caso de Firefox:

https://addons.mozilla.org/es/firefox/addon/user-agent-switcher/

También sería curioso que el idioma del navegador no se identifique con el nuestro, por ello lo universal es tenerlo en inglés. Luego también es curioso cambiar incluso la resolución de la pantalla, para ello podemos usar las descripciones que proporciona la siguiente página:

http://www.ver-ip.es

javascript variables

Donde muestra todas las opciones posibles en peticiones web.

  • VPN

Para realizar auditorías de pentesting, lo mejor es usar VPN anónimas, que no guarden logs, y oculten nuestro rastro, para ello se pueden usar numerosas VPNs diferentes.

Las VPNs permiten un anonimato completo del equipo, con un pool de IPs de salida, y un buen ancho de banda para realizar las conexiones. Siempre que se intenta realizar conexiones hacia una víctima, para evitar el seguimiento, se realiza desde países en conflicto diplomático, donde será más difícil que se le pida información.

  • TOR

Hay varias redes, a las que puedes conectarte para obtener anonimato, una de ellas es TOR, una red liberada por el ejército de EEUU que usa el enrutamiento en cebolla, es decir, a medida que un paquete viaja por ella, se le van añadiendo capas de cifrado, para evitar saber tanto el origen como el contenido, esto no quiere decir que sea segura, solo anónima.

 

onion routing thor

Esta red se puede usar a través de sockets para que una aplicación sea anónima.

La aplicación a través de TOR mas usada es su navegador:

https://www.torproject.org/download/download-easy.html.en

Para usar TOR en Linux, se puede usar proxychains.

Para usar TOR en Windows, se puede usar sockschains.

http://www.ufasoft.com/files/ufasoft_sockschain_4.221.exe

En este apartado hemos visto cómo preparar nuestros sistemas, o qué hay que tener en cuenta a la hora de hacer un pentesting, y cómo ser totalmente anónimos.

Os esperamos en el siguiente apartado.

Fases del pentesting

Para un pentester, su objetivo es la intrusión, es decir, acceder a un sistema sea como sea, para ello lo más importante es seguir una metodología.

Cuando se hace una intrusión, no se puede ser lanzar una batería de pruebas de forma indiscriminada sobre un objetivo, ya que alertaría a quién se encarga de administrar o defender dicho sistema, y aparte la cantidad de pruebas a realizar sería tan grande que no convendría optar por esta opción. Bien, aquí habría que explicar que las metodologías no son más que un esquema de cómo realizar las pruebas para que sean de forma ordenada, por lo que esto suele estar un poco a criterio del pentester. A continuación nombraré a modo de introducción unas cuantas de estas metodologías:

Kill-Chain

Una metodología de origen militar (esto da a entender que para el pentester suele haber problemas) que muestra unas etapas donde solo se describen las mismas, luego las aplicaciones están a criterio del pentester.

fases de pentesting

Más información en:

https://en.wikipedia.org/wiki/Kill_chain

https://www.certsi.es/blog/cyber-kill-chain-sistemas-control-industrial

http://www.lockheedmartin.com/content/dam/lockheed/data/corporate/documents/LM-White-Paper-Intel-Driven-Defense.pdf

OSSTMM

Esta metodología puede ser la más extendida (es de las más conocidas y completa) pero al final, como todo, poco usada. Esta se basa en diferentes escenarios y cómo se debe de actuar ante cada uno. Aunque le da bastante importancia a la preparación, porque no solo dice como hay que actuar, sino lo que hay que saber.

OSSTMM Logo

Más información en:

http://www.isecom.org/research/osstmm.html

Guía de pruebas de OWASP

OWASP es una organización que está enfocada a la seguridad Web y se trabaja de forma voluntaria. Pero han desarrollado una guía para realizar pruebas a aplicaciones Web, esta es referencia en las auditorías Web.

OWASP Logo

Más información en:

https://www.owasp.org/images/8/80/Gu%C3%ADa_de_pruebas_de_OWASP_ver_3.0.pdf

ISSAF

Es una metodología con reputación pero no demasiado extendida. Esta guía también se divide por escenarios que además incluyen tipo de servicios (si es MySQL, Oracle, etc…) Esto provoca que no esté completa por la cantidad de servicios que existen.

Más información en:

http://www.oissg.org/wiki/index.php?title=ISAAF-PENETRATION_TESTING_FRAMEWORK

http://insecuredata.blogspot.com/2009/04/metodologia-de-test-de-intrusion-issaf.html

http://cuchillac.net/archivos/pre_seguridad_pymes/2_hakeo_etico/lects/metodologia_oissg.pdf

Penetration Testing Framework de Vulnerability Assessment

Esta metodología, con bastante actividad, desglosa por fases los pentesting incluyendo las herramientas. Intenta reproducir tipos de escenarios, aunque existen fases preparatorias que no se incluyen. Básicamente se trata de explicar que es un escenario/servicio, cómo puede ser un dominio o una VPN, con que herramientas actuar, herramientas específicas para dominios o herramientas específicas para VPNs.

http://www.vulnerabilityassessment.co.uk/Penetration%20Test.html

Conclusión

Para resumir un poco, hay muchas más metodologías, pero todas las auditorías se basan en diferentes pasos, cada una de estas metodologías da prioridad o muestra las cosas de forma diferente, ya que normalmente suele ser a criterio del pentester las herramientas a usar y no se desglosan en algunas metodologías, en otras sí, incluso hay metodologías que describen como enfrentarse a diferentes escenarios como puede ser OSSTMM. No obstante los pasos principales son:

  • Preparación

Puede ser preparar todo el software y las formas de realizar las conexiones, como puede ser configurar una VPN para hacer ataques de forma anónima. (Preparar la Kali a través de TOR)

  • Recopilación de información(pasiva/activa)

En esta fase se recopila la información que indique los dominios/IP pertenecientes a la “víctima” con puertos y servicios instalados. (Dominios, IP, puertos, servicios)

  • Análisis de vulnerabilidades

Una vez que se conozcan los servicios levantados, se deben de analizar las vulnerabilidades pertenecientes a estos servicios. (Identificar un CVE o un SQLi)

  • Explotación de vulnerabilidades

Una vez que tenemos las vulnerabilidades identificadas, optar por la su explotación. Debemos averiguar cual puede ser más óptima. (Ejecución de los Payloads)

  • Post-Explotación

En esta fase ya se tiene cierto control de la máquina, por lo que se pueden realizar movimientos laterales o pivoting (saltar de la máquina a otra de la misma red que desde el exterior no se tenía acceso), establecer un canal para conectarse, como un túnel, o también el borrado de huellas para no dejar rastro.

Los concepos principales:

Pentesting: o test de penetración es una prueba simulando un ataque real, pero este tiene que estar controlado y con permiso de la “víctima”.

Intrusión: En nuestro escenario es el control de un sistema para la obtención de un objetivo, este no suele ser el caso de los DoS o DDoS.