Windows提权(一)———系统内核溢出漏洞提权
声明本博客内容仅供技术学习与安全研究之用严禁用于任何非法或未授权的活动。转载需注明出处。因不当使用导致的后果作者不承担责任。溢出漏洞是一种计算机程序的可更正性缺陷。溢出漏洞的全名缓冲区溢出漏洞。因为它是在程序执行的时候在缓冲区执行的错误代码所以叫缓冲区溢出漏洞。缓冲溢出是最常见的内存错误之一也是攻击者入侵系统时所用到的最强大、最经典的一类漏洞利用方式。成功地利用缓冲区溢出漏洞可以修改内存中变量的值甚至可以劫持进程执行恶意代码最终获得主机的控制权。利用Windows系统内核溢出漏洞提权是一种很通用的提权方法攻击者通常可以使用该方法绕过系统中的所有安全限制。攻击者利用该漏洞的关键是目标系统有没有及时安装补丁如果目标系统没有安装某一漏洞的补丁且存在该漏洞的话攻击者就会向目标系统上传本地溢出程序溢出Administrator权限。系统信息收集常用命令目标系统的名称、版本和补丁systeminfo | findstr /L /C:OS /C:KB主机名称和所有环境变量主机名称hostname 环境变量SET查看用户信息查看当前用户权限whoami 查看所有用户net user或net1 user 查看管理员用户组net localgroup administrators或net1 localgroup administrators 查看远程终端在线用户query user或quser查看远程桌面端口#通过注册表查看RDP端口 REG query HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp /v PortNumber #通过命令行查看 获取对应的 PID 号tasklist /svc | find TermService 通过 PID 号查找端口netstat -ano | find 1044查看网络情况网络配置情况ipconfig /all 路由器信息route print 查看 ARP 缓存arp –a 查看网络连接netstat –ano 查看防火墙规则命令如下 netsh firewall show config netsh firewall show state应用程序和服务查看服务的进程 IDtasklist /SVC 查看已安装驱动程序的列表DRIVERQUERY 查看已经启动的 Windows 服务net start 查看目录和文件权限icacls C:/Program Files/ 查看计划任务详情schtasks /query /fo LIST /v 查看服务的详细配置sc qc 服务名TermService使用WMIC枚举目标信息WMIC可以描述为一组管理Windows系统的方法和功能。我们可以把它当作API来与Windows系统进行相互交流WMIC在渗透测试中的价值在于它不需要下载和安装因为WMIC是Windows系统自带的功能而且整个运行都在计算机的内存中发生不会留下任何痕迹。查看计算机补丁安装详情wmic qfe list 查看系统位数wmic cpu get addresswidth 查看服务列表wmic service list brief 查看进程列表wmic process list brief 获取进程路径wmic process get description,executablepath 查看启动项列表wmic startup list brief 查看共享wmic share get name,path 查看已安装软件版本wmic product get name,version 查看是否为虚拟机wmic bios list full | find /i vmware 查看没有加引号的服务路径wmic service get name,displayname,pathname,startmode | findstr /i Auto | findstr /i /v C:\\Windows\\ | findstr /i /v 查看环境变量wmic ENVIRONMENT 查看path环境变量wmic ENVIRONMENT where namepath get UserName,VariableValue手动查找系统潜在漏洞获取目标主机的一个普通用户的shell后执行如下命令查看目标系统上安装了那些补丁systeminfo 或 wmic qfe get caption,description,hotfixid,installedon可以看到系统就装了哪些补丁使用目标机上没有的安装的补丁号对应的EXP进行提权。Windows不同系统提权的漏洞和相应的补丁请见https://github.com/SecWiki/windows-kernel-exploits#%E6%BC%8F%E6%B4%9E%E5%88%97%E8%A1%A8https://www.exploit-db.com/在线补丁对比平台https://i.hacking8.com/tiquanhttps://www.adminxe.com/CompareSys/自动查找系统潜在漏洞1、Windows Exploit SuggesterWindows-Exploit-Suggester是受Linux_Exploit_Suggester的启发而开发的一款提权辅助工具。通过下载微软公开漏洞库到本地“生成日期mssb.xls”文件然后根据操作系统版本跟systeminfo生成的文件进行比对。同时此工具还会告知用户针对于此漏洞是否有公开的exp和可用的Metasploit模块。微软公开漏洞库下载地址http://www.microsoft.com/en-gb/download/confirmation.aspx?id36982安装下载地址https://github.com/GDSSecurity/Windows-Exploit-Suggester安装xlrd库安装时指定xlrd库版本为1.2.0pip2 install xlrd1.2.0。因为xlrd2.0.1版本后不支持xlsx只支持.xls文件运行时会报错。使用更新获取漏洞库详细信息执行完之后会生成一个后缀为“-mssb.xls”文件该文件记录详细的漏洞信息python2 windows-exploit-suggester.py --update通过各种途径方法获取目标操作系统的systeminfo生成系统信息文件 并将生成的systeminfo信息的文件放在windows-exploit-suggester.py文件同一个目录下systeminfo systeminfo.txt执行python脚本文件查看目标网站存在的未修复漏洞信息并且给出漏洞的利用POC详细地址python2 windows-exploit-suggester.py --database xxxxx-mssb.xls --systeminfo systeminfo.txt2、MSF local_exploit_suggester 模块Metasploit内置模块提供了各种可用于提权的local exploits并会基于架构平台即运行的操作系统会话类型和所需默认选项提供建议。获取Session会话后background use post/multi/recon/local_exploit_suggester set session 1 exploit3、MSF enum_patches 模块会用metasploit中的post/windows/gather/enum_patches模块可以根据漏洞编号快速找出系统中缺少的补丁。run post/windows/gather/enum_patches总结在实战查找潜在漏洞的过程中建议手动结合自动同时还可以使用一些相关脚本辅助有不足的地方希望各位师傅补充。