CÓMO CREAR TU PROPIO SHODAN: GEOIP Y INSERT MONGODB [PARTE VI]

shodita

En la última entrada sobre cómo crear tu propio Shodan de casa hablamos sobre cómo detectar un servicio web en una servidor. Sin embargo en la entrega número IV hicimos una demostración con 100 ips. En esa prueba de concepto guardábamos la información en un TXT, ahora lo haremos insertándolo en nuestra colección “Shodita” en mogodb.

Para hacer esto solo deberemos hacer 2 modificaciones en nuestro bot en Python. La primera será modificar en nuestra función principal para que genere todas las posibles IPs versión 4 que existe.

shodita-parte6-1

Cada host de una red, tiene asignada una dirección IP única que se utiliza para comunicarse con otros hosts en dicha red. Cada octeto, o parte de una dirección, debe ser un número entre 0 y 255 y, como consecuencia, habrá un máximo de 4.294.967.296 direcciones disponibles para uso. Sin embargo, un gran número de direcciones se reservan para uso local y, por ello, no están disponibles para Internet.

Según nuestra prueba de concepto tardaríamos cientos de años, -como en la película interestelar Joseph Cooper se encontraría con su hija después de terminar el último escaner de Shodita- para facilitar esto crearemos un sistema paralelo que consistirá en miles de bots con diferentes rangos de IPs [siguenos para saber más]. En futura entrada enseñaré como crear un framework para crear bots automáticamente con sus rangos y lanzarlos.


 

Bien después de añadir más deberes vamos a dejar claro los datos que tendremos que obtener y almacenar en nuestra base de datos:

IP La función se localiza en el main() donde generamos a través de varios FOR la IP que vamos a escanear.
Country La función geoIp(ip) es la encargada de obtener los datos de Country, City, regionName, ISP y latitud/longitud a través de un json a ip-api.com
City geoIp(ip)
regionName geoIp(ip)
ISP geoIp(ip)
Puerto Lo generamos en el main()
Banner La función banner_grabbing() tiene el objetivo a través de los sockets de obtener la respuesta con el mensaje que nos manda de respuesta el servidor a auditar.
latitud/longitud geoIp(ip)
date_insert time.strftime(“%H:%M:%S”)
date_update  Por si se debe realizar alguna modificación de algún error.

 

 

 

 

 

La función geoIp(ip) simplemente es una petición a ip-api.com y retornar el código json que nos devuelve. Posteriormente en la función main() trataremos los datos para recoger lo que queremos en las variables de la tabla de arriba.

shodita-parte6-3

shodita-parte6-6

Por último vamos a crear una función que se encargue de insertar en nuestra base de datos mongoDB:

shodita-parte6-5

Debéis estas atentos si queréis ver el código completo del bot. Para la siguiente entrega se subirá el enlace del Github aunque si nos seguís podréis verlo antes que nadie. También haremos otra prueba de concepto sobre la detección de base de datos mongodb. Un adelanto en el siguiente enlace: aquí

NOVITA-FOOTER

2 Comments

Add a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *