¿Qué es Netcat?
¿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
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.
|
La respuesta del servidor fue la siguiente:
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:
¿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”
¿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.
En la próxima imagen podrá ver un intercambio de mensajes entre el cliente “behackerpro@developer” y el servidor “santiago@santiago”
¿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
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.
Chequeamos el archivo en el host que lo recibió, se puede ver el contenido en la imagen.
Finalmente, calculamos el hash en el archivo original y en la copia, utilizando el algoritmo sha256, y verificamos la coincidencia de los valores:
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://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
Introducción a la Seguridad en AI – Parte 2
Después de entender los principales ataques, técnicas, tácticas y procedimientos...
Leer másIntroducción a la Seguridad en AI
Cuando hablamos de Seguridad en AI (Artificial Intelligence o Inteligencia...
Leer más5 pilares para Hackers o Profesionales en Ciberseguridad desde una perspectiva técnica
Después de la master class que realizamos en Be Hacker...
Leer más