
evilginx3 + gophish

Combinación de evilginx3 y GoPhish.
Esta es la versión pública y gratuita del repositorio, NO ES LA VERSIÓN MÁS RECIENTE. Mantengo intencionadamente esta versión pública del repositorio por detrás de mi versión para las personas que me patrocinan a través de GitHub Sponsors. Esto significa que esta versión puede carecer de correcciones de errores o funcionalidades, y no se deben esperar correcciones de errores, adición de funcionalidades o soporte aquí. Conviértase en patrocinador para obtener acceso a la versión más reciente.
Antes de comenzar, me gustaría aclarar que no estoy criticando de ninguna manera a Kuba Gretzky ni su trabajo. Le agradezco personalmente por haber lanzado evilginx3 al público. De hecho, sin su trabajo, este trabajo no existiría. También debo agradecer a Jordan Wright por desarrollar/mantener el increíble kit de herramientas GoPhish. El fork de GoPhish de Kuba también se utilizó como inspiración para algunas partes de este proyecto después de crear su propia integración.
Debe tener un conocimiento fundamental de cómo usar GoPhish y evilginx3.
No seré responsable por ningún uso indebido o ilegítimo de este software. Este software solo debe ser utilizado en pruebas de penetración autorizadas o en compromisos de equipos rojos donde el/los operador(es) haya(n) recibido permiso explícito por escrito para llevar a cabo ingeniería social.
Como probador de penetración o miembro de un equipo rojo, es posible que haya oído hablar de evilginx3 como un framework proxy de intermediario capaz de eludir la autenticación de dos factores/múltiples factores. Esto resulta tentador, por decir lo menos, pero al intentar usarlo para compromisos de ingeniería social, existen algunos puntos problemáticos.
Falta de seguimiento: evilginx3 no proporciona estadísticas de seguimiento únicas por víctima (p. ej., correo abierto, enlace clicado, etc.), lo cual es problemático para los clientes que desean/necesitan/pagan por estas estadísticas al contratar un compromiso de ingeniería social.
No es un kit de herramientas completo de ingeniería social: evilginx3 solo proporciona capacidades proxy de intermediario; no ofrece toda la funcionalidad necesaria para una campaña de ingeniería social por correo electrónico/SMS. Por ejemplo, no envía correos electrónicos a los objetivos ni proporciona esta funcionalidad.
Sin interfaz gráfica: ¿acaso necesitamos explicar esto más? Todos amamos nuestras interfaces gráficas y la representación visual de los datos de una campaña de ingeniería social es invaluable. Los operadores pueden obtener una comprensión profunda del éxito de sus campañas de ingeniería social al poder ver una representación visual de los datos.
En esta configuración, GoPhish se utiliza para enviar correos electrónicos y proporcionar un panel de control para las estadísticas de la campaña de evilginx3, pero no se utiliza para ninguna página de aterrizaje. Sus enlaces de phishing enviados desde GoPhish apuntarán a una ruta de señuelo de evilginx3 y evilginx3 se utilizará para las páginas de aterrizaje. Esto proporciona la capacidad de seguir eludiendo la 2FA/MFA con evilginx3, sin perder esas valiosas estadísticas. Se han proporcionado notificaciones de eventos en tiempo real de la campaña con un servidor websocket/http local que he desarrollado, y cadenas JSON completas y utilizables que contienen tokens/cookies de evilginx3 se muestran directamente en la interfaz gráfica (y el feed) de GoPhish:


evilginx3 escuchará en una dirección accesible externamente en el puerto 443 (o el puerto que elija en la configuración de evilginx3)GoPhish escuchará localmente en los puertos 8080 y 3333 (el servidor de phishing en el puerto 8080 no se utiliza)Cloudflare Turnstile escuchará localmente en el puerto 80Se ha proporcionado setup.sh para automatizar las configuraciones necesarias. Una vez que se ejecute este script y le haya proporcionado los valores correctos, debería estar listo para comenzar. A continuación se muestra la ayuda de configuración:
Uso:
./setup <dominio raíz> <subdominio(s)> <booleano dominio raíz> <booleano feed> <reemplazo rid>
- dominio raíz - el dominio raíz que se usará para la campaña
- subdominios - una lista separada por espacios de subdominios de evilginx3, puede ser uno si solo hay uno
- booleano dominio raíz - true o false para proxy del dominio raíz a evilginx3
- booleano feed - true o false si planea usar el feed en vivo
- reemplazo rid - reemplazar el "rid" predeterminado de gophish en las URL de phishing con este valor
Ejemplo:
./setup.sh example.com "accounts myaccount" false true user_id
La integración de Cloudflare Turnstile ha reemplazado las reglas de redireccionamiento y una lista negra de IP con Apache2. El enfoque de Apache2 dependía de una lista predefinida de reglas de redireccionamiento y una lista negra de IP. Podríamos perder ciertos agentes de usuario, hosts o direcciones IP que terminen detectando nuestra infraestructura. Esto suele ser realizado por bots y software automatizado que escanea la infraestructura de phishing. La tecnología Cloudflare Turnstile es una de las mejores defensas contra bots en el momento de escribir esto, y verifica que un usuario real esté accediendo a su sitio.
Turnstile en el panel de controlevilginx3/templates/forbidden.html y evilginx3/templates/turnstile.html con sus propios cambiosevilginx3, incluya las claves pública/privada con la bandera turnstile separadas por un :. Por ejemplo:./evilginx3 -feed -g ../gophish/gophish.db -turnstile <CLAVE_PÚBLICA>:<CLAVE_PRIVADA>
Artículo del blog aquí.
Si incluyera una página HTML estática para la funcionalidad de Cloudflare Turnstile, toda la infraestructura de phishing de todos tendría la misma página, lo que llevaría a detecciones de código HTML estático. Aquí entran las plantillas HTML de Go. He incluido una plantilla de inicio en evilginx3/templates/turnstile.html como guía. DEBE CAMBIARLA. A continuación se presentan las reglas sobre cómo está configurado el código de la plantilla; no seguir estas reglas probablemente romperá la funcionalidad de Cloudflare Turnstile:
{{.FormActionURL}}, {{.ErrorMessage}} y {{.TurnstilePublicKey}}Turnstile debe ser la variable de plantilla {{.FormActionURL}}data-sitekey para la clase div de cf-turnstile debe ser la variable de plantilla {{.TurnstilePublicKey}}evilginx3/templates/turnstile.htmlname igual a buttonEn caso de que haya ejecutado setup.sh una vez y ya haya reemplazado el valor predeterminado de RId en todo el proyecto, se creó replace_rid.sh para reemplazar el valor de RId nuevamente.
Uso:
./replace_rid <rid anterior> <nuevo rid>
- rid anterior - el valor rid anterior que fue reemplazado
- nuevo rid - el nuevo valor rid para reemplazar el anterior
Ejemplo:
./replace_rid.sh user_id client_id
Una vez que se ejecuta setup.sh, los siguientes pasos son:
GoPhish y configurar la plantilla de correo electrónico, el perfil de envío de correos electrónicos y los gruposevilginx3 y configurar el phishlet y el señuelo (debe especificar la ruta completa a la base de datos sqlite3 de GoPhish con la bandera -g)GoPhish y hacer que la URL de aterrizaje sea su ruta de señuelo para el phishlet de evilginx3La función Generador de códigos QR le permite generar códigos QR para implementar campañas de ingeniería social con códigos QR. A continuación se muestran los pasos para usarlo:
{{.QR}}:


Tenga en cuenta que esta función solo es compatible actualmente con campañas de correo electrónico y plantillas de correo electrónico HTML
Artículo del blog aquí.
Se realizó una reelaboración completa de GoPhish para proporcionar soporte para campañas SMS con Twilio. Su nuevo panel de evilgophish se verá como el siguiente:

Una vez que haya ejecutado setup.sh, los siguientes pasos son:
SMS. Utilizará solo Texto al crear una plantilla de mensaje SMS, y no debe incluir un enlace de seguimiento, ya que aparecerá en el mensaje SMS. Deje Remitente del sobre y Asunto en blanco como se muestra a continuación:
Perfil de envío SMS. Ingrese su número de teléfono de Twilio, SID de cuenta y Token de autenticación:
CSV se han mantenido igual para compatibilidad, así que mantenga los mismos nombres de columna CSV y coloque los números de teléfono de sus objetivos en la columna Email. Tenga en cuenta que Twilio acepta los siguientes formatos de número de teléfono, por lo que deben estar en uno de estos tres:
evilginx3 y configurar el phishlet y el señuelo (debe especificar la ruta completa a la base de datos sqlite3 de GoPhish con la bandera -g)GoPhish y hacer que la URL de aterrizaje sea su ruta de señuelo para el phishlet de evilginx3Artículo del blog aquí.
Las notificaciones de eventos de campaña en tiempo real son manejadas por un servidor websocket/http local y una aplicación de feed en vivo. Para configurarlo:
Seleccione true para feed bool al ejecutar setup.sh
cd al directorio evilfeed e inicie la aplicación con ./evilfeed
Al iniciar evilginx3, proporcione la bandera -feed para habilitar el feed. Por ejemplo:
./evilginx3 -feed -g /opt/evilgophish/gophish/gophish.db
http://localhost:1337/. El panel del feed se verá como el siguiente:
NOTAS IMPORTANTES
JavaScript y NO necesita refrescar la página. Si refresca la página, PERDERÁ todos los eventos hasta ese punto.Agregaré phishlets a este repositorio según mi propio criterio. No debe esperar que yo cree phishlets como parte de este repositorio; se espera que usted cree los suyos propios. NO ABRA INCIDENCIAS EN ESTE REPOSITORIO PARA SOLICITAR PHISHLETS
El 10 de mayo de 2023, Kuba Gretzky actualizó evilginx 2.4.0 a la versión 3.0.0. Puede encontrar una publicación detallada en el blog sobre los cambios en la herramienta aquí: evilginx3+mastery. Lo más notable es que los cambios en el formato de archivo phishlet probablemente romperán los phishlets anteriores a la versión 3.0.0 y deberán reescribirse. Si bien puede ser trabajo reescribirlos, hay beneficios adicionales con el nuevo formato de archivo phishlet. La documentación sobre el formato phishlet para la versión 3.0.0 se puede encontrar aquí: Formato Phishlet v3.0.0. Los Phishlets en el formato heredado se mantendrán en este repositorio en la carpeta evilginx3/legacy_phishlets. Los compatibles con la versión se almacenarán en . Aún no todos los heredados han sido convertidos al formato , ¡continuaré actualizándolos según el tiempo lo permita!
El script de instalación se probó en Ubuntu Focal/Jammy e instala la última versión de Go desde el código fuente. Los binarios pueden fallar al compilarse dependiendo de su entorno Go y de lo que tenga instalado, por ejemplo, si instala las versiones originales que este proyecto combina y luego intenta instalar esta versión de ellas. También realiza cambios en DNS para que evilginx3 pueda tomar el control. Debe comprender las implicaciones de esto y revisarlo. Se recomienda un entorno nuevo; otros sistemas operativos no han sido probados.
No es raro probar el seguimiento de una campaña antes de lanzarla, y le animo a que lo haga, pero le dejo una advertencia. evilginx3 creará una cookie y establecerá una sesión para cada nuevo navegador de víctima. Si continúa probando múltiples campañas y múltiples enlaces de phishing dentro del mismo navegador, confundirá el proceso de seguimiento, ya que el valor RId se extrae de las solicitudes y se establece al inicio de una nueva sesión. Si hace esto, no está simulando realmente a una víctima, ya que una víctima nunca tendría acceso a otro enlace de phishing que no sea el suyo propio, y ni que decir tiene que esto nunca ocurrirá durante una campaña real. Esto es para advertirle amablemente que no abra una incidencia por esto, ya que no está utilizando la herramienta de la manera prevista. Si desea simular una nueva víctima, puede probar el proceso de seguimiento utilizando un nuevo navegador/pestaña en modo incógnito.
GoPhish nunca se utiliza en ninguna de sus páginas de phishing reales, y los encabezados de correo electrónico han sido eliminados, por lo que no hay necesidad de preocuparse por los IOCs dentro de él.
rid predeterminada en las URL de phishing es elegida por el operador en setup.shSMSSesión capturada para sesiones/tokens de evilginx3 capturadosConsulte el archivo CHANGELOG.md para ver los cambios realizados desde la versión inicial.
No debe esperar que responda a los problemas en esta versión pública del repositorio. No me está patrocinando ni financiando el desarrollo del proyecto, por lo que no debe esperar soporte. Patrocíneme para obtener un mayor soporte.
3.x.x de evilginxMe gustaría que este proyecto mejorara y creciera con el tiempo. Si tiene ideas de mejora, nuevas reglas de redireccionamiento, nuevas direcciones IP/bloques para poner en la lista negra, phishlets o sugerencias, por favor abra un pull request.
Phishlets3.0.0evilginx3/phishletsphishlets3.x.x