端口扫描
出自 MBA智库百科(https://wiki.mbalib.com/)
端口扫描(Port Scan)
目录 |
端口扫描是指黑客发送一组端口扫描消息,试图以此侵入用户计算机,并掌握计算机网络服务类型。攻击者可以通过它知道到从哪里可找到攻击弱点。实质上。端口扫描向每个端口发送消息,一次只发送一个消息。接收到的回应类型表示是否在用该端口并且可发现计算机的弱点。
其中“端口(Port)”的含义有两个:一种是指物理连接端口,例如集线器、交换机、路由器等设备的接口,另一个是从逻辑意义上进行形象化比喻产生的,一般泛指在TCPgP协议中的端口,如80端口是指网页浏览服务、2l端口是指FTP协议传输服务,而且TCP/IP的协议端口号范围很宽,从0~65535都属于逻辑端口的范围。
端口扫描的原理是通过向目标主机发送探测数据包(主要针对TCP/IP服务端口),并通过探测数据包反馈回来的数据判断服务端口的状态,这些信息会被记录下来并用于判断端口是否关闭。如利用调用套接字函数connect()可以实现与目标主机的链接并形成完整的“三次握手”,如果端口处于侦听状态则返回connect()函数,也就意味着端口开放;反之则意味着无法提供服务。由于大部分的网访问都是基于TCP传输协议和UDP数据报协议完成的,这也就给攻击者提供了主要的扫描对象。以TCPhP协议为例,一共有四个协议层构成,分别为:应用层、传输层、网际层和接口层。大部分的网络服务(services)也是通过TCP端口来识别的,这就进一步收缩了可检测的范围。如果一个攻击者想要了解目标主机的服务状态和内容,只需要从反馈的端口号进行分析便可一日了然。如:检测到远程登录协议的端口号23,通过窃取登录账号口令,入侵者便可以通过漏洞建立远程通信连接。
(1)TCPconnect()扫描方式。这是最常用、最近本的端口扫描类型,通过对操作系统提供的conect()函数调用可以连接任意一个目标计算机端口,不需要任何权限,也能够节省单位访问时间。但是这种方式也存在一个致命的问题,它的隐蔽性不够好,很容易被过滤掉。
(2)TCPSYN扫描方式。这种扫描方式是通过SYN数据包实现的,从技术角度来说属于“半开放”形式。这种扫描方式克服了隐蔽性差的缺点,而且不易引起计算机监控系统的注意,也不会留下记录。但是要实现这一点也要有相应的root权限,同样也不容易实现。
(3)IP段扫描。IP段扫描是一项比较新的技术,通过一些网络工具就可以轻松地实现,也是一切Hacker喜欢的随机端口扫描方式。通过扫描工具只需要确定要扫描的IP段,例如192.168.1.1~192.168.1.200,就可以找出这个IP范围内主机通过路由器的状态。由于这种方式并不直接通过TCP探测数据包发送,所以隐蔽性很强。