Nmap - Nmap 中的开关和扫描类型

Nmap可能是Pentesters和Hacker中最著名的侦察工具,它基本上是一个端口扫描仪,可以帮助您扫描网络并识别网络中可用的各种端口和服务,此外还提供有关目标的更多信息,包括逆向DNS名称,操作系统猜测,设备类型和MAC地址。

** Nmap 的 barebone 语法是:**

1$ nmap [FLAGS] [IP]

请注意,您可能还需要使用 sudo 特权运行它,以执行某些特定类型的扫描。

Nmap 交换机

Nmap 是一个强大而强大的网络扫描工具,可以通过命令行传递的旗帜来自定义我们的扫描。

  • 联合国 -h:打印帮助摘要页
  • -sS:进行TCP SYN扫描
  • -sU:进行UDP扫描
  • -sV:测试开放端口以确定服务/版本信息
  • -O:启用OS检测
  • -v:启用动词. 您甚至可以将动词级别设置为: --vv: 第二级动词. 建议使用的动词最低水平。 () )--v3:三级活字. 您可以通过指定这样的数字来指定动词级别 。 () ( )* -oA:在"正常",XML和可复制格式中输出相同的Nmap. 然而,您可以用 : -- oN: 将正常输出重定向到给定文件名
  • -OX: 以干净的 XML 格式输出并存储到给定文件 () )--oG:出产"可复制"输出并存储到一个文件中. 由于用户正在向 XML 输出方向移动, 已折旧格式 。 () ( )* -A:启用"侵略"扫描. 目前,这可以实现OS检测(-O),版本扫描(-sV),脚本扫描(-sC)和痕量路由(-跟踪路由) (_) ( )* -p:指定要扫描的端口。 它可以是单一的港口,也可以是一系列港口。 示例: -nmap-p 80 12.0.0.0.1': 此扫描本地主机上的端口 80( _) ) - nmap-p 1-100 127.0.0.1: 此扫描本地主机上的 1 到 100 个端口( ) - nmap-p 127.0.0.1':此扫描本地主机上的所有端口( _) (英语)

在 Nmap 中扫描类型

Nmap 支持许多不同的扫描类型,但最受欢迎的类型是:

1. TCP 连接扫描(-sT)

在这种类型的扫描中,Nmap 会将 TCP 包发送到具有 SYN 旗帜集的端口。

  • 目标用 RST 包响应,这意味着端口已关闭
  • 目标根本不响应,可能是因为防火墙丢掉了所有入口的包,在这种情况下,端口将被认为是过滤的
  • 目标回应了 TCP 包与 SYN/ACK 旗帜集,这意味着端口是开放的,然后 Nmap 将与 ACK 旗帜集的 TCP 包响应,因此将完成 TCP 3 方向的握手

这不是一个非常可靠的扫描技术,因为它很容易配置一个防火墙规则以回应RST包或放弃所有入口的包。

SYN半打开扫描(-sS)

SYN扫描,也被称为半开隐形扫描是一种比以前的方法的改进. 在以前的方法中,我们在收到 SYN/ACK 包后,在接收 ACK 旗帜的 TCP 包后,将其发送回来,现在我们将发送 RST 包,这将防止服务器反复尝试执行请求,并大大减少扫描时间。

这个方法是对前者的改进,因为:

  • 它们更快
  • 它们可能能够绕过一些原始的防火墙
  • 通常,SYN扫描不会被运行在端口上的应用程序记录,因为大多数应用程序在完全建立后才开始登录连接,而不是SYN扫描 的情况。

但是,在生产环境中运行 SYN 扫描是不建议的,因为它可能会破坏某些不稳定的应用程序,还应该注意到 SYN 扫描还需要 sudo 特权,因为它需要制造原始包。

事实上,当使用 sudo 特权运行时,nmap 会默认到 SYN 扫描,否则它会默认到 TCP 扫描。

3. UDP 扫描(-sU)

UDP 扫描比前两种更不可靠,因为 UDP 连接的性质是无状态的,这意味着没有像 TCP 那样的反馈机制。 UDP 基于点燃和忘记的原则工作,这意味着它向某些端口的目标发送包,并希望它们能够做到这一点。

当 UDP 包发送到目标端口时,可能有三种情况:

  • 通常没有收到任何响应,在这种情况下,nmap 将端口标记为开放的,如果尚未收到任何响应,它会发送另一个 UDP 包进行重复检查,如果再次没有收到任何响应,它会将端口标记为开放的,然后移动
  • 它可能会收到 UDP 响应,这是非常罕见的。

Nmap 中的特殊扫描

除了这些,一些不太受欢迎的扫描类型甚至比TCP SYN扫描更隐藏

1. TCP Null 扫描(-sN)

在 TCP Null 扫描中,发送的 TCP 包没有设置任何旗帜,根据 RFC,在这种情况下,如果端口 i s 关闭,目标应用 RST 回复。

2. TCP FIN 扫描(-sF)

这与TCP Null Scan非常相似,但事实上,而不是发送一个完全空的TCP包,它会发送一个带有FIN旗的包,用于礼貌地关闭连接。

3. TCP Xmas 扫描(-sX)

TCP Xmas 扫描也与前两种扫描技术非常相似,除非它们使用具有 PSH、URG 和 FIN 旗帜的 TCP 包。

限制

由于这些扫描具有类似的性质,它们也有类似的输出,这与UDP扫描非常相似,在这种情况下,我们只能有以下三个答案:

  • 開放過濾:當沒有收到回覆時,端口會被分類為這樣,因為沒有回覆只能意味兩件事 :
  • 端口是 open _) - 端口是防火牆背後保護的,因此是 _filtered _) * 過濾 : 當端口是防火牆背後保護的,它發送了 ICMP ping back
  • 關閉時 : 當它接收和 RST 包

值得注意的是,虽然 RFC 793 命令网络主机用 RST TCP 包对封闭端口的故障包进行响应,而对于开放端口则根本不响应,但某些系统却拒绝了这一惯例,这种行为主要在 Microsoft Windows 服务器和一些 CISCO 设备中被观察到,其中所有故障包默认丢失。

使用 Nmap 扫描网络的主机

在连接到网络时,最重要的事情之一是获得网络上的所有活跃主机的列表,然后再进行进一步的扫描。这可以通过Ping Sweep来完成,这就意味着将ICMP包发送到网络中的所有IP,然后等待响应。

您可以通过使用指标或通过 CIDR 指定您的目标 IP 范围如下:

1$ nmap -sn 192.168.0.1-254

或者,

1$ nmap -sn 192.168.0.0/24

-sn 标志抑制了任何端口扫描,并迫使 nmap 仅依靠 ICMP 响应包(或 ARP 请求,如果运行具有超级用户权限)来识别网络中的活跃主机。

地图 地图 地图 地图 地图 地图

Nmap Scripting Engine(NSE)是Nmap的强大补充,允许我们进一步扩展其功能,用Lua编写,我们可以使用它来编写我们的脚本,并自动化许多工作,如测试漏洞和剥削。

有许多类别可用. 一些有用的类别包括:

  • 安全:- 不会影响目标
  • 侵入性:- 不安全:可能影响目标
  • vuln:- 扫描漏洞
  • 利用:- 尝试利用漏洞
  • auth:- 试图绕过运行服务的身份验证
  • brute:- 尝试运行服务的 brute force 凭证
  • discovery:- 试图查询运行服务以获取有关网络的更多信息 (

要运行脚本,我们需要将其指定为 --script=<script-name>

您也可以通过分离脚本名称来指定多个脚本同时运行,如 --script=<script-name1>,<script-name2>

一些脚本还需要一个可以用--script-args``<args>来指定的参数。

一些脚本有内置的帮助菜单,可以引用:

1$ nmap --script-help <script-name>

你可以找到一个完整的脚本列表 _这里

结论

Nmap 拥有大量的免费和精心编写的文档,您可以在其 official website上找到有关旗帜、脚本和更多信息,您可以尝试各种旗帜和脚本,并在不同的环境下看到它们的输出如何不同。

Published At
Categories with 技术
Tagged with
comments powered by Disqus