Cómo hacer un Pop-Up Phishing con ibombshell en un Ethical Hacking
Las técnicas de phishing no son nada nuevo. A lo largo del tiempo se han visto multitud de ataques de este tipo utilizados por cibercriminales o pentesters en proyectos de Ethical Hacking. Esta técnica ha ido evolucionando con el tiempo y cada día los atacantes sofistican estos ataques y los hacen de una manera más profesional y creíble por las víctimas, por lo que la concienciación en las empresas es algo fundamental.
Existen multitud de variantes y herramientas para realizar este tipo de ataque, en este blog ya se habló en su día de SAPPO, de QRLJacking o de la herramienta Mercure, entre otros. Hoy quiero hablar de cómo podemos hacer un ataque de phishing a un usuario para que introduzca sus credenciales a través de iBombShell en proyecto de Ethical Hacking que evalúe el nivel de awareness y protección de los empleados de una organización.
La idea es simple. Cuando tenemos una sesión remota en un equipo (modo Silently), podemos lanzar nuestro módulo destinado a pedir las credenciales al usuario, al usuario le saldrá el típico pop-up para que ingrese su usuario y contraseña, nosotros podremos personalizar el mensaje que se le va a mostrar al usuario.
Se ha dotado al módulo para funcionar de dos maneras, una de forma persistente para guardar las credenciales en un fichero, y otra simple, que muestra el usuario y contraseña por pantalla. Esto se configura a través de una simple opción llamada “persistent”.
Ejecutando la forma no persistente
La primera opción que se va a enseña es la forma no persistente, no almacena datos en el disco. Para este caso la opción persistent debe quedar como false, se muestra a continuación la configuración del módulo.
Al lanzar el módulo en nuestra consola, veremos que en el equipo Windows objetivo salta el siguiente pop-up, para recibir la información debemos esperar la interacción del usuario, no es magia. No obstante, podemos ver que el pop-up es el mismo que nos muestra el sistema, por lo que para un usuario normal no generará sospechas.
El mensaje que se ve en el pop-up anterior no es nada más que un ejemplo, aquí entra en juego la imaginación de cada uno, es importante tener en cuenta el idioma configurado en el sistema, no le enviemos al usuario un “spanglish”. En este momento, cuando el usuario haga clic en el botón Aceptar, las credenciales en texto plano se enviarán a nuestra terminal, ya tenemos lo que queríamos. En la imagen se puede apreciar que cuento con una contraseña no muy robusta - aunque como os imagináis, da lo mismo, ya que la estamos leyendo directamente.
Obtenemos las credenciales para usarlas, imaginemos que queremos ejecutar un cmdlet que requiere que se le pase como argumento las credenciales (-Credential), necesitaremos un objeto del tipo PSCredential, es muy fácil de armar, con dos líneas lo tenemos listo, se puede ver en la siguiente imagen.
Veamos un ejemplo de uso para iniciar un job, esto aplicaría igual para cualquier comando que requiera de -Credential. Se puede observar que el primer intento se realiza con los datos correctos y el segundo con una contraseña equivocada.
Ejecutando la forma persistente
La otra opción con la que contamos almacena datos en el disco del sistema objetivo, un dato para tener en cuenta para una posible limpieza. En este caso la opción persistent debe ser true, y por tanto la única diferencia con el anterior método, la configuración del módulo queda como se ve en la siguiente imagen.
Al lanzar el módulo el pop-up no cambia, nos enfrentamos a la misma situación, la diferencia recae en el resultado, ahora no obtenemos el usuario y la contraseña en claro, si no que se guarda un fichero en el sistema “víctima”, y nosotros veremos la ruta.
Para reutilizar dicho fichero bastaría con ejecutar: Import-Clixml -Path C:\Users\b.jeg\cred.xml. Dicho uso se puede ver en la siguiente imagen.
Se adjunta una imagen del fichero generado, por si surge curiosidad. Como se puede apreciar, se trata de un simple fichero XML, donde las etiquetas S y SS son para el nombre de usuario y contraseña respectivamente.
PoC en vídeo
Ha llegado el momento de ver su funcionamiento en vídeo, os dejo un ejemplo de su ejecución sin persistencia en disco.
Para terminar, reitero la necesidad de tener un sistema de concienciación en la empresa, y que sea constante en el tiempo, de nada sirve una ‘advertencia’ al inicio.
Referencias sobre ibombshell:
- MacOS & Windows: Pentesting it with ibombshell
- ibombsehll: Whitepaper disponible
- ibombshell: Shell de pentesting en MacOS con Powershell
- ibombshell 0.0.1b liberada en el repositorio GitHub de ElevenPaths
- ibombshell: Crear una función de pentesting para MacOS
- ibombshell: Crear un módulo de extracción de claves privadas SSH en Windows 10
- ibombshell 0.0.1b en GitHub & Environment Injection UAC Bypass en Windows 10
- ibombshell: Mocking Trusted Directories UAC Bypass en Windows 10
- ibombshell en Black Hack Europe 2018: Nuevas Funciones
- Pentesting con Powershell: Saltarse AMSI y desactivar Windows Defender con iBombshell
Autor: Josué Encinar García (@JosueEncinar) Security Researcher en el equipo de Ideas Locas de la unidad CDO de Telefónica
Figura 1: Cómo hacer un Pop-Up Phishing con ibombshell en un Ethical Hacking |
Existen multitud de variantes y herramientas para realizar este tipo de ataque, en este blog ya se habló en su día de SAPPO, de QRLJacking o de la herramienta Mercure, entre otros. Hoy quiero hablar de cómo podemos hacer un ataque de phishing a un usuario para que introduzca sus credenciales a través de iBombShell en proyecto de Ethical Hacking que evalúe el nivel de awareness y protección de los empleados de una organización.
La idea es simple. Cuando tenemos una sesión remota en un equipo (modo Silently), podemos lanzar nuestro módulo destinado a pedir las credenciales al usuario, al usuario le saldrá el típico pop-up para que ingrese su usuario y contraseña, nosotros podremos personalizar el mensaje que se le va a mostrar al usuario.
Se ha dotado al módulo para funcionar de dos maneras, una de forma persistente para guardar las credenciales en un fichero, y otra simple, que muestra el usuario y contraseña por pantalla. Esto se configura a través de una simple opción llamada “persistent”.
Ejecutando la forma no persistente
La primera opción que se va a enseña es la forma no persistente, no almacena datos en el disco. Para este caso la opción persistent debe quedar como false, se muestra a continuación la configuración del módulo.
Figura 2: Configuración del módulo con persistent = False |
Al lanzar el módulo en nuestra consola, veremos que en el equipo Windows objetivo salta el siguiente pop-up, para recibir la información debemos esperar la interacción del usuario, no es magia. No obstante, podemos ver que el pop-up es el mismo que nos muestra el sistema, por lo que para un usuario normal no generará sospechas.
Figura 3: Pop-up de solicitud de credenciales |
El mensaje que se ve en el pop-up anterior no es nada más que un ejemplo, aquí entra en juego la imaginación de cada uno, es importante tener en cuenta el idioma configurado en el sistema, no le enviemos al usuario un “spanglish”. En este momento, cuando el usuario haga clic en el botón Aceptar, las credenciales en texto plano se enviarán a nuestra terminal, ya tenemos lo que queríamos. En la imagen se puede apreciar que cuento con una contraseña no muy robusta - aunque como os imagináis, da lo mismo, ya que la estamos leyendo directamente.
Figura 4: Credenciales recibidas |
Obtenemos las credenciales para usarlas, imaginemos que queremos ejecutar un cmdlet que requiere que se le pase como argumento las credenciales (-Credential), necesitaremos un objeto del tipo PSCredential, es muy fácil de armar, con dos líneas lo tenemos listo, se puede ver en la siguiente imagen.
Figura 5: Armando un PSCredential |
Veamos un ejemplo de uso para iniciar un job, esto aplicaría igual para cualquier comando que requiera de -Credential. Se puede observar que el primer intento se realiza con los datos correctos y el segundo con una contraseña equivocada.
Figura 6: Job iniciado |
Como se se puede apreciar, que el proceso de realizar uno de estos ataques de phishing con iBombShell es muy simple de ejecutar.
Ejecutando la forma persistente
La otra opción con la que contamos almacena datos en el disco del sistema objetivo, un dato para tener en cuenta para una posible limpieza. En este caso la opción persistent debe ser true, y por tanto la única diferencia con el anterior método, la configuración del módulo queda como se ve en la siguiente imagen.
Figura 7: Configurando la persistencia |
Al lanzar el módulo el pop-up no cambia, nos enfrentamos a la misma situación, la diferencia recae en el resultado, ahora no obtenemos el usuario y la contraseña en claro, si no que se guarda un fichero en el sistema “víctima”, y nosotros veremos la ruta.
Figura 8: Credenciales almacenadas en fichero |
Para reutilizar dicho fichero bastaría con ejecutar: Import-Clixml -Path C:\Users\b.jeg\cred.xml. Dicho uso se puede ver en la siguiente imagen.
Figura 9: Importando el fichero de credenciales |
Se adjunta una imagen del fichero generado, por si surge curiosidad. Como se puede apreciar, se trata de un simple fichero XML, donde las etiquetas S y SS son para el nombre de usuario y contraseña respectivamente.
PoC en vídeo
Ha llegado el momento de ver su funcionamiento en vídeo, os dejo un ejemplo de su ejecución sin persistencia en disco.
Figura 10: PoC de atque de phishing pop-up con ibombshell
Para terminar, reitero la necesidad de tener un sistema de concienciación en la empresa, y que sea constante en el tiempo, de nada sirve una ‘advertencia’ al inicio.
Referencias sobre ibombshell:
- MacOS & Windows: Pentesting it with ibombshell
- ibombsehll: Whitepaper disponible
- ibombshell: Shell de pentesting en MacOS con Powershell
- ibombshell 0.0.1b liberada en el repositorio GitHub de ElevenPaths
- ibombshell: Crear una función de pentesting para MacOS
- ibombshell: Crear un módulo de extracción de claves privadas SSH en Windows 10
- ibombshell 0.0.1b en GitHub & Environment Injection UAC Bypass en Windows 10
- ibombshell: Mocking Trusted Directories UAC Bypass en Windows 10
- ibombshell en Black Hack Europe 2018: Nuevas Funciones
- Pentesting con Powershell: Saltarse AMSI y desactivar Windows Defender con iBombshell
Autor: Josué Encinar García (@JosueEncinar) Security Researcher en el equipo de Ideas Locas de la unidad CDO de Telefónica
1 comentario:
Muy interesante Jose!!
Dices que se debe estar constantemente capacitando a los usuarios, te refieres a que se debe estar enseñandoles las nuevas formas de ataques de PhishinG?
Para usuarios finales ciertos temas no es tan facil explicarlos y que entiendan que no es una ventana normal si que es un atacante.
Este metodo en realidad es muy bueno ... dudo que un usuario final lo detecte.
Publicar un comentario