前言
本人纯新手小白,写博客初衷是为了个人更好的记忆,也为了帮助一些像我一样的了解应急响应,让大家了解应急响应该干些什么事情。文章内容取自《网络安全应急响应技术实战指南》。
应急响应框架
企业级应急响应能力
- 全数据流量能还原、还原数据能存储、存储的数据能快速检索
- 具有事件发现能力—APT攻击、web攻击、数据泄露、失陷主机发现、主机异常行为发现
- 对于时间、范围、动机、目的、手法等业务与资源有分析与研判能力
- 能处置木马、病毒、修复漏洞、加固问题机器,并第一时间恢复业务正常运行
- 攻击溯源
应急响应PDCERF方法
- 准备阶段--依照网络安全措施,进行一些准备工作。
- 检测阶段—检测事件现象,确定应急等级及其对应的应急方案。
- 抑制阶段--根据事件性质选择抑制方案,例如物理隔离、关闭服务等。
- 根除阶段--解决问题
- 恢复阶段--恢复业务连续性
- 总结阶段--报告、评估应急过程问题
应急响应个人理解
- 事件状态判断--咨询甲方、自己去确认
- 临时处置—区分感染与未感染
- 入侵检测且收集证据--选择合适的工具对流量、密码、账户、端口、日志、进程、进程、启动项、任务计划、服务、系统命令、敏感目录、文件修改时间、系统版本、历史命令、威胁情报配合社工库进行选择性分析。
- 事件处理--对上述对应位置对应的问题根除,恢复业务连续性。
- 总结--写总结、写报告、开展培训。
应急响应常见攻击面
勒索病毒、挖矿木马、webshell、网页篡改、数据泄露、流量劫持
系统排查
系统基本信息
1.【msinfo32】
2.简单了解系统信息--cmd中输入【systeminfo】
用户信息
1.【net user】查看用户(看不到$结尾账户)或【net user username】查看具体用户详细信息
2.命令行输入【lusrmgr.msc】或计算机管理中查看用户信息
3.【注册表中HKEY_LOCAL_MACHINE下SAM对比F值】确认是否存在克隆账户(此方法需具有【允许父项的继承权限传播到该对象和所有子对象。包括那些 在此明确定义的项目】和【用在此显示的可以应用到子对象的项目替代所有子对 象的权限项目】权限)
4.【wmic useraccount get name,SID】查看系统中用户信息
启动项
1.【msconfig】查看启动项详细信息
2.通过【注册表查看】
注册表是操作系统中一个重要的数据库,数据项是注册表的基本元素。注册表的启动项是恶意程序的最爱,很多病毒木马通过注册表来实现在系统中的持久化驻留。
任务计划
1.【任务计划程序】
2.【PowerShell下输入Get-ScheduledTask】查看所有任务计划信息
3.【cmd中输入schtasks】获取任务计划信息,很老的系统使用at命令,需是Administrators组成员。
其它
【Windows 防火墙下出入站规则】
【cmd中输入netsh Firewall show state】显示防火墙网络配置状态
进程排查
无论是在 Windows 系统还是 Linux 系统中,主机在感染 恶意程序后,恶意程序都会启动相应的进程,来完成相关的恶意操作,有的恶意 进程为了能够不被查杀,还会启动相应的守护进程对恶意进程进行守护。
我们的目的是要找到恶意进程的 PID、程序路径, 有时还需要找到 PPID(PID 的父进程)及程序加载的 DLL。(PID是进程唯一标识符;DLL是动态链接库,Windows操作系统中实现代码共享、模块化设计和动态加载等功能)
1.【任务管理器】
2.【cmd中输入tasklist】显示运行在计算机中的所有进程,可查 看进程的映像名称、PID、会话名等信息;
【tasklist /svc】可以显示每个进程和服务的对应情况;
【tasklist /m】查询某些加载DLL的恶意进程,若要查询特定DLL则输入【tasklist /m 名称】;
结合过滤器如eq(等于)、ne(不等于)、gt(大于)、lt(小于)、ge (大于等于)、le(小于等于)fi(条件筛选)查询,例如【tasklist /svc /fi "PID eq 123"】查看 PID 为 123 的进程。
3.【netstat】一个监控 TCP/IP 网络的工具
使用【netstat ?】查看支持的参数
一般会使用【netstat -ano | findstr "ESTABLISHED"】命令查看目前的网络连接,例如进程含有大量网络连接情况。
【netstat -anb】快速定位到端口对应的程序,需管理员权限
netstat与tasklist联动
例通过netstat命令定位出 PID,再通过tasklist命令进行程序定位,发现 PID 为 9999 的进程有大量网络连接后,使用tasklist | find "9999"命令可查看具体的程序
4.【nslookup】命令用于查询 Internet 域名服务器的程序
【nslookup -type=mx www.qianxin.com 8.8.8.8】是指定 8.8.8.8 为查询服务器,并查询 www.qianxin.com 的 mx 记录信息。
5.查询单个域名信息可使用【dig】,【dig @8.8.8.8 www.qianxin.com mx】是指定 8.8.8.8 为查询服务器,并查询 www.qianxin.com 的 mx 记录信息。
6.【traceroute www. qianxin.com】可对 www.qianxin.com 进行路由跟踪。
7.对于有守护进程的进程,还要确认子父进程之间的关系,在PowerShell中输入【Get-WmiObject Win32_Process | select Name, ProcessId, ParentProcessId, Path】查询获取进程所有信息展示Name, ProcessId, ParentProcessId, Path 4 个字段
8.cmd中输入【wmic process】,对进程情况查询;
【wmic process get name,parentprocessid,processid /format:csv】命令以csv格式展示进程的名称、 父进程 ID、进程 ID。
【wmic process get ExecutablePath, processid /format:csv】显示进程路径、进程 ID 信息。
【wmic process get name, ExecutablePath, processid, parentprocessid /format:csv | findstr /I "appdata"】显示进程的名称、进程路径、进程 ID、 父进程 ID 信息。
【wmic process where processid=[PID] get parentprocessid】表示以 PID 的 值作为条件来获取其父进程的 PID 情况。
【wmic process where processid=[PID] get commandline】表示以 PID 的值 作为条件来获取其命令行。
【wmic process where name="malware.exe" call terminate】删除 "malware.exe"恶意程序的进程。
【wmic process where processid=[PID] delete】删除PID为某值的进程。
服务排查
【services.msc】看服务
文件痕迹排查
1.1) 敏感目录:tmp临时文件;
2) Recent最近运行文件的快捷方式;
3) win+r输入【%SystemRoot%\Prefetch\】存放系统已访问过 的文件的预读取信息;
4) win+r输入【%SystemRoot%\appcompat\Programs\】查询应用程序的执行路径、上次执行的时间 及 SHA1 值;
5) 下载、浏览器、cookie;
2.时间点:1) 【命令行输入forfiles】
【forfiles /m *.exe /d +2020/2/12 /s /p c:\ /c "cmd /c echo @path @fdate @ftime" 2>null】命令就是对 2020/2/12 后的 exe 新建文件进行搜索。在输入此命令后,找到了 oskjwyh28s3.exe 文件。
2) 创建时间在修改时间之前
3.工具:使用D盾等工具扫描文件
日志分析
计算机管理内的日志分析或win+r打开eventvwr
记住常用事件id值
12、13、104、1100、1102、1104、1074、4608、4609、4616、4624、4625、4634、4647、4648、4657、4672、4720、4728、4732、4741、4742、4743、4776、7030、7040、7045等等(写不全,也写不完,得自己遇到了才能明白)
分析:通过筛选器或日志工具分析:如FullEventLogView
内存分析
1.基于内核模式程序获取内存:借助内存提取工具RAM Capturer、FTK Imager等
基于系统崩溃转储的内存:【系统属性】中【启动和故障恢复】的【核心内存转储】中转储文件获取。
2.使用内存分析工具Volatility等
流量分析
【PCHunter】流量分析地址连接情况或【Wireshark】全流量分析。
威胁情报
根据你获取的Hash 值、IP 地址、域名、网络 或主机特征、攻击工具和 TTPs(从左到右依次获取难度增大),并配合社工库例如:微步,获取信息。