Demostración en vídeo de este post:

Una alternativa a la hora de automatizar los escaneos con Nmap es por medio de la integración entre Python y Nmap usando librerías como python-nmap, sin embargo, existen otras alternativas que también pueden ser interesantes. En este post vamos a hablar de Scanless.

Tal como se describe en el proyecto de Github, se trata de una herramienta que se puede ejecutar desde una terminal o como una librería para Python y utiliza servicios en Internet para ejecutar escaneos. Esto significa que se puede obtener información sobre los puertos abiertos en un objetivo concreto sin interactuar directamente con él, serían actividades semipasivas y que pueden encajar en lo que conocemos como técnicas OSINT.

A la fecha de redactar este post soporta los siguientes servicios online:

Tanto el uso de la librería como de la utilidad por línea de comandos es muy simple, en primer lugar se debe instalar con el comando «pip install scanless» y a continuación, se puede lanzar el comando «scanless» desde la terminal.

Cuenta con pocas opciones, las suficientes para poder lanzar escaneos con el servicio adecuado. Concretamente con «-l» se listan los servicios que soporta, con «-s» se puede indicar el nombre de uno de dichos servicios y con «-t» el objetivo que se pretende analizar.

Esto es todo, se ha ejecutado un escaneo utilizando la plataforma de un tercero. Además de esto, tal como se mencionada antes, scanless también cuenta con una API para Python muy simple que permite automatizar este proceso.

Como se puede apreciar, en primer lugar se importa el módulo «scanless», a continuación se crea un objeto del tipo «Scanless» y partiendo de dicho objeto, se ejecuta un escaneo con el servicio y objetivo indicados en el método «scan». El resultado es una estructura del tipo «dict», la cual permite acceder de forma ordenada a cada uno de los resultados del escaneo. Finalmente, como ocurre con todos los objetos dict en Python, se puede convertir a una estructura en formato JSON y si es necesario, enviar estos contenidos a un servicio Rest o guardarlos en una base de datos no relacional, lo importante es que ya se cuenta con la información y se puede procesar como resulte conveniente desde un script en Python.

Es una librería sencilla que ayuda en las primeras etapas de un pentest y que sin duda, se debería tener muy en cuenta en las primeras etapas de una auditoría externa. No te va a costar mucho, así que animate a probarla si no la conoces 🙂

Un saludo y Happy Hack!
Adastra.