
Script súper organizado y flexible para enviar campañas de phishing
Script super organizado y flexible para enviar campañas de phishing.
goPhish también es una gran opción. Pero prefiero flexibilidad y simplicidad al mismo tiempo. Usé goPhish varias veces pero en algún momento, lo encuentro abrumador o inflexible.
La mayoría del tiempo, no necesito todas esas estadísticas, solo necesito una forma flexible de preparar mis campañas de phishing y enviarlas. Cada vez que uso goPhish tengo que ir a revisar la documentación sobre cómo agregar un sitio web, reenviar solicitudes específicas, etc. Así que creé goCabrito y getCabrito.
getCabrito opcionalmente genera una URL única para el seguimiento de correos.
Al generar un hash para cada correo y agregarlo al final de la URL o la URL de la imagen y almacenar esta información junto con otras cosas que son útiles para que getCabrito importe y sirva. Esta característica es lo único que conecta goCabrito con el script getCabrito, ¡así que no hay pánico!.
Es solo el nombre de uno de mis restaurantes favoritos y el nombre fue elegido por uno de mi equipo.
Instalar dependencias de gems
sudo apt-get install build-essential libsqlite3-dev
Instalar gems
gem install mail sqlite3
goCabrito.rb — Un remitente de correo simple pero flexible.
Menú de ayuda:
-s, --server HOST:PORT Servidor SMTP y su puerto.
ej. smtp.office365.com:587
-u, --user USER Nombre de usuario para autenticarse.
ej. [email protected]
-p, --pass PASS Contraseña para autenticarse
-f, --from EMAIL Correo del remitente (generalmente el mismo que el correo del remitente)
ej. [email protected]
-t, --to EMAIL|LIST|CSV El correo del receptor o una lista de receptores en archivo.
ej. [email protected] o targets.lst o targets.csv
Se espera que el csv tenga el formato nombre,apellido,email sin cabecera.
-c, --copy EMAIL|LIST|CSV El correo del receptor en CC o una lista de receptores en archivo.
-b, --bcopy EMAIL|LIST|CSV El correo del receptor en CCO o una lista de receptores en archivo.
-B, --body MSG|FILE El cuerpo del mensaje como cadena o un archivo que contiene el cuerpo (no adjuntos).
Para seguimiento de clics, apertura de mensaje y otros:
Agrega la etiqueta {{track-click}} a la URL en el mensaje HTML.
ej: http://phisher.com/file.exe/{{track-click}}
Agrega la etiqueta {{track-open}} en el mensaje HTML.
ej: <html><body><p>Hola</p>{{track-open}}</body></html>
Agrega la etiqueta {{name}} en el mensaje HTML para ser reemplazada con el nombre (usado con --to CSV).
ej: <html><body><p>Estimado {{name}},</p></body></html>
Agrega la etiqueta {{num}} para ser reemplazada con un número de teléfono aleatorio.
-a, --attachments FILE1,FILE2 Uno o más archivos para adjuntar, separados por coma.
-S, --subject TITLE El asunto/título del correo.
--no-ssl NO usar conexión SSL al conectarse al servidor (predeterminado: false).
-g, --groups NUM Número de receptores a los que enviar correo a la vez. (predeterminado: todos en un grupo)
-d, --delay NUM El retraso, en segundos, para esperar después de enviar cada grupo.
-P, --profile FILE Un archivo json que contiene toda la configuración anterior en un archivo
-D, --db FILE Crear un archivo de base de datos sqlite (contiene correos y sus hashes de seguimiento) para ser importado por el servidor 'getCabrito'.
--dry Prueba en seco, no se envía correo real.
-h, --help Muestra este mensaje.
Uso:
goCabrito.rb <OPCIONES>
Ejemplos:
$goCabrito.rb -s smtp.office365.com:587 -u [email protected] -p P@ssword1 \
-f [email protected] -t targets1.csv -c targets2.lst -b targets3.lst \
-B msg.html -S "Este es el asunto" -a file1.docx,file2.xlsx -g 3 -d 10
$goCabrito.rb --profile prf.json
dry primero (verifica el valor dry del archivo de perfil)ruby goCabrito.rb -P CLIENTE/3/camp3.json --dry
--dry y me aseguro de que el valor dry sea false en el archivo de configuraciónHoy en día, muchos proveedores de correo electrónico en la nube bloquean la autenticación SMTP por defecto (por ejemplo, Office365, GSuite). Esto, por supuesto, causará un error. Para solucionarlo, aquí hay algunos pasos para ayudarte a habilitar la autenticación SMTP en diferentes proveedores.
Para habilitar SMTP Auth globalmente, usa PowerShell.
$ sudo pwsh
Install-Module -Name PSWSMan -Scope AllUsers
Install-WSMan
Install-Module -Name ExchangeOnlineManagement
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline -InlineCredential
El comando anterior te pedirá que ingreses las credenciales del administrador de Office365
PowerShell credential request
Enter your credentials.
User: [email protected]
Password for user [email protected]: **********
Connect-ExchangeOnline -UserPrincipalName [email protected]
Set-TransportConfig -SmtpClientAuthenticationDisabled $false
Set-CASMailbox -Identity [email protected] -SmtpClientAuthenticationDisabled $false
Get-CASMailbox -Identity [email protected] | Format-List SmtpClientAuthenticationDisabled
Get-TransportConfig | Format-List SmtpClientAuthenticationDisabled
Luego sigue los siguientes pasos