diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 088f962ff..4a374c24d 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) + - [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) - [Baseline Monitoring](generic-methodologies-and-resources/basic-forensic-methodology/file-integrity-monitoring.md) diff --git a/src/generic-methodologies-and-resources/phishing-methodology/README.md b/src/generic-methodologies-and-resources/phishing-methodology/README.md index 54ca7bb53..d0b6d1546 100644 --- a/src/generic-methodologies-and-resources/phishing-methodology/README.md +++ b/src/generic-methodologies-and-resources/phishing-methodology/README.md @@ -29,7 +29,7 @@ - **单数/复数化**: 在域名末尾添加或删除 “s” (例如,zeltsers.com)。 - **省略**: 它 **删除域名中的一个字母** (例如,zelser.com)。 - **重复**: 它 **重复域名中的一个字母** (例如,zeltsser.com)。 -- **替换**: 类似同形异义字但不那么隐蔽。它替换域名中的一个字母,可能是与原字母在键盘上相邻的字母 (例如,zektser.com)。 +- **替换**: 类似于同形异义字,但不那么隐蔽。它替换域名中的一个字母,可能是与原字母在键盘上相邻的字母 (例如,zektser.com)。 - **子域化**: 在域名中引入一个 **点** (例如,ze.lster.com)。 - **插入**: 它 **在域名中插入一个字母** (例如,zerltser.com)。 - **缺失点**: 将 TLD 附加到域名上。 (例如,zelstercom.com) @@ -53,7 +53,7 @@ 例如,域名 "windows.com" 中的单个位修改可以将其更改为 "windnws.com"。 -攻击者可能 **利用这一点注册多个位翻转域名**,这些域名与受害者的域名相似。他们的目的是将合法用户重定向到他们自己的基础设施。 +攻击者可能 **利用这一点注册多个位翻转域名**,这些域名与受害者的域名相似。他们的意图是将合法用户重定向到他们自己的基础设施。 有关更多信息,请阅读 [https://www.bleepingcomputer.com/news/security/hijacking-traffic-to-microsoft-s-windowscom-with-bitflipping/](https://www.bleepingcomputer.com/news/security/hijacking-traffic-to-microsoft-s-windowscom-with-bitflipping/) @@ -80,7 +80,7 @@ ### 安装 -你可以从 [https://github.com/gophish/gophish/releases/tag/v0.11.0](https://github.com/gophish/gophish/releases/tag/v0.11.0) 下载它。 +你可以从 [https://github.com/gophish/gophish/releases/tag/v0.11.0](https://github.com/gophish/gophish/releases/tag/v0.11.0) 下载。 下载并解压到 `/opt/gophish` 中,并执行 `/opt/gophish/gophish`\ 你将在输出中获得端口 3333 的管理员用户密码。因此,访问该端口并使用这些凭据更改管理员密码。你可能需要将该端口隧道到本地: @@ -122,7 +122,7 @@ 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.` @@ -271,7 +271,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 ========================================================== @@ -291,7 +291,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黑名单中移除 @@ -335,7 +335,7 @@ WRITE HERE SOME SIGNATURE OF SOMEONE FROM THE COMPANY ``` -请注意,**为了提高电子邮件的可信度**,建议使用客户电子邮件中的某些签名。建议: +注意,**为了提高电子邮件的可信度**,建议使用客户电子邮件中的某些签名。建议: - 向一个**不存在的地址**发送电子邮件,并检查回复是否有任何签名。 - 搜索**公共电子邮件**,如 info@ex.com 或 press@ex.com 或 public@ex.com,向它们发送电子邮件并等待回复。 @@ -360,7 +360,7 @@ WRITE HERE SOME SIGNATURE OF SOMEONE FROM THE COMPANY > 请注意,如果您需要**使用某些静态资源**用于 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 秒钟,然后指示该过程成功。 ### 用户与组 @@ -373,7 +373,7 @@ WRITE HERE SOME SIGNATURE OF SOMEONE FROM THE COMPANY 最后,创建一个活动,选择一个名称、电子邮件模板、登陆页面、URL、发送配置文件和组。请注意,URL 将是发送给受害者的链接。 -请注意,**发送配置文件允许发送测试电子邮件以查看最终钓鱼电子邮件的外观**: +注意,**发送配置文件允许发送测试电子邮件以查看最终的钓鱼电子邮件的样子**: ![](<../../images/image (192).png>) @@ -403,9 +403,9 @@ phishing-documents.md ### 通过代理 MitM -之前的攻击非常聪明,因为您伪造了一个真实的网站并收集了用户输入的信息。不幸的是,如果用户没有输入正确的密码,或者您伪造的应用程序配置了 2FA,**这些信息将无法让您冒充被欺骗的用户**。 +之前的攻击相当聪明,因为您伪造了一个真实的网站并收集了用户输入的信息。不幸的是,如果用户没有输入正确的密码,或者您伪造的应用程序配置了 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. 用户**发送**他的**凭据**到您的假页面,工具将这些发送到真实网页,**检查凭据是否有效**。 @@ -414,7 +414,7 @@ phishing-documents.md ### 通过 VNC -如果您不是**将受害者发送到一个与原始页面外观相同的恶意页面**,而是将他发送到一个**与真实网页连接的 VNC 会话**呢?您将能够看到他所做的事情,窃取密码、使用的 MFA、cookie...\ +如果您不是**将受害者发送到一个与原始页面外观相同的恶意页面**,而是将他发送到一个**与真实网页连接的 VNC 会话中的浏览器**呢?您将能够看到他所做的事情,窃取密码、使用的 MFA、cookie...\ 您可以使用 [**EvilnVNC**](https://github.com/JoelGMSec/EvilnoVNC) 来做到这一点。 ## 检测检测 @@ -422,27 +422,33 @@ phishing-documents.md 显然,知道您是否被发现的最佳方法之一是**在黑名单中搜索您的域**。如果它被列出,您的域以某种方式被检测为可疑。\ 检查您的域是否出现在任何黑名单中的一种简单方法是使用 [https://malwareworld.com/](https://malwareworld.com)。 -然而,还有其他方法可以知道受害者是否**积极寻找可疑的钓鱼活动**,如以下所述: +然而,还有其他方法可以知道受害者是否**在积极寻找可疑的钓鱼活动**,如以下所述: {{#ref}} detecting-phising.md {{#endref}} -您可以**购买一个与受害者域名非常相似的域名**,**和/或为您控制的域的**子域**生成证书**,**包含**受害者域的**关键字**。如果**受害者**与它们进行任何类型的**DNS 或 HTTP 交互**,您将知道**他在积极寻找**可疑域,您需要非常隐蔽。 +您可以**购买一个与受害者域名非常相似的域名**,**和/或为您控制的域的**一个**子域生成证书**,**包含**受害者域名的**关键字**。如果**受害者**与它们进行任何类型的**DNS 或 HTTP 交互**,您将知道**他在积极寻找**可疑域名,您需要非常隐蔽。 ### 评估钓鱼 -使用 [**Phishious**](https://github.com/Rices/Phishious) 评估您的电子邮件是否会进入垃圾邮件文件夹,或者是否会被阻止或成功。 +使用 [**Phishious**](https://github.com/Rices/Phishious) 来评估您的电子邮件是否会进入垃圾邮件文件夹,或者是否会被阻止或成功。 ## 剪贴板劫持 / 粘贴劫持 -攻击者可以在被攻陷或拼写错误的网页上静默地将恶意命令复制到受害者的剪贴板中,然后诱使用户在**Win + R**、**Win + X**或终端窗口中粘贴它们,从而执行任意代码,而无需任何下载或附件。 +攻击者可以在受害者的剪贴板中静默复制恶意命令,来自一个被攻陷或拼写错误的网页,然后诱使用户在**Win + R**、**Win + X**或终端窗口中粘贴它们,执行任意代码而无需任何下载或附件。 {{#ref}} clipboard-hijacking.md {{#endref}} -## 参考文献 +## 移动钓鱼和恶意应用分发(Android 和 iOS) + +{{#ref}} +mobile-phishing-malicious-apps.md +{{#endref}} + +## 参考 - [https://zeltser.com/domain-name-variations-in-phishing/](https://zeltser.com/domain-name-variations-in-phishing/) - [https://0xpatrik.com/phishing-domains/](https://0xpatrik.com/phishing-domains/) diff --git a/src/generic-methodologies-and-resources/phishing-methodology/mobile-phishing-malicious-apps.md b/src/generic-methodologies-and-resources/phishing-methodology/mobile-phishing-malicious-apps.md new file mode 100644 index 000000000..09aabe8d2 --- /dev/null +++ b/src/generic-methodologies-and-resources/phishing-methodology/mobile-phishing-malicious-apps.md @@ -0,0 +1,94 @@ +# 移动钓鱼与恶意应用分发(Android 和 iOS) + +{{#include ../../banners/hacktricks-training.md}} + +> [!INFO] +> 本页涵盖了威胁行为者通过钓鱼(SEO、社交工程、假商店、约会应用等)分发**恶意 Android APK**和**iOS 移动配置文件**的技术。 +> 材料改编自 Zimperium zLabs(2025)曝光的 SarangTrap 活动和其他公开研究。 + +## 攻击流程 + +1. **SEO/钓鱼基础设施** +* 注册数十个相似域名(约会、云分享、汽车服务等)。 +– 在 `` 元素中使用本地语言关键词和表情符号以在 Google 中排名。 +– 在同一着陆页上托管 *Android*(`.apk`)和 *iOS* 安装说明。 +2. **第一阶段下载** +* Android:直接链接到 *未签名* 或“第三方商店”APK。 +* iOS:`itms-services://` 或普通 HTTPS 链接到恶意 **mobileconfig** 配置文件(见下文)。 +3. **安装后的社交工程** +* 应用首次运行时要求输入 **邀请/验证代码**(独占访问幻觉)。 +* 代码通过 **HTTP POST** 发送到指挥与控制(C2)。 +* C2 回复 `{"success":true}` ➜ 恶意软件继续。 +* 沙箱/AV 动态分析未提交有效代码时不会看到 **恶意行为**(规避)。 +4. **运行时权限滥用**(Android) +* 危险权限仅在 **C2 正面响应后** 请求: +```xml +<uses-permission android:name="android.permission.READ_CONTACTS"/> +<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> +<uses-permission android:name="android.permission.READ_PHONE_STATE"/> +<!-- 较旧版本也请求 SMS 权限 --> +``` +* 最近的变种 **从 `AndroidManifest.xml` 中移除 SMS 的 `<uses-permission>`**,但保留通过反射读取 SMS 的 Java/Kotlin 代码路径 ⇒ 降低静态评分,同时在通过 `AppOps` 滥用或旧目标授予权限的设备上仍然有效。 +5. **外观 UI 和后台收集** +* 应用显示无害视图(SMS 查看器、图库选择器)在本地实现。 +* 同时它提取: +- IMEI / IMSI,电话号码 +- 完整的 `ContactsContract` 转储(JSON 数组) +- 从 `/sdcard/DCIM` 压缩的 JPEG/PNG,使用 [Luban](https://github.com/Curzibn/Luban) 减小大小 +- 可选 SMS 内容(`content://sms`) +有效载荷通过 `HTTP POST /upload.php` **批量压缩**并发送。 +6. **iOS 交付技术** +* 单个 **移动配置文件** 可以请求 `PayloadType=com.apple.sharedlicenses`,`com.apple.managedConfiguration` 等,以将设备注册到“MDM”类监督中。 +* 社交工程指令: +1. 打开设置 ➜ *配置文件已下载*。 +2. 点击 *安装* 三次(钓鱼页面上的截图)。 +3. 信任未签名的配置文件 ➜ 攻击者获得 *联系人* 和 *照片* 权限,无需 App Store 审核。 +7. **网络层** +* 普通 HTTP,通常在端口 80 上,HOST 头如 `api.<phishingdomain>.com`。 +* `User-Agent: Dalvik/2.1.0 (Linux; U; Android 13; Pixel 6 Build/TQ3A.230805.001)`(无 TLS → 易于发现)。 + +## 防御测试 / 红队提示 + +* **动态分析规避** – 在恶意软件评估期间,使用 Frida/Objection 自动化邀请代码阶段以达到恶意分支。 +* **清单与运行时差异** – 比较 `aapt dump permissions` 与运行时 `PackageManager#getRequestedPermissions()`;缺少危险权限是一个红旗。 +* **网络金丝雀** – 配置 `iptables -p tcp --dport 80 -j NFQUEUE` 以检测代码输入后不稳定的 POST 峰值。 +* **mobileconfig 检查** – 在 macOS 上使用 `security cms -D -i profile.mobileconfig` 列出 `PayloadContent` 并发现过多的权限。 + +## 蓝队检测思路 + +* **证书透明度 / DNS 分析** 以捕捉突发的关键词丰富域名。 +* **User-Agent 和路径正则表达式**: `(?i)POST\s+/(check|upload)\.php` 来自 Google Play 之外的 Dalvik 客户端。 +* **邀请代码遥测** – 在 APK 安装后不久的 6–8 位数字代码的 POST 可能表明正在准备。 +* **MobileConfig 签名** – 通过 MDM 策略阻止未签名的配置文件。 + +## 有用的 Frida 代码片段:自动绕过邀请代码 +```python +# frida -U -f com.badapp.android -l bypass.js --no-pause +# Hook HttpURLConnection write to always return success +Java.perform(function() { +var URL = Java.use('java.net.URL'); +URL.openConnection.implementation = function() { +var conn = this.openConnection(); +var HttpURLConnection = Java.use('java.net.HttpURLConnection'); +if (Java.cast(conn, HttpURLConnection)) { +conn.getResponseCode.implementation = function(){ return 200; }; +conn.getInputStream.implementation = function(){ +return Java.use('java.io.ByteArrayInputStream').$new("{\"success\":true}".getBytes()); +}; +} +return conn; +}; +}); +``` +## 指标(通用) +``` +/req/checkCode.php # invite code validation +/upload.php # batched ZIP exfiltration +LubanCompress 1.1.8 # "Luban" string inside classes.dex +``` +## 参考 + +- [浪漫的黑暗面:SarangTrap 敲诈活动](https://zimperium.com/blog/the-dark-side-of-romance-sarangtrap-extortion-campaign) +- [Luban – Android 图像压缩库](https://github.com/Curzibn/Luban) + +{{#include ../../banners/hacktricks-training.md}}