HackCert
Advanced 10 min read May 25, 2026

COM Hijacking: উইন্ডোজের ইন্টারনাল প্রসেস ব্যবহার করে সিস্টেম হ্যাকিং!

COM Hijacking-এর কৌশল, Windows-এ এই attack কীভাবে কাজ করে, এবং persistence ও privilege escalation-এ এর ব্যবহার।

Abdullah Al Mamun
Offensive Security Engineer
share
COM Hijacking: উইন্ডোজের ইন্টারনাল প্রসেস ব্যবহার করে সিস্টেম হ্যাকিং!
Overview

Windows operating system-এর গভীরে এমন কিছু legacy mechanism আছে যেগুলো প্রতিদিন হাজার হাজার application ব্যবহার করে, কিন্তু খুব কম attacker সেগুলোকে অস্ত্রে পরিণত করার কৌশল জানেন। তেমনই একটি হলো Component Object Model বা COM hijacking। Windows-এর internal architecture-এর এই subtle abuse-এর মাধ্যমে attacker stealthy persistence, privilege escalation, এমনকি defense evasion পর্যন্ত করতে পারে। APT29 (Cozy Bear), APT41, এবং ফেমাস malware family যেমন ZeroAccess, Trickbot সবাই কখনো না কখনো COM hijacking-এর কৌশল ব্যবহার করেছে। আজকের আলোচনায় আমরা গভীরে গিয়ে দেখবো এই advanced technique কীভাবে কাজ করে এবং defender হিসেবে কীভাবে এটি detect করা যায়।

COM ও Windows Architecture

Component Object Model বা COM হলো Microsoft-এর একটি binary interface standard যা ১৯৯৩ সালে introduced হয়েছিল। এর মূল উদ্দেশ্য বিভিন্ন software component-এর মধ্যে interoperability প্রদান করা—একটি component-এর code অন্যটি call করতে পারে, এমনকি ভিন্ন process বা ভিন্ন language-এ লেখা হলেও।

Windows-এ COM ব্যাপকভাবে ব্যবহৃত হয়—Office automation, Internet Explorer, Windows Explorer, Task Scheduler, BITS, WMI—এদের সবই COM-based। প্রতিটি COM object-এর একটি unique identifier থাকে যাকে বলে CLSID (Class ID), যা একটি 128-bit GUID।

যখন একটি application কোনো COM object তৈরি করতে চায়, এটি CoCreateInstance() API call করে CLSID দিয়ে। Windows তখন registry-তে খোঁজে এই CLSID-এর সাথে কোন DLL/EXE associated, এবং সেটি load করে object তৈরি করে। ঠিক এই lookup process-ই COM hijacking-এর সুযোগ তৈরি করে।

COM object-এর registry path সাধারণত:

  • HKLM\SOFTWARE\Classes\CLSID\{GUID} (system-wide)
  • HKCU\SOFTWARE\Classes\CLSID\{GUID} (user-specific)

এখানে subkey-গুলোর মধ্যে আছে InprocServer32 (DLL load করার জন্য), LocalServer32 (EXE-এর জন্য), InprocHandler32 ইত্যাদি।

COM Hijacking-এর মূল ধারণা

COM Hijacking-এর মূল ট্রিক একটি গুরুত্বপূর্ণ Windows behavior-এ লুকানো: registry hive lookup-এর অর্ডারে HKCU (HKEY_CURRENT_USER) HKLM (HKEY_LOCAL_MACHINE)-এর আগে check করা হয়।

অর্থাৎ, যদি একটি COM object HKLM-এ registered থাকে এবং একই CLSID HKCU-তেও entry করা হয়, তাহলে Windows HKCU-এর entry-কে priority দেবে। HKCU-তে entry লিখতে administrator privilege লাগে না—সাধারণ user-ই করতে পারে।

Attacker-এর কৌশল:

  1. একটি widely-used COM object-এর CLSID চিহ্নিত করুন যা কোনো trusted process (যেমন Explorer.exe, Outlook.exe) load করে।
  2. HKCU-তে সেই CLSID-এর জন্য একটি entry তৈরি করুন।
  3. InprocServer32 value-তে আপনার malicious DLL-এর path দিন।
  4. যখন trusted process পরবর্তীতে সেই COM object load করবে, আপনার DLL execute হবে।

এই কৌশলের সৌন্দর্য হলো:

  • Privilege escalation লাগে না (HKCU writable)
  • File system-এ minimal change (শুধু DLL drop করতে হয়)
  • Persistence achieve হয় কারণ user login করলেই trigger হবে
  • Trusted process-এর context-এ execute হয় (defense evasion)

জনপ্রিয় Hijacking Targets

কিছু COM CLSID আছে যেগুলো ঐতিহাসিকভাবে hijacking-এর target হয়েছে।

MruPidlList ({42aedc87-2188-41fd-b9a3-0c966feabec1}): Explorer.exe প্রায়ই এটি load করে recent items track করতে।

Shell.Application ({13709620-c279-11ce-a49e-444553540000}): Various Shell extension-এর জন্য ব্যবহৃত।

WBEM Scripting ({4590f811-1d3a-11d0-891f-00aa004b2e24}): WMI-related operation।

CTLConfigBuffer ({0000031A-0000-0000-C000-000000000046}): COM+ related।

LocalServer Type Lib: Office application-এর জন্য।

Outlook Custom Form CLSIDs: Outlook থেকে persistence।

Task Scheduler Component ({0F87369F-A4E5-4CFC-BD3E-73E6154572DD}): Task Scheduler operations।

প্রতিটি Windows version এবং software-এ load হওয়া CLSID আলাদা হতে পারে। Attacker সাধারণত target system-এ Process Monitor (ProcMon) চালিয়ে দেখে কোন CLSID query করে অথচ HKLM-এ exist করে না—এগুলোই সবচেয়ে safe target।

Attack Workflow এর Step-by-Step

একটি practical COM hijacking attack কীভাবে কাজ করে দেখা যাক।

Step 1 - Reconnaissance: ProcMon ব্যবহার করে target process-এর registry activity capture করুন। Filter সেট করুন:

  • Operation: RegOpenKey
  • Result: NAME NOT FOUND
  • Path contains: CLSID

এতে আপনি দেখতে পাবেন কোন CLSID query হচ্ছে যা actually exist করে না বা partial config আছে।

Step 2 - Malicious DLL Creation: একটি DLL তৈরি করুন যা DllMain-এ আপনার payload execute করে। C++ বা C# দিয়ে লেখা যায়।

BOOL APIENTRY DllMain(HMODULE hModule, DWORD reason, LPVOID lpReserved) {
    if (reason == DLL_PROCESS_ATTACH) {
        // Payload execution
        WinExec("cmd.exe /c whoami > C:\\temp\\out.txt", SW_HIDE);
    }
    return TRUE;
}

DLL-এর export-এ COM-required functions থাকতে হবে: DllGetClassObject, DllCanUnloadNow, DllRegisterServer, DllUnregisterServer

Step 3 - Registry Modification: PowerShell বা reg.exe দিয়ে registry entry তৈরি করুন।

$clsid = "{42aedc87-2188-41fd-b9a3-0c966feabec1}"
New-Item -Path "HKCU:\Software\Classes\CLSID\$clsid\InprocServer32" -Force
Set-ItemProperty -Path "HKCU:\Software\Classes\CLSID\$clsid\InprocServer32" -Name "(Default)" -Value "C:\Users\Public\evil.dll"
Set-ItemProperty -Path "HKCU:\Software\Classes\CLSID\$clsid\InprocServer32" -Name "ThreadingModel" -Value "Apartment"

Step 4 - Trigger: User-কে কিছু করতে হবে না। পরবর্তী time যখন Explorer বা target process সেই CLSID load করবে, payload execute হবে।

Step 5 - Persistence: User log out/login করলেও hijack বজায় থাকে কারণ entry HKCU-তে।

Privilege Escalation Variant

COM Hijacking শুধু persistence নয়, privilege escalation-এও ব্যবহার হয়। কিছু COM object high-integrity বা system process load করে।

UAC Bypass via COM: কিছু COM object auto-elevate করে UAC prompt ছাড়াই। এদের hijack করলে medium-integrity থেকে high-integrity-তে jump করা যায়। CMSTP, ColorDataProxy, EditionUpgradeManager—এসব auto-elevating COM object-এর উদাহরণ।

Scheduled Task Hijacking: SYSTEM-as-SCHEDULE task থেকে COM object load হলে SYSTEM privilege পাওয়া যায়।

Service-related COM: কিছু service COM object load করে—এগুলো hijack করে service context (often LOCAL SERVICE বা NETWORK SERVICE) পাওয়া যায়।

বিখ্যাত Malware-এ COM Hijacking

বিভিন্ন APT campaign-এ COM hijacking-এর ব্যবহার দেখা গেছে।

ZeroAccess Rootkit: ZeroAccess-এর later variant Windows Search সেবার COM object hijack করত persistence-এর জন্য।

APT29 (Cozy Bear)/CozyDuke: SolarWinds হ্যাকের সাথে যুক্ত এই গ্রুপ MiniDuke এবং HammerDuke ম্যালওয়্যারে COM hijacking ব্যবহার করেছে।

Trickbot: Banking trojan Trickbot বিভিন্ন COM hijack ব্যবহার করে modular persistence achieve করত।

Empire ও Cobalt Strike: Red team framework-গুলোতে COM hijacking built-in module হিসেবে আছে।

APT41: Chinese state-sponsored গ্রুপ এই গ্রুপ একাধিক operation-এ COM hijacking ব্যবহার করেছে SaaS application target করতে।

MITRE ATT&CK Mapping

COM Hijacking MITRE ATT&CK framework-এ চিহ্নিত:

  • T1546.015: Event Triggered Execution: Component Object Model Hijacking
  • T1574.012: Hijack Execution Flow: COR_PROFILER (related)
  • T1548.002: Abuse Elevation Control Mechanism: Bypass User Account Control (যখন UAC bypass-এ ব্যবহৃত)

Detection Techniques

COM Hijacking detect করা challenging কারণ legitimate use case-ও আছে।

Registry Monitoring: Sysmon Event ID 12, 13 (Registry events) দিয়ে HKCU\Software\Classes\CLSID-তে modification detect করুন। বিশেষত InprocServer32 entry-তে নজর রাখুন।

Image Load Anomaly: Sysmon Event ID 7 দিয়ে দেখুন কোন process unusual DLL load করছে। Trusted process (Explorer.exe) যদি Temp directory থেকে DLL load করে, সেটা suspicious।

Frequency Analysis: Newly created CLSID HKCU entry track করুন। Normal user activity-তে এসব entry rare।

Baseline Deviation: Known good baseline তৈরি করুন এবং নতুন CLSID entry-তে alert করুন।

EDR Detection: Modern EDR যেমন Microsoft Defender for Endpoint, CrowdStrike Falcon, SentinelOne COM hijacking detection rule আছে।

ETW (Event Tracing for Windows): Microsoft-Windows-COM ETW provider থেকে COM activation monitor করা যায়।

Threat Hunting Query (KQL Example for Defender):

DeviceRegistryEvents
| where RegistryKey contains "Software\\Classes\\CLSID"
| where RegistryKey contains "InprocServer32"
| where RegistryValueData endswith ".dll"
| where InitiatingProcessFolderPath !contains "Windows\\System32"
| project Timestamp, DeviceName, RegistryKey, RegistryValueData, InitiatingProcessFileName

প্রতিরোধ ও প্রতিকার

COM Hijacking-এর বিরুদ্ধে multi-layer defense প্রয়োজন।

Application Whitelisting: AppLocker, Windows Defender Application Control (WDAC) দিয়ে শুধু allowed DLL load-এর অনুমতি দিন। Unsigned বা untrusted location থেকে DLL execution ব্লক করুন।

Code Signing Verification: PowerShell-এর Get-AuthenticodeSignature বা Sigcheck দিয়ে loaded DLL-এর signature verify করুন।

Least Privilege: User-দের local admin না দিন। যদিও COM hijacking standard user হিসেবেও সম্ভব, admin থাকলে আরও বেশি abuse-এর সুযোগ থাকে।

Hardened Configuration: Microsoft-এর "Security baseline for Windows" অনুসরণ করুন। UAC strict mode-এ রাখুন।

Windows Defender Exploit Guard: Attack Surface Reduction (ASR) rule enable করুন যা suspicious COM activation ব্লক করে।

Regular Auditing: Autoruns (Sysinternals) দিয়ে নিয়মিত COM entry audit করুন। অস্বাভাবিক entry investigate করুন।

EDR/XDR Deployment: Behavior-based detection-এর জন্য modern EDR অপরিহার্য।

Patch Management: Windows update নিয়মিত করুন। Microsoft অনেক auto-elevating COM object-এর UAC bypass fix করেছে।

Group Policy: GPO দিয়ে registry write permission restrict করা যায় কিছু sensitive path-এ।

Threat Hunting: Proactive hunting program চালু করুন যেখানে COM hijacking-এর IoC ও TTP নিয়মিত search করা হয়।

Key Takeaways

COM Hijacking একটি classic উদাহরণ যেখানে legacy feature আধুনিক attacker-এর হাতে শক্তিশালী অস্ত্রে পরিণত হয়। Windows-এর HKCU-priority lookup behavior এবং COM-এর ubiquitous use—এই দুটি মিলে এমন একটি persistence এবং privilege escalation vector তৈরি করেছে যা defense evasion-এ অসাধারণ কার্যকর। Defender হিসেবে আমাদের understand করতে হবে যে modern threat কেবল novel exploit-এ আসে না, বরং trusted feature-এর creative abuse-এ আসে। Registry monitoring, application whitelisting, এবং modern EDR-এর সমন্বয়ই এই attack-এর বিরুদ্ধে কার্যকর defense। Red team-এর জন্য COM hijacking একটি অপরিহার্য skill, আর blue team-এর জন্য এটি detection-এর একটি গুরুত্বপূর্ণ অধ্যায়। মনে রাখবেন, যত purana feature, তত বেশি forgotten attack surface—Windows-এর গভীরে এমন আরও বহু hijacking opportunity লুকিয়ে আছে যা প্রতিনিয়ত abuse হচ্ছে।

আপনার জ্ঞান যাচাই করতে প্রস্তুত? আজই HackCert-এ COM Hijacking MCQ Quiz-টি দিন!

Related articles

back to all articles