文章总结: 本文针对隔离网络环境下的应急响应场景,提供Windows和Linux系统的内网日志采集与分析实操指南。重点涵盖日志类型识别、命令行采集技巧、关键事件ID解读及常见攻击场景(如SSH爆破、挖矿木马、后门账号)的分析流程,强调证据完整性保护与分步采集策略,并给出脚本化操作、介质准备等实用建议。 综合评分: 88 文章分类: 应急响应,内网渗透,安全工具,安全运营,漏洞分析
安服仔单兵驻场指南——内网日志采集与分析
原创
这小子嘴硬 这小子嘴硬
一己之见安全团队
2026年4月2日 08:55 广西
一、碎碎念
极端情况他来了!应急响应里,日志是最重要的证据来源。但在隔离网络环境呢?欸!你也不被允许上传样本到沙箱,无法在线查询IOC,也无法使用云端的分析平台。唯一能依靠的,就是系统自带的命令行工具和你的分析能力,情况糟糕吗?很糟糕了。
今天这期说一下在Windows和Linux隔离环境中,如何进行日志采集与分析,帮助你在受限条件下完成应急排查工作。
二、明确分析目标
在开始采集日志之前,先向客户确认以下信息:
| | | | — | — | | 问题 | 目的 | | 发现异常的时间点是什么? | 确定日志分析的时间窗口 | | 涉及哪些服务器/系统? | 明确采集范围 | | 异常现象是什么? | 确定重点排查方向(登录异常、文件加密、进程异常、网络连接等) |
常见异常现象对应的日志类型:
| | | | — | — | | 异常现象 | 重点关注日志 | | 账号被创建/权限变更 | 安全日志(Windows)、auth.log(Linux) | | 文件被加密/删除 | 文件系统审计日志、进程创建日志 | | 服务器被控挖矿 | 进程日志、网络连接日志、计划任务 | | 未授权登录 | 登录日志、认证日志 |
三、Windows日志采集与分析
①日志类型
Windows主要使用Windows事件日志,关键日志类别:
| | | | — | — | | 日志名称 | 记录内容 | | Application | 应用程序事件 | | Security | 安全事件(登录、权限变更、账号管理) | | System | 系统事件(服务启动、驱动加载) | | Setup | 系统安装和更新事件 | | PowerShell | PowerShell操作日志(需启用) |
②常用采集命令
cmd查看事件日志列表:
wevtutil el
cmd导出指定日志:
# 先创建目录,可替换mkdir C:\logs
##导出安全日志wevtutil epl Security C:\logs\Security.evtx
##导出系统日志wevtutil epl System C:\logs\System.evtx
##导出应用程序日志wevtutil epl Application C:\logs\Application.evtx
cmd按时间过滤导出:
wevtutil qe Security /f:text /rd:true /c:1000 /q:"*[System[TimeCreated[@SystemTime>='2025-03-01T00:00:00' and @SystemTime<='2025-03-31T23:59:59']]]" > C:\logs\security_filtered.txt
③关键事件ID速查
应急响应中重点关注的事件ID:
| | | | | — | — | — | | 事件ID | 含义 | 对应可能场景 | | 4624 | 登录成功 | 排查异常登录来源 | | 4625 | 登录失败 | 排查爆破行为 | | 4720 | 账号创建 | 排查后门账号 | | 4722 | 账号启用 | 排查被启用的账号 | | 4724 | 密码重置 | 排查账号被修改 | | 4732 | 添加到本地管理员组 | 排查提权行为 | | 4688 | 进程创建 | 排查可疑进程(需启用进程审计) | | 4698 | 计划任务创建 | 排查持久化后门 | | 4104 | PowerShell脚本执行 | 排查PowerShell攻击行为 |
④命令行分析技巧
统计登录失败最多的IP:
wevtutil qe Security /f:text /rd:true /c:10000 /q:"[System[EventID=4625]]" | findstr "源网络地址"
查看最近创建的账号:
wevtutil qe Security /f:text /rd:true /c:100 /q:"[System[EventID=4720]]"
查看最近添加到管理员组的账号:
wevtutil qe Security /f:text /rd:true /c:100 /q:"[System[EventID=4732]]"
使用PowerShell进行筛选分析(更灵活):
##导出日志后使用PowerShell分析Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4624; StartTime='2025-03-01'} | Select-Object -First 50 | Format-List
四、Linux日志采集与分析
①日志存储位置
Linux日志主要存储在/var/log/ 目录下:
| | | | — | — | | 日志文件 | 记录内容 | | /var/log/messages | 系统综合日志 | | /var/log/syslog | 系统日志(Debian系) | | /var/log/auth.log | 认证日志(Debian系) | | /var/log/secure | 认证日志(RHEL系) | | /var/log/cron | 计划任务日志 | | /var/log/lastlog | 最后登录记录 | | /var/log/btmp | 失败登录记录 | | /var/log/wtmp | 登录历史记录 | | /var/log/journal/ | systemd日志(如有) |
②常用采集命令
打包导出日志:
##打包所有日志tar -czf logs_$(hostname)_$(date +%Y%m%d).tar.gz /var/log/
或按需导出:
cp /var/log/auth.log /tmp/auth.log_backupcp /var/log/secure /tmp/secure_backupcp /var/log/messages /tmp/messages_backup
使用journalctl导出systemd日志:
##导出所有日志journalctl --all --output=export > /tmp/journal_logs.txt
##按时间导出journalctl --since "2025-03-01 00:00:00" --until "2025-03-31 23:59:59" > /tmp/journal_since.txt
③ 关键分析命令
查看登录失败的IP及次数:
##从auth.log中提取失败登录IPgrep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr
##从secure中提取(RHEL系)grep "Failed password" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr
查看成功登录记录:
##查看最近登录成功last -n 20
##查看登录失败的记录lastb -n 20
查看被修改的系统文件:
##查找最近24小时内修改的文件find /etc -type f -mtime -1 2>/dev/null
##查找最近创建的SUID文件find / -perm -4000 -type f -mtime -7 2>/dev/null
查看计划任务:
##查看系统计划任务cat /etc/crontabls -la /etc/cron.d/ls -la /etc/cron.daily/ls -la /etc/cron.hourly/
##查看用户计划任务crontab -l -u root
查看最近执行的命令(如有历史记录):
##查看各用户的历史命令cat /home/*/.bash_historycat /root/.bash_history
查看当前网络连接:
##查看所有网络连接netstat -anptu##或使用ssss -anptu
查看进程树:
##查看完整进程树pstree -a
##按CPU/内存排序查看进程ps aux --sort=-%cpu | head -20ps aux --sort=-%mem | head -20
五、日志采集的注意事项
①确保证据完整性
在采集日志之前,建议先进行完整性记录:
##记录文件哈希值md5sum /var/log/auth.log > auth.log.md5sha256sum /var/log/auth.log > auth.log.sha256
导出后再校验一次,确保采集过程中文件未被修改。
②采集顺序
按优先级采集:
1. 内存状态(进程、网络连接)—— 最容易丢失
2. 系统日志文件
3. 用户历史命令
4. 计划任务
5. 配置文件
③保留时间戳信息
导出日志时,尽量保留原始时间戳。使用cp -p 保留文件属性,或在导出时保留时间信息。
④介质准备
进机房前确认:
– 是否有足够的存储空间存放日志
– 导出介质是否合规(U盘需审批、专用硬盘等)
– 是否需要加密存储(涉及敏感信息)
六、常见场景分析示例
场景一:排查SSH爆破
现象:客户反馈服务器响应慢,CPU占用高
分析步骤:
1. 查看失败登录记录
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr | head -10
2. 查看成功登录中的异常IP
grep "Accepted password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr
3. 查看当前连接
netstat -anptu | grep :22
场景二:排查挖矿木马
现象:CPU持续100%,重启后恢复但过段时间又出现
分析步骤:
1. 按CPU排序查看进程
ps aux --sort=-%cpu | head -10
2. 检查计划任务
cat /etc/crontabcrontab -l -u root
3. 检查系统服务
systemctl list-units --type=service --state=running
4. 检查启动项
ls -la /etc/systemd/system/multi-user.target.wants/
场景三:排查后门账号
现象:发现未知账号
分析步骤(Windows):
1. 查看账号创建记录
cmd:
wevtutil qe Security /f:text /rd:true /c:100 /q:"[System[EventID=4720]]"
2. 查看添加到管理员组的记录
cmd:
wevtutil qe Security /f:text /rd:true /c:100 /q:"[System[EventID=4732]]"
3. 查看当前所有本地用户
net user
七、一点点建议
1. 提前准备:进机房前,把常用命令记在本地或打印出来。没网意味着不能随时查资料,特别是有些龟毛客户不希望你带自己的联网电子设备(尤其是手机)进入机房的,别怕被质疑不专业,他质疑你你就可以直接下班了,不影响。
2. 脚本化采集:最好能习惯性的把常用的采集命令写成脚本、或者记在备忘录上,一次运行批量导出、直接粘出来免得一直查,减少在机房的耗时间。
3. 分步采集:先采集易失数据(进程、网络),再采集持久化数据(日志、文件)。系统被入侵的情况下,攻击者可能在持续破坏痕迹。
4. 留存证据:所有采集的日志文件,保留原始格式和哈希值。后续分析可能需要多次回溯。
5. 确认输出格式:导出日志时,确认输出格式便于后续分析。文本格式便于grep,evtx格式便于Windows事件查看器打开。
- 要求客户必须派人旁站:甲方必须有人同站监督,不要跟我说有什么监控,等下硬说坏了把一些硬件的锅甩在你头上那就完啦。
八、总结
今天没有总结。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:一己之见安全团队 这小子嘴硬 这小子嘴硬《安服仔单兵驻场指南——内网日志采集与分析》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









![[就业喜报]实力爆棚!一次性收获两份offer](/images/random/titlepic/14.jpg)
评论