hacktricks/mobile-pentesting/ios-pentesting/basic-ios-testing-operations.md

410 lines
24 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# iOS基本测试操作
<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的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 发现我们的独家[NFT](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来分享你的黑客技巧。**
</details>
## 获取iOS设备的UDID
{% hint style="info" %}
在执行这些操作之前,**通过USB将设备连接到计算机**并**解锁**设备。
{% endhint %}
UDID是一个40位数字和字母的唯一序列用于标识iOS设备。您可以在macOS Catalina及更高版本的**Finder应用程序**中找到iOS设备的UDID因为Catalina中不再提供iTunes。只需在Finder中选择连接的iOS设备然后**单击iOS设备名称下的信息**以遍历它。除了UDID您还可以找到序列号、IMEI和其他有用的信息。
![](<../../.gitbook/assets/image (471).png>)
如果您使用的是Catalina之前的macOS版本您可以通过iTunes找到您的iOS设备的[UDID](http://www.iclarified.com/52179/how-to-find-your-iphones-udid)选择您的设备然后在摘要选项卡中点击“序列号”。点击后您将遍历iOS设备的不同元数据包括其UDID。
还可以在macOS上使用各种命令行工具获取设备连接的UDID
* 使用[I/O Registry Explorer](https://developer.apple.com/library/archive/documentation/DeviceDrivers/Conceptual/IOKitFundamentals/TheRegistry/TheRegistry.html)工具`ioreg`
```bash
$ ioreg -p IOUSB -l | grep "USB Serial"
| "USB Serial Number" = "9e8ada44246cee813e2f8c1407520bf2f84849ec"
```
* 使用[ideviceinstaller](https://github.com/libimobiledevice/ideviceinstaller)也可在Linux上使用
```bash
$ brew install ideviceinstaller
$ idevice_id -l
316f01bd160932d2bf2f95f1f142bc29b1c62dbc
```
* 使用system\_profiler
```bash
$ system_profiler SPUSBDataType | sed -n -e '/iPad/,/Serial/p;/iPhone/,/Serial/p;/iPod/,/Serial/p' | grep "Serial Number:"
2019-09-08 10:18:03.920 system_profiler[13251:1050356] SPUSBDevice: IOCreatePlugInInterfaceForService failed 0xe00002be
Serial Number: 64655621de6ef5e56a874d63f1e1bdd14f7103b1
```
* 使用instruments
```bash
$ instruments -s devices
```
## 访问设备Shell
越狱设备后,您应该安装了一些新的应用程序管理器,如**Cydia**。
### SSH
为了启用对iOS设备的SSH访问您可以安装**OpenSSH** **包**。安装完成后,您可以通过运行`ssh root@<device_ip_address>`访问您的设备这将以root用户身份登录您的设备
```bash
$ ssh root@192.168.197.234
root@192.168.197.234's password:
iPhone:~ root#
```
当通过SSH访问您的iOS设备时请考虑以下事项
* **默认用户是`root`和`mobile`**。
* 两者的默认**密码**都是**`alpine`**。
> 请记住,要更改`root`和`mobile`用户的默认密码因为在同一网络上的任何人都可以找到您设备的IP地址并使用众所周知的默认密码连接这将使他们获得对您设备的root访问权限。
### **通过USB连接到设备的SSH**
在真实的黑盒测试中可靠的Wi-Fi连接可能不可用。在这种情况下您可以使用usbmuxd通过USB连接到设备的SSH服务器。
通过安装和启动iproxy将macOS连接到iOS设备
```bash
$ brew install libimobiledevice
$ iproxy 2222 22
waiting for connection
```
上述命令将iOS设备上的端口`22`映射到本地主机上的端口`2222`。如果您不想每次都运行二进制文件来通过USB进行SSH连接您还可以[使iproxy在后台自动运行](https://iphonedevwiki.net/index.php/SSH\_Over\_USB)。
使用以下命令在新的终端窗口中,您可以连接到设备:
```bash
$ ssh -p 2222 root@localhost
root@localhost's password:
iPhone:~ root#
```
> 关于iDevice的USB的小提示在iOS设备上如果处于锁定状态超过1小时除非再次解锁否则无法进行数据连接这是由iOS 11.4.1引入的USB受限模式导致的。
### 设备上的Shell应用程序
通常情况下使用设备上的shell终端模拟器可能比远程shell更加繁琐但在调试网络问题或检查某些配置时它可能非常方便。例如您可以通过Cydia安装[NewTerm 2](https://repo.chariz.io/package/ws.hbang.newterm2/)来实现此目的在撰写本文时它支持iOS 6.0至12.1.2)。
此外有一些越狱工具明确禁用了传入的SSH连接出于安全原因。在这些情况下拥有一个设备上的shell应用程序非常方便您可以使用它首先通过反向shell从设备中SSH出去然后从主机计算机连接到它。
通过运行以下命令可以打开一个SSH反向shell`ssh -R <remote_port>:localhost:22 <username>@<host_computer_ip>`。
在设备上的shell应用程序中运行以下命令并在提示时输入主机计算机的`mstg`用户密码:
```bash
ssh -R 2222:localhost:22 mstg@192.168.197.235
```
在您的主机计算机上运行以下命令并在要求时输入iOS设备的`root`用户密码:
```bash
$ ssh -p 2222 root@localhost
```
### **忘记密码**
如果你忘记了密码并想要将其重置为默认的 **`alpine`**
1. 使用设备上的终端或使用诸如 **Filza****iFile** 的应用程序编辑你的越狱 iOS 设备上的文件 `/private/etc/master.passwd`
2. 找到以下行:
```bash
root:xxxxxxxxx:0:0::0:0:System Administrator:/var/root:/bin/sh
mobile:xxxxxxxxx:501:501::0:0:Mobile User:/var/mobile:/bin/sh
```
3.`xxxxxxxxx` 更改为 `/smx7MYTQIi2M`(这是密码 `alpine` 的哈希值)
4. 保存并退出
## 数据传输
### 通过 SSH 和 SCP 复制应用数据文件
现在我们知道,我们的应用文件存储在 Data 目录中。你现在可以使用 `tar` 将 Data 目录打包,并使用 `scp` 从设备中拉取它:
```bash
iPhone:~ root# tar czvf /tmp/data.tgz /private/var/mobile/Containers/Data/Application/8C8E7EB0-BC9B-435B-8EF8-8F5560EB0693
iPhone:~ root# exit
$ scp -P 2222 root@localhost:/tmp/data.tgz .
```
### 使用iFunbox
[**iFunbox**](https://www.i-funbox.com/en/page-download.html) 是一个图形用户界面应用程序,可用于多种用途(包括上传/下载文件)。\
另一个用于此目的的图形用户界面工具是 [**iExplorer**](https://macroplant.com/iexplorer)。
{% hint style="info" %}
从iOS 8.4版本开始苹果限制了第三方管理器对应用程序沙盒的访问权限因此如果设备没有越狱像iFunbox和iExplorer这样的工具将无法显示/检索设备上安装的应用程序的文件。
{% endhint %}
### 使用Objection
当您启动objection`objection --gadget com.apple.mobilesafari explorer`您将在Bundle目录中找到提示符。
```bash
org.owasp.MSTG on (iPhone: 10.3.3) [usb] # pwd print
Current directory: /var/containers/Bundle/Application/DABF849D-493E-464C-B66B-B8B6C53A4E76/org.owasp.MSTG.app
```
使用`env`命令获取应用程序的目录并导航到Documents目录。
```bash
org.owasp.MSTG on (iPhone: 10.3.3) [usb] # cd /var/mobile/Containers/Data/Application/72C7AAFB-1D75-4FBA-9D83-D8B4A2D44133/Documents
/var/mobile/Containers/Data/Application/72C7AAFB-1D75-4FBA-9D83-D8B4A2D44133/Documents
```
使用命令 `file download <文件名>` 可以将文件从iOS设备下载到您的主机计算机并可以随后进行分析。
```bash
org.owasp.MSTG on (iPhone: 10.3.3) [usb] # file download .com.apple.mobile_container_manager.metadata.plist
Downloading /var/mobile/Containers/Data/Application/72C7AAFB-1D75-4FBA-9D83-D8B4A2D44133/.com.apple.mobile_container_manager.metadata.plist to .com.apple.mobile_container_manager.metadata.plist
Streaming file from device...
Writing bytes to destination...
Successfully downloaded /var/mobile/Containers/Data/Application/72C7AAFB-1D75-4FBA-9D83-D8B4A2D44133/.com.apple.mobile_container_manager.metadata.plist to .com.apple.mobile_container_manager.metadata.plist
```
您还可以使用`file upload <local_file_path>`将文件上传到iOS设备。
## 获取和提取应用程序
### 从OTA分发链接获取IPA文件
在开发过程中有时会通过OTA分发将应用程序提供给测试人员。在这种情况下您将收到一个itms-services链接例如
```
itms-services://?action=download-manifest&url=https://s3-ap-southeast-1.amazonaws.com/test-uat/manifest.plist
```
您可以使用[ITMS服务资产下载器](https://www.npmjs.com/package/itms-services)工具从OTA分发URL下载IPA文件。通过npm安装它
```bash
$ npm install -g itms-services
```
使用以下命令将IPA文件保存在本地
```bash
# itms-services -u "itms-services://?action=download-manifest&url=https://s3-ap-southeast-1.amazonaws.com/test-uat/manifest.plist" -o - > out.ipa
```
### 获取应用程序二进制文件
1. **从IPA文件获取**
如果你有IPA文件可能包含已解密的应用程序二进制文件解压缩它并准备好开始。应用程序二进制文件位于主要捆绑目录.app例如`Payload/Telegram X.app/Telegram X`。有关属性列表提取的详细信息,请参见下一小节。
> 在macOS的Finder中可以通过右键单击.app目录并选择“显示包内容”来打开。在终端中您可以直接使用`cd`命令进入目录。
2. **从越狱设备获取**
如果您没有原始的IPA文件则需要一个越狱设备在该设备上**安装该应用程序**例如通过App Store。安装完成后您需要**从内存中提取应用程序二进制文件并重新构建IPA文件**。由于数字版权管理DRM的原因应用程序二进制文件在存储在iOS设备上时是加密的因此仅仅从捆绑包中提取它无论是通过SSH还是Objection是不足以进行逆向工程的请阅读下一节
### 解密(手动)
与Android应用程序不同iOS应用程序的二进制文件**只能被反汇编**而不能被反编译。\
当应用程序提交到应用商店时,苹果首先验证应用程序的行为,然后使用[**FairPlay**](https://developer.apple.com/streaming/fps/)对二进制文件进行加密,然后才将其发布到应用商店。因此,从应用商店下载的二进制文件是加密的,这增加了逆向工程的复杂性。
然而,请注意还有其他**第三方软件可以用于混淆**生成的二进制文件。
为了运行加密的二进制文件,设备需要在内存中对其进行解密。然后,可以**从内存中转储解密后的二进制文件**。
首先检查二进制文件是否使用了PIE位置无关代码标志
```bash
otool -Vh Original_App #Check the last word of the last line of this code
Home:
Mach header
magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
MH_MAGIC_64 X86_64 ALL 0x00 EXECUTE 47 6080 NOUNDEFS DYLDLINK TWOLEVEL PIE
```
如果已经设置,您可以使用脚本[`change_macho_flags.py`](https://chromium.googlesource.com/chromium/src/+/49.0.2623.110/build/mac/change\_mach\_o\_flags.py)来使用python2移除它
```bash
python change_mach_o_flags.py --no-pie Original_App
otool -Vh Hello_World
Hello_World:
Mach header
magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
MH_MAGIC ARM V7 0x00 EXECUTE 22 2356 NOUNDEFS DYLDLINK TWOLEVEL MH_NO_HEAP_EXECUTION
```
现在由于未设置PIE标志操作系统将每次在**固定的起始位置**加载程序。为了找到这个**位置**,您可以使用:
```bash
otool -l Original_App | grep -A 3 LC_SEGMENT | grep -A 1 __TEXT
segname __TEXT
vmaddr 0x00004000
```
然后,需要提取需要转储的内存范围:
```bash
otool -l Original_App | grep -A 4 LC_ENCRYPTION_INFO
cmd LC_ENCRYPTION_INFO
cmdsize 20
cryptoff 16384
cryptsize 17416192
cryptid 0
```
**`cryptoff`**的值表示加密内容的起始地址,而**`cryptsize`**表示加密内容的大小。
因此,要转储的`起始地址`将是`vmaddr + cryptoff`,而`结束地址`将是`起始地址 + cryptsize`\
在这种情况下:`起始地址 = 0x4000 + 0x4000 = 0x8000`,而`结束地址 = 0x8000 + 0x109c000 = 0x10a4000`
有了这些信息只需要在越狱设备上运行应用程序使用gdb`gdb -p <pid>`)附加到进程并转储内存即可:
```bash
dump memory dump.bin 0x8000 0x10a4000
```
恭喜你已经解密了dump.bin中的加密部分。现在**将这个dump传输到你的电脑上并用解密后的内容覆盖掉加密部分**
```bash
dd bs=1 seek=<starting_address> conv=notrunc if=dump.bin of=Original_App
```
还有一步要完成。应用程序在其元数据中仍然**指示**它是**加密的**,但实际上**并不是**。然后,当执行时,设备将尝试解密已经解密的部分,但会失败。
然而,你可以使用像[MachOView](https://sourceforge.net/projects/machoview/)这样的工具来更改这些信息。只需打开二进制文件并将**cryptid**设置为0
![](<../../.gitbook/assets/image (470).png>)
### 解密(自动)
#### frida-ios-dump
你可以使用像[frida-ios-dump](https://github.com/AloneMonkey/frida-ios-dump)这样的工具来**自动去除应用程序的加密**。
首先,确保在**Frida-ios-dump**的`dump.py`配置中,当使用**iproxy**时将其设置为本地主机和端口2222或者设置为要从中转储二进制文件的设备的实际IP地址和端口。
现在,你可以安全地使用该工具来**枚举已安装的应用程序**
```bash
$ python dump.py -l
PID Name Identifier
---- --------------- -------------------------------------
860 Cydia com.saurik.Cydia
1130 Settings com.apple.Preferences
685 Mail com.apple.mobilemail
834 Telegram ph.telegra.Telegraph
- Stocks com.apple.stocks
...
```
你可以**转储**列出的二进制文件之一:
```bash
$ python3 dump.py -u "root" -p "<PASSWORD>" ph.telegra.Telegraph
Start the target app ph.telegra.Telegraph
Dumping Telegram to /var/folders/qw/gz47_8_n6xx1c_lwq7pq5k040000gn/T
[frida-ios-dump]: HockeySDK.framework has been loaded.
[frida-ios-dump]: Load Postbox.framework success.
[frida-ios-dump]: libswiftContacts.dylib has been dlopen.
...
start dump /private/var/containers/Bundle/Application/14002D30-B113-4FDF-BD25-1BF740383149/Telegram.app/Frameworks/libswiftsimd.dylib
libswiftsimd.dylib.fid: 100%|██████████| 343k/343k [00:00<00:00, 1.54MB/s]
start dump /private/var/containers/Bundle/Application/14002D30-B113-4FDF-BD25-1BF740383149/Telegram.app/Frameworks/libswiftCoreData.dylib
libswiftCoreData.dylib.fid: 100%|██████████| 82.5k/82.5k [00:00<00:00, 477kB/s]
5.m4a: 80.9MB [00:14, 5.85MB/s]
0.00B [00:00, ?B/s]Generating "Telegram.ipa"
```
完成后,`Telegram.ipa` 文件将在当前目录中创建。您可以通过删除应用程序并重新安装它(例如使用 [**ios-deploy**](https://github.com/ios-control/ios-deploy) `ios-deploy -b Telegram.ipa`)来验证转储的成功。请注意,这仅适用于越狱设备,否则签名将无效。
#### flexdecrypt
为了从已安装的应用程序中**获取ipa文件**,您还可以使用工具 [**flexdecrypt**](https://github.com/JohnCoates/flexdecrypt) 或该工具的包装器 [**flexdump**](https://gist.github.com/defparam/71d67ee738341559c35c684d659d40ac)**。**\
无论哪种情况,您都需要在设备上**安装flexdecrypt**,可以运行以下命令:
```markup
wget https://github.com/JohnCoates/flexdecrypt/releases/download/1.1/flexdecrypt.deb
dpkg -i flexdecrypt.deb
rm flexdecrypt.deb
```
为了使用**flexdump**
```bash
apt install zip unzip
wget https://gist.githubusercontent.com/defparam/71d67ee738341559c35c684d659d40ac/raw/30c7612262f1faf7871ba8e32fbe29c0f3ef9e27/flexdump -P /usr/local/bin; chmod +x /usr/local/bin/flexdump
flexdump list #List apps
flexdump dump Twitter.app #Create .ipa file from app
```
#### bagbak
又一个基于Frida的应用程序解密工具。需要越狱的iOS设备和[frida.re](https://www.frida.re/)。
```bash
bagbak --raw Chrome
```
#### r2flutch
[**r2flutch**](https://github.com/as0ler/r2flutch) 是一个使用 **radare****frida****解密****转储 iOS 应用程序** 的工具。
更多信息请参阅 **github**
## 安装应用程序
当您在不使用苹果的应用商店的情况下安装应用程序时,这被称为 **侧载**。有多种侧载的方式,下面将对其进行描述。在 iOS 设备上,实际的安装过程由 **installd 守护进程** 处理,该进程将解压并安装应用程序。为了集成应用程序服务或在 iOS 设备上安装应用程序,所有的 **应用程序必须使用由 Apple 颁发的证书进行签名**。这意味着只有在成功进行代码签名验证后,应用程序才能被安装。然而,在越狱手机上,您可以通过 [**AppSync**](http://repo.hackyouriphone.org/appsyncunified) 来 **绕过这个安全功能**AppSync 是 Cydia 商店中提供的一个软件包,它包含了许多利用越狱提供的 root 权限执行高级功能的有用应用程序。**AppSync 是一个修补 installd 的插件**,允许安装伪签名的 IPA 包。
有不同的方法可以将 IPA 包安装到 iOS 设备上,下面将详细描述这些方法。
> 请注意iTunes 在 macOS Catalina 中不再可用。如果您使用的是较旧版本的 macOS则仍然可以使用 iTunes但自 iTunes 12.7 以来,无法安装应用程序。
#### Cydia Impactor
[Cydia Impactor](http://www.cydiaimpactor.com) 最初是用于越狱 iPhone 的,但已经被重新编写为通过侧载方式对 iOS 设备进行 IPA 包的签名和安装(甚至可以对 Android 设备进行 APK 文件的签名和安装。Cydia Impactor 可在 Windows、macOS 和 Linux 上使用。[yalujailbreak.net](https://yalujailbreak.net/how-to-use-cydia-impactor/) 上提供了一份逐步指南和故障排除步骤。
#### libimobiledevice
在 Linux 和 macOS 上,您还可以使用 [libimobiledevice](https://www.libimobiledevice.org),这是一个跨平台的软件协议库和一组用于与 iOS 设备进行本地通信的工具。这使您可以通过执行 ideviceinstaller 来通过 USB 连接安装应用程序。连接是通过 USB 多路复用守护进程 [usbmuxd](https://www.theiphonewiki.com/wiki/Usbmux) 实现的,它在 USB 上提供了一个 TCP 隧道。
libimobiledevice 的软件包将在您的 Linux 软件包管理器中提供。在 macOS 上,您可以通过 brew 安装 libimobiledevice
```bash
$ brew install libimobiledevice
$ brew install ideviceinstaller
```
安装完成后,您将获得几个新的命令行工具,例如`ideviceinfo``ideviceinstaller`或`idevicedebug`。
```bash
# The following command will show detailed information about the iOS device connected via USB.
$ ideviceinfo
# The following command will install the IPA to your iOS device.
$ ideviceinstaller -i iGoat-Swift_v1.0-frida-codesigned.ipa
...
Install: Complete
# The following command will start the app in debug mode, by providing the bundle name. The bundle name can be found in the previous command after "Installing".
$ idevicedebug -d run OWASP.iGoat-Swift
```
#### ipainstaller
可以使用[ipainstaller](https://github.com/autopear/ipainstaller)命令行直接在iOS设备上安装IPA文件。将文件通过scp等方式复制到设备上后可以使用ipainstaller执行IPA文件的文件名
```bash
$ ipainstaller App_name.ipa
```
#### ios-deploy
在 macOS 上,您还可以使用 **ios-deploy** 工具通过命令行安装 iOS 应用程序。您需要解压缩您的 IPA 文件,因为 ios-deploy 使用应用程序包来安装应用程序。
```bash
$ unzip Name.ipa
$ ios-deploy --bundle 'Payload/Name.app' -W -d -v
```
在iOS设备上安装应用程序后您可以通过添加`-m`标志来直接启动调试,而无需再次安装应用程序。
```bash
$ ios-deploy --bundle 'Payload/Name.app' -W -d -v -m
```
#### Xcode
也可以使用Xcode集成开发环境来安装iOS应用程序具体步骤如下
1. 启动Xcode
2. 选择**窗口/设备和模拟器**
3. 选择连接的iOS设备然后点击**已安装的应用**中的**+**号。
#### 允许在非iPad设备上安装应用程序
有时候某个应用程序可能要求在iPad设备上使用。如果你只有iPhone或iPod touch设备你可以通过将**Info.plist**文件中的**UIDeviceFamily**属性的值更改为**1**来强制应用程序接受在这些设备上安装和使用。
```markup
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>UIDeviceFamily</key>
<array>
<integer>1</integer>
</array>
</dict>
</plist>
```
需要注意的是更改此值将破坏IPA文件的原始签名因此您需要在更新后重新签名IPA以便在未禁用签名验证的设备上安装它。
如果应用程序需要与现代iPad特定的功能而您的iPhone或iPod较旧则此绕过可能无效。
可以在Apple开发者文档中找到属性[UIDeviceFamily](https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple\_ref/doc/uid/TP40009252-SW11)的可能值。
<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)
* 发现我们的独家[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)或[**电报群组**](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>