
ماسح SCADA/ICS عالي الأداء وغير متزامن
ماسح SCADA/ICS عالي الأداء وغير المتزامن لتحديد وتبصيم أنظمة التحكم الصناعي عبر الشبكات. يكتشف الثغرات، ويحدد البائعين/المنتجات، ويُنشئ تقارير مخاطر شاملة.
تحذير: للاستخدام في التقييمات الأمنية المصرح بها فقط. قد يؤدي المسح غير المصرح به إلى انتهاك القوانين واللوائح.
# Clone the repository
git clone https://github.com/geeknik/scada-scanner.git
cd scada-scanner
# Install dependencies
pip install -r requirements.txt
# Single target scan
python scada_scanner.py -t 192.168.1.100 -o results.json
# CIDR range scan
python scada_scanner.py -c 192.168.1.0/24 -o results.json
# Multiple CIDR ranges from file
python scada_scanner.py -f networks.txt -o results.json
# Export CSV instead of JSON
python scada_scanner.py -t 192.168.1.100 --format csv -o results.csv
# Respect an exclude list
python scada_scanner.py -c 10.0.0.0/24 --exclude exclude.txt
# Highlight unexpected protocol/port combos (logged and in findings)
python scada_scanner.py -t 203.0.113.10 -o results.json
# Enable live vuln enrichment via ProjectDiscovery vulnx (requires vulnx + PDCP API key)
vulnx auth
python scada_scanner.py -t 192.168.1.100 --vulnx --vulnx-limit 3
Required arguments (one of):
-t, --target Single target IP address
-c, --cidr CIDR range to scan (e.g., 192.168.1.0/24)
-f, --cidr-file File containing CIDR ranges (one per line)
Optional arguments:
-o, --output Output file (default: scan_results.json)
-r, --rate Max requests per second (default: 10.0)
--timeout Connection timeout in seconds (default: 5)
--max-concurrent Maximum concurrent connections (default: 50)
--safe-mode Enable safe mode (non-intrusive scans only)
--exclude File containing IPs to exclude from scan
-v, --verbosity Verbosity level: 0=quiet, 1=normal, 2=debug
--format Output format: json or csv (default: json)
--safe-mode{
"scan_summary": {
"timestamp": "2025-02-27T14:02:33.456789",
"total_hosts_scanned": 256,
"hosts_with_scada": 12,
"total_vulnerabilities": 37,
"high_risk_hosts": 5
},
"hosts": [
{
"ip": "192.168.1.100",
"ports": [
{
"port": 502,
"protocol": "MODBUS",
"fingerprint": {
"vendor": "Schneider",
"product": "M340",
"version": "2.6.0",
"risk_score": 0.75,
"evidence": [
"response:00010000000101",
"port_hint:502"
],
"findings": [
"Detected MODBUS protocol (confidence: 0.55)",
"Identified vendor: SCHNEIDER, product: M340",
"Overall risk assessment: High (score: 0.75)"
],
"unexpected_port": false
}
}
],
"vulnerabilities": [
{
"cve_id": "CVE-2025-55221",
"description": "Socomec DIRIS Digiware M-70 DoS via crafted Modbus TCP/RTU over TCP packets",
"severity": "high",
"source": "local_db"
}
]
}
]
}
هذه الأداة مخصصة للتقييمات الأمنية المصرح بها فقط. قد يؤدي المسح غير المصرح به إلى انتهاك:
يأتي الماسح مع قاعدة بيانات ثغرات مدمجة صغيرة للبروتوكولات الأساسية (انظر VULNERABILITY_DATABASE). للحصول على معلومات أحدث، يمكنك تفعيل تكامل ProjectDiscovery vulnx الاختياري:
vulnx واضبط مفتاح PDCP API الخاص بك (vulnx auth).--vulnx (يمكن ضبط --vulnx-limit و--vulnx-timeout اختياريًا).source: "vulnx".إذا كان vulnx مفقودًا أو غير قابل للوصول، يتراجع الماسح بصمت إلى قاعدة البيانات المحلية.
يتم تحديث إدخالات قاعدة البيانات المحلية دوريًا من عمليات بحث vulnx للبروتوكولات الأساسية (ملتقطة في لقطة هذا المستودع) وتُوسم بـ source: "local_db".
تشغيل مجموعة اختبارات الوحدة:
pytest
صُمم الماسح ليكون نمطيًا (modular)، مما يسهل إضافة دعم لبروتوكولات جديدة:
SCADA_PORTSPROTOCOL_SIGNATURESVULNERABILITY_DATABASEالمساهمات مرحب بها! يرجى اتباع الخطوات التالية:
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)هذا المشروع مرخص بموجب رخصة MIT - راجع ملف LICENSE للحصول على التفاصيل.
يُقدَّم البرنامج "كما هو"، دون أي ضمان من أي نوع، صريح أو ضمني. يتنصل المؤلفون من كل المسؤولية عن أي ضرر أو خسارة ناتجة عن استخدام هذا البرنامج.