
أتمتة تنفيذ exploit/PoC ضد نتائج بحث Shodan - إرسال متزامن، تصفية، إخراج منظم، وتصدير.
أتمتة تنفيذ الاستغلالات وإثباتات المفهوم ضد نتائج بحث شودان. استعلام شودان، تصفية الأهداف، وتشغيل سكريبتاتك ضد كل تطابق - بشكل متزامن، مع مخرجات منظمة وتصدير.
لديك سكريبت إثبات مفهوم يأخذ عنوان IP ومنفذًا. تريد تشغيله ضد كل مضيف يطابق استعلام شودان. شودسكريبت يسد الفجوة: ابحث، صفِّ، وزع، اجمع النتائج.
pip install git+https://github.com/momenbasel/shodscript.git
أو استنسخ وقم بالتثبيت محليًا:
git clone https://github.com/momenbasel/shodscript.git
cd shodscript
pip install -e .
اضبط مفتاح API الخاص بشودان:
export SHODAN_API_KEY="your-api-key-here"
أو مرره مع --api-key / -k في كل أمر.
# Table output
shodscript search "apache 2.4.49"
# Filter by port and country
shodscript search "nginx" --port 443 --country US --limit 50
# JSON output
shodscript search "apache" --json
# Run check_http.py against each host matching "apache 2.4.49"
shodscript run "apache 2.4.49" ./exploit.py
# 20 concurrent workers, 60s timeout per target
shodscript run "apache 2.4.49" ./exploit.py -w 20 -t 60
# Filter to port 80 in Germany, save results
shodscript run "apache" ./exploit.py --port 80 --country DE -o results.json
# CSV export
shodscript run "nginx" ./check.py -o results.csv --format csv
# Only show successful hits
shodscript run "apache" ./exploit.py --quiet
ثلاث طرق عبر --pass-via:
# Pass via environment variables
shodscript run "nginx" ./script.py --pass-via env
# Pass via stdin
shodscript run "nginx" ./script.py --pass-via stdin
# Forward extra arguments to the script
shodscript run "nginx" ./script.py -e "--verbose" -e "--ssl"
# One IP per line - pipe to other tools
shodscript ips "apache 2.4.49" | xargs -I{} curl -s http://{}
# Include port
shodscript ips "apache 2.4.49" --with-port
# Pipe to nuclei, httpx, etc.
shodscript ips "apache 2.4.49" -n 500 | httpx -silent
shodscript host 1.2.3.4
shodscript host 1.2.3.4 --json
shodscript info
يحتاج سكريبتك فقط إلى قبول عنوان IP ومنفذ. مثال أدنى:
#!/usr/bin/env python3
import sys
ip = sys.argv[1]
port = int(sys.argv[2])
# Your exploit/check logic here
print(f"[+] {ip}:{port} - vulnerable")
# Exit 0 = success (marked green), non-zero = failure (marked red)
انظر إلى مجلد examples/ لمزيد من الأنماط بما في ذلك السكريبتات القائمة على البيئة والتقاط البانر.
يمكن حفظ النتائج بتنسيق JSON أو JSONL أو CSV:
shodscript run "query" ./script.py -o results.json # JSON (default)
shodscript run "query" ./script.py -o results.jsonl --format jsonl # One JSON object per line
shodscript run "query" ./script.py -o results.csv --format csv # CSV
يحتوي كل سجل على: ip، port، host، org، country، returncode، success، stdout، stderr، elapsed، error.
MIT
للاستخدام المصرح به في الاختبارات الأمنية والبحث فقط.
| الوضع | كيفية استلام السكريبت للهدف |
|---|
arg (الافتراضي) | python3 script.py <ip> <port> |
env | TARGET_IP، TARGET_PORT، TARGET_HOST متغيرات البيئة |
stdin | ip:port\n يُكتب إلى stdin |