权限提升-windows内核溢出漏洞提权

一、课时目标
1、理解权限提升的原理和目的
2、掌握常规提权的思路和方法

二、权限提升
2.1 什么是提权
提权,就是提高自己在服务器中的权限。比如在windows下从普通用户提升到administrator或者system权限,linux下普通用户提升到root权限。

2.2 为什么要提权
用户的权限决定了其能够访问的资源。在渗透测试中,我们通过某种方式(比如上传webshell)获取到一个执行命令的shell,但它是一个低权限用户,所以不能执行某些系统命令或者访问某些关键系统资源。此时如果我们想要获取更高的控制权就需要提权。

一般情况下,我们将 提权的方式分为三类:windows提权,linux提权,第三方服务提权)

三、windows提权
3.1 windows内核溢出漏洞提权(缓冲区溢出漏洞)
相关概念
缓冲区: 在内存空间中预留了一定的存储空间用来缓冲输入或输出的数据。 通俗的讲,缓冲区就是当你打开应用程序或者文件的时候,系统会将数据从内存中复制一份到缓冲区,当再次打开时,系统直接从缓冲区读取,提高打开的速度。

缓冲区溢出 : 在程序试图将数据放到及其内存中的某一个位置的时候,因为没有足够的空间就会发生缓冲区溢出。缓冲区溢出就好比是将十升水放进只有五升容量的桶里。很显然,一旦容器满了,余下的部分就会溢出在地板上,弄得一团糟。

缓冲区溢出攻击的目的
缓冲区溢出的目的在于扰乱具有某些运行特权的程序的功能,这样可以让攻击者取得程序的控制权,如果该程序具有足够的权限,那么整个主机就被控制了。

为了达到这个目的,攻击者必须达到两个目标:
1.在程序的地址空间里安排适当的代码;
2.通过适当地舒适化寄存器和存储器,让程序跳转到安排好的地址空间执行。

在实际场景中,攻击者写一个超过缓冲区长度的字符串,植入到缓冲区时可能会出现两种结果:一是过长的字符串覆盖了相邻的存储单元,引起程序运行失败,严重的可导致系统崩溃;另一个结果就是利用这种漏洞可以劫持进程、执行任意指令,甚至可以取得系统权限。

漏洞利用
Windows系统内核溢出漏洞提权是一种很通用的提权方法,攻击者通常可以使用该方法绕过系统中的所有安全限制。攻击者利用该漏洞的关键是目标系统有没有及时安装补丁,如果目标系统没有安装某一漏洞的补丁且存在该漏洞的话,攻击者就会向目标系统上传本地溢出程序,溢出Administrator权限。
提权流程:
(1) 获取到一个低权限shell后,执行systeminfo命令查看系统安装的补丁列表
(2) 根据补丁程序与微软的漏洞数据库进行比较,找出可能导致权限提升的漏洞.

案例1:windows exploit suggester提权辅助工具
当我们用该工具来探测某一个系统时,他会告诉我们该系统有哪些exploit可能可以利用。该工具先假设一个系统存在所有的相关漏洞,然后根据补丁信息再去排除 。 (当然也会存在误报,如果一台机器没有启用某个服务,那么该服务的漏洞会回显但是实际不存在)
使用环境:python2.7

(1)首先更新漏洞数据库,会生成一个xls的文件,
python windows-exploit-suggester.py --update

(2)执行命令查看目标主机系统信息,保存为sysinfo.txt文件:

systeminfo > sysinfo.txt
(3)运行如下命令,查看该系统是否存在可利用的提权漏洞:
python windows-exploit-suggester.py -d 2021-10-17-mssb.xls -i info.txt
权限提升-windows内核溢出漏洞提权_第1张图片
(4)选择相应的漏洞溢出程序上传并执行
权限提升-windows内核溢出漏洞提权_第2张图片

案例2:利用msf种的local_exploit_suggester模块
前提是通过msf已经获得了目标主机的一个session
use post/multi/recon/local_exploit_suggester
set session 1
exploit

案例3:enum_patches模块
利用metasploit中的post/windows/gather/enum_patches模块可以根据漏洞编号快速找出系统中缺少的补丁。使用如下:
use post/windows/gather/enum_patches
set session 1
exploit

你可能感兴趣的:(系统安全,安全,linux)