应急响应基础
声明:本文知识来源于《网络安全应急响应技术实战指南》,内容由个人学习整理,代表本人片面理解,如有错误,请各位读者指出。
本文仅用于技术学习,不用于任何非法或商业行为。若有侵权,请联系本人删除。
常规检查(不全面)
Windows
系统信息查看
- 详细:win+r打开
msinfo32详细看Windows系统信息(本地计算机的硬件资源、组件和软件环境的信息) - 简略:命令行输入
systeminfo
用户信息
net user直接收集账户信息(看不到以$结尾的隐藏账户)(具体账户信息net user具体用户名,家庭版没有这个组件)- 打开计算机管理窗口或者win+r输入
lusrmgr.msc(图形化界面,可查看以$结尾的隐藏账户) - 命令行输入
wmic useraccount get name,SID - 注册表方法
启动项管理(推荐使用第三方工具管理,方便快捷,比如HiBiUninstall)
- win+r输入
msconfig - 注册表
(1)HKEY_CLASSES_ROOT(HKCR):此处存储的信息可确保在 Windows
资源管理器中执行时打开正确的程序。它还包含有关拖放规则、快捷方法和用户
界面信息的更多详细信息。
(2)HKEY_CURRENT_USER(HKCU):包含当前登录系统的用户的配置信
息,有用户的文件夹、屏幕颜色和控制面板设置。
(3)HKEY_LOCAL_MACHINE(HKLM):包含运行操作系统的计算机硬件
特定信息,有系统上安装的驱动器列表及已安装硬件和应用程序的通用配置。
(4)HKEY_USERS(HKU):包含系统上所有用户配置文件的配置信息,有
应用程序配置和可视设置。
(5)HKEY_CURRENT_CONFIG(HCU):存储有关系统当前配置的信息。
任务计划
- 打开计算机管理窗口就可以看见了
- 打开
powershell窗口输入Get-ScheduledTask可显示任务计划的路径、名称、状态等详细信息(推荐使用这个) - 命令行输入
schtasks(强烈推荐使用) - 防火墙出站规则可限浏览器能否访问外网及特定网站;恶意软件(如驱动人生)也会篡改规则。查看路径:Windows防火墙→高级设置→入站/出站规则。
进程排查
- 任务管理器
tasklist或tasklist /svc显示每个进程对应的服务情况或tasklist /m ntdll.dll加载DLL恶意进程排查 过滤 :eq ne gt lt ge le 等于、不等于、大于、小于、大于等于、小于等于
netstat排查出pid再用tasklist定位具体程序
netstat是监控 TCP/IP网络的命令行工具,输入后可显示网络连接、路由器、网络接口及活动 TCP 连接等信息,核心参数、网络状态及使用方法如下:
核心参数
-a:显示所有连接和侦听端口
-b:显示连接 / 侦听端口相关可执行程序
-e:显示以太网统计信息(可与 - s 结合)
-f:显示外部地址 FQDN
-n:以数字形式显示地址和端口
-o:显示连接关联的进程 ID(PID)
-p proto:显示指定协议的连接
-q:显示所有连接、侦听端口及绑定非侦听 TCP 端口
-r:显示路由表
-s:显示各协议统计信息(默认含 IP、TCP、UDP 等)
-t:显示连接卸载状态
-x:显示 NetworkDirect 相关连接与侦听器
-y:显示 TCP 连接模板(不可与其他选项联用)
interval:按指定秒数循环显示统计信息
常见网络状态
LISTENING:侦听状态
ESTABLISHED:连接已建立
CLOSE_WAIT:对方关闭连接或网络异常中断 实用操作
用netstat -ano | findstr "ESTABLISHED"排查可疑连接,定位 PID
通过tasklist | find "PID号"查询对应程序 管理员权限下用netstat -anb可快速定位端口关联程序- powershell排查 对于有守护进程的进程,需确认子父进程关系时,可用 PowerShell(调用 Wmi
对象)查看。
命令Get-WmiObject Win32_Process | select Name, ProcessId,ParentProcessId, Path可获取进程信息,并显示其中的名称、进程 ID、父进程 ID 及路径这 4 个字段。 wmic排查 :
wmic process命令可查询进程、条件筛选及结束恶意进程,核心用法如下: 查进程(以csv 格式显示):wmic process get name,parentprocessid,processid /format:csv(显名称、父进程 ID、进程ID),
条件筛选:wmic process where processid=[PID] get parentprocessid,commandline(精准查询某一特定 PID 进程的父进程 ID(PPID)和完整执行命令行);
结束恶意进程:wmic process where processid=【PID】 delete
验证:tasklist | findstr "PID"(无输出则成功)
服务排查
- win+r打开
services.msc
文件痕迹排查
- 敏感目录 查看磁盘中的
temp目录、浏览器下载记录、查看用户 Recent 文件。
Recent 文件主要存储了最近运行文件的快捷方式,可通过分析最近运行的文件,排查可疑文件。(
C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Recent\)
预读取文件夹查看:Prefetch是系统预读取文件夹,存放已访问文件的.pf
格式预读取信息,用于加速系统(驱动、服务等)及应用软件启动。Windows 7 可记录最近 128 个可执行文件信息,Win8 至Win10 为 1024 个,文件夹位置为“%SystemRoot%\Prefetch\”。 - 时间点查找
forfiles:对文件的创建时间、修改时间、访问时间进行排查
forfiles /p [路径] /s /m [文件名掩码] /d [时间条件] /c "cmd /c [操作命令]"
/p:指定目录路径(默认当前目录)
/s:递归子目录
/m:文件名掩码(如 *.exe,默认所有文件)
/d:时间条件(+N 指 N 天前至今,-N 指 N 天前及之前,yyyy-MM-dd 指指定日期及之后)
查找 C 盘下 3 天内修改过的.txt文件:
forfiles /p C:\ /s /m *.txt /d +3 /c "cmd /c echo @path @fdate"
删除 D 盘下 7 天前创建的.log文件:
forfiles /p D:\logs /m *.log /d -7 /c "cmd /c del @file"
列出当前目录中 2025-11-09 及之后访问过的所有文件:
forfiles /D 2025/11/09 /c "cmd /c echo @file @fdate"
- webshell查杀:可以通过使用D盾、HwsKill、 WebshellKill 等工具对目录下的文件进行规则查询,以检测相关的Webshell。
日志分析
Windows日志包括系统日志、安全性日志、应用程序日志3类日志
- 日志概述
Windows 系统核心日志分为三类,不同系统版本的存储路径不同,且包含额外辅助日志,覆盖系统运行、安全操作、应用行为等场景。
核心日志类型及位置
系统日志:记录驱动、组件、应用的重大问题(如崩溃、数据丢失),路径为%SystemRoot%\System32\Winevt\Logs\System.evtx(Vista 及以上版本)或C:\WINDOWS\System32\config\SysEvent.evt(XP/2003)。
安全性日志:记录登录 / 退出、文件操作、权限变更等安全相关事件,路径为%SystemRoot%\System32\Winevt\Logs\Security.evtx(Vista 及以上)或C:\WINDOWS\System32\config\SecEvent.evt(XP/2003)。
应用程序日志:记录应用程序运行事件(如数据库暴力破解),路径为%SystemRoot%\System32\Winevt\Logs\Application.evtx(Vista 及以上)或C:\WINNT\System32\config\AppEvent.evt(XP/2003)。
其他辅助日志:包括 Dhcp、Bits-Client、PowerShell 等,存储于%SystemRoot%\System32\Winevt\Logs目录,可通过eventvwr命令打开【事件查看器】统一查看。 - 核心事件 ID 及含义
事件 ID 是快速筛选关键行为的核心依据,常用 ID 及对应场景如下:
登录相关:成功登录(4624)、失败登录(4625)、特殊权限用户登录(4672)、显式凭证登录(4648)。
账户操作:创建用户(4720)、添加用户到本地组(4732)、添加用户到全局组(4728)。
系统操作:服务创建(7045)、服务创建错误(7030)、IPSEC 服务启动类型变更(7040)。
开关机:Windows 启动(12)、Windows 关闭(13)、关机初始化失败(1074)。
日志清除:事件日志服务关闭(1100)、系统日志清除(104)、安全日志清除(1102)。
登录类型对应:本地登录(2)、网络登录(3)、远程桌面登录(10)、解锁登录(7)等,通过数字标识登录方式。 - 日志分析方法
(1)内置筛选器分析
通过【事件查看器】的筛选功能,按记录时间、事件级别、任务类别、关键字、事件 ID 等条件精准筛选日志,快速定位异常行为。
(2)PowerShell 命令分析
需管理员权限,支持传统日志和新 Windows 事件日志查询。
常用命令:
查看安全日志中失败登录(事件 ID4625):Get-EventLog Security -InstanceId 4625或Get-WinEvent -FilterHashtable @{LogName='Security';ID='4625'}。
指定时间范围查询:先设置StartTime和EndTime变量,再结合Get-WinEvent筛选。
联合查询多事件 ID:Get-WinEvent -LogName system | Where-Object {$_.ID -eq "12" -or $_.ID -eq "13"}(查询开关机日志)。
(3)工具辅助分析
FullEventLogView:轻量级日志检索工具,支持本地 / 远程日志查看,可导出为多格式文件,检索速度快于系统自带工具。
Event Log Explorer:专业系统安全检测工具,支持日志查看、监视和分析,覆盖安全、系统、应用程序等各类日志。
Log Parser:微软日志分析工具,支持 SQL 语句查询文本日志、XML、CSV、注册表等数据,可生成图表,示例命令:
查看登录成功事件:LogParser.exe -i:EVT -o:DATAGRID "SELECT * FROM C:\Security.evtx where EventID=4624"。
提取登录成功的用户名和 IP:LogParser.exe -i:EVT -o:DATAGRID "SELECT EXTRACT_TOKEN(Message,13, ' ') as EventType, EXTRACT_TOKEN(Strings,5, '|') as Username, EXTRACT_TOKEN(Message,38,' ') as Loginip FROM c:\Security.evtx where EventID=4624"。
内存分析
内存分析是网络安全应急响应中补充系统表层排查的关键环节,可挖掘隐藏进程、内存注入代码、恶意驱动模块等常规工具难以发现的深层威胁。本节从内存获取的核心方法、常用分析工具及操作流程展开,完整覆盖应急响应中内存分析的技术要点与实战场景。
一、内存的获取
内存获取是分析的前提,需根据系统环境、权限条件选择合适方法,文档中明确了7类获取方式,其中内核模式工具提取、系统崩溃转储、虚拟化快照为最常用手段,具体如下:
- 内存获取方法分类
内存获取可按技术原理分为7类,覆盖不同场景需求,具体分类及适用场景如下表:
| 获取方式 | 技术原理 | 适用场景 |
|---|---|---|
| 基于用户模式程序 | 通过用户态工具读取内存数据,依赖系统API支持 | 低权限环境、需轻量获取内存片段时 |
| 基于内核模式程序 | 借助内核态工具直接访问物理内存,绕过用户态权限限制 | 高权限环境、需完整获取物理内存时(应急响应首选) |
| 基于系统崩溃转储 | 配置系统崩溃时自动生成内存转储文件,从转储文件中提取内存数据 | 无法直接运行工具的受限环境、系统蓝屏后分析 |
| 基于操作系统注入 | 向目标系统注入内存读取模块,实时抓取内存数据 | 需隐蔽获取内存、避免触发系统防护时 |
| 基于系统休眠文件 | 从系统休眠生成的hiberfil.sys文件中解析内存镜像 | 目标系统已休眠、无法实时操作时 |
| 基于虚拟化快照 | 通过虚拟化软件(VMware、ESXI)生成虚拟机快照,提取快照中的虚拟内存文件 | 分析虚拟化环境中的被控主机时 |
| 基于硬件的内存获取 | 通过硬件设备(如内存读取器)直接读取物理内存芯片数据 | 目标系统无法启动、需离线提取内存时 |
- 常用内存获取方法详解
(1)基于内核模式程序的获取(应急响应首选)
核心原理:利用内核态工具直接与系统内核交互,获取完整物理内存镜像,支持Windows、Linux等多系统,数据完整性高。
常用工具:Dumpit、Redline、RAM Capturer、FTK Imager。
操作流程:
1.运行工具(部分需管理员权限),选择“内存捕获”功能;
2.指定输出路径与镜像格式(如RAW、E01);
3.等待工具读取内存(时间取决于内存大小,2GB内存约需1-2分钟);
4.捕获完成后生成内存镜像文件(如memdump.raw)。
文档案例:
1.RAM Capturer界面需选择输出路径,显示“Total Physical Memory Size”(总物理内存大小),点击“Capture”开始捕获;
2.FTK Imager通过“抓取内存”功能选择目标内存区域,支持直接生成可分析的内存镜像。
(2)基于系统崩溃转储的获取
核心原理:通过系统配置,使系统在崩溃时自动生成“核心内存转储”文件,包含崩溃时的内存快照,适用于无法直接运行第三方工具的场景。
操作流程:
1.右键“此电脑”→“属性”→“高级系统设置”→“启动和故障恢复”→“设置”;
2.在“写入调试信息”中选择“核心内存转储”,指定转储文件路径(默认%SystemRoot%\MEMORY.DMP);
3.触发系统崩溃(如通过NotMyFault工具)或等待自然崩溃,获取转储文件;
4.从转储文件中提取内存数据进行分析。
文档案例:配置后转储文件默认存储为MEMORY.DMP,需注意关闭“磁盘空间不足时自动删除内存转储”选项,避免文件丢失。
(3)基于虚拟化快照的获取
核心原理:虚拟化软件(如VMware Workstation)生成虚拟机快照时,会自动创建.vmem格式的虚拟内存文件,该文件即虚拟机的内存镜像。
操作流程:
1.在VMware中右键目标虚拟机→“快照”→“拍摄快照”;
2.快照完成后,在虚拟机存储目录中找到.vmem文件(如centos-vul-env-Snapshot3.vmem);
3.直接使用内存分析工具加载.vmem文件进行分析。
文档案例:VMware生成的.vmem文件大小与虚拟机分配的内存一致(如2GB内存对应2GB.vmem文件),修改日期为快照拍摄时间。
二、内存的分析
内存分析需借助专业工具,从内存镜像中提取进程、驱动、网络连接、恶意代码等关键信息,核心工具为Redline(可视化)和Volatility(开源命令行),具体分析方法如下: - 常用内存分析工具
(1)Redline(可视化分析工具)
工具定位:由Mandiant开发的轻量级内存分析工具,支持可视化操作,适合应急响应新手,可快速生成分析报告。
核心功能:
1.进程信息采集:提取内存中所有进程的名称、PID、路径、命令行参数,识别隐藏进程;
2.驱动与模块分析:列出加载的内核驱动、DLL模块,检测恶意驱动(如无签名、路径异常的驱动);
3.系统数据提取:采集注册表数据、任务计划、服务信息、网络连接、IE历史记录等元数据;
4.报告生成:将分析结果汇总为HTML/PDF报告,标注可疑项(如无厂商信息的进程、异常网络连接)。
操作流程:
1.打开Redline→“New Analysis”→选择内存镜像文件(如memdump.raw);
2.选择分析模块(如“Processes”“Network Connections”);
3.工具自动扫描,在“Processes”页面查看进程列表,重点关注“Path”异常(如C:\Temp\下的未知进程);
4.生成报告,导出可疑项详情。
文档案例:Redline分析界面可显示进程的“Hierarchical Processes”(进程层级),帮助识别父进程异常的恶意进程(如powershell.exe的父进程为svchost.exe)。
(2)Volatility(开源命令行工具)
工具定位:开源内存取证框架,支持Windows、Linux、macOS多系统内存分析,命令行操作灵活,功能强大,是应急响应工程师的核心工具。
核心命令与应用场景:
Volatility需先通过imageinfo命令识别内存镜像的“profile”(系统版本,如Win2008R2SP1x64),再执行对应分析命令,常用命令如下表:
| 命令 | 功能描述 | 文档案例场景 |
|---|---|---|
| netscan | 列出内存中的网络连接(TCP/UDP),包括本地地址、远程地址、PID,识别恶意外连 | 排查PID为2963的进程是否存在恶意外链 |
| psxview | 对比多源进程列表(如pslist、psscan),发现隐藏进程(如rootkit隐藏的进程) | 发现隐藏进程dllhost.exe |
| malfind | 查找内存中隐藏或注入的代码、DLL,标注具有“PAGE_EXECUTE_READWRITE”权限的内存区域 | 定位powershell.exe内存中的注入代码 |
| cmdscan | 提取内存中cmd.exe/powershell.exe执行过的命令记录,还原恶意操作 | 提取攻击者执行的RamCapture64.exe命令 |
| procdump | 根据PID提取内存中的进程文件(如exe/dll),用于后续恶意样本分析 | 提取PID为2476的进程文件executable.2476.exe |
| hashdump | 提取内存中的用户密码哈希(如SAM数据库中的LM/NTLM哈希),排查密码泄露 | - |
典型分析流程(文档案例):
1.识别内存镜像profile:volatility -f 20200225.mem imageinfo,确定为Win2008R2SP1x64;
2.排查隐藏进程:volatility -f 20200225.mem --profile=Win2008R2SP1x64 psxview,发现dllhost.exe在pslist中未显示(隐藏进程);
3.查找注入代码:volatility -f 20200225.mem --profile=Win2008R2SP1x64 malfind -p 4072,定位powershell.exe(PID4072)内存中的注入代码;
4.提取进程文件:volatility -f 20200225.mem --profile=Win2008R2SP1x64 procdump -p 2476 -D ./output,将进程文件保存到./output目录。
2. 内存提取文件的后续分析
内存中提取的进程文件(如恶意exe/dll)需进一步判断是否为恶意样本,常用方法为:
病毒库扫描:上传至Virustotal、微步在线等平台,检测样本的恶意标签(如“Trojan”“Ransomware”);
静态分析:使用IDA Pro、Ghidra查看样本的汇编代码,分析其功能(如文件加密、远程控制);
动态分析:在沙箱环境(如Cuckoo Sandbox)中运行样本,记录其行为(如创建进程、修改注册表)。
文档案例:将executable.2476.exe上传至Virustotal,检测结果显示被360报“HEUR/OVM10.1.7A38 Malware Gen”,判定为恶意样本。
三、内存分析的核心价值与注意事项
- 核心价值
发现隐藏威胁:可排查常规工具(如任务管理器、ps命令)无法显示的隐藏进程、内核级rootkit;
还原攻击行为:通过cmdscan提取命令记录、netscan定位恶意外连,还原攻击者的操作链路;
获取恶意样本:通过procdump提取内存中的恶意进程文件,为溯源和病毒分析提供关键证据。 - 注意事项
内存镜像完整性:获取内存时需确保镜像完整(如避免中断工具运行),否则会导致分析结果缺失;
profile匹配:使用Volatility时需准确匹配内存镜像的“profile”(系统版本),否则命令会执行失败;
权限要求:多数内存获取工具需管理员/root权限,否则无法读取完整内存数据;
离线分析原则:为避免破坏内存中的临时数据(如恶意代码),建议将内存镜像导出后在离线环境中分析。
Linux
系统信息查看
- CPU信息:lscpu
- 操作系统信息:uname -a当前操作系统信息
cat /proc/version当前操作系统版本信息 - 模块信息:lsmod
用户信息
- 基础用户信息 cat /etc/passwd (bin/bash表示账户状态可登录,sbin/nologin表示账户状态不可登录)
- 超级权限账户 awk -F: ‘{if($3==0)print $1}’ /etc/passwd 可查询可登录账户 UID 为 0
的账户 - last 查看最近登录的信息(数据源为/var/log/ wtmp、/var/log/btmp、/var/log/utmp,其中wtmp
存储登录成功的信息、btmp 存储登录失败的信息、utmp 存储当前正在登录的信息)看显示用户错误的登录列表,包括错误的登录方法、IP
地址、时间等。 - lastlog 查看所有用户最后的登录信息
- who 查看当前用户登录系统的情况
- awk -F: ‘length($2)==0 {print $1}’ /etc/passwd 查看空口令账户
启动项管理
启动项有很多,这里只列举了部分
- cat /etc/init.d/rc.local 查看 init.d 文件夹下的 rc.local 文件内容
- cat /etc/rc.local 查看 rc.local 文件内容。
- ls -alt /etc/init.d 查看 init.d 文件夹下所有文件的详细信息
任务计划
查看etc目录下的任务计划,ls /etc/cron*
当前的任务计划crontab -l,也可指定用户的任务计划crontab -u root -l(需root权限)
如下包含任务计划的文件夹ls /etc/cron*
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/*
/etc/cron.hourly/*
/etc/cron.monthly/*
/etc/cron.weekly/
/etc/anacrontab
进程排查
netstat 定位PID
ls -alt /proc/PID 查看对应进程信息或lsof -p PID
kill -9 PID rm -rf filename
如果 root 用户都无法删除相
关文件,那么很可能是因为该文件被加上了 i 属性。使用【lsatter filename】命令,
可查看文件属性,然后使用【chattr -i filename】命令,可移除 i 属性,进而删除
文件。也有的进程因为存在守护进程而无法删除,我们可以先把进程挂起,查杀
守护进程后,再返回将进程删除。
top查看资源情况
按照
顺序执行ps -ef | awk '{print}' | sort -n | uniq >1、ls /proc | sort -n |uniq >2和
diff
1 2
命令,可以查看隐藏进程,
服务排查
chkconfig --list 正在运行的服务
service --status-all 可查看所有服务的状态
文件痕迹排查
1.敏感目录(补充更多的敏感目录)
/tmp目录、/usr/bin 、/usr/sbin等目录经常被作为恶意软件下载目录以及相关文件被替换的目录
~/.ssh 及/etc/ssh 也经常作为一些后门配置的路径
2.时间点查找
find
find:在指定目录下查找文件。
-type b/d/c/p/l/f:查找块设备、目录、字符设备、管道、符号链接、普通文件。
-mtime -n +n:按文件更改时间来查找文件,-n 指 n 天以内,+n 指 n 天前。
-atime -n +n:按文件访问时间来查找文件,-n 指 n 天以内,+n 指 n 天前。
-ctime -n +n:按文件创建时间来查找文件,-n 指 n 天以内,+n 指 n 天前。
例如:find / -ctime 0 -name "*.sh" 查找一天内新增的 sh 文件
【查看目录或者文件按时间排序】ls -alt | head -n 10
【stat】详细查看文件的创建时间、修改时间、访问时间,若修 改时间距离应急响应事件日期接近,有线性关联,说明可能被篡改。
stat filename
3.特殊文件
【特殊权限】find /tmp -perm 777
【webshell】寻找各种webshell的后缀 find /var/www/ -name "*.php"(如.php)或者借助工具扫描
【系统命令被替换排查】ls、ps等命令会被而已替换,ls -alt /bin查看命令目录中相关系统命令的修改时间,若文件被大小偏大,则可能被替换
【后门查杀工具】chkrootkit、rkhunter
日志分析
Linux 系统中的日志一般存放在目录“/var/log/”下,具体的日志功能如下。
/var/log/wtmp:记录登录进入、退出、数据交换、关机和重启,即 last。
/var/log/cron:记录与定时任务相关的日志信息。
/var/log/messages:记录系统启动后的信息和错误日志。
/var/log/apache2/access.log:记录 Apache 的访问日志。
/var/log/auth.log:记录系统授权信息,包括用户登录和使用的权限机制等。
/var/log/userlog:记录所有等级用户信息的日志。
/var/log/xferlog(vsftpd.log):记录 Linux FTP 日志。
/var/log/lastlog:记录登录的用户,可以使用命令 lastlog 查看。
/var/log/secure:记录大多数应用输入的账号与密码,以及登录成功与否。
/var/log/faillog:记录登录系统不成功的账号信息。
分析:grep、sed、sort、awk、等文件工具的使用
应用日志位置
IIS
%SystemDrive%\inetpub\logs\LogFiles;
%SystemRoot%\System32\LogFiles\W3SVC1;
%SystemDrive%\inetpub\logs\LogFiles\W3SVC1;
%SystemDrive%\Windows\System32\LogFiles\HTTPERR。
Apache
/var/log/httpd/access.log;
/var/log/apache/access.log;
/var/log/apache2/access.log;
/var/log/httpd-access.log
Nignx
默认在/usr/local/nginx/logs 目录下,access.log 代表访问日志,error.log 代表错 误日志。若没有在默认路径下,则可以到 nginx.conf 配置文件中查找
Tomcat
默认在 TOMCAT_HOME/logs/目录下,有 catalina.out、catalina.YYYY-MMDD.log、localhost.YYYY-MM-DD.log、localhost_access_log.YYYY-MM-DD.txt、 host-manager.YYYY-MM-DD.log、manager.YYYY-MM-DD.log 等几类日志。
Vsftp
在默认情况下,Vsftp 不单独记录日志,而是统一存放到/var/log/messages 中。 但是可以通过编辑/etc/vsftp/vsftp.conf 配置文件来启用单独的日志。在日志启用 后,可以访问 vsftpd.log 和 xferlog。
WebLogic
在默认情况下,WebLogic 有三种日志,分别是 access log、server log 和 domain log。
access log 的位置是$MW_HOME\user_projects\domains\\servers\ \logs\access.log。
server log 的位置是$MW_HOME\user_projects\domains\\servers\ \logs\.log。
domain log 的位置是$MW_HOME\user_projects\domains\\servers\ \logs\.log。
数据库
Oracle
查询日志路径:select * from v$logfile,默认在$ORACLE/rdbms/log 目录下
查询使用过的SQL:select * from v$sql
MySQL
是否开启日志:show variables like 'log_%'
若开启默认路径在/var/log/mysql/
查看日志路径:show variables like 'general'
MsSQL
一般无法直接查看,需要登录到 SQL Server Management Studio,在“管理— SQL Server 日志”中进行查看。
勒索病毒
常见勒索病毒:
WannaCry 勒索病毒
常见后缀:wncry。
传播方法:“永恒之蓝”漏洞。
特征:启动时会连接一个不存在的 URL(Uniform Resource Locator,统
一资源定位符);创建系统服务 mssecsvc2.0;释放路径为 Windows 目录。
GlobeImposter 勒索病毒
常见后缀:auchentoshan、动物名+4444 等。
传播方法:RDP 暴力破解、钓鱼邮件、捆绑软件等。
特征:释放在%appdata%或%localappdata%。
Crysis/Dharma 勒索病毒
常见后缀:【id】+勒索邮箱+特定后缀。
传播方法:RDP 暴力破解。
特征:勒索信位置在 startup 目录,样本位置在%windir%\system32、startup目录、%appdata%目录。
GandCrab 勒索病毒
常见后缀:随机生成。
传播方法:RDP 暴力破解、钓鱼邮件、捆绑软件、僵尸网络、漏洞传
播等。
特征:样本执行完毕后自动删除,并会修改感染主机桌面背景,有后缀
MANUAL.txt、DECRYPT.txt。
Satan 勒索病毒
常见后缀:evopro、sick 等。
传播方法:“永恒之蓝”漏洞、RDP 暴力破解、JBoss 系列漏洞、Tomcat 系列漏洞、WebLogic 组件漏洞等。
特征:最新变种暂时无法解密,以前的变种可解密。
Sacrab 勒索病毒
常见后缀:krab、sacrab、bomber、crash 等。
传播方法:Necurs 僵尸网络、RDP 暴力破解、钓鱼邮件等。
特征:样本释放位置在%appdata%\roaming。
Matrix 勒索病毒
常见后缀:grhan、prcp、spct、pedant 等。
传播方法:RDP 暴力破解。
特征:样本释放位置在%appdata%\local\<随机名称>,可能会执行计划任务。
Stop 勒索病毒
常见后缀:tro、djvu、puma、pumas、pumax、djvuq 等。
传播方法:钓鱼邮件、捆绑软件和 RDP 暴力破解。
Paradise 勒索病毒
常见后缀:文件名_%ID 字符串%_{勒索邮箱}.特定后缀。
特征:将勒索弹窗和自身释放到 startup 启动目录。
传播方式:
- 服务器入侵传播:通过RDP弱密码破解、管理员账号密码盗取(病毒窃取/黑市购买)入侵服务器,手动卸载安全软件并运行病毒,安全软件难以拦截。
- 漏洞自动传播:利用系统漏洞(如WannaCry用MS17-010)自动扩散,无需人工干预,1-2分钟内可感染同一局域网所有主机。
- 软件供应链攻击:篡改合法软件升级包(如类Petya通过税务软件M.E.Doc),借助软件供应商与用户的信任关系传播,绕过传统安全检查。
- 邮件附件传播:伪装成订单、图纸等钓鱼邮件,附件夹带恶意脚本,打开后释放病毒,针对性攻击企业办公终端。
- 挂马网页传播:入侵主流网站植入木马,利用IE/Flash漏洞攻击访问者,属于“撒网式”传播,主要针对未装杀毒软件的“裸奔”用户。
攻击特点:
- 无C2服务器加密技术流行: 无C2服务器勒索病毒加密时不回传私钥
加密:攻击者植入病毒(病毒中含有公钥B),受害者本地生成一对公钥A、私钥a,用公钥A加密重要文件,然后有用公钥B加密私钥a(让受害者无法拿到私钥a)。
解密:受害者通过攻击者指定的方式向攻击者提交加密的私钥a,攻击者通过私钥b进行解密,返回私钥a或者解密工具。
特点:独立运作:无C2服务器勒索病毒在设计上能够独立完成加密和勒索过程,不需要与外部服务器进行交互,这使得其更难被检测和阻断。隐蔽性强:由于不需要网络通信,这类病毒在感染过程中产生的网络流量较少,从而降低了被安全设备检测到的可能性。使用本地资源:病毒可能利用被感染主机上的资源生成加密密钥或进行其他操作,这使得追踪和溯源变得更加困难。传播方式:无C2服务器勒索病毒可能通过传统的勒索软件传播渠道,如电子邮件附件、恶意网站、软件漏洞等传播。加密技术:这类病毒通常使用强大的加密算法对文件进行加密,以增加解密难度。勒索方式:尽管不与C2服务器通信,病毒仍可能通过在受感染系统上留下勒索信息,或利用其他方式(如加密文件中的信息)来联系受害者并索要赎金。
- 平台化运营(RaaS服务)成熟:形成“开发-售卖-分发-支付-解密”完整产业链,攻击者购买RaaS服务即可生成病毒,门槛大幅降低,黑市以“Satan
Ransomware”代指该模式病毒。 - 攻击定向化、APT化:定制化攻击金融/工控等行业,采用“受信任客户钓鱼邮件+横向渗透”等APT手法(如挪威铝业LockerGoga攻击),隐蔽性与破坏性提升。
- 漏洞利用频率更高、平台更多:漏洞贯穿“入侵-提权”全流程(如Sodinokibi用内核提权漏洞),且攻击目标扩展至Linux/MacOS服务器。
- 攻击目的多样化:从“勒索赎金”延伸至“网络破坏”(类Petya)、“窃密+勒索”(MAZE病毒窃取数据后威胁泄露),多维度施压受害者。
防护方法:
- 个人终端防御:
文档自动备份隔离(奇安信文档卫士):监测文档篡改行为,自动备份至隔离区,支持Word/Excel/PDF等格式,触发条件包括“开机首次修改”“可疑程序篡改”;
综合性反勒索技术:结合智能诱捕(设置陷阱文件)、行为追踪(云安全分析可疑操作)、智能文件格式分析(降低性能影响)、数据流分析(AI识别恶意读写)。 - 企业级防御: 云端免疫技术:通过终端管理系统下发免疫策略,为无法打补丁的终端提供定向防护;
密码保护技术:强制复杂密码、反暴力破解(限制陌生IP登录)、VPN/双因子认证;
数据备份与灾备:定期备份核心数据,验证备份可用性,建立主备系统隔离机制。
勒索病毒错误处置方式:
1.使用移动存储设备:插入U盘/移动硬盘后,病毒会立即加密存储内容,导致损失扩大。
2.反复读写感染主机磁盘:勒索病毒加密后会删除原始文件,反复读写会破坏磁盘残留的原始文件痕迹,降低数据恢复概率。
病毒查询工具:
奇安信勒索病毒搜索引擎:支持800+病毒检索,输入后缀/邮箱/样本即可查询解密可能性(如WannaCry可直接下载解密工具);
第三方工具:360/腾讯管家搜索引擎、ID Ransomware(上传勒索信/样本识别病毒)、NOMORERANSOM(开源解密工具库)等。
分析工具:
观星实验室应急响应信息采集工具:采集进程列表、系统日志、计划任务、网络连接等多维度数据,自动打包后上传平台分析,可识别可疑横向移动(如PSEXEC工具利用行为)。
挖矿木马
常见挖矿木马:
- WannaMine
特点:主要针对搭建WebLogic的服务器,也攻击PHPMyAdmin、Drupal等Web应用。
传播方式:利用“永恒之蓝”漏洞和Mimikatz+WMIExec攻击组件进行横向渗透。
- Mykings(隐匿者)
特点:利用“永恒之蓝”漏洞,针对MsSQL、Telnet、RDP、CCTV等系统组件或设备进行密码暴力破解。
传播方式:暴力破解成功后,利用扫描攻击进行蠕虫式传播。
- Bulehero
特点:专注于攻击Windows服务器,早期使用固定IP进行载荷下载。
传播方式:使用弱密码暴力破解和多个服务器组件漏洞进行攻击。
- 8220Miner
特点:因固定使用8220端口而得名,长期活跃,利用多个漏洞进行攻击和部署挖矿程序。
传播方式:利用Hadoop Yarn未授权访问漏洞等,不采用蠕虫式传播,而是使用固定的一组IP地址进行全网攻击。
- “匿影”挖矿木马
特点:利用功能网盘和图床隐藏自己,在局域网中利用“永恒之蓝”和“双脉冲星”等漏洞进行横向传播。
传播方式:具有极强的隐蔽性和匿名性,简化了攻击流程,启用最新的挖矿账户。
- DDG
特点:Linux系统下用Go语言实现的挖矿木马,收益排名较高。
传播方式:利用OrientDB漏洞、Redis未授权访问漏洞、SSH弱密码进行入侵。
- h2Miner
特点:Linux系统下的挖矿木马,以恶意shell脚本h2.sh进行命名。
传播方式:利用Redis未授权访问漏洞或SSH弱密码作为暴力破解入口,同时利用多种Web服务漏洞进行攻击。
- MinerGuard
特点:跨Windows和Linux平台的挖矿木马,利用Redis未授权访问漏洞、SSH弱密码、多种Web服务漏洞进行入侵。
传播方式:运行门罗币挖矿程序,并通过多个网络服务器漏洞及暴力破解服务器的方法传播。
- Kworkerds
特点:跨Windows和Linux平台的挖矿木马,通过劫持动态链接库植入rootkit后门。
传播方式:利用Redis未授权访问漏洞、SSH弱密码、WebLogic远程代码执行等进行入侵。
- Watchdogs
特点:Linux系统下的挖矿木马,利用SSH弱密码、WebLogic远程代码执行、Jenkins漏洞、ActiveMQ漏洞等进行入侵。
传播方式:包含自定义版本的UPX加壳程序,尝试获取root权限,进行隐藏。
挖矿木马传播归类总结
利用漏洞传播:大多数挖矿木马利用系统漏洞进行传播,如“永恒之蓝”漏洞、Web服务漏洞等。
弱密码暴力破解:许多挖矿木马通过暴力破解弱密码进行传播。
僵尸网络传播:一些挖矿木马利用僵尸网络进行传播和控制。
无文件攻击:部分挖矿木马采用无文件攻击方法,不落地文件,直接在内存中执行。
网页挂马传播:通过植入恶意JavaScript脚本,用户访问网页时自动下载挖矿木马。
软件供应链攻击:利用合法软件的升级过程进行木马分发。
Windows
初步预判
1.CPU 使用率飙升、系统卡顿、部分服务 无法正常运行等现象。
2.监测服务器性能
3.通过安全检测设备警告判断
系统排查
用户信息
网络连接、进程、服务、任务计划
日志排查
系统日志、应用程序日志、安全性日志(推荐几个Windows查找文件的软件:Everything、Fileseek、Listary等)
4728:表示把用户添加进安全全局组,如 Administrators 组。
4797:表示试图查询账户是否存在空白密码。
4624:表示在大部分登录事件成功时会产生的日志。
4625:表示在大部分登录事件失败时会产生的日志(解锁屏幕并不会产生
这个日志)。
4672:表示在特权用户登录成功时会产生的日志,如登录 Administrator,
一般会看到 4624 和 4672 日志一起出现。
4648:表示一些其他的登录情况。
如果系统日志太多、太复杂,可以导出,然后使用 LogParser 进行解析和筛选检查,也可使用其他日志分析工具完成。
Linux
系统排查
用户信息
网络连接、进程、服务、任务计划
日志排查(任务计划日志、自启动日志)
任务计划日志
crontab -l命令,查看当前的任务计划有哪些,是否有后门木马程序启动相关信息;
ls /etc/cron* 命令,查看 etc 目录任务计划相关文件;
cat /var/log/cron命令,查看任务计划日志;
ls /var/spool/mail命令,查看相关日志记录文件;
cat /var/spool/mail/root命令,发现针对 80 端口的攻击行为(当 Web 访问异常时,及时向当前系统配置的邮箱地址发送报警邮件的信息)。
自启动项日志
cat /var/log/messages命令,查看整体系统信息,其中也记录了某个用户切换到 root 权限的日志;
cat /var/log/secure命令,查看验证和授权方面的信息,如 sshd 会将所有信息(其中包括失败登录)记录在这里;
cat /var/log/lastlog命令,查看所有用户最近的信息,二进制文件,需要用
lastlog 查看内容;
cat /var/log/btmp命令,查看所有失败登录信息,使用 last 命令可查看 btmp文件;
cat /var/log/maillog命令,查看系统运行电子邮件服务器的日志信息;
cat ~/.bash_history命令,查看之前使用过的 shell 命令。
挖矿木马处理:
1.及时隔离被感染的机器,以免被攻击者作为跳板对局域网内的机器进行攻击
2.做好隔离后,做好清除工作。程序名一般为不规则的数字或字母或伪装为常见进程名,只要是各种异常的就要排查(CUP占用等)。
3.清除:
阻断通信:网络层阻断其与矿池地址的连接
清除定时任务、启动项、可疑用户等敏感位置
结束异常进程、删除挖矿木马:在Windows系统中使用`netstat -ano`和`tasklist`命令定位并删除挖矿木马文件;在Linux系统中使用`netstat -anpt`和`ls -alh /proc/PID`命令定位并删除挖矿木马文件
全盘查杀,并加固:检查是否删除干净,有反复现象,用杀毒软件查杀,加固
挖矿木马防范:
挖矿木马僵尸网络的防范
1.提高密码复杂性
2.及时打补丁
3.服务器定期维护
网页/客户端挖矿木马的防范
1.浏览网页或启动客户端时注意 CPU/GPU 的使用率
2.避免使用被标记为高风险的网站
3.不下载来路不明的软件
辅助审查工具
审查工具有很多,这里不展开
PCHunter
ProcessExplorer
Webshell
脚本类型:
JSP:JSP 全称 Java Server Pages,是动态 Web 资源开发技术,通过在 HTML 文件中插入 Java 程序段和 JSP 标记,形成 *.jsp 文件。
ASP:ASP 全称 Active Sever Page,是服务器开发专用脚本。它可以与数据库和其他程序进行交互,是在 IIS 中运行的一种程序。
PHP:PHP 全称 Hypertext Preprocessor,是适用于 Web 开发的通用开源脚本语言,支持常见数据库及操作系统,能快速执行动态网页。
Webshell检测:
1.流量检测
2.本地文件webshell排查
3.日志文件webshell排查
防御方法::配置防火墙、加固服务器、管控权限、安装检测工具查杀可疑文件、修补漏洞、备份重要文件、日常排查不明脚本、采用文件上传白名单机制。
处置方法:
确定入侵时间
Web日志分析
漏洞分析、复现、修复
工具:D盾、河马webshell查杀、wireshark(流量分析)
清除
1. 处置时先断网,清理发现的 Webshell;
2. 如果网站被挂黑链或者被篡改首页,那么应删除篡改内容,同时务必审计源码,保证源码中不存在恶意添加的内容;
3. 在系统排查后,及时清理系统中隐藏的后门及攻击者操作的内容,若发现存在 rootkit 类后门,则建议重装系统;
4. 对排查过程中发现的漏洞利用点进行修补,切断攻击路径,必要时可以做黑盒渗透测试,全面发现应用漏洞;
5. 待上述操作处置完成,重新恢复网站运行。
被植入Webshell的表现
网页被非法篡改、网页被植入非法链接、安全设备警报
可能存在漏洞的地方
| 项目 | 内容 |
|---|---|
| 服务器 | Windows、Linux 等 |
| 内容管理系统(CMS) | Jeecms、Wordpress、Drupal、TRS WCM、Phpcms、Dedecms 等 |
| 中间件 | Tomcat、IIS、Apache、WebLogic、JBoss、Websphere、Jetty 等 |
| 框架 | Struts2、Thinkphp、Spring、Shiro、Fastjson 等 |
| 数据库 | Tomcat、IIS、Apache、WebLogic、Struts、MySQL 等 |
| 脚本语言 | ASP、PHP、JSP 等 |
| 业务架构 | 如前端网页内容是否是后端通过 FTP 上传的(新闻网偏多)等 |
系统排查
Windows:D盾等查杀工具
用户排查(非法用户、隐藏用户、非法权限用户克隆用户)
进程、服务、驱动、模块、启动项排查
各种日志排查
Linux:河马 Webshell 等查杀工具
用户排查(非法用户、隐藏用户、非法权限用户克隆用户)
| 操作命令 | 描述 |
|---|---|
| awk -F: ‘{if($3==0)print $1}’ /etc/passwd | 查看 UID 为 0 的用户 |
| cat /etc/passwd | grep -v “nologin” |
| awk -F: ‘length($2)==0 {print $1}’ /etc/shadow | 查看是否存在空口令用户 |
进程、服务、驱动、模块、启动项排查
各种日志排查
流量排查(各种类型的webs hell特征,如中国菜刀连接时数据包包含 z0、eval、base64_decode)
搜索目录下适配当前应用的网页文件,查看内容是否有 Webshell 特征,很多木马和大马都带有典型的
命令执行特征函数,如 exec()、eval()、execute()等
find ./ -type f -name "*.jsp" |xargs grep "exec("
find ./ -type f -name "*.php" |xargs grep "eval("
find ./ -type f -name "*.asp" |xargs grep "execute("
find ./ -type f -name "*.aspx" |xargs grep "eval("
------------------------------------------------------
对于免杀 Webshell,可以查看是否使用了编码函数
find ./ -type f -name "*.php " |xargs grep "base64_decode"
日志分析
Windows系统
| Web 中间件 | 默认路径 |
|---|---|
| Apache | apache\logs\error.log、apache\logs\access.log |
| IIS | C:\inetpub\logs\LogFiles、C:\WINDOWS\system32\LogFiles |
| Tomcat | tomcat\access_log |
Linux系统
| Web 中间件 | 默认路径 |
|---|---|
| Apache | /etc/httpd/logs/access_log、/var/log/httpd/access_log |
| Nginx | /usr/local/nginx/logs |
网页篡改
原因:牟利(攻击者和和黑色产业合作、挖矿)、炫技/破环他人形象、为后续攻击做准备(网页挂马、水坑攻击、网络钓鱼)
网页篡改检测技术:外挂轮询技术、核心内嵌技术、事件触发技术
防御:
1.将服务器安全补丁升级到最新版
2.封闭未使用但已经开放的网络服务端口及未使用的服务
3.使用复杂的管理员密码
4.网站程序应设计合理并注意安全代码的编写
5.设置合适的网站权限
6.防止 ARP 欺骗的发生
7.对网站进行定期渗透,
管理:数据备份、安全管理制度、应急响应措施
常规处置方法
隔离被感染的服务器/主机的目的:一是防止木马通过网络继续感染其他服务 器/主机;二是防止攻击者通过已经感染的服务器/主机继续操控其他设备。
1.物理隔离的方法主要为断网或断电,关闭服务器/主机的无线网络、蓝牙 连接,禁用网卡,并拔掉服务器/主机上的所有外部存储设备等;
2.对访问网络资源的权限进行严格的认证和控制。常用的操作方法是加策 略和修改登录密码。
数据恢复
错误处理:
当确认网页已经被篡改后,只用备份文件恢复,没有下一步排查措施。
网页篡改的原因是网站存在漏洞,从而被攻击者恶意控制,如果只用备份文件恢复网页,却没有找到入侵的源头,那么可能会导致又一次地入侵与篡改。
判断:
1.业务系统某部分网页出现异常字词
2.网站出现异常图片、标语等
排查:系统排查、日志排查、账号排查、网络流量排查
加固:
1.按篡改影响程度,下线相关网页或整站(挂维护公告);
2.优先用新备份覆盖恢复(覆盖前备份被篡改文件),无备份则手动完善,坚持每日异地备份;
3.备份并删除所有后门止损;
4.查看 access.log,通过可疑 IP 操作记录判断入侵方法、修复漏
DDOS攻击
目的:勒索、打击竞争对手、报复性、政治目的
DDOS分类
消耗网络带宽
ICMP Flood(ICMP 洪水攻击)
ICMP(Internet Control Message Protocol)是 TCP/IP 子协议,用于 IP 主机、路由器间传递控制消息、诊断 / 控制及响应 IP 错误;ICMP Flood 即攻击者通过僵尸网络向目标发海量 ICMP 请求,消耗其带宽。
常见类型:ping 洪水(ICMP Type8 请求),迫使目标回 Type0 回应,双向流量占满带宽。
其他类型:重定向、目标不可达等无效 ICMP 报文,消耗目标 CPU。
攻击特点:IP 层直接发送,无需 TCP 连接,门槛低、流量分散难拦截。
UDP Flood(UDP 洪水攻击)
UDP Flood 是主流 DDoS 手段,攻击者通过僵尸网络向目标发海量 UDP 请求实现拒服;分 64 字节小包(增设备处理压力)和 1500 字节以上大包(耗带宽、需分片重组耗性能)。
反射与放大攻击()分布式反射拒绝服务攻击(Distributed Reflection Denial of Service,DRDoS):
反射攻击(DRDoS)
攻击者借反射器(开放服务的服务器 / 路由器),发送伪造源 IP(目标 IP)的请求,反射器向目标回包,隐藏攻击源并耗尽其带宽,依赖无认证协议(以 UDP 为主)。
反射攻击的伪造逻辑:
明确三个核心角色:
攻击者:发起攻击的主体(控制僵尸网络)。
反射器:被利用的中间设备(开放特殊服务的服务器 / 路由器)。
攻击目标:最终要瘫痪的对象(你说的服务器)。
伪造逻辑:
攻击者给反射器发请求时,会做两个关键操作:
目的 IP:填反射器的 IP(让请求能传到反射器)。
源 IP:伪造成攻击目标的 IP(让反射器误以为请求来自目标)。
攻击流程闭环:
反射器收到请求后,会向 “伪造成的源 IP”(也就是攻击目标)发送响应包。
大量反射器的响应包集中涌向目标,最终耗尽其带宽,实现拒服。
放大攻击:
基于反射攻击,利用请求与响应的流量不平衡(响应包更大)放大效果,反射器即放大器,威胁程度取决于相关无验证网络服务的部署广泛性。
常见的DRDos攻击:
NTP Reflection Flood(NTP网络时间协议)
DNS Reflection Flood(DNS域名解析系统)
SSDP Reflection Flood(SSDP简单服务发现协议)
SNMP Reflection Flood(SNMP简单网络管理协议)
消耗系统资源
TCP Flood
TCP连接正常:
C SYN(SEQ=X)(类比:你好)→→→→→→→→→→→→→→→→→→S
C SYN(SEQ=y)+ACK(ACK=x+1)(类比:你也好)←←←←←←←←←S
C ACK(ACK=y+1)(你今天要干啥)→→→→→→→→→→→→→→→S
使坏(TCP Flood 攻击):攻击者通过真实 IP 或僵尸网络,先与服务器完成完整的 TCP 三次握手(建立 ESTABLISHED 状态的已连接),之后要么持续占用该连接不发送有效数据,要么发送大量无意义垃圾数据,甚至频繁建立又关闭连接。这就像有人和你成功搭上话(完成握手)后,一直用无意义的话缠着你(占用连接资源),或者反复和你打招呼又立刻走开(频繁建连关连),最终让服务器的已建立连接队列、CPU 或带宽被耗尽,达到拒绝服务的目的,正常用户无法再和服务器建立新连接。
SYN Flood
TCP连接正常:
C SYN(SEQ=X)(类比:你好)→→→→→→→→→→→→→→→→→→S①
C SYN(SEQ=y)+ACK(ACK=x+1)(类比:你也好)←←←←←←←←←S②
C ACK(ACK=y+1)(你今天要干啥)→→→→→→→→→→→→→→→S③
半开连接:半开连接:TCP 三次握手时,服务器发送 SYN+ACK②后,因网络故障、恶意干扰等,未收到客户端第三步的 ACK(ACK=y+1),此时服务器处于 SYN_RECV 状态,称为半连接。
使坏(SYN Flood攻击):攻击者伪造不存在的 IP 或利用僵尸网络,持续向服务器发送 SYN 报文,但不回应服务器的 SYN+ACK。服务器会按规则进入 SYN_RECV 状态等待超时,由于攻击者发送 SYN 的速度远超服务器释放资源的速度,半连接队列很快被占满,正常用户无法建立新连接。
二者区别:
| 对比维度 | SYN Flood | TCP Flood |
|---|---|---|
| 攻击核心逻辑 | 不完成 TCP 三次握手,仅发 SYN 不回 ACK | 完成完整 TCP 三次握手,建立连接后占用资源 |
| 服务器连接状态 | SYN_RECV(半连接状态) | ESTABLISHED(已建立连接状态) |
| 攻击手段 | 伪造不存在的 IP / 僵尸网络,持续发 SYN 报文 | 真实 IP / 僵尸网络,占连接、发垃圾数据或频繁建关连 |
| 目标消耗资源 | 主要耗尽半连接队列(SYN_RECV 队列) | 主要耗尽已建立连接队列、CPU 或带宽 |
| 通俗类比 | 频繁打招呼却不回应,让人一直惦记无法接新招呼 | 搭上话后无意义纠缠,或反复打招呼又走开,占着聊天资源 |
消耗应用资源
HTTP Flood(CC 攻击)
HTTP GET 攻击:多台设备向目标服务器发送大量资源请求(如图像、文件、接口),淹没服务器的请求与响应能力,导致合法请求无法正常回复。
HTTP POST 攻击:向目标服务器发送大量表单类请求,利用服务器处理表单数据、执行数据库命令的高资源消耗特性,使其容量饱和并拒绝服务。
| 误区 | 正确认识 |
|---|---|
| GET 攻击仅针对静态资源(图片、文件) | GET 可攻击动态接口,高频发送仍会占用 CPU / 内存 |
| POST 攻击一定比 GET 攻击更高效 | POST 单请求消耗高,但生效依赖场景,未必优于 GET |
| 必须超量请求才会导致拒绝服务 | 资源密集型接口,少量请求也可能耗尽服务器资源 |
| 连锁反应仅影响后端业务与数据库 | 日志、缓存等辅助组件压力会反向加剧前端延迟 |
慢速攻击
慢速攻击依赖慢速流量,以 Web 服务器为目标,仅需少量带宽、单台计算机即可发起。其流量难与正常流量区分、难以缓解,通过慢速传输数据且防止服务器超时,捆绑服务器线程,阻止合法用户访问。
关于DDos攻击的误区:
误区一:DDoS 都是洪水攻击 —— 实际还有慢速攻击,前者快速海量发送请求,后者缓慢持续占用资源。
误区二:DDoS 都只消耗带宽 —— 还会消耗系统和应用资源,攻击流量并非衡量危害的唯一标准。
误区三:增加带宽、买防御产品能解决 DDoS—— 攻击无法彻底根治,这类退让策略受成本、硬件限制,不能有效缓解。
DDos防御
攻击前(主动防护)
关注安全厂商、CNCERT 等的安全通告,针对性设防护策略
部署负载均衡 / 多节点集群、抗 DDoS 设备、流量监控设备及 CDN
关闭业务无关端口,防火墙过滤无用端口
预留充足带宽,优化系统资源,限制异常流量
定期排查服务器,避免被攻击者利用
攻击时(应急缓解)
分析流量确认攻击类型,调整防护策略
依据连接记录限制异常访问源
攻击流量超本地防御限度时,接入运营商 / CDN 服务商清洗流量
业务受严重影响时,及时上报公安机关
攻击后(追溯加固)
保存并分析攻击日志,整理攻击 IP 用于追溯
总结应急响应问题,加固系统与网络
完善应急防御流程,优化后续防护方案
数据泄露
数据泄露概述
简介:数据泄露指机构 / 企业的敏感数据(如用户信息、商业机密等)通过各种途径被非法获取、传播或泄露,可能造成经济损失与声誉影响。
泄露途径:涵盖系统漏洞利用、账号被盗、内部人员违规操作、第三方工具风险、网络攻击渗透等多种场景。
防范核心:以 “事前预防 + 事中监测 + 事后处置” 为核心,构建全流程防护体系。
常规处置方法
发现数据泄露:通过安全监测工具、用户反馈、第三方通报等渠道确认泄露事件。
梳理基本情况:明确泄露数据类型、范围、影响用户规模、可能的泄露时间窗口。
判断泄露途径:结合日志、系统记录、网络流量等,定位泄露源头(如漏洞利用、账号泄露等)。
数据泄露处置:采取隔离风险源、删除泄露数据副本、通知受影响用户、修复漏洞等措施,降低损失。
常用工具
Hawkeye:用于数据泄露监测与溯源,可捕获敏感数据传输痕迹、定位泄露节点。
Sysmon:系统监控工具,能记录进程活动、文件操作、网络连接等细节,为泄露溯源提供日志支撑。
技术操作
初步研判:确认泄露数据的敏感级别、传播范围,评估事件影响程度,划定应急响应等级。
确定排查范围和目标:聚焦可能的泄露源头(如 Web 服务器、数据库、内部终端等),明确排查重点。
建立策略:制定数据隔离、漏洞修复、日志留存等专项策略,避免泄露扩大。
系统排查:对服务器、应用系统、账号权限、网络流量等进行全面排查,锁定泄露原因。
典型处置案例
- Web 服务器数据泄露:因服务器配置漏洞(如弱密码、未打补丁)导致数据被非法获取,处置核心是紧急加固服务器、清理恶意访问痕迹、修复漏洞。
- Web 应用系统数据泄露:应用程序存在 SQL
注入、文件上传等漏洞,被攻击者利用窃取数据,处置重点是漏洞修复、数据脱敏、日志溯源攻击路径。
流量劫持
流量劫持是常见网络攻击技术,通过植入恶意代码、部署恶意设备、使用恶意软件等,控制、篡改客户端与服务端流量或改变其走向以造成非预期行为,日常表现为流氓软件、广告弹窗、网址跳转等。
简要概述:
常见流量劫持:
DNS劫持:攻击者篡改DNS解析结果,将用户引导到恶意网站。
HTTP劫持:攻击者在用户与网站之间的通信过程中插入恶意代码或广告。
链路层劫持:攻击者在数据链路层篡改或截取数据包,如ARP劫持。
常见攻击场景:
中间人攻击:攻击者在通信双方之间插入自己,窃取或篡改数据。
广告注入:攻击者在网页中注入广告,获取非法收益。
数据窃取:攻击者截取敏感信息,如用户名、密码等。
流量劫持防御方法:
使用HTTPS:加密通信,防止中间人攻击。
DNSSEC:通过数字签名确保DNS解析结果的真实性。
ARP防护:绑定IP和MAC地址,防止ARP欺骗。
流量监控:实时监控网络流量,发现异常行为。
劫持目的:引流推广、钓鱼攻击、访问限制、侦听窃密
DNS劫持
DNS(域名系统)是互联网核心服务,用于域名与IP地址的相互转换,支持TCP和UDP协议,默认端口53。域名长度限制:每级域名≤63字符,总长度≤253字符。
DNS服务器类型
| 服务器类型 | 功能说明 |
|---|---|
| 根域名服务器(Root DNS Server) | 互联网域名系统最高级别服务器,提供顶级域服务器的映射。 |
| 顶级域服务器(Top-level DNS Server) | 负责处理.com、.org等顶级域名,提供权威域服务器的映射。 |
| 权威域服务器(Authoritative Server) | 提供主机名到IP地址的直接映射,是域名解析的“权威来源”。 |
| DNS递归解析器(DNS Resolver) | 接收客户端域名解析请求,发起递归查询(向各级服务器请求直到获取结果),并将结果返回给客户端。 |
| 非权威名称服务器 | 无域的原始区域文件,仅缓存之前的DNS查询结果;若响应无原始文件的查询,称为“非授权应答”。 |
DNS递归查询工作流程
- 客户端发起DNS查询,先查本机hosts文件;若不存在,请求发送到DNS服务器。
- DNS服务器查自身缓存;若存在,直接返回;若不存在,请求发送到递归解析器。
- 递归解析器向根域名服务器请求查询,获取顶级域的权威服务器地址。
- 递归解析器向对应顶级域权威服务器请求,获取二级域的权威服务器地址。
- 递归解析器向二级域权威服务器请求,得到A记录(IP地址)。
- 递归解析器将结果返回给DNS服务器,DNS服务器缓存结果后返回给客户端。
- 客户端得到IP,成功访问目标。
DNS劫持(域名劫持)
-
定义
通过控制DNS查询的解析记录,拦截DNS请求,返回虚假IP信息或使请求无效,目的是将用户引导至非预期目标(如钓鱼网站),或禁止用户访问合法网站。 -
劫持流程
客户端发起域名请求(如访问www.example.com)。
攻击DNS服务器对请求进行恶意转换,返回虚假IP地址。
DNS服务器将虚假IP返回给客户端。
客户端基于虚假IP访问虚假服务器,而非原本的目标服务器,从而被攻击者控制。

-
防御方法
直接访问目标IP:绕过DNS解析,手动输入服务器IP地址访问(需提前知晓IP)。
设置正确DNS服务器:选择可靠的公共DNS(如114.114.114.114、8.8.8.8),避免使用被篡改的默认DNS。
延伸:CDN缓存污染攻击(与DNS劫持的关联攻击)
CDN(内容分发网络)用于缓存静态资源(如HTML、图片、脚本),攻击者可通过污染CDN缓存,使用户获取错误资源。
攻击原理
攻击者向目标网站发送含错误头部的HTTP请求,若CDN未缓存该资源,会转发请求到源服务器;源服务器返回错误页面,CDN将其缓存为“合法资源”。后续用户访问时,只能收到缓存的错误信息,无法获取原始内容。
三种攻击类型
| 攻击类型 | 说明 |
|---|---|
| HTTP头部过大(HHO) | 发送头部过大的HTTP请求,利用Web应用缓存与源服务器的头部大小限制差异实施攻击。 |
| HTTP元字符(HMC) | 用含有害元字符的请求头绕过CDN缓存,注入恶意内容。 |
| HTTP方法重写(HMO) | 利用HTTP方法重写绕过DELETE请求的安全策略,篡改缓存内容。 |
检测与修复
检测:对比不同区域访问源服务器的返回结果,或直接对比源服务器的HTTP资源。
修复:联系CDN服务商刷新缓存,清除被污染的错误资源。
通过以上内容,你可以从DNS基础、服务器类型、查询流程,到DNS劫持的原理、防御,再到关联的CDN缓存污染攻击,全面深入理解DNS劫持相关的技术逻辑与安全风险。
防御:
(1)锁定 hosts 文件,不允许修改。
(2)配置本地 DNS 为自动获取,或将其设置为可信 DNS 服务器。
(3)路由器采用强密码策略。
(4)及时更新路由器固件。
(5)使用加密协议进行 DNS 查询。
HTTP劫持
HTTP(超文本传输协议)工作于 OSI 模型应用层,用于万维网数据通信,基于 C/S 架构(客户端多为浏览器,服务器如 Nginx),其 request 请求包含请求行、请求头部、请求空行和请求数据四部分。
下面是一个POST请求
POST /api/login HTTP/1.1 // 请求行:方法(POST)+ URL(提交地址)+ 协议版本
Host: www.example.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Safari/605.1.15
Content-Type: application/x-www-form-urlencoded // 数据格式(表单默认)
Content-Length: 27 // 数据长度(字节数)
Accept: application/json
Connection: close// 请求空行(分隔头部和数据)
username=alice&password=123456 // 请求数据(表单键值对)
下面是一个响应包(响应包也有很多种,200,302,404等等)
HTTP/1.1 200 OK // 状态行:协议版本 + 状态码(200=成功) + 状态短语
Server: Nginx/1.21.6 // 服务器软件信息
Date: Thu, 06 Nov 2025 12:30:45 GMT // 响应生成时间
Content-Type: text/html; charset=utf-8 // 响应体数据格式(HTML)
Content-Length: 138 // 响应体长度(字节数)
Connection: keep-alive // 保持长连接<!-- 响应空行(分隔头部和响应体,必须存在) -->
<html><head><title>示例页面</title></head><body><h1>Hello, World!</h1><p>这是一个成功的HTTP响应</p></body>
</html>
HTTP 劫持发生在运营商网络节点上。对流量进行检测,当流量协议为 HTTP时,进行拦截处理。
步骤如下:
(1)获取网络流量,并在其中标识出 HTTP 协议流量;
(2)拦截服务器响应包,对响应包的内容进行篡改;
(3)将篡改之后的数据包抢先于正常响应包返回给客户端;
(4)客户端先接收篡改的数据包,并将后面正常的响应包丢弃。

防御:使用 HTTPS 进行数据交互(加密通信)
链路层劫持:
攻击者在受害者至目标服务器之间,恶意植入或控制网络设 备,以达到监听或篡改流量数据的目的。
TCP劫持
TCP 是 IETF RFC 793 定义的面向连接、可靠、基于字节流的传输层协议,B/S 等应用使用前需先建立 TCP 连接。
插一嘴架构的对比
| 对比维度 | B/S 架构(Browser/Server) | C/S 架构(Client/Server) |
|---|---|---|
| 架构组成 | 浏览器(客户端)+ 服务器 | 专用客户端软件 + 服务器 |
| 客户端要求 | 无需安装专用软件,仅需浏览器即可 | 必须安装对应客户端程序(如微信、QQ、游戏客户端) |
| 部署与维护 | 仅需维护服务器,客户端无额外成本 | 需同时维护服务器和所有客户端(更新、修复需逐个操作) |
| 访问方式 | 通过网址(HTTP/HTTPS 协议)访问,跨设备通用 | 需打开本地客户端,仅支持安装了该软件的设备 |
| 数据存储 | 数据集中存储在服务器,客户端不存核心数据 | 部分数据可本地缓存,核心数据存储在服务器 |
| 网络依赖 | 依赖网络连接,无网无法使用(除离线网页) | 支持离线操作(如本地编辑文档),联网后同步数据 |
| 适用场景 | 网页版应用(购物网站、在线办公系统、论坛)、跨设备访问需求场景 | 桌面软件(PS、办公软件客户端)、对响应速度 / 安全性要求高的应用(游戏、银行 APP) |
| 通俗理解 | “用浏览器上网办事”,不用装软件,哪里都能登 | “装专门软件用服务”,必须装对应 APP / 程序,仅限自己设备用 |
TCP可靠性的实现
TCP可靠性是通过 “数据适配、确认重传、错误检测、顺序去重、流量控制” 五大类 8 个具体机制协同实现的:
(1)应用数据分块:
适配传输的 “最优包装” TCP
会根据网络带宽、MTU(最大传输单元,网络能承载的最大数据包大小)等条件,将应用层发来的大数据(比如一个 100MB 的文件)拆分成多个“数据段”(Segment)。拆分后的每个段大小都在 TCP 和 IP 协议的承载范围内,避免因数据包过大导致传输失败或分片出错。
(2)定时器 + 确认重传:
丢件必补的 “保障机制” TCP 发送每个数据段后,会启动一个定时器(默认几秒到几十秒,可动态调整)。接收方收到数据后,会回复一个 “确认报文(ACK)”。如果发送方在定时器超时前没收到 ACK,就判定数据段丢失,自动重发该数据段。(3)延迟发送确认:
高效省流的 “聪明操作” 接收方收到数据后,不会立刻回复 ACK,而是推迟几分之一秒(通常 200ms内)。这样做是为了 “搭便车”—— 如果接收方此时正好有数据要发给发送方,就可以把 ACK 和自己的数据合并成一个报文发送,减少网络中单独的ACK 报文数量,节省带宽。
(4) 检验和: 数据完整性的 “安检仪” TCP 会给每个数据段的首部和数据计算一个“检验和”(类似一串校验码),并随数据一起发送。接收方收到后,会重新计算检验和,对比发送方传来的校验码。如果不一致,说明数据传输中被篡改或出错,接收方会丢弃该数据段,不发送
ACK,发送方超时后会重传。
(5)数据排序:乱序数据的 “整理员” IP 协议传输数据时是无序的(比如发送顺序是段 1、段 2、段 3,接收顺序可能是段 3、段 1、段2)。TCP 给每个数据字节分配一个 “序列号”,接收方会根据序列号将收到的乱序数据段重新排序,整理成正确的顺序后,再交给应用层。
(6)数据去重:重复数据的 “过滤器” IP
协议可能导致数据重复传输(比如发送方超时重传后,之前丢失的报文又找到了,导致接收方收到两份相同数据)。TCP 通过序列号识别重复数据段 ——
如果接收方发现某个数据段的序列号已经处理过,就直接丢弃该重复数据,不重复交给应用层。
(7)流量控制:避免接收方 “撑爆” 的 “调节阀” TCP 连接的双方都有固定大小的接收缓冲区(用来临时存放收到的数据)。接收方会在ACK 报文中告知发送方“自己的缓冲区还剩多少空闲空间”(即窗口大小)。发送方只会发送接收方缓冲区能容纳的数据,不会无限制发送,避免接收方因缓冲区满而丢失数据。
(8)不解释字节流:专注传输的 “纯粹搬运工” TCP
只负责将应用层传来的字节流准确、有序地传输到对方,不会对字节流的内容做任何解释(比如不会识别这是文本、图片还是视频)。字节流的具体含义(比如哪部分是表头、哪部分是数据),完全由双方的应用层协议(如 HTTP、FTP)自行定义和解析。
TCP报文格式

6 个标志位各占 1 位,仅 0 或 1 两种状态(1 为有效),核心作用是 “控制 TCP 连接的生命周期” 和 “数据传输方式”:
| 标志位 | 作用 类比 |
|---|---|
| URG | 标记紧急指针有效,数据需优先处理 快递上的 “加急件” 备注,快递员优先派送 |
| ACK | 确认号有效,用于响应已接收的数据 快递回执,告诉对方 “包裹收到了” |
| PSH | 接收方需立即将报文交给应用层,不缓存 快递上的 “即刻送达”,收件人收到后马上打开,不暂存 |
| RST | 强制重置 TCP 连接(连接异常时使用) 快递运输中发现问题,直接退回 sender,取消本次寄送 |
| SYN | 发起新连接(三次握手的核心标志位) 你给快递员打电话:“我要寄包裹,麻烦过来取”(发起连接请求) |
| FIN | 主动释放连接(四次挥手的核心标志位) 你告诉快递员:“我这没包裹要寄了,咱们终止合作”(关闭连接) |
SEQ:32 位字段,标识源端向目的端发送的字节流位置。发送方每次发送数据时,SEQ 值为 “当前要发送的第一个字节的序号”(而非报文段序号)。(相当于快递包裹上的 “起始编号”。比如你要寄 1000 字节的数据,拆成 2个报文段,第一个段发 1-500 字节,SEQ 就是 1;第二个段发 501-1000 字节,SEQ 就是 501。接收方通过 SEQ 知道 “这部分数据在整个字节流中的位置”。)
ACK:32 位字段,仅当标志位中 ACK=1 时有效。ACK 值 =“接收方期望下次收到的字节序号”=“已成功接收的最后一个字节序号 +1”(即对方上次发送的 SEQ+1,前提是对方发送的字节全部接收成功)。(相当于你收到快递后给对方的 “回执”。比如你收到了 SEQ=1 的500 字节数据(1-500),就回复 ACK=501,告诉对方 “我已经收到 1-500 字节,下次请从 501 字节开始发”。)
TTL字段
TTL字段:属于 IP 报文头部字段(TCP 报文封装在 IP 报文中传输),8 位字段,取值范围 0-255。发送方设置初始值,数据包每经过一个路由器(路由转发),TTL 值减 1;TTL=0 时,路由器丢弃数据包并返回 ICMP 超时消息。
- TTL 的核心作用
避免数据包在网络中无限循环转发,节省网络资源。 帮助发送方定位网络故障(收到 ICMP 超时消息,可判断数据包卡在哪个路由器)。
辅助判断目标主机操作系统(通过默认 TTL 值反向推断)。
- 常见系统 TTL 默认值(实用对照表)
| 操作系统 / 系统类型 | TTL 默认值 |
|---|---|
| Linux、Windows 7/10/11 | 64 |
| Windows NT/2000/XP | 128 |
| Windows 98 | 32 |
| UNIX、部分服务器系统 | 255 |
- TTL 与 TCP 劫持的关联
正常 TCP 会话中,客户端与服务端的 TTL 值是 “固定初始值 - 转发路由数”,数值稳定且符合系统默认规律。
若检测到同一 TCP 会话的 TTL 值突然跳变(比如从 64 变成 128),可能是劫持者介入(劫持者系统 TTL 默认值与原通信方不同)。
局限性:劫持者可伪造 TTL 值(修改发送数据包的 TTL 字段),因此 TTL 仅为 “辅助判断依据”,不能作为劫持的唯一证据。
TCP 会话劫持原理(结合 TCP 报文字段)
TCP 会话劫持的核心是 “抢占已建立的 TCP 连接”,利用 TCP 协议仅通过 “SEQ、ACK、标志位” 验证通信身份的漏洞,具体流程:
(1)劫持者通过嗅探(如 ARP 劫持)获取客户端与服务端的 TCP 会话信息(包括当前 SEQ、ACK 值、端口号等)。
(2)劫持者伪造其中一方的身份(比如伪装成客户端),向服务端发送 TCP 报文,报文的 SEQ、ACK 值严格匹配服务端 “期望接收的序号”(需精准计算,否则会被服务端丢弃)。
(3)服务端通过 SEQ、ACK 值验证 “身份有效”,将劫持者视为合法通信方,后续与客户端的通信流量会被劫持者拦截、篡改或转发。
(4)若要实现双向劫持,劫持者需同时伪造客户端和服务端的报文,分别欺骗双方,成为 “中间人”。
TCP劫持攻击(核心:伪造合法的SEQ和ACK)
(1)SEQ/ACK具有可预测性:
劫持能成功的关键的是攻击者可推算出合法序号,而非随机生成: 客户端和服务端的初始 SEQ值(x、y)并非完全随机,依赖系统当前时间戳、计数器等变量。 这些变量的变化规律可被攻击者捕获分析,进而精准预测后续的 SEQ 和 ACK取值。 协议本身不校验报文发送者身份,仅通过 SEQ/ACK 是否匹配判断报文合法性。
(2)三次握手的核心序号交互: 客户端(C)→ 服务端(S):SYN,SEQ=x(C 进入 SYN-SENT) 服务端(S)→客户端(C):SYN+ACK,SEQ=y,ACK=x+1(S 进入 SYN-RCVD) 客户端(C)→ 服务端(S):ACK,SEQ=x+1,ACK=y+1(双方进ESTABLISHED)
(3)攻击的详细流程:
攻击者(H)需处于能捕获 C 与 S 通信报文的位置(同网段或路由监听),流程如下:
①监听捕获阶段:H开启抓包工具,捕获 C 发送给 S 的第一个 SYN 报文,获取关键信息:C 的 IP / 端口、S 的 IP / 端口、SEQ=x。
②预测与伪造响应:H 基于捕获的 x 和系统时间规律,推算 S 会返回的 SEQ=y(或直接等待捕获 S 的 SYN+ACK 报文获取y),随后伪造 “来自 S 的响应报文” 发送给 C。 伪造报文参数:标记位SYN+ACK,SEQ=y(预测或捕获的值),ACK=x+1,源 IP 伪装成 S,目的 IP / 端口为 C。
③干扰客户端正常响应:C收到 H 伪造的报文后,会认为是 S 的合法响应,按规则返回 ACK 报文(SEQ=x+1,ACK=y+1),并进入 ESTABLISHED状态。
④伪造客户端确认报文:H 同时捕获 S 真正发给 C 的 SYN+ACK 报文(真实 SEQ=y,ACK=x+1),并立刻伪造“来自 C 的确认报文” 发送给 S。 伪造报文参数:标记位 ACK,SEQ=x+1,ACK=y+1,源 IP 伪装成 C,目的 IP /端口为 S。
⑤抢占会话控制权:S 收到 H 伪造的 ACK 报文后,验证 SEQ/ACK 匹配,进入ESTABLISHED状态,认为已与 C 建立合法连接。
⑥断开原合法连接: C 会收到 S 发送的真实SYN+ACK 报文,但此时 C 已进入ESTABLISHED 状态,会拒绝该重复报文。 后续 S 会等待 C 的真实数据,但 C 的报文序号与 S当前期望的序号不匹配,原连接因序号失配超时断开。
⑦劫持后通信:H 已获取合法的会话序号上下文,可继续伪造 C 或 S的报文与对方通信,窃取数据或发送恶意指令。
细节:
空洞的影响:失配的报文会进入乱序队列,形成 “丢包空洞” 或 “乱序空洞”,这些报文不会被应用层处理,最终导致原连接超时断开。
协议缺陷:TCP 仅保证报文按序接收,无身份校验、无报文完整性校验,这是劫持能成功的根本原因。
劫持条件:攻击者需能捕获报文(网络可达)、能伪造 IP(无 ARP 欺骗防护等)、能精准预测序号(无序号随机化增强)。
防御:
(1)使用加密通信,如使用 SSL 代替 HTTP,或者使用 IPSec-VPN 等方法实
现端到网关、端到端、网关到网关等场景下的通信加密。
(2)避免使用共享式网络。
ARP劫持
ARP 是 TCP/IP 协议中用于根据 IP 地址获取物理地址(MAC 地址)的协议,工作在 OSI 数据链路层,核心功能是 IP 与 MAC 地址的转换。其工作原理是主机通过广播 ARP 请求获取目标物理地址,并存入 ARP 缓存以便后续复用,且依赖局域网主机互信、不验证应答真实性。相关协议有 RARP、代理 ARP,IPv6 中则由 NDP 替代。
单向欺骗(骗设备A,致A断网):
攻击者仅向目标设备 A 发送伪造的 ARP 响应包,将网关的 IP 地址与自己的 MAC 地址绑定。A 的 ARP 缓存被篡改后,所有发往网关的流量都会转发到攻击者设备,因攻击者未开启 IP 转发,A 无法与网关正常通信,最终断网。
双向欺骗(骗网关、骗设备A):
攻击者向设备 A 发送伪造 ARP 响应,声称自己是网关,篡改 A 的 ARP 缓存。
攻击者开启 IP 转发功能,再向网关发送伪造 ARP 响应,声称自己是设备 A,篡改网关的 ARP 缓存。
A 与网关的所有通信流量都先经过攻击者设备转发,A 看似能正常上网,但流量全程被攻击者捕获、篡改或监听。
防御:
(1)避免使用共享式网络。
(2)将 IP 地址和 MAC 地址静态绑定。
(3)使用具有 ARP 防护功能的终端安全软件。
(4)使用具有 ARP 防护功能的网络设备。
常用的命令及工具:
nslookuo、dig、traceroute
Wireshark
嗅探工具:Cain、NetFuke、Ettercap
排查
DNS劫持排查:
使用nslookup命令检查DNS解析结果。 使用dig命令获取详细的DNS解析信息。 检查本地DNS缓存,确认是否存在异常记录。
分析DNS服务器日志,查看是否有异常请求。
HTTP劫持排查:
使用Wireshark抓包工具分析HTTP请求和响应。 检查HTTP响应头,确认是否存在劫持痕迹。 分析网页源代码,查看是否有恶意代码注入。
TCP劫持排查:
使用Wireshark抓包工具分析TCP连接。 检查TCP三次握手过程,确认是否存在异常。 分析TCP数据包内容,查看是否有篡改痕迹。
ARP劫持排查:
使用arp命令查看ARP缓存表,确认是否存在异常条目。 使用Wireshark抓包工具分析ARP请求和响应。
检查网络设备日志,查看是否有ARP攻击记录
