一、根据情报先判断出需要出应急的是什么事件类型。
常见事件类型:
- 大规模沦陷
- 情况类型
- 情况内容
- 挖矿病毒
- 勒索病毒
- 无文件落地
- 不死(顽固)马
- 钓鱼
- 数据劫持
二、保持第一现场
第一现场包含:
- 第一发现人
- 第一情报
- 失陷主体、群体
- 主体、群体行为
- 失陷环境
三、阻断
所谓阻断只有三步:
- 关站;
- 关服务;
- 拔网线(网卡禁用)。
四、痕迹分析
分析三大件:日志、流量、样本。
- 日志主要注意的是:时间、动作、结果;这个行为什么时候开始、什么时候结束,这个动作是登陆、退出、修改等、造成的结果是登陆成功、失败、上传、下载了文件、执行了代码等。
- 流量主要注意的是:状态码、交互过程、数据合理性;每一次交互的状态码,交互过程中是否符合该种协议的正确交互过程,每个字段的填充、每次流量的渲染是否正常。
- 样本主要注意的是:启动方式、伪装方式、作用;根据启动方式去选择沙箱或者分析工具;伪装方式判断是否加壳做免杀和打开方式;根据作用去判断受害范围。
1、系统基本信息
重点关注:
- 系统内是否有非法账户;
- 系统中是否含有异常服务程序;
- 系统是否存在部分文件被篡改,或发现有新的文件;
- 系统安全日志中的非正常登陆情况;
- 网站日志中是否有非授权地址访问管理页面记录;
- 根据进程、连接等信息关联的程序,查看木马活动信息;
- 假如系统的命令(例如netstat ls 等)被替换,为了进一步排查,需要下载一新的或者从其他未感染的主机拷贝新的命令;
- 发现可疑可执行的木马文件,不要急于删除,先打包备份一份;
- 发现可疑的木马文件,使用文本工具对其内容进行分析,包括回连IP 地址、加密方式、关键字(以便扩大 整个目录的文件特征提取)等。
2、异常连接排查
Windows
排查异常连接
|
命令
|
查看目前的网络连接,
定位可疑的ESTABLISHED 进程
|
netstat -ano | findstr ESTABLISHED
|
查看端口对应的PID
|
netstat -ano | findstr <PORT>
|
查看连接或侦听端口涉及的可执行程序
(需要管理员权限)
|
netstat -nb
|
eg:查看连接或侦听端口涉及的可执行程序 (需要管理员权限)
Linux
排查异常连接
|
命令
|
列出所有打开了网络套接字的进程
|
lsof -i
lsof -i | grep -E "LISTEN|ESTABLISHED
|
出所有打开的端口及连接状态
|
netstat -anptul
netstat -ano
|
eg:出所有打开的端口及连接状态
3、异常进程排查
Windows
排查异常进程
|
命令
|
查看所有进程(任务管理器)
|
taskmgr
|
查看运行在本地或远程计算机上的所有进程
|
tasklist
tasklist | findstr <KEY_WORDS>
|
查看进程的完整命令
|
wmic process | findstr "cmd.exe"
|
查看进程详细信息
|
msinfo32/软件环境/正在运行任务
|
关闭进程
|
wmic process where processid=<PID> delete
|
eg:
查看所有进程(任务管理器)
Linux
排查异常进程
|
命令
|
查找进程PID
|
netstat -anptl
lsof -i:<PID>
|
通过PID 查找文件
|
cd /proc/<PID>
ls -ail
ls -ail | grep exe
|
查看各进程占用的系统资源
|
top
bpytop
|
查看当前进程信息
|
ps aux
|
实现某个进程的精确查找
|
ps -ef | grep <KEY_WORDS>
|
结束进程
|
kill -9 <PID>
|
查看进程树
|
pstree -p
|
查找关键字
|
find / -name <KEY_WORDS>
|
eg:查看各进程占用的系统资源
4、异常账号排查
Windows
排查异常账号
|
命令
|
查看当前的账户和用户组
|
lusrmgr.msc
|
查看当前账户情况
|
net user
net user aa$
|
查看当前组的情况
|
net localgroup administrators
|
查看当前系统会话
* 是否有人使用远程终端登陆服务器
|
query user
|
踢掉用户
|
logoff <USERID>
|
eg:
查看当前的账户和用户组
Linux
排查异常账号
|
命令
|
查看当前系统正在登陆账户的信息
|
w
|
查看当前登陆用户
(tty 本地登陆,pts 远程登录)
|
who
|
查看账号情况 |
cat /etc/passwd
cat /etc/shadow
|
查看所有账户最后一次登陆时间
|
lastlog
|
查看用户登陆错误的记录
(检查暴力破解)
|
last
lastb
|
查看登陆多久,多少用户,负载
|
uptime
|
eg:查看当前系统正在登陆账户的信息
5、异常文件分析
Windows
分析异常文件
|
命令 |
查看文件时间
|
右键查看文件属性,查看文件时间
|
查看某个用户相关文件
|
%UserProfile%\Recent
|
根据文件夹内文件列表时间进行排序,查找可疑文件。当然也可以搜索指定日期范围的文件及查看文件时间,创建时间、修改时间、访问时间,黑客通过菜刀类工具改变的是修改时间。所以如果修改时间在创建时间之前明显是可疑文件。
Linux
分析异常文件
|
命令
|
分析文件日期
|
stat <FILE_PATH>
|
查看最近24 小时内修改过的文件
|
find ./ -mtime 0
find ./ -mtime 1
find ./ -mtime 0 -o -mtime 1 -o -mtime 2
find ./ -mtime 0 -name "*.php"
|
按照时间顺序查找敏感目录文件
|
ls –alht /tmp/
|
查找特殊权限文件
|
find / *.jsp -perm 777
find / -perm 777
find / *.sh -perm 777
|
查找隐藏的文件
|
ls -ar | grep "^\."
|
查看拥有不可修改权限的文件
(不可修改,不能删除,只能追加)
|
lsattr <FILENAME>
|
查看SSH 公钥
|
ls -alh ~/.ssh
|
eg:查找隐藏的文件
五、清除日志
情况
|
做法
|
常态
|
* 全盘重装
* 数据迁移、系统盘重装
* 杀进程、删文件、清除账号等
|
攻防演习
(对抗)
|
* 存在不死马、内存马、顽固马、APT 等威胁
* 修复漏洞、打补丁
* 恢复生产,保障业务正常
* 取证、溯源
|
六、总结报告
分析事件原因
- 攻击来源:IP 等信息
- 攻击行为分析:方式(攻击手法与漏洞利用)、路径(攻击途径)等信息。
输出应急报告
- 时间
- 报告人
- 项目
- 应急前症状
- 应急措施
- 领导确认签字
- ...