Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
netlas-cookbook — El objetivo de esta guía es muy simple - enseñar a cualquier persona interesada en ciberseguridad, independientemente de su nivel de conocimiento, cómo aprovechar al máximo Netlas.io. | Kitploit
Herramientas/GitHubGitHub/netlas-io/netlas-cookbook
OSINT (Inteligencia de Fuentes Abiertas)ReconocimientoSeguridad IoTAnálisis de VulnerabilidadesRecopilación de InformaciónSeguridad WebForensia DigitalPruebas de PenetraciónInteligencia de AmenazasAprendizaje y EducaciónRecursos CuradosRutas de Aprendizaje y Cursos
8881056hace 1 añoRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
GitHubnetlas-io/netlas-cookbook

netlas-cookbook

El objetivo de esta guía es muy simple - enseñar a cualquier persona interesada en ciberseguridad, independientemente de su nivel de conocimiento, cómo aprovechar al máximo Netlas.io.

Ver Repositorio

Netlas CookBook

GitHub stars GitHub forks


El objetivo de esta guía es enseñar a cualquier persona interesada en ciberseguridad, independientemente de su nivel de conocimiento, cómo aprovechar al máximo las herramientas de búsqueda de Netlas. Es una lectura extensa. Hemos recopilado la mayor cantidad posible de casos de uso simples y mostrado cómo automatizarlos.

⭐️ Danos una estrella para mostrar tu agradecimiento
👁️ Suscríbete para recibir actualizaciones

Netlas es un motor de búsqueda diseñado para encontrar y analizar información sobre todas las direcciones IP y dominios disponibles en Internet. Netlas tiene algunas funciones de gestión de superficie de ataque, pero esta guía se centra principalmente en las herramientas de búsqueda de Netlas y cómo usarlas en automatizaciones.

Tabla de Contenidos

  • Ejemplos de Uso Simple
    • Obtener Información sobre una IP o Dominio
    • Buscar Dominios No Latinos
    • Buscar Sitios Web que Contengan una Palabra Específica en su Título
  • Sintaxis de Consulta de Búsqueda
    • Filtros (Campos)
    • Operadores Lógicos
    • Rangos
    • Comodines
    • Imprecisión
    • Expresiones Regulares
    • Otras Funciones de Búsqueda de Netlas.io
  • Solicitudes API
    • ¿Cómo Encontrar la Clave API?
    • Herramientas para Depurar Solicitudes API
    • Estructura de la Respuesta JSON de la API de Netlas
    • Herramientas para Trabajar con Datos en Formato JSON
    • Librería Python de Netlas
    • Ejemplos de Claves de Respuesta para Obtener Datos Útiles
    • Tipos de Datos de Respuesta de Python de Netlas
    • Herramientas CLI de Netlas
    • Métodos Search vs Download vs Host
    • Parámetros de Solicitud Adicionales
    • Realizar Solicitudes con Python (sin la Librería Python de Netlas)
    • Ejemplos para Otros Lenguajes de Programación
    • Utilidad JQ
    • Herramientas de IA para Escribir Código
    • Verificadores de Código
  • Usar Netlas.io para OSINT (Inteligencia de Fuentes Abiertas)
    • Buscar Apodo o Correo Electrónico de una Persona en Contactos WHOIS
    • Buscar Apodo o Correo Electrónico de una Persona en el Título y Cuerpo de una Página Web
    • Buscar Archivos con "Información Jugosa" en Subdominios del Sitio Web de la Empresa
    • Búsqueda de Menciones de Números de Teléfono
    • Búsqueda de Menciones de Archivos (Buscando Contenido que Pueda Infringir Derechos de Autor)
    • Recopilación de Información WHOIS de Dominios
    • Buscar Ubicación en la Etiqueta <address>
    • Buscar Nombre del Autor en Meta Tags
    • ¿Qué Otras Cosas Interesantes se Pueden Encontrar en las Meta Tags de un Documento HTML?
    • Buscar por Texto de Banners de Servidores FTP
    • Buscar Información de Contacto en Certificados SSL
    • Usar Netlas como Alternativa a WayBack Machine
    • 9 Formas de Buscar Sitios Web Relacionados
  • Scraping (Extraer Datos del Cuerpo de una Página Web)
    • Paquete Beatifulsoup
    • Paquete Re
    • Otros Paquetes de Python para Scraping
  • Usar Netlas.io para Investigaciones de Criptomonedas
    • Buscar Granjas de Minería
    • Buscar Sitios Web Infectados con Criptomineros
    • Buscar Nodos de Bitcoin Vulnerables
  • Usar Netlas para Pentesting
    • Búsqueda de Subdominios
    • Buscar Sitios con Vulnerabilidades Específicas
    • Buscar Sitios con Vulnerabilidades que Contengan una Palabra Específica en sus Descripciones
    • Buscar por Cabecera HTTP del Servidor
    • Buscar Servidores Vulnerables por Hash de Favicon
    • Buscar Servidores Vulnerables por Nombre de Etiqueta
    • Buscar Servidores y Dispositivos Vulnerables Cerca de Ti (o de Cualquier Otra Ubicación)
    • Buscar Paneles de Inicio de Sesión/Administración
    • Buscar Paneles de Administración de Bases de Datos Vulnerables
    • Buscar Sitios Vulnerables a Inyección SQL
  • Búsqueda de IoT: 9 Formas Básicas
    • Buscar por Título
    • Buscar Dentro del Cuerpo
    • Buscar por Número de Puerto
    • Buscar por Banner
    • Buscar por Favicon
    • Buscar por Cabeceras del Servidor
    • Buscar por Cookies
    • Buscar por Etiqueta
    • Filtros de Búsqueda Adicionales
  • Usar Netlas.io para Investigación en la Darknet
    • Búsqueda de Nodos de Salida Tor
    • Recopilación de Enlaces a Sitios .onion
  • Búsqueda de Directorios de Archivos, Copias de Seguridad y Registros
  • Usar Netlas.io para Forense Digital y Respuesta a Incidentes
    • Recopilación de Información de Servidores SMTP
    • Buscar Dominios que Podrían Usarse Potencialmente para Phishing
    • Búsqueda por Favicon
    • Buscar Dominios Asociados con una Subred Específica
    • Buscar Servidores con Software Malicioso
  • Buscar Tecnologías y Ejemplos de Código
  • Usar Netlas.io por Diversión o Netstalking
  • Problemas Comunes
    • Error 429 - Solicitudes Demasiado Frecuentes
    • KeyError
    • Automatización del Trabajo con una Lista de Solicitudes
    • Guardar Datos en Formato CSV
    • Guardar Datos en Otros Formatos
    • Decodificar Dominios Punycode
    • ¿Qué Hacer si las Consultas de Búsqueda No Devuelven Resultados?
    • Eliminar Etiquetas HTML del Cuerpo HTTP
  • Gestión de la Superficie de Ataque
  • Trabajar con Cantidades Muy Grandes de Datos
  • Agradecimientos

Ejemplos de Uso Simple

Netlas incluye varias herramientas de búsqueda:

  • Información de IP/Dominio →
  • Búsqueda de respuestas →
  • Búsqueda DNS →
  • Búsqueda WHOIS de IP →
  • Búsqueda WHOIS de Dominio →
  • Búsqueda de certificados →

Usaremos principalmente la búsqueda de respuestas (resultados de escaneo de Internet), pero todas las herramientas funcionan de la misma manera. Si entiendes cómo usar la Herramienta de Búsqueda de Respuestas, podrás manejar cualquier otra.

Antes de entrar en los detalles técnicos, veamos cómo funciona Netlas.io con algunos ejemplos simples.

Obtener Información sobre una IP o Dominio

Recopilación de información de dominio

Abre Netlas.io Información de IP/Dominio e ingresa el nombre de dominio o la IP. Como resultado se mostrará la siguiente información:

  • datos whois (registrante, ubicación, correos electrónicos, teléfonos)
  • dominios relacionados
  • registros MX y NS
  • puertos y software expuestos (a veces también muestra información sobre vulnerabilidades)

Buscar Dominios No Latinos

Conversión Punycode

Si necesitas encontrar nombres de dominio chinos u otros internacionalizados, conviértelos a Punycode. Por ejemplo:``` domain:*.xn--fiqs8s

root@kitploit:~
Puedes hacer esto con la ayuda de herramientas especiales en línea. Por ejemplo - [Charset.org](https://www.charset.org/punycode)

### Buscar sitios web que contengan una palabra determinada en su título

![Search by http title](https://assets.kitploit.com/production/public/readmes/6659/9da0445843c6567eefba0f415852126719123c24992f7b85d1e2eee96110d64e.png)

Abre [la búsqueda de respuestas de Netlas.io](https://app.netlas.io/responses/) e ingresa:```
http.title:g*thub

Try in Netlas

Esto encontrará todos los servidores cuyos títulos HTTP contengan una palabra que comience con "g" y termine en "thub". Lea más sobre el uso de asteriscos a continuación.

Sintaxis de Consulta de Búsqueda

Ahora aprendamos más sobre cómo funcionan las consultas de búsqueda en Netlas.io.

Netlas.io se basa en Elasticsearch, un motor de búsqueda RESTful distribuido, gratuito y abierto. Y los métodos de búsqueda en Netlas.io son muy similares a los de otras bases de datos basadas en Elasticsearch.

Filtros (Campos)

Filtros de búsqueda

La búsqueda de Respuesta, DNS, IP y Certificados le permite usar filtros (campos) en las consultas de búsqueda. Por ejemplo:

`http.title:github```` http.body:netlas

root@kitploit:~
[Try in Netlas](https://app.netlas.io/responses/?q=http.body%3Anetlas&page=1&indices=)

Puede usar esta consulta para encontrar páginas que contengan la palabra "netlas" dentro de su etiqueta HTML <body>.

Se muestra una lista de filtros disponibles para cada tipo de búsqueda en el lado derecho de la página.

![Filters Mapping Images](https://assets.kitploit.com/production/public/readmes/6659/00c8d6c829ff1de74f4fbdc26df13f8db07114a5830d9f6a8d9ad0011e817045.png)


Los filtros permiten buscar servidores basándose en muchos parámetros diferentes. Por ejemplo:

* `domain`
* `ip`
* `protocol`
* `certificate`
* `cve`
* `geolocation` (`city`, `continent`, `country`)

y muchos otros.


### Operadores Lógicos

Puede usar varios filtros en una sola consulta y combinarlos usando los operadores lógicos `AND`, `OR`, `NOT`. Por ejemplo:```
http.title:netlas NOT port:443

Probar en Netlas

Si deseas combinar múltiples condiciones en tu consulta, usa paréntesis:``` http.title:(netlas OR shodan) NOT port:443

root@kitploit:~
[Try in Netlas](https://nt.ls/OrFOY)


### Rangos

Si usas un valor numérico como valor de un campo, puedes designarlo como un valor desde y hasta (límites extremos del rango de valores):```
ip:[173.194.222.0 TO 173.194.222.255] 

Probar en Netlas

O marque solo el límite superior o solo el inferior del valor:``` host:"1.1.1.1" port:<=1000

root@kitploit:~
[Probar en Netlas](https://app.netlas.io/responses/?q=host%3A%221.1.1.1%22%20port%3A%3C%3D1000&page=1&indices=)


### Comodines

Si no conoces la descripción exacta de un determinado carácter en tu consulta (por ejemplo, no conoces la zona exacta de un dominio o la ortografía de un nombre), puedes reemplazarlo con un asterisco:```
domain:google.*

Pruébalo en Netlas

También puedes usar el signo de interrogación:``` domain:google.?

root@kitploit:~
[Prueba en Netlas](https://app.netlas.io/responses/?q=domain%3Agoogle.%3F&page=1&indices=)

`*` - many symbols, `?` - one symbol.

También puedes usar asteriscos en los filtros. Por ejemplo:```
\*.banner:database

Esta consulta realiza una búsqueda en todos los tipos de banner simultáneamente y reemplaza varios filtros: amqp.banner:, ftp.banner:, dns.banner:, telnet.banner:, etc.

Fuzziness

Fuzzines

Si necesitas buscar no por el valor exacto, sino por un valor aproximado de un campo (por ejemplo, páginas cuyos títulos contengan todos los nombres consonantes con Joseph), solo agrega ~ a la consulta:``` http.title:Joseph~

root@kitploit:~
[Prueba en Netlas](https://app.netlas.io/responses/?q=http.title%3AJoseph~&page=1&indices=)

### Expresiones regulares

Una expresión regular es una secuencia de caracteres que permite buscar, recuperar y reemplazar fragmentos de texto en un documento fuente que coinciden con ciertos patrones. Por ejemplo:

* Cualquier dirección de correo electrónico:  ```text
  ([a-zA-Z0–9+._-]+@[a-zA-Z0–9._-]+\.[a-zA-Z0–9_-]+)
  • Cualquier etiqueta HTML: ```text <.*?>
    root@kitploit:~
  • Cualquier número de teléfono: ```text ^[+]?[(]?[0-9]{3}[)]?[-\s.]?[0-9]{3}[-\s.]?[0-9]{4,6}$
    root@kitploit:~
  • Cualquier dirección de Bitcoin: ```text ^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$
    root@kitploit:~

Para obtener más información sobre el uso de expresiones regulares, consulta los ejemplos en el Netlas Cookbook (lo que estás leyendo ahora) y los siguientes enlaces:

Manual de sintaxis de expresiones regulares en la documentación de Elasticsearch

Cómo las expresiones regulares pueden ser útiles en OSINT. Teoría y algo de práctica usando Google Sheets

Otras funciones de búsqueda de Netlas.io

Descargar resultados

Descargar resultados

Puedes guardar tus resultados (todos o campos seleccionados) en formato JSON y CSV para verlos en un formato que te guste o analizarlos automáticamente con diferentes herramientas.

Agrupar resultados

Agrupar resultados

Puedes agrupar resultados por diferentes valores de campo para acelerar el tiempo de búsqueda. Por ejemplo, por nombre de dominio o geolocalización.

Compartir resultados

Compartir resultados

Puedes compartir libremente enlaces a los resultados de búsqueda (no se requiere registro para abrirlos, a menos que el usuario haya excedido el límite gratuito de 50 solicitudes).

Historial de búsqueda

Historial de solicitudes

Recuerda también que todas las consultas que hayas realizado se pueden ver en tu página de perfil (enlace en la esquina superior derecha).

Solicitudes API

La función más importante de Netlas.io es ayudar a las personas a realizar investigaciones de ciberseguridad de manera más rápida y eficiente. El servicio tiene una API (interfaz de programación de aplicaciones) que te permite automatizar la ejecución de varias solicitudes.

Se puede implementar tanto en scripts simples de Python o Bash de unas pocas líneas de longitud como en aplicaciones complejas multifuncionales.

Puedes leer más sobre el uso de la API de Netlas en el Netlas Cookbook (lo que estás leyendo ahora) o en la documentación oficial:

Documentación de la API →

¿Cómo encontrar la clave de API?

Este es el primer lugar para comenzar con la API. Ni siquiera tienes que pagar por una suscripción (50 solicitudes por día son gratuitas). Simplemente ve a la página de perfil.

Página de perfil

Herramientas para depurar solicitudes API

No tienes que escribir scripts ni crear aplicaciones para empezar a usar la API de Netlas. Puedes probarla simplemente con tu cliente API favorito. Consulta las instrucciones aquí.

Estructura de la respuesta JSON de la API de Netlas

Respuesta JSON de la API

Al igual que otras API, la respuesta de la API de Netlas consta de encabezados y un cuerpo de respuesta en formato JSON (JavaScript Object Notation). Los archivos JSON contienen datos en formato clave-valor y se pueden analizar usando casi cualquier lenguaje de programación.

Si usas Swagger, puedes copiar o descargar el cuerpo de la respuesta y verlo en cualquier editor de texto o analizador JSON.

Herramientas para trabajar con datos en formato JSON

Evaluador JSON

Un pequeño consejo que te será útil al escribir código usando la API de Netlas. Para comprender más rápido la estructura de un archivo JSON y encontrar la ruta para obtener un valor determinado, utiliza herramientas especiales como:

  • Evaluador en línea de JSON Path
  • Buscador de JSON Path

Biblioteca Python de Netlas

La forma más sencilla de automatizar solicitudes a la API de Netlas es usar una biblioteca (paquete) de Python diseñada especialmente.

Repositorio de Github de la biblioteca Netlas-Python

Veamos cómo funciona con un ejemplo sencillo. Todos los ejemplos de código del Netlas Cookbook se encuentran en la carpeta scripts. Puedes clonar este repositorio y ejecutarlos en tu dispositivo:```shell git clone https://github.com/netlas-io/netlas-cookbook

root@kitploit:~
Si no has ejecutado un script de Python antes y no sabes cómo hacerlo, puedes empezar abriendo el repositorio Netlas CookBook en Gitpod.
Gitpod es un entorno de desarrollo en la nube basado en Ubuntu (distribución Linux). Simplemente abre este enlace en tu navegador (inicia sesión con tu cuenta de Github):

[Ejecutar Netlas Cookbook en Gitpod](https://gitpod.io#https://github.com/netlas-io/netlas-cookbook)

![Netlas Github](https://assets.kitploit.com/production/public/readmes/6659/20c7d3841932ff04a4f4dc7b9ca2ae667e23e9d0af7b034342bd7db6d7efccfe.png)


Instala la biblioteca Python de Netlas usando pip (instalador de paquetes para Python). Ingresa en la línea de comandos:```shell
pip install netlas

Verifica la instalación. Ingresa en la línea de comandos:```shell netlas --help

root@kitploit:~
Ejecutar netlas_python_example.py:```shell
python3 scripts/netlas_python_example.py

Y, por supuesto, puedes simplemente copiar el código y guardarlo en archivos. Aquí está el código del primer ejemplo:```python import netlas

apikey = "YOUR API KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query port:7001

netlas_query = netlas_connection.query(query="port:7001")

iterate over data and print: IP address, port, path and protocol

for response in netlas_query['items']: print(f"{response['data']['ip']}:{response['data']['port']}{response['data']['path']} [{response['data']['protocol']}]")

root@kitploit:~
### Ejemplos de Claves de Respuesta para Obtener Datos Útiles

Se ha mencionado anteriormente que para encontrar parches JSON de la respuesta de la API y obtener los datos que necesitas, puedes usar aplicaciones especiales en línea (evaluadores de JSON). Para hacer tu vida aún más fácil, aquí tienes una pequeña lista de ejemplos de claves de respuesta de la biblioteca de Python que se necesitan con más frecuencia.```python
# Main domain/ip info
response['data']['uri']
response['data']['ip']
response['data']['http']['title']
response['data']['http']['meta']
response['data']['http']['body']

# Geo info
response['data']['geo']['continent']
response['data']['geo']['country']
response['data']['geo']['city']
response['data']['geo']['location']['lat']
response['data']['geo']['location']['long']

# Whois geo info
response['data']['whois']['net']['country']
response['data']['whois']['net']['address']
response['data']['whois']['net']['city']
response['data']['whois']['net']['contacts']['emails']
response['data']['whois']['net']['contacts']['phones']

# Http status and favicon ico info
response['data']['port']
response['data']['http']['status_code']
response['data']['http']['status_line']
response['data']['http']['favicon']['image']
response['data']['http']['favicon']['path']

# Basic CVE info
response['data']['cve'][0]['name']
response['data']['cve'][0]['description']
response['data']['cve'][0]['base_score']
response['data']['cve'][0]['has_exploit']
response['data']['cve'][0]['exploit_links']

Netlas Python Response Datatypes

Tipos de datos de Python Netlas

Al trabajar con la librería Netlas Python, es muy importante especificar correctamente el tipo de datos que deseas recuperar. Por defecto, se devuelve el tipo response y muchos ejemplos de Netlas CookBook lo utilizan.

Pero para algunas tareas, como obtener información whoois sobre un dominio o buscar dominios en una subred, necesitas usar un tipo de datos diferente. Por ejemplo:```python netlas_query = netlas_connection.query(query='a:"163.114.132.0/24"',datatype="domain")

root@kitploit:~
Si crees que alguna consulta no devuelve resultados cuando debería, simplemente intenta cambiar el valor del parámetro **datatype**. Es muy probable que esto ayude.

Tipos de datos disponibles:

- **datatype="response"** corresponde a los resultados que se pueden obtener en [Netlas Responses Search](https://app.netlas.io/responses/).
- **datatype="domain"** corresponde a los resultados que se pueden obtener en [Netlas DNS search](https://app.netlas.io/domains/)
- **datatype="domain-whois"** corresponde a los resultados que se pueden obtener en [Netlas Domain Whois Search](https://app.netlas.io/whois_domains/).
- **datatype="ip-whois"** corresponde a los resultados que se pueden obtener en [Netlas IP Whois Search](https://app.netlas.io/whois_ip/).
- **datatype="cert"** corresponde a los resultados que se pueden obtener en [Netlas Certificates Search](https://app.netlas.io/certs/).


### Herramientas CLI de Netlas

![Herramientas CLI de Netlas](https://assets.kitploit.com/production/public/readmes/6659/88c2402f9da5a3ece87a4459de9b967691428d60df86f828d83722c50bde9d44.png)

También puedes usar la librería Python de Netlas directamente desde la línea de comandos. Por ejemplo:```bash
netlas search "http.title:johnsmith" -f json >results.json

Este comando simple busca todos los servidores que tengan la palabra johnsmith en su encabezado, devuelve los resultados en formato JSON y almacena los resultados en el archivo resutls.json.

Todas las demás funciones de la API de Netlas se pueden usar de la misma manera. Puede obtener más información al respecto desde la ayuda (comando -h) y los ejemplos en el Netlas Cookbook (lo que está leyendo ahora).``` Usage: netlas [OPTIONS] COMMAND [ARGS]...

Options: -h, --help Show this message and exit.

Commands: count Calculate count of query results. download Download data. host Host (ip or domain) information. indices Get available data indices. profile Get user profile data. savekey Save API key to the local system. search (query) Search query. stat Get statistics for query.

root@kitploit:~
Antes de ejecutar diferentes comandos de Netlas CLI Tools, guarde la clave API en la configuración:```bash
netlas savekey YOUR_API_KEY

También tenemos un repositorio de Github con un par de ejemplos de automatización de varias tareas usando bash script y Netlas CLI tools:

Netlas Scripts

Search vs Download vs Host Methods

La API de Netlas tiene muchos métodos, pero los más comúnmente usados son search y download. Son muy similares entre sí, pero aún tienen algunas diferencias.

El método search carga una página de resultados (20 elementos) a la vez y permite cargar un máximo de 200 páginas (20*200=4000 elementos). El método download descarga todos los resultados (pero requiere más recursos para ejecutarse).

También hay un método host que simplemente devuelve la información más básica sobre un dominio o IP particular (datatype (como otros métodos) no necesita especificarse):```bash netlas host "51.159.153.170"

root@kitploit:~
### Parámetros Adicionales de Solicitud

La API de Netlas le permite ajustar de manera flexible los datos devueltos por las solicitudes con parámetros adicionales. Por ejemplo:

* indices - id que corresponde a una fecha de indexación específica. Para averiguar el id de una fecha concreta, abra app.netlas.io, haga clic en el calendario a la derecha de la barra de entrada de la consulta de búsqueda, seleccione la fecha que le interese y observe cómo cambia el parámetro indices en la URL de la barra de direcciones del navegador.
* start - número de página de resultados (por defecto 0)
* fields - nombres de los campos que se incluirán en los resultados (todos los campos por defecto). Será útil para acelerar y optimizar el código con un gran número de solicitudes.

### Realizar Solicitudes con Python (sin Netlas Python Library)

Puede resultarle más fácil en algunos casos no usar la biblioteca Netlas Python, sino usar el paquete estándar request de Python, que es familiar para muchos desarrolladores:

Ingrese en la línea de comandos:```bash
python scripts/python_example.py

Código fuente de python_example.py:```python import requests

response = requests.get("https://app.netlas.io/api/domains/?q=ivanov.com&source_type=include&start=0&fields=*",{'X-API-Key': 'YOUR API KEY'})

print(response.json())

root@kitploit:~
Pero la Biblioteca Python de Netlas sigue siendo preferible, ya que está diseñada para manejar diferentes problemas con el procesamiento de consultas (errores, largas esperas, etc.).


### Ejemplos para otros lenguajes de programación

Si bien recomendamos usar nuestra Biblioteca Python para automatizar la búsqueda en Netlas, vale la pena señalar que la API de Netlas se puede integrar en la mayoría de las aplicaciones con una amplia variedad de pilas tecnológicas. Lo principal es que pueda realizar **solicitudes REST** y **analizar datos JSON**.

Aquí hay algunos ejemplos en diferentes lenguajes de programación populares.


#### NodeJS <!-- omit in toc -->

![Node JS Netlas](https://assets.kitploit.com/production/public/readmes/6659/b4dd5d1eb33fafddfe44c22062b6e7e9b4e1471123ef6410a9fc3a5a8bc34a78.png)

Ingrese en la línea de comandos:```bash
node scripts/node_example.js

Si no estás usando Gitpod, deberías tener NodeJS instalado en tu dispositivo.

Código fuente de nodejs_example.js:```javascript fetch('https://app.netlas.io/api/domains/?q=ivanov.com&source_type=include&start=0&fields=*', { headers: { "X-API-Key": "YOUR_API_KEY", }, }) .then((response) => response.text()) .then((body) => { var jsonArray = JSON.parse(body); console.log(jsonArray['items'][0]); });

root@kitploit:~
#### Ruby <!-- omit in toc -->

![Ruby Netlas](https://assets.kitploit.com/production/public/readmes/6659/7237511c7ee0f39e270569af8b0ae12974684ad3087b8ea373a2df2719a03cdf.png)

Ingrese en la línea de comandos:```bash
ruby scripts/ruby_example.rb

Si no estás usando Gitpod, deberías tener Ruby instalado en tu dispositivo.

Código fuente de ruby_example.rb:```ruby require 'net/http' require 'uri' require 'json'

uri = URI("https://app.netlas.io/api/domains/?q=ivanov.com&source_type=include&start=0&fields=*") req = Net::HTTP::Get.new(uri) req['X-API-Key'] = "YOUR_API_KEY"

res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') { |http| http.request(req) }

jsonArray = JSON.parse(res.body)

puts jsonArray['items'][0]['data']['domain']

root@kitploit:~
#### Bash <!-- omit in toc -->

![Bash Netlas](https://assets.kitploit.com/production/public/readmes/6659/c2f52fa6cb554433ae4b234636cd4b06702691d45b23a7d0e0ebc951ab3c6b06.png)

Ingrese en la línea de comandos:```bash
bash scripts/bash_example.sh

Código fuente de bash_example.sh:``` curl -X 'GET'
'https://app.netlas.io/api/domains/?q=ivanov.com&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: YOUR_API_KEY' | jq .items[0].data.last_updated

root@kitploit:~
### Utilidad JQ

Nótese que en el ejemplo anterior, se utilizó la utilidad JQ para extraer campos de datos JSON. 

A veces se le conoce como "como sed para datos JSON". Es una herramienta sorprendentemente útil para trabajar con cualquier dato JSON. Aquí hay algunos ejemplos de sintaxis.

Imprimir el primer elemento de un arreglo JSON:```
.items[0] 

Imprimir todos los elementos del JSON-array:``` .items[]

root@kitploit:~
Imprimir todos los subelementos 'data' del primer elemento de JSON-array:```
.['items'][0]['data'][]

Imprimir todos los sub-subelementos para cada elemento del array JSON.``` .items[].data.technical[]

root@kitploit:~
Puede leer más sobre JQ aquí (recomiendo prestar especial atención al filtrado de datos): [Documentación de la utilidad JQ](https://jqlang.github.io/jq/)


### Herramientas de IA para Escribir Código

![You.com](https://assets.kitploit.com/production/public/readmes/6659/6d2992d2f27d7aeb930c9b970363604d510c46b2cda53cc2f87d25bb0ab757e7.png)

Si encuentra algún problema al personalizar los ejemplos de Netlas Cookbook, le recomendamos buscar ayuda de herramientas de IA para mejorar y escribir código. Por ejemplo:

[ChatGPT](https://chatgpt.com)  
[Code Llama](https://huggingface.co/spaces/codellama/codellama-playground)  
[You.com](https://you.com/)  

Al trabajar con estos servicios, solo necesita describir con palabras la tarea que desea resolver con la ayuda del código.


### Comprobadores de Código
![Comprobación de código Python](https://assets.kitploit.com/production/public/readmes/6659/6622b278b508349c7921d1208ce2267fcc77090c17189613c87f690200a07119.png)

Cuando adapte los ejemplos de Netlas Cookbook a sus propósitos, puede que el código no se ejecute debido a algunos errores. Herramientas en línea especiales pueden ayudarle a encontrarlos y solucionarlos:  

[ExtendsClass Python Tester](https://extendsclass.com/python-tester.html)
[Snyk](https://snyk.io/code-checker/python/)

Si no desea copiar su código a servicios de terceros, puede verificar si tiene errores en su dispositivo usando Pylint (analizador de código estático):

[Paquete Pylint de Python](https://pypi.org/project/pylint/)



## Usando Netlas.io para OSINT (Inteligencia de Fuentes Abiertas)

![Diagrama de flujo de OSINT](https://assets.kitploit.com/production/public/readmes/6659/b433d1e7a92497c03bf05b19f663f7fa8643480533b961801bfc93ad6bad4927.png)

Netlas.io puede ayudarle a recopilar datos sobre un dominio o empresa, así como a encontrar menciones de una persona (o de cualquiera) en Internet.

También se puede usar para encontrar versiones antiguas de páginas web (como un análogo de Wayback Machine).

### Buscar Apodo o Correo Electrónico de una Persona en los Contactos WHOIS

La mayoría de las veces, los datos WHOIS solo contienen la información de contacto de la empresa que registra los dominios. Pero a veces puede haber contactos personales de personas de interés. Esta consulta le ayudará a encontrarlos.

*Este método puede requerir una suscripción de pago.* [Consulte los precios](https://netlas.io/pricing/)

**Ejemplo de consulta de búsqueda**

![Ejemplo de búsqueda de correo electrónico WHOIS](https://assets.kitploit.com/production/public/readmes/6659/43eb2a871fe128cecbee6cb6b4164a1876053d8e12699c72a53e36c229f266f7.png)```
whois.related_nets.contacts.emails:sweetwater

Probar en Netlas

Ejemplo de solicitud de API

Herramientas CLI de Netlas:```bash netlas search "whois.related_nets.contacts.emails:sweetwater*" -f json

root@kitploit:~
Curl:```bash
curl -X 'GET' \
  'https://app.netlas.io/api/responses/?q=whois.related_nets.contacts.emails%3Asweetwater*&fields=' \
  -H 'accept: application/json' \
  -H 'X-API-Key: aqkd8L4MR93Tkcaz2UXDXrRleV8Vlvbv' | jq .items[].data.uri

Ejemplo de código (Biblioteca Python de Netlas)

Búsqueda de correo electrónico Whois ejemplo Python

Ejecutar en la línea de comandos:```bash python scripts/osint/whois_email_search.py

root@kitploit:~
Código fuente de scripts/osint/whois_email_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `whois.related_nets.contacts.emails:sweetwater`
netlas_query = netlas_connection.query(query="whois.related_nets.contacts.emails:sweetwater*")


# iterate over data and print: URL, Country, Related nets data
for response in netlas_query['items']:
    print (response['data']['uri'])
    print (response['data']['geo']['country'])
    print (response['data']['whois']['related_nets'])

Buscar apodo o correo electrónico de una persona en el título y cuerpo de una página web

Netlas le permite buscar menciones de ciertas palabras en los encabezados y en el código HTML de las páginas web. Puede buscar palabras por coincidencia exacta, por coincidencia aproximada (consulte la sección de consultas difusas) y reemplazar caracteres de los que no esté seguro con asteriscos.

Ejemplo de consulta de búsqueda

Ejemplo de búsqueda en título/cuerpo``` http.title:sweetwater OR http.body:sweetwater

root@kitploit:~
[Pruébalo en Netlas](https://app.netlas.io/responses/?q=http.title%3Asweetwater%20OR%20http.body%3Asweetwater&page=1&indices=)

**Ejemplo de solicitud de API**

Netlas CLI Tools:```bash
netlas search "http.title:sweetwater OR http.body:sweetwater" -f json

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=whois.related_nets.contacts.emails%3Asweetwater*&fields='
-H 'accept: application/json'
-H 'X-API-Key: YOUR_API_KEY' | jq .items[].data.uri

root@kitploit:~
**Ejemplo de código (Netlas Python Library)**

![Whois email search example Python](https://assets.kitploit.com/production/public/readmes/6659/8678cf14e22a1a44cc2c44c846b86ec2ad24b1eadef130a4eade7696ff88b061.png)

Ejecutar en la línea de comandos:```bash
python scripts/osint/title_body_search.py

Código fuente de scripts/osint/title_body_search.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query http.title:sweetwater OR http.body:sweetwater

netlas_query = netlas_connection.query(query="http.title:sweetwater OR http.body:sweetwater*")

iterate over data and print: IP,URL,web page title

for response in netlas_query['items']: print (response['data']['ip']) print (response['data']['uri']) print (response['data']['http']['title'])

root@kitploit:~
### Buscar "Archivos de información jugosa" en subdominios del sitio web de la empresa

![Juicy info files search](https://assets.kitploit.com/production/public/readmes/6659/c14d7be4acd47fb0ede930eb0ecbb06f3f362179fd4bca46747f0ce7d0caeb7d.png)

Metagoofil ha sido una herramienta popular entre los practicantes de OSINT durante muchos años. Busca en Google archivos de documentos en el sitio web de una empresa (pdf, xlsx, docx, etc.) y analiza sus metadatos.

Y lo que no está indexado por Google se puede encontrar con Netlas, luego descargarlo a su computadora y analizarlo con la herramienta [MetaDetective](https://github.com/franckferman/MetaDetective).```
uri:*lidl.* AND http.body:pdf

Try in Netlas

Puedes reemplazar el filtro uri: con domain: y host: (recomiendo siempre comparar los resultados al usar estos tres filtros).

También puedes buscar una amplia variedad de extensiones de archivo, dependiendo de lo que quieras encontrar. Por ejemplo:``` http.body:xls http.body:xlsx http.body:doc http.body:docx http.body:ppt http.body:pptx http.body:mdb http.body:csv http.body:sql http.body:sqlite

root@kitploit:~
**Ejemplo de solicitud API**

Netlas CLI Tools:```bash
netlas search "uri:*lidl.* AND http.body:pdf"

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=uri%3A*lidl.*%20AND%20http.body%3Apdf&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: 'YOUR_API_KEY' | jq .items[].data.domain

root@kitploit:~
**Ejemplo de código (Biblioteca Python de Netlas)**

![Búsqueda de información jugosa](https://assets.kitploit.com/production/public/readmes/6659/faec884f54484c0cc6dd5ef76a79b9ca2e5ef372078289e8f3c3cf2cf4af9fac.png)

Ejecutar en la línea de comandos:```bash
python scripts/osint/juicyinfo_search.py

Código fuente de scripts/osint/juicyinfo_search.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query uri:*lidl.* AND http.body:pdf

netlas_query = netlas_connection.query(query='uri:lidl. AND http.body:pdf')

iterate over data and print: uri, body

for response in netlas_query['items']: print (response['data']['uri']) print (response['data']['http']['body'])

root@kitploit:~
Para automatizar los enlaces a documentos PDF desde el cuerpo de la página web, puedes usar el paquete Python [Re](https://docs.python.org/3/library/re.html).


### Búsqueda de menciones de números de teléfono

Al igual que con los apodos y correos electrónicos, también puedes buscar menciones de un número de teléfono en el código de las páginas web o en la información de contacto WHOIS.

Destacamos esta tarea como un ejemplo aparte, porque buscar un número de teléfono se complica por el hecho de que puede escribirse en diferentes formatos.

**Ejemplo de consulta de búsqueda**  

![Ejemplo de búsqueda de número de teléfono](https://assets.kitploit.com/production/public/readmes/6659/92872d57f9ac03e90323f35d9d8303364050f36aa748a26eadb8996d10ce66b9.png)```
http.body:1?234?567?89?99 OR http.body:12345678999 OR http.body:1234?5678?999

Try in Netlas

Al realizar una solicitud, debes tener en cuenta el formato de grabación del número de teléfono aceptado en el país al que pertenece el número de teléfono que te interesa.

Ejemplo de solicitud API

Netlas CLI Tools:```bash netlas search "http.body:1?234?567?89?99 OR http.body:12345678999 OR http.body:1234?5678?999" -f json

root@kitploit:~
No olvides que puedes buscar números de teléfono no solo en el cuerpo de la página, sino también en la información de contacto WHOIS. Esto se puede hacer usando el filtro **whois.related_nets.contacts.phones:** Curl:```bash
curl -X 'GET' \
  'https://app.netlas.io/api/responses/?q=http.body%3A1%3F234%3F567%3F89%3F99%20OR%20http.body%3A12345678999%20OR%20http.body%3A1234%3F5678%3F999&source_type=include&start=0&fields=*' \
  -H 'accept: application/json' \
  -H 'X-API-Key: YOUR_API_KEY' jq .items[].data.uri

Ejemplo de código (Biblioteca de Netlas para Python)

Phone number search example Python

Ejecutar en la línea de comandos:```bash python scripts/osint/phonenumber_search.py

root@kitploit:~
Código fuente de scripts/osint/phonenumber_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `http.body:1?234?567?89?99 OR http.body:12345678999 OR http.body:1234?5678?999`
netlas_query = netlas_connection.query(query="http.body:1?234?567?89?99 OR http.body:12345678999 OR http.body:1234?5678?999")


# iterate over data and print: ip, url
for response in netlas_query['items']:
    print (response['data']['ip'])
    print (response['data']['uri'])

Búsqueda de menciones de archivos (Buscando contenido que pueda estar infringiendo derechos de autor)

Imaginemos que eres un músico y quieres encontrar todos los sitios donde se publican tus pistas. Puedes hacerlo buscando páginas que mencionen tu nombre y tengan enlaces a archivos con la extensión .mp3.

Ejemplo de consulta de búsqueda

Title/body search example``` (http.title:alla OR http.body:alla) AND http.body:*.mp3

root@kitploit:~
[Probar en Netlas](https://nt.ls/HEhJj)

**Ejemplo de solicitud API**

Herramientas CLI de Netlas:```bash
netlas search "(http.title:alla OR http.body:alla) AND http.body:*.mp3" -f json

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=(http.title%3Aalla%20OR%20http.body%3Aalla)%20AND%20http.body%3A*.mp3&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: YOUR_API_KEY' | jq .items[].data.http.title

root@kitploit:~
**Ejemplo de código (biblioteca Python de Netlas)**

![File mentions search example Python](https://assets.kitploit.com/production/public/readmes/6659/919f820c21d9cda328524722b820783c3941447f3d447f9a72f5224d4cfd9ac1.png)

Ejecutar en la línea de comandos:```bash
python scripts/osint/file_mentions_search.py

Código fuente de scripts/osint/file_mentions_search.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query (http.title:alla OR http.body:alla) AND http.body:*.mp3

netlas_query = netlas_connection.query(query="(http.title:alla OR http.body:alla) AND http.body:*.mp3")

iterate over data and print: IP, URL,web page title

for response in netlas_query['items']: print (response['data']['ip']) print (response['data']['uri']) print (response['data']['http']['title'])

root@kitploit:~
### Recopilación de información WHOIS de dominio

WHOIS es una base de datos pública mundial que almacena información sobre todos los dominios registrados en el mundo. 

**Ejemplo de consulta de búsqueda**  

![Title/body search example](https://assets.kitploit.com/production/public/readmes/6659/88c9654440e88b387d2422ac397334793daa8600d434d99d457b908e8abe154b.png)

Utilice [Búsqueda de dominio WHOIS](https://app.netlas.io/whois_domains/)```
github.com

Ejemplo de solicitud de API

Netlas CLI Tools:```bash netlas host github.com -f json

root@kitploit:~
Curl:```bash
curl -X 'GET' \
  'https://app.netlas.io/api/whois_domains/?q=github.com&source_type=include&start=0&fields=*' \
  -H 'accept: application/json' \
  -H 'X-API-Key: YOUR_API_KEY' |  jq .items[].data.technical.street

Ejemplo de código (biblioteca Python de Netlas)

Ejemplo WHOIS Python

Ejecutar en la línea de comandos:```bash python scripts/osint/whois_search.py

root@kitploit:~
Código fuente de scripts/osint/whois_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from whois for google.com domain
netlas_query = netlas_connection.query(query="google.com",datatype="whois-domain")


# iterate over data and print: owner name
for response in netlas_query['items']:
    print (response['data']['technical']['name'])  

Búsqueda de ubicación en la etiqueta <address>

La etiqueta <address> se encuentra dentro de la etiqueta <head> de una página web y puede contener direcciones físicas. Con una búsqueda usando esta etiqueta, puedes encontrar sitios asociados con una calle en particular, y a veces incluso un edificio específico.

Ejemplo de consulta de búsqueda

Búsqueda de meta autor``` http.contacts.address:kirby

root@kitploit:~
[Probar en Netlas](https://app.netlas.io/responses/?q=http.contacts.address%3Akirby&page=1&indices=)

También puedes usar http.contacts.email: para búsqueda por correo electrónico.

**Ejemplo de solicitud API**

Herramientas CLI de Netlas:```bash
netlas search "http.contacts.address:kirby" -f json

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=http.contacts.address%3Akirby&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: 'YOUR_API_KEY' | jq .items[].data.http.contacts

root@kitploit:~
**Ejemplo de código (Netlas Python Library)**

![Búsqueda de direcciones de contactos Python](https://assets.kitploit.com/production/public/readmes/6659/aa659130f38a0287850a28fc0e37e93bd89939346049e855652cebb8ed7fcba3.png)

Ejecutar en la línea de comandos:```bash
python scripts/osint/contacts_search.py

Código fuente de scripts/osint/contacts_search.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query http.contacts.address:kirby

netlas_query = netlas_connection.query(query="http.contacts.address:kirby")

iterate over data and print: URL, Contacts

for response in netlas_query['items']: print (response['data']['uri']) print (response['data']['http']['contacts'])

root@kitploit:~
###  Buscar Nombre del Autor en Metaetiquetas

Las etiquetas `<meta>` se ubican dentro de la etiqueta `<head>` de una página web y contienen las palabras clave más importantes, la descripción, información miscelánea del servicio y el nombre del autor.

Buscar apodo y nombre/apellido mediante metaetiquetas (http.meta) permite encontrar sitios asociados con una persona en particular más rápido que buscar en todo el código HTML (http.body).

**Ejemplo de consulta de búsqueda**  

![Búsqueda de autor por meta](https://assets.kitploit.com/production/public/readmes/6659/059e767c5fa7d63af4548d77c1ac1b01c4f3a79cef1c1d91320f86f6e11a1ba9.png)```
http.meta:nazar

Probar en Netlas

Ejemplo de solicitud API

Herramientas CLI de Netlas:```bash netlas search "http.meta:nazar" -f json

root@kitploit:~
Curl:```bash
curl -X 'GET' \
  'https://app.netlas.io/api/responses/?q=http.meta%3Anazar&source_type=include&start=0&fields=*' \
  -H 'accept: application/json' \
  -H 'X-API-Key: YOUR_API_KEY' | jq .items[].data.http.meta

Ejemplo de código (Biblioteca Python de Netlas)

Author meta search Python

Ejecutar en línea de comandos:```bash python scripts/osint/author_meta_search.py

root@kitploit:~
Código fuente de scripts/osint/author_meta_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `http.meta:nazar`
netlas_query = netlas_connection.query(query="http.meta:nazar")


# iterate over data and print: ip, url
for response in netlas_query['items']:
    print (response['data']['uri'])
    print (response['data']['http']['title'])
    print (response['data']['http']['meta'])

¿Qué otras cosas interesantes se pueden encontrar en las metaetiquetas de un documento HTML?

Además del nombre del autor, las metaetiquetas pueden contener una variedad de información: codificación, idioma, permiso para indexar la página por parte de los robots de los motores de búsqueda, texto para tarjetas de enlace en redes sociales, metadatos de OpenGraph y mucho más. Aquí hay algunos ejemplos adicionales de metaetiquetas que pueden contener información útil para investigaciones:

  • <meta name="description"> - descripción del contenido de la página web.
  • <meta name="keywords"> - palabras clave que describen el contenido de la página web.
  • <meta name="generator"> - nombre de la herramienta que se utilizó para generar el contenido de la página (útil para buscar CMS y plataformas de alojamiento)
  • <meta name="copyright"> - el nombre de la persona o empresa que posee los derechos de autor del contenido de la página web.

Búsqueda por texto de banners de servidores FTP

Otro paso importante para encontrar información sobre una persona o empresa es buscar su mención en el texto de los banners de los servidores FTP. Es posible que la dirección IP de los servidores encontrados sea la clave para encontrar otros sitios relacionados con la persona o empresa que le interesa. Y en caso de mucha suerte, encontrar algo interesante en los archivos publicados allí (si el servidor FTP está abierto).

Ejemplo de consulta de búsqueda

Búsqueda de CVE por nombre de etiqueta``` ftp.banner:"Collado"

root@kitploit:~
Si necesita buscar servidores FTP por algún otro parámetro (como ciudad o rango de direcciones IP), entonces use el filtro prot7:ftp.

[Probar en Netlas](https://app.netlas.io/responses/?q=ftp.banner%3A%22Collado%22%20&page=1&indices=)

**Ejemplo de solicitud de API**

Netlas CLI Tools:```bash
netlas search 'ftp.banner:"Collado"' -f json

Tenga en cuenta que cuando se usan comillas dobles en las consultas, la consulta en sí se escribe entre comillas simples.

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=ftp.banner%3A%22Collado%22&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: YOUR_API_KEY' | jq .items[].data.uri

root@kitploit:~
**Ejemplo de código (Netlas Python Library)**

![Búsqueda de hash de favicon en Python](https://assets.kitploit.com/production/public/readmes/6659/099cc2e0a7ca8c242476fe9e27e8c9441e0c95ce82ae143a7f66289a13c21588.png)

Ejecutar en la línea de comandos:```bash
python scripts/osint/ftp_banner_search.py

Código fuente de scripts/osint/ftp_banner_search.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query ftp.banner:"Collado"

netlas_query = netlas_connection.query(query='ftp.banner:"Collado"')

iterate over data and print: IP, URL, ftp banner text

for response in netlas_query['items']: print (response['data']['ip']) print (response['data']['uri']) print (response['data']['ftp']['banner'])

root@kitploit:~
### Buscar información de contacto en certificados SSL

![Certificates search](https://assets.kitploit.com/production/public/readmes/6659/5f3d32db37a70b5a8f9f08efe11c978b950e00c2841d44f63f4e709c711e909a.png)

Un certificado SSL es un certificado digital que autentica un sitio web y permite el uso de una conexión cifrada. Puede contener información sobre su propietario: nombre de la persona de contacto, nombre de la organización, país y, a veces, incluso la dirección y el código postal. Puede buscar esta información utilizando los siguientes filtros (y muchos otros):

- `certificate.issuer.email_address`
- `certificate.issuer.given_name`
- `certificate.issuer.organization`
- `certificate.issuer.postal_code`
- `certificate.issuer.street_address`
- `certificate.issuer.surname`

Intentemos encontrar direcciones IP que tengan una palabra determinada en la dirección de la calle en su certificado:```
certificate.issuer.street_address:*mcgill*

Probar en Netlas

Ejemplo de solicitud API

Netlas CLI Tools:```bash netlas search "certificate.issuer.street_address:mcgill" -f json

root@kitploit:~
Curl:```bash
curl -X 'GET' \
  'https://app.netlas.io/api/responses/?q=certificate.issuer.street_address%3A*mcgill*&source_type=include&start=0&fields=*' \
  -H 'accept: application/json' \
  -H 'X-API-Key: YOUR_API_KEY' jq .items[].data.uri

Ejemplo de código (Biblioteca Python de Netlas)

Búsqueda de certificados Python

Ejecutar en la línea de comandos:```bash python scripts/osint/certificates_search.py

root@kitploit:~
Source code of scripts/osint/certificates_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `certificate.issuer.street_address:*mcgill*`
netlas_query = netlas_connection.query(query="certificate.issuer.street_address:*mcgill*")


print (type(netlas_query))

# iterate over data and print: ip, url, cetificate issuer 
for response in netlas_query['items']:
    print (response['data']['uri'])
    print (response['data']['certificate']['issuer'])  

Usando Netlas como alternativa a WayBack Machine

Archive.org ha sido utilizado por especialistas en OSINT para buscar versiones antiguas de sitios web y páginas de perfiles de redes sociales con el fin de encontrar información de contacto y otros datos que ya han sido eliminados.

Pero, desafortunadamente, archive.org no guarda copias de todos los sitios y no lo hace con mucha frecuencia (para algunos sitios solo un par de veces al año o menos).

¡Pero Netlas también está guardando versiones antiguas de sitios desde 2021!

Los siguientes filtros se utilizan con mayor frecuencia para buscar sitios:``` http.title:"github.com"

root@kitploit:~

domain:github.com

root@kitploit:~

host:github.com

root@kitploit:~
![Seleccionar escaneo](https://assets.kitploit.com/production/public/readmes/6659/6fb8d1ed55265153faebb6ed93a9a5a184d8a6b54f0cf9fa12b92a304939f062.png)

Si haces clic en el icono más externo a la derecha junto al campo para introducir consultas de búsqueda, verás un menú para seleccionar una fecha de escaneo. Puedes usarlo para filtrar los códigos html de los sitios guardados en una fecha específica.

![Copiar cuerpo de respuesta](https://assets.kitploit.com/production/public/readmes/6659/b59544af96ce2c341761eb5cd6f4b36ed2e271c14957a6ecb373a2b972fbeff6.png)

Para ver cómo se ve el sitio, copia el contenido del campo "body" (pestaña de respuesta) en cualquier editor de texto y elimina los caracteres \t\r\n del código html.

![Visor HTML](https://assets.kitploit.com/production/public/readmes/6659/f1b8a6983795f5b608b8d2ec37f5069c588749655a361d70b250ca8c0df24967.png)

Después de eso, copia el código en uno de los promotores html en línea, como [Code beautify](https://codebeautify.org/htmlviewer). O simplemente guarda el archivo en formato html y luego ábrelo en el navegador.

### 9 Maneras de Buscar Sitios Web Relacionados

![Buscar sitios web relacionados](https://assets.kitploit.com/production/public/readmes/6659/354bf2e8695fd9255ce513dba2685cc7c6595e8cb06d1c6f9e4d48bd3dcccb72.png)

Al recopilar información sobre una persona o empresa, puede ser importante encontrar tantos sitios como sea posible que puedan estar relacionados de alguna manera. Hay al menos 5 formas de hacer esto con Netlas.

1. ID para varios servicios (analítica, sistemas publicitarios, aplicaciones para integración con redes sociales y sistemas de publicación). Su superposición puede indicar que una persona o equipo estuvo involucrado. Algunos ejemplos:

Google Analytics:```
http.tracker.google_analytics:"G-X82FSVSMTV"

Google Tag Manager:``` http.tracker.google_analytics:"GTM-N6462KFQ"

root@kitploit:~
AddThis:```
http.body:"AT-ra-500bcd681b192302"

Facebook Pixel:``` http.tracker.facebook_pixel:317853189093681

root@kitploit:~
Yandex Metrika```
http.tracker.yandex_metrica:89723437

Amazon Publisher Servies:``` http.body:APS-XXXX

root@kitploit:~
Sí, todo se encuentra en el código de algunos sitios.
 
Y una gran cantidad de otros identificadores que a menudo se encuentran en la parte superior del código HTML (pero a veces en todo el código).

[Try in Netlas](https://nt.ls/BCrw9)


2. ID de programas de afiliados (también use http.body para buscarlos). Puede encontrarlos en los enlaces de afiliados que una persona publica en otros sitios o en redes sociales. Estos pueden ser los siguientes parámetros de URL (y similares):```
aff_fcid=
user_id=
partner_id=
ref_id=
  1. Buscar por nombre de organización en la búsqueda de Whois de dominio de Netlas

Buscar organización en WHOIS``` "GitHub, Inc."

root@kitploit:~
[Try in Netlas](https://app.netlas.io/whois_domains/?q=%22GitHub%2C%20Inc.%22&page=1&indices=)

4. Búsqueda por servidores de correo en la búsqueda de DNS Netlas

![Buscar servidores de correo en DNS](https://assets.kitploit.com/production/public/readmes/6659/28cbe86f74bbf0959803083816d8da4819e41aed6b8cd56a58fadc479e1fab34.png)```
mx:*.parklogic.com

Try in Netlas

  1. Buscar por servidores de nombres en la búsqueda DNS de Netlas

Buscar servidores de nombres en DNS``` ns:ns?.parklogic.com

root@kitploit:~
[Probar en Netlas](https://app.netlas.io/domains/?q=mx%3A*.parklogic.com&page=1&indices=)

6. Búsqueda de menciones de archivos (principalmente logotipos y avatares de usuarios) [->](https://github.com/netlas-io/netlas-cookbook#search-file-mentions-looking-for-content-that-may-be-infringing-on-copyrights)

7. Búsqueda de subdominios [->](https://github.com/netlas-io/netlas-cookbook#search-subdomains)

8. Búsqueda de contactos Whois (en la búsqueda de respuestas de Netlas) [->](https://github.com/netlas-io/netlas-cookbook#search-persons-nickname-or-email-in-whois-contacts)

9. Búsqueda de favicon [->](https://github.com/netlas-io/netlas-cookbook#favicon-search)

## Scraping (Extraer datos del cuerpo de la página web)

La API de Netlas es una excelente herramienta para recopilar contactos y otros datos de sitios web. Primero, te permite hacerlo rápidamente. Segundo, no requiere el uso de proxy. Tercero, te permite recopilar datos de sitios que actualmente no están disponibles.

Sin embargo, tiene algunas desventajas: Netlas escanea solo las páginas principales de los sitios y algunos sitios poco comunes no están incluidos en su base de datos debido a la protección. Pero aún así puede ser de gran utilidad.

Hay tres enfoques principales para el scraping: recopilar información a partir de etiquetas HTML y selectores CSS, extraer datos usando expresiones regulares y scraping con IA. Veamos más de cerca los dos primeros.

### Paquete Beatifulsoup

[Beatifulsoup](https://pypi.org/project/beautifulsoup4/) es uno de los paquetes de Python más populares del mundo para analizar código HTML y archivos XML. Probemos a usarlo para extraer títulos de página (de etiquetas \<h1>, NO de etiquetas \<title>).

Primero, instala el paquete:```bash
pip install beautifulsoup4

Y Ejecuta scripts/osint/scraping_beatifulsoup.py:```bash python scripts/osint/scraping_beatifulsoup.py

root@kitploit:~
![Beatiful soup scraping](https://assets.kitploit.com/production/public/readmes/6659/2a56f2848aeac7180d0257067b18148c4ba13cf9dfdc3916a39a0247ee07a584.png)

Código fuente de scripts/osint/scraping_beatifulsoup.py:```python
import netlas
from bs4 import BeautifulSoup

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `http.body:shop`
netlas_query = netlas_connection.query(query="http.body:shop")

# iterate over data and print: URL, h1 tags from body
for response in netlas_query['items']:
    print (response['data']['uri'])
    soup = BeautifulSoup(response['data']['http']['body'], "html.parser")
    try:
        print(soup.find("h1").get_text())
    except Exception:
        print("no h1 tags")
pass

Puedes extraer datos de otros elementos de páginas web de manera similar:``` soup.find("h3").get_text() soup.find("id='loginform'").get_text() soup.find("class='forms'").get_text() soup.find("href='https://example.com'").get_text()

root@kitploit:~
Si deseas encontrar todos los elementos de un determinado tipo, usa el método find_all().

### Paquete Re

[Re](https://docs.python.org/3/library/re.html) es un paquete de Python preinstalado para buscar y recuperar datos usando expresiones regulares. Es útil para extraer información de contacto de páginas web y muchas otras tareas. Veamos un ejemplo de cómo funciona.

Ejecuta scripts/osint/scraping_re.py:```bash
python scripts/osint/scraping_re.py

Re scraping

Código fuente de scripts/osint/scraping_re.py:```python import netlas import re

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query http.body:shop

netlas_query = netlas_connection.query(query="http.body:shop")

iterate over data and print: URL, emails from body

for response in netlas_query['items']: print (response['data']['uri']) emails = re.findall("[a-zA-Z0-9-.]+@[a-zA-Z0-9-.]+", response['data']['http']['body']) try: print(emails) except Exception: print("no emails") pass

root@kitploit:~
De manera similar, puedes extraer enlaces, números de teléfono, direcciones de billeteras de criptomonedas y más. Los patrones listos se pueden encontrar en bibliotecas de expresiones regulares:

[Regex Lib](https://regexlib.com/)
[UI Bakery Regex Library](https://uibakery.io/regex-library)
[Regex 101](https://regex101.com/)

### Otros Paquetes de Python para Scraping

Los paquetes Beaitiful soup y Re son solo una de las muchas herramientas para extraer datos de páginas web usando Python. Aquí hay algunos ejemplos más de estos paquetes:

* [Scrapy](https://pypi.org/project/Scrapy/): Es principalmente un rastreador (una herramienta para recorrer páginas web usando enlaces encontrados en otras páginas) y, además, tiene amplias capacidades para extraer datos de páginas web.
* [Selenium](https://pypi.org/project/selenium/): Una herramienta para automatizar tu experiencia en el navegador. Te permite extraer datos de contenido que es generado por JavaScript.
* [Lxml](https://pypi.org/project/lxml/): Herramienta para extraer y validar archivos XML.
* [PDFtoText](https://pypi.org/project/pdftotext/) - herramienta para extraer contenido de texto de archivos PDF.
* [pyChatGPT](https://pypi.org/project/pyChatGPT/) - paquete no oficial para interacción con CHATGP (no requiere clave API de OpenAI), que permite analizar información de texto con IA.

## Usando Netlas.io para Investigaciones de Criptomonedas

Netlas brinda una gran oportunidad para investigadores especializados en delitos con criptomonedas. En primer lugar, se puede usar para buscar referencias a direcciones de billeteras y números de transacciones. En segundo lugar, se puede usar para buscar granjas de minería vulnerables, nodos y otros servidores asociados con la infraestructura cripto.

### Buscar Granjas de Minería

![Search mining farms](https://assets.kitploit.com/production/public/readmes/6659/77f381d83fa1d1d482941093c638ccc1620adb14365831ef7d74efa51913b2ec.png)

Las granjas de minería Antminer, que fueron lanzadas por primera vez por Bitmain en 2013, son una de las líneas de modelos de granjas de minería más populares del mundo. Puedes encontrarlas por la presencia de la palabra "antMiner" en el encabezado www_authenticate.```
http.headers.www_authenticate:antMiner

Probar en Netlas

También puedes buscar otros tipos de granjas de minería. Por ejemplo:``` http.headers.www_authenticate:XMR-Stak-Miner

root@kitploit:~
Experimenta combinando diferentes filtros, las palabras 'miner/mining' y nombres de criptomonedas.

**Ejemplo de solicitud API**

Netlas CLI Tools:```bash
netlas search "http.headers.www_authenticate:antMiner"

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=http.headers.www_authenticate%3AantMiner&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: 'YOUR_API_KEY' | jq .items[].data.uri

root@kitploit:~
**Ejemplo de código (Netlas Python Library)**

![Búsqueda de granjas de minería Python](https://assets.kitploit.com/production/public/readmes/6659/9b033acf5bc227191a51e0b969716bdda2540fe8a9f17373248f1494e1812164.png)

Ejecutar en la línea de comandos:```bash
python scripts/crypto/mining_farms_search.py

Código fuente de scripts/crypto/mining_farms_search.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query http.headers.www_authenticate:antMiner

netlas_query = netlas_connection.query(query='http.headers.www_authenticate:antMiner')

iterate over data and print: uri, http headers

for response in netlas_query['items']: print (response['data']['uri']) print (response['data']['http']['headers'])

root@kitploit:~
### Buscar sitios web infectados con criptomineros

![Buscar sitio web infectado con mineros](https://assets.kitploit.com/production/public/readmes/6659/0163afad4013a8a92217f48e4bb628666a6a61822a0a14f6e6cd7ab0c29138f9.png)

Coinhive, un servicio que permite a los sitios web (en su mayoría hackeados) usar los ordenadores de sus visitantes para minar criptomonedas, cerró en 2019. Pero sin embargo, los enlaces a él siguen incrustados en muchos sitios de todo el mundo. Intentemos encontrarlos:```
http.body:coinhive.min.js domain:*

Tenga en cuenta que usamos el filtro domain:* para encontrar sitios específicamente, no todos los dispositivos.

De manera similar, puede buscar sitios infectados con otros criptomineros (así como otro código malicioso que se ejecuta del lado del usuario).

Ejemplo de solicitud de API

Netlas CLI Tools:```bash netlas search "http.body:coinhive.min.js domain:*"

root@kitploit:~
Curl:```bash
curl -X 'GET' \
   'https://app.netlas.io/api/responses/?q=http.body%3Acoinhive.min.js%20domain%3A*&source_type=include&start=0&fields=*' \
   -H 'accept: application/json' \
   -H 'X-API-Key: 'YOUR_API_KEY' | jq .items[].data.uri

Code example (Netlas Python Library)

Búsqueda de granjas de minería Python

Ejecutar en la línea de comandos:```bash python scripts/crypto/search_sites_injected_with_miners.py

root@kitploit:~
Código fuente:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `http.body:coinhive.min.js domain:*`
netlas_query = netlas_connection.query(query='http.body:coinhive.min.js domain:*')


# iterate over data and print: uri
for response in netlas_query['items']: 
    print (response['data']['uri'])

Buscar nodos de Bitcoin vulnerables

Buscar nodos de bitcoin

Los nodos de Bitcoin utilizan el puerto 8333 para la conexión TCP. Por lo tanto, es fácil encontrarlos usando el filtro de búsqueda "port:".``` port:8333 cve:*

root@kitploit:~
Tenga en cuenta que usamos el filtro "cve:*" para buscar servidores con vulnerabilidades.

**Ejemplo de solicitud API**

Herramientas CLI de Netlas:```bash
netlas search "port:8333 cve:*"

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=port%3A8333%20cve%3A*&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: 'YOUR_API_KEY' | jq .items[].data.uri

root@kitploit:~
**Ejemplo de código (Netlas Python Library)**

![Search bitcoin nodes Python](https://assets.kitploit.com/production/public/readmes/6659/057eebb8a7790208aeb3cea45714a5699c9c31abd83d1eb703ceee4f578986f8.png)

Ejecutar en la línea de comandos:```bash
python scripts/crypto/search_bitcoin_nodes.py

Código fuente de scripts/crypto/search_bitcoin_nodes.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query port:8333 cve:*

netlas_query = netlas_connection.query(query='port:8333 cve:*')

iterate over data and print: uri, CVE name and description

for response in netlas_query['items']: print (response['data']['uri']) print (response['data']['cve'][0]['name']) print (response['data']['cve'][0]['description'])

root@kitploit:~
## Usando Neltas para Pentest

Netlas.io te permite buscar sitios con muchos tipos diferentes de vulnerabilidades. Esto se puede hacer por número de vulnerabilidad (CVE-...), el nombre del software instalado en el servidor, ciertas palabras en los encabezados de las páginas y otros parámetros.

Puedes rastrear los CVEs (Common Vulnerabilities and Exposures) más recientemente publicados en estos sitios:

* [CVE Details](https://www.cvedetails.com/)
* [VulDB](https://vuldb.com/)
* [OpenCVE](https://www.opencve.io/)

También publicamos regularmente las consultas más relevantes para buscar dispositivos y software vulnerables en nuestros feeds de [Twitter](https://twitter.com/Netlas_io), [Telegram](https://t.me/netlas) y [Discord](https://nt.ls/discord), así como en el repositorio de Github [Netlas Dorks](https://github.com/netlas-io/netlas-dorks).

En esta sección, cubriremos simplemente los principios generales de búsqueda de sitios y servidores con vulnerabilidades.

### Búsqueda de Subdominios

Usando asteriscos en las consultas de búsqueda, puedes encontrar todos los subdominios de diferentes niveles (cuyo nombre termina con el nombre de un dominio de primer nivel (.com) o de segundo nivel (google.com) en particular.

**Ejemplo de consulta de búsqueda**  

![Ejemplo de búsqueda de subdominios](https://assets.kitploit.com/production/public/readmes/6659/2ec8112759c93d396d8bf622ad7988833d4262aa8add2a2da46fdfe01f5aa717.png)```
domain:*.github.com OR host:*.github.com

Pruébalo en Netlas

Ejemplo de solicitud de API

Herramientas CLI de Netlas:```bash netlas search "domain:.github.com OR host:.github.com" -f json

root@kitploit:~
Curl:```bash
curl -X 'GET' \
  'https://app.netlas.io/api/responses/?q=domain%3A*.github.com%20OR%20host%3A*.github.com&source_type=include&start=0&fields=*' \
  -H 'accept: application/json' \
  -H 'X-API-Key: YOUR_API_KEY' | jq .items[].data.uri

Ejemplo de código (Netlas Python Library)

Ejemplo de búsqueda de subdominio Python

Ejecutar en línea de comandos:```bash python scripts/pentest/subdomain_search.py

root@kitploit:~
Código fuente de scripts/pentest/subdomain_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `domain:*.github.com OR host:*.github.com`
netlas_query = netlas_connection.query(query="domain:*.github.com OR host:*.github.com")


# iterate over data and print: ip, url
for response in netlas_query['items']:
    print (response['data']['ip'])
    print (response['data']['uri'])

Buscar sitios con vulnerabilidades específicas

Ejemplo de consulta de búsqueda

CVE search``` cve.name:CVE-2022-22965

root@kitploit:~
[Probar en Netlas](https://app.netlas.io/responses/?q=cve.name%3ACVE-2022-22965&page=1&indices=)

**Ejemplo de solicitud API**

Netlas CLI Tools:```bash
netlas search "cve.name:CVE-2022-22965" -f json

CVE-2022-22965 - La aplicación Spring MVC o Spring WebFlux que se ejecuta en JDK 9+ puede ser vulnerable a ejecución remota de código (RCE) mediante enlace de datos. Detalles

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=http.body%3A1%3F234%3F567%3F89%3F99%20OR%20http.body%3A12345678999%20OR%20http.body%3A1234%3F5678%3F999&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: YOUR_API_KEY' jq .items[].data.uri

root@kitploit:~
**Ejemplo de código (Netlas Python Library)**

![Ejemplo de búsqueda de CVE en Python](https://assets.kitploit.com/production/public/readmes/6659/56e2afbc833f063d53d416a1aa8145a8af62e8183d4367dfa365285078789eba.png)

Ejecutar en la línea de comandos:```bash
python scripts/pentest/cve_search.py

Código fuente de scripts/pentest/cve_search.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query cve.name:CVE-2022-22965

netlas_query = netlas_connection.query(query="cve.name:CVE-2022-22965")

iterate over data and print: ip, url

for response in netlas_query['items']: print (response['data']['ip']) print (response['data']['uri'])

root@kitploit:~
### Buscar sitios con vulnerabilidades que contengan una palabra específica en sus descripciones

Si no necesitas investigar servidores con un tipo específico de vulnerabilidad, sino que solo deseas ver servidores vulnerables en un grupo concreto (como Oracle WebLogic Server o sitios WordPress), puedes buscarlos usando palabras clave y el filtro `cve.description:`.

Para filtrar sitios que tienen exploits publicados para vulnerabilidades, usa `cve.has_exploit:true`.

**Ejemplo de consulta de búsqueda**  

![CVE description search](https://assets.kitploit.com/production/public/readmes/6659/03f621bed9ea16357222f19930d309b2d8d576761726cfa1a43f3f06d0f68353.png)```
cve.description:weblogic AND cve.has_exploit:true

Probar en Netlas

Ejemplo de solicitud API

Netlas CLI Tools:```bash netlas search "cve.description:weblogic AND cve.has_exploit:true" -f json

root@kitploit:~
Curl:```bash
curl -X 'GET' \
  'https://app.netlas.io/api/responses/?q=cve.description%3Aweblogic%20AND%20cve.has_exploit%3Atrue&source_type=include&start=0&fields=*' \
  -H 'accept: application/json' \
  -H 'X-API-Key: YOUR_API_KEY | jq .items[].data.uri

Ejemplo de código (Biblioteca de Netlas Python)

Búsqueda de descripción de CVE en Python

Ejecutar en línea de comandos:```bash python scripts/pentest/cve_description_search.py

root@kitploit:~
Código fuente de scripts/pentest/cve_description_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `cve.description:weblogic AND cve.has_exploit:true`
netlas_query = netlas_connection.query(query="cve.description:weblogic AND cve.has_exploit:true")

# iterate over data and print:  url, first CVE name first CVE description
for response in netlas_query['items']:
    print (response['data']['uri'])
    print (response['data']['cve'][0]['name'])
    print (response['data']['cve'][0]['description'])

Búsqueda por encabezado HTTP del servidor

Este método le permite encontrar dispositivos fabricados por una empresa específica.

Ejemplo de consulta de búsqueda

Search by server software``` http.headers.server:"yawcam"

root@kitploit:~
Buscar cámaras web YawCam.

[Probar en Netlas](https://app.netlas.io/responses/?q=http.headers.server%3A%22yawcam%22&page=1&indices=)

**Ejemplo de solicitud de API**

Herramientas CLI de Netlas:```bash
netlas search 'http.headers.server:"yawcam"' -f json

Tenga en cuenta que cuando se usan comillas dobles en las consultas, la consulta en sí se escribe entre comillas simples.

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=http.headers.server%3A%22yawcam%22&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: YOUR_API_KEY' | jq .items[].data.uri

root@kitploit:~
**Ejemplo de código (Netlas Python Library)**

![Búsqueda de servidor de cabeceras HTTP en Python](https://assets.kitploit.com/production/public/readmes/6659/87261dd31bfd191d1eae9fe1b9f76537ae2ebfde6c44ed40dc7b67c3fa215249.png)

Ejecutar en la línea de comandos:```bash
python scripts/pentest/server_name_search.py

Código fuente de scripts/pentest/server_name_search.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query http.headers.server:"yawcam"

netlas_query = netlas_connection.query(query='http.headers.server:"yawcam"')

iterate over data and print: IP, URL, server name

for response in netlas_query['items']: print (response['data']['ip']) print (response['data']['http']['headers']['server'])

root@kitploit:~
#### Inicios de sesión y contraseñas predeterminados <!-- omit in toc -->

Una aplicación práctica de buscar por nombre de software en los encabezados del servidor es buscar dispositivos de un proveedor específico. Esto puede ser necesario tanto al buscar dispositivos con vulnerabilidades específicas como para dispositivos con inicios de sesión y contraseñas estándar.

![Contraseñas predeterminadas](https://assets.kitploit.com/production/public/readmes/6659/1aad3e67d42397a0dd3ecf3e29e16fbc964401c962ab7482ba353578112ebe8c.png)

Los inicios de sesión y contraseñas estándar para diferentes modelos de dispositivos se pueden encontrar en listas especiales. Por ejemplo:

* [Lista de contraseñas de inicio de sesión de router predeterminadas para los mejores modelos de router (2023)](https://www.softwaretestinghelp.com/default-router-username-and-password-list/)
* [Nombre de usuario – Contraseña – Dirección IP predeterminados para cámaras de seguridad](https://www.a1securitycameras.com/blog/default-username-passwords-ip-addresses-for-surveillance-cameras/)
* [Las contraseñas predeterminadas de casi todas las cámaras IP](https://www.hackers-arise.com/post/the-default-passwords-of-nearly-every-ip-camera)
* [Lista de contraseñas predeterminadas de Datarecovery](https://datarecovery.com/rd/default-passwords/)

Recuerde que usar inicios de sesión y contraseñas estándar para acceder a los sistemas de otras personas viola las reglas éticas y puede ser ilegal en su país.

### Búsqueda de servidores vulnerables por hash de favicon

Una forma de encontrar servidores web expuestos a una vulnerabilidad particular es buscar el favicon ico de un software de servidor web específico.

**Ejemplo de consulta de búsqueda**

![Buscar CVE por hash de favicon](https://assets.kitploit.com/production/public/readmes/6659/b0a93463790400a640c81c171f5a361de66eb6e6674a8cd993128c08c8199ae9.png)```
http.favicon.hash_sha256:ebaaed8ab7c21856f888117edaf342f6bc10335106ed907f95787b69878d9d9e

Esta consulta busca el favicon de SecurePoint (CVE-2023-22620).

Try in Netlas

Ejemplo de solicitud API

Netlas CLI Tools:```bash netlas search "http.favicon.hash_sha256:ebaaed8ab7c21856f888117edaf342f6bc10335106ed907f95787b69878d9d9e" -f json

root@kitploit:~
Curl:```bash
curl -X 'GET' \
   'https://app.netlas.io/api/responses/?q=http.favicon.hash_sha256%3Aebaaed8ab7c21856f888117edaf342f6bc10335106ed907f95787b69878d9d9e&source_type=include&start=0&fields=*' \
  -H 'accept: application/json' \
  -H 'X-API-Key: YOUR_API_KEY' | jq .items[].data.uri

Ejemplo de código (Biblioteca Python de Netlas)

Búsqueda de hash de favicon en Python

Ejecutar en línea de comandos:```bash python scripts/pentest/favicon_hash_search.py

root@kitploit:~
Código fuente de scripts/pentest/favicon_hash_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `http.favicon.hash_sha256:ebaaed8ab7c21856f888117edaf342f6bc10335106ed907f95787b69878d9d9e`
netlas_query = netlas_connection.query(query="http.favicon.hash_sha256:ebaaed8ab7c21856f888117edaf342f6bc10335106ed907f95787b69878d9d9e")


# iterate over data and print: IP,URL,web page title
for response in netlas_query['items']:
    print (response['data']['ip'])
    print (response['data']['uri'])
    print (response['data']['http']['title'])

Búsqueda de servidores vulnerables por nombre de etiqueta

Para simplificar la búsqueda entre servidores que ejecutan diferentes software, Netlas etiqueta automáticamente los resultados de búsqueda con etiquetas específicas.

Ejemplos de etiquetas:

  • Blogs - medium, wordpress, tumblr
  • CDN - google_cloud, cloudflare, keycdn
  • CMS - ucoz, joomla, pyrocms
  • Comercio electrónico - opencart, magento, wix

Puede buscar por etiquetas usando el filtro "tag.name:". También puede buscar por categoría de etiqueta usando el filtro "tag.category:". Se muestra una lista de todas las etiquetas y categorías disponibles al hacer clic en el icono a la derecha del cuadro de entrada de consulta de búsqueda en la página principal de Netlas.

Nota: No todos los planes de precios admiten el uso de etiquetas.

Ejemplo de consulta de búsqueda

Search CVE by tag name``` tag.name:"adobe_coldfusion"

root@kitploit:~
Esta consulta busca Adobe ColdFusion (CVE-2023-26359).

[Prueba en Netlas](https://app.netlas.io/responses/?q=tag.name%3A%22adobe_coldfusion%22&page=1&indices=)

**Ejemplo de solicitud de API**

Netlas CLI Tools:```bash
netlas search 'tag.name:"adobe_coldfusion"' -f json

Tenga en cuenta que cuando se usan comillas dobles en las consultas, la consulta en sí se escribe entre comillas simples.

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=tag.name%3A%22adobe_coldfusion%22&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: YOUR_API_KEY' | jq .items[].data.uri

root@kitploit:~
**Ejemplo de código (librería Python de Netlas)**

![Favicon hash search Python](https://assets.kitploit.com/production/public/readmes/6659/df06bcb4bb2b0cd939656534bc1c2c5c94897cf699309ebf130d0fb26931c630.png)

Ejecutar en la línea de comandos:```bash
python scripts/pentest/search_tag_name.py

Código fuente de scripts/pentest/search_tag_name.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query tag.name:"adobe_coldfusion"

netlas_query = netlas_connection.query(query='tag.name:"adobe_coldfusion"')

iterate over data and print: IP,URL

for response in netlas_query['items']: print (response['data']['ip']) print (response['data']['uri'])

root@kitploit:~
### Buscar Servidores y Dispositivos Vulnerables Cerca de Ti (o Cualquier Otra Ubicación)

![CVE location search](https://assets.kitploit.com/production/public/readmes/6659/1cc7069b697b4c21a266b05804238fe541962e7baacb2cb0c98c10128cf6b126.png)

¿Quieres saber cuántos sitios y dispositivos vulnerables hay a tu alrededor? Simplemente busca todas las direcciones IP que tengan el campo CVE poblado en una geolocalización específica.```
geo.city:London AND cve:*

Try in Netlas

También puedes usar otros filtros de geolocalización.

  • geo.continent
  • geo.country
  • geo.location

Ejemplo de solicitud API

Netlas CLI Tools:``` geo.city:London AND cve:*

root@kitploit:~
Curl:```bash
curl -X 'GET' \
  'https://app.netlas.io/api/responses/?q=geo.city%3ALondon%20AND%20cve%3A*&source_type=include&start=0&fields=*' \
   -H 'accept: application/json' \
   -H 'X-API-Key: 'YOUR_API_KEY' | jq .items[].data.domain

Ejemplo de código (Netlas Python Library)

Location CVE search Python

Ejecutar en la línea de comandos:```bash python scripts/pentest/cve_location_search.py

root@kitploit:~
Código fuente de scripts/pentest/cve_location_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `geo.city:London AND cve:*`
netlas_query = netlas_connection.query(query='geo.city:London AND cve:*')


# iterate over data and print: uri, cve name, location
for response in netlas_query['items']: 
    print (response['data']['uri'])
    print (response['data']['cve'][0]['name'])
    print (response['data']['geo']['city'])

Búsqueda de paneles de inicio de sesión/administración

Búsqueda de paneles de administración

Muchos sitios y servidores tienen páginas web de inicio de sesión y contraseña que pueden utilizarse para obtener acceso al control total del sitio o servidor (mediante el uso de contraseñas predeterminadas, fuerza bruta o explotación de vulnerabilidades).

Puedes encontrarlos usando el filtro uri: o/y http.title:``` uri:login.php uri:login.aspx uri:user http.title:login uri:admin http.title:login http.title:admin http.title:panel

root@kitploit:~
Hay tantas combinaciones. Para encontrar solo paneles de servidores vulnerables usa el filtro `cve:*`.

Además, no olvides que puedes filtrar servidores por software instalado usando etiquetas. Por ejemplo:```
tag.1c_bitrix:*
tag.Cisco:
tag.amazon_s3:*
tag.drupal:*
tag.wordpress:*

Búsqueda de paneles de administración de bases de datos vulnerables

Database admin panels search

Intentemos buscar un panel de administración vulnerable de phpMyAdmin (uno de los software más populares para administrar bases de datos MySQL):``` http.title:phpMyAdmin cve:*

root@kitploit:~
Y aquí hay algunos ejemplos para otras herramientas populares de administración de bases de datos:

[Adminer](https://github.com/netlas-io/netlas-cookbook/blob/main/Adminer):```
http.title:adminer http.title:login cve:*

PostgreSQL``` http.title:(phpPgAdmin OR pgadmin) cve:*

root@kitploit:~
También puedes buscar servidores que tengan software instalado para diferentes bases de datos utilizando las etiquetas o filtros especiales:```
tag.adminer:*
tag.phpMyAdmin:*
tag.elastic:*
mongodb:*
mssql:*
mysql:*
django:*

Buscar paneles de administración para servidores encontrados de esta manera puede no ser lo más fácil de hacer, ya que los administradores de sitios a menudo cambian los enlaces estándar por otros más seguros.

Buscar sitios vulnerables a inyección SQL

SQL Injection search

La inyección SQL es un tipo de vulnerabilidad que permite realizar consultas a la base de datos manipulando parámetros de URL (esto puede ser posible debido a malas configuraciones y código de baja calidad).

Una de las técnicas más antiguas para encontrar páginas potencialmente vulnerables a inyección SQL es buscar páginas que tengan habilitada la visualización de mensajes de error en consultas MySQL utilizando Google Dorks.

Se puede realizar una búsqueda similar en Netlas:``` http.body:mysql_fetch_array http.body:warning

root@kitploit:~
[Try in Netlas](https://app.netlas.io/responses/?q=http.body%3Amysql_fetch_array%20http.body%3Awarning&page=1&indices=)

Algunos otros ejemplos:```
http.body:mysql_num_rows http.body:warning
http.body:mysql_connect http.body:denied
http.body:mysql_query http.body:warning
http.body:pg_connect http.body:fatal

Ejemplo de solicitud API

Netlas CLI Tools:```bash netlas search "http.body:mysql_fetch_array http.body:warning" -f json

root@kitploit:~
Curl:```bash
curl -X 'GET' \
  'https://app.netlas.io/api/responses/?q=http.body%3Amysql_fetch_array%20http.body%3Awarning&source_type=include&start=0&fields=*' \
  -H 'accept: application/json' \
  -H 'X-API-Key: YOUR_API_KEY' jq .items[].data.uri

Ejemplo de código (Netlas Python Library)

Búsqueda de inyección SQL (Python)

Ejecutar en la línea de comandos:```bash python scripts/pentest/sql_injection_search.py

root@kitploit:~
Código fuente de scripts/pentest/sql_injection_search.py:```python
import netlas

apikey = "YOUR_API_KEY"
 
# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# search in Netlas "http.body:mysql_fetch_array http.body:warning"
netlas_query = netlas_connection.query(query="http.body:mysql_fetch_array http.body:warning")

# iterate over data and print: uri, web page body
for response in netlas_query['items']:
    print (response['data']['uri'])  
    print (response['data']['http']['body'])    

También puede utilizar los siguientes filtros para buscar servidores MySQL vulnerables:

  • mysql.error_code
  • mysql.error_id
  • mysql.error_message

Búsqueda IoT: 9 formas básicas

Netlas no solo busca sitios web y servidores, sino todos los dispositivos conectados a Internet: electrodomésticos inteligentes, cámaras de vigilancia, impresoras, routers, semáforos, equipos médicos y más.

Hay cuatro formas principales de encontrar estos dispositivos.

Búsqueda por título

Iot Title Search

La forma más sencilla es simplemente buscar el nombre del fabricante o el tipo de dispositivo en el título http de la respuesta.

Intente buscar dispositivos de domótica Jeedom:``` http.title:Jeedom

root@kitploit:~
[Try in Netlas](https://app.netlas.io/responses/?q=http.title%3AJeedom&page=1&indices=)

O cámaras web Avigilon:```
http.title:"Avigilon"

Try in Netlas

Hay dos desventajas en este método. La primera es la gran cantidad de resultados inapropiados (solo sitios web con palabras relevantes en el título). Pero al usar comillas y filtros de búsqueda adicionales como port:, hay menos.

La segunda es que muchos dispositivos IoT no tienen ninguna información en el título http que permita identificarlos. Por lo tanto, otros filtros de búsqueda también pueden ser útiles.

Búsqueda en el Cuerpo

Iot Body Search

Del mismo modo, puedes intentar buscar palabras clave en el cuerpo de la respuesta http. Para filtrar al menos algunos de los sitios web comunes, usa el filtro NOT domain:. Probemos a buscar cámaras Reolink:``` http.body:(clip-status) NOT domain:

root@kitploit:~
El ejemplo no es del todo correcto, por lo que estas cámaras se pueden encontrar usando etiquetas (más sobre eso a continuación).


### Búsqueda por número  de puerto

![Iot port search](https://assets.kitploit.com/production/public/readmes/6659/c7e51e69a0d102a1617d1eb5ed71fcfac72aa8289ef40e3da9097aa1f82155cc.png)

Diferentes dispositivos IoT usan diferentes puertos para la comunicación. Y por el número de puerto abierto, se puede suponer hipotéticamente que la dirección IP pertenece a un cierto tipo de dispositivo (**a menudo la suposición es correcta, pero puede haber imprecisiones y coincidencias**).

Intente buscar radio por Internet (puerto 8000):```
port:8000 http.title:radio

Probar en Netlas

O todos los dispositivos con el puerto 7547 abierto (se usa para gestionar routers de forma remota mediante CWMP):``` port:7547

root@kitploit:~
[Try in Netlas](https://app.netlas.io/responses/?q=port%3A7547&page=1&indices=)

### Búsqueda por Banner

![Iot banner search](https://assets.kitploit.com/production/public/readmes/6659/fb8cf3ee79c9baf3469693d364d38eb8c636e171d98523d0920cc1feb948cc9b.png)

Busquemos routers que usen el protocolo Telnet (también podrías filtrarlos con puerto:23):```
telnet.banner:router

Prueba en Netlas

O busca banners para todos los protocolos:``` *.banner:router

root@kitploit:~
[Probar en Netlas](https://app.netlas.io/responses/?q=%5C*.banner%3Arouter&page=1&indices=)


### Búsqueda por favicon

![Búsqueda por favicon de IoT](https://assets.kitploit.com/production/public/readmes/6659/dde45b8e6a3dcaea41ff21dc27a5eee558c3a5e046963f1ebaeb67397314a03b.png)

Una de las formas más sencillas de encontrar dispositivos que tienen cierto software instalado es buscar por favicon. Intentemos encontrar dónde se utilizan diferentes productos de Cisco:```
http.favicon.hash_sha256:62a8461e328d5bace3780ff738d0b58f6502592c04afa564e0a8a792583a7bfb

Probar en Netlas

Hay tres formas principales de buscar por favicon en Netlas:

  1. Haga clic en el icono a la izquierda del resultado de búsqueda.
  2. Haga clic en el botón de búsqueda de favicon a la derecha de la barra de búsqueda y pegue el enlace del favicon en la ventana emergente.
  3. Haga clic en el botón de búsqueda de favicon a la derecha de la barra de búsqueda y cargue el archivo del favicon.

Búsqueda por Cabeceras de Servidor

Búsqueda de cabeceras de IoT

A veces sucede que no hay información identificativa del dispositivo en el título http, pero puede estar en otras cabeceras. Por ejemplo, en http.server.header:``` http.headers.server:"i-Catcher Console"

root@kitploit:~
[Probar en Netlas](https://app.netlas.io/responses/?q=http.headers.server%3A%22i-Catcher%20Console%22&page=1&indices=)

Netlas admite la búsqueda en varios tipos de encabezados. Prueba diferentes variantes.


### Búsqueda por cookies

![Búsqueda de cookies Iot](https://assets.kitploit.com/production/public/readmes/6659/8ca9d08b8f1b835c8fd2a0c62908e20102b439b90aeb49a718619f125daa6b61.png)

Buscar estacionamientos Eco JS:```
http.headers.set_cookie:(regist_carNo=)

Try in Netlas

Búsqueda por etiqueta

Búsqueda de etiquetas Iot

Este método puede requerir una suscripción de pago. Ver precios

También puedes intentar buscar dispositivos por etiquetas (categorías).``` tag.category:"IoT" tag.category:"Web cameras"

root@kitploit:~
[Try in Netlas](https://app.netlas.io/responses/?q=tag.category%3A%22Web%20cameras%22&page=1&indices=)

Solo recuerda que las etiquetas se asignan automáticamente y algunos dispositivos adecuados pueden no estar incluidos en la categoría correspondiente.

### Filtros de búsqueda adicionales

Puede buscar dispositivos IoT ubicados en geolocalizaciones específicas:

- `geo.city`
- `geo.country`
- `geo.continent`

Filtrar dispositivos por rango de direcciones IP:```
ip:[162.245.241.131 TO 162.245.241.133]

O dispositivos con vulnerabilidades "nuevas":``` cve.name:2023

root@kitploit:~
Más ejemplos de consultas para buscar dispositivos IoT se pueden encontrar aquí:

[Netlas Dorks](https://github.com/netlas-io/netlas-dorks)

## Usando Netlas.io para la investigación en Darknet

Una de las principales ventajas de Netlas es que puedes usarlo para buscar cosas que no están indexadas por Google. Esto es lo que se puede llamar convencionalmente DeepWeb. Por ejemplo, servidores FTP o servidores Telnet:```
ftp.banner:*
root@kitploit:~
telnet.banner:*

Pero desafortunadamente Netlas no indexa la Darknet (.onion, .i2p, etc.) ya que solo escanea direcciones IP globales. Sin embargo, aún se puede usar para explorar infraestructuras de red alternativas y encontrar enlaces a sitios .onion.

Búsqueda de nodos de salida de Tor

El nodo de salida de Tor es el punto donde el tráfico web sale de la red Tor y se dirige al destino. Una lista actualizada de direcciones IP de nodos de entrada de Tor activos está siempre disponible en el sitio web de TorProject:

Lista de nodos de salida de Tor Project

Veamos cómo puedes recopilar información sobre todos los nodos de salida de Tor activos a la vez usando Netlas. Este ejemplo será útil para todas las demás tareas para las que necesites recopilar información sobre una lista de dominios o direcciones IP.

Run scripts/darknet/tor_nodes.py:```bash python scripts/darknet/tor_nodes.py

root@kitploit:~
![Recopilación de información de nodos de salida de Tor](https://assets.kitploit.com/production/public/readmes/6659/c1d2c2e9542694adbe3a8f1b1332e803b4ad2e39d1ae46f4a8c32a80ef5a133f.png)

Código fuente de scripts/darknet/tor_nodes.py:```python
import netlas
import urllib
import time

apikey = 'YOUR_API_KEY'

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# read file with Tor Exit Nodes IPs line by line
response = urllib.request.urlopen('https://check.torproject.org/torbulkexitlist?ip=1.1.1.1')
ip_lines = response.readlines()

# save each line to ip variable
for ip in ip_lines:
     # wait one second
     time.sleep(1)
     # conver byte string to text
     ip=ip.decode("utf-8")
     # retrieve data from responses by query `ip: + tor exit node ip`
     netlas_query = netlas_connection.query(query="ip:"+ip)

    # iterate over data and print: ip, geo data, banner text

     for response in netlas_query['items']:
         print(response['data']['ip'])
         print(response['data']['geo'])
         print(response['data']['ntp']['banner'])
     pass
pass

Usar el paquete time y el método sleep solo es adecuado para ejemplos simples. La mejor solución es usar el paquete de límite de tasa.

Recopilando enlaces a sitios .onion

Como se mencionó anteriormente, Netlas solo escanea dominios globales, por lo que no es posible buscar dominios .onion. Pero puedes buscar referencias a dominios .onion en el texto de las páginas web. Aquí hay un ejemplo de un script simple de Python (con expresión regular) que hace esto:

Ejecuta scripts/darknet/onion_links.py:```bash python scripts/darknet/onion_links.py

root@kitploit:~
![Recopilación de enlaces onion](https://assets.kitploit.com/production/public/readmes/6659/979fff15ed6e8cc399cc755cb292978b22a93d11ee14e59bf7690365d3e2842b.png)

Código fuente de scripts/darknet/onion_links.py:```python
import netlas
import re

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `http.body:*.onion AND forum`
netlas_query = netlas_connection.query(query="http.body:(*.onion AND forum)")


# iterate over data and print: URL, .onion link from body
for response in netlas_query['items']:
    print(response['data']['uri'])
    onion_links = re.findall("[a-z-1-9]*\.onion", response['data']['http']['body'])  
    try:
         print(onion_links)
    except:
         print("no onion links")
pass

Puedes recolectar enlaces para otras redes como I2P de la misma manera:``` http.body:*.i2p

root@kitploit:~
## Búsqueda de Directorios de Archivos, Copias de Seguridad y Registros

![Búsqueda de directorios](https://assets.kitploit.com/production/public/readmes/6659/27773f3dbb2ba7b3fd3be7a41262cef61c41c2a988e6ed55ce67f593c7e7a06f.png)

Hay una gran cantidad de sitios y servidores que dejan sus directorios de archivos abiertos debido a un error de configuración (y a veces deliberadamente). Aquí hay algunos ejemplos de consultas que te ayudarán a encontrarlos.

Buscar cualquier directorio de archivos:```
http.title:Index http.title:of

Buscar directorios con archivos de registro:``` http.title:Index http.title:of http.body:logs

root@kitploit:~
Buscar directorios con volcados de base de datos:```
http.title:Index http.title:of http.body:sql

Buscar directorios con copias de seguridad archivadas:``` http.title:Index http.title:of http.body:backup?zip

root@kitploit:~
Buscar directorios con información de acceso SSH:```
http.title:Index http.title:of http.body:("ssh_config" OR "ssh_known_hosts" OR "authorized_keys" OR "id_rsa" OR "id_dsa")

Buscar directorios con archivos que contengan otra información de autorización:``` http.title:Index http.title:of http.body:("pass" OR "logins" OR "config" OR "password")

root@kitploit:~
Busca directorios con archivos descargados por usuarios:```
http.title:index http.title:of http.body:downloads

Buscar directorios con archivos de configuración de Docker:``` http.title:index http.title:of http.body:docker-compose

root@kitploit:~
Puedes pensar en cientos de otras solicitudes similares. Experimenta con diferentes nombres y extensiones de archivo.

## Usando Netlas.io para la Informática Forense y la Respuesta a Incidentes

Esta sección es muy difícil de separar de la sección Netlas para OSINT, ya que las consultas allí listadas también serán útiles para quienes se dedican a la informática forense.

En esta sección, describimos consultas más "técnicas" que pueden ayudar, por ejemplo, a recopilar información sobre la infraestructura técnica de redes o a investigar ataques de phishing.

### Recopilación de Información de Servidores SMTP

SMTP (Protocolo Simple de Transferencia de Correo) es un protocolo de comunicación que permite enviar y recibir correos electrónicos. En la mayoría de los clientes de correo, al ver los correos electrónicos, está disponible la función "Mostrar original", que permite ver la dirección del servidor SMTP desde el cual se envió el correo.

Netlas permite obtener información sobre un servidor SMTP, así como sobre cualquier otra IP o dominio, y también buscar en el texto de los banners SMTP, lo que permite encontrar servidores asociados a un dominio, empresa o proveedor de alojamiento específico.

**Ejemplo de consulta de búsqueda**  

![Búsqueda de banner SMTP](https://assets.kitploit.com/production/public/readmes/6659/e97e5c301c148f4f500d3933ada00375a24ab6bafbc05647d9c227f2b2d3cbbd.png)```
smtp.banner:fornex.cloud

Herramientas CLI de Netlas:```bash netlas search "smtp.banner:fornex.cloud" -f json

root@kitploit:~
Curl:```bash
curl -X 'GET' \
  'https://app.netlas.io/api/responses/?q=smtp.banner%3Afornex.cloud&source_type=include&start=0&fields=*' \
  -H 'accept: application/json' \
  -H 'X-API-Key: 'YOUR_API_KEY' | jq .items[].data.smtp.banner

Ejemplo de código (biblioteca Python de Netlas)

Búsqueda de banner SMTP en Python

Ejecutar en la línea de comandos:```bash python scripts/dfir/smtp_banner_search.py

root@kitploit:~
Código fuente de scripts/dfir/smtp_banner_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `smtp.banner:fornex.cloud`
netlas_query = netlas_connection.query(query="smtp.banner:fornex.cloud")


# iterate over data and print: SMTP banner, URL, ISP
for response in netlas_query['items']:
    print (response['data']['smtp']['banner'])
    print (response['data']['uri'])
    print (response['data']['isp'])

Búsqueda de dominios que podrían utilizarse potencialmente para phishing

Uno de los métodos populares de los estafadores es utilizar dominios que son muy similares en ortografía a los dominios de empresas conocidas.

Puede encontrar dichos dominios para una empresa determinada utilizando Netlas y la búsqueda difusa.

Búsqueda difusa de dominios

Abra la búsqueda de dominios Whois e ingrese el nombre de dominio de la empresa + ~. Por ejemplo:

root@kitploit:~
netlas whois -q "example.com~"

domain:facebook.com~

root@kitploit:~
[Probar en Netlas](https://app.netlas.io/whois_domains/?q=domain%3Afacebook.com~&page=1&indices=)

![Importación de búsqueda difusa de dominio](https://assets.kitploit.com/production/public/readmes/6659/5d4ba2bdc395a3e52bfadaf8d7bda8977e0d115e13a1a68980520ea8532ca904.png)

Después, haga clic en el icono izquierdo, seleccione el tipo de archivo de exportación, los nombres de archivo y los campos que desea guardar en el archivo. Haga clic en "Descargar" y espere un momento.

![Búsqueda difusa de dominio en csv](https://assets.kitploit.com/production/public/readmes/6659/f5ed5c4c253a3e2fb994623fe48447714b7d706496edeca527a5d53de33707c4.png)

Por ejemplo, puede seleccionar el formato de archivo CSV y los campos dominio, expiration_date, status. Dicha tabla se puede ver cómodamente en Excel, Numbers o Google Docs.

### Búsqueda de Favicon

![Búsqueda de favicon](https://assets.kitploit.com/production/public/readmes/6659/1e2761528fda75b2a240460fb07d3f77f0b2872ff504bc08759befc22e470612.png)

La búsqueda de favicon.ico tiene tres usos principales. 

Primero, permite encontrar sitios y subdominios potencialmente relacionados. Intente encontrar la IP asociada a las tiendas Lidl:```
http.favicon.perceptual_hash:003c7e72207e3c00

Probar en Netlas

Y también para encontrar sitios de phishing que utilizan el diseño de redes sociales populares, tiendas en línea, etc.

Segundo, es una búsqueda de varios dispositivos IoT. Intente encontrar productos HP:``` http.favicon.perceptual_hash:0c5ec8c181f37e2c

root@kitploit:~
[Try in Netlas](https://app.netlas.io/responses/?q=http.favicon.perceptual_hash%3A0c5ec8c181f37e2c&page=1&indices=)

En tercer lugar, busca servidores que tengan cierto software ejecutándose en ellos. Intenta encontrar servidores con PhpMyAdmin:```
http.favicon.perceptual_hash:00084e5e5fffff8d

Try in Netlas

Hay tres formas principales de buscar por hash de favicon en Netlas:

  1. Haga clic en el icono a la izquierda del resultado de búsqueda.
  2. Haga clic en el botón de búsqueda de favicon a la derecha de la barra de búsqueda y pegue el enlace del favicon en la ventana emergente.
  3. Haga clic en el botón de búsqueda de favicon a la derecha de la barra de búsqueda y suba el archivo de favicon.

También puede usar los siguientes filtros para buscar por favicon:

  • http.favicon.last_modified
  • http.favicon.last_updated
  • http.favicon.uri
  • http.favicon.path

Buscar dominios asociados a una subred específica

Subnet search

La búsqueda de dominios de Netlas permite obtener una lista completa de dominios asociados a una dirección IP o rango de direcciones específico. Por ejemplo:``` a:"163.114.132.0/24"

root@kitploit:~
[Probar en Netlas](https://app.netlas.io/domains/?q=a%3A%22163.114.132.0%2F24%22&page=1&indices=)

Ejemplo de solicitud a la API

Herramientas CLI de Netlas:```bash
netlas search -d domain a:\"163.114.132.0/24\"

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/domains/?q=a%3A%22163.114.132.0%2F24%22&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: 'YOUR_API_KEY' | jq .items[].data.domain

root@kitploit:~
**Ejemplo de código (Netlas Python Library)**

![Búsqueda de subred](https://assets.kitploit.com/production/public/readmes/6659/167cec2c2ef94ede54088bfe94fef093af8bf58ea2de6df34a73212f5d3044b1.png)

Ejecutar en línea de comandos:```bash
python scripts/dfir/subnet_search.py

Código fuente de scripts/dfir/subnet_search.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query a:"163.114.132.0/24"

netlas_query = netlas_connection.query(query='a:"163.114.132.0/24"',datatype="domain")

iterate over data and print: domain

for response in netlas_query['items']: print (response['data']['domain'])

root@kitploit:~
### Búsqueda de servidores con software malicioso

![Malware search](https://assets.kitploit.com/production/public/readmes/6659/d728e7baced751038764f0895099894d154370929ac7eb11e60f80137e549f72.png)

Netlas te permite encontrar servidores que tienen varios programas maliciosos instalados. Puedes localizarlos por la presencia de ciertas palabras en http.title o http.body, hash de favicon, ssl y otros parámetros.

Aquí tienes un ejemplo de una consulta que encontrará servidores que tengan instalado GoFish (Marco de phishing de código abierto):```
http.title:Gophish http.title:Login

Ten en cuenta que la técnica de usar el mismo operador dos veces (en lugar de un asterisco entre dos palabras) se usa aquí. A veces esto te ayuda a obtener más resultados de búsqueda.

Aquí hay algunos ejemplos más de solicitudes similares:``` http.title:CALDERA http.title:login http.title:Deimos http.title:C2

root@kitploit:~
**Ejemplo de solicitud API**

Netlas CLI Tools:```bash
netlas search "http.title:Gophish http.title:Login" -f json

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=http.title%3AGophish%20http.title%3ALogin&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: YOUR_API_KEY' jq .items[].data.uri

root@kitploit:~
**Ejemplo de código (Netlas Python Library)**

![Búsqueda de malware en Python](https://assets.kitploit.com/production/public/readmes/6659/6d97f8bdcd0897b846dfa636e667cdca0cdfe8565f0aa33634934d2f7dbd2e40.png)

Ejecutar en la línea de comandos:```bash
python scripts/dfif/malware_search.py

Código fuente de scripts/dfir/malware_search.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from whois for "http.title:Gophish http.title:Login"

netlas_query = netlas_connection.query(query="http.title:Gophish http.title:Login")

iterate over data and print: uri, title, country

for response in netlas_query['items']: print (response['data']['uri'])
print (response['data']['http']['title'])
print (response['data']['geo']['country'])

root@kitploit:~
## Búsqueda de tecnologías y ejemplos de código

![Netlas para diseñadores web](https://assets.kitploit.com/production/public/readmes/6659/52b9186e6e0d5cbd123389555fc6124835065af3c45346b35003da563a76e191.png)

Netlas, a diferencia de los motores de búsqueda convencionales, te permite buscar en todo el código HTML en lugar del texto de la página. Esto te permite encontrar sitios que utilizan ciertas bibliotecas de JavaScript. Esto puede ayudarte a encontrar ejemplos de código adecuados para tus tareas y ahorrarte tiempo.

Por ejemplo, buscar sitios que usen una antigua biblioteca oscura para dibujar gráficos:```
http.body:kinetic.js

También puedes ver cómo se utilizan diferentes frameworks CSS en sitios de ciertos temas y tomar prestadas buenas ideas de diseño:``` http.body:bootstrap.css http.title:travel

root@kitploit:~
También puedes filtrar sitios que usen frameworks y tecnologías específicas usando etiquetas:```
tag.bootstrap:*
root@kitploit:~
tag.angularjs:*
root@kitploit:~
tag.wordpress:*
root@kitploit:~
tag.nextjs:*

Usando Netlas.io por Diversión o Netstalking

Netlas, como muchos otros motores de búsqueda, se puede utilizar sin un propósito específico, y simplemente explorar con su ayuda rincones inexplorados de Internet, con la esperanza de encontrar algo interesante allí.

Aquí hay algunos ejemplos de consultas de búsqueda que te ayudarán a encontrar lo que Google no puede.

Búsqueda por texto de banners de servidores Telnet (¡sí, todavía están vivos!):``` telnet.banner:library

root@kitploit:~
![Telnet banner](https://assets.kitploit.com/production/public/readmes/6659/bc10d408431e619a74a7d0a3ba3ebe4722c5599cf3978e1ddd4d014453ebd0df.png)

Buscar por texto de banners de servidores FTP:```
ftp.banner:*library*

Buscar enlaces a libros y documentos:``` http.body:rowlingpdf

root@kitploit:~
Buscar enlaces a música y video:```
http.body:*cats*mp4

Buscar enlaces a archivos torrent:``` http.body:catsmp4

root@kitploit:~
Ten en cuenta que Netlas no censura de ninguna manera el contenido que almacena en su base de datos. Si encuentras algo ilegal o inmoral, debes presentar una queja ante el proveedor de alojamiento cuyos contactos están listados en la información del dominio.

## Problemas Comunes

### Error 429 - Solicitudes Demasiado Frecuentes

![Request limit](https://assets.kitploit.com/production/public/readmes/6659/4dc177c632607cc952ba847f1c078c80812b388c1eb51513e3d672e8563a672b.png)

Si tu aplicación incluye múltiples solicitudes a la API de Netlas, es posible que encuentres este error:```json
{'detail': 'Request was throttled. Expected available in 1 second.'}

Una forma de resolver este problema es usar bibliotecas especiales de Python para configurar límites de tiempo en la ejecución de consultas, como el Paquete Limiter.

Aquí hay un ejemplo de su uso en código (límite de no más de 60 solicitudes por minuto). Primero, instala el paquete:``` pip install ratelimit

root@kitploit:~
Y ejecuta rate_limit.py:```bash
python scripts/common_problems/rate_limit.py

INPUT:```python import netlas from ratelimit import limits

One second - one call

@limits(calls=1, period=1) def netlas_query(): apikey = "YOUR_API_KEY"

root@kitploit:~
 # create new connection to Netlas
 netlas_connection = netlas.Netlas(api_key=apikey)

 # retrieve data from responses by query `cve.description:weblogic AND cve.has_exploit:true`
 netlas_query = netlas_connection.query(query="cve.description:weblogic AND cve.has_exploit:true")

 # iterate over data and print:  url, first CVE name first CVE description
 for response in netlas_query['items']:
    print (response['data']['uri'])
    print (response['data']['cve'][0]['name'])
    print (response['data']['cve'][0]['description'])

netlas_query()

root@kitploit:~
Existen paquetes similares para otros lenguajes de programación populares, ya que superar el límite de solicitudes es un problema muy común al trabajar con casi todas las API.

Si realmente necesitas hacer más de una consulta por segundo, puedes escribir al [equipo de ventas](https://netlas.io/sales/).


### KeyError

![Error de clave](https://assets.kitploit.com/production/public/readmes/6659/4e039dadee067f3762033f4d612fda3f7fbbac8425af0c257a9c808338ec85bc.png)

Otro problema común es la falta de una clave específica en la respuesta de algunos servidores. Por ejemplo, `['data']['http']['title']` falta con bastante frecuencia.

Si la clave falta, el script deja de ejecutarse. El manejo estándar de errores ayudará a evitarlo. Por ejemplo:```python
try:
       print (response['data']['http']['title'])
    except:
        print ("no title")

Automatización del trabajo con la lista de solicitudes

La principal ventaja de trabajar con Netlas Python o la API de Netlas en lugar de simplemente escribir consultas en la versión web de Netlas.io es que puedes ahorrar una enorme cantidad de tiempo al escribir consultas genéricas. Por ejemplo, puedes recopilar rápidamente información sobre una larga lista de dominios utilizando código Python muy simple.

Ejecutar en la línea de comandos:```bash python scripts/common_problems/domain_list_search.py

root@kitploit:~
Código fuente de domain_list_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)


# read file domains.txt line by line
with open("scripts/common_problems/domains.txt") as f:
    # save each line to domain variable
    for domain in f:
         # retrieve data from responses by query `domain:domainname`
        netlas_query = netlas_connection.query(
            query=f"domain:{domain}", datatype="domain-whois"
        )


        # iterate over data and print:  ip, isp
        for response in netlas_query['items']:
            print (response['data']['ip'])
            print (response['data']['isp'])

Del mismo modo, puedes trabajar con una lista de certificados, direcciones IP, correos electrónicos y cualquier otra cosa que desees.

Un ejemplo de búsqueda de direcciones IP desde una lista cargada por URL se puede encontrar en Búsqueda de nodos de salida Tor.

Guardar datos en formato CSV

Guardar datos en CSV

Por defecto, la Netlas Python Library devuelve datos de tipo Dictionary (que es muy similar a JSON). Si deseas exportar los datos a MS Excel o Google Sheets, una forma sencilla de hacerlo es guardarlos en formato CSV.

Aquí tienes un ejemplo usando el paquete CSV. Ejecuta csv_export.py:```bash python scripts/common_problems/csv_export.py

root@kitploit:~
INPUT:```python
import netlas
import csv

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `http.meta:nazar`
netlas_query = netlas_connection.query(query="http.meta:nazar")

with open('netlas_results.csv', 'w') as csv_file:
     # Create CSV writer object
     writer = csv.writer(csv_file, delimiter =';')


     # Create a list with data headers:
     header = ['IP', 'URL', 'Title']

     # Write headers to CSV file
     writer.writerow(header)

     # iterate over data and print: ip and url to CSV file
     for response in netlas_query['items']:

    # Create a list with one line of data:
          data = [response['data']['ip'], response['data']['uri']]
    # Write line to file
          writer.writerow(data)
     pass

Puede abrir netlas_results.csv en Excel o en cualquier editor de texto.

Guardar datos en otros formatos

Usando Python, puede generar una amplia variedad de documentos basados en datos de Netlas, insertando imágenes, visualizaciones de datos y personalizando el diseño. Aquí hay algunos ejemplos de paquetes útiles.

XLSXWriter - generar archivos de Microsoft Excel.

PyPDF - generar archivos PDF.

PythonPPTX - generar presentaciones de Microsoft Power Point.

PythonDOCX - generar archivos de Microsoft Word.

Decodificación de dominios Punycode

Decodificación de dominios Punycode

Como se mencionó anteriormente, Netlas no almacena nombres de dominio no latinos en su codificación original, sino que los codifica en Punycode. Esto es necesario por razones técnicas, pero es completamente incómodo para la percepción humana.

Pero este problema se resuelve fácilmente con un par de líneas de código Python.

Instale el paquete IDNA Python:

root@kitploit:~
pip install idna
``````bash
pip install idna

Y ejecuta punycode.py en la línea de comandos:```bash python scripts/common_problems/punycode.py

root@kitploit:~
Please provide the Markdown content to translate.```python
import netlas
import idna

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `domain:*.中国  OR host:*.中国 `
netlas_query = netlas_connection.query(query="domain:*.xn--fiqs8s OR host:*.xn--fiqs8s")


# iterate over data and print: ip, domain (decoded from punycode)
for response in netlas_query['items']:
    print (response['data']['ip'])
    decoded_domain = idna.decode(str(response['data']['domain'][0]))
    print (decoded_domain)

¿Qué hacer si las consultas de búsqueda no devuelven resultados?

A veces puedes encontrarte con una situación en la que no se encuentran resultados o muy pocos al realizar una consulta, aunque estés seguro de que debería haber muchos más. En este caso, te recomendamos experimentar e intentar cambiar un poco las consultas.

  1. Intenta agregar dos asteriscos a tu palabra clave. Por ejemplo, domain:github.com devuelve 1,592,846 resultados. domain:githib.com - solo 7911 resultados.
  2. Prueba usando diferentes filtros de búsqueda para lograr el mismo objetivo. Por ejemplo, compara los resultados de uri:github.com, host:github.com y domain:github.com.
  3. No uses espacios en las palabras clave. Si necesitas encontrar la frase "Hello world" en http.body, usa la siguiente consulta: ``` http.body:hello http.body:world
    root@kitploit:~

o ``` http.body:(hello AND world)

root@kitploit:~
4. Refina tus filtros de búsqueda tanto como sea posible. Por ejemplo, la consulta cve:*2023* no devolverá resultados. Pero la consulta cve.name:*2023* devolverá más de 28 millones.
5. Prueba diferentes pestañas cuando trabajes con la aplicación web o diferentes tipos de datos cuando trabajes con la API. Por ejemplo, al buscar dominios, a veces Host o Domain Whois (en lugar de response) funciona mejor.

### Eliminando Etiquetas HTML del Cuerpo HTTP

![Búsqueda de certificados](https://assets.kitploit.com/production/public/readmes/6659/f9922957ccde7780d9663bf29e7df5ed6f689dedbf4e9ab7cd3ad611e2e2e59c.png)

La clave ['data']['http']['body'] por defecto devuelve el texto completo del cuerpo de la página web, incluyendo todas las etiquetas html. Este formato no es muy fácil de leer. Pero puedes eliminarlas fácilmente con el paquete de Python [Html2text](https://pypi.org/project/html2text/).

Ejecuta en la línea de comandos:

pip install html2text

root@kitploit:~
python scripts/common_problems/htmltotext.py
```
Código fuente de htmltotext.py:```python
import netlas
import html2text

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `http.body:*phpMyAdmin*`
netlas_query = netlas_connection.query(query="http.body:*phpMyAdmin*")


# iterate over data and print: ip, web page text
for response in netlas_query['items']:
    print (response['data']['ip'])
    print (html2text.html2text(str(response['data']['http']['body'])))
```
## Gestión de la Superficie de Ataque

La plataforma Netlas incluye herramientas para la gestión de la superficie de ataque, pero este tema está fuera del alcance de esta guía. Si está interesado en la gestión de la superficie de ataque en general y en el uso específico de Netlas, le recomendamos comenzar con estos artículos:

- [Guía completa sobre el descubrimiento de la superficie de ataque](https://netlas.io/blog/attack_surface_discovery_guide/).
- [Las mejores herramientas de visualización de la superficie de ataque](https://netlas.io/blog/best_attack_surface_visualization_tools/).


## Trabajo con Grandes Volúmenes de Datos

![Datastore](https://assets.kitploit.com/production/public/readmes/6659/ca1ac5e0e1483550235a01c26abcac8e44531108c662c136ea8a81abc0a4c8b2.png)

Si tiene un desafío realmente grande por delante. Por ejemplo, necesita recopilar datos sobre cientos de miles de dominios, entonces quizás una solución más racional en términos de tiempo y costos financieros sea comprar un conjunto de datos (csv/json) y trabajar con él en su propio servidor.


En [Netlas Datastore](https://app.netlas.io/datastore/) puede encontrar:

* Conjunto de datos de nombres de dominio conocidos (más de 2 mil millones de elementos)
* Conjunto de datos de DNS directo (más de 2 mil millones de elementos)
* Registros PTR conocidos (más de 1 mil millones de elementos) - GRATUITO
* Los 1,000,000 subdominios más comunes

y más.

## Agradecimientos

Muchas gracias a [@cyb_detective](https://twitter.com/cyb_detective) por su ayuda (https://cybdetective.com)
Descargar herramienta