博客
关于我
nmap 使用总结
阅读量:792 次
发布时间:2023-02-16

本文共 2829 字,大约阅读时间需要 9 分钟。

Nmap 网络探测工具


背景

Nmap 是测试中常用的网络探测工具,尽管其操作相对简单,但了解其深入使用方法对网络安全和网络管理非常有帮助。本文将从安装、实例应用、脚本使用以及参考指南等方面进行详细讲解,便于查阅和使用。


安装

Nmap 可从其官方网站下载最新版本(目前最新版本为 Nmap 7.1)。下载后,按照以下步骤进行安装:

  • 下载最新版本:访问 Nmap 官方网站,选择适合你操作系统的版本进行下载。
  • 安装步骤
    • 在 Windows 系统中,双击下载的安装文件并按照提示完成安装。
    • 在 Linux 系统中,通常可以通过包管理器安装 Nmap,例如使用 apt 或 yum 命令。
  • 验证安装:完成安装后,可以运行 nmap -v 命令查看版本信息,确保安装成功。

  • 实例部分

    命令组成

    Nmap 的基本命令格式为:

    nmap [扫描类型...] [选项...] {扫描目标说明}

    初级使用

  • 简单的 TCP 端口扫描

    nmap -v scanme.nmap.org

    该命令将扫描 scanme.nmap.org 主机上所有的保留 TCP 端口,并启用详细模式 -v

  • 综合扫描(包括操作系统和版本检测)

    nmap -A -T4 scanme.nmap.org

    选项 -A 启用操作系统和版本探测, -T4 提高扫描速度。

  • 秘密SYN 扫描

    nmap -sS -O scanme.nmap.org/24

    该命令进行秘密SYN 扫描,扫描 scanme.nmap.org 所在网段的所有主机,并尝试确定每台主机的操作系统类型。

  • 指定端口进行 TCP 扫描

    nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127

    该命令对指定的端口(如 22, 53, 110 等)进行 TCP 扫描,目标是 B 类网段 198.116.0-255.1-127

  • 随机主机扫描

    nmap -v -iR 100000 -P0 -p 80

    该命令随机选择 100,000 台主机,扫描是否运行 Web 服务器(端口 80)。选项 -P0 禁止对主机列表进行探测。


  • 深入扫描命令

    常用选项

    • -Pn:不探测主机存活状态,默认情况下 Nmap 会通过 ICMP 检查主机是否在线。
    • -PB:默认探测端口(TCP 80 和 445,以及 ICMP)。
    • -PS <portlist>:指定要探测的 TCP 端口列表。
    • -PE:发送 ICMP Echo Request(即 ping 请求)。
    • -PP:发送 ICMP Timestamp 请求。
    • -PM:发送 ICMP 网络掩码请求。

    扫描类型

    • -sP:仅探测主机存活状态。
    • -sS:秘密SYN 扫描,隐身扫描。
    • -ST:TCP 扫描。
    • -sU:UDP 扫描。
    • -sV:版本探测。
    • -O:操作系统识别。

    脚本讲解

    Nmap 提供丰富的脚本功能,可根据需求选择不同的脚本进行扫描。以下是常见脚本分类及其应用:

    脚本分类

  • auth:绕过或利用目标主机的认证机制。
  • broadcast:在局域网内探查更多服务开启状况(如 DHCP、DNS、SQL 服务器等)。
  • brute:提供暴力破解方式,常用于对 SMB、SNMP 等服务进行简单密码破解。
  • default:默认脚本扫描,提供基本服务信息收集。
  • discovery:进行网络信息收集,如 SMB 枚举、SNMP 查询等。
  • external:利用第三方数据库或资源(如 Whois 解析)。
  • vuln:检查目标主机是否存在已知漏洞。
  • 应用示例

  • VNC 扫描

    nmap --script=vnc-auth-bypass company.com/24
  • SMB 扫描

    nmap --script=smb-brute -p 445 company.com/24
  • 数据库扫描

    nmap --script=mysql-brute -p 3306 db-server.example.com
  • 网络信息收集

    nmap --script=broadcast-netbios-master-browser 192.168.137.1/24

  • Nmap 参考指南

    了解 Nmap

    Nmap 是一款开放源代码的网络探测和安全审核工具,其主要功能包括:

  • 主机发现:通过原始 IP 报文发现网络上的主机。
  • 服务和版本检测:识别目标主机上运行的服务及其版本。
  • 操作系统识别:推测目标主机的操作系统及其版本。
  • 防火墙和 IDS 躲避:通过诱饵和其他技术规避防火墙和入侵检测系统。
  • 端口扫描基础

    Nmap 的端口扫描结果通常包括以下状态:

    • open:目标主机正在监听该端口。
    • filtered:防火墙或过滤器阻止了该端口的访问,Nmap 无法确定其状态。
    • closed:端口没有服务监听,但可能随时开放。
    • unfiltered:Nmap 无法确定该端口的状态,因为目标主机返回了探测报文。

    主机发现选项

    • -sL:列表扫描,仅列出要扫描的目标。
    • -sP: ping 扫描,确定主机是否在线。
    • -P0:将所有主机视为在线,跳过主机发现。
    • -n:禁用域名解析,加快扫描速度。
    • -R:为所有目标解析域名。

    端口扫描技术

    Nmap 支持多种端口扫描技术,常用的一些包括:

    • -sS:秘密SYN 扫描,隐身扫描。
    • -sT:TCP 连接扫描,通过 socket API 获取状态信息。
    • -sA:ACK 扫描,用于检测防火墙规则。
    • -sU:UDP 扫描,常用于检测 DNS、SNMP、DHCP 等服务。
    • -sW:TCP 窗口扫描,通过窗口大小判断端口状态。

    时间和性能优化

    为了提高扫描速度,Nmap 提供多种时间和性能选项:

    • **--min-hostgroup--max-hostgroup:调整并行扫描组的大小。
    • **--min-parallelism--max-parallelism:控制探测报文并行度。
    • --max-rtt-timeout:设置探测报文的最大往返时间。
    • --scan-delay:调整探测报文发送间隔。
    • -T:选择扫描模板(如 T4 提高扫描速度)。

    防火墙/IDS 躲避和哄骗

    为了规避防火墙和入侵检测系统,Nmap 提供以下选项:

    • -f:分段发送数据包。
    • -D:使用诱饵进行隐蔽扫描。
    • -S:设置源地址哄骗。
    • -g:设置源端口哄骗。
    • --randomize-hosts:随机排列目标主机顺序。

    输出格式

    Nmap 提供多种输出格式,常用的有:

    • -oN:标准输出。
    • -oG:Grep 格式输出。
    • -oX: XML 格式输出。
    • -oA:同时生成所有格式的输出文件。

    总结

    Nmap 是一个强大的网络探测工具,其功能涵盖了主机发现、服务检测、操作系统识别、防火墙躲避等多个方面。通过合理使用 Nmap 的命令和脚本,可以完成从简单到复杂的网络安全任务。

    转载地址:http://gcjfk.baihongyu.com/

    你可能感兴趣的文章
    NIO Selector实现原理
    查看>>
    nio 中channel和buffer的基本使用
    查看>>
    NIO_通道之间传输数据
    查看>>
    NIO三大组件基础知识
    查看>>
    NIO与零拷贝和AIO
    查看>>
    NIO同步网络编程
    查看>>
    NIO基于UDP协议的网络编程
    查看>>
    NIO笔记---上
    查看>>
    Vue3.0中的响应式原理(第九课)
    查看>>
    NIO蔚来 面试——IP地址你了解多少?
    查看>>
    NISP一级,NISP二级报考说明,零基础入门到精通,收藏这篇就够了
    查看>>
    NISP国家信息安全水平考试,收藏这一篇就够了
    查看>>
    NIS服务器的配置过程
    查看>>
    NIS认证管理域中的用户
    查看>>
    Nitrux 3.8 发布!性能全面提升,带来非凡体验
    查看>>
    NiuShop开源商城系统 SQL注入漏洞复现
    查看>>
    NI笔试——大数加法
    查看>>
    NLog 自定义字段 写入 oracle
    查看>>
    NLog类库使用探索——详解配置
    查看>>
    NLP 基于kashgari和BERT实现中文命名实体识别(NER)
    查看>>