网络端口扫描实验指导

网络端口扫描实验指导
网络端口扫描实验指导

《网络端口扫描》实验指导

一、实验目的

1、学习端口扫描技术的基本原理,理解端口扫描技术在网络攻防中的应用;

2、通过上机实验,熟练掌握目前最为常用的网络扫描工具Nmap的使用,并能利用工具扫描漏洞,更好地弥补安全不足。

二、实验预习提示

1、网络扫描概述

扫描是通过向目标主机发送数据报文,然后根据响应获得目标主机的情况。根据扫描对象的不同,可以分为基于主机的扫描和基于网络的扫描2种,其中基于主机的扫描器又称本地扫描器,它与待检查系统运行于同一节点,执行对自身的检查。通常在目标系统上安装了一个代理(Agent)或者是服务(Services),以便能够访问所有的文件与进程,它的主要功能为分析各种系统文件内容,查找可能存在的对系统安全造成威胁的漏洞或配置错误;而基于网络的扫描器又称远程扫描器,一般它和待检查系统运行于不同的节点上,通过网络来扫描远程计算机。根据扫描方式的不同,主要分为地址扫描、漏洞扫描和端口扫描3类。

(1)地址扫描

地址扫描是最简单、最常见的一种扫描方式,最简单的方法是利用Ping程序来判断某个IP地址是否有活动的主机,或者某个主机是否在线。其原理是向目标系统发送ICMP回显请求报文,并等待返回的ICMP回显应答。

传统的Ping扫描工具一次只能对一台主机进行测试,效率较低,现在如Fping(Fast ping)等工具能以并发的形式向大量的地址发出Ping请求,从而很快获得一个网络中所有在线主机地址的列表。但随着安全防范意识的提供,很多路由器和防火墙都会进行限制,只要加入丢弃ICMP回显请求信息的相关规则,或者在主机中通过一定的设置禁止对这样的请求信息应答,即可对ICMP回显请求不予响应,

(2)漏洞扫描

漏洞扫描是使用漏洞扫描器对目标系统进行信息查询,检查目标系统中可能包含的已知漏洞,从而发现系统中存在的不安全地方。其原理是采用基于规则的匹配技术,即根据安全专家对网络系统安全漏洞、黑客攻击案例的分析和系统管理员对网络系统安全配置的实际经验,形成一套标准的网络系统漏洞库,然后在此基础上构成相应的匹配规则,通过漏洞库匹配的方法来检查目标设备是否存在漏洞。在端口扫描后,即可知道目标主机开启的端口以及端口上提供的网络服务,将这些相关信息与漏洞库进行匹配,即可查看是否有满足匹配条件的漏洞存在。漏洞扫描大体包括CGI、POP3、FTP、HTTP和SSH漏洞扫描等。漏洞扫描的关键是所使用的漏洞库,漏洞库信息的完整性和有效性决定了漏洞扫描器的性能,漏洞库的修订和更新的性能也会影响漏洞扫描器运行的时间。

(3)端口扫描

端口是网络连接的附着点,不同的应用进程使用不同的端口,如果一个应用程序希望提供某种服务,它将自己附着在端口上等待客户请求的到来(即对端口进行监听),希望使用此服务的客户则在本地主机分配一个端口,与远程主机的服务端口连接,客户通过联系这些特殊的端口来获取特殊的服务。在网络连接中,服务器端的进程需要一直处于监听状态,并且持续使用相同端口;而客户端的进程则只需要在和服务器建立连接时动态地创建一个端口,并在连接结束后立即释放。一般来说,端口扫描的对象是前者,即作为网络服务开放的

端口。

由于网络端口是计算机和外界相连的通道,因此疏于管理可能留下严重的安全隐患。端口扫描是利用网络协议的安全漏洞,通过非常规的方法来确定连接在网络上目标主机的哪些端口是开放的技术。其原理是通过向目标系统的TCPhuoUDP端口发送一定数量、带有各种特殊标识的报文,然后记录目标系统反馈的报文信息,再分析判断其上端口的状态。

2、端口扫描的用途

一般来说,端口扫描有以下三种用途:

(1)获取目标系统上的端口信息,用于识别其上具有的TCP和UDP服务;

(2)获得目标系统返回报文的某些特殊标识,识别目标系统的操作系统类型;

(3)进一步结合其他技术得到具体端口的详细信息,从而识别某个特定服务的版本号。

3、端口扫描的方法

(1)基于连接的扫描

1)TCP全连接扫描

TCP全连接扫描是端口扫描的基本形式,扫描主机通过TCP/IP协议的三次握手与目标主机的指定端口建立一次完整的连接。建立连接成功时,目标主机回应一个SYN/ACK数据包,表明目标主机的目标端口处于监听(打开)状态;建立连接失败时,目标主机会向扫描主机发送RST响应,表明该目标端口处于关闭状态。TCP全连接扫描的优点是易于实现,系统中任何用户都有权限使用此调用;缺点是很容易被发觉并被过滤掉,目标计算机的日志文件会显示一连串的成功连接和连接出错的服务信息。

2)TCP SYN扫描

TCP SYN扫描也称半开放扫描,扫描程序向目标主机端口发送一个SYN数据包,若收到RST响应则表明目标端口关闭,若收到SYN/ACK响应则表明目标端口开放,处于侦听状态,此时扫描程序再发送一个RST信号给目标主机,终止建立连接。由于并未建立全连接,故常将此扫描方式称为半开放扫描。TCP SYN扫描的优点是一般不会在目标主机上留下记录,但缺点是需要有管理员权限才能建立自己的SYN数据包。

(2)隐蔽扫描

隐蔽扫描技术不含标准的TCP三次握手协议的任何一部分,比SYN扫描更隐蔽,很难被记录追踪。隐蔽扫描采用包含FIN标志的TCP包来探测端口,如果探测的端口处于关闭状态,则目标主机返回一个RST信号;如果探测的端口处于侦听状态,则目标主机会忽略对FIN数据包的回复,即目标主机不会返回RST信号。Xmas Tree和Null扫描方式是基于以上原理的变形和发展。Xmas Tree扫描打开FIN、URG和PSH标志,而Null扫描则关闭所有标志,这些组合的目的都是为了通过所谓的FIN标记监测器的过滤。隐蔽扫描的优点是比较隐蔽,不易被记录追踪,但通常用于UNIX系统及其他少数系统,对Windows系统不适用,同时与SYN扫描类似,也需要自己构造IP数据包。

(3)辅助扫描手段

1)分段扫描

分段扫描一般结合其他方法来提供更为隐蔽的扫描,它并不是直接发送TCP探测数据包,而是将原来封装在一个报文的探测信息(往往在TCP报头中)拆分至两个或多个较小的报文中,算好各自的偏移,并都置系统的标识,然后发送,使其难以被过滤。扫描器从IP分片中劈开TCP头,由于包过滤防火墙看不到一个完整的TCP头,无法对应相应的过滤规则,从而可绕过包过滤防火墙。

2)ACK扫描

ACK扫描并不能识别端口是否打开,但可以判断目标主机是否受到防火墙的保护,以及防火墙的类型。因为RFC文档规定对于来访的ACK报文,物理端口打开与否,均返回

RST报文。因此如果发送方通过这种方式得到RST报文,就可以判断目标主机上未安装防火墙或者只有简单的包过滤防火墙(它无法判断此ACK报文是否合法);如果发送方没有收到RST报文,则要么目标主机关机,要么受基于状态检测的防火墙保护,因为基于状态监测的防火墙会将突然来访的ACK报文全部丢弃,不作应答。

(4)非TCP扫描

1)UDP扫描

端口扫描一般是扫描TCP端口,因为TCP是面向连接的协议,目标系统通常会返回一些有用的信息;而UDP为不可靠的无连接协议,为了发现正在服务的UDP端口,通常产生一个内容为空的UDP数据包发往目标端口,若目标端口上有服务正在等待,则目标端口将返回表示错误的消息;如果目标端口处于关闭状态,则目标操作系统会发现一个ICMP Unreachable消息。

2)ICMP扫描

Ping命令发送ICMP请求包给目标IP地址,如果有应答则表示主机开机。如果要探测目标网络内主机的情况,可以构造ICMP广播报文,如果有机器响应,则可判断其开机。ICMP 扫描方法也可用来探测局域网的地址分配结构(如果有一个以上的主机响应广播报文,则表示此广播地址就是目标网络的广播地址)。如果已设置了目标网络的网关默认将外来的IP广播地址转换成第二层的物理广播地址,则可以结合IP欺骗技术,通过发送Ping的广播报文对目标实现DDos分布式拒绝服务攻击。

3)操作系统指纹识别

不同的网络操作系统在处理网络信息时是不完全相同的,有着各自不同的特点,这些特点被称为系统的“指纹”。通过识别这些指纹可以实现网络系统的识别。

4、常见的扫描工具

常见的免费扫描工具有Nmap、Superscan、Nessus、流光、Microsoft的系统漏洞检测工具MBSA、X-Scan的那个,商业安全扫描产品有Symantec的NetRecon、NAI的CyberCops Scanner、Cisco的Secure Scanner、ISS的系列扫描产品等。

Nmap是一款开放源代码的网络探测和安全审核的工具,基本上包括了所有知名的扫描方式,并且提供了许多非常实用的辅助功能以对目标主机作进一步的侦测,如操作系统指纹识别、进程用户分析以及众多可选的方式来逃避目标系统的监测等。Nmap可任意指定主机、网段甚至整个网络作为扫描目标,扫描方式也可通过添加合适的选项按需组合。

Nmap运行通常会得到被扫描主机端口的列表、周知端口的服务名(如果可能)、端口号、状态和协议等信息。每个端口由Open、Filtered和Unfiltered三种状态,其中Open状态表明目标主机能够在此端口使用accept()系统调用接受路径;Filtered状态表明防火墙、包过滤和其他网络安全软件掩盖了此端口,禁止Nmap探测是否打开;Unfiltered状态表明此端口关闭,且无防火墙/包过滤软件来隔离Nmap的探测企图。

5、反扫描技术

(1)禁止不必要的服务

系统上开放的某一个端口,运行的每一个服务都可能为入侵者提供信息,成为入侵者攻击的目标。因此,对抗网络扫描的基本措施是将系统不必要的服务全部禁止。

(2)屏蔽敏感信息

系统中一些看起来无用的信息往往对入侵者来说比较重要,例如FTP服务的Banner等,入侵者通过这些信息,能够判断出操作系统的类型、服务软件的版本等。

(3)合理配置防火墙和入侵检测系统IDS。一台配置合理的防火墙能够过滤掉大多数的扫描;同样,配置合理的入侵检测系统IDS,也能发现和记录大部分的扫描行为。

(4)陷阱/蜜罐技术。将攻击者引导到一个蜜罐上,能够帮助用户收集最新的扫描,并

判断有什么样的扫描能穿过防火墙。

本实验通过实际操作,了解扫描技术的工作原理,加深对网络底层的理解,掌握常用扫描工具的基本用法。

三、实验过程和指导

(一)实验要求

1、阅读Nmap文档,了解命令行参数。

2、选择局域网中的主机作为扫描对象(不可非法扫描Internet中的主机),使用Nmap 提供的默认配置文件,以及自行设定相关参数,对指定范围的主机进行全面TCP扫描、PING 扫描、TCP connect扫描、UDP扫描、秘密扫描、操作系统指纹识别等,记录并分析扫描结果。

(二)实验准备

1、阅读教材有关章节,理解TCP/IP协议等扫描技术的相关工作原理。

2、阅读相关资料,熟悉Nmap的相关操作步骤和命令行参数的含义。

(三)上机实验

Nmap有命令行和GUI两种运行方式,这里以GUI的Zenmap 5.51为例。运行Zenmap 程序后,在Target列表框中输入扫描的目标,在Command文本框中设置所需的扫描参数,单击Scan按钮,系统就开始进行扫描,结束后会显示扫描结果。

1、全面TCP扫描

这是一种基本的扫描模式,不需要任何命令选项开关,即可对目标主机进行全面TCP 扫描,显示监听端口的服务情况。命令行格式为:nmap IP地址,如nmap 192.168.0.5,则可对目标主机192.168.0.5进行全面TCP扫描,输出结果如图3.1.1所示。

这种扫描模式的缺点是允许了日志服务的主机可以很容易地监测到这类扫描。要达到隐蔽功能,必须设置一些命令选项开关,从而实现较高级的功能。

2、PING扫描

如果想知道网络上有哪些主机是开放的,可以使用Ping扫描方式探测主机,nmap通过对指定的ip地址发送icmp的echo request信息包来做到这一点,有回应的主机就是开放的。命令行格式为:nmap –sn IP地址,如nmap –sn 192.168.0.5,则可对目标主机192.168.0.5进行探测,输出结果包括开放主机的IP地址和MAC地址,如图3.1.2所示。

3、TCP connect扫描

这是对TCP的最基本形式的侦测,也是nmap的默认扫描方式。操作系统提供的connect()系统调用可以用来对目标主机上感兴趣的端口进行连接试探,如果该端口处于监听状态,则连接成功,否则代表这个端口无法到达。该方式的优点是不需要任何权限,系统中任何用户都有权利使用此调用;使用非阻塞I/O允许设置一个低的时间用尽周期,通过同时打开多个套接字可以加速扫描。其缺点是很容易被察觉,并且被防火墙将扫描信息包过滤掉;目标主机的log文件会显示一连串的连接和连接出错信息,并且能很快使它关闭。命令行格式为:nmap –sT IP地址,如nmap –sT 192.168.0.5,则可对目标主机192.168.0.5进行TCP连接扫描,输出结果如图3.1.3所示。

图3.1.1 全面TCP扫描

图3.1.2 使用Ping扫描方式探测主机

图3.1.3 TCP连接扫描

4、UDP扫描

Nmap默认监听的是目标主机的TCP端口,由于现在防火墙设备的流行,TCP端口的

管理状态越来越严格,不会轻易开放,并且通信监视严格。UDP扫描可以用来确定主机上哪些UDP端口处于开放状态,其原理是通过发送零字节的UDP信息包到目标机器的各个端口,如果收到一个ICMP端口无法到达的回应,那么该端口是关闭的,否则可以认为它是开放的。该方式的优点是利用UDP端口关闭时返回的ICMP信息,不包含标准的TCP三次握手协议的任何部分,因此隐蔽性好。其缺点是由于UDP是不面向连接的,这种扫描使用的数据包在通过网络时容易被丢弃从而产生错误的探测信息,所以整个精度会比较低;同时,由于不同操作系统在实现ICMP协议的时候为了避免广播风暴都会有峰值速率的限制,因此扫描速度比较慢。这一扫描方法命令行格式为:nmap –sU IP地址,如nmap –sU 192.168.0.5,则可对目标主机192.168.0.5进行UDP扫描,输出结果如图3.1.4所示。

图3.1.4 UDP扫描

5、秘密扫描

1)TCP SYN扫描

这种方式是半开放式的TCP同步扫描,扫描程序不打开完整的TCP连接,发送一个SYN 信息包并等待对方的回应。扫描原理参见“实验预习提示”中的“TCP SYN扫描”。这种扫描的的最大好处是可以进行更加隐蔽的扫描,防止被目标主机监测到,只有极少的站点会对它作出记录,但是需要有root权限来定制这些SYN包。命令行格式为:nmap –sS IP地址,如nmap –sS 192.168.0.5,则可对目标主机192.168.0.5进行TCP SYN扫描,输出结果如图3.1.5所示。将TCP SYN扫描与前面的TCP connect扫描进行对比,可以看出TCP SYN扫描的速度明显比TCP connect扫描快,扫描结果略有不同。

图3.1.5 TCP SYN扫描

SYN扫描在有些情况下仍不够隐蔽,一些防火墙及信息包过滤装置会在重要端口守护,只要安装了过滤和日志软件来检测同步空闲字符SYN,则-sS的隐蔽作用就失效了,SYN包在此时便会被截获,一些应用软件如Synlogger以及Courtney对侦测这种类型的扫描都是行家。所以,需要有更进一步的隐蔽扫描方式。

2)FIN扫描、Xmas Tree扫描和Null扫描

由于关闭的端口会对发送的探测信息返回一个RST,而打开的端口则对其忽略不理。所以,FIN扫描使用空的FIN信息包作为探针,Xmas Tree使用FIN、URG、PUSH标记,Null扫描则不用任何标记。需要注意的是此方法与系统的实现有一定的关系,由于微软的坚持和独特,对于运行Windows 95/98或NT的机器不管端口是否打开都会回复RST,因此FIN、Xmas Tree和Null扫描的结果都是端口关闭。命令行格式分别为:nmap –sF IP地址,nmap –sX IP地址,nmap –sN IP地址,如nmap –sF 192.168.0.5,则可对目标主机192.168.0.5进行FIN 扫描,输出结果如图3.1.6所示;nmap –sX 192.168.0.5,则可对目标主机192.168.0.5进行Xmas Tree扫描,输出结果如图3.1.7所示;nmap –sN 192.168.0.5,则可对目标主机192.168.0.5进行Null扫描,输出结果如图3.1.8所示。

按照上述原理,这其实也是一个很好的区分Windows和Unix/Linux两种平台的方法,如果扫描发现了打开的端口,那就能知道目标主机运行的不是Windows;如果-sF、-sX、-sN 的扫描显示所有端口都是关闭的,但一个SYN扫描却显示有打开端口,则能大致推断目标主机是Windows平台。当然,这只是一个简单应用,nmap有更彻底的操作系统辨别方法。

6、操作系统指纹识别

该方法经由TCP/IP来获取“指纹”,从而判别目标主机的操作系统类型,其原理是用一连串的信息包探测出所扫描的主机位于操作系统有关堆栈的信息,并区分其精细差异,以此判别操作系统。它用搜集到的信息建立一个“指纹”,用来同已知的操作系统的指纹相比较,这样判定操作系统就有了依据。命令行格式为:nmap –O IP地址,如nmap –O 192.168.0.5,则可对目标主机192.168.0.5进行操作系统类型探测,输出结果如图3.1.9所示。

图3.1.6 FIN扫描

图3.1.7 Xmas Tree扫描

图3.1.8 Null扫描

图3.1.9 操作系统指纹识别

注意,nmap的这种方式有时也会得到错误的诊断信息,比如系统有端口开放。但nmap 返回不可识别的操作系统,这也是有可能的,这时可以用nmap的-d参数来测试,详见nmap 参考文档。

7、其他应用

(1)扫描主机群

除了扫描单个目标主机,还可以同时扫描一个主机群,如:nmap –sT –O 192.168.0.1-10就可以同时扫描并探测IP地址在192.168.0.1-192.168.0.10之间的每一台主机。当然这需要更多的时间,耗费更多的系统资源和网络带宽,输出结果页可能会很长。此时可以用下面的命令将结果重定向输送到一个文件中:nmap –sT –O –oN scan_result.txt 192.168.0.1-10,输出结果如图3.1.10所示。

(2)其他常用参数

1)-I:进行TCP反向用户认证扫描,可以透露扫描用户信息。其原理是利用了Ident 协议(RFC1413),Ident协议允许看到通过TCP连接的任何进程的拥有者的用户名,即使这个连接不是由该进程发起的。例如可以连接到一个http端口,然后通过ident来发现服务器是否正在以root权限运行。但这种扫描方式只能在和目标端口建立了一个完整的TCP全连接之后才有效,并且实际上很多主机都会关闭ident服务,因此在高版本Nmap中已不再支持这种扫描方式。命令行格式为:nmap –I IP地址,如nmap –I 192.168.0.5,则可对目标主机192.168.0.5进行TCP反向用户认证扫描,输出结果如图3.1.11所示。

图3.1.10 扫描主机群

图3.1.11 TCP反向用户认证扫描

2)-iR:进行随机主机扫描。命令行格式为:nmap –iR 扫描主机数,如nmap –iR 3,则可对3个随机目标主机进行扫描,输出结果如图3.1.12所示。

3)-p:扫描特定的端口范围,默认扫描的是从1到1024端口。命令行格式为:nmap –p 端口范围IP地址,如nmap –p 1025-3000 192.168.0.5,则可对目标主机192.168.0.5中1025-3000范围内的端口进行扫描,输出结果如图3.1.13所示。

图3.1.12 随机主机扫描

图3.1.13特定的端口范围扫描

4)-v:详细模式,能带来更多信息,进行长数据显示,-v –v是最长数据显示。命令行格式为:nmap –v IP地址,如nmap –v 192.168.0.5,则可对目标主机192.168.0.5进行详细模式扫描,输出结果如图3.1.14所示。

5)-host_timeout<毫秒数>:超时参数,具体制定nmap对某个IP的扫描时间总量,超过则作不通处理,默认值是不做设定。网络设备上被过滤掉的端口一般会大大延长侦测时间,设置超时参数有时可以显著降低扫描网络所需时间。Nmap会显示出哪些网络设备响应超时,这时就可以对这些设备进行个别处理,从而保证大范围网络扫描的整体速度。命令行格式为:nmap –host_timeout <毫秒数> IP地址,如nmap –host_timeout 4000 192.168.0.5,则可指定在4000 ms内对目标主机192.168.0.5进行扫描,输出结果如图3.1.15所示。

对Nmap的不同参数进行组合,可根据不同需要实现对目标主机的功能强大的灵活扫描,例如:对192.168.0.1-192.168.0.10范围内的主机进行SYN半开扫描,探测哪些主机提供FTP或者HTTP服务,并将扫描结果存放到ftphttpscan_result.txt文件中,则命令行为:Nmap –sS –p 23, 80 –oN ftphttpscan_result.txt 192.168.0.1-10,输出结果如图3.1.16所示。

图3.1.14 详细模式扫描

图3.1.15 指定超时参数扫描

图3.1.16 探测哪些主机提供FTP或者HTTP服务

(四)分析与思考

1、仔细阅读nmap参考文档,了解并尝试验证nmap其他参数的功能及不同参数的组合,并分析各自的技术原理和优缺点。

2、熟悉netstat等端口查看与管理工具。

3、如何对网络端口扫描进行防范?

4、编程实现一个简单的端口扫描程序。

四、实验提交材料

1、实验报告。

实验报告应包括以下内容:实验名称、实验目的、实验内容及要求、实验过程及结果、实验中的问题及心得。

实验格式参见“附录:实验报告样例”。

实验2-网络端口的扫描

南昌航空大学实验报告 二〇一三年十一月八日 课程名称:信息安全实验名称:实验网络端口扫描 班级:姓名:同组人: 指导教师评定:签名: 一、实验目的 通过练习使用网络端口扫描器,可以了解目标主机开放的端口和服务程序,从而获取系统的有用信息,发现网络系统的安全漏洞。在实验中,我们将在操作系统下使用进行网络端口扫描实验,通过端口扫描实验,可以增强学生在网络安全方面的防护意识。利用综合扫描软件“流光”扫描系统的漏洞并给出安全性评估报告。 二、实验原理 .端口扫描的原理 对网络端口的扫描可以得到目标计算机开放的服务程序、运行的系统版本信息,从而为下一步的入侵做好准备。对网络端口的扫描可以通过执行手工命令实现,但效率较低;也可以通过扫描工具实现,效率较高。 扫描工具根据作用的环境不同,可分为两种类型:网络漏洞扫描工具和主机漏洞扫描工具。 .端口的基础知识 为了了解扫描工具的工作原理,首先简单介绍一下端口的基本知识。 端口是协议中所定义的,协议通过套接字()建立起两台计算机之间的网络连接。套接字采用[地址:端口号]的形式来定义,通过套接字中不同的端口号可以区别同一台计算机上开启的不同和连接进程。对于两台计算机间的任意一个连接,一台计算机的一个[地址:端口]套接字会和另一台计算机的一个[地址:端口]套接字相对应,彼此标识着源端、目的端上数据包传输的源进程和目标进程。这样网络上传输的数据包就可以由套接字中的地址和端口号找到需要传输的主机和连接进程了。由此可见,端口和服务进程一一对应,通过扫描开放的端口,就可以判断出计算机中正在运行的服务进程。 /的端口号在~范围之内,其中以下的端口保留给常用的网络服务。例如,端口为服务,端口为服务,端口为服务,端口为服务,端口为服务等。 .扫描的原理 扫描的方式有多种,为了理解扫描原理,需要对协议简要介绍一下。 一个头的数据包格式如图所示。它包括个标志位,其中:、、、。 图数据包格式 根据上面介绍的知识,下面我们介绍基于和协议的几种端口扫描方式。

端口扫描实验报告

综合实验报告 ( 2010 -- 2011 年度第二学期) 名称:网络综合实验 题目:端口扫描程序 院系:信息工程系 班级: 学号: 学生姓名: 指导教师:鲁斌李莉王晓霞张铭泉设计周数: 2 周 成绩: 日期:2011年7月1日

一、综合实验的目的与要求 1.任务:设计并实现一个端口扫描程序,检测某个IP或某段IP的计算机的端口工作情况。 2.目的:加深对课堂讲授知识的理解,熟练掌握基本的网络编程技术和方法,建立网络编程整体概念,使得学生初步具有研究、设计、编制和调试网络程序的能力。 3.要求:熟悉有关定义、概念和实现算法,设计出程序流程框图和数据结构,编写出完整的源程序,基本功能完善,方便易用,操作无误。 4.学生要求人数:1人。 二、综合实验正文 1.端口扫描器功能简介:服务器上所开放的端口就是潜在的通信通道,也就是一个入侵通道。对目标计算机进行端口扫描,能得到许多有用的信息,进行端口扫描的方法很多,可以是手工进行扫描、也可以用端口扫描软件进行。扫描器通过选用远程TCP/IP不同的端口的服务,并记录目标给予的回答,通过这种方法可以搜集到很多关于目标主机的各种有用的信息,例如远程系统是否支持匿名登陆、是否存在可写的FTP目录、是否开放TELNET 服务和HTTPD服务等。 2.实验所用的端口扫描技术:端口扫描技术有TCP connect()扫描、TCP SYN扫描、TCP FIN 扫描、IP段扫描等等。本次实验所用的技术是TCP connect()扫描,这是最基本的TCP 扫描,操作系统提供的connect()系统调用可以用来与每一个感兴趣的目标计算机的端口进行连接。如果端口处于侦听状态,那么connect()就能成功。否则,这个端口是不能用的,即没有提供服务。这个技术的一个最大的优点是,你不需要任何权限。系统中的任何用户都有权利使用这个调用。 3.实验具体实现方案:编写一个端口扫描程序,能够显示某个IP或某段IP的计算机的某一个或某些端口是否正在工作。基本工作过程如下: (1) 设定好一定的端口扫描范围; (2) 设定每个端口扫描的次数,因为有可能有的端口一次扫描可能不通; (3) 创建socket,通过socket的connect方法来连接远程IP地址以及对应的端口; (4) 如果返回false,表示端口没有开放,否则端口开放。 4.有关TCP/IP的知识: 4.1套接字概念 1)在网络中要全局地标识一个参与通信的进程,需要采用三元组:协议、主机IP地址、端口号。

端口扫描与检测技术的实现论文

端口扫描与检测技术的实现 摘要 随着Internet日益广泛的应用,黑客攻击行为也是有增无减。如何有效地抵御这种攻击行为,一直是信息安全领域的焦点。 而其中,端口扫描技术吸引了越来越多人的关注。端口扫描是黑客搜集目标主机信息的一种常用方法。为了有效地对付网络入侵行为,对端口扫描进行研究是非常有益和必要的。攻击者在攻击一个目标时,首先要获取目标的一些基本信息,端口扫描就是其中最简单最重要的方法之一,它可以扫描目标机器中开放的端口,从而确定目标机器中提供的服务,为下一步攻击做准备。针对端口扫描技术,相应的端口扫描检测技术显的越发重要,作为网络安全技术中的一个重要课题,端口扫描检测技术意义重大。 本文首先阐述了端口扫描技术以及端口扫描检测技术的基本原理和常用方法,然后在此基础上设计了一个对基于网络的端口进行扫描,能判断出目标主机端口开放情况的程序以及一个从网络信息的数据包的捕获和分析着手,再通过统计判断是否存在端口扫描行为的程序,最后从攻击和防御的角度对端口扫描和检测技术作了演示及分析。 关键词:端口;端口扫描;数据包捕获;端口检测

The Realization of Port Scanning and Detecting Technology Abstract As the widely applying of Internet, the attacking behavior made by hacker is increasing but not decreasing. How to resist this kind of attacking behavior is always the key point of the domain of the information security. And the port scanning draws people's attention more and more. Port scanning is a usual method which is used by the hacker to collect the information of the target main processor. In order to deal with the invading behavior of the Internet effectively, it is very useful and necessary to work on the port scanning. When an attacker attacks to a target, he or she will firstly gets some basic information about the target, and the port scanning is one of the most simple and important methods which can scan the opening Port of the target machine to make sure the offering service made by the target machine, and it is a preparation to the next attacking. The port detecting seems more and more important referring to the port scanning. As an important task of the secure technique of Internet, the port detecting is of great significance. In this thesis, it firstly elaborates the basic principles and usual methods of the port scanning. On this basis, it then designs a program which can scan the Port of the Internet, and assess the opening situation of the target main processor, and the other program which begins on capturing and analyzing the information packet of Internet, and then assess whether there is a behavior about port scanning through statistic analyses. Lastly, it demonstrates and analyses the technology of port scanning and port detecting from the viewpoint of attacking and resisting. Key Words:port; port scanning; packet capture; port detecting

端口扫描报告

杭州电子科技大学软件学院网络工程试验报告 端口扫描报告 09109146 王子龙

1.端口及端口扫描技术简介 (2) 2.对现有端口扫描工具程序的理解 (2) 主界面 (3) 3.核心代码 (6) 4.个人总结 (13) 1.端口及端口扫描技术简介 根据提供服务类型的不同,端口分为两种,一种是TCP端口,一种是UDP端口。计算机之间相互通信的时候,分为两种方式:一种是发送信息以后,可以确认信息是否到达,也就是有应答的方式,这种方式大多采用TCP协议;一种是发送以后就不管了,不去确认信息是否到达,这种方式大多采用UDP协议。对应这两种协议的服务提供的端口,也就分为TCP 端口和UDP端口。 一台拥有IP地址的主机可以提供许多服务,比如Web服务、FTP服务、SMTP服务等,这些服务完全可以通过1个IP地址来实现。主机不只是靠IP地址来区分网络服务,因为IP 地址与网络服务的关系是一对多的关系。实际上是通过“IP地址+端口号”来区分不同的服务的。 一个端口就是一个潜在的通信通道,也就是一个入侵通道。对目标计算机进行端口扫描,能得到许多有用的信息。进行扫描的方法很多,可以是手工进行扫描,也可以用端口扫描软件进行。 在手工进行扫描时,需要熟悉各种命令。对命令执行后的输出进行分析。用扫描软件进行扫描时,许多扫描器软件都有分析数据的功能。 通过端口扫描,可以得到许多有用的信息,从而发现系统的安全漏洞。 2. 对现有端口扫描工具程序的理解 该程序是有C++编写的。C++是一种使用非常广泛的计算机编程语言。C++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。 该程序能够扫描主机IP的某一个端口,或者是扫描该主机IP某一范围内的端口。并且提供多次扫描功能。如果要扫描的端口很多,在扫描过程中可以暂停扫描。扫描结果在界面的下方显示。主要显示内容有IP地址、端口号、端口状态、连接次数及备注。

网络扫描实验

实验一:网络扫描实验 【实验目的】 了解扫描的基本原理,掌握基本方法,最终巩固主机安全 【实验内容】 1、学习使用Nmap的使用方法 2、学习使用漏洞扫描工具 【实验环境】 1、硬件PC机一台。 2、系统配置:操作系统windows XP以上。 【实验步骤】 1、端口扫描 解压并安装ipscan15.zip,扫描本局域网内的主机 【实验背景知识】 1、扫描及漏洞扫描原理见第四章黑客攻击技术.ppt NMAP使用方法 扫描器是帮助你了解自己系统的绝佳助手。象Windows 2K/XP这样复杂的操作系统支持应用软件打开数百个端口与其他客户程序或服务器通信,端口扫描是检测服务器上运行了哪些服务和应用、向Internet或其他网络开放了哪些联系通道的一种办法,不仅速度快,而且效果也很不错。 Nmap被开发用于允许系统管理员察看一个大的网络系统有哪些主机以及其上运行何种服务。它支持多种协议的扫描如UDP,TCP connect(),TCP SYN (half open), ftp proxy (bounce attack),Reverse-ident, ICMP (ping sweep), FIN, ACK sweep,X

mas Tree, SYN sweep, 和Null扫描。你可以从SCAN TYPES一节中察看相关细节。nmap还提供一些实用功能如通过tcp/ip来甄别操作系统类型、秘密扫描、动态延迟和重发、平行扫描、通过并行的PING侦测下属的主机、欺骗扫描、端口过滤探测、直接的RPC扫描、分布扫描、灵活的目标选择以及端口的描述。 图1 图2

图3 1)解压nmap-4.00-win32.zip,安装WinPcap 运行cmd.exe,熟悉nmap命令(详见“Nmap详解.mht”)。 图4

常见的端口扫描类型及原理

常见的端口扫描类型及原理 常见的扫描类型有以下几种: 秘密扫描 秘密扫描是一种不被审计工具所检测的扫描技术。 它通常用于在通过普通的防火墙或路由器的筛选(filtering)时隐藏自己。 秘密扫描能躲避IDS、防火墙、包过滤器和日志审计,从而获取目标端口的开放或关闭的信息。由于没有包含TCP 3次握手协议的任何部分,所以无法被记录下来,比半连接扫描更为隐蔽。 但是这种扫描的缺点是扫描结果的不可靠性会增加,而且扫描主机也需要自己构造IP包。现有的秘密扫描有TCP FIN 扫描、TCP ACK扫描、NULL扫描、XMAS扫描和SYN/ACK 扫描等。 1、Connect()扫描: 此扫描试图与每一个TCP端口进行“三次握手”通信。如果能够成功建立接连,则证明端口开发,否则为关闭。准确度很高,但是最容易被防火墙和IDS检测到,并且在目标主机的日志中会记录大量的连接请求以及错误信息。 TCP connect端口扫描服务端与客户端建立连接成功(目标

端口开放)的过程: ① Client端发送SYN; ② Server端返回SYN/ACK,表明端口开放; ③ Client端返回ACK,表明连接已建立; ④ Client端主动断开连接。 建立连接成功(目标端口开放)如图所示 TCP connect端口扫描服务端与客户端未建立连接成功(目标端口关闭)过程: ① Client端发送SYN; ② Server端返回RST/ACK,表明端口未开放。 未建立连接成功(目标端口关闭)如图所示。 优点:实现简单,对操作者的权限没有严格要求(有些类型的端口扫描需要操作者具有root权限),系统中的任何用户 都有权力使用这个调用,而且如果想要得到从目标端口返回banners信息,也只能采用这一方法。 另一优点是扫描速度快。如果对每个目标端口以线性的方式,使用单独的connect()调用,可以通过同时打开多个套接字,从而加速扫描。 缺点:是会在目标主机的日志记录中留下痕迹,易被发现,并且数据包会被过滤掉。目标主机的logs文件会显示一连串的连接和连接出错的服务信息,并且能很快地使它关闭。

端口扫描实验报告

网络端口扫描实验报告 一、网络端口扫描简介 TCP/IP协议在网络层是无连接的,而“端口”,就已经到了传输层。端口便是计算机与外部通信的途径。一个端口就是一个潜在的通信通道,也就是一个入侵通道。对目标计算机进行端口扫描,能得到许多有用的信息。进行扫描的方法很多,可以是手工进行扫描,也可以用端口扫描软件进行。在手工进行扫描时,需要熟悉各种命令,对命令执行后的输析出进行分,效率较低。用扫描软件进行扫描时,许多扫描器软件都有分析数据的功能。通过端口扫描,可以得到许多有用的信息,从而发现系统的安全漏洞。扫描工具根据作用的环境不同可分为:网络漏洞扫描工具和主机漏洞扫描工具。前者指通过网络检测远程目标网络和主机系统所存在漏洞的扫描工具。后者指在本机运行的检测本地系统安全漏洞的扫描工具。本实验主要针对前者。 端口是TCP协议中定义的,TCP协议通过套接字(socket)建立起两台计算机之间的网络连接。它采用【IP地址:端口号】形式定义,通过套接字中不同的端口号来区别同一台计算机上开启的不同TCP和UDP连接进程。端口号在0~~65535之间,低于1024的端口都有确切的定义,它们对应着因特网上常见的一些服务。这些常见的服务可以划分为使用TCP端口(面向连接如打电话)和使用UDP端口

(无连接如写信)两种。端口与服务进程一一对应,通过扫描开放的端口就可以判断计算机中正在运行的服务进程。 二、实验目的 1.了解熟悉MFC及的基本原理和方法。 2.加深对tcp的理解,学习端口扫描技术和,原理熟悉socket编程。 3.通过自己编程实现简单的IP端口扫描器模型。 4.通过端口扫描了解目标主机开放的端口和服务程序。 三、实验环境 Windows操作系统 VC++6.0开发环境 四、实验设计 实验原理 通过调用socket函数connect()连接到目标计算机上,完成一次完整的三次握手过程,如果端口处于侦听状态,那么connect()就可以成功返回,否则这个端口不可用,即没有提供服务。 实验内容 1. 设计实现端口扫描器 2. IP地址、端口范围可以用户输入。 3. 要求有有好的可视化操作界面。 实验步骤: 1、用户界面:使用vc6.0里的MFC来开发用户界面 2、端口扫描:使用socket函数中的connect()连接计算机来判定目标计算机是否开放了要测试的端口 五、代码实现 #include #include #pragma comment(lib,"wsock32.lib") #define ZERO (fd_set *)0 int maxth, scanok, scannum; int portip, hoststart, hoststop, startport, endport; long searchnum, searched; void usage(char *); void playx(int); void setip2(char *); void customport(char *, char *, char *); void portscannow(int); int main(int argc, char *argv[]) { WSADATA wsadata; system("cls.exe"); printf("\r\n============== 命令行端口扫描器PortScanner V1.0 ==============");

端口扫描

一、高级ICMP扫描技术 Ping就是利用ICMP协议走的,高级的ICMP扫描技术主要是利用ICMP协议最基本的用途:报错。根据网络协议,如果按照协议出现了错误,那么接收端将产生一个ICMP的错误报文。这些错误报文并不是主动发送的,而是由于错误,根据协议自动产生。 当IP数据报出现checksum和版本的错误的时候,目标主机将抛弃这个数据报,如果是checksum出现错误,那么路由器就直接丢弃这个数据报了。有些主机比如AIX、HP-UX等,是不会发送ICMP的Unreachable数据报的。 我们利用下面这些特性: 1、向目标主机发送一个只有IP头的IP数据包,目标将返回Destination Unreachable的ICMP错误报文。 2、向目标主机发送一个坏IP数据报,比如,不正确的IP头长度,目标主机将返回Parameter Problem的ICMP错误报文。 3、当数据包分片但是,却没有给接收端足够的分片,接收端分片组装超时会发送分片组装超时的ICMP数据报。

向目标主机发送一个IP数据报,但是协议项是错误的,比如协议项不可用,那么目标将返回Destination Unreachable的ICMP报文,但是如果是在目标主机前有一个防火墙或者一个其他的过滤装置,可能过滤掉提出的要求,从而接收不到任何回应。可以使用一个非常大的协议数字来作为IP头部的协议内容,而且这个协议数字至少在今天还没有被使用,应该主机一定会返回Unreachable,如果没有Unreachable的ICMP数据报返回错误提示,那么就说明被防火墙或者其他设备过滤了,我们也可以用这个办法来探测是否有防火墙或者其他过滤设备存在。 利用IP的协议项来探测主机正在使用哪些协议,我们可以把IP头的协议项改变,因为是8位的,有256种可能。通过目标返回的ICMP错误报文,来作判断哪些协议在使用。如果返回Destination Unreachable,那么主机是没有使用这个协议的,相反,如果什么都没有返回的话,主机可能使用这个协议,但是也可能是防火墙等过滤掉了。NMAP的IP Protocol scan也就是利用这个原理。 利用IP分片造成组装超时ICMP错误消息,同样可以来达到我们的探测目的。当主机接收到丢失分片的数据报,并且在一定时间内没有接收到丢失的数据报,就会丢弃整个包,并且发送ICMP分片组装超时错误给原发送端。我们可以利用这个特性制造分片的数据包,然后等待ICMP组装超时错误消息。可以对UDP 分片,也可以对TCP甚至ICMP数据包进行分片,只要不让目标主机获得完整的数据包就行了,当然,对于UDP这种非连接的不可靠协议来说,如果我们没

网络扫描及安全评估实验报告

一、实验目的 ●掌握网络端口扫描器的使用方法,熟悉常见端口和其对应的服务程序,掌 握发现系统漏洞的方法。 ●掌握综合扫描及安全评估工具的使用方法,了解进行简单系统漏洞入侵的 方法,了解常见的网络和系统漏洞以及其安全防护方法。 二、实验原理 ●端口扫描原理 ●端口扫描向目标主机的TCP/IP服务端口发送探测数据包,并记录 目标主机的响应。通过分析响应来判断服务端口是打开还是关闭, 就可以得知端口提供的服务或信息。 ●端口扫描主要有经典的扫描器(全连接)、SYN(半连接)扫描器、 秘密扫描等。 ●全连接扫描:扫描主机通过TCP/IP协议的三次握手与目标主机的 指定端口建立一次完整的连接。建立连接成功则响应扫描主机的 SYN/ACK连接请求,这一响应表明目标端口处于监听(打开)的 状态。如果目标端口处于关闭状态,则目标主机会向扫描主机发送 RST的响应。 ●半连接(SYN)扫描:若端口扫描没有完成一个完整的TCP连接, 在扫描主机和目标主机的一指定端口建立连接时候只完成了前两 次握手,在第三步时,扫描主机中断了本次连接,使连接没有完全 建立起来,这样的端口扫描称为半连接扫描,也称为间接扫描。 ●TCP FIN(秘密)扫描:扫描方法的思想是关闭的端口会用适当的 RST来回复FIN数据包。另一方面,打开的端口会忽略对FIN数 据包的回复。 ●综合扫描和安全评估技术工作原理 ●获得主机系统在网络服务、版本信息、Web应用等相关信息,然后 采用模拟攻击的方法,对目标主机系统进行攻击性的安全漏洞扫 描,如果模拟攻击成功,则视为漏洞存在。最后根据检测结果向系 统管理员提供周密可靠的安全性分析报告。

基于多线程的端口扫描程序

计算机网络课程课程设计任务书

计算机网络设计说明书 学院名称:计算机与信息工程学院 班级名称:网络工程122班 学生姓名: 学号: 题目:基于多线程的端口扫描程序 指导教师 姓名: 起止日期:2015年6月13日至2015年6月20日

一、选题背景 随着互联网的飞速发展,网络入侵行为日益严重,网络安全成为人们关注的焦点。端口扫描技术是网络安全扫描技术的重要技术之一。对目标系统进行端口扫描,是网络系统入侵者进入目标系统的第一步。网络安全探测在网络安全中起着主动防御的作用,占有非常重要的地位。网络安全探测的所有功能都是建立在端口扫描的基础上,所以对端口扫描技术的研究有着非常重要的现实意义。 现实世界中的很多过程都具有多条线索同时动作的特性。Java语言的一大特性就是内置对多线程的支持。多线程是指同时存在几个执行体,按几条不同的执行线索共同工作的情况,它使得编程人员可以很方便地开发出具有多线程功能、能同时处理多个任务的功能强大的应用程序。 端口是由计算机的通信协议TCP/IP协议定义的。其中规定,有IP地址和端口号作为套接字,它代表TCP连接的一个连接端,一般称为Socket。具体来说,就是用[IP:端口]来定位一台主机的进程。 可见端口与进程是一一对应的,如果某个进程正在等待连接,称之为该进程正在监听,那么就会出现与它相对应的端口。由此可见,通过扫描端口,就可以判断出目标计算机有哪些通信进程正在等待连接。 利用TCP connect扫描原理,扫描主机通过TCP/IP协议的三次握手与目标主机的指定端口建立一次完整的连接,如果目标主机该端口有回复,则说明该端口开放。利用多线程技术实现了对一目标IP进行设定数目的端口扫描,对多IP段的特定端口进行扫描。 二、方案设计 多线程端口扫描器是实现计算机的端口的扫描,只要在在前台设置好所要扫描的IP、起始端口、结束端口以及所要用到的线程数,点击扫描,就可以扫描到所输入IP地址主机的开放端口,并显示在主窗体中;点击退出,则可以退出该程序。IP设置应为所在主机的IP地址,起始端口和结束端口应为0~65535之间的一个数,且起始端口应小于结束端口的大小。线程数为0~200之间的一个数。点击开始后就会运行,直到扫描完毕显示出开放端口,如果没有开放端口,则只显示扫描完毕。 本系统要实现的功能: ①端口扫描功能:扫描开放的端口,并将扫描到的开放端口号送到前台。 ②图像显示功能:显示图形界面,以及显示扫描结果。 ③多线程功能:当客户端要求与服务器端建立连接时,服务器端就将用到多线程功能,为每一个建立起来的连接创建一个线程。 ④异常抛出功能:对于明显的数据错误,能提示出错误的类型并阻止程序的运行。 流程图:

端口扫描-史上最全常用端口号

端口扫描必须了解的端口数 1、21端口: 端口说明:21端口主要用于FTP(File Transfer Protocol,文件传输协议)服务。 操作建议:因为有的FTP服务器可以通过匿名登录,所以常常会被黑客利用。另外,21端口还会被一些木马利用,比如Blade Runner、FTP Trojan、Doly Trojan、WebEx等等。如果不架设FTP服务器,建议关闭21端口。 2、23端口 端口说明:23端口主要用于Telnet(远程登录)服务。 操作建议:利用Telnet服务,黑客可以搜索远程登录Unix的服务,扫描操作系统的类型。而且在Windows 2000中Telnet服务存在多个严重的漏洞,比如提升权限、拒绝服务等,可以让远程服务器崩溃。Telnet服务的23端口也是TTS(Tiny Telnet Server)木马的缺省端口。所以,建议关闭23端口。 3、25端口 端口说明:25端口为SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)服务器所开放,主要用于发送邮件 端口漏洞: 1. 利用25端口,黑客可以寻找SMTP服务器,用来转发垃圾邮件。 2. 25端口被很多木马程序所开放,比如Ajan、Antigen、Email Password Sender、ProMail、trojan、Tapiras、Terminator、WinPC、WinSpy等等。拿WinSpy来说,通过开放25端口,可以监视计算机正在运行的所有窗口和模块。 操作建议:如果不是要架设SMTP邮件服务器,可以将该端口关闭。 4、53端口 端口说明:53端口为DNS(Domain Name Server,域名服务器)服务器所开放,主要用于域名解析。 端口漏洞:如果开放DNS服务,黑客可以通过分析DNS服务器而直接获取Web服务器等主机的IP地址,再利用53端口突破某些不稳定的防火墙,从而实施攻击。近日,美国一家公司也公布了10个最易遭黑客攻击的漏洞,其中第一位的就是DNS服务器的BIND漏洞。 操作建议:如果当前的计算机不是用于提供域名解析服务,建议关闭该端口。 5、67与68端口 端口说明:67、68端口分别是为Bootp服务的Bootstrap Protocol Server(引导程序协议服务端)和

实验报告-网络扫描与监听

信息安全实验报告 学号: 学生姓名: 班级:

实验一网络扫描与监听 一、实验目的 网络扫描是对整个目标网络或单台主机进行全面、快速、准确的获取信息的必要手段。通过网络扫描发现对方,获取对方的信息是进行网络攻防的前提。该实验使学生了解网络扫描的内容,通过主机漏洞扫描发现目标主机存在的漏洞,通过端口扫描发现目标主机的开放端口和服务,通过操作系统类型扫描判断目标主机的操作系统类型。 通过该实验,了解网络扫描的作用,掌握主机漏洞扫描、端口扫描、操作系统类型扫描软件的使用的方法,能够通过网络扫描发现对方的信息和是否存在漏洞。要求能够综合使用以上的方法来获取目标主机的信息。 而网络监听可以获知被监听用户的敏感信息。通过实验使学生了解网络监听的实现原理,掌握网络监听软件的使用方法,以及对网络中可能存在的嗅探结点进行判断的原理。掌握网络监听工具的安装、使用,能够发现监听数据中的有价值信息,了解网络中是否存在嗅探结点的判断方法及其使用。 二、实验要求 基本要求了解网络扫描的作用,掌握主机漏洞扫描、端口扫描、操作系统类型扫描软件的使用的方法,能够通过网络扫描发现对方的信息和是否存在漏洞。掌握网络监听工具的安装、使用,能够发现监听数据中的有价值信息等。提高要求能够对网络中可能存在的嗅探结点进行判断的方法及工具使用等。 三、实验步骤 1)扫描软件X-Scan 和Nmap 以及WinPcap 驱动安装包并安装。 2)打开X-Scan,如下图所示。 3)点击“设置”->“扫描参数”,弹出扫描参数设置对话框,在“指定IP 范围”输入被扫描的IP 地址或地址范围。在“全局设置”的“扫描模块”设置对话框中选择需要检测的模块。其他可以使用默认的设置,也可以根据实际需要进行选择。最后点击“确定”回到主界面。

简单端口扫描程序的实现

计算机网络课程设计 论文题目:简单端口扫描程序的实现 院(部)名称:计算机科学与工程学院 学生姓名: 专业:学号: 指导教师姓名: 报告提交时间: 报告答辩时间:(不填)

目录 一、设计要求 (3) 二、开发环境与工具 (3) 三、设计原理 (3) 四、系统功能描述及软件模块划分 (3) 五、设计步骤 (5) 六、关键问题及其解决方法 (5) 七、设计结果 (15) 八、软件使用说明 (16) 九、参考资料 (16)

一、设计要求 本系统实现了一个简单的端口扫描器。 1. 使用端口扫描对一台主机进行扫描,一台主机上有哪些端口是打开的; 2. 对一个网段进行 IP 扫描,显示出一个网段内有哪些主机是开机的。 二、开发环境与工具 Windows的pc机Jdk包,:具备网络环境并连入Internet。 三、设计原理 IP地址和端口被称作套接字,它代表一个TCP连接的一个连接端。为了获得TCP服务,必须在发送机的一个端口上和接收机的一个端口上建立连接。TCP连接用两个连接端来区别,也就是(连接端1,连接端2)。连接端互相发送数据包。 端口扫描是在应用程序运行在 TCP 或者 UDP 协议之上工作的, 这些协议是众多应用程序使用的传输机制,端口扫描是通过扫描主机确定哪一些 TCP 和UDP 端口可以访问的过程. 端口扫描常见的几种类型: TCP Connect()扫描 SYN 扫描 NULL 扫描 ACK 扫描 Xmas-Tree Dumb 扫描。 Ping命令经常用来对TCP/IP网络进行诊断。通过目标计算机发送一个数据包,让它将这个数据包反送回来,如果返回的数据包和发送的数据包一致,那就是说你的PING命令成功了。通过这样对返回的数据进行分析,就能判断计算机是否开着,或者这个数据包从发送到返回需要多少时间。 Tracert命令用来跟踪一个消息从一台计算机到另一台计算机所走的路径, rusers和finger 通过这两个命令,你能收集到目标计算机上的有关用户的消息。 扫描器通过选用远程TCP/IP不同的端口的服务,并记录目标给予的回答,通过这种方法,可以搜集到很多关于目标主机的各种有用的信息。 总之,端口扫描”通常指用同一信息对目标计算机的所有所需扫描的端口进行发送,然后根据返回端口状态来分析目标计算机的端口是否打开、是否可用。“端口扫描”行为的一个重要特征,是在短时期内有很多来自相同的信源地址,传向不同的目的、地端口的包。对于用端口扫描进行攻击的人来说,攻击者总是可以做到在获得扫描结果的同时,使自己很难被发现或者说很难被逆向寻踪。为了隐藏攻击,攻击者可以慢慢地进行扫描。除非目标系统通常闲着(这样对一个没有listen()端口的数据包都会引起管理员的注意),有很大时间间隔的端口扫描是很难被识别的。隐藏源地址的方法是发送大量的欺骗性的端口扫描数据包(如1 000个),其中只有一个是从真正的源地址来的。这样即使全部数据包都被察觉,被记录下来,也没有人知道哪个是真正的信源地址。能发现的仅仅是“曾经被扫描过”的地址。也正因为这样,那些黑客们才乐此不疲地继续大量使用,这种端口扫描技术,来达到他们获取目标计算机信息,并进行恶意攻击的目的。

11_网络扫描攻击防护实训

实训十网络扫描攻击防护实训 一、实训目的 1、了解基本的网络扫描攻击方法; 2、掌握WAF防护网络扫描攻击的配置方法。 二、应用环境 本次实训我们将模拟网络扫描行为,对网站进行网络扫描攻击,并使用WAF进行攻击防护。 三、实训设备 1、WAF设备1台 2、PC机2台 3、双绞线(直通)2根 四、实训拓扑 透明部署模式 五、实训要求 1、按照拓扑连接网络 2、按照拓扑中的IP地址配置设备IP 六、实训步骤 第一步:在PC机2上部署要进行网络扫描的网站,并在本地访问正常,在PC机2上打开浏览器输入http://127.0.0.1/

第二步:在PC机1上打开浏览器输入https://192.168.1.2/登录WAF设备,将保护网站添加到WAF站点管理中,左侧功能树进入站点->站点管理,点击新建按钮

输入web服务器IP地址和端口,点击确定,将网站加入WAF保护中 注意:此步骤中策略集选择“无” 第三步:在PC机1上安装网络扫描软件APPSCAN,先将PC机上的杀毒软件关闭,将压缩包解压后,请确认有下面三个文件 点击APP SCAN7.8.1中文版.exe进行安装,安装完毕后,不要立即运行,先将keygen.exe 和patch.exe拷贝到C:\Program Files\IBM\Rational AppScan该目录下,先点击patch.exe

点击按钮patch,然后点击exit关闭,再点击keygen.exe 点击Generate按钮,生成一个license.lic文件 这时回到系统桌面,运行APPSCAN

软件打开以后,点击帮助->许可证

实验三 网络扫描及安全评估实验

实验三:网络扫描及安全评估实验 一、实验目的 1.掌握网络端口扫描器的使用方法,熟悉常见端口和其对应的服务程序,掌握 发现系统漏洞的方法; 2.掌握综合扫描及安全评估工具的使用方法,了解进行简单系统漏洞入侵的方 法,了解常见的网络和系统漏洞以及其安全防护方法。 二、实验环境 ●实验室所有机器安装了Windows操作系统,并组成了一个局域网,并且都安 装了SuperScan端口扫描工具和流光Fluxay5综合扫描工具。 ●每两个学生为一组:互相进行端口扫描和综合扫描实验。 三、实验内容 ●任务一:使用Superscan端口扫描工具并分析结果 ●任务二:使用综合扫描工具Fluxay5并分析结果 四、实验步骤 任务一:使用Superscan端口扫描工具并分析结果 分组角色:学生A、学生B互相扫描对方主机。 实验步骤: (1)在命令符提示下输入IPCONFIG查询自己的IP地址。 (2)在Superscan中的Hostname Lookup栏中,输入同组学生主机的IP地址,可通过单击Lookup按钮获得主机名。 (3)设置IP栏、Scan type栏、Scan栏,使其对同组学生主机的所有端口以默认的时间参数进行扫描。 (4)根据扫描结果分析主机开放的端口类型和对应的服务程序。 (5)通过“控制面板”的“管理工具”中的“服务”配置,尝试关闭或开放目标主机上的部分服务,重新扫描,观察扫描结果的变化。

从图中可以看出,对主机扫描和端口扫描结果都为0,这是由于主机禁止了扫描器的ICMP扫描响应。因此需要修改对主机的扫描方式。 点击“主机和服务扫描设置”标签页,并在该标签页中去掉“查找主机”复选框。选中UDP端口扫描复选框,并将UDP扫描类型设置为“Data”。选中TCP端口扫 描复选框,并将TCP扫描类型设置为“直接连接”,如图所示。 如图所示。

Xscan端口扫描实验

实验一 X-Scan端口扫描实验 姓名:张震学号:SX141116 一、实验目的 1. 理解端口的概念; 2. 了解常用的端口扫描原理; 3. 能够熟练的使用常用的端口扫描工具进行弱点检测和修复。 二、实验设备和环境 1.具备基本的局域网环境; 2. PC机一台; 3. 版本为3.3的X-Scan端口扫描工具。 三、实验原理 网络服务或应用程序提供的功能由服务器或主机上的某个或多个进程来实现,端口则相当于进程间的大门,可以随便定义,其目的是为了让两台计算机能够找到对方的进程。“端口”在计算机网络领域是非常重要的概念,它是专门为网络通信而设计的,它是由通信协议TCP/IP定义,其中规定由IP地址和端口作为套接字,它代表TCP连接的一个连接端,一般称为SOCKET,具体来说,就是用[IP:端口]来定位主机中的进程。 可见,端口与进程是一一对应的,如果某个进程正在等待连接,称之为该进程正在监听。在计算机[开始]-[运行]里输入cmd进入dos命令行,然后输入netstat-a可以查看本机有哪些进程处于监听状态。根据TCP连接过程(三次握手),入侵者依靠端口扫描可以发现远程计算机上处于监听状态的进程,由此可判断出该计算机提供的服务,端口扫描除了能判断目标计算机上开放了哪些服务外还提供如判断目标计算机上运行的操作系统版本(每种操作系统都开放有不同的端口供系统间通信使用,因此从端口号上也可以大致判断目标主机的操作系统,一般认为开有135、139端口的主机为Windows系统,如果除了135、139外,还开放了5000端口,则该主机为Windows XP操作系统。)等诸多强大的功能。一旦入侵者获得了上述信息,则可以利用系统漏洞或服务漏洞展开对目标的攻击。 由上所述,端口扫描是帮助入侵的工具,但是安全人员同样可以使用端口扫描工具定期检测网络中关键的网络设备和服务器,以查找系统的薄弱点,并尽快修复,因此理解端口扫描原理和熟练使用端口扫描工具对防治入侵有很大的帮助。 常见的TCP端口号

目前主要端口扫描技术

目前主要端口扫描技术 目前主要的端口扫描技术有以下几种。 1.TCP connect Scan(TCP连接扫描) 这种方法也称之为“TCP全连接扫描”。它是最简单的一种扫描技术,所利用的是TCP协议的3次握手过程。它直接连到目标端口并完成一个完整的3次握手过程(SYN、SYN/ACK和ACK)。操作系统提供的“connect()”函数完成系统调用,用来与目标计算机的端口进行连接。如果端口处于侦听状态,那么“connect()”函数就能成功。否则,这个端口是不能用的,即没有提供服务。 TCP连接扫描技术的一个最大的优点是不需要任何权限,系统中的任何用户都有权利使用这个调用。另一个好处是速度快。如果对每个目标端口以线性的方式,使用单独的“connect()”函数调用,那么将会花费相当长的时间,用户可以同时打开多个套接字,从而加速扫描。使用非阻塞I/O允许用户设置一个低的时间以用尽周期,并同时观察多个套接字。但这种方法的缺点是很容易被发觉,并且很容易被过滤掉。目标计算机的日志文件会显示一连串的连接和连接出错的服务消息,目标计算机用户发现后就能很快使它关闭。 2.TCP SYN Scan(TCP同步序列号扫描) 若端口扫描没有完成一个完整的TCP连接,即在扫描主机和目标主机的一指定端口建立连接的时候,只完成前两次握手,在第三步时,扫描主机中断了本次连接,使连接没有完全建立起来,所以这种端口扫描又称为“半连接扫描”,也称为“间接扫描”或“半开式扫描”(Half Open Scan)。 SYN扫描,通过本机的一个端口向对方指定的端口,发送一个TCP的SYN 连接建立请求数据报,然后开始等待对方的应答。如果应答数据报中设置了SYN 位和ACK位,那么这个端口是开放的;如果应答数据报是一个RST连接复位数据报,则对方的端口是关闭的。使用这种方法不需要完成Connect系统调用所封装的建立连接的整个过程,而只是完成了其中有效的部分就可以达到端口扫描的目的。 此种扫描方式的优点是不容易被发现,扫描速度也比较快。同时通过对MAC地址的判断,可以对一些路由器进行端口扫描,缺点是需要系统管理员的权限,不适合使用多线程技术。因为在实现过程中需要自己完成对应答数据报的查找、分析,使用多线程容易发生数据报的串位现象,也就是原来应该这个线程接收的数据报被另一个线程接收,接收后,这个数据报就会被丢弃,而等待线程只好在超时之后再发送一个SYN数据报,等待应答。这样,所用的时间反而会增加。 3.TCP FIN Scan(TCP结束标志扫描) 这种扫描方式不依赖于TCP的3次握手过程,而是TCP连接的“FIN”(结束)位标志。原理在于TCP连接结束时,会向TCP端口发送一个设置了FIN位的连接终止数据报,关闭的端口会回应一个设置了RST的连接复位数据报;而开放的端口则会对这种可疑的数据报不加理睬,将它丢弃。可以根据是否收到RST数据报来判断对方的端口是否开放。 此扫描方式的优点比前两种都要隐秘,不容易被发现。该方案有两个缺点:首先,要判断对方端口是否开放必须等待超时,增加了探测时间,而且容易得出错误的结论;其次,一些系统并没有遵循规定,最典型的就是Microsoft公司所开发的操作系统。这些系统一旦收到这样的数据报,无论端口是否开放都会回应一个RST连接复位数据报,这样一来,这种扫描方案对于这类操作系统是无效

端口扫描工具nmap使用实验

我们可以使用ping扫描的方法(-sP),与fping的工作方式比较相似,它发送icmp回送请求到指定范围的ip地址并等待响应。现在很多主机在扫描的时候都做了处理,阻塞icmp 请求,这种情况下。nmap将尝试与主机的端口80进行连接,如果可以接收到响应(可以是

syn/ack,也可以是rst),那么证明主机正在运行,反之,则无法判断主机是否开机或者是否在网络上互连。 扫描tcp端口 这里-sR是怎样在打开的端口上利用RPC命令来判断它们是否运行了RPC服务。 nmap可以在进行端口扫描的tcp报文来做一些秘密的事情。首先,要有一个SYN扫描(-sS),它只做建立TCP连接的前面一些工作,只发送一个设置SYN标志的TCP报文,一个RESET报文,那么nmap假设这个端口是关闭的,那么就不做任何事情了。如果接收到一个响应,它并不象正常的连接一样对这个报文进行确认,而是发送一个RET报文,TCP的三次握手还没有完成,许多服务将不会记录这次连接。 有的时候,nmap会告诉我们端口被过滤,这意味着有防火墙或端口过滤器干扰了nmap,使其不能准确的判断端口是打开还是关闭的,有的防火墙只能过滤掉进入的连接。 扫描协议 如果试图访问另一端无程序使用的UDP端口,主机将发回一个icmp“端口不可达”的提示消息,IP协议也是一样。每个传输层的IP协议都有一个相关联的编号,使用最多的是ICMP(1)、TCP(6)和UDP(17)。所有的IP报文都有一个“协议”域用于指出其中的传输层报文头所使用的协议。如果我们发送一个没有传输层报文头的原始IP报文并把其协议域编号为130[该编号是指类似IPSEC协议的被称为安全报文外壳或SPS协议],就可以判断这个协议是否在主机上实现了。如果我们得到的是ICMP协议不可达的消息,意味着该协议没有被实现,否则就是已经实现了,用法为-sO. 隐蔽扫描行为 nmap给出了几个不同的扫描选项,其中一些可以配套着隐藏扫描行为,使得不被系统日志、防火墙和IDS检测到。提供了一些随机的和欺骗的特性。具体例子如下: FTP反弹,在设计上,FTP自身存在一个很大的漏洞,当使用FTP客户机连接到FTP 服务器时,你的客户机在TCP端口21上与FTP服务器对话,这个TCP连接称为控制连接。FTP服务器现在需要另一条与客户机连接,该连接称为数据连接,在这条连接上将传送实际的文件数据,客户机将开始监听另一个TCP端口上从服务器发挥的数据连接,接下来执行一个PORT命令到服务器,告诉它建立一条数据连接到客户机的IP地址和一个新打开的端口,这种操作方法称为主动传输。许多客户机使用网络地址转换或通过防火墙与外界连接,所以主动传输FTP就不能正常工作,因为由服务器建立的客户机的连接通常不允许通过。 被动传输是大多数FTP客户机和服务器所使用的方法,因为客户机既建立控制连接又建立数据连接,这样可以通过防火墙或NAT了。

相关文档
最新文档