que-es-netcat-behackerpro-ciberseguridad

¿Qué  es netcat?

Herramienta de software considerada como una de las principales de un pentester; su creador, el Hobbit,  define esta herramienta como “una utilidad de red que lee y escribe datos a través de las conexiones de red, utilizando el protocolo TCP/IP”

 

¿Para qué sirve netcat?

Sirve para crear casi cualquier clase de conexión; conexiones entrantes y salientes, TCP o UDP; se puede utilizar para escanear puertos; puede crear una clase de “servidor” que escucha peticiones, también puede usarse como cliente para conectarse a un host y puerto específico, en resumen netcat sirve para:

 

  • Escaneo de puertos,

  • Creación de shell reversa,

  • Transferencia de archivos,

  • etc.

 

¿Cómo escanear puertos con netcat?

Si usted me preguntará acerca de la pertinencia de netcat para escanear puertos, yo le diría que podría utilizar otras herramientas que están mucho más enfocadas a esta tarea, como nmap; sin embargo, quería mostrarle que netcat es una herramienta tan versátil, que puede ayudarnos en esta tarea.

 

utilizando el comando “$nc -z -v direccionip rangodepuertos”, en este caso en particular se utilizó el comando “$nc -z -v 192.168.0.14 1-10” y, se obtuvo lo siguiente

 

netcat-ciberseguridad-behackerpro-img1

 

como se pudo ver en la imágen, se muestra que los puertos 22, 53 y 80, se encuentran a la escucha

 

¿Puedo utilizar netcat como un cliente web?

Puede utilizar netcat como “web browser”, obviamente es limitado y, nunca podrá obtener la experiencia de usuario que obtiene con el navegador de su preferencia, sin embargo, es importante comentarles que netca

 

En este caso, utilizamos el comando $nc -C  192.168.0.14 80, donde “192.168.0.14” es la dirección IP del servidor y, “80” es el puerto por el cual escucha el servidor, posteriormente se le envió un mensaje al servidor, en la imagen podrá ver lo que se llevó a cabo.

 

netcat-ciberseguridad-behackerpro-mensaje-servidor

La respuesta del servidor fue la siguiente:

 

netcat-ciberseguridad-behackerpro-mensaje-servidor-

 

Se accede vía ssh al servidor web, al cual netcat realizó la conexión, y en el archivo “/var/log/apache2/access.log”, se evidenció lo siguiente:

 

netcat-ciberseguridad-behackerpro-mensaje-servidor-img2

 

¿Cómo hacer para que netcat escuche en un puerto?

 

Para hacer que netcat se ponga a la escucha en nuestro host, en un puerto específico, se debe utilizar el siguiente comando:

 

$nc -nlvp 8088, la opción “-n” indica que se deshabilite la resolución DNS, con la opción “v” se le indica que se genere verbosidad, con la opción “l” se le indica que se ponga a la escucha y, con la opción “p” se le indica el puerto donde pa a escuchar, en este caso el puerto “8088”

 

netcat-ciberseguridad-behackerpro-mensaje-servidor-img3

 

¿Cómo hacer para que netcat se conecte a un host en un determinado puerto?

Para conectarse desde netcat hacia otro host, basta con escribir el comando

 

$nc -nv direcciónIP puerto

 

En este caso $nc -nv 192.168.0.6 8088, en este caso la “-n” indica que no se realicen traducciones de nombre, la “v” añade verbosidad, la “192.168.0.6” corresponde a la dirección IP del servidor al cual queremos conectarnos y “8088” corresponde al puerto en el cual escuchar peticiones el servidor remoto. 

 

netcat-ciberseguridad-behackerpro-mensaje-servidor-img4

 

En la próxima imagen podrá ver un intercambio de mensajes entre el cliente “behackerpro@developer y el servidor “santiago@santiago

 

netcat-ciberseguridad-behackerpro-mensaje-terminal

 

¿Cómo transferir archivos utilizando netcat?

Netcat es una herramiento que también puede ser utilizada para transferir información (archivos) a través de la red; en el próximo ejemplo, se desea transmitir el archivo “topsecret” desde el host 192.168.0.14 (behackerpro@developer) hacia el host 192.168.0.6 (santiago@santiago).

 

El host “santiago@santiago” se pone a la escucha en el puerto 8088 y redirige la salida mediante “>” hacía un archivo llamado “ArchivoRecibidotopsecret”, como se puede ver en la imagen

 

netcat-ciberseguridad-behackerpro-mensaje-terminal-img5

 

El host “behackerpro@developer”, que es en el cual se encuentra el archivo “topsecret”, se conecta al servidor “192.168.0.6” por el puerto “8088”  y, a esta conexión se redirige “<” el archivo “topsecret”, en la próxima imagen, podemos ver el procedimiento.

 

netcat-ciberseguridad-behackerpro-mensaje-terminal-img6

 

Chequeamos el archivo en el host que lo recibió, se puede ver el contenido en la imagen.

 

netcat-ciberseguridad-behackerpro-mensaje-terminal-img7

 

Finalmente, calculamos el hash en el archivo original y en la copia, utilizando el algoritmo sha256, y verificamos la coincidencia de los valores:

 

netcat-ciberseguridad-behackerpro-mensaje-terminal-img8

netcat-ciberseguridad-behackerpro-terminal

 

En la próxima entrada, le mostraré cómo utilizar netcat para generar una “Bind shell” y una “reverse shell”

 

 

fuentes

http://netcat.sourceforge.net/

https://nc110.sourceforge.io/

https://www.codementor.io/@arpitbhayani/http-requests-the-hard-way-with-netcat-5v0b1p5hg

 

¿Te gustó este post? por favor déjanos tus comentarios! Sé un buen HackerPro y comparte con tu comunidad! Suscríbete a Behackerpro

Otras Entradas

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *