nmap语法
- 格式:docx
- 大小:34.22 KB
- 文档页数:6
nmap是一个强大的网络扫描工具,可以用于扫描目标主机的开放端口、服务和版本信息等。
以下是一些常见的nmap使用命令语句:
1. 扫描指定IP地址范围的所有主机:
php复制代码nmap -sn <IP地址范围>
2. 扫描指定IP地址的主机,并尝试猜测服务版本:
php复制代码nmap -sV <IP地址>
3. 扫描指定IP地址范围的所有主机,并尝试猜测服务版本:
php复制代码nmap -sV <IP地址范围>
4. 扫描指定IP地址的主机,并列出所有开放的端口:
php复制代码nmap -p- <IP地址>
5. 扫描指定IP地址范围的所有主机,并列出所有开放的端口:
php复制代码nmap -p- <IP地址范围>
6. 扫描指定IP地址的主机,并列出所有开放的服务:
php复制代码nmap -sC <IP地址>
7. 扫描指定IP地址范围的所有主机,并列出所有开放的服务:
php复制代码nmap -sC <IP地址范围>
以上只是nmap的一些基本用法,还有更多高级选项和参数可以用于更复杂的网络扫描任务。
你可以通过运行nmap --help命令来获取更详细的帮助信息。
Nmap中文教程-详细版用法: nmap 扫描类型(多个) [选项] {目标}目标说明:可以通过主机名,IP地址,网络等例如:,/24,192.168.0.1;10.0.0-255.1-254-iL < 输入文件名>: 输入从主机/网络列表-iR < 主机数量>: 选择随机指标–exclude < 主机1[,主机2][,主机3],…>: 排除主机/网络–excludefile <排除文件>: 从列表文件中排除主机发现:-sL: 列表扫描–简单扫描列表目标-sP: Ping扫描主机是否存在但不进行端口扫描。
-PN: 跳过主机发现,扫描所有主机不管是否开机。
-PS/PA/PU/PY[端口列表]: TCP SYN/ACK, UDP 或SCTP 发现指定的端口-PE/PP/PM: ICMP echo, timestamp, 和netmask request发现-PO [协议列表]:IP协议ping-n/-R: 从不DNS解析/始终解析[默认: 有时]–dns-servers < 服务器1[,服务器2],…>: 指定自定义DNS服务器–system-dns: 使用操作系统的DNS解析器–traceroute: 每个主机跟踪一跳路径扫描技术:-sS:半开扫描,只进行两次握手。
-sT:全开扫描,完整的三次握手。
-sA:-sW:-sM: Maimon 扫描,使用FIN和ACK标志位。
TCP SYN/Connect()/ACK/Window/-sU: UDP扫描-sN/sF/sX: TCP Null, FIN, 和Xmas 扫描–scanflags < 标志>: 自定义TCP扫描标志-sI < 僵尸主机[:探测端口]>: 闲置扫描-sY/sZ: SCTP INIT/COOKIE-ECHO 扫描-sO: IP协议扫描-b : 使用FTP bounce扫描端口说明和扫描顺序:-p < 端口范围>: 只扫描指定的端口 3389 远程连接例: -p 22; -p 1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9 -F: 快速模式–扫描比默认的扫描的端口少-r: 连续扫描端口–不随机–top-ports < 数量>: 扫描< 数量>个最常见的端口–port-ratio < 比率>:扫描端口,较常见的< 比率>服务/版本检测:-sV: 探索开放的端口,以确定服务/版本信息–version-intensity < 级别>: 设置从0(浅)到9(尝试所有探测)–version-light: 更快地识别最有可能的探测(强度2)–version-all: 尝试每一个探测(强度9)–version-trace: 显示详细的版本扫描活动(用于调试)脚本扫描:-sC: 相当于–script=default–script=: 是用逗号分隔的目录列表,脚本文件或脚本类别–script-args=: 脚本提供参数–script-args-file=文件名:在一个NSE文件中提供脚本参数–script-trace: 显示所有的数据发送和接收–script-updatedb: 更新脚本数据库–script-help=: 显示有关脚本的帮助。
Nmap参数详解(含扫描参数原理解释)语法结构:nmap [Scan Type(s)] [Options] {target specification}端⼝状态介绍open:确定端⼝开放,可达closed :关闭的端⼝对于nmap也是可访问的,它接收nmap探测报⽂并作出响应。
但没有应⽤程序在其上监听。
filtered :由于包过滤阻⽌探测报⽂到达端⼝,Nmap⽆法确定该端⼝是否开放。
过滤可能来⾃专业的防⽕墙设备,路由规则或者主机上的软件防⽕墙。
unfiltered :未被过滤状态意味着端⼝可访问,但是Nmap⽆法确定它是开放还是关闭。
只有⽤于映射防⽕墙规则集的 ACK 扫描才会把端⼝分类到这个状态。
open | filtered :⽆法确定端⼝是开放还是被过滤,开放的端⼝不响应就是⼀个例⼦。
没有响应也可能意味着报⽂过滤器丢弃了探测报⽂或者它引发的任何反应。
UDP,IP协议,FIN, Null 等扫描会引起。
closed|filtered:(关闭或者被过滤的):⽆法确定端⼝是关闭的还是被过滤的扫描⽬标格式⽰例: , /24, 192.168.0.1; 10.0.0-255.1-254-iL:从⽂件中加载⽬标-iR:随机扫描--exclude <host or network>:排除⽹段或主机地址--excledefile:排除⽂件中的地址主机发现-sL:列出需要扫描的⽬标,不扫描-sn:只做ping扫描,不做端⼝扫描-Pn:跳过主机发现,视所有主机都在线-PS/PA/PU/PY[portlist]:基于TCP(SYN、ACK)、UDP、SCTP的指定端⼝的主机发现-PE/PP/PM:基于ICMP的echo、timestamp、network request的主机发现-PO[Protocol list]:基于IP协议字段的ping扫描-n/-R: -n表⽰不对⽬标最DNS解析,-R表⽰进⾏DNS解析,缺省为必要时候进⾏DNS解析--dns-servers <serv1[,serv2],...>: 指定DNS 服务器--system-dns:调⽤系统的DNS服务器--traceroute:显⽰追踪到⽬标的路径扫描技术-sS/sT/sA/sW/sM:TCP扫描S是SYN扫描,半连接扫描,nmap只发送SYN报⽂,通过服务器是否响应SYN+ACK来判断对应端⼝是否开放T是全连接扫描会和服务器建⽴完整的三次握⼿,效率低A发送ACK报⽂,通过服务器响应来判断是否开放,有的服务器不开会回复ICMP端⼝不可达,当回复RST时表⽰可能被拦截或者端⼝开放,不是⼀个准确的判断条件W 是窗⼝扫描,发出的报⽂和ACK⼀样,利⽤的是在某些系统中如果端⼝开放,收到ACK包后会响应⼀个窗⼝⾮0的RST 包M是Maimon扫描,使⽤发现者的名字命名。
nmap 常用命令
Nmap是一款开源的网络探测和安全评估工具,可以用来发现网络中的主机和服务以及评估它们的安全性。
下面列举了 nmap 常用的命令:
1. 扫描单个主机
nmap [options] <host>
例如:nmap 192.168.0.1
2. 扫描整个网络
nmap [options] <network>
例如:nmap 192.168.0.0/24
3. 扫描指定端口
nmap [options] -p <port> <host>
例如:nmap -p 80 192.168.0.1
4. 扫描所有端口
nmap [options] -p- <host>
例如:nmap -p- 192.168.0.1
5. 扫描指定服务
nmap [options] -sV <host>
例如:nmap -sV 192.168.0.1
6. 扫描操作系统
nmap [options] -O <host>
例如:nmap -O 192.168.0.1
7. 扫描漏洞
nmap [options] --script=<script> <host>
例如:nmap --script=vuln 192.168.0.1
8. 扫描速度
nmap [options] -T<0-5> <host>
例如:nmap -T4 192.168.0.1
以上是 nmap 常用的命令,有了这些命令的基础掌握,可以更加高效地使用 nmap 进行网络安全评估和探测。
nmap命令详细使用方法Nmap命令详细使用方法Nmap是一个网络探测和安全审核工具,它可以扫描大量的主机和端口,并提供了许多功能强大的选项。
在本文中,我们将介绍如何使用Nmap命令进行网络扫描和安全审核。
一、安装Nmap在Linux系统上,可以通过包管理器来安装Nmap。
例如,在Debian或Ubuntu上,可以使用以下命令:sudo apt-get install nmap如果你使用的是其他Linux发行版,请参考相应的文档来了解如何安装Nmap。
二、基本用法1. 扫描单个主机要扫描单个主机,请在终端中输入以下命令:nmap [IP地址]例如,要扫描IP地址为192.168.0.1的主机,请输入以下命令:nmap 192.168.0.12. 扫描整个子网要扫描整个子网,请在终端中输入以下命令:nmap [子网地址/掩码]例如,要扫描192.168.0.x子网,请输入以下命令:nmap 192.168.0.0/243. 扫描常用端口要扫描常用端口,请在终端中输入以下命令:nmap -F [IP地址]例如,要快速扫描IP地址为192.168.0.1的主机的常用端口,请输入以下命令:nmap -F 192.168.0.14. 扫描所有端口要扫描所有端口,请在终端中输入以下命令:nmap -p- [IP地址]例如,要扫描IP地址为192.168.0.1的主机的所有端口,请输入以下命令:nmap -p- 192.168.0.1三、高级用法1. 操作系统检测要检测主机的操作系统,请在终端中输入以下命令:nmap -O [IP地址]例如,要检测IP地址为192.168.0.1的主机的操作系统,请输入以下命令:nmap -O 192.168.0.12. 端口扫描技术Nmap支持多种不同的端口扫描技术,包括TCP SYN扫描、TCP connect()扫描、UDP扫描和SCTP INIT扫描。
默认情况下,Nmap 使用TCP SYN扫描。
nmap命令的用法
Nmap是一个开源的网络扫描工具,用于发现网络上的主机和开放端口。
以下是Nmap命令的一些常见用法:
1. 扫描本地网络:
```php
nmap -sn /24
```
这个命令会发送一个ARP Ping请求到本地网络上的所有主机,以发现它们是否在线。
2. 扫描特定端口:
```php
nmap -p 80
```
这个命令会扫描目标主机的80端口,检查是否开放。
3. 扫描特定端口范围:
```php
nmap -p 1-100
```
这个命令会扫描目标主机的1到100端口。
4. 扫描所有端口:
```php
nmap -p-
```
这个命令会扫描目标主机的所有端口。
注意,在“-”前面的短横线需要转义,以避免被解析为命令行选项。
5. 指定扫描方式:
```php
nmap -sT -sC -sV
```
这个命令会使用TCP连接(sT)、ping扫描(sC)和版本检测(sV)来扫描目标主机。
这只是Nmap命令的一小部分,Nmap有很多其他选项和参数可供使用。
你可以通过运行`nmap --help`或`man nmap`来查看完整的命令文档。
Nmap扫描命令使⽤详解Nmap扫描基础扫描当⽤户对Nmap⼯具了解后,即可使⽤该⼯具实施扫描。
通过上⼀章的介绍,⽤户可知Nmap⼯具可以分别对主机、端⼝、版本、操作系统等实施扫描。
但是,在实施这些扫描⼯作之前,需要先简单了解下Nmap⼯具的使⽤,以⽅便后⾯实施扫描。
所以,本章将通过使⽤Nmap ⼯具实施基础的扫描,来帮助⽤户了解该⼯具。
Nmap扫描扫描概述在实施基本的扫描之前,需要先了解⼀些Nmap⽹络扫描的基本知识,及需要考虑的⼀些法律边界问题。
本节将对⽹络基本扫描进⾏⼀个简单介绍。
1.⽹络扫描基础知识在使⽤⽹络扫描之前,需要先理解以下内容:q 当⽬标主机上使⽤了防⽕墙、路由器、代理服务或其它安全设备时,使⽤Nmap扫描结果可能会存在⼀些偏差。
或者当扫描的远程⽬标主机不在本地⽹络内时,也有可能会出现误导信息。
q 在使⽤Nmap实施扫描时,⼀些选项需要提升权限。
在Unix和Linux系统中,必须使⽤root登录或者使⽤sudo命令执⾏Nmap命令。
2.法律边界问题在实施⽹络扫描时,需要考虑⼀些法律边界问题。
如下所⽰:q 在扫描互联⽹服务提供商⽹络时(如政府或秘密服务器⽹站),如果没有被允许的话,不要进⾏扫描。
否则,会惹上法律⿇烦。
q 全⾯扫描某些主机时,可能会导致主机崩溃、停机或数据丢失等不良结果。
所以,在扫描关键任务时要⼩⼼谨慎。
Nmap扫描指定扫描⽬标当⽤户有明确的扫描⽬标时,可以直接使⽤Nmap⼯具实施扫描。
根据扫描⽬标的多少,可以分为扫描单个⽬标、多个⽬标及⽬标列表三种情况。
本节将依次讲解这三种情况的扫描⽅式。
Nmap扫描扫描单个⽬标通过指定单个⽬标,使⽤Nmap⼯具可以实现⼀个基本的扫描。
指定的⽬标可以是⼀个IP地址,也可以是主机名(Nmap会⾃动解析其主机名)。
其中,语法格式如下所⽰:nmap [⽬标]其中,参数[⽬标]可以是⼀个IP地址,也可以是⼀个主机名。
【⽰例2-4】扫描局域⽹中IP地址为192.168.1.105的主机。
一、Nmap/Zenmap简介:Nmap(Network Mapper(网络映射器))是一款开放源代码的网络探测和安全审核的工具,支持在Windows、Unix/Linux以及Mac os平台下运行。
它的设计目标是快速地扫描大型网络,当然用它扫描单个主机也没有问题。
Nmap以新颖的方式使用原始IP报文来发现网络上有哪些主机,那些主机提供什么服务(应用程序名和版本),那些服务运行在什么操作系统(包括版本信息),它们使用什么类型的报文过滤器/防火墙,以及一堆其它功能。
虽然Nmap通常用于安全审核,许多系统管理员和网络管理员也用它来做一些日常的工作,比如查看整个网络的信息,管理服务升级计划,以及监视主机和服务的运行。
Zenmap是官方推出的一款基于nmap的安全扫描GUI(图形用户界面),它是一款多平台(Windows、Unix/Linux、Mac os等)免费开源的应用程序,它的推出使得Nmap对于新手来说更容易上手,同时也对有经验的用户提供了更高级的特性。
经常被用到的扫描被保存成了预配置项,这使得重复利用变得极其容易。
当然也容许互动的创建命令行。
扫描的结果能够被保存下来供后续分析,可以将不同的保存下来的扫描结果进行对比以找到差异。
最近的扫描结果会被保存在一个可搜索的数据库中。
有了这款工具就让我们可以更直观的使用Nmap的强大功能。
二、Zenmap(GUI模式)安装:Windows平台下的安装配置和验证:a)到nmap官网下载最新自安装版本,nmap-6.47-setup.exe(最新版本是6.49)b)双击安装,除安装位置可以自选外,其它都可以采用默认设置。
(安装中可能会根据系统情况提示你安装winpcap、visual C++运行时环境,均答复同意)c)安装完毕后执行Zenmap可以进行测试验证。
三、Zenmap的常用使用方法:1、Zenmap的预览及各区域简介:菜单栏区域:汇集Zenmap的各种功能的快捷连接。
nmap 用法Nmap是一款网络扫描工具,它可以用来识别主机和服务以及网络上的漏洞。
Nmap可以使用命令行或者图形化界面进行操作。
下面将详细介绍Nmap的用法。
一、安装Nmap在Linux系统中,可以通过包管理器来安装Nmap,比如在Ubuntu 中可以使用以下命令进行安装:sudo apt-get install nmap在Windows系统中,可以从官网下载安装程序进行安装。
二、基本用法1. 扫描单个主机要扫描单个主机,可以使用以下命令:nmap [options] target其中target是要扫描的IP地址或者域名。
例如:nmap 192.168.1.1这个命令将会扫描192.168.1.1这个主机,并输出该主机开放的端口和服务。
2. 扫描多个主机要扫描多个主机,可以使用以下命令:nmap [options] target1 target2 ...例如:nmap 192.168.1.1 192.168.1.2 192.168.1.3这个命令将会依次扫描192.168.1.1、192.168.1.2和192.168.1.3这三台主机,并输出它们开放的端口和服务。
3.指定端口范围进行扫描如果只想扫描某个端口范围内的主机,可以使用以下命令:nmap [options] -p port-range target其中port-range是要扫描的端口范围,可以使用“-”连接两个端口号,也可以使用“,”分隔多个端口号。
例如:nmap -p 80,443 192.168.1.1这个命令将会扫描192.168.1.1主机上的80和443端口,并输出它们开放的服务。
4.指定扫描方式进行扫描Nmap支持多种扫描方式,包括TCP Connect Scan、SYN Scan、UDP Scan等。
要指定扫描方式进行扫描,可以使用以下命令:nmap [options] -s scan-type target其中scan-type是要使用的扫描方式。
nmap使用参数Nmap是一款开源的网络扫描工具,用于发现网络上的主机和服务。
以下是Nmap的一些常用参数:1. 扫描指定端口:nmap -p <port> <target IP>。
例如,nmap -p 80 表示扫描目标IP地址的80端口。
2. 扫描指定端口范围:nmap -p <port range> <target IP>。
例如,nmap -p 1-100 表示扫描目标IP地址的1到100端口。
3. 扫描所有端口:nmap -Pn <target IP>。
此参数会扫描目标IP的所有端口,不会发送ping请求。
4. 扫描特定协议的端口:nmap -p <protocol>:<port> <target IP>。
例如,nmap -p tcp:80 表示扫描目标IP地址的TCP 80端口。
5. 自定义扫描:nmap -p <custom range> <target IP>。
例如,nmap -p "20-30,80-90" 表示扫描目标IP地址的20到30和80到90端口。
6. 扫描目标IP的存活主机:nmap -sn <target IP>。
此参数会发送ping 请求,但不扫描端口。
7. 扫描指定服务:nmap -p <service> <target IP>。
例如,nmap -p http 表示扫描目标IP地址的HTTP服务。
这些参数可以帮助您快速准确地扫描网络上的主机和服务。
更多详细信息可以查阅Nmap的官方文档或使用nmap --help命令查看所有可用参数。
nmap的使用方法Nmap是一款开源的网络探测工具,常用于网络发现、端口扫描、操作系统识别等任务。
它可以在多个操作系统下运行,并可以以命令行形式进行使用。
本文将探讨Nmap的使用方法,并提供一些相关参考内容帮助读者更好地使用和理解Nmap。
一、安装NmapNmap可以在Linux、Windows和Mac系统上安装和使用。
以下是不同操作系统平台下安装Nmap的基本步骤。
1. Linux系统:在Linux系统上,可以通过包管理工具直接安装Nmap,如在Ubuntu上执行以下命令:$ sudo apt-get update$ sudo apt-get install nmap2. Windows系统:在Windows系统上,可以从Nmap官方网站上下载可执行的安装程序并运行进行安装。
安装程序提供了图形界面和命令行两种方式进行使用。
3. Mac系统:在Mac系统上,可以使用Homebrew包管理器进行安装,在终端执行以下命令:$ brew update$ brew install nmap二、Nmap的基本用法Nmap具有丰富而强大的功能,下面是一些常见的Nmap用法和命令示例。
1. 扫描指定主机或IP地址:$ nmap <host/IP>2. 扫描指定端口号范围:$ nmap -p <port range> <host/IP>3. 版本识别和操作系统探测:$ nmap -A <host/IP>4. 扫描常用端口:$ nmap -F <host/IP>5. 扫描整个子网:$ nmap <IP range>6. 扫描主机列表:$ nmap -iL <host list file>7. 扫描时禁用主机发现:$ nmap -PN <host/IP>8. 扫描时使用指定的脚本:$ nmap --script=<script name> <host/IP>9. 保存扫描结果到文件:$ nmap -oN <output file> <host/IP>三、Nmap相关参考资料除了上述基本使用方法,了解更多Nmap的功能和使用技巧可以参考以下资料。
nmap ncat 用法English Answer:nmap is a free and open-source network scanner that can be used to discover hosts and services on a network. It isa powerful tool that can be used for a variety of purposes, including security audits, network troubleshooting, and penetration testing.ncat is a versatile tool that can be used for a variety of networking tasks, including port scanning, file transfer, and remote shell access. It is a powerful tool that can be used for a variety of purposes, including security audits, network troubleshooting, and penetration testing.nmap Usage.The basic syntax for nmap is as follows:nmap [target] [options]Examples:To scan a single host for open ports, use the following command:nmap <target>。
To scan a range of hosts for open ports, use the following command:nmap <target-range>。
Nmap常⽤命令语法Nmap是⼀个⽹络连接端扫描软件,⽤来扫描⽹上电脑开放的⽹络连接端,确定哪些服务运⾏在哪些连接端,并且推断计算机运⾏哪个操作系统,正如⼤多数被⽤于⽹络安全的⼯具,Nmap也是不少⿊客及骇客爱⽤的⼯具,系统管理员可以利⽤Nmap来探测⼯作环境中未经批准使⽤的服务器,但是⿊客会利⽤Nmap来搜集⽬标电脑的⽹络设定,从⽽计划攻击的⽅法.### 主机发现扫描批量Ping探测: -sP参数,⽤来批量扫描⼀个⽹段的主机存活数,这⾥的结果只会显⽰在线的主机.[root@localhost ~]# nmap -sP 192.168.1.0/24 > scan.log[root@localhost ~]# cat scan.log | grep "Nmap scan" | awk '{print $5}'跳过Ping探测: 有些主机关闭了ping检测,所以可以使⽤-P0跳过ping的探测,这样可加快扫描速度.[root@localhost ~]# nmap -P0 192.168.1.7计算⽹段主机IP: 仅列出指定⽹段上的每台主机,不发送任何报⽂到⽬标主机.[root@localhost ~]# nmap -sL 192.168.1.0/24 > scan.log[root@localhost ~]# cat scan.log | grep "Nmap scan" | awk '{print $5}'扫描在线主机: 扫描⼀个⽹段的在线主机列表,功能类似于批量ping检测存活主机.[root@localhost ~]# nmap -sn 27.201.193.0/24[root@localhost ~]# cat scan.log | grep "Nmap scan" | awk '{print $5}'扫描IP地址范围: 指定探测的⽹段,看是否在线.[root@localhost ~]# nmap -sP 192.168.1.1-10[root@localhost ~]# nmap -sP 27.201.193.100-200探测开放端⼝(TCP/UDP): 探测⽬标主机开放的端⼝,可指定⼀个以逗号分隔的端⼝列表,如(-pS22,443,80).[root@localhost ~]# nmap -pS22,80,443 192.168.1.10 // TCP探测[root@localhost ~]# nmap -pU22,80,443 192.168.1.10 // UDP探测[root@localhost ~]# nmap -p smtp,http,https 192.168.1.10探测主机(SYN/TCP/UDP)扫描: SYN半开放扫描,TCP开放扫描.[root@localhost ~]# nmap -sS 192.168.1.10 //SYN扫描[root@localhost ~]# nmap -sT 192.168.1.10 // tcp[root@localhost ~]# nmap -sU 192.168.1.10 // UDP扫描[root@localhost ~]# nmap -sA 192.168.1.10 // TCP ACK扫描主机协议探测: IP协议扫描,可以确定⽬标机⽀持哪些IP协议(TCP, ICMP, IGMP).[root@localhost ~]# nmap -sO 192.168.1.10 | grep '^[0-9]'1 open icmp6 open tcp7 open udp探测⽬标系统: 扫描探测⽬标主机操作系统,这⾥结果仅供参考有时候并不准确.[root@localhost ~]# nmap -O 192.168.1.10 | grep "Running:"Running: Microsoft Windows 2000 | XP探测服务版本: ⽤于扫描⽬标主机服务的具体版本号.[root@localhost ~]# nmap -sV 192.168.1.10 | grep '^[0-9]'80/tcp open http Apache httpd 2.4.23 ((Win32) OpenSSL/1.0.2j PHP/5.4.45)3306/tcp open mysql MySQL 5.5.53139/tcp open netbios-ssn443/tcp open ssl/http VMware VirtualCenter Web service445/tcp closed microsoft-ds912/tcp open vmware-auth VMware Authentication Daemon 1.0 (Uses VNC, SOAP)跟踪报⽂(tracert): 跟踪发送和接收报⽂的数据流向.[root@localhost ~]# nmap --packet-trace 192.168.1.10SENT (4.7014s) TCP 192.168.1.30:50000 > 192.168.1.10:3527 SSENT (4.7100s) TCP 192.168.1.30:50000 > 192.168.1.10:4446 S输出本机接⼝: 输出检测到的接⼝列表和系统路由root@localhost ~]# nmap --iflist 192.168.1.10扫描多台主机: ⼀次性扫描多台⽬标主机,与⽹段扫描不相同.[root@localhost ~]# nmap -sP 192.168.1.10 192.168.1.20[root@localhost ~]# nmap -sP 192.168.1.10 192.168.1.20 192.168.1.30扫描时排除主机:nmap 10.0.1.161-162 --exclude 10.0.1.162 // 排除单个主机nmap 10.0.1.161-163 --exclude 10.0.1.162-163 // 排除连续主机nmap 10.0.1.161-163 --exclude 10.0.1.161,10.0.1.163 //排除分散主机nmap 10.0.1.161-163 --excludefile ex.txt // 排除⽂件⾥的主机控制扫描时间: 调整探测报⽂的时间间隔,防⽌在单⼀主机上等待时间过长.[root@localhost ~]# nmap --scan-delay 1 192.168.1.10[root@localhost ~]# nmap --max-scan-delay 1 192.168.1.10 // 表⽰最多等待1秒[root@localhost ~]# nmap --max-retries 1 192.168.1.10 // 数据包最多重传1次输出指定格式: 通过相关选项,可以让Nmap输出指定的⽂件格式.[root@localhost ~]# nmap -oX lyshark.xml 192.168.1.10 // 以XML格式输出扫描结果[root@localhost ~]# nmap -oN lyshark.log 192.168.1.10 // 以标准格式输出到⽂本[root@localhost ~]# nmap -oG lyshark.log 192.168.1.10 // 以Grep可识别的格式输出导⼊扫描⽂件: 从⼀个⽂件中导⼊IP地址,并进⾏扫描.[root@localhost ~]# cat lyshark.loglocalhost192.168.1.7[root@localhost ~]# nmap -iL lyshark.log### 防⽕墙的规避规避IDS检测: 通过设置时间模板(<Paranoid=0|Sneaky=1)的⽅式,来规避IDS的检测.[root@localhost ~]# nmap -T0 192.168.1.10[root@localhost ~]# nmap -T1 192.168.1.10报⽂分段探测: 将TCP头分段在⼏个包中,使得包过滤器、IDS以及其它⼯具的检测更加困难.[root@localhost ~]# nmap -f 192.168.1.10 // ⾃动分段[root@localhost ~]# nmap --mtu 4/8/16 192.168.1.10 // ⾃定义分段,必须是4的倍数使⽤诱饵绕过: 使⽤诱饵隐蔽扫描,此处也可⽤⾃⼰的真实IP作为诱饵.[root@localhost ~]# nmap -D 192.168.1.1 192.168.1.10### 使⽤扫描脚本Nmap不仅⽤于端⼝扫描,服务检测,其还具有强⼤的脚本功能,利⽤Nmap Script可以快速探测服务器,⼀般情况下,常⽤的扫描脚本会放在/usr/share/nmap/script⽬录下,并且脚本扩招名为*.nse后缀的,接下来将介绍最常⽤的扫描脚本.扫描WEB敏感⽬录: 通过使⽤--script=http-enum.nse可以扫描⽹站的敏感⽬录.[root@localhost ~]# nmap -p 80 --script=http-enum.nse Starting Nmap 6.40 ( ) at 2019-03-31 01:49 EDTNmap scan report for localhost (127.0.0.1)Host is up (0.000010s latency).Not shown: 995 closed portsPORT STATE SERVICE21/tcp open ftp22/tcp open ssh25/tcp open smtp80/tcp open http| http-enum:| /login.php: Possible admin folder| /robots.txt: Robots file| /config/: Potentially interesting folder w/ directory listing| /docs/: Potentially interesting folder w/ directory listing| /external/: Potentially interesting folder w/ directory listing|_ /icons/: Potentially interesting folder w/ directory listing3306/tcp open mysqlNmap done: 1 IP address (1 host up) scanned in 1.18 seconds绕开鉴权: 负责处理鉴权证书(绕开鉴权)的脚本,也可以作为检测部分应⽤弱⼝令.[root@localhost ~]# nmap --script=auth Starting Nmap 6.40 ( ) at 2019-03-30 23:16 EDTNmap scan report for localhost (127.0.0.1)Host is up (0.0000090s latency).Not shown: 995 closed portsPORT STATE SERVICE21/tcp open ftp| ftp-anon: Anonymous FTP login allowed (FTP code 230)|_drwxr-xr-x 2 0 0 6 Oct 30 19:45 pub22/tcp open ssh25/tcp open smtp| smtp-enum-users:|_ root80/tcp open http| http-domino-enum-passwords:|_ ERROR: No valid credentials were found3306/tcp open mysqlNmap done: 1 IP address (1 host up) scanned in 0.89 seconds默认脚本扫描: 脚本扫描,主要是搜集各种应⽤服务的信息,收集到后可再针对具体服务进⾏攻击.[root@localhost ~]# nmap --script=default Starting Nmap 6.40 ( ) at 2019-03-30 23:21 EDTNmap scan report for localhost (127.0.0.1)Host is up (0.000010s latency).Not shown: 995 closed portsPORT STATE SERVICE21/tcp open ftp| ftp-anon: Anonymous FTP login allowed (FTP code 230)|_drwxr-xr-x 2 0 0 6 Oct 30 19:45 pub22/tcp open ssh| ssh-hostkey: 2048 c2:89:44:fc:e3:1b:5a:65:a1:6e:11:34:73:6d:d5:04 (RSA)|_256 54:0e:d4:47:2f:b2:d4:2b:33:b6:d8:35:66:2d:a2:aa (ECDSA)3306/tcp open mysql| mysql-info: Protocol: 10| Version: 5.5.60-MariaDB| Thread ID: 10408| Status: Autocommit|_Salt: <D"y]F(2Nmap done: 1 IP address (1 host up) scanned in 1.06 seconds检测常见漏洞: 通过使⽤--script=luln,可以扫描⽹站的常见漏洞,以及⽹页的⽬录结构. [root@localhost ~]# nmap --script=vuln Starting Nmap 6.40 ( ) at 2019-03-30 23:24 EDTNmap scan report for localhost (127.0.0.1)Host is up (0.000017s latency).Not shown: 995 closed portsPORT STATE SERVICE21/tcp open ftp22/tcp open ssh25/tcp open smtp| smtp-vuln-cve2010-4344:|_ The SMTP server is not Exim: NOT VULNERABLE80/tcp open http| http-enum:| /login.php: Possible admin folder| /robots.txt: Robots file| /config/: Potentially interesting folder w/ directory listing| /docs/: Potentially interesting folder w/ directory listing| /external/: Potentially interesting folder w/ directory listing|_ /icons/: Potentially interesting folder w/ directory listing|_http-fileupload-exploiter:|_http-frontpage-login: false|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.|_http-trace: TRACE is enabled3306/tcp open mysqlNmap done: 1 IP address (1 host up) scanned in 14.40 seconds内⽹服务探测: 通过使⽤--script=broadcast,可以实现在局域⽹内探查更多服务开启状况. [root@localhost ~]# nmap -n -p445 --script=broadcast 127.0.0.1Starting Nmap 6.40 ( ) at 2019-03-30 23:28 EDTPre-scan script results:| broadcast-dhcp-discover:| IP Offered: 192.168.1.14| Server Identifier: 192.168.1.1| Subnet Mask: 255.255.255.0| Router: 192.168.1.1|_ Domain Name Server: 192.168.1.1| broadcast-eigrp-discovery:|_ ERROR: Couldn't get an A.S value.| broadcast-listener:| ether| ARP Request| sender ip sender mac target ip| 192.168.1.1 43:72:23:04:56:21 192.168.1.2| 192.168.1.2 B4:8C:28:BE:4C:34 192.168.1.1| EIGRP Update........进⾏WhoIS查询: 通过使⽤--script whois模块,可以查询⽹站的简单信息.[root@localhost ~]# nmap --script whois Host script results:| whois: Record found at | inetnum: 61.135.0.0 - 61.135.255.255| netname: UNICOM-BJ| descr: China Unicom Beijing province network| country: CN| person: ChinaUnicom Hostmaster|_email: hqs-ipabuse@Nmap done: 1 IP address (1 host up) scanned in 4.76 seconds详细WhoIS解析: 利⽤第三⽅的数据库或资源,查询详细的WhoIS解析情况.[root@localhost ~]# nmap --script external Starting Nmap 6.40 ( ) at 2019-03-30 23:31 EDTNmap scan report for (61.135.169.125)Host is up (0.018s latency).|_http-robtex-shared-ns: ERROR: Script execution failed (use -d to debug)| ip-geolocation-geoplugin:| 61.135.169.125 ()| coordinates (lat,lon): 39.9288,116.3889|_ state: Beijing, China|_ip-geolocation-maxmind: ERROR: Script execution failed (use -d to debug)| whois: Record found at | inetnum: 61.135.0.0 - 61.135.255.255| netname: UNICOM-BJ| descr: China Unicom Beijing province network|_country: CN.....发现内⽹⽹关: 通过使⽤--script=broadcast-netbios-master-browser可以发现内⽹⽹关的地址. [root@localhost ~]# nmap --script=broadcast-netbios-master-browser 192.168.1.1Starting Nmap 6.40 ( ) at 2019-03-31 02:05 EDTPre-scan script results:| broadcast-netbios-master-browser:| ip server domain|_192.168.1.2 Web-Server WORKGROUPNmap scan report for 192.168.1.1Host is up (0.0011s latency).Not shown: 998 closed portsPORT STATE SERVICE80/tcp filtered http1900/tcp open upnpMAC Address: 42:1C:1B:E7:B1:B2 (TP-Link)发现WEB中Robots⽂件: 通过使⽤--script=http-robots.txt.nse可以检测到robots⽂件内容. [root@localhost scripts]# nmap --script=http-robots.txt.nse Starting Nmap 6.40 ( ) at 2019-03-31 02:12 EDTNmap scan report for (61.135.169.125)Host is up (0.019s latency).Other addresses for (not scanned): 61.135.169.121Not shown: 998 filtered portsPORT STATE SERVICE80/tcp open http| http-robots.txt: 9 disallowed entries| /baidu /s? /ulink? /link? /home/news/data/ /shifen/|_/homepage/ /cpro /443/tcp open https| http-robots.txt: 9 disallowed entries| /baidu /s? /ulink? /link? /home/news/data/ /shifen/|_/homepage/ /cpro /Nmap done: 1 IP address (1 host up) scanned in 5.06 seconds检查WEB服务器时间: 检查web服务器的当前时间.[root@localhost scripts]# nmap -p 443 --script http-date.nse Starting Nmap 6.40 ( ) at 2019-03-31 02:16 EDTNmap scan report for (61.135.169.121)Host is up (0.017s latency).Other addresses for (not scanned): 61.135.169.125PORT STATE SERVICE443/tcp open https|_http-date: Sun, 31 Mar 2019 06:16:53 GMT; 0s from local time.Nmap done: 1 IP address (1 host up) scanned in 0.27 seconds执⾏DOS攻击: dos攻击,对于处理能⼒较⼩的站点还挺好⽤的.[root@localhost ~]# nmap --script http-slowloris --max-parallelism 1000 Warning: Your max-parallelism (-M) option is extraordinarily high, which can hurt reliabilityStarting Nmap 6.40 ( ) at 2019-03-31 02:21 EDT检查DNS⼦域: 检查⽬标ns服务器是否允许传送,如果能,直接把⼦域拖出来就好了. [root@localhost scripts]# nmap -p 53 --script dns-zone-transfer.nse -v Starting Nmap 6.40 ( ) at 2019-03-31 02:28 EDTNSE: Loaded 1 scripts for scanning.NSE: Script Pre-scanning.Initiating Ping Scan at 02:28Scanning (61.135.169.121) [4 ports]Completed Ping Scan at 02:28, 0.02s elapsed (1 total hosts)Initiating Parallel DNS resolution of 1 host. at 02:28Completed Parallel DNS resolution of 1 host. at 02:28, 0.01s elapsedInitiating SYN Stealth Scan at 02:28Scanning (61.135.169.121) [1 port]Completed SYN Stealth Scan at 02:28, 0.20s elapsed (1 total ports)NSE: Script scanning 61.135.169.121.Nmap scan report for (61.135.169.121)Host is up (0.016s latency).Other addresses for (not scanned): 61.135.169.125PORT STATE SERVICE53/tcp filtered domainNSE: Script Post-scanning.Read data files from: /usr/bin/../share/nmapNmap done: 1 IP address (1 host up) scanned in 0.28 secondsRaw packets sent: 6 (240B) | Rcvd: 1 (28B)查询WEB旁站: 旁站查询,ip2hosts接⼝该接⼝似乎早已停⽤,如果想继续⽤,可⾃⾏到脚本⾥把接⼝部分的代码改掉.[root@localhost scripts]# nmap -p80 --script hostmap-ip2hosts.nse Starting Nmap 6.40 ( ) at 2019-03-31 02:29 EDTNmap scan report for (61.135.169.121)Host is up (0.017s latency).Other addresses for (not scanned): 61.135.169.125PORT STATE SERVICE80/tcp open httpHost script results:| hostmap-ip2hosts:|_ hosts: Error: could not GET /csv.php?ip=61.135.169.121Nmap done: 1 IP address (1 host up) scanned in 5.89 seconds### ⼝令爆破模块暴⼒破解DNS记录: 这⾥以破解百度的域名为例⼦,由于内容较多这⾥简化显⽰.[root@localhost scripts]# nmap --script=dns-brute.nse Starting Nmap 6.40 ( ) at 2019-03-31 03:19 EDTNmap scan report for (61.135.169.125)Host is up (0.018s latency).Other addresses for (not scanned): 61.135.169.121Not shown: 998 filtered portsPORT STATE SERVICE80/tcp open http443/tcp open httpsHost script results:| dns-brute:| DNS Brute-force hostnames| - 180.149.144.192| - 180.149.132.122| - 123.129.254.12|_ - 10.26.39.14Nmap done: 1 IP address (1 host up) scanned in 10.58 seconds内⽹VNC扫描: 通过使⽤脚本,检查VNC版本等⼀些敏感信息.[root@localhost ~]# nmap --script=realvnc-auth-bypass 127.0.0.1 #检查VNC版本[root@localhost ~]# nmap --script=vnc-auth 127.0.0.1 #检查VNC认证⽅式[root@localhost ~]# nmap --script=vnc-info 127.0.0.1 #获取VNC信息[root@localhost ~]# nmap --script=vnc-brute.nse --script-args=userdb=/user.txt,passdb=/pass.txt 127.0.0.1 #暴⼒破解VNC密码内⽹SMB扫描: 检查局域⽹中的Samba服务器,以及对服务器的暴⼒破解.[root@localhost ~]# nmap --script=smb-brute.nse 127.0.0.1 #简单尝试破解SMB服务[root@localhost ~]# nmap --script=smb-check-vulns.nse --script-args=unsafe=1 127.0.0.1 #SMB已知⼏个严重漏[root@localhost ~]# nmap --script=smb-brute.nse --script-args=userdb=/user.txt,passdb=/pass.txt 127.0.0.1 #通过传递字段⽂件,进⾏暴⼒破解[root@localhost ~]# nmap -p445 -n --script=smb-psexec --script-args=smbuser=admin,smbpass=1233 127.0.0.1 #查询主机⼀些敏感信息:nmap_service[root@localhost ~]# nmap -n -p445 --script=smb-enum-sessions.nse --script-args=smbuser=admin,smbpass=1233 127.0.0.1 #查看会话[root@localhost ~]# nmap -n -p445 --script=smb-os-discovery.nse --script-args=smbuser=admin,smbpass=1233 127.0.0.1 #查看系统信息MSSQL扫描: 检查局域⽹中的SQL Server服务器,以及对服务器的暴⼒破解.[root@localhost ~]# nmap -p1433 --script=ms-sql-brute --script-args=userdb=/var/passwd,passdb=/var/passwd 127.0.0.1 #暴⼒破解MSSQL密码[root@localhost ~]# nmap -p 1433 --script ms-sql-dump-hashes.nse --script-args ername=sa,mssql.password=sa 127.0.0.1 #dumphash值[root@localhost ~]# nmap -p 1433 --script ms-sql-xp-cmdshell --script-args ername=sa,mssql.password=sa,ms-sql-xp-cmdshell.cmd="net user" 192.168.137.4 xp_cmdshell #执⾏命令MYSQL扫描: 检查局域⽹中的MySQL服务器,以及对服务器的暴⼒破解.[root@localhost ~]# nmap -p3306 --script=mysql-empty-password.nse 127.0.0.1 #扫描root空⼝令[root@localhost ~]# nmap -p3306 --script=mysql-users.nse --script-args=mysqluser=root 127.0.0.1 #列出所有⽤户[root@localhost ~]# nmap -p3306 --script=mysql-brute.nse --script-args=userdb=/var/passwd,passdb=/var/passwd 127.0.0.1 #暴⼒破解MYSQL⼝令Oracle扫描: 检查局域⽹中的Oracle服务器,以及对服务器的暴⼒破解.[root@localhost ~]# nmap --script=oracle-sid-brute -p 1521-1560 127.0.0.1 #oracle sid扫描[root@localhost ~]# nmap --script oracle-brute -p 1521 --script-args oracle-brute.sid=ORCL,userdb=/var/passwd,passdb=/var/passwd 127.0.0.1 #oracle弱⼝令破解爆破Telnet:nmap -p 23 --script telnet-brute \--script-args userdb=myusers.lst,passdb=.mypwds.lst,telnet-brute.timeout=8s 192.168.1.103nmap --script=broadcast-netbios-master-browser 192.168.137.4 发现⽹关nmap -p 873 --script rsync-brute --script-args 'rsync-brute.module=www' 192.168.137.4 破解rsyncnmap --script informix-brute -p 9088 192.168.137.4 informix数据库破解nmap -p 5432 --script pgsql-brute 192.168.137.4 pgsql破解nmap -sU --script snmp-brute 192.168.137.4 snmp破解nmap -sV --script=telnet-brute 192.168.137.4 telnet破解nmap --script=http-vuln-cve2010-0738 --script-args 'http-vuln-cve2010-0738.paths={/path1/,/path2/}' <target> jboss autopwnnmap --script=http-methods.nse 192.168.137.4 检查http⽅法nmap --script http-slowloris --max-parallelism 400 192.168.137.4 dos攻击,对于处理能⼒较⼩的站点还挺好⽤的 'half-HTTP' connections nmap --script=samba-vuln-cve-2012-1182 -p 139 192.168.137.4nmap -iR 1000 -sS -PS80 -p 80 -oG nmap.txtNmap 变成漏扫使⽤1.去下载项⽬,并整个解压到nmap 的script⽬录下,然后执命令nmap -sV --script=vulscan/vulscan.nse#使⽤默认的库进⾏漏洞扫描nmap -sV --script=vulscan/vulscan.nse --script-args vulscandb=cve.csv [ip]#使⽤特定的库cve.csv扫描nmap -sV --script=vulscan/vulscan.nse --script-args vulscandb=exploitdb.csv [ip]nmap -sV --script=vulscan/vulscan.nse --script-args vulscandb=securitytracker.csv [ip]nmap -sV --script=vulscan/vulscan.nse --script-args vulscandb=xforce.csv [ip]nmap -sV --script=vulscan/vulscan.nse --script-args vulscandb=scipvuldb.csv [ip]nmap -sV --script=vulscan/vulscan.nse --script-args vulscandb=openvas.csv [ip]nmap -sV --script=vulscan/vulscan.nse --script-args vulscandb=xforce.csv [ip]nmap -sV --script=vulscan/vulscan.nse --script-args vulscandb=osvdb.csv [ip]。
nmap用法scriptnmap是一款常用的网络扫描工具,它可以用来扫描目标主机的端口、获取主机信息等。
nmap还提供了一种叫做“Nmap脚本引擎”的功能,可以通过执行各种脚本来扩展其功能。
以下是一些常用的nmap脚本:1. http-title:用于获取网站的标题信息。
2. ssl-enum-ciphers:用于枚举SSL支持的加密算法。
3. smb-os-discovery:用于获取smb服务的操作系统信息。
4. dns-brute:用于进行DNS暴力破解。
5. ftp-anon:用于检测FTP服务器是否允许匿名登录。
6. ftp-vsftpd-backdoor:用于检测vsftpd后门漏洞。
7. http-shellshock:用于检测Shellshock漏洞。
8. http-slowloris-check:用于检测Slowloris攻击。
这些脚本可以通过在nmap命令中使用“-sC”参数来执行。
例如,执行以下命令来扫描目标主机并执行所有脚本:nmap -sC target_host除了使用内置的脚本,nmap还支持自定义脚本。
用户可以使用Lua编写自己的脚本,并将其保存在“/usr/share/nmap/scripts”目录下。
然后,可以在nmap命令中使用“--script”参数来执行自定义脚本。
例如,执行以下命令来扫描目标主机并执行自定义脚本: nmap --script my_script.nse target_host总之,nmap的脚本引擎为用户提供了一种方便的方式来扩展其功能。
通过使用内置脚本或自定义脚本,用户可以更好地理解网络环境并发现潜在的安全问题。
Nmap是一个开源的网络扫描和安全审计工具,可用于网络探测、安全扫描、网络流量分析等。
其扫描原理基于ICMP、TCP/UDP协议的端口扫描,通过发送探测包到目标主机,然后根据返回的响应来判断目标主机是否在线、某个端口是否开放等信息。
Nmap的默认扫描方式是TCP SYN扫描,也称为半开放扫描,该方式发送SYN到目标端口,如果收到SYN/ACK回复,那么判断端口是开放的;如果收到RST包,说明该端口是关闭的。
Nmap的用法包括主机发现和端口扫描。
主机发现是通过发送ICMP echo请求、TCP SYN包、TCP ACK包、ICMP timestamp请求等数据包到目标主机,只要收到其中一个包的回复,就表示目标主机存活。
端口扫描是通过发送TCP SYN包到目标主机的指定端口,然后根据返回的响应来判断该端口的状态。
在使用Nmap时,可以通过命令行参数来指定扫描类型、目标主机、扫描端口等参数。
例如,使用以下命令可以进行TCP SYN扫描,扫描目标主机的1-1024端口:
```
nmap -sS -p 1-1024 target_ip
```
其中,`-sS`表示使用TCP SYN扫描,`-p`表示指定扫描的端口范围,`target_ip`表示要扫描的目标主机的IP地址。
1.名称NMAP-网络探测和安全扫描工具2.语法nmap [Scan Type(s)] [Options]3.描述为了提高nmap在non-root状态下的性能,软件的设计者付出了很大的努力。
很不幸,一些内核界面(例如raw socket)需要在root状态下使用。
所以应该尽可能在root使用nmap。
nmap运行通常会得到被扫描主机端口的列表。
nmap总会给出well known端口的服务名(如果可能)、端口号、状态和协议等信息。
每个端口的状态有:open、filtered、unfiltered。
open 状态意味着目标主机能够在这个端口使用accept()系统调用接受连接。
filtered状态表示:防火墙、包过滤和其它的网络安全软件掩盖了这个端口,禁止nmap探测其是否打开。
unfiltered 表示:这个端口关闭,并且没有防火墙/包过滤软件来隔离nmap的探测企图。
通常情况下,端口的状态基本都是unfiltered状态,只有在大多数被扫描的端口处于filtered状态下,才会显示处于unfiltered状态的端口。
根据使用的功能选项,nmap也可以报告远程主机的下列特征:使用的操作系统、TCP序列、运行绑定到每个端口上的应用程序的用户名、DNS名、主机地址是否是欺骗地址、以及其它一些东西。
4.功能选项功能选项可以组合使用。
一些功能选项只能够在某种扫描模式下使用。
nmap会自动识别无效或者不支持的功能选项组合,并向用户发出警告信息。
如果你是有经验的用户,可以略过结尾的示例一节。
可以使用nmap -h快速列出功能选项的列表。
4.1 扫描类型-sTTCP connect()扫描:这是最基本的TCP扫描方式。
connect()是一种系统调用,由操作系统提供,用来打开一个连接。
如果目标端口有程序监听,connect()就会成功返回,否则这个端口是不可达的。
这项技术最大的优点是,你勿需root权限。
任何UNIX用户都可以自由使用这个系统调用。
这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息。
-sSTCP同步扫描(TCP SYN):因为不必全部打开一个TCP连接,所以这项技术通常称为半开扫描(half-open)。
你可以发出一个TCP同步包(SYN),然后等待回应。
如果对方返回SYN|ACK(响应)包就表示目标端口正在监听;如果返回RST数据包,就表示目标端口没有监听程序;如果收到一个SYN|ACK包,源主机就会马上发出一个RST(复位)数据包断开和目标主机的连接,这实际上有我们的操作系统内核自动完成的。
这项技术最大的好处是,很少有系统能够把这记入系统日志。
不过,你需要root权限来定制SYN数据包。
-sF -sF -sN秘密FIN数据包扫描、圣诞树(Xmas Tree)、空(Null)扫描模式:即使SYN扫描都无法确定的情况下使用。
一些防火墙和包过滤软件能够对发送到被限制端口的SYN数据包进行监视,而且有些程序比如synlogger和courtney能够检测那些扫描。
这些高级的扫描方式可以逃过这些干扰。
这些扫描方式的理论依据是:关闭的端口需要对你的探测包回应RST包,而打开的端口必需忽略有问题的包(参考RFC 793第64页)。
FIN扫描使用暴露的FIN数据包来探测,而圣诞树扫描打开数据包的FIN、URG和PUSH标志。
不幸的是,微软决定完全忽略这个标准,另起炉灶。
所以这种扫描方式对Windows95/NT无效。
不过,从另外的角度讲,可以使用这种方式来分别两种不同的平台。
如果使用这种扫描方式可以发现打开的端口,你就可以确定目标注意运行的不是Windows系统。
如果使用-sF、-sX或者-sN扫描显示所有的端口都是关闭的,而使用SYN扫描显示有打开的端口,你可以确定目标主机可能运行的是Windwos系统。
现在这种方式没有什么太大的用处,因为nmap有内嵌的操作系统检测功能。
还有其它几个系统使用和windows同样的处理方式,包括Cisco、BSDI、HP/UX、MYS、IRIX。
在应该抛弃数据包时,以上这些系统都会从打开的端口发出复位数据包。
-sPping扫描:有时你只是想知道此时网络上哪些主机正在运行。
通过向你指定的网络内的每个IP 地址发送ICMP echo请求数据包,nmap就可以完成这项任务。
如果主机正在运行就会作出响应。
不幸的是,一些站点例如:阻塞ICMP echo请求数据包。
然而,在默认的情况下nmap也能够向80端口发送TCP ack包,如果你收到一个RST包,就表示主机正在运行。
nmap使用的第三种技术是:发送一个SYN包,然后等待一个RST或者SYN/ACK 包。
对于非root用户,nmap使用connect()方法。
在默认的情况下(root用户),nmap并行使用ICMP和ACK技术。
注意,nmap在任何情况下都会进行ping扫描,只有目标主机处于运行状态,才会进行后续的扫描。
如果你只是想知道目标主机是否运行,而不想进行其它扫描,才会用到这个选项。
-sUUDP扫描:如果你想知道在某台主机上提供哪些UDP(用户数据报协议,RFC768)服务,可以使用这种扫描方法。
nmap首先向目标主机的每个端口发出一个0字节的UDP包,如果我们收到端口不可达的ICMP消息,端口就是关闭的,否则我们就假设它是打开的。
有些人可能会想UDP扫描是没有什么意思的。
但是,我经常会想到最近出现的solarisrpcbind 缺陷。
rpcbind隐藏在一个未公开的UDP端口上,这个端口号大于32770。
所以即使端口111(portmap的众所周知端口号) 被防火墙阻塞有关系。
但是你能发现大于30000的哪个端口上有程序正在监听吗?使用UDP扫描就能!cDc Back Orifice的后门程序就隐藏在Windows 主机的一个可配置的UDP端口中。
不考虑一些通常的安全缺陷,一些服务例如:snmp、tftp、NFS 使用UDP协议。
不幸的是,UDP扫描有时非常缓慢,因为大多数主机限制ICMP错误信息的比例(在RFC1812中的建议)。
例如,在Linux内核中(在net/ipv4/icmp.h文件中)限制每4秒钟只能出现80条目标不可达的ICMP消息,如果超过这个比例,就会给1/4秒钟的处罚。
solaris的限制更加严格,每秒钟只允许出现大约2条ICMP不可达消息,这样,使扫描更加缓慢。
nmap会检测这个限制的比例,减缓发送速度,而不是发送大量的将被目标主机丢弃的无用数据包。
不过Micro$oft忽略了RFC1812的这个建议,不对这个比例做任何的限制。
所以我们可以能够快速扫描运行Win95/NT的主机上的所有65K个端口。
-sAACK扫描:这项高级的扫描方法通常用来穿过防火墙的规则集。
通常情况下,这有助于确定一个防火墙是功能比较完善的或者是一个简单的包过滤程序,只是阻塞进入的SYN包。
这种扫描是向特定的端口发送ACK包(使用随机的应答/序列号)。
如果返回一个RST包,这个端口就标记为unfiltered状态。
如果什么都没有返回,或者返回一个不可达ICMP消息,这个端口就归入filtered类。
注意,nmap通常不输出unfiltered的端口,所以在输出中通常不显示所有被探测的端口。
显然,这种扫描方式不能找出处于打开状态的端口。
-sW对滑动窗口的扫描:这项高级扫描技术非常类似于ACK 扫描,除了它有时可以检测到处于打开状态的端口,因为滑动窗口的大小是不规则的,有些操作系统可以报告其大小。
这些系统至少包括:某些版本的AIX、Amiga、BeOS、BSDI、Cray、Tru64 UNIX、DG/UX、OpenVMS、Digital UNIX、OpenBSD、OpenStep、QNX、Rhapsody、SunOS 4.x、Ultrix、VAX、VXWORKS。
从nmap-hackers邮件3列表的文档中可以得到完整的列表。
-sRRPC扫描。
这种方法和nmap的其它不同的端口扫描方法结合使用。
选择所有处于打开状态的端口向它们发出SunRPC程序的NULL命令,以确定它们是否是RPC端口,如果是,就确定是哪种软件及其版本号。
因此你能够获得防火墙的一些信息。
诱饵扫描现在还不能和RPC扫描结合使用。
-bFTP反弹攻击(bounce attack):FTP协议(RFC 959)有一个很有意思的特征,它支持代理FTP 连接。
也就是说,我能够从连接到FTP服务器,并且可以要求这台FTP 服务器为自己发送Internet上任何地方的文件!1985年,RFC959完成时,这个特征就能很好地工作了。
然而,在今天的Internet 中,我们不能让人们劫持FTP服务器,让它向Internet 上的任意节点发送数据。
如同Hobbit在1995年写的文章中所说的,这个协议”能够用来做投递虚拟的不可达邮件和新闻,进入各种站点的服务器,填满硬盘,跳过防火墙,以及其它的骚扰活动,而且很难进行追踪”。
我们可以使用这个特征,在一台代理FTP服务器扫描TCP端口。
因此,你需要连接到防火墙后面的一台FTP服务器,接着进行端口扫描。
如果在这台FTP服务器中有可读写的目录,你还可以向目标端口任意发送数据(不过nmap不能为你做这些)。
传递给-b功能选项的参数是你要作为代理的FTP服务器。
语法格式为:-b username:password@server:port。
除了server以外,其余都是可选的。
如果你想知道什么服务器有这种缺陷,可以参考我在Phrack 51发表的文章。
还可以在nmap的站点得到这篇文章的最新版本。
4.2 通用选项这些内容不是必需的,但是很有用。
-P0在扫描之前,不必ping主机。
有些网络的防火墙不允许ICMP echo请求穿过,使用这个选项可以对这些网络进行扫描。
就是一个例子,因此在扫描这个站点时,你应该一直使用-P0或者-PT 80选项。
-PT扫描之前,使用TCP ping确定哪些主机正在运行。
nmap不是通过发送ICMP echo请求包然后等待响应来实现这种功能,而是向目标网络(或者单一主机)发出TCP ACK包然后等待回应。
如果主机正在运行就会返回RST包。
只有在目标网络/主机阻塞了ping包,而仍旧允许你对其进行扫描时,这个选项才有效。
对于非root用户,我们使用connect()系统调用来实现这项功能。
使用-PT <端口号>来设定目标端口。
默认的端口号是80,因为这个端口通常不会被过滤。
-PS对于root用户,这个选项让nmap使用SYN包而不是ACK包来对目标主机进行扫描。
如果主机正在运行就返回一个RST包(或者一个SYN/ACK包)。