Nmap简介与安装介绍Nmap简介:nmap是一个网络探测和安全扫描程序,系统管理者和个人可以使用这个软件扫描大型的网络,获取主机正在运行情况以及提供什么服务等信息。nmap支持很多扫描技术,例如:UDP、TCPconnect()、TCPSYN(半开扫描)、ftp代理(bounce攻击)、反向标志、ICMP、FIN、ACK扫描、圣诞树(XmasTree)、SYN扫描和null扫描。从扫描类型一节可以得到细节。nmap还提供了一些高级的特征,例如:通过TCP/IP协议栈特征探测操作系统类型,秘密扫描,动态延时和重传计算,并行扫描,通过并行ping扫描探测关闭的主机,诱饵扫描,避开端口过滤检测,直接RPC扫描(无须端口影射),碎片扫描等等。本身nmap在安装的时候自带了471个漏洞检测脚本,2000多种操作系统的特征库和上万多种服务指纹识别特征库,同时从6.25后更好的性能表现和更好的支持ipv6扫描。Nmap安装:下载地址:几乎可以安装在所有的操作系统之上。本次所要与大家进行讨论的nmap版本有windows和linux。Nmap的扫描原理:1、统一沟通语言2、发出刺激3、受到刺激并反馈4、对比刺激和反馈完成扫描(发送信息头,接受反馈识别分析出结果;如果做了禁ping的操作,就需要一些参数绕过ping直接去扫描)Nmap的参数导出帮助信息:Nmapnmap.txt//nmapd:/nmap.txt也可以直接输入nmap查看命令的详细信息目标规则、在nmap的所有参数中,只有目标参数是必须给出的。最简单的形式是在命令行直接输入一个主机名或者一个IP地址。IP地址:如果你希望扫描某个IP的子网,你可以使用192.168.123.2-250范围的形式,也可以使用CIDR格式192.168.123.0/24;如果你想扫描这个网络的B类网址可以:192.168.*.*或者192.168.0.0/16主机名:如果你想扫描某个网站的c类网段,可以直接在主机名后加上/24互联网取样分析:*.*.2.3-7(nmap会扫描互联网上ip地址后两字节为2.3;2.4;2.5;2.6;2.7的设备)-iL从一个文件中读取域名或ip进行扫描(一般运维看机房的机器有没宕机)假如已经知道机房的某台机器已经没了,可以用—exclude参数:Nmap–iLip.txt–excludeip/域名假如是一些机器某种原因没有了,可以以读取文件列表的形式除去扫描:Nmap–iLip.txt–excludefilequ.txt-iR随机抓取扫描Nmap–iRnumber0为无限循环1以及大于1的整数代表扫描多少个输出、交互式输出:在终端中直接输出结果-oN扫描完成后输出,与交互式的输出没有什么区别-oX扫描完成后输出为xml格式的文件(一般xml转换成html格式,浏览器打开很直观清晰Xsltprocdu.xml–odu.html)-oG扫描完成后输出,有利于linux下grep的排序分割Grepupxxx.txtgrep21/openxxx.txt|cut-d:-f2-oS对输出的结果做单字母的大小写替换,看起来有点意思(好玩)-oS–sS在屏幕上输出(黑客间的小游戏)-oA同时输出-oN,-oG,-oX的输出,输出三个文件输出内容的详细和调试设置:-v和-vvv有输出内容的详细程度不同-d0--9调试的内容--packet-trace把发的和收到的包全部打出来--open只打印开放的端口--reason打印端口处于特定状态下的原因(比如:syn-ack)--iflist打印主机的接口和路由--resume文件名恢复中止的扫描主机发现、-sL不做扫描,只完成DNS解析和网址的转换-snping扫描,不进行端口扫描运维人员可以使用nmap检测哪些主机在运行,哪些主机duang掉了。放在一个列表中进行批量的扫描。:1,$s/Nmapscanreportfor把nmapscanreportfor去掉-Pn如果域名网站禁止了ping,-Pn参数跳过ping操作直接进行后续的DNS,端口及其他扫描Ping–Pn让nmap使用tcp的SYN标记的空包进行主机的探测,如果主机运行返回一个RST包,默认端口是80Nmap–PS21,22,3306target-PA让nmap使用tcp的ACK标记的空包进行主机的探测,默认端口也是80这种方法将会通过对一个TCP连接作出响应来尝试发现主机.这个TCP连接是一个不存在的连接,只是试图与目标主机建立一个响应。如同其他ping选项一样,对于封锁标准ICMPping的情况是非常有用的。-PU让nmap使用udp协议进行探测,默认端口是31338-PY进行一个SCTP初始ping.这个选项将会发送一个包含最小的初始快STCP包。这种探测方法会尝试用SCTP来定位主机。SCTP通常被用在IP拨号服务的系统中。是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。-PE/-PP/-PMicmp协议的echoping探测,时间戳和子网掩码请求进行探测发现主机-PP,-PM需要加-Pn(不进行ping探测)-PEicmp的echorequest探测在有较少传输限制的系统上效果比较好。-PP和-PM这种非常规的icmp查询试图用备选的icmp登记ping指定的主机。这种类型的ping可以偷偷的通过已配置好封锁标准回声请求的防火墙。-PO协议列表:用不同的IP协议ping探测默认的协议是1(ICMP),2(IGMP)和4(IP-in-IP)6(tcp)17(udp)Nmap–PO1一般用于局域网的探测,渗透进某个网络可以用此参数进行扫描,比其他ping方法更快nmap–PR192.168.1.0/24更多的存活主机发现在渗透测试中的工具使用:不做DNS解析(不做DNS解析会节省时间)-RDNS解析所有的地址,默认不解析不在线的ip--dns-servers手动指定查询的DNS服务器,针对每个地方访问网站所拿到的ip地址不一样的问题Nmap–dns-servers233.5.5.5,8.8.8.8服务器设置:vi/etc/resolv.conf--traceroute跟踪到指定主机的网络路径(路由跳转)Nmap–traceroute更多的详细路由分析技术、-sSTCP的syn扫描,也称为半连接扫描。需要管理员权限调用底层的驱动;服务器一般不会记录请求,入侵检测系统可能会有提示,也称为匿名扫描;扫描速度快,如有设备做了首包丢弃,可能扫的结果不够准确。发出一个tcp同步包(syn)等待回应,如果对方返回syn|ack包说明对方端口正在被监听,发起扫描者就会调用底层驱动发出一个RST包把数据断开。发出一个tcp同步包(syn)等待回应,如果对方返回RST包,说明对方没有在此端口监听。-sTTCP的connet扫描,也称为全连接扫描。并不需要管理员权限,每个用户都可以发起一次http协议的请求,这种扫描很容易被检测到,在目标主机的日志中留下大量的记录。-sAACK扫描:这项高级的扫描方法通常用来穿过防火墙的规则集。通常情况下,这有助于确定一个防火墙是功能比较完善的或者是一个简单的包过滤程序,只是阻塞进入的SYN包。这种扫描是向特定的端口发送ACK包(使用随机的应答/序列号)。如果返回一个RST包,这个端口就标记为unfiltered状态。如果什么都没有返回,或者返回一个不可达ICMP消息,这个端口就归入filtered类。注意,nmap通常不输出unfiltered的端口,所以在输出中通常不显示所有被探测的端口。-sW对滑动窗口的扫描:这项高级扫描技术非常类似于ACK扫描,有时可以检测到处于打开状态的端口,因为滑动窗口的大小是不规则的-sM蒙迈尼德扫描,如果发出请求没有返回,nmap标记为open|filtered,返回RST,标记为close-sUUDP扫描:如果你想知道在某台主机上提供哪些UDP(用户数据报协议,RFC768)服务,可以使用这种扫描方法。nmap首先向目标主机的每个端口发出一个0字节的UDP包,如果我们收到端口不可达的ICMP消息,端口就是关闭的,否则我们就假设它是打开的。有些人可能会想UDP扫描是没有什么意思,如果一个udp端口监听在大于31338的端口上,用普通的扫描很难发现。不考虑一些通常的安全缺陷,一些服务例如:snmp、tftp、NFS使用UDP协议。不幸的是,UDP扫描有时非常缓慢,因为大多数主机限制ICMP错误信息的比例。-sF/-sX/-sNFIN数据包扫描、圣诞树(XmasTree)、空(Null)扫描模式:SYN扫描都无法确定的情况下使用。一些防火墙和包过滤软件能够对发送来被限制端口的SYN数据包进行监视,而且有些程序比如synlogger和courtney能够检测这些扫描。这些高级的扫描方式可以逃过这些干扰。这些扫描方式的理论依据是:关闭的端口需要对你的探测包回应RST包,而打开的端口必需忽略有问题的包。FIN扫描使用暴露的FIN数据包来探测,而圣诞树扫描打开数据包的FIN、URG和PUSH标志。这种扫描方式对Windows95/NT无效。从另外的角度讲,可以使用这种方式来分别两种不同的平台。如果使用这种扫描方式可以发现打开的端口,你就可以确定目标运行的不是Windows系统。如果使用-sF、-sX或者-sN扫描显示所有的端口都是关闭的,而使用SYN扫描显示有打开的端口,你可以确定目标主机可能运行的是Windwos系统。现在这种方式没有什么太大的用处,因为nmap有内嵌的操作系统检测功能。还有其它几个系统使用和windows同样的处理方式,包括Cisco、BSDI、HP/UX、MYS、IRIX。--scanflagsURG,ACK,PSH,RST,SYN,FIN自定义tcp扫描标识数字标记ACK:10(见tcpheaderflag)字符标记ACK:ACK-sIzombiehost[:probeport]:指定使用idlescan方式来扫描目标主机(前提需要找到合适的zombiehost)Nmap–sI10.227.98.20–v192.168.123.150-sY/sZ:使用SCTPINIT/COOKIE-ECHO来扫描SCTP协议端口的开放的情况。-sO:扫描确定目标机支持的协议类型。Nmap–sO192.168.123.150-bFTPrelayhost:使用FTPbouncescan扫描方式,利用FTP被动传输建立一条数据连接到新的ip地址和端口(协议设计上的缺陷)Nmap–busername:password@server:port端口规范和扫描顺序、端口状态:扫描之后,你可能会看到一些端口状态如open(开放的),filtered(被过滤的),closed(关闭的)等等。Open(开放的):应用程序正在这个端口上监听连接。Closed(关闭的):端口对探测做出了响应,但是现在没有应用程序在监听这个端口。Filtered(过滤的):端口没有对探测做出响应。同时告诉我们探针可能被一些过