Phishing Frenzy es una aplicación de código abierto en Ruby on Rails que pueden adoptar los pentesters para gestionar campañas correo de electrónico de phishing. El proyecto lo inició en 2013 Brandon "zeknox" McCann para hacer más eficiente el proceso haciendo las campañas de phishing lo más realistas posibles a través de su gestión, reutilización de plantillas, generación de estadísticas y otras características.
Vamos a hacer una campaña de ejemplo para que os hagáis una idea del uso de la herramienta y de sus posibilidades. Para ello, vamos a idear un phishing falsificando la página de login de LinkedIn, recopilando las direcciones de correo de una empresa y enviando como gancho un mensaje con un enlace a una supuesta oferta de empleo.
Empezaremos instalando Phishing Frenzy en una máquina virtual Kali Linux pero, en lugar de invertir más de una hora en instalar paso a paso lo necesario, vamos a aprovechar Docker para bajarnos directamente el contenedor y empezar a usarlo en tan sólo unos minutos.
Para ello nos traemos e instalamos directamente el repositorio:
Confirmamos que la imagen se ha instalado correctamente:
Y ejecutamos:
Si eres de los que te gusta trastear, puedes comprobar el funcionamiento del repositorio en Docker con:
E incluso abrir un shell dentro del contenedor para revisar la configuración:
Como veis el virtual host de Apache tiene como ServerName phishingfrenzy.local así que añadimos la entrada en nuestro fichero host local con la IP de la máquina virtual y abrimos la aplicación web con el navegador. Las credenciales por defecto son:
username: admin
password: Funt1me!
Lo primero que haremos es importar la plantilla de LinkedIn desde un repositorio en Github destinado a que la comunidad vaya subiendo y compartiendo más templates que sean útiles en distintos escenarios.
Para importar plantillas tenemos que ir a Templates y pulsar el botón Restore. Luego busca el archivo Zip e importa el template.
Una vez importada, la plantilla estará disponible y lista para ser asignada para todas las futuras campañas de phishing.
Si quieres subir tu propio template tendrás que respetar la siguiente estructura de directorios:
La carpeta 'archive' contendrá el archivo comprimido que se exportó desde el UI de Phishing Frenzy.
La carpeta 'email' contendrá el correo electrónico que se utiliza para para la plantilla de phishing.
La carpeta 'images' contiene imágenes frescas para que quede bonita la plantilla ;)
La carpeta www es la de los archivos que se utilizan para el sitio web de phishing. Esta puede incluir cualquier fichero necesario para ejecutar el sitio web (todos los css, js u otros archivos).
Pero volvamos a nuestra campaña. Ahora que tenemos preparada la plantilla vamos a empezar a recopilar las cuentas de correo de nuestras futuras víctimas. Antes de empezar con la enumeración tendremos que añadir una clave de búsqueda de Bing (Bing Search API). Activamos una suscripción y copiamos la clave de cuenta principal.
Vamos a 'Admin', 'Global Settings' y la añadimos:
Después vamos a 'Resources', 'Email Enumeration'. Indicamos el dominio a analizar y seleccionamos el número de enlaces a seguir:
Como resultado se nos mostrarán las cuentas obtenidas:
Si los resultados del harvester no nos parecen suficientes podemos complementar la búsqueda con otras herramientas. Por ejemplo con Metaploit:
o con TheHarvester:
A continuación creamos nuestra campaña de prueba:
Seleccionamos el template de LinkedIn y configuramos SMTP, que en mi caso es GMail (precarga las opciones):
Personalizamos un poco el email que será enviado a nuestras víctimas:
Seleccionamos los objetivos de la campaña. Podemos importar numerosos contactos directamente copiando de un csv y pegando las cuentas en el UI con este formato:
^*Los argumentos 'firstname' y 'lastname' son opcionales.
Y finalmente lanzamos la campaña ('launch'):
Si todo ha ido bien las víctimas deberían recibir un mail como este:
Y, si pinchan en el botón 'Confirm you know Sarah Rodriguez' del ejemplo, serán redireccionados a la URL que hayamos puesto con la página falsa de login:
Ahora sólo hay que sentarse con la caña y esperar a que piquen...
Y ésto es lo que sería la instalación básica e iniciación de una campaña de phishing. Por supuesto en un escenario real habría que trabajar algo más antes. Podríamos clonar un sitio web, anonimizar todos los nodos, activar SSL, inyectar javascript mediante los hooks de BeEf integrado e incluso obtener una shell mediante un ataque HTA Powershell.
"Dale a un hombre un pescado y lo alimentarás por un día. Enséñale cómo pescar y lo alimentarás durante una vida".
Vamos a hacer una campaña de ejemplo para que os hagáis una idea del uso de la herramienta y de sus posibilidades. Para ello, vamos a idear un phishing falsificando la página de login de LinkedIn, recopilando las direcciones de correo de una empresa y enviando como gancho un mensaje con un enlace a una supuesta oferta de empleo.
Empezaremos instalando Phishing Frenzy en una máquina virtual Kali Linux pero, en lugar de invertir más de una hora en instalar paso a paso lo necesario, vamos a aprovechar Docker para bajarnos directamente el contenedor y empezar a usarlo en tan sólo unos minutos.
Para ello nos traemos e instalamos directamente el repositorio:
vmotos@kali:~$ sudo docker pull b00stfr3ak/ubuntu-phishingfrenzy
Confirmamos que la imagen se ha instalado correctamente:
vmotos@kali:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
b00stfr3ak/ubuntu-phishingfrenzy latest 3863078923b4 3 months ago 1.24 GB
Y ejecutamos:
vmotos@kali:~$ sudo docker run -d -p 80:80 b00stfr3ak/ubuntu-phishingfrenzy
c8c31f9e4979ab6e272cc816ad021da2f88d8ce3095c98403001a02529b03fd8 3863078923b4 3 months ago 1.24 GB
Si eres de los que te gusta trastear, puedes comprobar el funcionamiento del repositorio en Docker con:
root@kali:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c8c31f9e4979 b00stfr3ak/ubuntu-phishingfrenzy "/bin/sh -c /startup 8 minutes ago Up 48 minutes 0.0.0.0:80->80/tcp tender_torvalds
E incluso abrir un shell dentro del contenedor para revisar la configuración:
root@kali:~# docker exec -t -i c8c31f9e4979 /bin/bash
root@c8c31f9e4979:/# vi /etc/apache2/apache2.conf
....
# Phishing Freezy
Include pf.conf
...
root@c8c31f9e4979:/# vi /etc/apache2/pf.conf
VirtualHost *:80>
ServerName phishingfrenzy.local
# !!! Be sure to point DocumentRoot to 'public'!
DocumentRoot /var/www/phishing-frenzy/public
RailsEnv development
# This relaxes Apache security settings.
AllowOverride all
# MultiViews must be turned off.
Options -MultiViews
Como veis el virtual host de Apache tiene como ServerName phishingfrenzy.local así que añadimos la entrada en nuestro fichero host local con la IP de la máquina virtual y abrimos la aplicación web con el navegador. Las credenciales por defecto son:
username: admin
password: Funt1me!
Lo primero que haremos es importar la plantilla de LinkedIn desde un repositorio en Github destinado a que la comunidad vaya subiendo y compartiendo más templates que sean útiles en distintos escenarios.
Para importar plantillas tenemos que ir a Templates y pulsar el botón Restore. Luego busca el archivo Zip e importa el template.
Una vez importada, la plantilla estará disponible y lista para ser asignada para todas las futuras campañas de phishing.
Si quieres subir tu propio template tendrás que respetar la siguiente estructura de directorios:
root
|--archive
| |-- templateName.zip
|
|--email
| |-- email.html.erb
|
|--images
| |-- email.jpg
| |-- website.jpg
|
|--www
| |-- index.php
| |-- failed.php
|
|--README.txt
La carpeta 'archive' contendrá el archivo comprimido que se exportó desde el UI de Phishing Frenzy.
La carpeta 'email' contendrá el correo electrónico que se utiliza para para la plantilla de phishing.
La carpeta 'images' contiene imágenes frescas para que quede bonita la plantilla ;)
La carpeta www es la de los archivos que se utilizan para el sitio web de phishing. Esta puede incluir cualquier fichero necesario para ejecutar el sitio web (todos los css, js u otros archivos).
Pero volvamos a nuestra campaña. Ahora que tenemos preparada la plantilla vamos a empezar a recopilar las cuentas de correo de nuestras futuras víctimas. Antes de empezar con la enumeración tendremos que añadir una clave de búsqueda de Bing (Bing Search API). Activamos una suscripción y copiamos la clave de cuenta principal.
Vamos a 'Admin', 'Global Settings' y la añadimos:
Después vamos a 'Resources', 'Email Enumeration'. Indicamos el dominio a analizar y seleccionamos el número de enlaces a seguir:
Como resultado se nos mostrarán las cuentas obtenidas:
Si los resultados del harvester no nos parecen suficientes podemos complementar la búsqueda con otras herramientas. Por ejemplo con Metaploit:
msf > use auxiliary/gather/search_email_collector
msf auxiliary(search_email_collector) > set DOMAIN dominio.com
DOMAIN => dominio.com
msf auxiliary(search_email_collector) > run
[*] Harvesting emails .....
[*] Searching Google for email addresses from dominio.com
[*] Extracting emails from Google search results...
[*] Searching Bing email addresses from dominio.com
[*] Extracting emails from Bing search results...
[*] Searching Yahoo for email addresses from dominio.com
[*] Extracting emails from Yahoo search results...
[*] Located 170 email addresses for dominio.com
[*] 19ee5962-8ff6-416d-83fa-b0ba137c62e7@dominio com
o con TheHarvester:
root@kali:~# theharvester -d dominio.com -l 50 -b bing -f /tmp/resultado.html
A continuación creamos nuestra campaña de prueba:
Seleccionamos el template de LinkedIn y configuramos SMTP, que en mi caso es GMail (precarga las opciones):
Personalizamos un poco el email que será enviado a nuestras víctimas:
firstname0, lastname0, email0@domain.net
firstname1, lastname1, email1@domain.net
firstname2, lastname2, email2@domain.net
firstname3, lastname3, email3@domain.net
firstname4, lastname4, email4@domain.net
^*Los argumentos 'firstname' y 'lastname' son opcionales.
Y finalmente lanzamos la campaña ('launch'):
Si todo ha ido bien las víctimas deberían recibir un mail como este:
Y, si pinchan en el botón 'Confirm you know Sarah Rodriguez' del ejemplo, serán redireccionados a la URL que hayamos puesto con la página falsa de login:
Ahora sólo hay que sentarse con la caña y esperar a que piquen...
Y ésto es lo que sería la instalación básica e iniciación de una campaña de phishing. Por supuesto en un escenario real habría que trabajar algo más antes. Podríamos clonar un sitio web, anonimizar todos los nodos, activar SSL, inyectar javascript mediante los hooks de BeEf integrado e incluso obtener una shell mediante un ataque HTA Powershell.
"Dale a un hombre un pescado y lo alimentarás por un día. Enséñale cómo pescar y lo alimentarás durante una vida".
570 aC-490 aC - Lao Tsé
Comentarios
Publicar un comentario