# 135, 593 - MSRPC Pentesting
htARTE (HackTricks AWS Red Team 전문가)를 통해 제로부터 영웅이 되는 AWS 해킹을 배우세요!
HackTricks를 지원하는 다른 방법:
* **회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드**하고 싶다면 [**구독 요금제**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**공식 PEASS & HackTricks 스왜그**](https://peass.creator-spring.com)를 구매하세요
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요, 당사의 독점 [**NFTs**](https://opensea.io/collection/the-peass-family) 컬렉션
* **💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 가입하거나**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)를 팔로우하세요.
* **HackTricks** 및 **HackTricks Cloud** github 저장소에 PR을 제출하여 **해킹 트릭을 공유**하세요.
경험 많은 해커 및 버그 바운티 헌터와 소통하려면 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 서버에 가입하세요!
**해킹 통찰**\
해킹의 스릴과 도전에 대해 탐구하는 콘텐츠와 관련
**실시간 해킹 뉴스**\
빠르게 변화하는 해킹 세계의 최신 뉴스와 통찰력을 유지하세요
**최신 공지**\
최신 버그 바운티 출시 및 중요한 플랫폼 업데이트에 대해 정보를 유지하세요
**[**Discord**](https://discord.com/invite/N3FrSbmwdy)에 참여하여 오늘 최고의 해커들과 협업을 시작하세요!
## 기본 정보
Microsoft 원격 프로시저 호출(MSRPC) 프로토콜은 클라이언트-서버 모델로, 프로그램이 네트워크의 구체적인 내용을 이해하지 않고 다른 컴퓨터에 위치한 프로그램으로부터 서비스를 요청할 수 있도록 하는 프로토콜로, 원래 오픈 소스 소프트웨어에서 파생되었으며 후에 Microsoft에서 개발 및 저작권을 보유하였습니다.
RPC 엔드포인트 매퍼는 TCP 및 UDP 포트 135를 통해 액세스할 수 있으며, TCP 139 및 445에서 SMB(널 또는 인증된 세션)로 액세스할 수 있으며, TCP 포트 593에서 웹 서비스로 사용할 수 있습니다.
```
135/tcp open msrpc Microsoft Windows RPC
```
## MSRPC는 어떻게 작동하나요?
클라이언트 응용 프로그램에 의해 시작된 MSRPC 프로세스는 로컬 스텁 프로시저를 호출하여 클라이언트 런타임 라이브러리와 상호 작용하여 요청을 준비하고 전송합니다. 이 과정에는 매개변수를 표준 네트워크 데이터 표현 형식으로 변환하는 것이 포함됩니다. 서버가 원격인 경우 런타임 라이브러리가 전송 프로토콜을 선택하여 RPC가 네트워크 스택을 통해 전달되도록 합니다.
![https://0xffsec.com/handbook/images/msrpc.png](https://0xffsec.com/handbook/images/msrpc.png)
## **노출된 RPC 서비스 식별**
RPC 로케이터 서비스 및 개별 엔드포인트를 쿼리하여 TCP, UDP, HTTP 및 SMB를 통해 노출된 RPC 서비스를 식별할 수 있습니다. rpcdump와 같은 도구를 사용하여 **IFID** 값으로 표시되는 고유한 RPC 서비스를 식별하고 서비스 세부 정보 및 통신 바인딩을 확인할 수 있습니다.
```
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 로케이터 서비스에 액세스하는 데 사용되는 특정 프로토콜은 다음과 같습니다: 포트 135를 통해 액세스하는 경우 ncacn_ip_tcp 및 ncadg_ip_udp, SMB 연결의 경우 ncacn_np 및 웹 기반 RPC 통신의 경우 ncacn_http입니다. 다음 명령어는 Metasploit 모듈을 활용하여 MSRPC 서비스를 감사하고 상호 작용하는 방법을 보여줍니다. 주로 포트 135에 초점을 맞춥니다:
```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
```
모든 옵션 중 `tcp_dcerpc_auditor`를 제외한 옵션은 포트 135에서 MSRPC를 대상으로 특별히 설계되었습니다.
#### 주목할만한 RPC 인터페이스
* **IFID**: 12345778-1234-abcd-ef00-0123456789ab
* **Named Pipe**: `\pipe\lsarpc`
* **Description**: 사용자를 나열하는 데 사용되는 LSA 인터페이스.
* **IFID**: 3919286a-b10c-11d0-9ba8-00c04fd92ef5
* **Named Pipe**: `\pipe\lsarpc`
* **Description**: 도메인 및 신뢰 관계를 나열하는 데 사용되는 LSA 디렉터리 서비스 (DS) 인터페이스.
* **IFID**: 12345778-1234-abcd-ef00-0123456789ac
* **Named Pipe**: `\pipe\samr`
* **Description**: 계정 잠금 정책에 관계없이 공개 SAM 데이터베이스 요소 (예: 사용자 이름)에 액세스하고 사용자 암호를 무차별 대입하는 데 사용되는 LSA SAMR 인터페이스.
* **IFID**: 1ff70682-0a51-30e8-076d-740be8cee98b
* **Named Pipe**: `\pipe\atsvc`
* **Description**: 원격으로 명령을 실행하는 데 사용되는 작업 스케줄러.
* **IFID**: 338cd001-2244-31f1-aaaa-900038001003
* **Named Pipe**: `\pipe\winreg`
* **Description**: 시스템 레지스트리에 액세스하고 수정하는 데 사용되는 원격 레지스트리 서비스.
* **IFID**: 367abb81-9844-35f1-ad32-98f038001003
* **Named Pipe**: `\pipe\svcctl`
* **Description**: 서비스 제어 관리자 및 서버 서비스로 원격으로 서비스 시작 및 중지 및 명령 실행에 사용됨.
* **IFID**: 4b324fc8-1670-01d3-1278-5a47bf6ee188
* **Named Pipe**: `\pipe\srvsvc`
* **Description**: 서비스 제어 관리자 및 서버 서비스로 원격으로 서비스 시작 및 중지 및 명령 실행에 사용됨.
* **IFID**: 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57
* **Named Pipe**: `\pipe\epmapper`
* **Description**: WM을 통해 무차별 대입 암호 그라인딩 및 정보 수집에 사용되는 DCOM 인터페이스.
### IP 주소 식별
[https://github.com/mubix/IOXIDResolver](https://github.com/mubix/IOXIDResolver)를 사용하면 _**IOXIDResolver**_ 인터페이스 내의 _**ServerAlive2**_ 메서드를 남용할 수 있습니다. 이는 [Airbus research](https://www.cyber.airbus.com/the-oxid-resolver-part-1-remote-enumeration-of-network-interfaces-without-any-authentication/)에서 나온 것입니다.
이 방법은 **IPv6** 주소로부터 인터페이스 정보를 가져오는 데 사용되었으며 HTB 상자 _APT_에서 확인할 수 있습니다. 0xdf APT writeup에서는 rpcmap.py를 사용하여 [Impacket](https://github.com/SecureAuthCorp/impacket/)에서 _stringbinding_을 사용하는 대체 방법을 제공합니다.
### 유효한 자격 증명으로 RCE 실행
유효한 사용자의 자격 증명이 있는 경우 [impacket framework](https://github.com/fortra/impacket/blob/master/examples/dcomexec.py)의 dcomexec.py를 사용하여 기계에서 원격 코드를 실행할 수 있습니다.
**다양한 사용 가능한 객체로 시도해보기를 기억하세요**
* ShellWindows
* ShellBrowserWindow
* MMC20
## 포트 593
**rpctools**의 **rpcdump.exe**는 이 포트와 상호 작용할 수 있습니다.
## 참고 자료
* [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/)
[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 서버에 가입하여 경험 많은 해커 및 버그 바운티 헌터들과 소통하세요!
**해킹 통찰**\
해킹의 즐거움과 도전에 대해 탐구하는 콘텐츠와 상호 작용하세요
**실시간 해킹 뉴스**\
실시간 뉴스와 통찰을 통해 빠르게 변화하는 해킹 세계를 따라가세요
**최신 공지**\
최신 버그 바운티 출시 및 중요한 플랫폼 업데이트에 대해 알아보세요
**[**Discord**](https://discord.com/invite/N3FrSbmwdy)**에 참여하여 최고의 해커들과 협업을 시작하세요!**