5.6 KiB
Raw Blame History

Attacchi Homograph / Homoglyph nel Phishing

{{#include ../../banners/hacktricks-training.md}}

Panoramica

Un attacco homograph (noto anche come homoglyph) sfrutta il fatto che molti punti di codice Unicode di script non latini sono visivamente identici o estremamente simili ai caratteri ASCII. Sostituendo uno o più caratteri latini con i loro omologhi visivamente simili, un attaccante può creare:

  • Nomi di visualizzazione, soggetti o corpi di messaggi che sembrano legittimi all'occhio umano ma eludono le rilevazioni basate su parole chiave.
  • Domini, sottodomini o percorsi URL che ingannano le vittime facendole credere di visitare un sito fidato.

Poiché ogni glifo è identificato internamente dal suo punto di codice Unicode, un singolo carattere sostituito è sufficiente per sconfiggere confronti di stringhe naïve (ad es., αypal.com" vs. "Paypal.com").

Flusso di Lavoro Tipico del Phishing

  1. Creare il contenuto del messaggio Sostituire lettere latine specifiche nel marchio / parola chiave impersonata con caratteri visivamente indistinguibili di un altro script (greco, cirillico, armeno, cherokee, ecc.).
  2. Registrare l'infrastruttura di supporto Registrare facoltativamente un dominio homoglyph e ottenere un certificato TLS (la maggior parte delle CA non esegue controlli di somiglianza visiva).
  3. Inviare email / SMS Il messaggio contiene homoglyph in uno o più dei seguenti luoghi:
  • Nome visualizzato del mittente (ad es., Ηеlрdеѕk)
  • Oggetto (Urgеnt Аctіon Rеquіrеd)
  • Testo del collegamento ipertestuale o nome di dominio completamente qualificato
  1. Catena di reindirizzamento La vittima viene reindirizzata attraverso siti web apparentemente benigni o accorciatori di URL prima di atterrare sull'host malevolo che raccoglie credenziali / distribuisce malware.

Intervalli Unicode Comunemente Sfruttati

Script Intervallo Glifo di esempio Sembra
Greco U+0370-03FF Η (U+0397) Latino H
Greco U+0370-03FF ρ (U+03C1) Latino p
Cirillico U+0400-04FF а (U+0430) Latino a
Cirillico U+0400-04FF е (U+0435) Latino e
Armeno U+0530-058F օ (U+0585) Latino o
Cherokee U+13A0-13FF (U+13A2) Latino T

Suggerimento: Le tabelle Unicode complete sono disponibili su unicode.org.

Tecniche di Rilevamento

1. Ispezione di Script Misti

Le email di phishing destinate a un'organizzazione di lingua inglese dovrebbero raramente mescolare caratteri di più script. Un'euristica semplice ma efficace è:

  1. Iterare ogni carattere della stringa ispezionata.
  2. Mappare il punto di codice al suo blocco Unicode.
  3. Sollevare un avviso se è presente più di uno script o se appaiono script non latini dove non sono attesi (nome visualizzato, dominio, soggetto, URL, ecc.).

Prova di concetto in Python:

import unicodedata as ud
from collections import defaultdict

SUSPECT_FIELDS = {
"display_name": "Ηоmоgraph Illusion",     # example data
"subject": "Finаniа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. Normalizzazione Punycode (Domini)

I nomi di dominio internazionalizzati (IDN) sono codificati con punycode (xn--). Convertire ogni nome host in punycode e poi tornare a Unicode consente di confrontare con una lista bianca o eseguire controlli di somiglianza (ad es., distanza di Levenshtein) dopo che la stringa è stata normalizzata.

import idna
hostname = "Ρаypal.com"   # Greek Rho + Cyrillic a
puny = idna.encode(hostname).decode()
print(puny)  # xn--yl8hpyal.com

3. Dizionari / Algoritmi di Omoglyph

Strumenti come dnstwist (--homoglyph) o urlcrazy possono enumerare permutazioni di dominio visivamente simili e sono utili per azioni proattive di rimozione / monitoraggio.

Prevenzione e Mitigazione

  • Applicare politiche DMARC/DKIM/SPF rigorose prevenire lo spoofing da domini non autorizzati.
  • Implementare la logica di rilevamento sopra in Secure Email Gateways e SIEM/XSOAR playbook.
  • Segnalare o mettere in quarantena i messaggi in cui il dominio del nome visualizzato ≠ dominio del mittente.
  • Educare gli utenti: copiare e incollare testo sospetto in un ispezionatore Unicode, passare il mouse sui link, non fidarsi mai degli accorciatori di URL.

Esempi del Mondo Reale

  • Nome visualizzato: Сonfidеntiаl ikеt (Cirillico С, е, а; Cherokee ; maiuscolo latino ).
  • Catena di dominio: bestseoservices.com ➜ directory municipale /templateskig.skyvaulyt.ru ➜ falso login Microsoft su mlcorsftpsswddprotcct.approaches.it.com protetto da CAPTCHA OTP personalizzato.
  • Impersonificazione di Spotify: mittente Sρօtifւ con link nascosto dietro redirects.ca.

Questi campioni provengono dalla ricerca di Unit 42 (luglio 2025) e illustrano come l'abuso di omografi sia combinato con la redirezione URL e l'evasione CAPTCHA per bypassare l'analisi automatizzata.

Riferimenti

{{#include ../../banners/hacktricks-training.md}}