nmap扫描端口服务_nmap端口扫描端口整理

hacker|
229

nmap扫描的几种方式

原文 the art of port scanning

这种方式最简单。直接与被扫描的端口建立tcp链接,如果成功,则说明端口开放,如果不成功则说明端口关闭的。这种扫描的特点是与被扫描端口建立完成的tcp链接,完整的tcp三次握手。优点主要是不需要root权限即可扫描端口。因为connect可以在用户态直接调用

这种扫描方式又被称为tcp半开放扫描。顾名思义,这种扫描不需要建立完整的tcp连接,即可扫描端口的状态。发送tcp syn数据包,这个也是tcp握手的第一个包。如果端口开放,则会返回 tcp syn+ack数据包。如果端口关闭,则返回 tcp rst数据包。这样我们就不用进行tcp 握手的第三步,也可以探测端口的状态。这种扫描需要构建raw socket。所以需要root权限

有些时候防火墙绘过滤tcp syn数据包,有些时候会记录syn数据包并检测时候有nmap扫描。这时候可以使用TCP FIN scanning。这种方式很简单。发送tcp FIN数据包到待测端口。如果返回RST数据包,则说明该端口关闭,如果无返回则说明该端口开放。这时tcp协议的一个BUG,所以这种扫描方式不一定百分之百可靠(例如windows),但是这种扫描方式适合大部分 *NIX 系统。

在RFC 793的第65页写到,如果目的端口的是关闭的,并且接受到的tcp数据包如果可能会导致系统错误,则返回RST。如果开放的端口接受到诸如SYN RST ACK,则丢弃或者不做任何处理。根据此RFC描述,我们可以发送不包含SYN RST或者ACK标志的数据包,如果返回RST则说明端口是关闭状态,如果什么都没有返回则说明端口是开放状态。

上面这三种扫描的结果都是一致的,如果接受到到RST,则说明端口是关闭的。如果无响应,则端口可能是开放或者filteted状态。如果返回icmp unreachable error(type 3, code 0, 1, 2, 3, 9, 10, 13),则说明端口一定是filtered的。

这种扫描只设置tcp ack标志位。这种扫描一般来探测防火墙是否过滤被扫描的端口。如果扫描的端口未被防火墙保护,那么无论是开放或者是关闭,都会返回RST。nmap将该端口标记为未被封锁的(unfiltered),但是不能确定该端口是开放或者关闭状态。如果无响应,或者返货icmp error,则该端口一定被防火墙封锁了

tcp窗口扫描,如果接收到RST,则说明端口封锁了。在某些操作系统,开放的端口会返回一个正数的tcp窗口值,如果端口关闭,则返回tcp窗口值为0或者负数。但是这种扫描不是很靠谱

这种扫描为发送同时设置FIN/ACK的数据包。如果返回RST,则说明端口是开放的,如果无响应,则是关闭状态的。

这种是专门扫描ip协议的。扫描类似于udp扫描,如果IP协议号不存在,返回 icmp错误。具体没用过,不太好写

如果udp端口开放,则无响应。如果udp端口关闭,则会返回icmp unreachable error错误。这种扫描需要root权限,因为需要构建raw socket。

这种直接一个一个建立udp连接,如果能建立,则说明端口开放,不能建立则端口关闭呗。

如何通过扫描工具Nmap列出开放端口和监听服务

Zenmap安装完毕后,你随时可以对自己的网络运行全面的端口扫描。网络规模将决定运行扫描所花的时间。如果使用Zenmap,你可以运行非常笼统的扫描和非常具体的扫描。不妨先运行非常笼统的扫描,大致了解我们所处理的对象。我们将在整个192.168.1.x网络上运行扫描。1. 打开Zenmap。2. 在Target(目标)部分,输入192.168.1.1/24(或者你想要扩展的任何庞大的目标)。3. 从Profile(配置文件)中选择Intense Scan(精细扫描)。4. 点击Scan(扫描)按钮。你应该会立马看到结果批量装入到Nmap Output(输出)选项卡;结果显示网络中机器上的开放端口(图A)。精细扫描要花很长时间,但是如果你想要获得网络方面的最详细信息,就应该进行精细扫描。想知道更多具体方法,可以百度这文:如何通过扫描工具Nmap列出开放端口和监听服务

端口检测工具合辑 nmap、telnet、nc

Telnet

使用方法

telnet ip port

注意:

Nmap

使用方法

1.简单扫描

2.指定具体端口、端口范围

当然nmap的功能远远不止这些,感兴趣的可以自己去搜索学习,这里只列出和端口检测相关的部分使用方法。

Nc

使用方法

最常见使用场景

:small_orange_diamond: 三种工具总结

0条大神的评论

发表评论