诸神之眼Nmap—命令行操作
诸神之眼Nmap—命令行操作

诸神之眼Nmap—命令行操作

CIDR

CIDR (Classless Inter-Domain Routing) 是一种用于表示 IP 地址范围的方法。CIDR 基于无类别域间路由 (Classless Inter-Domain Routing) 的概念,取代之前的 A、B、C 类地址划分方式。

CIDR 使用 IP 地址和前缀长度的组合来表示 IP 地址范围。格式为 “<IP 地址>/<前缀长度>”,其中 IP 地址为要表示的网络地址,前缀长度表示网络地址中前面固定部分的位数。

如:192.168.10.0/24表示192.168.10.0这个网段,子网掩码为255.255.255.0

端口状态

  • open 表示端口处于开放状态Closed 表示端口处于关闭状态;
  • -Filterd 表示端口处于过滤无法收到返回的probe状态;
  • — UnFilterd 表示端口收到返回的probe,但是无法确认;
  • Opend/UnFilterd 表示端口处于开放或者是过滤状态:
  • Closed/UnFilterd 表示端口处于关闭或者未过滤状态

本次扫描实验以metasploitable靶机作为演示

这里是metasploitable靶机安装教程

nmap <CIDR> # 对整个网段进行扫描

nmap -pn-m <IP>指定端口n到m

对比上面扫描结果发现只有10-100的端口被扫描出来了

服务指纹

为了确保有一个成功的渗透测试或网络设备监控,必须需要知道目标系统中服务的指纹信息。服务指纹信息包括服务端口、服务名和版本等

nmap服务指纹识别原理:通过分析目标往Nmap发送的数据包中某些协议标记、选项和数据,我们可以推断发送这些数据包的操作系统等。nmap通过向目标主机发送多个UDP与TCP数据包并分析其响应来进行操作系统指纹识别工作。

操作:

服务信息扫描

nmap -sV <IP> # 识别目标IP服务指纹信息(服务名、服务端口、该服务的版本号等)

侵略性详细扫描

nmap -A -v -T4 <IP> 是 Nmap 命令的一个示例,用于对指定 IP 进行全面扫描,并输出详细信息。这个命令使用了以下选项:

  • -A 表示使用全面扫描选项,包括服务和操作系统版本探测、脚本扫描和跟踪路由。
  • -v 表示使用详细模式,输出更多的信息。
  • -T4 表示设置扫描速度为 “快速模式”,在权衡准确性和速度之间寻找平衡。

扫描结果

默认脚本扫描

nmap -sC -sV -O <IP> 是 Nmap 命令的一个示例,用于对指定 IP 进行端口扫描、服务版本探测和操作系统识别。

这个命令使用了以下选项:

  • -sC 表示运行默认脚本扫描。
  • -sV 表示对开放端口进行服务版本扫描。
  • -O 表示尝试识别目标主机的操作系统。

扫描结果与上述扫描结果相同只是在表述上做了拆分

SYN隐蔽性扫描

nmap -sS 是 nmap 中执行 SYN 扫描的命令。SYN扫描是半半握手扫描,被扫主机不会保留日志

-sS 参数告诉 nmap 使用 SYN 扫描技术。SYN 扫描是一种常用的扫描技术,用于确定目标主机上哪些端口处于开放状态。

使用 nmap -sS 命令时,您需要指定要扫描的目标主机或目标网段。例如:

nmap -sS <目标主机或目标网段>

ping扫描

nmap -sP 是 Nmap 命令的一个示例,用于进行主机发现。这个命令使用了 -sP 选项,表示进行 Ping 扫描。

例如,运行以下命令:

nmap -sP <CIDR>
nmap -sP 192.168.0.0/24

目标主机日志会留下扫描痕迹

主机存活试探扫描

也是ping扫描但是不做详细端口扫描

nmap -sn 选项表示进行 Ping 扫描,以便查找网络上存活的主机。

nmap -sn <CIDR>

将 <CIDR> 替换为您要扫描的 CIDR 格式的 IP 地址范围。例如,对于 CIDR 网络 192.168.0.0/24,可以运行以下命令:

nmap -sn 192.168.0.0/24

注意:

-sn 和 -sP 都表示 Nmap 的 Ping 扫描选项,用于探测网络上的响应 Ping 命令的主机。 它们的区别如下:

  • -sn: 这个选项表示进行 Ping 扫描并忽略端口扫描,主要用于测试主机的可达性。使用该选项时,Nmap 只会向主机发送一个 Ping 包,如果主机响应则被视作”Up”。
  • -sP: 这个选项表示进行 Ping 扫描并且会同时采用指定 Ping 技术对主机端口进行轻量的扫描,确认主机是否可用。 在 Linux、BSD 和 macOS 系统上,默认使用 ICMP ECHO REQUEST 包。在 Windows 系统上,默认使用 TCP SYN 包。它只会确认主机是否可达,而不会扫描开放的端口。

因此,主要区别在于 -sn 只进行了 Ping 测试,而 -sP 进行了更多的测试确认主机的可达性,也就是对主机端口的轻量级测试。 在进行网络扫描时,应该根据需要选择合适的 Ping 扫描选项。

指定端口的规则

nmap -p- 是一个有效的 Nmap 命令选项,用于进行全部端口扫描。该选项告诉 Nmap 扫描目标的所有端口,而不仅仅是常见的端口。

指定端口范围 nmap -p 1-1000 scanme.nmap.org 将使用 Nmap 工具对 scanme.nmap.org 进行端口范围扫描,范围为 1 到 1000 的端口。

指定特定协议的端口nmap -p T:25,U:53 scanme.nmap.org 将使用 Nmap 工具对 scanme.nmap.org 进行指定端口扫描,包括 TCP 端口 25 和 UDP 端口 53。[在这个命令中,T 表示仅扫描指定协议的 TCP 端口,而 U 表示仅扫描指定协议的 UDP 端口。]

根据协议名指定特定端口nmap -p smtp scanme.nmap.org 将使用 Nmap 工具对 scanme.nmap.org 进行 SMTP 端口 (TCP 端口 25) 扫描。

NSE

NSE (Nmap Scripting Engine) 是 Nmap 工具的一个组成部分,它允许用户编写和执行自定义脚本,扩展和自定义 Nmap 对目标主机进行的扫描和探测。

NSE 脚本可以执行各种任务,包括漏洞扫描、服务探测、操作系统识别、安全审计等。用户可以编写自己的脚本,也可以使用 Nmap 社区共享的脚本,从而快速识别目标主机上的漏洞和弱点。

使用NSE脚本扫描

当您使用 Nmap NSE 时,可以选择使用不同的脚本来执行各种任务。以下是一些常用的 NSE 脚本示例:

  1. 漏洞扫描:vuln 脚本可以用来检测目标主机上的已知漏洞。例如,使用以下命令可以扫描目标主机上的常见漏洞:nmap --script vuln <target>
  2. 服务识别:banner 脚本可以获得目标主机上运行的服务的版本信息。例如:nmap --script banner <target>
  3. 默认脚本扫描:使用 -sC 参数可以运行默认脚本扫描,它将自动应用一组常用的脚本进行扫描:nmap -sC <target>
  4. 操作系统探测:os 脚本可以用来尝试识别目标主机运行的操作系统。例如:nmap --script os <target>
  5. 指定脚本参数:可以使用 --script-args 参数来传递参数给特定脚本。例如,要指定 http-title 脚本的参数:nmap --script http-title --script-args http-title.url='/'

这些只是 NSE 脚本的一小部分示例。您可以在 Nmap 的官方文档和 Nmap 社区网站上找到更多有关可用脚本和如何编写自己脚本的信息。

指定DNS解析

--dns-service <DNS服务器的IP> 指定DNS服务器,不指定为电脑默认DNS服务器,但是在域渗透过程中有些域名是通过域内DNS服务器解析IP地址的,而默认DNS服务器是解析不出来的。

对于已经知道主机存活或者防火墙开启的机器,可以使用:-Pn参数来停止探测之前的ICMP请求,以达到不触发防火墙安全机制

指定网卡扫描

nmap -e <网卡名称> <目标主机或目标网段>

其中,<网卡名称> 是要使用的网络接口的名称,如 eth0 或 wlan0,而 <目标主机或目标网段> 是要扫描的目标主机或网段。

以下是一个示例:

nmap -e eth0 192.168.0.1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注