HVV流量分析之排查攻击者上传文件痕迹
网安引领时代,弥天点亮未来
1.场景分析:
(1).在HVV期间,经常会碰到攻击者尝试绕过网站的上传过滤规则.
(2).通过排查违规文件格式来查找攻击者企图上传文件的痕迹.
2.常规情况下,渗透人员碰到网站上传有过滤,会尝试修改数据包内content-type或者后缀去尝试绕过,jpg,png,gif这些文件占大多数.
3.用png文件举例,如果png文件格式正确的情况下,wireshark是可以对文件结构正常解析出来的.
4.但是如果碰到违规的png文件格式.会导致png文件格式无法进行正确的解析.
5.所以通过下面的语句,定位到png文件格式有问题的数据包.
(((mime_multipart)) && (mime_multipart.header.content-type == "image/png")) && (media)
6.然后提取字段media.type的数值就是上传的文件内容,一般为十六进制.使用python的magic库对文件头重新解析,可以发现这个png文件内容解析出来的并不是image/png,而是text/plain,说明什么?这个png数据包在上传过程被篡改过.
7.同理也可以检测出来png文件被篡改为php脚本.脚本发现这个png文件内容解析出来是一个text/x-php格式的文件.
8.数据包内容如下.
9.脚本的大概逻辑是,把16进制文件内容两两分组,然后转换到二进制(字节流),重新写入文件,写入成功之后,通过调用magic库对这个文件进行重新解析,然后再去判断是否符合预期的文件类型.
10.获取的十六进制字符串不能直接写入文件,因为这样只是单单的字符串而已,并不是一个文件,所以需要先转换到二进制(字节流)写入.
11.脚本是一个半成品,只能单个检测,如果需要可以自行改成批量检测.(因为本来就是一个简单的demo)
12.Q-A问答:
(1)Q:误报率高不高? A:在网络传输不稳定的情况下,导致文件传输不完整,可能会导致误报,除了这个之外很少有人会在上传过程中改变原有的文件类型.
(2)Q:能否绕过检测? A:在攻击者不知道ids有上传文件格式检测的情况下,是无法绕过的.(在没有新闻公开的情况下,你会知道公司部署了某X服的离职倾向检测产品?一个道理).