IMAP/POP3
Last updated
Last updated
Con la ayuda del Protocolo de Acceso a Mensajes de Internet (IMAP), es posible acceder a correos electrónicos desde un servidor de correo. A diferencia del Protocolo de Oficina de Correos (POP3), IMAP permite la gestión en línea de los correos electrónicos directamente en el servidor y soporta estructuras de carpetas. Así, es un protocolo de red para la gestión en línea de correos electrónicos en un servidor remoto. El protocolo está basado en cliente-servidor y permite la sincronización de un cliente de correo local con el buzón en el servidor, proporcionando una especie de sistema de archivos en red para correos electrónicos, permitiendo una sincronización sin problemas a través de varios clientes independientes. Por otro lado, POP3 no tiene la misma funcionalidad que IMAP, ya que solo proporciona funciones para listar, recuperar y eliminar correos electrónicos en el servidor de correo. Por lo tanto, se deben utilizar protocolos como IMAP para funcionalidades adicionales como buzones jerárquicos directamente en el servidor de correo, acceso a múltiples buzones durante una sesión y preselección de correos electrónicos.
Los clientes acceden a estas estructuras en línea y pueden crear copias locales. Incluso a través de varios clientes, esto resulta en una base de datos uniforme. Los correos electrónicos permanecen en el servidor hasta que se eliminan. IMAP es un protocolo basado en texto y tiene funciones extendidas, como la navegación de correos electrónicos directamente en el servidor. También es posible que varios usuarios accedan al servidor de correo simultáneamente. Sin una conexión activa al servidor, la gestión de correos electrónicos es imposible. Sin embargo, algunos clientes ofrecen un modo fuera de línea con una copia local del buzón. El cliente sincroniza todos los cambios locales realizados fuera de línea cuando se restablece la conexión.
El cliente establece la conexión con el servidor a través del puerto 143. Para la comunicación, utiliza comandos basados en texto en formato ASCII. Se pueden enviar varios comandos en sucesión sin esperar confirmación del servidor. Las confirmaciones posteriores del servidor pueden asignarse a los comandos individuales utilizando los identificadores enviados junto con los comandos. Inmediatamente después de establecerse la conexión, el usuario se autentica en el servidor mediante nombre de usuario y contraseña. El acceso al buzón deseado solo es posible después de una autenticación exitosa.
SMTP se usa generalmente para enviar correos electrónicos. Al copiar los correos electrónicos enviados en una carpeta IMAP, todos los clientes tienen acceso a todos los correos enviados, independientemente del ordenador desde el que se hayan enviado. Otra ventaja del Protocolo de Acceso a Mensajes de Internet es la creación de carpetas personales y estructuras de carpetas en el buzón. Esta característica hace que el buzón sea más claro y fácil de gestionar. Sin embargo, el requerimiento de espacio de almacenamiento en el servidor de correo aumenta.
Sin medidas adicionales, IMAP funciona sin cifrado y transmite comandos, correos electrónicos o nombres de usuario y contraseñas en texto plano. Muchos servidores de correo requieren el establecimiento de una sesión IMAP cifrada para garantizar una mayor seguridad en el tráfico de correos electrónicos y prevenir el acceso no autorizado a los buzones. Para esto, se utiliza comúnmente SSL/TLS. Dependiendo del método y la implementación utilizados, la conexión cifrada usa el puerto estándar 143 o un puerto alternativo como el 993.
Tanto IMAP como POP3 tienen una gran cantidad de opciones de configuración, lo que hace difícil profundizar en cada componente en más detalle. Si deseas examinar estas configuraciones de protocolo más a fondo, te recomendamos crear una máquina virtual local e instalar los paquetes dovecot-imapd
y dovecot-pop3d
usando apt
, y experimentar con las configuraciones.
En la documentación de Dovecot, puedes encontrar los ajustes básicos individuales y las opciones de configuración del servicio que se pueden utilizar para nuestros experimentos. Sin embargo, echemos un vistazo a la lista de comandos y veamos cómo podemos interactuar y comunicarnos directamente con IMAP y POP3 usando la línea de comandos.
Comando | Descripción |
---|---|
No obstante, las opciones de configuración mal configuradas podrían permitirnos obtener más información, como depurar los comandos ejecutados en el servicio o iniciar sesión como anónimo, similar al servicio FTP. La mayoría de las empresas utilizan proveedores de correo electrónico de terceros como Google, Microsoft, entre otros. Sin embargo, algunas empresas todavía utilizan sus propios servidores de correo por varias razones diferentes. Una de estas razones es mantener la privacidad que desean tener en sus propias manos. Muchos errores de configuración pueden ser cometidos por los administradores, lo que en los peores casos permitirá leer todos los correos enviados y recibidos, que incluso pueden contener información confidencial o sensible. Algunas de estas opciones de configuración incluyen:
Por defecto, los puertos 110 y 995 se utilizan para POP3, y los puertos 143 y 993 se utilizan para IMAP. Los puertos más altos (993 y 995) utilizan TLS/SSL para cifrar la comunicación entre el cliente y el servidor. Usando Nmap, podemos escanear el servidor para estos puertos. El escaneo devolverá la información correspondiente (como se muestra a continuación) si el servidor utiliza un certificado embebido.
Por ejemplo, a partir de la salida, podemos ver que el nombre común es mail1.inlanefreight.htb
, y el servidor de correo pertenece a la organización Inlanefreight, que está ubicada en California. Las capacidades mostradas nos indican los comandos disponibles en el servidor y para el servicio en el puerto correspondiente.
Si logramos obtener las credenciales de acceso de uno de los empleados, un atacante podría iniciar sesión en el servidor de correo y leer o incluso enviar los mensajes individuales.
Si también usamos la opción verbose (-v
), veremos cómo se realiza la conexión. A partir de esto, podemos ver la versión de TLS utilizada para el cifrado, detalles adicionales del certificado SSL e incluso el banner, que a menudo contiene la versión del servidor de correo.
Para interactuar con el servidor IMAP o POP3 sobre SSL, podemos usar openssl
, así como ncat
. Los comandos para esto se verían así:
Una vez que hemos iniciado con éxito una conexión y hemos iniciado sesión en el servidor de correo de destino, podemos usar los comandos anteriores para trabajar con y navegar por el servidor. Queremos señalar que la configuración de nuestro propio servidor de correo, la investigación sobre él y los experimentos que podemos realizar junto con otros miembros de la comunidad nos proporcionarán el conocimiento necesario para entender la comunicación que está teniendo lugar y qué opciones de configuración son responsables de ello.
En la sección de SMTP, encontramos al usuario robin
. Otro miembro de nuestro equipo descubrió que el usuario también utiliza su nombre de usuario como contraseña (robin:robin
). Podemos usar estas credenciales y probarlas para interactuar con los servicios IMAP/POP3.
Comando | Descripción |
---|---|
Configuración | Descripción |
---|---|
LOGIN username password
Autenticación del usuario.
LIST "" *
Lista todos los directorios.
CREATE "INBOX"
Crea un buzón con el nombre especificado.
DELETE "INBOX"
Elimina un buzón.
RENAME "ToRead" "Important"
Renombra un buzón.
LSUB "" *
Devuelve un subconjunto de nombres del conjunto de nombres que el Usuario ha declarado como activos o suscritos.
SELECT INBOX
Selecciona un buzón para que los mensajes en el buzón puedan ser accedidos.
UNSELECT INBOX
Sale del buzón seleccionado.
FETCH <ID> all
Recupera datos asociados con un mensaje en el buzón.
CLOSE
Elimina todos los mensajes con la etiqueta Deleted establecida.
LOGOUT
Cierra la conexión con el servidor IMAP.
USER username
Identifica al usuario.
PASS password
Autenticación del usuario usando su contraseña.
STAT
Solicita el número de correos guardados en el servidor.
LIST
Solicita al servidor el número y tamaño de todos los correos.
RETR id
Solicita al servidor que entregue el correo solicitado por ID.
DELE id
Solicita al servidor que elimine el correo solicitado por ID.
CAPA
Solicita al servidor que muestre las capacidades del servidor.
RSET
Solicita al servidor que reinicie la información transmitida.
QUIT
Cierra la conexión con el servidor POP3.
auth_debug
Habilita el registro de depuración de autenticación.
auth_debug_passwords
Esta configuración ajusta la verbosidad del registro, y las contraseñas enviadas y el esquema se registran.
auth_verbose
Registra los intentos de autenticación fallidos y sus razones.
auth_verbose_passwords
Las contraseñas usadas para la autenticación se registran y también pueden ser truncadas.
auth_anonymous_username
Especifica el nombre de usuario que se usará al iniciar sesión con el mecanismo SASL ANONYMOUS.