
Una herramienta Python para ingerir HTML y producir código fuente HTML adecuado para campañas de phishing.
(¡Es un chiste de "pez en un barril"! ¡Disfruto de los juegos de palabras!)
Una herramienta Python para ingerir HTML y producir código fuente HTML adecuado para campañas de phishing.
Cooper simplifica el proceso de clonar un sitio web o correo electrónico objetivo para su uso en una campaña de phishing. Solo encuentra una URL o descarga el contenido sin procesar de un correo electrónico que desees usar y pásaselo a Cooper. Cooper clonará el contenido y luego lo preparará automáticamente para su uso en tu campaña. Los scripts, imágenes y CSS se pueden modificar para usar enlaces directos en lugar de enlaces relativos, los enlaces se cambian para que apunten a tu servidor de phishing y los formularios se actualizan para enviarte datos, todo en cuestión de segundos. Cooper es multiplataforma y debería funcionar con macOS, Linux y Windows.
No más editar manualmente enlaces y formularios después de usar wget para obtener un sitio. Puedes concentrarte en el trabajo de detalle.
Cooper ofrece varios módulos con diferentes propósitos:
Page es el módulo principal de Cooper. El único argumento requerido es -t para especificar una URL objetivo. Luego puedes agregar --selenium para usar opcionalmente Selenium en lugar de Requests. Básicamente, si la salida se ve incorrecta o incompleta (quizás solo un fondo y algo de estilo, por ejemplo) prueba a usar --selenium.
Algunos sitios web requieren JavaScript para generar el contenido HTML. Si la salida se ve incorrecta o incompleta, prueba a usar --selenium.
Además, puedes agregar -u con una URL para usar como URL base para imágenes, scripts y hojas de estilo. Cooper reemplazará los enlaces relativos (por ejemplo, /wp-content/images/foo.bar) con la URL completa por ti.
Siempre proporciona URLs válidas con el protocolo correcto para -t y -u (es decir, http://www.example.com).
A continuación se muestra una lista completa de configuraciones:
El módulo email es útil cuando quieres usar un correo electrónico que tienes como base para un nuevo phish. Manejar la codificación y los mensajes MIME multiparte puede ser tedioso si se hace a mano, así que deja que Cooper lo haga por ti. Este módulo analizará el contenido del mensaje, descartará partes innecesarias, como los archivos adjuntos, y te dará una versión completamente decodificada del cuerpo principal del correo electrónico, las partes de texto plano o texto HTML que te interesan.
A continuación se muestra una lista completa de configuraciones:
Como se mencionó anteriormente, este módulo es único. El argumento requerido, y único, es -i para proporcionar el archivo de imagen a codificar. Es útil si estás construyendo tu propia página de aterrizaje o editando una página y necesitas agregar una imagen. Si decides incrustarla, pruébalo en este módulo. Codificará en Base64 el archivo proporcionado y producirá el texto necesario para incrustar la imagen.
Cooper requiere varias bibliotecas para hacer scraping de sitios web y analizar HTML. Usa pip o pipenv para instalar todo. Hay un requirements.txt para pip y un Pipfile para entornos virtuales de pipenv. Si usas pip, asegúrate de usar el correcto en tu sistema para Python 3.9 (por ejemplo, pip3 o pip3.9)
Puedes asegurarte de que se use la versión correcta llamando a pip con tu versión de Python:
python3 -m pip install -r requirements.txt
Un entorno virtual es incluso más fácil de usar:
pipenv installpipenv shellUsar Selenium para un navegador sin interfaz gráfica requiere que Google Chrome esté instalado y descargar un archivo Chromewebdriver coincidente desde: https://chromedriver.chromium.org/downloads
Descarga y extrae el webdriver en la raíz de este proyecto. Puedes colocarlo en otro lugar, pero asegúrate de actualizar la configuración (ver siguiente sección).
Luego debes configurar tu archivo de configuración. El archivo cooper.config proporcionado con este repositorio viene preconfigurado para su uso con GoPhish (las URLs están configuradas para cambiarse a {{.URL}}). La configuración predeterminada también asume que colocarás un webdriver de Chrome en la raíz del directorio.
El archivo de configuración se ve así:
[Replacement URLs]
landing_page_url_replacement: {{.URL}}
landing_page_form_action: {{.URL}}
email_replacement_url: {{.URL}}
[Browser]
driver_path: ./chromedriver
user_agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.87 Safari/537.36
Realiza los cambios necesarios. Puedes crear múltiples archivos de configuración para diferentes plataformas de phishing que uses, servidores de ataque adicionales o agentes de usuario alternativos. Se pueden usar diferentes archivos de configuración incluyendo los argumentos -c o --config junto con tu archivo alternativo. De lo contrario, se usará el archivo cooper.config por defecto.
La sección [Replacement URLs] contiene todas las URLs que Cooper usará al reemplazar enlaces y acciones de formularios.
El landing_page_url_replacement es la URL utilizada para la página de aterrizaje. Puede que quieras configurarla con la IP del servidor de phishing para que los visitantes sean redirigidos de vuelta a la página de aterrizaje o enviarlos a otro lugar.
El landing_page_form_action es la URL a la que deseas que se envíen los datos del formulario cuando se envía un formulario.
El email_replacement_url es la URL utilizada para los correos electrónicos y debe configurarse con el dominio o la dirección IP de tu servidor de phishing.
Si alguna de estas URLs está vacía, Cooper no reemplazará esas URLs. Esto es más práctico para landing_page_url_replacement donde quizás desees que la página de aterrizaje siga apuntando a enlaces reales. Sin embargo, ten cuidado, la página web objetivo puede usar enlaces relativos como /home.php en lugar de enlaces directos, lo que significaría que tu página de aterrizaje estará llena de enlaces rotos.
La sección [Browser] es solo para configuraciones relacionadas con la navegación web. Usa esta sección para apuntar Selenium y Cooper a tu webdriver del navegador si eliges usar un archivo o ubicación de driver diferente. El agente de usuario utilizado para la navegación web también se define aquí. Cooper tiene un agente de usuario predeterminado que puedes sobrescribir con el archivo de configuración.
Las imágenes se pueden codificar en Base64 antes de incrustarlas en una plantilla. Esto es para que las plantillas no dependan de que el sitio web esté disponible/mantenga las imágenes donde están. El tamaño adicional para un sitio web es (muy probablemente) insignificante, pero usar esta opción para un correo electrónico podría ser un problema. Algunos clientes de correo electrónico no admiten imágenes Base64, como Outlook(!). Ten en cuenta el cliente de correo electrónico del objetivo.
La opción del servidor HTTP está ahí para permitirte revisar fácilmente la salida de Cooper visitando 127.0.0.1:PORT. Podrías simplemente abrir el archivo HTML, pero no es tan ordenado.
img se ven así: <img src="https://raw.githubusercontent.com/chrismaddalena/cooper/HEAD/static1.squarespace.com/static/52ebedcae4b0ad4aad060b4a/t/533b687ae4b01d79d0ae12a3/1437187699809/?format=1500w"\>Un agradecimiento especial a Ninjasl0th y Hagbard por su ayuda con este proyecto!