2023-08-03 19:12:22 +00:00
|
|
|
|
# macOS进程滥用
|
2023-06-01 20:53:50 +00:00
|
|
|
|
|
|
|
|
|
<details>
|
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 YouTube 🎥</strong></a></summary>
|
2023-06-01 20:53:50 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
* 你在一家**网络安全公司**工作吗?你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
|
|
|
|
* 发现我们的独家[NFT收藏品**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
|
|
|
|
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
|
|
|
|
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
|
|
|
|
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
|
2023-06-01 20:53:50 +00:00
|
|
|
|
|
|
|
|
|
</details>
|
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
## macOS进程滥用
|
2023-06-01 20:53:50 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
与任何其他操作系统一样,macOS提供了各种方法和机制,用于进程之间的**交互、通信和共享数据**。虽然这些技术对于系统的高效运行至关重要,但黑客也可以滥用这些技术来**执行恶意活动**。
|
2023-06-01 20:53:50 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
### 库注入
|
2023-06-01 20:53:50 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
库注入是一种技术,攻击者通过它**强制一个进程加载恶意库**。一旦注入,该库在目标进程的上下文中运行,为攻击者提供与进程相同的权限和访问权限。
|
2023-06-01 20:53:50 +00:00
|
|
|
|
|
|
|
|
|
{% content-ref url="macos-library-injection/" %}
|
|
|
|
|
[macos-library-injection](macos-library-injection/)
|
|
|
|
|
{% endcontent-ref %}
|
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
### 函数挂钩
|
2023-06-01 20:53:50 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
函数挂钩涉及**拦截软件代码中的函数调用**或消息。通过挂钩函数,攻击者可以**修改进程的行为**,观察敏感数据,甚至控制执行流程。
|
2023-06-01 20:53:50 +00:00
|
|
|
|
|
2023-06-01 21:09:46 +00:00
|
|
|
|
{% content-ref url="../mac-os-architecture/macos-function-hooking.md" %}
|
|
|
|
|
[macos-function-hooking.md](../mac-os-architecture/macos-function-hooking.md)
|
2023-06-01 20:53:50 +00:00
|
|
|
|
{% endcontent-ref %}
|
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
### 进程间通信
|
2023-06-01 20:53:50 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
进程间通信(IPC)是指不同进程之间**共享和交换数据**的不同方法。虽然IPC对于许多合法应用程序至关重要,但它也可以被滥用以破坏进程隔离、泄露敏感信息或执行未经授权的操作。
|
2023-06-01 20:53:50 +00:00
|
|
|
|
|
2023-06-01 21:09:46 +00:00
|
|
|
|
{% content-ref url="../mac-os-architecture/macos-ipc-inter-process-communication/" %}
|
|
|
|
|
[macos-ipc-inter-process-communication](../mac-os-architecture/macos-ipc-inter-process-communication/)
|
2023-06-01 20:53:50 +00:00
|
|
|
|
{% endcontent-ref %}
|
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
### Electron应用程序注入
|
2023-06-13 00:15:20 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
使用特定的环境变量执行的Electron应用程序可能容易受到进程注入的攻击:
|
2023-06-13 00:15:20 +00:00
|
|
|
|
|
|
|
|
|
{% content-ref url="macos-electron-applications-injection.md" %}
|
|
|
|
|
[macos-electron-applications-injection.md](macos-electron-applications-injection.md)
|
|
|
|
|
{% endcontent-ref %}
|
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
### .Net应用程序注入
|
2023-06-25 23:05:20 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
可以通过**滥用.NET调试功能**(不受macOS运行时加固等保护措施保护)将代码注入到.NET应用程序中。
|
2023-06-25 23:05:20 +00:00
|
|
|
|
|
|
|
|
|
{% content-ref url="macos-.net-applications-injection.md" %}
|
|
|
|
|
[macos-.net-applications-injection.md](macos-.net-applications-injection.md)
|
|
|
|
|
{% endcontent-ref %}
|
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
### Python注入
|
2023-06-26 21:06:32 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
如果环境变量**`PYTHONINSPECT`**被设置,Python进程将在完成后进入Python命令行界面。
|
2023-06-26 21:06:32 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
其他环境变量,如**`PYTHONPATH`**和**`PYTHONHOME`**,也可以用于执行任意代码的Python命令。
|
2023-06-26 21:06:32 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
请注意,使用**`pyinstaller`**编译的可执行文件即使使用嵌入的Python运行,也不会使用这些环境变量。
|
2023-06-26 21:06:32 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
## 检测
|
2023-06-13 00:15:20 +00:00
|
|
|
|
|
|
|
|
|
### Shield
|
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
[**Shield**](https://theevilbit.github.io/shield/)([**Github**](https://github.com/theevilbit/Shield))是一个开源应用程序,可以**检测和阻止进程注入**操作:
|
2023-06-13 00:15:20 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
* 使用**环境变量**:它将监视以下任何环境变量的存在:**`DYLD_INSERT_LIBRARIES`**、**`CFNETWORK_LIBRARY_PATH`**、**`RAWCAMERA_BUNDLE_PATH`**和**`ELECTRON_RUN_AS_NODE`**
|
|
|
|
|
* 使用**`task_for_pid`**调用:查找一个进程是否想要获取另一个进程的**任务端口**,从而允许在该进程中注入代码。
|
|
|
|
|
* **Electron应用程序参数**:某人可以使用**`--inspect`**、**`--inspect-brk`**和**`--remote-debugging-port`**命令行参数以调试模式启动Electron应用程序,从而向其注入代码。
|
|
|
|
|
* 使用**符号链接**或**硬链接**:通常最常见的滥用是**使用我们的用户权限**放置一个链接,并将其指向更高权限的位置。对于硬链接和符号链接,检测非常简单。如果创建链接的进程具有**不同的权限级别**,我们会创建一个**警报**。不幸的是,在符号链接的情况下,无法阻止,因为在创建之前我们没有关于链接目标的信息。这是Apple的EndpointSecuriy框架的一个限制。
|
|
|
|
|
### 其他进程发起的调用
|
2023-06-26 13:00:58 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
在[**这篇博文**](https://knight.sc/reverse%20engineering/2019/04/15/detecting-task-modifications.html)中,你可以找到如何使用函数**`task_name_for_pid`**来获取关于其他**在进程中注入代码的进程**的信息。
|
2023-06-26 13:00:58 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
请注意,要调用该函数,您需要具有与运行该进程的用户ID相同的UID或者是**root**(它返回有关进程的信息,而不是注入代码的方法)。
|
2023-06-26 13:00:58 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
## 参考资料
|
2023-06-13 00:15:20 +00:00
|
|
|
|
|
|
|
|
|
* [https://theevilbit.github.io/shield/](https://theevilbit.github.io/shield/)
|
|
|
|
|
* [https://medium.com/@metnew/why-electron-apps-cant-store-your-secrets-confidentially-inspect-option-a49950d6d51f](https://medium.com/@metnew/why-electron-apps-cant-store-your-secrets-confidentially-inspect-option-a49950d6d51f)
|
|
|
|
|
|
2023-06-01 20:53:50 +00:00
|
|
|
|
<details>
|
|
|
|
|
|
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
* 你在一家**网络安全公司**工作吗?想要在HackTricks中**宣传你的公司**吗?或者你想要**获取PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
|
|
|
|
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
|
|
|
|
* 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
|
|
|
|
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
|
|
|
|
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享您的黑客技巧。**
|
2023-06-01 20:53:50 +00:00
|
|
|
|
|
|
|
|
|
</details>
|