网络安全实验报告姓名:班级:自动化92 学号:实验一:网络命令操作与网络协议分析(1)实验目的:熟练掌握网络协议分析软件ethereal分析应用协议。
熟悉网络基本命令的操作与功能。
(2)实验过程:网络命令:netcat、arp、route、nslookup、SSh、Ping、tracert、netstat、ipconfig、telnetethereal的主要功能:设置流量过滤条件,分析网络数据包,流重组功能,协议分析。
(3)实验内容:①跟踪某一网站如xjtu的路由路径在DOS界面下输入命令tracert 202.117.1.13,以跟踪学校网站的路由路径,结果截图如下:②查看本机的MAC地址和ip地址:使用ipconfig/all命令为DNS和WINS服务器显示它已配置且所要使用的附加信息(如IP地址等),并且显示内置于本地网卡中的物理地址(MAC)。
运行结果截图如下:③telnet到linux服务器,执行指定的命令在DOS界面下,输入命令:telnet 192.168.2.254,便可以登录到Linux服务器,输入用户名和密码(在Linux下输入密码时不回显),回车后便可以登录Linux服务器。
以下的截图为在登录Linux服务器后执行的一些命令。
③将ssh连接到linux服务器,执行指定的命令,截图如下:④nc应用:telnet,绑定程序(cmd,shell等),扫描,连接等,截图如下:⑥选择任意一种应用层协议如www,ftp,qq等,利用ethereal对该协议进行分析。
实验报告要求有ethereal捕获的网络流量和数据包协议解析的屏幕截图。
1.Ethereal对该协议进行分析。
捕获过滤选择:tcp port 21 ,以此实现观察TCP 21端口的包,即观察FTP协议包;tcp.stream eq 2可以观看流重组。
点击“follocw tcp stream”,可以观察协议会话过程,截图如下:2.以下为选用ftp协议进行分析,截图如下:图中显示了TCP的三次握手协议的过程中数据流的状态⑦分析honeynet challenge dataset的真实攻击网络流量利用ethereal捕获的网络流量如下图所示:对数据包流量的分析:从捕获的网络流量可以发现,有许多的SYN 信号,但是TCK信号很少,因此可以认为三次握手没有建立,连接失败。
实验二:黑客攻击技术(1)实验要求:掌握典型攻击技术原理熟悉典型攻击软件的功能及操作分析黑客攻击软件执行输出结果(2)实验内容:nampnessuscraft network packet: hpingcrack password: john the ripperweb attack: niktogoogle hacking tools(3)实验任务:①利用winnmap扫描功能,给出扫描报告及分析,截图如下:②nessus应用,给出漏洞扫描报告,截图如下:设置扫描策略添加新扫描扫描结果扫描报告:(3)③执行nikto对web服务器进行漏洞扫描。
无法完成④john应用及配置在DOS界面下输入命令如下:破解后生成的明文为$LM$9eceeb689e046fcd:NEWXJTU$LM$aad3b435b51404ee:⑤google hacking tools应用打开Google Hacking工具,在网站输入框中输入西安交通大学的网址,点击查询网站详情,可以在随后弹出的网页上查看交大网站的详细信息,包括站点创建时间,IP地址,IP所在地,WEB服务器等信息。
截图如下:实验三:网络安全技术实验实验要求:1.掌握防火墙,VPN,入侵检测系统等安全技术的基本原理和实现过程2.熟悉IPSec、SSL、Kerberos、PGP中的安全认证协议关键技术3.熟练使用IPSec、SSL、Kerberos、PGP等安全工具实验内容:1.防火墙2.VPN3.IPSec4.SSL5.Kerberos6.PGP7.Snort实验任务:1.防火墙:利用个人防火墙软件,定义防火墙规则,允许或是禁止某类网络流量的访问。
利用EssetSmartSecurity杀毒软件定义防火墙规则:初始界面:自定义新规则:2.IPSec:windows自带的IPSec服务配置及使用。
搭建一个VPN,实现隧道模式,传输模式等功能。
(1)、启用xp的远程访问组件,该组件默认不启用。
打开服务services.msc,找到Routing and Remote Access服务,设置启动类型为自动,并启动服务。
(2)、双击打开属性,勾选“虚拟专用网”下的复选框。
打开“用户页”,选择允许远程拨入的用户,或者新建用户。
打开网络页,确保计算机上已经安装了IPX/SPX协议。
服务器上设置完成。
(3)、打开客户机,打开网上邻居,单击创建一个新的连接。
点击“下一步”单击“连接到我的工作场所的网络”单击“虚拟专用网络连接”输入公司名,单击下一步输入VPN服务器的IP地址,单击完成客户机创建连接完毕。
(5)、打开刚刚创建好的连接,输入允许介入的用户名和密码,单击“连接”网络连接后,客户机成功接入XP VPN服务器3.SSL:openSSL配置及使用4.Kerberos:windows 实现的kerberos认证服务器配置及使用5.PGP:GNUpgp实验3,4,5由于网络和软件原因无法完成。
6.Snort:定义变量,配置规则,定义新的规则,学习攻击检测规则及报警分析在使用snort之前请先安装wireshark,因为会用到其中的winpcap:1.将snort安装在C盘根目录下。
2.安装完成后先把rules.rar解压,将里面的文件全部直接放在snort\rules\下3.将snort.conf拷贝到bin目录下4.在cmd中执行snort的命令XX为网卡号,一般是1、2、3等,根据自己的机器实际情况试一下。
snort -i XX -dev -l ..\log -h 192.168.0.0/24 -c snort.conf 查看log文件夹下的log文件和报警文件。
实验结果截图如下:Snort扫描到的端口查看snort.conf实验四:网络安全软件开发:网络扫描器实验要求:1. 熟悉网络扫描器实现的关键技术2. 熟练运用C#,java 开发网络应用程序3. 熟悉网络协议字段含义及结构实验任务:1. 网络扫描器实现基本的地址扫描,端口扫描,TCP/UDP 扫描,实现多线程扫描。
2. 图形化界面的网络扫描器软件3. 提交源代码、可执行程序及代码注视文件及执行结果截图。
实验分析:(基于java )多线程:电脑上有322个端口。
如果只启动一个线程的话322个端口需要的时间可以用小时计算。
解决这个问题需要用到多线程原理。
多线程实现可通过继承Thread类或者实现Runnable接口来达到。
主机端口扫描:与目标主机创建TCP连接,如果成功则说明端口监听中,同事对正在监听的端口做识别操作!默认按照常用端口服务给出提示!例如21,则提示ftp服务。
UDP扫描是向目标主机端口发送固定字符,读取目标主机回复内容!TCP扫描原理:利用.Socket 类建立socket连接,如果无法与指定的IP和端口建立连接,将会抛出IOException。
我们用try-catch对这个IOException 异常进行捕获,以判断是否成功与指定的IP端口建立连接。
如果成功建立了连接,说明指定IP的指定端口已经开放;如果程序抛出了一个IOException异常被我们捕获,则说明指定的IP没有开放指定的端口。
扫描指定端口段则是利用循环不断与服务器的指定端口进行连接,供我们判断是否开放。
UDP扫描原理:这种方法使用的是UDP协议。
由于这个协议很简单,所以扫描变得相对比较困难。
这是由于打开的端口对扫描探测并不发送一个确认,关闭的端口也并不需要发送一个错误数据包。
幸运的是,许多主机在你向一个未打开的UDP端口发送一个数据包时,会返回一个 ICMP_PORT_UNREACH错误。
这样你就能发现哪个端口是关闭的。
UDP和ICMP错误都不保证能到达,因此这种扫描器必须还实现在一个包看上去是丢失的时候能重新传输。
这种扫描方法是很慢的,因为RFC对ICMP错误消息的产生速率做了规定。
同样,这种扫描方法需要具有root权限。
利用.DatagramSocket 类给指导IP发送DatagramPacket 数据包,如果捕获到.PortUnreachableException异常,说明对方主机返回了ICMP_PORT_UNREACH的错误,说明端口关闭,否则如果在指定等待时间内没有得到回复,则捕获到.SocketTimeoutException连接超时异常,说明端口是开放的。
判断IP地址和端口合法性:在得到端口和建立socket之前一定要判断IP地址和端口的合法性,因为端口的范围是在1~65535,如果我们去建立范围外端口的连接就是没必要的,而且是不可行的。
IP地址表示成XX.XX.XX.XX格式,XX范围在0~255之间,在这之外是不合法的。
图形化界面(GUI)设计:主要用到了java.awt提供的和图形界面相关的类。
为了使界面更美观使用了swing组件。
socket中的close方法:不需要一个socket的时候应关闭它,因为socket是一种有限的系统资源。
关闭socket将释放有关的资源,并允许绑定在此socket 上的端口被重新使用。
Socket被关闭之后就不能再向它收发数据UDP缺陷说明:开放的UDP端口并不需要送回ACK包,而关闭的端口也不要求送回错误包(而本实验基于的原理就是那些主机在关闭的UDP端口会回送ICMP Port Unreachable错误,因此有很大的几率误判,由于时间原因和自身知识的局限不能想到更好的方法),所以利用UDP包进行扫描非常困难。
UDP包和ICMP 包都是不可靠的,速度慢(差错报文产生的速度有限制),并且需要root权限才能读取ICMP消息,因此使用的局限性好大。
实验过程:实验结果截图:1 初始界面:2 输入IP有误:3 输入的端口号有误:4 对站点202.117.35.239进行TCP扫描:5 对站点202.117.35.239进行UDP扫描:(扫描结果需要等待一段时间,这里在程序中设置等待时间为1分钟)结果不尽如人意,扫描的响应速度是个很大的问题,而且没有找到好的方案解决扫描的主机关闭UDP端口而并不回送的问题导致的端口开放的误判,因此还是有很大的局限性。
网上查资料说UDP扫描主要用在局域网内,在大范围网络收到防火墙的限制等扫描效率不好。
结果可以看出发出的数据包都没有收到回复,但是显然不能因此判断端口开放,还需要进一步的验证,比如重新发送UDP数据包或者用别的方式以排除防火墙直接过滤通信的可能。