应急响应处置流程Windows篇
文章目录
记一次对Windows应急响应处置流程的学习
应急响应技能栈
Windows常用命令与分析工具
Windows基础
1、文件排查
2、进程排查
3、系统信息排查
4、工具排查
5、日志排查
文件排查
开机启动有无异常文件
【开始】➜【运行】➜【msconfig】
敏感的文件路径
%WINDIR% %windir%实际上是Windows系统默认设置的一个环境变量,表示Windows系统的安装目录
%WINDIR%\system32 系统目录
%TEMP% 临时文件
%LOCALAPPDATA% 应用程序本地数据
%APPDATA% 一个对Application Data路径的简记形式
排查技巧:很多文件怎么筛选最有可能是异常的,或者说哪些是系统里常见无害的。如按入侵时间,sh,bat后缀。
各个盘下的temp(tmp)相关目录下查看有无异常文件
TMP和TEMP:Windows产生的临时文件
查看Recent文件夹
Recent是系统文件夹,里面存放着你最近使用的文档的快捷方式,查看用户recent相关文件,通过分析最近打开分析可疑文件:
【开始】➜【运行】➜【%UserProfile%\Recent】
根据文件夹内文件时间
根据文件夹内文件列表时间进行排序,查找可疑文件。当然也可以搜索指定日期范围的文件及文件
查看文件时间,创建时间、修改时间、访问时间,黑客通过菜刀类工具改变的是修改时间。所以如果修改时间在创建时间之前明显是可疑文件(说明该文件有可能是从别的地方下载下来的)
进程排查
netstat -ano 查看目前的网络连接,定位可疑的ESTABLISHED
netstat 显示网络连接、路由表和网络接口信息;
参数说明:
-a 显示所有网络连接、路由表和网络接口信息
-n 以数字形式显示地址和端口号
-o 显示与每个连接相关的所属进程 ID
-r 显示路由表
-s 显示按协议统计信息、默认地、显示IP
-e 显示更多信息如用户,inode
-p 显示pid和程序名字
-t 显示tcp链接
-u 显示udp链接
-x 显示unix套接字
常见的状态说明:
LISTENING 侦听状态
ESTABLISHED 建立连接
CLOSE_WAIT 对方主动关闭连接或网络异常导致连接中断
查看IP是否可疑,如国外vps地址,矿池地址,结合情报平台进行分析
根据netstat定位出的pid,再通过tasklist命令进行进程定位
tasklist 显示运行在本地或远程计算机上的所有进程;
根据wmic process 获取进程的全路径
任务管理器定位到进程路径
查询进程
•wmic process(带有cmdline)
•wmic process list brief
•wmic process where name=“xxxx” get executablepath
删除进程
•wmic process where processid=“2345” delete
查询服务
•wmic SERVICE(涵盖服务关联所有信息)
•wmic SERVICE where caption(name)=”xxxxxx” call stopservice
•wmic SERVICE where caption(name)=“xxxxxx" call delete
系统信息排查
Windows 计划任务
【程序】➜【附件】➜【系统工具】➜【任务计划程序】
Windows帐号信息,如隐藏帐号等
【开始】➜【运行】➜【compmgmt.msc】➜【本地用户和组】➜【用户】
(用户名以$结尾的为隐藏用户,如:admin$)
注意:CMD下是查看不到用户名以$结尾的为隐藏用户
命令行方式:net user,可直接收集用户信息(此方法看不到隐藏用户),若需查看某个用户的详细信息,可使用命令➜net user username;
查看systeminfo信息,系统版本以及补丁信息
例如系统的远程命令执行漏洞MS17-010(永恒之蓝)、MS08-067、MS09-001 …
若进行漏洞比对,建议自建使用Windows-Privilege-Escalation-Exploit;
工具排查
PC Hunter
PC Hunter是一个Windows系统信息查看软件
下载地址:http://www.xuetr.com/
功能列表如下:
1.进程、线程、进程模块、进程窗口、进程内存信息查看,杀进程、杀线程、卸载模块等功能
2.内核驱动模块查看,支持内核驱动模块的内存拷贝
3.SSDT、Shadow SSDT、FSD、KBD、TCPIP、Classpnp、Atapi、Acpi、SCSI、IDT、GDT信息查看,并能检测和恢复ssdt hook和inline hook
4.CreateProcess、CreateThread、LoadImage、CmpCallback、BugCheckCallback、Shutdown、Lego等Notify Routine信息查看,并支持对这些Notify Routine的删除
5.端口信息查看,目前不支持2000系统
6.查看消息钩子
7.内核模块的iat、eat、inline hook、patches检测和恢复
8.磁盘、卷、键盘、网络层等过滤驱动检测,并支持删除
9.注册表编辑
10.进程iat、eat、inline hook、patches检测和恢复
11.文件系统查看,支持基本的文件操作
12.查看(编辑)IE插件、SPI、启动项、服务、Host文件、映像劫持、文件关联、系统防火墙规则、IME
13.ObjectType Hook检测和恢复
14.DPC定时器检测和删除
15.MBR Rootkit检测和修复
16.内核对象劫持检测
17.WorkerThread枚举
18.Ndis中一些回调信息枚举
19.硬件调试寄存器、调试相关API检测
20.枚举SFilter/Fltmgr的回调
使用工具,根据什么信息判断异常。常见案例。比如,在敏感目录里,powsershell进程后面跟着一长串参数。进程占满cpu,网络连接频繁。
PC Hunter 数字签名颜色说明:
黑色:微软签名的驱动程序;
蓝色:非微软签名的驱动程序;
红色:驱动检测到的可疑对象,隐藏服务、进程、被挂钩函数;
最简单的使用方法,根据颜色去辨识➜➜➜可疑进程,隐藏服务、被挂钩函数:红色,然后根据程序右键功能去定位具体的程序和移除功能。根据可疑的进程名等进行互联网信息检索然后统一清除并关联注册表;
ProcessExplorer
Windows系统和应用程序监视工具
Procexp是常用的进程查看工具
•打开procexp,在标题栏右键,可以勾选其它一些选项卡
•进程标识颜色不同是用于区分进程状态和进程类型,进程开始启动时为绿色,结束时为红色
•可对某个进程进行操作,右键单击即可。
日志排查
Windows登录日志排查
【开始】➜【管理工具】➜【事件查看】
【开始】➜【运行】➜【eventvwr】
Windows日志里面可分析的日志非常多,但是最容易看出问题的就是安全日志
安全日志主要是会记录一些登录的操作,比如3389远程管理的暴力破解行为,也会记录到这个日志里,通过刚才介绍过的思路,通过时间的维度查找存在过爆破的攻击者ip,然后看他是否有登录成功的记录,就能知道这个攻击者有没有成功爆破进来了。
远程rdp爆破的记录,也就是3389端口的爆破,rdp登录的记录会分别以事件id为4624、4625标记登录成功和登录失败。所以思路也是从登录失败的日志中找到可能存在爆破的ip,再去看爆破的ip是否有登录成功的记录。
4688 进程创建
4776 远程登录到本机
4720 账号管理加账号 4732 用户组
528 远程登录到本机 2003 登录类型: 10
529 远程登录 密码错误 2003 登录类型: 10
529 远程登录IPC$ SMB 密码错误 登录类型: 3 IPC$扫描没日志
540 远程SMB 成功 登录类型3
683 关闭3389窗口
4624 远程连接
一般看3389 应该是4776 4624 这个
主要分析安全日志,可以借助自带的筛选功能
主要分析安全日志,可以借助自带的筛选功能
中间件日志(Web日志access_log)
nginx、apache
iis
tomcat、jboss、weblogic、websphere
然后再到最容易出问题的web日志,也就是中间件日志access_log。
这上面列出来的这些中间件虽然名字不同,但其实它们输出的日志格式都大同小异,所以分析的时候基本上没有什么差异。
Web攻击的方法多种多样,但是默认情况下web日志中所能记录的内容并不算丰富,最致命的是web日志是不会记录post内容的,也就是说要从web日志中直接找出攻击者的webshell也就是web后门是非常难的,所以一般来说我们的分析思路都是先通过文件的方式找到webshell,然后再从日志里找到相应的攻击者ip,再去分析攻击者的整个攻击路径,来回溯攻击者的所有行为。
但是很多时候会因为各种各样的原因,导致我们只能通过分析web日志去发现webshell,比如黑客在入侵完了之后把webshell删除了,通过文件搜索的方式找不到webshell;或者客户因为一些原因不能让你登录服务器上去排查,只能给你一份日志排查,这时候要排查的话,难度会非常大。所以下面我们们重点讲一下web日志的排查思路。
web日志辅助分析工具,如GoAccess,星图,JeffXue/web-log-parser,Graylog,ELK等。大量日志中筛选异常技巧,如搜索exec base64 jspspy 等等。有些shell在get中传参数。upload/static/image目录后面跟着php jsp等后缀 状态码200。在execl中按访问量排名。一个文件源IP少,平均单个IP访问次数过高(攻击者访问shell就那几个ip,正常用户不会访问到shell文件)