nmap 进行网络扫描详细操作

1. 安装 nmap

首先,您需要在您的系统上安装 nmap。这通常可以通过系统的包管理器来完成。以下是一些常见发行版的安装命令:
对于 Debian/Ubuntu 系统:

sudo apt update  

sudo apt install nmap

对于 CentOS/Red Hat 系统:

sudo yum update  

sudo yum install nmap

对于 macOS(使用 Homebrew):

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"  

brew install nmap

2. 使用 nmap 进行扫描

一旦 nmap 安装完成,您就可以开始使用它进行网络扫描了。
2.1 扫描单个主机

要扫描单个主机的所有 TCP 端口,您可以简单地指定目标主机的 IP 地址或域名:

nmap <目标IP地址或域名>

例如:

nmap 192.168.1.1

2.2 扫描特定端口

如果您只对目标主机上的某些特定端口感兴趣,可以使用 -p 选项指定这些端口:

nmap -p <端口号> <目标IP地址或域名>

例如,扫描 80 和 443 端口:

nmap -p 80,443 192.168.1.1

Nmap的默认扫描主机1000个高危端口,如果你需要全面检测端口,可能需要加入`-p 1-65535`或`-p-`参数。

2.3 扫描多个主机

要扫描多个主机,只需在命令行中列出它们的 IP 地址或域名即可:

nmap <目标IP地址或域名1> <目标IP地址或域名2> ...

例如:

nmap 192.168.1.1 192.168.1.2

2.4 扫描整个子网

如果您想扫描整个子网中的所有主机,可以使用 CIDR 表示法:

nmap <子网地址>/<子网掩码长度>

例如,扫描 192.168.1.0/24 子网:

nmap 192.168.1.0/24

2.5 识别服务版本和操作系统

要检测目标主机上运行的服务及其版本,以及尝试识别操作系统,可以使用 -sV 和 -O 选项:

nmap -sV -O <目标IP地址或域名>

2.6 保存扫描结果

您可以将扫描结果保存到文件中,以便稍后分析或分享。使用 -oX 选项可以保存为 XML 格式,这是一个通用的、结构化的格式,适合进一步处理。

nmap -oX <输出文件名>.xml <目标IP地址或域名>

例如:

nmap -oX scan_results.xml 192.168.1.1

3. 扫描选项和参数

nmap 提供了大量的选项和参数,允许您定制扫描的行为。以下是一些常用的选项:

    -sS:SYN 扫描(默认扫描类型)。
    -sT:Connect 扫描,尝试与目标主机的每个端口建立完整的 TCP 连接。
    -sU:UDP 扫描,扫描 UDP 端口。
    -v:详细输出,显示更多的扫描信息。
    -vv:更详细的输出。
    -A:OS 检测和版本探测。
    --script:运行自定义的 NSE 脚本。
    -iL:从文件中读取目标列表进行扫描。
    --reason:显示端口处于特定状态的原因。
    --open:只显示开放的端口。
    -6:启用 IPv6 扫描。

这些选项可以组合使用,以满足特定的扫描需求。例如,如果您想进行详细的 SYN 扫描并保存结果,可以这样做:

nmap -sS -v -oX scan_results.xml <目标IP地址或域名>

4. 注意事项

在使用 nmap 进行扫描时,请确保您有权对目标网络进行扫描,并遵守相关的法律法规和道德规范。未经授权的网络扫描可能违反法律,并可能导致严重的后果。此外,在对生产

Nmap 7.94 (https://nmap.org)
用法:nmap [扫描类型] [选项] {目标规范}
目标规范:
可以传递主机名、IP 地址、网络等。
例如:scanme.nmap.org、microsoft.com/24、192.168.0.1;10.0.0-255.1-254
-iL <inputfilename>:从主机/网络列表中输入
-iR <num hosts>:选择随机目标
--exclude <host1[,host2][,host3],...>:排除主机/网络
--excludefile <exclude_file>:从文件中排除列表
主机发现:
-sL:列出扫描目标
-sn:Ping 扫描 - 禁用端口扫描
-Pn:将所有主机视为在线 - 跳过主机发现
-PS/PA/PU/PY[portlist]:对给定端口进行 TCP SYN/ACK、UDP 或 SCTP 发现
-PE/PP/PM:ICMP echo、timestamp 和 netmask 请求发现探测
-PO[protocol list]:IP 协议 Ping
-n/-R:永远不进行 DNS 解析/始终解析 [默认:有时解析]
--dns-servers <serv1[,serv2],...>:指定自定义 DNS 服务器
--system-dns:使用操作系统的 DNS 解析器
--traceroute:跟踪到每个主机的跳数路径
扫描技术:
-sS/sT/sA/sW/sM:TCP SYN/Connect()/ACK/Window/Maimon 扫描
-sU:UDP 扫描
-sN/sF/sX:TCP Null、FIN 和 Xmas 扫描
--scanflags <flags>:自定义 TCP 扫描标志
-sI <zombie host[:probeport]>:闲置扫描
-sY/sZ:SCTP INIT/COOKIE-ECHO 扫描
-sO:IP 协议扫描
-b <FTP relay host>:FTP 弹跳扫描
端口规范和扫描顺序:
-p <port ranges>:仅扫描指定端口
例如:-p22;-p1-65535;-p U:53,111,137,T:21-25,80,139,8080,S:9
--exclude-ports <port ranges>:从扫描中排除指定的端口
-F:快速模式 - 扫描较少的端口
-r:按顺序扫描端口 - 不随机化
--top-ports <number>:扫描最常见的 <number> 个端口
--port-ratio <ratio>:扫描比 <ratio> 更常见的端口
服务/版本检测:
-sV:探测开放端口以确定服务/版本信息
--version-intensity <level>:设置从 0(轻量级)到 9(尝试所有探测)的探测强度
--version-light:限制为最可能的探测(强度 2)
--version-all:尝试每个单独的探测(强度 9)
--version-trace:显示详细的版本扫描活动(用于调试)
脚本扫描:
-sC:等效于 --script=default
--script=<Lua scripts>: <Lua scripts> 是由逗号分隔的目录、脚本文件或脚本类别列表
--script-args=<n1=v1,[n2=v2,...]>:为脚本提供参数
--script-args-file=filename:从文件中提供 NSE 脚本参数
--script-trace:显示发送和接收的所有数据
--script-updatedb:更新脚本数据库。
--script-help=<Nmap是一个流行的网络扫描工具,用于探测和分析网络主机和服务。它可以用于安全评估、漏洞扫描、网络发现等任务。

以下是一些常用的Nmap命令和选项:

基本扫描:


nmap <目标>
这将对目标进行基本的端口扫描,默认使用TCP SYN扫描。

扫描特定端口范围:


nmap -p <端口范围> <目标>
例如,nmap -p 1-1000 scanme.nmap.org 将扫描scanme.nmap.org的端口1到1000。

扫描所有端口:


nmap -p- <目标>
这将扫描目标的所有端口。

服务/版本探测:


nmap -sV <目标>
使用服务/版本探测功能,Nmap尝试识别目标主机上运行的服务和应用程序的版本信息。

操作系统检测:


nmap -O <目标>
使用操作系统检测功能,Nmap尝试确定目标主机所使用的操作系统类型。

脚本扫描:


nmap --script=<脚本> <目标>
Nmap提供了一些脚本,用于执行各种网络探测任务,例如漏洞扫描、服务识别等。你可以使用--script选项指定要运行的脚本。

  • 49
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
namp 2011-06-25 02:13:43| 分类: Linux | 标签:namp |字号大中小 订阅 . 进行ping扫描,打印出对扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测):   nmap -sP 192.168.1.0/24   仅列出指定网络上的每台主机,不发送任何报文到目标主机:   nmap -sL 192.168.1.0/24   探测目标主机开放的端口,可以指定一个以逗号分隔的端口列表(如-PS22,23,25,80):   nmap -PS 192.168.1.234 nmap -PS 127.0.0.1 -p 100-700   使用UDP ping探测主机:   nmap -PU 192.168.1.0/24   使用频率最高的扫描选项:SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快:   nmap -sS 192.168.1.0/24   当SYN扫描不能用时,TCP Connect()扫描就是默认的TCP扫描:   nmap -sT 192.168.1.0/24   UDP扫描用-sU选项,UDP扫描发送空的(没有数据)UDP报头到每个目标端口:   nmap -sU 192.168.1.0/24   确定目标机支持哪些IP协议 (TCP,ICMP,IGMP等):   nmap -sO 192.168.1.19   探测目标主机的操作系统:   nmap -O 192.168.1.19   nmap -A 192.168.1.19   另外,nmap官方文档中的例子:   nmap -v scanme.   这个选项扫描主机scanme中 所有的保留TCP端口。选项-v启用细节模式。   nmap -sS -O scanme./24   进行秘密SYN扫描,对象为主机Saznme所在的“C类”网段 的255台主机。同时尝试确定每台工作主机的操作系统类型。因为进行SYN扫描操作系统检测,这个扫描需要有根权限。   nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127   进行主机列举和TCP扫描,对象为B类188.116网段中255个8位子网。这 个测试用于确定系统是否运行了sshd、DNS、imapd或4564端口。如果这些端口 打开,将使用版本检测来确定哪种应用在运行。   nmap -v -iR 100000 -P0 -p 80   随机选择100000台主机扫描是否运行Web服务器(80端口)。由起始阶段 发送探测报文来确定主机是否工作非常浪费时间,而且只需探测主机的一个端口,因 此使用-P0禁止对主机列表。   nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20   扫描4096个IP地址,查找Web服务器(不ping),将结果以Grep和XML格式保存。   host -l | cut -d -f 4 | nmap -v -iL -   进行DNS区域传输,以发现中的主机,然后将IP地址提供给 Nmap。上述命令用于GNU/Linux -- 其它系统进行区域传输时有不同的命令。   其他选项:   -p (只扫描指定的端口)   单个端口和用连字符表示的端口范 围(如 1-1023)都可以。当既扫描TCP端口又扫描UDP端口时,可以通过在端口号前加上T: 或者U:指定协议。 协议限定符一直有效直到指定另一个。 例如,参数 -p U:53,111,137,T:21-25,80,139,8080 将扫描UDP 端口53,111,和137,同时扫描列出的TCP端口。   -F (快速 (有限的端口) 扫描)namp 2011-06-25 02:13:43| 分类: Linux | 标签:namp |字号大中小 订阅 . 进行ping扫描,打印出对扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测):   nmap -sP 192.168.1.0/24   仅列出指定网络上的每台主机,不发送任何报文到目标主机:   nmap -sL 192.168.1.0/24   探测目标主机开放的端口,可以指定一个以逗号分隔的端口列表(如-PS22,23,25,80):   nmap -PS 192.168.1.234 nmap -PS 127.0.0.1 -p 100-700   使用UDP ping探测主机:   nmap -PU 192.168.1.0/24   使用频率最高的扫描选项:SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快:   nmap -sS 192.168.1.0/24   当SYN扫描不能用时,TCP Connect()扫描就是默认的TCP扫描:   nmap -sT 192.168.1.0/24   UDP扫描用-sU选项,UDP扫描发送空的(没有数据)UDP报头到每个目标端口:   nmap -sU 192.168.1.0/24   确定目标机支持哪些IP协议 (TCP,ICMP,IGMP等):   nmap -sO 192.168.1.19   探测目标主机的操作系统:   nmap -O 192.168.1.19   nmap -A 192.168.1.19   另外,nmap官方文档中的例子:   nmap -v scanme.   这个选项扫描主机scanme中 所有的保留TCP端口。选项-v启用细节模式。   nmap -sS -O scanme./24   进行秘密SYN扫描,对象为主机Saznme所在的“C类”网段 的255台主机。同时尝试确定每台工作主机的操作系统类型。因为进行SYN扫描操作系统检测,这个扫描需要有根权限。   nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127   进行主机列举和TCP扫描,对象为B类188.116网段中255个8位子网。这 个测试用于确定系统是否运行了sshd、DNS、imapd或4564端口。如果这些端口 打开,将使用版本检测来确定哪种应用在运行。   nmap -v -iR 100000 -P0 -p 80   随机选择100000台主机扫描是否运行Web服务器(80端口)。由起始阶段 发送探测报文来确定主机是否工作非常浪费时间,而且只需探测主机的一个端口,因 此使用-P0禁止对主机列表。   nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20   扫描4096个IP地址,查找Web服务器(不ping),将结果以Grep和XML格式保存。   host -l | cut -d -f 4 | nmap -v -iL -   进行DNS区域传输,以发现中的主机,然后将IP地址提供给 Nmap。上述命令用于GNU/Linux -- 其它系统进行区域传输时有不同的命令。   其他选项:   -p (只扫描指定的端口)   单个端口和用连字符表示的端口范 围(如 1-1023)都可以。当既扫描TCP端口又扫描UDP端口时,可以通过在端口号前加上T: 或者U:指定协议。 协议限定符一直有效直到指定另一个。 例如,参数 -p U:53,111,137,T:21-25,80,139,8080 将扫描UDP 端口53,111,和137,同时扫描列出的TCP端口。   -F (快速 (有限的端口) 扫描)namp 2011-06-25 02:13:43| 分类: Linux | 标签:namp |字号大中小 订阅 . 进行ping扫描,打印出对扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测):   nmap -sP 192.168.1.0/24   仅列出指定网络上的每台主机,不发送任何报文到目标主机:   nmap -sL 192.168.1.0/24   探测目标主机开放的端口,可以指定一个以逗号分隔的端口列表(如-PS22,23,25,80):   nmap -PS 192.168.1.234 nmap -PS 127.0.0.1 -p 100-700   使用UDP ping探测主机:   nmap -PU 192.168.1.0/24   使用频率最高的扫描选项:SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快:   nmap -sS 192.168.1.0/24   当SYN扫描不能用时,TCP Connect()扫描就是默认的TCP扫描:   nmap -sT 192.168.1.0/24   UDP扫描用-sU选项,UDP扫描发送空的(没有数据)UDP报头到每个目标端口:   nmap -sU 192.168.1.0/24   确定目标机支持哪些IP协议 (TCP,ICMP,IGMP等):   nmap -sO 192.168.1.19   探测目标主机的操作系统:   nmap -O 192.168.1.19   nmap -A 192.168.1.19   另外,nmap官方文档中的例子:   nmap -v scanme.   这个选项扫描主机scanme中 所有的保留TCP端口。选项-v启用细节模式。   nmap -sS -O scanme./24   进行秘密SYN扫描,对象为主机Saznme所在的“C类”网段 的255台主机。同时尝试确定每台工作主机的操作系统类型。因为进行SYN扫描操作系统检测,这个扫描需要有根权限。   nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127   进行主机列举和TCP扫描,对象为B类188.116网段中255个8位子网。这 个测试用于确定系统是否运行了sshd、DNS、imapd或4564端口。如果这些端口 打开,将使用版本检测来确定哪种应用在运行。   nmap -v -iR 100000 -P0 -p 80   随机选择100000台主机扫描是否运行Web服务器(80端口)。由起始阶段 发送探测报文来确定主机是否工作非常浪费时间,而且只需探测主机的一个端口,因 此使用-P0禁止对主机列表。   nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20   扫描4096个IP地址,查找Web服务器(不ping),将结果以Grep和XML格式保存。   host -l | cut -d -f 4 | nmap -v -iL -   进行DNS区域传输,以发现中的主机,然后将IP地址提供给 Nmap。上述命令用于GNU/Linux -- 其它系统进行区域传输时有不同的命令。   其他选项:   -p (只扫描指定的端口)   单个端口和用连字符表示的端口范 围(如 1-1023)都可以。当既扫描TCP端口又扫描UDP端口时,可以通过在端口号前加上T: 或者U:指定协议。 协议限定符一直有效直到指定另一个。 例如,参数 -p U:53,111,137,T:21-25,80,139,8080 将扫描UDP 端口53,111,和137,同时扫描列出的TCP端口。   -F (快速 (有限的端口) 扫描)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值