
El próximo 7 de octubre empieza la PyConEs y el domingo 9 de octubre hablaré sobre cómo crear tu propio Shodan de casa con Python y MongoDB. Pero antes de ir aun debemos hablar sobre varios bots más que tenemos que crear. Ya hablamos sobre “Nobita-bot.py” y “Shizuka-bot.py“, este último proporcionando a nuestro nuevo bot la información necesaria para funcionar el nuevo miembro de la familia “Suneo-bot.py“.
- Cómo crear tu propio Shodan: mongoDB [parte I]
- Cómo crear tu propio Shodan: python+nmap [parte II]
- Cómo crear tu propio Shodan: Sockets [parte III]
- Cómo crear tu propio Shodan: 100 IPs [parte IV]
- Cómo crear tu propio Shodan: detección de servicio web [parte V]
- Cómo crear tu propio Shodan: geoip e insert en mongodb [parte VI]
- Cómo crear tu propio Shodan: una IP para gobernarlos a todos [parte VII]
- Cómo crear tu propio Shodan: ip reverse robtex [parte VIII]
- Cómo crear tu propio Shodan: detección de WordPress, Joomla, Drupal [parte IX]
Ya hablamos del bot Shizuka que se encargará de obtener los dominios asociados a una ip a través de ip reverse que Robtex nos muestra en su web. Ahora lo que nos faltaba era cómo navegaremos una a una de cada web para clasificaras como WordPress, Joomla o Drupal.
Para ello crearemos el nuevo bot “Suneo-bot.py“. Con la librería BeautifulSoup parser html obtendremos el “meta generator” de las diferentes web y buscaremos “Joomla” o “Drupal”.
Es cierto que deberemos aumentar en próximas versiones nuevas medidas de detección ya que, son muy básicas. Podemos implementar tanto para Joomla y Drupal una búsqueda del login: /administrator, /admin, etc. Además también podemos buscar directorios y archivos específicos de cada cms. Sin embargo en esta primera versión solo buscaremos el Generator.
Si estas interesado empezar a programar con Python: QuantiKa14 desde 2013 oferta un curso online por solo 110 €
Para WordPress será diferente ya que, después de presentar el ILLOWP en la WordCamp de Sevilla 2016 he reutilizado el código. Podéis ver la presentación pinchando en este enlace.
Lo primero que haremos será buscar “wp-content” en el código html. Existe un problema. Una web que tenga enlaces a otra web con WordPress podría darnos un falso positivo. Para solucionarlo tendremos que crear una función que compruebe que el enlace que contenga “wp-content” hace referencia a la misma web que estamos escaneando.
En caso de no encontrar “wp-content” en el html irá hasta el famoso “/readme.html” que es un archivo que aunque lo borremos se volverá a crear en cada actualización y muchas web se les olvida quitar. Este archivo contiene la versión y puede ser interesante saber si lo tenemos.
El código esta subido a Github.
¡Nos vemos en la PyConEs!