如何进行高效的应急响应:一份必备的笔记!

应急响应事件分类

应用层

  1. 1. 网站植入WebShell
  2. 2. 网页挂马
  3. 3. 暗链
  4. 4. 数据篡改(色情/博彩)

主机层

  1. 1. 挖矿
  2. 2. DDOS
  3. 3. 勒索病毒
  4. 4. SSH爆破
  5. 5. 数据库入侵
  6. 6. 远控后门

网络层

  1. 1. DDOS攻击
  2. 2. CC攻击
  3. 3. DNS/HTTP劫持
  4. 4. ARP欺骗

排查思路

如何进行高效的应急响应:一份必备的笔记!

一、Windows

1、排查思路

  • • 查看日志
  • • 查看端口/外连情况**(netstat -pantu)**
  • • 查看进程**(tasklist)**
  • • 查看系统账户
  • • 查看启动项
  • • 查看注册表
  • • 查看定时任务

2、查看账号

  • • 思路
查看是否存在弱口令
查看lusrmgr用户列表,是否存在未知用户、影藏用户(特征为用户名后存在$符)
查看lusrmgr组列表,查看是否存在未知账户。
  • • 命令
query user //查看当前系统登录的会话
logoff ID //把指定用户踢出会话
    
net user //查看本地用户
    
lusrmgr.msc //查看账号
  • • 工具
D盾
Pchunter

3、查看端口

  • • 思路
查看有无异常端口连接
使用netstat查看异常进程,并查找到PID
查看异常外连IP
查看有无重要的端口外连,类似于22(SSH)、3389(RDP)
被注入的进程属性里会多出**.NET Assemblies和.NET Performance**两个菜单
  • • 命令
netstat //查看端口网络外连情况
    -a  显示所有连接和监听端口
    -n  以数字形式显示地址和端口号
    -o 显示与每个连接相关的进程ID
    -t 显示TCP协议的连接情况
    -u 显示UDP协议的连接情况
    -p proto 显示proto指定的协议的连接 proto有TCP、UDP、TCPv6、UDPv6。如果与-s选项一起使用以显示按协议统计信息
  • • 工具
火绒剑 #着重关注未知文件、外部IP
DNSQuerySniffer #着重关注红色端口号、A记录、状态码

4、查看进程

  • • 思路
打开任务管理器,查看资源占用情况
运行msinfo32查看正在运行任务
  • • 命令
taskmgr.exe  #任务管理器
tasklit #列出所有进程
tasklist /svc #列出每个进程所调用的服务
taskkill /T /F /PID #结束某进程
  • • 工具
火绒剑
Pchunter #关注无厂商名、签名验证、描述信息的可疑进程

5、启动项与计划任务

  • • 思路
运行msconfig,打开系统配置,查看是否存在异常的启动项(win7以后取消)
可以在任务管理器中打开(taskmgr.exe)查看启动项
  • • 命令
net statistics workstation  #查看系统开机事件
schtasks  #CMD查看系统计划任务
taskschd.msc   #win+r运行,查看任务计划程序
wmic startup get command,caption  #查看程序启动信息
wmic service list brief  #查看主机服务信息
  • • 工具
autoruns #查看启动项、计划任务
PChunter #查看启动项,黑色-微软进程;蓝色-非微软进程;红色-可疑进程、隐藏服务;

6、日志分析

  • • 思路
打开事件查看器,如果存在大量的登录失败事件ID则代表对相关的账号进行了爆破
  • • 主要日志
#系统日志
%SystemRoot%\System32\Winevt\Logs\System.evtx
#安全日志
%SystemRoot%\System32\Winevt\Logs\Security.evtx
#应用程序日志
%SystemRoot%\System32\Winevt\Logs\Application.evtx 
  • • 事件日志分析
事件ID 说明
4624 登录成功
4625 登录失败
4634 注销成功
4647 用户启动的注销
4672 使用超级用户进行登录
4720 创建用户
7045 服务创建
  • • 命令
eventvwr.msc #win+r打开事件查看器
  • • 工具

7、文件分析

  • • 思路
查看有无新键的文件夹
分析最近打开的可疑文件
  • • 命令
%UserProfile%\Recent #win+r运行,分析最近打开的可疑文件
#查看有无新键的用户文件夹
 Window 2003         C:\Documents and Settings
 Window 2007及以后       C:\Users\
 
 msinfo32 #查看系统信息

8、Windows命令

#获取本地用户列表 
net user
        
#查看当前会话 
net  session
               
#查看当前运行的服务 
net start
    
#远程连接  
net use
    
#查看当前用户下的共享目录    
net share
#查看网络连接       
netstat  -ano
#查看操作系统的详细配置信息 
systeminfo
#获取进程信息
wmic  process    
#获取系统进程信息
tasklist

二、Linux

1、排查思路

  • • 查看账户
  • • 查看端口
  • • 查看进程
  • • 启动项与定时任务
  • • 日志分析
  • • 文件分析
  • • 历史命令

2、查看账号

  • • 思路
查看用户信息文件,查看是否存在UID为0的用户、新增的用户
查看当前已登录用户及会话时常
查看用户登录信息
查看sudo用户列表,除去Root账号外,是否存在其他账号拥有sudo权限
禁用和删除可以用户账号
  • • 基础知识
用户信息文件:/etc/passwd
用户组信息文件:/etc/group
用户密码文件:/etc/shadonw
  • • 命令
#查看目前登录系统的用户信息,一共有五列,其每一列对应的含义如下
#第一列显示用户名词
#第二列显示用户的连接方式。tty/:0代表用户直接连接电脑,pts代表远程登录
#root     pts/0        2023-05-29 11:28 (xxx.xxx.xxx.xxx)
who
#提出用户,如果想提出以上的用户则
pkill -kill -t pts/0
#查看用户登录的信息
last
#显示系统中所有用户最近一次登录信息
lastlog
#显示登录失败用户的信息
lastb

3、查看端口和进程

  • • 思路
查看端口外连情况,分析可疑进程
查看本地有无重要端口被连接
查看有无可疑IP外连,可以用微步在线检测
查看当前运行那些进程,分析可疑的进程
  • • 命令
#查看端口连接情况
netstat -pantu 
#查看进程,分析异常的进程名、PID、可疑的命令行
ps -aux
#查看异常进程
ps -aux | grep $PID
#查看pid所对应的进程文件路径
ls -l /proc/$PID/exe
#结束进程
kill -9 $PID
#查看指定端口对应的进程
lsof -i:80
#查看指定PID的调用情况
lsof -p 666
#动态展示系统整体运行情况,查看有无资源占用过高的jing
top

4、启动项与定时任务

  • • 系统运行级别
运行级别 含义
0 关机
1 单用户模式,可以想象为windows的安全模式,主要用于系统修复
2 不完全的命令行模式,不含NFS服务
3 完全的命令行模式,就是标准字符界面
4 系统保留
5 图形模式
6 重启
#查看自启动服务
cat /etc/cron*
#查看某个用户的计划任务
crontab -l
#编辑定时任务
crontab -e
#删除当前用户的定时任务
crontab -r
#查看有无异常开机启动命令
more /etc/rc.local
#查看服务自启动状态
chkconfig
#当我们需要开机启动自己的脚本时,只需要将可执行脚本丢在/etc/init.d目录下,然后在/etc/rc.d/rc*.d中建立软链接即可,S开头代表加载时自启动
ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh 

5、日志分析

  • • 关键日志文件
日志文件 说明
/var/log/cron 记录系统定时任务相关日志
/var/log/massage 记录Linux操作系统常见的系统和服务错误信息
/var/log/btmp 记录登录失败的信息, 也可以使用命令lastb
/var/log/lastlog 记录系统中所有用户最后一次成功登录的时间, 也可以使用命令lastlog
/var/log/wtmp 永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件;也可以使用命令last
/var/log/utmp 只记录当前用户的信息;也可以使用命令w,who,user
/var/log/secure 记录验证和授权方面的信息,如SSH登录、用户切换、SUDO授权的部分操作
/var/log/yum.log 查看Centos软件安装日志
/var/log/apt 查看Ubuntu软件安装日志
  • • 思路
查看ssh登录日志
查看登录成功的IP
查看有多少IP尝试登录root账号

6、文件分析

  • • 关键文件
文件名 说明
/etc/passwd 用户信息文件
/etc/crontab 定时任务文件
/etc/anacrontab 异步定时任务文件
/etc/rc.d/rc.local 开机启动项
  • • 思路
查看敏感目录下是否存在影藏文件
发现可疑文件使用`stat`查看创建修改时间
如果前期信息收集知道木马的创建时间,可疑根据时间查找文件
查看历史命令
  • • 命令
#查找近7天内修改的文件
find / -mtime -7 -ls | more
#查看历史命令
cat .bash_history

7、Linux常用命令

#查看资源占用
top
#查看进程
ps -aux
#查看网络连接
netstat -pantu
#查看开123端口的进程
lsof -i:123
#显示错误的登录信息
lastb
#显示系统用户最近的的登录信息
last
#显示所有用户最近的登录信息
lastlog
#查看定时任务
crontab -l

事件分析

挖矿病毒

1、代表

  • • DTStealer (又名“永恒之蓝下载器木马”)
  • • WannaMine
  • • 隐匿者(MyKings)
  • • 紫狐

2、特征

  • • 电脑CPU占用率过高
  • • 大量对外网络连接
  • • 存在异常的定时任务

3、排查思路

  • • netstat查看网络连接, 发现异常的进程
  • • 使用ps查看进程状态,发现异常下载进程
  • • 打开其下载的文件,发现其为挖矿的Shell脚本
  • • 排查开机启动项、定时任务、服务等
  • • 查看系统日志、中间件日志等,找到攻击者攻击原因
  • • 删除定时任务
  • • 终止异常进程
  • • 修复漏洞

Webshell木马查杀

排查思路

  • • 定位时间和范围
    • • 工具扫描定位位置
    • • 定位创建时间
    • • 查看Web根目录的.htaccess文件
  • • 查找危险命令、危险函数
# php文件
  find    网站目录/* -type f -name "*.php" |xargs grep "eval"
  find    网站目录/* -type f -name "*.php" |xargs grep "base64_decode"
  find    网站目录/* -type f -name "*.php" |xargs grep "@$"
# jsp文件
  find    网站目录/* -type f -name "*.jsp" |xargs grep "getRuntime"
  find    网站目录/* -type f -name "*.jsp" |xargs grep "exec"
  find    网站目录/* -type f -name "*.jsp" |xargs grep "AES"
# asp文件
  find    网站目录/* -type f -name "*.asp" |xargs grep "execute"
  find    网站目录/* -type f -name "*.asp" |xargs grep "eval"
  find    网站目录/* -type f -name "*.asp" |xargs grep "ExecuteGlobal"
  • • 查看异常端口和进程
  • • Webshell查杀工具
    • • D盾
    • • 河马
  • • Web日志审计
    • • 查看access.log文件
  • • 漏洞分析:分析可能存在漏洞的地方
  • • 漏洞修复:清除Webshell并进行加固
© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 共1条
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称常用语 夸夸
夸夸
还有吗!没看够!
表情代码图片