Vulnhub_DC系列靶场-DC2攻略
发表于:2023-03-01 | 分类: DC靶场系列教程

0x1 靶场介绍

DC-2官网给的介绍是这样的:

Much like DC-1, DC-2 is another purposely built vulnerable lab for the purpose of gaining experience in the world of penetration testing.
As with the original DC-1, it’s designed with beginners in mind.
Linux skills and familiarity with the Linux command line are a must, as is some experience with basic penetration testing tools.
Just like with DC-1, there are five flags including the final flag.
And again, just like with DC-1, the flags are important for beginners, but not so important for those who have experience.
In short, the only flag that really counts, is the final flag.
For beginners, Google is your friend. Well, apart from all the privacy concerns etc etc.
I haven’t explored all the ways to achieve root, as I scrapped the previous version I had been working on, and started completely fresh apart from the base OS install.

靶场搭建方法:
直接去官网下载:https://www.vulnhub.com/entry/dc-2,311/
然后你会得到一个.ova类型的文件,确保你电脑上面安装了vmware,然后双击进行导入,接着把网卡模式设为NAT模式,确保攻击机和靶机处于同一个网段下,能相互进行通信。

本实验采用的环境:
靶机:DC-2
攻击机:Kali Linux
虚拟环境:Vmware workstation 15.0


0x2 信息搜集

  1. 搭建完成后扫描内网的主机:
    fscan
    使用的工具为:fscan , 通过扫描我们可以发现靶机的地址为:192.168.23.132,靶机开放了80端口,显然是一个web服务了,并且还指出了跳转的url为http://dc-2/,那么接下来我们直接通过ip地址进行访问试试看。
    unableconnect
    这里出现了第一个坑,居然显示无法连接!我的配置明明是正确的啊!我再次检查了一下虚拟网卡的配置情况,再次确定了配置的正确性。难道是虚拟机不允许用ip地址直接访问?带着这个疑问,我修改了攻击机kali的hosts文件,让他指向靶机的域名dc-2。
    nano /etc/hosts
    修改hosts
    果然就像我猜想的那样子,成功进入了web页面,靶机的网站是一个博客页面,如下图所示。
    web
    进入页面后,我们继续查看有关信息,发现了一个flag的博客文章,通过描述我们知道这是第一个flag,接下来提示我们使用一个叫cewl的工具来进行密码破解。那么经过这样的描述,后台肯定有密码登录的界面咯!通过Wappalyazer工具,我们很轻松的发现了网站的CMS,如下图所示,网站是用wordpress搭建的,后台使用的语言是php,数据库是mysql。
    wapplyazer
    既然是wordpress,那么肯定是有管理页面的。我们进入默认的管理页面http://dc-2/wp-admin/试试看,发现果然看到了登录的页面。
    login
    好的,那么接下来就是密码字典的问题了,通过上面的提示我们可以知道,密码字典是通过叫cewl的工具进行生成的。我在百度上查找了该工具的用法,对网站的进行了密码字典生成。
    cewl -w passwd.txt dc-2
    cewl

0x3 渗透测试

当一切准备就绪后,渗透正式开启。接下来就是进行密码爆破了。由于我们知晓网站使用wordpress搭建的,那么我们可以使用wpsan工具对网站的用户名进行猜解,并且对网站的密码进行爆破。

wpscan --url http://dc-2 --enumerate u

user
成功发现了三个用户,分别是admin、jerry、tom,其中admin是管理员用户,其他的是普通用户。使用刚刚生成的字典对用户名的密码进行爆破。

wpscan --url dc-2 -P /home/kali/passwd.txt -U admin
wpscan --url dc-2 -P /home/kali/passwd.txt -U jerry
wpscan --url dc-2 -P /home/kali/passwd.txt -U tom

经过测试发现成功爆破出了用户名对应的密码
jerry
tom
但是admin的密码仍然不对,看来只能先进入普通用户的后台了。这里有两个用户,都尝试登录一下,发现了flag在jerry用户的底下。除了获取到flag以外,它提示我们需要登录,那么能不能尝试用ssh登录呢?我尝试使用nmap扫描了一下端口,发现22号端口是关闭的,但是我发现了一个奇怪的7744端口,并且nmap提示了service是ssh!好家伙,这是把端口改了是吧!从7744端口登录。
nmap
经过测试我发现,只有tom用户可以登录ssh,jerry用户默认关闭了远程的ssh登录。
在这里插入图片描述
这里遇到了新的坑,就是tom账户的所有常见命令都被禁用了!最后测试只有vi可以使用,在tom家目录发现了flag3.txt,可以使用vi进行查看。flag3.txt中只有一句话:

Poor old Tom is always running after Jerry.Perhaps he should su for all the stress he cause.

好家伙!这步妥妥暗示着让我提权么,而且是切换到jerry用户进行提权啊。但是su命令被禁用了,怎们进行切换用户呢?后来查百度发现,原来是需要用两个新的命令切换到sh命令行,来恢复被禁用的命令。

BASH_CMDS[a]=/bin/sh;a
export PATH=$PATH:/bin/

通过上述命令应该就能恢复基本命令的使用了,来验证一下,使用cat查看flag3的内容,正常输出。切换到jerry用户,输入密码,成功进入jerry用户账户。
jerry
在jerry用户目录发现了flag4.txt,jerry用户没禁用常用命令,使用cat可以查看flag4的信息。
flag4
提示我还有一个flag,需要提权到root用户才能查看。我先用查看一下可以怎样进行提取,输入以下命令查看具有root权限执行的程序。

sudo -l

sudo
发现了一个git可以无密码使用root命令,那么应该可以借助其进行提权了。git提权要注意,窗口不能太大,不然不能回显出命令行,那么先把ssh的窗口进行缩小,然后输入以下命令:

sudo git help config

然后输入如下命令完成提权,会显出root命令行:

!/bin/bash

sh
接着在弹出的root命令行中把root用户的密码更改了,就可以切换到root用户了,成功拿到root权限了,渗透测试完成!
root


0x4 练习总结

  1. 该靶场为渗透测试提供了很多的思路,能够很好的开拓自己的眼界和方法。
  2. 靶场涉及了git提权、抓取网页密码字典等基本知识。

OK,就到这里啦!如果你喜欢欢迎关注我!
博客:https://littlewith.github.io/
个人主页:https://littlewith.top/
不定期更新网络安全、软件开发系列文章!

上一篇:
Vulnhub_DC系列靶场-DC1攻略
下一篇:
主页上新!