简介:这份PPT系统梳理了最常见的网络攻击类型与应对思路,适合信息安全初学者、网络运维人员以及备考安全类认证的读者快速建立攻击与防范的整体框架。内容按“预攻击探测—漏洞扫描—木马攻击—拒绝服务攻击—欺骗攻击—蠕虫病毒攻击”等主线展开,详细讲解了网络攻击的典型步骤,如Ping扫描、端口扫描、操作系统识别等预攻击探测手段,并针对各类攻击给出防范要点。资源为1个PPT文件,整体大小仅2.28MB,内容精炼,便于按章学习。目前已有2665人学习浏览。通过学习这份资料,可以清晰理解攻击者从探测到渗透、驻留、传播直至瘫痪的完整路径,同时掌握防火墙、入侵检测、防病毒、漏洞扫描等基本防御思路,适合用作课堂讲解或自学入门材料。
1. 最常见网络攻击的完整拆解:先看懂攻击者怎么走位,再谈防御
我在一线做安全运维这几年,最常被问的一句话是“我们装了防火墙和杀毒软件,是不是就安全了”。答案是不一定。几乎每一次成功入侵背后都有一套固定流程——预攻击探测、漏洞扫描、木马植入、拒绝服务、欺骗攻击、蠕虫传播,攻击者像带作战手册一样逐格推进。最常见网络攻击的完整分析,其实就是把这条攻击链从头到尾拆开:攻击步骤的五个阶段怎么走,Ping 扫描和三类端口扫描的参数怎么设,漏洞扫描的综合流程怎么执行,木马、蠕虫、DoS 和 ARP 欺骗各自的特征和防范点在哪。这份资料我拿到手第一感觉是“终于有人把安全教材从理论翻译成作战路径了”。适合刚接手安全运维的工程师、要给项目做安全评审的开发,以及想系统补齐攻击面认知的甲方同学。
2. 攻击五个阶段:探测、渗透、驻留、传播、瘫痪怎么逐个设防
2.1 五阶段攻击链路的具体动作
典型的网络攻击不会直接开火,而是按五个阶段推进:探测(Probe)、渗透(Penetrate)、驻留(Persist)、传播(Propagate)、瘫痪(Paralyze)。这五个词值得贴在会议室白板上,因为每一阶段攻击者的动作和留下的痕迹完全不同。
探测阶段攻击者只收集信息,不动目标系统:Ping 地址确认主机存活,端口扫描找开放服务,口令猜测、Mail 用户猜测也属于这一层。可以把这一阶段理解为“踩点”,攻击者在这一步大量发送探测包,但业务功能基本不受影响。渗透阶段才真正发起攻击行为,常见手法包括利用 Buffer Overflow 缓冲区溢出、构造恶意 ActiveX 控件、在邮件附件里藏木马、借助网络安装渠道下发恶意程序。这一阶段的目标只有一个:拿到目标系统的控制权。
驻留阶段攻击者不会打一下就跑,而是安装后门(Backdoors)、创建新文件、修改现有文件、调整注册表设置、注册 Trap Doors、安装新服务。这些动作里,注册表修改和安装新服务是最容易留下痕迹的,Windows 环境里运维可以通过服务列表和自启动项发现异常。传播阶段的重点是横向移动——以当前主机为跳板,继续扫描内网其它主机,寻找新的漏洞,把攻击面从一台机器扩展到一个网段。瘫痪阶段则是最后一击:删除文件、修改关键配置、制造崩溃 Crash Computer、发起 DoS,或者窃取机密信息后抹掉日志。
2.2 攻击手法演进:从密码猜测到 DDoS 的二十年时间线
资料里那张攻击手法与入侵者技术水平对照表很有价值,我按自己的理解整理成了时间线。
| 时间段 | 代表性攻击手法 | 入侵者技术水平 |
|---|---|---|
| 1980–1985 | 密码猜测 | 低,基本靠人工逐一尝试 |
| 1990 前后 | 可自动复制的代码、破解密码、利用已知漏洞 | 中,开始出现脚本化工具,不再依赖手工 |
| 1995 前后 | 破坏审计系统、后门、会话劫持、消除痕迹、嗅探、IP 欺骗 | 高,攻击者会清理作案现场,反取证意识明显 |
| 2000 前后 | GUI 远程控制、自动探测扫描、半开隐蔽扫描、拒绝服务、Web 攻击 | 很高,工具化、自动化程度大幅提升 |
| 2000 之后 | 分布式拒绝服务 DDoS、网络管理类攻击、控制台入侵 | 极高,攻击可以来自全球僵尸网络 |
这张表的启发在于:攻击者技术水平的上限决定了攻击方式的下限。早期只有密码猜测这类“笨办法”,后来有了可自动复制的攻击代码,再往后出现了半开隐蔽扫描这类专门规避审计的技术。到了 2000 年以后,GUI 远程控制和自动探测扫描已经把攻击门槛压得很低,一个没什么编程基础的人也能借助现成工具完成整个攻击流程。这也是为什么现在安全运维的压力比过去大得多——攻击工具在普及,而防御侧往往还在手动看日志。
2.3 五阶段与防御设备的对位关系
把攻击步骤映射到防御设备,是这份资料给我最大的实用价值。每一阶段都有对应的防守主力:防火墙负责拦截异常流量,并在边界上限制允许进出的 ICMP 分组类型;入侵检测系统负责识别 Ping Sweep 和端口扫描这类预攻击行为,一旦出现连续异常连接就告警;防病毒体系针对木马、蠕虫做文件特征查杀;漏洞扫描平台用于定期梳理自身弱点,赶在攻击者之前把补丁打上。最后是安全意识,这一层最容易被忽视,但口令猜测、邮件附件点不点、社交工程这些环节,技术设备基本替代不了人。
防御的难点在于攻击链是连续的,而防御设备往往是割裂的。防火墙不知道 IDS 报了端口扫描,漏洞扫描平台不会自动联动补丁系统,这是很多团队内网被横向渗透的主要原因。我一般建议至少把 IDS 和防火墙的日志汇聚到一个平台,用“同一源 IP 短时间内在多个目标上触发同一告警”这类关联规则做聚合分析。不用上太高端的工具,ELK 就能实现,关键是先有“跨设备看攻击链”的意识。
3. 预攻击探测实操:Ping 扫描、端口扫描三类手法的原理与参数
3.1 Ping 扫描:ICMP Echo 的工作原理与命令行参数
Ping 全称 Packet InterNet Groper,是攻击者开局第一手。原理很简单:向目标发送 ICMP Echo 消息,等待 Echo Reply 回包。能 ping 通说明目标主机处于 Active 状态,ping 不通则说明主机存活状态需要进一步确认。这里最容易犯的错是把“ping 不通”直接等同于“主机不存在”,实际上没有路由、网关设置错误、网卡配置不正确、防火墙拦截 ICMP、超时时间设置过短都会导致 ping 失败。
我常用的几个基础参数,Windows 和 Linux 语法略有差异:
# Windows 平台 ping -n 10 -l 512 192.168.1.1 # -n 指定发送10个包;-l 指定包大小为512字节,默认32字节 # Linux 平台 ping -c 5 -s 512 192.168.1.1 # -c 发送5个包后停止;-s 指定发送包大小参数说明:-n 和 -c 控制发包数量,不是越多越好——发包数量越多,越容易被目标侧的安全设备识别为 Ping Sweep;-l 和 -s 控制包体大小,这是构造 Ping of Death 的基础。Ping of Death 的原理是发送超过 65535 字节的特大 ICMP 数据包,导致目标系统在 IP 分片重组时发生缓冲区溢出而崩溃,老一代操作系统几乎全军覆没,现在主流系统已修复,但理解这个原理对排查“无故断网”仍有帮助。
3.2 端口扫描分类:开放、半开放与秘密扫描的选型
端口扫描是预攻击探测的核心动作。资料把扫描方式分成三大类,选型逻辑各不相同:
| 扫描类型 | 典型手法 | 三次握手 | 隐蔽性 | 权限要求 |
|---|---|---|---|---|
| 开放扫描 | TCP connect() | 完整建立 | 低,审计日志完整记录 | 无需特殊权限 |
| 半开放扫描 | TCP SYN | 不完整,SYN 后收到 SYN/ACK 再发 RST 掐断 | 中,很少被记录 | UNIX 平台需 root |
| 秘密扫描 | TCP FIN、XMAS、NULL | 不涉及握手 | 高,但中间设备可能丢包 | 视平台而定 |
开放扫描的代表是 TCP connect() 扫描。扫描器调用 socket 的 connect() 函数发起一个正常连接,端口开放则连接成功,否则连接失败。优点是简单、不需要特殊权限,缺点是服务器能完整记录连接行为——同一个客户端轮流对每个端口发起连接,基本就是在脸上写着“我在扫描”。实际用它的人不太多,除非是刚上手或者目标系统完全不做审计的测试环境。
半开放扫描的代表是 TCP SYN 扫描。原理是向目标端口发送一个 SYN 包,如果返回 SYN|ACK 则端口开放,随后扫描方发送 RST 切断连接,不完成整个三次握手;如果直接返回 RST 包则说明端口关闭。由于连接没有完全建立,所以称为半开放扫描(Half-Open Scanning)。优点是很少有系统会记录这种未完成的连接,隐蔽性比 connect() 好;缺点是在 UNIX 平台上需要 root 权限才能手工构造 SYN 包。我在内网做资产梳理时优先用 SYN 扫描,速度快且对目标系统影响小。
3.3 秘密扫描变种与实战判断逻辑
秘密扫描是一组不包含标准 TCP 三次握手任何部分的扫描手法,资料里列了 TCP FIN、XMAS、NULL、ACK 和 IP 分片等变种。
TCP FIN 扫描向目标端口发送 FIN 包,根据 RFC 标准,关闭的端口应回应 RST 包,而开放的端口则直接丢弃,据此判断端口状态。XMAS 扫描是把 FIN、URG、PUSH 三个标志位全部置 1,像圣诞树上的彩灯所以叫 XMAS 扫描。NULL 扫描则是把所有标志位置 0。这几种手法隐蔽性很好,但有个致命短板:数据包经过中间路由器、防火墙时可能被丢弃,导致返回错误的探测结果。
实战中我总结的判断逻辑是:先用 SYN 扫描快速摸清开放端口,再用 FIN 或 XMAS 做二次验证,避免误判。还有两个值得一提的变种:
- Reverse-ident 扫描:先与目标端口建立完整连接,再连接 113 端口(Ident 协议,RFC1413),通过 identd 服务获取运行该进程的用户名。比如先连接 80 端口,再通过 identd 确认服务器进程是否以 root 权限运行。这个手法依赖目标开启 ident 服务,现在绝大多数系统默认关闭,攻击面已经很小。我一般建议运维把 ident 服务直接禁掉,除非有明确的审计需求。
- IP ID header 扫描(又称 dumb 扫描):攻击者伪造第三方主机 IP 向目标发起 SYN 扫描,通过观察第三方主机 IP 序列号的变化推断端口状态。这个手法不直接接触目标也不直接连接目标,隐蔽性很强,但对第三方主机的要求高,现在已经用得很少。
3.4 针对预攻击探测的四个防御设置
对预攻击探测的防御,资料给的方向非常明确:能检测、能记录、能限流。我按优先级排序后整理成四条,可以直接抄进防火墙策略:
- 在防火墙或路由器上设置允许进出本网络的 ICMP 分组类型白名单,禁止非必要的 ICMP Echo、Timestamp、Address Mask 请求。Ping Sweep 靠的就是 ICMP,把这项掐住能砍掉一大半存活探测。
- 在边界防火墙上对入站连接请求做速率限制,比如单源 IP 每分钟新建连接数超过阈值就丢包。SYN 扫描的关键特性是高频发起连接请求,速率限制对这种行为有直接压制效果。
- 部署轻量级入侵检测系统,配置端口扫描检测规则。Suricata 或 Snort 都有现成的规则集,对“同一源 IP 在短时间内扫描多个端口”的行为直接触发告警,不需要额外开发。
- 限制服务暴露面。端口扫描只有在目标开放服务时才有价值,如果一个端口根本没人听,扫描器扫了半天也是白费。内部主机我只开放必要端口,数据库、Redis、消息队列一律不挂公网。
这批配置下去之后,最直观的变化是 Nmap 扫描结果里大量端口变成 filtered 状态,攻击者的预攻击探测时间被拉长。而预攻击探测一旦被拖慢,攻击者的耐心和隐蔽性都会出问题,很多攻击链条会断在第一步。
4. 漏洞扫描、木马与蠕虫:攻击链后半程的排查重点
4.1 综合漏洞扫描:流程、频率与降噪方法
预攻击探测做完,攻击者手里已经有一张目标端口和服务的清单,下一步就是按清单找漏洞。综合漏洞扫描做的就是这件事的黑匣子版:扫描器对目标主机发送精心构造的探测请求,比对已知漏洞特征库,输出一份主机弱点清单。资料里把它定义为“漏洞扫描(综合扫描)”,目的是同时覆盖主机、端口、服务、配置弱点和口令强度。
常规流程是四步:信息收集、服务识别、漏洞比对、生成报告。实际操作中很多人忽略信息收集这一步,直接上扫描器开扫,结果扫到一半发现目标根本不是预期操作系统,报告大量误报。我一般会先手动确认操作系统类型和开放端口,再选择对应的扫描策略,这一步能砍掉至少三成误报。
扫描频率是另一个值得量化的问题。对互联网暴露面,我建议每周做一次全量漏洞扫描,每次代码上线后追加一次增量扫描;内网核心资产每两周一次。补丁落地往往比扫描慢,扫描结果要跟资产管理联动,否则就是“报告出了、漏洞还在”。降噪方面,我的血泪经验是:关闭扫描器默认的弱口令检测,除非你有授权且确认目标系统可以承受账号锁定的风险。弱口令检测经常把生产系统的账号直接锁死,这是比漏洞本身更严重的生产事故。
4.2 木马攻击:植入方式、驻留机制与排查点
木马攻击最核心的特征是“看起来无害,跑起来有事”。资料里列的植入方式非常典型:邮件附件、ActiveX 控件、网络安装、压缩文件、即时通讯传文件、Web 连接、IRC 会话、FTP 下载,几乎覆盖了日常办公环境中所有文件传输通道。渗透阶段植入木马后,攻击者要做的下一步是驻留,驻留机制才是排查的关键。
常见的驻留动作有六种:创建新文件、修改现有文件、注册表设置、安装新服务、注册 Trap Doors、产生安全后门。Windows 平台下,注册表自启动项和计划任务是木马最常用的驻留点。我排查时有一个固定顺序:
| 排查点 | 检查内容 | 常用命令 |
|---|---|---|
| 自启动项 | 注册表 Run 键、RunOnce 键 | reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Run |
| 服务列表 | 新增的、描述可疑的系统服务 | services.msc 或 sc query |
| 网络连接 | 可疑的外联地址,尤其是非标准端口 | netstat -ano |
| 文件变更 | 最近修改的系统目录文件和新增 exe/dll | PowerShell Get-ChildItem 按时间排序 |
| 计划任务 | 非管理员创建的定时任务 | schtasks /query /fo LIST /v |
排查的一个关键点:木马驻留后一定会存在至少一个外联方向,要么是攻击者的 C2 服务器,要么是内网里的其它台主机。netstat -ano 看到大量长连接指向同一个外部 IP,且这个 IP 不在业务白名单里,优先级就要提到最高。不要急着 kill 进程,先抓包,再看进程路径和签名,最后再断网隔离。我见过太多人一上来就 kill 进程,结果木马的守护进程自动拉起,还暴露了行踪。
4.3 蠕虫病毒攻击:传播机制与防治要点
蠕虫病毒攻击与普通木马最大的区别在于传播能力。木马靠人工植入,蠕虫靠自我复制。资料里给出的传播路径覆盖了邮件附件、文件共享、压缩文件、FTP、IRC、Web 连接——蠕虫会扫描网络上存在同一漏洞的主机,然后自动复制自身到新机器,继续扫描下一批目标。整个过程不需要人工干预,传播速度按指数级别增长。
防治方面,我的经验是三点:第一,及时打补丁是所有蠕虫防治的前提,大部分蠕虫利用的系统漏洞都有对应的安全补丁,没打补丁等于把门拆了;第二,关闭不必要的文件共享端口,蠕虫在内网横向移动主要依赖的就是文件共享服务;第三,邮件网关要过滤带宏的 Office 文档和可执行附件,文件共享服务器上要做文件类型的白名单控制。
蠕虫攻击中最难处理的是“已感染但没发作”的潜伏期。这类主机不产生明显的网络异常,但会持续扫描内网其它主机的端口。如果运维在交换机上看到大量来自同一台主机的指向不同 IP 的相同端口连接,就要高度怀疑蠕虫感染。处理流程我建议是:先拔掉疑似主机的网线,再在隔离网段做全盘扫描和样本提取,最后对全网同网段主机做一次针对该漏洞的专项扫描。
5. 拒绝服务与欺骗攻击:原理边界与四个高频避坑记录
5.1 DoS 攻击的三个层次:带宽耗尽、连接耗尽与应用耗尽
拒绝服务攻击的目标不是窃取数据,而是让服务不可用。资料里把 DoS 列为独立攻击类别,DDoS 是它的分布式版本。我按攻击目标把 DoS 分成三个层次,便于对症下药:
- 带宽耗尽型:攻击者向目标发送大量数据包,把出口带宽占满,合法用户的请求进不来。常见手段是 ICMP Flood、UDP Flood。判断依据是流量监控图上带宽曲线突然打满,且源 IP 分布散乱。
- 连接耗尽型:SYN Flood 是典型代表。攻击者发送大量 SYN 包,让目标主机的半连接队列被占满,合法的 TCP 连接请求无法被响应。这类攻击不需要很大的带宽,几万包每秒就能把一台配置普通的服务器打到无法访问。
- 应用耗尽型:针对 Web 应用层发起的 HTTP Flood,也叫 CC 攻击。攻击者模拟真实用户请求反复访问动态页面或接口,Web 容器和数据库连接数被打满,流量层面看起来可能完全正常。
DNS 放大和 NTP 放大这类反射攻击也归在带宽耗尽型里,攻击者伪造受害者 IP 向公共 DNS 服务器发送小查询,服务器把大响应发到受害者方向,放大倍数可以达到几十倍甚至上百倍。对付这种攻击,单靠目标主机自身防护是扛不住的,必须在运营商或云平台侧做流量清洗。
5.2 欺骗攻击:ARP 欺骗与 IP 欺骗的典型路径
欺骗攻击的核心是“让目标相信我是你信任的对象”。ARP 欺骗是内网最常见的手法,原理是攻击者发送伪造的 ARP 应答报文,把网关 IP 映射成攻击者主机的 MAC 地址。目标主机的 ARP 缓存被刷新后,发往网关的流量全部经过攻击者主机,攻击者可以监听、篡改、阻断通信。这就是典型的中间人场景。
IP 欺骗则是更早出现的欺骗手法,伪造源 IP 地址让目标主机误以为是信任主机发来的请求。早期 Unix 系统之间的信任关系建立在 IP 地址基础上的场景比较多,这类攻击有一定土壤。现在的网络环境里,IP 欺骗更多被用于隐藏真实攻击源和绕过简单的源地址过滤。
对内网防护,我建议做三级动作:交换机上启用动态 ARP 检测(DAI),核心交换机上做 IP-MAC 绑定,终端侧开启 ARP 防火墙。这三层同时做的场景下,ARP 欺骗的成功概率会大幅下降。另外要养成一个习惯:内网出现“IP 地址冲突”告警时别只当作配置事故处理,先抓包确认是不是有人在对网关做 ARP 欺骗。
5.3 避坑清单:四个高频翻车记录与排查方法
翻车现场一:内网突然大量“IP 地址冲突”现象:多个终端间歇性提示 IP 冲突,业务系统开始丢包,视频会议频繁断开。 原因:局域网内出现 ARP 欺骗工具,攻击者伪造网关 MAC 后做中间人监听,冲突提示是 ARP 缓存混乱的表现。 解决:在交换机上启用 DAI 或配置静态 ARP 绑定,同时抓包比对 ARP 应答报文来源 MAC 与真实网关是否一致,确认后直接排查冲突 MAC 对应的接入端口并做隔离。
翻车现场二:服务器 CPU 爆满但流量曲线毫无异常现象:Web 服务器 CPU 长时间 100%,但带宽和连接数看起来正常,应用监控也看不出明显瓶颈。 原因:CC 攻击(应用层 HTTP Flood),攻击者模拟真实用户请求打动态接口,每秒钟的请求量并不高,但每个请求都触发数据库查询和复杂计算,应用线程被占满。 解决:在 WAF 或反向代理上配置同一源 IP 的会话请求频率限制,再按接口维度做并发控制,把响应慢的接口单独限流,不拖垮整个应用。
翻车现场三:防火墙加固后外部反馈“你们 ping 不通”现象:合规要求加固防火墙策略后,客户反馈服务器 ping 不通,但业务系统访问没有异常。 原因:防火墙把入站的 ICMP Echo 报文全部丢弃。ICMP 探测失败不代表业务故障,但外部用户习惯性用 ping 做连通性判断,一旦 ping 不通就默认服务挂了。 解决:评估业务链路中是否真的需要 ICMP 探测,健康检查改用 TCP 端口连接测试,对外沟通模板里明确“ping 不通请先测业务端口”,避免误报故障。
翻车现场四:漏洞扫描报告几百个高危,一个也不敢修现象:扫描报告显示大量高危漏洞,但补丁一打服务就挂,业务部门不批变更窗口,漏洞一直处于“审计发现问题、运维束手无策”的状态。 原因:扫描器默认策略把所有开放端口、可能存在的已知漏洞都列出来了,没有结合业务实际暴露面做降噪,高危数量被人为放大。 解决:先按“对外暴露面”过滤,只保留真正对互联网开放的端口和依赖组件;再按 CVSS 分数排序,优先修可被远程利用的;最后每个补丁先在测试环境验证再上生产。千万不能让扫描报告变成一张只有审计看的废纸。
6. 把攻击链反推成防御清单:验证方法与复盘习惯
攻击链条的五阶段模型不只是用来理解攻击者的,它最好用的场景是反推防御策略。我每到一个新项目,第一件事就是画一张攻击链对照表,把每个阶段可能出现的手法、对应的检测点、防御动作、验证工具填进去,然后逐项落地验证。
| 攻击阶段 | 代表性手法 | 检测点 | 防御动作 |
|---|---|---|---|
| 探测 | Ping Sweep、端口扫描、OS 指纹识别 | IDS 告警、防火墙被扫描日志 | 限制 ICMP 类型、端口速率限制 |
| 渗透 | 漏洞利用、口令猜测、恶意附件 | 漏洞扫描报告、认证失败日志 | 补丁管理、强口令策略、邮件网关过滤 |
| 驻留 | 后门、注册表修改、新服务 | 自启动项、服务列表、外联连接 | 主机加固、进程白名单、外联监控 |
| 传播 | 横向渗透、文件共享蔓延 | 内网异常扫描、跨主机连接 | VLAN 隔离、端口白名单、文件共享管控 |
| 瘫痪 | 删除文件、DoS、DDoS | 可用性监控、流量异常告警 | 流量清洗、备份恢复、限速策略 |
这张表填完之后要做一次实战验证。我的做法是在测试环境里用 Nmap 跑一轮端口扫描,观察防火墙日志和 IDS 告警是否正常触发;再用弱口令工具做一次模拟口令猜测,验证账号锁定策略是否生效。验证的重点不是扫描本身,而是“告警能不能到达值班人手机”这一环。很多团队的 IDS 告警配了但没人看,等于没配。告警需要设置分级,高危告警直接推到值班群,低危告警进日报,避免告警疲劳。
从那以后我每次接到新项目,都会把攻击链建模当成前置工作,先画攻击链,再对照这张表逐项确认,哪一格是空的就补哪一格。安全性不是靠某一个设备撑起来的,而是靠整条攻击链上每一环都有对应的检测和响应。这个习惯帮我省掉了至少三次潜在的生产事故,也希望这份攻击分析资料和这套排查方法能帮到你——下次再看到“端口扫描告警”时,你至少知道攻击者正走在哪一步。
本文还有配套的精品资源,点击获取