sábado, 5 de marzo de 2016

Crea tu backdoor automatizado con BackdoorMe


Hola hackers, en esta ocasión vamos a ver como utilizar BackdoorMe.

BackdoorMe se trata de una utilidad de post-explotación capaz de crear un backdoor o puerta trasera en equipos Unix. Dispone de una interfaz similar a la de Metasploit.

Para transferir la puerta trasera al equipo objetivo, necesitamos que tenga el servicio SSH corriendo (o abrirlo en su defecto) y las credenciales del mismo.

BackdoorMe viene con una serie de puertas traseras, módulos (se pueden usar con cualquier puerta trasera para hacerlas mas potentes) y auxiliares (para ayudar a la persistencia). A continuación una lista de todo lo que nos ofrece.


MODULOS
  • Adduser: agrega un nuevo usuario en el equipo.
  • Cron: añade una puerta trasera existente al archivo crontab del usuario root para que se ejecute con cierta frecuencia.
  • Poison: envenena el archivo ejecutable de un comando del equipo objetivo, de esta forma, cada vez que el usuario utilice dicho comando, se ejecutará la acción correspondiente al comando y el backdoor.
  • Startup: permite que el backdoor se ejecute al encender el sistema, o meterlo en el archivo .bashrc para que se ejecute cada vez que se abre una consola o terminal.
  • Web: se instala un servidor web y coloca una web que desencadena la puerta trasera. Solo hay que visitar ésta y la puerta trasera se iniciará.
  • Whitelist: lista de las IPs que pueden conectarse al backdoor.
PUERTAS TRASERAS 
  • ssh_port: cambia el puerto para el servicio SSH
  • remove_ssh: desactiva el servicio SSH. Se usa cuando terminamos la sesión.
  • ssh_key: crea una clave RSA.
ESCALATION
  •  Shell: se trata de una puerta trasera para escalada de privilegios, similar a SetUID. Una vez ejecutada, podemos entrar como un usuario normal y ejecutar el comando .bash -p para obtener una shell con privilegios root.
  • SetUID: nos permite infectar el archivo bin de un comando (por ejemplo nano) y, entrando con un usuario sin privilegios, poder ejecutar el comando como si del usuario root se tratase.
WINDOWS
  • Windows: usa msfvenom para crear un backdoor para windows. 
SHELL
  • Netcat: usa netcat para obtener una shell interactiva.
  • Web: instala apache en el equipo objetivo y envía un payload, luego basta con entrar en el servidor y ejecutar el payload para, con multi/handler escuchando, obtener una shell.
  • PHP: ejecuta un backdoor php que redirige el resultado a bash.
  • Bash: un simple script bash para conectarse a una IP y puerto especifico.
  • Metasploit: usa msfvenom para crear un payload reverse_tcp y lo ejecuta para obtener una shell meterpreter.
  • Perl: script escrito en perl y redirige el resultado a bash.
  • Pupy: esta shell utiliza el backdoor creado por n1nj4sec (enlace).
  • Python: script escrito en python para ejecutar comandos y recibir los resultados en bash.
AUXILIARES
  • Web: instala el servidor web Apache en el objetivo.
  • User: crea un nuevo usuario en el objetivo.
  • Append: añade o quita el atributo append (nos permite añadir información) a cualquier archivo del sistema.
  • SimpleHttp: instala el servidor python SimpleHttp en el objetivo.
  • Keylogger: instala un keylogger en el objetivo con opción de recibir el log en un mail dado.
  • Immutable: añade o quita el atributo immutable a cualquier archivo del sistema. 

Como podeis ver tenemos infinidad de opciones para colocar nuestro backdoor o puerta trasera.

Lo primero que haremos será descargar BackdoorMe y prepararlo para su uso.


Ya está listo para usarlo, ahora lo ejecutamos con python master.py.


Para ver los comandos que tenemos disponibles escribiremos help.


En esta PoC usaremos como equipo objetivo una máquina virtual con Metasploitable 2 (192.168.0.195).

Lo primero que haremos será cambiar la ip local, que es donde se conectará el backdoor, tenemos que poner la ip de nuestra máquina atacante. Para esto usamos el comando change_ip, pulsamos enter, y escribimos la IP.

A continuación añadiremos nuestro objetivo.

  • Target Hostname: IP del objetivo
  • Username: nombre de usuario del servicio SSH.
  • Password: contraseña del servicio SSH.

Decir que BackdoorMe soporta varios targets (objetivos) a la vez, los diferencia asignandoles números (1, 2, 3...). Para usar el backdoor en uno u otro target, la sintaxis es la siguiente:

 use <backdoor> <numero target>
Ejemplo: use shell/metasploit 2 


Establecemos la conexión por SSH con el comando open.


 Ya estamos conectados al objetivo.

Con el comando list vemos los diferentes backdoors disponibles. Vamos a ver el funcionamiento de algunos de ellos.


METASPLOIT

Este backdoor nos devolverá una shell meterpreter.


Para cambiar cualquiera de las opciones del backdoor usaremos la siguiente sintaxis:

set <nombre opción> <nuevo valor>
Ejemplo: set name apache

Una vez cambiadas las opciones a nuestro gusto, ejecutamos el backdoor con exploit.


En la captura podemos ver los pasos que sigue, también nos dice que ejecutemos Metasploit y pongamos a la escucha el exploit multi/handler.




Con todo listo, pulsamos enter (en la consola de BackdoorMe) y obtendremos la shell.



NETCAT

En este ejemplo, utilizaremos el backdoor netcat junto con el módulo poison.

Igual que hicimos antes, seleccionamos el backdoor y lo configuramos.


Ahora añadimos el módulo al backdoor.


Como vemos en la captura para cambiar las opciones del módulo se usa la siguiente sintaxis:

set <nombre modulo>.<opción> <valor> 
(fijaros que entre el módulo y la opción, hay un punto)

Ejemplo: set poison.name ls

Yo voy a dejar las opciones tal cual puesto que el comando ls se utiliza bastante y es lo que nos interesa. Usamos el comando exploit para ejecutarlo.


Al igual que paso con el backdoor de Metasploit, en este también nos indica lo que debemos hacer para obtener la shell. Abrimos una nueva terminal/consola y ponemos el netcat a la escucha como nos indica: nc -v -n -l -p 4444.

Pulsamos enter en la consola de BackdoorMe y obtendremos la shell.



Gracias al módulo poison, ahora cada vez que se use el comando ls en el equipo objetivo, ejecutará el backdoor y, teniendo el netcat a la escucha, obtendremos una shell.


ESCALATION/SHELL

Con este backdoor, aunque entremos con un usuario sin privilegios, obtendremos una shell con privilegios ejecutando el comando .bash -p.


Esta vez no nos va devolver una shell directamente como en los vistos anteriormente. Para ver que ha funcionado, nos conectaremos por SSH al equipo objetivo con un usuario sin privilegios.


Ahora ejecutamos el comando antes mencionado y obtendremos la shell con privilegios.


BackdoorMe además dispone de un backdoor (access/remove_ssh) que nos permite cerrar el servicio SSH  en el objetivo al finalizar.


Si hacemos un nmap al objetivo apuntando al puerto 22 SSH, vemos que esta cerrado.




Hasta aquí la PoC de hoy, espero os haya gustado y recordar que está realizado con fines educativos, no nos hacemos responsables del mal uso que se le pudiera dar.

4 comentarios:

  1. Hola, he estado leyendo el articulo y tiene muy buena pinta.
    Quería preguntarte algo, esto hay q subirlo como root para que por ejemplo el escalado de privilegios funcione? es que en este caso no tendría mucho sentido, más que conectarte con un usuario normal y luego escalar.
    Gracias!

    ResponderEliminar
  2. Para subir el backdoor no es necesario tener privilegios root, solo una conexion ssh con la máquina objetivo (el usuario del servicio ssh no es necesario que disponga de privilegios). Como tu bien dices no tendría sentido necesitarlos, es el backdoor el que se encarga de elevarlos. Por ejemplo, en el caso de la Escalation Shell se consiguen los privilegios mediante el comando ".bash -p".

    Espero haber resuelto tu duda.
    Un saludo, vasco.

    ResponderEliminar
  3. este backdoor es en linea o crea algun ejecutable?

    ResponderEliminar
  4. Lo que hace es crear un archivo (con el nombre que indiquemos) con el payload en la carpeta /tmp del equipo objetivo, que es el encargado de realizar la conexión con nuestra máquina. En el caso de que se añada algún módulo, también modificará algunos archivos dependiendo del módulo elegido.

    Un saludo, vasco.

    ResponderEliminar

Google Analytics