简单端口扫描器的设计与实现PPT格式课件下载.ppt
《简单端口扫描器的设计与实现PPT格式课件下载.ppt》由会员分享,可在线阅读,更多相关《简单端口扫描器的设计与实现PPT格式课件下载.ppt(20页珍藏版)》请在冰豆网上搜索。
优缺点:
这项扫描技术的优点是:
不需要关注这项扫描技术的优点是:
不需要关注三次握手的细节,并且该函数对于使用用户的权三次握手的细节,并且该函数对于使用用户的权限没有太多的限制。
它的缺点是安全性差,很容限没有太多的限制。
它的缺点是安全性差,很容易被对方发觉,或者被对方的防火墙过滤掉。
目易被对方发觉,或者被对方的防火墙过滤掉。
目标主机的日志文件也会记录下这一连串的连接和标主机的日志文件也会记录下这一连串的连接和连接出错的服务消息,并被反向查出来。
连接出错的服务消息,并被反向查出来。
二、设计原理11、TCPconnectTCPconnect端口扫描服务端与客户端建立连接成功的过程端口扫描服务端与客户端建立连接成功的过程:
ClientClient端发送端发送SYNSYN;
ServerServer端返回端返回SYN/ACKSYN/ACK,表明端口开放;
,表明端口开放;
ClientClient端返回端返回ACKACK,表明连接已建立;
,表明连接已建立;
ClientClient端主动断开连接。
端主动断开连接。
22、TCPconnectTCPconnect端口扫描服务端与客户端未建立连接成端口扫描服务端与客户端未建立连接成功(目标端口关闭)过程:
功(目标端口关闭)过程:
ServerServer端返回端返回RST/ACKRST/ACK,表明端口未开放。
,表明端口未开放。
二、设计原理2.22.2、TCPSYN扫描扫描TCPSYNTCPSYN扫描又称扫描又称“半开扫描半开扫描”。
回顾。
回顾TCP连接的三次连接的三次握手,申请方首先发送的是一个握手,申请方首先发送的是一个SYN数据包,服务方在接到数据包,服务方在接到这个这个SYN数据包后,如果该端口处于侦听状态,则会回复一数据包后,如果该端口处于侦听状态,则会回复一个个SYN|ACK的数据包的数据包。
如果该端口没有处于侦听状态,则会回复一个如果该端口没有处于侦听状态,则会回复一个RST的数据的数据包。
包。
而此时如果对方处于侦听状态,申请方还需要再向对方回而此时如果对方处于侦听状态,申请方还需要再向对方回复一个复一个ACK数据包以示建立连接。
此时对方就认为连接建立,数据包以示建立连接。
此时对方就认为连接建立,并记入日志。
并记入日志。
这种扫描技术的优点在于一般不会在目标计算机上这种扫描技术的优点在于一般不会在目标计算机上留下记录,有时即使在用留下记录,有时即使在用netstat命令也显示不出来;
但命令也显示不出来;
但这种方法的一个缺点是必须要有管理员权限才能建立自这种方法的一个缺点是必须要有管理员权限才能建立自己的己的SYN数据包。
数据包。
二、设计原理端口开放:
端口开放:
11、Client发送发送SYN;
22、Server端发送端发送SYN/ACK3、Client发送发送RST断开(只需要前两断开(只需要前两步就可以判断端口开放);
步就可以判断端口开放);
端口关闭:
11、ClientClient发送发送SYN;
22、ServerServer端回复端回复RST(表示端口关闭);
(表示端口关闭);
二、设计原理2.32.3、TCPFIN扫描扫描TCPFINTCPFIN扫描也和扫描也和TCPSYN扫描原理差不多,当申请方主机向目扫描原理差不多,当申请方主机向目标主机一个端口发送的标主机一个端口发送的TCP标志位标志位FIN置位的数据包,如果目标主机置位的数据包,如果目标主机该端口是该端口是“关关”状态,则返回一个状态,则返回一个TCPRST数据包;
否则不回复。
数据包;
根据这一原理可以判断对方端口是处于根据这一原理可以判断对方端口是处于“开开”还是还是“关关”状态。
状态。
这种方法的缺点是,该原理不是协议规定,因而与具体的协议系统这种方法的缺点是,该原理不是协议规定,因而与具体的协议系统实现有一定的关系,因为有些系统在实现的时候,不管端口是处于实现有一定的关系,因为有些系统在实现的时候,不管端口是处于“开开”还是还是“关关”状态,都会回复状态,都会回复RST数据包,从而导致此方法失数据包,从而导致此方法失效。
不过,效。
不过,二、设计原理2.42.4TCPTCP反向反向Ident扫描扫描IdentIdent(IdentificationProtocol,标识协议)提供了一种方法,标识协议)提供了一种方法,可以对建立可以对建立TCP连接的用户身份进行标识,该协议使用连接的用户身份进行标识,该协议使用113端口,端口,一旦建立连接,该服务就会读取指定一旦建立连接,该服务就会读取指定TCP连接的查询数据,将拥有连接的查询数据,将拥有指定指定TCP连接的用户信息反馈给对方。
连接的用户信息反馈给对方。
Ident协议(协议(RFC1413)允许通过)允许通过TCP连接查询对方的任何进程连接查询对方的任何进程的用户名,即使这个连接不是由该进程开始的。
根据这一原理,扫的用户名,即使这个连接不是由该进程开始的。
根据这一原理,扫描程序可以通过描程序可以通过TCP连接到对方的连接到对方的WWW端口(默认的端口(默认的80),然后),然后通过通过Ident协议判断对方是否正以管理员权限运行。
协议判断对方是否正以管理员权限运行。
这种方法的缺点是只能在和目标端口建立了一个完整的这种方法的缺点是只能在和目标端口建立了一个完整的TCP连连接后才能看到接后才能看到。
2.4、ip分段扫描分段扫描它并不是直接发送TCP探测数据包,是将数据包分成两个较小的IP段。
这样就将一个TCP头分成好几个数据包,从而过滤器就很难探测到。
三、总体设计3.13.1系统主要目标系统主要目标本程序主要实现了:
本程序主要实现了:
简易的简易的TCPconnect()扫描,支持多线程;
扫描,支持多线程;
UDPUDP扫描功能;
扫描功能;
能对单个指定的主机进行扫描或扫描指定网段内的主机;
能扫描特定的部分端口号或对指定的端口段内的端口进行能扫描特定的部分端口号或对指定的端口段内的端口进行逐个扫描;
逐个扫描;
3.2开发环境及工具开发环境及工具测试平台:
win7使用软件:
eclipse开发语言:
java语言三、总体设计3.33.3功能模块与系统结构功能模块与系统结构
(1)、单个指定的主)、单个指定的主机进行扫描或扫描指定网机进行扫描或扫描指定网段内的主机;
段内的主机;
(2)、扫描特定的部)、扫描特定的部分端口号或对指定的端口分端口号或对指定的端口段内的端口进行逐个扫描;
段内的端口进行逐个扫描;
(3)、对指定)、对指定ip段进段进行扫描;
行扫描;
三、总体设计指定端口段的扫描指定ip段的扫描四、详细设计4.14.1、获取待扫描的端口获取待扫描的端口通过通过eclipse的的runconfigurate设置要扫描端口段,将端口设置要扫描端口段,将端口段由段由String类型转化为类型转化为int类型数据,判断端口号是否合法。
类型数据,判断端口号是否合法。
端口号只能是端口号只能是165535范围内的值而且第一个输入的端口小范围内的值而且第一个输入的端口小于第二个输入的端口号。
于第二个输入的端口号。
4.2、获取待扫描的、获取待扫描的IP地址地址通过eclipse的runconfigurate设置ip地址,然后读取第一个参数,然后判断IP地址是否合法。
通过InetAddress.getByName(ip)方法判断IP地址是否是合法的IP地址。
四、详细设计4.34.3、指定端口段的扫描、指定端口段的扫描4.3.14.3.1基本原理基本原理调用connect()函数,根据返回值来判断端口是否打开的,isConnected()函数返回1说明建立连接成功,说明该端口是打开的,否则说明是端口是关闭的,同时会对常用的网络服务端口给出提示。
Sockets=newSocket(address,nport);
/建立连接if(s.isConnected()result.add(端口号:
+nport+typeport+open);
s.close();
/将打开的端口添加到ArrayListresult里面catch(IOExceptione)System.out.println(e.toString();
result.add(端口号:
+nport+typeport+close);
四、详细设计4.3.24.3.2扫描结果的显示扫描结果的显示使用ArrayList存储扫描端口后的状态,然后用ArrayList的ListIterator一条一条端口状态读出来,显示到屏幕上。
ListIteratorli=result.listIterator();
/获得ArrayList的ListIteratorwhile(li.hasNext()/如果li里面有元素System.out.println(li.next().toString();
/打印出指向的元素,同时将指向下一个元素四、详细设计4.44.4、指定、指定ipip段的扫描段的扫描操作系统提供的connect()系统调用,用来与每一个感兴趣的指定计算机的IP段进行连接。
如果指定IP段的计算机存在,那么connect()就能成功。
否则,这个IP是不能用的,即IP不存在。
4.4.14.4.1基本原理基本原理首先得到指定IP段的开始值和结束值,然后判断IP地址是否合法,然后使用socket()函数创建套接字,如果抛出异常且异常是.ConnectException:
Connectiontimedout:
connect开始的值,则不存在这个IP地址的主机,否则存在这个IP地址的主机。
五、系统测试与改进5.15.1、指定端口段的测试、指定端口段的测试11、设置指定的端口段。
指定扫描主机、设置指定的端口段。
指定扫描主机10.28.2110.28.21的的79到到82的端口。
的端口。
22、扫描结果如下:
、扫描结果如下:
五、系统测试与改进5.25.2、指定、指定IP段的测试段的测试11、设置指定、设置指定IP段。
指定扫描段。
指定扫描10.28.23.17810.28.23.178到到10.28.23.182段的段的ip。
Thanks!