Homograph / Homoglyph Attacks in Phishing
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์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.
๊ฐ์
ํ๋ชจ๊ทธ๋ํ(๋๋ ํธ๋ชจ๊ธ๋ฆฌํ) ๊ณต๊ฒฉ์ ๋ง์ ๋น๋ผํด ์คํฌ๋ฆฝํธ์ ์ ๋์ฝ๋ ์ฝ๋ ํฌ์ธํธ๊ฐ ASCII ๋ฌธ์์ ์๊ฐ์ ์ผ๋ก ๋์ผํ๊ฑฐ๋ ๋งค์ฐ ์ ์ฌํ๋ค๋ ์ฌ์ค์ ์ ์ฉํฉ๋๋ค. ํ๋ ์ด์์ ๋ผํด ๋ฌธ์๋ฅผ ๊ทธ๋ค์ ์ ์ฌํ ๋ฌธ์๋ก ๋์ฒดํจ์ผ๋ก์จ ๊ณต๊ฒฉ์๋ ๋ค์์ ๋ง๋ค ์ ์์ต๋๋ค:
- ์ธ๊ฐ์ ๋์๋ ํฉ๋ฒ์ ์ผ๋ก ๋ณด์ด์ง๋ง ํค์๋ ๊ธฐ๋ฐ ํ์ง๋ฅผ ์ฐํํ๋ ํ์ ์ด๋ฆ, ์ฃผ์ ๋๋ ๋ฉ์์ง ๋ณธ๋ฌธ.
- ํผํด์๊ฐ ์ ๋ขฐํ ์ ์๋ ์ฌ์ดํธ๋ฅผ ๋ฐฉ๋ฌธํ๊ณ ์๋ค๊ณ ๋ฏฟ๊ฒ ๋ง๋๋ ๋๋ฉ์ธ, ์๋ธ ๋๋ฉ์ธ ๋๋ URL ๊ฒฝ๋ก.
๋ชจ๋ ๊ธ๋ฆฌํ๋ ์ ๋์ฝ๋ ์ฝ๋ ํฌ์ธํธ๋ก ๋ด๋ถ์ ์ผ๋ก ์๋ณ๋๊ธฐ ๋๋ฌธ์, ๋จ์ผ ๋์ฒด ๋ฌธ์๊ฐ ์์งํ ๋ฌธ์์ด ๋น๊ต๋ฅผ ๋ฌด๋๋จ๋ฆฌ๊ธฐ์ ์ถฉ๋ถํฉ๋๋ค (์: "ฮ ฮฑypal.com" vs. "Paypal.com").
์ ํ์ ์ธ ํผ์ฑ ์ํฌํ๋ก์ฐ
- ๋ฉ์์ง ๋ด์ฉ ์์ฑ โ impersonated ๋ธ๋๋ / ํค์๋์ ํน์ ๋ผํด ๋ฌธ์๋ฅผ ๋ค๋ฅธ ์คํฌ๋ฆฝํธ(๊ทธ๋ฆฌ์ค์ด, ํค๋ฆด ๋ฌธ์, ์๋ฅด๋ฉ๋์์ด, ์ฒด๋กํค์ด ๋ฑ)์์ ์๊ฐ์ ์ผ๋ก ๊ตฌ๋ณํ ์ ์๋ ๋ฌธ์๋ก ๋์ฒดํฉ๋๋ค.
- ์ง์ ์ธํ๋ผ ๋ฑ๋ก โ ์ ํ์ ์ผ๋ก ํธ๋ชจ๊ธ๋ฆฌํ ๋๋ฉ์ธ์ ๋ฑ๋กํ๊ณ TLS ์ธ์ฆ์๋ฅผ ์ป์ต๋๋ค(๋๋ถ๋ถ์ CA๋ ์๊ฐ์ ์ ์ฌ์ฑ ๊ฒ์ฌ๋ฅผ ์ํํ์ง ์์ต๋๋ค).
- ์ด๋ฉ์ผ / SMS ์ ์ก โ ๋ฉ์์ง์๋ ๋ค์ ์์น ์ค ํ๋ ์ด์์ ํธ๋ชจ๊ธ๋ฆฌํ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค:
- ๋ฐ์ ์ ํ์ ์ด๋ฆ (์:
ฮะตlัdะตัk) - ์ ๋ชฉ ์ค (
Urgะตnt ะctัon Rะตquัrะตd) - ํ์ดํผ๋งํฌ ํ ์คํธ ๋๋ ์์ ํ ๋๋ฉ์ธ ์ด๋ฆ
- ๋ฆฌ๋๋ ์ ์ฒด์ธ โ ํผํด์๋ ์๊ฒฉ ์ฆ๋ช ์ ์์งํ๊ฑฐ๋ ์ ์ฑ ์ฝ๋๋ฅผ ์ ๋ฌํ๋ ์ ์ฑ ํธ์คํธ์ ๋์ฐฉํ๊ธฐ ์ ์ ๊ฒ๋ณด๊ธฐ์๋ ๋ฌดํดํ ์น์ฌ์ดํธ๋ URL ๋จ์ถ๊ธฐ๋ฅผ ํตํด ์ด๋ํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ ์ฉ๋๋ ์ ๋์ฝ๋ ๋ฒ์
| ์คํฌ๋ฆฝํธ | ๋ฒ์ | ์์ ๊ธ๋ฆฌํ | ์ ์ฌ ๋ฌธ์ |
|---|---|---|---|
| ๊ทธ๋ฆฌ์ค์ด | U+0370-03FF | ฮ (U+0397) | ๋ผํด H |
| ๊ทธ๋ฆฌ์ค์ด | U+0370-03FF | ฯ (U+03C1) | ๋ผํด p |
| ํค๋ฆด ๋ฌธ์ | U+0400-04FF | ะฐ (U+0430) | ๋ผํด a |
| ํค๋ฆด ๋ฌธ์ | U+0400-04FF | ะต (U+0435) | ๋ผํด e |
| ์๋ฅด๋ฉ๋์์ด | U+0530-058F | ึ
(U+0585) | ๋ผํด o |
| ์ฒด๋กํค์ด | U+13A0-13FF | แข (U+13A2) | ๋ผํด T |
ํ: ์ ์ฒด ์ ๋์ฝ๋ ์ฐจํธ๋ unicode.org์์ ํ์ธํ ์ ์์ต๋๋ค.
ํ์ง ๊ธฐ์
1. ํผํฉ ์คํฌ๋ฆฝํธ ๊ฒ์ฌ
์์ด๋ฅผ ์ฌ์ฉํ๋ ์กฐ์ง์ ๋ชฉํ๋ก ํ๋ ํผ์ฑ ์ด๋ฉ์ผ์ ์ฌ๋ฌ ์คํฌ๋ฆฝํธ์ ๋ฌธ์๋ฅผ ํผํฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋๋ญ ๋๋ค. ๊ฐ๋จํ์ง๋ง ํจ๊ณผ์ ์ธ ํด๋ฆฌ์คํฑ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ๊ฒ์ฌํ๋ ๋ฌธ์์ด์ ๊ฐ ๋ฌธ์๋ฅผ ๋ฐ๋ณตํฉ๋๋ค.
- ์ฝ๋ ํฌ์ธํธ๋ฅผ ํด๋น ์ ๋์ฝ๋ ๋ธ๋ก์ ๋งคํํฉ๋๋ค.
- ํ๋ ์ด์์ ์คํฌ๋ฆฝํธ๊ฐ ์กด์ฌํ๊ฑฐ๋ ๋น๋ผํด ์คํฌ๋ฆฝํธ๊ฐ ์์์น ๋ชปํ ๊ณณ(ํ์ ์ด๋ฆ, ๋๋ฉ์ธ, ์ฃผ์ , URL ๋ฑ)์ ๋ํ๋๋ฉด ๊ฒฝ๊ณ ๋ฅผ ๋ฐ์์ํต๋๋ค.
Python ๊ฐ๋ ์ฆ๋ช :
import unicodedata as ud
from collections import defaultdict
SUSPECT_FIELDS = {
"display_name": "ฮะพmะพgraph Illusion", # example data
"subject": "Finะฐn๊ฎฏiะฐl ีtatะตmะตnt",
"url": "https://xn--messageconnecton-2kb.blob.core.windows.net" # punycode
}
for field, value in SUSPECT_FIELDS.items():
blocks = defaultdict(int)
for ch in value:
if ch.isascii():
blocks['Latin'] += 1
else:
name = ud.name(ch, 'UNKNOWN')
block = name.split(' ')[0] # e.g., 'CYRILLIC'
blocks[block] += 1
if len(blocks) > 1:
print(f"[!] Mixed scripts in {field}: {dict(blocks)} -> {value}")
2. Punycode ์ ๊ทํ (๋๋ฉ์ธ)
๊ตญ์ ํ ๋๋ฉ์ธ ์ด๋ฆ (IDN)์ punycode (xn--)๋ก ์ธ์ฝ๋ฉ๋ฉ๋๋ค. ๋ชจ๋ ํธ์คํธ ์ด๋ฆ์ punycode๋ก ๋ณํํ ๋ค์ ๋ค์ ์ ๋์ฝ๋๋ก ๋ณํํ๋ฉด ํ์ดํธ๋ฆฌ์คํธ์ ์ผ์น์ํค๊ฑฐ๋ ์ ์ฌ์ฑ ๊ฒ์ฌ๋ฅผ ์ํํ ์ ์์ต๋๋ค (์: Levenshtein ๊ฑฐ๋ฆฌ) ๋ฌธ์์ด์ด ์ ๊ทํ๋ ํ.
import idna
hostname = "ฮกะฐypal.com" # Greek Rho + Cyrillic a
puny = idna.encode(hostname).decode()
print(puny) # xn--yl8hpyal.com
3. ๋ํ ๋ฌธ์ ์ฌ์ / ์๊ณ ๋ฆฌ์ฆ
dnstwist (--homoglyph) ๋๋ urlcrazy์ ๊ฐ์ ๋๊ตฌ๋ ์๊ฐ์ ์ผ๋ก ์ ์ฌํ ๋๋ฉ์ธ ๋ณํ์ ๋์ดํ ์ ์์ผ๋ฉฐ, ์ฌ์ ์ ์ฐจ๋จ / ๋ชจ๋ํฐ๋ง์ ์ ์ฉํฉ๋๋ค.
์๋ฐฉ ๋ฐ ์ํ
- ์๊ฒฉํ DMARC/DKIM/SPF ์ ์ฑ ์ ์ํํ์ฌ ๋ฌด๋จ ๋๋ฉ์ธ์์์ ์คํธํ์ ๋ฐฉ์งํฉ๋๋ค.
- Secure Email Gateways ๋ฐ SIEM/XSOAR ํ๋ ์ด๋ถ์ ์์ ํ์ง ๋ก์ง์ ๊ตฌํํฉ๋๋ค.
- ํ์ ์ด๋ฆ ๋๋ฉ์ธ โ ๋ฐ์ ์ ๋๋ฉ์ธ์ธ ๋ฉ์์ง๋ฅผ ํ๋๊ทธํ๊ฑฐ๋ ๊ฒฉ๋ฆฌํฉ๋๋ค.
- ์ฌ์ฉ์ ๊ต์ก: ์์ฌ์ค๋ฌ์ด ํ ์คํธ๋ฅผ ์ ๋์ฝ๋ ๊ฒ์ฌ๊ธฐ์ ๋ณต์ฌ-๋ถ์ฌ๋ฃ๊ธฐํ๊ณ , ๋งํฌ์ ๋ง์ฐ์ค๋ฅผ ์ฌ๋ฆฌ๋ฉฐ, URL ๋จ์ถ๊ธฐ๋ฅผ ์ ๋ ์ ๋ขฐํ์ง ๋ง์ญ์์ค.
์ค์ ์ฌ๋ก
- ํ์ ์ด๋ฆ:
ะกonfidะตntiะฐl แขi๊ฎฏkะตt(ํค๋ฆด ๋ฌธ์ะก,ะต,ะฐ; ์ฒด๋กํคแข; ๋ผํด ์๋ฌธ์ ๋๋ฌธ์๊ฎฏ). - ๋๋ฉ์ธ ์ฒด์ธ:
bestseoservices.comโ municipal/templates๋๋ ํ ๋ฆฌ โkig.skyvaulyt.ruโ ์ปค์คํ OTP CAPTCHA๋ก ๋ณดํธ๋ ๊ฐ์ง Microsoft ๋ก๊ทธ์ธmlcorsftpsswddprotcct.approaches.it.com. - Spotify ์ฌ์นญ: ๋งํฌ๊ฐ
redirects.ca๋ค์ ์จ๊ฒจ์งSฯึ tifลญ๋ฐ์ ์.
์ด ์ํ์ Unit 42 ์ฐ๊ตฌ(2025๋ 7์)์์ ์ ๋๋์์ผ๋ฉฐ, ๋ํ ๋ฌธ์ ๋จ์ฉ์ด URL ๋ฆฌ๋๋ ์ ๋ฐ CAPTCHA ํํผ์ ๊ฒฐํฉ๋์ด ์๋ ๋ถ์์ ์ฐํํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
์ฐธ๊ณ ๋ฌธํ
- The Homograph Illusion: Not Everything Is As It Seems
- Unicode Character Database
- dnstwist โ domain permutation engine
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์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.


