dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2177
  • 铜币13448枚
  • 威望5905点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
阅读:1652回复:1

[阿里云] 云盾 web shell 发现及处理过程

楼主#
更多 发布于:2016-09-29 14:41
问题描述
阿里云报警

图片:houmen1.png




检查文件
file 172*
17285897515.jpg: PHP script text
17290674875.jpg: ASCII text, with very long lines, with no line terminators

紧急处理
移除web 目录,外部无法访问;

后续处理
1. 遍历web 日志 ,没有找到相关访问记录;
2. 检查系统,没有发现异常登陆信息;
3. 遍历上传目录所有图片,发现其它异常文件,并移除;
find ./ -type f > files.txt
while read line ;do file $line >> upload.txt ;done < files.txt
awk '!/csv|PNG image data,|JPEG image data,|GIF image data,|conclusion.txt/ && /text/ {print $1}' upload.txt


扩展
验证php木马程序是否能够执行;
#
dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2177
  • 铜币13448枚
  • 威望5905点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
沙发#
发布于:2016-10-09 18:06
一个古老的 php 解析漏洞
起因
话说阿里云.云盾发现了一个伪装图片的后门文件虽然是php木马程序,但是被 php 拒绝执行
详见 1楼

图片:houmen1.png



探究
好奇心驱使下,测试这个后门程序是否获取 web shell;

环境
php-5.6.x
以下均在在测试环境操作;

测试1:直接访问这个木马程序
1. 浏览器访问
curl -IL https://ywwd.net/upload/20160411/17285897515.jpg
HTTP/1.1 200 OK

2. nginx 日志
10.0.100.9 - - [22/Sep/2016:15:27:25 +0800] "GET /upload/20160411/17285897515.jpg HTTP/1.1" 200 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36" 123.124.X.X -

3. 小结
注意,nginx 日志中 最后的字段 '-' 这个是 $upstream_response_time 变量, 表示上游php-fpm 执行的时间,如果是 '-' 则表示非PHP文件,也就是代表这请求没有到达php,状态为 200表示 Nginx 成功执行,浏览器割裂的图片无法显示,这是正常的因为它是伪装的php木马程序,而非图片;

测试2:利用文件类型错误解析漏洞
1. 模拟浏览器访问
curl  https://ywwd.net/upload/20160411/17285897515.jpg/1.php
Access denied.

2. nginx 日志
10.0.100.9 - - [22/Sep/2016:15:21:21 +0800] "GET /upload/20160411/17285897515.jpg/1.php HTTP/1.1" 403 46 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36" 123.124.213.210 0.007

3. php 日志
[22-Sep-2016 15:21:21] WARNING: [pool www] child 2545 said into stderr: "NOTICE: Access to the script '/path/upload/20160411/17285897515.jpg' has been denied (see security.limit_extensions)"

4. 小结
我们在原有url 的基础上,添加了 /1.php ,而 nginx日志最后的字段不再是'-',而是 '0.007' 表示上游的php-fpm 执行时间,并且返回了403 与 "Access denied." 关键字;
php 日志,则提示的更明显 php-fpm 拒绝了本次的执行,并要求你查看 security.limit_extensions 选项;

测试3:抽风模式
配置(php-fpm.conf) security.limit_extensions = .php .jpg  
如愿以偿,终于执行了php木马程序;

图片:houmen2.png




总结

基于上面的3个测试栗子,如果不是作死,主动配置 php-fpm security.limit_extensions = .jpg ,想要执行伪装图片的php木马程序,很困难的;

#
游客

返回顶部