很久没有写技术文章,这段时间一直忙于无问社区平台的研发,也欢迎小伙伴们可以去体验一下。(www.wwlib.cn)
言归正传,本次主要是针对应急响应工作流程与技术思路进行一次梳理,从前期的沟通到技术的实施。在技术实施上本次会涵盖windows与linux两方面。篇幅较长所以我会分为上下两部分来写,如果对于应急响应已经轻车熟路,那么可以跳过开头部分,直接进入到技术环节。
一、 现场情况了解
在技术工作开展之前需要对现场情况进行了解,这将有利于展开后续的工作思路,甚至是大幅减少工作量,同样需要注意的是,应急并不意味着都是攻击行为,也有可能是流量压力过大导致的系统异常、软件bug、系统自身问题所导致的,而这篇文章主要讲安全事件的排查流程。
在现场情况可以围绕以下几方面进行基础情况的了解。
1.表现症状
2.发现时间
3.持续时间
4.是否已进行处置工作
5.影响范围
6.是否有流量监测设备或终端防护设备
1. 表现症状
顾名思义,本次事件带来的直接影响是什么,通常会分为设备告警、系统卡顿、数据异常、文件异常几个方面。
文件异常:常见的是文件被篡改、出现违规页面两种情况。
数据异常:常见的是数据缺失、被篡改。
其余几项比较容易理解,这里就不做过多解释。这一步对于我们确认排查的切入点和方向有很关键的作用。
2. 发现时间&持续时间
对于事件发生的时间长短可以有助于推测事件的影响范围、事件类型、确认后续排查的日期始终点,进一步的还可以评估出日常运维巡检工作中的遗漏。
存在较长周期的情况下除了对于本机的排查还同样需要关注其他主机的安全性,当确认是通过通用漏洞获取系统权限的攻击事件,则需要重点关注备用机、部署相同服务或相同产品的其他主机,而如果是病毒类涉及传播的则需要统计在此期间正在运行的主机数量,从而评估受影响的范围。
3. 是否已做处置措施
这一步也是需要确认的,因为客户的处置不规范将会影响我们后续的分析工作,通常情况下在联系到客户后了解完上述情况后就应该确认有没有删除或者对文件进行修改、访问的操作。
这也是一个坑,非常容易导致后续事件的总结无法形成连贯的流程,或者无法提供实质性的证明。
4. 影响范围&是否有流量监测设备或终端防护设备
这两者比较好理解,事件的实际影响范围可以结合上述了解的信息以后在排查过程中进行判断。
而设备则可以辅助我们进行排查,甚至是直接帮我们找到关键问题所在。应急响应不需要那么繁琐的流程,核心目的是解决问题,找出原因,堵住漏洞,所以擅长利用设备也是应急响应很关键的技能。
二、 问题排查技巧
排查的核心是找到突破口以及对方做了什么,所以基于这两个目标去做就好,下面会给各位展示在排查当中非常容易碰到的一些常见排查手段。
1. 文件时间
绝大部分时候我们可以通过判断文件的时间来排查日志,确定攻击事件开始的时间。但是不要过度依赖这个文件时间,如下图所示:
目前创建时间是2025年1月4日
如果我想要迷惑安全人员,那我就可以把它变成1月1日创建的,或者是其他时间,windows的文件时间可以修改,是不可靠的信息。
2. 文件隐藏
文件隐藏这个是非常容易碰到的,也很好解决。按照下图所示来勾选就可以把隐藏文件全部展示出来。
3. 隐藏账户
隐藏账户需要关注常规隐藏账户以及影子账户。
可以直接在注册表中访问
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users
查看当前系统下的用户列表
4. 定时任务
我这里说的是定时任务而不是计划任务,是因为其目的都是为了达到在某一时刻执行某个动作,所以涉及面会更广。下图当中我会把主要查看区域圈起来,可在其中排查后门应用程序。
4.1 计划任务
4.2 注册表
关键位置
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
4.3 启动文件夹
4.4 组策略编辑器
5. 进程排查
进程排查通常会与外连排查同时进行,这也是应急响应工作中比较关键的工作之一。在windows下可以使用
netstat -ano来查看系统的外连以及对应进程的PID号
使用tasklist来查看对应进程情况
通过使用以下的命令来获取目标进程的路径信息
Get-WmiObject -Class Win32_Process | Where-Object { $_.Name -eq 'Kugou.exe' } | Select-Object Path
通过这种方法我们可以快速对异常进程进行定位。
需要注意的是,当前除了可执行文件攻击,也会频繁出现通过DLL劫持进行攻击的案例。
所以排查期间我们也要关注进程所加载的DLL程序。
可以使用以下命令来进行排查,确认是否有可疑的DLL文件被加载。
tasklist /m
6. 日志排查
日志排查是应急响应中一个非常关键的步骤
以下是几个windows系统日志当中比较关键的日志ID
|------|----------------|
| 日志ID | ID说明 |
| 4624 | 系统登录成功 |
| 4625 | 系统登录失败 |
| 4720 | 创建用户账户 |
| 4726 | 删除用户账户 |
| 4732 | 将账户添加到启动的本地安全组 |
可以通过使用logparser工具对windows系统日志进行快速的分析
可以访问下方链接查看工具的具体使用
http://www.wwlib.cn/index.php/artread/artid/19848.html
针对上述几项排查我自己编写了一个工具,可以辅助完成比较繁重的基础排查工作,下面是一个比较简单的演示,更多的可以在++后台回复++ 回复++carryBrick++获取下载地址
通过-type 2来列举指定进程的详细信息,用以排查进程是否存在异常信息。
通过添加-dll True来列举出该进程下的dll组件,用于排查dll注入的后门。
如果要查看dll的详细信息,可以配合-type 2进行查看
这就结束了吗?并没有。
正如我开始所说本节所介绍的仅仅只是一些常见场景,在应急响应工作中,想要快速解决突发事件,就需要掌握各类后门攻击与权限维持的手段,这也是我与团队长期以来所关注的方向。在第三节我会介绍几种不是很常见但是对于后门维持非常有效的技术,但这也仅仅只是冰山一角,受到篇幅限制大家可以自己多去探索。
目前无问社区内可以通过"智慧检索"查看到大量关于权限维持与应急响应方面的技术资料。
可以访问:http://www.wwlib.cn/ 进行查看
三、 后门技术
COM组件劫持、映像劫持、进程注入 这三兄弟堪称进阶权限维持必须掌握的三个技术,在本文中主要讲解排查方法,对技术原理感兴趣的师傅可以去"无问社区"自行查看
3.1 COM组件劫持
COM组件劫持通过劫持合法软件的COM引用关系,在正常软件运行过程中加载恶意代码。
由于其手工排查过程过于复杂,所以建议使用COM-Hunter工具进行辅助排查。
排查命令:
hunter.exe Search Find-Persist
更多的使用命令可以通过帮助指令来查看,整体还是比较简单的。
3.2 映像劫持
映像劫持通过劫持系统正常应用程序的启动路径与参数来达到维持后门长期运行的目的。
排查手段,可查看注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
路径下是否存在Debugger键,且其值是否指向了异常文件。
3.3 进程注入
通过将恶意代码注入到其他进程当中运行以实现维持权限的目的。
可以通过Process Explorer来进行排查是否加载了可疑的DLL模块
同样可以根据其自带的网络监控模块,来确认进程的恶意通信情况,辅助我们尽快定位到恶意进程。
在应急工作中除了需要前期具备好的沟通,在实施过程中也需要我们掌握足够多的技术手段才能够更好的排查出事件的具体原因,并给予解决。
各类攻击方式花样频出,本文所介绍的技术点依旧只是冰山一角,更多相关应急响应和权限维持的技术资料可以在"无问社区"获取,在"智慧检索"当中可查看到大量关于后门技术与应急响应的实际案例。
无问社区地址:http://www.wwlib.cn/