From 0ccac0aa8e07655678b717debc97696581080d9b Mon Sep 17 00:00:00 2001 From: XiaoliChan <2209553467@qq.com> Date: Tue, 5 Sep 2023 11:27:05 +0800 Subject: [PATCH] [dcom] add 'set_connect_timeout' Signed-off-by: XiaoliChan <2209553467@qq.com> --- impacket/dcerpc/v5/dcomrt.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/impacket/dcerpc/v5/dcomrt.py b/impacket/dcerpc/v5/dcomrt.py index 379fcb3d9..1c1fe8fdf 100644 --- a/impacket/dcerpc/v5/dcomrt.py +++ b/impacket/dcerpc/v5/dcomrt.py @@ -43,6 +43,8 @@ RPC_C_AUTHN_LEVEL_PKT_PRIVACY, RPC_C_AUTHN_GSS_NEGOTIATE, RPC_C_AUTHN_WINNT, DCERPCException from impacket.dcerpc.v5 import transport +DCOM_TIMEOUT = 300 + CLSID_ActivationContextInfo = string_to_bin('000001a5-0000-0000-c000-000000000046') CLSID_ActivationPropertiesIn = string_to_bin('00000338-0000-0000-c000-000000000046') CLSID_ActivationPropertiesOut = string_to_bin('00000339-0000-0000-c000-000000000046') @@ -1070,6 +1072,10 @@ def initConnection(self): self.__portmap.set_auth_type(RPC_C_AUTHN_GSS_NEGOTIATE) self.__portmap.connect() DCOMConnection.PORTMAPS[self.__target] = self.__portmap + + def set_connect_timeout(self, timeout): + global DCOM_TIMEOUT + DCOM_TIMEOUT = timeout def CoCreateInstanceEx(self, clsid, iid): scm = IRemoteSCMActivator(self.__portmap) @@ -1292,7 +1298,7 @@ def connect(self, iid = None): dcomInterface.set_credentials(*DCOMConnection.PORTMAPS[self.__target].get_credentials()) dcomInterface.set_kerberos(DCOMConnection.PORTMAPS[self.__target].get_rpc_transport().get_kerberos(), DCOMConnection.PORTMAPS[self.__target].get_rpc_transport().get_kdcHost()) - dcomInterface.set_connect_timeout(300) + dcomInterface.set_connect_timeout(DCOM_TIMEOUT) dce = dcomInterface.get_dce_rpc() if iid is None: