蓝队:

典型的实际案例是宝塔的降权

环境:管理员权限,目标出网,流量代理和CS上线都做不到

最近免杀喜欢使用的系统调用,这个方法对于R3 HOOK还行,但是对于采取降权操作的AV这招便是没用的了

红队

使用sytem权限的进程可能会遇到以下问题:

  1. 无法获得当前用户的文件内容

例如无法捕获用户的屏幕

  1. 环境变量有差异

比如以下环境变量:

  • APPDATA
  • Temp
  • Tmp
  • USERDOMAIN
  • USERNAME
  • USERPROFILE

cmd下可通过echo查看环境变量,例如查看环境变量APPDATA的命令为:
echo %appdata%
system权限下,查询到的环境变量APPDATA为C:\Windows\system32\config\systemprofile\AppData\Roaming
管理员权限下,查询到的环境变量APPDATA为C:\Users\a\AppData\Roaming

通过API SHGetSpecialFolderPath 获取指定的系统路径,如APPDATA,也能发现权限不同导致的区别

SHGetSpecialFolderPath支持查询的系统路径可在Shlobj.h中获取

  1. #include <windows.h>
  2. #include <Shlobj.h>
  3. bool IsSystemPrivilegeCmp()
  4. {
  5. static bool isSystemPrivilege = false;
  6. char *flag="C:\\Windows";
  7. if (isSystemPrivilege)
  8. {
  9. return isSystemPrivilege;
  10. }
  11. char szPath[MAX_PATH] = {0};
  12. if (SHGetSpecialFolderPathA(NULL, szPath, CSIDL_APPDATA, TRUE))
  13. {
  14. printf("APPDATA Path:%s\n",szPath);
  15. if(memcmp(szPath,flag,strlen(flag))==0)
  16. printf("[+]I'm System Privilege\n");
  17. else
  18. printf("[-]Not System Privilege\n");
  19. }
  20. return isSystemPrivilege;
  21. }
  22. int main(int argc, CHAR* argv[])
  23. {
  24. IsSystemPrivilegeCmp();
  25. return 0;
  26. }
  1. 注册表有差异

对HKCU的部分注册表操作会被重定向到HKEY_USERS.DEFAULT

总结

感觉蓝队使用比红队使用效果更明显