hacktricks/network-services-pentesting/135-pentesting-msrpc.md

8.6 KiB

135, 593 - MSRPC Pentesting

htARTE (HackTricks AWS Red Team 전문가)를 통해 제로부터 영웅이 되는 AWS 해킹을 배우세요!

HackTricks를 지원하는 다른 방법:

경험 많은 해커 및 버그 바운티 헌터와 소통하려면 HackenProof Discord 서버에 가입하세요!

해킹 통찰
해킹의 스릴과 도전에 대해 탐구하는 콘텐츠와 관련

실시간 해킹 뉴스
빠르게 변화하는 해킹 세계의 최신 뉴스와 통찰력을 유지하세요

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

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

기본 정보

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

노출된 RPC 서비스 식별

RPC 로케이터 서비스 및 개별 엔드포인트를 쿼리하여 TCP, UDP, HTTP 및 SMB를 통해 노출된 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 로케이터 서비스에 액세스하는 데 사용되는 특정 프로토콜은 다음과 같습니다: 포트 135를 통해 액세스하는 경우 ncacn_ip_tcp 및 ncadg_ip_udp, SMB 연결의 경우 ncacn_np 및 웹 기반 RPC 통신의 경우 ncacn_http입니다. 다음 명령어는 Metasploit 모듈을 활용하여 MSRPC 서비스를 감사하고 상호 작용하는 방법을 보여줍니다. 주로 포트 135에 초점을 맞춥니다:

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
  • 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를 사용하면 IOXIDResolver 인터페이스 내의 ServerAlive2 메서드를 남용할 수 있습니다. 이는 Airbus research에서 나온 것입니다.

이 방법은 IPv6 주소로부터 인터페이스 정보를 가져오는 데 사용되었으며 HTB 상자 _APT_에서 확인할 수 있습니다. 0xdf APT writeup에서는 rpcmap.py를 사용하여 Impacket에서 _stringbinding_을 사용하는 대체 방법을 제공합니다.

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

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

다양한 사용 가능한 객체로 시도해보기를 기억하세요

  • ShellWindows
  • ShellBrowserWindow
  • MMC20

포트 593

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

참고 자료

HackenProof Discord 서버에 가입하여 경험 많은 해커 및 버그 바운티 헌터들과 소통하세요!

해킹 통찰
해킹의 즐거움과 도전에 대해 탐구하는 콘텐츠와 상호 작용하세요

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

최신 공지
최신 버그 바운티 출시 및 중요한 플랫폼 업데이트에 대해 알아보세요

**Discord에 참여하여 최고의 해커들과 협업을 시작하세요!