Vulnhub之DC-2过关记录

时间:2022-07-23
本文章向大家介绍Vulnhub之DC-2过关记录,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

DC-2描述:

参考链接:https://www.five86.com/dc-2.html

步骤流程图

工具使用:

nmap

cewl

wpscan(wordpress 扫描)

find 提权

环境准备

1.下载DC-1靶机 2.将DC-2.ova导入到VMware中(具体流程:略) 3.用ip addr查看本机IP

自己Kali作为攻击工具主机地址为:192.168.33.110

信息收集

a.主机探测

(因为从Vulnhub中下载得到的DC-2靶机,通过DHCP获取得到地址)

root@kali:~# nmap -sP 192.168.33.0/24

通过对比分析得到,DC-2靶机的地址IP为:192.168.33.129

b.扫描主机

(探测靶机开放的端口和对应的服务)

root@kali:~# nmap -sS -sC -sV -p-192.168.33.129

从扫描的结果可知,80端口开放,默认ssh的22端口被更改为7744

c.信息验证

访问 http://192.168.33.129

没想到竟然访问不通。但此时仔细观察我们访问http://192.168.33.129,重定向到了http://dc-2

所以我们通过vim 编辑 /etc/hosts添加主机解析

再次再浏览器上输入http://dc-2可以进行正常访问,打开之后看到是使用wordpress的cms框架搭建的主页。主页上面有Flag字样,点击进入内容如下:

Flag1内容大概意思是:常用的字典列表不好使了,需要使用cewl一下;密码越多越好,但是你不可能得到所有的密码;登录来看看下一个提示。

3.渗透测试

a.flag2.txt

按照提示,使用cewl(是一个字典生成工具,能爬取指定页面生成密码字典)。

使用cewl -h 获取帮助得知参数意义

使用命令:

root@kali:~#cewl -w dc2_passwd.txt http://dc-2/

现在有了密码字典,但是还不知道用户名,这个时候搜索一下看看kali针对wordpress 的cms有没有什么扫描器

搜索结果得知,可以使用wpscan来实现扫描功能。 使用命令

root@kali:~# wpscan --url http://dc-2/ -e u
(-e u是枚举用户名,默认从1-10)

从扫描的结果来看,可以得到wordpress版本:4.7.10;wordpress的主题:twentyseventeen;有三个用户admin jerry tom

现在确定了已知的用户名和密码范围的密码文件,下面肯定也知道我要做什么了!没错就是暴力猜解。 从wpscan的帮助可看到可以实现上述功能,从而继续使用该工具。

把3个用户名保存dc2_username.txt之中

暴力猜解使用命令: root@kali:~# wpscan —url http://dc-2/ -Udc2_username.txt -P dc2_passwd.txt

通过枚举发现 jerry 和 tom的密码。

进一步寻找后台登录页面进行登录 使用dirb 目录遍历工具进行遍历 使用命令:

root@kali:~# dirb http://dc-2

从扫描结果可知地址:http://dc-2/wp-admin/可以进行利用。使用jerry用户和密码进行登录

点击后台各个页面,发现了一个flag2页面

大概意思是:如果你没有办法从wordpress突入,那么需要找到另外一个入口点

b.flag3.txt

这时回想还有一个ssh 7744端口处于开放状态,些许还可以利用。话不多说,直接连接开干。

使用jerry用户名并不能ssh登录,使用tom用户再次尝试,成功进入。

查看机器中有哪些文件,ls当前有一个flag3.txt使用cat more命令查看均报错

再更换常用查看命令less ,成功查看。

大致意思是:可怜的老汤姆总是在追求杰瑞。也许他应该为他所造成的压力而道歉。 这里是不是看不明白了。这里如果翻译就失去了提示的意义。flag3.txt的提示目的是下一步进入jerry。

但很明显此时的shell是rbash,所以 shell被限制了。这里就一个疑问还有可以允许哪些命令查看。翻看查看得到usr目录下得知。

可使用less ls scp vi等命令。 查看各位表哥绕过的方式可以通过尝试从vi切换到bash。(留下了没有技术的眼泪) 输入 vi 之后:

:set shell=/bin/bash
:shell
``

查看此时环境变量PATH,得知只有当前usr下的bin文件,所以还需设置环境变量

tom@DC-2:~$ export PATH=/bin:/usr/bin:$PATH
tom@DC-2:~$ export SHELL=/bin/bash:$SHELL

这时我们发现可以使用的命令不再没那么局限。

c.flag4.txt

尝试使用su jerry 进行用户切换。

成功进入。查看jerry用户下有哪些文件。 ls 提示没有权限发现在tom的家目录下

执行cd /home/jerry家目录下,查看得到flag4.txt

flag4.txt文件内容大概意思是:很高兴看到你已经走了这么远,但你还没有到家。您仍然需要获得最后的标志(惟一真正有意义的标志!!)。这里没有提示——你现在只能靠自己了。

最后还有一句 go on – git 可知提示下面是关于git的相关操作

d. final-flag.txt

现在都在非root权限下,目前首要问题要来点高权限可执行操作才行。 这里试试find提权,尝试找到具有root权限的suid

执行命令:

jerry@DC-2:~$ find / -perm -u=s -print2>/dev/null

发现有sudo 可以进行利用,再结合提示给的git,可以进行搜索利用方式了。

得知执行sudo git help status,加上 ! /bin/bash便可提权

此时可以看到我们已经成功提权,成为root用户身份。 根据前几个flag存放的位置都是都在相应用户的家目录,所以我们直接到root家目录直接寻找flag文件即可。