
एक तेज़, अनुकूलन योग्य सेवा पहचान उपकरण जो एक लचीली फिंगरप्रिंट प्रणाली द्वारा संचालित है। यह आपके बुनियादी ढांचे में सेवाओं, API और नेटवर्क कॉन्फ़िगरेशन की पहचान करने में सहायता करता है।
एक तेज़, अनुकूलन योग्य सेवा पहचान उपकरण जो एक लचीली फिंगरप्रिंट प्रणाली द्वारा संचालित है। यह आपको आपके बुनियादी ढांचे में सेवाओं, API और नेटवर्क कॉन्फ़िगरेशन की पहचान करने में मदद करता है।
नवीनतम संस्करण रिलीज़ से डाउनलोड करें
# एकल IP स्कैन करें
zscan -target 192.168.1.1
# CIDR रेंज स्कैन करें
zscan -target 192.168.1.0/24
# एकाधिक लक्ष्य स्कैन करें (अलग करने के लिए ; या ,)
zscan -target "192.168.1.0/24;10.0.0.0/24"
zscan -target "192.168.1.1,192.168.1.2,192.168.1.3"
# विशिष्ट पोर्ट स्कैन करें
zscan -target 192.168.1.1 -port 80,443,8080
# परिणाम JSON फ़ाइल में सहेजें
zscan -target 192.168.1.1 -output results.json
# परिणाम रिमोट सर्वर पर रिपोर्ट करें
zscan -target 192.168.1.0/24 -report http://server/api/assets
package main
import (
"flag"
"log"
"os"
"time"
"github.com/zcyberseclab/zscan/pkg/stage"
)
func main() {
target := flag.String("target", "", "IP address or CIDR range to scan")
configPath := flag.String("config", "config/config.yaml", "Path to config file")
templatesDir := flag.String("templates-dir", "templates", "Path to templates directory")
enableGeo := flag.Bool("geo", false, "Enable geolocation and IP info lookup")
enableCensys := flag.Bool("censys", false, "Enable Censys data enrichment")
censysAPIKey := flag.String("censys-api-key", "", "Censys API Key")
censysSecret := flag.String("censys-secret", "", "Censys API Secret")
flag.Parse()
if *target == "" {
log.Fatal("Target IP or CIDR range is required")
}
// Handle Censys credentials from environment if not provided
if *enableCensys {
if *censysAPIKey == "" || *censysSecret == "" {
*censysAPIKey = os.Getenv("CENSYS_API_KEY")
*censysSecret = os.Getenv("CENSYS_SECRET")
}
if *censysAPIKey == "" || *censysSecret == "" {
log.Printf("Warning: Censys integration enabled but credentials not provided. Skipping Censys data enrichment.")
*enableCensys = false
}
}
// Create scanner
scanner, err := stage.NewScanner(*configPath, *templatesDir, *enableGeo, *enableCensys, *censysAPIKey, *censysSecret)
if err != nil {
log.Fatalf("Failed to create scanner: %v", err)
}
defer scanner.Close()
// Perform scan
startTime := time.Now()
results, err := scanner.Scan(*target)
if err != nil {
log.Fatalf("Scan failed: %v", err)
}
// Print results
if err := stage.PrintResults(results); err != nil {
log.Printf("Error printing results: %v", err)
}
duration := time.Since(startTime)
log.Printf("\nScan completed in: %v\n", duration)
}
इमेज बनाने के लिए docker build -t zscan . चलाएँ।
कंटेनर शुरू करने के लिए docker run zscan --target 127.0.0.1 --config /app/config/config.yaml चलाएँ।
ZScan YAML प्रारूप में कस्टम POC विकास का समर्थन करता है। POC लिखने के बारे में विस्तृत जानकारी के लिए, कृपया हमारी POC लेखन मार्गदर्शिका देखें।
उदाहरण POC:
type: Path Traversal
cve-id: CVE-2021-41773
severity: critical
rules:
- method: GET
path: /icons/.%2e/%2e%2e/etc/passwd
expression: "response.status==200 && response.body.bcontains(b'root:')"
अधिक उदाहरणों और विस्तृत सिंटैक्स के लिए, हमारी POC लेखन मार्गदर्शिका देखें।
पारंपरिक संपत्ति या भेद्यता स्कैनर्स दशकों पहले बनाए गए थे। वे बंद-स्रोत, अविश्वसनीय रूप से धीमे और विक्रेता-संचालित हैं। आज के हमलावर इंटरनेट पर नए जारी CVE का कुछ ही दिनों में सामूहिक शोषण कर रहे हैं, जबकि पहले इसमें वर्षों लगते थे। इस बदलाव के लिए इंटरनेट पर ट्रेंडिंग एक्सप्लॉइट्स से निपटने के लिए पूरी तरह से अलग दृष्टिकोण की आवश्यकता है।
हमने इस चुनौती को हल करने के लिए ZScan बनाया। हमने पूरे स्कैनिंग इंजन फ्रेमवर्क को खुला और अनुकूलन योग्य बनाया—जिससे वैश्विक सुरक्षा समुदाय को इंटरनेट पर ट्रेंडिंग अटैक वेक्टर और भेद्यताओं से निपटने में सहयोग करने का मौका मिला। ZScan अब कई उद्यमों, सरकारी एजेंसियों और विश्वविद्यालयों द्वारा उपयोग और योगदान किया जा रहा है।
आप हमारे कोड, टेम्पलेट्स लाइब्रेरी में योगदान देकर या हमारी टीम में शामिल होकर भाग ले सकते हैं।
PR भेजने और इस प्रोजेक्ट को अपडेट रखने के लिए सभी अद्भुत समुदाय योगदानकर्ताओं का धन्यवाद। ❤️
ZScan MIT लाइसेंस के तहत वितरित किया जाता है।
| विकल्प | विवरण |
|---|
-target | IP पता या CIDR रेंज (; या , विभाजक का समर्थन करता है) |
-port | स्कैन करने के लिए कस्टम पोर्ट (अल्पविराम से अलग) |
-config | कॉन्फ़िग फ़ाइल का पथ (डिफ़ॉल्ट: config/config.yaml) |
-geo | भू-स्थान और IP जानकारी लुकअप सक्षम करें |
-output | आउटपुट प्रारूप: json, html, या md |
-report | स्कैन परिणाम रिपोर्ट करने का URL |
-apikey | रिपोर्ट प्रमाणीकरण के लिए API कुंजी (Bearer टोकन) |
-version | संस्करण जानकारी दिखाएं |