继续查看searchsploit搜索出来的exploit,其中有些exploit的描述信息中带有(Metasploit),表示这个exploit已经被集成到了Metasploit中,所以下面我们就使用Metasploit来继续进行shentou。
Metasploit Framework(通常简称MSF),是一个强大的漏洞利用和测试平台,其中集成了大量的漏洞利用工具,并且不断更新。在Kali中集成了MSF的社区版本,这是一个精简后的免费版本,但也足够我们学习研究使用了。
在MSF中主要包含了以下模块:
- exploit:shentou模块,用于针对目标漏洞发起shentou测试。
- payload:gongji载荷,payload是在目标系统被成功shentou后执行的代码,payload中的主要内容是Shellcode,用于获取Shell。
- auxiliary,辅助模块,执行扫描之类的操作。
- encoder,编码器模块,用来对代码进行混淆,从而绕过安全保护机制的检测。
- post,后shentou模块,在拿到Shell和权限之后,进一步对目标和内网进行shentou。
- evasion,混淆模块,生成能够绕过杀毒软件的Shell。
- nop,空模块,生成代码中的空,比如在汇编指令中,不做任何操作即为nop。
一般都是先使用exploit对目标系统进行shentou,成功后再执行payload。
在使用MSF之前,最好先进行初始化,由于MSF使用的是postgresql数据库,所以首先在Kali中运行postgresql服务,然后再执行msfdb init命令对MSF的数据库进行初始化。
然后执行msfconsole命令运行MSF,进入Metasploit控制台,这是一个交互式的操作界面,执行db_status命令可以查看MSF数据库的连接状态。
运行MSF之后,显示版本为6.1.14,该版本的MSF共包括了2180个exploits、1155个auxiliary以及592个payloads等。
下面我们就在Metasploit中查找与Drupal相关的exploit:
可以看到编号为1的exploit发布的时间比较近,而且等级是excellent,所以这里就使用这个exploit进行测试。
执行use命令可以调用指定的exploit,这里可以使用exploit的名字,也可以使用它的编号。
使用名字:
使用编号:
在打开一个模块之后,通常都要先执行show options命令查看该模块有哪些选项需要设置。
其中Required标注为yes的是必须要设置的选项,大部分选项都已经有了默认值,这里我们需要设置的是RHOSTS选项,用于指定靶机的地址。
执行set命令可以对选项进行设置,设置完成后再次执行show options确认所有选项都已经设置好。
exploit往往还要结合payload一起使用,这个exploit已经自动调用了一个payload来配合。MSF中的payload其实就是一个muma程序,客户端在靶机上执行,服务端在Kali上执行,所以这个payload会在Kali上开启4444端口,等待客户端在靶机上运行后,自动来连接Kali。
所有的选项都设置好之后,执行run或者exploit就可以开始实施gongji。成功之后,会产生一个Meterpreter会话,这是由MSF给提供的一个Shell。
执行help或?可以显示Meterpreter中提供的所有指令,执行shell命令可以获得一个系统Shell。
在系统Shell中就可以执行各种Linux命令了,执行id命令查看当前用户的身份,发现是www-data用户,www-data是Nginx的默认用户,权限比较低。
执行pwd命令可以查看到当前工作目录是/var/www,执行ls查看当前目录中的文件,在其中发现flag1:
至此我们就获得了2个flag:flag1和flag3,flag1中的内容同样是一个提示: