实战|页面篡改安全事件应急流程
2021-12-02 11:17:03 Author: www.secpulse.com(查看原文) 阅读量:49 收藏

文章首发于奇安信攻防社区
地址:https://forum.butian.net/share/902
一、认识网页篡改
了解网页篡改类型
网页篡改指的是黑客通过技术手段上传了webshell(网页木马)拿到控制权限后对网站的内容及页面进行删、增、改。
网站首页替换型:首页面index.html、default.html被替换成与主体网站毫不相干的页面,大多数为黑色页面或其他炫目的网页俗称黑页,此类大多为黑客入侵后炫技或恶作剧的行为。
网站页面TDK篡改型:TDK为标题(Title)、描述(Description)、关键词(KeyWords)的缩写,其作用是关键词优化用户在输入关键词后能第一时间找到你的产品,提升在搜索引擎排名提高知名度让用户认可,提高网站的权重值已以及访问量,此类型的篡改大多数为BC等违法网站篡改手法,该篡改手法比较隐匿不易发现可正常访问网页,需要查看网页源代码。
加载外部js脚本劫持型:js脚本劫持更为隐匿不易察觉,其页面TDK可能不会被篡改,js劫持是通过代码来判断和识别蜘蛛访问的,若正常访问,则给出正常内容,若判断到是搜素引擎来访问,就给出另一个页面,使搜素引擎抓取快照进行改变,之后判断来路跳转,简而言之通过浏览器正常输入域名URL是不会跳转到违规页面,反而通过搜索引擎点击URL则触发了js代码规则从而实现js脚本劫持,可通过修改自身浏览器User Agent模拟搜索引擎的蜘蛛来辨别。
网页孤岛页面型:孤岛页面是指网站文件内生成一个与网站主体毫不相干充斥违规内容的一个全新html页面,孤岛页面顾名思义就像一座孤岛在网站上没有外部链接可进行跳转到此页面所以称之为孤岛页面,该篡改类型大多数是黑客通过网站的编辑器上传违规的html页面也不排除黑客通过webshell上传的,孤岛页面的生成情况绝大部分是黑客通过网站的编辑器未授权访问自动化脚本上传的,由此可通过html页面的生成时间来进行判断。
Global文件快照劫持型:Global.asax 文件是 ASP.NET 全局应用程序文件,这类文件是动态脚本每次加载时都会加载的配置文件,如访问x.php时会加载conn.php,这样的话只需要修改这些全局的动态脚本文件(如global.asax),访问所有的aspx文件时都会加载这个global.asax文件,可以达到全局劫持的效果从而劫持流量跳转至违规网站,此类篡改全局流量劫持手法与加载外部js达到流量劫持的手法基本一致,也可通过修改自身浏览器User Agent模拟搜索引擎的蜘蛛来辨别。
二、现场处置
对接谈话
 到达客户现场后第一时间告知负责网络相关的人员请勿对被篡改文件进行删除或修改,这样做的原因是方便后续对入侵途径进行溯源分析。
询问相关网络管理人员,发生篡改后有没有自主发现异常或者是被通报后才知道被篡改的,自主发现的话发现时间又是多久,确定好第一篡改的时间对后续的调查工作有很大的帮助。
了解安全事件发生的网络情况、服务器系统、其他安全设备等
 通过判断确认该篡改为内容篡改还是跳转劫持,询问管理员当前web文件存放的位置部署的服务以及对外开放的端口都有哪些和运行服务的系统类型:
  1. 首先向网络管理的负责人要求打印一份当前网络拓扑图出来,这样方便更快定位出发生安全事件服务器所在的区域。
  2. 查看网络中或者网络边界有没有流量监控设备如边界的应用防火墙(WAF)或者上网行为管理,如果有部署流量设备那这些设备是否可以检测到发生安全事件的服务器流量。
  3. 发生安全事件的服务器为Windows还是Linux或者其他的操作系统,确认好操作系统类型方便取证工作。
  4. 发生安全事件的服务器是否开启日志记录功能或者网络中是否部署有日志审计系统,日志审计系统是否能够正常接收到该服务器推送过来的日志,日志这一点对溯源工作至关重要。
  5. 网络中是否有部署防篡改设备,设备防篡改功能是否生效是否对此次事件产生告警,因为还是有挺多单位防篡改设备是购买了的但策略或者功能未开启也有可能的。
  6. 需要了解客户业务内容的发布流程,在编辑好文章后需要发布时有没有专门的审核部门对文章进行审核,因为绝大部分的文章内容上存在暗链链接,编辑人员不细心就也会将内容里的暗链给复制过来。
判断安全事件表现
通过以上综合与相关网络管理人员访谈结果,判断安全事件是否误报:
  1. 是否在系统更新迭代时,对该文件进行修改所导致的异常告警。
  2. 是否为用户误操作所导致触发告警。
  3. 是否为缓存文件所导致触发异常告警。
  4. 篡改事件是否只发生在互联网端,内网访问是否返回正常页面,如果是则考虑链路挟持或者CDN节点问题。
2.2确认篡改对象
2.2.1系统文件
通过登录到服务器上,对比查看被篡改文件和旧文件的MD5值、查看数字签名(Windows)完整性和对文件进行样本分析,来判断该文件是否为被篡改,确认是否为误报。
Windows系统下:
使用“MD5校验器”打开原有文件与疑似篡改文件,获得MD5值后进行比对,如果两文件MD5不一样证明该文件被篡改。
如果文件有数字签名,右键属性查看数字签名是否完整,如果数字签名被损坏证明该文件被篡改。
通过右键文件属性查看,文件创建、修改时间晚于用户最后一次更新时间,则判断文件被修改。
Linux系统下:
使用md5sum + [文件名],获得MD5值后进行比对,如果两文件MD5不一样证明该文件被篡改。
通过stat + [文件名],获得时间三个时间:access time(访问时间)、modify time(内容修改时间)、change time(属性改变时间),如果modify time修改时间晚于用户最后一次更新时间,则判断文件被修改(由于Linux系特殊性,modify time黑客可以对其进行修改,所以需要在现场根据change time进行研判)。
2.2.2网页文件
通过现有的网页文件进行查看源代码是否包含违法违规与网页不相干的内容辨别网页是否被篡改,若看不出是否存在篡改询问相关管理人员在篡改发生前是否有备份文件,再对新旧文件的源代码进行内容对比判断网页是否被篡改。
Windows系统下:
右键被篡改文件查看属性,创建时间、修改时间、访问时间将其截图记录下来。
右键被篡改文件通过记事本打开查看其源代码,文件中的源代码篡改内容通常都会被Unicode编码,可通过网上在线的站长工具进行Unicode编码转换(地址:http://tool.chinaz.com/tools/unicode.aspx)。 
利用第三方文件对比工具“Beyond Compare”将原文件与疑似被篡改文件载入,可以显示出两文件不同的部分,确定文件是否被篡改(下载地址:https://www.scootersoftware.com/download.php)。
Linux系统下:
使用cat命令查看文件内容。
使用diff命令,将原文件与疑似被篡改文件载入,可以显示出两文件不同的部分,确定文件是否被篡改。
使用find ./ -mtime 0 -name "*.jsp"查找24小时内被修改的jsp文件,以此类推可查找其他后缀的文件。
使用find / -ctime -2命令查找72小时内新增的文件。
使用find / *.jsp -perm 4777查找权限为777的jsp文件。
值得注意的是网页篡改不一定发在网页文件当中黑客可能通过修改web容器的配置进行篡改、劫持、跳转等操作,若找不到被篡改的内容可对webserver等中间件容器的配置进行检查(案例:https://forum.butian.net/share/836),排查配置文件是否在安全事件发生期间有过改动,常见的中间件容器配置如下:Apache: http.conf、Tomcat: web.xml、IIS: web.config、Nginx:nginx.conf、PHP:php.ini。
2.3后门查杀与工具推荐
类似发生网页篡改类安全事件,绝大部分黑客已经拿到了网站的一定控制权,一般网页类后门俗称webshell分为一句话、小马、大马、内存马,这时我们要对webshell进行查杀清除以防黑客进一步的攻击。
Windows系统下:
D盾:不分扩展名的代码分析引擎,能分析更为隐藏的WebShell后门行为,其规则库强大扫描速度快,使用方法点击选择目录选择web的根目录扫描即可,下载地址:http://www.d99net.net/。
Linux系统下:
河马查杀:针对于Linux环境下的webshell查杀,拥有海量webshell样本和自主查杀技术,采用传统特征+云端大数据双引擎的查杀技术,查杀速度快、精度高、误报低,进入河马工具目录使用命令./hm -h查看具体的查杀指令,下载地址:https://www.shellpub.com/。
在线查杀webshell地址:
百度WEBDIR+,下一代WebShell检测引擎,采用先进的动态监测技术,结合多种引擎零规则查杀,地址:https://scanner.baidu.com/。
Web Shell Detector具有“ Webshell”签名数据库,可帮助识别高达99%的“ Webshell”,地址:http://www.shelldetector.com/。
深度学习模型检测PHP Webshell,地址:http://webshell.cdxy.me/。
若客户业务环境不允许上传工具到服务器进行查杀,可将整个网站文件打包后下载至本地在使用工具进行查杀或者上传至线上查杀,值得注意的是,当在拷贝整站源码文件的时候如果对方客户使用的是虚拟主机空间上传下载都需要FTP来操作,直接将源码文件下载下来的话文件的修改时间会变成当天的下载时间这样对后面的溯源分析带来很大的困难,需要在面板将源码文件都打包成一个压缩包在将其下载下来。
2.4所需提取的材料
样本的材料提取对后续安全事件的溯源分析起到了至关重要的作用,所需要做的工作内容是首先将被篡改的页面截图下来,篡改的页面文件最后的修改时间也需要截图,工具所扫出来的后门和最早被上传的后门也需要截图,需要相关管理人员配合将网站整站打包、系统日志、中间件日志拷回,必要时可要求对方将整个系统镜像拷贝:
Windows系统日志:控制面板>管理工具>事件查看器>Windows日志。
Linux系统日志:cd /var/log
各个中间件日志的默认路径:
IIS:C:WINDOWSsystem32LogFiles
Apache:Linux:/usr/local/apache/logs/;Windows:apache/logs/
Tomcat:conf/logging.properties
Weblogic:domain_name/servers/server_name/logs/
Jboss:jboss/server/default/conf/jboss-log4j.xml
Nginx:/var/log/nginx/
推荐阅读
漏洞挖掘 | 通用型漏洞挖掘思路技巧
实战|记一次后门连接应急响应
实战|应急响应之某公司的粗心导致网站被恶意篡改
实战 | 记一次攻防演练
实战 | 记一次诡异的网站篡改应急响应

点赞 在看 转发


文章来源: https://www.secpulse.com/archives/170476.html
如有侵权请联系:admin#unsafe.sh