29 oct 2015

Actualiza las versiones de software: Protégete contra los Bad Boys - OSINT y Known-Vulnerabilities (Parte II de III)

Tras recopilar información sobre diferentes bases de datos de servicios FTP en IPv4 se pueden sacar algunas cosas en claro. Algo llamativo es la diferencia de máquinas entre los meses de Abril y Julio de 2015. En abril de 2015 podemos encontrar con más de 14.000 máquinas que presentan que responden con banners de software vulnerable, asumiendo un 50% de falsos positivos, que pueden ser demasiados, podemos encontrar con más de 7.000 máquinas distribuidas vulnerables y que se encuentran a un “botonazo” para que cualquiera las pueda controlar, si no lo hacen ya.


En el mes de Julio de 2015 se pueden encontrar en las bases de datos publicadas en scans.io más de 52.000 máquinas con alguno de los banners listados anteriormente. Se puede observar como las versiones de software vulnerables aumentan considerablemente. Quizá uno de los que más llama la atención sea el software ProFTPd 1.3.3c que incrementa los banners de 9546 máquinas a 35168.


Creando el nodo central de ejecución (Remake de autopwn?)

Una vez identificadas las máquinas candidatas debemos pensar en centralizar esfuerzos. La idea de un nodo central de ejecución de exploits con toda la información procesada previamente nació de centralizar esfuerzos. Es cierto que quizá disponer de varias máquinas en el mundo y poder distribuir esfuerzos para la consecución del control sería una táctica mejor, pero la idea de la prueba de concepto es hacerlo lo más sencillo posible.

En la charla muchos vieron en este módulo una idea similar al autopwn de Metasploit, el cual ya no se encuentra en la edición Community. La información procesada previamente se clasifica en un fichero de texto con un formato específico, el cual será leído por el módulo que realicemos. El formato definido es el siguiente
  • Cada línea del fichero representa una máquina vulnerable en Internet encontrada mediante el uso de las bases de datos OSINT.
  • Los valores que deben ser leídos y que muestran diferentes atributos están separados por pipes. El primer valor indica la dirección IP de la máquina vulnerable. El segundo valor indica el módulo de Metasploit que debe ser cargado y configurado automáticamente. El tercer valor indica el puerto remoto dónde el servicio se encuentra a la escucha. Este valor se leerá y configurará en el módulo automáticamente por nuestro módulo. El cuarto valor indica qué tipo de payload se ejecutará en caso de que la ejecución del módulo indicado en el atributo 2 sea correcta. El quinto valor es opcional, pudiendo indicar atributos avanzados de los módulos, como por ejemplo InitialAutoRunScript, el cual indica que cuando se ejecute un Meterpreter se migre automáticamente de proceso.

Más adelante se podrán ver más detalles sobre el módulo, ya que tiene algunos detalles a bajo nivel que son interesantes. Además, se puede encontrar en mi Github

¿Dónde están las máquinas? ¿Nadie piensa en las máquinas!? 

Una de las ideas de esta prueba de concepto era poder demostrar que las máquinas víctimas podrían estar distribuidas por países. Esto demostraría que disponer de máquinas en distintas ubicaciones geográficas aporta un poderío y una ventaja al atacante. Para procesar la información y obtener la geolocalización de las máquinas que nos interesan se desarrolló un script que mediante un servicio similar a ip2location nos permite obtener esta información.


Como puede verse los valores que se almacenan son:

  • La dirección IP de la máquina.
  • El país dónde se encuentra la dirección IP.
  • La región / ciudad dónde se encuentra la dirección IP.
  • El código del país.
  • El fichero / software dónde se encontró la máquina.

Una vez realizado todo este proceso se pueden sacar algunos datos curiosos. Por ejemplo, la aplicación PcMan FTP 2.0.7, la cual el texto de su interfaz está en algún idioma asiático solo tiene presencia en Taiwan. Lo más curioso es que si echamos un vistazo a exploit-db con la siguiente búsqueda: https://www.exploit-db.com/search/?action=search&description=pcman nos daremos cuenta de que ese software tiene muchos agujeros. Por cada comando del FTP hay un buffer overflow, y uno se pregunta… ¿Este software está puesto ahí adrede o es casualidad?


Bien, tras analizar por encima diversos datos y ver que se cumplía uno de los objetivos de la prueba de concepto que era ver máquinas distribuidas por el mundo, debía realizar un script que me cogiera solo las direcciones IP para, a posteriori, poder crear el mapa gráfico. El script encargado de recolectar direcciones IP con sus códigos de país fue denominado xoxo2ip.rb. Este script facilitaba mucho la tarea de generateMap.rb, el cual utiliza un servicio online que nos presenta el mapa.


En la imagen anterior podemos ver la salida del script generateMap.rb, el cual me devuelve una dirección URL a la que podemos acceder para visualizar el mapa gráfico. Como se puede ver en el gráfico, dispondríamos de máquinas en una gran cantidad de países. Como curiosidad, y por si alguien piensa en irse a la isla de Barbados, allí salía una máquina con software vulnerable. ¿La localizáis?


No hay comentarios:

Publicar un comentario