CMSsc4n 2.0 – Identificando CMS al vuelo

Buenas,

En primer lugar, felices fiestas y buena salida y entrada de año!!!

Tras un breve parón tras el maratón de CON’s de Noviembre, vuelvo a escribir por aquí para traer una nueva actualización sobre una de mis tool’s, en este caso CMSsc4n. CMSsc4n fue anunciada públicamente en el Eastmadh4ck2017 en mi ponencia Todo sobre mi objetivo y por el mes de Junio la liberé en mi github 

Para no alargar en exceso esta entrada, os dejo el post sobre la tool que escribí en su día:

CMSsc4n – Descubrimiento CMS al vuelo

 

Llevaba ya una temporada buscando tiempo para poder ponerme a tocar de nuevo el código pues fue el típico desarrollo «spaguety» como diría nuestro amigo @Goldrak y además quería incluir una serie de mejoras significativas. Sin embargo, la mayor motivación que me ha llevado a hacerlo ha sido que @Kitploit se haya fijado en mi herramienta mencionándolo en su web y twitter ayudando a su promoción:

 

 

Buscando un poquito en Internet se encuentran bastantes post’s sobre la tool:

 

Además, un miembro de la comunidad del blog, me comentó de colaborar con un proyecto suyo. Este tipo de feedback a nivel personal me motiva más aún 😉

Tras esto he buscado un hueco y estoy muy contento de poder presentar una importante actualización de CMSsc4n 2.0. A nivel personal estoy bastante contento de cómo ha quedado.

A continuación, se indican las mejoras y nuevas funcionalidades:

  • Desarrollo modular.
  • Obtención de las últimas versiones de cada CMS automáticamente.
  • Nuevas maneras de obtener la versión para WordPress.
  • Filtrado de identificación de CMS. Esta novedad es muy interesante pues permite elegir el CMS en lugar de identificar todos los tipos y por lo tanto, realizar menos ruido en una fase de fingerprinting.
  • Entrada de datos a través de un .txt. Anteriormente estaba orientado a .json
  • Exportación de las versiones de cada CMS en excel.

Sin más se muestra una pequeña PoC de su uso.

Al encontrarse desarrollado en python, recordad bajaros las dependencias del requirements.txt. En primer lugar, se muestra el menú se ayuda:

 

Como input obligatorio es la entrada de datos con el parámetro «i» mientras el tipo de CMS para analizar «c» y la exportación «e» son opcionales.

Al no filtrar por CMS, se analizan todos los dominios introducidos para identificar si se trata de un wordpress, moodle, joomla, drupal o prestashop.

 

 

Al identificar una de las tecnologías citadas anteriormente, se muestra por pantalla así como su versión si se ha logrado obtener. Además, compara si dicho CMS cuenta con la última versión instalada o en contra, se encuentra desactualizado.

Al finalizar el análisis, se muestran las estadísticas de los CMS identificados:

 

 

Finalmente, se puede trabajar con los resultados en el fichero de exportación en excel:

 

A modo de resumen, CMSsc4n permite identificar si tras un dominio se encuentra un CMS y tratar de obtener su versión indicando si dicho CMS se encuentra actualizado o no.

Esta tool podría integrarse o relacionar su salida con herramientas de análisis de vulnerabilidades especializadas en CMS como wpscan, joomscan, drupalscan, CMSmap en función del CMS identificado. Quizás se podría incluir en futuros update de CMSc4n… 😉

Como suelo citar es una tool que a nivel personal me ayuda muchísimo y quiero compartir con vosotros por si también os puede resultar útil.

Asimismo, cualquier tipo de ayuda, colaboración o comentario es bienvenido.

Nos vemos en el siguiente post o CON 😉

Saludos.

N4xh4ck5

«La mejor defensa, es un buen ataque»

4 comentarios en «CMSsc4n 2.0 – Identificando CMS al vuelo»

  1. Buenas puedes ayudarme a instarlo? hice los requerimiento y cuando correo el siguiente comando:

    root@Kali:~/Escritorio/CMSsc4n-master# pip install -r requirements.txt
    Invalid requirement: ‘Module dependencies (installable via pip):’
    Traceback (most recent call last):
    File «/usr/lib/python2.7/dist-packages/pip/req/req_install.py», line 82, in __init__
    req = Requirement(req)
    File «/usr/share/python-wheels/packaging-16.8-py2.py3-none-any.whl/packaging/requirements.py», line 94, in __init__
    requirement_string[e.loc:e.loc + 8]))
    InvalidRequirement: Invalid requirement, parse error at «u’dependen'»

    1. Hola,

      Viendo el error, parece ser un error del propio pip. Te recomiendo que trates en primer lugar de descargar alguna de las dependencias directamente: pip install DEPENDENCIA. ¿Qué versión tienes de pip?

      Una vez descargadas, reinicia el PC que más de una vez ha sido el problema, algunas de ellas en ocasiones lo requieren.

      Saludos.

Los comentarios están cerrados.