nmap教程

NMAP 使用教程

Nmap 简介

是一个开源、免费的 络探测工具,适用于 等多种操作系统。能够快速扫描大型 络或者单个主机,可以发现 络上有哪些主机,这些主机提供什么服务,服务运行在什么操作系统(包括版本系统),扩大攻击范围。

  • 识别目标 络内活跃主机

  • 扫描主机端口

  • 探测主机的操作系统

  • 利用自带脚本检测漏洞

端口状态

  • open 目标端口开发放

  • closed 目标端口关闭

  • filtered 通常被防火墙过滤,无法判断目标端口状态 防火墙 路由器

  • **unfiltered 目标端口可以访问 但无法判断状态 ** 很少见 通常只有在ACK扫描中出现

  • open | filtered 无法确定端口开启还是 filtered 开放端口无响应

  • closed | filtered 无法确定端口关闭还是 filtered

扫描技术

nmap [Scan Type(s)] [Options] {target specification}

目标范围

域名 ip 段 范围

scanme.nmap.org microsoft.com/24 192.168.0.1 10.0.0-255.1-254

-iL 从文件中读取目标

-iR 随机扫描ip

–exclude 排除主机

**–excludefile 排除文件中的目标 **

主机发现

**-sL 列表扫描 **

  • 列出指定 络上的每台主机,不发送任何 文到目标主机 默认下,Nmap仍对主机进行反向域名解析以获取目标主机的名字

-sn ping 扫描

  • 使用ping进行主机发现 , 不对端口或系统服务等等进行扫描

-Pn 将所有主机视为在线

  • 跳过主机发现

-PR 使用ARP发现主机

  • 同一 段使用ARP探测在线主机

-PS/PA/PU/PY SYN/ACK UDP SCTP发现指定端口

  • PS SYN 扫描 向目标主机发送SYN数据包 主机发现
  • PA ACK 扫描
  • PU UDP协议主机发现
  • PY SCTP 主机发现 向目标主机发送SCTP INIT 数据包

-PE/PP/PM ICMP echo, timestamp, netmask request 发现探测

  • PE 使用ICMP 协议主机发现 跟ping 一样
  • PP 使用ICMP协议的时间戳主机发现
  • PM 使用ICMP协议的地址掩码请求主机发现

-PO IP Protocol Ping

  • 使用 ip 协议ping

-n/-R 不做DNS解析 / 使用DNS解析

–dns-servers 指定 DNS 服务器

  • –dns-servers

–system-dns 使用系统的DNS 解析

–traceroute 开启路由追踪

–packet-trace 追踪nmap 发送的数据包

端口扫描

-sS TCP SYN 扫描端口

-sT TCP connect扫描端口

-sF TCP FIN 扫描端口

-sN TCP NULL 扫描端口

-sX TCP Xmas Tree扫描端口

-sU UDP扫描端口

指定扫描的端口

-r 连续扫描端口

-p 描指定的端口

-F 快速扫描端口

扫描某一个端口

语法 : nmap -p [port] [taget]

指定服务名扫描

语法 : nmap -p [port [name] ] [taget]

指定协议扫描端口

语法 : nmap -p U:[UDP ports], T:[TCP potrs ] [taget]

扫描所有端口

语法 : nmap -p * [taget]

扫描常用端口

语法 : nmap –top-ports [mun] [target]

服务版本探测

namp 进行识别的探针和响应对应的关系保存在哪Namp-os-db文件中。

namp会尝试验证一下参数

  • 供应商名称
  • 操作系统
  • 系统版本
  • 设备类型

-sV 打开版本探测

  • 也可以用-A同时打开操作系统探测和版本探测

-sR RPC 扫描

  • 开放的TCP/UDP端口执行SunRPC程序NULL命令 确实是否是RPC端口

–allports 不为版本探测排除任何端口

  • –allports扫描所有端口

–version-intensity 设置版本扫描强度

  • 强度值必须在0和9之间。 默认是7

–version-all 尝试每个探测

  • 保证对每个端口尝试每个探测 文

–version-light 版本轻量模式扫描

  • 轻量级模式使 版本扫描快许多,但它识别服务的可能性也略微小一点

–version-trace 跟踪版本扫描活动

  • 打印出详细的关于正在进行的扫描的调试信息

操作系统探测

-O 启用操作系统检测

  • 也可以使用 -A 来同时启用操作系统检测和版本检测

–osscan-limit 针对指定的目标进行操作系统检测

  • 只对满足同时具有状态为open和closed端口 的主机进行操作系统检测

–osscan-guess –fuzzy 推测操作系统检测结果

  • Nmap无法确定所检测的操作系统时,会尽可能地提供最相近的匹配

防火墙/IDS 绕过

-f 文分段

  • 将TCP头分段在几个包中,使得包过滤器、 IDS以及其它工具的检测更加困难

-D 使用诱饵隐蔽扫描

  • 使用逗 分隔每个诱饵主机,也可用自己的真实IP作为诱饵
  • 使用 ME选项,一些常用 端口扫描检测器就不会 告 这个真实IP
  • 不使用选项,Nmap 将真实IP放在一个随机的位置

-S 源地址哄骗

  • 无法确定你的源地址

–source-port

-g 源端口哄骗

  • -g和–source-port选项

-data-length 发送 文时 附加随机数据

  • Nmap在发送的 文上 附加指定数量的随机字节

–spoof-mac MAC地址哄骗

  • 使用字符串“0”,Nmap选择一个完全随机的MAC 地址
  • 给定的字符品是一个16进制偶数(使用:分隔),Nmap将使用这个MAC地址
  • 小于12的16进制数字,Nmap会随机填充剩下的6个字节
  • 参数不是0或16进 制字符串,Nmap将通过nmap-mac-prefixes查找 厂商的名称(大小写区分),如果找到匹配,Nmap将使用厂商的OUI(3字节前缀),然后 随机填充剩余的3个节字

–mtu 使用指定的MTU

  • 偏移量必须 是8的倍数

–ttl 设置IP time-to-live域

  • 设置IPv4 文的time-to-live域为指定的值

格式化输出

Nmap提供5种不同的输出格式

  • -oX 扫描结果保存XML文件

  • -oG 扫描结果保存grep 文件

  • -oS 脚本小子输出 类似于交互工具输出

  • -oA 输出至所有格式

-v 提高输出信息的详细度

NSE脚本

kali 下 脚本路径

NSE 脚本的分为14个大类

分类 描述
auth 都是包含负责处理鉴权证书(绕开鉴权)的脚本
broadcase 都是包含局域 内探查更多服务开启状况
brute 包含常见的应用的暴力破解模块
default -sC 或 -A 参数扫描的默认脚本
discovery 更多的信息收集,如SMB枚举
dos DOS攻击脚本
exploit 用来完成对目标系统安全漏洞渗透的脚本
external 针对第三方服务的脚本
fuzzer 进行模糊测试的脚本
intrusive 可能会导致目标系统奔溃,或者目标 络极大的负担。容易被防火墙或IDS发现
malware 用来检测恶意软件的脚本
safe 任何情况下都是安全无害的脚本
version 增强服务与版本扫描工的脚本
vuln 检测目标主机是否有常见的漏洞

脚本的使用

–script 来完成对脚本的选择

后面可以跟 脚本名称 脚本种类 脚本路径

–script-args 用来指定脚本的运行时的参数

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年3月13日
下一篇 2022年3月13日

相关推荐