July 5, 2026
TryHackMe Protocols and Servers (versão em português)
Introdução

By Chris Mineff
25 min read
Introdução
Esta sala apresenta vários protocolos comumente usados em redes:
- HTTP
- FTP
- POP3
- SMTP
- IMAP
Esses protocolos formam a base de como você navega na web, transfere arquivos e envia e recebe e-mails. Entender como eles funcionam em um nível mais baixo é essencial para qualquer pessoa que esteja seguindo carreira em cibersegurança, seja em pentest, defesa de redes ou engenharia de segurança.
Cada tarefa sobre protocolo foi criada para mostrar o que acontece por baixo da superfície, algo que normalmente fica oculto por uma GUI (Graphical User Interface), ou seja, uma interface gráfica. Você irá "conversar" usando os protocolos acima com um cliente simples de telnet, para entender o que seu cliente gráfico faz nos bastidores.
O objetivo não é memorizar os comandos dos protocolos, mas sim observar o protocolo enquanto ele está funcionando.
Por que aprender esses protocolos hoje?
Você pode se perguntar por que está estudando protocolos que têm décadas de existência. Há vários motivos importantes.
Primeiro, esses protocolos ainda estão em uso. Embora a maioria dos serviços públicos atualmente use versões criptografadas, como HTTPS, SFTP e IMAPS, a mecânica subjacente dos protocolos continua a mesma. Os comandos enviados por HTTPS são os mesmos comandos HTTP, apenas encapsulados com criptografia TLS.
Segundo, você encontrará protocolos em texto claro durante pentests e avaliações de segurança. Sistemas legados, redes internas, dispositivos IoT e serviços mal configurados ainda costumam usar protocolos sem criptografia. Reconhecer e explorar essas fraquezas é uma habilidade essencial em pentest.
Terceiro, entender o protocolo ajuda você a entender os ataques. Quando você sabe como o SMTP funciona, entende por que o email spoofing é possível. Quando entende HTTP, as vulnerabilidades em aplicações web fazem mais sentido. Esse conhecimento fundamental faz de você um profissional de segurança melhor.
Esta sala também discute algumas das inseguranças inerentes a esses protocolos. Em especial, o foco está em senhas enviadas em texto claro. Quando credenciais são transmitidas sem criptografia, qualquer pessoa com acesso ao tráfego da rede pode capturá-las.
Isso era aceitável quando esses protocolos foram criados para redes acadêmicas confiáveis, mas é uma vulnerabilidade séria em redes modernas.
Na sala seguinte, Protocols and Servers 2, você explorará como esses protocolos podem ser protegidos usando criptografia TLS e analisará ataques como sniffing, man-in-the-middle e ataques de senha com mais detalhes.
Pré-requisitos
Esta sala pressupõe que você tenha uma compreensão funcional de TCP/IP, portas e do modelo cliente-servidor. Você também deve estar confortável com o terminal Linux.
Se precisar revisar algum desses tópicos, conclua primeiro:
- Networking
- Linux Fundamentals
Responda às perguntas abaixo:
Sugerimos que você inicie o AttackBox e a máquina do laboratório à medida que avança nas tarefas a seguir. Você pode se conectar aos diferentes serviços usando telnet para praticar melhor e ter uma experiência de aprendizado mais completa.
Resposta: Não é necessária resposta
TELNET
O protocolo Telnet é um protocolo da camada de aplicação usado para se conectar a um terminal virtual de outro computador. Usando Telnet, um usuário pode fazer login em uma máquina remota e acessar seu terminal, ou console, para executar programas, iniciar processos em lote e realizar tarefas de administração de sistemas remotamente.
O protocolo Telnet é relativamente simples. Quando um usuário se conecta, são solicitados um nome de usuário e uma senha. Após a autenticação correta, o usuário obtém acesso ao terminal do sistema remoto. No entanto, toda a comunicação entre o cliente Telnet e o servidor Telnet não é criptografada, tornando-o um alvo fácil para atacantes.
Telnet hoje
O Telnet foi amplamente usado para administração remota nos primeiros dias das redes. No entanto, ele foi quase totalmente substituído pelo SSH (Secure Shell) para acesso remoto interativo.
É improvável que você encontre Telnet habilitado em sistemas modernos e corretamente configurados. Porém, ainda é possível encontrá-lo em:
- Sistemas legados e equipamentos de rede antigos, como roteadores, switches e controladores industriais
- Dispositivos embarcados e equipamentos IoT com recursos limitados
- Redes internas onde a segurança nunca foi priorizada
- Sistemas mal configurados em que o Telnet foi habilitado, mas nunca desativado
Durante pentests, encontrar uma porta Telnet aberta, geralmente a porta 23, costuma ser uma descoberta significativa, pois indica um sistema legado ou uma falha de configuração de segurança.
Cliente Telnet como ferramenta de teste
Embora servidores Telnet sejam raros, o cliente Telnet continua útil como uma ferramenta simples para se conectar a qualquer porta TCP e interagir manualmente com protocolos baseados em texto.
Por exemplo, você pode usar:
telnet target 80telnet target 80para se conectar a um servidor web e digitar comandos HTTP manualmente. Esse uso do Telnet é abordado na sala Active Reconnaissance.
Como o Telnet funciona
Um servidor Telnet escuta conexões recebidas na porta 23 usando o protocolo Telnet.
A saída de terminal a seguir é ilustrativa e foi capturada em um ambiente separado. A porta Telnet não está aberta na VM alvo anexada a esta sala, portanto você não conseguirá replicar essa conexão específica. No entanto, ela demonstra claramente o fluxo de autenticação.
As etapas são as seguintes:
- O usuário é solicitado a fornecer seu nome de login, ou nome de usuário. Neste exemplo, o usuário digita
frank. - Em seguida, é solicitada a senha,
D2xc9CgD. A senha não aparece na tela; no entanto, ela é exibida abaixo apenas para fins de demonstração. - Depois que o sistema verifica as credenciais de login, o usuário recebe uma mensagem de boas-vindas.
- O servidor remoto concede um prompt de comando:
frank@bento:~$frank@bento:~$O símbolo $ indica que este não é um terminal de root.
Embora o Telnet forneça acesso rápido ao terminal do sistema remoto, ele não é um protocolo confiável para administração remota, porque todos os dados são enviados em texto claro.
Na figura abaixo, o tráfego gerado pelo Telnet foi capturado, e foi trivial encontrar a senha. A figura mostra os dados ASCII trocados entre o cliente e o sistema remoto.
O texto em vermelho é o que o cliente envia, enquanto o texto em azul é o que o sistema remoto envia de volta.
Observe que o nome de usuário foi ecoado de volta para ser exibido no terminal; no entanto, a senha não foi. Em outras palavras, se alguém estivesse olhando para a tela, não veria os caracteres da senha.
No entanto, essa proteção visual não tem valor real, porque a senha ainda trafega pela rede em texto claro.
Por que o Telnet é inseguro
O Telnet não é mais considerado uma opção segura. Qualquer pessoa que capture o tráfego da sua rede pode descobrir seus nomes de usuário e senhas, o que concederia acesso ao sistema remoto.
Isso inclui:
- Atacantes no mesmo segmento de rede
- Qualquer pessoa que tenha comprometido um roteador ou switch no caminho
- Insiders maliciosos com acesso à rede
- Qualquer pessoa realizando um ataque man-in-the-middle bem-sucedido
A alternativa segura é o SSH (Secure Shell), que criptografa todo o tráfego, incluindo as credenciais.
O SSH tem sido o padrão para acesso remoto via linha de comando há mais de duas décadas.
Responda à pergunta abaixo:
A qual porta o comando telnet, usando os parâmetros padrão, tentará se conectar?
Resposta: 23
Hypertext Transfer Protocol
O Hypertext Transfer Protocol, ou HTTP, é o protocolo usado para transferir páginas web.
Seu navegador se conecta ao servidor web e usa HTTP para solicitar páginas HTML, imagens e outros arquivos. Ele também envia formulários e faz upload de diversos arquivos.
Sempre que você navega na World Wide Web (WWW), está usando o protocolo HTTP.
A imagem abaixo mostra um cliente solicitando a página HTML index.html, que é fornecida pelo servidor web. Em seguida, o cliente solicita uma imagem, logo.jpg, e o servidor web a envia.
HTTP vs HTTPS
O HTTP envia e recebe dados em texto claro, ou seja, sem criptografia. Isso significa que qualquer pessoa com acesso ao tráfego da rede pode ler o conteúdo que está sendo transferido, incluindo informações sensíveis, como credenciais de login e dados pessoais.
Atualmente, a grande maioria dos sites usa HTTPS (HTTP Secure), que encapsula o HTTP dentro de criptografia TLS. Navegadores modernos marcam sites HTTP comuns como "Not Secure", ou "Não seguro", e alguns recursos, como geolocalização e acesso à câmera, são totalmente bloqueados em sites que não usam HTTPS.
No entanto, entender como o HTTP funciona ainda é essencial porque:
- Os comandos e a estrutura do HTTP são idênticos, seja usando HTTP ou HTTPS.
- Você encontrará HTTP durante pentests internos e em sistemas legados.
- Entender o protocolo ajuda a identificar e explorar vulnerabilidades web.
- Ferramentas como Burp Suite descriptografam o tráfego HTTPS para análise, mostrando o HTTP bruto.
Para esta demonstração, será usado HTTP comum, sem criptografia, para que você consiga ver exatamente o que está sendo transmitido.
Enviando requisições HTTP manualmente
Como o HTTP é um protocolo em texto claro, você pode usar uma ferramenta simples, como telnet ou netcat, para se comunicar com um servidor web e agir como se fosse um "navegador web".
A principal diferença é que você precisa inserir os comandos relacionados ao HTTP manualmente, em vez de deixar o navegador fazer isso por você.
No exemplo a seguir, você verá como solicitar uma página de um servidor web e descobrir a versão do servidor web. O cliente telnet é usado porque o Telnet é um protocolo simples que utiliza texto claro para comunicação.
As etapas são as seguintes:
- Conecte-se à porta
80usando:
telnet MACHINE_IP 80telnet MACHINE_IP 80- Digite:
GET /index.html HTTP/1.1GET /index.html HTTP/1.1para recuperar a página index.html.
Ou digite:
GET / HTTP/1.1GET / HTTP/1.1para recuperar a página padrão.
Forneça um valor para o cabeçalho host, como:
host: telnethost: telnetDepois pressione a tecla Enter ou Return duas vezes.
Na saída do console abaixo, a página solicitada é recuperada junto com informações que normalmente não são exibidas pelo navegador web. Se a página solicitada não for encontrada, o servidor retorna o erro 404.
A entrada principal do usuário consiste em duas linhas:
GET /index.html HTTP/1.1
host: telnetGET /index.html HTTP/1.1
host: telnetInformações reveladas nos cabeçalhos HTTP
Observe os cabeçalhos de resposta no exemplo acima. O cabeçalho:
Server: nginx/1.18.0 (Ubuntu)Server: nginx/1.18.0 (Ubuntu)revela o software do servidor web e sua versão, além do sistema operacional. Essa informação é valiosa durante o reconhecimento porque:
- Versões específicas podem ter vulnerabilidades conhecidas que você pode pesquisar.
- A informação sobre o sistema operacional ajuda a direcionar ataques posteriores.
- Mesmo saber qual software de servidor web está em uso já reduz o conjunto de possíveis vetores de ataque.
Administradores preocupados com segurança frequentemente configuram seus servidores para suprimir ou ocultar essas informações. Durante um pentest, encontrar informações detalhadas de versão nos cabeçalhos é algo que vale a pena registrar.
Servidores e clientes web
Um servidor HTTP, ou servidor web, e um cliente HTTP, ou navegador web, são necessários para usar o protocolo HTTP. O servidor web "serve" um conjunto específico de arquivos ao navegador web que faz a requisição.
Opções populares de servidores HTTP incluem:
- Nginx: tornou-se o servidor web mais usado na internet, conhecido por seu desempenho e eficiência ao lidar com conexões simultâneas. É gratuito e open-source.
- Apache: continua extremamente popular e alimenta uma grande parte dos sites. É altamente configurável, com um vasto ecossistema de módulos. Também é gratuito e open-source.
- Internet Information Services, ou IIS: é o servidor web da Microsoft, comumente encontrado em ambientes corporativos Windows. Requer uma licença do Windows Server.
- Outros servidores web notáveis incluem LiteSpeed, Caddy, que possui HTTPS automático integrado, e Node.js para aplicações baseadas em JavaScript.
Os navegadores web mais populares atualmente são:
- Chrome, do Google, com participação dominante de mercado
- Safari, da Apple, padrão no macOS e iOS
- Edge, da Microsoft, baseado em Chromium e substituto do Internet Explorer
- Firefox, da Mozilla, open-source e focado em privacidade
Navegadores web geralmente são gratuitos para instalar e usar. Para pentest e pesquisa de segurança, o Firefox costuma ser preferido por causa de suas Developer Tools extensas e seu ecossistema de complementos.
Versões do protocolo HTTP
O exemplo acima usa HTTP/1.1, que tem sido a base da web por décadas. No entanto, versões mais novas existem.
O HTTP/2 introduziu multiplexação, ou seja, múltiplas requisições em uma única conexão, compressão de cabeçalhos e server push. Ele é binário, e não baseado em texto, o que torna mais difícil interagir manualmente com ele usando Telnet.
O HTTP/3 usa QUIC, construído sobre UDP, em vez de TCP, oferecendo melhor desempenho, especialmente em redes instáveis. Ele está se tornando cada vez mais comum em grandes sites.
Para fins de aprendizado e testes manuais, o HTTP/1.1 continua sendo o mais acessível por causa de seu formato de texto legível por humanos.
Responda à pergunta abaixo:
Inicie a VM anexada. No terminal do AttackBox, conecte-se usando telnet a MACHINE_IP 80 e recupere o arquivo flag.thm. O que ele contém?
Resposta: THM{e3eb0a1df437f3f97a64aca5952c8ea0}
File Transfer Protocol (FTP)
O File Transfer Protocol, ou FTP, foi desenvolvido para tornar eficiente a transferência de arquivos entre diferentes computadores com diferentes sistemas. Ele foi um dos primeiros protocolos projetados para a internet e ainda é usado hoje, embora tenha sido amplamente substituído por alternativas seguras na maioria dos casos.
FTP moderno
O FTP envia credenciais e dados em texto claro, tornando-o inseguro para transferir informações sensíveis. Por esse motivo, o FTP foi substituído na maioria dos ambientes por:
- SFTP (SSH File Transfer Protocol): roda sobre SSH na porta
22e criptografa todo o tráfego. É o substituto mais comum do FTP. - FTPS (FTP Secure): adiciona criptografia TLS ao protocolo FTP na porta
990, com TLS implícito, ou usaSTARTTLSna porta21. - SCP (Secure Copy Protocol): também roda sobre SSH, embora esteja sendo descontinuado em favor do SFTP.
No entanto, você ainda encontrará FTP comum em:
- Sistemas legados e aplicações antigas que não foram atualizadas
- Servidores FTP anônimos para distribuição pública de arquivos
- Redes internas onde a criptografia nunca foi implementada
- Dispositivos embarcados e equipamentos de rede com capacidades limitadas
- Servidores mal configurados onde alternativas seguras não foram habilitadas
Durante pentests, encontrar um servidor FTP, especialmente um que permita login anônimo, é uma descoberta comum e significativa.
Interagindo manualmente com FTP
O FTP envia e recebe dados em texto claro, então você pode usar telnet ou netcat para se comunicar com um servidor FTP e agir como um cliente FTP.
No exemplo abaixo, as seguintes etapas foram realizadas:
Foi feita uma conexão com um servidor FTP usando um cliente telnet. Como servidores FTP escutam na porta 21 por padrão, o cliente Telnet foi direcionado para se conectar à porta 21, em vez da porta padrão do Telnet.
O nome de usuário foi fornecido com o comando:
USER frankUSER frankA senha foi fornecida com o comando:
PASS D2xc9CgDPASS D2xc9CgDComo o nome de usuário e a senha corretos foram fornecidos, o login foi bem-sucedido.
Um comando como STAT pode fornecer informações adicionais. O comando SYST mostra o tipo de sistema do alvo, neste caso UNIX. O comando PASV muda o modo para passivo.
Vale observar que existem dois modos para FTP:
- Active: no modo ativo, os dados são enviados por um canal separado originado da porta
20do servidor FTP. O servidor inicia a conexão de dados de volta para o cliente. Isso frequentemente falha quando o cliente está atrás de um firewall ou NAT. - Passive: no modo passivo, os dados são enviados por um canal separado originado de uma porta do cliente FTP acima da porta
1023. O cliente inicia ambas as conexões. Esse modo é mais amigável para firewalls e é o padrão na maioria dos clientes FTP modernos.
O comando:
TYPE ATYPE Aaltera o modo de transferência de arquivo para ASCII, enquanto:
TYPE ITYPE Ialtera o modo de transferência para binário.
No entanto, uma transferência de arquivo não pode ser concluída usando um cliente simples como o telnet, porque o FTP cria uma conexão separada para a transferência de dados.
Observe na saída do comando STAT que o servidor informa explicitamente:
Control connection is plain textControl connection is plain texte:
Data connections will be plain textData connections will be plain textIsso confirma que tudo, incluindo as credenciais, é transmitido sem criptografia.
Como funciona a transferência de arquivos via FTP
A imagem abaixo mostra como uma transferência real de arquivo é realizada usando FTP.
O cliente FTP inicia uma conexão com um servidor FTP, que escuta na porta 21 por padrão. Todos os comandos são enviados pelo canal de controle.
Quando o cliente solicita um arquivo, outra conexão TCP é estabelecida entre eles para a transferência dos dados.
Essa arquitetura de conexão dupla é um dos motivos pelos quais o FTP pode ser problemático com firewalls.
Usando um cliente FTP
Por causa da arquitetura de conexão dupla, é necessário usar um cliente FTP real para baixar arquivos.
Depois de fazer login com sucesso, você recebe o prompt do FTP:
ftp>ftp>A partir dele, é possível executar vários comandos FTP.
No exemplo abaixo:
lslista os arquivos;asciimuda para o modo ASCII, já que o alvo é um arquivo de texto, e não binário;get FILENAMEinicia a transferência do arquivo, estabelecendo um canal de dados separado.
FTP anônimo
Alguns servidores FTP permitem login anônimo, normalmente usando o nome de usuário anonymous ou ftp, com qualquer endereço de e-mail como senha, ou até mesmo sem senha.
Historicamente, o FTP anônimo era usado para distribuição pública de arquivos, como downloads de software e documentação.
Durante um pentest, sempre tente um login anônimo quando descobrir um servidor FTP:
USER anonymous
PASS anonymous@example.comUSER anonymous
PASS anonymous@example.com
Servidores FTP anônimos podem conter arquivos sensíveis que foram expostos acidentalmente, backups de configuração ou até fornecer uma forma de enviar arquivos maliciosos caso o acesso de escrita esteja habilitado.
Servidores e clientes FTP
Existem várias opções de software para servidores FTP:
- vsftpd (Very Secure FTP Daemon) é um dos servidores FTP mais comuns em sistemas Linux.
- ProFTPD é altamente configurável e modular.
- Pure-FTPd tem foco em segurança e simplicidade.
- No Windows, o IIS inclui recursos de servidor FTP.
Para clientes FTP, além do cliente FTP de console normalmente encontrado em sistemas Linux, você pode usar um cliente com interface gráfica, como o FileZilla.
Observe que os principais navegadores web removeram o suporte a FTP nos últimos anos, portanto o acesso FTP pelo navegador não está mais disponível.
Implicações de segurança
Como o FTP envia credenciais de login, comandos e arquivos em texto claro, o tráfego FTP é um alvo fácil para atacantes.
Qualquer pessoa capturando o tráfego da rede pode ver:
- Nomes de usuário e senhas
- Conteúdo dos arquivos transferidos
- Listagens de diretórios que revelam a estrutura do servidor
- Comandos mostrando quais ações os usuários estão executando
Se você precisar usar FTP, restrinja-o a redes isoladas ou use FTPS com criptografia TLS. Para a maioria dos casos, SFTP sobre SSH é a alternativa recomendada.
Perguntas
Para esta tarefa, use o cliente FTP no AttackBox para se conectar a:
10.66.144.2410.66.144.24As credenciais são:
frank / D2xc9CgDfrank / D2xc9CgDResponda à pergunta abaixo:
Usando um cliente FTP, conecte-se à VM e tente recuperar o arquivo da flag. Qual é a flag?
Nome de usuário: frank
Senha: D2xc9CgD
Resposta: THM{364db6ad0e3ddfe7bf0b1870fb06fbdf}
Conectando no FTP
Lendo o arquivo baixado
Simple Mail Transfer Protocol (SMTP)
O e-mail é um dos serviços mais usados na Internet. Existem várias configurações possíveis para servidores de e-mail. Por exemplo, você pode configurar um sistema de e-mail para permitir que usuários locais troquem mensagens entre si, sem acesso à Internet.
No entanto, esta tarefa considera uma configuração mais geral, em que diferentes servidores de e-mail se conectam pela Internet.
Componentes da entrega de e-mail
A entrega de e-mails pela Internet exige os seguintes componentes:
- Mail User Agent (MUA): o cliente de e-mail, como Thunderbird, Outlook ou uma interface de webmail.
- Mail Submission Agent (MSA): recebe o e-mail do MUA, verifica erros e o encaminha.
- Mail Transfer Agent (MTA): roteia e entrega e-mails entre servidores.
- Mail Delivery Agent (MDA): armazena o e-mail na caixa postal do destinatário para posterior recuperação.
A figura mostra as cinco etapas pelas quais um e-mail precisa passar para chegar à caixa de entrada do destinatário:
- O MUA tem uma mensagem de e-mail para ser enviada. Ele se conecta ao MSA para submeter a mensagem.
- O MSA recebe a mensagem, verifica se há erros e, em seguida, a transfere para o MTA, que geralmente está hospedado no mesmo servidor.
- O MTA envia a mensagem de e-mail para o MTA do destinatário. O MTA também pode funcionar como um MSA.
- Em uma configuração típica, o servidor MTA também funciona como MDA.
- O destinatário coleta seu e-mail do MDA usando seu cliente de e-mail, ou seja, o MUA.
Se as etapas acima parecerem confusas, considere a seguinte analogia:
- Você, o MUA, quer enviar uma correspondência.
- O funcionário dos correios, o MSA, verifica se há algum problema na correspondência antes que sua agência local, o MTA, aceite o envio.
- A agência local verifica o destino da correspondência e a envia para a agência dos correios, o MTA, no país correto.
- A agência dos correios, o MTA, entrega a correspondência na caixa postal do destinatário, o MDA.
- O destinatário, o MUA, verifica regularmente a caixa postal em busca de novas correspondências. Ele percebe a nova mensagem e a retira.
Protocolos de e-mail
Da mesma forma que você segue um protocolo para se comunicar com um servidor HTTP, você depende de protocolos de e-mail para conversar com um MTA e um MDA.
Os protocolos são:
- Simple Mail Transfer Protocol (SMTP) para envio de e-mail
- Post Office Protocol version 3 (POP3) ou Internet Message Access Protocol (IMAP) para recebimento de e-mail
O SMTP é explicado nesta tarefa. O POP3 e o IMAP são abordados nas duas tarefas seguintes.
Portas SMTP e criptografia
O Simple Mail Transfer Protocol (SMTP) é usado para se comunicar com um servidor MTA. O SMTP original usa texto claro, em que todos os comandos são enviados sem criptografia.
No entanto, a infraestrutura moderna de e-mail usa várias portas com diferentes modelos de segurança:
- A porta
25é a porta SMTP tradicional usada para comunicação entre servidores, ou seja, de MTA para MTA. Ela costuma ser bloqueada por provedores de internet em conexões residenciais para evitar spam. Na porta25, a criptografia é opcional e negociada viaSTARTTLS. - A porta
587é a porta de submissão, usada por clientes de e-mail, ou MUA, para enviar mensagens ao seu servidor de e-mail, ou MSA. Essa é a porta recomendada para envio de e-mail e normalmente exige autenticação. A criptografia TLS é negociada por meio do comandoSTARTTLS. - A porta
465foi originalmente designada para SMTPS, ou SMTP sobre TLS implícito. Depois foi descontinuada e, posteriormente, restabelecida. Nessa porta, a criptografia TLS começa imediatamente após a conexão.
Para esta demonstração, será usado SMTP comum na porta 25, para que você consiga ver os comandos do protocolo em texto claro.
Enviando e-mail manualmente com Telnet
Como o SMTP pode usar texto claro, você pode usar um cliente Telnet básico para se conectar a um servidor SMTP e agir como um cliente de e-mail, ou MUA, enviando uma mensagem.
Depois de conectado, envie:
helo hostnamehelo hostnameou:
ehlo hostnameehlo hostnamepara SMTP estendido, e então comece a compor o e-mail.
Após o comando helo, os comandos:
mail from:mail from:e:
rcpt to:rcpt to:indicam o remetente e o destinatário.
Quando a mensagem de e-mail está pronta, o comando:
datadatainicia o corpo da mensagem.
A mensagem é finalizada digitando um ponto em uma linha isolada:
..seguido de Enter.
Depois disso, o servidor SMTP coloca a mensagem na fila de envio.
Você não precisa memorizar esses comandos SMTP. A saída do console acima é fornecida apenas para ilustrar o que um cliente de e-mail típico faz quando usa SMTP.
Email spoofing e por que ele funciona
Observe algo importante no exemplo acima: o endereço "from", ou remetente, foi especificado manualmente, e o servidor o aceitou sem verificar se o remetente realmente controla aquele endereço de e-mail.
É assim que o email spoofing funciona. O SMTP foi projetado em uma época de redes confiáveis e não possui um mecanismo nativo para verificar a identidade do remetente.
Por isso, e-mails de phishing podem parecer vir de endereços legítimos. O protocolo em si não impede que um atacante afirme ser qualquer pessoa.
Implicações de segurança
Entender SMTP é importante para profissionais de segurança porque:
- O e-mail continua sendo o principal vetor para ataques de phishing.
- Servidores de e-mail mal configurados podem ser usados como open relays para envio de spam.
- SMTP em texto claro expõe o conteúdo dos e-mails e credenciais à captura de tráfego na rede.
- Conhecimento de SMTP ajuda a entender a análise de cabeçalhos de e-mail durante a resposta a incidentes.
Durante pentests, você pode testar configurações de open relay, tentar email spoofing para avaliar a conscientização de segurança ou analisar cabeçalhos de e-mail para rastrear a origem de mensagens suspeitas.
Mecanismos modernos de autenticação de e-mail, como SPF, DKIM e DMARC, existem para combater spoofing.
Eles são abordados na sala seguinte, Protocols and Servers 2, junto com outras técnicas de mitigação.
Responda à pergunta abaixo:
Usando o terminal do AttackBox, conecte-se à porta SMTP da VM alvo. Qual é a flag que você consegue obter?
Resposta: THM{5b31ddfc0c11d81eba776e983c35e9b5}
Post Office Protocol version 3 (POP3)
O Post Office Protocol version 3, ou POP3, é um protocolo usado para baixar mensagens de e-mail de um servidor Mail Delivery Agent (MDA), como mostrado na figura abaixo.
O cliente de e-mail se conecta ao servidor POP3, realiza a autenticação, baixa as novas mensagens de e-mail e, em seguida, opcionalmente, as exclui do servidor.
Portas POP3 e criptografia
Assim como outros protocolos abordados nesta sala, o POP3 foi projetado sem criptografia:
- A porta
110é a porta POP3 padrão usando texto claro. Alguns servidores permitem atualizar a conexão para TLS usando o comandoSTLS, semelhante aoSTARTTLSno SMTP. - A porta
995é usada para POP3S, ou POP3 sobre TLS implícito. A conexão é criptografada desde o início.
Atualmente, a maioria dos provedores de e-mail exige ou recomenda fortemente o uso de POP3S na porta 995. No entanto, você ainda pode encontrar POP3 em texto claro em redes internas, sistemas legados ou servidores mal configurados.
Interagindo manualmente com POP3
O exemplo abaixo mostra como é uma sessão POP3 quando conduzida por meio de um cliente Telnet.
Primeiro, o usuário se conecta ao servidor POP3 na porta padrão do POP3, a porta 110.
A autenticação é necessária para acessar as mensagens de e-mail. O usuário se autentica fornecendo seu nome de usuário com:
USER frankUSER franke sua senha com:
PASS D2xc9CgDPASS D2xc9CgDUsando o comando:
STATSTATa resposta retornada é:
+OK 1 179+OK 1 179Com base na RFC 1939, uma resposta positiva ao comando STAT possui o formato:
+OK nn mm+OK nn mmonde nn é o número de mensagens de e-mail na caixa de entrada, e mm é o tamanho da caixa de entrada em octetos, ou seja, bytes.
O comando:
LISTLISTfornece uma lista de novas mensagens no servidor, e:
RETR 1RETR 1recupera a primeira mensagem da lista.
Você não precisa memorizar esses comandos; no entanto, o exemplo ajuda a fortalecer sua compreensão do protocolo.
Os comandos são enviados em texto claro, e usar Telnet foi suficiente para autenticar e recuperar uma mensagem de e-mail. Como o nome de usuário e a senha são enviados em texto claro, qualquer terceiro observando o tráfego da rede pode roubar as credenciais de login.
Em geral, seu cliente de e-mail, ou MUA, se conectará ao servidor POP3, ou MDA, fará a autenticação e baixará as mensagens.
Embora a comunicação usando o protocolo POP3 fique escondida por trás de uma interface gráfica, comandos semelhantes serão enviados, como mostrado na sessão Telnet acima.
Comandos POP3 comuns
Comportamento do POP3: baixar e excluir
Com base nas configurações padrão, o cliente de e-mail exclui a mensagem do servidor depois de baixá-la. Esse modelo de "baixar e excluir" significa que:
- Os e-mails são armazenados localmente no seu dispositivo, não no servidor.
- Depois de baixado, o e-mail fica acessível apenas naquele dispositivo específico.
- Se seu dispositivo for perdido ou danificado, os e-mails serão perdidos, a menos que exista backup.
- O armazenamento no servidor de e-mail é minimizado.
Esse comportamento padrão pode ser alterado nas configurações do cliente de e-mail para manter cópias no servidor.
No entanto, acessar a mesma conta de e-mail em vários clientes usando POP3 geralmente não é conveniente, porque cada cliente baixa sua própria cópia, e não há sincronização entre eles. Com isso, fica fácil perder o controle de mensagens lidas e não lidas.
Para manter todas as caixas de e-mail sincronizadas entre vários dispositivos, é necessário usar um protocolo diferente, como IMAP, que será abordado na próxima tarefa.
POP3 vs IMAP: quando usar cada um
O POP3 ainda é útil em cenários específicos:
- Quando você quer acessar e-mails offline e tem conectividade limitada ou instável com a Internet
- Quando precisa minimizar o armazenamento no servidor
- Quando acessa o e-mail apenas de um único dispositivo
- Para arquivar e-mails localmente
No entanto, o IMAP substituiu amplamente o POP3 para a maioria dos usuários por causa de seus recursos de sincronização.
Implicações de segurança
Do ponto de vista da segurança, encontrar um servidor POP3, especialmente na porta 110, durante um pentest apresenta oportunidades.
Credenciais enviadas por POP3 em texto claro podem ser capturadas por meio de network sniffing. Ataques de senha podem ser conduzidos contra a autenticação POP3, e o acesso bem-sucedido a uma caixa postal pode revelar informações sensíveis, credenciais para outros sistemas ou links de redefinição de senha.
Se você capturar tráfego POP3 e visualizar os comandos USER e PASS, terá obtido credenciais válidas que podem ser reutilizadas em outros sistemas.
Responda às perguntas abaixo:
Conecte-se à VM (MACHINE_IP) na porta POP3. Autentique usando o nome de usuário frank e a senha D2xc9CgD. Qual resposta você recebe ao executar STAT?
Resposta: +OK 0 0
Quantas mensagens de e-mail estão disponíveis para download via POP3 em 10.67.143.206?
Resposta: 0
Internet Message Access Protocol (IMAP)
O Internet Message Access Protocol, ou IMAP, é mais sofisticado que o POP3. O IMAP permite manter o e-mail sincronizado entre vários dispositivos e clientes de e-mail.
Se você marcar uma mensagem de e-mail como lida ao verificar seu e-mail no smartphone, essa alteração será salva no servidor IMAP, ou MDA, e replicada no seu laptop quando você sincronizar a caixa de entrada.
Por que o IMAP se tornou o padrão
O IMAP substituiu amplamente o POP3 para a maioria dos usuários por causa da forma como o e-mail é acessado atualmente.
As pessoas verificam e-mails em celulares, laptops, tablets e navegadores web, muitas vezes alternando entre dispositivos ao longo do dia. O modelo de armazenamento no servidor do IMAP torna isso transparente:
- Os e-mails permanecem no servidor e ficam acessíveis a partir de qualquer dispositivo.
- O status de lido/não lido, pastas e sinalizações são sincronizados entre todos os clientes.
- Excluir um e-mail em um dispositivo o remove de todos os lugares.
- A busca pode ser realizada no servidor, sem baixar todas as mensagens.
Isso contrasta com o modelo de baixar e excluir do POP3, em que cada dispositivo possui sua própria cópia separada das mensagens.
Portas IMAP e criptografia
Assim como outros protocolos de e-mail, o IMAP foi originalmente projetado sem criptografia:
- A porta
143é a porta IMAP padrão usando texto claro. Muitos servidores permitem atualizar a conexão para TLS usando o comandoSTARTTLS. - A porta
993é usada para IMAPS, ou IMAP sobre TLS implícito. A conexão é criptografada desde o início.
Atualmente, a maioria dos provedores de e-mail exige IMAPS na porta 993. Grandes provedores como Gmail, Outlook e Yahoo desabilitaram completamente o acesso IMAP em texto claro.
No entanto, você ainda pode encontrar IMAP em texto claro em servidores de e-mail internos ou sistemas legados.
Interagindo manualmente com IMAP
A saída de console abaixo mostra uma sessão IMAP de exemplo. O Telnet é usado para se conectar à porta padrão do servidor IMAP e, em seguida, a autenticação é realizada usando:
LOGIN username passwordLOGIN username passwordO IMAP exige que cada comando seja precedido por uma string aleatória, chamada de tag, para conseguir rastrear a resposta. Por isso, são usadas tags como c1, c2 e assim por diante.
Em seguida, as pastas de e-mail são listadas usando:
LIST "" "*"LIST "" "*"antes de verificar novas mensagens na caixa de entrada usando:
EXAMINE INBOXEXAMINE INBOX
Você não precisa memorizar esses comandos; no entanto, o exemplo acima fornece uma visão clara do que acontece quando um cliente de e-mail se comunica com um servidor IMAP.
Entendendo a resposta do IMAP
Observe que a resposta inicial do servidor inclui CAPABILITY, que lista quais recursos o servidor oferece. Essa é uma informação útil durante o reconhecimento:
IMAP4rev1indica a versão do IMAP.STARTTLSsignifica que o servidor oferece suporte à atualização para uma conexão criptografada.IDLEpermite que o servidor envie notificações de novos e-mails.ACLindica suporte a listas de controle de acesso.
O comando LIST revelou a estrutura de pastas: INBOX, Trash, Drafts, Templates e Sent.
Isso informa como a caixa postal está organizada e confirma que a autenticação foi bem-sucedida.
Comandos IMAP comuns
Cada comando IMAP deve ser precedido por uma tag única, como c1, c2, c3.
IMAP vs Webmail
Muitos usuários hoje acessam e-mail por meio de interfaces web, como Gmail, Outlook.com, entre outras, em vez de clientes de e-mail dedicados.
Essas interfaces web usam HTTPS para proteger a conexão entre o navegador e os servidores do provedor de e-mail. No entanto, o armazenamento de e-mails por trás disso ainda usa conceitos do IMAP, e muitos usuários configuram clientes de e-mail tradicionais junto com o acesso via webmail.
Entender IMAP continua sendo relevante porque:
- Ambientes corporativos frequentemente executam seus próprios servidores de e-mail com acesso IMAP.
- Pentesters podem encontrar serviços IMAP durante avaliações de segurança.
- Dispositivos móveis e clientes de e-mail desktop ainda usam IMAP extensivamente.
- Credenciais IMAP comprometidas podem fornecer acesso mais profundo do que o webmail em alguns cenários.
Implicações de segurança
O IMAP envia as credenciais de login em texto claro, como mostrado no comando:
LOGIN frank D2xc9CgDLOGIN frank D2xc9CgDQualquer pessoa observando o tráfego da rede conseguiria ver o nome de usuário e a senha de Frank.
Além da exposição das credenciais, o acesso IMAP comprometido é particularmente valioso para atacantes porque:
- Acesso persistente: diferentemente do POP3, os e-mails permanecem no servidor. Um atacante com credenciais IMAP pode continuar lendo novos e-mails indefinidamente.
- Dados históricos: todo o histórico da caixa postal fica acessível, podendo conter anos de comunicações sensíveis.
- Abuso de redefinição de senha: atacantes podem procurar e-mails de redefinição de senha para obter acesso a outras contas.
- Business Email Compromise: o acesso ao e-mail corporativo permite fraude com faturas, impersonação e roubo de dados.
- Movimentação lateral: e-mails frequentemente contêm credenciais, documentação interna e informações úteis para ataques posteriores.
Responda à pergunta abaixo:
Qual é a porta padrão usada pelo IMAP?
Resposta: 143
Resumo
Esta sala abordou vários protocolos, seus usos e como eles funcionam nos bastidores. Muitos outros protocolos padrão também são de interesse para atacantes. Por exemplo, o Server Message Block (SMB) fornece acesso compartilhado a arquivos e impressoras entre redes e pode ser um alvo atrativo.
No entanto, esta sala teve como objetivo apenas fornecer uma compreensão sólida de alguns protocolos comuns e de como eles operam em baixo nível.
Principais aprendizados
Todos os protocolos abordados nesta sala transmitem dados em texto claro por padrão, incluindo credenciais de autenticação.
Essa é a principal lição de segurança: se o tráfego não estiver criptografado, qualquer pessoa com acesso à rede pode capturar nomes de usuário, senhas, conteúdo de e-mails e transferências de arquivos.
O cliente telnet, embora não seja mais usado como protocolo de servidor em sistemas modernos, continua sendo uma ferramenta prática de teste para interagir manualmente com qualquer protocolo baseado em texto em qualquer porta TCP.
Essa técnica foi usada ao longo da sala para demonstrar HTTP, FTP, SMTP, POP3 e IMAP no nível do protocolo.
Para cada protocolo em texto claro, existe uma alternativa segura. Implantações modernas devem usar variantes criptografadas, como HTTPS, SFTP, IMAPS e SSH, para proteger dados em trânsito.
A sala seguinte, Protocols and Servers 2, examina como esses protocolos são protegidos usando criptografia TLS e aborda ataques como sniffing, man-in-the-middle e ataques de senha.
Referência de protocolos
É útil lembrar o número da porta padrão para protocolos comuns. Abaixo está um resumo dos protocolos abordados, organizados em ordem alfabética, junto com seus números de porta padrão e alternativas seguras.
Na próxima sala, você aprenderá sobre vários ataques contra esses protocolos e servidores, além das etapas de mitigação.
Responda à pergunta abaixo:
Com isso, você concluiu a sétima sala do módulo Network Security. Prossiga para a sala Protocols and Servers 2 para aprender sobre ataques relacionados e mitigações.
Resposta: Não é necessária resposta