ms rpc architecture & security problems related

23
MS RPC Architecture & Security Problems Related kkqq (Lin Yichong) (kk [email protected] kkqq@SST, kkqq@USTC) http://www.0x557.org http://kkqq.blogdns.com Powered by L A T E X and prosper. MS RPC Architecture & Security Problems Related – p. 1

Upload: others

Post on 17-May-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MS RPC Architecture & Security Problems Related

MS RPC Architecture & SecurityProblems Related

kkqq (Lin Yichong)

(kk [email protected] kkqq@SST, kkqq@USTC)

http://www.0x557.org http://kkqq.blogdns.com

Powered by LATEX and prosper.

MS RPC Architecture & Security Problems Related – p. 1

Page 2: MS RPC Architecture & Security Problems Related

Content

• MS RPC Architecture & Data Flow• Hacking the Binary for Fun and Profit :)• Security Problems in MS RPC

MS RPC Architecture & Security Problems Related – p. 2

Page 3: MS RPC Architecture & Security Problems Related

RPC – Remote Procedure Call

Server Application

Stu b

R P C R u n- T im e L ib rary

T rans port

C lient Application

Stu b

R P C R u n- T im e L ib rary

T rans port

ApplicationL ay e r

P r e s e ntationL ay e r

S e s s ionL ay e r

T r ans potL ay e r

MS RPC Architecture & Security Problems Related – p. 3

Page 4: MS RPC Architecture & Security Problems Related

RPC – Implement

From Inside win2k 3rd Edition

Services:

• Endpoint Mapper (135)

• Remote Management Interface (1025)MS RPC Architecture & Security Problems Related – p. 4

Page 5: MS RPC Architecture & Security Problems Related

RPC – Programming

• Define the interface(.idl files)• Generate Stub Code(midl xxx.idl)• Implement the Interface• Note: Endpoint

• TCP

• UDP

• SMB

• Named Pipe

• HTTP ...

MS RPC Architecture & Security Problems Related – p. 5

Page 6: MS RPC Architecture & Security Problems Related

Data Flow – Server Listening

RpcServerUseProtseqEp

RpcServerRegisterIf

RpcServerRegisterIf

ncacn_np , \\pipe\\hello; ncacn_tcp, 135

Options: maxcall, SecurityDescriptor ..

IfSpec

Options: Min(Max)Call, DontWait

MS RPC Architecture & Security Problems Related – p. 6

Page 7: MS RPC Architecture & Security Problems Related

Data Flow – Call the Dispatch Routine

BIND UUID

BIND_ACK OK?

REQUEST OpNum

EPV Endpoint Vector

LookUp DispatchTable

ClientSide ServerSide ServerData

RESPONSE

Call Diapatch

Stub??

Stub Dispatch (NdrServerCall2)

IfSpec

Stub Information

OK

Exception

MS RPC Architecture & Security Problems Related – p. 7

Page 8: MS RPC Architecture & Security Problems Related

Data Flow – Marshall and UnMarshall

RpcClientCall(uint_32 first, ulong second, pointer third, . . .)

Marshall Integer

Marshall long

Marshall pointer

RpcServerCall(uint_32 first, ulong second, pointer third, . . .)

Transport Header

RPC Header

First Parameter

Second Parameter

Third Parameter

...

NDR( Network Data Representation) Format UnMarshall

Integer UnMarshall

long UnMarshall

pointer

MS RPC Architecture & Security Problems Related – p. 8

Page 9: MS RPC Architecture & Security Problems Related

Hacking the Binary for Fun and Profit

Purpose: How the appliction dispatch different RPCrequest.

Current Problems:

• Server Application may be runned over differentEndpoint.

• Find the real data flow with debugging dynamicly.Samples:http://www.xfocus.net/articles/200311/641.html

• Complex data-struct & and data-flow.

Our Method: IDC Script file

MS RPC Architecture & Security Problems Related – p. 9

Page 10: MS RPC Architecture & Security Problems Related

Data struct of Application Server-side

� � �� � � � � �� � �

��

�� �� � �

�� �� �� � �

�� � � �� � � � � � � �� �� � ����

�� � � ��

�� � � � � � � � � � � �� � � � � � ���

�� � � ��

�� � � � � � � � � � � � � �� � � � � � !�� � �

� � � � � � "

� �# �� $% &' ( )* +, ( -. /�

� � � �� � � � � � � � � � � 0 � �� 1 � � � � 0 � � � 0 � � ��� � �

� � 2 � �� 3

� � � � 2 �� � � � � � 0 � �� 1 � � � � 0 � � ����

4 5 �

� � �

��

� � �6 � � � � 7 � 4 � � � � � �8 �

8 0 � � 0 � � � ��

� � �6 �

� � � �� � � � � � � � 7 � � �9 ��

�� �� � �

�� �� �� � � �

� � �� � � � � �� � � �

� � � �� � � � � � � � � � � � � � : 7 � 0 � � ����

� � � � � � "

� ;� � � 2� <=> ?@ AB CD @ EFG �� � � �� �� � 8 � ��9 � �

� � � � � � "

� � # ��

� � �� � � � � �� � � 4 �� �

�� �� � �

�� � 2

�� 4 �� �

� � ; #

� � � � � � � :� � � �

0 � � � �� � � � �

� 2 ; � �� � 6 $% & ' ( )* +, ( -. /�� � 2 � 4 � �

� � � �� 5 � � 0 � �� � �� �

0 � � � � � � �� � � � � � 0 � �6 � H � � �� � �� 2 � � �� ��

0 � � � � � ; #

�" ;� I6 � � � � J � : 7 � �� � 2 � 4 � �

� � � �� 5 � 0 7 � 0 � H � � � �� ��� � 2 � 4 � �

� � � �� 5 � 0 7 � � 0 � �� � �� �

0 � � � � � � �� � � � � � 0 � �6 � 0 7 � H � � �� � �� 2 � � �� ��9 4 � � �

�� �� � �

�� � 2�

� � � � � � � : 7 �

� � �� � K

� � �� � LM M M

� � � � � � � : 7 �

� � � � � � 8 � � 7 7 L

� � � � � � 8 � � 7 7 L

M M M

NOP QR OST U V OW X

YZ [ [NOP QR OST U V O W X

NOP Q R OST U V OW X

Different: midl /Oicf xxx.idl

MS RPC Architecture & Security Problems Related – p. 10

Page 11: MS RPC Architecture & Security Problems Related

Samples: rpcss.dll – Endpoint Mapper

Find RpcServerRegisterIf at addr at 0x76152012

IfSpec at address 0x7615d400

Interface UUID: e1af8308-5d1f-11c9-91a4-08002b14a0fa

Dispatch Table: 0x7615d428

Dispatch Table Count: 7

Dispatch Table Addr: 0x7615d408

Entry 0: NdrServerCall2

...

MIDL Server Info at address 0x761344b0

DispatchTable: 0x76134480

Entry 0 loc_76152A35

Entry 1 loc_76152F30

Entry 2 sub_7615317C

Entry 3 sub_7615320D

Entry 4 loc_761533C2

Entry 5 loc_76153301

Entry 6 loc_7615331F

MS RPC Architecture & Security Problems Related – p. 11

Page 12: MS RPC Architecture & Security Problems Related

Features

• IDC script for IDA Pro Disassembler.• Verbose and Simple Output.• Renaming the Dispatch Routine automaticly.

MS RPC Architecture & Security Problems Related – p. 12

Page 13: MS RPC Architecture & Security Problems Related

Security Problems

• DoS• Buffer Overrun• Information Disclosure

MS RPC Architecture & Security Problems Related – p. 13

Page 14: MS RPC Architecture & Security Problems Related

Catalog – Where is the vulnerability

• Server-side Application Over MS RPC• Messenger Service

• IIS(Exchange Server...)...

• Implement of MS RPC Protocol

• MS RPC Services• EndPoint Mapper (rpcss.dll)

• DCOM

• Locator (locator.exe)

MS RPC Architecture & Security Problems Related – p. 14

Page 15: MS RPC Architecture & Security Problems Related

Server-side Appliction Over MS RPC

• Result: DoS or Priviledge Escalation• Samples

• Microsoft Exchange 2000 Multiple MSRPC Denial Of Service Vulnerabilities(2002 bid:5421 SPIKE 2.5)

• Microsoft Windows Message Queuing Service Heap Overflow Vulnerability(2003 bid:8783)

• Microsoft Messenger Service Buffer Overrun Vulnerability (2003 bid:8826LSD)

• Microsoft Windows Workstation Service Remote Buffer Overflow Vulnerability(2003 bid:9011 eeye)

MS RPC Architecture & Security Problems Related – p. 15

Page 16: MS RPC Architecture & Security Problems Related

Implement of MS RPC Protocol

• Result: DoS• Samples

• NT RPC CPU Utilization Vulnerability (1997 bid:688)

• Microsoft Windows NT RPC DoS Vulnerability (1998 bid:2234)

• Microsoft Windows 2000 Malformed RPC Packet DoS Vulnerability (1998bid:1673)

• Microsoft Windows RPC Service Denial of Service Vulnerability (2002bid:6005 SPIKE 2.7)

• Microsoft Malformed RPC Packet Buffer Overflow Vulnerability (2002bid:5879)

• Microsoft Windows 2000 RPC Service Privilege Escalation Vulnerability (2003bid:6796 SPIKE 2.8)

MS RPC Architecture & Security Problems Related – p. 16

Page 17: MS RPC Architecture & Security Problems Related

MS RPC Services (1)

• Result: DoS or Priviledge Escalation• Samples

• Microsoft Windows NT RPC Endpoint Mapper Denial of Service Vulnerability(2001 bid:3313)

• Microsoft Windows RPC Service Denial of Service Vulnerability (2002bid:6005 svchost SPIKE 2.7)

• Microsoft Windows Locator Service Buffer Overflow Vulnerability (2003bid:6666 ngssoftware :P 6666)

• Microsoft Windows DCOM RPC Interface Buffer Overrun Vulnerability (2003bid:8205 LSD Blaster WORM!!)

• Microsoft Windows RPCSS DCOM Interface Denial of Service Vulnerability(2003 bid:8234 xfocus guys)

MS RPC Architecture & Security Problems Related – p. 17

Page 18: MS RPC Architecture & Security Problems Related

MS RPC Services (2)

• Microsoft RPCSS DCOM Interface Long Filename Heap Corruption Vulnerability(2003 bid:8459 nsfocus)

• Microsoft RPCSS DCERPC DCOM Object Activation Packet Length HeapCorruption Vulnerability (2003 bid:5458 eeye, nsfocus etc..)

• Microsoft Windows RPCSS Multi-thread Race Condition Vulnerability (2003bid:8811 iss)

MS RPC Architecture & Security Problems Related – p. 18

Page 19: MS RPC Architecture & Security Problems Related

Information from EndPoint Mapper

• DEFAULT: Open For ALL (135, 139, 445,1025, 1026)

• rpcdump /s ip /I• Registered Endpoint(system service)• Endpoint Type• /I Options (Access)• Samples

ncadg_ip_udp(Datagram (connectionless) UDP/IP)

xxx.xxx.xxx.xxx[1026] [32d90706-b698-4029-b236-e18ebff582b1] :YES

MS RPC Architecture & Security Problems Related – p. 19

Page 20: MS RPC Architecture & Security Problems Related

Information – Active Detection

• SPIKE and rpcenum.idc

• BIND -> BIND_ACK (With Provider Rejection Error)

• A tiny program (rpcdetect.c for SPIKE)

• Samples

./rpcdetect xxx.xx.xx.xxx 135 e1af8308-5d1f-11c9-91a4-08002b14a03a

BIND Send OK

BIND_ACK receive

Provider rejection

Abstract syntax not supported

./rpcdetect xxx.xx.xx.xxx 135 e1af8308-5d1f-11c9-91a4-08002b14a0fa

BIND Send OK

BIND_ACK receive

• http://razor.bindview.com/tools/desc/rpctools1.0-readme.html

• http://www.hsc.fr/ressources/articles/win_net_srv/

MS RPC Architecture & Security Problems Related – p. 20

Page 21: MS RPC Architecture & Security Problems Related

Dave Aitel’s SPIKE – msrpcfuzz

Advantage• Fuzz X(string, integer...) library.

• SPK script(Test case seperated).

• Test Executor

• Various Protocol(MS RPC, SUN RPC, SMB ...)

Disadvantage• Method (blind, fuzz, lots of useless test case)

• Exceptional Elements

• Network and *nix Host Only.MS RPC Architecture & Security Problems Related – p. 21

Page 22: MS RPC Architecture & Security Problems Related

Acnowledgement

• Halvar Flake (Reverse Engineer Tools and Bugscam)

• Dave Aitel (SPIKE)

• yuange (Leading me to the Way of Automatic Security Testing)

• Inside Windows 3rd Editon

• YongQ (LATEX and prosper)

• Members of SST (lovely guys)

• OYXin, BladeSatan, dudu... (Friends)

MS RPC Architecture & Security Problems Related – p. 22

Page 23: MS RPC Architecture & Security Problems Related

Thanks!

Questions?

MS RPC Architecture & Security Problems Related – p. 23