0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在Windows使用Nmap

CHANBAEK 来源:myfreax 作者:myfreax 2022-12-12 17:37 次阅读

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

Nmap还可以检测Mac地址,操作系统类型,服务版本等。本教程介绍如何使用nmap命令执行各种网络任务的基础知识。

Nmap可以所有流行的操作系统上安装。Nmap是跨平台应用程序。它最初仅发布在Linux的发行版,后来又被移植到其他系统,例如BSD,Windows和macOS。

如果您更喜欢GUI而不是命令行,可以安装Nmap的GUI版本Zenmap。可从Nmap下载页面。下载官方二进制包。安装过程很简单,并且根据您的操作系统而有所不同。

安装Nmap

如果你的系统未安装nmap,命令将显示nmap: command not found,tio命令未找到。您可以使用发行版的软件包管理器轻松安装nmap。

如果你的计算机运行的是基于Debian的Linux发行版,例如Ubuntu,Linux mint。请运行命令sudo apt update && sudo apt install nmap安装nmap。

如果你的计算机运行的是基于RedHat的Linux发行版,例如CentOS,Fedora。请运行命令sudo dnf install nmap安装nmap。

如果你的计算机运行的是MacOS,请运行命令brew install nmap安装nmap。

sudo apt update && sudo apt install nmap
sudo dnf install nmap
brew install nmap

如果你的计算机运行的是Windows,Nmap在Windows上有一些限制,并且通常比UNIX版本要慢一些。

在Windows安装Nmap的最简单选择是下载并运行安装exe文件。您可以通过命令行或启动Zenmap在Windows运行Nmap。

有关如何在Windows使用Nmap的更多信息,请查看安装后使用说明。

Nmap 命令选项

Nmap通常用于审核网络安全性,网络映射,扫描端口并搜索在线设备。nmap命令语法形式是nmap [Options] [Target...]

使用Nmap的最基本示例不指定任何选项,扫描指定的计算机。nmap命令默认运行TCP端口扫描。nmap命令的默认选项是-sT

输出的内容,包括扫描的基本信息以及已打开端口,服务名称,还有端口的状态信息。

nmap scanme.nmap.org
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
8080/tcp open     http-proxy
8081/tcp open     blackice-icecap

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

最受欢迎的扫描选项-sS ,也就是TCP SYN扫描,它比connect选项要快,并且可用于所有兼容的TCP的堆栈。

当以root用户运行nmap时,默认会打开-sS选项。要获得更详细的输出,请添加-v-vv 选项。

如果运行UDP扫描,请以root用户使用-sU选项运行nmap命令。Nmap也支持IPv6地址。要指定IPv6主机,请使用-6选项。

sudo nmap 192.168.10.121
sudo nmap -vv 192.168.10.121
sudo nmap -sU 192.168.10.121
sudo nmap -6 fd12:3456:789a:1::1

nmap 指定目标主机

Nmap将所有不是选项的参数视为目标主机。如果参数以单破折号或双破折号-/--开头,则视为选项。

在指定目标主机时最简单的方式传递一个或多个目标地址或域名,您也可以使用CIDR表示法指定网络范围,例如命令nmap 192.168.10.0/24

要指定八位字节范围,请使用破折号。例如,要扫描IP地址是192.168.10.1192.168.11.1192.168.12.1的主机,请运行命令nmap 192.168.10-12.1

nmap 192.168.10.121 host.to.scan
nmap 192.168.10.0/24
nmap 192.168.10-12.1

您还可以使用逗号指定目标主机。例如命令nmap 192.168.10,11,12.1 将会扫描IP地址是192.168.10.1192.168.11.1192.168.12.1的主机。

除了以上方式指定主机之外,也可以组合上述模式作为扫描的目标主机。

要确保在扫描前指定正确的主机的IP地址范围,请使用-sL选项运行nmap命令,该选项只是仅列出目标而不会运行真正的扫描。

如果要排除指定范围内的目标,请使用--exclude选项运行nmap命令。

nmap 192.168.10,11,12.1
nmap 10.8-10.10,11,12.0/28  192.168.1-2.100,101
nmap -sL 10.8-10.10,11,12.0/28  192.168.1-2.100,101
nmap 10.8-10.10,11,12.0/28 --exclude 10.10.12.12

nmap 指定扫描端口

Nmap默认前1000个最流行的端口执行快速扫描。这些端口不是前1000个连续的端口,而是1000个最常用的端口,范围从1到1000。

如果要扫描所有TCP端口,也就是1到65535的端口,请使用-p-选项运行nmap命令。例如命令nmap -p- 192.168.10.121

命令将会打印端口的状态和服务,每个端口可以处于状态open,close,filtered。

open表示端口运行的程序响应请求,close表示端口没有程序运行,但主机不复请求。filtered主机不回复请求。

nmap -p- 192.168.10.121

端口和端口范围由-p选项指定。例如,要仅扫描443端口,可以运行命令nmap -p 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组合使用逗号,端口范围。

nmap还允许你使用服务名称代替端口的数值。例如要扫描端口22,可以使用ssh代替数字端口,例如命令nmap -p ssh 192.168.10.121

nmap -p 443 192.168.10.121
nmap -p 80,443 192.168.10.121
sudo nmap -sU -p 1-1024 192.168.10.121
nmap -p 1-1024,8080,9000 192.168.10.121
nmap -p ssh 192.168.10.121

nmap Ping扫描

要执行ping扫描或主机发现,请使用-sn选项运行nmap命令,-sn选项仅发现在线主机,而不进行端口扫描。

当您要快速确定哪些指定主机已启动并正在运行时,此功能很有用。

例如命令sudo nmap -sn 192.168.10.0/24将会运行ping扫描,发现192.168.10.0/24网段的主机。

sudo nmap -sn 192.168.10.0/24

禁用DNS名称解析

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

扫描大型网络时,最好禁用反向DNS解析并加快扫描速度。因此,可以使用-n选项运行nmap命令。

sudo nmap -n 192.168.10.0/16

namp 操作系统检测

Nmap可以使用TCP/IP堆栈指纹来检测远程主机操作系统。如需要运行操作系统检测,请使用-O选项运行nmap命令。

如果Nmap可以检测到主机操作系统,它将打印操作系统的信息。

sudo nmap -O scanme.nmap.org
...
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

namp 服务和版本检测

通常,系统服务监听在众所周知端口。假设远程主机运行着SSH服务,并可能监听端口22。

但是您不能绝对确定,因为系统管理员可以指定在任何端口运行SSH服务。借助namp的服务和版本检测功能,nmap将在指定端口上检测程序和程序版本。

要使用nmap的服务和版本检测,使用-sV选项运行namp命令。例如命令sudo nmap -sV scanme.nmap.org将会检测scanme.nmap.org主机运行服务和版本。

您还可以使用-A选项在一个命令中扫描操作系统版本并运行traceroute。

sudo nmap -sV scanme.nmap.org
sudo nmap -A 192.168.10.121
...
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
...

Nmap 输出

Nmap默认将信息打印到标准输出。如果您扫描大型网络或需要保存信息,则可以将nmap命令输出保存到文件中。

Nmap提供几种输出类型。要以普通文本格式保存文件,请使用-oN选项,后跟文件名。

最流行的选项是以XML格式保存输出,请使用-oX选项运行nmap命令,后跟文件名。

另一种非常有用的格式是grepable,可以用标准Unix命令,例如grepawkcut 进行解析。如果需要使用此格式没,请使用-oG选项运行nmap命令。

sudo nmap -sU -p 1-1024 192.168.10.121 -oN output.txt
sudo nmap -sU -p 1-1024 192.168.10.121 -oX output.xml
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 -sV --script http-malware-host scanme.nmap.org

结论

Nmap是用于安全审核和渗透测试的强大网络扫描工具,网络管理员主要使用它来发现主机和扫描端口。

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

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

    关注

    87

    文章

    11216

    浏览量

    208808
  • 计算机
    +关注

    关注

    19

    文章

    7390

    浏览量

    87680
  • WINDOWS
    +关注

    关注

    3

    文章

    3523

    浏览量

    88373
收藏 人收藏

    评论

    相关推荐

    请问如何在Windows(Msys)上设置NONOS系统?

    何在Windows(Msys)上设置NONOS系统?
    发表于 07-08 08:29

    何在Windows和linux之间建立服务器?

    何在Windows和linux之间建立服务器?
    发表于 04-21 15:33

    何在Windows平台下编译esp8266 SOC源码。

    何在Windows平台下编译esp8266 SOC源码。主要遇到的问题,及解决方法。1源码中注释的汉字乱码问题2代码编辑窗口字号大小的调整3 build project命令不可用。因为有图片,还是直接下载附件查看吧。
    发表于 04-21 10:26

    何在Windows 7下安装VEE 9?

    有谁知道如何在Windows 7下安装VEE 9?IO库一直告诉我,我将以管理员身份登录安装..即使我一直试图在管理员模式下运行,我也会收到此消息。嗯?!VEE 9安装提供的消息说它只能在比
    发表于 06-18 10:15

    Nmap是什么?有何主要作用

    什么是服务器端?Nmap是什么?有何主要作用?DES是什么?
    发表于 10-19 07:07

    何在WINDOWS系统下使用tensorflow来下围棋呢

    1、如何在WINDOWS系统下安装tensorflow并使用tensorflow来下围棋呢 tensorflow0.12版本支持windows,需要python3.5.x。(1)下载并安装
    发表于 06-02 16:17

    何在忘记密码时怎么登录Windows XP系统

    何在忘记密码时怎么登录Windows XP系统 在忘记密码或密码过期时,如果不重设密码,将无法再登录到计算机中。本文包含几种可用于
    发表于 02-12 08:08 4735次阅读

    何在DOS下安装Windows Me

    何在DOS下安装Windows Me 一、准备工作:1.WindowsMe(或98)启动盘一张。内含format.com(硬盘分区格式化命令)。2.准备好Microsoft Windows Me 安
    发表于 03-01 10:36 5745次阅读

    何在Windows上设置英特尔硬件加速执行管理器

    了解如何在Windows上设置英特尔®硬件加速执行管理器(英特尔®HAXM),以帮助您的Android模拟器以更快的速度运行。
    的头像 发表于 11-01 06:23 4200次阅读

    Linux系统中nmap网络扫描工具的命令用法详解

    目标主机可能运行的是Windwos系统。现在这种方式没有什么太大的用处,因为nmap有内嵌的操作系统检测功能。还有其它几个系统使用和windows同样的处理方式,包括Cisco、BSDI、HP/UX
    发表于 04-02 14:33 478次阅读

    ESP32教程之如何在Windows系统上搭建开发环境

    本文档的主要内容详细介绍的是ESP32教程之如何在Windows系统上搭建开发环境。
    发表于 12-13 15:34 40次下载
    ESP32教程之如<b class='flag-5'>何在</b><b class='flag-5'>Windows</b>系统上搭建开发环境

    何在Windows 10上轻松快速地录制视频

    如果你有关于如何在windows 10上录制视频的相关问题,那么这篇文章将为你带来答案。你可以使用大量的工具来录制高质量的视频。这些屏幕录制工具可以根据您的喜好记录屏幕的特定区域,甚至全屏。你可以
    的头像 发表于 03-02 16:56 2755次阅读

    恒讯科技分享:如何在Windows Server上配置静态ip?

    服务器,因此需要分配静态ip。所以,我们将学习如何在Windows Server上配置静态 ipv4和ipv6地址。
    的头像 发表于 12-08 16:53 1756次阅读
    恒讯科技分享:如<b class='flag-5'>何在</b><b class='flag-5'>Windows</b> Server上配置静态ip?

    何在Windows上设置Pico RP2040

    电子发烧友网站提供《如何在Windows上设置Pico RP2040.zip》资料免费下载
    发表于 06-15 09:35 4次下载
    如<b class='flag-5'>何在</b><b class='flag-5'>Windows</b>上设置Pico RP2040

    何在Windows系统上设置Docker镜像源

    在使用 Docker 进行镜像下载和构建时,由于众所周知的原因,国内用户可能会遇到下载速度慢或者无法连接的问题。为了解决这个问题,我们可以使用国内的镜像源来加速下载速度。本文将介绍如何在 Windows 系统上设置 Docker 镜像源。
    的头像 发表于 10-24 16:55 5650次阅读