Tor permite acceder a sitios web tradicionales, pero también ofrece la posibilidad de acceder a dominios .onion, una categoría especial de sitios que no se pueden visualizar con navegadores comunes. Estos dominios están diseñados para garantizar el anonimato de los usuarios, al conectar a través de la red Tor, un sistema de proxy distribuido que protege la identidad y ubicación de quienes navegan. Al intentar acceder a un sitio .onion desde un navegador convencional, el resultado será una página de error que indicará que el sitio no está disponible. Sin embargo, si se utiliza el navegador Tor, estos dominios se abrirán como si fueran páginas comunes, sin mostrar rastros de la identidad del usuario.
Uno de los puntos de partida más comunes en la exploración de la Deep Web es "The Hidden Wiki", una página que reúne una extensa lista de sitios .onion organizados por categorías. En ella se pueden encontrar recursos sobre servicios financieros, seguridad y anonimato, intercambio de archivos P2P, entre otros. Si intentamos abrir la URL de este wiki (http://zqktlwi4fecvo6ri.onion/wiki/index.php/Main_Page) en un navegador común, no funcionará. Sin embargo, al abrirla en el navegador Tor, podremos acceder a un extenso índice de enlaces a otros sitios de la red oscura. En este tipo de wikis se encuentran también otras plataformas de búsqueda como DuckDuckGo, que dispone de su propia versión en Tor (http://3g2upl4pq6kufc4m.onion/), o motores de búsqueda más específicos para la Deep Web, como TORCH (http://xmh57jrzrnw6insl.onion/), que, a pesar de ser útiles, no siempre funcionan con la misma fiabilidad que sus contrapartes convencionales.
En cuanto a los mercados, la Deep Web es conocida por albergar sitios que venden productos ilegales, siendo "Silk Road" uno de los ejemplos más notorios antes de ser desmantelado por el FBI. No obstante, tras su cierre surgieron plataformas como "Silk Road 2.0", que continúan ofreciendo productos similares, incluyendo drogas, armas y otros artículos prohibidos. Además de estos mercados, existen foros, tableros y chats donde los usuarios discuten diversos temas, desde programación hasta privacidad, en espacios como Torchan (http://zw3crggtadila2sg.onion/imageboard/).
La creación de un sitio en la red Tor no es tarea compleja, pero requiere ciertos pasos técnicos. El primer paso es configurar un servidor web local, como XAMPP, que utiliza Apache como servidor. Una vez configurado el servidor, es necesario modificar el archivo “torrc” para habilitar un servicio oculto (hidden service). Este archivo, ubicado en “Tor Browser\Data\Tor”, debe ser editado para incluir las líneas que indican la ubicación de los archivos de servicio oculto y el puerto a través del cual se conectará el servidor Tor. Tras reiniciar Tor, se generarán dos archivos importantes: “hostname”, que contiene la dirección .onion de nuestro sitio, y “private_key”, que debe mantenerse en secreto para evitar que otros suplanten nuestra identidad.
Para asegurar que el servicio oculto sea anónimo y seguro, es necesario tomar medidas adicionales. Primero, se debe evitar que el servidor revele información sobre su configuración, como banners de servidor o mensajes de error que puedan ayudar a identificar el sistema. También se debe limitar al máximo los servicios en el servidor para evitar vulnerabilidades. Finalmente, es crucial revisar la seguridad de la aplicación web que se hospeda para prevenir posibles ataques.
Es importante recordar que, aunque Tor permite ejecutar servicios ocultos a través de relays, no se recomienda esta opción si el objetivo es mantener un alto nivel de anonimato. Los relays son nodos de la red Tor que transmiten el tráfico, y aunque existen distintos tipos, como los “middle relays” y los “exit relays”, el uso de relays para servicios ocultos podría comprometer la seguridad. En su lugar, se deben utilizar las características de “bridges”, que son relays no públicos y pueden ayudar a superar restricciones en redes gestionadas, como en universidades o lugares donde el acceso a Tor está bloqueado.
Por otro lado, I2P (Invisible Internet Project) es otra red que, al igual que Tor, permite el anonimato, pero con un enfoque distinto. I2P se utiliza principalmente para acceder a sitios con la extensión .i2p, conocidos como “eepsites”. Estos sitios ofrecen una serie de recursos similares a los de Tor, como alojamiento web anónimo, foros, y plataformas para compartir información de manera segura. La instalación de I2P es sencilla y, al igual que Tor, una vez que se configura, permite acceder a los sitios a través de una dirección local (http://127.0.0.1:7657/home). Para utilizar el navegador de I2P, es necesario configurar la proxy de nuestro navegador a 127.0.0.1:4444, lo que nos permitirá acceder a las direcciones .i2p sin problemas.
En la plataforma de I2P, los usuarios pueden encontrar diversas aplicaciones, como alojamiento web gratuito (http://open4you.i2p/), servicios de Pastebin para almacenar información de forma anónima (http://pastethis.i2p/), o foros donde se pueden discutir todo tipo de temas. Por ejemplo, el sitio http://forum.i2p/ funciona como un foro general donde se debaten temas tanto relacionados con I2P como de otros intereses. De la misma manera que en Tor, la seguridad y el anonimato deben ser cuidadosamente gestionados para proteger la identidad de los usuarios y evitar comprometer su privacidad.
Es fundamental que, tanto en Tor como en I2P, los usuarios se mantengan alertas ante posibles estafas o servicios falsos. Aunque muchas de las páginas aseguran ser auténticas, siempre es recomendable verificar la legitimidad de los sitios antes de interactuar con ellos. La red oscura, a pesar de ofrecer anonimato, también alberga riesgos y actividades ilegales, por lo que la precaución y el sentido común son esenciales a la hora de explorarla.
¿Cómo optimizar tu código mediante módulos, funciones y clases en Python?
El uso de módulos en Python es esencial cuando se busca organizar y reutilizar código de manera eficiente. En muchos proyectos, es probable que varios objetos o funcionalidades compartan componentes comunes. En lugar de escribir una y otra vez el mismo código para cada nuevo objeto, se puede crear un módulo que contenga estos componentes, los cuales podrán ser importados cuando se necesiten. Esto permite que el código sea más limpio, organizado y fácil de mantener.
Por ejemplo, supongamos que estamos trabajando con dos entidades, como un coche y un camión. Ambos comparten características comunes como los frenos y el acelerador. En lugar de codificar estos componentes en cada uno de los programas, podemos escribir estos componentes una sola vez en un módulo y luego importarlos en los programas correspondientes según sea necesario. Este enfoque no solo mejora la reutilización del código, sino que también facilita su gestión.
Los módulos pueden contener variables, funciones y clases. Después de crear estos módulos y almacenarlos en archivos separados, podemos importarlos en otros programas utilizando la instrucción import. Esto también permite que nuestro programa crezca sin volverse desordenado. Aquí hay un ejemplo básico:
Este código se guarda en un archivo llamado x.py. Ahora, creamos otro archivo llamado mod.py con el siguiente contenido:
El resultado de ejecutar este código será:
De esta manera, hemos creado un módulo con una variable y luego lo hemos importado para usarla en otro programa.
Además de la importación básica, Python también permite importar partes específicas de un módulo usando la instrucción from module_name import desired_portion, lo que facilita la organización de grandes bloques de código.
Funciones en Python
Las funciones son herramientas poderosas que agrupan una serie de instrucciones que realizan una tarea específica, lo que ayuda a reducir la complejidad del código. Una función se define con la palabra clave def, seguida del nombre de la función, los paréntesis que pueden contener parámetros, y finalmente dos puntos. Las funciones pueden devolver valores utilizando la instrucción return, lo que permite enviar resultados a la parte del código que las invoca.
Un ejemplo simple de función sería:
La salida de este código sería:
El uso de funciones es especialmente valioso cuando el código es extenso y debe realizar operaciones repetitivas. En lugar de escribir el mismo código varias veces, se puede encapsular en una función y luego llamarla en cualquier parte del programa.
Clases en Python
Las clases permiten agrupar diferentes operaciones y datos relacionados en una sola estructura. Definir una clase en Python es sencillo: se usa la palabra clave class, seguida del nombre de la clase y luego dos puntos. Las clases pueden contener métodos, que son funciones asociadas a la clase. Un aspecto clave de las clases es el método especial __init__, que actúa como el constructor de la clase, y se ejecuta automáticamente cuando se crea un nuevo objeto de la clase.
Aquí hay un ejemplo básico de clase:
El resultado sería:
En este caso, el método __init__ inicializa el objeto classobj con un argumento. Los métodos firstfunc y secfunc pertenecen a la clase y operan sobre el valor de self.cla. Las clases se pueden importar y usar de la misma manera que los módulos, permitiendo una reutilización aún mayor del código.
Módulos y Paquetes
Cuando un proyecto crece, puede ser útil organizar los módulos en directorios jerárquicos llamados paquetes. Un paquete puede contener módulos y otros subpaquetes, lo que permite una organización más avanzada y modular del código. Esto es especialmente útil en proyectos grandes que requieren una estructura organizada para evitar la sobrecarga de un solo archivo de código.
Trabajo con Archivos
En muchos casos, es necesario trabajar con archivos para almacenar o recuperar datos. Python proporciona varias funciones integradas para manipular archivos de manera eficiente. Por ejemplo, para abrir un archivo, se utiliza la función open, que acepta el nombre del archivo y el modo de apertura (lectura, escritura, etc.).
En este caso, hemos abierto el archivo text.txt en modo escritura ('w'), escrito datos en él y luego cerrado el archivo. Para leer un archivo, simplemente cambiamos el modo de apertura a 'r' y usamos la función read para obtener su contenido:
Módulos Útiles en Python
Python tiene muchos módulos integrados y de terceros que pueden ayudar a resolver problemas comunes sin tener que escribir mucho código. Algunos de los módulos más útiles incluyen:
-
sys: Accede a objetos utilizados y mantenidos por el intérprete de Python, comosys.argvpara manejar argumentos de línea de comando. -
re: Facilita las expresiones regulares, que permiten realizar búsquedas y manipulaciones de texto complejas. -
os: Permite interactuar con el sistema operativo, como la creación de directorios o la manipulación de archivos. -
urllib: Facilita la interacción con recursos web, como la apertura de páginas web.
Estos módulos proporcionan funcionalidades que pueden ahorrarte mucho tiempo y esfuerzo al implementar tareas comunes.
Entrada del Usuario
En muchos programas, es necesario obtener datos del usuario. Python ofrece dos formas principales de hacerlo: a través de argumentos de línea de comando o mediante la función raw_input, que permite ingresar datos durante la ejecución del programa.
Por ejemplo, utilizando sys.argv para leer un argumento de la línea de comandos:
Este código imprime el argumento ingresado multiplicado por 4. Otra forma es utilizar raw_input para solicitar entrada durante la ejecución:
De esta manera, es posible interactuar con el usuario y adaptar el comportamiento del programa según los datos ingresados.
¿Cómo acceder a la inteligencia de fuentes abiertas (OSINT) y aprovecharla en la búsqueda avanzada en redes sociales?
En el capítulo anterior, se presentó una visión general sobre los aspectos fundamentales de la web y cómo interactuamos con ella. Ahora nos adentramos en un tema esencial para quienes buscan obtener información desde las fuentes abiertas, conocido como inteligencia de fuentes abiertas o OSINT (por sus siglas en inglés, Open Source Intelligence). Este concepto, aunque ampliamente utilizado en distintos ámbitos, sigue siendo en muchos casos mal interpretado o subestimado por el usuario común. A continuación, se explorarán las formas en que accedemos a esta información, su evolución y su impacto en las búsquedas avanzadas dentro de las redes sociales.
La inteligencia de fuentes abiertas (OSINT) se refiere a la recopilación de datos de fuentes que están públicamente disponibles para todos. A diferencia de otros tipos de inteligencia que requieren acceso a información confidencial o secreta, OSINT se basa exclusivamente en información accesible de manera abierta. Los tipos de fuentes incluyen publicaciones académicas, medios de comunicación, contenidos web y datos públicos como los informes de gobiernos o empresas.
El acceso a OSINT, aunque aparentemente sencillo, no es siempre tan claro o directo como parece. Por ejemplo, muchos usuarios piensan erróneamente que los motores de búsqueda como Google tienen acceso a todo el contenido disponible en Internet, cuando en realidad solo indexan una pequeña porción de la web conocida como la "web superficial" (surface web). Además, los motores de búsqueda operan bajo complejos algoritmos de indexación, lo que significa que no todo el contenido está al alcance de una simple búsqueda. Por lo tanto, el dominio de las técnicas de búsqueda avanzada puede resultar crucial para obtener la información más relevante y precisa.
Uno de los problemas más comunes entre los usuarios es la mala formulación de las consultas de búsqueda. Esto puede llevar a resultados imprecisos o incompletos. Imaginemos que un usuario desea solucionar un problema relacionado con un "pantallazo azul" en Windows. Al realizar una búsqueda como "mi laptop está con la pantalla azul, ¿cómo solucionarlo?", es posible que los resultados no sean los más apropiados, o que se necesite mucho tiempo y esfuerzo para encontrar la solución adecuada. Aquí es donde las técnicas avanzadas de búsqueda se convierten en una herramienta poderosa. La capacidad de refinar las consultas y aplicar filtros puede mejorar enormemente la calidad de los resultados.
Otro aspecto importante a tener en cuenta es la abundancia de datos en el campo de OSINT. Mientras que otros métodos de recopilación de inteligencia pueden enfrentar dificultades debido a la falta de datos, OSINT se enfrenta a un desafío opuesto: la sobrecarga de información. La verdadera dificultad no radica en la cantidad de datos disponibles, sino en cómo filtrarlos y convertirlos en información útil y procesable. Este proceso de filtrado y análisis es un paso fundamental para que OSINT sea efectivo.
A pesar de su aparente simplicidad, OSINT es una herramienta poderosa utilizada por gobiernos, militares y empresas para obtener una ventaja estratégica. Hoy en día, muchos de los datos que antes se encontraban fuera del alcance de las búsquedas en línea se encuentran disponibles digitalmente, lo que difumina las líneas entre la web superficial y otros tipos de información accesibles a través de la red. A lo largo de este libro, nos centraremos en cómo acceder a OSINT mediante herramientas basadas en la web (WEBINT), un enfoque cada vez más relevante debido a la creciente digitalización de los datos.
Las redes sociales juegan un papel clave en este panorama, ya que se han convertido en una fuente esencial de inteligencia abierta. Con el auge de plataformas como Facebook, Twitter, LinkedIn, Instagram, entre otras, se ha multiplicado la cantidad de información personal y profesional que las personas comparten en línea. La búsqueda avanzada en redes sociales permite a los analistas obtener datos que pueden ser utilizados para diversas finalidades, desde la obtención de información sobre tendencias de mercado hasta el análisis de comportamientos individuales o grupales.
Es crucial entender que las redes sociales son una fuente de OSINT que va más allá de los simples posts o comentarios. Los algoritmos de estas plataformas permiten filtrar información relevante a través de diversos parámetros, como ubicación geográfica, intereses, conexiones entre usuarios y más. Los buscadores especializados en redes sociales ofrecen herramientas para realizar búsquedas avanzadas, que no solo dependen de las palabras clave, sino también de metadatos y de la interacción entre los usuarios. Esto otorga una ventaja significativa a quienes buscan información detallada y precisa dentro de estos entornos.
Al comprender cómo se realiza una búsqueda avanzada en redes sociales, es necesario conocer algunas de las técnicas que mejoran la precisión de los resultados. Por ejemplo, el uso de operadores de búsqueda en redes sociales puede facilitar la obtención de contenido de alta relevancia. Sin embargo, es importante ser consciente de que no todo lo que se comparte en redes sociales es verificable o relevante. Es esencial aprender a filtrar la información, distinguir entre lo que es fiable y lo que no lo es, y cómo corroborar los datos obtenidos con otras fuentes.
La evolución de la web, desde su versión 1.0 hasta la emergente Web 3.0, también juega un papel importante en este proceso. Web 2.0, por ejemplo, trajo consigo la interacción social y la creación de contenido por parte de los usuarios, lo que permitió un acceso más dinámico a la información. A su vez, Web 3.0 promete una internet más semántica y descentralizada, lo que podría transformar aún más la forma en que accedemos a la información y utilizamos OSINT. La inteligencia de fuentes abiertas en este contexto será aún más avanzada, permitiendo obtener datos desde diversas plataformas interconectadas, utilizando nuevas tecnologías como la inteligencia artificial y la blockchain.
Al adentrarnos en este ámbito, es fundamental no solo comprender las herramientas disponibles, sino también los métodos para utilizarlas de manera eficiente. Aunque el acceso a OSINT parece ser un proceso sencillo y accesible para la mayoría de las personas, se requiere un enfoque más profundo y detallado para extraer la información más relevante y utilizarla de forma estratégica. La habilidad para realizar búsquedas precisas, filtrar los datos y analizarlos de manera efectiva es lo que distingue a los usuarios avanzados de los principiantes.

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский