使用 nmap 扫描目标网站中的端口

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

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

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

扫描开放的端口

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

nmap -sT scanme.nmap.org

图片

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

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

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

sudo nmap -sU scanme.nmap.org

图片

在这里需要注意的是,与 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

图片

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

nmap -p 22 scanme.nmap.org

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

nmap -p ssh scanme.nmap.org

图片

以上是使用 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

图片

指定多个端口范围:

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

图片

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

nmap -p -22 scanme.nmap.org

图片

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

nmap -p 65255- scanme.nmap.org

图片

在 nmap 中使用通配符

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

nmap -p http* scanme.nmap.org

图片

扫描顶部端口

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

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

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

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

图片

-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 命令,通过这些扫描出来的端口,来识别相应的服务。

责任编辑:庞桂玉 来源: TIAP
相关推荐

2017-08-14 16:50:23

2015-06-18 09:41:53

2015-08-21 09:07:52

LinuxNMAP安全

2014-05-15 10:07:29

2024-01-07 13:33:14

2014-03-12 14:17:03

2015-12-14 16:03:45

LinuxUnix端口扫描

2017-04-19 21:10:08

LinuxNMAP扫描

2017-03-29 13:42:08

LinuxNMAP扫描

2023-01-13 23:21:29

netcat命令Linux

2011-09-02 16:12:48

ubuntuskipfish

2010-08-18 12:01:46

NMap嗅探扫描

2009-09-28 11:05:29

Ruby端口扫描

2022-06-15 13:40:38

端口扫描工具开源工具

2024-01-09 11:38:12

2014-03-26 09:28:43

网络·安全技术周刊

2013-01-10 09:19:53

2010-12-02 14:29:07

nmap

2020-12-14 10:32:28

Web安全工具多线程

2009-12-24 11:13:21

点赞
收藏

51CTO技术栈公众号