您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 密码学大作业NMAP
Nmap的学习与使用赵彦喆3110102884信通1106一:Nmap扫描原理:1网络扫描软件Nmap(1)简介Nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪服务运行在那些连接端,并且推断哪个操作系统计算机运行(这是亦称fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统保安。正如大多数工具被用于网络安全的工具,nmap也是不少黑客及骇客(又称脚本小孩)爱用的工具。系统管理员可以利用nmap来探测工作环境中未经批准使用的服务器,但是黑客会利用nmap来搜集目标电脑的网络设定,从而计划攻击的方法。Nmap常被跟评估系统漏洞软件Nessus混为一谈。Nmap以隐秘的手法,避开闯入检测系统的监视,并尽可能不影响目标系统的日常操作。(2)描述nmap运行通常会得到被扫描主机端口的列表。nmap总会给出wellknown端口的服务名(如果可能)、端口号、状态和协议等信息。每个端口的状态有:open、filtered、unfiltered。open状态意味着目标主机能够在这个端口使用accept()系统调用接受连接。filtered状态表示:防火墙、包过滤和其它的网络安全软件掩盖了这个端口,禁止nmap探测其是否打开。unfiltered表示:这个端口关闭,并且没有防火墙/包过滤软件来隔离nmap的探测企图。通常情况下,端口的状态基本都是unfiltered状态,只有在大多数被扫描的端口处于filtered状态下,才会显示处于unfiltered状态的端口。根据使用的功能选项,nmap也可以报告远程主机的下列特征:使用的操作系统、TCP序列、运行绑定到每个端口上的应用程序的用户名、DNS名、主机地址是否是欺骗地址、以及其它一些东西。(3)Nmap所识别的6个端口状态。1.open(开放的)应用程序正在该端口接收TCP连接或者UDP报文。发现这一点常常是端口扫描的主要目标。安全意识强的人们知道每个开放的端口都是攻击的入口。攻击者或者入侵测试者想要发现开放的端口。而管理员则试图关闭它们或者用防火墙保护它们以免妨碍了合法用户。非安全扫描可能对开放的端口也感兴趣,因为它们显示了网络上那些服务可供使用。2.closed(关闭的)关闭的端口对于Nmap也是可访问的(它接受Nmap的探测报文并作出响应),但没有应用程序在其上监听。它们可以显示该IP地址上(主机发现,或者ping扫描)的主机正在运行up也对部分操作系统探测有所帮助。3.filtered(被过滤的)由于包过滤阻止探测报文到达端口,Nmap无法确定该端口是否开放。过滤可能来自专业的防火墙设备,路由器规则或者主机上的软件防火墙。4.unfiltered(未被过滤的)未被过滤状态意味着端口可访问,但Nmap不能确定它是开放还是关闭。只有用于映射防火墙规则集的ACK扫描才会把端口分类到这种状态。用其它类型的扫描如窗口扫描,SYN扫描,或者FIN扫描来扫描未被过滤的端口可以帮助确定端口是否开放。5.open|filtered(开放或者被过滤的)当无法确定端口是开放还是被过滤的,Namp就把该端口划分成这种状态。开放的端口不响应就是一个例子。没有响应也可能意味着报文过滤器丢弃了探测报文或者它引发的任何响应。因此Nmap无法确定该端口是开放的还是被过滤的。UDP,IP协议,FIN,Null和Xmas扫描可能把端口归入此类。6.closed|filtered(关闭或者被过滤的)该状态用于Nmap不能确定端口是关闭的还是被过滤的。它只可能出现在IPIDIdle扫描中。2语法Nmap的语法相当简单.Nmap的不同选项和-s标志组成了不同的扫描类型,比如:一个Ping-scan命令就是-sP.在确定了目标主机和网络之后,即可进行扫描.如果以root来运行Nmap,Nmap的功能会大大的增强,因为超级用户可以创建便于Nmap利用的定制数据包。一般语法格式:nmap[ScanType(s)][Options]3基本扫描类型可以使用nmap-h快速列出功能选项的列表。-sTTCPconnect()扫描:这是最基本的TCP扫描方式。connect()是一种系统调用,由操作系统提供,用来打开一个连接。如果目标端口有程序监听,connect()就会成功返回,否则这个端口是不可达的。这项技术最大的优点是,你勿需root权限。任何UNIX用户都可以自由使用这个系统调用。这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息。-sSTCP同步扫描(TCPSYN):因为不必全部打开一个TCP连接,所以这项技术通常称为半开扫描(half-open)。你可以发出一个TCP同步包(SYN),然后等待回应。如果对方返回SYN|ACK(响应)包就表示目标端口正在监听;如果返回RST数据包,就表示目标端口没有监听程序;如果收到一个SYN|ACK包,源主机就会马上发出一个RST(复位)数据包断开和目标主机的连接。这项技术最大的好处是,很少有系统能够把这记入系统日志。-sPping扫描:若只是想知道此时网络上哪些主机正在运行。通过向你指定的网络内的每个IP地址发送ICMPecho请求数据包,nmap就可以完成这项任务,如果主机正在运行就会作出响应。在默认的情况下nmap也能够向80端口发送TCPack包,如果你收到一个RST包,就表示主机正在运行。nmap使用的第三种技术是:发送一个SYN包,然后等待一个RST或者SYN/ACK包。对于非root用户,nmap使用connect()方法。在默认的情况下(root用户),nmap并行使用ICMP和ACK技术。实际上,nmap在任何情况下都会进行ping扫描,只有目标主机处于运行状态,才会进行后续的扫描。如果只是想知道目标主机是否运行,而不想进行其它扫描,才会用到这个选项。-sUUDP扫描:如果想知道在某台主机上提供哪些UDP(用户数据报协议,RFC768)服务,可以使用这种扫描方法。nmap首先向目标主机的每个端口发出一个0字节的UDP包,如果收到端口不可达的ICMP消息,端口就是关闭的,否则我们就假设它是打开的。4通用选项这些内容不是必需的,但是很有用。-Pn在扫描之前,不必ping主机。有些网络的防火墙不允许ICMPecho请求穿过,使用这个选项可以对这些网络进行扫描。-O这个选项激活对TCP/IP指纹特征(fingerprinting)的扫描,获得远程主机的标志。换句话说,nmap使用一些技术检测目标主机操作系统网络协议栈的特征。nmap使用这些信息建立远程主机的指纹特征,把它和已知的操作系统指纹特征数据库做比较,就可以知道目标主机操作系统的类型。-v冗余模式。它会给出扫描过程中的详细信息。使用这个选项,可以得到事半功倍的效果。使用-d选项可以得到更加详细的信息。-h快速参考选项。-p端口范围这个选项让你选择要进行扫描的端口号的范围。例如,-p23表示:只扫描目标主机的23号端口。-p20-30,139,60000-表示:扫描20到30号端口,139号端口以及所有大于60000的端口。在默认情况下,nmap扫描从1到1024号以及nmap-services文件(如果使用RPM软件包,一般在/usr/share/nmap/目录中)中定义的端口列表。-F快速扫描模式,只扫描在nmap-services文件中列出的端口。显然比扫描所有65535个端口要快。5目标设定在nmap的所有参数中,只有目标参数是必须给出的。其最简单的形式是在命令行直接输入一个主机名或者一个IP地址。如果你希望扫描某个IP地址的一个子网,你可以在主机名或者IP地址的后面加上/掩码。掩码在0(扫描整个网络)到32(只扫描这个主机)。使用/24扫描C类地址,/16扫描B类地址。除此之外,nmap还有更加强大的表示方式让你更加灵活地指定IP地址。例如,如果要扫描这个B类网络128.210.*.*,你可以使用下面三种方式来指定这些地址:128.210.*.*、128.21-.0-255.0-255或者128.210.0.0/16这三种形式是等价的。二:安装Nmap:在网上搜索Nmap下载,我是在太平洋游戏网上下载的,安装时一路点击确定即可。三:使用Nmap软件实现网络扫描:1、使用不同扫描指令扫描在线主机,并记录端口信息:确定端口状况:如果直接针对某台计算的IP地址或域名进行扫描,那么Nmap对该主机进行主机发现过程和端口扫描。该方式执行迅速,可以用于确定端口的开放状况。命令形式:nmaptargethost可以确定目标主机在线情况及端口基本状况。完整全面的扫描:如果希望对某台主机进行完整全面的扫描,那么可以使用nmap内置的-A选项。使用了改选项,nmap对目标主机进行主机发现、端口扫描、应用程序与版本侦测、操作系统侦测及调用默认NSE脚本扫描。命令形式:nmap–T4–A–vtargethost其中-A选项用于使用进攻性(Aggressive)方式扫描;-T4指定扫描过程使用的时序(Timing),总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,在网络通讯状况良好的情况推荐使用T4;-v表示显示冗余(verbosity)信息,在扫描过程中显示扫描的细节,从而让用户了解当前的扫描状态。隐蔽扫描从图中可以看到,共扫描了10.13.83.110的1000个tcp端口,发现有998个filteredports,0个closedports,并列出了2个openports,并可以知道这些服务的状态和采用的协议。如端口22提供的是ssh服务,采用tcp协议。端口扫描扫描结果和TCPSYNscan相同。但是耗时却是TCPSYNscan的7倍,这是因为TCPconnectscan是调用connect()函数来打开一个链接,效率较低,而TCPSYNscan不必全部打开一个tcp连接,只是发出一个TCP同步包(SYN),然后等待回应。如果对方返回SYN|ACK(响应)包就表示目标端口正在监听;如果返回RST数据包,就表示目标端口没有监听程序;如果收到一个SYN|ACK包,源主机就会马上发出一个RST(复位)数据包断开和目标主机的连接。Ping扫描Ping扫描并没有进行端口扫描,因此不能得到端口信息和系统信息,只知道有在IP地址段。TCPACK扫描:扫描1000个端口,其中998个被过滤掉。这种ACK扫描是向特定的端口发送ACK包(使用随机的应答/序列号)。如果返回一个RST包,这个端口就标记为unfiltered状态。如果什么都没有返回,或者返回一个不可达ICMP消息,这个端口就归入filtered类。TCPWindow扫描对滑动窗口的扫描:这项高级扫描技术非常类似于ACK扫描,除了它有时可以检测到处于打开状态的端口,因此扫描结果和ACK扫描相同。2、扫描目标主机的支持协议状况与防火墙状态IP协议扫描允许你判断目标主机支持哪些IP协议,从结果可以看到共扫描了258个端口,发现被扫描主机支持4种IP协议,其中只有端口1处于open状态。3、设置不同指令参数进行扫描采用Quickscan模式-F(快速(有限的端口)扫描)-T(设置时间模板)-v(提高输出信息的详细度)-p(只扫描指定的端口)Intensescan(激烈扫描模式)traceroute(路由跟踪)4、扫描目标主机的操作系统类型扫描到ip地址为10.13.83.110的目标主机的细节信息,可知,该主机现在为up状态,总共扫描端口1002个,其中有999个被过滤掉,0个端口状态为closed,3个端口状态为open。能获得该主机的IP地址,但是不能获得MAC地址,能知道系统的版本为Linux2.6.32-3.6,运行时间为291743,最近启动时间为2014.6.1615:34:41心得体会:通过这次大作业,我学会了使用各种Nmap的指令来了解主机的各种状况,收获良多,希望以后的教学中还可以多一些这样的大作业。思考题:请问有哪些方法可以防御黑客的Nmap扫描?1
本文标题:密码学大作业NMAP
链接地址:https://www.777doc.com/doc-3370512 .html