ANALIZANDO LA DARK WEB - Desanonimizando Hidden Services

 


El presente artículo presenta una metodología de investigación empleada para mostrar de que forma es posible llegar a descubrir la información "real" o al menos algún indicio que nos permita intuir la identidad real tanto de la infraestructura empleada para alojar a lo que se conoce como "Hidden Service" dentro de los servidores de la "Dark Web", como a los actores o agrupaciones detrás de ellos. 

Sin embargo, antes de comenzar con la explicación técnica de como se llevó a cabo todo el análisis, me permitiré entrar en detalle con algunos términos que se mencionarán a lo largo de este artículo.

¿Què es la Dark Web?

En términos simples, la Dark Web está constituida de sitios web accesible de forma pública pero que para poder acceder a ellos es necesario utilizar herramientas especializadas para poder navegar a través de los mismos. 

Cuando vemos de forma gráfica la representación de todo lo que existe en internet, la Dark Web representa apenas un 2% de todo lo que está publicado en la red de redes, sin embargo no por ello es un tema menor, ya que a través de esta pequeña fracción de internet, se oculta una gran cantidad de actividades ilícitas, políticas y otros temas que no se pueden publicar de forma abierta ya que es probable que sus autores tengan algún problema con los cuerpos policiales en diferentes países.

La representación que comúnmente vemos es la de un iceberg similar al siguiente: 





Los usuarios de que publican sus páginas web y servicios normalmente buscan el anonimato que ofrece este tipo de redes, ya que como mencioné al principio para poder navegar entre estos sitios, es necesario un navegador especial que permite ubicar y decodificar las direcciones de estos sitios, conocidos como Links Onion. Para tener mas información acerca de como funciona este tipo de red, sugiero visitar el siguiente enlace.

Lo anterior supone de hecho una gran complejidad para poder identificar por un lado el contenido de un servidor y por el otro, algún tipo de direccionamiento IP que nos indique en donde (geográficamente) pudiera ubicarse físicamente un servidor determinado. 

¿Qué es un Hidden Service? 

Al igual que cualquier servicio que conocemos los servicios como Web, Correo Electrónico, FTP, SSH, los hidden services son todos aquellos servicios proporcionados a través de un servidor en la Dark Web, sin embargo como ya lo he mencionado al involucrar temas de cifrado y anonimato, no son fácilmente visibles a menos de que el dueño del servidor nos indique un puerto abierto de forma explícita o realicemos un escaneo de puertos a un servidor determinado. Lo que veremos mas adelante. Para una explicación mas amplia de este tipo de servicios, pueden visitar ésta liga

Dicho lo anterior, este análisis como lo he comentado al incio de este artículo, es que a través del descubrimiento y análisis de los servicios alojados en la Dark Web, se pueda llegar a identificar cierta información que pudiera llevarnos a la información real de donde se pudieran encontrar estos dispositivos e inclusive a las personas detrás de ellos. 

Así que sin mas preámbulo, manos a la obra...

Lo primero que realicé es darle forma y estructura al proceso de investigación alineándolo a las fases del ciclo de inteligencia tradicional, de tal forma que plasmándolo de forma simple sería algo de la siguiente forma:


PLANEACIÓN

Cómo parte de uno de los requisitos de esta investigación es que me pudiera basar en la información publicada anteriormente y que pudiera de alguna forma estar relacionada con el objeto de la que estoy realizando, como lo son proyectos como:  Dark Web Map elaborado por Hyperion Gray en 2019 y también con el proyecto de Onion Scan acerca de las tecnologías mayormente empleadas en este tipo de red. 

Ambos estudios contemplan al menos 5000 servidores analizados durante ambos estudios por lo que el alcance del presente estudio era la de al menos conseguir más de 6000 servidores a ser analizados para poder reunir una muestra significativa que nos permitiera lograr con mayor facilidad nuestro objetivo. 


RECOPILACIÓN

Una vez definido el alcance de nuestra investigación el siguiente paso era la de definir y establecer las herramientas con la que iba a llevar a cabo el proceso de recopilación y sobre todo de forma automatizada, ya que sin duda el lograr conjuntar información de más de 6000 sitios y/o servidores no sería una tarea sencilla. 

Para lo cual monté la siguiente infraestructura, como parte de mi laboratorio: 



En la sección de anexos de este artículo se encontrarán las ligas de cada una de las herramientas y el detalle para llevar a cabo su instalación. 

Tras haber montado este laboratorio, la herramienta que me permitió comenzar con el proceso de recopilación fue la de OnionSearch. 

OnionSearch

Esta herramienta nos permite realizar la búsqueda de un término (palabra o frase) en un conjunto de buscadores de la red TOR para devolvernos un conjunto de URLs relacionadas al término que estamos empleando para la búsqueda. 

Para ver mas detalle de esta herramienta así como el manual de usuario, pueden visitar la liga al repositorio, aquí.


Como se puede observar en la pantalla anterior, el programa de Onion Search realiza la búsqueda de un término o una frase en 16 motores de búsqueda de la red de Tor con lo cual posteriormente se almacenaría en un archivo con el nombre de output_termino_fecha.txt.

Para el caso del término de "bitcoin", OnionSearch generó un archivo con 4787 enlaces a diferentes sitios dentro de la red de Tor, tal y como se observa en la última linea de la imagen anterior. 

Para este análisis lo que hice fue conjuntar al menos 60 términos de búsqueda distintos lo que me permitió recopilar 1.9 Millones de urls, mismas que posteriormente fui filtrando hasta llegar a información realmente utilizable. 

PROCESAMIENTO

Tras haber concluido la fase de recopilación, el siguiente paso era el procesamiento de toda la información recopilada, que como ya he mencionado hasta este punto rondaba al rededor de 1.9 millones de Urls. 

Trataré de resumir todo el proceso complejo a través de los siguientes diagramas: 


Para lograr el objetivo de descubrir los servicios ocultos, fue necesario separar de este gran listado, la porción de los hosts (dominios onion) y la porción de URLs, la primera ayudaría a realizar el escaneo de puertos y con ello los hidden services y por el otro lado las URLs me permitirían identificar la relación entre sitios web por medio de la comparación de similitudes entre el contenido publicado. 



Como se puede observar en la imagen anterior, el resultado de todo el procesamiento de esta información la iba almacenando a través de archivos de excel, lo que me ayudó a organizar la información y con ello facilitar la tarea de análisis. 

Cabe mencionar que para efectos de procesar todas las URLs, me apoye de la herramienta de Page-Compare que me permitirán posteriormente dibujar mapas de relación entre sitios y dominios Onion, basados en la similitud de su contenido, como se puede ver en su sitio web.

Al finalizar el procesamiento de toda la lista de sitios recopilados obtendré un mapa de relación similar al que muestro a continuación. 



Donde como se puede observar nos dibuja de una manera muy detallada las relaciones de varios dominios en el sentido de grupos o conjuntos de sitios web, mismos que si hacemos un zoom a alguna zona del mapa, veremos que las pantallas de cada uno de los sitios son muy similares entre ellos. 


ANÁLISIS

Llegado a éste punto, ya cuento con información del resultado de Nmap y de la comparación de sitios, ya es posible comenzar a identificar tecnologías, versiones de aplicaciones e inclusive servidores detrás de estos sitios. 

Es importante mencionar que dado a una limitante de tiempo para realizar esta investigación no me fue posible recorrer todos los hosts contenidos en mi listado inicial, sin embargo, se continúa con la meta de lograr un universo de mas de 6000 servidores inicialmente ya que las siguientes estadísticas se recopilaron de 17,259 hosts. 

¿Qué puertos están comunmente abiertos en los Hidden Services?




¿Qué tecnologías existen detrás de los web services? 

Adicionalmente a la información de los puertos una de las actividades necesarias para buscar desanonimizar dichos servicios es identificar si es posible realizar alguna explotación de alguno de estos servicios, para lo cual es indispensable identificar la versión del software detrás de estos servicios. 


Tomando en cuenta la información anterior está claro que debía enfocar el esfuerzo en buscar vulnerabilidades en las 2 grandes tecnologías presentes detrás de los servicios si mi objetivo es el de buscar la forma de desanonimizar estos servicios. 


Dado a que dentro del alcance de esta investigación no consistía en explotar alguna vulnerabilidad, me enfoque en buscar posibles malas configuraciones que me dieran alguna información útil para llevar a información real del servidor o infraestructura real detrás de los servidores publicados en la red TOR.

Para el caso de los servidores apache, utilicé una mala configuración relacionada al módulo de server-status en la cual, si la página se encuentra expuesta nos puede brindar información como la ip/hostname real del equipo, tal y como se muestra a continuación:


Tal y como se observa en la imagen anterior, partiendo de un dominio .ONION fue y aprovechando la mala configuración del server-status, fue posible conseguir una IP alojada en servidores de Estados Unidos, y a través de esa IP, resolver un nombre de dominio que està registrado en China. 

En cualquiera de los casos, su fuéramos algún cuerpo de la ley de alguno de estos países podríamos solicitar información del registrante ya sea bien del servidor o del dominio para poder conseguir algún nombre de alguna persona o empresa. 

Esta sería una de las formas mas sencillas de desanonimizar los servicios e infraestructura detrás de los mismos. 

Ahora considere este punto de información, relacionado al tema de ubicar todos aquellos sitios que proporcionan contenido similar, estaríamos quizá hablando de un punto de entrada a infraestructura mas compleja y/o amplia. 

Sin embargo, una de las formas mas efectivas de poder llevar a cabo la desanonimización de los servicios es a través de la explotación de alguna vulnerabilidad relacionada a algún servicio ya sea bien por permitir el control remoto del equipo a través de la ejecución remota de código o por aquellas que permiten la divulgación de información de archivos sensibles. 

Por poner un ejemplo: 


Con base a todos los puntos anteriormente mencionados durante la fase de análisis, fue posible llevar a la creación de un mapa a gran nivel del tipo de contenido que existe en la Deep Web, no para incentivar que se visite, si no simplemente para darnos una idea de las actividades que se identificaron al momento de realizar esta investigación. 

¿Qué tipo de contenido se observó en los dominios recopilados?



CONCLUSIONES

  • Con base en todo lo anterior, podemos inferir que si es posible desanonimizar una infraestructura que albergue uno o varios de los dominios de la red de TOR, ya sea bien por una mala configuración y a través de la explotación de alguna vulnerabilidad. 
  • Existen otros métodos para realizarlo y que no están comprendidos en el alcance de esta investigación como lo es la instalación de nodos intermedios o de salida para monitorear tráfico y peticiones de dominios y que son realizados por empresas gubernamentales. 
  • Una de las principales barreras que enfrentamos al momento de realizar éste tipo de ejercicios es justamente la de lo efímero que son algunos servicios y/o servidores en la red TOR, inclusive hay quienes cambian el nombre del Hidden Service para ubicarlos nuevamente. Lo cual, requiere que el analista o equipos de analistas inviertan mucho tiempo y seguimiento muy puntual a esta actividad. 


REFERENCIAS

1.- Reportes de Onion Scan 2016

https://mascherari.press/onionscan-report-may-2016-technologies-used-by-onion-services/

2.- Dark Web Map

https://www.hyperiongray.com/dark-web-map/

3.- Content and popularity analysis of Tor Hidden Services

https://arxiv.org/pdf/1308.6768.pdf

4.- Exposing the Public IPs of TOR Services Throught SSL Certificates

https://www.netsparker.com/blog/web-security/exposing-public-ips-tor-services-through-ssl-certificates/

5.- Darkweb + Python: discover, analyze and extract information from hidden services

https://dev.to/jmortega/darkweb-python-discover-analyze-and-extract-information-from-hidden-services-55p9

6.- Page Compare Crawler Tool

https://github.com/TeamHG-Memex/page-compare

7.- Splash server HTTP Api

https://splash.readthedocs.io/en/stable/api.html

8.- Apache Status Module

https://www.datadoghq.com/blog/collect-apache-performance-metrics/#:~:text=Apache%20web%20server%20exposes%20metrics,mod_status%20in%20your%20configuration%20file.

9 .- Common Nginx misconfigurations that leave your web server open to attack

https://blog.detectify.com/2020/11/10/common-nginx-misconfigurations/

10.- Onion Search GitHub Repo

https://github.com/megadose/OnionSearch

11.- Metrics TOR Project

https://metrics.torproject.org/


Comentarios

Lo mas visto