介绍扫描端口的各种方法

电子说

1.3w人已加入

描述

Nmap 是一个用于网络发现和安全审计的开源实用程序,可以将其用于渗透测试、网络分析等。

这是一个选项非常多的程序,不过我们本文的重点并不是介绍如何使用 nmap,而是介绍扫描端口的各种方法。为了便于演示,我们在下面的例子中将使用 nmap 提供的 scanme.nmap.org 作为扫描目标。

扫描开放的端口

使用 -sT 参数,nmap 可以执行简单的 **TCP **扫描,以查找开放的端口:

nmap -sT scanme.nmap.org

TCP通信

在上图中可以看到,扫描目标中有两个比较重要的端口开放,分别为端口 22 和 80.

22 端口和 80 端口分别是 ssh 和 http 服务使用的端口。如果这些端口之前未处于活动状态,那么应该检查目标系统的系统日志,以发现可能的安全漏洞。

上述例子是扫描 TCP 端口,如果要扫描 UDP 服务端口,可使用如下命令:

sudo nmap -sU scanme.nmap.org

TCP通信

在这里需要注意的是,与 TCP 扫描不同,要扫描 UDP 端口,需要有 root 权限。

扫描指定的端口

nmap 的一个基本功能,使用 -p 选项,可以指定端口号来扫描单个端口。我们来看下面的例子。

Apache 的端口号为 80 和 443,其中端口80是 Apache 上 HTTP 请求的默认端口号,我们可以使用 nmap 扫描该端口号,如下:

nmap -p 80 scanme.nmap.org

同样,对于 https 协议的 443端口(默认端口),也可以同样扫描:

nmap -p 443 scanme.nmap.org

TCP通信

ssh 服务的默认端口号为 22,因此如果要扫描 ssh 连接的话,可以扫描 22 端口:

nmap -p 22 scanme.nmap.org

另外,对于单个端口的扫描,还可以使用服务名称来代替端口号,比如对于ssh端口,可以使用:

nmap -p ssh scanme.nmap.org

TCP通信

以上是使用 nmap 扫描指定端口号的例子,大家可以照例尝试下扫描其他协议或端口号。

下面给出了一些常用服务(协议)的默认端口号:

  • 20: FTP data
  • 21: FTP 控制端口
  • 22: SSH
  • 23: Telnet (不安全,不建议使用)
  • 25: SMTP
  • 53: DNS services
  • 67: DHCP server port
  • 68: DHCP client port
  • 80: HTTP
  • 143: IMAP 邮件端口
  • 161: SNMP
  • 443: HTTPS - 加密的web服务
  • 587: SMTP - 消息提交端口

扫描多个端口

要扫描多个端口,依然可以使用 -p 选项,将多个端口之间使用逗号隔开,如下:

nmap -p 22,25,80 scanme.nmap.org

TCP通信

指定多个端口范围:

nmap -p 80-85,130-140,22 scanme.nmap.org

TCP通信

关于端口的范围,还有一种用法,比如上面的端口范围 80-85,可以省略前面的80,变成 -85,这样的话,实际的扫描范围为 1-85。下面的例子扫描端口 1 到 22:

nmap -p -22 scanme.nmap.org

TCP通信

类似,如果在端口范围中,省略后面那个值,则会从第一个指定的端口号开始扫描,一直到最后一个可能的端口号:

nmap -p 65255- scanme.nmap.org

TCP通信

在 nmap 中使用通配符

使用通配符还可以简化扫描任务,假设我们要扫描所有与 http 相关的端口:

nmap -p http* scanme.nmap.org

TCP通信

扫描顶部端口

扫描每个协议的所有 65536 个端口是一项非常耗时的任务,然而,这些端口中的大多数几乎没有开放。。。Nmap 的开发人员 Fyodor 简化了这个操作。

他通过研究数百万个IP地址和探索许多企业网络,找到了最流行的TCP和UDP端口。

根据 Fyodor 的研究,扫描工作要覆盖 90% 的开放端口,只需要针对 576 个 TCP 端口和 11307 个 UDP 端口即可。--top-ports 选项仅扫描这些常用的端口:

nmap --top-ports 1000 scanme.nmap.org

TCP通信

-F 选项只扫描最常用的前 100 个端口。

下面是我们总结的几个最常用的使用 nmap 扫描端口的方法:

扫描 TCP 端口,使用 -sT 选项:

sudo nmap -sT scanme.nmap.org

扫描 UDP 端口,使用 -sU 选项:

sudo nmap -sU scanme.nmap.org

扫描 TCP 和 UDP 端口,可使用如下命令:

sudo nmap -n -PN -sT -sU -p- scanme.nmap.org

扫描SYN数据包,可以使用 -sS 选项:

sudo nmap -sS scanme.nmap.org

使用 nmap 可以扫描目标网站上开放的端口,此外我们可以结合使用 netstat 和 ps 命令,通过这些扫描出来的端口,来识别相应的服务。

审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分