简介围绕常见网络攻击与防范的PPT课件面向网络安全入门学习者、运维人员及需要建立攻防认知的读者系统梳理网络攻击的典型流程与对应防护思路。内容从预攻击探测切入覆盖端口扫描、操作系统识别、资源与用户信息查找并延伸至漏洞扫描、木马攻击、拒绝服务、欺骗攻击和蠕虫病毒等常见类型帮助读者理解攻击者如何完成探测、渗透、驻留、传播与瘫痪等阶段同时建立防火墙、入侵检测、防病毒、漏洞扫描和安全意识并重的防范框架。资源包仅含1个PPT文件整体约2.28MB轻量便于课堂讲解、自学浏览和内部培训引用。目前已有2676人学习说明其在网络安全通识与攻击面认知方面具有一定参考价值课件对Ping扫描与开放、半开放、秘密扫描等基础概念亦有展开适合作为攻防知识框架的入门材料。1. 一份把攻击拆成五段的讲义先看清它在值班场景里能顶什么用凌晨两点一台对外服务的主机 CPU 从 8% 跳到 90%业务没报错带宽也没打满值班的人翻遍应用日志只看到一堆正常请求。第二天用连接数一查四千多条半开连接挂在对外端口上——攻击早就开始了只是没人按阶段去看。这份《常见的网络攻击与防范》讲义的价值就在这儿它没把网络攻击讲成零散的名词而是拆成 Probe探测、Penetrate渗透、Persist驻留、Propagate传播、Paralyze瘫痪五段再把 ping 扫描、四类端口扫描、操作系统识别、综合漏洞扫描、木马、拒绝服务、欺骗和蠕虫逐条落到手法和对策上。它适合做内网巡检、日志规则编写、等保自查的一线运维和安全值守也适合刚接手安全岗、需要一套排查顺序的人。想找现成攻击工具的人可以直接划走讲义通篇讲的是怎么发现和挡住。2. Probe 到 Paralyze 五阶段把攻击步骤对到日志字段上这份讲义最容易被跳过的是开头那张攻击步骤图很多人觉得它是理论模型。实际恰恰相反五个阶段对应的是五个完全不同的观测窗口你在哪个窗口里查决定了你能不能看到东西。2.1 五个阶段分别在哪些设备上留痕Probe 阶段的动作几乎都是「问问题」ping sweep 找存活主机端口扫描找开放服务操作系统指纹识别判断目标类型再扫网络资源、共享目录、用户名和用户组。这个阶段的包一定经过边界设备问题是很多防火墙默认只记 deny 不记 allow探测流量恰好全是 allow。Penetrate 阶段把探测结果换成权限。讲义列的入口包括口令猜测、Mail 用户猜测、Mail 附件、缓冲区溢出、ActiveX 控件、网络安装。落到日志上就是认证失败次数、进程异常退出、Web 服务拉起陌生子进程这三类信号。Persist 阶段是装后门。讲义里写得很细后门、创建新文件、修改现有文件、注册表设置、安装新服务、注册 Trap Door。这一段的关键是基线——你得先知道这台机器开机时有哪些服务、哪些自启动项否则多出来的那个你根本认不出。Propagate 阶段靠邮件附件、压缩文件、文件共享、IRC、FTP、Web 连接把载荷铺出去。观测点在出口一台普通办公机突然对几十个外部地址发起连接业务上解释不通。Paralyze 阶段是删文件、改文件、崩溃、拒绝服务、机密信息窃取。这一段反而是最容易发现的因为业务会直接喊疼。提示把五个阶段写成值班检查表时每个阶段至少绑一个具体设备和一个具体字段绑不上的阶段说明你的观测点有缺口。2.2 阶段、手法、痕迹、第一动作的四列对照讲义原文的手法列得很散我按阶段重新排了一遍这四列是读这份材料最省事的方式阶段讲义列出的典型手法最可能留下的痕迹第一处置动作Probeping 地址、端口扫描、Mail 用户猜测边界 ICMP 计数、短时间大量不同目的端口统计源 IP 触达端口数抓包确认扫描类型Penetrate口令猜测、缓冲区溢出、Mail 附件认证失败集中、进程崩溃与 core dump锁定源地址、导出崩溃时间点前后日志Persist后门、注册表设置、安装新服务新增服务、自启动项、文件时间戳不符与装机基线比对隔离主机Propagate感染文件共享、邮件、IRC、FTP出口连接数突增且目的分散断共享、封出口、全盘查杀ParalyzeDoS、删文件、Crash Computer带宽打满、半连接堆积、文件消失限速、清半连接队列、取证镜像表格里第四列是重点。很多团队卡在「发现了但不知道先干什么」原因就是没提前把动作写死临场再讨论半小时就过去了。2.3 手法演进轴读出来的结论防守重心要往下压讲义里有一条从 1980 到 2000 的手法演进轴密码猜测、可自动复制的代码、破解密码、利用已知漏洞、破坏审计系统、后门、会话劫持、消除痕迹、嗅探、IP 欺骗、GUI 远程控制、自动探测扫描、拒绝服务、Web 攻击一路走到控制台入侵检测和网络管理。这条轴的真正含义不是「攻击越来越高级」而是门槛在持续下降。早期要手写 exploit后来变成图形界面工具点几下再后来是自动探测扫描加现成 payload。结果是低级手法在数量上永远占绝大多数你的日志里 95% 是自动化扫描和口令爆破。所以资源有限时的排序很清楚先把 ping sweep 和端口扫描的发现做扎实再把口令爆破的锁定策略落地最后才谈高级持续性威胁的检测。反过来做就是拿有限的人力去追那 5%剩下 95% 从眼皮底下过去。还有一个容易被忽略的点讲义把「消灭踪迹」列进了攻击步骤链里位置在拿到控制权之后、横向渗透之前。这意味着你在受害主机上看到的日志可能已经被改过判断依据要往前推到边界设备和上游交换机的流量记录上。主机日志是嫌疑人自己写的口供边界流量才是监控录像。3. 预攻击探测ping sweep 与四类端口扫描的识别参数预攻击探测这一节是整份讲义里信息密度最高的部分也是最能直接抄成检测规则的部分。3.1 ping 与 ICMP能判断什么判断不了什么ping 的原理不复杂发 ICMP Echo 消息等 Echo Reply每秒一个包最后统计丢包率和往返时间。它最初是用来调试网络软硬件的顺带能判断远程设备可访问性。讲义列了 ping 不通的几种原因这几条在排障时非常实用没有路由或网关设置不对、网卡没有配置正确、timeout 值设得太小、被防火墙阻止、主机确实没开机。实际排查里最常见的误判是把「被防火墙丢弃 ICMP」当成「主机没开机」然后去机房找一台其实活得好好的机器。防守侧的做法讲义也给了用能检测并记录 ICMP 扫描的工具、上入侵检测系统、在防火墙或路由器上限制进出自己网络的 ICMP 分组类型。具体到配置边界一般只放行业务确实需要的 Echo 类型对 Echo Request 做速率限制并记录而不是简单全禁——全禁会让排障彻底失去一个便宜的手段。讲义里还提了 Ping of death发送超过 65535 字节的特大 ping 包靠分片重组时的边界处理缺陷让老系统崩溃。现在的系统基本免疫但分片重组策略仍然值得看一眼因为分片同时也被用来绕过包过滤。3.2 四类端口扫描的握手特征与日志判据端口扫描是预攻击探测的核心。讲义按握手完整度分成开放、半开放、秘密三类又单列了跳板扫描。这个分类法比按工具分类有用得多因为你识别的是行为特征不是工具指纹。类型握手特征权限要求日志留痕主要弱点TCP connect 开放扫描完整三次握手连接建立后关闭普通用户即可目标主机有完整连接记录极易被发现连续扫端口必然暴露Reverse-ident先全连接再查 113 端口取进程属主普通用户ident 服务有查询记录依赖目标开放 identTCP SYN 半开放发 SYN收到 SYN/ACK 或 RST 后立即发 RSTUnix 下需 root多数系统不记录半开连接需要构造原始包IP ID header 哑扫描伪造第三方 IP 发起观察 IP ID 增长规律需要可控的第三方主机目标侧看到的是第三方的地址对第三方主机要求高FIN / XMAS / NULL 秘密扫描不带任何标准握手标志位需 root一般不记录数据包易被丢弃产生误报FTP 跳板扫描借 FTP 代理端口转发需可匿名或可控 FTPFTP 侧有连接记录依赖开放的 FTP 代理分片 SYN/FIN把 TCP 头拆到多个分片需 root分片重组后才能识别部分设备直接丢弃分片判据其实就三条一个源 IP 在短时间内对同一目的 IP 的大量不同端口发起连接目的端口分布均匀、间隔固定连接建立后没有后续应用层数据。前两条指向自动化扫描器第三条区分扫描和正常探活。抓半开扫描最直接的方式是按标志位过滤下面这条命令只匹配 SYN 置位而 ACK 未置位的包也就是三次握手的第一步# -nn 不做域名和端口解析避免 DNS 反向查询拖慢抓包 # tcp[tcpflags] 取 TCP 标志位掩码后等于 tcp-syn 表示只有 SYN 置位 # -c 200 抓满 200 个包自动停防止在忙时把磁盘写满 sudo tcpdump -i eth0 -nn -c 200 tcp[tcpflags] (tcp-syn|tcp-ack) tcp-syn抓到之后看两件事同一个源地址是不是在短时间内反复出现以及这些包的目的端口是不是连续递增。真实业务里几乎不会出现「一秒内敲 500 个不同端口」的行为。日志侧可以用一条聚合把扫描源筛出来下面这段假设防火墙日志的字段顺序是「源 IP、目的 IP、目的端口、动作」# 先按源 IP 目的端口去重再按源 IP 计数 # 计数明显高于基线的源基本就是扫描器 awk {print $1, $3} /var/log/fw.log \ | sort -u \ | awk {count[$1]} END {for (ip in count) print count[ip], ip} \ | sort -rn \ | head -20参数上要注意两点sort -u必须先做否则同一个端口被重传多次会把计数虚高head -20只是看头部真正上线要接阈值告警阈值取你环境里正常主机的端口访问数上限再乘一个系数。注意半开扫描在目标主机上通常不留记录只在边界设备上可见。如果你的检测规则全部部署在主机侧这类扫描永远是盲区。3.3 OS 指纹与资源、用户枚举的收敛方法操作系统识别靠的是 TCP/IP 协议栈的实现差异初始 TTL、窗口大小、DF 位是否置位、TCP 选项的顺序和内容。这些东西各家实现不同组合起来就是指纹。防守侧想削弱指纹理论上可以统一出口 TTL但代价是丢掉 TTL 这个排障信息实际做得不多性价比一般。更划算的是收敛暴露面关闭不必要的服务端口别让 SNMP 用默认团体名别让 LDAP 支持匿名查询别让文件共享对全网开放。讲义把「资源和用户信息扫描」单列一条指的就是网络资源、共享资源、用户名和用户组枚举这三类信息一旦泄露后面的口令猜测就有了明确目标。用户枚举的典型手法是 Mail 用户猜测——利用邮件服务器对存在用户和不存在用户的不同响应来判断账号是否有效。对策不是关邮件服务而是统一认证失败的响应内容和响应时间让两种情况的返回看起来一样。这条在讲义里只是一句话落地时却经常被漏掉因为改的是应用层代码不是网络设备。4. 从扫描到控制权综合漏洞扫描、口令猜测与后门驻留的验证口径探测完之后是渗透和驻留这一段的材料看起来最像「攻击教程」但换个角度读它其实是一份检查清单——每一类攻击手法后面都跟着一条「你应该检查什么」。4.1 综合漏洞扫描报告不是结论漏洞扫描在讲义里被放在防御措施那一栏和防火墙、入侵监测、防病毒、安全意识并列。很多人拿到扫描报告就直接开工修这里有几个坑要提前说清。第一扫描器的判定依据是版本号和 banner版本对不上就漏报版本对上了但打了补丁就误报。第二带 PoC 的插件会真的发攻击包对老组件做溢出验证时可能直接把服务打挂。第三扫完不复测等于没修。我一般的顺序是先出资产清单并确认扫描范围再做指纹识别确定插件集然后低并发跑一轮发现型扫描人工验证高危项修完做定向复测。参数上并发数和超时时间要按业务能承受的连接数来定生产环境避开业务高峰测试环境也别一次性全量扫——老系统是真的会挂。读报告的时候重点看四个字段字段为什么重要常见误读风险等级用于排序不等于实际影响把中危当成可以无限期挂着插件编号或漏洞标识决定你能不能查到验证方法只看中文描述就去搜搜到一堆不相关的验证方式区分「版本推断」和「实际验证成功」把版本推断当成已可利用修复建议通常只给到版本升级忽略了配置层面的缓解措施4.2 口令猜测与 ident 泄漏认证日志的三条硬指标口令猜测是讲义里出现频率最高的手法从最早的手法演进轴一路排到预攻击探测。它在日志上的特征非常稳定三条指标就够用同一源地址在短时间内的失败次数、失败与成功交替出现说明撞中了、非工作时间的登录行为。第三条经常被忽略。很多内网入侵发生在凌晨因为那个时段没人看告警。把登录时间分布做成基线非基线段直接推给人看比堆规则有效。对策是标准的四件套失败锁定或递增延迟、默认账号改名或禁用、口令复杂度与定期更换、关键系统上多因素认证。前两条必须在边界和应用两层都做只在应用层做攻击者换到管理端口继续猜。讲义专门提了 Reverse-ident 扫描Ident 协议RFC1413能让外部查到某个 TCP 连接对应的进程属主用户名即使这个进程没有发起该连接。比如先连 80 端口再通过 identd 就能知道 Web 服务是不是以 root 在跑。这条信息对攻击者的价值很高因为它直接告诉你提权的收益有多大。讲义给的建议很干脆关闭 ident 服务或者在防火墙上禁止 113 端口除非是为了审计。4.3 溢出与后门驻留四类位置一次查全缓冲区溢出的痕迹比想象中明显进程异常退出、产生 core dump、服务莫名重启、日志在某个时间点之后中断、Web 服务拉起了不该有的子进程。判断要点是「父子关系」——一个以 Web 服务身份运行的 shell在任何正常业务里都解释不通。后门驻留是讲义里列得最细的一段后门、创建新文件、修改现有文件、注册表设置、安装新服务、注册 Trap Door、创建计划任务。这些位置分散在系统各处逐条查很费时间用一段命令一次扫完更实际# 1. 监听端口与对应进程关注没有业务含义的监听 ss -lntup # 2. 已启用的服务与装机基线比对 systemctl list-unit-files --stateenabled # 3. 计划任务用户级和系统级都要看 crontab -l 2/dev/null ls -l /etc/cron.d /etc/cron.daily /etc/cron.hourly 2/dev/null # 4. 传统自启动目录老系统上依然有效 ls -l /etc/rc.local /etc/init.d 2/dev/null这四段的逻辑是「按驻留位置查」而不是「按文件名查」——后门可以随便改名但它必须挂在某个能被系统拉起的位置上。参数上ss -lntup的-p需要 root 才能显示进程名普通用户跑出来只有端口--stateenabled只看开机自启的服务比全量列表短得多适合做日常巡检。还有一个低成本但很有效的检查看文件时间戳和包管理器记录的安装时间是否一致。一个二进制文件的修改时间晚于系统最后一次更新又没有对应的升级记录就值得单独看一眼。4.4 DoS、欺骗、蠕虫的判别口径拒绝服务在讲义里被拆成三类量级带宽型把出口打满协议型把半连接队列塞满应用型用慢请求长期占用连接。判别看的是「连接数突增但完成率极低」这个组合单看流量会漏掉应用层攻击。欺骗类攻击包括 IP 欺骗、ARP 欺骗、DNS 欺骗、Web 欺骗。ARP 欺骗在现场最典型的信号是网关 IP 对应的 MAC 地址变了或者同一个 MAC 地址对应多个 IP。这类问题在内网比在边界更常见交换机的端口安全配置能做第一道拦截。蠕虫的特征是自我复制加自动扫描所以它在网络上的表现是「一台主机短时间内对大量地址发起连接」和端口扫描很像区别是蠕虫的扫描目标地址是随机或按网段扩散的而人工扫描通常集中在少数目标上。传播载体讲义点得很明确邮件附件、压缩文件、文件共享、IRC、FTP。对应的收敛手段就是关共享、控附件类型、限制出口协议。5. 避坑与排查五条血泪记录每条都对应一个日志盲区这一章的五条是踩出来的不是想出来的。每条都按现象、原因、解决写照着自己的环境对一遍能省不少时间。5.1 五条现象、原因与解决第一条防火墙开了ICMP 全放行扫描跑了一整晚第二天查日志一条没发现。原因是只看了 deny 日志Echo Request 和 Echo Reply 都是 allow压根没进告警队列。解决办法是单独统计 ICMP 的速率和唯一目的地址数一个源在五分钟内对超过 50 个地址发 Echo直接推告警别再指望 deny 日志。第二条上了入侵检测告警每天几百条全是误报最后没人看。原因是规则集照抄而业务本身就是高频短连接规则里「短时间内大量连接」这一条天天命中。解决办法是先跑两周只记录不告警把业务自身的连接特征做成基线规则只在增量部分触发。这一步不做IDS 就是个昂贵的黑匣子。第三条在测试环境跑综合扫描把一台老组件的服务扫挂了业务方打电话过来。原因是开了带 PoC 的破坏性插件对老版本组件做溢出验证包一发过去进程就崩了。解决办法是分级插件验证型插件只在快照之后跑生产环境只跑发现型时间窗口避开业务高峰扫描前先做一次状态备份——这是唯一的后悔药。第四条主机上发现可疑监听端口杀了进程重启之后又回来了。原因是只杀了进程没查自启动。解决办法是按第 4 章那四类位置一次查全服务、计划任务、自启动目录、注册表或配置文件四处齐查之后再杀进程最后重启验证。顺序反了就是白干。第五条以为 ping 不通就是主机没开机结果人家活得好好的只是 ICMP 被限速或丢弃。这一条在做了 ICMP 收敛的环境里几乎天天发生。解决办法是换探测方式用 TCP 端口探测判断存活——只要有一个业务端口能建连主机就是活的。存活判断不要单点依赖 ICMP这是血泪经验。5.2 排查顺序从边界到文件完整性的四步真出了事顺序比工具重要。我一般的四步是步骤看什么判断依据边界流量会话记录、ICMP 计数、出口连接有无扫描特征、有无异常外联主机连接监听端口、活动连接、进程树端口与进程是否匹配、有无陌生父子关系账号与自启动新增账号、服务、计划任务、启动项与装机基线比对看增量文件完整性二进制哈希、时间戳、包安装记录时间戳与安装记录不一致即重点核查顺序不能反。先看文件完整性你会在几万个文件里迷路先看边界能直接把范围从全网缩到几台机器。这套顺序还有个好处每一层都有可交付的中间结论汇报的时候不至于说不出话。6. 进阶验证在隔离环境里自己打一次把检测阈值调到能用规则写完不算完能不能触发是另一回事。最有效的验证方式是在隔离的实验环境里自己发起一次探测然后看三层日志边界设备、目标主机、检测系统各自抓到了什么、漏了什么。具体做法是准备两台虚拟机同一网段但完全隔离一台当靶机只开两三个端口一台当发起方。先跑一轮 ping sweep 扫整个网段再对靶机做一次 SYN 半开扫描。整个过程里边界侧挂着抓包靶机侧开着系统日志。跑完之后对三份记录重点看三个问题半开扫描在靶机侧是不是真的没有记录边界抓包能不能区分开 ping sweep 和正常 ICMP检测系统报的是扫描行为还是某个具体 IP。阈值就在这一步定。拿 ICMP 举例先统计你环境里正常时段「单个源 IP 每分钟的 Echo 唯一目的地址数」的分布取 99 分位再乘 1.5 作为告警线而不是拍脑袋写 50。同理端口扫描的阈值取正常主机每分钟不同目的端口数的上限再加一点余量。# 从抓包结果里按源 IP 统计唯一目的地址数用来定 ping sweep 的基线 # 假设先用 tcpdump -w 落了包这里用文本形式回放统计 awk /ICMP echo request/ {print $3, $5} icmp.txt \ | sort -u \ | awk {c[$1]} END {for (ip in c) print c[ip], ip} \ | sort -rn | head这段的关键是sort -u做去重同一个目的地址被 ping 多次只算一次统计的才是「扫描广度」而不是「发包频率」。两个指标要分开看频率高可能是监控系统在轮询广度高才是扫描。验证还有个附加收益你会知道自己环境的误报长什么样。监控轮询、资产测绘、负载均衡健康检查这三类流量天生就像扫描提前把它们加进白名单后面能省掉一大半无效告警。从那以后我每次写完一条检测规则都强制走一遍「隔离环境造一次 → 三层日志对比 → 按基线定阈值」这个循环不再直接往生产上推。规则上线前没被自己触发过一次就等于没写。希望帮到你。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?