Nmap
nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统。
官方网站:http://nmap.org/nsedoc/
Nmap支持非常多的扫描方式,包括TCP Syn ,TCP Connect,TCP ACK,TCP FIN/Xmas/NULL,UDP等扫描方式。Nmap 扫描用法较为简单,并且提供丰富的参数来指定扫描方式。
主要功能
- 探测一组主机是否在线。
- 扫描 主机端口,嗅探所提供的网络服务。
- 推断主机所用的操作系统。
案例:
案例一:扫描指定IP所开放端口
nmap -sS -p 1-65535 -v 192.169.168.111
表示使用半开扫描,指定为端口为1到65535,并且显示扫描过程,如需等多扫描参数请参照Nmap -help命令.
常用扫描参数如表4-2所示:
参数 | 详情 |
---|---|
-sT | TCP connect()扫描,这种方式会在目标主机的日志中会记录大批的连接请求以及错误信息 |
-sS | 半开扫描,很少有系统能够把这记入系统日志。不过,需要root权限 |
-sF -sN | 秘密FIN数据包扫描、圣诞树(Xmas Tree)、空(Null)扫描模式 |
-sP | ping扫描,Nmap在扫描端口时,默认都会使用ping扫描,只有主机存活,Nmap才会继续扫描 |
-sU | UDP扫描,但UDP扫描是不可靠的 |
-sA | 这项高级的扫描方法通常用来穿过防火墙的规则集 |
-sV | 探测端口服务版本 |
-P0 | 扫描之前不需要ping,有些防火墙禁止ping。可以使用此选项进行扫描 |
-v | 显示扫描过程,推荐使用 |
-h | 帮助选项,必看,最清楚的帮助文档 |
-p | 指定端口,如[1-65535],[1433,135,3389,22]等格式 |
-O | 启用远程操作系统检测,存在误报 |
-A | 全面系统检测,启用脚本检测,扫描等。 |
-oN/-oX/-oG | 讲将报告写入文件,分别是三种格式[正常,XML,grepable] |
-T4 | 针对TCP端口禁止动态扫描延迟超过10ms |
-iL | 读取主机列表,例如[-iL C:\ip.txt] |
案例二:
扫描www.baidu.com C段存活主机。
nmap -sP www.baidu.com/24
案例三:
指定端口扫描:
nmap -p 80,1433,1521 www.baidu.com
案例四:
探测主机操作系统:
nmap -O www.baidu.com
案例五:
全面系统检测:
nmap -v -A www.baidu.com
注意:Nmap默认扫描主机1000个高危端口,若需要全面检测端口,则需要加入 “-p 1-65535” 或者 “-p-” 。
案例六:
穿透防火墙进行扫描
nmap -Pn -A www.2cto.com
有的网站防火墙禁止ping,可以利用-Pn参数。
Nmap的脚本引擎
Nmap Script是Nmap最好的功能之一,利用Nmap Script 可以快速的探测服务器。
在Nmap安装目录,存在Script文件夹,在Script文件夹中,存在许多以.nse后缀结尾的文本文件,即Nmap自带的脚本引擎。并且你也可以自己编写Nmap Script。Nmap Script实现许多不同的功能,其中包含漏洞扫描,漏洞利用,目录扫描等实用功能。
使用Nmap脚本引擎,只需要添加命令 –script=脚本名称。Nmap Script 有400之多,下面为读者介绍最常使用的脚本,如需了解等多,请参照 http://nmap.org/nsedoc/ 。
案例一:扫描web敏感目录
nmap -p 80 --script=http-enum.nse www.baidu.com
案例二:扫描SqlInjection
扫描SQL注射漏洞是比较简单的,主要用到了sql-injection.nse脚本文件,此脚本文件可以在Nmap官网下载。注:速度较慢。
命令:nmap -p 80 --script=sql-injection.nse www.baidu.com
案例三:使用所有脚本进行扫描
命令:nmap --script all 127.0.0.1
注意:使用此命令非常耗时,最好把记录保存到文档里面。
案例四:使用通配符扫描
命令:nmap --script "http-*" 127.0.0.1
,
使用所有以“http-”开头的脚本扫描,值得注意的是,脚本的参数必须用引号引起来,以保护从shell的通配符。
Nmap也可以用来检测主机是否存在漏洞,密码暴力破解等。更多的扫描方式请参照:http://nmap.org/book/nse-usage.html
在渗透测试中,用好Nmap脚本引擎是一大助力。你可以自由的利用每个参数进行扫描,探测,非常灵活。