Todos los días miles de actores maliciosos envían billones de correos electrónicos y mensajes de texto a un sinnúmero de usuarios. La mayoría de esos mensajes buscan que entreguemos las credenciales de acceso a nuestras cuentas. Esto es igual para redes sociales, correos electrónicos, cuentas bancarias, etc. Hoy aprenderán a devolverle atenciones a esos hijos de puta que nos roban cual burócratas sin corbatas. A continuación les voy a enseñar a sabotear delincuentes.
El código.
Sabotear delincuentes es muy fácil y divertido. Solo necesitamos un pequeño script (en Python) que vaya a los sitios web falsos, interactúe con los formularios y bombardee a los delincuentes con credenciales falsas. Algo así como que si los malparidos estaban esperando que cayeran 100 víctimas les caigan 100.000 pero ninguna les sirva. Echémosle una mirada al código:
Para escribir este código me apoyé en la IA Local que les mostré en el post anterior. En principio no me arrojó un código limpio pero fue bastante bueno. Poco a poco lo fui puliendo hasta que funcionó de maravilla. Veamos algunas funciones y componentes relevantes del script.
El script para sabotear delincuentes pude hacerlo con Selenium y funcionaría igual. Solo que tendría que darle más vueltas con el ChromeDriver, GeckoDriver, el PATH y me daba pereza. Por eso me decanté por Playwright. ¿La razón? Playwright automatiza el trabajo de los navegadores sin la necesidad de controladores externos y funciona bien con formularios que usan JavaScript. Yo lo instalé en mi equipo GNU/Linux Debian usando los comandos:
pip install playwright playwright install
Y ya, eso es todo. Para saber si quedó instalado pueden usar el comando: playwright --version
. La salida será la versión que instalaron, en mi caso la 1.49.0.
Otra cosa que debemos tener en cuenta es que las páginas de phishing normalmente, cuando el usuario envía sus credenciales, redirigen a la víctima a la página original. De esta forma, el usuario que cayó en una página falsa de Facebook, por ejemplo, es redirigido a la página original. El incauto piensa que puso mal sus credenciales, lo vuelve a hacer e ingresa en su cuenta sin percatarse de lo ocurrido.
Para poder bombardear a los suplantadores añadí la orden page.goto(url)
, así, cada vez que el script envíe unas credenciales falsas recargará la URL proporcionada evitando la redirección. También le agregué la línea time.sleep(1)
para que recargue totalmente la página antes de interactuar nuevamente con el formulario.
Como los campos del formulario pueden tener diferentes atributos, se agregó una función que detecta el tipo que usa la página falsa (línea 20). La idea es no tener que inspeccionar el código de cada sitio que queramos atacar. No obstante, si los delincuentes usan otro tipo de selectores, será necesario revisar el código fuente del sitio y agregarlos manualmente al script.
Yo no soy programador de oficio. Solo le entiendo un poquito al tema y este es mi hobbie. Alguien con mayores conocimientos lo hará mucho mejor pero este funciona. Vamos a probarlo con 3 páginas de phishing: Instagram, Facebook y Gmail.
Ahora sí: a sabotear delincuentes.
La primera prueba la hice con un sitio web falso de Instagram. Esto lo hice utilizando la herramienta Zphisher. Eso ya lo expliqué en este post y no me voy a repetir, ni más faltaba. Simplemente lancé el sitio desde una máquina virtual con Kali Linux y desde el host corrí el script. Funcionó.
Después hice lo mismo con un sitio fake de Facebook y terminé la prueba con un sitio falso de Gmail. En los 3 sitios falsos funcionó de maravilla.
El script interactúa con los formularios y bombardea a los delincuentes con datos falsos. En la terminal de comandos veremos los usernames enviados, los passwords enviados y las veces que lo ha hecho.
En las siguientes imágenes veremos el resultado de las pruebas.
El script estuvo en ejecución apenas unos minutos. En la última imagen vemos que envío una buena cantidad de datos falsos a cada sitio de phishing. ¿Qué pasaría si lo dejamos corriendo todo el día mientras trabajamos? Sería muy divertido hacerlo. Ya quiero que me llegue un correo o un SMS malicioso para probarlo con un atacante real.
Si desean el script me pueden enviar un correo y con gusto lo enviaré de vuelta. Mis datos de contacto están aquí. Hasta la próxima.