Learn & practice AWS Hacking:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Learn & practice GCP Hacking: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
**Configuração instantaneamente disponível para avaliação de vulnerabilidades e testes de penetração**. Execute um pentest completo de qualquer lugar com mais de 20 ferramentas e recursos que vão de reconhecimento a relatórios. Não substituímos os pentesters - desenvolvemos ferramentas personalizadas, módulos de detecção e exploração para dar a eles mais tempo para investigar mais a fundo, explorar vulnerabilidades e se divertir.
O **Protocolo Simples de Transferência de Correio (SMTP)** é um protocolo utilizado dentro da suíte TCP/IP para o **envio e recebimento de e-mails**. Devido às suas limitações em enfileirar mensagens no lado do destinatário, o SMTP é frequentemente empregado juntamente com **POP3 ou IMAP**. Esses protocolos adicionais permitem que os usuários armazenem mensagens em uma caixa de correio no servidor e as baixem periodicamente.
Na prática, é comum que **programas de e-mail** utilizem **SMTP para enviar e-mails**, enquanto utilizam **POP3 ou IMAP para recebê-los**. Em sistemas baseados em Unix, o **sendmail** se destaca como o servidor SMTP mais frequentemente utilizado para fins de e-mail. O pacote comercial conhecido como Sendmail abrange um servidor POP3. Além disso, o **Microsoft Exchange** fornece um servidor SMTP e oferece a opção de incluir suporte a POP3.
Se você tiver a oportunidade de **fazer a vítima te enviar um email** (via formulário de contato da página da web, por exemplo), faça isso porque **você pode aprender sobre a topologia interna** da vítima vendo os cabeçalhos do email.
Você também pode obter um email de um servidor SMTP tentando **enviar para esse servidor um email para um endereço inexistente** (porque o servidor enviará para o atacante um email NDN). Mas, certifique-se de que você envie o email de um endereço permitido (verifique a política SPF) e que você possa receber mensagens NDN.
Você também deve tentar **enviar conteúdos diferentes porque pode encontrar informações mais interessantes** nos cabeçalhos como: `X-Virus-Scanned: by av.domain.com`\
Você deve enviar o arquivo de teste EICAR.\
Detectar o **AV** pode permitir que você explore **vulnerabilidades conhecidas.**
Se o servidor suportar NTLM auth (Windows), você pode obter informações sensíveis (versões). Mais informações [**aqui**](https://medium.com/@m8r0wn/internal-information-disclosure-using-hidden-ntlm-authentication-18de17675666).
Alguns servidores SMTP completam automaticamente o endereço de um remetente quando o comando "MAIL FROM" é emitido sem um endereço completo, divulgando seu nome interno:
**Configuração disponível instantaneamente para avaliação de vulnerabilidades e testes de penetração**. Execute um pentest completo de qualquer lugar com mais de 20 ferramentas e recursos que vão de reconhecimento a relatórios. Não substituímos os pentesters - desenvolvemos ferramentas personalizadas, módulos de detecção e exploração para dar a eles mais tempo para investigar mais a fundo, explorar vulnerabilidades e se divertir.
**Relatórios de Notificação de Status de Entrega**: Se você enviar um **email** para uma organização para um **endereço inválido**, a organização notificará que o endereço era inválido enviando um **email de volta para você**. **Os cabeçalhos** do email retornado **contêm** possíveis **informações sensíveis** (como o endereço IP dos serviços de email que interagiram com os relatórios ou informações sobre software antivírus).
A vulnerabilidade de SMTP Smuggling permitiu contornar todas as proteções SMTP (consulte a próxima seção para mais informações sobre as proteções). Para mais informações sobre SMTP Smuggling, consulte:
As organizações são impedidas de ter e-mails não autorizados enviados em seu nome ao empregar **SPF**, **DKIM** e **DMARC** devido à facilidade de falsificação de mensagens SMTP.
Um **guia completo sobre essas contramedidas** está disponível em [https://seanthegeek.net/459/demystifying-dmarc/](https://seanthegeek.net/459/demystifying-dmarc/).
SPF [foi "depreciado" em 2014](https://aws.amazon.com/premiumsupport/knowledge-center/route53-spf-record/). Isso significa que, em vez de criar um **registro TXT** em `_spf.domain.com`, você o cria em `domain.com` usando a **mesma sintaxe**.\
**Sender Policy Framework** (SPF) é um mecanismo que permite que Agentes de Transferência de Email (MTAs) verifiquem se um host que envia um e-mail está autorizado, consultando uma lista de servidores de e-mail autorizados definidos pelas organizações. Esta lista, que especifica endereços IP/faixas, domínios e outras entidades **autorizadas a enviar e-mails em nome de um nome de domínio**, inclui vários "**Mecanismos**" no registro SPF.
| ALL | Sempre corresponde; usado para um resultado padrão como `-all` para todos os IPs não correspondidos por mecanismos anteriores. |
| A | Se o nome de domínio tiver um registro de endereço (A ou AAAA) que pode ser resolvido para o endereço do remetente, ele corresponderá. |
| IP4 | Se o remetente estiver em uma determinada faixa de endereços IPv4, corresponder. |
| IP6 | Se o remetente estiver em uma determinada faixa de endereços IPv6, corresponder. |
| MX | Se o nome de domínio tiver um registro MX resolvendo para o endereço do remetente, ele corresponderá (ou seja, o e-mail vem de um dos servidores de e-mail de entrada do domínio). |
| PTR | Se o nome de domínio (registro PTR) para o endereço do cliente estiver no domínio dado e esse nome de domínio resolver para o endereço do cliente (DNS reverso confirmado), corresponder. Este mecanismo é desencorajado e deve ser evitado, se possível. |
| EXISTS | Se o nome de domínio dado resolver para qualquer endereço, corresponder (não importa para qual endereço ele resolve). Isso é raramente usado. Juntamente com a linguagem de macro SPF, oferece correspondências mais complexas, como consultas DNSBL. |
| INCLUDE | Referencia a política de outro domínio. Se a política desse domínio passar, este mecanismo passa. No entanto, se a política incluída falhar, o processamento continua. Para delegar totalmente à política de outro domínio, a extensão de redirecionamento deve ser usada. |
| REDIRECT | <p>Um redirecionamento é um ponteiro para outro nome de domínio que hospeda uma política SPF, permitindo que vários domínios compartilhem a mesma política SPF. É útil ao trabalhar com uma grande quantidade de domínios que compartilham a mesma infraestrutura de e-mail.</p><p>A política SPF do domínio indicado no mecanismo de redirecionamento será usada.</p> |
Também é possível identificar **Qualificadores** que indicam **o que deve ser feito se um mecanismo for correspondido**. Por padrão, o **qualificador "+"** é usado (então, se qualquer mecanismo for correspondido, isso significa que é permitido).\
Você geralmente notará **no final de cada política SPF** algo como: **\~all** ou **-all**. Isso é usado para indicar que **se o remetente não corresponder a nenhuma política SPF, você deve marcar o e-mail como não confiável (\~) ou rejeitar (-) o e-mail.**
* **`?`**: Representa um resultado NEUTRAL, tratado de forma semelhante a NONE (sem política específica).
* **`~`**: Denota SOFTFAIL, servindo como um meio-termo entre NEUTRAL e FAIL. E-mails que atendem a esse resultado são tipicamente aceitos, mas marcados de acordo.
* **`-`**: Indica FAIL, sugerindo que o e-mail deve ser rejeitado.
No exemplo a seguir, a **política SPF do google.com** é ilustrada. Note a inclusão de políticas SPF de diferentes domínios dentro da primeira política SPF:
Tradicionalmente, era possível falsificar qualquer nome de domínio que não tivesse um registro SPF correto/qualquer. **Hoje em dia**, se **o email** vem de um **domínio sem um registro SPF válido**, provavelmente será **rejeitado/marcado como não confiável automaticamente**.
Para verificar o SPF de um domínio, você pode usar ferramentas online como: [https://www.kitterman.com/spf/validate.html](https://www.kitterman.com/spf/validate.html)
DKIM é utilizado para assinar emails de saída, permitindo sua validação por Agentes de Transferência de Email (MTAs) externos através da recuperação da chave pública do domínio no DNS. Esta chave pública está localizada no registro TXT de um domínio. Para acessar esta chave, é necessário conhecer tanto o seletor quanto o nome do domínio.
Por exemplo, para solicitar a chave, o nome do domínio e o seletor são essenciais. Estes podem ser encontrados no cabeçalho do email `DKIM-Signature`, e.g., `d=gmail.com;s=20120113`.
DMARC melhora a segurança do email ao se basear nos protocolos SPF e DKIM. Ele descreve políticas que orientam os servidores de email no manuseio de emails de um domínio específico, incluindo como lidar com falhas de autenticação e onde enviar relatórios sobre ações de processamento de email.
> Se eu receber um e-mail de pielovers.demon.co.uk, e não houver dados SPF para pielovers, devo voltar um nível e testar SPF para demon.co.uk? Não. Cada subdomínio na Demon é um cliente diferente, e cada cliente pode ter sua própria política. Não faria sentido que a política da Demon se aplicasse a todos os seus clientes por padrão; se a Demon quiser fazer isso, pode configurar registros SPF para cada subdomínio.
> Portanto, o conselho para os publicadores de SPF é o seguinte: você deve adicionar um registro SPF para cada subdomínio ou nome de host que tenha um registro A ou MX.
Quando os e-mails são enviados, garantir que não sejam marcados como spam é crucial. Isso é frequentemente alcançado através do uso de um **servidor de relay que é confiável pelo destinatário**. No entanto, um desafio comum é que os administradores podem não estar totalmente cientes de quais **intervalos de IP são seguros para permitir**. Essa falta de compreensão pode levar a erros na configuração do servidor SMTP, um risco frequentemente identificado em avaliações de segurança.
Uma solução alternativa que alguns administradores usam para evitar problemas de entrega de e-mails, especialmente em relação a comunicações com clientes potenciais ou em andamento, é **permitir conexões de qualquer endereço IP**. Isso é feito configurando o parâmetro `mynetworks` do servidor SMTP para aceitar todos os endereços IP, como mostrado abaixo:
Para verificar se um servidor de email é um open relay (o que significa que ele pode encaminhar emails de qualquer fonte externa), a ferramenta `nmap` é comumente usada. Ela inclui um script específico projetado para testar isso. O comando para realizar uma varredura detalhada em um servidor (por exemplo, com IP 10.10.10.10) na porta 25 usando `nmap` é:
**NOTA**: Esta é apenas uma solução rápida para fazer verificações rápidas em casos onde, por algum motivo, a chave privada do openssl **não pode ser analisada pelo dkim**.
## The receiver won't be able to check it, but the email will appear as signed (and therefore, more trusted)
dkim_selector="s1"
sig = dkim.sign(message=msg_data,selector=str(dkim_selector).encode(),domain=sender_domain.encode(),privkey=dkim_private_key.encode(),include_headers=headers)
**Encontre mais informações sobre essas proteções em** [**https://seanthegeek.net/459/demystifying-dmarc/**](https://seanthegeek.net/459/demystifying-dmarc/)
Geralmente, se instalado, em `/etc/postfix/master.cf` contém **scripts para executar** quando, por exemplo, um novo e-mail é recebido por um usuário. Por exemplo, a linha `flags=Rq user=mark argv=/etc/postfix/filtering-f ${sender} -- ${recipient}` significa que `/etc/postfix/filtering` será executado se um novo e-mail for recebido pelo usuário mark.
SMTP (Simple Mail Transfer Protocol) is a TCP/IP protocol used in sending and receiving e-mail. However, since it is limited in its ability to queue messages at the receiving end, it is usually used with one of two other protocols, POP3 or IMAP, that let the user save messages in a server mailbox and download them periodically from the server.
**Configuração disponível instantaneamente para avaliação de vulnerabilidades e testes de penetração**. Execute um pentest completo de qualquer lugar com mais de 20 ferramentas e recursos que vão de reconhecimento a relatórios. Não substituímos os pentesters - desenvolvemos ferramentas personalizadas, módulos de detecção e exploração para dar a eles mais tempo para investigar mais a fundo, explorar vulnerabilidades e se divertir.
Aprenda e pratique Hacking AWS:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Aprenda e pratique Hacking GCP: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).