网络攻击(Cyber Attacks)的形式多种多样,且随着技术的发展不断演变。为了让你更直观地理解,我们可以将这些手段分为欺骗诱导、漏洞利用、资源耗尽和中间人劫持四大类。
1. 社交工程与欺骗类
这类攻击不直接针对系统漏洞,而是针对“人”这一环节的弱点。
- 钓鱼攻击 (Phishing): 通过伪装成银行、公司IT部门或知名品牌的电子邮件、短信(Smishing),诱导用户点击恶意链接或输入账号密码。
- 鱼叉式钓鱼 (Spear Phishing): 针对特定个人或组织的深度定制化钓鱼,成功率极高。
- 水坑攻击 (Watering Hole): 攻击者分析目标人群经常访问的网站,并向该网站植入恶意代码,等目标“上门”时自动感染。
2. 恶意软件类 (Malware)
通过各种途径安装在目标机器上的有害程序。
- 勒索软件 (Ransomware): 加密用户文件,要求支付比特币等虚拟货币才能解锁。
- 特洛伊木马 (Trojan): 伪装成合法软件,一旦运行就会在后台开启后门。
- 间谍软件 (Spyware): 偷偷记录用户的按键、摄像头画面或屏幕截图,窃取隐私。
3. Web 与数据库攻击
利用网站程序和数据库查询逻辑的漏洞进行攻击。
- SQL 注入 (SQL Injection): 在输入框或URL参数中插入恶意SQL代码,欺骗数据库执行非法指令,从而窃取、篡改或删除数据。
- 跨站脚本攻击 (XSS): 攻击者在网页中嵌入恶意脚本,当其他用户浏览该网页时,脚本在用户的浏览器中执行,通常用于窃取 Cookie 或 Session。
- 目录遍历: 通过修改路径参数(如
../../etc/passwd),访问服务器上本不该公开的文件。
4. 拒绝服务攻击 (DoS/DDoS)
这种攻击的目的不是为了偷数据,而是为了让你的服务瘫痪。
- DDoS (分布式拒绝服务): 攻击者操控成千上万台受感染的计算机(僵尸网络),同时向目标服务器发送海量请求,瞬间冲垮服务器的带宽或处理能力。
5. 中间人与嗅探类
攻击者介入通讯双方之间,在不被察觉的情况下窃听或修改数据。
- 中间人攻击 (MITM): 攻击者拦截通讯双方的对话。例如,在公共 Wi-Fi 下劫持你的流量,让你以为在和网银通信,实际上数据都经过了攻击者的电脑。
- ARP 欺骗: 在局域网内伪造网关地址,截获局域网内的所有数据包。
6. 其他高阶手段
| 攻击名称 | 简要描述 |
|---|---|
| 零日漏洞 (0-day) | 利用软件厂商还未发现或尚未修复的漏洞进行攻击,防不胜防。 |
| 暴力破解 (Brute Force) | 通过高性能计算机不断尝试可能的密码组合。 |
| 供应链攻击 | 不直接攻击你,而是攻击你使用的软件供应商(如开发工具或第三方库)。 |
7. 网络探测与侦察 (Reconnaissance)
这是攻击的“前戏”,攻击者通过这些手段摸清目标的家底。
- 端口扫描 (Port Scanning): 攻击者利用工具(如 Nmap)向目标主机的各个端口发送探测包。
- 原理: 根据目标返回的响应(如 SYN/ACK 代表开启,RST 代表关闭),判断目标运行了哪些服务(如 80 端口的 Web、22 端口的 SSH)。
- 目的: 寻找那些版本过旧、存在已知漏洞的服务入口。
- 网络监听/嗅探 (Sniffing): 攻击者将网卡设为“混杂模式”,捕获流经网络的所有数据包。
- 原理: 在非加密环境下(如 HTTP、FTP、Telnet),攻击者可以像看电影一样直接读取你的账号密码。
- 指纹识别 (Fingerprinting): 通过分析 TCP/IP 协议栈的响应微小差异,判断目标系统的具体版本(如 Linux 5.x 还是 Windows Server 2019)。
8. 协议层漏洞攻击 (Layer 3 & 4)
这类攻击利用了互联网协议设计的原始缺陷。
- SYN Flood (半连接攻击): 利用 TCP 三次握手机制。
- 攻击者发送大量 SYN 包,但不回应最后的 ACK。
- 服务器被迫维持大量的“半连接”状态,耗尽内存资源。
- IP 欺骗 (IP Spoofing): 伪造源 IP 地址发送数据包,用于绕过基于 IP 的访问控制列表(ACL),或在 DDoS 中隐藏身份。
- ICMP Flood (死亡之 Ping): 发送畸形或超大的 Ping 包,导致旧版本系统的协议栈处理崩溃。
9. 局域网内网攻击 (LAN Attacks)
一旦攻击者进入了你的内部网络(比如通过公司的公共 Wi-Fi),他们会使用这些手段:
- ARP 欺骗/投毒 (ARP Spoofing): * 原理: 攻击者告诉你的电脑“我是网关”,同时告诉网关“我是你的电脑”。
- 结果: 所有的流量都会先经过攻击者的电脑,实现断网或数据篡改。
- DNS 劫持/污染: * 通过篡改 DNS 服务器或本地 Hosts 文件,当你输入
www.bank.com时,实际上访问的是攻击者搭建的钓鱼网站。 - DHCP 饥饿攻击: 攻击者耗尽局域网内所有的 IP 地址,然后自己伪装成一个恶意 DHCP 服务器,给新加入的用户分配包含恶意 DNS 设置的 IP。
10. 无线网络攻击 (Wireless Attacks)
- WPA/WPA2 破解: 通过抓取握手包进行离线暴力破解(跑字典)。
- 邪恶孪生 (Evil Twin): 建立一个和商场、咖啡厅同名的免费 Wi-Fi,诱导用户连接后窃取所有通讯数据。
11. 物理与隐蔽信道攻击
- BadUSB 攻击: 将特制硬件伪装成普通的 U 盘,插入电脑后它会模拟成一个键盘,极速输入预设的攻击指令。
- 侧信道攻击 (Side-Channel Attack): 极其高端,通过分析芯片工作时的电磁波、发热甚至声音,推算出加密密钥。
木马
1. 木马的定义与本质
- 定义: 一种看似有用、实际却包含恶意代码的程序。
- 本质: 它不会像病毒那样自我复制(传播靠人骗人,而非程序传程序),其目的是获取远程访问权限或窃取数据。
- 典故: 源自古希腊“特洛伊木马”计谋——外表是礼物,内部藏伏兵。
2. 木马的工作原理
木马通常采用 C/S 架构(客户端/服务器):
- 控制端(Client): 攻击者使用的程序,用于发送指令。
- 服务端(Server): 潜伏在受害者电脑里的恶意程序(即“木马本体”)。
- 连接方式:
- 正向连接: 控制端主动连接受害者的 IP。现在较少见,因为会被防火墙拦截。
- 反向连接(也称反弹木马): 受害者电脑主动连接攻击者的服务器。由于防火墙通常对“向外发出的请求”检查较松,这种方式更主流。
3. 木马的常见类型
根据功能不同,木马可以分为以下几类:
| 类型 | 功能描述 |
|---|---|
| 远程访问型 (RAT) | 最典型的木马,能完全控制对方桌面、摄像头、文件。 |
| 窃听型/盗号型 | 专门记录键盘输入(Keylogger)、截取网银信息。 |
| 下载型 (Downloader) | 体积很小,潜入后从网上下载更重型的病毒或勒索软件。 |
| DDoS型 | 把受害者电脑变成“肉鸡”,听令攻击大型网站。 |
| 代理型 | 把受害者电脑当作中转站,隐藏攻击者的真实 IP。 |
IP 欺骗
IP 欺骗(IP Spoofing) 是网络攻击中一种经典的欺骗技术。它的核心原理是伪造数据包的源 IP 地址,让接收方误以为该数据包来自一个受信任的来源。
以下是关于 IP 欺骗的深度知识点梳理:
1. 核心原理
在 TCP/IP 协议栈中,IP 层协议不具备身份验证机制。当一个数据包被发送时,源 IP 地址字段是由发送者的操作系统填充的。攻击者可以通过底层工具(如原始套接字 Raw Sockets)手动构造报文,将“源 IP 地址”篡改为任意地址。
2. IP 欺骗的主要类型
A. 盲攻击 (Blind Spoofing)
攻击者无法看到目标服务器的回应。这通常发生在攻击者不在通信链路上时。
- 挑战: 由于 TCP 连接需要三次握手,攻击者必须盲猜服务器生成的 序列号(Sequence Number) 才能建立虚假连接。
B. 非盲攻击 (Non-Blind Spoofing)
攻击者与目标处于同一局域网,可以进行嗅探(Sniffing)。
- 优势: 攻击者能直接看到服务器返回的序列号,从而轻松接管会话或伪造指令。
C. 拒绝服务攻击中的应用 (DDoS)
这是目前 IP 欺骗最常见的用途。
- 反射攻击(DRDoS): 攻击者伪造受害者的 IP,向全网成千上万的服务器(如 DNS 或 NTP)发送请求。所有服务器会将巨大的响应包发送给受害者,造成网络瘫痪。
3. IP 欺骗的常见应用场景
| 场景 | 描述 |
|---|---|
| 绕过身份验证 | 许多旧系统仅依赖 IP 白名单进行授权(如早期的 R-services)。 |
| DDoS 洪流 | 隐藏攻击者真实位置,并利用放大效应攻击目标。 |
| 中间人攻击 (MITM) | 结合 ARP 欺骗,诱导流量经过攻击者设备。 |
| 注入恶意代码 | 在已建立的会话中插入伪造的数据包。 |
4. 关键技术瓶颈:三次握手
IP 欺骗最大的敌人是 TCP 三次握手。
- 攻击者发送
SYN(源地址伪造为 A)。 - 服务器向 A 发送
SYN/ACK。 - 问题: 真正的 A 收到这个莫名其妙的
SYN/ACK后,会发送RST报文断开连接。 - 攻击者必须抢在 A 发送
RST之前,猜中序列号并完成第三次握手。
5. 防御手段 (How to Stop It)
核心防御:入口/出口过滤 (Ingress/Egress Filtering)
- 入口过滤: 路由器检查进入网络的数据包。如果一个包声称来自内部网络,却从外部接口进入,直接丢弃。
- BCP 38: 这是一个互联网标准,要求 ISP 过滤掉那些源 IP 不属于其分配范围的流出报文。
技术防御:
- 反向路径转发 (uRPF): 路由器检查接收到的包:“如果我要给这个源 IP 回包,我会走这个接口吗?” 如果不会,说明 IP 是伪造的。
- 随机化 TCP 序列号: 让攻击者无法预测序列号,从而无法建立盲连接。
- 使用加密协议: 如 IPsec 或 TLS。即使 IP 被伪造,没有密钥也无法解密或伪装内容。
6. 与相似概念的区别
- IP 欺骗 vs ARP 欺骗: IP 欺骗发生在网络层(L3),伪造地址;ARP 欺骗发生在数据链路层(L2),伪造 MAC 地址。
- IP 欺骗 vs DNS 欺骗: 前者伪造身份,后者通过篡改域名解析记录将你引向错误的 IP。
有趣的一点: 在现代互联网中,由于大多数路由器都启用了严格的过滤,跨运营商的 IP 欺骗已经变得越来越难。但在本地局域网或配置不当的企业内网中,它依然是巨大的威胁。
DOS 攻击
DoS(Denial of Service,拒绝服务)攻击是网络安全中最基础也最有效的攻击手段之一。它的目的不是窃取数据,而是“损人不利己”——通过耗尽目标的资源,让合法用户无法获得服务。
以下是 DoS 攻击的深度知识点梳理:
1. 核心本质:资源耗尽
DoS 攻击的本质是利用不对称性,将目标的某种资源“吃光”。这些资源通常包括:
- 带宽资源: 用海量垃圾流量堵塞网络入口。
- 计算资源: 让服务器 CPU 满载或内存溢出。
- 连接资源: 占用服务器所有的并发连接席位,让正常请求排不上队。
2. DoS 与 DDoS 的区别
- DoS (Denial of Service): 一对一。一台攻击机攻击一个目标。现在由于服务器性能提升,单机 DoS 很难奏效。
- DDoS (Distributed Denial of Service): 多对一。攻击者指挥成千上万台“肉鸡”(被控制的僵尸电脑)同时向目标发动进攻。这是目前的主流形式。
3. 常见的攻击类型(按原理分类)
A. 消耗带宽(流量型攻击)
- UDP Flood: 发送大量的 UDP 大包。由于 UDP 是无连接的,处理起来很快,攻击者可以轻易撑爆目标的带宽。
- ICMP Flood: 不断发送 Ping 包。
B. 消耗协议栈资源(连接型攻击)
- SYN Flood(最经典): 利用 TCP 三次握手的漏洞。
- 攻击者发送大量
SYN请求,但伪造源 IP。 - 服务器返回
SYN/ACK并进入等待状态(半连接状态)。 - 攻击者永远不回复第三次
ACK,导致服务器的“半连接队列”被占满,拒绝后续所有连接。
- 攻击者发送大量
- ACK Flood: 发送大量的
ACK包,强制服务器去查询连接表以判断该包是否合法,从而消耗 CPU。
C. 消耗应用资源(应用层攻击)
- HTTP Flood (CC 攻击): 模拟真实用户不断刷新需要大量运算的页面(如搜索页面、数据库查询页面)。这种攻击流量看起来很正常,防火墙很难识别。
- Slowloris (慢速连接): 以极慢的速度发送 HTTP 请求头,长时间占用服务器的线程不释放。
D. 利用协议漏洞(畸形报文攻击)
- Teardrop(泪滴攻击): 利用 IP 分片重组的漏洞。攻击者发送偏移量重叠的分片,导致目标系统在重组时崩溃(现代系统已基本免疫)。
- Smurf 攻击: 一种放大型攻击,伪造受害者 IP 向广播地址发 Ping 包,导致全网机器都回包给受害者。
4. 放大攻击 (Amplification Attack)
这是目前 DDoS 最恐怖的形式,通常利用 UDP 协议的请求短、响应长的特性:
- DNS 放大攻击: 攻击者发送一个几十字节的查询请求,伪造受害者 IP。DNS 服务器会回传一个几千字节的解析结果。
- 放大倍数: 某些协议(如 NTP, Memcached)可以将流量放大 数万倍。
5. 防御方案 (How to Defend)
| 防御层级 | 具体技术 |
|---|---|
| 网络边界 | SYN Cookie: 服务器在收到 SYN 时不分配资源,而是计算一个加密的 Cookie 回传,只有收到正确的 ACK 才分配资源。 |
| 流量清洗 | 云清洗服务: 将所有流量先引流到专业的 DDoS 防护中心(如 Cloudflare),剔除垃圾包,只把正常流量传回服务器。 |
| 策略限制 | 限速 (Rate Limiting): 限制单个 IP 在单位时间内的请求频率。 |
| 基础建设 | Anycast 负载均衡: 将流量分散到全球各地的服务器节点,分而治之。 |
6. 总结:DoS 的演进趋势
- 从单一到分布式: DoS 已进化为 DDoS。
- 从协议层到应用层: 攻击手段越来越隐蔽,模仿真实业务流量。
- 从手工到自动化: 攻击者使用成熟的“压力测试工具”或购买现成的“DDoS 租用服务”。
端口扫描
端口扫描(Port Scanning) 是网络渗透测试与黑客攻击中的“踩点”阶段。它的目的是通过向目标主机的 TCP/IP 端口发送探测包,根据返回的响应判断哪些服务正在运行(开放),从而寻找可能的漏洞入口。
以下是关于端口扫描的深度知识体系:
1. 核心目标:信息搜集
通过扫描,攻击者希望获取以下三类关键信息:
- 开放的端口: 确认哪些服务(如 80 Web, 22 SSH, 3389 RDP)在线。
- 服务版本: 识别具体软件及其版本(如 Apache 2.4.41),以便匹配已知漏洞。
- 操作系统指纹: 推测目标是 Windows、Linux 还是嵌入式设备。
2. 扫描技术分类(按原理划分)
端口扫描主要针对 TCP 和 UDP 两大协议。
A. TCP 扫描技术
TCP 扫描最为常见,利用了三次握手的不同阶段:
- 全连接扫描 (TCP Connect Scan):
- 原理: 调用操作系统的
connect()函数,完成完整的三次握手。 - 特点: 最准确,但隐蔽性最差。因为建立了完整连接,目标服务器的日志会记录下攻击者的 IP。
- 原理: 调用操作系统的
- 半开放扫描 (SYN Stealth Scan):
- 原理: 只发送
SYN包。如果收到SYN/ACK,表示端口开放;此时攻击者立即发送RST断开,而不发送最后的ACK。 - 特点: 隐蔽性高。由于握手未完成,很多旧式日志系统不会记录该行为。这是
nmap的默认模式。
- 原理: 只发送
- 秘密扫描 (FIN, NULL, Xmas Scan):
- 原理: 发送违反 TCP 协议标准的数据包(如 Xmas 扫描会同时置位 FIN, URG, PUSH 标志位)。
- 结果: 根据 RFC 793,如果端口关闭,目标应返回
RST;如果端口开放,目标通常丢弃包(不响应)。 - 局限: 对 Windows 系统无效(Windows 不管开关都回 RST),主要用于探测类 Unix 系统。
B. UDP 扫描
- 原理: 发送 UDP 包到目标端口。
- 结果: 如果收到“ICMP 端口不可达”消息,说明端口关闭;如果没有响应,说明端口可能开放或被防火墙拦截。
- 难点: 不可靠且速度极慢,因为 UDP 是无连接的。
3. 常见的端口及其风险
| 端口号 | 常见服务 | 潜在攻击风险 |
|---|---|---|
| 21 | FTP | 弱口令爆破、匿名访问 |
| 22 | SSH | 暴力破解、私钥泄露 |
| 80/443 | HTTP/HTTPS | SQL 注入、XSS、Web 漏洞 |
| 445 | SMB | 永恒之蓝 (EternalBlue) 勒索病毒 |
| 3306 | MySQL | 远程授权绕过、数据库脱库 |
| 3389 | RDP (远程桌面) | 蓝屏漏洞、暴力破解 |
4. 扫描工具:Nmap
Nmap (Network Mapper) 是该领域的行业标准。常用命令示例:
nmap -sS [Target]:执行 SYN 半开放扫描。nmap -sV [Target]:探测开放端口的服务版本。nmap -O [Target]:探测操作系统指纹。nmap -p 1-65535 [Target]:扫描全量 65535 个端口。
5. 防御与检测 (Countermeasures)
- 防火墙策略: 遵循“最小权限原则”,关闭所有不必要的端口。
- 入侵检测系统 (IDS/IPS): 现代 IDS(如 Snort、Suricata)可以轻易识别出短时间内大量发送探测包的行为,并自动拉黑攻击者 IP。
- 端口敲门技术 (Port Knocking): 所有端口默认关闭,只有通过特定序列的“敲击”(访问特定端口组合)后,防火墙才临时为该 IP 开启目标端口。
- 诱饵 (Honeypot): 故意开放一些虚假端口,吸引攻击者扫描,从而捕获其攻击特征。
蜜罐
在网络安全防御体系中,蜜罐(Honeypot) 是一种“诱饵”技术。它不提供任何真实的业务服务,其存在的唯一价值就是被攻击、被探测、被入侵。
如果说防火墙是“盾”,那么蜜罐就是“陷阱”。以下是关于蜜罐的深度知识点梳理:
1. 核心定义与价值
蜜罐是一个特意设置的、存在安全漏洞的虚假系统。
- 检测: 任何对蜜罐的访问都被视为可疑行为(因为正常用户不会访问它)。
- 诱骗: 吸引攻击者的注意力,消耗其精力和时间,从而保护真实资产。
- 溯源: 记录攻击者的 IP、手法、使用的工具和攻击路径,用于复盘和取证。
2. 蜜罐的分类(按交互程度)
| 分类 | 交互程度 | 描述 | 优缺点 |
|---|---|---|---|
| 低交互蜜罐 | 低 | 仅模拟某些服务(如模拟一个 SSH 登录框)。 | 优: 安全、资源占用少、易部署;缺: 容易被老练黑客识破。 |
| 中交互蜜罐 | 中 | 模拟复杂的逻辑,允许攻击者进行简单的命令操作。 | 能够捕获更多攻击载荷(Payload)。 |
| 高交互蜜罐 | 高 | 部署真实的操作系统(如真实的 Windows/Linux)。 | 优: 信息获取极丰富,最难识别;缺: 风险大,如果被黑客当作跳板会威胁内网。 |
3. 蜜罐的部署形式
- 物理蜜罐: 运行在独立实体机上的系统。
- 虚拟蜜罐: 运行在虚拟机(VM)上,目前最主流,易于备份和回滚。
- 蜜网 (Honeynet): 由多个蜜罐组成的网络,模拟真实的企业内网环境。
- 蜜标/蜜币 (Honeytoken): 不是系统,而是一个虚假的文件、数据库记录或账号密码。一旦该文件被打开或账号被登录,后台立即报警。
4. 蜜罐的关键技术
- 重定向(Redirecting): 将攻击者的流量偷偷引向蜜罐。
- 数据捕获(Data Capture): 记录所有的按键输入、下载的文件、执行的恶意代码。
- 数据隔离: 严格限制蜜罐的出站流量,防止蜜罐被黑客用来攻击互联网或其他内网设备。
- 伪装技术: 模拟真实服务的 Banner 信息、响应延迟等,让蜜罐看起来像个“旧且疏于维护”的真系统。
5. 常见的蜜罐工具
- Cowrie: 经典的 SSH/Telnet 蜜罐,能记录攻击者输入的指令和上传的文件。
- Honeyd: 可以在单台机器上虚拟出成千上万个不同操作系统的轻量级蜜罐。
- T-Pot: 一个集成了多种蜜罐(如 Web, Database, Mail)的开源多功能蜜罐平台。
- HFish: 国内非常流行的企业级联动蜜罐,界面友好,支持溯源。
6. 蜜罐面临的挑战
- 被识别(Fingerprinting): 聪明的黑客会通过特定的响应特征判断这是否是陷阱。一旦被识别,蜜罐就失效了。
- 跳板风险: 如果高交互蜜罐配置不当,黑客可能以其为跳板,攻击公司内部的其他真实设备。
- 法律与伦理: 记录他人信息可能涉及隐私法律(虽然是针对攻击者)。
7. 蜜罐 vs 蜜信 vs 蜜阵
- 蜜罐 (Honeypot): 单个诱饵点。
- 蜜网 (Honeynet): 诱饵网络。
- 欺骗防御 (Deception Defense): 现代安全理念,将蜜罐技术与真实网络混合,让黑客在内网中“寸步难行,虚实难辨”。
嗅探
网络嗅探(Network Sniffing) 是一种监听并捕获网络数据包的技术。在网络管理中,它是排查故障的利器;但在攻击者手中,它是获取敏感信息(如明文密码、会话 Cookie)的隐蔽手段。
以下是关于网络嗅探的完整知识体系:
1. 嗅探的核心原理
网络嗅探的本质是利用网络接口的特殊模式,捕获经过网卡的所有数据,而不仅仅是发给自己的数据。
- 混杂模式(Promiscuous Mode): 正常网卡只接收目的 MAC 地址是自己的数据包。在开启“混杂模式”后,网卡会接收链路层上物理传输的所有数据包,无论其目标是谁。
- 广播特性: 在早期的集线器(Hub)网络中,数据是以广播形式发送的,嗅探极其简单。现代交换机环境则需要结合其他手段。
2. 嗅探的环境分类
A. 共享式网络(集线器环境)
- 原理: 集线器工作在物理层,将接收到的信号转发到所有端口。
- 嗅探难度: 极低。只要接入网络并开启混杂模式,即可看到所有人的流量。
B. 交换式网络(交换机环境)
- 原理: 交换机根据 MAC 地址表 定向转发数据。
- 嗅探手段: 由于流量不再广播,攻击者必须通过以下手段将流量“引流”到自己这里:
- ARP 欺骗(ARP Spoofing): 告诉目标我是网关,告诉网关我是目标,使流量经过攻击者。
- MAC 泛洪(MAC Flooding): 发送大量伪造 MAC 地址填满交换机缓存,迫使交换机退化为“集线器”模式进行广播。
- 端口镜像(Port Mirroring): 这是合法的管理手段,将特定端口的流量复制到监控端口。
3. 网络嗅探的层次
| 层次 | 捕获内容 | 应用场景 |
|---|---|---|
| 链路层 | 帧头、MAC 地址 | 物理层接入分析。 |
| 网络层/传输层 | IP 地址、端口、TCP 状态 | 流量监控、异常连接分析。 |
| 应用层 | HTTP 内容、FTP 账号、邮件文本 | 内容审计,获取实际业务数据。 |
4. 常见的嗅探工具
- Wireshark: 全球最流行的图形化协议分析仪,支持数百种协议解析。
- Tcpdump: Linux/Unix 下强大的命令行嗅探工具,适合在服务器端通过表达式过滤流量。
- Ettercap / Bettercap: 专门用于中间人攻击(MITM)和交换环境嗅探的工具。
- Fiddler / Charles: 专注于 HTTP/HTTPS 应用层协议的嗅探与改包(通常通过代理实现)。
5. 针对加密流量的嗅探(HTTPS)
随着加密协议的普及,单纯的嗅探只能看到乱码。攻击者通常采用以下手段破解:
- SSL 卸载/剥离(SSL Stripping): 强制受害者使用不加密的 HTTP 访问网站。
- 中间人证书攻击: 诱导受害者安装伪造的根证书,从而在本地解密流量。
6. 如何检测与防御
如何检测嗅探?
- 反向 DNS 查询检测: 嗅探器有时会自动尝试解析捕获到的 IP 的主机名。
- 响应时间测试: 给一个不存在的 MAC 地址发包,开启混杂模式的机器由于需要处理该包,响应速度可能发生微小偏移。
- 检查网卡状态: 在 Linux 下使用
ifconfig或ip link查看是否有PROMISC标志。
防御手段
- 全站加密(Encryption): 使用 SSH、HTTPS、VPN 等,让嗅探者只能抓到加密后的“噪声”。
- 静态 ARP 绑定: 在关键服务器上绑定网关 MAC 地址,防止 ARP 欺骗。
- 划分 VLAN: 减少广播域,将敏感业务流量与普通流量隔离。
- 入侵检测系统(IDS): 监控网络中异常的 ARP 报文或 MAC 泛洪行为。
APT 攻击
APT(Advanced Persistent Threat,高级持续性威胁) 攻击是网络空间中最复杂、最高级别的攻击形式。它不再是单纯的技术炫耀或随机破坏,而是一种有组织、有目的、长时间潜伏的“网络间谍”行动。
以下是关于 APT 攻击的深度知识点梳理:
1. 核心特征(三个关键词)
- Advanced(高级): 攻击者通常拥有雄厚的财力和技术背景(如国家级背景),能开发或购买 0-day 漏洞,并使用定制化的恶意软件。
- Persistent(持续): 攻击不是“打一枪换一个地方”,而是像影子一样长期潜伏。为了窃取特定数据,攻击者可能在目标网络中潜伏数月甚至数年。
- Threat(威胁): 具有极强的目标导向性,通常针对政府、国防、关键基础设施、高科技企业或特定政治人物。
2. APT 攻击的典型生命周期(七阶段)
APT 攻击通常遵循一个严密的流程,被称为“网络攻击生命周期”:
- 侦察(Reconnaissance): 搜集目标信息,包括组织架构、员工邮箱、社交媒体信息、使用的软件版本等。
- 武器化(Weaponization): 将恶意代码嵌入看似无害的文件(如 PDF 报告、Excel 报表)中。
- 投送(Delivery): 通过鱼叉式钓鱼邮件(Spear Phishing)、水坑攻击(Watering Hole)或物理 USB 丢弃等方式将武器送达目标。
- 突破/漏洞利用(Exploitation): 利用 0-day 漏洞或未修复的漏洞在目标机器上执行代码。
- 安装控制(Installation): 在受害者电脑上安装后门(Backdoor)或远程访问木马(RAT),确保即使电脑重启也能保持控制。
- 命令与控制(C2 - Command & Control): 恶意程序回连攻击者的 C2 服务器,接收后续指令。
- 后续行动(Actions on Objectives): 在内网横向移动(Lateral Movement),寻找核心数据库,最后缓慢、加密地外传敏感数据。
3. 核心攻击手法
| 手法 | 描述 |
|---|---|
| 鱼叉式钓鱼 | 针对特定员工定制的欺诈邮件,内容极具诱惑力或欺骗性,诱导点击。 |
| 水坑攻击 | 攻击者在目标员工经常访问的特定网站(如行业论坛)植入木马,等鱼上钩。 |
| 0-day 漏洞利用 | 使用软件厂商尚未发现且没有补丁的漏洞,防火墙几乎无法防御。 |
| 横向移动 | 攻破一台普通办公机后,利用该机权限在内网探测并控制域控(AD)或核心服务器。 |
| 供应链攻击 | 攻击目标的供应商软件(如去年的 SolarWinds 事件),通过正版更新下发病毒。 |
4. 著名的 APT 组织与案例
APT 组织通常由安全实验室通过编号(如 APT1, APT28, APT41)或代号(如蓝莲花、方程式组织、 Lazarus)来命名。
- 震网病毒(Stuxnet): 历史上最著名的 APT 攻击,通过物理 U 盘侵入伊朗核设施,成功破坏了离心机,展示了网络武器打击实体设施的能力。
- SolarWinds 事件: 通过篡改监控软件的安装包,潜入了包括美国财政部在内的多个高级机构。
5. APT 的防御难点与策略
由于 APT 攻击往往能绕过传统的杀毒软件(基于签名检测),现代防御更强调“纵深防御”:
核心防御策略:
- 威胁情报(Threat Intelligence): 提前搜集全球已知的 APT 攻击特征和 IP 黑名单。
- 沙箱技术(Sandboxing): 在隔离的虚拟环境中运行可疑附件,观察其是否有恶意行为。
- 端点检测与响应(EDR): 在员工电脑上安装高级监控,记录所有进程行为,一旦发现“横向移动”的迹象立即告警。
- 全流量分析(NTA): 监控内网所有流量,利用 AI 识别异常的加密外传行为。
- 零信任架构(Zero Trust): 默认不信任内网任何节点,每次访问核心资源都要进行严格的身份验证。
6. 总结
APT 攻击是一场人与人的对抗,而非单纯的软件对抗。防御 APT 不仅需要昂贵的设备,更需要具备高度警惕性的安全运维团队。
ARP 攻击
ARP 攻击(Address Resolution Protocol Attack) 是一种专门针对局域网(LAN)链路层的攻击技术。它利用了 ARP 协议在设计之初缺乏验证机制的漏洞,是内网渗透中最常用的“入场券”。
以下是关于 ARP 攻击的深度知识点梳理:
1. 协议背景:ARP 是干什么的?
在以太网中,数据包的最终传输依赖于 MAC 地址而非 IP 地址。
- ARP 协议作用: 根据目标的 IP 地址,查询其对应的硬件 MAC 地址。
- 设计缺陷: ARP 是无状态的。即使你没有发送请求,只要有人发给你一个 ARP 响应包(ARP Reply),你的设备也会无条件接受并更新本地的 ARP 缓存表。
2. ARP 攻击的核心类型
A. ARP 欺骗 (ARP Spoofing / Poisoning)
这是最主流的形式,攻击者向局域网内发送伪造的 ARP 响应包。
- 对主机欺骗: 告诉受害者:“我是网关,请把流量发给我。”
- 对网关欺骗: 告诉路由器:“我是受害者,请把发给他的数据传给我。”
- 结果: 受害者和网关之间的所有流量都会流经攻击者的电脑,形成中间人攻击(MITM)。
B. ARP 泛洪 (ARP Flooding)
- 原理: 攻击者短时间内发送海量的伪造 ARP 报文。
- 结果: 填满交换机的 MAC 地址表。某些低端交换机在表满后会退化为集线器(Hub)模式进行广播,从而让攻击者能嗅探到全网流量。
C. ARP 拒绝服务 (ARP DoS)
- 原理: 攻击者发送错误的 MAC 地址(如指向一个不存在的地址或攻击者自己的地址但不转发)。
- 结果: 受害者虽然能上网,但数据包发到了错误的地方,导致其彻底断网。
3. ARP 攻击能实现的目的
- 嗅探与监听: 窃取明文传输的密码(HTTP、FTP、Telnet)。
- 数据篡改: 拦截流量后,实时修改网页内容(如插入广告或恶意脚本)。
- 会话劫持: 窃取用户的 Session Cookie,直接登录其账号。
- 网络切断: 阻止目标上网。
4. 常见攻击工具
- Ettercap / Bettercap: 自动化程度极高的中间人攻击平台。
- Arpspoof (Dsniff 套件): 简单经典的命令行工具。
- Cain & Abel: Windows 平台上知名的老牌破解与嗅探工具。
5. 防御方案 (Countermeasures)
| 防御手段 | 描述 |
|---|---|
| 静态 ARP 绑定 | 在电脑和路由器上手动设置 IP-MAC 映射(命令:arp -s)。即便收到伪造包也不会更新。 |
| DAI (动态 ARP 检测) | 在企业级交换机上开启,它会检查 ARP 包的真实性,丢弃非法的欺骗包。 |
| 双向绑定 | 必须同时在主机和网关两端绑定才有效,单向绑定仍可能导致流量单向被拦截。 |
| ARP 防火墙 | 个人安全软件(如 360 或火绒)会监控 ARP 表的变化并拦截可疑的伪造包。 |
6. 如何排查 ARP 攻击?
如果你发现内网访问极慢或频繁掉线,可以执行以下操作:
- 打开终端输入
arp -a。 - 检查 网关的 MAC 地址 是否正常。
- 如果发现有两个不同的 IP 地址对应同一个 MAC 地址(通常其中一个是网关),或者网关的 MAC 变成了你同事电脑的地址,那么你肯定遭遇了 ARP 欺骗。
独家贴士: 在现代公共 WiFi(如机场、咖啡馆)中,ARP 欺骗非常猖獗。即使你无法控制网关,使用 VPN 也能有效防护,因为 VPN 会在网络层之上建立加密隧道,攻击者抓到的包全是无法解密的乱码。
溢出攻击
溢出攻击(Buffer Overflow Attack) 是计算机安全领域最经典、威力也最大的漏洞类型之一。其核心本质是:利用程序未对输入数据长度进行严格检查的缺陷,向缓冲区写入超过其承载能力的数据,从而覆盖内存中的其他关键数据。
以下是关于溢出攻击的完整知识深度梳理:
1. 核心原理
当程序向内存中的某个缓冲区(Buffer)写入数据时,如果数据长度超过了分配的空间,多出来的部分就会溢出到相邻的内存地址中。
- 缓冲区: 程序运行时开辟的临时存储空间(通常在栈或堆上)。
- 溢出后果:
- 破坏数据: 覆盖了相邻的变量,导致程序逻辑出错。
- 劫持控制流: 覆盖了函数的返回地址(Return Address)。当函数执行完毕准备跳转回原来的地方时,它会跳向攻击者指定的恶意地址。
2. 主要分类
A. 栈溢出 (Stack Overflow) —— 最常见
- 存储位置: 局部变量、函数参数、返回地址。
- 攻击方式: 通过溢出覆盖栈上的返回地址,使其指向攻击者植入的 Shellcode(恶意代码)。
B. 堆溢出 (Heap Overflow)
- 存储位置: 程序动态分配的内存(如 C 语言中的
malloc)。 - 攻击方式: 堆的结构比栈复杂(涉及链表管理),通常通过破坏堆块的元数据,实现对任意内存地址的读写。
C. 整数溢出 (Integer Overflow)
- 原理: 当一个整数运算的结果超出了该类型所能表示的最大值(例如 8 位整数 255 + 1 变成了 0)。
- 后果: 整数溢出本身不直接破坏内存,但它常导致逻辑错误(如分配了极小的内存却写入大量数据),从而诱发缓冲区溢出。
3. 溢出攻击的经典步骤
- 寻找注入点: 寻找程序中接受用户输入且未限制长度的函数(如 C 语言中的
gets(),strcpy(),sprintf())。 - 构造 Payload: * 填充字符: 用于填满合法空间。
- 覆盖地址: 关键的 4 或 8 字节,用于修改跳转目标。
- Shellcode: 最终执行的恶意代码(如启动一个远程 Shell)。
- NOP Sled(空指令滑梯): 在恶意代码前放置大量
NOP指令,增加攻击的容错性,只要跳到滑梯任何位置都能滑向恶意代码。
4. 现代防御机制 (Mitigation)
由于溢出攻击历史悠久,现代操作系统和编译器已经开发了多重防护手段:
| 防御技术 | 简称 | 原理 |
|---|---|---|
| 栈金丝雀 | Canary | 在返回地址前放一个随机数。函数结束前检查这个数是否被改动,若改动则立即崩溃报错。 |
| 数据执行保护 | DEP / NX | 将数据段(如栈、堆)标记为“不可执行”。即使攻击者跳到了恶意代码,CPU 也会拒绝运行。 |
| 地址空间随机化 | ASLR | 每次程序启动时,栈、堆和库文件的内存地址都是随机的,让攻击者猜不到目标地址。 |
| 安全函数替换 | - | 使用 strncpy, fgets 等带长度限制的函数代替危险函数。 |
5. 著名的案例
- 莫里斯蠕虫 (Morris Worm, 1988): 利用
fingerd服务的缓冲区溢出,瘫痪了当时 10% 的互联网。 - 永恒之蓝 (EternalBlue, 2017): 利用 Windows SMB 协议的溢出漏洞(整数溢出导致缓冲区溢出),引发了全球性的 WannaCry 勒索病毒疫情。
有趣的比喻: 溢出攻击就像你去餐馆点餐,餐单上只有一页,但你通过某种魔术在餐单反面写上了“把店里的钱都给我”。当厨师翻看餐单执行到背面时,攻击就成功了。
邮件炸弹攻击
邮件炸弹(Email Bombing) 是一种经典的拒绝服务(DoS)攻击手段。它的原理非常简单暴力:通过向目标邮箱地址发送极其庞大数量的邮件,意图耗尽目标的存储空间、瘫痪邮件服务器或干扰用户的正常工作。
以下是关于邮件炸弹的深度知识梳理:
1. 攻击的核心目的
- 消耗存储: 填满受害者的邮箱配额(Quota),导致其无法接收重要邮件。
- 瘫痪服务器: 大规模的邮件涌入会占用邮件服务器的 CPU、内存和网络带宽,甚至导致整个企业邮件系统崩溃。
- 掩护攻击(掩护烟雾): 这是现代邮件炸弹最常见的用途。攻击者先盗取了受害者的银行账号或进行了非法交易,为了防止受害者看到银行发来的实时扣款通知或修改密码提醒,便发送数万封垃圾邮件将其淹没。
- 心理骚扰: 纯粹的恶意报复。
2. 邮件炸弹的主要类型
A. 简单群发型(Mass Mailing)
攻击者利用脚本或专门的工具,在短时间内直接向目标地址发送成千上万封内容随机的邮件。
B. 订阅型炸弹(List Linking / Subscription Bombing)
- 原理: 攻击者编写脚本,自动将受害者的邮箱地址填写在数千个合法网站(如新闻网站、论坛、电商平台)的“邮件订阅”框内。
- 特点: 极难防御。因为发件方都是正规、合法的服务器,且邮件内容各异,传统的反垃圾邮件系统很难将其全数拦截。
C. 附件/超大文件型
- 原理: 发送几封带有超大附件(如数 GB 的垃圾数据)的邮件。
- 后果: 即使邮件数量不多,也能迅速撑爆邮箱空间。
D. 压缩包炸弹(Zip Bomb)
- 原理: 发送一个看起来只有几 KB 的压缩包附件,但当邮件服务器的防病毒扫描程序尝试解压它时,它会解压成数 TB 的数据,导致服务器内存耗尽并崩溃。
3. 攻击技术演进
- 早期: 利用配置不当的邮件服务器(Open Relay)进行转发。
- 中期: 使用僵尸网络(Botnet)在全球范围内协同发送。
- 现状: 多利用合法网站的注册确认、密码重置、订阅验证等接口进行“反射式”攻击。
4. 防御与应对措施
| 防护层级 | 具体策略 |
|---|---|
| 服务器端 | 限速控制(Rate Limiting): 限制来自同一 IP 或发件人在单位时间内发送邮件的数量。 |
| 内容分析 | 启发式过滤: 识别短时间内出现的重复主题、高度相似的内容或异常的附件大小。 |
| 验证机制 | 双重选择(Double Opt-in): 网站应要求用户点击邮件中的确认链接才激活订阅,而不是填表即发送。 |
| 个人用户 | 设置规则: 暂时屏蔽所有不在联系人列表中的发件人;寻找邮件中的共同特征(如某个特定关键词)建立自动归档规则。 |
跨站脚本攻击
跨站脚本攻击(Cross-Site Scripting,简称 XSS) 是 Web 安全领域最常见的漏洞之一。它的核心本质是:由于 Web 应用未对用户提交的数据进行充分过滤或转义,导致恶意脚本(通常是 JavaScript)被注入到网页中,并在其他用户的浏览器上执行。
简单来说,XSS 是“代码注入”的一种,目标不是服务器,而是网站的用户。
1. XSS 的核心原理
Web 页面是由 HTML、CSS 和 JavaScript 组成的。如果攻击者能让你的浏览器认为某段恶意代码是服务器发来的合法指令,浏览器就会老老实实地执行它。
攻击公式:
用户输入的数据 + 缺乏过滤 = 恶意脚本执行
2. 三大主要类型
A. 反射型 XSS (Reflected XSS) —— 非持久化
- 原理: 恶意脚本通过 URL 参数直接传递,服务器接收后将其“反射”回页面。
- 场景: 攻击者发送一个带有恶意参数的链接(如:
http://site.com/search?q=<script>alert('XSS')</script>)。 - 特点: 必须诱导用户点击特定链接。
B. 存储型 XSS (Stored XSS) —— 持久化(最危险)
- 原理: 恶意脚本被保存到了服务器的数据库中。每当正常用户访问包含该数据的页面时,脚本都会自动执行。
- 场景: 留言板、个人资料修改、评论区。
- 特点: 传播范围广,只要看页面就会中招。
C. DOM 型 XSS (DOM-based XSS)
- 原理: 攻击完全在客户端(浏览器)发生,不经过服务器。它是通过修改页面的 DOM 结构来触发的。
- 场景: JavaScript 从 URL 锚点(#)读取数据并直接写回页面。
3. XSS 的危害:它能做什么?
XSS 绝不只是弹一个 alert 对话框那么简单,它可以:
- 窃取 Cookie: 通过
document.cookie获取用户的登录凭证,直接劫持账号。 - 钓鱼攻击: 在合法页面上弹出虚假的登录框,骗取用户名和密码。
- 流量劫持: 将用户强制跳转到恶意或广告网站。
- 键盘记录: 监听用户的按键操作。
- 配合其他攻击: 比如利用 XSS 发起 CSRF(跨站请求伪造)攻击。
4. XSS 的防御方案 (Countermeasures)
防御 XSS 的核心原则是:永远不要信任用户的输入。
A. 输入过滤与验证
- 对用户提交的数据进行长度限制、类型检查(如:年龄必须是数字)。
B. 输出转义(最关键)
在将数据渲染到 HTML 之前,将特殊字符转换为 HTML 实体:
<变为<>变为>&变为&"变为"
C. 使用内容安全策略 (CSP)
- CSP: 通过 HTTP 响应头告诉浏览器,只允许加载来自特定域的脚本,禁止执行内联脚本。
D. HttpOnly 属性
- 在服务器设置 Cookie 时加上
HttpOnly标志。这样 JavaScript 就无法通过document.cookie读取到它,从而防止最核心的凭证被窃取。
5. XSS vs CSRF (面试常考)
- XSS: 重点在于代码注入。攻击者让你的浏览器执行他的脚本,目标是获取你的数据。
- CSRF: 重点在于冒充请求。攻击者诱导你的浏览器向服务器发送一个你不知情的请求(如:转账),目标是利用你的身份操作。
6. 常用测试载荷 (Payloads)
用于检测漏洞的常见代码片段:
<script>alert(1)</script><img src=x onerror=alert(1)><svg onload=alert(1)><a href="javascript:alert(1)">Click Me</a>
有趣的比喻: XSS 就像是攻击者在餐厅的菜单上偷偷涂改,把“红烧鱼”改成了“红烧鱼 + 顺便把你的钱包给后厨”。当不明真相的顾客点这道菜时,由于服务员(浏览器)只管按菜单(代码)执行,你的钱包(数据)就丢了。
Comments NOTHING