lunes, febrero 27, 2023

Weaponizar ChatGPT para robar contraseñas WiFi y crear malware

ChatGPT tomó a Internet por sorpresa después de que OpenAI lo liberara al mundo hace poco más de dos meses y la opinión pública de cara a su lanzamiento ha sido bastante reveladora. Ya que al igual que muchos otros usuarios que están emocionados por su potencial, creo que este podría ser el momento en que comience a comprenderse realmente la capacidad revolucionaria de la IA en materia de ciberseguridad.

Figura 1: Weaponizar ChatGPT para robar contraseñas WiFi y crear malware

Aunque en términos generales se le describe como un chatbot, ChatGPT es mucho más que eso. Puede generar textos, explicar temas complejos, actuar como traductor, resolver problemas lógicos, participar activamente en una conversación y completar tareas complejas con una precisión asombrosa, sin mencionar su capacidad para escribir código.
Es precisamente en esta última y controvertida característica en la que nos enfocaremos por el momento, ya que la demo principal pretende demostrar cómo puede “weaponizarse” a esta inteligencia artificial para abusar de su potencial como creadora de malware.

Weaponizando ChatGPT para robar contraseñas WiFi 

OpenAI es consciente de que los usuarios malintencionados pueden abusar de ChatGPT e IA similares. Para contrarrestar esto, han introducido filtros para detectar actividad que violaría los términos y condiciones. De tal manera que, si se le formulan preguntas como la siguiente, es casi seguro que declinará siempre la petición.

Figura 3: Negativa de ChatGPT de brindar código

Como podemos notar, se fracasa en la búsqueda de obtener fragmentos de código que la IA tilda como “ilegales” y “poco éticos”. Sin embargo, formulando preguntas más precisas y atómicas se comienzan a conseguir cosas interesantes.

Figura 4: Filtrando los perfiles wifi en forma de lista

Se obtiene un comando funcional que filtra los perfiles de redes wifi almacenados en el equipo y los presenta en forma de lista. Sin embargo, la función “SelectString” utiliza como parámetro de filtrado una frase de dependencia idiomática, lo cual mermaría la funcionalidad del código en equipos configurados en un idioma diferente al español.

Figura 5: Error del bot al generar código

Se le solicita realizar un cambio al código y en efecto, lo hace, pero no de la manera correcta, pues aún implementa en él frases en español, así que de nuevo se pide una corrección.

Figura 6: Corrección de código

Más tarde, se busca la iteración de la función por cada perfil WiFi para lograr extraer las contraseñas de cada una de las redes wifi almacenadas en el equipo con las que alguna vez se estableció una correcta conexión. Todo esto en texto plano y en función de su SSID.

Figura 7: Implementación de ciclo for para iterar instrucción por cada elemento de la lista

Una vez que se obtiene satisfactoriamente la generación de un archivo de texto a nivel local con las contraseñas WiFi, se busca su exfiltración hacia un servidor remoto controlado por el atacante. Sin embargo, se experimentan problemas con la compatibilidad de los comandos en diferentes entornos.

Figura 8: Solución a error de compatibilidad

Posteriormente en pruebas manuales, se identifica el detonante del error durante el despliegue de una petición POST hacia el servidor remoto. Lo cual se solventa codificando la estructura de la petición en Base64 previo a su lanzamiento con “Invoke-Expression

Figura 9: Codificación de comando en base64 y posterior ejecución con Invoke-Expression

Una vez que la programación del malware está terminada, la dinámica de infiltración y ejecución del código malicioso en la máquina objetivo se centrará en un escenario de Red Team. En el cuál por obviedad, el tiempo para el despliegue de un ataque es un factor crucial para el éxito o el fracaso de la operación. Así que como vector de ataque inicial, se aprovecharán las bondades de los ataques HID con un USB Maligno.

Figura 10: Libro de "Empire: Hacking Avanzado en el Red Team" 
de Pablo González y Sebastián Castro en 0xWord.

Subsecuentemente las pulsaciones de teclas están programadas para dar apertura a una ventana de “Ejecutar”, seguido del referenciamiento hacia el malware, que será ejecutado en memoria a través de IEX de PowerShell en la máquina víctima. El cuál se encargará de extraer todas las contraseñas de las redes WiFi almacenadas en el equipo Windows en un archivo de texto, lo enviará al atacante en texto plano y borrará el archivo de la máquina víctima. Todo esto en solo un par de segundos.

PoC de distribución de malware con WiFi maliciosa

Resulta interesante mencionar que el malware generado puede ser guardado en cualquier formato (en este caso en texto plano con el nombre de: wifi-stealer.txt), y sin problema Powershell interpretará el contenido del archivo, pues se estará ejecutando en una de sus instancias y porque su contenido se ha escrito haciendo uso de su sintaxis. Para fines de la prueba de concepto, configuré una nueva red con el nombre y la contraseña que se muestran a continuación.

Figura 11: Red de prueba configurada para la POC

Más tarde conectamos el sistema Windows víctima a la red, con la finalidad de que la contraseña de la red WiFiElLadoDelMal” sea almacenada junto a todas las demás redes con las que alguna vez se estableció conexión.

Figura 12: Máquina Windows establece conexión con la red

El ataque HID solo demora dos segundos y al terminar, obtenemos en el equipo atacante un archivo de nombre “output.txt”, que contiene el historial en texto plano de todas las contraseñas WiFi de las redes a las que la víctima se ha conectado.

Figura 13: Fichero con las contraseñas extraídas

Si visualizamos su contenido desde la terminal de Kali Linux de manera paginada con “more”, nos encontramos con el nombre de la red y la contraseña en texto plano.

Figura 14: Contraseña de la red de prueba en texto plano

Cabe destacar que el bot no solo tiene la capacidad de generar código, sino también de procesar cualquiera ingresado por el usuario y transformarlo de acuerdo con sus deseos y necesidades. Lo cual implicaría cientos de mutaciones funcionales de una misma pieza de malware.

Figura 15: Prueba de concepto Wifi-Stealer

Finalmente, de ChatGPT podemos concluir tres cosas:

1.- Que no debemos confiar al cien por ciento en sus respuestas, porque como toda tecnología emergente dependiente de los datos, a veces falla, en especial si previamente accedió a información incompleta o desactualizada. Sin embargo, es de esperarse que el bot se vuelva más inteligente a medida que los usuarios encuentran las maneras más eficientes y certeras de realizar sus peticiones para obtener los mejores resultados.

2.- Que sus lineamientos morales pueden bypassearse con algo parecido a la ingeniería social pero dirigida a su motor de procesamiento del lenguaje natural. Simplemente fragmentando el problema general y planteándole resoluciones a manera de retos modulares.

Figura 17: ChatGPT negando escribir malware a propósito

3.- Y que, aunque sea una tecnología revolucionaria, que apareció para cambiar totalmente el juego del malware entre “el gato y el ratón” no vino para sustituir el oficio de los hackers, sino para ser uno más de los "juguetes peligrosos" en su arsenal, pues, aunque ChatGPT sea casi una criatura digital omnisciente, siempre necesitará quien le haga las preguntas correctas.

¡Saludos!


Contactar con Raphael Molina

1 comentario:

  1. Ha sido interesante el artículo. Has mostrado el potencial que tiene la IA sabiendo formulas las preguntas correctas

    ResponderEliminar