今天练习的是VulnHub上DC:1这个靶机,下载地址连接如下,有兴趣可以自行下载研究。https://download.vulnhub.com/dc/DC-1.zip
DC-1靶机模拟了一个web服务器的环境,一共设计了5个flag,前4个都是通往finalflag的提示,难度比较小,适合于入门练习,渗透过程整理如下。
首先Nmap扫描靶机,了解基本信息,从结果中可知主机开放了80端口开放了apache web,并可知网站基于Drupal7,111端口开放了rpcbind服务。
浏览器打开网站,需要登陆才可以进一步操作。
在metasploit中搜索drupal相关的exploit模块,有好多可用,选择excellent级别最新的drupalgeddon2这个exploit尝试攻击。
查看此exploit的信息,可攻击版本低于7.58的drupal。
设置payload为php/meterpreter/reverse_tcp,反弹shell。
设置LHOST为自己的IP,RHOSTS为靶机IP。
执行攻击,成功获得shell。
查看系统信息,没什么有用的信息。
在shell下,发现靶机上安装了python环境,可以通过pty.spawn()获得交互式shell,体验会好很多。
查看当前目录,可以找到flag1,提示查看Drupal的配置文件,这个配置文件必须要关注,一般可以从内容中得到数据库用户名及密码。
这里发现了flag2,果然拿到了数据库用户名及密码,又知道了数据库为mysql。
利用拿到的密码连接数据库寻找有用的内容。
数据库只有drupaldb一个。
drupaldb中的表有很多,仔细查看是否有可利用的内容。
找到了一个users表,猜测应该是和登录账号有关。
查询表中的内容,找到了admin用户和加密后的密码。可以利用hashcat对加密后的密码进行破解,但比较耗时,我选择了另一个更直接的方法。
在exploitdb中有一个Drupal7的攻击脚本,可以增加一个admin权限的账号。
执行脚本进行攻击。
增加了一个admin1用户,密码为admin1。
登陆系统,找到了flag3,这里提示我利用find的-exec参数。
回到shell中,利用cat读取/etc/passwd内容,发现有一个flag4用户。
到/home/flag4目录下找到了flag4。
利用find命令查找设置了SUID的可执行文件,结果找到了find自己
,怪不得flag3提示利用find的-exec参数,因为find在执行时临时得到了root权限,所以-exec后面的命令是以root权限执行的,那就执行一个/bin/sh不就拿到root shell了么。
试一下,一次成功,毫无悬念。
最后在root目录下找到了最后的flag。
这个靶机的难度不在于得到最终的flag和root,难点在于把这5个flag都找到
。