Apuntes Ciberseguridad (Cibaism)
HTBGitHubLinkedInNotion (Writeups)
  • Welcome to My Digital Garden
  • About me
  • Hacking notes (Personal)
    • Tratamiento TTY
    • Hacking Web Tecniques
      • File Inclusion
    • Linux Privilage Escalation
    • Arreglar bloodhound
  • Hacking Notes (Learning Path)
    • (HTB) Penetration Tester
      • Getting Started
        • Common Terms
          • Tipos de Shell
          • Puertos importantes
          • OWASP Top 10
        • Service Scanning
          • Nmap
          • Attacking Network Services
            • Captura de banners
            • FTP
            • SMB
            • SNMP
        • Web Enumeration
        • Public exploits
          • Encontrar exploits públicos
          • Introducción a Metasploit
        • Types of Shells
          • Reverse Shell
          • Bind Shell
          • Web Shell
        • Privilage escalation
        • Transferring Files
      • Footprinting
        • Infrastructura Based Enumeration
          • Domain Information
          • Cloud Resources
          • Staff
        • Host Based Enumeration
          • FTP
          • SMB
          • NFS
          • DNS
          • SMTP
          • IMAP / POP3
          • SNMP
          • MySQL
          • MSSQL
          • Oracle TNS
          • IPMI
          • Protocolos de administración remota de Linux
          • Protocolos de administración remota de Windows
      • Introduction to Active Directory Enumeration & Attacks
        • Tools of the Trade
        • Initial enumeration
          • External Recon and Enumeration Principles
          • Initial Enumeration of the Domain
        • Sniffing out a Foothold
          • LLMNR/NBT-NS Poisoning - from Linux
          • LLMNR/NBT-NS Poisoning - from Windows
        • Sighting In, Hunting For A User
          • Password Spraying Overview
          • Enumerating & Retrieving Password Policies
          • Password Spraying - Making a Target User List
        • Spray Responsibly
          • Internal Password Spraying - from Linux
      • File Inclusion
        • File Disclousure
          • Local File Inclusion (LFI)
          • Basic Bypasses
          • PHP Filters
        • Remote Code Execution
          • PHP Wrappers
    • (CRTA) Red Team Analyst
      • (CRTA) Red Team Analyst - Lab
    • (eJPT) Junior Penetration Tester
      • Assessment Methodologies
        • Assessment Methodologies: Footprinting & Scanning
          • Windows Recon: Nmap Host Discovery
          • Scan the Server 1
          • Windows Recon: SMB Nmap Scripts
        • Assessment Methodologies: Enumeration
          • Importing Nmap Scan Results Into MSF
          • T1046 : Network Service Scanning
          • FTP Enumeration
          • Samba Recon: Basics
          • Apache Enumeration
          • MySQL Enumeration
          • SSH Login
          • Postfix Recon: Basics
        • Assessment Methodologies: Vulnerability Assessment
          • Windows: IIS Server DAVTest
          • Shellshock
          • Web App Vulnerability Scanning With WMAP
      • Host & Network Penetration Testing
        • Host & Network Penetration Testing: System/Host Based Attacks
          • Windows
            • Windows: IIS Server: WebDav Metasploit
            • Windows: SMB Server PSexec
            • Windows: Insecure RDP Service
            • WinRM: Exploitation with Metasploit
            • UAC Bypass: UACMe
            • Privilege Escalation: Impersonate
            • Unattended Installation
            • Windows: Meterpreter: Kiwi Extension
          • Linux
            • ProFTP Recon: Basics
            • Samba Recon: Dictionary Attack
            • Cron Jobs Gone Wild II
            • Exploiting Setuid Programs
            • Password Cracker: Linux
        • Host & Network Penetration Testing: Network-Based Attacks
          • NetBIOS Hacking
          • SNMP Analysis
          • DNS & SMB Relay Attack
        • Host & Network Penetration Testing: The Metasploit Framework (MSF)
          • Windows: Java Web Server
          • Windows: HTTP File Server
          • Vulnerable FTP Server
          • Vulnerable File Sharing Service
          • Vulnerable SSH server
          • Vulnerable SMTP Server
          • Meterpreter Basics
          • Upgrading Command Shells To Meterpreter Shells
          • Windows Post Exploitation Modules
          • UAC Bypass: Memory Injection (Metasploit)
          • Exploiting SMB With PsExec
          • Windows: Enabling Remote Desktop
          • Clearing Windows Event Logs
          • Pivoting
  • Blue team notes
    • Digital Forensics
      • Malware Analysis with VirusTotal
      • Wireshark
    • (Falcon) CrowdStrike
      • FALCON 104: Getting Started with the Endpoint Security Module
      • FALCON 106: Customizing Dashboards in Falcon
      • FALCON 180: Falcon Forensics Fundamentals
  • Programming
    • Powershell
Powered by GitBook
On this page
  • Configuración predeterminada
  • Configuración predeterminada
  • Telnet - HELO/EHLO
  • Telnet - VRFY
  • Enviar un correo electrónico
  • Configuraciones peligrosas
  • Configuración del relay abierto
  • Footprinting del servicio
  • Nmap
  • Nmap - Relay abierto
  1. Hacking Notes (Learning Path)
  2. (HTB) Penetration Tester
  3. Footprinting
  4. Host Based Enumeration

SMTP

PreviousDNSNextIMAP / POP3

Last updated 2 months ago

El protocolo Simple Mail Transfer Protocol( SMTP) es un protocolo para enviar correos electrónicos en una red IP. Puede utilizarse entre un cliente de correo electrónico y un servidor de correo saliente o entre dos servidores SMTP. SMTP suele combinarse con los protocolos IMAP o POP3, que permiten obtener y enviar correos electrónicos. En principio, es un protocolo cliente-servidor, aunque SMTP puede utilizarse entre un cliente y un servidor, así como entre dos servidores SMTP. En este caso, un servidor actúa como cliente.

De forma predeterminada, los servidores SMTP aceptan solicitudes de conexión en el puerto 25. Sin embargo, los servidores SMTP más recientes también utilizan otros puertos, como el puerto TCP 587. Este puerto se utiliza para recibir correo de usuarios/servidores autenticados, generalmente mediante el comando STARTTLS para cambiar la conexión de texto plano existente a una conexión cifrada. Los datos de autenticación están protegidos y ya no son visibles en texto plano en la red. Al iniciar la conexión, la autenticación se produce cuando el cliente confirma su identidad con un nombre de usuario y una contraseña. A continuación, se pueden transmitir los correos electrónicos. Para ello, el cliente envía al servidor las direcciones de remitente y destinatario, el contenido del correo electrónico y otra información y parámetros. Tras la transmisión del correo electrónico, la conexión se finaliza. El servidor de correo electrónico comienza entonces a enviar el correo electrónico a otro servidor SMTP.

El protocolo SMTP funciona sin cifrar y sin medidas adicionales, y transmite todos los comandos, datos e información de autenticación en texto plano. Para evitar la lectura no autorizada de datos, el protocolo SMTP se utiliza junto con el cifrado SSL/TLS. En determinadas circunstancias, un servidor utiliza un puerto distinto del puerto TCP estándar 25para la conexión cifrada, por ejemplo, el puerto TCP 465.

Una función esencial de un servidor SMTP es prevenir el spam mediante mecanismos de autenticación que permiten que solo los usuarios autorizados envíen correos electrónicos. Para ello, la mayoría de los servidores SMTP modernos admiten la extensión de protocolo ESMTP con SMTP-Auth. Tras enviar el correo electrónico, el cliente SMTP, también conocido como Mail User Agent( MUA), lo convierte en un encabezado y un cuerpo y lo sube al servidor SMTP. Este cuenta con el llamado Mail Transfer Agent( MTA), la base del software para enviar y recibir correos electrónicos. El MTA comprueba el tamaño del correo electrónico y si es spam, y luego lo almacena. Para facilitar la tarea del MTA, ocasionalmente se le antepone un Mail Submission Agent( MSA), que verifica la validez, es decir, el origen del correo electrónico. Esto MSAtambién se denomina Relayservidor. Estos son muy importantes más adelante, ya que el llamado ataque Open Relay Attackpuede llevarse a cabo en muchos servidores SMTP debido a una configuración incorrecta. Más adelante analizaremos este ataque y cómo identificar su punto débil. El MTA busca entonces en el DNS la dirección IP del servidor de correo del destinatario.

Al llegar al servidor SMTP de destino, los paquetes de datos se reensamblan para formar un correo electrónico completo. Desde allí, el Mail delivery agent( MDA) lo transfiere al buzón del destinatario.

Pero SMTP tiene dos desventajas inherentes al protocolo de red.

  1. La primera es que enviar un correo electrónico mediante SMTP no devuelve una confirmación de entrega válida. Si bien las especificaciones del protocolo contemplan este tipo de notificación, su formato no está especificado por defecto, por lo que normalmente solo se devuelve un mensaje de error en inglés, que incluye el encabezado del mensaje no entregado.

Configuración predeterminada

Cada servidor SMTP puede configurarse de diversas maneras, al igual que todos los demás servicios. Sin embargo, existen diferencias, ya que el servidor SMTP solo se encarga de enviar y reenviar correos electrónicos.

Configuración predeterminada

cat /etc/postfix/main.cf | grep -v "#" | sed -r "/^\s*$/d"
smtpd_banner = ESMTP Server 
biff = no
append_dot_mydomain = no
readme_directory = no
compatibility_level = 2
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
myhostname = mail1.inlanefreight.htb
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
smtp_generic_maps = hash:/etc/postfix/generic
mydestination = $myhostname, localhost 
masquerade_domains = $myhostname
mynetworks = 127.0.0.0/8 10.129.0.0/16
mailbox_size_limit = 0
recipient_delimiter = +
smtp_bind_address = 0.0.0.0
inet_protocols = ipv4
smtpd_helo_restrictions = reject_invalid_hostname
home_mailbox = /home/postfix

El envío y la comunicación también se realizan mediante comandos especiales que hacen que el servidor SMTP haga lo que el usuario requiere.

Dominio

Descripción

AUTH PLAIN

AUTH es una extensión de servicio utilizada para autenticar al cliente.

HELO

El cliente inicia sesión con el nombre de su computadora y así inicia la sesión.

MAIL FROM

El cliente nombra al remitente del correo electrónico.

RCPT TO

El cliente nombra el destinatario del correo electrónico.

DATA

El cliente inicia la transmisión del correo electrónico.

RSET

El cliente cancela la transmisión iniciada pero mantiene la conexión entre el cliente y el servidor.

VRFY

El cliente comprueba si hay un buzón disponible para la transferencia de mensajes.

EXPN

El cliente también verifica si hay un buzón disponible para enviar mensajes con este comando.

NOOP

El cliente solicita una respuesta del servidor para evitar la desconexión debido al tiempo de espera.

QUIT

El cliente finaliza la sesión.

Para interactuar con el servidor SMTP, podemos usar la telnetherramienta para inicializar una conexión TCP con él. La inicialización de la sesión se realiza con el comando mencionado anteriormente, HELOo EHLO.

Telnet - HELO/EHLO

telnet <ip> 25
HELO mail1.inlanefreight.htb
EHLO mail1

Telnet - VRFY

telnet <host> 25
VRFY root

Por lo tanto, nunca se debe confiar completamente en los resultados de las herramientas automáticas. Al fin y al cabo, estas ejecutan comandos preconfigurados, pero ninguna de las funciones indica explícitamente cómo el administrador configura el servidor probado.

A veces, necesitamos usar un proxy web. También podemos conectar este proxy web al servidor SMTP. El comando que enviaríamos sería similar a esto:CONNECT 10.129.14.128:25 HTTP/1.0

Todos los comandos que introducimos en la línea de comandos para enviar un correo electrónico los conocemos de cualquier cliente de correo electrónico como Thunderbird, Gmail, Outlook y muchos otros. Especificamos el destinatario subject, el destinatario, las copias en CC y CCO, y la información que queremos compartir. Por supuesto, esto también funciona desde la línea de comandos.

Enviar un correo electrónico

telnet <ip> 25
EHLO <dominio>
MAIL FROM: <'<origen>'>
RCPT TO: <'<destinatario>'> NOTIFY=success,failure
DATA
<texto>
.
QUIT

El encabezado del correo electrónico contiene gran cantidad de información interesante. Entre otras cosas, proporciona información sobre el remitente y el destinatario, la hora de envío y llegada, las estaciones por las que pasó el correo electrónico, el contenido y el formato del mensaje, y el remitente y el destinatario.

Configuraciones peligrosas

Para evitar que los correos electrónicos enviados sean filtrados por los filtros de spam y no lleguen al destinatario, el remitente puede usar un servidor de retransmisión de confianza para el destinatario. Se trata de un servidor SMTP conocido y verificado por todos los demás. Por regla general, el remitente debe autenticarse en el servidor de retransmisión antes de usarlo.

A menudo, los administradores no tienen una visión general de los rangos de IP que deben permitir. Esto provoca una configuración incorrecta del servidor SMTP que aún encontramos con frecuencia en pruebas de penetración internas y externas. Por lo tanto, permiten que todas las direcciones IP no provoquen errores en el tráfico de correo electrónico y, por lo tanto, no interrumpan involuntariamente la comunicación con clientes potenciales y actuales.

Configuración del relay abierto

mynetworks = 0.0.0.0/0

Con esta configuración, el servidor SMTP puede enviar correos electrónicos falsos y, por lo tanto, iniciar la comunicación entre varias partes. Otra posibilidad de ataque sería falsificar el correo electrónico y leerlo.

Footprinting del servicio

Los scripts predeterminados de Nmap incluyen smtp-commands, que utiliza el EHLOcomando para enumerar todos los comandos posibles que se pueden ejecutar en el servidor SMTP de destino.

Nmap

sudo nmap <ip> -sC -sV -p25

Nmap - Relay abierto

sudo nmap <ip> -p25 --script smtp-open-relay -v

Los usuarios no se autentican al establecer una conexión, por lo que el remitente de un correo electrónico no es fiable. Como resultado, los relés SMTP abiertos se utilizan a menudo para enviar spam masivo. Los remitentes utilizan direcciones de remitente falsas y arbitrarias para evitar ser rastreados (suplantación de correo). Actualmente, se emplean diversas técnicas de seguridad para prevenir el uso indebido de los servidores SMTP. Por ejemplo, los correos electrónicos sospechosos se rechazan o se envían a cuarentena (carpeta de spam). Entre los responsables de esto se encuentran, por ejemplo, el protocolo de identificación ( DKIM) y el ( SPF).

Para ello, se ha desarrollado una extensión para SMTP llamada Extended SMTP( ESMTP). Cuando se habla de SMTP en general, se suele hacer referencia a ESMTP. ESMTP utiliza TLS, que se realiza después del EHLOcomando mediante el envío de [ STARTTLSnombre del dominio]. Esto inicializa la conexión SMTP protegida por SSL y, a partir de ese momento, toda la conexión está cifrada y, por lo tanto, es más o menos segura. Ahora, la extensión para la autenticación también se puede utilizar de forma segura.

El comando VRFYpuede usarse para enumerar usuarios existentes en el sistema. Sin embargo, esto no siempre funciona. Dependiendo de la configuración del servidor SMTP, este podría emitir code 252y confirmar la existencia de un usuario inexistente en el sistema. Puede encontrar una lista de todos los códigos de respuesta SMTP .

Parte de esta información es obligatoria, como la del remitente y la fecha de creación del correo electrónico. Otra información es opcional. Sin embargo, el encabezado del correo electrónico no contiene información necesaria para la entrega técnica. Se transmite como parte del protocolo de transmisión. Tanto el remitente como el destinatario pueden acceder al encabezado de un correo electrónico, aunque no sea visible a simple vista. La estructura de un encabezado de correo electrónico se define en .

Sin embargo, también podemos usar el script NSE para identificar el servidor SMTP de destino como un relé abierto mediante 16 pruebas diferentes. Si además imprimimos el resultado del escaneo en detalle, podremos ver qué pruebas está ejecutando el script.

DomainKeys
Sender Policy Framework
AUTH PLAIN
aquí
RFC 5322
smtp-open-relay