上帝之眼Nmap(黑客工具)简介及命令大全

2023-11-16

目录

前言

一、Nmap简介

1.1 Nmap优点

1.2 Nmap四项基本功能

二、Nmap常用命令

2.1 主机发现

2.2 扫描技术

2.3 端口规格和扫描顺序

2.4 服务/版本探测

2.5 脚本扫描

2.6 操作系统检测

2.7 时间和性能

2.8 防火墙/IDS规避和欺骗

2.9 输出

2.10 杂项

总结


前言

本篇文章首先对黑客常用的工具Nmap(上帝之眼)做了一个基本介绍,然后对Nmap的常用命令做了一个很详细的汇总,包括Nmap常用命令的解释说明,详情请看正文。


一、Nmap简介

Nmap(网络映射器)是一款用于网络探测和安全评估的开源工具。它可以帮助系统管理员和安全专家识别网络上的主机、服务和开放端口,以及发现潜在的漏洞和安全风险。Nmap具有强大的扫描功能,可以进行主机发现、端口扫描、操作系统检测、服务版本探测等操作。它支持多种扫描技术和灵活的配置选项,可以满足各种不同的网络安全需求。

Nmap官网:www.nmap.org(Nmap:网络映射器 - 免费安全扫描程序)

一般情况下,Nmap用于列举网络主机清单、管理服务升级调度、监控主机或服务运行状况。Nmap可以检测目标机是否在线、端口开放情况、侦测运行的服务类型及版本信息、侦测操作系统与设备类型等信息。

1.1 Nmap优点

Nmap的优点详细:

  1. 强大而灵活的扫描功能:Nmap提供了广泛的扫描选项和技术,可以满足不同的需求。它可以执行主机发现、端口扫描、操作系统检测、服务版本探测等操作,使用户能够深入了解目标网络的结构和安全状态。

  2. 平台兼容性:Nmap是一个跨平台的工具,可以在多种操作系统上运行,包括Windows、Linux、macOS等。这使得它成为广泛应用于各种环境的理想选择。

  3. 资源效率:Nmap具有出色的性能和资源管理能力。它可以快速扫描大型网络,而且对系统资源的占用非常低,因此可以在不影响其他活动的情况下进行扫描。

  4. 大量的社区支持和文档资源:Nmap有一个庞大的用户社区和活跃的开发者社区。这意味着有很多的文档、教程、插件和扩展可供使用,用户可以从其他人的经验中获益,并与其他使用Nmap的人交流。

  5. 漏洞评估和渗透测试能力:Nmap不仅可以发现开放端口和服务版本信息,还可以帮助发现潜在的漏洞和安全风险。这使其成为进行漏洞评估和渗透测试的强大工具,帮助系统管理员和安全专家评估系统安全性并采取相应的措施。

  6. 可视化和报告功能:Nmap可以生成清晰的报告,并支持可视化地展示扫描结果,包括网络拓扑图、端口状态图等,这有助于用户更好地理解扫描结果并进行进一步的分析和管理。

1.2 Nmap四项基本功能

Nmap包含以下四项基本功能,每个功能都有其独特的作用:

  1. 主机发现(Host Discovery):
    主机发现用于确定目标网络上存活的主机。Nmap使用各种技术,如ping扫描、ARP扫描、ICMP探测等,来确定主机是否在线。主机发现是进行后续扫描和评估的基础,它帮助用户创建一个有效的目标主机清单。

  2. 端口扫描(Port Scanning):
    端口扫描用于确定目标主机上开放的网络端口。Nmap支持多种扫描技术,如TCP SYN扫描、TCP Connect扫描、UDP扫描等。通过分析响应和超时信息,Nmap可以识别主机上开放的端口,并确定所运行的服务类型。

  3. 操作系统检测(OS Detection):
    操作系统检测用于确定目标主机运行的操作系统类型。Nmap通过分析目标主机的网络响应、TCP/IP栈行为和其他特征来进行操作系统识别。这提供了对目标主机的更深入了解,有助于评估其安全性,并确定适当的安全策略和防护措施。

  4. 服务版本探测(Service Version Detection):
    服务版本探测用于确定目标主机上运行的具体服务及其版本信息。Nmap使用各种技术和指纹库来识别服务类型和版本,包括分析响应信息、探测已知漏洞等。服务版本探测有助于评估目标主机上运行的服务的安全性和漏洞风险,以及进行服务管理和升级计划。

这四项基本功能结合在一起,使Nmap成为一款强大而灵活的网络扫描和安全评估工具。它提供了全面的信息收集和分析功能,帮助用户了解目标网络的结构、安全状况和服务配置,从而制定有效的安全策略和防护措施。

而这四项功能之间,又存在大致的依赖关系(通常情况下的顺序关系,但特殊应用另外考虑),首先需要进行主机发现,随后确定端口状态,然后确定端口上运行的具体应用程序和版本信息,然后可以进行操作系统的侦测。而在这四项功能的基础上,nmap还提供防火墙和 IDS 的规避技巧,可以综合运用到四个基本功能的各个阶段。另外nmap还提供强大的NSE(Nmap Scripting Language)脚本引擎功能,脚本可以对基本功能进行补充和扩展。

二、Nmap常用命令

2.1 主机发现

  • -iR:随机选择目标。
  • -iL:从文件中加载 IP 地址。
  • -sL:进行简单的目标扫描。
  • -sn:Ping 扫描,禁用端口扫描。
  • -Pn:将所有主机视为在线,跳过主机发现。
  • -PS [端口列表]:使用 TCP SYN ping 进行主机发现,需要 root 权限。
  • -PA [端口列表]:使用 TCP ACK ping 进行主机发现。
  • -PU [端口列表]:使用 UDP ping 进行主机发现。
  • -PY [端口列表]:使用 SCTP ping 进行主机发现。
  • -PE/PP/PM:使用 ICMP 回显、时间戳和网络掩码请求探测进行主机发现。
  • -PO [协议列表]:使用 IP 协议 Ping 进行主机发现。
  • -n/-R:控制是否执行 DNS 解析。-n 表示从不执行 DNS 解析,-R 表示始终解析(默认情况下有时解析)。
  • --dns-servers:指定自定义 DNS 服务器。
  • --system-dns:使用操作系统的 DNS 服务器。
  • --traceroute:跟踪到每个主机的跃点路径。

2.2 扫描技术

  • -sS:使用 TCP 的 SYN 进行扫描。
  • -sT:使用 TCP 进行扫描。
  • -sA:使用 TCP 的 ACK 进行扫描。
  • -sU:使用 UDP 进行扫描。
  • -sI:使用 Idle 扫描。
  • -sF:使用 FIN 进行扫描。
  • -b<FTP中继主机>:进行 FTP 反弹扫描。

2.3 端口规格和扫描顺序

  • -p <端口列表>:扫描指定的端口。
  • --exclude-ports <端口列表>:从扫描中排除指定的端口。
  • -f:快速模式,扫描比默认扫描更少的端口。
  • -r:连续扫描端口,不随机化扫描顺序。
  • --top-ports <number>:扫描最常用的端口数量。

2.4 服务/版本探测

  • -sV:探测服务/版本信息。
  • --version-intensity <0-9>:设置版本扫描强度,范围从 0 到 9,值越大扫描越深入。
  • --version-all:尝试使用每个强度进行版本探测。
  • --version-trace:显示详细的版本扫描活动,用于调试目的。

使用 -sV 命令可以让 nmap 尝试识别正在运行的服务和其版本信息。

2.5 脚本扫描

  • -sC:等效于 --script=default,启用默认脚本扫描。
  • --script=<lua脚本>,<lua脚本>:以逗号分隔的目录、脚本文件或脚本类别。
  • --script-args=<n1=v1,n2=v2>:为脚本提供参数。
  • --script-args-file=<文件名>:从文件中加载脚本参数。
  • --script-trace:显示发送和接收的所有数据。
  • --script-updatedb:更新脚本数据库。
  • --script-help=<lua脚本>:显示有关脚本的帮助。

使用脚本可以扩展 nmap 的功能,以执行更具体的扫描和测试。可以指定特定的脚本或脚本类别,同时还可以为脚本提供参数以自定义行为。--script-trace 可以帮助调试脚本的发送和接收数据。--script-updatedb 可以更新脚本数据库,确保使用最新的脚本。

2.6 操作系统检测

  • -O:启用操作系统检测。
  • --osscan-limit:将操作系统检测限制为可能的目标。
  • --osscan-guess:推测操作系统检测结果。

使用 -O 命令可以让 nmap 尝试根据网络上的响应数据和其他特征来猜测目标主机的操作系统类型。可以使用 --osscan-limit 对操作系统检测进行限制,只针对可能的目标进行检测。使用 --osscan-guess 可以推测操作系统检测结果,提供更详细的信息和猜测。

2.7 时间和性能

  • --host-timeout <时间>:设置主机超时时间,即等待目标主机响应的最长时间。
  • --scan-delay <时间>:设置探测之间的时间间隔,以便减少对目标主机产生过大负载或触发入侵检测系统(IDS)等警报的可能性。
  • -T<0-5>:设置时间模板,范围从 0 到 5,值越小触发 IDS 警报的几率越低。

通过调整这些参数,可以控制 nmap 扫描过程中的超时时间、探测间隔和 IDS 警报的几率,以适应不同的网络环境和需求。

2.8 防火墙/IDS规避和欺骗

  • -f:启用报文分段,将扫描报文分成较小的片段发送。
  • -S:欺骗源地址,使用指定的源 IP 地址进行扫描。
  • -g <端口>:使用指定的本地端口进行扫描,以改变扫描报文的源端口。
  • --proxies <url,port>:使用指定的 HTTP/SOCK4 代理进行扫描。
  • --data <十六进制字符串>:向发送的数据包中追加自定义的负载。
  • --data-string <ASCII字符串>:将自定义的 ASCII 字符串附加到发送的数据包中。
  • --data-length:发送数据包时附加随机数据。
  • --spoof-mac:进行 MAC 地址欺骗,使用指定的 MAC 地址进行扫描。
  • --badsum:发送带有虚假 TCP/UDP/STCP 校验和的数据包。

这些命令允许你对 nmap 的扫描行为进行更具体的控制和定制,例如欺骗源地址、使用代理、自定义数据包负载等。

2.9 输出

  • -oN <文件名>:将结果输出到指定的标准输出文件。
  • -oX <文件名>:将结果输出到指定的 XML 文件。
  • -oS <文件名>:将结果输出到指定的 script jlddi3 文件。
  • -oG <文件名>:将结果输出到指定的 grepable 文件。
  • -oA <文件名>:同时输出到三种主要格式(标准输出、XML 和 grepable)的文件。
  • -V:显式显示版本和详细级别信息。
  • -d:设置调试级别,输出更详细的调试信息。
  • --packet-trace:跟踪发送和接收的网络报文。
  • --reason:显示端口处于特殊状态的原因。
  • --open:仅显示开放的端口。

这些命令可用于控制 nmap 输出的格式、详细级别和调试信息。你可以选择将结果输出到不同的文件类型(如标准输出、XML、grepable)中,或者跟踪发送和接收的报文,并显示端口状态的原因。

2.10 杂项

  • -6:启动 IPv6 扫描,用于扫描 IPv6 网络。
  • -A:启用操作系统检测、版本检测、脚本扫描和 traceroute 功能。这是一个全面的扫描选项,提供了更全面的信息和功能。
  • -V:显示 nmap 的版本号。
  • -h:显示 nmap 的帮助信息,包括常用选项和使用说明。


总结

本篇内容到这里算是结束了,至于nmap命令的具体实践操作,目前还没开始实践整理,但我以后肯定会出一篇博客对nmap命令进行实践的,关注我有后续。

关注,点赞,收藏,希望友友们能一键三连哦!

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

上帝之眼Nmap(黑客工具)简介及命令大全 的相关文章

  • go cli脚手架开发利器——cobra库的初体验

    文章目录 关于 说明 cobra 简介 cobra 概念 Commands Flags Args 教程正文 demo1 快速了解 demo 知识点 Command创建命令 demo2 使用参数验证器 钩子函数 demo 知识点 参数验证方法
  • 最新xmind2022版思维导图如何使用详解教程

    前段时间和大家盘点了五种高效的学习方法 没有看过的小伙伴戳这里 最科学的学习方法盘点 讲到思维导图笔记法的时候 本狗子给大家推荐了一款免费的思维导图软件 xmind软件 然后好多小伙伴都加我问关于思维导图的使用方法 于是今天我就做了一份关于
  • 微信小程序编译bug---Hbuilderx编译时一直卡在编译界面

    项目场景 微信小程序新增某功能模块 问题描述 使用Hbuilderx开发微信小程序 正常开发中 在某次重新保存代码并编译后一直卡在编译界面 如图 图为Hbuilderx界面 因为此时没有编译完成 所以微信开发者工具界面一片空白 报错为 ap
  • Python,OpenCV使用KNN来构建手写数字及字母识别OCR

    Python OpenCV使用KNN来构建手写数字及字母识别OCR 1 原理 1 1 手写数字识别 1 2 字母识别 2 源码 2 1 手写数字OCR 2 2 字母OCR 参考 这篇博客将介绍如何借助OpenCV提供的手写数字及字母数据集
  • Linux用户空间与内核空间

    Linux用户空间与内核空间 2012 08 30 15 39 1969人阅读 评论 1 收藏 举报 linux linux内核 struct user system allocation Linux 操作系统和驱动程序运行在内核空间 应用
  • 2.Xaml 停靠框架

    1 运行效果图片 2 Xaml程序
  • ChatGPT实现知识图谱生成

    知识图谱生成 在之前章节中 我们尝试过让 ChatGPT 对一段文本做实体识别和词性分析 结果很不错 但如果是需要长期留存下来 后续在不同场景下快速查询分析 最好还是要把数据存入到专门的图数据库中 才能方便随时读取 本节 我们试试让 Cha

随机推荐

  • 《计算机网络原理》(谢希仁)笔记——第二章

    此为本人观看韩立刚老师视频所做笔记与总结 下面为视频连接 https www bilibili com video av10921041 from search seid 733222547867341420 第二章 物理层 主要知识点为数
  • Verilog对数据进行四舍五入(round)与饱和(saturation)截位

    重点 1 正数截位 直接看截掉的最高位是不是一 是的话进一 负数截位 截的最高位为1且其它位不全是0进一 2 饱和 也就是大于求的结果 整数变为符号位为0 其它位为1 负数变成第一位为1 其它位为0 一 引言 在利用Verilog写数字信号
  • Python入门到放弃(一)

    介绍python和库文件管理 python是解释型语言 Python的特点 简单 易学 速度快 免费开源 高层语言 可移植性 解释性 面向对象 也支持面向过程 可扩展性 可嵌入性 丰富的库 规范的代码 在cmd中退出python 输入exi
  • Tomcat优化相关问题

    1 你怎样给 tomcat 去调优 JVM 参数调优 Xms 表示 JVM 初始化堆的大小 Xmx表示 JVM 堆的最大值 这两个值的大小一般根据需要进行设置 当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出 并且导致应用服务崩溃
  • Spark(七)——累加器和广播变量

    5 累加器 通过在驱动器中调用SparkContext accumulator initialValue 方法 创建出存有初始值的累加器 返回值为org apache spark Accumulator T 对象 其中 T 是初始值 ini
  • ObjectARX编程(八) --------有名对象字典、用户字典和字典中的对象

    在AutoCAD数据库中 对象字典是字典类型数据库对象的总称 按其层次关系可分为两类 一是有AutoCAD数据库直接管理的第一层对象字典 二是有第一层对象字典管理的第二层对象字典 为了便于区别 我们把第一层对象字典称为有名对象字典 用于在应
  • 浅谈std::move和std::forward原理

    前言 本文主要整理了C 11中std move和std forward的原理 这对理解C 的移动拷贝有很重的意义 一 左值和右值 左值 一般来说 能在内存中取得其地址 即是左值 右值 在内存在无取得其地址的 即是右值 note 左值持久 右
  • Python中MNE库模拟原始脑电数据

    研究脑电算法的时候发现了一个问题 如何评价模型的准确性 之前的工作流程都是先用公开数据集的数据训练好模型 然后放到实测数据上进行参数微调 在公开数据集上进行模型的选择主要是因为公开数据集的数据质量较好 可以排除硬件的影响 从而专心于算法的研
  • RTL仿真验证

    注意 个人学习笔记 后续会进行修改完善 目前还在初步学习阶段 参考gitee上 从零开始写RISC V处理器 在写testbench文件时 有两点需要注意的 第一点就是在testbench文件里加上读指令文件的操作 initial begi
  • Pandas中插入新的行或列

    python中插入新行或列 前言 一 新增列 二 新增行 前言 在特定位置插入行或者列是比较常用的操作 具体的插入操作主要是在哪插入和插入什么 提示 以下是本篇文章正文内容 下面案例可供参考 一 新增列 在pandas中新增列用到的是ins
  • 编写C++中的两个类 一个只能在栈中分配空间 一个只能在堆中分配(腾讯2012面试题)

    编写C 中的两个类 一个只能在栈中分配空间 一个只能在堆中分配 腾讯2012面试题 这道题挺好的 HeapOnly cpp include
  • windows修改远程端口号

    windows远程桌面默认使用的是3389 为了提高服务器安全性 可以修改默认端口3389为其它端口号 端口使用原则 TCP与UDP段结构中端口地址都是16比特 所以端口范围在0 65535 对于这65536个端口号有以下的使用规定 1 端
  • java 根据已有ppt模板修改其内容

    现有需求 根据数据库数据 定期更新 ppt 报表内容 本文修改内容 主要是 ppt中的图表 测试ppt 代码 package org springblade bigdata ureport service impl import java
  • (一)win10安装hadoop 2.8.5(详细步骤)

    目录 1 JDK 2 Hadoop 2 1 下载 2 2 配置环境变量 2 3 配置文件 2 4 格式化hdfs 已解决 格式化总是报错 The markup in the document following the root eleme
  • JavaSwing结合windowBuilder以及BeautyEye开源UI框架快速实现美观的界面

    前言 虽然Java Swing现在公司用的比较少 但是我们平时学习中经常会用它来做一些小项目或者学校的任务 这个时候我们就发现Swing提供给我们的原生控件太丑了 下面教大家如何快速搭建美观的JavaSwing桌面程序 1 准备工作 首先通
  • GRPC详解

    什么是GRPC 官网 gRPC gRPC 是一个现代开源高性能远程过程调用 RPC 框架 可以在任何环境中运行 它可以有效地连接数据中心内和跨数据中心的服务 并提供对负载平衡 跟踪 健康检查和身份验证的可插入支持 它还适用于分布式计算的最后
  • springmvc框架

    1 什么是MVC MVC就是一个分层架构模式 M即model模型是指模型表示业务规则 在MVC的三个部件中 模型拥有最多的处理任务 被模型返回的数据是中立的 模型与数据格式无关 这样一个模型能为多个视图提供数据 由于应用于模型的代码只需写一
  • 前端页面中展开和收起用同一按钮控制

    一 页面代码 a href style font size 16px color 0f82d6 展开 a div style display none id为该div的唯一标志 该div默认为 style display none 收起的
  • Saga分布式事务

    一 简介 与分布式事务TCC一样 目的都是为了在各个服务中正常使用事务 和TCC相比 Saga没有 预留 动作 操作都是直接提交到库 其中 每个Saga由一系列sub transaction Ti 组成 每个Ti 都有对应的补偿动作Ci 补
  • 上帝之眼Nmap(黑客工具)简介及命令大全

    目录 前言 一 Nmap简介 1 1 Nmap优点 1 2 Nmap四项基本功能 二 Nmap常用命令 2 1 主机发现 2 2 扫描技术 2 3 端口规格和扫描顺序 2 4 服务 版本探测 2 5 脚本扫描 2 6 操作系统检测 2 7