# 135, 593 - Pentesting MSRPC {{#include ../banners/hacktricks-training.md}} ## Temel Bilgiler Microsoft Uzaktan Prosedür Çağrısı (MSRPC) protokolü, bir programın başka bir bilgisayarda bulunan bir programdan hizmet talep etmesini sağlayan bir istemci-sunucu modelidir ve ağın ayrıntılarını anlamadan çalışır. İlk olarak açık kaynak yazılımlarından türetilmiş ve daha sonra Microsoft tarafından geliştirilip telif hakkı alınmıştır. RPC uç noktası haritalayıcısına TCP ve UDP port 135, TCP 139 ve 445 üzerinde SMB (boş veya kimlik doğrulamalı oturum ile) ve TCP port 593 üzerinde bir web hizmeti aracılığıyla erişilebilir. ``` 135/tcp open msrpc Microsoft Windows RPC ``` ## MSRPC nasıl çalışır? İstemci uygulaması tarafından başlatılan MSRPC süreci, istemci çalışma zamanı kütüphanesi ile etkileşime giren yerel bir stub prosedürünü çağırmayı içerir ve ardından isteği sunucuya hazırlayıp iletmek için kullanılır. Bu, parametrelerin standart Ağ Veri Temsili formatına dönüştürülmesini içerir. Taşıma protokolü seçimi, sunucu uzaktaysa çalışma zamanı kütüphanesi tarafından belirlenir ve RPC'nin ağ yığını üzerinden iletilmesini sağlar. ![https://0xffsec.com/handbook/images/msrpc.png](https://0xffsec.com/handbook/images/msrpc.png) ## **Açık RPC Hizmetlerini Belirleme** TCP, UDP, HTTP ve SMB üzerinden RPC hizmetlerinin açığı, RPC yer bulucu hizmeti ve bireysel uç noktalar sorgulanarak belirlenebilir. rpcdump gibi araçlar, **IFID** değerleri ile belirtilen benzersiz RPC hizmetlerinin tanımlanmasına yardımcı olur ve hizmet detayları ile iletişim bağlarını ortaya çıkarır: ``` D:\rpctools> rpcdump [-p port] **IFID**: 5a7b91f8-ff00-11d0-a9b2-00c04fb6e6fc version 1.0 Annotation: Messenger Service UUID: 00000000-0000-0000-0000-000000000000 Binding: ncadg_ip_udp:[1028] ``` RPC yer bulucu hizmetine erişim, belirli protokoller aracılığıyla etkinleştirilmiştir: ncacn_ip_tcp ve ncadg_ip_udp, port 135 üzerinden erişim için, ncacn_np SMB bağlantıları için ve ncacn_http web tabanlı RPC iletişimi için. Aşağıdaki komutlar, esasen port 135'e odaklanarak, MSRPC hizmetlerini denetlemek ve etkileşimde bulunmak için Metasploit modüllerinin kullanımını örneklemektedir: ```bash use auxiliary/scanner/dcerpc/endpoint_mapper use auxiliary/scanner/dcerpc/hidden use auxiliary/scanner/dcerpc/management use auxiliary/scanner/dcerpc/tcp_dcerpc_auditor rpcdump.py -p 135 ``` Tüm seçenekler `tcp_dcerpc_auditor` hariç, 135 numaralı portta MSRPC'yi hedef almak için özel olarak tasarlanmıştır. #### Dikkate Değer RPC arayüzleri - **IFID**: 12345778-1234-abcd-ef00-0123456789ab - **Named Pipe**: `\pipe\lsarpc` - **Açıklama**: Kullanıcıları listelemek için kullanılan LSA arayüzü. - **IFID**: 3919286a-b10c-11d0-9ba8-00c04fd92ef5 - **Named Pipe**: `\pipe\lsarpc` - **Açıklama**: Alanları ve güven ilişkilerini listelemek için kullanılan LSA Dizin Hizmetleri (DS) arayüzü. - **IFID**: 12345778-1234-abcd-ef00-0123456789ac - **Named Pipe**: `\pipe\samr` - **Açıklama**: Kamuya açık SAM veritabanı öğelerine (örneğin, kullanıcı adları) erişmek ve kullanıcı şifrelerini hesap kilitleme politikasına bakılmaksızın zorlamak için kullanılan LSA SAMR arayüzü. - **IFID**: 1ff70682-0a51-30e8-076d-740be8cee98b - **Named Pipe**: `\pipe\atsvc` - **Açıklama**: Uzakta komutları yürütmek için kullanılan görev zamanlayıcı. - **IFID**: 338cd001-2244-31f1-aaaa-900038001003 - **Named Pipe**: `\pipe\winreg` - **Açıklama**: Sistemin kayıt defterine erişmek ve değiştirmek için kullanılan uzak kayıt defteri hizmeti. - **IFID**: 367abb81-9844-35f1-ad32-98f038001003 - **Named Pipe**: `\pipe\svcctl` - **Açıklama**: Uzakta hizmetleri başlatmak ve durdurmak ve komutları yürütmek için kullanılan hizmet kontrol yöneticisi ve sunucu hizmetleri. - **IFID**: 4b324fc8-1670-01d3-1278-5a47bf6ee188 - **Named Pipe**: `\pipe\srvsvc` - **Açıklama**: Uzakta hizmetleri başlatmak ve durdurmak ve komutları yürütmek için kullanılan hizmet kontrol yöneticisi ve sunucu hizmetleri. - **IFID**: 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57 - **Named Pipe**: `\pipe\epmapper` - **Açıklama**: WM aracılığıyla şifre kırma ve bilgi toplama için kullanılan DCOM arayüzü. ### IP adreslerini belirleme [https://github.com/mubix/IOXIDResolver](https://github.com/mubix/IOXIDResolver) kullanarak, [Airbus araştırmasından](https://www.cyber.airbus.com/the-oxid-resolver-part-1-remote-enumeration-of-network-interfaces-without-any-authentication/) _**ServerAlive2**_ yöntemini _**IOXIDResolver**_ arayüzü içinde kötüye kullanmak mümkündür. Bu yöntem, HTB kutusundan **IPv6** adresi gibi arayüz bilgilerini almak için kullanılmıştır _APT_. 0xdf APT yazımı için [buraya](https://0xdf.gitlab.io/2021/04/10/htb-apt.html) bakın, rpcmap.py kullanarak alternatif bir yöntem içermektedir [Impacket](https://github.com/SecureAuthCorp/impacket/) ile _stringbinding_ (yukarıya bakın). ### Geçerli kimlik bilgileri ile RCE yürütme Geçerli bir kullanıcının kimlik bilgileri mevcutsa, bir makinede uzaktan kod yürütmek mümkündür [dcomexec.py](https://github.com/fortra/impacket/blob/master/examples/dcomexec.py) kullanarak impacket framework'ünden. **Farklı mevcut nesnelerle denemeyi unutmayın** - ShellWindows - ShellBrowserWindow - MMC20 ## Port 593 [rpctools](https://resources.oreilly.com/examples/9780596510305/tree/master/tools/rpctools) içindeki **rpcdump.exe** bu port ile etkileşimde bulunabilir. ## Referanslar - [https://www.cyber.airbus.com/the-oxid-resolver-part-1-remote-enumeration-of-network-interfaces-without-any-authentication/](https://www.cyber.airbus.com/the-oxid-resolver-part-1-remote-enumeration-of-network-interfaces-without-any-authentication/) - [https://www.cyber.airbus.com/the-oxid-resolver-part-2-accessing-a-remote-object-inside-dcom/](https://www.cyber.airbus.com/the-oxid-resolver-part-2-accessing-a-remote-object-inside-dcom/) - [https://0xffsec.com/handbook/services/msrpc/](https://0xffsec.com/handbook/services/msrpc/) {{#include ../banners/hacktricks-training.md}}