当通过漏洞获取目标权限后,可能会被管理员发现或者漏洞被修复,导致我们获取的权限失效。因此,需要隐藏后门,上传木马,使目标主动连接远控主机。
Windows权限维持
隐藏系统用户
使用net命令创建用户
net 命令创建用户时,在用户名后添加"$",可以创建隐藏用户。这里的隐藏单纯的值net user不会显示,但是可以再控制面板查看到。
介绍几条命令
目标 | 操作 |
---|---|
查看用户 | net user |
添加用户 | net user 用户名 /add |
改密码 | net user 用户名 密码 |
添加用户的同时改密码 | net user 用户名 密码 /add |
查看用户组 | net localgroup |
查看用户所在的组 | net user 用户名 |
设置为管理员 | net localgroup Administrators 用户名 /add |
删除用户 | net user 用户名 /del |
通过注册表克隆用户(解决后门用户可以在控制面板被发现的问题)
创建"hack$"后,在注册表:
HKLM\SAM\SAM\Domains\Account\Users\Names\hack$
将其导出。
具体操作:
- 找到hack$
- hack$的用户类型是"0x3f3",从"HKLM\SAM\SAM\Domains\Account\Users\“找到其对应的键值"000003F3”,其中"F"中有其权限信息,“Administrator"对应的键值是"000001F4”,用"Administrator"的"F"选项中的权限信息替换掉"hack$‘’用户的权限信息,然后将"000003F3"导出。
- net user hack$ /del 删除用户
- 双击导出的两个注册表并创建用户。
补充:win10看不到上边所说的注册表路径大多是因为权限不够,指对注册表做操作的权限。点击"编辑"然后点击权限如下,把你当前操作系统登录的用户加进去并赋予权限就好了(后序哪一步文件看不到了同上操作)。
主义修改F的值的时候,可以先将Administrator的F的值复制,直接黏贴在hack
的
F
中
,
然
后
在
删
掉
h
a
c
k
的F中,然后在删掉hack
的F中,然后在删掉hack的F中原来的值。(我自己改的时候,直接删掉善后黏贴无法修改)
shift后门
用"cmd.exe"替换"sethc.exe",下次直接按5次shift便可以以System权限执行操作。
启动项
Windows下有很多自动启动程序的方法,可以利用这些方法来进行权限维持,例如可以运行“gpedit.msc”进入本地组策略,通过Windows设置的脚本(启动/关机/登录/注销)来设置权限维持脚本启动,也可以通过修改注册表自启动键值添加维权脚本路径,从而实现自启动,或是直接将权限维持脚本放入开机启动文件夹来实现自启动。
下面列举了比较常见的启动文件夹、组策略脚本启动文件夹和注册表启动键值的命令。
计划任务
在Windows中通常用“at”和“schtasks”命令添加计划任务,计划任务可以使系统管理员在特定的日期和时间执行程序或脚本,因此可以通过计划任务来运行权限维持脚本,例如运行“at 22:00/every:M,T,W,Th,F,S,Su C:\exp.exe”命令每天自动执行“exp.exe”。
“schtasks”在权限维持中用得比较多,“schtasks”的常用参数如下:
假如计划任务以System权限每10分钟运行一次,命令为:
schtasks /create /sc minute /mo 10 /tn “test” /tr c:\Windows\system32\cmd.exe /ru system
隐藏文件
上传的木马后门为了避免被发现,可以使用“attrib”命令将文件隐藏,“+s”用于设置系统属性,“+h”用于设置隐藏属性。
例如:attrib C:\exp.exe +s +h
创建服务
通过“sc”命令创建新的服务来进行权限维持也是一种比较经典的方式,结合powershell还可以实现无文件后门。
运行命令“sc create test binpath= “cmd.exe /k C:\exp.exe” start= “auto” obj= “LocalSystem””,通过创建服务进行权限维持,待服务启动后,则会以System权限运行“exp.exe”。