一、下载安装

1、官网下载地址:https://nmap.org/download.html
2、下载安装在方便自己查找的位置(在进入dos界面使用时更方便)

二、简介

Nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统。它是网络管理员必用的软件之一,以及用以评估网络系统安全。

Nmap是最受欢迎的开源网络映射器之一,此外,Nmap7这款自动化的扫描器能够轻易检测到Heartbleed、POODLE、FREAK等严重漏洞。Nmap7中对ssl-enum-ciphers(SSL枚举密码)脚本替换了新的实现算法,使得它能够通过枚举SSL/TLS协议版本和密码套件来快速分析TLS连接,它还能够迅速识别部署问题。另外,使用Nmap7能够轻易发现包含漏洞的服务器,Nmap7中包含了对提速和扫描实现的改进。这个工具的新版本包括一个更新、更快的Nmap脚本引擎(Nmap Scripting Engine,NSE),同时它还允许用户编写Lua脚本。

三、基础用法

此处介绍用法在dos界面使用
1、指定扫描主机

nmap -sP +ip                                    #扫描单个主机

Android WiFi扫描信道拥挤 安卓网络扫描工具_渗透测试


2、一个网段的所有主机

nmap -sP +ip/24                                #用于探测局域网有哪些机器

Android WiFi扫描信道拥挤 安卓网络扫描工具_SSL_02


3、一个范围的主机

nmap -sP +ip-254

Android WiFi扫描信道拥挤 安卓网络扫描工具_网络安全_03


4、探测端口范围

nmap -p 80, 3389 +ip    #探测80,3389端口
nmap -p 22-25 +ip       #探测22至25端口

Android WiFi扫描信道拥挤 安卓网络扫描工具_渗透测试_04


Android WiFi扫描信道拥挤 安卓网络扫描工具_渗透测试_05


5、服务版本探测

nmap -V +ip

6、扫描主机操作系统版本

nmap -O +ip

Android WiFi扫描信道拥挤 安卓网络扫描工具_网络安全_06


7、全面扫描

nmap -A +ip

Android WiFi扫描信道拥挤 安卓网络扫描工具_网络安全_07


8、保存结果

nmap -oN D:\test.txt          #保存在本地

9、UDP(协议)端口扫描

--扫描单个端口
nmap +ip -sU -p 53
--扫描1-100端口
nmap +ip -sU -p 1-100
--扫描默认常用的1000个端口(如:80、3306 等)
nmap +ip -sU
--不对目标进行ping探测(不判断主机是否在线,直接扫描端口)
nmap -sU +ip -Pn
补充:
-sU:表示udp scan,udp端口扫描
-Pn:不对目标进行ping探测(不判断主机是否在线,直接扫描端口)

10、补充

--使用SYN扫描,半连接扫描,优点是扫描速度快,不容易被记录,适用于任何兼容TCP堆栈,
可以清晰可靠地区分端口开启、关闭和过滤状态,扫描完成后将报告保存在D盘
nmap -sS -v --reason -p- -n -Pn --max-scan-delay 10 -oX d:/tcp.xml 10.XX.XX.XX
--使用UDP协议进行扫描,扫描速度很慢,扫描完成后将报告保存在D盘
nmap -sU -v --reason -p- -n -Pn --max-scan-delay 10 -oX d:/udp.xml 10.XX.XX.XX
--验证http中开启的-methods方法
nmap -p 8080 --script http-methods +ip

四、nmap脚本命令行参数简介

nmap提供的脚本命令行参数如下:
-sC:等价于-script=default,使用默认类别的脚本进行扫描
-script=:使用某个或某类脚本进行扫描,支持通配符描述
-script-args=<n1=v1,[n2=v2,.....]>:为脚本提供默认参数
-script-args-file=filename:使用文件来为脚本提供参数
-script-trace:显示脚本执行过程中发送与接收的数据
-script-updatedb:更新脚本数据库
-script-help=:显示脚本的帮助信息,其中部分可以逗号分隔的文件或脚本类别

五、nmap脚本分类及用法简介

此处介绍用法在dos界面使用

nmap脚本主要分为以下几类,在扫描时可根据需要设置-script=类别这种比较笼统的扫描:

auth:负责处理鉴权证书(绕开鉴权)的脚本

nmap --script auth +ip[对主机进行一系列证书鉴权检查]

broadcast:在局域网内探查更多服务开启状态,如dhcp/dns/sqlserver等服务

nmap --script broadcast +ip[在局域网内探查更多服务开启情况]

brute:提供暴力破解方式,针对常见的应用如http/snmp等

nmap --script brute +ip[对常见服务进行暴力破解]

default:使用-sC或-A选项扫描时默认的脚本,提供基本脚本扫描能力

nmap --script default +ip[进行基本扫描]

nmap --sC +ip[进行基本扫描]

discovery:对网络进行更多的信息,如SMB枚举、SNMP查询等

nmap --script discovery +ip[进行信息挖掘]

dos:用于进行拒绝服务攻击

nmap --script dos +ip[进行拒绝服务攻击]

exploit:利用已知的漏洞入侵系统

nmap --script exploit +ip[利用已知漏洞入侵系统]

external:利用第三方的数据库或资源,例如进行whois解析

nmap --script external +ip[利用第三方的数据库或资源进行信息收集或者攻击]

fuzeer:模糊测试的脚本,发送异常的包到目标机,探测出潜在漏洞

nmap --script fuzeer +ip[模糊测试,发送异常的包到目标机,探测出潜在漏洞]

intrusive:入侵性的脚本,此类脚本可能引发对方的IDS/IPS的记录或屏蔽

nmap --script intrusive +ip[进行入侵,此类脚本可能引发对方的IDS/IPS的记录或屏蔽]

malware:探测目标机是否感染了病毒、开启了后门等信息

nmap --script malware +ip[探测目标机是否感染了病毒、开启了后门等信息]

safe:此类与intrusive相反,属于安全性脚本

nmap --script safe +ip[对系统进行安全检查]

version:负责增强服务与版本扫描(Version Detection)功能的脚本

nmap --script version +ip[负责增强服务与版本扫描(Version Detection)功能的脚本]

vuln:负责检查目标机是否有常见漏洞(Vulnerability)

nmap -script vuln +ip[对目标机进行检查是否存在常见的漏洞]

六、补充

由于常见的漏洞问题非常多,此章节主要介绍漏洞扫描和渗透测试中会经常遇到的一些漏洞,并且尝试使用namp 对这些被扫描工具扫描出来的漏洞进行人工手动验证,这些仅是命令,至于如何根据出现的结果进行判断是否有漏洞,这个在结果中很容易看出,文中不做详细解释,例如出现 vulnerable—有漏洞;not vulnerable—无漏洞。有结果出来—有漏洞;无结果出来—无漏洞,往后在其他测试中,只需要将ip替换成需要验证的目标IP或者网站。
此处介绍用法在dos界面使用

nmap -p 80 --script http-iis-short-name-brute +ip[验证iss短文件名泄露]

nmap -sV -p 11211 -script memcached-info +ip[验证Memcached未授权访问漏洞]

nmap -sV - (-) script http-vuln-cve2015-1635 +ip[验证http.sys远程代码执行漏洞]

nmap -sV --script=ssl-heartbleed +ip[验证心脏出血漏洞]

nmap -p 27017 --script mongodb-info +ip[验证Mongodb未授权访问漏洞]

nmap -p 6379 --script redis-info +ip[验证Redis未授权访问漏洞]

nmap --script=http-vuln-cve2015-1427 --script-args command='ls' +ip[验证Elasticsearch未授权访问漏洞]

nmap -p 873 --script rsync-brute --script-args'rsync-brute.module=www'[验证Rsync未授权访问漏洞]

nmap --max-parallelism 800-script http-slowloris +ip[HTTP拒绝服务]

nmap --script ftp-brute --script-args brute.emptypass=true,ftp-brute.timeout=30,userdb=/root/dirtionary/usernames.txt,brute.useraspass=true,passdb=/root/dirtionary/passwords.txt,brute.threads=3,brute.delay=6 +ip[ftp弱口令暴力破解]

nmap -T2 --script ftp-vsftpd-backdoor +ip[检测CVE-2011-2523中的ftp-vsftpd-backdoor]

nmap -T3 --script http-methods --script-args http.test-all=true,http.url-path=/www.xxxxxx.com[验证HTTP中开启的method方法]

nmap -sV --script http-vuln-cve2015-1635 +ip[验证HTTP.sys远程代码执行]

nmap -sV -p 443 --version-light --script ssl-poodle +ip[验证SSL poodle information leak]

nmap --script http-put --script-args http-put.url=/uploads/testput.txt,http-put.file=/root/put.txt +ip[验证HTTP中开启了put方法]

nmap --script mysql-empty-password +ip[验证MySQL匿名访问]

nmap --script http-vuln-cve2015-1427 --script-args command=ls +ip[验证CVE2015-1427漏洞]

nmap -Pn --script http-vuln-cve2014-8877 --script-args http-vuln-cve2014-8877.cmd=dir,http-vuln-cve2014-8877.uri=/wordpress +ip[验证cve2014-8877漏洞]

nmap -p 443 --script http-vuln-cve2014-2126,http-vuln-cve2014-2127,http-vuln-cve2014-2128,http-vuln-cve2014-2129 +ip[验证Cisco ASA中的CVE2014-2126,CVE2014-2127,CVE2014-2128,CVE2014-2129漏洞]

nmap --script sshv1,sslv2 www.haoshangjia.com[验证低安全的sshv1.sslv2协议]

nmap -Pn --script ssl-ccs-injection +ip[验证CVE2014-0224 ssl-ccs-injection]

nmap -v -v --script ssl-cert +ip[验证ssl-cert证书问题]

nmap -Pn --script ssl-date www.haoshangjia.com[验证ssl证书的有限期]

nmap -p 443 --script ssl-heartbleed,ssl-know-key +ip[验证CVE2014-0160 openssl heartbleed bug]

nmap -p 443 --script ssl-know-key +ip[验证Debian openssl keys]

nmap --script ssl-enum-ciphers +ip[验证弱加密SSL套件]

nmap --script ssl-dh-params www.haoshangjia.com[验证CVE2015-4000]

nmap +ip --vv --script sshv1,ssl-ccs-injection,ssl-cert,ssl-date,ssl-dh-params,ssl-enum-cipher,ssl-google-cert-catalog,ssl-heartbleed,ssl-know-key,sslv2[验证多种SSL漏洞]

nmap --script sniffer-detect +ip[在网络中检测某主机是否在窃听他人流量]

nmap -p 23 --script telnet-brute --script-args userdb=myusers.lst,passdb=mypwds.lst --script-args telnet-brute.timeout=8s +ip[暴力破解telnet]

nmap --script telnet-encryption +ip[验证telnet是否支持加密]

nmap -sV --script unusual-port +ip[精准地确认端口上运行运行的服务]

nmap --script vnc-info +ip[收集VNC信息]

nmap --script vnc-brute --script-args brute.guesses=6,brute.emptypass=true,userdb=/root/dictionary/user.txt,brute.userspass=true,passdb=/root/dictionary/pass.txt,brute.retries=3,brute.theards=2,brute.delay=3 +ip[暴力破解VNC]

七、关于如何使用脚本

1、直接在dos界面

2、在nmap图形化界面进行使用(此处不做详细说明)

2.1在图形化界面(快捷键Ctrl+P)

Android WiFi扫描信道拥挤 安卓网络扫描工具_SSL_08


2.2点击脚本,勾选自己需要使用的脚本,点击保存更改

Android WiFi扫描信道拥挤 安卓网络扫描工具_目标机_09