Cheatsheet de SMTP
Sustituye DOMAIN, FQDN, TARGET_IP, SENDER, RECIPIENT y EXTERNAL_RECIPIENT. La explicación completa está en el protocolo y el flujo de trabajo.
dig +short MX DOMAINdig +short A FQDNdig +short AAAA FQDNdig +short TXT DOMAINdig +short TXT _dmarc.DOMAINdig +short TXT _mta-sts.DOMAINdig +short TXT _smtp._tls.DOMAINUn TXT en la raíz puede contener valores que no son SPF. Filtra por v=spf1.
Banner y EHLO
Sección titulada «Banner y EHLO»nc -nv TARGET_IP 25EHLO operator.example.testHELPQUITswaks --server TARGET_IP --port 25 \ --ehlo operator.example.test --quit-after EHLOopenssl s_client -connect FQDN:25 \ -starttls smtp -servername FQDN -crlf -quietopenssl s_client -connect FQDN:465 \ -servername FQDN -crlf -quietEnvía otro EHLO dentro de TLS.
swaks --server FQDN --port 587 \ --ehlo operator.example.test \ --tls \ --auth PLAIN \ --auth-user USERNAME \ --auth-password \ --timeout 10s \ --quit-after AUTHSwaks solicita el secreto si no lo obtiene de .netrc. La señal alcanza como máximo la fase AUTH. No prueba autorización de relay ni entrega. La automatización SMTP explica cómo separar esas transacciones.
Envelope sin DATA
Sección titulada «Envelope sin DATA»EHLO operator.example.testMAIL FROM:<SENDER>RCPT TO:<RECIPIENT>RSETQUITswaks --server TARGET_IP --port 25 \ --ehlo operator.example.test \ --from SENDER --to RECIPIENT \ --quit-after RCPT250 en RCPT no garantiza entrega final.
Usuarios
Sección titulada «Usuarios»VRFY USERNAMEEXPN LISTNAMEsmtp-user-enum -M RCPT -U users.txt -D DOMAIN -t TARGET_IPIncluye candidatos aleatorios. Catch-all y validación diferida generan falsos positivos.
sudo nmap -sV -n -Pn -p 25,465,587 \ --script smtp-commands TARGET_IPsudo nmap -sV -n -Pn -p 25,587 \ --script smtp-ntlm-info TARGET_IPnmap --script-help smtp-open-relayNo uses --script 'smtp-*'. El catálogo incluye brute force y checks intrusivos.
swaks --server TARGET_IP --port 25 \ --ehlo operator.example.test \ --from SENDER --to EXTERNAL_RECIPIENT \ --quit-after RCPTRegistra si remitente, destinatario, origen, TLS y autenticación son locales o externos.
Códigos
Sección titulada «Códigos»| Familia | Interpretación |
|---|---|
2xx |
aceptado en esa fase |
3xx |
espera información |
4xx |
temporal, puede existir greylisting o throttling |
5xx |
permanente para esa solicitud |
Conserva código mejorado como 5.7.1 y el texto completo.