From 4ea7c9fa610051635c8205153f9460fad91d8171 Mon Sep 17 00:00:00 2001 From: Translator Date: Mon, 28 Jul 2025 10:13:11 +0000 Subject: [PATCH] Translated ['src/generic-methodologies-and-resources/phishing-methodolog --- src/SUMMARY.md | 1 + .../phishing-methodology/README.md | 40 ++++--- .../phishing-methodology/homograph-attacks.md | 104 ++++++++++++++++++ 3 files changed, 127 insertions(+), 18 deletions(-) create mode 100644 src/generic-methodologies-and-resources/phishing-methodology/homograph-attacks.md diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 4a374c24d..4f96c20dc 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -32,6 +32,7 @@ - [Clone a Website](generic-methodologies-and-resources/phishing-methodology/clone-a-website.md) - [Detecting Phishing](generic-methodologies-and-resources/phishing-methodology/detecting-phising.md) - [Discord Invite Hijacking](generic-methodologies-and-resources/phishing-methodology/discord-invite-hijacking.md) + - [Homograph Attacks](generic-methodologies-and-resources/phishing-methodology/homograph-attacks.md) - [Mobile Phishing Malicious Apps](generic-methodologies-and-resources/phishing-methodology/mobile-phishing-malicious-apps.md) - [Phishing Files & Documents](generic-methodologies-and-resources/phishing-methodology/phishing-documents.md) - [Basic Forensic Methodology](generic-methodologies-and-resources/basic-forensic-methodology/README.md) diff --git a/src/generic-methodologies-and-resources/phishing-methodology/README.md b/src/generic-methodologies-and-resources/phishing-methodology/README.md index d0b6d1546..e71b6b9fa 100644 --- a/src/generic-methodologies-and-resources/phishing-methodology/README.md +++ b/src/generic-methodologies-and-resources/phishing-methodology/README.md @@ -22,14 +22,18 @@ ### 域名变体技术 - **关键词**: 域名 **包含** 原始域名的重要 **关键词** (例如,zelster.com-management.com)。 -- **带连字符的子域**: 将子域的 **点替换为连字符** (例如,www-zelster.com)。 +- **带连字符的子域**: 将子域中的 **点替换为连字符** (例如,www-zelster.com)。 - **新 TLD**: 使用 **新 TLD** 的相同域名 (例如,zelster.org) -- **同形异义字**: 它 **替换** 域名中的一个字母为 **看起来相似的字母** (例如,zelfser.com)。 +- **同形异义词**: 它 **用看起来相似的字母替换** 域名中的一个字母 (例如,zelfser.com)。 + +{{#ref}} +homograph-attacks.md +{{#endref}} - **置换**: 它 **交换域名中的两个字母** (例如,zelsetr.com)。 -- **单数/复数化**: 在域名末尾添加或删除 “s” (例如,zeltsers.com)。 +- **单数/复数**: 在域名末尾添加或删除“s” (例如,zeltsers.com)。 - **省略**: 它 **删除域名中的一个字母** (例如,zelser.com)。 - **重复**: 它 **重复域名中的一个字母** (例如,zeltsser.com)。 -- **替换**: 类似于同形异义字,但不那么隐蔽。它替换域名中的一个字母,可能是与原字母在键盘上相邻的字母 (例如,zektser.com)。 +- **替换**: 类似于同形异义词,但不那么隐蔽。它替换域名中的一个字母,可能是与原字母在键盘上相邻的字母 (例如,zektser.com)。 - **子域化**: 在域名中引入一个 **点** (例如,ze.lster.com)。 - **插入**: 它 **在域名中插入一个字母** (例如,zerltser.com)。 - **缺失点**: 将 TLD 附加到域名上。 (例如,zelstercom.com) @@ -47,9 +51,9 @@ ### 位翻转 -存在 **某些存储或通信中的位可能会因各种因素而自动翻转的可能性**,例如太阳耀斑、宇宙射线或硬件错误。 +有 **可能性某些存储或通信中的位会因各种因素而自动翻转**,例如太阳耀斑、宇宙射线或硬件错误。 -当这个概念 **应用于 DNS 请求** 时,可能 **DNS 服务器接收到的域名** 与最初请求的域名不同。 +当这个概念 **应用于 DNS 请求** 时,**DNS 服务器接收到的域名** 可能与最初请求的域名不同。 例如,域名 "windows.com" 中的单个位修改可以将其更改为 "windnws.com"。 @@ -60,7 +64,7 @@ ### 购买受信任的域名 你可以在 [https://www.expireddomains.net/](https://www.expireddomains.net) 搜索可以使用的过期域名。\ -为了确保你要购买的过期域名 **已经有良好的 SEO**,你可以搜索它在以下网站的分类: +为了确保你要购买的过期域名 **已经有良好的 SEO**,你可以搜索它在以下网站中的分类: - [http://www.fortiguard.com/webfilter](http://www.fortiguard.com/webfilter) - [https://urlfiltering.paloaltonetworks.com/query/](https://urlfiltering.paloaltonetworks.com/query/) @@ -122,9 +126,9 @@ cp "/etc/letsencrypt/live/$DOMAIN/fullchain.pem" /opt/gophish/ssl_keys/key.crt `myhostname = `\ `mydestination = $myhostname, , localhost.com, localhost` -最后将文件 **`/etc/hostname`** 和 **`/etc/mailname`** 修改为您的域名并 **重启您的 VPS。** +最后将文件 **`/etc/hostname`** 和 **`/etc/mailname`** 修改为您的域名,并 **重启您的 VPS。** -现在,创建一个 **DNS A 记录** `mail.` 指向 **VPS 的 IP 地址**,并创建一个 **DNS MX** 记录指向 `mail.` +现在,创建一个指向 VPS **ip 地址** 的 **DNS A 记录** `mail.` 和一个指向 `mail.` 的 **DNS MX** 记录。 现在让我们测试发送电子邮件: ```bash @@ -271,7 +275,7 @@ v=DMARC1; p=none ```bash echo "This is the body of the email" | mail -s "This is the subject line" test-iimosa79z@srv1.mail-tester.com ``` -您还可以通过向 `check-auth@verifier.port25.com` 发送电子邮件来**检查您的电子邮件配置**,并**阅读响应**(为此,您需要**打开**端口**25**,并在文件 _/var/mail/root_ 中查看响应,如果您以 root 身份发送电子邮件)。\ +您还可以通过发送电子邮件到 `check-auth@verifier.port25.com` 来**检查您的电子邮件配置**,并**阅读响应**(为此,您需要**打开**端口**25**,并在文件 _/var/mail/root_ 中查看响应,如果您以 root 身份发送电子邮件)。\ 检查您是否通过了所有测试: ```bash ========================================================== @@ -283,7 +287,7 @@ DKIM check: pass Sender-ID check: pass SpamAssassin check: ham ``` -您还可以向**您控制的Gmail发送消息**,并检查您Gmail收件箱中的**电子邮件头**,`dkim=pass`应出现在`Authentication-Results`头字段中。 +您还可以向**您控制的Gmail发送消息**,并在您的Gmail收件箱中检查**电子邮件的头部**,`dkim=pass`应出现在`Authentication-Results`头字段中。 ``` Authentication-Results: mx.google.com; spf=pass (google.com: domain of contact@example.com designates --- as permitted sender) smtp.mail=contact@example.com; @@ -291,7 +295,7 @@ dkim=pass header.i=@example.com; ``` ### ​从Spamhouse黑名单中移除 -页面 [www.mail-tester.com](https://www.mail-tester.com) 可以指示您的域名是否被spamhouse阻止。您可以在以下网址请求移除您的域名/IP: ​[https://www.spamhaus.org/lookup/](https://www.spamhaus.org/lookup/) +页面 [www.mail-tester.com](https://www.mail-tester.com) 可以指示您的域名是否被spamhouse阻止。您可以在以下地址请求移除您的域名/IP: ​[https://www.spamhaus.org/lookup/](https://www.spamhaus.org/lookup/) ### 从Microsoft黑名单中移除 @@ -357,10 +361,10 @@ WRITE HERE SOME SIGNATURE OF SOMEONE FROM THE COMPANY > [!TIP] > 通常,您需要修改页面的 HTML 代码并在本地进行一些测试(可能使用某些 Apache 服务器)**直到您满意结果。** 然后,将该 HTML 代码写入框中。\ -> 请注意,如果您需要**使用某些静态资源**用于 HTML(可能是一些 CSS 和 JS 页面),您可以将它们保存在 _**/opt/gophish/static/endpoint**_ 中,然后从 _**/static/\**_ 访问它们。 +> 请注意,如果您需要**使用一些静态资源**用于 HTML(可能是一些 CSS 和 JS 页面),您可以将它们保存在 _**/opt/gophish/static/endpoint**_ 中,然后从 _**/static/\**_ 访问它们。 > [!TIP] -> 对于重定向,您可以**将用户重定向到受害者的合法主网页**,或者例如将他们重定向到 _/static/migration.html_,放置一些**旋转轮**(**[https://loading.io/](https://loading.io)**)5 秒钟,然后指示该过程成功。 +> 对于重定向,您可以**将用户重定向到受害者的合法主网页**,或者例如重定向到 _/static/migration.html_,放置一些**旋转轮**(**[https://loading.io/](https://loading.io)**)5秒钟,然后指示该过程成功。 ### 用户与组 @@ -405,7 +409,7 @@ phishing-documents.md 之前的攻击相当聪明,因为您伪造了一个真实的网站并收集了用户输入的信息。不幸的是,如果用户没有输入正确的密码,或者您伪造的应用程序配置了 2FA,**这些信息将无法让您冒充被欺骗的用户**。 -这就是像 [**evilginx2**](https://github.com/kgretzky/evilginx2)**、** [**CredSniper**](https://github.com/ustayready/CredSniper) 和 [**muraena**](https://github.com/muraenateam/muraena) 这样的工具有用的地方。这个工具将允许您生成类似 MitM 的攻击。基本上,攻击的工作方式如下: +这就是像 [**evilginx2**](https://github.com/kgretzky/evilginx2)**、** [**CredSniper**](https://github.com/ustayready/CredSniper) 和 [**muraena**](https://github.com/muraenateam/muraena) 这样的工具有用的地方。该工具将允许您生成类似 MitM 的攻击。基本上,攻击的工作方式如下: 1. 您**冒充真实网页的登录**表单。 2. 用户**发送**他的**凭据**到您的假页面,工具将这些发送到真实网页,**检查凭据是否有效**。 @@ -422,13 +426,13 @@ phishing-documents.md 显然,知道您是否被发现的最佳方法之一是**在黑名单中搜索您的域**。如果它被列出,您的域以某种方式被检测为可疑。\ 检查您的域是否出现在任何黑名单中的一种简单方法是使用 [https://malwareworld.com/](https://malwareworld.com)。 -然而,还有其他方法可以知道受害者是否**在积极寻找可疑的钓鱼活动**,如以下所述: +然而,还有其他方法可以知道受害者是否**积极寻找可疑的钓鱼活动**,如以下所述: {{#ref}} detecting-phising.md {{#endref}} -您可以**购买一个与受害者域名非常相似的域名**,**和/或为您控制的域的**一个**子域生成证书**,**包含**受害者域名的**关键字**。如果**受害者**与它们进行任何类型的**DNS 或 HTTP 交互**,您将知道**他在积极寻找**可疑域名,您需要非常隐蔽。 +您可以**购买一个与受害者域名非常相似的域名**,**和/或为您控制的域的**子域**生成证书**,**包含**受害者域名的**关键字**。如果**受害者**与它们进行任何类型的**DNS 或 HTTP 交互**,您将知道**他在积极寻找**可疑域名,您需要非常隐蔽。 ### 评估钓鱼 @@ -436,7 +440,7 @@ detecting-phising.md ## 剪贴板劫持 / 粘贴劫持 -攻击者可以在受害者的剪贴板中静默复制恶意命令,来自一个被攻陷或拼写错误的网页,然后诱使用户在**Win + R**、**Win + X**或终端窗口中粘贴它们,执行任意代码而无需任何下载或附件。 +攻击者可以在被攻陷或拼写错误的网页上静默地将恶意命令复制到受害者的剪贴板中,然后诱使用户在**Win + R**、**Win + X**或终端窗口中粘贴它们,执行任意代码而无需任何下载或附件。 {{#ref}} clipboard-hijacking.md diff --git a/src/generic-methodologies-and-resources/phishing-methodology/homograph-attacks.md b/src/generic-methodologies-and-resources/phishing-methodology/homograph-attacks.md new file mode 100644 index 000000000..0ec13e912 --- /dev/null +++ b/src/generic-methodologies-and-resources/phishing-methodology/homograph-attacks.md @@ -0,0 +1,104 @@ +# Homograph / Homoglyph Attacks in Phishing + +{{#include ../../banners/hacktricks-training.md}} + +## 概述 + +同形异义词(又称同形字)攻击利用了许多**来自非拉丁脚本的Unicode代码点在视觉上与ASCII字符完全相同或极为相似**的事实。通过用一个或多个外观相似的字符替换拉丁字符,攻击者可以制作: + +* 看起来对人眼合法的显示名称、主题或消息正文,但可以绕过基于关键字的检测。 +* 让受害者相信他们正在访问受信任网站的域名、子域名或URL路径。 + +因为每个字形在内部是通过其**Unicode代码点**来识别的,单个替换字符就足以击败简单的字符串比较(例如,`"Παypal.com"`与`"Paypal.com"`)。 + +## 典型钓鱼工作流程 + +1. **制作消息内容** – 用来自另一种脚本(希腊文、斯拉夫文、亚美尼亚文、切罗基文等)中视觉上无法区分的字符替换被模仿品牌/关键字中的特定拉丁字母。 +2. **注册支持基础设施** – 可选地注册一个同形字域名并获得TLS证书(大多数CA不进行视觉相似性检查)。 +3. **发送电子邮件/SMS** – 消息在以下一个或多个位置包含同形字: +* 发件人显示名称(例如,`Ηеlрdеѕk`) +* 主题行(`Urgеnt Аctіon Rеquіrеd`) +* 超链接文本或完全合格的域名 +4. **重定向链** – 受害者通过看似无害的网站或URL缩短器被转发,然后落在收集凭据/投放恶意软件的恶意主机上。 + +## 常被滥用的Unicode范围 + +| 脚本 | 范围 | 示例字形 | 看起来像 | +|--------|--------------|--------------|------------| +| 希腊文 | 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图表可在 [unicode.org](https://home.unicode.org/) 获取。 + +## 检测技术 + +### 1. 混合脚本检查 + +针对英语组织的钓鱼电子邮件应该很少混合来自多个脚本的字符。一个简单但有效的启发式方法是: + +1. 遍历被检查字符串的每个字符。 +2. 将代码点映射到其Unicode块。 +3. 如果存在多个脚本**或**在不应出现的地方(显示名称、域名、主题、URL等)出现非拉丁脚本,则发出警报。 + +Python概念验证: +```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 然后再转换回 Unicode 允许在字符串被正规化 **后** 进行白名单匹配或相似性检查(例如,Levenshtein 距离)。 +```python +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** 方案中实施上述检测逻辑。 +* 标记或隔离显示名称域名 ≠ 发件人域名的消息。 +* 教育用户:将可疑文本复制粘贴到 Unicode 检查器中,悬停链接,永远不要信任 URL 短链接。 + +## 现实世界示例 + +* 显示名称: `Сonfidеntiаl Ꭲiꮯkеt` (西里尔字母 `С`, `е`, `а`; 切罗基 `Ꭲ`; 拉丁小写大写 `ꮯ`)。 +* 域名链: `bestseoservices.com` ➜ 市政 `/templates` 目录 ➜ `kig.skyvaulyt.ru` ➜ 假冒的 Microsoft 登录在 `mlcorsftpsswddprotcct.approaches.it.com` 受自定义 OTP CAPTCHA 保护。 +* Spotify 冒充: `Sρօtifŭ` 发件人,链接隐藏在 `redirects.ca` 后面。 + +这些示例来源于 Unit 42 研究(2025 年 7 月),展示了同形字滥用如何与 URL 重定向和 CAPTCHA 规避结合,以绕过自动分析。 + +## 参考文献 + +- [The Homograph Illusion: Not Everything Is As It Seems](https://unit42.paloaltonetworks.com/homograph-attacks/) +- [Unicode Character Database](https://home.unicode.org/) +- [dnstwist – domain permutation engine](https://github.com/elceef/dnstwist) + +{{#include ../../banners/hacktricks-training.md}}