后渗透维持权限的一些手段

0x00 写在最前面

在拿到域控之后我们有许多手段来维持自己的权限,今天在这里就当作是一个自己的记录,还有作为抛砖引玉,欢迎大家多多交流.

0x01 自启的一些手段

在拿到权限之后,通过对目标机器种植自启的远控不失为一种维持权限的手法,在这里提几种自启的手段.

  1. 首先是注册表自启,直接把运行的程序/脚本加入HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Run即可;或者是通过logon scripts脚本也可达到自启的目的,所需要做的就是在HKEY_CURRENT_USER/Environment这个注册表创建一个键名为UserInitMprLogonScript的字符串键,键值为需要自启的脚本或者程序.

    这两种方法几乎都要做到文件落地,而且查杀比较容易,但是添加手段比较容易.
    
  2. 攻击者可以通过Schtasks的方式每天在特定时间段或者开机的时候运行攻击者所指定的命令.例如schtasks.exe /Create /TN update /TR xx(your command) /SC ONLOGON /F /RL HIGHEST就是在每天开机的时候运行攻击者自定义的command.

  3. wmi后门的兴起主要是在defcon23之后的演讲,wmi后门触发的方式就不像前两种那么单一,他的触发点可以是开机或者是某个特定开关被触发(比如每周五早上九点)之类,wmi也可以结合powershell做到无文件后门,有兴趣的朋友可以自己去了解一下,这里附上PowerSploit的一段后门.

0x02 Windows隐藏用户的建立

Windows隐藏用户的建立主要参考3gstudent前辈这篇博文.其主要步骤如下:

首先即赋予当前用户对HKEY_LOCAL_MACHINE\SAM\SAM\该键值的完全访问权限(可读可写),然后通过net user命令添加一个不可见特殊账户,再从注册表HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names导出创建特殊用户的注册表然后删除它,并从注册表HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\找到特殊用户对应类型的注册表项并在导出后删除掉它,修改后者键F的值为管理员账户对应注册表键值(默认为HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000001F4)键F的值,再导入这两个注册表即可完成隐藏用户的建立.

0x03 Sid history构建DA后门

我们可以利用Sid History的特性为一个普通用户赋予域控权限,在mimikatz上面命令如下

mimikatz.exe
privilege::debug
sid::patch
sid::add /sam:test_account /new:dcfortest\administrator

在完成上述命令之后即可为test_account赋予了domain admins权限并且通过net user test_account /domain并不能看到test_account属于domain admins用户组.该后门的查杀需要管理员去域控翻看sid history的日志(id为4765和4766).

0x04 ACL后门

众所周知,普通用户对于sysvol目录只拥有可读不可写的权限,我们可以通过该方式来构建一个域的后门.在域控执行如下的powershell命令

icals c:\windows\sysvol\sysvol\dcfortest.com\policies\ /grant server1:F /inheritance:e

执行完成之后server1账户即拥有了对sysvol目录可读可写的权限,之后要做的事情不再赘述.

0x05 后话

只是介绍了一些比较基础的维持权限的手法,还有一些手法并没有写上,在这里只是起一个抛砖引玉的作用,欢迎大家多多指教.