mx-takeover se centra en los registros MX de DNS y detecta los registros MX mal configurados. Actualmente soporta tres técnicas. Estas son
- Dominios MX que expirarán pronto
- Dominios MX no registrados
- Dominios que apuntan a no estar actualmente en uso por mailgun.
Cómo Funciona
Escenario de ataque para Mailgun
- Tu empresa comienza a utilizar un nuevo servicio para los correos electrónicos.
- El registro mx de tu empresa apunta a mailgun. (por ejemplo: sub.dominio.com MX mxa.mailgun.com)
- Tu empresa deja de usar mailgun, pero no elimina el registro mx del DNS
- El atacante se registra en mailgun y reclama el dominio como suyo. El mailgun no realiza ninguna verificación, y la configuración del DNS ya está correctamente configurada.
- El atacante ahora puede leer el correo que envió asociado al dominio. (@sub.dominio.com)
Limitación
Mailgun utiliza registros MX para la recepción de correo, registros TXT para el envío de correo y registro CNAME para el seguimiento. De estos registros sólo el registro DKIM es único y se genera aleatoriamente.
Por lo tanto, no se pueden enviar correos en nombre de otra persona, pero se pueden leer(recibir) los correos enviados por otra persona al dominio asociado. También puedes echar un vistazo a lo que es Subdomain Takeover: Explicación y Precauciones.
Características
- Dominios eliminados en mailgun pero registros MX conservados
- Reclamación de dominios automáticamente
- Dominio MX no registrado/expirado
- Dominio MX que expirará pronto
- Dominios que utilizan los mismos registros MX
- Guardar los resultados del escaneo en formato json
- Soporte para la concurrencia
Instrucciones de Instalación
mx-takeover requiere go1.17 para instalarse con éxito. Ejecuta el siguiente comando para instalar.
go install -v github.com/musana/mx-takeover@latest
Uso de MX-Takeover
mx-takeover -h
Esto mostrará la ayuda de la herramienta.
┌──(root㉿kali)-[/home/mx-takeover]
└─# mx-takeover -h
_ _
_ __ ___ __ __ | |_ __ _| | _____ _____ _____ _ __
| '_ ' _ \\ \/ /____| __/ _' | |/ / _ \/ _ \ \ / / _ \ '__|
| | | | | |> <_____| || (_| | < __/ (_) \ V / __/ |
|_| |_| |_/_/\_\ \__\__,_|_|\_\___|\___/ \_/ \___|_|
hunting misconfigured MX records
musana.net | @musana
-check-whois
Check whois for detecting unregistered mx domain or will be expire soon
-expire-day int
Estimated days for expiration (default 30)
-h help
-mailgun-api string
mailgun api for domain takeover automatically
-output string
Save output to file as json
-show-only-mx
show only that have mx records
-v Print all log
-w int
number of worker (default 32)
Ejecución de mx-takeover
Toma de posesión y reclamación.
Dominios MX que expiran pronto
Dominios MX no registrados
Guardar el Resultado del Escaneo
┌──(root㉿kali)-[/home/mx-takeover]
└─# cat sdomain.txt| mx-takeover -check-whois -w 64 -output mx.json
_ _
_ __ ___ __ __ | |_ __ _| | _____ _____ _____ _ __
| '_ ' _ \\ \/ /____| __/ _' | |/ / _ \/ _ \ \ / / _ \ '__|
| | | | | |> <_____| || (_| | < __/ (_) \ V / __/ |
|_| |_| |_/_/\_\ \__\__,_|_|\_\___|\___/ \_/ \___|_|
hunting misconfigured MX records
musana.net | @musana
[*] Scan Starting Time: 2022-05-23 15:15:22
[!] Mailgun-api was not provided. You should register domain to mailgun manually
[*] 141 domain will be scanned.
[*] Domains that expire in less than 30 days
[*] Scan results was saved to mx.json
[*] End Time: 2022-05-23 15:15:24
Las claves son dominios mx. Los valores son dominios que utilizan el dominio especificado en la clave.
┌──(root㉿kali)-[/home/mx-takeover]
└─# cat mx.json| jq .
{
"google.com": [
"_cisco-uds._tcp.wordcamp.org"
],
"maximum.nl": [
"mcdonalds.maximum.nl"
],
"naver.jp": [
"line.naver.jp"
],
"slgnt.eu": [
"leveranciersmail.bol.com"
],
"wordpress.net": [
"_cisco-uds._tcp.wordpress.net"
],
"wordpress.org": [
"92.wordpress.org",
"_cisco-uds._tcp.planet.wordpress.org",
"_cisco-uds._tcp.profiles.wordpress.org",
"_cisco-uds._tcp.wordpress.org",
"_cisco-uds.planet.wordpress.org",
"_cisco-uds.profiles.wordpress.org",
"93.wordpress.org",
"94.wordpress.org",
"95.wordpress.org"
]
}