应急响应
0x01前期情况调研
1.发生时间
询问客户或运维人员发现异常事件的具体时间,后续的操作要基于此时间点进行追踪分析。
-
受影响系统类型
询问具体的操作系统类型及相关情况,以便后续的应急处置。windows/linux
OA系统/邮件系统/财务系统/官网等,系统重要性,是否可关停
是否有弱口令,远程管理端口是否开放
都开放了什么端口,有什么服务,服务是否存在风险性
必要的话现场检测,不要完全相信听来的东西 -
异常情况
- 文件被加密
- 设备无法正常启动
- 勒索信息展示
- CPU利用率过高
- 网页挂马/黑链
- 对外发送异常请求
- 对外发送垃圾短信
- 其他非正常的情况
- 已有的处置措施
- 之前是否存在此类问题
- 是否在出现问题后配置了新的策略
- 是否已有第三方已进行了应急处理,处理结果是什么
- 是否有其他处置措施
- 系统架构/网络拓扑
是否能提供网络拓扑图 - 能否提供以下日志
- 服务器日志
- 应用日志,重点web日志
- 数据库日志
- 其他日志
- 已有的安全设备
- 终端杀软
- 防火墙
- WAF
- 流量分析设备
- 其他设备
- 基本的应急处置方案
- 临时处置方案
- 勒索病毒处置方案
- 挖矿程序处置预案
- 网页挂马处置预案
- DDOS处置预案
- 内部数据泄露处置预案
- 其他处置预案
- 应急报表
-
包含下述应急方法
-
端口开放情况,及各个端口应用分析,处置建议
0x02遏制传播风险 -
禁止被感染主机使用U盘,移动硬盘等存储介质,如必须使用做好备份处理工作。
-
禁用所有无线/有线网卡或直接拔网线
-
关闭相关风险或者未知端口
-
划分隔离网络区域
-
封存主机,相关数据备份
-
被感染主机应用服务下线
-
被感染主机部分功能暂停
-
被感染主机相关账号降权
0x03已知高危漏洞排查 -
可与下面的步骤同时进行,扫描已知高危漏洞(但要注意扫描产生的大量日志不要影响漏洞排查工作)。
0x04系统基本信息Windows
-
查看当前系统的补丁信息 systeminfo
Linux
-
列出系统arp表,重点查看网关mac地址 arp -a
-
文件搜索命令 find / -name “.asp”
0x05异常连接排查Windows
-
查看目前的网络连接,定位可疑的 ESTABLISHED netstat -ano
netstat -ano | findstr ESTABLISH
参数说明:
-a 显示所有网络连接、路由表和网络接口信息
-n 以数字形式显示地址和端口号
-o 显示与每个连接相关的所属进程 ID
-r 显示路由表
-s 显示按协议统计信息、默认地、显示 IP
LISTENING 侦听状态
ESTABLISHED 建立连接
CLOSE_WAIT 对方主动关闭连接或网络异常导致连接中断 -
查看端口对应的pid netstat -ano | findstr “port”
Linux
-
列出所有打开了网络套接字(TCP和UDP)的进程
lsof -i
lsof -i|grep -E “LISTEN|ESTABLISHED” -
列出所有打开的端口及连接状态
netstat -antlp
netstat -an
参数说明
-a 显示所有连线中的 Socket。
-n 直接使用 IP 地址,而不通过域名服务器。
-t 显示 TCP 传输协议的连线状况。
-u 显示 UDP 传输协议的连线状况。
-v 显示指令执行过程。
-p 显示正在使用 Socket 的程序识别码和程序名称。
-s 显示网络工作信息统计表
0x06正在运行的异常进程排查Windows
-
查看异常进程 任务管理器
-
显示运行在本地或远程计算机上的所有进程 tasklist | findstr 11223
根据netstat定位出的异常进程的pid,再通过tasklist命令进行进程定位 -
根据 wmic process 获取进程的全路径 wmic process | findstr “xx.exe”
-
查看进程的详细信息,比如进程路径,进程ID,文件创建日期,启动时间等
“开始->运行->msinfo32->软件环境 -> 正在运行任务”Linux
-
查找进程pid
netstat -antlp 先找出可疑进程的端口
lsof -i:port 定位可疑进程pid -
通过pid查找文件
linux每个进程都有一个对应的目录
cd /proc/pid号 即可进入到该进程目录中
ls -ail 结果中exe对应的就是该pid程序的目录
ls -ail |grep exe -
查看各进程占用的内存和cpu top
-
显示当前进程信息 ps
-
实现某个进程的精确查找 ps -ef | grep apache
-
结束进程 kill -9 pid,如,kill -9 4394
-
查看进程树 pstree -p 查找异常进程是否有父进程
0x07异常账号排查Windows
-
图形化界面查看当前的账户和用户组 lusrmgr.msc
-
查看当前账户情况 net user
-
查看某个账户的详细信息 net user Guest
-
查看当前组的情况 net localgroup administrators
-
查看当前系统会话,比如查看是否有人使用远程终端登陆服务器 query user
踢出该用户 logoff ID ID是上面查询出来的。也可能是用户名Linux
-
查看utmp日志,获得当前系统正在登陆账户的信息及地址 w
-
获得系统前N次的登陆记录 last | more
-
查看账号情况 cat /etc/passwd
/etc/passwd保存着linux系统所有用户的信息,通过查看这个文件,我们就可以尝试查找有没有攻击者所创建的用户或者存在异常的用户。我们主要关注的是第3、4列的用户标识号和组标识号和倒数一二列的用户主目录和命令解析程序。一般来说最后一列命令解析程序如果是设置为nologin的话,那么表示这个用户是不能登录的,所以可以结合我们上面所说的bash_history文件的排查方法。首先在/etc/passwd 中查找命令解释程序不是nologin的用户,然后再到这些用户的用户主目录里,找到 bash_history,去查看这个用户有没执行过恶意命令。/etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下:
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
注意:无密码只允许本机登陆,远程不允许登陆,某个版本之后好像因为安全问题,passwd文件不再有密码了 -
查看账号情况 cat /etc/shadow
root: 6 6 6oGs1PqhL2p3ZetrE$X7o7bzoouHQVSEmSgsYN5UD4.kMHx6qgbTqwNVC5oOAouXvcjQSt.Ft7ql1WpkopY0UV9ajBwUt1DpYxTCVvI/:16809:0:99999:7:::
用户名:加密密码:密码最后一次修改日期:两次密码的修改时间间隔:密码有效期:密码修改到期到的警告天数:密码过期之后的宽限天数:账号失效时间:保留
这里查账号感觉好一点,一般系统的账号都是没有密码的,所以找最长的那几个,那就是有密码的账户,很可能就是被黑客添加的后门账户 -
linux非root用户文件夹所在位置 /home
-
查看所有账户最后一次登陆时间 lastlog
-
显示用户登陆错误的记录 lastb 检查暴力破解
-
显示用户最近登陆信息 last
数据源为
/var/log/wtmp
/var/log/wtmp.1
/var/log/btmp
/var/log/btmp.1 -
查看当前登陆用户 who (tty本地登陆 pts远程登录)
-
查看当前时刻用户行为 w
-
查看登陆多久,多少用户,负载 uptime
-
删除user用户 userdel -r user
-
创建用户
useradd admin 创建一个用户,在home目录下不创建文件夹
passwd admin 修改之前创建的账号的密码
adduser admin2 是一个比较完善的创建用户的命令,会在home目录下生成一个admin2的文件夹 -
删除用户
userdel admin2 这样删除的话不完全,home目录下的admin2目录不会删除
userdel -rf admin -r 完全删除一个账户 -f强制删除
如果遇到账户删除显示已经删除,但创建同名的用户提示用户已存在的情况,尝试以下方法进行删除。
手动删除passwd、shadow、group里面用户相关字段,以及用户相关的log和mail,并强制删除home目录下用户的文件夹。
/home
/etc/passwd
/etc/group
/var/spool/mail
0x08异常文件分析Windows
-
查看文件时间 右键查看文件属性,查看文件时间
-
Recent 是系统文件夹,里面存放着你最近使用的文档的快捷方式,查看用户recent 相关文件,通过分析最近打开分析可疑文件 %UserProfile%\Recent
-
通过文件时间属性来定位可疑文件,根据文件夹内文件列表时间进行排序,查找可疑文件。当然也可以搜索指定日期范围的文件及文件查看文件时间,创建时间、修改时间、访问时间,黑客通过菜刀类工具改变的是修改时间。所以如果修改时间在创建时间之前明显是可疑文件
Linux
-
分析文件日期 stat xx.asp
-
返回最近24小时内修改过的文件 find ./ -mtime 0
返回的是前48~24小时修改过的文件 find ./ -mtime 1
返回10天内修改过的文件,可以把最近几天的数据一天天的加起来 find ./ -mtime 0 -o -mtime 1 -o -mtime 2
查找 24 小时内被修改的 php 文件 find ./ -mtime 0 -name “*.php” -
敏感目录的文件分析 [类/tmp 目录,命令目录/usr/bin /usr/sbin 等], 查看 tmp 目录下的文件 ls –alt /tmp/ | head -n 10这样是按时间顺序查出来的结果
-
特殊权限文件查找
find / *.jsp -perm 777
find / -perm 777 |more
find / *.sh -perm 777|grep .sh -
以 "."开头的具有隐藏属性的文件,当前目录查找 ls -ar |grep “^.”
-
i linux文件不可修改权限
chattr +I filename 给文件添加不可修改权限
chattr -I filename 将文件的不可修改权限去掉
lsattr filename 查看文件是否设置了相关权限
如果设置了该参数,则无论任何人想要删除改文件均需要将此权限去掉 -
a linux文件不可修改权限
chattr +a filename 给文件添加只追加权限
chattr -a filename 将文件的只追加权限去掉
lsattr filename 查看文件的相关权限设置
这个权限让目标只能追加,不能删除,而且不能通过编辑器追加
0x09启动项排查Windows
-
查看开机启动有无异常文件 msconfig
-
win10开机启动文件夹
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
快捷查找方法,找一个安装好的程序的快捷方式,右键打开文件位置,再进入该目录下的启动目录即可。StartUp -
win7开机启动文件夹
C:\Users\rpkr\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
查找方式,开始>所有程序>启动 ,03查找同此方法 -
在注册表中查看开机启动项是否异常
开始->运行->regedit,打开注册表,查看开机启动项是否正常,特别注意如下三个注册表项:
HKEY_CURRENT_USER\software\micorsoft\windows\currentversion\run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce
检查右侧是否有启动异常的项目,如有请删除,并建议安装杀毒软件进行病毒查杀,清除残留病毒或木马Linux
-
查看开机启动项内容
ls -alt /etc/init.d/
/etc/init.d 是 /etc/rc.d/init.d 的软连接 -
启动项文件 more /etc/rc.local
/etc/rc.d/rc[0~6].d
ls -l /etc/rc.d/rc3.d/
ll /etc |grep rc -
定时任务-基本使用
1.利用crontab创建计划任务
crontab -l 列出某个用户 cron 服务的详细内容
2.删除每个用户cront任务(慎重:删除所有的计划任务)
crontab -r
3.使用编辑器编辑当前的crontab文件
crontab -e
如:*/1 * * * * echo ““hello word”” >> /tmp/test.txt 每分钟写入文件
4.利用anacron实现异步定时任务调度
每天运行 /home/bacup.sh 脚本
vi /etc/anacrontab
#daily 10 example.daily /bin/bash /home/backup.sh
当机器在backup.sh期望被运行时是关机的,anacron会在机器开机十分钟后运行它,而不用再等待7天
ls -al /var/spool/cron/ 查看隐藏的计划任务
Tips:默认编写的crontab文件会保存在(/var/spool/cron/用户名 例如:/var/loop/cron/root)
0x10计划任务排查(定时任务)Windows
-
查看Windows 计划任务 taskschd.msc
或者 【程序】➜【附件】➜【系统工具】➜【任务计划程序】Linux
-
查看当前计划任务有哪些 crontab -l 是否有后门木马程序启动相关信息
-
查看分析计划任务 crontab -u <-l, -r, -e>
解释
-u 指定一个用户
-l 列出某个用户的任务计划
-r 删除某个用户的任务
-e 编辑某个用户的任务(编辑的是/var/spool/cron 下对应用户的 cron 文件,也可以直接修改
/etc/crontab 文件) -
查看 etc 目录任务计划相关文件
ls -al /etc/cron*
cat /etc/crontab -
此处要注意隐藏的计划任务,在linux中以.开头的文件为隐藏文件,要使用ls -al来查看
-
定时任务 - 入侵排查
重点关注以下目录中是否存在恶意脚本
/var/spool/cron/*
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/*
/etc/cron.hourly/*
/etc/cron.monthly/*
/etc/cron.weekly/
/etc/anacrontab
/var/spool/anacron/*
小技巧:more /etc/cron.daily/* 查看目录下所有文件
0x11日志排查Windows
-
打开日志管理器 eventvwr.msc
-
查看暴力破解问题,筛选事件ID,win2008 4625
Linux
-
查看历史命令记录文件 cat /root/.bash_history |more ,每个账户对应的文件夹下都有这样一个日志文件,但感觉记录的不是特别全。
-
如有 /var/log/secure 日志,可观察其进行暴力破解溯源
-
ubuntu 建议使用 lastb 和 last 进行暴力破解溯源
0x12恢复阶段
-
此阶段以客户或当事人为主,仅提供建议
webshell/异常文件清除 - 相关样本取样截图留存
恢复网络
应用功能恢复
补丁升级
提供安全加固措施,推荐切合的安全产品
0x13跟踪总结
- 分析事件原因
- 攻击来源,IP
- 攻击行为分析,弱口令、可以导致命令执行的漏洞等
- 输出应急报告
- 事后观察
- 提供加固建议
实战细节注意: - 处理前先kill掉病毒进程,避免插入的U盘被加密
- 如果日志分析阶段遇到困难,可对代码进行webshell查杀,可能会有惊喜
二、工具篇
0x01病毒分析
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/downloads/autoruns
0x02病毒查杀
卡巴斯基:
http://devbuilds.kaspersky-labs.com/devbuilds/KVRT/latest/full/KVRT.exe
(推荐理由:绿色版、最新病毒库)
大蜘蛛:
http://free.drweb.ru/download+cureit+free
(推荐理由:扫描快、一次下载只能用1周,更新病毒库)
火绒安全软件:
https://www.huorong.cn
360杀毒:
http://sd.360.cn/download_center.html
0x03病毒动态
CVERC-国家计算机病毒应急处理中心:
http://www.cverc.org.cn
微步在线威胁情报社区:
https://x.threatbook.cn
火绒安全论坛:
http://bbs.huorong.cn/forum-59-1.html
奇安信威胁情报中心:
https://ti.qianxin.com/
腾讯御见威胁情报中心(微信公众号)
黑鸟(微信公众号)
0x04在线病毒扫描
http://www.virscan.org //多引擎在线病毒扫描网 v1.02,当前支持 41 款杀毒引擎
https://www.virustotal.com //新版多引擎世界在线杀毒网
https://habo.qq.com //腾讯哈勃分析系统
https://virusscan.jotti.org //Jotti恶意软件扫描系统
http://www.scanvir.com //针对计算机病毒、手机病毒、可疑文件等进行检测分析
0x05Webshell查杀
D盾_Web查杀:
http://www.d99net.net/index.asp
河马webshell查杀:
http://www.shellpub.com
百度在线查杀:
https://scanner.baidu.com/#/pages/intro
Web Shell Detector:
http://www.shelldetector.com/
CloudWalker:
https://github.com/chaitin/cloudwalker/releases
0x06日志分析
攻击日志分析:
https://github.com/Lucifer1993/ALB
Web日志分析:
https://github.com/JeffXue/web-log-parser
Windows系统安全登录日志分析工具:
https://github.com/TheKingOfDuck/logonTracer