
Overlord RAT का पूर्ण स्थिर और मेमोरी विश्लेषण: Go एजेंट आर्किटेक्चर, HTTP/2 + WebSocket C2, रिफ्लेक्टिव DLL इंजेक्शन, ब्राउज़र कीलॉगिंग, और IOC। एक व्यावहारिक मैलवेयर RE वॉकथ्रू।
Overlord RAT (PID 7488) के Process Hacker मेमोरी स्ट्रिंग स्कैन से Windows API कॉल्स और रनटाइम पर रिज़ॉल्व किए गए आंतरिक स्ट्रिंग्स का एक बड़ा सेट सामने आता है। इनमें से http2dialCall एक HTTP/2-आधारित कॉलबैक रूटीन के रूप में उभरता है जिसका उपयोग C2 संचार स्थापित करने के लिए किया जाता है। crypto, input-capture, और graphics-संबंधित APIs की उपस्थिति keylogging, screen capture, और एन्क्रिप्टेड C2 क्षमताओं वाले एक पूर्ण-सुविधा वाले RAT को दर्शाती है।
http2dialCall – HTTP/2 कॉलबैक फ़ंक्शन; HTTP/2 (पोर्ट 443) पर C2 चैनल खोलने के लिए उपयोग किया जाता है, जो वैध HTTPS ट्रैफ़िक के साथ घुल-मिल जाता है। http2clientConnPool – HTTP/2 C2 सत्रों के लिए कनेक्शन पूल; C2 सर्वर के साथ लगातार, मल्टीप्लेक्स्ड संचार को सक्षम बनाता है। maxIdleConnsPerHost / GetEvictionPriority / SetEvictionPriority – कनेक्शन लाइफसाइकल प्रबंधन, टाइमआउट से बचते हुए निष्क्रिय C2 चैनलों को जीवित रखता है। CreateCryptoSession /GetEncryptionBltKey – DirectX/GPU-आधारित क्रिप्टो सत्र निर्माण; एन्क्रिप्टेड स्क्रीन कैप्चर या GPU-त्वरित संचालन के लिए उपयोग किया जाता है। capture._Ctype_int / capture.monCapture / capture.scaledPart / capture.mfActivate – स्क्रीन कैप्चर और डेस्कटॉप निगरानी रूटीन। GetInputCurrentType / GetImmediateContext – इनपुट और रेंडरिंग कॉन्टेक्स्ट प्राप्ति; keylogging और स्क्रीन स्क्रैपिंग का समर्थन करता है। CreateTrueColorCondition – स्क्रीन कैप्चर संचालन के लिए डिस्प्ले कंडीशन सेटअप।
HTTP/2 C2: http2dialCall और http2clientConnPool का उपयोग दर्शाता है कि RAT HTTP/2 पर संचार करता है, जिसे सादे HTTP की तुलना में पहचानना कठिन है और यह आधुनिक वेब ट्रैफ़िक के साथ घुल-मिल जाता है। एन्क्रिप्टेड एक्सफ़िल्ट्रेशन: CreateCryptoSession और GetEncryptionBltKey एन्क्रिप्टेड डेटा ट्रांसफ़र को दर्शाते हैं, संभवतः चुराई गई फ़ाइलों या स्क्रीनशॉट के लिए। पूर्ण RAT क्षमता: स्क्रीन कैप्चर (capture.) + इनपुट कैप्चर (GetInputCurrentType) = keylogging और रिमोट निगरानी। Living-off-the-Land शैली: API स्ट्रिंग्स का रनटाइम रिज़ॉल्यूशन (अस्पष्ट भंडारण) स्टैटिक स्ट्रिंग विश्लेषण को विफल करने की एक सामान्य चोरी तकनीक है। स्थायित्व और चोरी: कनेक्शन पूल प्रबंधन (maxIdleConnsPerHost, GetEvictionPriority) पहचान से बचते हुए C2 चैनलों को स्थिर रखता है।

उसी Overlord RAT प्रक्रिया का दूसरा स्ट्रिंग स्कैन, इनपुट कैप्चर, WebSocket C2, और मेमोरी/रिफ्लेक्शन मैनिपुलेशन से संबंधित स्ट्रिंग्स का एक अलग सेट प्रकट करता है। पहले सेट के विपरीत जो HTTP/2 और स्क्रीन कैप्चर पर केंद्रित था, यह सेट keylogging, लगातार WebSocket संचार, और इन-मेमोरी निष्पादन तकनीकों की ओर इशारा करता है।
capture.rawWin – रॉ विंडो कैप्चर रूटीन; सक्रिय विंडो के स्क्रीनशॉट के लिए उपयोग किया जाता है। captureKeyStrokes – प्रत्यक्ष keylogging फ़ंक्शन; शिकार मशीन पर टाइप किए गए प्रत्येक कीस्ट्रोक को कैप्चर करता है। map[uintptr]bool – रनटाइम मैप संरचना; संभवतः हुक किए गए APIs या कैप्चर किए गए हैंडल को ट्रैक करने के लिए उपयोग किया जाता है। websocket.noCopy / websocket.header / websocket.opcode – WebSocket कार्यान्वयन स्ट्रिंग्स; दर्शाते हैं कि RAT WebSocket को द्वितीयक C2 चैनल के रूप में उपयोग करता है (HTTP/2 के अतिरिक्त)। writeFramePayload/ readCloseFrameErr / setCloseErrLocked – WebSocket फ़्रेम हैंडलिंग; सक्रिय WebSocket-आधारित C2 संचार की पुष्टि करता है। reflectlite.Type / abi.UncommonType/ abi.PCLnTabMagic – Go रनटाइम रिफ्लेक्शन/ABI स्ट्रिंग्स; दर्शाते हैं कि पेलोड रिफ्लेक्शन का उपयोग करने वाला Go-आधारित बाइनरी है। msgpack.isZeroer / msgpack.field – MessagePack सीरियलाइज़ेशन; C2 संदेशों को कुशलतापूर्वक पैक/अनपैक करने के लिए उपयोग किया जाता है। sync.poolDequeue / poolLocalInternal – Go sync पूल प्रबंधन; उच्च-प्रदर्शन मेमोरी पुन:उपयोग के लिए उपयोग किया जाता है।
दोहरे C2 चैनल: HTTP/2 (http2dialCall) + WebSocket (websocket.) = अनावश्यक C2 जिसमें एक चैनल अवरुद्ध होने पर स्वचालित फ़ेलओवर होता है। Keylogging क्षमता: captureKeyStrokes पुष्टि करता है कि RAT सक्रिय कीस्ट्रोक कैप्चर करता है — क्रेडेंशियल, चैट, और पासवर्ड खतरे में हैं। Go-आधारित पेलोड: reflectlite, abi.PCLnTabMagic, और msgpack स्ट्रिंग्स प्रकट करते हैं कि यह एक Go-कंपाइल्ड RAT है, जिसे रिवर्स करना कठिन है और अक्सर AV सिग्नेचर को बायपास करता है। MessagePack सीरियलाइज़ेशन: msgpack. कॉम्पैक्ट बाइनरी C2 मैसेजिंग को दर्शाता है, जो नेटवर्क फ़ुटप्रिंट को कम करता है और DPI से बचता है। इन-मेमोरी रिफ्लेक्शन: *reflectlite.Type और *abi.UncommonType का उपयोग डायनामिक फ़ंक्शन रिज़ॉल्यूशन के लिए किया जाता है — स्टैटिक इम्पोर्ट से बचने की एक सामान्य चोरी तकनीक। स्टील्थी WebSocket C2: पोर्ट 443 पर WebSocket ट्रैफ़िक वैध वेब ऐप्स के साथ घुल-मिल जाता है, जिससे नेटवर्क मॉनिटरिंग द्वारा पहचान कठिन हो जाती है।

डंप की गई बाइनरी connectstart.bin (Overlord RAT प्रक्रिया की Process Hacker मेमोरी स्ट्रिंग्स से निकाली गई) को स्टैटिक विश्लेषण के लिए Binary Ninja में लोड किया गया। स्ट्रिंग व्यू पेलोड में एम्बेडेड एक पूरी तरह से संरचित keylogger मॉड्यूल प्रकट करता है, साथ ही एक स्पष्ट agent कमांड नेमस्पेस (overlord-client/cmd/agent/keylogger.*) भी। यह पुष्टि करता है कि Overlord RAT एक मॉड्यूलर agent आर्किटेक्चर के साथ आता है जहाँ keylogger एक समर्पित सबसिस्टम है जिसे C2 कमांड्स के माध्यम से नियंत्रित किया जाता है।
मॉड्यूल पथ: overlord-client/cmd/agent/keylogger.* – keylogger agent के लिए स्पष्ट Go पैकेज नेमस्पेस। (Keylogger).Start/ .Stop – C2 कमांड पर keylogger को शुरू और बंद करता है। (Keylogger).IsRunning – जाँचता है कि keylogger पहले से सक्रिय है या नहीं। (Keylogger).captureLoop – मुख्य लूप जो लगातार कीस्ट्रोक कैप्चर करता है। (*Keylogger).logKey – रॉ कीस्ट्रोक कैप्चर फ़ंक्शन। (Keylogger).getWindowTitle – सक्रिय विंडो शीर्षक प्राप्त करता है (प्रत्येक कीस्ट्रोक के लिए संदर्भ)। (Keylogger).flushBuffer / .flushLoop / .FlushNow – कैप्चर किए गए कीस्ट्रोक को डिस्क या C2 पर आवधिक रूप से फ्लश करना। (Keylogger).ListFiles / .ReadFile / .DeleteFile / .ClearAll (Keylogger).rotateFile / .cleanupOldLogs – पहचान से बचने के लिए लॉग रोटेशन और सफ़ाई।
मॉड्यूलर Agent आर्किटेक्चर: overlord-client/cmd/agent/ पथ एक साफ़, मॉड्यूलर Go agent दिखाता है — प्रत्येक क्षमता (keylogger, screen capture, shell, आदि) एक अलग कमांड मॉड्यूल है। सक्रिय Keylogging: captureLoop, logKey, और getWindowTitle विंडो संदर्भ (उपयोगकर्ता नाम, पासवर्ड, चैट) के साथ रीयल-टाइम कीस्ट्रोक कैप्चर की पुष्टि करते हैं। एंटी-फ़ोरेंसिक्स: rotateFile, cleanupOldLogs, और DeleteFile लॉग संचय को रोकते हैं और फ़ोरेंसिक निशान कम करते हैं। ROT13 के माध्यम से चोरी: rot13 स्ट्रिंग दर्शाती है कि कैप्चर किया गया डेटा स्ट्रिंग-आधारित पहचान को विफल करने के लिए भंडारण/एक्सफ़िल्ट्रेशन से पहले अस्पष्ट किया जाता है। अनुमति गेटिंग: NeedsPermissionGate / RequestPermission सुझाव देते हैं कि RAT keylogger सक्रिय करने से पहले पर्यावरण स्थितियों (UAC, admin अधिकार) को सत्यापित करता है। कमांड-चालित व्यवहार: Start/Stop/IsRunning सिद्ध करते हैं कि keylogger C2 द्वारा दूर से टॉगल किया जाता है — ऑटो-रन नहीं, जो पहचान फ़ुटप्रिंट को कम करता है।
