漏洞赏金和安全测试 | 关于fastcgi的一些小故事
2022-8-24 14:17:21 Author: mp.weixin.qq.com(查看原文) 阅读量:27 收藏

目录:
  • 0x00 前言

  • 0x01 扫描检测思路

  • 0x02 利用思路

  • 0x03 全球检测.

  • 0x04 关于`bounty`

  • 0x05 影响

  • 0x06 关于大网蜜罐

  • 0x07 不错的文章解读

  • 0x08 最新动态

  • 0x09 招聘推荐

0x00 前言

历史背景,很多php系的公司,其实会用fastcgi的模式,集群的模式去部署php应用. (今天看到有几个群在讨论,多说2句)

当然里面会存在一些安全问题.

漏洞利用的话,一般会为2个版本.

php<5.3.9 ,比如知道主机上的任意文件路径/etc/passwd, 其实就可以任意php代码执行,属于rce类漏洞了。

php>=5.3.9 或者 php7+ 等版本时(安全加固了),需要知道一个php类型文件的绝对路径, 才可以同上攻击.

0x01 扫描检测思路

  • 端口上: 默认9000端口(适合全球扫描),直接发送fastcgi格式的包,不管是啥php版本,都可以检测出来。但是为了统一回显检测. 可以指定一个不存在的路径

如上图,masscan等工具检测9000端口open,然后发送这个数据包,然后进行回显识别即可.这是16-17年一个工具,差不多masscan的速度,nmap的精度. 现在的 goby/fscan等工具,其实也都是这个宗旨,最快的速度,最少的交互,最好的指纹识别.

  • Web层识别.直接盲打
    • 如果有人以内存shell模式,或者fastcgi等端口上,打过攻击的话。其实用多线程盲打,是有很大的概率,可以扫描出来的。但是不适合全球类扫描.

0x02 利用思路

综上所述,基本都是高版本php的情况,获取任意一个php文件的绝对路径,是漏洞利用的大前提。

解决思路:

  1. 有web接口的,各种php的报错语法,如str参数传入[]. 如各种cms等,常见报错路径。以及phpinfo等等,尽力获取一个绝对路径
  2. 搜集所有发行版centos/ubuntu/debian等各版本的预装php后,默认环境里存在的php文件路径.
  3. 搜集各种一键编译环境lnmp/宝塔/wammp/phpstudy等等,里面默认的php文本路径
  4. 搜集各种nginx/apache2fastcgi环境下的web目录,然后拼接index.php等常见文件列表
  5. 其他组合漏洞思路,获取php文件绝对路径等等.

综上各角度,可以搜集一个比较合适的php路径字典了. 然后利用时,遍历这份路径即可. 之前的mac挂了,路径列表,我也找不到了😭

路径举例有

/usr/lib/rpm/macros.php
/usr/lib/php/build/run-tests.php
/etc/rpm/macros.php
/usr/lib/rpm/macros.php

0x03 全球检测.

  • masscan 扫全球大网ipv4段,合适的扫描机,大概6个小时不到,可以扫完
  • 然后精准指纹识别. 配置文件如下.
9000,AQEAAQAIAAAAAQAAAAAAAAEEAAEAlwEADxNTQ1JJUFRfRklMRU5BTUUvZXRjL2lzc3VlYXNkYXNkYXNkDQFET0NVTUVOVF9ST09ULw8QU0VSVkVSX1NPRlRXQVJFZ28gLyBmY2dpY2xpZW50IAsJUkVNT1RFX0FERFIxMjcuMC4wLjEPCFNFUlZFUl9QUk9UT0NPTEhUVFAvMS4xDgNSRVFVRVNUX01FVEhPREdFVAABBAABAAAAAA==,fastcgi

0x04 关于bounty

  • 某国内厂商的几个RCE
  • 某国外厂商HHVM(类似php的高性能版)

0x05 影响

当利用过一次后,就会污染php-fpm等一个线程,当外部web请求,遇到此线程时,有概率会造成业务影响。真实环境发生过几次. 😳

提示: 尽量不要在生产环境进行此类探测,否则就是留了个后门.

0x06 关于大网蜜罐

之前写过一个简单的全端口低交互蜜罐,大概是16-17年开始跑的,因为数据量太多,es里面可能只存留了近2年的数据了。不过按我们扫描的指纹去反向关联,还是可以观测到不少探测行为的.

  • 搜索语句
local_port:9000 AND remote_data:php AND NOT remote_data:cgi-bin
  • 攻击频次
  • asn来源
  • 探测数据包
//路径
/app/public/index.php
/app/index.php
/usr/local/lib/php/PEAR.php
/usr/share/php/PEAR.php
//php code
<?php echo shell_exec('echo kksdfdfg|md5sum');
//echo kksdfdfg|md5sum
3f03cdf811a0afccfeb65f12f2f946d7  -
  • 老六延伸行为

低交互蜜罐,可以简单的做个指纹判定,遇到这个md5sum的,给他返回正确的hash, 说不定还能观测到下一步行为。😄

  • 其他报告hinehinehine.livedoor.blog

0x07 不错的文章解读

  • https://github.com/piaca/fcgi_exp
  • Fastcgi协议分析 && PHP-FPM未授权访问漏洞 && Exp编写PHITHON
  • 利用 PHP-FPM 做内存马的方法wofeiwo

0x08 最新动态

  • 知识星球: 红蓝早读 (碎片记录)

  • 公众号: 甲方安全建设 (整理沉淀)

  • 作者: red4blue (交流讨论)

公众号增改字数和次数有限,防御检测策略,其它拓展思考,可能会留到群里讨论,留到星球沉淀.

0x09 招聘推荐

最后

Follow Me

微信/微博: red4blue

公众号/知乎: blueteams


文章来源: http://mp.weixin.qq.com/s?__biz=MzU0MDcyMTMxOQ==&mid=2247487096&idx=1&sn=3ec69581f3bd8844ca2ce9a88c108761&chksm=fb35a7b0cc422ea61e9a1942e5116f6f930e59ce48074211e5b8a45674e1dccef8b2bc997140#rd
如有侵权请联系:admin#unsafe.sh