本文从文件上传的定义,文件上传的IDS规则,文件上传的示例,文件上传的告警研判,文件上传的处置建议等几个方面阐述如何通过文件上传类型的告警的线索,开展日常安全运营工作,从而挖掘有意义的安全事件。
文件上传定义
文件上传在安全领域特指文件上传相关的漏洞,关于文件上传漏洞的原理详见这里,如果想详细的了解文件上传的原理,和对应的漏洞举例,可以移步到前面的文章。
文件上传数据包
如下通过常见的文件上传数据包的示例进行介绍。
文件上传案例一
图1
此处通过文件上传功能上传一句话木马的.php文件。
文件上传案例二
图2
此处通过文件上传功能上传.ini配置文件,但是文件的内容故意使用图片文件的开头GIF89a。
文件上传案例三
图3
此处通过文件上传功能上传.jsp文件。
文件上传规则
针对上述文件上传的数据包,针对HTTP协议文件上传类漏洞的通用规则如下:
alert http any any -> any any (msg:"HTTP文件上传漏洞检测"; flow:to_server,established; file_data; content:"Content-Disposition|3a| form-data|3b| name=|22|file|22|"; nocase; content:"filename=|22|"; nocase; pcre:"/filename=[^;]+?.(php|pl|py|jsp|asp|aspx|exe|dll|sh)/U"; reference:url,https://www.owasp.org/index.php/Unrestricted_File_Upload; classtype:attempted-user; sid:1000001; rev:1;)
如果想要获取更多的文件包含相关的规则,可以参考ET的开源规则,改规则集合是业内比较知名的规则集,下载地址见这里。当然也可以购买商业付费版的ETPRO规则集,这里,以及snort规则集,这里。ETPRO规则集专注于通用攻击的检测,Snort规则集专注于漏洞方面的检测,价格上snort较为便宜。
上述规则可以看到文件上传的检测逻辑有两点:
- Content-Disposition 以及filename等监测点用来检测HTTP文件上传行为
- php,py,asp,exe等检测上传特定后缀的文件
原因在于正常的业务中,允许上传的往往是图片,txt文件,word类型的业务文件。当上行数据中出现传输可执行脚本的文件,即往服务端上传脚本文件,往往非常的可疑,通常安全设备会针对该种类型进行告警。
单纯的从上述规则的检测点得出的告警是无法确认行为是否是恶意行为,因为的确可能存在管理员上传脚本的情况,上传可执行文件有的时候也是正常的业务行为。这个时候运营人员往往需要结合告警的payload,其他关联行为进行调查取证。也就是以文件上传告警为线索,综合上传文件内容,是否存在关联漏洞,攻击者和受害者信息,是否存在杀伤链上关联的其他操作,才能最终定性一次完整的安全事件。因此针对文件上传,相关额研判内容包括如下。
文件上传研判
下面介绍运营人员研判文件上传类告警的几个维度,包括是否为特定的漏洞利用,文件的payload是什么,攻击者是谁,受害者资产,是否关联其他操作。
关联漏洞研判
如果能够知道数据包是针对某个漏洞的利用,那么表明正在利用漏洞进行文件上传,而非正常通过业务接口进行文件上传,则该告警事件需要进一步关注。如何将已知的数据包和特定漏洞检测相关联有几种方法:
看看告警设备是否命中漏洞相关的规则
根据其中的URL关键信息,搜索对应的POC,看看是否对应上
将该流量和大量的开源规则进行碰撞,看看是否命中。后续会介绍了使用wireshark+开源snort规则进行漏洞碰撞的方法,详见专栏《安全分析师》这里。
payload研判
可以从数据包的payload获取其意图,如下:
图1中上传的payload是一句话木马,行为非常的可疑。因为一句话木马往往和webshell存在着紧密的联系。
图2,3中上传的是一个特定文件,如果无法通过经验判定。针对特定文件判定恶意的方法为:1,将pcap中的文件数据还原出来,还原的方法见这里;2,通过md5sum命令取文件的MD5值,在VT中搜索即可。3,如果VT中没有对应的结果,针对可执行文件可以通过开源的沙箱动态执行,可获取行为分析报告,通过行为报告进一步的研判。图2中需要到主机查看对应的shell.png才能定性,但是从ini文件伪装成GIF89a开头的文件基本可以得出这是一次恶意的行为。
通过payload基本能够判断出文件上传的初步目的是什么,即该文件可以被用来做什么。对于具备恶意企图的文件,则该告警事件需要进一步关注
攻击者研判
通过源IP可以了解,攻击请求的发起者是谁。通过威胁情报分析,判定黑灰产IP以及恶意攻击。如下图4为微步情报所示恶意IP:
图4
通过情报显示攻击者IP为恶意,则该告警事件需要进一步关注。后续会介绍了使用wireshark+威胁情报进行碰撞的方法,详见专栏《安全分析师》这里。
攻击结果研判
通过对上述文件上传返回值的判定,研判文件上传利用是否成功。可以看到图1,2 HTTP协议层面该利用返回为200OK,疑似成功,如果响应的payload部分有明显的的上传成功字样,则该告警事件需要进一步关注,需要第一时间到对应的主机调查取证。
杀伤链研判
针对文件上传漏洞的利用,如果能够关联到杀伤链上前后的行为。比如通过搜索受害者IP,看看漏洞利用之前是否存在扫描行为告警,漏洞利用之后是否存在webshell利用行为。如果存在关联行为,能够还原攻击路径,则该告警事件需要进一步关注。当然以文件上传为核心,关联更多的攻击手段,本质上要对文件上传的EXP常见利用比较熟悉。
相关资产研判
资产的数据往往需要到客户的系统中进行额外的查询,如果作用的资产是非常重要的,那么重要程度也应该增加,则该告警事件需要进一步关注
可以看到,通过关联的漏洞,攻击的payload,攻击者IP情报基本能够判断攻击者的意图,比如文件上传利用的是某个重要组件漏洞,上传内容为一句话木马,攻击者IP为某个恶意IP组织,表明为恶意攻击者的蓄意攻击行为。
再通过攻击结果,杀伤链关联的其他动作,作用的资产能够判断该攻击的严重程度。比如对于上传成功,且存在后续webshell连接,作用在重要WEB服务器的攻击是需要立即进行响应的。
上述即针对文件上传一些常见的研判思路
文件上传处置建议
从安全运营的角度来看,文件上传的处置建议通常如下:
- 封禁攻击者IP地址,防止恶意IP的再次利用
- 查看对应的资产是否存在文件上传的漏洞,若存在,加入后续漏洞修补计划
- 针对成功的攻击,要到对应的终端针对上传的文件进行清除。
- 针对关联杀伤链的其他攻击,消除webshell等其他攻击技术点带来的负面影响
本文为CSDN村中少年原创文章,未经允许不得转载,博主链接这里。