端口扫描之王——nmap入门精讲(转)

端口扫描在百度百科上的定义是:

端口扫描是指某些别有用心的人发送一组端口扫描消息,试图以此侵入某台计算机,并了解其提供的计算机网络服务类型(这些网络服务均与端口号相关),但是端口扫描不但可以为黑客所利用,同时端口扫描还是网络安全工作者的必备的利器,通过对端口的扫描,了解网站中出现的漏洞以及端口的开放情况,对网站安全方面有着不可或缺的贡献,是你学习网络安全的第一门课程的首选

目前在市面上主要的端口扫描工具是X_Scan、SuperScan、nmap,其中在这里主推的是nmap,因为nmap具有以下的这一些优点:

1、多种多样的参数,丰富的脚本库,满足用户的个人定制需求,其中脚本库还提供了很多强大的功能任你选择

2、强大的可移植性,基本上能在所有的主流系统上运行,而且代码是开源的

3、详细的文档说明,和强大的社区团队进行支持,方面新人上手

Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具,但是nmap也是有一些缺点的,比如说上手较难,但是难上手是相对的,与其他达到这种功能性的软件产品相比,还是比较容易上手的,但是这也不妨碍nmap成为世界千万安全专家列为必备的工具之一,在其中的一些影视作品中《黑客帝国2》、《特警判官》中都有亮相

废话不多说,开始今天的nmap学习:

nmap的安装:直接从百度上下载,然后安装的步骤跟其他的软件一样,最后确认安装成功只需要在命令行中输入nmap回车,有相关的参数输出即为安装成功,安装的具体步骤可以查看:http://jingyan.baidu.com/article/5bbb5a1b1e0a7713eba179cb.html,在此就不多说了

Nmap包含四项基本功能:

  1. 主机发现(Host Discovery)
  2. 端口扫描(Port Scanning)
  3. 版本侦测(Version Detection)
  4. 操作系统侦测(Operating System Detection)

下面就从主机发现一步一步进行探讨

主机发现顾名思义就是发现所要扫描的主机是否是正在运行的状态,接下来就来一个简单例子

例子要求:获取http://nmap.org 的主机是否开启

输入命令:nmap -F -sT -v nmap.org

-F:扫描100个最有可能开放的端口 -v 获取扫描的信息 -sT:采用的是TCP扫描 不写也是可以的,默认采用的就是TCP扫描

运行如下:

由图中的1,我们可以发现对URL进行解析花了16.5秒,这个地方花费的时间是可以进行优化的,优化的方法会稍后介绍

图中的2,是总共的运行时间

图中的3是说明有96个端口被屏蔽了,也就是说明了网站的防火墙是开启的,因为没有开启防火墙是不会对端口进行屏蔽的,

补充说明:

端口端口一般是有下面这几种状态的

状态 详细的参数说明
Open 端口开启,数据有到达主机,有程序在端口上监控
Closed 端口关闭,数据有到达主机,没有程序在端口上监控
Filtered 数据没有到达主机,返回的结果为空,数据被防火墙或者是IDS过滤
UnFiltered 数据有到达主机,但是不能识别端口的当前状态
Open|Filtered 端口没有返回值,主要发生在UDP、IP、FIN、NULL和Xmas扫描中

Closed|Filtered

只发生在IP ID idle扫描

 

 

 

 

 

 

 

 

 

 

 

 

图中的4是本次返回的关键信息,其中我们要主要关注的是端口号,端口状态,端口上的服务

那你可能就会要问为什么要关注这些端口呢?那这个问题就要转到探讨为什么要进行扫描?

扫描对于黑客和安全人员来说,主要的流程是这样的

上面的图中的IP写错了,应该改为FTP

从这个图中我们不难发现,我们主要关注的区域就是这些内容

接下来就来讨论下面上面提出来的问题?怎样对URL解析的时间进行优化,在Nmap重提供了不进行解析的参数(-n),这样就不会对域名进行解析了

其中关于域名解析的相关参数还有:

-R 为所有的目标主机进行解析

--system-dns 使用系统域名解析器进行解析,这个解析起来会比较慢

--dns-server 服务器选择DNS解析

说到-R注释的意思你会有所体会,其实nmap的扫描解析不止是对一个目标主机进行解析,还可以对一定范围内的目标主机群进行解析

例如:查找45.33.49.119-120的主机的状态以及端口状态

分析:

1、虽然查找的主机的数量不多,但是这样查找起来也是很浪费时间的, 所有我们可以通过使用快速查找的方法来节约时间

快速查找端口方法的原理如下:

默认的情况下,我们的查找是查找最有可能开放的1000端口,但是使用快速端口查找(参数 -F )会查找最有可能开放的100个端口,这样也就节约了10倍的时间

2、这里我们需要获取端口的状态,所以就不能使用参数(-sn),这个参数是可以跳过端口扫描,直接进行主机发现的

输入命令:nmap -F -sT -v -n 45.33.49.119-120 45.33.49.119:nmap.org的IP地址

PS:1、-sn参数只能扫描的主机,不能扫描端口,另一个参数也要特别注意的是(-PE)通过ICMP echo判定主机是否存活

运行情况如下:

图片中的1处指的是,采用sT的扫描方法,这种扫描方法准确,速度快,但是这样的扫描容易被防火墙和IDS发现并记录,所以这种方法,实际中并不多用

由图中的3处我们可以知道在不进行解析的情况下扫描用时为26.92秒,比解析的时候用的时间节约了不少

图中的4说明了扫描了2个主机,然后只有一个主机为开启

提示:

在nmap运行的时候,如果我们可以像其他编程一样打“断点”,直接按键盘的d键就行了,如果想知道运行的进度可以按下X键

好了,示例也讲完了,下面我们就来分析一下扫描的各种方法:

端口扫描

1、TCP扫描(-sT)

这是一种最为普通的扫描方法,这种扫描方法的特点是:扫描的速度快,准确性高,对操作者没有权限上的要求,但是容易被防火墙和IDS(防入侵系统)发现

运行的原理:通过建立TCP的三次握手连接来进行信息的传递

① Client端发送SYN;

② Server端返回SYN/ACK,表明端口开放;

③ Client端返回ACK,表明连接已建立;

④ Client端主动断开连接。

2、SYN扫描(-sS)

这是一种秘密的扫描方式之一,因为在SYN扫描中Client端和Server端没有形成3次握手,所以没有建立一个正常的TCP连接,因此不被防火墙和日志所记录,一般不会再目标主机上留下任何的痕迹,但是这种扫描是需要root权限(对于windows用户来说,是没有root权限这个概念的,root权限是linux的最高权限,对应windows的管理员权限)

运行的原理图如下:

3、NULL扫描

NULL扫描是一种反向的扫描方法,通过发送一个没有任何标志位的数据包给服务器,然后等待服务器的返回内容。这种扫描的方法比前面提及的扫描方法要隐蔽很多,但是这种方法的准确度也是较低的, 主要的用途是用来判断操作系统是否为windows,因为windows不遵守RFC 793标准,不论端口是开启还是关闭的都返回RST包

但是虽然NULL具有这样的一些用处,但是本人却认为不宜使用NULL

1、NULL方法的精确度不高,端口的状态返回的不是很准确

2、要获取目标主机的运行系统,可以使用参数(-O),来获取对于一些操作系统无法准确判断的,可以加上参数(-osscan-guess)

3、NULL扫描易被过滤

4、FIN扫描

FIN扫描的原理与NULL扫描的原理基本上是一样的在这里就不重复了

5、ACK扫描

ACK扫描的原理是发送一个RST包给目标主机,不论目标主机的端口是否开启,都会返回相应的RST包,通过判断RST包中的TTL来判断端口是否开启

运行原理图:

TTL值小于64端口开启,大于64端口关闭

大致上主要的扫描方法就是这些,除了我们可以按照这样些参数去执行扫描外,还可以自己定义一个TCP扫描包

6、自定义TCP扫描包的参数为(--scanflags)

例如:定制一个包含ACK扫描和SYN扫描的安装包

命令:nmap --scanflags ACKSYN nmap.org

好了,接下来还有各种扫描方法的端口列表参数

-PS 端口列表用,隔开[tcp80 syn 扫描]
-PA 端口列表用,隔开[ack扫描](PS+PA测试状态包过滤防火墙【非状态的PA可以过】)【默认扫描端口1-1024】
-PU 端口列表用,隔开[udp高端口扫描 穿越只过滤tcp的防火墙]

其他的常见命令

输出命令

-oN 文件名 输出普通文件

-oX 文件名 输出xml文件

错误调试:

--log-errors 输出错误日志

--packet-trace 获取从当前主机到目标主机的所有节点

其他的相关参数可以参考:http://www.2cto.com/Article/201203/125686.html 到时候需要再进行查找

相关资料:

http://www.tuicool.com/articles/ZBvmYrN

http://www.2cto.com/Article/201203/125686.html

在此特别感谢各位前辈为nmap提供了为数不多的宝贵资料

http://www.cnblogs.com/st-leslie/p/5115280.html

时间: 2024-10-02 16:50:18

端口扫描之王——nmap入门精讲(转)的相关文章

Nmap网络探测和安全审核工具指南:端口扫描技术

作为一个修车新手,我可能折腾几个小时来摸索怎样把基本工具(锤子,胶带,扳子等) 用于手头的任务.当我惨痛地失败,把我的老爷车拖到一个真正的技师那儿的时候,他总是在他的工具箱里翻来翻去,直到拽出一个完美的工具然后似乎不费吹灰之力搞定它.端口扫描的艺术和这个类似.专家理解成打的扫描技术,选择最适合的一种 (或者组合)来完成给定的任务. 另一方面,没有经验的用户和刚入门者总是用默认的SYN扫描解决每个问题.既然Nmap是免费的,掌握端口扫描的唯一障碍就是知识.这当然是汽车世界所不能比的,在那里,可能需

★Kali信息收集★8.Nmap :端口扫描

Kali信息收集~ 0.Httrack 网站复制机   http://www.cnblogs.com/dunitian/p/5061954.html   Kali信息收集~ 1.Google Hacking + Github Hacking http://www.cnblogs.com/dunitian/p/5074765.html   Kali信息收集~2.Whois :域名信息   http://www.cnblogs.com/dunitian/p/5074768.html   Kali信息

虚拟机-求对nmap和端口扫描工具较熟悉的朋友进来看看

问题描述 求对nmap和端口扫描工具较熟悉的朋友进来看看 我在虚拟机中,使用nmap -sn 192.168.1.0/24,同时用wireshark抓包,-sn应该是ping吧,然而wireshark里是arp广播. 然后使用了nmap -PS 192.168.1.0/24,我看资料这里应该是用tcp syn进行扫描,但在wireshark里,先进行了arp广播,然后再进行了tcp扫描(这里的扫描并非广播,而是目的地址是arp广播的结果) 于是,我有如下的问题: 1.扫描存活主机,为什么都会先使

Nmap网络探测和安全审核工具指南:端口扫描基础

虽然Nmap这些年来功能越来越多, 它也是从一个高效的端口扫描器开始的,并且那仍然是它的http://www.aliyun.com/zixun/aggregation/17626.html">核心功能. nmap target这个简单的命令扫描主机target上的超过 1660个TCP端口. .许多传统的端口扫描器只列出所有端口是开放还是关闭的, Nmap的信息粒度比它们要细得多. 它把端口分成六个状态: open(开放的), closed(关闭的),filtered(被过滤的), unf

XML入门精解之结构与语法

xml|语法 现在我们暂且使用"记事本"来创建我们的XML文件吧.先看一个XML文件: 例1 〈?xml version="1.0" encoding="gb2312" ?〉 〈参考资料〉 〈书籍〉 〈名称〉XML入门精解〈/名称〉 〈作者〉张三〈/作者〉 〈价格 货币单位="人民币"〉20.00〈/价格〉 〈/书籍〉 〈书籍〉 〈名称〉XML语法〈/名称〉 〈!--此书即将出版--〉 〈作者〉李四〈/作者〉 〈价格 货币单位

XML入门精解之文件格式定义

xml DTD实际上可以看作一个或多个XML文件的模板,这些XML文件中的元素.元素的属性.元素的排列方式/顺序.元素能够包含的内容等,都必须符合DTD中的定义.XML文件中的元素,即我们所创建的标记,是根据我们应用的实际情况来创建的.想要创建一份完整性高.适应性广的DTD是非常困难的,因为各行各业都有他们自己的行业特点,所以DTD通常是以某种应用领域为定义的范围,如:医学.建筑.工商.行政.DTD定义的元素含盖范围越广泛,那么就越复杂.  DTD可以是一个完全独立的文件,也可以在XML文件中直

XML入门精解-------结构与语法

xml|语法 ■创建XML文件的工具 XML文件和HTML文件一样,实际上是一个文本文件.显然大家立刻就会明白,创建XML文件最普通的工具和HTML一样,就是"记事本"了.除了"记事本"之外,当然还有一些更加方便的工具,如XML Notepad.XML Pro.CLIP!XML Editor等,这些工具的一大特点是:能够检查你所建立的XML文件是否符合XML规范.不过,现在这些工具都只有英文版的,并且需要付费使用.当然,你仍然能够使用FrontPage.DreamW

XML入门精解之结构与语法(1)

xml|语法 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />  ■创建XML文件的工具 XML文件和HTML文件一样,实际上是一个文本文件.显然大家立刻就会明白,创建XML文件最普通的工具和HTML一样,就是"记事本"了.除了"记事本"之外,当然还有一些更加方便的工具,如XML Notepad.XML Pro.CLIP!XML E

Linux管理员:企业端口扫描策略

  企业端口扫描策略 1.端口扫描的目的 对于位于网络中的计算机系统来说,一个端口就是一个潜在的通信通道,也就是一个入侵通道.对目标计算机进行端口扫描,能得到许多有用的信息从而发现系统的安全漏洞.通过其可以使系统用户了解系统目前向外界提供了哪些服务,从而为系统用户管理网络提供了一种参考的手段. 从技术原理上来说,端口扫描向目标主机的TCP/UDP服务端口发送探测数据包,并记录目标主机的响应.通过分析响应来判断服务端口是打开还是关闭,就可以得知端口提供的服务或信息. 端口扫描也可以通过捕获本地主机