我在木马样本中发现了以下内容。首先,它获取当前进程的令牌,然后GetTokenInformation()使用TokenGroups作为InfoClass参数调用API 。所以,它把 TOKEN_GROUPS 结构放到了某个地方。稍后,它使用AllocateAndInitializeSid()具有以下参数的API:
PUSH EAX
PUSH EBX
PUSH EBX
PUSH EBX
PUSH EBX
PUSH EBX
PUSH EBX
PUSH 220
PUSH 20
PUSH 2
LEA EAX, DWORD PTR DS:[EBP - C]
PUSH EAX
CALL DWORD PTR DS:[&ADVAPI32.AllocateAndInitializeSid]
那么,SID 字符串是 S-1-20-220 吗?如果没有,我如何提取它?
注意:在几行之后,木马使用EqualSid()API将此 SID 与 TOKEN_GROUPS 结构中的 SID 值进行比较。我的意思是,它访问 TOKEN_GROUPS 结构的第二个字段,该结构是一个由 SID_AND_ATTRIBUTES 结构组成的数组。这些结构中的每一个都有一个 SID 字段,用于与初始化的 SID 进行比较。出于这个原因,我想知道初始化的 SID 是什么样子的。
最好的祝福,
