20241909 2024-2025-2 《网络攻防实践》课程总结

20241909 2024-2025-2 《网络攻防实践》课程总结

第一次实践 环境搭建

  • 简要介绍:本次实验主要内容是构建网络攻防虚拟环境,利用VMware Workstation搭建靶机、攻击机与蜜网网关组成的复杂拓扑结构。通过配置VMnet1与VMnet8网络,实现靶机专网与攻击机内网的逻辑隔离与通信。实验部署包括Metasploitable、Windows Server、Kali、SEED、WinXP Attacker及蜜网网关,并通过蜜网控制台对攻击流量进行监控与捕获,验证网络环境搭建的正确性。
  • 实验体会:此次实验给我留下了非常深刻的印象,由于我本科是数学专业,之前不用这种编程和攻防工具尤其是虚拟机。通过本次实验,我理解了网络攻防环境的搭建流程及其相关配置点,如IP地址规划、网络适配器模式设置及蜜网参数配置等。实践中遇到诸如IP冲突、虚拟网卡失联等问题,也让我废了一番功夫。总之作为第一次网络攻防的实验,实验环境的搭建是非常有必要的让我这种从来没接触过的也能慢慢上手,也让我对后面的实验充满期待。

第二次实践 网络信息收集

  • 简要介绍:本次实验围绕网络信息技术展开,涵盖DNS查询、IP追踪、网络扫描与漏洞检测等内容。我们使用了工具如nslookup、nmap、Nessus等,对目标主机进行信息搜集与安全分析。实验还包括从论坛、语音通信中尝试获取好友IP并定位其地理位置,同时通过搜索引擎反查自身网络痕迹。整体流程仿佛一次“网络侦察行动”,从踩点到分析漏洞,全面了解了信息安全攻防的前置步骤和技术路径。
    实验体会:这次实验让我深刻体会到“网络无边界,信息全暴露”的现实。看似安全的日常操作,其实早已留下蛛丝马迹。实践中动手用工具查IP、扫端口、挖漏洞,不仅让人兴奋,还有点“网络福尔摩斯”上身的感觉。同时也让我意识到信息安全的重要性——会用工具是一回事,保护自己才是本事。总之,该实验设计的是一次结合现实生活的例子的、别开生面的、生动的、成功的实验。

第三次实践 网络嗅探与协议分析

  • 简要介绍:本次实验围绕网络嗅探与取证分析展开,涵盖了使用 tcpdump、Wireshark 对实际网络通信过程进行抓包分析,探索 TELNET 协议明文传输机制,以及通过 listen.pcap 文件对攻击行为进行溯源。实践中,我们识别出攻击者与目标主机的 IP、扫描手法及其使用工具,并借助 snort、p0f 工具分析攻击来源系统。实验既锻炼了工具使用能力,也提升了对网络安全本质的理解。
  • 实验体会:通过本次实验,我对网络嗅探、协议分析和入侵检测有了更深刻的认识。从抓包识别通信内容到逆向分析攻击行为,每一步都加深了我对“看得见”的网络安全的理解。实践证明,安全不仅靠防御,更要靠发现问题的能力。同时这次实验也有了一定的难度尤其是对于数据包的分析,密密麻麻眼花缭乱,但是总体而言还是能有收获且顺利完成的。

第四次实践 TCPIP网络协议攻击

  • 简要介绍:本次实验主要集中于网络攻防技术中的几种常见攻击方式,包含了ARP缓存欺骗、ICMP重定向、SYN Flood、SYN Rst以及TCP会话劫持攻击。在实验过程中,通过使用虚拟机和各种网络工具(如netwox、ettercap等),成功模拟并实施了这些攻击。通过分别对每种攻击的执行过程进行详细分析,能够深入理解其原理与应用场景。例如,ARP欺骗通过伪造数据包干扰目标主机的ARP缓存,ICMP重定向通过篡改路由信息使流量误导,SYN Flood攻击则通过过载目标主机的连接请求来使其资源耗尽。通过这些攻击实验,可以更好地了解攻击者如何利用漏洞对目标系统进行攻击。
  • 实验体会:这次实验让我切实感受到了网络安全的复杂性与脆弱性。虽然这些攻击方式在理论上学过,但亲手实践时才发现它们的威力有多大。比如ARP缓存欺骗,当它把目标机器的MAC地址替换成攻击机的MAC地址时,几乎能完全控制目标主机的通信,真的是让人有点吃惊。而且,实验过程中也碰到了一些小问题,比如kali中没有netwox工具,最后通过apt-get安装解决了,这让我更加体会到做网络攻防时必须具备的解决问题的能力。总体来说,这次实验不仅让我学到了很多实战技巧,也让我意识到网络安全防护的重要性,今后我会更加关注这方面的知识。

第五次实践 网络安全防范技术

  • 简要介绍:本次实验围绕防火墙与入侵检测系统展开,内容包括在Linux平台上使用iptables实现ICMP包过滤、限制特定IP访问服务,配置SNAT/DNAT规则以及状态检测等。同时,使用Snort对pcap文件进行离线入侵检测分析,生成并解读报警日志。最后,分析蜜网网关中防火墙和IDS/IPS配置策略,理解其在虚拟网络攻防环境中的数据捕获与控制作用。通过动手操作与规则分析,掌握了网络安全防护的基本技术与实现方法。
  • 实验体会:通过本次实验,我掌握了iptables的基本使用方法,学会了如何配置规则实现流量控制与访问限制,同时对SNAT、DNAT等机制有了更深入的理解。Snort的使用让我初步具备了网络入侵检测与日志分析能力。在分析蜜网网关配置的过程中,对防火墙和入侵检测系统如何协同工作有了更加直观的认识。相比上一次的实验这次的实验更加注重防御层面,通过不同的视角可以感受到一个渐进的学习和掌握的过程。

第六次实践 Windows系统攻防

  • 简要介绍:本次网络攻防结课实验以Metasploit框架为核心,围绕Windows系统漏洞MS08-067展开远程渗透实践,通过实际操作掌握漏洞利用与攻击流程。实验还包括对真实攻击样本的取证分析,借助Wireshark等工具解析网络流量,追踪攻击者行为路径。同时组织团队攻防对抗,提升学生对渗透攻击及防御响应的实战理解,全面提高安全攻防意识和技术能力。
  • 实验体会:这次实验挺有意思的,不只是照着步骤打命令,还能自己动手复现攻击流程,感觉很有成就感。尤其是在用Wireshark分析攻击痕迹的时候,像在破案一样一步步还原全过程,挺有挑战性。最后的团队对抗也特别有趣,和同学斗智斗勇,很有实战氛围,也加深了对攻防的理解。

第七次实践 Linux系统攻防

  • 简要介绍:本实验围绕使用 Metasploit 框架对 Linux 系统中的 Samba 服务进行远程渗透攻击展开,重点利用 CVE-2007-2447 漏洞(usermap_script)实现命令执行,并获取目标主机的 Shell 权限。随后,进行攻防对抗实践,攻击方模拟黑客行为,防守方借助 Wireshark 等工具分析攻击流量,提取攻击特征信息,实现对渗透行为的追踪与溯源,全面提升网络攻防实战能力。
  • 实验体会:这次实验虽然和上次用的工具差不多,但是由windows转换到了Linux系统,收获还是挺大的。通过对不同漏洞的尝试,感觉对 Metasploit 的操作更熟练了,像 payload 设置、参数配置这些流程都更加清晰。

第八次实践 恶意代码分析实践

  • 简要介绍: 本次实践分为两大模块:一是对 Rada.exe 恶意代码样本进行静态与动态分析,包括文件格式识别、UPX 脱壳、字符串提取及 IDA Pro 反编译,旨在识别样本属性、作者信息及行为逻辑;二是在 WinXP 环境中使用 IDA Pro 对两个 CrackMe 程序进行逆向分析,锁定关键信息输出流程,推导有效输入参数,实现验证。此过程涵盖恶意代码的摘要提取、功能目的分析、防混淆技术识别、样本分类,以及 IRC 僵尸网络通信、端口攻击行为、Snort/PCAP 网络流量研判等内容,系统提升对恶意软件和反向工程的综合分析能力。
  • 实验体会:这次是真的非点劲的,但是却长了很多知识的。一下子接触到了脱壳、IDA 反编译,还要做网络流量分析。刚开始对着 Rada.exe 脱壳那会儿还有点懵,后来发现作者信息隐藏在 Unicode 字符串里,感觉还是很有意思的。CrackMe 那两段程序也挺有意思,得靠看汇编逻辑推参数。抓包解析 IRC 和端口扫描流量地串起了前面做的所有技能,虽然过程不容易,成功作完还是很有成就感的。

第九次实践 软件安全攻防--缓冲区溢出和shellcode

  • 简要介绍: 本次网络攻防实验旨在通过分析和利用缓冲区溢出漏洞、二进制文件修改以及 Shellcode 注入等技术,深入理解程序的内存布局和安全漏洞的利用方式。实验首先通过手工修改可执行文件,改变程序的执行流程,跳转至特定函数。接着,利用缓冲区溢出漏洞,通过构造攻击输入字符串覆盖返回地址,实现特定函数的触发。最后,通过注入自定义 Shellcode,成功获得系统的交互式 Shell。整个实验过程加深了对二进制漏洞、内存管理及攻击技术的理解,为实际攻防演练奠定了基础。
  • 实验体会:这次实验让我真切体验到从攻击者的视角去理解程序的安全性。虽然前期遇到了一些困难,比如修改二进制文件时的乱码问题和地址随机化的干扰,但通过不断调试和查找资料,我成功解决了这些问题。尤其是通过缓冲区溢出成功触发 getShell,并注入自己的 Shellcode 执行命令,感觉特别有成就感。总的来说,实验让我更加意识到程序漏洞的危险性,也让我对低层次的内存管理有了更深入的了解。

第十次实践 Web应用程序安全攻防

  • 简要介绍:本次网络攻防实验深入理解网络安全的基本原理和攻击防御技术。实验内容涵盖了网络攻击的多种方式,如SQL注入、DDoS攻击、网络钓鱼等,同时也涉及了防御技术的应用,如防火墙设置、入侵检测系统(IDS)、加密通信等。通过实际操作,能够熟悉常见的攻击手段及其防御策略,掌握防护系统的配置和应急响应方法,提升网络安全防护意识和实践能力。
  • 实验体会:这次实验让我对网络攻防有了更加直观的理解。以前只知道网络攻击很严重,但做了实验后,才知道其中的技术原理和防御手段有多复杂。比如,SQL注入这个攻击方式,起初我觉得挺简单,但真正尝试攻击和防御时,发现要掌握好细节。特别是在防火墙和IDS配置时,学习到了不少实际技巧,让我对网络安全的保护有了更多信心。总体来说,这次实验不仅增长了我的知识,还扩展了我对网络攻击的认识,让我明白了网络攻击面的广泛如获取cookie、添加好友等。

第十一次实践 浏览器安全攻防实践

  1. 简要介绍:本次实验的核心内容为网络攻防实战演练,重点聚焦于浏览器渗透攻击、网页木马取证分析以及攻防对抗三部分。实验首先通过分析浏览器的安全漏洞,模拟渗透攻击并进行防御。随后,进行了网页木马的取证分析,研究木马的传播途径和痕迹。最后,通过攻防对抗实践,模拟了真实网络环境下的攻防过程。
  2. 实验体会:通过这次实验,我对网络攻防的理解深刻了不少。最初以为渗透攻击和防御只是理论上的东西,结果在实践中发现,很多细节都能决定成败。浏览器渗透攻击时,我发现很多常见的漏洞如果没有及时修补,黑客就可以轻松入侵。网页木马取证分析也让我意识到,木马的痕迹隐藏得非常深,一不小心就会被忽略。最有挑战性的还是攻防对抗,面对真实环境时,要时刻保持警觉,迅速反应。总体来说,这次实验提升了我对网络安全的实际操作能力,也让我对攻防技巧有了更直观的感受。

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

这十一次实验中我最喜欢的是第六次实验,也是做得最成功的一次!尤其是最后那个团队对抗部分,真的让我觉得“玩中学、学中战”。尤其是和同学一组,一个当攻击方,一个当防守方,互相研究Metasploit和Wireshark。刚开始我攻击他几次没成功,还被他发现了,嘲笑了我一通,我一咬牙回去重新调整payload和设置,终于在第三次成功拿下了他的主机!当我看到那个熟悉的shell窗口跳出来、文件创建成功的那一刻,真的特别激动,简直像打赢了一场比赛。我们俩当场就笑出声了,。这种带着对抗性质的实践,比枯燥的理论有意思多了,也让我真正理解了攻击流程是怎么回事、防守该从哪入手。真的特别过瘾,也特别有成就感!

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

1. 环境搭建

名称 描述
攻击机 用于发起网络攻击的主机。本环境中包括Kali Linux、WinXPattacker两台攻击机。可以进行网络扫描、渗透攻击、程序逆向分析,密码破解,监视、反汇编和编译等功能。
靶机 被网络攻击的目标主机。本环境中包括Metasploitable_ubuntu和Win2kServer_SP0_target,一般靶机存在有许多安全漏洞的软件包,如tomcat5.5、distcc、Metasploit等软件,可以针对其进行网络渗透攻击,网络服务弱口令破解,获取远程访问权等。
SEED虚拟机 是信息安全教育实验环境虚拟机,由SEED项目提供,可以进行TCP/IP协议栈攻击,SQL注入,XSS漏洞的phpBB论坛应用程序等操作。
蜜罐 诱捕攻击者的一个陷阱。
蜜网 采用了技术的蜜罐,把蜜罐主机放置在防火墙的后面,所有进出网络的数据都会通过这里,并可以控制和捕获这些数据,这种网络诱骗环境称为蜜网。
蜜网网关 蜜网提供的一个作为透明网关的攻击行为捕获与分析平台。

2. 网络信息收集

内容 定义
网络踩点(Footprinting) 攻击者通过对目标组织或个人进行有计划的信息收集,了解目标的网络环境和信息安全状况,得到攻击目标的完整剖析图,为进一步的攻击提供指引。 常见扫描手段
1. Web信息搜索与挖掘:通过Web搜索发现目标的公开或意外泄露的信息。
2. DNS与IP查询:通过公开服务找到目标域名、IP、地理位置及注册信息。
3. 网络拓扑侦察:确定潜在攻击目标的网络拓扑结构及访问路径。
网络扫描与探测 通过网络扫描找出连接目标,获取类型、弱点等信息,为攻击提供支持。 主要扫描
.主机扫描:探测网络拓扑的基本步骤。
2. 端口扫描:探查活跃主机上开放的端口。
3. 漏洞扫描:发现操作系统、网络服务和应用程序中的安全漏洞。
4. 网络/系统类型探查:探查开放端口绑定的服务类型。
网络查点 在网络踩点和网络扫描之后,但未实施渗透攻击之前的准备工作,主要通过主动连接与查询收集攻击目标详细信息,可能会触发入侵检测系统报警。

3. 网络嗅探与协议分析
(1)TCPDump
TCPDump可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。

(2)网络嗅探
网络嗅探需要用到网络嗅探器, 其最早是为网络管理人员配备的工具, 有了嗅探器网络管理员可以随时掌握网络的实际情况,查找网络漏洞和检测网络性能,当网络性能急剧下降的时候,可以通过嗅探器分析网络流量,找出网络阻塞的来源。网络嗅探是网络监控系统的实现基础。

(3)Wireshark
Wireshark是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。

4. TCPIP网络协议攻击

攻击类型 原理 攻击目标
ARP缓存欺骗攻击 ARP欺骗通过发送欺骗性ARP数据包使接收方更新ARP缓存表,建立错误的IP地址与MAC地址的对应关系,导致数据包无法正确发送。 使源主机无法向正确的接收者发送数据
ICMP重定向攻击 黑客发送伪造的ICMP重定向信息给主机,使主机修改路由表,导致流量被黑客控制。 修改主机路由表,流量被引导到攻击者控制的地方
SYN Flood攻击 攻击者利用伪造的IP地址向目标主机发送大量的SYN请求,目标主机消耗资源等待关闭这些连接,从而导致资源耗尽。 消耗目标主机资源,导致其拒绝服务
SYN Rst攻击 攻击者伪造TCP重置报文,通过修改TCP协议头的reset标志位来强制关闭一个TCP连接。 强制关闭TCP连接,破坏会话连接
TCP会话劫持攻击 攻击者劫持已经建立的TCP会话连接,冒充其中一方进行通信,从而绕过身份认证,获取敏感信息。 劫持会话连接,绕过身份认证

5. 网络安全防范技术

知识点 概念 功能
防火墙 防火墙(Firewall)技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术。
1网络安全的屏障: 只有经过精心选择的应用协议才能通过防火墙
2强化网络安全策略: 通过以防火墙为中心的安全方案配置,能将所有安全软件(如口令、加密、身份认证、审计等)配置在防火墙上。
3监控审计 如果所有的访问都经过防火墙,那么,防火墙就能记录下这些访问并作出日志记录,同时也能提供网络使用情况的统计数据。
iptables iptables是一个linux下的防火墙工具,它能帮助我们基于规则进行网络流量控制。
1允许/拒绝某种协议的连接建立,比如TCP,UDP
2允许/拒绝来自某个ip的访问
3允许/拒绝某个端口被访问
Snort Snort是一个强大的网络入侵检测系统。它具有实时数据流量分析和记录IP网络数据包的能力,能够进行协议分析,对网络数据包内容进行搜索/匹配,可以检测各种不同的攻击方式,对攻击进行实时报警等。
1嗅探模式(从网络上读取数据包,常用命令snort -dev)
2数据包记录模式(把数据包记录到硬盘上,常用命令snort -b)
3网络入侵检测模式Snort并不记录所有捕获的包,通过包与规则对比,仅当包与某个规则匹配的时候,才会记录日志或产生报警

6. Windows系统攻防
1.Metasploit
Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报。

模块 功能
exploits(渗透攻击/漏洞利用模块) 渗透攻击模块是利用发现的安全漏洞或配置弱点对远程目标进行攻击,以植入和运行攻击载荷,从而获得对远程目标系统访问的代码组件
payloads(攻击载荷模块) 攻击载荷是我们期望目标系统在被渗透攻击之后完成实际攻击功能的代码,成功渗透目标后,用于在目标系统上运行任意命令或者执行特定代码
auxiliary(辅助模块) 该模块不会直接在测试者和目标主机之间建立访问,它们只负责执行扫描、嗅探、指纹识别等相关功能以辅助渗透测试
nops(空指令模块) 该模块是一些对程序运行状态不会造成任何实质性影响的空操作或无关操作指令
encoders(编译器模块) 该模块通过对攻击载荷进行各种不同形式的编码,完成两大任务: 一是确保攻击载荷中不会出现渗透攻击过程中应加以避免的“坏字符”;二是对攻击载荷进行“免杀”处理,即逃避反病毒软件、IDS/IPS的检测与阻断
post(后渗透攻击模块) 后渗透攻击模块主要用于在渗透攻击取得目标系统远程控制权之后,在受控系统中进行各式各样的后渗透攻击动作,比如获取敏感信息、进一步横向拓展、实施跳板攻击等
evasion(规避模块) 规避模块主要用于规避Windows Defender防火墙、Windows应用程序控制策略(applocker)等的检查

2 MS08-067
2.1 漏洞描述
MS08-067漏洞的全称为“Windows Server服务RPC请求缓冲区溢出漏洞”,如果用户在受影响的系统上收到特制的 RPC 请求,则该漏洞可能允许远程执行代码。在Windows 2000、Windows XP 和 Windows Server 2003 系统上,攻击者可能未经身份验证即可利用此漏洞运行任意代码,此漏洞可用于进行蠕虫攻击,目前已经有利用该漏洞的蠕虫病毒。
2.2 攻击原理
MS08_067漏洞攻击原理是攻击者利用受害者主机默认开放的SMB服务端口445,发送恶意资料到该端口,通过MSRPC接口调用Server服务的一个函数,并破坏程序的栈缓冲区,获得远程代码执行(Remote Code Execution)权限,从而完全控制主机。

2.3 源码分析
MS08_67漏洞是通过MSRPC over SMB通道调用Server服务程序中的NetPathCanonicalize函数时触发的,而在远程访问其他主机时,会调用NetpwPathCanonicalize函数,对远程访问的路径进行规范化,而在NetpwPathCanonicalize函数中发生了栈缓冲区内存错误,造成可被利用实施远程代码执行。

3.SMB协议
SMB是一个协议名,全称是Server Message Block(服务器消息块协议),用于在计算机间共享文件、打印机、串口等,电脑上的网上邻居由它实现。SMB服务大多运行在windows系统上,在扫描过程中,我们通常会看到目标上的 445 TCP 端口打开,为 SMB 协议保留。

7. Linux系统攻防
(1)SMB协议是什么?
SMB(Server Message Block)协议是实现不同类型计算机之间文件和打印机共享服务的协议。
SMB的工作原理就是让NetBIOS协议与SMB协议运行在TCP/IP协议之上,并且利用NetBIOS的名字解析功能让Linux计算机可以在Windows计算机之间相互访问共享文件和打印机的功能。
(2)Samba是什么服务?
Samba是在Linux和UNIX系统上实现SMB (Server Messages Block,信息服务块)协议的一款免费软件。SMB是一种在局域网上共享文件和打印机的通信协议,它在局域网内使用Linux和Windows系统的机器之间提供文件及打印机等资源的共享服务。
(3).username_script 是什么?

  • Samba协议的一个漏洞CVE-2007-2447,用户名映射脚本命令执行
  • 影响Samba的3.0.20到3.0.25rc3 版本
  • 当使用非默认的用户名映射脚本配置选项时产生
  • 通过指定一个包含shell元字符的用户名,攻击者能够执行任意命令

.
8. 恶意代码分析实践
8.1恶意代码基础知识
恶意代码(Malware,或Malicious Code)指的是使计算机按照攻击者的意图执行以达到恶意目标的指令集。恶意代码根据执行方式、传播方式和对攻击目标的影响分为计算机病毒(Computer Virus)、蠕虫(Worm)、恶意移动代码(Malicious Mobile Code)、后门(Backdoor)、特洛伊木马(Trojan Horse)、僵尸网络(Botnet)、僵尸程序(Bot)、等。反病毒业界通常采用“三元组命名”规则来命名恶意代码。
8.1.1恶意代码分类
现有的恶意代码变种,在实现上可大致分为两类:一类是基于基础技术的共用,恶意代码开发人员通过重用基础模块实现变种;一类是恶意代码专门针对现有防范技术而设计开发的混淆技术。
混淆技术按实现机理,可分为两类:一类是干扰反汇编的混淆,使反汇编无法得到正确结果,从而阻碍进一步分析;另一类是指令/控制流混淆,此类混淆技术通常采用垃圾代码插入、寄存器重分配、等价指令替换及代码变换等方式,改变代码的语法特征,隐藏其内部逻辑关系。
从混淆技术产生作用的层面,可将其分为代码层混淆和行为层混淆两类:代码层混淆通过变形、压缩等方式,模糊、隐藏或改变原有代码特征,从而使基于代码特征的检测失效;行为层混淆则通过垃圾行为插入、执行顺序变换及等价行为替换等方式,改变行为序列或执行流程,使基于行为序列或流程图的检测失效。
8.1.2计算机病毒
计算机病毒在1983年由Fred Cohen首次提出。1994年我国的《中华人名共和国计算机安全保护条例》给出了我国对计算机病毒的具有法规效力的定义。计算机病毒的基本特性:感染性、潜伏性、可触发性、破坏性、衍生性等。计算机病毒潜在的感染目标可分为可执行文件、引导扇区和支持宏指令的数据文件三大类。计算机病毒的传播渠道包括移动存储、电子邮件及下载、共享目录等。
8.1.3网络蠕虫
网络蠕虫是一种通过网络自主传播的恶意代码,可以进行自我复制。蠕虫的内部组成结构有弹头、传播引擎、目标选择算法、扫描引擎和有效载荷。
8.1.4后门与木马
后门是允许攻击者绕过系统常规安全控制机制的程序,能够按照攻击者自己的意图提供访问通道;木马(特洛伊木马)是指一类看起来具有某个有用或善意目的,但实际掩盖着一些隐藏恶意功能的程序。

后门工具能够为攻击者提供多种不同类型的访问通道,包括本地权限提升和本地账号、单个命令的远程执行、远程命令行解释器访问、远程控制GUI、无端口后门等。对于UNIX平台,后门工具则也可以利用inittab系统初始化脚本、inetd网络服务配置、与用户登录或程序激活相关的用户启动脚本、Crond后台程序计划任务来配置自启动等。

特洛伊木马程序的目的有欺骗用户或系统管理员安装特洛伊木马程序、隐藏在计算机的正常程序中等。
8.1.5僵尸网络与僵尸程序
僵尸网络是在网络蠕虫、特洛伊木马、后门工具等传统恶意代码形态的基础上发展融合而产生的一种新型攻击方式。僵尸网络是指攻击者处于恶意目的,传播僵尸程序控制大量主机,并通过一对多的命令与控制信道所组成的网络。僵尸网络具有恶意性和网络传播性。最早出现的IRC僵尸网络由僵尸网络控制器(botnet controller)和僵尸程序两部分组成。

僵尸程序分为主体功能模块和辅助功能模块,主体功能模块包括命令与控制模块和传播模块,辅助功能模块包括信息窃取模块、主机控制模块、下载更新模块和防分析检测模块。当前主流的僵尸网络命令与控制机制有基于IRC协议的命令控制机制、基于HTTP协议的命令与控制机制和基于P2P协议的命令与控制机制三大类。
8.2恶意代码检测
恶意代码检测方法,可以分为基于启发式(heuristic-based)的检测和基于特征(signature-based)的检测两大类。
基于启发式的检测方法,通过比较系统上层信息和取自内核的系统状态来识别隐藏的文件、进程及注册表信息。还有一些研究工作通过监控系统特定资源来识别恶意代码。根据预先设定的规则判断恶意代码存在的可能性,其优势在于可检测新恶意代码样本;但其规则的生成依赖于分析人员的经验,在应用中易引发高误报及漏报率,因此在实际检测系统中应用较少。
基于特征的检测方法,则根据由恶意代码中提取的特征进行检测,与基于启发式的检测方法相比,具有效率高、误报率低等优点,因此被广泛应用于恶意代码检测工具之中,是目前恶意代码检测比较常见的方法。
8.3恶意代码分析
恶意代码分析,一般分为静态分析和动态分析两种。
静态分析会首先对可执行程序进行反汇编,在此基础上,分析并提取代码的特征信息。可以看出,静态分析本身并不需要实际执行代码,因此,不会对系统产生实质上的危害。但是,由于静态所分析的代码不一定是最终执行的代码,可能消耗大量时间于无用代码。于此同时,静态分析对反汇编技术的依赖也导致了其局限性。首先,恶意代码可使用各种混淆技术阻碍反汇编分析,主要有重排、加壳、垃圾代码插入等方法,有很多工作都试图将混淆代码恢复为混淆前的代码,来提高检测能力。但很多时候不能解决寄存器重分配、等价替换等其他混淆手段。
动态分析,则是在代码执行过程中进行分析,直接执行所分析的代码,但动态分析一次执行过程只能获取单一路径行为,而一些恶意代码存在多条执行路径,有一部分工作建立系统快照递归探索多执行路径的方法,使得动态分析方法有所进步。此外还开发了一系列动态分析工具来辅助人工分析如CWSandbox等。
9. 软件安全攻防--缓冲区溢出和shellcode
9.1 反汇编
9.1.1编程原理
通常,编写程序是利用高级语言如C,C++,Delphi等高级语言进行编程的,然后再经过编译程序生成可以被计算机系统直接执行的文件(机器语言)。反汇编即是指将这些执行文件反编译还原成汇编语言或其他语言。但通常反编译出来的程序与原程序会存在些许不同,虽然执行效果相同,但程序代码会发生很大的变化。
9.1.2相关工具
反汇编工具如:OD、IDA Pro、radare2、DEBUG、C32等。
反汇编可以通过反汇编的一些软件实现,比如DEBUG就能实现反汇编,当DEBUG文件位置设置为-u时,即可实现反汇编。 而使用OD实现反汇编时,杀毒软件可能会报告有病毒与木马产生,此时排除即可,且使用OD需要有扎实的基础才能看懂。
9.2 一些汇编指令的机器码
1、NOP:NOP指令即“空指令”。执行到NOP指令时,CPU什么也不做,仅仅当做一个指令执行过去并继续执行NOP后面的一条指令。(机器码:90)
2、JNE:条件转移指令,如果不相等则跳转。(机器码:75)
3、JE:条件转移指令,如果相等则跳转。(机器码:74)
4、JMP:无条件转移指令。段内直接短转Jmp short(机器码:EB)段内直接近转移Jmp near(机器码:E9)段内间接转移Jmp word(机器码:FF)段间直接(远)转移Jmp far(机器码:EA)
5、CMP:比较指令,功能相当于减法指令,只是对操作数之间运算比较,不保存结果。CMP指令执行后,将对标志寄存器产生影响。其他相关指令通过识别这些被影响的标志寄存器位来得知比较结果。

9.3 缓冲区溢出攻击的基本概念
向缓冲区中填入过多的数据超出了边界,导致数据外溢,覆盖了相邻的内存空间,利用缓冲区溢出可以改写数据、改变程序执行流程,干扰系统运行,破坏系统完整性,任意执行恶意代码
9.4 shellcode
shellcode就是一段机器指令(code),通常这段机器指令的目的是为获取一个交互式的shell(像linux的shell或类似windows下的cmd.exe),所以这段机器指令被称为shellcode
在实际的应用中,凡是用来注入的机器指令段都通称为shellcode,功能可以是添加一个用户、运行一条指令等。
10. Web应用程序安全攻防
10.1 SQL
SQL (Structured Query Language) 是具有数据操纵和数据定义等多种功能的数据库语言,这种语言具有交互性特点,能为用户提供极大的便利,数据库管理系统应充分利用SQL语言提高计算机应用系统的工作质量与效率。SQL语言不仅能独立应用于终端,还可以作为子语言为其他程序设计提供有效助力,该程序应用中,SQL可与其他程序语言一起优化程序功能,进而为用户提供更多更全面的信息。

10.2 SQL注入
SQL 注入(SQL Injection)是一种常见的网络攻击方式,攻击者通过向应用程序的输入字段中插入恶意的 SQL 代码,从而篡改后台数据库查询语句,达到非法访问或操作数据库的目的。

10.3 XSS
XSS(跨站脚本攻击,Cross-Site Scripting)是一种常见的网络安全漏洞,它允许攻击者将恶意脚本注入到网页中,当其他用户浏览这个网页时,恶意脚本就在他们的浏览器中执行。攻击者在网页的输入点(如评论区、搜索框等)输入 JavaScript 等脚本代码,网站没有对这些输入进行过滤,就把它们直接展示在网页上。当其他用户访问这页内容时,这些脚本就会在他们的浏览器中运行。
11. 浏览器安全攻防实践
11.1 Web浏览器的安全问题
浏览器安全可以分为三大块——Web 页面安全、浏览器网络安全和浏览器系统安全。在web页面中的安全策略中最基础、最核心的安全策略:同源策略(Same-origin policy)。

11.2 Web浏览器的威胁
Web浏览器主要面临五大威胁
1、注入漏洞。注入漏洞会让攻击者方便将恶意代码植入到目标应用系统(如,解析器)中。
2、身份验证失败。身份验证失败是由身份验证和会话管理控件的实施不当而引起的。
3、敏感数据泄漏。当Web应用不能充分保护诸如:会话ID、密码、财务信息、以及客户数据等敏感信息时,数据泄露就会发生。
4、XML外部实体。XML外部实体注入(通常被称为XML External Entity,XXE)可以让攻击者通过Web应用的漏洞,干扰应用对于XML数据的处理。
5、受损的访问控制。从概念上说,访问控制机制就是要确定用户是否可以执行,与之身份和权限相符的操作。而当用户可以在其预期权限之外执行某项操作时,那么就出现了访问控制的破坏。
11.3 浏览器的功能模块
HTML 解释器:将 HTML 文档经过词法分析输出 DOM 树。
CSS 解释器:解析 CSS 文档, 生成样式规则。
图层布局计算模块:布局计算每个对象的精确位置和大小。
视图绘制模块:进行具体节点的图像绘制,将像素渲染到屏幕上。
JavaScript 引擎:编译执行 Javascript 代码。
11.4 Web欺骗
Web欺骗的原理是攻击者通过伪造某个www站点的影像拷贝,使该影像Web的入口进入到攻击者的Web服务器,并经过攻击者机器的过滤作用,从而达到攻击者监控受攻击者的任何活动以获取有用信息的目的。欺骗能够成功的关键是在受攻击者和其他Web服务器之间设立起攻击者的Web服务器,这种攻击种类在安全问题中称为"来自中间的攻击"。
11.5 MS06-014
MS06-014漏洞的全称为“MS Internet Explorer (MDAC) Remote Code Execution Exploit (MS06-014)”,该病毒一般是通过恶意网页代码的方式传播。如果用户没有打过微软MS06-014漏洞补丁,当浏览含有某些恶意代码的网页时,就会感染此病毒,从一些指定的网址中下载病毒、木马程序,从而导致被感染的计算机被黑客远程控制。

网络攻防实践课总结:收获与不足

通过本学期的十一项网络攻防实践课程,我对网络安全领域的基本技能与攻防理念有了更加系统的理解与认识。从基础的Linux命令操作、常见漏洞利用,到信息收集、Web渗透测试,再到防火墙绕过、权限提升以及恶意代码分析,每一次实践都让我在动手操作中掌握了关键的知识点,并对网络攻防的整体流程形成了初步的认知体系。让我一个本科学数学的人也能够配得上研究生的网络空间安全专业的名头,

通过这十一次实验,我认为最大的提升是动手实践能力的增强。密码专业的学习往往更注重理论学习,而理论学习往往较为抽象。这是我第一次在学校里上实验课,此次课程安排了大量实操任务,使我在反复练习中真正掌握了工具的使用方法与攻击流程。例如,在SQL注入和XSS跨站脚本攻击实践中,我不但了解了攻击原理,还能通过Burp Suite等工具进行参数篡改与回显分析,进一步巩固了输入验证和前端安全防护的重要性。

此外,通过对权限提升、密码破解、信息收集等攻击技术的动手操作,我认识到系统配置不当、口令强度不足以及服务冗余等问题极易成为攻击突破口。通过复现常见漏洞(,我也进一步理解了Web系统开发中需要注意的安全细节,例如对用户输入的过滤、文件权限的严格控制等。

在实验后期涉及到的恶意代码分析与检测实验中,我首次接触了对木马程序的逆向分析与特征提取,尽管有一定难度,但也激发了我对二进制安全和病毒防护领域的兴趣。课程中对Kali Linux、Metasploit、Nmap、Hydra、Burp Suite等工具的使用训练。

然而,这次课程中也暴露出我的一些不足与问题。首先是在时间管理和实验进度方面,由于部分实验内容较为复杂,我在前期没有做好时间规划,导致部分实验需要赶工完成,影响了理解深度。其次,在实际操作中,面对多工具协作和环境搭建时,出现了配置错误、系统不兼容等问题,说明我在底层网络协议与虚拟化平台的掌握上还有待提高。

总体而言,这门网络攻防实践课程为我打开了信息安全技术世界的大门。虽然还存在不足,但我对网络安全有了更强的兴趣,也为未来的学习和职业生涯打下了坚实基础。说不定正像老师开始上课时所说某一天单位招人时我也能侃侃而谈的聊两句攻防知识而被单位招录,虽然网络攻防的课程已经结束了,但是我还会持续关注相关的知识,进一步拓展视野和技能,同时,我也不会忘记这十六次课强哥的风趣幽默和尽职尽责,最后感谢强哥对我们的关心和付出。

参考文献

《网络攻防技术与实践》
Ubuntu允许ssh远程登录
SMB协议
恶意代码分析——基础技术篇
Linux下关闭ASLR(地址空间随机化)的方法
VmwareTools安装
网页挂马分析实践参考

posted @ 2025-06-12 09:14  覆盌  阅读(73)  评论(0)    收藏  举报