如何使用 nmap 命令

2023-10-20

Nmap 是一款功能强大的网络扫描工具,用于安全审计和渗透测试。它是网络管理员用来解决网络连接问题和解决问题的基本工具之一端口扫描 .

Nmap还可以检测Mac地址,OS type、服务版本等等。

本文介绍了如何使用的基础知识nmap命令来执行各种网络任务。

安装 Nmap#

Nmap 是一个多平台程序,可以安装在所有主要操作系统上。它最初仅作为 Linux 工具发布,后来被移植到 BSD、Windows 和 macOS 等其他系统。

如果您更喜欢 GUI 而不是命令行,Nmap 还有一个图形用户界面,称为Zenmap .

官方二进制包可以从Nmap下载下载页面 .

安装过程很简单,并且根据您的操作系统而有所不同。

在 Ubuntu 和 Debian 上安装 Nmap#

Nmap 可从默认的 Ubuntu 和 Debian 存储库中获取。要安装它,请运行:

sudo apt updatesudo apt install nmap

在 CentOS 和 Fedora 上安装 Nmap#

在 CentOS 和其他 Red Hat 衍生产品上运行:

sudo dnf install nmap

在 macOS 上安装 Nmap#

macOS 用户可以通过从 Nmap 站点或通过 Homebrew 下载“.dmg”安装包来安装 Nmap:

brew install nmap

在 Windows 上安装 Nmap#

Windows 版本的 Nmap 有一些限制,通常比 UNIX 版本慢一点。

在 Windows 上安装 Nmap 最简单的选择是下载并运行自安装 exe 文件。

您可以通过命令行或启动 Zenmap 程序在 Windows 上运行 Nmap。有关如何在 Windows 上使用 Nmap 的更多信息,请查看安装后使用说明 .

使用 Nmap#

Nmap 通常用于审核网络安全、网络映射、识别开放端口以及搜索在线设备。

简化的语法nmap命令如下:

nmap [Options] [Target...]

使用 Nmap 的最基本示例是以标准用户身份扫描单个目标,而不指定任何选项:

nmap scanme.nmap.org

当以不具有原始数据包权限的非 root 用户身份调用时,nmap运行 TCP 连接扫描。这 (-sT) 在非特权模式下默认打开。

输出将如下所示,包括有关扫描的基本信息以及打开和过滤的 TCP 端口的列表。

Starting Nmap 7.91 ( https://nmap.org ) at 2020-12-16 20:19 CET
Nmap scan report for cast.lan (192.168.10.121)
Host is up (0.048s latency).
Not shown: 981 closed ports
PORT     STATE    SERVICE
21/tcp   open     ftp
22/tcp   open     ssh
25/tcp   open     smtp
53/tcp   open     domain
80/tcp   open     http
110/tcp  open     pop3
143/tcp  open     imap
443/tcp  open     https
587/tcp  open     submission
993/tcp  open     imaps
995/tcp  open     pop3s
1025/tcp open     NFS-or-IIS
1080/tcp open     socks
8080/tcp open     http-proxy
8081/tcp open     blackice-icecap

Nmap done: 1 IP address (1 host up) scanned in 1.78 seconds

最流行的扫描选项是 TCP SYN 扫描(-sS)比连接选项更快,并且适用于所有兼容的 TCP 堆栈。

-sS默认情况下打开nmap以具有管理权限的用户身份调用:

sudo nmap 192.168.10.121

要获得更详细的输出,请使用增加详细程度-v or -vv:

sudo nmap -vv 192.168.10.121

要执行 UDP 扫描,请使用 (-sU) 作为 root 用户的选项:

sudo nmap -sU 192.168.10.121

有关端口扫描方法的完整列表,请访问Nmap 文档页面 .

Nmap 还支持 IPv6 地址。要指定 IPv6 主机,请使用-6 option:

sudo nmap -6 fd12:3456:789a:1::1

指定目标主机#

Nmap 将所有不是选项的参数视为目标主机。

如果参数以单破折号或双破折号开头(-, --).

最简单的选择是传递一个或多个目标地址或域名:

nmap 192.168.10.121 host.to.scan

您可以使用 CIDR 表示法来指定网络范围:

nmap 192.168.10.0/24

要指定八位位组范围,请使用破折号字符。例如,扫描192.168.10.1, 192.168.11.1, and 192.168.12.1:

nmap 192.168.10-12.1

另一个可用于指定目标的字符是逗号。以下命令针对与上述相同的主机:

nmap 192.168.10,11,12.1

您可以组合所有形式:

nmap 10.8-10.10,11,12.0/28  192.168.1-2.100,101

要确保在扫描之前指定了正确的主机,请使用列表扫描选项(-sL),它仅列出目标而不运行扫描:

nmap -sL 10.8-10.10,11,12.0/28  192.168.1-2.100,101

如果要排除指定范围内的目标,请使用--exclude option:

nmap 10.8-10.10,11,12.0/28 --exclude 10.10.12.12

指定和扫描端口#

默认情况下,Nmap 对 1000 个最常用端口执行快速扫描。这些端口不是前 1000 个连续端口,而是从 1 到 65389 的 1000 个最常用端口。

要扫描从 1 到 65535 的所有端口,请使用-p- option:

nmap -p- 192.168.10.121

每个端口可以处于以下状态之一:

  • open - 端口上运行的程序响应请求。
  • 关闭 - 端口上没有程序运行,主机回复请求。
  • 已过滤 - 主机不回复请求。

端口和端口范围由-p option.

例如,要仅扫描端口 443,您可以使用以下命令:

nmap -p 443 192.168.10.121

要指定多个端口,请用逗号分隔目标端口:

nmap -p 80,443 192.168.10.121

可以使用破折号指定端口范围。例如,要扫描从 1 到 1024 的所有 UDP 端口,您可以运行:

sudo nmap -sU -p 1-1024 192.168.10.121

全部合并:

nmap -p 1-1024,8080,9000 192.168.10.121

也可以使用端口名称来指定端口。例如,要扫描端口22、ssh,可以使用:

nmap -p ssh 192.168.10.121

Ping 扫描#

要执行 ping 扫描或主机发现,请调用nmap命令与-sn option:

sudo nmap -sn 192.168.10.0/24

The -sn选项告诉 Nmap 仅发现在线主机而不进行端口扫描。当您想要快速确定哪些指定主机已启动并正在运行时,这非常有用。

禁用 DNS 名称解析#

Nmap 的默认行为是对每个发现的主机执行反向 DNS 解析,这会增加扫描时间。

扫描大型网络时,最好禁用反向 DNS 解析并加快扫描速度。为此,请使用以下命令调用该命令-n option:

sudo nmap -n 192.168.10.0/16

操作系统、服务和版本检测#

Nmap 可以使用 TCP/IP 堆栈指纹来检测远程主机操作系统。要运行操作系统检测,请使用以下命令调用命令-O option:

sudo nmap -O scanme.nmap.org

如果 Nmap 可以检测到主机操作系统,它将打印如下内容:

...
Device type: general purpose
Running: Linux 5.X
OS CPE: cpe:/o:linux:linux_kernel:5
OS details: Linux 5.0 - 5.4
Network Distance: 18 hops

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 26.47 seconds

通常,系统服务侦听众所周知并为其保留的标准端口。例如,如果与 SSH 服务对应的端口 22 打开,您将假设主机上运行着 SSH 服务器。但是,您不能绝对确定,因为人们可以在他们想要的任何端口上运行服务。

通过服务和版本检测,Nmap 将显示哪些程序在端口上侦听以及程序版本。

要扫描服务和版本,请使用-sV option:

sudo nmap -sV scanme.nmap.org
...
PORT      STATE    SERVICE      VERSION
19/tcp    filtered chargen
22/tcp    open     ssh          OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.13 (Ubuntu Linux; protocol 2.0)
80/tcp    open     http         Apache httpd 2.4.7 ((Ubuntu))
135/tcp   filtered msrpc
139/tcp   filtered netbios-ssn
445/tcp   filtered microsoft-ds
9929/tcp  open     nping-echo   Nping echo
31337/tcp open     tcpwrapped
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
...

您还可以使用以下命令在一个命令中扫描操作系统、版本并运行 Traceroute-A option:

sudo nmap -A 192.168.10.121

Nmap 输出#

默认情况下,Nmap 将信息打印到标准输出(stdout)。

如果您扫描大型网络或需要信息供以后使用,您可以将输出保存到文件中。

Nmap 提供了多种输出类型。要以正常格式保存输出,请使用-oN选项后跟文件名:

sudo nmap -sU -p 1-1024 192.168.10.121 -oN output.txt

最流行的选项是将输出保存为 XML 格式。为此,请使用-oX option:

sudo nmap -sU -p 1-1024 192.168.10.121 -oX output.xml

另一种有用的格式是 grepable 输出,它可以使用标准 Unix 工具进行解析,例如grep , awk and cut。 grepable 输出指定为-oG option:

sudo nmap -sU -p 1-1024 192.168.10.121 -oG output

Nmap 脚本引擎#

Nmap 最强大的功能之一是它的脚本引擎。 Nmap 附带数百个脚本,你也可以用Lua语言编写自己的脚本。

您可以使用脚本来检测恶意软件和后门、执行暴力攻击等。

例如,要检查给定主机是否受到威胁,您可以使用:

nmap -sV --script http-malware-host scanme.nmap.org

结论#

Nmap 是一个开源工具,主要由网络管理员用来发现主机和扫描端口。

请注意,在某些国家/地区,未经授权扫描网络是不合法的。

如果您有任何疑问或意见,请在下面留言。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 nmap 命令 的相关文章

随机推荐

  • 如何使用 RVM 在 Debian 上安装 Ruby

    Ruby 是一种深受众多开发人员欢迎的编程语言 Rails是运行Ruby语言的框架 Ruby 语言由 Yukihiro Matz Matsumoto 创建 并于 1995 年首次发布 本文将帮助您使用 RVM 在 Debian Linux
  • 如何在 Debian 10 上安装 Dovecot (POP/IMAP)

    Dovecot 是类 Unix 操作系统上 IMAP 和 POP3 的开源服务 它专注于可用于大多数 Linux 操作系统的轻量级且安全的邮件服务器 POP3 邮局协议 3 和 IMAP 互联网消息访问协议 都是用作消息访问代理的协议 这些
  • 如何在 WordPress 中禁用附件评论

    许多垃圾邮件发送者会针对您的 WordPress 网站上的媒体附件进行评论 您可以通过使用 WordPress 插件或在主题文件中添加自定义 PHP 代码来禁用媒体附件上的评论 下面介绍了两种禁用媒体附件评论的方法 Read 如何在 Wor
  • 如何在 CentOS 8 上安装 Laravel 9

    Laravel 是一个功能强大的开源 PHP Web 框架 专为更快地开发 Web 应用程序而设计 它基于Symfony框架 遵循MVC架构模式 在本教程的最近更新期间 Laravel 9 是可用的最新版本 Laravel 框架还提供了一个
  • 如何在 Ubuntu 18.04 和 16.04 上安装 Nginx

    Nginx 是 Apache HTTP Server 之外的另一个最受欢迎的 Web 服务器 它被全球大量流行网站使用 该网络服务器对于大流量网站非常有用 本教程将帮助您使用 apt get 在 Ubuntu 18 04 和 16 04 上
  • 使用 PHPMailer 发送电子邮件

    电子邮件发送功能是许多 Web 应用程序的重要组成部分 从帐户验证电子邮件到忘记密码提醒 电子邮件有助于在您的应用程序与其用户之间建立沟通桥梁 PHPMailer 是从 PHP 应用程序发送电子邮件的最流行的库之一 它具有许多功能 使其成为
  • 如何在 Ubuntu 18.04 LTS 上安装 Swift

    Swift 是一种安全 快速 富有表现力的通用编程语言 专为软件设计模式而构建 它最适合系统编程 移动和桌面应用程序 Swift 提供了大量功能 使编程变得更加容易 同时为开发人员提供了真正的系统编程语言所需的控制能力 本教程将帮助您在 U
  • 解决 MySQL 错误 1041 (HY000):内存不足

    在使用 MySQL 时 您可能偶尔会遇到以下情况 错误 1041 HY000 内存不足错误 此错误表明 MySQL 服务器 mysqld 在尝试执行操作时内存不足 此类问题可能有点令人困惑 特别是如果您的服务器似乎有足够的可用内存 让我们深
  • 什么是 500 内部服务器错误

    浏览网页时最常见的错误之一是 500 内部服务器错误 此消息表明网络服务器遇到技术问题 本文解释了 500 错误的含义 为什么会收到 HTTP 500 代码以及如何解决这些错误 什么是 HTTP 500 错误 每次打开网页时 浏览器都会向托
  • Linux 中的 Basename 命令

    basename是一个命令行实用程序 可以从给定的文件名中删除目录和尾随后缀 使用basename命令 The basename命令支持两种语法格式 basename NAME SUFFIX basename OPTION NAME bas
  • 如何在 Linux 上创建可启动的 Ubuntu U 盘

    在本教程中 我们将向您展示如何从 Linux 终端创建可启动的 Ubuntu U 盘 您可以使用此 U 盘来启动并测试或在任何支持从 USB 启动的计算机上安装 Ubuntu 先决条件 4GB 或更大的 USB 记忆棒驱动器 运行任何 Li
  • 如何在 Ubuntu 20.04 上安装 Odoo 14

    Odoo 是一款流行的开源商业应用程序套件 可帮助公司管理和运营其业务 它包括广泛的应用程序 例如 CRM 电子商务 网站构建器 计费 会计 制造 仓库 项目管理 库存等等 所有这些都无缝集成 Odoo根据使用案例和可用技术 可以以不同的方
  • Linux 中的 Ping 命令

    The ping命令是最常用的用于故障排除 测试和诊断网络连接问题的工具之一 Ping 的工作原理是向网络上指定的目标 IP 发送一个或多个 ICMP 互联网控制消息协议 回显请求包 并等待回复 当目的地收到数据包时 它会使用 ICMP 回
  • Linux 中的 Gzip 命令

    Gzip 是最流行的压缩算法之一 它允许您减小文件的大小并保留原始文件模式 所有权和时间戳 Gzip 还指 gz文件格式和gzip用于压缩和解压缩文件的实用程序 在本教程中 我们将向您展示如何使用gzip命令 gzip命令语法 的一般语法为
  • 如何在 Debian 10 上安装 Skype

    Skype是世界上最流行的通信应用程序之一 它允许您免费拨打在线音频和视频电话 并以经济实惠的价格拨打全球手机和固定电话 本文介绍如何在 Debian 10 Linux 上安装最新版本的 Skype 在 Debian 上安装 Skype S
  • 如何在 Ubuntu 20.04 上安装 PHP

    PHP 是最常用的服务器端编程语言之一 许多流行的 CMS 和框架 例如 WordPress Magento 和 Laravel 都是用 PHP 编写的 本指南介绍了在 Ubuntu 20 04 上安装 PHP 并将其与 Nginx 和 A
  • 如何在 Ubuntu 中更改用户密码

    定期更新密码并为每个帐户使用唯一的密码始终是个好主意 作为 Ubuntu 中的普通用户 您只能更改自己的密码 root 用户和具有 sudo 权限的用户可以更改其他用户的密码并定义如何使用或更改密码 本教程介绍如何从命令行或通过 Ubunt
  • 如何在 Ubuntu 20.04 上安装 Nginx

    Nginx 发音为 engine x 是一个开源 高性能的 HTTP 和反向代理服务器 负责处理互联网上一些最大站点的负载 它可以用作独立的 Web 服务器 负载均衡器 内容缓存和反向代理适用于 HTTP 和非 HTTP 服务器 与 Apa
  • 如何在 CentOS 7 上安装 Tomcat 9

    Tomcat 是 Java Servlet JavaServer Pages Java 表达式语言和 Java WebSocket 技术的开源实现 本教程介绍了在 CentOS 7 上安装 Tomcat 9 0 所需的步骤 先决条件 您登录
  • 如何使用 nmap 命令

    Nmap 是一款功能强大的网络扫描工具 用于安全审计和渗透测试 它是网络管理员用来解决网络连接问题和解决问题的基本工具之一端口扫描 Nmap还可以检测Mac地址 OS type 服务版本等等 本文介绍了如何使用的基础知识nmap命令来执行各