首页 网络安全 安全学院 查看内容

安服仔单兵驻场指南——应急响应

2026-4-23 16:52 665 0

摘要: 快速导出命令:# 导出安全日志wevtutil epl Security D:\logs\Security.evtx# 导出系统日志wevtutil epl System D:\logs\System.evtx# 导出PowerShell日志wevtutil epl Windows PowerShell D:\logs...
关键词:PR, AI, Windows, System, Shell, PoW, Linux, Security, Users, Microsoft

收到后台来信,借着满足愿望顺带水一期——应急响应。

一、进场前:信息收集

接到应急响应需求后,与客户确认以下信息:

确认事项

具体内容

目的

发现时间

异常首次被发现的具体时间点

缩小日志分析时间窗口

异常现象

文件加密、系统卡慢、首页篡改、账号异常等

确定排查方向

系统信息

操作系统版本、IP地址、是否虚拟机

准备对应工具和命令

环境限制

是否物理隔离、U盘是否可用、是否需要审批

提前准备介质和工具

日志状态

系统日志是否开启、是否有备份

评估可用证据

实操建议:将以上信息整理成表格,进场前发给客户填写,避免到场后发现信息不全。

二、进场后:现场保护

到达现场后,第一件事不是查问题,而是保护现场。

2.1 确认网络状态

场景

处理方式

服务器正在被加密

立即断网,避免损失扩大

服务器被控挖矿

断网或封禁外连IP

不确定攻击是否持续

保持现状,先采集再处置

2.2 采集易失数据

以下数据在系统重启后会丢失,必须优先采集:

数据类型

Windows命令

Linux命令

系统时间

systeminfo | find "系统启动时间"

dateuptime

当前用户会话

query user

who -aw

网络连接

netstat -ano

netstat -anptuss -anptu

进程列表

tasklist /v

ps auxfps -ef

系统服务

sc query state= all

systemctl list-units --type=service

计划任务

schtasks /query /fo csv

crontab -lls -la /etc/cron*

2.3 拍照留痕

以下信息建议拍照留存:

当前屏幕显示内容(报错信息、异常弹窗)

系统时间

进程列表中可疑条目

客户现场操作记录(如有)

三、Windows系统应急排查

3.1 账号排查

检查本地用户:

net userlusrmgr.msc

检查最近创建的账号:

wevtutil qe Security /f:text /rd:true /c:50 /q:"*[System[EventID=4720]]


检查添加到管理员组的账号:

wevtutil qe Security /f:text /rd:true /c:50 /q:"*[System[EventID=4732]]"

检查隐藏账号:

wmic useraccount get name,sid,statusreg query "HKLM\SAM\SAM\Domains\Account\Users" /s

关注点

账号名称是否异常(如admin$defaultuser0help

账号创建时间是否在异常时间窗口内

SID以500 结尾的默认管理员账号是否被改名

3.2 进程排查

查看所有进程:

tasklist /v /fo csvwmic process get name,processid,parentprocessid,commandline

按内存排序查看:

tasklist /fi "memusage gt 100000"

检查进程签名(识别伪装系统进程):

Get-AuthenticodeSignature -FilePath C:\path\to\process.exe

常见可疑进程特征:

特征

说明

进程名与系统进程相似但拼写错误

svch0st.exeexpl0rer.exe

进程路径不在系统目录

正常系统进程应在 C:\Windows\System32

进程无数字签名或签名无效

微软官方进程均有有效签名

CPU/内存占用异常高

挖矿木马特征

进程父进程异常

 cmd.exe 父进程为网络服务进程

3.3 网络连接排查

查看所有网络连接:

netstat -ano

查找外连IP及对应进程:

netstat -ano | findstr "ESTABLISHED"

根据PID定位进程:

tasklist | findstr <PID>

查看DNS缓存(排查恶意域名):

ipconfig /displaydns

关注点

外连IP是否为已知恶意IP(需要提前准备IOC列表)

连接端口是否为非常用端口(非80、443、22、3389等)

连接进程是否为系统进程但路径异常

3.4 计划任务排查

列出所有计划任务:

schtasks /query /fo csv /v

查看特定文件夹下的任务:

dir C:\Windows\System32\Tasks /s

关注点

任务名称是否可疑(随机字符、伪装名称)

执行程序路径是否在临时目录或用户目录

任务触发频率是否异常(每分钟/每小时执行)

3.5 服务排查

列出所有服务:

sc query state= allwmic service get name,displayname,pathname,startmode,state

关注点

服务状态为Running 但名称可疑

服务可执行文件路径在C:\Users\*\AppData 或 C:\Temp

服务启动类型为Auto 但非系统默认服务

3.6 启动项排查

注册表启动项:

reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce"reg query "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"reg query "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce"

启动文件夹:

dir "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup"dir "%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"

3.7 日志采集

详细操作参考《安服仔单兵驻场指南——日志采集与分析》。

快速导出命令:

# 导出安全日志wevtutil epl Security D:\logs\Security.evtx
# 导出系统日志wevtutil epl System D:\logs\System.evtx
# 导出PowerShell日志wevtutil epl "Windows PowerShell" D:\logs\PowerShell.evtx

3.8 文件系统排查

查找最近修改的文件:

# 最近24小时修改forfiles /P C:\ /S /M *.* /D +0 2>nul
# 使用PowerShellGet-ChildItem -Path C:\ -Recurse -ErrorAction SilentlyContinue | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-1) }

查找可疑文件类型:

# 查找exe文件dir C:\*.exe /s
# 查找临时目录下的可执行文件dir C:\Users\*\AppData\Local\Temp\*.exedir C:\Windows\Temp\*.exe

关注点

文件创建时间与异常时间窗口吻合

文件名随机(如sdf87g32.exe

文件在临时目录或用户下载目录

3.9 注册表持久化排查

常见持久化位置:

reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shellreg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Userinitreg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager" /v BootExecutereg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers"reg query "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers"

四、Linux系统应急排查

4.1 账号排查

查看所有用户:

cat /etc/passwd

查看最近登录记录:

last -n 20

查看失败登录记录:

lastb -n 20

查看当前登录用户:

who -a

检查UID为0的非root账号:

awk -F: '($3 == 0) {print $1}' /etc/passwd

检查空口令账号:

awk -F: '($2 == "") {print $1}' /etc/shadow

关注点

是否存在非root但UID为0的账号

是否存在最近创建但未使用的账号(/etc/passwd中按时间排序)

是否存在SSH密钥异常添加(检查/root/.ssh/authorized_keys

4.2 进程排查

查看完整进程树:

ps auxfps -ef --forest

CPU使用率排序:

ps aux --sort=-%cpu | head -20

按内存使用率排序:

ps aux --sort=-%mem | head -20

查看进程的详细信息(打开文件、网络连接):

lsof -p 

查看可疑进程的环境变量:

cat /proc//environ | tr '\0' '\n'

常见可疑进程特征:

特征

说明

进程名随机(如 [kworker] 伪装)

挖矿木马常用手法

进程以root运行但路径在 /tmp 或 /dev/shm

临时目录不应有root进程

进程CPU使用率持续高于100%

挖矿特征

无进程文件(/proc//exe 指向已删除文件)

可疑

进程父进程为1(init/systemd)但路径异常

可能是被注入的服务

4.3 网络连接排查

查看所有网络连接:

netstat -anptuss -anptu

查看ESTABLISHED连接:

netstat -anptu | grep ESTABLISHED

查看监听端口:

netstat -anptu | grep LISTENlsof -i -P -n | grep LISTEN

查看连接对应的进程:

ss -anptu | grep <IP>

关注点

外连IP是否为已知恶意IP

是否存在反向Shell连接(内网IP连外网非常用端口)

是否存在IRC协议连接(6667端口等)

连接进程是否为系统进程但路径异常

4.4 计划任务排查

查看系统计划任务:

crontab -l -u rootcat /etc/crontabls -la /etc/cron.d/ls -la /etc/cron.daily/ls -la /etc/cron.hourly/ls -la /etc/cron.weekly/ls -la /etc/cron.monthly/

查看用户计划任务:

for user in $(cut -f1 -d: /etc/passwd); do echo "### $user"; crontab -l -u $user 2>/dev/null; done

查看systemd定时器:

systemctl list-timers --all

关注点

任务执行脚本路径是否在/tmp/dev/shm/var/tmp

任务内容是否包含wgetcurlbash -incperl -e 等

任务执行频率是否异常(每分钟)

4.5 服务排查

查看所有服务:

systemctl list-units --type=service --all

查看正在运行的服务:

systemctl list-units --type=service --state=running

查看服务文件内容:

systemctl cat <服务名>

关注点

服务名称是否可疑(随机字符、伪装系统服务名)

服务执行的命令路径是否在/tmp/var/tmp/home/*

服务文件中是否包含ExecStartPreExecStartPost 执行可疑命令

4.6 启动项排查

查看rc.local:

cat /etc/rc.localls -la /etc/rc.local

查看init.d:

ls -la /etc/init.d/update-rc.d -f <服务名> remove

查看systemd启动项:

systemctl list-unit-files --type=service |grep enabled

查看profile和bashrc:

cat /etc/profilecat /etc/bashrccat ~/.bashrccat ~/.bash_profile

4.7 历史命令排查

查看root历史命令:

cat /root/.bash_history

查看各用户历史命令:

for user in $(ls /home/); do echo "### $user"cat /home/$user/.bash_history 2>/dev/null; done

关注点

是否存在wgetcurl 下载文件

是否存在chmod +x./ 执行不明文件

是否存在passwduseraddadduser 创建账号

是否存在ncncatsocat 反弹Shell

是否存在crontab 修改计划任务

历史命令文件是否被清空(.bash_history 为空或只有 history -c

4.8 日志排查

详细操作参考《安服仔单兵驻场指南——日志采集与分析》。

快速排查命令:

# 认证日志tail -100 /var/log/auth.log      # Debian系tail -100 /var/log/secure        # RHEL系# 系统日志tail -100 /var/log/syslog        # Debian系tail -100 /var/log/messages      # RHEL系# 查看登录失败的IPgrep"Failed password" /var/log/auth.log |awk'{print $11}'|sort|uniq-c|sort -nr |head -20# 查看sudo执行记录grep"sudo" /var/log/auth.log# 查看SSH登录成功的IPgrep"Accepted" /var/log/auth.log |awk'{print $11}'|sort|uniq-c|sort-nr|head -20

4.9 文件系统排查

查找最近修改的文件:

find / -type f -mtime -1 2>/dev/null

查找最近创建的文件:

find / -type f -ctime -1 2>/dev/null

查找SUID/SGID文件:

find / -perm -4000-type f 2>/dev/nullfind / -perm -2000 -type f 2>/dev/null

查找可写文件:

find / -type f -perm -222 2>/dev/null

查找特定目录下的可执行文件:

find /tmp -type f -executable 2>/dev/nullfind /dev/shm -type f -executable 2>/dev/nullfind /var/tmp -type f -executable 2>/dev/null

查找Webshell特征文件:

find /var/www -name "*.php" -mtime -7 2>/dev/null grep -r "eval(" /var/www/ 2>/dev/null grep -r "base64_decode" /var/www/ 2>/dev/nullgrep -r "system(" /var/www/ 2>/dev/null

4.10 内核模块排查

查看已加载内核模块:

lsmod

查看模块信息:

modinfo <模块名>

关注点

是否存在未知内核模块(Rootkit常见手法)

模块路径是否异常(正常模块应在/lib/modules/

五、常见攻击类型快速排查表

攻击类型

典型特征

优先排查位置

挖矿木马

CPU持续100%、进程名随机、外连矿池IP

进程、计划任务、crontab

勒索病毒

文件后缀被修改、勒索信、文件修改时间集中

进程、文件系统、计划任务

Webshell

文件上传时间异常、代码中包含eval/system

Web目录文件、访问日志

后门账号

新增未知账号、UID为0的非root账号

/etc/passwd、安全日志

SSH爆破

auth.log大量Failed password、lastb记录多

认证日志、lastb

反弹Shell

外连非常用端口、进程父进程为web服务

网络连接、进程树

Rootkit

lsmod显示异常模块、ps/netstat输出可疑

内核模块、系统命令完整性

数据窃取

外连异常IP、大量数据库查询日志

网络连接、数据库日志

六、证据采集与保存

6.1 采集清单

证据类型

Windows

Linux

进程列表

tasklist输出

ps输出

网络连接

netstat输出

netstat/ss输出

登录记录

安全日志

last/lastb输出、auth.log

计划任务

schtasks输出

crontab文件

启动项

注册表Run键

rc.local、systemd

可疑文件

可执行文件

脚本、二进制文件

系统日志

.evtx文件

/var/log/*

6.2 文件完整性校验

采集前记录哈希值:

Windows:

Get-FileHash -Path <文件路径> -Algorithm SHA256

Linux:

sha256sum <文件路径>md5sum <文件路径>

6.3 采集注意事项

先采集易失数据:进程、网络连接、登录会话

再采集持久化数据:日志、配置文件、计划任务

保留原始格式:不要修改文件时间戳、不要打开文件编辑

记录采集时间:每条证据标注采集时间点

链式 custody:记录谁采集、谁保管、谁分析

七、报告编写

7.1 报告结构

章节

内容

事件概述

发生时间、影响范围、严重程度

排查过程

按时间线记录操作步骤和发现

证据分析

关键发现、IOC、TTP

确认问题

确认的攻击类型、入侵途径、影响面

处置措施

已执行的隔离、清除、恢复操作

遗留风险

未解决的问题、需要客户跟进的事项

加固建议

防止再次发生的安全措施

7.2 报告编写原则

结论明确:确认的写“确认”,未确认的写“未发现”,不要写“可能”“疑似”

证据支撑:每个结论附上对应的日志行、文件名、哈希值

可操作性:加固建议具体到命令、配置项、操作步骤

留痕可查:报告中包含采集证据的哈希值,便于后续验证

本文出处: https://mp.weixin.qq.com/s/_Vsq4thaGUr0PnSkUiz8jg
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部