transcribo la sucesion de mensajes 'in the other side'

que han llevado a algunos avances al respecto :
axi:
holas!
si quereis os echo una mano con lo que veais que os cuesta mucho ( no quiero quitaros la afición de sacarlo ), estaré encantado a mi estas cosas no me cuestan nada. Cool si me dais una lista con las cosas a instalar enseguida os las puedo poner en marcha.
He leído algo sobre rfakeap por algún post. Rfakeap simula puntos de acceso falsos con valores coherentes enviando tramas beacon o probe response, pero no sirve para lo mismo que el Karma, rfakeap tan solo sirve para "molestar" como fakeap, con la diferencia de que fakeap utiliza iwconfig para funcionar y se puede advertir fácilmente que genera puntos de acceso falsos fijándote en valores de las tramas que genera, rfakeap utiliza sockes raw y la inyección de tráfico para `poder generar valores más coherentes.
En resúmen, es un programa interesante para hacer "fuzzing", molestar a alguien o intentar petar algún IDS pero no para utilzarlo como "rogue ap".
Un saludo,
rh3nt0n:
axi:
hola rh3nt0n,
pues ese error es el típico en el que por alguna razón no le estás asignando una IP o al menos una IP válida, me he bajado el Karma para echarle un vistazo.
Echándole un vistazo al módulo DNS,
def run()
# Retrieve IP address from NETWORK-INTERFACE
@address = @mod.requires['NETWORK-INTERFACE'].options['address'] or
raise "Require address option from NETWORK-INTERFACE"
if (@mod.options['port'])
@port = @mod.options['port']
else
@port = 53
end
# MacOS X workaround
Socket.do_not_reverse_lookup = true
@sock = UDPSocket.new()
@sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_REUSEADDR, 1)
@sock.bind(@address, @port) # Aqui es donde da el fallo
falla en la última linea porque @address no es correcto,
@address = @mod.requires['NETWORK-INTERFACE'].options['address'] or
raise "Require address option from NETWORK-INTERFACE"
lo he sacado por pantalla y me da esto,
169.254.133.7, la ip por defecto que tiene asignada en la configuracion del modulo del AP en modules/servers/AccessPoint/module.xml
( Por cierto, en vez de realizar enlaces simbólicos a las wireless-tools, sería más correcto modificar sus valores en el fichero de configuración del módulo o en el de etc/)
Sin embargo, me fijo y esa ip no está asignada a la interfaz que se especifica en el fichero de configuración, esto se realiza mediante el comando "ifconfig" en el módulo AccessPoint. Me fijo en el loader.rb y resulta que crea un nuevo hilo para correr cada módulo, por lo cual la conclusión es sencilla, al módulo AccessPoint no le da tiempo de poner la ip cuando el módulo DNS server trata de bindearse a la ip, la típica condición de carrera.
Dos soluciones :
1) ejecutalo varias veces rapidamente seguidas hasta que asigne la ip.
o si quieres
2) Métele la ip a mano a la interfaz, ifconfig ip netmask antes de ejecutar el Karma, por ejemplo :
ifconfig ath0 169.254.133.7 255.255.0.0 que es la que viene por defecto.
Curioso no? hemos encontrado un pequeño bug en el Karma.
El tema es, que dependiendo de diversos factores, o puede no fallarte nunca o puede fallarte varias veces seguidas.
Igual les mando un correo.
Ya me contarás.
Un Saludo!
Editado : Ah, se me olvidaba, yo no he usado ninguna versión de ruby diferente a la del WifiSlax, y he modificado los valores de iwconfig y del servidor dhcp en sus correspondientes module.xml
rh3nt0n:
Citar
Curioso no? hemos encontrado un pequeño bug en el Karma.
El tema es, que dependiendo de diversos factores, o puede no fallarte nunca o puede fallarte varias veces seguidas.
Igual les mando un correo.
Ya me contarás.
Un Saludo!
si curioso ... el caso es que karma-lan.xml , tambien fallaba , y subiendo la interfaz y asignandola una ip .. en mi caso la asignaba 192.168.2.1 .. funcionaba .. los otros xml , no . lo probare ..
por cierto echale un vistazo al hilo de wep0ff de el subforo de HW , me parece una herramienta interesante y sencilla de utilizar .. recivi un correo esta tarde de la lista de secuwifi ..
a ver que te parece ..
saludos
axi :
Yo no he usado nunca el Karma, pero echándole un vistazo comentar esto.
Cada módulo tiene su propia configuración por defecto en el fichero module.xml dentro del directorio modules/servers/NOMBREMODULO/ junto con su fichero fuente en ruby. Os recomiendo que le echeis un vistazo.
los ficheros de etc/, como karmal.xml, karma-scan.xml, y karma-lan.xml, invocan en un determinado orden a esos módulos, y pueden además cambiar los valores por defecto especificados en los ficheros module.xml de cada uno.
El orden en el que se cargan depende de el orden en el que esten especificado en estos ficheros de configuración general. Aquí os pongo un ejemplo.
En karma-lan, le da a la variable interface del módulo NETWORK-INTERFACE el valor "ath0" como se puede observar abajo.
Después carga los módulos que le interesan en el orden que le interesan, carga Network interface primero para pasarle una ip válida al resto de módulos, dhcp server etc...
Código:
karma-lan.xml
<karma>
<option module="NETWORK-INTERFACE" name="interface" value="ath0"/>
<!-- Run modules -->
<run module="NETWORK-INTERFACE"/>
<run module="DHCP-SERVER"/>
<run module="POP3-SERVER"/>
<run module="FTP-SERVER"/>
<run module="CONTROLLER-SERVLET"/>
<run module="EXAMPLE-WEB-EXPLOIT"/>
</karma>
Sin embargo, en karma.xml no se utiliza el módulo network interface, y vemos como se configura la variable interface pero esta vez del módulo ACCESS-POINT, otorgándole también el valor ath0.
Igual que en karma-lan.xml, después de configurar ciertos valores, se cargan los módulos, que como veis en esta ocasión se carga primero el módulo AccessPoint, porque esta vez, es el encargado de asignar una ip con ifconfig. A diferencia del módulo NetworkInterface, que si no configuras la ip de la interfaz trata de coger la que tenga puesta, este tiene especificada una ip por defecto y trata de poner esa ip a menos que especifiquemos otra sin intentar coger la que tenga puesta
Código:
karma.xml
<karma>
<!-- Configure modules -->
<option module="ACCESS-POINT" name="ssid" value="karma"/>
<option module="ACCESS-POINT" name="interface" value="ath0"/>
<!-- Run modules -->
<run module="ACCESS-POINT"/>
<run module="DHCP-SERVER"/>
<run module="POP3-SERVER"/>
<run module="FTP-SERVER"/>
<run module="CONTROLLER-SERVLET"/>
<run module="EXAMPLE-WEB-EXPLOIT"/>
</karma>
Aquí se ve como actua el módulo NetworkInterface
Código:
Parte de código de NetworkInterface
if @options['address'] and @options['netmask']
@configure = true # we configure the interface
# esto significa que no tienes la ip y máscara configurada
else
get_ip_and_mask() # Y si no, pilla los valores que tiene la interfaz porque no se los has especificado.
end
Cita de: rh3nt0n en Hoy a las 17:31
si curioso ... el caso es que karma-lan.xml , tambien fallaba , y subiendo la interfaz y asignandola una ip .. en mi caso la asignaba 192.168.2.1 .. funcionaba .. los otros xml , no . lo probare ..
¿Vas pillando ahora porqué?
Si usabas el fichero karma-lan.xml cargabas el módulo NetworkInterface, este módulo si no le especificabas una IP trataba de coger la que tenía la interfaz puesta, pero como no tenia ninguno fallaba. Al ponerle la ip, ya le dabas la opción de coger la que tuviera puesta y a funcionar.
¿Porqué te falla en otros?
Simplemente porque tiene un fallo de condición de carrera que aparece ocasionalmente, me imagino que al ejecutarlo desde un ramdisk se ejecuta más rápidamente que lo habitual en un disco duro y por eso es más propenso a fallar.
En los otros XML, usa el módulo AccessPoint, que a menos que le especifiques una IP, trata de asignar la que tiene por defecto que aparece en su module.xml. Es esta ip la que se le pasa los demás módulos para ser utilizada,pero como tiene ese fallo de condición de carrera a veces falla, porque llega el módulo siguiente y no le ha dado tiempo a asignar la IP y el módulo trata de bindearse a la ip por defecto pero no hay nadie con esa IP.
El tema es, que no puedes asignarle cualquier ip,
tiene que ser la ip que le has configurado o si no has puesto ninguna la que trae por defecto que es
169.254.133.7 otras ips no servirán. Si quieres cambiar la configuración deberías poner esto en el karma.xml o karma-scan.xml
Código:
<option module="ACCESS-POINT" name="address" value="192.168.1.1"/>
<option module="ACCESS-POINT" name="netmask" value="255.255.255.0"/>
Y después ifconfig interfaz 192.168.1.1 netmask 255.255.255.0.
Aunque si ejecutas varias veces seguido el karma, debería funcionarte bien sin tocar nada.
P.D
Aquí esta lo que os comentaba, que no hacia falta hacer los enlaces, sino que era más correcto cambiar la ubicación de las herramientas en el module.xml
Código:
<?xml version="1.0"?>
<module
id = "ACCESS-POINT"
version = "0.0.0"
name = "HostAP-based Access Point"
file = "accesspoint.rb"
class = "AccessPoint">
<!-- A longer description of what this module is/does -->
<description>
Runs an 802.11 Access Point on this host.
</description>
<!--
-- Module options and defaults
-->
<!-- Command-line tool and file paths -->
<option name="ifconfig" value="/sbin/ifconfig"/>
<option name="iwconfig" value="/usr/sbin/iwconfig"/>
<option name="iwpriv" value="/usr/sbin/iwpriv"/>
<option name="iwevent" value="/usr/sbin/iwevent"/>
<option name="messages" value="/var/log/messages"/>
<!-- Wireless options -->
<option name="interface" value="ath0"/>
<option name="radiomode" value="b"/>
<option name="allssids" value="true"/>
<option name="cloaked" value="true"/>
<option name="auth" value="open"/>
<option name="ssid" value="karma"/>
<option name="channel" value="1"/>
<!-- Ethernet interface options -->
<option name="address" value="169.254.133.7"/>
<option name="netmask" value="255.255.0.0"/>
<!-- Additional symbols (if any) provided by this module -->
<provides id="NETWORK-INTERFACE"/>
</module>
Ya podeis perdonar, a veces me paso, si no sabeis programar igual os parece un coñazo de explicación, pero trato de explicarlo de manera que se vean mis deducciones. rolleyes rolleyes rolleyes
rh3nt0n :
Bueno pues lo he probao ... y joder ... lo que hace una buena explicacion

... funciona !!
solo que con los madwifi-ng .. hay que crear al igual que con el wep0ff ... dos interfaces (al menos es como me ha funcionado ami ) una en modo monitor y otra en modo master )
solo he cambiado las lineas que tu comentas :
Código:
<option module="ACCESS-POINT" name="address" value="192.168.1.1"/>
<option module="ACCESS-POINT" name="netmask" value="255.255.255.0"/>
y he creado las interfaces ..
wlanconfig ath0 destroy
modprobe -r ath_pci
modprobe ath_pci autocreate=master
wlanconfig ath create wlandev wifi0 wlanmode master nosbeacon
wlanconfig ath create wlandev wifi0 wlanmode monitor nosbeacon
he lanzado karma con la interfaz en modo monitor ...
# cd karma-*/
# ./bin/monitor-mode.sh ath1
# (cd ./src/ && make) && ./src/karma ath1
una vez ha visto los ap ... ctrl+c
he lanzado karma.xml ...
ifconfig ath0 up
# ./bin/karma etc/karma.xml
despues de un ratillo .. tanto la zaurus .. que esta tarde ha estado jueguetona como el portatil con windows .. han acabado conectados a el falso ap ..
unas imagenes ..
aqui se puede ver el falso ap .. y los dos clientes conectados a el ..

aqui se puede ver la pantalla de el portatil con el visor de redes , y conectado a el ap falso .. con el nombre de mi red .. y esta sin seguridad habilitada.

es evidente que me queda mucho por aprender sobre la utilidad de karma , pero gracias a ti
axi vamos avanzando
me queda por probar con karma-scan.xml .. supongo que la raiz de los problemas al usarlo , aparte de mis nulos conocimientos al respecto sera la necesidad de utilizar madwifi-ng en wifislax ..
hay que seguir probando ..
saludos
Para que no se pierda ....
al menos vamos avanzando ...
saludos