☰
网络攻击链路五阶段实战拆解:从探测到瘫痪的可观测分析
2026/10/29 19:22:01 网站建设 项目流程

简介:本资源是一份面向网络安全初学者与IT运维人员的系统性攻防知识课件,聚焦常见网络攻击原理、步骤及防范策略。内容覆盖预攻击探测、漏洞扫描、木马与蠕虫病毒攻击、拒绝服务(DoS)、欺骗攻击等核心威胁类型,并深入剖析典型攻击链——从信息收集、渗透驻留到痕迹清除的全过程,辅以Ping扫描、TCP SYN半开扫描、操作系统识别等实操技术要点。资源为单个PPT文件,共1个文件,格式规范、图文并茂,便于教学演示或自学梳理,包体仅2.28MB,轻量易下载。目前已有2674人学习下载,适合高校信息安全课程辅助、企业安全意识培训及红蓝对抗入门者建立攻击视角与防御思维。

1. 这不是“黑客教程”,而是一份能让你在真实红蓝对抗中快速识别攻击链路的实战拆解包

你有没有遇到过这样的情况:IDS告警里跳出一串“TCP SYN 扫描”“ICMP Echo Request 频发”“大量 445 端口连接尝试”,但日志只显示源IP和端口号,根本看不出攻击者下一步要干什么?或者刚部署完WAF,却在凌晨三点被一条看似正常的HTTP GET请求带出内网DNS缓存记录——这不是玄学,是攻击链路没被真正“看见”。这份《最常见网络攻击详细分析》资源,本质是一套按攻击生命周期(Probe → Penetrate → Persist → Propagate → Paralyze)组织的、带可验证行为特征的技术图谱。它不教你怎么写exploit,而是把每类攻击(如DoS、木马、蠕虫、欺骗)拆解成“操作系统层怎么留痕”“网络层怎么发包”“应用层怎么绕过检测”三层可观测动作。适合正在做SOC值守、渗透测试复盘、或编写EDR检测规则的一线安全工程师;也适合高校某实验室做CTF靶场设计时,需要明确“某个漏洞利用后必然触发哪些系统调用”的教学场景。它解决的不是“什么是DDoS”,而是“当Wireshark里出现连续37个SYN包且无ACK响应时,你该立刻查哪个进程、哪个注册表项、哪条iptables规则”。


2. 攻击链路建模:从“探测”到“瘫痪”的五阶段技术锚点

2.1 探测阶段(Probe)的核心动作与可观测指标

预攻击探测不是盲目扫IP,而是有明确目标导向的行为序列。典型路径为:存活主机发现 → 服务端口映射 → OS指纹识别 → 资源/用户枚举。每个环节都对应特定协议行为和系统痕迹,而非单纯工具输出。

以端口扫描为例,不同扫描方式在网络层和主机层留下截然不同的“指纹”:

  • TCP Connect扫描:调用socket()+connect()系统调用,会在目标主机/var/log/secure或Windows事件日志中生成大量Connection refused或Connection established记录,且源IP连接数突增;
  • TCP SYN扫描:仅发送SYN包,不完成三次握手,Linux内核默认不会记录到/var/log/messages,但netstat -s | grep "SYNs to"会显示异常SYN_RECV计数;
  • UDP端口不可达扫描:向关闭UDP端口发送任意数据包,触发ICMP Port Unreachable响应,此时tcpdump -i any 'icmp[icmptype] == icmp-unreach and icmp[icmpcode] == 3'可捕获。

提示:不要依赖单一日志源判断扫描行为。我一般会同步检查三个位置:①防火墙会话表(show conn或conntrack -L)中同一源IP的并发连接数;②内核网络统计(ss -s看SYN-RECV状态数是否超阈值);③应用层访问日志(如Apache的%{X-Forwarded-For}i字段是否出现规律性404)。

2.2 渗透阶段(Penetrate)的典型入口与验证方法

获得控制权的关键在于利用已知漏洞或弱配置,而非零日。资源中列出的Buffer Overflows、ActiveX Controls、Mail附件等,本质是三类可验证的渗透路径:

入口类型触发条件主机侧验证命令(Linux)网络侧验证抓包过滤器
缓冲区溢出利用向存在栈溢出的服务(如旧版vsftpd)发送超长USER/PASS`dmesggrep -i "segfault"或journalctl -u vsftpd | grep "core dumped"`
ActiveX控件加载IE浏览器访问含恶意CAB文件的HTML页面ls -la /tmp/查看解压临时文件;ps aux | grep rundll32tcpdump -i eth0 'tcp port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420)'(匹配GET)
邮件附件执行Outlook打开含宏的.docm文件并启用内容cat /proc/$(pgrep -f outlook)/environ | grep -i macrotcpdump -i eth0 'tcp port 25 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x4d41494c)'(匹配MAIL)

实际操作中,我常把上述命令封装成一个check_penetrate.sh脚本,在收到SOC告警后30秒内运行。例如当SIEM推送“某IP对139端口发起127次SMB连接”时,立即执行:

#!/bin/bash TARGET_IP="192.168.1.100" echo "[+] 检查$TARGET_IP的SMB相关痕迹..." # 查看smbd进程是否存在异常子进程 ps auxf | grep smbd | grep -v grep | awk '{print $2}' | xargs -I{} ps -o pid,ppid,comm -f --forest -g {} # 检查Samba日志中的NTLM认证失败次数(/var/log/samba/log.smbd) grep "NT_STATUS_LOGON_FAILURE" /var/log/samba/log.smbd | grep "$TARGET_IP" | wc -l # 检查是否有可疑的IPC$共享连接 smbstatus | grep "$TARGET_IP"

这段脚本的价值不在“发现攻击”,而在确认攻击是否成功落地——如果ps输出中出现/tmp/.X11-unix/sh这类非常规路径的进程,或smbstatus显示IPC$共享下有非域账户登录,则基本可判定已突破边界。

2.3 驻留阶段(Persist)的隐蔽载体与清除逻辑

攻击者获得初始权限后,首要任务是建立持久化通道。资源中提到的“后门(Backdoors)”“注册表设置”“安装新服务”并非孤立动作,而是存在强关联的技术组合。例如Windows平台典型驻留链路为:
注册表Run键添加启动项 → 创建计划任务 → 服务注入 → DLL劫持 → WMI事件订阅

每种方式都有其清除盲区。比如删除注册表HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run下的键值,却忽略HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run,攻击者仍可通过组策略恢复。更隐蔽的是WMI持久化:

# 攻击者常用命令(需管理员权限) $EventFilterArgs = @{ Name = 'BypassFilter' EventNameSpace = 'root\cimv2' QueryLanguage = 'WQL' Query = "SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA 'Win32_PerfFormattedData_PerfOS_System'" } $EventConsumerArgs = @{ Name = 'BypassConsumer' Type = 'CommandLineEventConsumer' CommandLineTemplate = 'C:\Windows\System32\cmd.exe /c powershell -e JABzAD0ATgBlAHcALQBPAGIAagBlAGMAdAAgAEkATwAuAFMAdAByAGUAYQBtAFIAZQBhAGQAZQByACgAJABTAHIAYQBjAGgALgBEAGUAYwBvAG0AcAByAGUAcwBzAEkAbgBnAFMAdAByAGUAYQBtACgAJABTAHIAYQBjAGgALgBPAHUAdABwAHUAdABTAHQAcgBlAGEAbQAsACAAWwBJAE8ALgBDb21wcmVzc2lvbi5Db21wcmVzc2lvbk1vZGUAXQA6ADoARABlAGMAbwBtAHAAcgBlAHMAcwApACkAOwAkAGQAPQBbAFQAZQB4AHQALgBFAG4AYwBvAGQAaQBuAGcAXQA6ADoAVQB0AGYAMQA2AC4ARwBlAHQAUwB0AHIAaQBuAGcAKAAkAHMALgBSAGUAYQBkAFQAbwBFAG4AZAAoACkAKQA7AEkARQB4AGUAYwB1AHQAZQAtAEUAeABwAHIAZQBzAHMAaQBvAG4AIAAkAGQA' } $Filter = Set-WmiInstance -Class '__EventFilter' -Namespace 'root\subscription' @EventFilterArgs $Consumer = Set-WmiInstance -Class 'CommandLineEventConsumer' -Namespace 'root\subscription' @EventConsumerArgs Set-WmiInstance -Class '__FilterToConsumerBinding' -Namespace 'root\subscription' -Arguments @{Filter=$Filter;Consumer=$Consumer}

这段PowerShell代码创建了一个WMI事件过滤器,当系统性能计数器变化时,执行Base64编码的恶意载荷。清除它不能只删注册表,必须用Get-WmiObject -Namespace root\subscription -Class __EventFilter | Remove-WmiObject连同绑定关系一并删除。

注意:驻留清理必须遵循“先禁用后删除”原则。直接rm -f一个正在运行的服务二进制文件,可能导致系统服务管理器崩溃。正确做法是先systemctl stop evil-service && systemctl disable evil-service,再删除文件。


3. 攻击手法与防御失效的根源:为什么“开了防火墙还被黑”

3.1 拒绝服务攻击(DoS)的误判陷阱

资源中将DoS列为独立攻击类型,但实际防御中最大的坑在于混淆了DoS与正常业务峰值。例如某金融系统在交易日早9:30出现HTTP 503错误,运维第一反应是“被CC攻击”,立即启用WAF限速策略,结果导致真实用户无法下单。问题出在未区分攻击流量与业务特征:

特征维度真实DoS攻击(如SYN Flood)正常业务峰值(如秒杀)
TCP连接状态大量SYN_RECV状态,无后续ACKESTABLISHED连接数激增,伴随大量TIME_WAIT
源IP分布单一IP或小范围IP段高频发包分布式CDN节点IP(如阿里云SLB回源IP)
请求URL路径固定路径(如/login.php)高频重复多路径并发(/item/123,/cart/add等)
User-Agent空值或非常规字符串(如sqlmap/1.0)合法浏览器标识(Chrome/Firefox最新版)

验证方法很简单:在netstat -an | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head -10输出中,如果前10名IP的连接数均超过200且User-Agent为空,则高度可疑;若IP来自100.64.0.0/10(运营商CGNAT段)且UA正常,则大概率是业务问题。

3.2 欺骗攻击(Spoofing)的协议层盲区

IP欺骗、ARP欺骗、DNS欺骗之所以难防,并非因为技术多高深,而是防御设备常在错误层级做检测。资源中提到的“IP欺骗”在现代网络中已极少单独使用(因TCP三次握手需返回包),但作为中间人攻击的前置步骤依然活跃。典型组合为:
ARP欺骗(局域网) → DNS劫持(修改响应) → HTTP重定向(诱导下载木马)

关键破绽在于:ARP表更新是瞬时的,但DNS缓存有TTL。当某台主机突然开始解析update.microsoft.com指向内网某IP时,dig update.microsoft.com @8.8.8.8返回正常地址,而dig update.microsoft.com(走本地DNS)返回异常地址,即可确认DNS劫持。此时arp -a | grep "192.168.1.1"若显示网关MAC地址与ip neigh show输出不一致,则证实ARP欺骗已发生。

3.3 蠕虫病毒攻击的传播路径验证

蠕虫与普通病毒的核心区别在于自主传播能力。资源中强调“感染文件共享”“FTP传播”,但实际环境中更常见的是利用SMBv1漏洞(如EternalBlue)或远程桌面爆破(RDP Brute Force)。验证是否被蠕虫感染,不能只查进程,要看网络连接模式:

# 检查是否存在“横向移动”特征连接(同一内网段多IP主动连接) for ip in $(seq 1 254); do TARGET="192.168.1.$ip" if nc -zv $TARGET 445 2>/dev/null; then echo "$TARGET:445 is open" # 进一步检查是否在尝试SMB登录(需配合Wireshark) tshark -i eth0 -f "host $TARGET and port 445" -T fields -e smb.nt_status -c 1 2>/dev/null | grep -q "STATUS_SUCCESS" && echo " └─ SMB login success" fi done

如果脚本输出中多个192.168.1.x:445显示open且伴随SMB login success,基本可判定该主机已成为蠕虫跳板。此时应立即断网,并检查/var/log/samba/log.smbd中是否有大量Failed password记录。


4. 避坑指南:红队复现与蓝队检测中最常踩的五个技术深坑

4.1 现象:Ping Sweep无响应,但目标主机实际在线

原因:目标主机禁用了ICMP Echo Request响应(sysctl -w net.ipv4.icmp_echo_ignore_all=1),或防火墙DROP了ICMP入站规则,但TCP端口(如22、80)完全开放。
解决:改用TCP Ping替代ICMP Ping。例如用nmap -sn -PS22,80 192.168.1.0/24,它向指定端口发送TCP SYN包,若收到SYN-ACK则判定主机存活。比单纯ping可靠得多,且绕过ICMP封锁。

4.2 现象:TCP SYN扫描显示端口“filtered”,但实际可连接

原因:目标主机启用了tcp_tw_recycle(Linux内核参数),在NAT环境下会导致SYN包被丢弃;或防火墙配置了“SYN Flood防护”,对短时间大量SYN包直接丢弃而不回复RST。
解决:降低扫描速率(nmap -sS --min-rate 1 --max-rate 5 192.168.1.100),或改用FIN扫描(nmap -sF)。FIN包在多数防火墙策略中默认放行,且不会触发SYN Flood防护。

4.3 现象:木马进程被杀后立即复活,且找不到父进程

原因:木马通过inotifywait监控自身文件删除事件,或利用systemd用户级服务(~/.config/systemd/user/)实现自启,甚至通过LD_PRELOAD劫持libc函数(如fork())在每次进程创建时注入。
解决:先查systemctl --user list-unit-files --type=service | grep enabled,再检查/proc/$(pidof malicious)/maps中是否有非常规so库加载。终极手段是strace -f -e trace=execve,openat,clone -p $(pidof malicious)抓取其复活调用链。

4.4 现象:WAF日志显示“SQL注入拦截”,但Web服务器返回200且数据被篡改

原因:WAF仅拦截了union select等显式关键词,但攻击者使用/**/注释符绕过(如sel/**/ect),或利用MySQL的/*!50000select*/语法,或通过HTTP Header注入(如X-Forwarded-For: 127.0.0.1' union select ...)避开WAF的URL/Body检测。
解决:在WAF规则中启用“SQL语法解析引擎”(非正则匹配),并对所有Header字段开启SQLi检测。同时在应用层加mysqli_real_escape_string()二次过滤,形成纵深防御。

4.5 现象:漏洞扫描报告“存在MS17-010”,但手动验证python eternalblue.py失败

原因:目标主机虽未打补丁,但已禁用SMBv1协议(Set-SmbServerConfiguration -EnableSMB1Protocol $false),或启用了SMB签名(Set-SmbServerConfiguration -RequireSecuritySignature $true),导致EternalBlue无法建立原始SMB连接。
解决:先用nmap -p445 --script smb-protocols 192.168.1.100确认SMBv1是否启用;再用smbclient -L //192.168.1.100 -N测试匿名连接是否成功。若均失败,则漏洞虽存在但不可利用,报告中应标注“CVSS基础分需降权”。


5. 从攻击链到检测规则:把PDF里的文字描述转成可落地的Sigma规则

5.1 将“预攻击探测”行为翻译为Sigma语法

资源中“端口扫描基础”章节提到“半开放扫描(SYN Scan)”,这在SIEM中不能简单匹配“SYN包数量”,而要结合会话状态和时间窗口。以下Sigma规则可精准捕获:

title: Suspicious TCP SYN Scanning Activity id: 5a8b1c2d-3e4f-5a6b-7c8d-9e0f1a2b3c4d status: experimental description: Detects hosts sending a high number of TCP SYN packets without completing the handshake within a short time window author: Security Engineer date: 2024/05/20 logsource: category: network_traffic product: zeek detection: selection: event_type: "conn" proto: "tcp" service: "" duration: "< 0.1" orig_bytes: 0 resp_bytes: 0 history: "S" timeframe: 30s condition: selection | count(orig_h) by orig_h > 50 fields: - orig_h - resp_h - ts falsepositives: - "Network scanning tools used by internal security team (with prior approval)" level: high

这段规则的核心逻辑是:在30秒内,同一源IP发出超过50个history: "S"(仅SYN)且duration < 0.1s(未完成握手)的连接记录。它比单纯统计SYN包数准确得多,因为排除了正常TCP重传(重传SYN包的duration通常>1s)和慢速扫描(间隔>30s)。

5.2 “蠕虫传播”检测的双因子验证模型

资源中“蠕虫病毒攻击”强调“感染文件共享”,但真实环境中蠕虫常伪装成合法文件操作。单靠SMB write日志无法区分,需结合行为序列+文件哈希。我设计的检测流程如下:

  1. 第一步:捕获异常SMB写入事件
    Zeek日志中筛选files.log,条件为:fuid存在、tx_hosts包含内网IP、md5为空(表示未计算哈希)且duration > 300(大文件写入);

  2. 第二步:触发文件哈希计算与恶意软件扫描

    # 当Zeek发现新文件时,自动执行 if [ -n "$FUID" ] && [ -z "$MD5" ]; then FILE_PATH=$(grep "$FUID" /usr/local/zeek/spool/loaded_scripts/files.log | awk '{print $10}') if [ -f "$FILE_PATH" ]; then MD5_HASH=$(md5sum "$FILE_PATH" | cut -d' ' -f1) # 查询本地恶意软件哈希库(如VirusTotal API或本地YARA规则) if yara -r /opt/yara/rules/malware.yar "$FILE_PATH" | grep -q "malware"; then echo "ALERT: $FILE_PATH ($MD5_HASH) matches malware YARA rule" | logger -t worm-detector fi fi fi
  3. 第三步:关联横向移动证据
    若同一fuid在files.log中多次出现,且tx_hosts涉及3个以上不同内网IP,则标记为“高置信度蠕虫传播”。

这套模型把PDF里一句“蠕虫通过SMB传播”转化成了可编程、可验证、可告警的闭环检测链。从那以后我每次部署新SIEM,都强制走一遍这个三步验证流程——哪怕多花2小时配置,也比事后溯源时对着几百G日志发呆强。

希望帮到你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询