Categorías
automatizacion Hacking Services - Software

Cómo realizar movimientos laterales con Socat – Parte 2 de 2

Demostración en vídeo del post.

Tal como he explicado en la primera parte de esta serie, es posible ejecutar Socat en sistemas Windows y Linux sin mayores dificultades. Es una herramienta potente y con muchas opciones que la hacen ideal para realizar movimientos laterales, entre otras cosas. En este artículo verás algunas otras aplicaciones que se pueden implementar con Socat.

Usa un proxy HTTP o SOCKS

En ocasiones necesitas que tus conexiones pasen por medio de un proxy, por ejemplo, cuando te conectas a la red de TOR y quieres consultar algún sitio en la darknet de dicha solución de anonimato. En estos casos, puedes usar Socat para facilitar la gestión de dicho servidor proxy. Concretamente, para poder utilizar un servidor proxy, se deben indicar las opciones SOCKS4A, SOCKS5 o PROXY. Todas ellas tienen una sintaxis común, así que se puede emplear una u otra dependiendo del tipo de servidor proxy por el que tenga que pasar el tráfico.

Como se puede observar, en la primera terminal se abre el puerto 4444 y todas las conexiones entrantes se enrutan por medio de un proxy SOCKS. El resultado en este caso, permitirá usar el proxy SOCKS de TOR en el puerto 9150 y acceder a la dirección ONION especificada. Luego, desde una segunda terminal, se puede establecer una conexión HTTP al puerto 4444 y tanto Socat como el proxy SOCKS de TOR se encargarán del resto.

Crea conexiones unidireccionales

Por defecto, las conexiones en Socat son bidireccionales entre cliente y servidor. Sin embargo, es posible que resulte conveniente cambiar este comportamiento y hacer que el tráfico viaje en un solo sentido.

En este caso, se reciben las conexiones en el puerto 3334, pero el proceso no envía ningún tipo de respuesta ya que se indicado la opción «-u».

Cifra las conexiones usando OpenSSL

Una de las características más potentes de Socat es que tiene integración con OpenSSL. Cuenta con varias opciones que permiten levantar un servidor SSL o establecer una conexión segura.

En primer lugar, es necesario generar una clave privada y su correspondiente certificado, tal como se enseña en la siguiente imagen.

A continuación, se puede usar Socat tanto para levantar un servidor SSL como para establecer una conexión segura. En ambos casos se debe usar el mismo certificado PEM.

En la primera terminal se levanta el servidor en el puerto 4443 y se indica, mediante la opción «cert», que se deben cifrar los datos con dicho certificado. Todas las conexiones entrantes, serán procesadas por el comando «/bin/bash», lo que da como resultado el comportamiento de una «bind shell».

Crea una pequeña VPN

Con Socat es posible crear un segmento de red virtual privado gracias a la opción «TUN». Si bien se trata de una opción sencilla y fácil de usar, no implementa todas las características que incorpora una VPN, aún así resulta una alternativa interesante que se encuentra disponible en Socat.

En la imagen anterior se puede apreciar el uso de la opción TUN. En la primera terminal, se levanta el puerto 7777 y se levanta la interfaz de red «9.9.9.1». En la segunda terminal, se establece la conexión a dicho puerto y se crea, en la máquina del cliente, una interfaz de red nueva con la IP «9.9.9.40». En este punto, ambas máquinas podrán establecer conexiones utilizando dichas direcciones IP, eso mientras la conexión con Socat se encuentre establecida y no se cierre la terminal.

Como has podido apreciar en estos dos artículos, esta herramienta ofrece muchas alternativas y es una buena idea conocerla en profundidad.

¿Conoces alguna otra opción o técnica interesante con Socat?
Te leo en los comentarios!

Un saludo y Happy Hack!
Adastra.

Categorías
Hacking

Nuevo curso en THW: Introducción a Kubernetes aplicado al DevSecOps

Hace algunos meses se ha publicado el curso de Técnicas y herramientas aplicadas al DevSecOps y, dado que ha tenido muy buena acogida y sois muchos que estáis pidiendo la continuación con Kubernetes, a partir del día de hoy se encuentra disponible el curso Introducción a Kubernetes aplicado al DevSecOps.
Es un curso completamente práctico y, sobre todo, actualizado. En los últimos 2 años han habido varios cambios en esta tecnología, por lo que la formación te brindará conocimientos frescos sobre cómo instalar, administrar y securizar un cluster de Kubernetes, todo ello, aplicando el DevSecOps.


Para que te hagas una idea clara de lo que te vas a encontrar y puedas decidir si te interesa o no, el temario detallado, con cada una de las lecciones que verás, es el siguiente:

  • MODULO 1 – Introducción al DevSecOps y Kubernetes
    • 1- Introducción al curso
    • 2- Introducción a la cultura DevOps
    • 3- Introducción al DevSecOps
    • 4- Introducción a Kubernetes y su modelo de funcionamiento
    • 5- Alternativas de instalación de Kubernetes
    • 6- Alternativa básica de instalación con Minukube
    • 7- Instalación y configuración completa de un cluster K8S on premise
    • 8- Introducción a Helm y configuración de Calico en el cluster K8S
    • 9- Configuración de los nodos en un cluster K8S
  • MODULO 2 – Arquitectura y componentes de Kubernetes
    • 10- Componentes fundamentales de Kubernetes
    • 11- Funcionamiento del Control Plane – Parte 1
    • 12- Funcionamiento del Control Plane – Parte 2
    • 13- Objetos en Kubernetes: Nodos y PODS – Parte 1
    • 14- Objetos en Kubernetes: Nodos y PODS – Parte 2
    • 15- Objetos en Kubernetes: Despliegues
    • 16- Objetos en Kubernetes: Servicios
    • 17- Objetos en Kubernetes: Labels, ENV, Selectores y anotaciones
    • 18- Objetos en Kubernetes: Namespaces
    • 19- Objetos en Kubernetes: Workloads y Rollouts
    • 20- Objetos en Kubernetes: Volumenes y persistencia
    • 21- Objetos en Kubernetes: Pesistencia mediante NFS
    • 22- Objetos en Kubernetes: Envs y ConfigMaps
    • 23- Objetos en Kubernetes: Secrets
    • 24- Objetos en Kubernetes: Sondas
    • 25- Implementación de Ingress en K8S
  • MODULO 3 – Seguridad en Kubernetes
    • 26- Gestión de accesos y roles mediante RBAC – Parte 1
    • 27- Gestión de accesos y roles mediante RBAC – Parte 2
    • 28- Gestión de accesos y roles mediante RBAC – Parte 3
    • 29- Seguridad en K8S con PSP y PSA
    • 30- Políticas de seguridad en el entorno de red del cluster con PNP
    • 31- Infrastructure as Code con Terraform
    • 32- Service Mesh de Istio en K8S – Parte 1
    • 33- Service Mesh de Istio en K8S – Parte 2
    • 34- Service Mesh de Istio en K8S – Parte 3
    • 35- Service Mesh de Istio en K8S – Parte 4
    • 36- Conclusiones y recomendaciones

Es un curso que está en preventa, lo que significa que tiene un precio reducido por lanzamiento, sin embargo, a diferencia de las formaciones que hemos publicado anteriormente en esta modalidad, vas a tener acceso a todos los contenidos desde el primer momento, no tienes que esperar hasta que termine la preventa para disfrutar de todos los recursos de la formación.
La formación es 100% online, con vídeos grabados en el mes de Marzo de 2023 y, además, tendrás acceso en cualquier momento sin limite de tiempo. Si no puedes empezar ahora por cualquier motivo, puedes hacerlo más adelante cuando te venga bien, en cualquier caso tendrás acceso a la plataforma online y a la formación en todo momento.

Todas las lecciones que ves del temario anterior tienen una duración de 11 horas de vídeos grabados y, para cada práctica, encontrarás los ficheros YAML (manifest) y documentación de elaboración propia en donde se encuentran descritos todos los comandos, procedimientos e instrucciones que verás en los vídeos. Es una formación muy completa.

Finalmente, si no has adquirido el curso de Técnicas y herramientas aplicadas al DevSecOps, te recomiendo el Pack de formaciones en DevSecOps, en donde podrás adquirir ambos por un precio muy reducido.

Es una buena oportunidad para formarte en una de las tecnologías más demandadas y con proyección del mercado, ya seas pentester, desarrollador o administrador de sistemas, lo más probable es que a lo largo de tu vida profesional tengas que trabajar directa o indirectamente con un cluster de Kubernetes y es una buena idea saber exactamente cómo funciona.

Si te interesa, aprovecha que está disponible con descuento, luego volverá a su precio original.
¡Espero verte en esta formación de Kubernetes aplicado al DevSecOps!

Un saludo y Happy Hack!
Adastra.

Categorías
automatizacion Hacking Services - Software

Cómo realizar movimientos laterales con Socat – Parte 1 de 2

Demostración en vídeo de este post

Socat es una herramienta muy potente que se encuentra disponible tanto en sistemas Windows como Linux. A diferencia de otras herramientas como Netcat, cuenta con muchas opciones que permiten gestionar las conexiones y, por supuesto, crear túneles y redirectores para llevar a cabo movimientos laterales.
En este post, explicaré algunos comandos útiles que te ayudarán a dominar esta herramienta y hacer un buen uso de ella.

Comandos básicos en Socat

Para empezar, es conveniente conocer algunas de las instrucciones más comunes en Socat, lo que te permitirá entender cómo funciona la herramienta.
Su sintaxis es simple, es necesario indicar dos posiciones, las cuales representan el origen y el destino, dicho de otro modo, el cliente y el servidor.

Partiendo de esta base, se pueden hacer muchas cosas, ya que la herramienta cuenta con un conjunto muy potente de opciones. Vamos a explorar a continuación, algunos comandos básicos.

Conexión desde la máquina local a un host remoto

El siguiente comando recibe texto en el flujo de entrada estándar y, a continuación, envía dicho texto al destino indicado.

Hay algunas opciones que se pueden establecer tanto en el origen como en el destino. Por ejemplo, se puede indicar un tiempo de timeout y el número de bytes que se deben leer y enviar al destino.

Crear un redirector simple

Socat permite abrir un puerto en la máquina local para que, todo el tráfico entrante en dicho puerto, sea enrutado a un destino distinto. Esto, como te imaginarás, permite crear túneles y facilita los movimientos laterales en la etapa de post-explotación. Con socat, esto se puede hacer con el siguiente comando

En el ejemplo anterior, se abre el puerto 4444 en la máquina local y, a continuación, todos los paquetes que reciba socat por dicho puerto serán enrutados al destino indicado con la opción «TCP4».

Aplica restricciones y opciones extra en los puertos

Con la opción «TCP4-Listen» es posible abrir un puerto, pero además, también se pueden indicar algunas restricciones para limitar las conexiones entrantes. Por ejemplo, se puede indicar la dirección IP o interfaz de red en la que se levantará el puerto, el usuario con el que proceso se ejecutará y si se debe hacer o no «fork» en el servidor.

En el ejemplo anterior, se abre el puerto 3000 y el proceso se ejecuta con los permisos del usuario «adastra». Además, se realiza un fork tras cada conexión, por lo que el servidor seguirá aceptando conexiones por parte de otros clientes. Finalmente, las conexiones entrantes simplemente se enrutan a «google.com».

Ejecuta comandos sobre la conexión TCP

Con Netcat es muy común utilizar la conexión TCP para ejecutar comandos en una «bind» o «reverse» shell. En Socat esto también es posible, para ello se debe usar la opción EXEC tal como se enseña en el siguiente ejemplo

El cliente simplemente establece una conexión y, cuando Socat la recibe, ejecuta el comando «/bin/bash». A partir de este punto, todas las instrucciones que envíe el cliente son interpretadas por bash y la salida se enseña en la terminal del cliente.

En este primer artículo has visto el uso básico de Socat, pero ofrece muchas más opciones interesantes que explicaré en el siguiente. Concretamente, verás cómo utilizar un proxy para tus conexiones, cifrar los datos del canal de comunicación con OpenSSL o crear una pequeña VPN. Son cosas que explicaré en la siguiente parte de esta serie.

Un saludo y Happy Hack!
Adastra.

Categorías
automatizacion Hacking Networking Services - Software

Identifica vulnerabilidades Active Directory Certificate Services (AD CS) con Certify y Certipy – Parte 2

Demostración en vídeo de este post

Certipy es una herramienta que permite enumerar las características de una instalación de AD CS (Active Directory Certificate Services). Cuenta con varias opciones y módulos, que entre otras cosas, permiten consultar las plantillas disponibles en dicho servicio y detectar vulnerabilidades. Para utilizar esta herramienta, a diferencia de Certify, es necesario instalar el programa en la máquina local del atacante y contar con un usuario de dominio. En el caso de Certify, es necesario subir el binario a la máquina comprometida y a continuación, ejecutar el programa. Esta forma de trabajar puede traer algunos problemas, especialmente en entornos muy controlados en donde se analiza todo lo que se escribe en disco y, evidentemente, al subir un binario como el de Certify, se pueden producir alertas y un AV detectaría el binario como una muestra maliciosa. Con Certipy, al ser una herramienta que se ejecuta desde la máquina del atacante, no hace falta subir nada a las estaciones de trabajo o controladores de dominio, solo se necesita un usuario válido.

El proceso de instalación es simple, se puede hacer directamente con PIP o realizando la instalación con el script «setup.py». Por otro lado, algunas de las opciones que soporta son las mismas que tienen los scripts en Impacket, esto se debe porque es una de las librerías que utiliza esta herramienta.

Las operaciones básicas que admite esta herramienta son: Find, Request Auth, Cert, Forge y PTT. Tiene otras opciones, pero estas son las más interesantes

Búsqueda de plantillas

El primer comando que se suele utilizar es «find», el cual permite enumerar las plantillas que se encuentran disponibles en el servicio de AD CS. Por defecto, es capaz de generar ficheros en formato TXT, JSON y ZIP, este último, compatible con BloodHound, de tal manera que es posible subirlo a dicha herramienta y visualizar sus contenidos de forma visual.

Peticiones de certificados

Si se ha conseguido un listado de plantillas, lo más común es solicitar certificados al servicio de AD CS. Con esta herramienta, es posible solicitar, recuperar y renovar certificados. Para ello, es necesario utilizar la opción «req» disponible en la herramienta.

A continuación, dicho certificado generado se puede emplear para llevar a cabo el proceso de autenticación.

Autenticación con un certificado PFX

Con la opción «req» se ha podido obtener un certificado, ahora puede usarse la opción «auth» para utilizar la extensión PKINIT de Kerberos o el protocolo Schannel para llevar a cabo el proceso de autenticación. En el caso de Kerberos, se podrá obtener un ticket TGT y el hash NT para el usuario con el que se ha generado el certificado, mientras que con Schannel, se abrirá una conexión con el servicio LDAPS para generar una shell interactiva con un conjunto de comandos LDAP limitados.

Generación de «Golden Certificates»

Es un ataque similar al de «Golden Ticket» para Kerberos, con la diferencia de que en este caso, un atacante cuenta con el certificado de la CA y su clave privada. Con estos elementos podrá crear certificados de autenticación para cualquier usuario del dominio. Si se tiene acceso a una cuenta con privilegios elevados, por ejemplo, la cuenta del administrador, será posible recibir el certificado y la clave privada de la CA de forma automática utilizando el parámetro «-backup».

Como se puede ver en la imagen anterior, se almacena todo, el certificado y la clave privada, en un fichero cuyo formato es PFX.

Con esto es suficiente para ejecutar nuevamente la herramienta con el parámetro «forge».

Como se puede apreciar, una vez generado el certificado para el usuario especificado, se puede realizar el proceso de autenticación y, en este caso, la herramienta devolverá el hash NT de la cuenta y un ticket TGT que podrá ser utilizado posteriormente.

Estas son las opciones más interesantes que se encuentran disponibles en la herramienta. En mi opinión, resulta más interesante que Certify dado que no tienes la necesidad de ejecutar nada en una estación del trabajo unida al dominio, solo necesitas tener conectividad con un DC y un usuario. Además, del mismo modo que Certify, Certipy soporta las técnicas de elevación de privilegios por medio de ADCS descritas en el paper «Certified Pre-Owned – Abusing Active Directory Certificate Services» de Will Schroeder y Lee Christensen.

Te invito a que pruebes esta herramienta en tu entorno, merece mucho la pena.

Un saludo y Happy Hack!
Adastra.

Categorías
Hacking

Identifica vulnerabilidades Active Directory Certificate Services (AD CS) con Certify y Certipy – Parte 1

Demostración en vídeo de este post

En los últimos años, los servicios de certificados en entornos de directorio activo (AD CS) han dado mucho de que hablar. Seguramente te suenan vulnerabilidades como NoPAC, PetitPotam, entre otras. Todas ellas, relacionadas con esta implementación de PKI y que, en la mayoría de los casos, permiten la elevación de privilegios en un dominio de Active Directory. Si tienes que hacer un pentest en un AD, analizar este tipo de servicios es recomendable, ya que es posible que encuentres alguna plantilla que te permita suplantar a otro usuario o máquina, consiguiendo de esta forma, la elevación de privilegios.
En este sentido, hay dos herramientas interesantes para realizar consultas sobre la PKI de Microsoft, se trata de Certify y Ceritipy. La primera de ellas, hace parte del proyecto GhostPack, el cual incluye herramientas tan interesantes como Rubeus, SeatBelt o SafetyKatz. La segunda, es un script en Python que te ayuda a realizar las mismas operaciones que Certify, pero, a diferencia de Certify, la puedes desde tu máquina como atacante, sin necesidad de subir nada a una estación de trabajo o controlador de dominio.
Por otro lado, ambas herramientas se encargan de realizar consultas habituales y permiten el uso de alguna de las plantillas instaladas en el AD CS, por lo tanto pueden ser usadas por un pentester o un administrador de sistemas Windows para ver el estado del servicio y comprobar que todo está bien, o no.
A continuación, enseñaré el uso Certify y, en el siguiente post, hablaré de Certipy

Enumeración con Certify

En primer lugar, Certify es un proyecto que es necesario compilar, está desarrollado en C#. Una vez se cuenta con el binario correspondiente, se puede ejecutar desde una estación de trabajo o, directamente, sobre el controlador de dominio si se tiene acceso a él.

En primer lugar, se pueden listar todas las plantillas con «find» y filtrar aquellas que pueden ser vulnerables con /vulnerable

Puedes solicitar un certificado digital utilizando una de las plantillas disponibles, esta es, de hecho, una de las acciones más comunes cuando se utiliza AD CS por parte de aplicaciones en el entorno o manualmente por administradores.

Lo que devuelve Certify en este caso, es un certificado PEM directamente en la terminal. Es necesario copiar tanto la clave privada como la pública e incluir dichos contenidos en un fichero. A continuación, con la ayuda de OpenSSL se podría generar un certificado funcional, que se podrá utilizar para llevar a cabo el proceso de autenticación en donde el usuario tenga permitido iniciar sesión. El comando de OpenSSL para convertir a PFX aparece justo después de que Certify finaliza la ejecución del comando «request».
Es importante tener en cuenta que OpenSSL pedirá una contraseña, en este punto no es necesario introducir nada, pero si se indica una contraseña, luego hay que usar la opción «/password» en Rubeus y poner lo que se haya introducido.

Con este certificado, además de poder realizar procesos de autenticación en alguna de las máquinas del dominio, también podría utilizarse para pedir un ticket TGT al KDC de Kerberos.

Este es uno de los casos de uso más habituales con Certify, no obstante, hay muchas más opciones interesantes que merece la pena explorar. Es posible enumerar no solamente las plantillas disponibles, además se pueden consultar los detalles de la PKI

Si te interesa aprender más sobre AD CS y algunos de los escenarios más habituales, te recomiendo leer Certified Pre-Owned: Abusing Active Directory Certificate Services de Will Schroeder y Lee Christensen

En el siguiente post, explicaré el uso de Certipy, que si bien resulta muy parecido a Certify, tiene sus peculiaridades.

Un saludo y Happy Hack!
Adastra.

Categorías
Hacking

Nueva edición del libro «25 técnicas aplicadas a campañas de RedTeam y Hacking»

Hace exactamente dos años he publicado la primera edición del libro «25 técnicas aplicadas a campañas de Red Team y Hacking» en Amazon. En este documento he intentado plasmar las técnicas que, a mi juicio, son las más interesantes en cada una de las etapas de una campaña de Red Team.
La forma en la que lo he redactado invita al lector a probar las herramientas y utilidades descritas. En otras palabras, es un documento práctico.
No obstante, el tiempo pasa y en estos dos años algunas herramientas han quedado obsoletas o directamente han desaparecido de GitHub. Por poner un ejemplo, en los últimos dos años el protocolo de TOR ha cambiado y ahora solo se aceptan direcciones ONION V3. Todas las direcciones de este tipo que aparecían en el documento, actualmente ya no funcionan.
Como me hace especial ilusión mantener el documento actualizado y que aporte información valiosa a los lectores, he decidido darle un repaso completo y corregir estos detalles.
En la nueva edición encontrarás, en las primeras páginas, notas sobre los cambios que se han incorporado en cada uno de los «tips» o técnicas, así como aquellos que se conservan intactos como en la primera edición.
Además, dado que es un libro pensado para que lo puedas poner en práctica desde las primeras páginas, en cada una de las URLs que aparecen en el documento se han incluido códigos QR para la versión impresa. De esta manera, en la medida que vayas leyendo, podrás dirigirte a la sección donde están los códigos, escanear el que quieras y visitarlo desde el móvil o tablet, así te evitas que escribir la URL completa.
Por otro lado, cómo ya habéis visto en la primera edición, hay algunas imágenes que no se aprecian perfectamente en la versión impresa. Por ese motivo, le he dado un repaso a todas para asegurarme de que tienen una buena resolución y tamaño. No obstante,  aunque las imágenes tienen mejor resolución es posible que el lector aún tenga dificultades para ver algunas cosas, por ese motivo, también he incluido un repositorio en GitHub en donde podrás visualizar la imagen en «formato digital» y algunos ficheros de configuración, así no tendrás que escribir cada línea manualmente.

Dado que ahora tengo un poco más de experiencia con Amazon, he estado más atento con el tema de la edición. En la primera, he «delegado» este trabajo a otra persona y se cometieron algunos errores de los que no era consciente hasta que salió impreso, pero en esta segunda edición he estado más involucrado en todo el proceso y creo que el documento ahora está mucho mejor maquetado y adaptado al formato de tapa blanda y e-book.

Finalmente, del mismo modo que hemos hecho con la primera edición, el dinero recaudado será donado a UNICEF. De esta manera, tengo la esperanza de que entre todos podamos ayudar a que los más indefensos puedan cubrir sus necesidades básicas y progresar.

Y esto es lo que os quería contar en este post.

¡Espero que disfrutéis la nueva edición del libro!

Por cierto, si quieres que tu copia esté dedicada, solo hace falta que te pongas en contacto conmigo por email (info@thehackerway.com), LinkedIn o Telegram 🙂

Un saludo y Happy Hack!
Adastra.

Categorías
automatizacion Hacking Hacking Python Services - Software

Cómo usar Shodan desde tus scripts en Python

Demostración en vídeo de este post

Como seguramente ya sabes, existen cientos de librerías en Python orientadas al pentesting y, casi todas ellas, son estupendas. En otras ocasiones te he hablado sobre cómo integrar Python con Nmap y otros posts relacionados con este lenguaje de programación. En esta ocasión, te enseñaré cómo puedes integrar toda la potencia de Shodan en tus scripts Python. En realidad, el procedimiento no es nada complicado, solamente necesitas tener instalado el SDK de Shodan para Python y una cuenta en dicha plataforma. Con eso, será suficiente para que puedas empezar a utilizar la API del SDK y realizar todo tipo de consultas. Para realizar búsquedas en Shodan, existen una serie de filtros que puedes utilizar desde la aplicación web o desde tus scripts. Algunos de dichos filtros son los siguientes

  • city: En los resultados de la búsqueda, solamente aparecerán aquellos que corresponden con la ciudad indicada.
  • country: En los resultados de la búsqueda, solamente aparecerán aquellos que corresponden con el país indicado.
  • geo: Permite encontrar los dispositivos que se encuentran en el radio definido por la latitud y longitud indicada.
  • hostname: En los resultados de la búsqueda, solamente aparecerán aquellos que corresponden con el nombre de dominio indicado.
  • net: Permite realizar búsquedas dirigidas a segmentos de red concretos.
  • os: Permite filtrar los resultados con un sistema operativo determinado.
  • port: Permite filtrar los resultados con un puerto determinado.

Son solamente algunos de los filtros más comunes, pero como siempre, lo mejor es leer la documentación https://www.shodan.io/search/filters 

Como se ha comentado antes, para utilizar la API es necesario tener una cuenta de usuario y de esta forma obtener una Developer Key. El uso de las características básicas de Shodan no supone ningún coste para un desarrollador, sin embargo existen add-ons que no son gratuitos pero que incorporan características muy interesantes, como por ejemplo la capacidad de realizar búsquedas específicas para servicios como Telnet o HTTPS, acceso a todos los filtros disponibles desde la API y acceso sin restricciones a los resultados de las consultas.
Se trata de características que no son nada despreciables y que pueden ser adquiridas por un precio razonable.

Para descargar e instalar la librería de Shodan para Python se sigue el mismo patrón que muchas de las librerías disponibles para este lenguaje. Es posible hacerlo utilizando easy_install, pip o directamente ejecutando el script setup.py con el argumento install. La librería se encuentra en el repositorio PYPI

Para usar la API de Shodan debes crear una instancia de la clase shodan.Shodan especificando como único argumento una Developer Key válida que se encuentra asociada a una cuenta de usuario.

En el siguiente script se puede apreciar el uso básico de Shodan, en donde se obtiene un objeto del tipo shodan.Shodan y con este, se realiza una búsqueda abierta con una palabra introducida por parte del usuario. Finalmente, el script enseña el número total de coincidencias con el filtro indicado y los 10 primeros registros en la terminal.

Lo cierto es que la librería, como tal, cuenta con pocas más opciones. Es sencilla y te permite realizar búsquedas en Shodan. En otras palabras, cumple con el objetivo para el que fue creada.

A partir de la información que te devuelve Shodan, puedes, por ejemplo, utilizar otras librerías y herramientas disponibles para Pentesting y Hacking en Python, las cuales te permitirán crear utilidades muy potentes y que te ayudarán a automatizar el trabajo.

Si te ha parecido interesante, te leo en los comentarios.

Un saludo y Happy Hack.
Adastra.