Net Secure

Netsecure Argentina Hacklab Weblog!

Skip to: Content | Sidebar | Footer

Socat, la nueva navaja suiza (con ejemplos)

26 noviembre, 2010 (12:33) | Networking, Unix | By: Lord Epzylon

Socat, es, por decirlo de alguna manera, una nueva implementacion o version extendida del legendario netcat. Nos permite generar distintos tipos (muchos) de sockets, permitiendonos transferir información desde la terminal de nuestro Sistema operativo.

La utilidad de socat, es analoga a la de netcat en la decada de los 90 ( cuando IPv6 era un sueño y SSL una rareza), y aparece en el puesto 71 del top 100 de herramientas de seguridad.

Básicamente, esta herramienta nos da la posibilidad de hacer distintos tipos de experimentos sobre sockets, pero no solo sockets de red (ipv4,tcp,udp,SSL,ipv6 o raw), si no que también puede utilizar Pipes, archivos, la linea de comandos (STD[IN|OUT]), o incluso un archivo del /dev.

Ok, queres ver un ejemplo?

Hagamos un test, que podamos compararlo con el viejo nc, para comprender un poco su funcionamiento:

Conexion Unidireccional

Años otrora me gustaba ver los scaneos que hacian contra mi host, o los intentos fallidos de fuerza bruta contra un netcat que dejaba escuchando para ese fin.

Era tan simple como hacer:

nc -l 900 >/tmp/output

(en aquellos tiempos, la version de netcat se usaba con los parametros -lp para este uso)

Si abrimos otra terminal y ejecutamos un telnet, por ejemplo, contra el puerto 900, todo lo que escribamos va a quedar escrito en el archivo /tmp/output.

Bien, esto es algo viejo y dudo que alguien no lo sepa, pero vamos ahora como funciona esto mismo con Socat

socat -u TCP4-LISTEN:900 OPEN:/tmp/output,creat,append

Que sucede aqui?
Simplemente, lo mismo que antes.
La opción -u indica una conexión unidireccional, para lo cual tenemos que indicar dos direcciones. La primera, es un socket TCP en el puerto 900, donde recibiremos el flujo de datos. La segunda dirección también es un socket, pero en este caso, un socket para abrir archivos (OPEN).

Y en este punto podemos ver la diferencia de potencial ( el voltaje? ) de esta herramienta con respecto al antiguo netcat, ya que en lugar de usar un socket de archivos, podríamos usar un socket de SSL, u otro de TCP y socat actuaría como un relay.

Tan simple como:

socat TCP4-LISTEN:900 TCP4:192.168.1.9:30

Con este comando, toda la información que llegue al puerto 900 será reenviada a la ip 192.168.1.9, puerto 30.
Este ejemplo aparece en el man de socat, donde redirige el tráfico que llega al puerto 80, a otra página.

socat TCP4-LISTEN:www TCP4:www.domain.org:www

Se va comprendiendo? Esto es básico, sin embargo de esto se desprenden algunas técnicas que podemos emplear en nuestro trabajo diario.
Suficiente por ahora.

Veremos mas en los próximos post!

Esto es todo amigos!

Comments

Comment from adastra
Time 5 julio 2011 at 08:42

Buen post, bien explicado y los ejemplos, aunque muy sencillos, son muy claros para comenzar a comprender como funciona SOCAT.
Solamente espero que publiques entradas al respecto con un poco mas de complejidad, por lo demás esta muy bien hecho tu post.

Comment from Lord Epzylon
Time 5 julio 2011 at 09:07

Gracias! tenemos un par de post colgados aún por falta de tiempo, pero lo tendremos en cuenta.

Write a comment