Nmap 是一个用于网络发现和安全审计的开源实用程序,可以将其用于渗透测试、网络分析等。
这是一个选项非常多的程序,不过我们本文的重点并不是介绍如何使用 nmap,而是介绍扫描端口的各种方法。为了便于演示,我们在下面的例子中将使用 nmap 提供的 scanme.nmap.org 作为扫描目标。
扫描开放的端口
nmap -sT scanme.nmap.org

在上图中可以看到,扫描目标中有两个比较重要的端口开放,分别为端口 22 和 80.
22 端口和 80 端口分别是 ssh 和 http 服务使用的端口。如果这些端口之前未处于活动状态,那么应该检查目标系统的系统日志,以发现可能的安全漏洞。
sudo nmap -sU scanme.nmap.org

在这里需要注意的是,与 TCP 扫描不同,要扫描 UDP 端口,需要有 root 权限。
扫描指定的端口
nmap 的一个基本功能,使用 -p 选项,可以指定端口号来扫描单个端口。我们来看下面的例子。
nmap -p 80 scanme.nmap.org
同样,对于 https 协议的 443端口(默认端口),也可以同样扫描:
nmap -p 443 scanme.nmap.org

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 - 消息提交端口
nmap -p 22,25,80 scanme.nmap.org

指定多个端口范围:
nmap -p 80-85,130-140,22 scanme.nmap.org

nmap -p -22 scanme.nmap.org

nmap -p 65255- scanme.nmap.org

在 nmap 中使用通配符
nmap -p http* scanme.nmap.org

扫描顶部端口
扫描每个协议的所有 65536 个端口是一项非常耗时的任务,然而,这些端口中的大多数几乎没有开放。。。Nmap 的开发人员 Fyodor 简化了这个操作。
他通过研究数百万个IP地址和探索许多企业网络,找到了最流行的TCP和UDP端口。
nmap --top-ports 1000 scanme.nmap.org

-F 选项只扫描最常用的前 100 个端口。
下面是我们总结的几个最常用的使用 nmap 扫描端口的方法:
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
以上就是本次分享全部内容,欢迎讨论。




