应急响应
基本思路:
收集信息:收集客户信息和中毒主机信息,包括样本
判断类型:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、DoS 等等
抑制范围:隔离使受害⾯不继续扩⼤
深入分析:日志分析、进程分析、启动项分析、样本分析方便后期溯源
清理处置:杀掉进程,删除文件,打补丁,删除异常系统服务,清除后门账号防止
事件扩大,处理完毕后恢复生产
产出报告:整理并输出完整的安全事件报告
1、Windows应急响应
1.1系统账户:弱口令、22/3389 等端口是否对外
查看账号的方法:
net user(无法列出$用户)
lusrmgr.exe(无法找到注册表方式建立的用户)
查看注册表(最准)HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\
D盾有查看账户的功能
1.2进程、端口相关
查看开放的端口:netstat -ano
重点看状态是 ESTABLISHED 的端口:netstat -ano | findstr 'estab'
查看路由:netstat -rn
查看系统信息:msinfo32,依次点击 软件环境→正在运行任务,可以看到当前的
进程
查找 PID 对应的进程:tasklist | findstr PID
杀死进程:
taskkill /f /pid 123 /t
taskkill /f /im explorer.exe /t
查看进程对应的文件:依次输入 wmic-- process
显示 进程--PID--服务:tasklist /svc
查看 Windows 服务所对应的端口:
%system%/system32/drivers/etc/services
(一般 %system% 就是 C:\Windows )
防火墙配置:netsh firewall show all
1.3 计划任务、可疑进程
服务相关
查看服务:services.msc
系统信息
查看系统信息及补丁:systeminfo
可疑文件和目录
最近打开的文件:%UserProfile%\Recent
排查的几个点:
回收站、浏览器下载记录、浏览器历史记录
时间排序,查看最新的文件
修改时间在创建时间之前的文件
查看日志:eventvwr.msc
1.4 日志分析
系统日志(System.evtx):驱动程序、系统组件和应用软件的崩溃以及数据丢失
错误等
应用程序日志(Application.evtx):记录程序运行方面的事件
安全日志(Security.evtx):登录日志、对象访问日志、进程追踪日志、特权使
用、帐号管理、策略变更、系统事件。安全日志也是调查取证中最常用到的日志。
默认设置下,安全性日志是关闭的,管理员可以使用组策略来启动安全性日志,
或者在注册表中设置审核策略,以便当安全性日志满后使系统停止响应
修改配置策略,默认的话只会记录一些简单的,可以按照下面这个改配置
修改方法:开始 → 管理工具 → 本地安全策略 → 本地策略 → 审核策略
1.5 快捷常用命令
查看域中当前的主机列表:net view /domain
查看当前域中的用户 net user /domain
增加一个本地用户 net user username password /add
将新增的用户加到本地管理员组 net localgroup "Administrators" username /add
查看域中的密码策略 net accounts /domain
查看本地组 net localgroup "Group"
查看域中的组信息 net group /domain
查看域中指定组的成员 net group "Domain group" /domain
查看当前机器所在的域名 net config workstation
查看当前服务器所在的域名 net config server
显示系统信息 systeminfo
查看远程主机的系统信息 systeminfo /S ip /U domain\user /P Pwd
显示进程和服务信息 tasklist /svc
显示所有进程以及DLL信息 tasklist /m
显示进程和所有者 tasklist /v
查看远程主机的进程列表 tasklist /S ip /v
显示具体的服务信息(包括二进制路径和运行使用) sc qc Spooler
2、Linux应急响应
cat /etc/passwd
# 查看用户信息文件
cat /etc/shadow
# 查看影子文件
awk -F: '$3==0{print $1}' /etc/passwd
cat /etc/passwd | grep x:0
# 查看系统是否还存在其他的特权账户,uid为0,默认系统只存在root一个特权账户
who
#查看当前登录用户,以及其登录ip。pts代表远程登录,tty代表本地登陆。
uptime
#查看现在的时间、系统开机时长、目前多少用户登录,系统在过去的1分钟、5分钟 和15分钟内的平均负载。
stat /etc/passwd
#查看密码文件上一次修改的时间,如果最近被修改过,那就可能存在问题。
cat /etc/passwd | grep -v nologin
#查看除了不可登录以外的用户都有哪些,有没有新增的
cat /etc/passwd | grep /bin/bash
#查看能用bash shell登录的用户。
history
#查看历史命令
cat .bash_history >>history.txt
#保存历史命令
netstat -pantu
#查看端口开放和连接情况
ps -aux
#查看进程
ps -aux | grep pid
#查看关联进程
ps aux --sort=pcpu | head -10
#查看cpu占用率前十的进程
systemctl list-unit-files | grep enabled
#查看开机启动项
Crontab -l
#查看定时任务
top
#进程动态监控
ps -ef
#静态监控
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
#统计爆破主机root账号的失败次数及ip:
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
查看成功登录的日期、用户名、IP:
stat /bin/netstat
查看命名修改时间,防止被替换
3、说说钓鱼邮件处置实际操作
屏蔽办公区域对钓鱼邮件内容涉及站点、URL 访问
根据办公环境实际情况可以在上网行为管理、路由器、交换机上进行屏蔽
邮件内容涉及域名、IP 均都应该进行屏蔽
对访问钓鱼网站的内网 IP 进行记录,以便后续排查溯源可能的后果
屏蔽钓鱼邮件
屏蔽钓鱼邮件来源邮箱域名
屏蔽钓鱼邮件来源 IP
有条件的可以根据邮件内容进行屏蔽
删除还在邮件服务器未被客户端收取钓鱼邮件
处理接收到钓鱼邮件的用户
根据钓鱼邮件发件人进行日志回溯
此处除了需要排查有多少人接收到钓鱼邮件之外,还需要排查是否公司通讯录泄露。采用 TOP500 姓氏撞库发送钓鱼邮件的攻击方式相对后续防护较为简单。如果发现是使用公司通讯录顺序则需要根据通讯录的离职情况及新加入员工排查通讯录泄露时间。毕竟有针对性的社工库攻击威力要比 TOP100、TOP500 大很多
通知已接收钓鱼邮件的用户进行处理
删除钓鱼邮件
系统改密
全盘扫毒
后续:溯源、员工培训提升安全意识
流量分析
1、如何区分菜刀、蚁剑、冰蝎、哥斯拉WENSHELL特征?(经典问题)
菜刀:
1、webshell 为一句话木马
2、ua 头为百度爬虫
3、请求体中存在 eavl,base64
4、响应为明文,格式为 X@Y +内容 + X@Y
蚁剑:
1、webshell 同样有 eavl,base64
2、ua 头为蚁剑工具
3、请求体中存在 @ini_set
4、响应为明文,格式为 随机数+结果 +随机数
冰蝎:
1、webshell 同样有 eavl,base64
2、webshell 中有 md5(密码)前16位
3、2.0 有一次GET请求返回16位的密钥
哥斯拉:
1、webshell 同样有 eavl,base64
2、请求为pass=
2、流量检测的设备你了解吗?
科来,建议大家去下载玩一玩。(这个用的比较多)
3、根据设备告警(WEB)如何分析流量?
1. 下载告警pcap数据包,根据告警提示攻击类型,过滤payload信息,定位流量
2. 判断是否攻击成功,需具体分析攻击请求响应内容或使其payload进行攻击测
试等
3. 最终可根据流量分析给出判定类型:扫描、攻击尝试、攻击成功、攻击失
4、如何确认是否误报?
分析请求、响应内容,判断是否攻击成功
首先看告警事件名称判断是网络攻击事件还是web攻击事件,
网络攻击事件:定位五元组信息(源IP、目的IP、源端口、目的端口、协议),
对整个僵、木、蠕传播链进行分析,以攻击IP作为受害IP进行检索查找攻击源。
WEB攻击事件:通过数据包的请求体、响应体、状态码等
5、说下服务器被上传webshell处置思路是什么?(常问)
及时隔离主机
使用find命令查找定位webshell,对webshell进行取样
结合web日志分析
清除webshell及残留文件
补充:
清除webshell及残留文件
Java内存马如何排查?
php内存马如何排查?
aspx内存马如何排查?