这篇笔记参考了奇安信安服团队所写的书——《网络安全应急响应技术实战指南》
算是自己看书和学习的一个总结和整理。
事件发生前未雨绸缪,事件发生后亡羊补牢。
顺便想提一下书中在1.3中所写的一个机构、企业网络安全应急响应应具备的能力。
这几个技能点稍加修改包装,简历不就又能加几行了吗()
常见网络安全应急响应场景:
勒索病毒,挖矿木马,Webshell,网页篡改,DDoS攻击,数据泄露,流量劫持等
应急响应分析流程如下:
事件类型→时间范围→系统排查→进程排查→服务排查→文件痕迹检查→日志分析→(关联推理)→结论
下面就是对技能点的简单总结。
系统排查
Windows服务
系统信息工具
如果只是简单的了解可以通过命令行输入【systeminfo】该命令能查看主机名、操作系统版本等信息。
更详细一些的内容可以通过命令行输入【winmsd】或【msinfo32】(这个是前者的更新版本)
例如靶机windows2003用的就是【winmsd】命令
win10电脑是【msinfo32】命令
正在运行的任务
在【系统信息】窗口中,单击【软件环境】中的【正在运行任务】选项,可以查看正在运行任务的名称、状态、路径
进程ID等信息。
服务
在【系统信息】窗口中,单击【软件环境】中的【服务】选项,可以查看服务的名称、状态、路径等信息。
系统驱动服务
在【系统信息】窗口中,单击【软件环境】中的【系统驱动程序】选项,可以查看系统驱动程序的名称、描述、文件等信息。
加载的模块
在【系统信息】窗口中,单击【软件环境】中的【加载的模块】选项,可以查看加载的模块名称、路径等信息。
启动程序
在【系统信息】窗口中,单击【软件环境】中的【启动程序】选项,可以查看启动程序命令、用户名、位置等信息。
用户信息
Windows系统中排查恶意账户有以下4种方法:
1.命令行方法【无法看到隐藏账户】
1 | net user #查看用户(不包括隐藏用户) |
进一步收集账户信息可加上username
2.图形界面方法
我的电脑→右键→管理→计算机管理(本地)→本地用户和组→用户
或者在命令行输入【lusrmgr.msc】
可以看到带$的隐藏账户
3.注册表方法
在命令行中输入【regedit】即可打开注册表编辑器
选择【HKEY_LOCAL_MACHINE】下的【SAM】选项,右键点击权限界面并进入高级安全设置,更改权限然后才能看到东西,不然啥也看不到。
双击Users文件夹可以看到对应账号F值的二进制数据(可右键导出),若发现两个账号相同 ,则发现克隆账号。
4.wmic方法
1 | wmic useraccount get name,SID |
Windows启动项
启动项是病毒后门等实现持久化驻留的一种常用方法,在应急响应中也是排查的必要项目
1.通过【系统配置】对话框查看
Win+R 输入【msconfig】即可
2.通过注册表查看
各个目录的含义看书吧 懒得打字了orz
1 | #注册表放自启动项目录(不完全整理) |
添加注册表也是惯用手段了。
任务计划
不详细讲了,看图就完事儿了,这个方法还是很明显的
Windows防火墙网络出入
1 | netsh Firewall show state #查看系统防火墙状态 |
在新版虽然已被弃用,但仍可以提供所需要的信息
进程排查
服务排查
通过【任务管理器】查看
实践中我发现了各版本间有写不同,比如win10在进程格右键就能选择,而2003在【查看】选项中,win7的叫法也有所不同,不过差距都不大。Windows 2003我没有发现显示映像路径和命令行设置设置,很苦恼T T
总之就是要看到进程名称、PID、命令行,可以初步判断哪些进程和行为可疑,方便锁定目标。
使用【tasklist】命令进行排查
和一些参数一起食用更佳
1 | tasklist /svc #显示每个进程和服务的对应情况 |
1 | tasklist /m |
对于某些加载DLL的恶意进程可以使用
查找特定的DLL后跟相应的进程模块即可。tasklist命令还有过滤器功能,可以结合具体情况使用
不知道有哪些功能的可以【tasklist /?】
使用【netstat】命令进行排查
1 | netstat -ano |
1 | netstat -ano | findstr "ESTABLISHED" |
ESTABLISHED,含义TCP:连接成功
如果需要定位筛查具体名称的话,还可以联动tasklist
1 | 例如tasklist | find "PID" |
1 | netstat -anb 可以查找发起外连的程序,不过需要管理员权限 |
1 | wmic process get name,parentprocessid,processid /format:csv 这样看起来就简洁一点 |
文件痕迹检查
它们告诉我,你曾经存在过。
敏感目录
各个盘下的/temp、/tmp文件夹
例如c:\windows\system32\inetsrv\MetaBase.xml #IIS配置文件
还有就是MySQL,PHP,Apache等等的配置文件,这里不在过多阐述和总结。
网上有很多现成又详细的总结,这里简单的其他博主的优秀文章。
https://blog.csdn.net/weixin_50464560/article/details/119063335
https://blog.csdn.net/lzz710107110/article/details/122386379
下载文件
包括但不仅限于:浏览器历史记录、下载文件、cookie信息
查看用户Recent文件
访问过的文件夹或文件是有记录的如C:/Documents and Settings\Default User\Recent
C:/Documents and Settings\用户名\Recent
查看预读取文件
Win+R输入【%SystemRoot%\Prefetch】即可发现pf预读取文件
另外,Amcache.hve【%SystemRoot%\appcompat\Programs 】文件可查询应用程序的执行路径、上次执行的时间及SHA1值
时间点查找
可列出攻击日期内新增的文件,从而发现相关的恶意软件。
1 | forfiles /m *.zip /d +2022/5/30 /s /p c:\ /c "cmd /c echo @path @fdate @ftime" 2>null |
很好用的命令 就是太长了记不住
对文件的创建时间、修改时间、访问时间进行排查
hacker有时候为了掩人耳目会对时间进行修改,然而这种行为经不起推敲。
修改时间后,这三种时间会有逻辑上的问题,需要工程师留心注意。
webshell
不能判断哪个是webshell的话就上D盾,上云沙箱
或者看对外建立的链接,去查ip或者外联传输的情况。
日志分析
分为系统日志,安全性日志,应用程序日志
除了windows系统日志,还可以对中间件日志,ftp日志,数据库日志进行相关分析
【这些东西有很多,笔者在此不多赘述,大家自行利用搜索引擎收集即可】
内存分析
分析的话,主要是各种工具的使用,在此不多赘述。
市面上流行的商业软件都很不错,比如取证大师,火眼,盘古石等。
当然volatility等也是很优秀的(建议用2版本)
流量分析
Wireshark是很棒的分析工具,1、要会抓包 2、要会分析(善用过滤器)简单分享几个我用的比较多的。
1 | ip.addr == ip #过滤特定ip |
威胁情报
ip和域名网上多查查
1 | https://x.threatbook.cn/ #微步平时也要闲着没事逛逛,说不定有意外惊喜呢 |
遇见可疑文件有事儿没事儿了多找几个地方上传一下,气死红队()
1 | https://www.virustotal.com/gui/home/upload #virustotal |
总结的内容到这里就要结束了,当然整本书300+页,后面有很多经典案例分享,如挖矿木马,勒索病毒,流量劫持等等。总的来说,是一本非常可读的书,值得想了解应急响应的同学学习一番。这些也有可能给红队的同学一些小启发哟~
若不去改变,明天永远只是今天的重演。