由一道入群题学习内网渗透基础
题目名称:ctf473831530_2018_web_virink_web
- 页面打开是源代码
1 | <?php |
- 利用
1=>filename
的特性创建特殊的文件,然后ls -tr
列文件拼出完整的shell。exp如下:
1 | import requests |
- 就可以成功写入一句话木马,通过小马利用蚁剑传一个大马上去(ps:这里使用的是kali自带的weevely3)
1 | weevely generate pass /home/hw/桌面/1.php |
- 结合提示python3以及flag不在此serve,可以想到需要内网渗透,但是tmd ifconfig等查ip的命令都被禁用了,这里可用cat /etc/hosts或者 cat /proc/net/fib_trie查看,另外包含phpinfo页面也可成功拿到本机ip
- 使用weevely3连接大马,进行下一步操作
1 | weevely http://d9cdeeab-00ae-45c0-bc56-45fb800d996a.node3.buuoj.cn/sandbox/0098771fc87704c388bc566c6cd8104b/1.php pass |
上传一个ip&port扫描的脚本:
1 | #!/usr/bin/env python3 |
简易版本端口扫描:
1 | import socket |
可以在结果发现,172.16.233.111开放了80,873,9000端口,继续写脚本探测80端口:
1 | #!/usr/bin/python3 |
老高做的时候用net_curl命令进行探测
873对应Rsync,9000对应FPM。我们先试试9000的FPM漏洞。
利用在Phithon牛一篇文章(https://www.leavesongs.com/PENETRATION/fastcgi-and-php-fpm.html)中的脚本(https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75)读取一下目录
发现存在flag,但是没有权限读取。利用rsync可以读取flag
简单来说rsync是可以实现增量备份的工具,默认端口为873
rsync可以实现scp的远程拷贝(rsync不支持远程到远程的拷贝,但scp支持)、cp的本地拷贝、rm删除和”ls -l”显示文件列表等功能
这里要关注的是rsync daemon模式
rsync daemon是向外提供服务的,这样只要告诉了别人rsync的url路径,外人就能向ftp服务器一样获取文件列表并进行选择性地下载
所以我们可以利用这一点获取rsync允许访问目录下的文件。
rsync daemon是”rsync –daemon”或再加上其他一些选项启动的,它会读取配置文件,默认是/etc/rsyncd.conf,并默认监听在873端口上,当外界有客户端对此端口发起连接请求,通过这个网络套接字就可以完成连接,以后与该客户端通信的所有数据都通过该网络套接字传输。
根据这篇文章介绍的https://www.cnblogs.com/f-ck-need-u/p/7220009.html#auto_id_0
首先查看/etc/rsyncd.conf
定义了模块src
,路径中包含flag,
那么可以使用命令rsync 127.0.0.1::src/7h1s_i5_f14g /tmp/
将flag备份出来
参考资料:
https://tiaonmmn.github.io/2019/09/09/BUUOJ%E5%88%B7%E9%A2%98-Web-ctf473831530-2018-web-virink-web/