IMAP / POP3
Last updated
Last updated
Con la ayuda de Internet Message Access Protocol
( IMAP
), es posible acceder a los correos electrónicos desde un servidor de correo. A diferencia de Post Office Protocol
( POP3
), IMAP permite la gestión en línea de correos electrónicos directamente en el servidor y admite estructuras de carpetas. Por lo tanto, 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 electrónico local con el buzón en el servidor, proporcionando una especie de sistema de archivos de red para correos electrónicos, lo que permite una sincronización sin problemas entre varios clientes independientes. POP3, por otro lado, no tiene la misma funcionalidad que IMAP y solo proporciona listado, recuperación y eliminación de correos electrónicos como funciones en el servidor de correo. Por lo tanto, protocolos como IMAP deben usarse 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 entre varios clientes, esto da como resultado una base de datos uniforme. Los correos electrónicos permanecen en el servidor hasta que se eliminan. IMAP se basa en texto y ofrece funciones avanzadas, como la navegación por correos electrónicos directamente en el servidor. También es posible que varios usuarios accedan al servidor de correo electrónico 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 sin conexión con una copia local del buzón. El cliente sincroniza todos los cambios locales sin conexión al restablecerse la conexión.
El cliente establece la conexión con el servidor a través del puerto 143
. Para la comunicación, utiliza comandos de texto en ASCII
formato . Se pueden enviar varios comandos consecutivos sin esperar la confirmación del servidor. Las confirmaciones posteriores del servidor se pueden asignar a los comandos individuales utilizando los identificadores enviados junto con los comandos. Inmediatamente después de establecer la conexión, el usuario se autentica en el servidor con su nombre de usuario y contraseña. El acceso al buzón deseado solo es posible tras una autenticación correcta.
El protocolo SMTP se utiliza habitualmente para enviar correos electrónicos. Al copiar los correos enviados a una carpeta IMAP, todos los clientes tienen acceso a todos los correos enviados, independientemente del equipo desde el que se enviaron. Otra ventaja del Protocolo de Acceso a Mensajes de Internet (SMTP) es la creación de carpetas personales y estructuras de carpetas en el buzón. Esta función facilita la gestión del buzón. Sin embargo, aumenta la necesidad de espacio de almacenamiento en el servidor de correo electrónico.
Sin medidas adicionales, IMAP funciona sin cifrar y transmite comandos, correos electrónicos o nombres de usuario y contraseñas en texto plano. Muchos servidores de correo electrónico requieren establecer una sesión IMAP cifrada para garantizar una mayor seguridad del tráfico y evitar el acceso no autorizado a los buzones. Para ello, se suele utilizar SSL/TLS. Según el método y la implementación, la conexión cifrada utiliza el puerto estándar 143
o uno alternativo, como 993
.
Tanto IMAP como POP3 ofrecen una gran cantidad de opciones de configuración, lo que dificulta profundizar en cada componente. Si desea examinar estas configuraciones de protocolo con más detalle, le recomendamos crear una máquina virtual local e instalar los dos paquetes dovecot-imapd
, y dovecot-pop3d
usar apt
y experimentar con las configuraciones.
En la documentación de Dovecot, podemos encontrar las individuales y las opciones que podemos utilizar en nuestros experimentos. Sin embargo, veamos la lista de comandos y cómo podemos interactuar y comunicarnos directamente con IMAP y POP3 mediante la línea de comandos.
Dominio
Descripción
1 LOGIN username password
Inicio de sesión del usuario.
1 LIST "" *
Enumera todos los directorios.
1 CREATE "INBOX"
Crea un buzón con un nombre especificado.
1 DELETE "INBOX"
Elimina un buzón.
1 RENAME "ToRead" "Important"
Cambia el nombre de un buzón.
1 LSUB "" *
Devuelve un subconjunto de nombres del conjunto de nombres que el usuario ha declarado como active
o subscribed
.
1 SELECT INBOX
Selecciona un buzón para que se pueda acceder a los mensajes que contiene.
1 UNSELECT INBOX
Sale del buzón seleccionado.
1 FETCH <ID> all
Recupera datos asociados a un mensaje en el buzón.
1 CLOSE
Elimina todos los mensajes con la Deleted
bandera establecida.
1 LOGOUT
Cierra la conexión con el servidor IMAP.
Dominio
Descripción
USER username
Identifica al usuario.
PASS password
Autenticación del usuario mediante su contraseña.
STAT
Solicita la cantidad de correos electrónicos guardados del servidor.
LIST
Solicita al servidor el número y tamaño de todos los correos electrónicos.
RETR id
Solicita al servidor que entregue el correo electrónico solicitado por ID.
DELE id
Solicita al servidor que elimine el correo electrónico solicitado por ID.
CAPA
Solicita al servidor que muestre las capacidades del servidor.
RSET
Solicita al servidor que restablezca la información transmitida.
QUIT
Cierra la conexión con el servidor POP3.
Sin embargo, las opciones de configuración incorrectas podrían permitirnos obtener más información, como depurar los comandos ejecutados en el servicio o iniciar sesión de forma anónima, de forma similar al servicio FTP. La mayoría de las empresas utilizan proveedores de correo electrónico externos como Google, Microsoft y muchos otros. Sin embargo, algunas empresas aún utilizan sus propios servidores de correo por diversas razones. Una de ellas es proteger su privacidad. Los administradores pueden cometer muchos errores de configuración, lo que, en el peor de los casos, nos permitirá leer todos los correos electrónicos enviados y recibidos, que incluso pueden contener información confidencial. Algunas de estas opciones de configuración incluyen:
Configuración
Descripción
auth_debug
Habilita todo el registro de depuración de autenticación.
auth_debug_passwords
Esta configuración ajusta el nivel de detalle del registro, las contraseñas enviadas y el esquema que se registra.
auth_verbose
Registra los intentos de autenticación fallidos y sus motivos.
auth_verbose_passwords
Las contraseñas utilizadas para la autenticación se registran y también pueden truncarse.
auth_anonymous_username
Esto especifica el nombre de usuario que se utilizará al iniciar sesión con el mecanismo SASL ANÓNIMO.
De forma predeterminada, los puertos 110
y 995
se utilizan para POP3, y los puertos 143
y 993
para IMAP. Los puertos superiores ( 993
y 995
) utilizan TLS/SSL para cifrar la comunicación entre el cliente y el servidor. Con Nmap, podemos escanear el servidor en busca de estos puertos. El escaneo devolverá la información correspondiente (como se muestra a continuación) si el servidor utiliza un certificado integrado.
Por ejemplo, en la salida, podemos ver que el nombre común es mail1.inlanefreight.htb
y que el servidor de correo electrónico pertenece a la organización Inlanefreight
, ubicada en California. Las capacidades mostradas muestran los comandos disponibles en el servidor y para el servicio en el puerto correspondiente.
Si logramos descubrir 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 establece la conexión. Aquí podemos ver la versión de TLS utilizada para el cifrado, más detalles del certificado SSL e incluso el banner, que suele contener la versión del servidor de correo.
Para interactuar con el servidor IMAP o POP3 mediante SSL, podemos usar openssl
, así como ncat
. Los comandos serían similares a estos:
Una vez iniciada la conexión e iniciada la sesión en el servidor de correo de destino, podemos usar los comandos anteriores para trabajar con él y navegar por él. Cabe destacar que la configuración de nuestro propio servidor de correo, la investigación al respecto y los experimentos que podemos realizar junto con otros miembros de la comunidad nos permitirán comprender la comunicación y las opciones de configuración responsables de ella.