搜档网
当前位置:搜档网 › Nmap使用指南1.0(个人精心整理)

Nmap使用指南1.0(个人精心整理)

Nmap使用指南1.0(个人精心整理)
Nmap使用指南1.0(个人精心整理)

目录

Nmap/Zenmap使用指南 (1)

一、Nmap/Zenmap简介 (3)

二、端口扫描技术 (3)

1、端口扫描基础 (3)

2、Nmap指令语法 (5)

3、端口扫描技术 (7)

4、端口说明和扫描顺序 (11)

三、Nmap的拓展功能 (12)

1、服务版本探测 (12)

2、操作系统探测 (14)

3、其他选项 (14)

四、CLI模式(命令行界面) (15)

1、Windows下安装配置验证 (15)

2、Unix/Linux下安装验证 (15)

3、Nmap的使用。 (16)

五、GUI模式(图形用户界面)/Zenmap (16)

1、Windows平台下的安装配置和验证 (17)

2、Unix/Linux平台下的安装验证 (17)

3、Zenmap的常用使用方法 (17)

六、应用实例 (30)

七、附录 (32)

一、Nmap/Zenmap简介

——重点是功能介绍

Nmap (“Network Mapper(网络映射器)”)是一款开放源代码的网络探测和安全审核的工具,支持在Windows、Unix/Linux以及MAC OS平台下运行。它的设计目标是快速地扫描大型网络,当然用它扫描单个主机也没有问题。Nmap 以新颖的方式使用原始IP报文来发现网络上有哪些主机,那些主机提供什么服务(应用程序名和版本),那些服务运行在什么操作系统(包括版本信息),它们使用什么类型的报文过滤器/防火墙,以及一堆其它功能。虽然Nmap通常用于安全审核,许多系统管理员和网络管理员也用它来做一些日常的工作,比如查看整个网络的信息,管理服务升级计划,以及监视主机和服务的运行。

Zenmap是官方推出的一款基于nmap的安全扫描GUI(图形用户界面),它是一款多平台(Windows、Unix/Linux、MAC OS等)免费开源的应用程序,它的推出使得Nmap对于新手来说更容易上手同事也对有经验的用户提供了更高级的特性。经常被用到的扫描被保存成了预配置项,这使得重复利用变得极其容易。当然也允许互动的创建命令行。扫描的结果能够被保存下来供后续分析,可以将不同的保存下来的扫描结果进行对比以找出差异。最近的扫描结果会被保存在一个可搜索的数据库中。有了这款工具就让我们可以更直观的使用Nmap的强大功能。

二、端口扫描技术

——基础及进阶

1、端口扫描基础

虽然Nmap这些年来功能越来越多,它也是从一个高效的端口扫描器开始的,

并且那仍然是它的核心功能。nmap target这个简单的命令扫描目标主机上的超过1660个TCP端口。许多传统的端口扫描器只列出所有端口是开放还是关闭的,Nmap的信息粒度比它们要细得多。它把端口分成六个状态: open(开放的),closed(关闭的),filtered(被过滤的),unfiltered(未被过滤的),open|filtered (开放或者被过滤的),或者closed|filtered(关闭或者未被过滤的)。当然这些状态并非端口本身的性质,而是描述Nmap怎样看待它们。例如:对于同样的目标机器的135/tcp端口,从同网络扫描显示它是开放的,而跨网络作完全相同的扫描则可能显示它是filtered(被过滤的)。

Nmap所识别的六个端口状态:

Open(开放的):应用程序正在该端口接收TCP 连接或者UDP报文。发现这一点常常是端口扫描的主要目标。安全意识强的人们知道每个开放的端口都是攻击的入口。攻击者或者入侵测试者想要发现开放的端口。而管理员则试图关闭它们或者用防火墙保护它们以免妨碍了合法用户。非安全扫描可能对开放的端口也感兴趣,因为它们显示了网络上哪些服务可供使用。

Closed(关闭的):关闭的端口对于Nmap也是可访问的(它接受Nmap的探测报文并作出响应),但没有应用程序在其上监听。它们可以显示出该IP地址上(主机发现,或者ping扫描)的主机正在运行,也对部分操作系统探测有所帮助。因为关闭的关口是可访问的,也许过会儿值得再扫描一下,可能一些又开放了。系统管理员可能会考虑用防火墙封锁这样的端口。那样他们就会被显示为被过滤的状态,下面讨论。

Filtered(被过滤的):由于包过滤阻止探测报文到达端口,Nmap无法确定该端口是否开放。过滤可能来自专业的防火墙设备,路由器规则或者主机上的软件防火墙。这样的端口让攻击者感觉很挫折,因为它们几乎不提供任何信息。有时候它们响应ICMP错误消息如类型3代码13(无法到达目标: 通信被管理员禁止),但更普遍的是过滤器只是丢弃探测帧,不做任何响应。这迫使Nmap重试,这使得扫描速度明显变慢。

Unfiltered(未被过滤的):未被过滤状态意味着端口可访问,但Nmap不能确定它是开放还是关闭。只有用于映射防火墙规则集的ACK扫描才会把端口分类到这种状态。用其它类型的扫描如窗口扫描,SYN扫描,或者FIN扫描来扫描未被

过滤的端口可以帮助确定端口是否开放。

Open|Filtered(开放或者被过滤的):当无法确定端口是开放还是被过滤的,Namp 就把该端口划分成这种状态。开放的端口不响应就是一个例子。没有响应也可能意味着报文过滤器丢弃了探测报文或者它引发的任何响应。因此Nmap无法确定该端口是开放的还是被过滤的。UDP,IP协议,FIN,Null,和Xmas扫描可能把端口归入此类。

Closed|Filtered(关闭或者被过滤的):该状态用于Nmap不能确定端口是关闭的还是被过滤的。它只可能出现在IPID Idle扫描中。

2、Nmap指令语法

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

其中扫描类型和选项参考后边的端口扫描技术部分,此处将详细解释一下扫描目标说明部分。

有时候您希望扫描整个网络的相邻主机。为此,Nmap支持CIDR风格的地址。您可以附加一个/在一个IP地址或主机名后面,Nmap将会扫描所有和该参考IP地址具有相同比特的所有IP地址或主机。例如,192.168.10.0/24将会扫描192.168.10.0 (二进制格式: 11000000 10101000 00001010 00000000)和192.168.10.255 (二进制格式: 11000000 10101000 00001010 11111111)之间的256台主机。192.168.10.40/24 将会做同样的事情。假设主机https://www.sodocs.net/doc/e92365794.html,的IP地址是205.217.153.62,https://www.sodocs.net/doc/e92365794.html,/16 将扫描205.217.0.0和205.217.255.255之间的65,536 个IP地址。所允许的最小值是/1,这将会扫描半个互联网。最大值是/32,这将会扫描该主机或IP地址,因为所有的比特都固定了。

CIDR标志位很简洁但有时候不够灵活。例如,您也许想要扫描192.168.0.0/16,但略过任何以.0或者.255 结束的IP地址,因为它们通常是广播地址。Nmap通过八位字节地址范围支持这样的扫描您可以用逗号分开的数字或范围列表为IP地址的每个八位字节指定它的范围。例如,192.168.0-255.1-254 将略过在该范围内以.0和.255结束的地址。范围不必限于最后的8位:0-255.0-255.13.37 将在整个互联网范围内扫描所有以13.37结束的地址。这种大

范围的扫描对互联网调查研究也许有用。

IPv6地址只能用规范的IPv6地址或主机名指定。CIDR 和八位字节范围不支持IPv6,因为它们对于IPv6几乎没什么用。

Nmap命令行接受多个主机说明,它们不必是相同类型。例如命令nmap https://www.sodocs.net/doc/e92365794.html, 192.168.0.0/8 10.0.0,1,3-7.0-255将和您预期的一样执行。

虽然目标通常在命令行指定,下列选项也可用来控制目标的选择:

-iL (从列表中输入)

中读取目标说明。在命令行输入一堆主机名显得很笨拙,然而经常需要这样。例如,您的DHCP服务器可能导出10,000个当前租约的列表,而您希望对它们进行扫描。如果您不是使用未授权的静态IP来定位主机,或许您想要扫描所有IP地址。只要生成要扫描的主机的列表,用-iL 把文件名作为选项传给Nmap。列表中的项可以是Nmap在命令行上接受的任何格式(IP 地址,主机名,CIDR,IPv6,或者八位字节范围)。每一项必须以一个或多个空格,制表符或换行符分开。如果您希望Nmap从标准输入而不是实际文件读取列表,您可以用一个连字符(-)作为文件名。

-iR (随机选择目标)

对于互联网范围内的调查和研究,您也许想随机地选择目标。 选项告诉Nmap生成多少个IP。不合需要的IP如特定的私有,组播或者未分配的地址自动略过。选项0 意味着永无休止的扫描。记住,一些网管对于未授权的扫描可能会很感冒并加以抱怨。使用该选项的后果自负! 如果在某个雨天的下午,您觉得实在无聊,试试这个命令nmap -sS -PS80 -iR 0 -p 80随机地找一些网站浏览。

--exclude (排除主机/网络)

如果在您指定的扫描范围有一些主机或网络不是您的目标,那就用该选项加上以逗号分隔的列表排除它们。该列表用正常的Nmap语法,因此它可以包括主机名,CIDR,八位字节范围等等。当您希望扫描的网络包含执行关键任务的服务器,已知的对端口扫描反应强烈的系统或者被其它人看管的子网时,这也许有用。

--excludefile (排除文件中的列表)

这和--exclude 选项的功能一样,只是所排除的目标是用以换行符,空格,或者制表符分隔的提供的,而不是在命令行上输入的。

3、端口扫描技术

既然Nmap是免费的,那么掌握端口扫描的唯一障碍就是知识。没有经验的用户和刚入门者总是用默认的SYN扫描解决每个问题,而专家则总能够选择最合适的一种扫描技术来完成给定的任务,这就是专家嘴里说的“打的扫描技术”。

虽然Nmap努力产生正确的结果,但请记住所有结果都是基于目标机器(或者它们前面的防火墙)返回的报文的。这些主机也许是不值得信任的,它们可能响应以迷惑或误导Nmap的报文。更普遍的是非RFC兼容的主机以不正确的方式响应Nmap探测。FIN,Null和Xmas扫描特别容易遇到这个问题。不过这几种都是特定扫描类型的问题,会在个别扫描类型中讨论到。

大部分扫描类型只对特权用户可用,这是因为他们发送接收原始报文在Unix 系统下需要root权限,在Windows上推荐使用administrator账户。但是当WinPcap 已经被加载到操作系统时,非特权用户也可以正常使用Nmap。特权选项让Nmap 强大得多也灵活得多。

Nmap支持的扫描类型大概有十几种,一般一次只使用一种,不过UDP扫描(-sU)倒是可以和任何一种TCP扫描类型结合使用。端口扫描类型的选项格式是-s通常是扫描类型的首字符(不过也有例外)。

默认情况下,Nmap执行一个SYN扫描,但是如果用户没有权限发送原始报文(在UNIX上需要root权限)或者如果指定的是IPv6目标,Nmap调用connect()。以下列出的扫描类型中,非特权用户仅能执行connect()和ftp bounce()扫描。

-sS(TCP SYN扫描/半开扫描):SYN扫描作为默认的也是最受欢迎的扫描选项,是有充分理由的。它执行得很快,在一个没有入侵防火墙的快速网络上,每秒钟可以扫描数千个端口。SYN扫描相对来说不张扬,不易被注意到,因为它从来不完成TCP连接。它不依赖于任何的特定平台,可以应对任何兼容的TCP协议栈。它之所以被称为“半开扫描”是因为它从来不打开一个完整的TCP连接。它的方式就是先发送一个SYN报文(就像真是要建立一个TCP连接一样),然后等待响应:

(1)如果收到SYN/ACK则表示端口在监听(也就是Open状态),Nmap将直接回复RST结束TCP连接握手转入下一个端口。

(2)如果收到RST(复位)则表示没有监听者(这代表该端口Closed状态)。(3)如果经过多次重发之后仍然没有响应,该端口将被标记为被过滤(Filtered)。(4)如果收到ICMP不可达错误(类型3,代码1、2、3、9、10、13),该端口也将被标记为被过滤(Filtered)。

-sT(TCP connect()扫描):当SYN扫描不能用时,CP Connect()扫描就是默认的TCP 扫描。当用户没有权限发送原始报文或者扫描IPv6网络时,就是这种情况。Nmap 通过创建connect()系统调用要求操作系统和目标机以及端口建立连接,而不像其它扫描类型直接发送原始报文。这就和一般的网络应用程序(如Web浏览器、P2P客户端)建立的连接一样属于高层系统调用。它是Berkeley Sockets API编程接口的一部分,Nmap就是使用此API获得每个连接尝试的状态信息,而不是读取响应的原始报文。

但是一般来说SYN扫描(可用的话)是更好地选择。原因如下:

(1)connect()扫描效率较低(因为它需要建立完整的TCP连接)

(2)connect()扫描容易在目标机上留下记录。许多普通的UNIX系统上的服务会在syslog留下记录。如果管理员在日志里面看到来自同一系统的一堆尝试连接,他就应该知道他的系统被扫描了。

-sU(UDP扫描):虽然互联网上很多流行的服务都是基于TCP连接的,但是基于UDP的服务也不少(如DNS、SNMP、DHCP,注册端口对应为53、161/162、67/68,这是最常见的三种)。不过由于UDP扫描一般来说不较慢,比TCP要困难,所以一般的安全审核人员都容易忽略这些端口。其实这是一个错误的想法,因为可探测的UDP服务相当普遍,攻击者不会忽略整个协议,所幸的是Nmap可以帮助记录并报告UDP端口。

UDP扫描通过-sU激活,它可以与各种TCP扫描结合使用而同时检查两种协议。

UDP扫描发送空的(没有数据)UDP报头到每个目标端口。如果返回ICMP 端口不可到达错误(类型3,代码3),则该端口是closed(关闭的)。其它ICMP 不可到达错误(类型3,代码1,2,9,10,或者13)表明该端口是filtered(被

过滤的)。偶尔地,某服务会响应一个UDP报文,证明该端口是open(开放的)。如果几次重试后还没有响应,该端口就被认为是open|filtered(开放|被过滤的)。这意味着该端口可能是开放的,也可能包过滤器正在封锁通信。可以用版本扫描(-sV)帮助区分真正的开放端口和被过滤的端口。

注意:慎用UDP扫描,因为它的扫描速度受到操作系统的限制非常低。如果确实要使用可以采用优先扫描主要端口、并发扫描更多主机、从防火墙后面扫描、使用—host—timeout来跳过慢速的主机等手段。

-sN、-sF、-sX(TCP Null、FIN、Xmas扫描):这三种扫描方法其实是利用了TCP RFC 中发掘出的一个微妙的方法来区分Open(开放的)和Closed(关闭的)端口(RFC 中的描述为“如果目标端口状态是关闭的……进入的不含RST的报文导致一个RST的响应”,“不设置SYN、RST、ACK位的报文发送到开放端口,理论上这不应该发生,如果确实收到了,丢弃该报文,返回。”)。

如果扫描系统遵循该RFC则当端口关闭时,任何不包含SYN、RST、ACK位的报文都会导致一个RST返回,而当端口开放时,应该没有任何响应。

Null扫描(-sN)不设置任何标志位(TCP标志头是0)

FIN扫描(-sF)只设置TCP FIN标志位

Xmas扫描(-sX)设置FIN、PSH、URG标志位,就像点亮圣诞树上所有的灯一样,所以常称为圣诞树扫描。

除了探测报文标志位不同,这三种扫描的行为完全一样。

(1)如果收到一个RST报文则说明该端口是Closed(关闭的)

(2)如果没有响应则意味着端口是Open|Filtered(开放的|被过滤的)

(3)如果收到ICMP不可达错误(类型3,代号1、2、3、9、10或者13)该端口就会被标记为Filtered(被过滤的)。

这三种扫描的优势就在于能够躲过一些无状态防火墙和报文过滤路由器,甚至比SYN扫描还要隐蔽一些,但是也不能依赖它们,现代的IDS产品可以发现它们。

这三种扫描的不足之处就在于并不是所有的系统都严格遵循RFC793,许多系统(例如Microsoft Windows、Cisco、BSDI、IBM OS/400等)端口不管是开放还是关闭的都响应RST。这就会导致所有的端口都被标记为Closed(关闭的)。

不过这种扫描对大部分的UNIX操作系统都能很好的工作。再一个不足就是它们不能辨别Open端口和一些特定的Filtered端口,从而返回Open|Filtered。

-sA(TCP ACK扫描):这种扫描与前面几种扫描相比的区别在于它无法确定Open (开放的)或者Open|Filtered(开放的|被过滤的)端口。这个扫描的目的在于发现防火墙规则,确定它们是有状态的还是无状态的,哪些端口是被过滤的。

ACK扫描探测报文只设置ACK标志位。当扫描未被过滤的系统时,Open和Closed端口都会返回RST报文,Nmap把它们标记为Unfiltered(未被过滤的),意思是ACK报文不能到达,但是他们是Open还是Closed无法确定。不响应的端口或者发送特定的ICMP错误消息(类型3,代号1、2、3、9、10或者13)的端口,标记为Filtered。

-sW(TCP窗口扫描):这种扫描与ACK扫描的唯一却别在于它利用了特定系统的实现细节来区分端口是Open还是Closed,而不全是打印成Unfiltered。它通过检查返回到RST报文的TCP窗口域做到了这一点。在某些特定系统上,开放端口用正数表示窗口大小,关闭端口则用0表示窗口大小。因此,当收到RST时可以根据TCP窗口值是正数还是0分别把窗口状态标记为Open和Closed。

不过由于这个扫描基于特定系统的实现细节,所以也不能完全相信它。不支持它的系统通常返回所有端口都是Closed(不过一台机器所有端口都关闭也是有可能的)。如果大部分端口都是Closed,而一些常见端口(22、25、53)是Filtered,该系统就很可疑了。偶尔甚至会出现恰恰相反的行为,如果扫描显示1000个端口开放而只有3个端口是关闭的或者被过滤的,那么着三个端口很可能也是开放的端口。

以下几种扫描方式简单介绍,详细可以参考官方网站:

https://www.sodocs.net/doc/e92365794.html,/man/zh/man-port-scanning-techniques.html

-sM(TCP Maimon扫描):这个扫描技术除了探测报文采用FIN/ACK之外与Null、FIN、Xmas扫描完全一样。根据RFC793(TCP),无论端口是开放还是关闭的,都应该对这样的探测响应RST报文。但是Uriel Maimon注意到如果端口开放,许多基于BSD的系统只是丢弃该探测报文。

--scanflags(定制的TCP扫描):这是真正的Nmap高手使用的,他不受这些现成的扫描类型束缚,可以定义任意TCP标志位来设计自己的扫描。

-sI(Idel 扫描):这种高级扫描方法允许进行真正的TCP端口盲扫描。由于它不适用真是IP进行扫描,所以它是一种极端隐蔽的扫描方法。

-sO(IP协议扫描):用于确认目标机器支持那些IP协议(TCP、ICMP、IGMP等)。从技术上讲,这不是端口扫描。

-b(FTP弹跳扫描):通过FTP服务器做代理对其它目标主机进行扫描的技术。这是绕过防火墙的好方法。其实这算是服务器的一个弱点,当前大部分的服务器都被修补了,本弱点利用就困难了。不过倒是可以使用这个选项来判断服务器是否脆弱。

4、端口说明和扫描顺序

默认情况下,Nmap用指定的协议对端口1-1024以及namp-services文件中列出的更高的端口进行扫描。

-p(只扫描指定的端口):port range使用单个端口和用连字符表示的端口范围都可以。范围的开始/或者结束值都可以被忽略(表示取1和65535),所以可以指定-p从端口1扫描到65535。如果特别指定,也可以扫描端口0。对于IP协议扫描(-sO),该选项指定希望扫描的协议号(0-255)。

当既扫描TCP端口又扫描UDP端口时,可以通过在端口号上添加T:或者U:指定协议。这个协议指定符一直有效到下一个指定符。例如:-p U:53,111,137,T:21-25,80,139,8080将扫描UDP端口53、111、137,同时扫描列出的TCP端口。

注意:如果既扫描UDP又扫描TCP,必须指定-sU,以及至少一个TCP扫描类型(如:-sS、-sF或者-sT)。如果没有给定协议限制符,端口号会加到所有的协议列表。

-F(快速(有限的端口)扫描):在Nmap的nmap-services文件(对于-sO,是协议文件)中指定想要扫描的端口,这比扫描所有的65535个端口要快得多。因为这个列表包含如此多的TCP端口(1200多),这和默认的TCP扫描(约1600端口)速度差别不是很大,如果使用—datadir选项指定自己的小小的nmap-services 文件,则差别就会很惊人了。

-r(不要按随机顺序扫描端口):默认情况下,Nmap按随机顺序扫描端口(除了

处于效率的考虑部分端口前移)。这种随机化通常是不错的,但是我们可以指定-r来顺序端口扫描。

三、Nmap的拓展功能

——服务版本探测及操作系统探测

1、服务版本探测

把Nmap指向一个远程机器,它可能告诉您端口25/tcp,80/tcp,和53/udp 是开放的。使用nmap-services数据库(包含大约2,200个著名的服务),Nmap 可以报告那些端口可能分别对应于一个邮件服务器(SMTP),web服务器(HTTP),和域名服务器(DNS)。这种查询通常是正确的——事实上,绝大多数在TCP端口25监听的守护进程是邮件服务器。然而,我们不应该把赌注押在这上面! 人们完全可以在一些奇怪的端口上运行服务。

即使Nmap是对的,假设运行服务的确实是SMTP,HTTP和DNS,那也不是特别多的信息。当为您的公司或者客户作安全评估(或者甚至简单的网络明细清单)时,您确实想知道正在运行什么邮件和域名服务器以及它们的版本。有一个精确的版本号对了解服务器有什么漏洞有巨大帮助。版本探测可以帮您获得该信息。

在用某种其它类型的扫描方法发现TCP 和/或者UDP端口后,版本探测会询问这些端口,确定到底什么服务正在运行。nmap-service-probes 数据库包含查询不同服务的探测报文和解析识别响应的匹配表达式。Nmap试图确定服务协议(如ftp,ssh,telnet,http),应用程序名(如ISC Bind,Apache httpd,Solaris telnetd),版本号,主机名,设备类型(如打印机,路由器),操作系统家族(如Windows,Linux)以及其它的细节。当然,并非所有服务都提供所有这些信息。如果Nmap 被编译成支持OpenSSL,它将连接到SSL服务器,推测什么服务在加密层后面监听。当发现RPC服务时,Nmap RPC grinder (-sR)会自动被用于确定RPC程序和它的版本号。如果在扫描某个UDP端口后仍然无法确定该端口是开放的还是被过滤的,那么该端口状态就被标记为open|filtered。版本探测将试图从这些端口

引发一个响应(就像它对开放端口做的一样),如果成功,就把状态改为开放。open|filtered TCP端口用同样的方法对待。注意Nmap -A选项在其它情况下打开版本探测。详细可以探测:https://www.sodocs.net/doc/e92365794.html,/nmap/vscan/

用下列的选项打开和控制版本探测:

-sV(版本探测):打开版本探测,也可以用-A同时打开操作系统探测和版本探测。--allports(不为版本探测排除任何端口):默认情况下,Nmap版本探测会跳过9100 TCP端口,因为一些打印机简单地打印送到该端口的任何数据,这会导致数十页HTTP get请求、二进制SSL会话请求等被打印出来。这一行为可以通过修改或删除nmap-service-probes 中的Exclude指示符改变,您也可以不理会任何Exclude指示符,指定--allports扫描所有端口。

--version-intensity (设置版本扫描强度):当进行版本扫描(-sV)时,nmap发送一系列探测报文,每个报文都被赋予一个1到9之间的值。被赋予较低值的探测报文对大范围的常见服务有效,而被赋予较高值的报文一般没什么用。强度水平说明了应该使用哪些探测报文。数值越高,服务越有可能被正确识别。然而,高强度扫描花更多时间。强度值必须在0和9之间,默认是7。当探测报文通过nmap-service-probes ports指示符注册到目标端口时,无论什么强度水平,探测报文都会被尝试。这保证了DNS 探测将永远在任何开放的53端口尝试,SSL 探测将在443端口尝试等等。

--version-light (打开轻量级模式):这是--version-intensity 2的一个别名。这使得版本扫描快很多,但它识别服务的可能性也略微小一点。

--version-all (尝试每个探测):这是--version-intensity 9的一个别名。保证对每个端口尝试每个测试报文。

--version-trace((跟踪版本扫描活动):是会让Nmap打印出详细的关于正在运行的扫描的调试信息。它是使用—packet-trace所得到的信息的子集。

-sR(RPC扫描):这种方法和许多端口扫描方法联合使用。它对所有被发现开放的TCP/UDP端口执行SunRPC程序NULL命令,来试图确定它们是否RPC端口,如果是,是什么程序和版本号。这作为版本扫描(-sV)的一部分自动打开。由于版本探测包括它并且全面得多,-sR很少被用到。

2、操作系统探测

Nmap最著名的功能之一就是用TCP/IP协议栈fingerprinting进行远程操作系统探测。Nmap发送一系列TCP和UDP报文到远程主机,检查响应中的每一个比特。在进行一打测试(如TCP ISN采样,TCP选项支持和排序,IPID采样,初始窗口大小检查)之后,Nmap把结果和数据库nmap-os-fingerprints中超过1500个已知的操作系统的fingerprints进行比较,如果有匹配,就打印出操作系统的详细信息。每个fingerprint包括一个自由格式的关于OS的描述文本和一个分类信息,它提供供应商名称(如Sun)和其下的操作系统(如Solaris)、OS版本(如10)以及设备类型(通用设备,路由器,交换机,游戏控制台等)。

采用下列选项启用和控制操作系统检测:

-O(启用操作系统探测):也可以使用-A来同时启用操作系统和版本探测。

--osscan-limit(针对指定的目标进行操作系统检测):如果发现一个打开和关闭的TCP端口时,操作系统检测会更有效。采用这个选项,Nmap只对满足这个条件的主机进行操作系统检测,这样可以节约时间,特别在使用-P0扫描多个主机时。这个选项仅在使用-O或-A进行操作系统检测时起作用。

--osscan-guess; --fuzzy (推测操作系统检测结果):当Nmap无法确定所检测的操作系统时,会尽可能地提供最相近的匹配,Nmap默认进行这种匹配,使用上述任一个选项使得Nmap的推测更加有效。

3、其他选项

-6(启用IPv6扫描):ping扫描(TCP-only)、连接扫描以及版本检测都支持IPv6。除增加-6选项外,其它命令语法相同。

-A(激烈模式扫描):这个选项启用额外的高级和高强度选项,目前这个选项启用了操作系统探测(-O)和版本扫描(-sV)。目的是启用一个全面的扫描选项集合,不需要用户记忆大量的选项。这个选项仅仅启用功能,不包含可能用到的所需要的时间选项(如-T4)或细节选项。

--datadir (说明用户Nmap数据文件位置):

--send-eth (使用原以太网帧发送):

--send-ip (在原IP层发送):

--privileged (假定用户具有全部权限):

--interactive (在交互模式中启动):

-V;--version(打印版本信息):打印Nmap版本号并退出

-h;--help(打印帮助摘要):打印一个短的帮助屏幕,列出大部分常用的命令选项,这个功能与不带参数运行Nmap是相同的。

四、CLI模式(命令行界面)

——介绍Nmap的安装配置,验证

很多Nmap的老手都喜欢在CLI下直接跑nmap命令,所以根本就不去安装GUI界面(Zenmap),那么如果是这样的话我们应该如何安装呢?最常用的系统平台就是Windows和Unix/Linux,对于MAC OS等其他系统下的安装可以参考官网页面(https://www.sodocs.net/doc/e92365794.html,/download.html)

1、Windows下安装配置验证

a)下载最新的命令行压缩文件包(https://www.sodocs.net/doc/e92365794.html,/download.html)

nmap-5.61TEST1-win32.zip或者nmap-5.51-win32.zip

b)将zip压缩包解压到相应目录下(可以放置常用目录下,如D:\nmap)

c)因为Nmap的相关协议解析需要使用到winpcap和Visual C++运行是环境,

所以要先将该目录下的两个文件执行安装(winpcap-nmap-verNum.exe

和vcredist.exe)(默认安装即可)。

d)将该目录路径添加到环境变量中(建议添加到系统级环境变量中)

e)打开CMD(windows vista/7下建议使用管理员身份运行),输入nmap进

行验证。

2、Unix/Linux下安装验证

官网上提供的离线安装文件时rpm包格式(其他一些站点也提供deb包,

可以根据系统选择一下),不过如果在网速较好的情况下建议直接使用命令进行在线安装。

f)RPM包的安装方式

参考官网说明进行(https://www.sodocs.net/doc/e92365794.html,/download.html页面的Linux RPM

Source and Binaries节)

g)在线安装的方式(不能确保是最新版本的nmap),仅以Ubuntu平台为例,

其他unix-like系统类似

i.打开终端,执行sudo apt-get install nmap (根据提示输入超级用户

密码)

ii.根据提示进行即可(可能需要几次输入y进行确认)。

iii.待出现安装完成提示后,输入sudo nmap进行测试(sudo是由于nmap 部分功能需要使用到超级用户权限)。

3、Nmap的使用。

参考前面的扫描基础和扫描技术两部分。常用的一些扫描方法参考后续GUI 模式下的说明。

五、GUI模式(图形用户界面)/Zenmap

——介绍GUI界面方式下的Nmap使用方式(Zenmap安装使用)带有GUI的Zenmap使得新接触Nmap的用户更容易上手,同时也使得很多高级功能不用特别的记住复杂的配置选项。和nmap一样,Zenmap也支持各种主流操作系统平台。下面也仅针对Windows和Unix/Linux平台下的安装进行说明。

注意:默认安装Zenmap就包含了其运行的所有条件,所以不用提前安装nmap或者winpacap等。

1、Windows平台下的安装配置和验证

a)到nmap官网下载最新自安装版本,nmap-5.61TEST1-setup.exe或者

nmap-5.51-setup.exe

b)双击安装,除安装位置可以自选外,其他都可以采用默认设置。(安装中

可能会根据系统情况提示你安装winpcap、visual C++运行时环境,均答

复同意)

c)安装完毕后执行Zenmap可以进行测试验证。

2、Unix/Linux平台下的安装验证

以Ubuntu下的在线安装为例,离线RPM/DEB包的安装方式可以参考官网说明或者借助搜索引擎

a)打开终端,执行sudo apt-get install zenmap (根据提示输入超级用户密

码)

b)安装过程中可能需要根据提示输入y进行确认。

c)安装完毕后,在终端提示符下输入sudo zenmap执行(根据提示输入超

级用户密码)验证。

3、Zenmap的常用使用方法

a)Zenmap的预览及各区域简介

菜单栏区域:汇集Zenmap的各种功能的快捷连接.详细如下列图示

Scan菜单:

Tools菜单:

Profile菜单:

Help菜单:

快速扫描配置区域:用于日常扫描的快速配置

任务区域:任务列表(含主机和服务)

此处列出所执行的任务列表,通过此处对任务进行切换查看。底部的“Filter Hosts”单击可以出现筛选列表用于在繁多的任务列表中定位要关注的主机。

扫描结果输出区域:扫描结果显示区域,包含最常用到的扫描结果显示(Nmap Output)、扫描的端口和主机(Ports/Hosts)、扫描主机拓扑(Topology)、扫描主机的详细信息(Host Details)以及扫描命令的详细说明(Scans)

b)简单扫描流程

方法一:填写扫描目标→选择扫描预配置类型→根据需要修改扫描详细

命令→执行扫描

方法二:直接在命令文本框中输入扫描命令,执行扫描

c)进阶扫描流程

如果希望自己自定义的扫描可以重复利用,那么需要将自己编写的扫描指令存储为预配置,其自然就会出现在预配置下拉列表中,后续就可以很方便的使用了。当然也可以对系统自带的预配置项进行修改以更适应自己的需要。下面说明一下预配置制作的方法。

创建自己的预配置项:[Profile]→[New Profile or Command]打开Profile编辑器,后续就可以在该编辑器中创建预配置项,此处将主要的几个TAB配置也作简要说明,其他可参考选项右侧的说明。

配置过程中可以在顶部的命令栏中看到详细的指令内容,等所有选项配置完毕后,点击右下角的保存按钮[Save Changes]即可。然后就可以在预配置下拉列表中看到自定义的预配置项。

修改已有的预配置项:在Profile下拉列表中选择待修改的选项,然后点击[Profile]→[Edit Selected Command],剩下的就和新建没有啥区别了。

nmap语法

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 扫描类型 -sT TCP connect()扫描:这是最基本的TCP扫描方式。connect()是一种系统调用,由操作系统提供,用来打开一个连接。如果目标端口有程序监听,connect()就会成功返回,否则这个端口是不可达的。这项技术最大的优点是,你勿需root权限。任何UNIX用户都可以自由使用这个系统调用。这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息。 -sS TCP同步扫描(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无效。不过,从另外的角度讲,可以使用这种方式来分别两种不同的平台。如果使用这种扫描方式可以发现打开的端口,你就可以确定目标注意

自己搜集总结的nmap常用命令及参数说明

nmap BT5(BackTrack--Information Gathering--Network Analysis--Network Scanners-nmap) -sP渗透内网之后判断当前网络那些主机在线 nmap-sP192.168.1/255 -vv现实详细的扫描过程 -sS使用SYN半开式扫描,这种扫描方式使得扫描结果更加正确(又称半开放,或 隐身扫描) nmap-vv-sS IP -O大写O代表OS判断主机操作系统 nmap-O IP 延时策略 -T(0-5)默认为3 0即Paranoid模式。为了避开IDS的检测使扫描速度极慢,nmap串所有的扫描, 每隔至少5分钟发送一个包 1即Sneaky模式。也差不多,只是数据包的发送间隔是15秒 2即Polite模式。不增加太大的网络负载,串行每个探测,并使每个探测间隔 0.4秒 3即Normal模式。nmap的默认选项,在不使网络过载或者主机/端口丢失的情况 下尽可能快速地扫描 4即Aggressive模式。设置5分钟的超时限制,对每台主机的扫描时间不超过5分 钟,并且对每次探测回应的等待时间不超过1.5秒。 5即lnsane模式。只适合快速的网络或者不在意丢失默些信息,每台主机的超时 限制为75秒,对每次探测只等待0.3秒。 nmap-sS-T1IP

-sV探测端口的服务类型/具体版本等信息 nmap-vv-sV IP -p端口号对某个端口的服务版本进行详细探测有助于升入的针对性攻击, 比如缓冲溢出攻击 nmap-vv-sV IP-p21 适用于内外网的探测,以内网操作为示例(外网参数同) 简单端口扫描:nmap-vv-sT(sS、sF、sU、sA)192.168.0.1-D127.0.0.1 (-D伪造的地址) OS检测:nmap-vv-sS-O192.168.0.1 RPC鉴别:nmap-sS-sR192.168.0.1Linux上的portmap就是一个简单的RPC服务,监听端口为111(默认) Ping扫射:nmap-sP172.16.15.0/24 1)获取远程主机的系统类型及开放端口 Get info about remote host ports and OS detection nmap-sS-P0-sV-O 这里的可以是单一IP,或主机名,或域名,或子网 -sS TCP SYN扫描(又称半开放,或隐身扫描) -P0允许你关闭ICMP pings. -sV打开系统版本检测 -O尝试识别远程操作系统

nmap命令详解

nmap是一个网络探测和安全扫描程序,系统管理者和个人可以使用这个软件扫描大型的网络,获取那台主机正在运行以及提供什么服务等信息。nmap支持很多扫描技术,例如:UDP、TCP connect()、TCP SYN(半开扫描)、ftp代理(bounce攻击)、反向标志、ICMP、FIN、ACK扫描、圣诞树(Xmas Tree)、SYN扫描和null扫描。从扫描类型一节可以得到细节。nmap还提供了一些高级的特征,例如:通过TCP/IP协议栈特征探测操作系统类型,秘密扫描,动态延时和重传计算,并行扫描,通过并行ping扫描探测关闭的主机,诱饵扫描,避开端口过滤检测,直接RPC扫描(无须端口影射),碎片扫描,以及灵活的目标和端口设定. -------------------------------------------------------------------------------- 1.名称 nmap-网络探测和安全扫描工具 2.语法 nmap [Scan Type(s)] [Options] 3.描述 nmap是一个网络探测和安全扫描程序,系统管理者和个人可以使用这个软件扫描大型的网络,获取那台主机正在运行以及提供什么服务等信息。nmap支持很多扫描技术,例如:UDP、TCP connect()、TCP SYN(半开扫描)、ftp代理(bounce攻击)、反向标志、ICMP、FIN、ACK扫描、圣诞树(Xmas Tree)、SYN扫描和null扫描。从扫描类型一节可以得到细节。nmap还提供了一些高级的特征,例如:通过TCP/IP协议栈特征探测操作系统类型,秘密扫描,动态延时和重传计算,并行扫描,通过并行ping扫描探测关闭的主机,诱饵扫描,避开端口过滤检测,直接RPC扫描(无须端口影射),碎片扫描,以及灵活的目标和端口设定。 为了提高nmap在non-root状态下的性能,软件的设计者付出了很大的努力。很不幸,一些内核界面(例如raw socket)需要在root状态下使用。所以应该尽可能在root使用nmap。 nmap运行通常会得到被扫描主机端口的列表。nmap总会给出well known端口的服务名(如果可能)、端口号、状态和协议等信息。每个端口的状态有:open、filtered、unfiltered。open状态意味着目标主机能够在这个端口使用accept()系统调用接受连接。filtered状态表示:防火墙、包过滤和其它的网络安全软件掩盖了这个端口,禁止nmap探测其是否打开。unfiltered表示:这个端口关闭,并且没有防火墙/包过滤软件来隔离nmap的探测企图。通常情况下,端口的状态基本都是unfiltered状态,只有在大多数被扫描的端口处于filtered

端口扫描工具nmap使用实验

我们可以使用ping扫描的方法(-sP),与fping的工作方式比较相似,它发送icmp回送请求到指定范围的ip地址并等待响应。现在很多主机在扫描的时候都做了处理,阻塞icmp 请求,这种情况下。nmap将尝试与主机的端口80进行连接,如果可以接收到响应(可以是

syn/ack,也可以是rst),那么证明主机正在运行,反之,则无法判断主机是否开机或者是否在网络上互连。 扫描tcp端口 这里-sR是怎样在打开的端口上利用RPC命令来判断它们是否运行了RPC服务。 nmap可以在进行端口扫描的tcp报文来做一些秘密的事情。首先,要有一个SYN扫描(-sS),它只做建立TCP连接的前面一些工作,只发送一个设置SYN标志的TCP报文,一个RESET报文,那么nmap假设这个端口是关闭的,那么就不做任何事情了。如果接收到一个响应,它并不象正常的连接一样对这个报文进行确认,而是发送一个RET报文,TCP的三次握手还没有完成,许多服务将不会记录这次连接。 有的时候,nmap会告诉我们端口被过滤,这意味着有防火墙或端口过滤器干扰了nmap,使其不能准确的判断端口是打开还是关闭的,有的防火墙只能过滤掉进入的连接。 扫描协议 如果试图访问另一端无程序使用的UDP端口,主机将发回一个icmp“端口不可达”的提示消息,IP协议也是一样。每个传输层的IP协议都有一个相关联的编号,使用最多的是ICMP(1)、TCP(6)和UDP(17)。所有的IP报文都有一个“协议”域用于指出其中的传输层报文头所使用的协议。如果我们发送一个没有传输层报文头的原始IP报文并把其协议域编号为130[该编号是指类似IPSEC协议的被称为安全报文外壳或SPS协议],就可以判断这个协议是否在主机上实现了。如果我们得到的是ICMP协议不可达的消息,意味着该协议没有被实现,否则就是已经实现了,用法为-sO. 隐蔽扫描行为 nmap给出了几个不同的扫描选项,其中一些可以配套着隐藏扫描行为,使得不被系统日志、防火墙和IDS检测到。提供了一些随机的和欺骗的特性。具体例子如下: FTP反弹,在设计上,FTP自身存在一个很大的漏洞,当使用FTP客户机连接到FTP 服务器时,你的客户机在TCP端口21上与FTP服务器对话,这个TCP连接称为控制连接。FTP服务器现在需要另一条与客户机连接,该连接称为数据连接,在这条连接上将传送实际的文件数据,客户机将开始监听另一个TCP端口上从服务器发挥的数据连接,接下来执行一个PORT命令到服务器,告诉它建立一条数据连接到客户机的IP地址和一个新打开的端口,这种操作方法称为主动传输。许多客户机使用网络地址转换或通过防火墙与外界连接,所以主动传输FTP就不能正常工作,因为由服务器建立的客户机的连接通常不允许通过。 被动传输是大多数FTP客户机和服务器所使用的方法,因为客户机既建立控制连接又建立数据连接,这样可以通过防火墙或NAT了。

Nmap实验报告

本文档如对你有帮助,请帮忙下载支持! 网络扫描软件Nmap的应用 在网络攻击时,攻击者往往会使用网络和端口扫描软件对目标主机进行扫描,发现漏洞,为后续攻击做准备。本实验使用网络扫描软件Nmap对北邮官网1.隐藏扫描(Stealth Scanning) -sS为TCP同步扫描,原理是源主机发送一个TCP同步包(SYN),然后等待目的主机的回应。如果对方返回SYN|ACK包,就表示该目标端口打开。Wireshark抓包可以看出在扫描过程中,源主机(10.8.70.224)向目标主机(10.3.9.254)最可能打开的1000个端口发送了TCP同步包,其中只有80端口和3306端口返回了SYN|ACK包,说明目标主机开放了这两个端口。从Nmap扫描结果可以看出80端口提供的是http服务,3306提供的是mysql服务。 2.端口扫描(port scanning) -sT扫描是调用系统函数connect()用来打开一个链接,所以耗时要比-sS要多。RTTVAR(往返延时变量)很大,应该网络拥塞引起的。从wireshark抓包看出 源主机与目的主机之间建立了完全的TCP链接,探测到端口开放后立即发送RST 断开链接。 3.UDP扫描(UDP Scanning) UDP扫描是向目标主机的每个端口发送一个0字节的UDP包,如果收到端口不可到达的ICMP消息,端口就是关闭的。如wireshark抓包所示 源主机向目标机的1031端口发送了一个0字节的UDP包。 端口1031收到了ICMP消息,说明端口是关闭的。 端口123开启的是ntp服务。值得注意的是,此时发送的并不是0字节的UDP 包,而是内容为ntp的总长为224bit的UDP包。 4.Ping扫描(Ping Sweeping) 对源主机所在网段(,Nmap是通过发送ARP包来询问IP地址上的主机是否活动的,如果收到ARP回复包,那么说明该主机在线。如wireshark抓包所示 源主机广播所扫描网段的ARP请求,没有回复的主机均视为没有在线。 ,说明 、 5.TCP ACK扫描 TCP ACK扫描是向目标机的端口发送ACK包,如果返回一个RST包,则这个端口就视为unfiltered状态。如wireshark抓包所示 如90端口收到了RET包,说明这个端口处于unfiltered状态。 6.操作系统类型扫描 从扫描结果可以得到目标主机的详细信息。目标主机的操作系统为AVM FRITZ!Box WLAN7240WAP。 7.Traceroute路由跟踪扫描 使用-traceroute可以得到本机到目标主机之间的拓扑结构和路由信息。从Nmap结果可以看出,本地主机到10.3.9.254一共要经过4跳才能到达。拓扑图如下 再对校内的图书馆,教务处,论坛进行扫描后可以得到学校的网络拓扑图 对百度进行扫描后得到校园网到外网的拓扑图

网络安全实验---NMAP扫描

一、实验目的和要求 了解信息搜集的一般步骤 学会熟练使用ping命令 学会利用Nmap等工具进行信息搜集 二、实验内容和原理 1.信息搜集的步骤 攻击者搜集目标信息一般采用七个基本的步骤: (1)找到初始信息,比如一个IP地址或者一个域名; (2)找到网络地址范围,或者子网掩码; (3)找到活动机器; (4)找到开放端口和入口点; (5)弄清操作系统; (6)弄清每个端口运行的是哪种服务; (7)画出网络结构图。 2.ping命令探测技巧 使用ping可以测试目标主机名称和IP地址,验证与远程主机的连通性,通过将ICMP 回显请求数据包发送到目标主机,并监听来自目标主机的回显应答数据包来验证与一台或多台远程主机的连通性,该命令只有在安装了TCP/IP协议后才可以使用。 ping命令格式:ping [选项] 目标主机。常用选项见表19-1-1。 表19-1-1 ping命令常用选项

生存时间(TTL):指定数据报被路由器丢弃之前允许通过的网段数量。TTL是由发送主机设置的,以防止数据包在网络中循环路由。转发IP数据包时,要求路由器至少将TTL 减小1。 TTL字段值可以帮助我们猜测操作系统类型,如表19-1-2所示。 表19-1-2 各操作系统ICMP回显应答TTL对照 3.Nmap介绍 nmap是一个网络探测和安全扫描程序,系统管理者和个人可以使用这个软件扫描大型的网络,获取哪台主机正在运行以及提供什么服务等信息。nmap支持很多扫描技术,例如:UDP、TCP connect()、TCP SYN(半开扫描)、ftp代理(bounce攻击)、反向标志、ICMP、FIN、ACK扫描、圣诞树(Xmas Tree)、SYN扫描和null扫描。nmap还提供了一些高级的特征,例如:通过TCP/IP协议栈特征探测操作系统类型,秘密扫描,动态延时和重传计算,并行扫描,通过并行ping扫描探测关闭的主机,诱饵扫描,避开端口过滤检测,直接RPC扫描(无须端口映射),碎片扫描,以及灵活的目标和端口设定。 nmap运行通常会得到被扫描主机端口的列表。nmap总会给出well known端口的服务名(如果可能)、端口号、状态和协议等信息。每个端口的状态有:open、filtered、unfiltered。open状态意味着目标主机能够在这个端口使用accept()系统调用接受连接。filtered状态表示:防火墙、包过滤和其它的网络安全软件掩盖了这个端口,禁止nmap探测其是否打开。unfiltered表示:这个端口关闭,并且没有防火墙/包过滤软件来隔离nmap的探测企图。通常情况下,端口的状态基本都是unfiltered状态,只有在大多数被扫描的端口处于filtered状态下,才会显示处于unfiltered状态的端口。 根据使用的功能选项,nmap也可以报告远程主机的下列特征:使用的操作系统、TCP

Nmap扫描原理与用法

[+] Nmap扫描原理与用法 2012年6月16日 1Nmap介绍 Nmap基本命令和典型用法 ?全面进攻性扫描(包括各种主机发现、端口扫描、版本扫描、OS扫描及默认脚本扫描): nmap -A -v targetip ?Ping扫描: nmap -sn -v targetip ?快速端口扫描: nmap -F -v targetip ?版本扫描: nmap -sV -v targetip ?操作系统扫描: nmap -O -v targetip 2

Nmap扫描原理与用法PDF:下载地址 Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具。软件名字Nmap是Network Mapper的简称。Nmap最初是由Fyodor在1997年开始创建的。随后在开源社区众多的志愿者参与下,该工具逐渐成为最为流行安全必备工具之一。最新版的Nmap6.0在2012年5月21日发布,详情请参见:https://www.sodocs.net/doc/e92365794.html,。 一般情况下,Nmap用于列举网络主机清单、管理服务升级调度、监控主机或服务运行状况。Nmap 可以检测目标机是否在线、端口开放情况、侦测运行的服务类型及版本信息、侦测操作系统与设备类型等信息。 Nmap的优点: 1. 灵活。支持数十种不同的扫描方式,支持多种目标对象的扫描。 2. 强大。Nmap可以用于扫描互联网上大规模的计算机。 3. 可移植。支持主流操作系统:Windows/Linux/Unix/MacOS等等;源码开放,方便移植。 4. 简单。提供默认的操作能覆盖大部分功能,基本端口扫描nmap targetip,全面的扫描nmap –A targetip。 5. 自由。Nmap作为开源软件,在GPL License的范围内可以自由的使用。 6. 文档丰富。Nmap官网提供了详细的文档描述。Nmap作者及其他安全专家编写了多部Nmap 参考书籍。 7. 社区支持。Nmap背后有强大的社区团队支持。 8. 赞誉有加。获得很多的奖励,并在很多影视作品中出现(如黑客帝国2、Die Hard4等)。 9. 流行。目前Nmap已经被成千上万的安全专家列为必备的工具之一。 1.1 Zenmap

Nmap实验报告

网络扫描软件Nmap的应用 在网络攻击时,攻击者往往会使用网络和端口扫描软件对目标主机进行扫描,发现漏洞,为后续攻击做准备。本实验使用网络扫描软件Nmap对北邮官网https://www.sodocs.net/doc/e92365794.html,(IP地址:10.3.9.254)进行多类型的主机和端口扫描并进行分析。 1.隐藏扫描(Stealth Scanning) -sS为TCP同步扫描,原理是源主机发送一个TCP同步包(SYN),然后等待目的主机的回应。如果对方返回SYN|ACK包,就表示该目标端口打开。Wireshark抓包可以看出 在扫描过程中,源主机(10.8.70.224)向目标主机(10.3.9.254)最可能打开的1000个端口发送了TCP同步包,其中只有80端口和3306端口返回了SYN|ACK包,说明目标主机开放了这两个端口。从Nmap扫描结果可以看出80端口提供的是http服务,3306提供的是mysql服务。

2.端口扫描(port scanning) -sT扫描是调用系统函数connect()用来打开一个链接,所以耗时要比-sS要多。RTTVAR(往返延时变量)很大,应该网络拥塞引起的。从wireshark抓包看出 源主机与目的主机之间建立了完全的TCP链接,探测到端口开放后立即发送RST 断开链接。

口不可到达的ICMP消息,端口就是关闭的。如wireshark抓包所示 源主机向目标机的1031端口发送了一个0字节的UDP包。 端口1031收到了ICMP消息,说明端口是关闭的。 包,而是内容为ntp的总长为224bit的UDP包。

对源主机所在网段(10.8.64.0/19)的主机进行Ping扫描。在局域网内,Nmap是通过发送ARP包来询问IP地址上的主机是否活动的,如果收到ARP 回复包,那么说明该主机在线。如wireshark抓包所示

nmap 使用介绍

nmap 使用介绍 nmap是目前为止最广为使用的国外端口扫描工具之一。我们可以从 https://www.sodocs.net/doc/e92365794.html,/进行下载,可以很容易的安装到Windows和unix操作系统中,包括mac os x(通过configure、make 、make install等命令)也可以直接从http: //https://www.sodocs.net/doc/e92365794.html,/下载windows二进制(包括所需要的winpcap)也可以从http: //https://www.sodocs.net/doc/e92365794.html,/获得nmap的图形windows。 扫描主机

我们可以使用ping扫描的方法(-sP),与fping的工作方式比较相似,它发送icmp回送请求到指定范围的ip地址并等待响应。现在很多主机在扫描的时候都做了处理,阻塞icmp请求,这种情况下。nmap将尝试与主机的端口80进行连接,如果可以接收到响应(可以是 syn/ack,也可以是rst),那么证明主机正在运行,反之,则无法判断主机是否开机或者是否在网络上互连。 扫描tcp端口 这里-sR是怎样在打开的端口上利用RPC命令来判断它们是否运行了RPC服务。 nmap可以在进行端口扫描的tcp报文来做一些秘密的事情。首先,要有一个SYN扫描(-sS),它只做建立TCP连接的前面一些工作,只发送一个设置SYN标志的TCP报文,一个RESET报文,那么nmap假设这个端口是关闭的,那么就不做任何事情了。如果接收到一个响应,它并不象正常的连接一样对这个报文进行确认,而是发送一个RET报文,TCP的三次握手还没有完成,许多服务将不会记录这次连接。 有的时候,nmap会告诉我们端口被过滤,这意味着有防火墙或端口过滤器干扰了nmap,使其不能准确的判断端口是打开还是关闭的,有的防火墙只能过滤掉进入的连接。 扫描协议 如果试图访问另一端无程序使用的UDP端口,主机将发回一个icmp“端口不可达”的提示消息,IP协议也是一样。每个传输层的IP协议都有一个相关联的编号,使用最多的是ICMP(1)、TCP(6)和UDP(17)。所有的IP报文都有一个“协议”域用于指出其中的传输层报文头所使用的协议。如果我们发送一个没有传输层报文头的原始IP报文并把其协议域编号为130[该编号是指类似IPSEC协议的被称为安全报文外壳或SPS协议],就可以判断这个协议是否在主机上实现了。如果我们得到的是ICMP协议不可达的消息,意味着该协议没有被实现,否则就是已经实现了,用法为-sO. 隐蔽扫描行为 nmap给出了几个不同的扫描选项,其中一些可以配套着隐藏扫描行为,使得不被系统日志、防火墙和IDS检测到。提供了一些随机的和欺骗的特性。具体例子如下: FTP反弹,在设计上,FTP自身存在一个很大的漏洞,当使用FTP客户机连接到FTP服务器时,你的客户机在TCP端口21上与FTP服务器对话,这个TCP连接称为控制连接。FTP服务器现在需要另一条与客户机连接,该连接称为数据连接,在这条连接上将传送实际的文件数据,

nmap常用命令

十条常用nmap命令行格式 1)获取远程主机的系统类型及开放端口 Get info about remote host ports and OS detection nmap -sS -P0 -sV -O 这里的 < target > 可以是单一 IP, 或主机名,或域名,或子网 -sS TCP SYN 扫描 (又称半开放,或隐身扫描) -P0 允许你关闭 ICMP pings. -sV 打开系统版本检测 -O 尝试识别远程操作系统 -sS TCP SYN scanning (also known as half-open, or stealth scanning) -P0 option allows you to switch off ICMP pings. -sV option enables version detection -O flag attempt to identify the remote operating system Other option: -A 同时启用操作系统指纹识别和版本检测 -A option enables both OS fingerprinting and version detection -v use -v twice for more verbosity. nmap -sS -P0 -A -v < target > 2)列出开放了指定端口的主机列表 Get list of servers with a specific port open nmap -sT -p 80 -oG – 192.168.1.* | grep open Change the -p argument for the port numb er. See “man nmap” for different ways to specify address ranges. 3)在网络寻找所有在线主机 4) Find all active IP addresses in a network nmap -sP 192.168.0.* 或者也可用以下命令: nmap -sP 192.168.0.0/24 指定 subnet 4)Ping 指定范围内的 IP 地址 Ping a range of IP addresses nmap -sP 192.168.1.100-254 nmap accepts a wide variety of addressing notation, multiple targets/ranges, etc. 5)在某段子网上查找未占用的 IP Find unused IPs on a given subnet nmap -T4 -sP 192.168.2.0/24 && egrep "00:00:00:00:00:00" /proc/net/arp

图解NMAP用法

《Network Security Technology》 Lecture Code: 011184 Experiment Guideline Experiment Title:使用NMAP进行网络扫描 KeyWords:NMAP,Scan,Vulnerability Lecturer:Dong Wang Time:Week 01 Location:Training Building 401 Teaching Audience:09Net1&2 Aug29, 2011

User Guidance 1.该配置文档系《网络安全技术》实训课所属内容。 2.在试验开始前,请参看‘Self-checking list for VM Environment’,逐 一检查自己电脑(虚拟机)配置,制作还原快照。 3.学生不应该以抓图为唯一目的使用该文档,对文档所涉及到的各相 关操作和问题需逐一思考解答并举一反三。 4.实验结果的抓图应当在没有文档和外界帮助下独立完成。 5.如学生不能在本节课上规定时间内完成文档介绍的配置任务时应当 在课后尽快补交试验报告。 6.该文档的最终解释权归授课教师王东所有,如有疑问请在课上当面 询问或课后与任课老师联络释疑。

Self-checking list for VM Environment 1.VM_2k3-1:安装1块网卡:NAT;VM_XP:安装1块网卡NAT; 2.开机运行VM_2K3-1 & VM_XP,2台机的应当位于同一网段且能够相 互Ping通; 3.将2k3-1(2)计算机命名为‘学号_姓名缩写_2K3-1(2)’,将XP命名为 ‘学号_姓名缩写_XP’,重命名之后重启。 4.确保已用管理员账户登录2k3-1和XP并具有管理员权限。 5.确保VMware Tools和Backinfo插件已正确安装。 6.用虚拟机的snapshot拍快照,制作还原点。 注:以上检查列表中逐条只是试验前的预检查,试验中的具体设置应当根据情况具体对待。

北极熊扫描器使用手册

北极熊扫描器使用 手册

北极熊扫描器使用手册

目录 一、简介 (3) 二、功能介绍 (3) 1、网站爬虫...................................................... 错误!未定义书签。 2、列举同IP域名............................................. 错误!未定义书签。 3、列举二级域名 .............................................. 错误!未定义书签。 4、快速探测信息 (4) 5、网段扫描...................................................... 错误!未定义书签。 6、目录扫描 (6) 7、EXP漏洞扫描 (7) 8、代码审计 (8) 9、后台测试 (9) 10、域名侦查 (10) 11、计划任务 (11) 三、使用操作....................................................................... 11-12 1、分类关键字的设定 (12) 2、安全模块 (13) 3、邮箱设置 (13) 4、线程设定 (14) 5、字典设定 (15) 四、操作案例 (15) 1、后台目录扫描............................................................. 15-16

2、后台登录密码破解 ....................................... 错误!未定义书签。 3、本地搜索功能操作 ..................................................... 19-20 4、数据中心添加操作 ..................................................... 20-22 五、软件信息 (23) 1、里程碑 (23) 2、下载地址 (24)

Nmap扫描实验

附件2 贵州大学实验报告 学院:计算机科学与技术专业:网络工程班级:131 姓名学号实验组 实验时间指导教师成绩 实验项目名称网络扫描实验 实验目的 网络与系统调查阶段的网络扫描、网络拓扑探测是信息收集的主要手段,本次试验主要内容是掌握网络扫描技术的作用,网络扫描技术是为使系统管理员能够及时了解系统中存在的安全漏洞,并采取相应防范措施,从而降低系统的安全风险。可以对局域网络、Web站点、主机操作系统、系统服务以及防火墙系统等的安全漏洞进行扫描,系统管理员可以了解在运行的网络系统中存在的不安全的网络服务,在操作系统上存在的可能被利用从而导致攻击的安全漏洞。通过实验掌握网络扫描的主要功能,掌握主流的网络扫描技术。 实 验 环 境 根据本实验的特点,采用以学生自主训练为主的开放模式组织教学。 实验内容1.通过实验掌握网络扫描技术的原理。 2.通过实验掌握网络扫描的主要功能。 3.熟悉使用主流的网络扫描工具Nmap以及会对结果进行分析和利用。 4.掌握Nmap中的各参数的含义以及所对应的扫描类型。

实验数据1.请使用Nmap对你的实验机器所在的网段的所有主机进行ping扫描(ping scan);请 排除自己的实验机器;请检测有多少主机在线。 命令是nmap –sn 192.168.2.* 如图: 由图可知,本网段内有43台主机,除掉自己的主机,有42台主机 2.请使用Nmap对局域网内的某台存活的主机进行Xmas scans隐蔽扫描和UDP扫描。 对本网段的113号主机进行Xmas scans隐蔽扫描和UDP扫描 隐蔽扫描如图:

由图可知:用时39.89秒 UDP扫描如图: 由图可知:用时35.31秒 3.nmap -v https://www.sodocs.net/doc/e92365794.html,扫描与nmap -vv https://www.sodocs.net/doc/e92365794.html,扫描的区别是什么? Nmap –v https://www.sodocs.net/doc/e92365794.html,

NMAP速查手册

1常用命令 1.1简单示例 使用ping检测10.0.0.0/24这个网段 1nmap -sP 10.0.0.0/24 使用SYN的方法对全端口进行扫描,在aggressive(4)的时间模板下,同时对开放的端口进行端口识别 1nmap -p1-65535 -sV -sS -T4 target PS: -T代表的是扫描的时候,一些控制选项(TCP的延迟时间,探测报文之间的间隔等)的集合,具体的man nmap一下就知道了使用SYN扫描,在aggressive(4)的时间模板下,探测操作系统的类型和版本,还有显示traceroute的结果,结果输出较为详细 1nmap -v-sS -A -T4 target 使用SYN扫描,在insane(5)的时间模板下,探测操作系统的类型和版本,还有显示traceroute的结果,结果输出较为详细 1nmap -v-sS -A -T5 target

使用SYN扫描,在insane(5)的时间模板下,探测操作系统的类型,还有显示traceroute的结果,操作系统的类型,结果输出较为详细 1nmap -v-sV -O -sS -T5 target 使用SYN的方法对全端口进行扫描,同时对开放的端口进行端口识别,在aggressive(4)的时间模板下,探测操作系统的类型还有显示traceroute的结果,结果输出较为详细 1nmap -v-p 1-65535 -sV -O -sS -T4 target 用SYN的方法对全端口进行扫描,同时对开放的端口进行端口识别,在insane(5)的时间模板下,探测操作系统的类型,还有显示traceroute的结果,结果输出较为详细 1nmap -v-p 1-65535 -sV -O -sS -T5 target 从文件中读取需要扫描的IP列表 1nmap -iL ip-address.txt 1.2Nmap输出格式 扫描的结果输出到屏幕,同时会存储一份到grep-output.txt 1nmap -sV -p 139,445 -oG grep-output.txt 10.0.1.0/24

nmap命令使用详细说明

nmap命令使用详解 [Ping扫描(Ping Sweeping)] [端口扫描(Port Scanning)] [隐蔽扫描(Stealth Scanning)] [UDP扫描(UDP Scanning)] [操作系统识别(OS Fingerprinting)] [Ident扫描(Ident Scanning)] [选项(Options)] 简介: 黑客想要入侵一台电脑,首先要有一套完整的计划。在入侵系统之前,黑客必须先找到一台目标主机,并查出哪些端口在监听之后才能进行入侵。 找出网络上的主机,测试哪些端口在监听,这些工作通常是由扫描来实现的。扫描网络是黑客进行入侵的第一步。通过使用扫描器(如Nmap)扫描网络,寻找存在漏洞的目标主机。一旦发现了有漏洞的目标,接下来就是对监听端口的扫描。Nmap通过使用TCP协议栈指纹准确地判断出被扫主机的操作系统类型。 本文全方位地介绍Nmap的使用方法,可以让安全管理员了解在黑客眼中的站点。并通过使用它,安全管理员可以发现自己网站的漏洞,并逐步完善自己的系统。 Nmap 是在免费软件基金会的GNU General Public License (GPL)下发布的,可从https://www.sodocs.net/doc/e92365794.html,/nmap站点上免费下载。下载格式可以是tgz格式的源码或RPM格式。目前较稳定的版本是2.12。带有图形终端,本文集中讨论Nmap命令的使用。Nmap的语法相当简单。Nmap的不同选项和-s标志组成了不同的扫描类型,比如:一个Ping-scan命令就是"-sP"。在确定了目标主机和网络之后,即可进行扫描。如果以root来运行Nmap,Nmap的功能会大大的增强,因为超级用户可以创建便于Nmap利用的定制数据包。 在目标机上,Nmap运行灵活。使用Nmap进行单机扫描或是整个网络的扫描很简单,只要将带有"/mask"的目标地址指定给Nmap即可。地址是"victim/24",则目标是c类网络,地址是"victim/16",则目标是B类网络。 另外,Nmap允许你使用各类指定的网络地址,比如192.168.7.*,是指192.168.7.0/24, 或192.168.7.1,4,8-12,对所选子网下的主机进行扫描。 Ping扫描(Ping Sweeping) 入侵者使用Nmap扫描整个网络寻找目标。通过使用" -sP"命令,进行ping扫描。缺省情况下,Nmap给每个扫描到的主机发送一个ICMP echo和一个TCP ACK, 主机对任何一种的响应都会被Nmap得到。 举例:扫描192.168.7.0网络: # nmap -sP 192.168.7.0/24 Starting nmap V. 2.12 by Fyodor (fyodor@https://www.sodocs.net/doc/e92365794.html,, https://www.sodocs.net/doc/e92365794.html,/nmap/) Host (192.168.7.11) appears to be up. Host (192.168.7.12) appears to be up. Host (192.168.7.76) appears to be up.

渗透测试工具Nmap从初级到高级

渗透测试工具Nmap从初级到高级 Nmap是一款网络扫描和主机检测的非常有用的工具。 Nmap是不局 限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全 扫描器。它可以适用于winodws,linux,mac等操作系统。Nmap是一款非常强大的实用工具,可用于: 检测活在网络上的主机(主机发现) 检测主机上开放的端口(端口发现或枚举) 检测到相应的端口(服务发现)的软件和版本 检测操作系统,硬件地址,以及软件版本 检测脆弱性的漏洞(Nmap的脚本) Nmap是一个非常普遍的工具,它有命令行界面和图形用户界面。本 人包括以下方面的内容: 介绍Nmap 扫描中的重要参数 操作系统检测 Nmap使用教程 Nmap使用不同的技术来执行扫描,包括:TCP的connect()扫描,TCP反向的ident扫描,FTP反弹扫描等。所有这些扫描的类型有自 己的优点和缺点,我们接下来将讨论这些问题。

Nmap的使用取决于目标主机,因为有一个简单的(基本)扫描和预先扫描之间的差异。我们需要使用一些先进的技术来绕过防火墙和入侵检测/防御系统,以获得正确的结果。下面是一些基本的命令和它们的用法的例子: 扫描单一的一个主机,命令如下: #nmap https://www.sodocs.net/doc/e92365794.html, #nmap 192.168.1.2 扫描整个子网,命令如下: #nmap 192.168.1.1/24 扫描多个目标,命令如下: #nmap 192.168.1.2 192.168.1.5 扫描一个范围内的目标,如下: #nmap 192.168.1.1-100 (扫描IP地址为192.168.1.1-192.168.1.100内的所有主机) 如果你有一个ip地址列表,将这个保存为一个txt文件,和namp在同一目录下,扫描这个txt内的所有主机,命令如下: #nmap -iL target.txt 如果你想看到你扫描的所有主机的列表,用以下命令: #nmap -sL 192.168.1.1/24 扫描除过某一个ip外的所有子网主机,命令: #nmap 192.168.1.1/24 -exclude 192.168.1.1

Nmap参考指南(官方文档)

Nmap参考指南 描述 译注 选项概要 目标说明 主机发现 端口扫描基础 端口扫描技术 端口说明和扫描顺序 服务和版本探测 操作系统探测 时间和性能 防火墙/IDS躲避和哄骗 输出 其它选项 运行时的交互 实例 Bugs 作者 法律事项(版权、许可证、担保(缺)、出口限制) Unofficial Translation Disclaimer/非官方翻译声明 Name nmap —网络探测工具和安全/端口扫描器 Synopsis nmap [ <扫描类型> ...] [ <选项> ] { <扫描目标说明> } 描述 Nmap(“Network Mapper(网络映射器)”)是一款开放源代码的网络探测和安全审核的工具。它的设计目标是快速地扫描大型网络,当然用它扫描单个主机也没有问题。Nmap以新颖的方式使用原始IP报文来发现网络上有哪些主机,那些主机提供什么服务(应用程序名和版本),那些服务运行在什么操作系统(包括版本信息),它们使用什么类型的报文过滤器/防火墙,以及一堆其它功能。虽然Nmap通常用于安全审核,许多系统管理员和网络管理员也用它来做一些日常的工作,比如查看整个网络的信息,管理服务升级计划,以及监视主机和服务的运行。 Nmap输出的是扫描目标的列表,以及每个目标的补充信息,至于是哪些信息则依赖于所使用的选项。“所感兴趣的端口表格”是其中的关键。那张表列出端口号,协议,服务名称和状态。状态可能是 open(开放的),filtered(被过滤的),closed(关闭的),或者unfiltered(未被过滤的)。 Open(开放的)意味着目标机器上的应用程序正在该端口监听连接/报文。filtered(被过滤的) 意味着防火墙,过滤器或者其它网络障碍阻止了该端口被访问,Nmap无法得知它是open(开放的) 还是closed(关闭的)。closed(关闭的) 端口没有应用程序在它上面监听,但是他们随时可能开放。当端口对Nmap的探测做出响应,但是Nmap无法确定它们是关闭还是开放时,这些端口就被认为是unfiltered(未被过滤的)如果

相关主题