合肥工业大学 网络攻防实验 项目二实验报告
项目二
一、搭建实验环境
1.实验要求:
利用VMware的NAT模式或Host模式构筑一个类似下面的虚拟网络

2、实验原理:
(1)在NAT模式下,虚拟系统需要借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说,使用NAT模式虚拟系统可把物理主机作为路由器访问互联网。NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,因此虚拟系统也就无法和本局域网中的其他真实主机进行通讯。采用NAT模式最大的优势是虚拟系统接入互联网非常简单,不需要进行任何其他的配置,只需要宿主机器能访问互联网即可。
(2)Host模式:Host-Only模式其实就是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的。主机模式下,真实环境和虚拟环境是隔离开的;在这种模式下,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开。
3.实验过程及截图:
(1)实验环境:
主机:Windows10操作系统
虚拟机:Linux操作系统
模式:NAT模式
(2)实验过程:
①配置nat模式。选择菜单“编辑”>“编辑虚拟网络”,如下图:

②选中列表中的“VMnet8 NAT”,然后点击“NAT设置”按钮,和“DHCP设置”如下图(根据自己的IP地址配置):


③打开物理主机的网络连接,找到“VMware Network Adapter VMnet8”,右击设置属性,将IP设置在网段之内:

④将3台虚拟机设置成nat模式。
⑤设置路由器:将虚拟机“Ubuntu_1 64位的克隆”用作路由器。首先查看“Ubuntu_1 64位的克隆”的IP信息:

⑥开启路由的转发功能:

⑦以虚拟机2为例,在虚拟机2添加路由:

⑧在“Ubuntu_1 64位的克隆”路由器中添加路由信息:


⑨将其他两台虚拟机按照虚拟机2的方式,添加路由信息即可。
⑩至此,实验环境搭建完毕。

二、攻击实验
1.实验内容:
请在上述实验环境中,选择一台主机为攻击机,其余为正常主机。利用攻击机开展下列实验中的任意三个(在攻击机或正常主机上安装适当的工具如wireshark,抓取流量证明)
(1)MAC泛洪; (2)VLAN跨越;(3)ARP DOS;
(4)ARP Middleman,(5)IP地址欺骗;(6)ICMP DOS;
2.实验原理:
(1)MAC泛洪攻击:
①交换机工作原理:交换机收到数据帧的时候,先解封装数据链路层,查看这一层的源MAC地址,并且关联自己接收数据的这个接口,把关联MAC地址和接口的信息更新到MAC地址表里面。查看这一层的目标MAC地址,然后查询MAC地址表,根据目标MAC对应的接口将这个数据转发出去。如果这个时候,MAC地址表是空的/丢弃?广播-将这个数据帧进行复制,然后向各个接口转发出去
②MAC泛洪攻击原理:MAC地址表有一定的大小,当这个表满了的时候,交换机就不能再更新了,也就是不能再为新加进来的设备转发数据了,这时候我要转发一个数据帧,交换机查不到这个数据帧的对应条目(交换机不知道从哪个口发出去),就会将这个帧复制,进行广播,向所有接口转发出去。
(2)ARP DOS原理:
①ARP:地址解析协议,通过IP地址获取MAC地址,常见于局域网之中。作用:检测IP地址是否冲突;在二层网络中,通过IP地址获取MAC地址;获取网关IP地址,实现跨网段通信(代理ARP)。
②ARP DOS原理:通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断。
(3)ARP Middleman原理:
①中间人攻击(Man-in-the-Middle Attack,简称“MITM攻击”)是一种间接的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”。
3.实验过程及截图:
(1)首先查看虚拟机与虚拟机、虚拟机与主机之间的连通性:









(2)MAC泛洪攻击:
①虚拟机1开启ftp服务:

②主机先登录上ftp服务器,测试连通性:

③攻击机使用tcpdump抓包工具监听21号端口:

④攻击机输入macof,开始泛洪攻击:


④主机登录ftp服务器:

(输入账号:ftp ,密码:123456)
⑤主机登陆成功后,攻击机关闭macof指令,在tcpdump中查看抓包结果:

⑥攻击机的wireshark流量抓取:


⑦MAC泛洪攻击成功,成功获取到账号和密码
(3)ARP DOS攻击:
①目标机先进行网络测试:

②攻击机使用arpspoof工具,开始ARP攻击:(目标机IP:192.168.211.130,网关:192.168.211.2)

③目标机进行网络测试,发现无法上网:

④攻击机结束ARP攻击,目标机可以正常联通网络:

⑤ARP DOS攻击成功,成功使目标机断网。
(4)ARP Middleman攻击:
①攻击机开启转发功能:

②攻击机使用arpsppof工具进行欺骗:

③攻击机使用driftnet开始抓取:

④目标机浏览图片:

⑤攻击机截获目标机正在浏览的图片:


⑥ARP Middleman攻击成功,成功获取到目标机正在浏览的图片。
三、项目总结:
这是第一次自己动手去做有关网络攻防方面的实验,对我自己来讲,收获还是蛮大的。
首先肯定是知识上的收获。以前对网络攻防的理解都只是知识、理论层面上的,尽管知道各种攻击的原理是什么,但是对于他如何付储于实践是没有一个清晰的认知的。但是通过这次的项目,有了一个可以动手实操的机会,也算是一个将理论转化为实践的过程吧。而且也在这次项目当中,使用到了几种网络抓包、扫描等工具,例如:wireshark、nmap等等。通过使用这些工具,使我更直观的感受到了在进行攻防的结果。
并且通过这次的项目,让我对网络攻防产生了点兴趣。以前总觉得网络攻击可能和我产生的只能是被动关系,但是这次的实验,让我改变了这个观点。通过一些命令、工具便可以成功地获取到账号信息、网络数据、断网等,网络攻击的这个过程使我更加清楚地感受到了网络安全的重要性。
在这次的项目中,也有我需要改进的地方。例如:对于个别攻击的理论理解的不到位。实践过程中还要更加认真仔细,例如在填写IP的时候,总是不经意就填写错误,还有在输入指令的时候,总是会漏掉一些字母等等。而且对于问题不应该只停留于表面,更应该究其所以然,查找更多的资料,去深入了解致谢攻击背后的原理和相应的防护措施等。
我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b
我想将我的MacSnowLeopardruby从1.8.7升级到1.9.1版本,有人知道轻松且最好的升级方法吗?因为我读了一些论坛/帖子/博客/讨论说覆盖苹果发布的ruby不好将Rails从版本2.2.2升级到2.3.8的最佳方法是什么?因为我找到的所有信息都仅适用于豹/老虎,而且很少有关于雪豹的复杂文章。他们还说覆盖apple提供的rails不好吗。谁能帮帮我?谢谢。 最佳答案 DanBenjamin有一些greatinstructionsforcompilingandinstallingRuby,RubyGemsandRai
我最近决定从我的系统中卸载RVM。在thispage提出的一些论点说服我:实际上,我的决定是,我根本不想担心Ruby的多个版本。我只想使用1.9.2-p290版本而不用担心其他任何事情。但是,当我在我的Mac上运行ruby--version时,它告诉我我的版本是1.8.7。我四处寻找如何简单地从我的Mac上卸载这个Ruby,但奇怪的是我没有找到任何东西。似乎唯一想卸载Ruby的人运行linux,而使用Mac的每个人都推荐RVM。如何从我的Mac上卸载Ruby1.8.7?我想升级到1.9.2-p290版本,并且我希望我的系统上只有一个版本。 最佳答案
网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识
我已经通过提供MagickWand.h的路径尝试了一切,我安装了命令工具。谁能帮帮我?$geminstallrmagick-v2.13.1Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingrmagick:ERROR:Failedtobuildgemnativeextension./Users/ghazanfarali/.rvm/rubies/ruby-1.8.7-p357/bin/rubyextconf.rbcheckingforRubyversion>=1.8.5...yescheckingfor/
是否可以在不实际下载文件的情况下检查文件是否存在?我有这么大的(~40mb)文件,例如:http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm这与ruby不严格相关,但如果发件人可以设置内容长度就好了。RestClient.get"http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm",headers:{"Content-Length"=>100} 最佳答案
我在这方面尝试了很多URL,在我遇到这个特定的之前,它们似乎都很好:require'rubygems'require'nokogiri'require'open-uri'doc=Nokogiri::HTML(open("http://www.moxyst.com/fashion/men-clothing/underwear.html"))putsdoc这是结果:/Users/macbookair/.rvm/rubies/ruby-2.0.0-p481/lib/ruby/2.0.0/open-uri.rb:353:in`open_http':404NotFound(OpenURI::HT
我想在Ruby的TCPServer中获取客户端的IP地址。以及(如果可能的话)MAC地址。例如,Ruby中的时间服务器,请参阅评论。tcpserver=TCPServer.new("",80)iftcpserverputs"Listening"loopdosocket=tcpserver.acceptifsocketThread.newdoputs"Connectedfrom"+#HERE!HowcanigettheIPAddressfromtheclient?socket.write(Time.now.to_s)socket.closeendendendend非常感谢!
我正在使用macos,我想使用ruby驱动程序连接到sqlserver。我想使用tiny_tds,但它给出了缺少free_tds的错误,但它已经安装了。怎么能过这个?~brewinstallfreetdsWarning:freetds-0.91.112alreadyinstalled~sudogeminstalltiny_tdsBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtiny_tds:ERROR:Failedtobuildgemnativeextension.完整日志如下:/System
深度学习12.CNN经典网络VGG16一、简介1.VGG来源2.VGG分类3.不同模型的参数数量4.3x3卷积核的好处5.关于学习率调度6.批归一化二、VGG16层分析1.层划分2.参数展开过程图解3.参数传递示例4.VGG16各层参数数量三、代码分析1.VGG16模型定义2.训练3.测试一、简介1.VGG来源VGG(VisualGeometryGroup)是一个视觉几何组在2014年提出的深度卷积神经网络架构。VGG在2014年ImageNet图像分类竞赛亚军,定位竞赛冠军;VGG网络采用连续的小卷积核(3x3)和池化层构建深度神经网络,网络深度可以达到16层或19层,其中VGG16和VGG