135, 593 - Pentesting MSRPC

Support HackTricks

Join HackenProof Discord server to communicate with experienced hackers and bug bounty hunters!

Hacking Insights Engage with content that delves into the thrill and challenges of hacking

Real-Time Hack News Keep up-to-date with fast-paced hacking world through real-time news and insights

Latest Announcements Stay informed with the newest bug bounties launching and crucial platform updates

Join us on Discord and start collaborating with top hackers today!

기본 정보

Microsoft 원격 프로시저 호출(MSRPC) 프로토콜은 클라이언트-서버 모델로, 프로그램이 네트워크의 세부 사항을 이해하지 않고도 다른 컴퓨터에 위치한 프로그램으로부터 서비스를 요청할 수 있게 해줍니다. 이 프로토콜은 처음에 오픈 소스 소프트웨어에서 파생되었으며, 이후 Microsoft에 의해 개발되고 저작권이 부여되었습니다.

RPC 엔드포인트 매퍼는 TCP 및 UDP 포트 135, SMB는 TCP 139 및 445(널 또는 인증된 세션)에서 접근할 수 있으며, 웹 서비스로는 TCP 포트 593에서 접근할 수 있습니다.

135/tcp   open     msrpc         Microsoft Windows RPC

MSRPC는 어떻게 작동하나요?

클라이언트 애플리케이션에 의해 시작된 MSRPC 프로세스는 로컬 스텁 프로시저를 호출한 다음 클라이언트 런타임 라이브러리와 상호작용하여 요청을 서버로 준비하고 전송하는 과정을 포함합니다. 여기에는 매개변수를 표준 네트워크 데이터 표현 형식으로 변환하는 것이 포함됩니다. 서버가 원격인 경우 런타임 라이브러리에 의해 전송 프로토콜이 결정되어 RPC가 네트워크 스택을 통해 전달되도록 합니다.

https://0xffsec.com/handbook/images/msrpc.png

노출된 RPC 서비스 식별하기

TCP, UDP, HTTP 및 SMB를 통한 RPC 서비스의 노출은 RPC 로케이터 서비스 및 개별 엔드포인트를 쿼리하여 확인할 수 있습니다. rpcdump와 같은 도구는 IFID 값으로 표시된 고유한 RPC 서비스의 식별을 용이하게 하여 서비스 세부정보 및 통신 바인딩을 드러냅니다:

D:\rpctools> rpcdump [-p port] <IP>
**IFID**: 5a7b91f8-ff00-11d0-a9b2-00c04fb6e6fc version 1.0
Annotation: Messenger Service
UUID: 00000000-0000-0000-0000-000000000000
Binding: ncadg_ip_udp:<IP>[1028]

RPC 로케이터 서비스에 대한 접근은 특정 프로토콜을 통해 활성화됩니다: ncacn_ip_tcp 및 ncadg_ip_udp는 포트 135를 통해 접근하기 위한 것이고, ncacn_np는 SMB 연결을 위한 것이며, ncacn_http는 웹 기반 RPC 통신을 위한 것입니다. 다음 명령어는 주로 포트 135에 초점을 맞춰 MSRPC 서비스를 감사하고 상호작용하기 위해 Metasploit 모듈을 활용하는 예를 보여줍니다:

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 <IP> -p 135

모든 옵션은 tcp_dcerpc_auditor를 제외하고 포트 135에서 MSRPC를 타겟팅하기 위해 특별히 설계되었습니다.

주목할 만한 RPC 인터페이스

  • IFID: 12345778-1234-abcd-ef00-0123456789ab

  • Named Pipe: \pipe\lsarpc

  • 설명: LSA 인터페이스, 사용자 열거에 사용됩니다.

  • IFID: 3919286a-b10c-11d0-9ba8-00c04fd92ef5

  • Named Pipe: \pipe\lsarpc

  • 설명: LSA 디렉터리 서비스(DS) 인터페이스, 도메인 및 신뢰 관계 열거에 사용됩니다.

  • IFID: 12345778-1234-abcd-ef00-0123456789ac

  • Named Pipe: \pipe\samr

  • 설명: LSA SAMR 인터페이스, 공개 SAM 데이터베이스 요소(예: 사용자 이름)에 접근하고 계정 잠금 정책에 관계없이 사용자 비밀번호를 무차별 대입하는 데 사용됩니다.

  • IFID: 1ff70682-0a51-30e8-076d-740be8cee98b

  • Named Pipe: \pipe\atsvc

  • 설명: 작업 스케줄러, 원격으로 명령을 실행하는 데 사용됩니다.

  • IFID: 338cd001-2244-31f1-aaaa-900038001003

  • Named Pipe: \pipe\winreg

  • 설명: 원격 레지스트리 서비스, 시스템 레지스트리에 접근하고 수정하는 데 사용됩니다.

  • IFID: 367abb81-9844-35f1-ad32-98f038001003

  • Named Pipe: \pipe\svcctl

  • 설명: 서비스 제어 관리자 및 서버 서비스, 원격으로 서비스를 시작 및 중지하고 명령을 실행하는 데 사용됩니다.

  • IFID: 4b324fc8-1670-01d3-1278-5a47bf6ee188

  • Named Pipe: \pipe\srvsvc

  • 설명: 서비스 제어 관리자 및 서버 서비스, 원격으로 서비스를 시작 및 중지하고 명령을 실행하는 데 사용됩니다.

  • IFID: 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57

  • Named Pipe: \pipe\epmapper

  • 설명: DCOM 인터페이스, 비밀번호 무차별 대입 및 WM을 통한 정보 수집에 사용됩니다.

IP 주소 식별

https://github.com/mubix/IOXIDResolver를 사용하면 Airbus 연구에서 IOXIDResolver 인터페이스 내의 ServerAlive2 메서드를 악용할 수 있습니다.

이 메서드는 HTB 박스 _APT_에서 IPv6 주소로 인터페이스 정보를 얻는 데 사용되었습니다. 0xdf APT 작성물은 여기에서 확인할 수 있으며, _stringbinding_을 사용하는 Impacket의 rpcmap.py를 사용하는 대체 방법이 포함되어 있습니다.

유효한 자격 증명으로 RCE 실행

유효한 사용자의 자격 증명이 있는 경우 dcomexec.py에서 원격 코드를 실행할 수 있습니다.

사용 가능한 다양한 객체로 시도하는 것을 잊지 마세요

  • ShellWindows

  • ShellBrowserWindow

  • MMC20

포트 593

rpctoolsrpcdump.exe는 이 포트와 상호작용할 수 있습니다.

참고 문헌

경험이 풍부한 해커 및 버그 바운티 헌터와 소통하기 위해 HackenProof Discord 서버에 참여하세요!

해킹 통찰력 해킹의 스릴과 도전에 대한 내용을 탐구하세요.

실시간 해킹 뉴스 실시간 뉴스와 통찰력을 통해 빠르게 변화하는 해킹 세계를 따라가세요.

최신 공지사항 새로운 버그 바운티 출시 및 중요한 플랫폼 업데이트에 대한 정보를 유지하세요.

오늘 Discord에 가입하고 최고의 해커들과 협업을 시작하세요!

HackTricks 지원하기

Last updated