Estoy tratando de envolver mi cabeza alrededor de la WPA / WPA2 4-way handshake en un intento por determinar si es posible que un punto de acceso inalámbrico deshonesto recupere una versión de texto plano (o hash) de la contraseña de un enrutador que se entrega a través de un formulario de autenticación legítima solicitada por un cliente OS nativo. Tengo mucha experiencia capturando apretones de manos y resolviéndolos en diferentes escenarios de pentesting, pero estoy interesado en explorar el siguiente escenario:
-
Un enrutador de honeypot no autorizado responde a una solicitud de sonda STA (con respuesta de sonda o baliza). Este honeypot inicia el proceso de autenticación WPA / WPA2.
-
El cliente, creyendo que el AP es una red conocida, intenta conectarse, pero inicialmente se rechaza porque la contraseña WPA / WPA2 no coincide con la contraseña del verdadero enrutador. Por lo que sabe el cliente, la red es la misma, sin embargo, el administrador ha cambiado la contraseña. El OS / Network Manager presenta un formulario de autenticación de sistema operativo nativo (probablemente con una contraseña ya completada). El cliente envía la contraseña a la red de honeypot que utiliza el SSID temporal de la red de confianza.
-
???. ¿Es posible que el honeypot, que está presentando a la STA una solicitud de autenticación legítima (utilizando una contraseña WPA arbitraria en el enrutador) vea la versión de texto sin formato de la contraseña que la STA envió para intentar autenticarse? De no ser así, ¿en qué formato se presenta esta contraseña al AP para la autenticación?
Estoy interesado en aprender las opciones actuales (cli / herramientas) para este tipo de ataque de phishing (nuevamente, confiando completamente en un formulario de autenticación WPA del sistema operativo ingenuo, no en una página de phishing HTML cautiva del portal). Si no existe ninguno, tengo curiosidad de que WPA / WPA2 permita incluso que se produzca el escenario descrito en los pasos anteriores. Soy un programador muy cómodo y estoy dispuesto a parchear Hostapd o usar libpcap para implementar este tipo de funcionalidad si es necesario. Solo tengo problemas para determinar si este tipo de ataque es posible.