应急响应概述
应急响应流程
事件判断:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、DDoS等等。
临时处置:给出客户临时处置建议,断网隔离,保护现场环境。
信息收集分析:收集客户信息和中毒主机信息,包括样本,日志分析、进程分析、启动项分析、样本分析。
清理处置:直接杀掉进程,删除文件,打补丁,抑或是修复文件。
产出报告:整理并输出完整的安全事件报告。
常受攻击Web漏洞
攻击平台 | 漏洞编号 |
---|---|
Weblogic | CVE-2017-3248/CVE-2017-10271/CVE-2018-2628/CVE-2018-2894 |
Drupal | CVE-2018-7600/CVE-2018-7602 |
Struts2 | CVE-2017-5638/CVE-2017-9805/CVE-2018-11776 |
ThinkPHP | ThinkPHPv5 GetShell |
Windows Server | 弱口令爆破/CVE-2017-0143 |
PHPStudy | 弱口令爆破 |
PHPMyAdmin | 弱口令爆破 |
MySQL | 弱口令爆破 |
Tomcat | 弱口令爆破/CVE-2017-12615 |
Spring Data Commons | CVE-2018-1273 |
Jekins | CVE-2019-1003000 |
JBoss | CVE-2010-0738/CVE-2017-12149 |
常受攻击组件漏洞
应用 | 漏洞名 |
---|---|
Docker | Docker未授权漏洞 |
Nexus Repository | Nexus Repository Manager 3远程代码执行漏洞 |
ElasticSearch | ElasticSearch未授权漏洞 |
Hadoop Yarn | Hadoop Yarn REST API未授权漏洞 |
Kubernetes | Kubernetes Api Server 未授权漏洞 |
Jenkins | Jenkins RCE(CVE-2019-1003000) |
Spark | Spark REST API未授权漏洞 |
处置思路
- 找到webshell
- 确定攻击者IP(合理猜测)
- 回溯攻击者操作
- 梳理整个攻击过程(据实分析,积极沟通)
应急前沟通
- 现场现象是什么?如何发现的?(依据是什么) ?
- 什么时候发现的?
- 目前是否有做物理隔离(断网) ?
- 受害机器是哪个?
- 受害服务有几台?(1台/N台)
- 最先发现是哪台 ?
- 这台服务器对外有哪些服务?
- 这台服务器于其他机器是否处于同一个内网?
- 操作系统类型?
- 是否有公网映射业务?
- 远程管理方式?
- 网络边界有没有流量监控设备?
- 主机侧是否有EDR等安全设备
响应事件——Web攻击
相关表现: 页面被篡改、恶意推广、黑词黑页、webshell
相关危害: 导致搜索引擎告警、微信等app分享告警、首页敏感内容、拖库、内网沦陷等排查
要点: 能否多个环境下复现异常现象;确定相关资产是否存在;恶意文件是否确实存在于服务器上
操作要点: 备份文件;webshell后门查杀;web日志分析;web中间件缓存处理;web中间件配置检查;重启web中间件;服务器后门检查;
防护措施: 加固相关web应用,修改相关系统的所有用户密码
响应事件——链路劫持
相关表现: 区域性服务不可用或返回异常内容
相关危害: 导致搜索引擎告警、微信等app分享告警、首页敏感内容等
排查要点: 能否多个环境下复现异常现象;确定相关资产是否存在;恶意文件是否确实存在于服务器上
操作要点: 跨地区、运营商进行测试,确定受影响范围:在能复现的环境中判断是DNS劫持还是HTTP劫持
防护措施: 重要业务部署https
响应事件——代理隧道
相关表现: 持续性或间断性外连行为,通常为tcp协议,对内网多个主机有访问行为
相关危害: 作为跳板机攻击其他内网资产
排查要点: 确定存在代理隧道的跳板机,通常为某时间段内集中访问内网多种资源的机器,判断隧道类型
防护措施: 完善内网acl,服务器按业务需要通过白名单策略访问外网
响应事件——替换系统命令
相关表现: 无明显表现
相关危害: 将后门、木马持久化在系统中:窃取账号、密码等重要凭证
排查要点: 使用包管理自带的包校验功能验证文件完整性,分析恶意文件行为,确定影响面
操作要点: 使用静态链接的busybox;重新安装被替换的包
命令:
rpm -Va
dpkg --verify
响应事件——ld.so.preload动态链接库劫持
相关表现: 无明显表现
相关危害: 将后门、木马持久化在系统中:窃取账号、密码等重要凭证
排查要点: 检查/etc/ld.so.preload,ld.so(如/lib/x86_64-linux-gnu/ld-2.27.so)
操作要点: 使用静态链接的busybox; 重启被注入恶意模块的进程,必要时直接重启系统
响应事件——内核态rootkit
相关表现: 无明显表现
相关危害: 将后门、木马持久化在系统中:隐藏文件、进程等信息
排查要点: 确定是否存在无法使用常规命令查看的文件、进程;
操作要点: 使用tyton内核态rootkit检测工具检测:检查/etc/modules是否有未知的内核模块
响应事件——计划任务
相关表现: 特定时间间隔触发木马、后门、网络链接、DNS请求、篡改页面等行为
相关危害: 将后门、木马持久化在系统中:周期性篡改页面、拉取数据等
排查要点: 判断是否存在周期性出现的异常现象,检查/var/spool/cron/crontabs/,/etc/cron.*等常用计划任务配置文件
操作要点: 停止计划任务服务后再操作;注意辨别利用\r回车符的障眼法小技巧
响应事件——远控木马
相关表现: 有持续或间断性的对外网络链接或DNS请求等通信行为
相关危害: 窃取系统资料、作为跳板进一步攻击内网其他机器
排查要点: 关注tcp、udp、icmp等一切网络行为,检查注册表、服务、开机目录、计划任务等一系列常见的持久化点
操作要点: 检查网络连接,以及IDS设备上的异常远控告警
Windows应急响应
常用命令
常用命令 | 说明 |
---|---|
regedit | 注册表 |
Taskmgr | 注册表 |
Msconfig | 系统配置(包含启动项) |
eventvwr.msc | 事件查看器 |
compmgmt.msc | 计算机管理(本地用户和组) |
gpedit.msc | 本地组策略 |
taskschd.msc | 计划任务 |
lusrmgr.msc | 本地用户和组 |
获取本机用户列表: net user
本机管理员: net localgroup administrators
查看当前会话: net session
查看当前运行的服务: net start
远程连接: net use
查看当前用户下的共享目录: net share
最近打开的文件:%UserProfile%\Recent
%APPDATA%\Microsoft\Windows\Recent
查找文件中的字符串: findstr /m /i /s "hello" *.txt
查看网络连接: netstat - ano
操作系统的详细配置信息: systeminfo
获取系统进程信息: Wmic process
根据应用程序查找PID: wmic process where name="cmd.exe”get processid,executablepath,name
根据PID查找应用程序: wmic process where processid="4296”get executablepath,name
获取系统进程信息:tasklist
对于要查询特定dll的调用情况,可以使用命令tasklist /m dll名称
计算样本MD5: certutil -hashfile %样本文件名% MD5
应急管理工具
PChunter
系统信息监控工具,主要拿来看数字签名
黑色是微软认证的
粉红色是未认证的
红色是可疑进程
Autoruns
启动项、计划任务等动态监测工具
Process Explorer
应用程序监测工具
数据量很大,需要过滤
TCPView
其实就是netstat -ano
的输出,但是可视化方便处理
Microsoft Network Monitor
很小的一个流量监控软件
安装完需要重启,可以监测单个程序进程
D盾
查杀webshell
Everything
快速查找文件和目录
sysmon
微软开发的系统监控工具,常用来判断挖矿后门等等
ID | 说明 |
---|---|
Event ID 1 | 进程创建事件,恶意进程的创建,包括他的父进程,PID,执行命令及对应文件所在目录记录信息等等 |
Event ID 3 | 网络连接事件,当恶意程序外连 CC 服务器或者矿地址池等操作的时候,可监控到是哪个进程发起的连接,并找到对应程序所在目录进行清理操作。 |
Event ID 11 | 文件创建事件,创建或覆盖文件时,这些创建操作会被记录下来。此事件对于监控自动启动位置,如启动文件夹目录、临时目录、下载目录非常有用.,而这些目录正是初始感染阶段恶意运行要用到的目录 |
Event ID 22 | 记录 DNS 查询,容易受该功能影响的一种场景就是基于 DNS 的 C2 通信,其中大量请求会被记录下来 |
威胁分析平台
BeaconEye
监测CS木马后门特征
DumpIt
内存取证工具,需要dump整个系统,取证空间占用太大,不建议使用
替代工具:FTK Imager
和WinPMem
Volatility
内存取证工具
日志分析
windows主要有以下三类日志记录系统事件: 系统日志、安全日志、应用程序日志
打开方式:
1、开始 -> 运行 -> eventvwr
2、开始-> 管理工具 -> 事件查看 -> 安全
系统日志
默认位置:%SystemRoot%System32WinevtLogsSystem.evtx
事件 | ID |
---|---|
系统启动 | 6005 |
事件日志服务已启动 | 6006 |
事件日志服务已停止 | 12 |
系统关闭 | 13 |
安全日志
%SystemRoot%System32WinevtLogsSecurity.evtx
注意:不同版本的系统日志ID可能不同,建议自行查找
应用程序日志
%SystemRoot%System32WinevtLogsApplication.evtx
Linux应急响应
基本命令
top
和ps -aux
查看系统资源占用
netstat -antpl
查看网络连接以及其对应可执行程序
lsof
查看开放端口的进程
登录信息查看
显示错误的尝试登录信息: lastb
显示系统用户最近的登录信息: last
现实所有的用户最近的登录信息: lastlog
grep
查找符合条件的字符串:netstat -antpl lgrep 22
crontab
查看定时任务: crontab -1 、 cat /etc/crontab
历史命令
查看历史命令: history、cat ~/.bash history
校验RPM软件包
校验RPM软件包: rpm -Va、dpkg -verify
S:表示对应文件的大小 (Size) 不一致
M: 表示对于文件的mode不一致
5:表示对应文件的MD5不一致
D:表示文件的major和minor号不一致
L:表示文件的符号连接内容不一致
U:表示文件的owner不一致
G: 表示文件的group不一致
T:表示文件的修改时间不一致
其它
登录成功的IP
grep “Accepted” /var/log/secure | awk ‘{print $11}’ | sort | uniq -c | sort -nr | more
定位有爆破行为的IP
grep “Failed password” /var/log/secure awk ‘{print $11}’ | sort | uniq -c | sort -nr | more
查看隐藏进程
ps -ef awk ‘{print $11}’ | sort -n | uniq >1
ls /proc | sort -n | uniq >2
diff 1 2
应急工具
BusyBox
静态链接库的BusyBox
当命令被替换时使用
赋予可执行权限后.\即可
chkrootkit
监测RootKit的脚本
Rkhunter
同上
unhide
查找隐藏的UDP/TCP进程
ClamAV
检测各种恶意木马,病毒,进程
注意是否存在so文件的注入
河马Webshell
Web日志分析
查找文件中的恶意/危险函数
PHP: eval(、system(、assert (
JSP: getRunTime(、FileOutputStream(
ASP: eval(、execute(、ExecuteGlobal (
从日志记录中查找
查看每个 IP 地址访问次数:
cat access.log |awk ‘{print $1}’ |sort|uniq - c
访问URL排序:
cat access.log |awk ‘{print $1}’ |sort|uniq - c |sort -rn|head
访问指定资源日志:
cat access.log |awk ‘{print $7}’ |grep /%25Domain |sort|uniq - c |sort -rn|more