Herramientas y automatización para IMAP y POP3
El workflow IMAP y POP3 explica los estados y comandos que deben entenderse antes de automatizarlos. Mantén separados protocolo, transporte, buzón e identidad.
Elegir la herramienta
Sección titulada «Elegir la herramienta»| Pregunta | Herramienta | Lo que no demuestra |
|---|---|---|
| ¿qué capacidades anuncia? | OpenSSL o NSE | que se mantengan tras autenticar |
| ¿STARTTLS funciona? | openssl s_client |
que el servidor lo exija |
| ¿puede una cuenta listar o recuperar? | cURL | permisos sobre otros buzones |
| ¿hay diferencias entre endpoints? | comandos equivalentes | que sean el mismo backend |
Ncat es útil para el banner en 110/tcp o 143/tcp. OpenSSL es la opción principal para TLS implícito y STARTTLS porque conserva el certificado y permite continuar el diálogo.
cURL como cliente acotado
Sección titulada «cURL como cliente acotado»cURL admite URLs imap://, imaps://, pop3:// y pop3s://. --user USERNAME evita colocar el secreto en el comando y hace que cURL lo solicite:
curl --user USERNAME --url 'imaps://FQDN/'--sdoc-reqd exige que una URL de texto ascienda mediante STARTTLS:
curl --sdoc-reqd --user USERNAME --url 'imap://FQDN/'En POP3, una URL sin identificador lista mensajes:
curl --user USERNAME --url 'pop3s://FQDN/'La recuperación puede actualizar marcas o el estado del cliente. No uses operaciones de borrado durante enumeración. --verbose ayuda a diagnosticar negociación, pero puede incluir cabeceras y datos sensibles.
Para una recolección repetible, --connect-timeout 5 limita el establecimiento de la conexión y --max-time 30 limita la operación completa. --silent --show-error conserva los errores sin el medidor. --output FILE separa la respuesta del diagnóstico:
curl --silent --show-error \ --connect-timeout 5 \ --max-time 30 \ --user USERNAME \ --output evidence/imap-mailboxes.txt \ --url 'imaps://FQDN/'Un archivo vacío con código de salida cero puede representar una vista sin buzones. Un timeout o error TLS no tiene esa interpretación. Para STARTTLS conserva los mismos límites, cambia la URL a imap:// y añade --sdoc-reqd. No habilites reintentos generales sobre operaciones que puedan modificar marcas o borrar mensajes.
NSE específico
Sección titulada «NSE específico»imap-capabilities y pop3-capabilities consultan capacidades sin credenciales:
nmap -sV -p 110,143,993,995 \ --script imap-capabilities,pop3-capabilities TARGET_IPimap-ntlm-info y pop3-ntlm-info intentan obtener metadatos durante una negociación NTLM cuando el servidor la ofrece:
nmap -sV -p 110,143,993,995 \ --script imap-ntlm-info,pop3-ntlm-info TARGET_IPLos scripts imap-brute y pop3-brute realizan intentos de autenticación. Generan eventos por cuenta y pueden activar bloqueos. Solo encajan cuando existe una matriz de identidades, una frecuencia definida y un criterio de parada.
Diagnosticar discrepancias
Sección titulada «Diagnosticar discrepancias»Si NSE y OpenSSL difieren, comprueba puerto, SNI, STARTTLS y momento de la consulta. Si cURL autentica y el diálogo manual no, compara mecanismo SASL, formato del usuario y quoting. Si IMAP lista buzones y POP3 devuelve un maildrop vacío, POP3 puede estar limitado a INBOX o sujeto a otra política.