文件操作安全之-文件上传告警运营篇

news2024/11/25 10:05:41

本文从文件上传的定义,文件上传的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村中少年原创文章,未经允许不得转载,博主链接这里。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/529908.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

rtl仿真器-iverilog icarus安装和测试

Icarus Verilog是一个轻量、免费、开源的Verilog编译器,基于C实现,开发者是 Stephen Williams ,遵循 GNU GPL license 许可证,安装文件中已经包含 GTKWave支持Verilog/VHDL文件的编译和仿真,命令行操作方式&#xff0c…

C语言函数大全-- _w 开头的函数(1)

C语言函数大全 本篇介绍C语言函数大全-- _w 开头的函数 1. _waccess 1.1 函数说明 函数声明函数功能int _waccess(const wchar_t* path, int mode);用于测试文件或目录是否存在,并检查程序是否具有对它们的访问权限 参数: path : 待测试的…

Elasticsearch(三)

Elasticsearch(三) 数据聚合 聚合的分类 文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations.html 聚合可以实现对文档数据的统计、分析、运算。聚合常见的有三类: 桶聚合:用来对文档做分组 Te…

【P22】JMeter 调试后置处理程序(Debug PostProcessor)

&#xff08;1&#xff09;、测试计划右键 <<< 添加 <<< 线程&#xff08;用户&#xff09;<<< 线程组 默认参数即可 &#xff08;2&#xff09;、线程组右键 <<< 添加 <<< 取样器 <<< 调试取样器 默认参数即可 &…

SQL复习(一)——安装

1 mysql卸载 reference&#xff1a;https://blog.csdn.net/m0_67392273/article/details/126066580 Step1:停止MySql服务 在卸载之前&#xff0c;先停止MySQL8.0的服务 搜索“服务”&#xff0c;找到“MySQL”&#xff0c;右键点击选择“停止” Step2&#xff1a;软件的卸…

Unittest自动化测试之unittestunittest_生成测试报告

unittest_生成测试报告 测试报告为测试结果的统计即展示&#xff0c;是自动化测试不可或缺的一部分&#xff0c;利用unittest 可以生成测试报告 方式一、使用第三方 HTMLTestRunner 执行测试用例集&#xff0c;生成网页版测试报告&#xff08;推荐&#xff09; HTMLTestRunn…

5年软测经验去面试25k测试岗,看到这样的面试题我还是心虚了....

我是着急忙慌的准备简历——5年软件测试经验&#xff0c;可独立测试大型产品项目&#xff0c;熟悉项目测试流程...薪资要求&#xff1f;5年测试经验起码能要个25K吧 我加班肝了一页半简历&#xff0c;投出去一周&#xff0c;面试电话倒是不少&#xff0c;自信满满去面试&#…

系统掌握入河排污口设置论证技术、方法及报告编制框架

在短时间内较系统的掌握入河排污口设置论证技术、方法及报告编制框架&#xff0c;学习内容以城镇生活污水厂、造纸项目、石化项目、制药项目案例为线索&#xff0c;系统讲解入河排污口设置论证报告书编制过程&#xff0c;并以水质模型为手段&#xff0c;讲解水质影响预测模型的…

Voice Control for ChatGPT 沉浸式的与ChatGPT进行交流学习。

Voice Control for ChatGPT 日常生活中&#xff0c;我们与亲人朋友沟通交流一般都是喜欢语音的形式来完成的&#xff0c;毕竟相对于文字来说语音就不会显的那么的苍白无力&#xff0c;同时最大的好处就是能解放我们的双手吧&#xff0c;能更快实现两者间的对话&#xff0c;沟通…

华为OD机试真题 Java 实现【简单的自动曝光】【2023Q1 100分】

一、题目描述 一个图像有 n 个像素点&#xff0c;存储在一个长度为 n 的数组 img 里&#xff0c;每个像素点的取值范围[0,255]的正整数。 请你给图像每个像素点值加上一个整k(可以是负数)&#xff0c;得到新图 newlmg&#xff0c;使得新图 newlmg 的所有像素平均值最接近中位…

响应式设计和移动端优化:如何实现页面在不同设备上的适配和优化

章节一&#xff1a;介绍响应式设计和移动端优化 响应式设计是一种使网页能够自适应不同设备和屏幕尺寸的设计方法。它通过使用流式网格布局、媒体查询和弹性图片等技术&#xff0c;使得网页能够在不同分辨率和设备上呈现出最佳的布局和用户体验。 移动端优化则是针对移动设备…

青训营 x 训练营结营测试题目(前端方向)

文章目录 &#x1f4cb;前言&#x1f3af;选择题&#xff08;含多选&#xff09;&#x1f4dd;最后 &#x1f4cb;前言 这篇文章的内容是23年6月青训营 x 训练营结营题目&#xff0c;题目一共有25题&#xff0c;题目类型为选择题&#xff0c;包括了单选题和多选题&#xff0c;…

WiFi(Wireless Fidelity)基础(十二)

目录 一、基本介绍&#xff08;Introduction&#xff09; 二、进化发展&#xff08;Evolution&#xff09; 三、PHY帧&#xff08;&#xff08;PHY Frame &#xff09; 四、MAC帧&#xff08;MAC Frame &#xff09; 五、协议&#xff08;Protocol&#xff09; 六、安全&#x…

VHDL直流电机模糊控制器的设计与实现

在直流电机控制策略方面,属于智能控制理论的模糊控制其突出优点在于它不依赖于被控对象的模型,因此本设计尝试将模糊控制理论应用于直流电机转速控制,并将模糊控制器实现于FPGA(Field Programmable Gate Array)芯片上。在实现方法上本设计采用模糊查表控制法实现模糊控制器…

【C++】-static在类和对象中的作用和细节(下)

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树 ❤️‍&#x1fa79;作者宣言&#xff1a;认真写好每一篇博客 &#x1f4a8;作者gitee:gitee &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 文章目录 前言 前言 今天我们来讲一个static对类的对象的作用…

安全基础第十二天:nginx相关配置和nginx-host绕过

目录 一、nginx的动静分离 1.动静分离的原理 2.动静分离实验&#xff08;centos做为放置静态资源的服务器&#xff0c;ubuntu做为请求的web服务器&#xff09; &#xff08;1&#xff09;在centos的/usr/local/nginx/html下创建一个静态文件static &#xff08;2&#xff09…

目标检测概述

传统目标检测 任务目标 从图像中找出相应的物体位置 目标检测的核心目的在于&#xff0c;估计出目标在图像中的坐标。 问题定义 目标检测的结果是什么&#xff1f; 预测出目标在图像中的位置。 位置如何表示&#xff1f; 通常采用水平矩形框的形式估计目标。 在opencv中…

为什么Java要求多用组合,少用继承?

前言&#xff1a; 最近有一个要好的朋友去阿里大厂面试Java高级工程师&#xff0c;在第二轮面试的过程中&#xff0c;面试官提了一个问题&#xff1a;“解释下Java项目中为什么要求多用组合&#xff0c;少用继承&#xff1f;”。朋友觉得这个题目既熟悉&#xff0c;又陌生&…

【LeetCode】504. 七进制数

504. 七进制数&#xff08;简单&#xff09; 方法一&#xff1a;七进制数预处理 思路 这里我利用了提示&#xff0c;得知 |num| < 10^7 &#xff0c;因此所使用到的七进制数肯定也小于等于 107 &#xff0c;我将 7 的次方数算出来&#xff0c;预存在数组 seven 中。 后续…