应急响应概述#
当企业发生黑客入侵、系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程,同时给出解决方案与防范措施,为企业挽回或减少经济损失。
常见的应急响应事件分类:
web 入侵:网页挂马、主页篡改、Webshell
系统入侵:病毒木马、勒索软件、远控后门
网络攻击攻击、DNS 劫持、ARP 欺骗
基础信息获取#
这部分基础信息获取都是使用 Windows 自身命令或者工具即可实现。这部分包括系统信息获取、网络信息获取、进程信息获取、用户信息获取、历史流量获取。
系统信息获取#
这里有两种方式,可以获取系统的相关信息。第一种,低版本操作系统,例如可以通过 winmsd 来获取相关信息,具体操作信息如下:
开始 -> 运行 ->winmsd
点击软件环境 -> 系统驱动程序,可查看当前加载的驱动程序
点击软件环境 -> 正在运行任务,可查看当前运行的进程
点击软件环境 -> 加载的模块,可查看程序加载的 dll 文件
但是这部分功能在高版本操作系统中,已经被移除了,例如 Windows Server 2008, 所以下面介绍第二种方法。
第二种办法就是命令行输出,我们可以在 cmd 命令行中输入 systeminfo,我们可以看到下图中标红框的地方有系统打过的补丁信息。这里我们可以了解到系统可能存在的一些漏洞信息。
但是很明显,这里和第一种的差别,就是没有列出加载的进程, dll 文件,驱动等信息,但是这些信息可以通过其他工具去获取到,在 Windows server 2008 以及 windows7 之后,Windows 引入了资源控制器。两种方式打开
1.运行 ->resmon
2. 任务管理器 -> 性能 -> 资源监视器
这部分可根据相关 exe 搜索加载的 dl 等文件。
网络信息获取#
Windows 下的 cmd 命令行输入 ipconfig,先确认当前网卡的 ip 地址分配情况。
然后可以进一步确认网络连接情况,通过 cmd 命令行输入 netstat - ano,获取网络进程连接的状态,检查是否存在可疑进程网络连接信息。
netstat 的几种状态#
CLOSED
初始(无连接)状态。-9-
LISTEN
侦听状态,等待远程机器的连接请求。
SYN_SEND
在 TCP 三次握手期间,主动连接端发送了 SYN 包后,进入 SYN_SEND 状态,等待对方的 ACK 包。
SYN_RECV
在 TCP 三次握手期间,主动连接端收到 SYN 包后,进入 SYN_RECV 状态。
ESTABLISHED
完成 TCP 三次握手后,主动连接端进入 ESTABLISHED 状态。此时,TCP 连接已经建立,可以进行通信。
FIN_WAIT_1
在 TCP 四次挥手时,主动关闭端发送 FIN 包后,进入 FIN_WAIT_1 状态。
FIN_WAIT_2
在 TCP 四次挥手时,主动关闭端收到 ACK 包后,进入 FIN_WAIT_2 状态。
TIME_WAIT
在 TCP 四次挥手时,主动关闭端发送了 ACK 包之后,进入 TIME_WAIT 状态,等待最多 MSL 时间,让被动关闭端收到 ACK 包。
CLOSING
在 TCP 四次挥手期间,主动关闭端发送了 FIN 包后,没有收到对应的 ACK 包,却收到对方的 FIN 包,此时,进入 CLOSING 状态。
CLOSE_WAIT
在 TCP 四次挥手期间,被动关闭端收到 FIN 包后,进入 CLOSE_WAIT 状态。
LAST_ACK
在 TCP 四次挥手时,被动关闭端发送 FIN 包后,进入 LAST_ACK 状态,等待对方的 ACK 包。
小总结#
主连接端可能的状态有、 YN_SEND、ESTABLISHED
主动关闭端可能的状态有、FIN_WAIT_2、TIME_WAIT。被动连接端可能的状态有、YN_RECV、ESTABLISHED。
被动关闭端可能的状态有、AST_ACK 、 LOSED
用户信息获取#
Windows 下的 cmd 命令行输入 net user,确认当前操作系统的用户信息,确认是否存在可疑账户。
当然可以继续下一步输入 net user xx,确认该 xx 用于所属的 windows 组信息。
Windows 自带资源监视器,可以筛选当前进程的相关信息,这步主要在挖矿,或者被抓肉鸡向外 DOS 攻击的情况下特别好用。
无法在 Windows Server 2003 上使用。
详细信息获取#
启动信息收集#
这里涉及到一个工具,叫做 Autoruns,由于大多数的恶意软件本身不存在相关描述信息,所以通过检查 Publisher 和 Description 两条项目可排除一些较简单的后门程序或恶意代码:
通过选择 Options 菜单中的 Hide Microsoft and Windows Entries 可由 Autoruns 自动筛选部分安全的启动项:
行为信息收集#
在一些病毒中,常常会寻求访问一些敏感文件、注册表,创建模块等一些异常行为,所以我们可以通过上辅助监控软件,来检查恶意程序的行为。
Procmon 会实时展现进程对文件的行为以及结果,如下图所示:
该工具会清楚展示,该进程对某些文件做了什么操作,如果需要对特定的进程进行监视或过滤,可输入快捷键 ctrl+L,填写指定的进程名来进行结果过滤:
进程信息收集#
网络行为收集#
TcpView 可动态展示当前的网络连接状况,但该工具有个不好的地方,就是没办法刷出 UDP 的流量
用户信息收集#
开始菜单一运行一输入 compmgmt. msc,选择 “系统工具”-“本地用户和组”,即可查看
所有本地用户和组的信息 (包括用户名以 $ 结尾的隐藏用户,如: admin$)
或者使用 LP_Check 检查影子账户。
一般情况下,若创建了系统帐号并使用该帐号进行了操作的话,那么,即使使用计算机管理或 net 命令删除该帐号,系统中仍会残留部分帐号信息,这些信息可用于分析帐号的相关行为。
若用户帐号仅是通过 net 命令或用户管理程序删除的,那么,系统中会仍残留有该用户的目录,目录中的一些文件会记录用户的某些特定行为,便于追查,这些文件是:
(以系统安装在 C 盘、恶意用户名为 cracker 为例)
C: \Documents and Settings \cracker\ 桌面
用户的桌面,可能放有一些临时文件或下载的文件
C: \Documents and Settings \cracker \Cookies
用户的网络访问情况,cookie 文件中可能会记录一些敏感信息
C: \Documents and Settings \cracker \Recent
用户最近访问过哪些文件或文件夹
C: \Documents and Settings \cracker\Local Settings \History
用户上网的历史记录
C : \Documents and Settings\cracker \Local Settings \Temp
一些程序安装、解压缩等操作可能会在该目录产生临时文件
C: \Documents and Settings \cracker\Local Settings \Temporary
Internet Files
上网时产生的临时文件,不但会存储网页页面内容,还可能以临时文件的方式存储一些下载的文件。
若用户本身启用了安全日志审计,如果账号被删除,但是在审计日志中有关该账号的操作会留下一串帐号的 SID 值。
Windows 日志分析#
Windows 日志文件三大块,分别是:
应用程序日志
安全日志系统日志
setup 日志 (server 2003 之后加入)
这些日志以在 server 2003 以前,包括 server 2003 以 evt 文件形式存储在 % systemroot%\system32\config 目录下(% SystemRoot% 为系统环境变量,默认值为 C: \WINDOWS)。但是在 server 2003 以后存储的位置是在
% systemroot%\System32\winevt\Logs 目录下
点击 “开始→设置→控制面板→管理工具→事件查看器”,在事件查看器窗口左栏中列出本机包含的日志类型,如应用程序、安全、系统等。
注意事项:
系统内置的三个核心日志文件
(System,Security 和 Application)默认大小均为 2048OKB (20MB),记录事件数据超过 20MB 时,默认系统将优先覆盖过期的日志记录。
其它应用程序及服务日志默认最大为 1024KB,超过最大限制也优先覆盖过期的日志记录。
Windows 事件日志中共有五种事件类型,所有的事件必须拥有五种事件类型中的一种,且只可以有一种。五种事件类型分为:
1. 信息 (Information)
信息事件指应用程序、驱动程序或服务的成功操作的事件。
2.警告 (Warning)
警告事件指不是直接的、主要的,但是会导致将来问题发生的问题。例如,当磁盘空间不足或未找到打印机时,都会记录一个 “警告” 事件。
3.错误 (Error)
错误事件指用户应该知道的重要的问题。错误事件通常指功能和数据的丢失。例如,如果一个服务不能作为系统引导被加载,那么它会产生一个错误事件。
4.成功审核 (Success audit)
成功的审核安全访问尝试,主要是指安全性日志,这里记录着用户登录 / 注销、对象访问、特权使用、账户管理、策略更改、详细跟踪、目录服务访问、账户登录等事件,例如所有的成功登录系统都会被记录为 “成功审核” 事件。
5. 失败审核 (Failure audit)
失败的审核安全登录尝试,例如用户试图访问网络驱动器失败,则该尝试会被作为失败审核事件记录下来。
应用程序日志#
应用程序日志包含操作系统安装的应用程序软件相关的事件。事件包括了错误、警告及任何应用程序需要报告的信息,应用程序开发人员可以决定记录哪些信息。然后开发人员可以利用这些日志可判断哪些程序运行错误以及错误内容:
如使用 MSI 包安装软件时,若 MSI 错误,则会引发 MsiInstaller 的应用程序日志:
安全日志#
安全日志包含安全性相关的事件,如用户权限变更,登录及注销,文件及文件夹访问,打印等信息,下图为相关事件对照表。
从日志中可以看到登陆的详细信息:登陆时间、用户、源网络地址等。如果出现大规模的登陆失败,且登录类型为 3 的登录尝试,则很可能意味着有用户在远程尝试口令破解,应特别小心。
另外 Windows 默认情况下没有额外的系统启动日志或相关记录程序,因此,需依靠一些服务来判断系统的系统,而其中 event log 服务是最好的参考标志,event log 服务的启动和停止就意味着 Windows 系统的启动和停止。
系统日志包含系统进程,设备磁盘活动等。事件记录了设备驱动无法正常启动或停止,硬件失败,重复 IP 地址,系统进程的启动,停止及暂停等行为。
若系统中突然出现大量 IP 地址冲突的日志,则可判断网络中存在 ARP 欺骗攻击。
系统日志#
setup 日志#
该日志记录一些补丁安装日志。部分恶意用户利用漏洞入侵后,很可能会使用 Windows Update 对系统进行补丁安装。
以防止其他用户入侵,这样,在系统中就会残留有相关的日志:
常用工具#
火绒剑#
火绒剑还是很好用的,之前的内容里面提及到的一些要点,该工具基本涵盖了,以下列举一些简单的功能:
1. 系统进程监控
2. 启动项
3. 网络监控
PcHunter#
Pchunter 和火绒剑差不多,但是 UI 就差很多了:
该工具特点,疑似异常的东西会给你标记为红色,而且该工具针对内核钩子,和应用层钩子这类型的东西,支持比较好,属于是各有长处。
PowerTool#
有些病毒可能会检查火绒剑和 PC hunter,所以这里推荐一个 powertool,该工具是从内核开始检查,功能与火绒剑、PC hunter 差不多。
病毒分析#
PCHunter: http://www.xuetr.com
火绒剑:https://www.huorong.cn
Process Explorer: https://docs.microsoft.com/zh-cn/sysinternals/downloads/process-explorer
processhacker: https://processhacker.sourceforge.io/downloads.php
autoruns: https://docs.microsoft.com/en-us/sysinternals/downloadslautoruns(失效链接)
https://learn.microsoft.com/en-us/sysinternals/downloads/autoruns
OTL: https://www.bleepingcomputer.com/download/otl/ (失效链接)
卡巴斯基: http://devbuilds.kaspersky-labs.com/devbuilds/KVRT/latest/fullKVRT.exe
(推荐理由:绿色版、最新病毒库)
大蜘蛛: http.drweb.ru/download+cureit+free
(推荐理由:扫描快、一次下载只能用 1 周,更新病毒库)
火绒安全软件: https://www.huorong.cn
360 杀毒: http://sd.360.cn/download_center.html
病毒动态#
CVERC - 国家计算机病毒应急处理中心: http://www.cverc.org.cn
微步在线威胁情报社区: https.threatbook.cn
火绒安全论坛: http://bbs.huorong.cn/forum-59-1.html
爱毒霸社区: http://bbs.duba.net
webshell 查杀#
D 盾_Web 查杀: http://www.d99net.net/index.asp
河马 webshell 查杀: http://www.shellpub.com
深信服 Webshell 网站后门检测工具: http://edr.sangfor.com.cn/backdoor_detection.html
Safe3: http://www.uusec.com/webshell.zip(失效链接)
https://sourceforge.net/projects/safe3wvs/