
मैलवेयर द्वारा उपयोग किए जाने वाले प्रोसेस इंजेक्शन और मेमोरी मैनिपुलेशन का पता लगाता है। RWX क्षेत्रों, शेलकोड पैटर्न, API हुक, थ्रेड हाइजैकिंग और प्रोसेस हॉलोइंग का पता लगाता है। गति के लिए Rust में निर्मित। CLI और TUI इंटरफ़ेस शामिल हैं।
Ghost एक प्रोसेस इंजेक्शन डिटेक्शन टूल है जो Rust में लिखा गया है। यह चल रही प्रोसेस पर नज़र रखता है और कोड इंजेक्शन, मेमोरी मैनिपुलेशन, और अन्य ऐसी तरकीबों को पकड़ने की कोशिश करता है जिनका उपयोग मैलवेयर छिपने के लिए करता है।
मुख्य विचार सरल है: प्रोसेस को स्कैन करें और अजीब मेमोरी पैटर्न, हुक किए गए फ़ंक्शन, शेलकोड, और अन्य संकेतों की तलाश करें जो बताते हैं कि किसी चीज़ के साथ छेड़छाड़ की गई है। यह Windows, Linux, और macOS पर काम करता है (हालाँकि अभी Windows सपोर्ट सबसे अधिक पूर्ण है)।
यह कुछ चीज़ों का पता लगा सकता है:
यह पहचाने गए व्यवहारों को MITRE ATT&CK फ्रेमवर्क से भी मैप करता है, जो खतरों का दस्तावेज़ीकरण करने या रिपोर्ट लिखने में सहायक है।



आपके पास Rust इंस्टॉल होना चाहिए (1.70 या नया)। फिर:
cargo build --release
Windows पर, आपको MSVC बिल्ड टूल्स की भी आवश्यकता होगी। Linux को बुनियादी डेव टूल्स (gcc, आदि) चाहिए। macOS को Xcode कमांड लाइन टूल्स चाहिए।
दो इंटरफ़ेस हैं: एक कमांड-लाइन टूल और एक इंटरैक्टिव टर्मिनल UI।
CLI:
# Scan all processes
cargo run --bin ghost-cli --release
# Target one process
cargo run --bin ghost-cli --release -- --pid 1234
# Output results as JSON
cargo run --bin ghost-cli --release -- --format json
# Use a config file
cargo run --bin ghost-cli --release -- --config ghost.toml
# Continuous monitoring mode
cargo run --bin ghost-cli --release -- --watch
# Watch with custom interval (10 seconds)
cargo run --bin ghost-cli --release -- --watch --interval 10
TUI:
cargo run --bin ghost-tui --release
TUI आपको लाइव आँकड़ों और डिटेक्शन इतिहास वाला एक डैशबोर्ड देता है, और आप कीबोर्ड शॉर्टकट से नेविगेट कर सकते हैं (दृश्य बदलने के लिए Tab, बाहर निकलने के लिए Q)।
Ghost Bash, Zsh, Fish, PowerShell, और Elvish के लिए टैब कम्प्लीशन सपोर्ट करता है।
# Generate completions for your shell
ghost completions bash > /etc/bash_completion.d/ghost
ghost completions zsh > ~/.zfunc/_ghost
ghost completions fish > ~/.config/fish/completions/ghost.fish
# Or use the install script
./completions/install.sh
विस्तृत इंस्टॉलेशन निर्देशों के लिए completions/README.md देखें।
Ghost वैकल्पिक सुविधाओं का समर्थन करता है जिन्हें बिल्ड के दौरान सक्षम किया जा सकता है:
# YARA rule scanning (requires libyara)
cargo build --features yara-scanning
# Neural ML integration (requires Python and trained models)
cargo build --features neural-ml
# eBPF detection (Linux only, currently stub implementation)
cargo build --features ebpf-detection
ध्यान दें: ML सुविधाओं के कार्य करने के लिए प्रशिक्षित मॉडल आवश्यक हैं। प्रशिक्षण निर्देशों के लिए ghost_ml/README.md देखें।
आप TOML कॉन्फ़िग फ़ाइल के साथ व्यवहार को समायोजित कर सकते हैं। शुरुआती बिंदु के लिए examples/ghost.toml देखें। आप विशिष्ट डिटेक्शन विधियों को सक्षम/अक्षम कर सकते हैं, आत्मविश्वास सीमा (confidence threshold) निर्धारित कर सकते हैं, सिस्टम प्रोसेस को छोड़ सकते हैं, और नियंत्रित कर सकते हैं कि यह कितनी बार स्कैन करता है।
उदाहरण कॉन्फ़िग स्निपेट:
shellcode_detection = true
hollowing_detection = true
hook_detection = true
confidence_threshold = 0.3
skip_system_processes = true
scan_interval_ms = 2000
डिफ़ॉल्ट रूप से, Ghost आउटपुट को प्रति डिटेक्शन 10 संकेतकों तक सीमित करता है और समान निष्कर्षों को डीडुप्लिकेट करता है। बड़े स्कैन के लिए, आप आउटपुट को और कम कर सकते हैं:
कमांड-लाइन विकल्प:
# Summary mode - outputs statistics instead of full details
ghost-cli --summary
# Limit indicators per detection
ghost-cli --max-indicators 5
# Only report malicious detections
ghost-cli --min-threat-level malicious
# Combine for minimal output
ghost-cli --summary --quiet
कॉन्फ़िगरेशन फ़ाइल:
[output]
verbosity = "minimal" # minimal, normal, or verbose
max_indicators_per_detection = 5
min_threat_level = "suspicious"
deduplicate_indicators = true
summary_mode = true
यह कई प्रोसेस को स्कैन करते समय या निरंतर मॉनिटरिंग चलाते समय उपयोगी है, जहाँ अन्यथा आउटपुट फ़ाइलें बहुत बड़ी हो जाती हैं।
वॉच मोड आपको स्कैन को मैन्युअल रूप से चलाए बिना अपने सिस्टम की लगातार निगरानी करने देता है। यह इंजेक्शन के प्रयासों को घटित होते समय पकड़ने के लिए उपयोगी है।
# Start watching (default: 5 second interval)
ghost-cli --watch
# Custom interval
ghost-cli --watch --interval 10
# Watch specific process
ghost-cli --watch --pid 1234
# Quiet mode - only alerts on new detections
ghost-cli --watch --quiet
वॉच मोड में चलने पर, Ghost:
उदाहरण आउटपुट:
[14:32:15] Scan #1: clean (142 processes, 89ms)
[14:32:20] Scan #2: 2 NEW detections! (2 total, 142 processes, 91ms)
[MALICIOUS] suspicious.exe (PID: 4521) - 87% confidence
[SUSPICIOUS] helper.dll (PID: 2201) - 54% confidence
[14:32:25] Scan #3: 2 known threats (142 processes, 88ms)
बेसलाइन मोड आपके सिस्टम की वर्तमान स्थिति का स्नैपशॉट कैप्चर करता है। बाद के स्कैन परिवर्तनों का पता लगाने के लिए इस बेसलाइन से तुलना कर सकते हैं - ज्ञात समस्याओं से गुज़रे बिना नए खतरों को खोजने के लिए उपयोगी।
# Save current state as baseline
ghost-cli --save-baseline baseline.json
# Later: compare against baseline
ghost-cli --baseline baseline.json
# Combine with watch mode
ghost-cli --watch --baseline baseline.json
बेसलाइन से तुलना करते समय, Ghost रिपोर्ट करता है:
उदाहरण आउटपुट:
3 changes from baseline:
New threats (1):
injector.exe (PID: 8821) - Malicious
Escalated threats (1):
helper.dll (PID: 2201): Suspicious -> Malicious
New indicators (1):
svchost.exe (PID: 1024):
- RWX memory region detected
- Shellcode pattern match
परिवर्तनों का पता चलने पर एग्ज़िट कोड 1 है, साफ़ होने पर 0।
Ghost खतरों का पता चलने पर Slack, Discord, या किसी भी HTTP एंडपॉइंट पर रीयल-टाइम अलर्ट भेज सकता है। SOC एकीकरण या अपने फ़ोन पर सूचना पाने के लिए एकदम सही।
# Slack webhook
ghost-cli --watch --webhook "https://hooks.slack.com/services/XXX/YYY/ZZZ"
# Discord webhook
ghost-cli --watch --webhook "https://discord.com/api/webhooks/123/abc"
# Generic HTTP POST (JSON payload)
ghost-cli --watch --webhook "https://your-siem.example.com/api/alerts"
# Override auto-detected type
ghost-cli --webhook "https://custom.url" --webhook-type slack
Ghost URL से वेबहुक प्रकार का स्वतः पता लगाता है:
hooks.slack.com → अटैचमेंट के साथ Slack प्रारूपdiscord.com/api/webhooks → एम्बेड के साथ Discord प्रारूपSlack अलर्ट में खतरे के स्तर, आत्मविश्वास स्कोर, और शीर्ष संकेतकों के साथ रंग-कोडित अटैचमेंट शामिल होते हैं:
🚨 Ghost detected suspicious activity on *prod-server-01*
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🚨 suspicious.exe (PID: 4521)
• RWX memory region detected at 0x7ff...
• Shellcode pattern: NOP sled
Threat Level: Malicious | Confidence: 87%
Discord अलर्ट समान जानकारी के साथ समृद्ध एम्बेड का उपयोग करते हैं, एक साफ़ प्रारूप में।
जेनेरिक वेबहुक एक JSON पेलोड भेजते हैं:
{
"event": "ghost.detection",
"timestamp": "2024-12-06T14:32:15Z",
"hostname": "prod-server-01",
"process_name": "suspicious.exe",
"pid": 4521,
"threat_level": "Malicious",
"confidence": 0.87,
"indicators": ["RWX memory region detected", "..."]
}
जब Ghost कुछ संदिग्ध पाता है, तो वह एक खतरे का स्तर निर्धारित करता है: Clean, Low, Medium, High, या Critical। यह इस बात पर आधारित है कि उसे कितने संकेतक मिले और वे कितने गंभीर हैं।
उच्च आत्मविश्वास का हमेशा यह मतलब नहीं होता कि मैलवेयर है - कुछ वैध सॉफ़्टवेयर भी मेमोरी के साथ अजीब चीज़ें करते हैं। अपने विवेक का उपयोग करें और यदि आवश्यक हो तो आगे जाँच करें।
Windows: पूर्ण रूप से कार्यात्मक। प्रोसेस एन्यूमरेशन, मेमोरी रीडिंग, हुक डिटेक्शन, प्रोसेस हॉलोइंग डिटेक्शन, PE वैलिडेशन, और थ्रेड विश्लेषण सभी काम करते हैं।
Linux: कार्यात्मक मुख्य सुविधाएँ। procfs (/proc) के माध्यम से प्रोसेस एन्यूमरेशन, मेमोरी रीडिंग, LD_PRELOAD डिटेक्शन, और ptrace-आधारित इंजेक्शन डिटेक्शन काम करते हैं। eBPF सपोर्ट के लिए ebpf-detection फ़ीचर फ़्लैग आवश्यक है और वर्तमान में यह एक स्टब इम्प्लीमेंटेशन है।
macOS: आंशिक सपोर्ट। प्रोसेस एन्यूमरेशन, मेमोरी रीजन एन्यूमरेशन, मेमोरी रीडिंग, और थ्रेड एन्यूमरेशन mach VM APIs का उपयोग करके काम करते हैं। हुक डिटेक्शन में DYLD_INSERT_LIBRARIES डिटेक्शन और इनलाइन हुक डिटेक्शन फ्रेमवर्क शामिल है।
इसे निरंतर मॉनिटरिंग के लिए पर्याप्त तेज़ बनाया गया है। एक पूर्ण सिस्टम स्कैन (200 प्रोसेस) आमतौर पर 5 सेकंड से कम लेता है। प्रति प्रोसेस मेमोरी एन्यूमरेशन लगभग 50-100ms है। डिटेक्शन इंजन स्वयं प्रति विश्लेषण लगभग 5-10ms जोड़ता है।
टूल में YARA नियम एकीकरण शामिल है। नियम rules/ निर्देशिका में संग्रहीत हैं और Metasploit, Cobalt Strike, जेनेरिक शेलकोड पैटर्न, और एवेज़न तकनीकों जैसे सामान्य मैलवेयर परिवारों को कवर करते हैं। आप अपने स्वयं के नियम जोड़ सकते हैं - बस उस फ़ोल्डर में .yar फ़ाइलें डालें।
यह एक यूज़रस्पेस टूल है जिसकी निम्नलिखित सीमाएँ हैं:
docs/ फ़ोल्डर में अधिक विवरण है:
DETECTION_METHODS.md - बताता है कि प्रत्येक डिटेक्शन तकनीक कैसे काम करती हैMITRE_ATTACK_COVERAGE.md - सूचीबद्ध करता है कि कौन सी ATT&CK तकनीकें कवर की गई हैंPERFORMANCE_GUIDE.md - प्रदर्शन ट्यूनिंग के लिए सुझावयदि आप योगदान देना चाहते हैं तो CONTRIBUTING.md भी देखें, और सुरक्षा नीति के लिए SECURITY.md देखें।
MIT. LICENSE फ़ाइल देखें।
यह टूल सुरक्षा अनुसंधान, अपने स्वयं के सिस्टम का परीक्षण, और वास्तविक खतरों को पकड़ने के लिए है। इसे उन सिस्टम पर उपयोग न करें जिनके मालिक आप नहीं हैं या जिनके परीक्षण की अनुमति आपके पास नहीं है। ज़िम्मेदार बनें।
साथ ही, यदि आप किसी वास्तविक घटना की जाँच कर रहे हैं, तो याद रखें कि मैलवेयर यह पता लगा सकता है कि उसका विश्लेषण किया जा रहा है और अलग व्यवहार कर सकता है या बंद हो सकता है। Ghost चुपके से काम करने की कोशिश करता है लेकिन कोई गारंटी नहीं है कि उन्नत मैलवेयर इसे नोटिस नहीं करेगा।