
अधिकृत पेनेट्रेशन परीक्षण के लिए एक शैक्षिक Python टूलकिट: थ्रेडेड पोर्ट स्कैनर, सबडोमेन और डायरेक्टरी एन्यूमरेशन, बैनर ग्रैबर और होस्ट डिस्कवरी, एक समृद्ध CLI के साथ।
एक हल्का, शैक्षिक Python टूलकिट जो अधिकृत पेनेट्रेशन टेस्टिंग में उपयोग किए जाने वाले सामान्य रेकॉनिसेंस और एन्यूमरेशन कार्यों को स्वचालित करता है। साइबरसिक्योरिटी / एथिकल-हैकिंग अभ्यास के लिए एक लर्निंग प्रोजेक्ट के रूप में बनाया गया।
यह टूलकिट सक्रिय स्कैनिंग और एन्यूमरेशन करता है। इसे उन सिस्टमों के विरुद्ध चलाना जिनका आप स्वामी नहीं हैं या जिनका परीक्षण करने के लिए आपके पास स्पष्ट लिखित अनुमति नहीं है, अधिकांश क्षेत्राधिकारों में अपराध हो सकता है।
लेखक दुरुपयोग के लिए कोई दायित्व स्वीकार नहीं करते।
v1 → v2 में क्या बदला: मॉड्यूलर पैकेज, सबकमांड्स के साथ argparse CLI,
थ्रेडेड स्कैनर, एक rich-संचालित UI (ASCII बैनर, लाइव प्रोग्रेस बार और
परिणाम तालिकाएँ), इनपुट सत्यापन, एक प्राधिकरण गेट, यूनिट टेस्ट और एक
GitLab CI पाइपलाइन।
# install virtualenv and activate
python3 -m venv venv
. venv/bin/activate
# install packages
pip3 install -r requirements.txt
# run (always from the project root)
python3 main.py --help
python -m venv venv
. .\venv\Scripts\activate # (PowerShell)
. venv/scripts/activate # (Git Shell)
pip install -r requirements.txt
python main.py --help
हमेशा प्रोजेक्ट रूट से python main.py … के माध्यम से चलाएँ (src पैकेज
में http और dir नाम के मॉड्यूल हैं, इसलिए src/ के अंदर से स्क्रिप्ट चलाने पर
मानक लाइब्रेरी शैडो हो सकती है)।
# Port scan with a custom port set / range
python main.py portscan 192.168.1.10 --ports 22,80,443
python main.py portscan 192.168.1.10 --ports 1-1024
# Banner grab
python main.py banner 192.168.1.10 22
# Directory enumeration (default or custom wordlist)
python main.py dirscan http://target.local
python main.py dirscan http://target.local --wordlist admin login backup api
# Subdomain discovery
python main.py subdomains example.com
# Live-host discovery on a subnet
python main.py netscan 192.168.1.0/24
# HTTP response inspection
python main.py httpprobe http://target.local
# Credential test against a lab login form (authorization required)
python main.py logincheck http://target.local/login \
--users admin user --passwords admin 1234 password
# Global options
python main.py --threads 100 --timeout 1.5 -v portscan 192.168.1.10
# Skip the interactive prompt in scripted, pre-scoped engagements
python main.py --i-am-authorized netscan 10.0.0.0/24
pip install -r requirements-dev.txt # runtime + pytest + ruff
pytest -v # run tests
ruff check . # lint
रनटाइम निर्भरताएँ requirements.txt में हैं; टेस्ट/लिंट टूल्स requirements-dev.txt में हैं
(जो रनटाइम वाले को भी शामिल करता है), इसलिए अंतिम उपयोगकर्ता कभी pytest इंस्टॉल नहीं करते।
GitLab पाइपलाइन (.gitlab-ci.yml) हर पुश पर लिंट + टेस्ट चलाती है।
simple-pentesting/
├── main.py # entry point (run from here)
├── src/ # the package
│ ├── __init__.py
│ ├── cli.py # argparse CLI
│ ├── config.py # defaults & Settings
│ ├── utils.py # validation helpers
│ ├── ui.py # rich UI: banner, progress, tables, auth prompt
│ ├── port_scanner.py # one file per feature ↓
│ ├── banner.py
│ ├── dir.py
│ ├── subdomain.py
│ ├── netscan.py
│ ├── http.py
│ └── login_check.py
├── tests/ # offline unit tests
├── .gitlab-ci.yml
├── requirements.txt # runtime deps
├── requirements-dev.txt # + pytest, ruff
├── LICENSE
└── .gitignore
| कमांड | यह क्या करता है |
|---|
portscan | किसी होस्ट का समवर्ती TCP कनेक्ट स्कैन |
banner | किसी खुले पोर्ट से सर्विस बैनर प्राप्त करें |
dirscan | वर्डलिस्ट से वेब पाथ्स की गणना करें |
subdomains | संभावित सबडोमेन को रिज़ॉल्व करें |
netscan | CIDR रेंज में लाइव होस्ट खोजें |
httpprobe | HTTP प्रतिक्रिया का निरीक्षण करें (स्थिति, हेडर, पूर्वावलोकन) |
logincheck | कमज़ोर/डिफ़ॉल्ट क्रेडेंशियल जोखिम का लैब-केवल डेमो (दर-सीमित) |