
स्थानीय-नेटवर्क सुरक्षा ऑडिटिंग EOL, CVE, डिवाइस पहचान, और HTML रिपोर्ट के साथ
नेटवर्क सुरक्षा ऑडिटिंग मनुष्यों के लिए — nmap द्वारा संचालित, सभी के लिए बनाया गया।
वेबसाइट: sunsetscan.com
SunsetScan एक स्थानीय-नेटवर्क सुरक्षा ऑडिटिंग टूल है जो गृह नेटवर्क मालिकों और आईटी स्टाफ के लिए है, जो nmap सिंटैक्स सीखे बिना nmap की गहराई चाहते हैं। इसे अपने नेटवर्क पर इंगित करें और यह हर सक्रिय डिवाइस को ढूंढता है, चल रहे सॉफ़्टवेयर की पहचान करता है, ज्ञात भेद्यता डेटाबेस और जीवन-अंत रिकॉर्ड के विरुद्ध जांच करता है, वेब इंटरफ़ेस को सामान्य कमजोरियों के लिए जांचता है, वैकल्पिक रूप से लॉकआउट-सुरक्षित फ़ैक्टरी-डिफ़ॉल्ट क्रेडेंशियल ऑडिट करता है, और एक स्वच्छ HTML रिपोर्ट तैयार करता है जिसमें सरल अंग्रेजी में स्पष्टीकरण और प्रत्येक निष्कर्ष को ठीक करने के लिए क्रमांकित चरण होते हैं। यह पूरी तरह से केवल-पढ़ने योग्य और गैर-विनाशकारी है — आपके नेटवर्क पर कभी कुछ भी संशोधित नहीं होता है।
लिनक्स क्यों? SunsetScan रॉ सॉकेट (ARP स्कैनिंग, निष्क्रिय पैकेट कैप्चर), लिनक्स-विशिष्ट API (
/proc,ip route), और विशेषाधिकार जांच (os.geteuid()) पर निर्भर करता है जो मूल विंडोज पर उपलब्ध नहीं हैं। WSL2 एक पूर्ण लिनक्स कर्नेल प्रदान करता है और विंडोज उपयोगकर्ताओं के लिए अनुशंसित मार्ग है।
SunsetScan एक इंस्टॉलर के साथ आता है जो सिस्टम टूल्स (nmap, masscan, git, python3-venv) का ध्यान रखता है, एक प्रोजेक्ट-लोकल Python वर्चुअल एनवायरनमेंट बनाता है, और उसके अंदर सभी Python निर्भरताओं को स्थापित करता है। आपको कभी भी रूट के रूप में pip install करने के लिए नहीं कहा जाएगा — यह आधुनिक Debian/Pi OS पर महत्वपूर्ण है, नीचे venv क्यों? देखें।
Debian, Ubuntu, Raspberry Pi OS (Bookworm और नए), Linux Mint, Pop!_OS.
Fedora, RHEL, CentOS, Rocky, Alma, Arch, Manjaro, openSUSE, macOS.
Debian, Ubuntu, Raspberry Pi OS, Linux Mint, और Pop!_OS के लिए अनुशंसित:```bash curl -LO https://github.com/NoCoderRandom/sunsetscan/releases/download/v2.1.0/sunsetscan_2.1.0-1_all.deb curl -LO https://github.com/NoCoderRandom/sunsetscan/releases/download/v2.1.0/sunsetscan_2.1.0-1_all.deb.sha256 sha256sum -c sunsetscan_2.1.0-1_all.deb.sha256 sudo apt install ./sunsetscan_2.1.0-1_all.deb sunsetscan --version
#### 2. एक-पंक्ति बूटस्ट्रैप
रिपॉजिटरी को `~/sunsetscan` में क्लोन करता है और इंस्टॉलर चलाता है:```bash
curl -fsSL https://raw.githubusercontent.com/NoCoderRandom/sunsetscan/main/bootstrap.sh | bash
इसे कहीं और चाहते हैं? INSTALL_DIR सेट करें:```bash
INSTALL_DIR=/opt/sunsetscan curl -fsSL https://raw.githubusercontent.com/NoCoderRandom/sunsetscan/main/bootstrap.sh | bash
> **`curl | bash` पर एक नोट**: यह सुविधाजनक है लेकिन इसका अर्थ है कि आप एक स्क्रिप्ट चला रहे हैं जिसे आपने पढ़ा नहीं है। यदि आप पहले निरीक्षण करना चाहते हैं, तो विकल्प 3 या 4 का उपयोग करें।
#### 3. क्लोन करें और स्थापित करें```bash
git clone https://github.com/NoCoderRandom/sunsetscan.git
cd sunsetscan
./install.sh
sudo apt install -y nmap masscan git python3 python3-venv python3-pip libpcap-dev build-essential avahi-utils git clone https://github.com/NoCoderRandom/sunsetscan.git && cd sunsetscan python3 -m venv venv && ./venv/bin/pip install -r requirements.txt ./sunsetscan --version
(अपने वितरण के पैकेज मैनेजर को `apt` के स्थान पर — `dnf`, `pacman`, `zypper`, या `brew` — उपयोग करें। Fedora/RHEL पर avahi पैकेज `avahi-tools` है, Arch पर `avahi`, openSUSE पर `avahi-utils`, और macOS पर इसकी आवश्यकता नहीं है।)
### इंस्टॉल करने के बाद — पहली बार चलाएँ```bash
./sunsetscan --setup # download EOL/CVE/credential databases (once)
sudo ./sunsetscan --instant # ARP-only inventory of your local subnet
sudo ./sunsetscan --full-assessment --target 192.168.1.0/24
./sunsetscan लॉन्चर स्वचालित रूप से वेन्व को सक्रिय करता है — आपको कभी भी source venv/bin/activate चलाने की आवश्यकता नहीं है। रॉ सॉकेट की आवश्यकता वाले स्कैन के लिए sudo का उपयोग करें, लेकिन --setup, --download, और --update-cache को अपने सामान्य उपयोगकर्ता के रूप में चलाएँ ताकि कैश फ़ाइलें TUI से लिखने योग्य रहें।
./install.sh को पुनः चलाना सुरक्षित और आइडेम्पोटेंट है — यह मौजूदा घटकों का पता लगाता है और उन्हें पुन: उपयोग करता है।
आधुनिक Debian-आधारित वितरण (Debian Bookworm, Raspberry Pi OS Bookworm, Ubuntu 23.04+) PEP 668 प्रवर्तन के साथ आते हैं। यह सिस्टम Python के विरुद्ध रूट के रूप में चलाए जाने पर pip install को विफल कर देता है:```
error: externally-managed-environment
× This environment is externally managed
Two of SunsetScan's dependencies (`pysnmp` v6 in particular) need newer versions than the apt repositories ship, so a pure-apt install isn't possible. The installer's solution is the standard one: install system tools (nmap, masscan, libpcap, avahi-utils) via apt, and put SunsetScan's Python dependencies in a project-local `./venv` directory. Nothing system-wide is touched, so PEP 668 doesn't apply, and uninstalling SunsetScan is just `rm -rf ~/sunsetscan`.
### Optional: SunsetScan को पृष्ठभूमि में चालू रखें
Raspberry Pi पर /24 subnet का पूर्ण मूल्यांकन करने में 10–30 मिनट लग सकते हैं। `tmux` या `screen` का उपयोग करें ताकि SSH डिस्कनेक्ट होने पर भी स्कैन चलता रहे:```bash
sudo apt install -y tmux
tmux new -s sunsetscan
sudo ./sunsetscan --full-assessment --target 192.168.1.0/24
# Ctrl+B then D to detach. "tmux attach -t sunsetscan" to come back later.
cd ~/sunsetscan git pull ./install.sh # idempotent — picks up any new dependencies
### अनइंस्टॉल करना```bash
rm -rf ~/sunsetscan
sudo rm -f /usr/local/bin/sunsetscan # only if you used --symlink
Windows सीधे समर्थित नहीं है (SunsetScan को raw sockets, /proc, और os.geteuid की आवश्यकता है), लेकिन WSL2 ठीक काम करता है:```powershell
wsl --install -d Ubuntu # in PowerShell, as Administrator
पुनः प्रारंभ करें, प्रारंभ मेनू से **Ubuntu** खोलें, फिर ऊपर दिए गए मानक इंस्टॉल का पालन करें। WSL2 एक वर्चुअल नेटवर्क एडेप्टर का उपयोग करता है — यदि ऑटो-डिटेक्शन गलत सबनेट चुनता है तो `--target` के साथ अपना वास्तविक सबनेट पास करें।
---
## आवश्यकताएँ
| आवश्यकता | न्यूनतम | नोट्स |
|---|---|---|
| **Python** | 3.9+ | 3.12 अनुशंसित |
| **nmap** | कोई हाल का | सिस्टम PATH पर होना चाहिए |
| **OS** | Linux (नेटिव या WSL2) | देखें [प्लेटफ़ॉर्म समर्थन](#platform-support) |
| **masscan** | कोई | वैकल्पिक — तेज़ पोर्ट खोज |
| **avahi-utils** | कोई | वैकल्पिक — `avahi-browse` प्रदान करता है, Apple / Bonjour / Sleep-Proxy उपकरणों की विश्वसनीय mDNS खोज के लिए उपयोग किया जाता है। अनुपस्थित होने पर python `zeroconf` पर वापस आ जाता है। |
| **git** | कोई | वैकल्पिक — `--setup` और `--update` के लिए उपयोग किया जाता है |
| **विशेषाधिकार** | मानक उपयोगकर्ता | FULL, STEALTH, SMB प्रोफ़ाइल, ARP डिटेक्शन और पैसिव कैप्चर के लिए Root/sudo आवश्यक |
---
## त्वरित प्रारंभ```bash
# Interactive mode (recommended for first-time users)
sudo python3 sunsetscan.py -i
# Full security assessment with HTML report
sudo python3 sunsetscan.py --full-assessment --target 192.168.1.0/24
# Quick scan of your network
python3 sunsetscan.py --target 192.168.1.0/24
# IoT device scan (cameras, routers, smart devices)
python3 sunsetscan.py --target 192.168.1.0/24 --profile IOT
# Quick device inventory (no security checks)
python3 sunsetscan.py --identify --target 192.168.1.0/24
# Download all data modules for extended detection
python3 sunsetscan.py --download all
SunsetScan पूर्ण मूल्यांकन के दौरान 12 सुरक्षा जाँचकर्ता मॉड्यूल चलाता है:
hardware-eol-home डिफ़ॉल्ट प्रोफाइल मिलता है, जबकि कार्यालय, उद्यम, औद्योगिक, सेवा-प्रदाता और पूर्ण प्रोफाइल व्यापक स्कैन के लिए उपलब्ध हैं।--setup, --update-cache और --download द्वारा संपर्क किया जाता है। जब तक कैश भरे हुए हैं, स्कैन बिना इंटरनेट कनेक्शन के काम करते हैं।--identify फ़्लैग सुरक्षा जाँच को छोड़ देता हैSunsetScan डाउनलोड करने योग्य डेटा मॉड्यूल और हार्डवेयर EOL प्रोफाइल शामिल करता है जो पहचान क्षमताओं का विस्तार करते हैं:
हार्डवेयर जीवनचक्र डेटाबेस अब स्मार्ट डाउनलोड करने योग्य प्रोफाइल में विभाजित है: hardware-eol-home डिफ़ॉल्ट इंस्टॉल है, जबकि hardware-eol-full पूर्ण कवरेज प्रदान करता है। पूर्ण प्रामाणिक बिल्ड में वर्तमान में 122 विक्रेताओं में 64,245 रिकॉर्ड हैं, लेकिन घरेलू उपयोगकर्ताओं को केवल छोटे होम प्रोफाइल की आवश्यकता होती है।
### रॉग डिवाइस का पता लगाना
- अपने नेटवर्क का एक विश्वसनीय आधाररेखा के रूप में स्नैपशॉट सहेजें
- भविष्य के स्कैन आधाररेखा में नहीं होने वाले अज्ञात MAC पतों को स्वचालित रूप से चिह्नित करते हैं
- अप्रत्याशित IP पतों पर ज्ञात उपकरणों का पता लगाता है
### जोखिम स्कोरिंग
प्रत्येक उपकरण को निष्कर्षों की गंभीरता और संख्या के आधार पर एक जोखिम स्कोर (0-100) प्राप्त होता है:
| स्कोर | बैंड |
|---|---|
| 0-10 | न्यूनतम जोखिम |
| 11-30 | कम जोखिम |
| 31-60 | मध्यम जोखिम |
| 61-80 | उच्च जोखिम |
| 81-100 | गंभीर जोखिम |
### रिपोर्टिंग
- **पेशेवर HTML रिपोर्ट** — गंभीरता डैशबोर्ड, प्रति-होस्ट अनुभाग, सादे-अंग्रेजी स्पष्टीकरण के साथ फाइंडिंग कार्ड, प्राथमिकता वाली सिफारिशें
- **JSON निर्यात** — मशीन-पठनीय संरचित आउटपुट
- रिपोर्टें पूरी तरह से स्व-निहित हैं — एक HTML फ़ाइल, कोई बाहरी निर्भरता नहीं
- SMB जैसे संकीर्ण प्रोफाइल अभी भी खोजे गए होस्ट को रिपोर्ट में दृश्यमान रखते हैं, भले ही कोई मेल खाने वाला सेवा पोर्ट खुला न हो
- DNS, UPnP, और स्कैन रनटाइम नोट्स जैसे नेटवर्क-स्तरीय जांच प्रति-डिवाइस निष्कर्षों से अलग किए जाते हैं; डिवाइस जोखिम स्कोर केवल वास्तविक होस्ट के लिए दिखाए जाते हैं
- सभी निष्कर्ष रंग-कोडित: गंभीर, उच्च, मध्यम, कम, सूचनात्मक
### स्कैन इतिहास और अंतर
- प्रत्येक स्कैन स्वचालित रूप से gzip-संपीड़ित JSON स्नैपशॉट के रूप में सहेजा जाता है
- `--history` के साथ पिछले स्कैन देखें
- `--diff` के साथ किन्हीं दो स्कैन की तुलना करें ताकि नए होस्ट, बंद पोर्ट, नए/हल किए गए निष्कर्ष देख सकें
- `--diff --since N` के साथ N दिन पहले के स्कैन से तुलना करें
- डिफ़ॉल्ट रूप से 90 दिनों तक इतिहास रखा जाता है
### उपयोगकर्ता इंटरफ़ेस
- निर्देशित **इंटरैक्टिव मोड** (`-i`) — स्कैनिंग, विश्लेषण, निर्यात, मॉड्यूल के लिए बहु-स्तरीय मेनू
- **पुरानी शैली का मेनू** — बिना तर्कों के चलाने पर प्रारंभ होता है
- प्रत्यक्ष CLI मोड — स्क्रिप्टेबल और ऑटोमेशन-अनुकूल
- प्रगति पट्टियों, स्पिनरों और सारांश पैनलों के साथ समृद्ध रंग टर्मिनल आउटपुट
---
## सभी CLI फ़्लैग
| फ़्लैग | विवरण | रूट |
|---|---|---|
| `--target TARGET` | स्कैन करने के लिए IP, CIDR रेंज, होस्टनाम, या रेंज | नहीं |
| `--profile PROFILE` | स्कैन प्रोफ़ाइल: QUICK, FULL, STEALTH, PING, IOT, SMB (डिफ़ॉल्ट: QUICK) | अलग-अलग |
| `-i`, `--interactive` | निर्देशित इंटरैक्टिव मोड प्रारंभ करें | नहीं |
| `--full-assessment` | पूर्ण मूल्यांकन + स्वचालित HTML निर्यात; क्रेडेंशियल ऑडिट ऑप्ट-इन रहता है | नहीं |
| `--identify` | केवल डिवाइस पहचान चलाएं (सुरक्षा जाँच को छोड़ें) | नहीं |
| `--nse` | उन्नत पहचान के लिए Nmap स्क्रिप्टिंग इंजन सक्षम करें | नहीं |
| `--check-defaults` | लॉकआउट-सुरक्षित फ़ैक्टरी-डिफ़ॉल्ट क्रेडेंशियल ऑडिट में ऑप्ट-इन करें (केवल स्वामित्व वाले उपकरण) | नहीं |
| `--save-baseline` | रॉग डिटेक्शन के लिए स्कैन को विश्वसनीय डिवाइस आधाररेखा के रूप में सहेजें | नहीं |
| `--setup` | पहली बार सेटअप विज़ार्ड (निर्भरताएँ + कैश डाउनलोड) | नहीं |
| `--update-cache` | मैन्युअल रूप से CVE और EOL डेटा कैश ताज़ा करें | नहीं |
| `--cache-status` | कैश आयु और प्रविष्टि गणना दिखाएँ, फिर बाहर निकलें | नहीं |
| `--modules` | सभी डाउनलोड करने योग्य डेटा मॉड्यूल की स्थिति दिखाएँ | नहीं |
| `--download MODULE` | डेटा मॉड्यूल डाउनलोड करें (या "all") | नहीं |
| `--db SIZE` | `--setup` के लिए EOL डेटाबेस आकार: mini, normal, large (डिफ़ॉल्ट: normal) | नहीं |
| `--history` | स्कैन इतिहास तालिका दिखाएँ और बाहर निकलें | नहीं |
| `--diff` | अंतिम दो सहेजे गए स्कैन का अंतर दिखाएँ और बाहर निकलें | नहीं |
| `--since DAYS` | `--diff` के साथ: कम से कम N दिन पुराने स्कैन से तुलना करें | नहीं |
| `--check-version` | GitHub पर नवीनतम SunsetScan रिलीज़ की जाँच करें | नहीं |
| `--update` | GitHub से नवीनतम कोड खींचें और आवश्यकताओं को पुनः स्थापित करें | नहीं |
| `--verbose` | डीबग लॉगिंग सक्षम करें | नहीं |
| `--no-color` | रंग आउटपुट अक्षम करें (लॉग फ़ाइलों के लिए उपयोगी) | नहीं |
| `--quiet` | प्रगति पट्टियाँ दबाएँ (निष्कर्ष अभी भी दिखाए जाते हैं) | नहीं |
| `--safe-mode` | हल्का स्कैनिंग बलपूर्वक करें: सीमित nmap, कम masscan उपयोग, कम वर्कर, भारी प्रोब छोड़ें | नहीं |
| `--no-safe-mode` | स्वचालित सुरक्षित मोड अक्षम करें | नहीं |
| `--version` | संस्करण संख्या दिखाएँ और बाहर निकलें | नहीं |
---
## स्कैन प्रोफ़ाइल
| प्रोफ़ाइल | nmap फ़्लैग | गति | रूट | सर्वोत्तम के लिए |
|---|---|---|---|---|
| **PING** | `-sn` | ~30s | नहीं | सक्रिय उपकरणों को जल्दी ढूँढना |
| **QUICK** | `-T4 -F -sV --version-intensity 2` | 1-3 मिनट | नहीं | नेटवर्क की पहली झलक (हल्की संस्करण पहचान के साथ) |
| **FULL** | `-T4 -A -sV -O --osscan-guess` | 5-15 मिनट | हाँ | विशिष्ट होस्टों का गहन विश्लेषण |
| **STEALTH** | `-sS -T2 -sV` | 10-30 मिनट | हाँ | कम-शोर स्कैनिंग |
| **IOT** | `-T4 -sV -p 23,80,443,8080,8443,554,1900,5000,5001,7547,49152 --open` | 1-3 मिनट | नहीं | कैमरे, राउटर, स्मार्ट उपकरण |
| **SMB** | `-T4 -sV -p 135,139,445,137,138 --script smb-security-mode,smb2-security-mode,smb-vuln-ms17-010 --open` | 1-3 मिनट | हाँ | Windows शेयर, EternalBlue जाँच |
> **सुझाव:** FULL और STEALTH स्वचालित रूप से sudo के बिना चलाए जाने पर गैर-रूट फ़्लैग पर वापस आ जाते हैं। OS पहचान अनुपलब्ध होगी लेकिन पोर्ट स्कैनिंग और सेवा पहचान अभी भी काम करेगी।
### डिफ़ॉल्ट पासवर्ड ऑडिट सुरक्षा
डिफ़ॉल्ट-पासवर्ड परीक्षण कभी भी स्वचालित रूप से सक्षम नहीं किया जाता है। CLI मोड में, `--check-defaults` जोड़ें; निर्देशित `-i` मोड में, संकेत मिलने पर डिफ़ॉल्ट पासवर्ड ऑडिट चुनें। SunsetScan तब एक रूढ़िवादी नीति लागू करता है:
- डिफ़ॉल्ट रूप से कोई सामान्य उपयोगकर्ता नाम/पासवर्ड स्प्रेइंग नहीं
- केवल उन क्रेडेंशियल का परीक्षण करता है जो पहचाने गए विक्रेता और मॉडल/परिवार से मेल खाते हैं
- अद्वितीय लेबल/PIN डिफॉल्ट वाले उपकरणों को छोड़ देता है, जैसे कई HP प्रिंटर
- डिफ़ॉल्ट रूप से प्रति होस्ट 2 और प्रति सेवा 1 तक प्रयास सीमित करता है
- क्रेडेंशियल-असर वाले प्रयासों के बीच 2 सेकंड प्रतीक्षा करता है
- यदि कोई उपकरण लॉकआउट या दर-सीमा संकेत देता है तो तुरंत रुक जाता है
अंतर्निहित डेटाबेस जानबूझकर छोटा और स्रोत-समर्थित है। डाउनलोड किए गए बड़े क्रेडेंशियल मॉड्यूल संदर्भ डेटा के रूप में बनाए रखे जाते हैं, लेकिन सुरक्षित ऑडिट उनका उपयोग नहीं करता जब तक कि `Settings.auth_allow_module_credentials` को स्पष्ट रूप से किसी डेवलपर द्वारा सक्षम न किया गया हो।
### सुरक्षित मोड और मान्यता रन
सुरक्षित मोड कम-शक्ति वाले होस्ट, Pi-hole/गेटवे उपकरणों जैसे दिखने वाले होस्ट, और Wi-Fi एग्रेस पर स्वचालित रूप से अनुशंसित किया जाता है। इसे इसके साथ भी बलपूर्वक किया जा सकता है:```bash
python3 sunsetscan.py --full-assessment --target 192.168.1.0/24 --safe-mode
सुरक्षित मोड में SunsetScan:
-i मोड से समान सुरक्षित स्कैनर व्यवहार लागू करता हैसभी मोड में रूट-सहायता प्राप्त रिग्रेशन टेस्टिंग के लिए, वैलिडेशन कलेक्टर का उपयोग करें:```bash sudo bash scripts/sudo_network_validation.sh
डिफ़ॉल्ट रूप से यह PING, QUICK, SMB, STEALTH और FULL में `192.168.1.0/24` का परीक्षण करता है, उत्पन्न HTML रिपोर्टों को validation directory में कॉपी करता है, और `reports/` के अंतर्गत एक संपीड़ित संग्रह लिखता है। रिपोर्ट, लॉग, pcaps और संग्रह git द्वारा अनदेखा किए जाते हैं और उन्हें कमिट नहीं किया जाना चाहिए।
उपयोगी ओवरराइड्स:```bash
sudo SUNSETSCAN_TARGETS="192.168.1.0/24" bash scripts/sudo_network_validation.sh
sudo SUNSETSCAN_PROFILES="PING QUICK FULL" bash scripts/sudo_network_validation.sh
sudo SUNSETSCAN_COMMAND_TIMEOUT=1200 bash scripts/sudo_network_validation.sh
SunsetScan स्कैन के दौरान कभी भी बाहरी API को कॉल नहीं करता है। सभी डेटा data/cache/ में स्थानीय कैश फ़ाइलों से पढ़ा जाता है।
स्कैन पुराने या गुम कैश के साथ सामान्य रूप से काम करते हैं — आपके पास केवल पुराना CVE डेटा हो सकता है।
---
## दुष्ट उपकरण पहचान```bash
# Step 1: Save baseline when all known devices are present
sudo python3 sunsetscan.py --target 192.168.1.0/24 --save-baseline
# Step 2: Future scans automatically compare against baseline
sudo python3 sunsetscan.py --target 192.168.1.0/24
| खोज | गंभीरता | अर्थ |
|---|---|---|
| अज्ञात डिवाइस का पता चला | मध्यम | MAC बेसलाइन में नहीं — नया या अनधिकृत डिवाइस |
| डिवाइस का IP बदल गया | निम्न | ज्ञात MAC एक अलग IP पर (सामान्यतः सामान्य DHCP) |
| पहले देखा गया डिवाइस ऑफ़लाइन |
नोट: बेसलाइन को nmap के माध्यम से MAC पता पहचान के लिए root/sudo की आवश्यकता होती है।
हर --full-assessment एक स्व-निहित HTML रिपोर्ट तैयार करता है जिसमें शामिल हैं:
रिपोर्टें बिना इंटरनेट की आवश्यकता के किसी भी ब्राउज़र में खुलती हैं।
SunsetScan स्वचालित रूप से 14 विभिन्न स्रोतों से साक्ष्यों को मिलाकर नेटवर्क डिवाइसों की पहचान करता है। प्रत्येक स्रोत एक विक्रेता, मॉडल, संस्करण, या डिवाइस प्रकार को एक आत्मविश्वास स्कोर के साथ योगदान देता है। फ्यूज़न एल्गोरिदम सहमत स्रोतों का योग (बहु-स्रोत सहमति के लिए बोनस के साथ) करता है और विरोधाभासी साक्ष्यों पर दंड लगाता है।
सुरक्षा जाँच चलाए बिना आपके नेटवर्क पर क्या है यह देखने के लिए:```bash python3 sunsetscan.py --identify --target 192.168.1.0/24
यह बैनर ग्रैबिंग के साथ एक पोर्ट स्कैन चलाता है और एक उपकरण पहचान तालिका प्रिंट करता है। कोई सुरक्षा विश्लेषण नहीं, कोई रिपोर्ट नहीं — बस एक तेज़ इन्वेंट्री।
### साक्ष्य स्रोत
| स्रोत | यह क्या पढ़ता है | विश्वसनीयता |
|--------|--------------|------------|
| MAC OUI | MAC पते से IEEE विक्रेता उपसर्ग | 0.40-0.45 |
| nmap OS | OS फिंगरप्रिंट अनुमान | भिन्न |
| HTTP फिंगरप्रिंट | वेब UI से उपकरण प्रकार, मॉडल, फर्मवेयर | 0.50+ |
| HTTP हेडर | सर्वर, X-Powered-By प्रतिक्रिया हेडर | 0.20-0.50 |
| TLS प्रमाणपत्र | CN, जारीकर्ता, संगठन फ़ील्ड | 0.35 |
| SSH बैनर | SSH डेमॉन पहचान स्ट्रिंग | 0.10-0.70 |
| UPnP | SSDP निर्माता, मॉडल, उपकरण प्रकार | 0.75 |
| SNMP sysDescr | SNMP MIB से सिस्टम विवरण | 0.85 |
| Wappalyzer | CPE स्ट्रिंग और प्रौद्योगिकी श्रेणियां | 0.30-0.45 |
| mDNS/Zeroconf | सेवा प्रकार विज्ञापन | 0.55 |
| JA3S | TLS हैंडशेक फिंगरप्रिंट डेटाबेस | 0.50 |
| FTP बैनर | FTP सर्वर सॉफ्टवेयर पहचान | 0.25-0.35 |
| पोर्ट अनुमान | खुले पोर्ट संयोजन पैटर्न | 0.10-0.70 |
| nmap सेवाएं | सेवा उत्पाद और संस्करण फ़ील्ड | 0.45 |
पहचान परिणाम इसमें दिखाई देते हैं:
- टर्मिनल उपकरण इन्वेंट्री तालिका (स्कैन के दौरान और `--identify` के माध्यम से)
- HTML रिपोर्ट टोपोलॉजी कार्ड और उपकरण इन्वेंट्री अनुभाग
- JSON निर्यात `device_identities` अनुभाग
- इंटरैक्टिव मोड मेनू विकल्प [8] उपकरण इन्वेंट्री
---
## गंभीरता स्तर
| स्तर | रंग | CVSS सीमा | इसका क्या अर्थ है | कब कार्य करें |
|---|---|---|---|---|
| **गंभीर** | लाल | >= 9.0 | डिफ़ॉल्ट क्रेडेंशियल्स, शोषण योग्य CVE, SSL 2.0 | आज |
| **उच्च** | नारंगी | 7.0-8.9 | Telnet/FTP खुला, समाप्त प्रमाणपत्र, TLS 1.0, EOL सॉफ्टवेयर | इस सप्ताह |
| **मध्यम** | पीला | 4.0-6.9 | स्व-हस्ताक्षरित प्रमाणपत्र, UPnP एक्सपोज़र, दुष्ट उपकरण, HSTS की कमी | सुधार का समय निर्धारित करें |
| **निम्न** | नीला | < 4.0 | EOL निकट, X-Frame-Options की कमी, उपकरण IP बदल गया | ट्रैक करें और योजना बनाएं |
| **जानकारी** | ग्रे | - | उपकरण पहचाना गया, प्रमाणपत्र विवरण, DNS जांच पास | कोई कार्रवाई नहीं |
---
## परियोजना संरचना```
sunsetscan/
├── sunsetscan.py # Entry point — CLI, scan pipeline, setup wizard
├── requirements.txt # Python dependencies
├── install.sh # Automated installer for Linux/macOS
├── install.bat # Automated installer for Windows (basic)
├── README.md # This file
│
├── config/
│ └── settings.py # All constants, timeouts, scan profiles, menu options
│
├── core/
│ ├── scanner.py # nmap wrapper (ScanResult, HostInfo, PortInfo)
│ ├── port_scanner.py # Masscan pipeline + PortScanOrchestrator
│ ├── banner_grabber.py # Concurrent raw socket banner grabbing
│ ├── http_fingerprinter.py # HTTP device/firmware fingerprinting
│ ├── nse_scanner.py # Nmap Scripting Engine integration
│ ├── auth_tester.py # Default credential testing (HTTP, device-specific)
│ ├── input_parser.py # Flexible target format parsing
│ ├── network_utils.py # Subnet detection, IP helpers, WSL detection
│ ├── findings.py # Finding dataclass, Severity enum, FindingRegistry
│ ├── risk_scorer.py # Per-device risk scoring (0-100)
│ ├── cache_manager.py # Unified CVE + EOL cache (data/cache/)
│ ├── cve_checker.py # CVE lookup + CVECacheBuilder (OSV.dev)
│ ├── ssl_checker.py # TLS certificate, cipher suite, JA3S fingerprinting
│ ├── ssh_checker.py # SSH version, algorithms, KEXINIT analysis
│ ├── smb_checker.py # SMBv1, EternalBlue, shares, NTLM disclosure
│ ├── ftp_checker.py # Anonymous FTP, STARTTLS
│ ├── snmp_checker.py # SNMP community strings, sysDescr (pysnmp v4+v7)
│ ├── web_checker.py # HTTP headers, admin panels, Wappalyzer
│ ├── dns_checker.py # DNS hijack and rebinding detection
│ ├── upnp_checker.py # SSDP discovery, UPnP risk assessment
│ ├── mdns_checker.py # mDNS/Zeroconf device discovery
│ ├── arp_checker.py # ARP spoofing detection
│ ├── device_identifier.py # 14-source device identification engine
│ ├── identity_fusion.py # Multi-source identity fusion and scoring
│ ├── oui_lookup.py # IEEE OUI MAC vendor resolution
│ ├── device_map.py # Persistent MAC→identity mapping
│ ├── passive_sniffer.py # Background mDNS/SSDP/DHCP packet capture
│ ├── packet_parsers.py # Protocol-specific packet parsing
│ ├── instant_scan.py # ARP sweep + passive capture quick scan
│ ├── hybrid_scanner.py # Passive+active scan orchestrator
│ ├── baseline.py # Rogue device baseline comparison
│ ├── hardware_eol.py # Downloaded hardware lifecycle database lookup
│ ├── scan_history.py # Scan snapshot persistence and diffing
│ ├── module_manager.py # Downloadable data module system
│ └── update_manager.py # Version check and self-update
│
├── eol/
│ ├── checker.py # EOL API queries and version comparison
│ ├── cache.py # Per-product JSON cache
│ └── product_map.py # 150+ software name -> lifecycle cache slug mappings
│
├── ui/
│ ├── menu.py # Old-style numbered menu (no-args mode)
│ ├── display.py # Rich terminal tables, progress bars, banners
│ ├── export.py # JSON and HTML report generation
│ ├── interactive_controller.py # Interactive mode (-i) with multi-level menus
│ └── templates/
│ └── report.html.j2 # Jinja2 HTML report template
│
└── data/
├── default_credentials.json # Factory-default credentials database
├── device_map.json # Persistent MAC→identity map
├── baseline.json # Saved device baseline (--save-baseline)
├── cache/
│ ├── cve_cache.json # CVE data keyed by product:version
│ ├── <product>.json # EOL data keyed by product slug
│ ├── hardware_eol/ # Downloaded hardware lifecycle database
│ └── cache_meta.json # Cache update timestamps
├── history/ # Gzip scan snapshots (auto-saved)
└── modules/ # Downloaded data modules
nmap नहीं मिला```bash
sudo apt install nmap
sudo dnf install nmap
sudo pacman -S nmap
brew install nmap
**अनुमति अस्वीकृत / OS पहचान काम नहीं कर रही**
FULL, STEALTH, और SMB प्रोफाइल्स को उच्च विशेषाधिकारों की आवश्यकता होती है। रूट के बिना, ये प्रोफाइल्स स्वचालित रूप से गैर-रूट फ्लैग्स पर वापस आ जाते हैं (OS पहचान और SYN स्कैन अक्षम, लेकिन पोर्ट/वर्जन स्कैनिंग अभी भी काम करती है)।```bash
# For full capabilities:
sudo python3 sunsetscan.py --target 192.168.1.0/24 --profile FULL
WSL2 गलत नेटवर्क सुझाता है (172.x.x.x)
WSL2 पर, SunsetScan वर्चुअल एडॉप्टर का पता लगाता है और 192.168.1.0/24 पर वापस आ जाता है। यदि आपका होम नेटवर्क कोई भिन्न सबनेट उपयोग करता है, तो इसे --target के साथ निर्दिष्ट करें:```bash
python3 sunsetscan.py --target 192.168.0.0/24
**स्कैन शुरू होने पर कैश चेतावनियाँ**```
WARNING: CVE data is 12 days old — run: python sunsetscan.py --update-cache
पुराने डेटा के साथ स्कैन ठीक काम करते हैं। ताज़ा करने के लिए --update-cache चलाएँ।
मॉड्यूल डाउनलोड करते समय अनुमति अस्वीकृत
यदि मॉड्यूल डाउनलोड Permission denied: .../data/cache/... के साथ विफल होते हैं, तो कैश संभवतः sudo द्वारा बनाया गया था। एक बार स्वामित्व सही करें, फिर सेटअप और मॉड्यूल डाउनलोड अपने सामान्य उपयोगकर्ता के रूप में चलाएँ:```bash
cd ~/sunsetscan
sudo chown -R "$USER:$USER" data/cache
./sunsetscan --download all
**SNMP जाँच काम नहीं कर रही हैं**
SunsetScan pysnmp v4 (synchronous) और v7 (async) दोनों का समर्थन करता है। यदि आप import errors देखते हैं, तो pysnmp को अपडेट करें:```bash
pip install --upgrade pysnmp
SunsetScan एक सुरक्षा ऑडिटिंग उपकरण है जो उन नेटवर्क और उपकरणों पर उपयोग के लिए है जिनके आप स्वामी हैं या जिनके परीक्षण की स्पष्ट लिखित अनुमति है।
ऐसी प्रणालियों के विरुद्ध नेटवर्क स्कैन चलाना जिनके आप स्वामी नहीं हैं या जिनके परीक्षण की अनुमति नहीं है, इरादे की परवाह किए बिना अवैध हो सकता है। लेखक दुरुपयोग के लिए कोई देयता स्वीकार नहीं करते हैं।
SunsetScan पूरी तरह से गैर-विनाशकारी और केवल-पढ़ने योग्य है। यह किसी भी स्कैन किए गए उपकरण पर कमजोरियों का शोषण नहीं करता, पेलोड वितरित नहीं करता, या किसी भी कॉन्फ़िगरेशन को संशोधित नहीं करता। --check-defaults क्रेडेंशियल परीक्षण वैकल्पिक, सीमित, विलंबित, सटीक-मॉडल-उन्मुख है, और लॉकआउट/दर-सीमा संकेतों पर रुक जाता है; यह बल-प्रयोग सुविधा नहीं है।
SunsetScan रिपॉजिटरी और एप्लिकेशन कोड MIT लाइसेंस के तहत लाइसेंस प्राप्त हैं — कॉपीराइट 2024 SunsetScan योगदानकर्ता।
केवल data/hardware_eol/ के अंतर्गत SunsetScan हार्डवेयर EOL डेटाबेस कलाकृतियाँ अलग से लाइसेंस प्राप्त हैं: यह डेटाबेस Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0) के तहत लाइसेंस प्राप्त है। देखें data/hardware_eol/LICENSE.md।
| प्लेटफ़ॉर्म | समर्थन स्तर | नोट्स |
|---|
| Linux (Debian, Ubuntu, Fedora, Arch, आदि) | पूर्ण समर्थन | सर्वोत्तम अनुभव — सभी सुविधाएं मूल रूप से काम करती हैं |
| WSL2 (Windows Subsystem for Linux) | पूर्ण समर्थन | Windows मशीनों पर चलाने का अनुशंसित तरीका |
| macOS | आंशिक | मुख्य स्कैनिंग काम करती है; कुछ सुविधाएं (ARP, निष्क्रिय कैप्चर) को अतिरिक्त सेटअप की आवश्यकता हो सकती है |
| Windows (नेटिव CMD/PowerShell) | समर्थित नहीं | रॉ सॉकेट, os.geteuid(), /proc, ip route, और termios गायब हैं — इसके बजाय WSL2 का उपयोग करें |
| Flag | प्रभाव |
|---|
| (कोई फ़्लैग नहीं) | डिफ़ॉल्ट इंस्टॉल: सिस्टम पैकेज + वेन्व + Python डिप्स + स्व-परीक्षण |
--force | वेन्व को स्क्रैच से डिलीट करें और पुनर्निर्माण करें (Python को अपग्रेड करने के बाद उपयोग करें) |
--symlink | /usr/local/bin/sunsetscan भी इंस्टॉल करें ताकि आप कहीं से भी sunsetscan चला सकें |
--no-system | apt/dnf/etc चरण को छोड़ें (यदि आपके सिस्टम टूल्स पहले से इंस्टॉल हैं तो उपयोग करें) |
--help | सभी विकल्प दिखाएँ |
| चेकर | यह क्या पाता है |
|---|
| SSL/TLS | समाप्त/स्व-हस्ताक्षरित प्रमाणपत्र, कमज़ोर सिफर, TLS 1.0/1.1, SSL 2.0/3.0, छोटी RSA कुंजियाँ |
| SSH | कमज़ोर कुंजी विनिमय, कमज़ोर सिफर/MAC, SSHv1, छोटी होस्ट कुंजियाँ, कच्चा KEXINIT विश्लेषण |
| SMB | SMBv1, EternalBlue (MS17-010), अनाम शेयर, SMB साइनिंग अक्षम, NTLM खुलासा |
| FTP | अनाम लॉगिन, स्पष्ट टेक्स्ट क्रेडेंशियल, STARTTLS का अभाव |
| SNMP | डिफ़ॉल्ट कम्युनिटी स्ट्रिंग (public/private), SNMPv1, sysDescr निष्कर्षण |
| Web | गुम सुरक्षा हेडर, HTTP पर लॉगिन फॉर्म, निर्देशिका सूची, उजागर एडमिन पैनल |
| DNS | DNS अपहरण का पता लगाना (Cloudflare 1.1.1.1 से तुलना करता है) |
| UPnP | SSDP खोज, राउटर पर WAN पोर्ट-मैपिंग एक्सपोज़र |
| mDNS | Zeroconf/Bonjour डिवाइस खोज, पोर्ट स्कैन से बचने वाले होस्ट ढूंढता है |
| ARP | ARP स्पूफिंग का पता लगाना, MAC पता परिवर्तन ट्रैकिंग (रूट आवश्यक) |
| Default credentials | ऑप्ट-इन फ़ैक्टरी-डिफ़ॉल्ट ऑडिट, सटीक डिवाइस/मॉडल मिलान, सीमित प्रयास और विलंब का उपयोग करते हुए |
| Insecure protocols | Telnet, FTP, TFTP, rsh, rlogin, rexec गंभीरता के अनुसार चिह्नित |
| मॉड्यूल | स्रोत | यह क्या जोड़ता है |
|---|
credentials-mini | danielmiessler/SecLists | शीर्ष 50 डिफ़ॉल्ट क्रेडेंशियल (डाउनलोड करने योग्य संदर्भ डेटा; सेटिंग्स में स्पष्ट रूप से सक्षम किए जाने तक सुरक्षित ऑडिट द्वारा उपयोग नहीं किया जाता) |
credentials-full | ihebski/DefaultCreds-cheat-sheet | 2860+ विक्रेता-विशिष्ट क्रेडेंशियल (डाउनलोड करने योग्य संदर्भ डेटा; सेटिंग्स में स्पष्ट रूप से सक्षम किए जाने तक सुरक्षित ऑडिट द्वारा उपयोग नहीं किया जाता) |
wappalyzer-mini | enthec/webappanalyzer | शीर्ष 500 वेब तकनीकें (डिफ़ॉल्ट) |
wappalyzer-full | enthec/webappanalyzer | सभी 7515 वेब तकनीकें |
ja3-signatures | salesforce/ja3 | TLS फ़िंगरप्रिंट डेटाबेस |
snmp-community | danielmiessler/SecLists | विस्तारित SNMP कम्युनिटी स्ट्रिंग |
camera-credentials | many-passwords/many-passwords | IP कैमरा/DVR/NVR डिफ़ॉल्ट (डाउनलोड करने योग्य संदर्भ डेटा; सेटिंग्स में स्पष्ट रूप से सक्षम किए जाने तक सुरक्षित ऑडिट द्वारा उपयोग नहीं किया जाता) |
mac-oui | IEEE Standards Association | MAC प्रीफ़िक्स विक्रेता डेटाबेस (डिफ़ॉल्ट) |
hardware-eol-home | NoCoderRandom/sunsetscan | घरेलू/SOHO हार्डवेयर जीवनचक्र/EOL प्रोफाइल (डिफ़ॉल्ट; डेटाबेस लाइसेंस: CC BY-NC 4.0) |
hardware-eol-office | NoCoderRandom/sunsetscan | घरेलू प्लस छोटे-कार्यालय हार्डवेयर जीवनचक्र/EOL प्रोफाइल |
hardware-eol-enterprise | NoCoderRandom/sunsetscan | घरेलू, कार्यालय और उद्यम/कैंपस/डेटासेंटर हार्डवेयर जीवनचक्र/EOL प्रोफाइल |
hardware-eol-industrial | NoCoderRandom/sunsetscan | घरेलू, कार्यालय और औद्योगिक/OT हार्डवेयर जीवनचक्र/EOL प्रोफाइल |
hardware-eol-service-provider | NoCoderRandom/sunsetscan | घरेलू, कार्यालय, उद्यम और सेवा-प्रदाता हार्डवेयर जीवनचक्र/EOL प्रोफाइल |
hardware-eol-full | NoCoderRandom/sunsetscan | पूर्ण स्मार्ट-पैक हार्डवेयर जीवनचक्र/EOL प्रोफाइल |
hardware-eol | NoCoderRandom/sunsetscan | लीगेसी पूर्ण विभाजित हार्डवेयर जीवनचक्र/EOL संगतता मॉड्यूल |
| sunsetscan --modules # Show module status | ||
| sunsetscan --download all # Download all modules, using the full hardware EOL smart profile | ||
| sunsetscan --download ja3-signatures # Download one data module | ||
| sunsetscan --download hardware-eol-home # Download a smaller hardware EOL profile | ||
| sunsetscan --download hardware-eol-full # Download every hardware EOL smart pack |
| फ़ाइल | सामग्री | रीफ़्रेश अंतराल |
|---|
data/cache/cve_cache.json | CVE डेटा उत्पाद:संस्करण के अनुसार कुंजीबद्ध | हर 7 दिन |
data/cache/*.json | 150+ उत्पादों के लिए EOL तिथियाँ, प्रति उत्पाद संग्रहीत | हर 30 दिन |
data/cache/hardware_eol/sunsetscan_hardware_eol_index.json plus records/*.json | हार्डवेयर जीवनचक्र/EOL डेटाबेस | हर 30 दिन |
data/cache/hardware_eol/manifest.json, indexes/*.json, and records/<pack>/*.json | स्मार्ट-पैक हार्डवेयर जीवनचक्र/EOL प्रोफ़ाइल | हर 30 दिन |
data/cache/cache_meta.json | अंतिम अद्यतन के टाइमस्टैम्प | स्वचालित |
| sunsetscan --cache-status # See current cache state | ||
| sunsetscan --update-cache # Refresh stale caches |
| जानकारी |
| बेसलाइन डिवाइस प्रतिक्रिया नहीं दे रहा है |