DESCRIPTION rpc_dispatch_table_1 .text:00425E28 dd offset rpc_sub_1 .text:00425E2C dd offset rpc_sub_2 .text:00425E30 dd offset rpc_sub_3 .text:00425E34 dd offset rpc_sub_4 .text:00425E38 dd offset rpc_sub_5 ; registry read .text:00425E3C dd offset rpc_sub_6 ; registry write .text:00425E40 dd offset rpc_sub_7 ; registry delete .text:00425E44 dd offset rpc_sub_8 ; registry enum .text:00425E48 dd offset rpc_sub_9 .text:00425E4C dd offset rpc_sub_10 .text:00425E50 dd offset rpc_sub_11 .text:00425E54 dd offset null_sub .text:00425E58 dd offset null_sub The above marked routines allow unauthenticated remote attackers to connect to the RPC endpoint and arbitrarily create, modify, delete and read keys. An attacker needs only to reverse engineer the Microsoft Interface Description Language (IDL) for the target routine and create a custom client to connect to and manipulate the server. The IDL definition for rpc_sub_6 is: long rpc_sub_6 ( /* 04 */ [in] [string] wchar_t *sub_key, /* 08 */ [in] [string] wchar_t *value_name, /* 0C */ [in] long type, /* 10 */ [in] long len_data, /* 14 */ [in,out] [size_is(len_data)] byte *data, /* 18 */ [in] long len_hkey, /* 1C */ [in] [size_is(len_hkey)] byte *hkey );
ANALYSIS
EXPLOIT CODE |