
مجموعة أدوات Python تعليمية لاختبار الاختراق المصرح به: ماسح منافذ متعدد الخيوط، وتعداد النطاقات الفرعية والأدلة، وجامع البانرات واكتشاف المضيفين، مع واجهة سطر أوامر غنية.
مجموعة أدوات Python خفيفة الوزن وتعليمية تقوم بأتمتة مهام الاستطلاع والاستكشاف الشائعة المستخدمة في اختبار الاختراق المصرّح به. بُنيت كمشروع تعليمي لممارسة الأمن السيبراني / القرصنة الأخلاقية.
تقوم هذه المجموعة بإجراء فحص واستكشاف نشط. تشغيلها ضد أنظمة لا تملكها أو تفتقر إلى إذن كتابي صريح لاختبارها قد يُعدّ جريمة في معظم الولايات القضائية.
لا يتحمل المؤلفون أي مسؤولية عن سوء الاستخدام.
ما تغيّر من v1 → v2: حزمة معيارية، واجهة سطر أوامر argparse بأوامر فرعية،
ماسحات متعددة الخيوط، واجهة مدعومة بـ rich (بانر 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 connect متزامن لمضيف |
banner | التقاط بانر الخدمة من منفذ مفتوح |
dirscan | استكشاف مسارات الويب من قائمة كلمات |
subdomains | تحليل النطاقات الفرعية المرشحة |
netscan | اكتشاف المضيفين النشطين عبر نطاق CIDR |
httpprobe | فحص استجابة HTTP (الحالة، الترويسات، معاينة) |
logincheck | عرض توضيحي مختبري فقط لمخاطر بيانات الاعتماد الضعيفة/الافتراضية (محدود المعدل) |