每日一个Linux命令解析——nmap
xsobi 2024-12-01 05:40 1 浏览
nmap:nmap(Network Mapper)是一款开源的网络扫描和主机探测工具,用于网络安全审计和主机发现。
一、语法
nmap [Scan Type(s)] [Options] {target specification}
二、选项
nmap有多种选项,这里挑几个常见的讲解一下。
1. 扫描类型选项
选项 | 描述 |
-sS | TCP SYN 扫描(半开放扫描,默认且快速)。 |
-sT | TCP 连接扫描(完整握手,较慢)。 |
-sU | UDP 扫描,用于发现 UDP 服务。 |
-sN | TCP NULL 扫描,发送空包以探测端口状态。 |
-sF | TCP FIN 扫描,通过发送 FIN 包探测端口。 |
-sX | Xmas 扫描,发送带有 FIN、PSH 和 URG 标志的包。 |
-sP/-sn | Ping 扫描,仅探测主机是否在线。 |
-sW | Windows 扫描,检测目标的 TCP 窗口大小。 |
-sM | TCP Maimon 扫描,用于绕过某些防火墙规则。 |
2. 端口选项
选项 | 描述 |
-p | 指定扫描端口或端口范围(如 -p 22 或 -p 1-1000)。 |
-p- | 扫描所有 65535 个端口。 |
3. 服务与版本探测
选项 | 描述 |
-sV | 探测服务和版本信息。 |
--version-intensity <level> | 设置版本探测强度(0-9,默认 7)。 |
4. 操作系统和设备探测
选项 | 描述 |
-O | 操作系统指纹探测。 |
--osscan-guess | 尝试猜测目标的操作系统。 |
--traceroute | 显示从扫描主机到目标的路由信息。 |
5. 脚本扫描
选项 | 描述 |
--script | 指定 NSE 脚本,如 --script=http-enum。 |
--script-args | 为脚本指定参数,如 --script-args user=admin。 |
--script=vuln | 执行漏洞检测脚本集。 |
6. 性能选项
选项 | 描述 |
-T0 至 -T5 | 设置扫描速度(T0 最慢,T5 最快)。 |
--min-rate | 设置最小扫描速率(如每秒发送包的数量)。 |
--max-rate | 设置最大扫描速率。 |
--min-hostgroup | 设置最小主机组大小(并行扫描时)。 |
--max-hostgroup | 设置最大主机组大小。 |
7. 输出选项
选项 | 描述 |
-oN <file> | 保存扫描结果为普通文本格式。 |
-oX <file> | 保存扫描结果为 XML 格式。 |
-oG <file> | 保存扫描结果为易解析的 Grepable 格式。 |
-oA <basename> | 保存扫描结果为所有支持的格式。 |
--append-output | 将扫描结果追加到文件而不是覆盖。 |
8. 绕过防火墙和 IDS
选项 | 描述 |
-f | 数据包分片以绕过防火墙。 |
--data-length | 设置数据包额外的填充字节数(如 --data-length 50)。 |
--badsum | 使用无效校验和发送数据包。 |
--source-port <port> | 指定源端口。 |
--ttl <value> | 设置数据包的 TTL 值(生存时间)。 |
9. 主机发现
选项 | 描述 |
-Pn | 禁用主机发现,直接扫描目标(适用于防火墙环境)。 |
-PE | 使用 ICMP Echo 请求发现主机。 |
-PP | 使用 ICMP Timestamp 请求发现主机。 |
-PS | 使用 TCP SYN 请求指定端口(如 -PS80,443)。 |
-PA | 使用 TCP ACK 请求指定端口(如 -PA80)。 |
-PU | 使用 UDP 请求指定端口(如 -PU53)。 |
10. 其他常用选项
选项 | 描述 |
--help | 显示帮助信息。 |
--reason | 显示端口状态背后的原因。 |
--stats-every <time> | 定期显示扫描进度(如 --stats-every 10s)。 |
--open | 仅显示开放的端口。 |
-v | 显示详细信息,支持多级(如 -vv)。 |
--exclude <host> | 排除特定主机或子网。 |
三、示例
- 扫描目标主机的开放端口
nmap 192.168.1.2
- 扫描多个目标,支持单个 IP、IP 范围或子网。
nmap 192.168.1.1 192.168.1.2
nmap 192.168.1.1-100
nmap 192.168.1.0/24
- 探测目标开放端口的服务及其版本信息。
nmap -sV 192.168.1.1
- 尝试识别目标的操作系统类型及版本。
nmap -O 192.168.1.1
- 扫描目标主机的所有 65535 个端口(默认只扫描前 1000 个常用端口)。
nmap -p- 192.168.1.1
- 扫描特定端口或端口范围。
nmap -p 22,80,443 192.168.1.1 # 指定端口
nmap -p 1-1000 192.168.1.1 # 指定端口范围
- 通过提高扫描速度减少耗时,-T 后面的数字表示扫描速度,范围为 0-5:
nmap -T4 192.168.1.1
- 隐秘扫描(避免被检测到)
nmap -sS 192.168.1.1 #TCP SYN 扫描,仅发送 SYN 包(半开放扫描)。
nmap -Pn 192.168.1.1 #跳过主机在线探测,直接扫描。
- 保存扫描结果
nmap -oN scan_result.txt 192.168.1.1 #保存为普通文本。
nmap -oX scan_result.xml 192.168.1.1 #保存为 XML 格式。
- 漏洞脚本扫描
nmap --script vuln 192.168.1.1 # 检查常见漏洞
nmap --script http-enum 192.168.1.1 # 扫描 HTTP 服务
- Ping 扫描,用于快速检测目标是否在线。
nmap -sn 192.168.1.0/24
- 防火墙绕过,分片扫描,将数据包分成小片以绕过简单的防火墙规则。
nmap -f <目标>
四、总结
- 优势场景:网络管理、安全审计、资产发现、漏洞评估、教育和研究。
- 注意事项:在使用 Nmap 前需获得授权,避免引发法律问题或对网络造成影响。
总的来说,Nmap 是一款强大、灵活的网络扫描工具,但在使用时应结合实际需求和网络环境,谨慎操作以避免潜在问题。
- 上一篇:网络渗透中的扫描工具——nmap介绍
- 下一篇:网络扫描之Nmap
相关推荐
- 好用的云函数!后端低代码接口开发,零基础编写API接口
-
前言在开发项目过程中,经常需要用到API接口,实现对数据库的CURD等操作。不管你是专业的PHP开发工程师,还是客户端开发工程师,或者是不懂编程但懂得数据库SQL查询,又或者是完全不太懂技术的人,通过...
- 快速上手:Windows 平台上 cURL 命令的使用方法
-
在工作流程中,为了快速验证API接口有效性,团队成员经常转向直接执行cURL命令的方法。这种做法不仅节省时间,而且促进了团队效率的提升。对于使用Windows系统的用户来说,这里有一套详细...
- 使用 Golang net/http 包:基础入门与实战
-
简介Go的net/http包是构建HTTP服务的核心库,功能强大且易于使用。它提供了基本的HTTP客户端和服务端支持,可以快速构建RESTAPI、Web应用等服务。本文将介绍ne...
- #小白接口# 使用云函数,人人都能编写和发布自己的API接口
-
你只需编写简单的云函数,就可以实现自己的业务逻辑,发布后就可以生成自己的接口给客户端调用。果创云支持对云函数进行在线接口编程,进入开放平台我的接口-在线接口编程,设计一个新接口,设计和配置好接口参...
- 极度精神分裂:我家没有墙面开关,但我虚拟出来了一系列开关
-
本内容来源于@什么值得买APP,观点仅代表作者本人|作者:iN在之前和大家说过,在iN的家里是没有墙面开关的。...
- window使用curl命令的注意事项 curl命令用法
-
cmd-使用curl命令的注意点前言最近在cmd中使用curl命令来测试restapi,发现有不少问题,这里记录一下。在cmd中使用curl命令的注意事项json不能由单引号包括起来json...
- Linux 系统curl命令使用详解 linuxctrl
-
curl是一个强大的命令行工具,用于在Linux系统中进行数据传输。它支持多种协议,包括HTTP、HTTPS、FTP等,用于下载或上传数据,执行Web请求等。curl命令的常见用法和解...
- Tornado 入门:初学者指南 tornados
-
Tornado是一个功能强大的PythonWeb框架和异步网络库。它最初是为了处理实时Web服务中的数千个同时连接而开发的。它独特的Web服务器和框架功能组合使其成为开发高性能Web...
- PHP Curl的简单使用 php curl formdata
-
本文写给刚入PHP坑不久的新手们,作为工具文档,方便用时查阅。CURL是一个非常强大的开源库,它支持很多种协议,例如,HTTP、HTTPS、FTP、TELENT等。日常开发中,我们经常会需要用到cur...
- Rust 服务器、服务和应用程序:7 Rust 中的服务器端 Web 应用简介
-
本章涵盖使用Actix提供静态网页...
- 我给 Apache 顶级项目提了个 Bug apache顶级项目有哪些
-
这篇文章记录了给Apache顶级项目-分库分表中间件ShardingSphere提交Bug的历程。说实话,这是一次比较曲折的Bug跟踪之旅。10月28日,我们在GitHub上提...
- linux文件下载、服务器交互(curl)
-
基础环境curl命令描述...
- curl简单使用 curl sh
-
1.curl--help#查看关键字2.curl-A“(添加user-agent<name>SendUser-Agent<name>toserver)”...
- 常用linux命令:curl 常用linux命令大全
-
//获取网页内容//不加任何选项使用curl时,默认会发送GET请求来获取内容到标准输出$curlhttp://www.baidu.com//输出<!DOCTYPEh...
- 三十七,Web渗透提高班之hack the box在线靶场注册及入门知识
-
一.注册hacktheboxHackTheBox是一个在线平台,允许测试您的渗透技能和代码,并与其他类似兴趣的成员交流想法和方法。它包含一些不断更新的挑战,并且模拟真实场景,其风格更倾向于CT...
- 一周热门
- 最近发表
-
- 好用的云函数!后端低代码接口开发,零基础编写API接口
- 快速上手:Windows 平台上 cURL 命令的使用方法
- 使用 Golang net/http 包:基础入门与实战
- #小白接口# 使用云函数,人人都能编写和发布自己的API接口
- 极度精神分裂:我家没有墙面开关,但我虚拟出来了一系列开关
- window使用curl命令的注意事项 curl命令用法
- Linux 系统curl命令使用详解 linuxctrl
- Tornado 入门:初学者指南 tornados
- PHP Curl的简单使用 php curl formdata
- Rust 服务器、服务和应用程序:7 Rust 中的服务器端 Web 应用简介
- 标签列表
-
- grid 设置 (58)
- 移位运算 (48)
- not specified (45)
- patch补丁 (31)
- strcat (25)
- 导航栏 (58)
- context xml (46)
- scroll (43)
- element style (30)
- dedecms模版 (53)
- vs打不开 (29)
- nmap (30)
- webgl开发 (24)
- parse (24)
- c 视频教程下载 (33)
- paddleocr (28)
- listview排序 (33)
- firebug 使用 (31)
- transactionmanager (30)
- characterencodingfilter (33)
- getmonth (34)
- commandtimeout (30)
- hibernate教程 (31)
- label换行 (33)
- curlpost (31)