0x00 前言

大家都知道在平时的漏扫中,AWVSAPPSCANNetsparkwebspectort等漏扫工具扫描出来的漏洞问题往往存在误报,这时我们就需要进行人工手动验证漏洞,这里我们有两种思路:

一是在漏洞工具中,进行多次的重复测试,AWVS、APPSCAN、Netspark、webspectort中都有重复测试漏洞问题的功能),将得出的多次结果进行分析和统计,确认漏洞是否存在。

二是对于特定的漏洞,例如Java反序列漏 洞、struts2 各种漏洞、openssl、httpd远程拒绝服务、IIS短文件名、各种应用软件版本低等等,我们只能使用特定的工具或者结合多种方式进行验证。本文基 于第二种方式,主要使用了nmap 的脚本功能进行漏洞验证

0x01 nmap 的介绍

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

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

0x02 使用nmap 检测多种漏洞

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

1 http 拒绝服务

nmap --max-parallelism 800--script http-slowloris scanme.nmap.org

2 IIS 短文件泄露

nmap -p 8080 --script http-iis-short-name-brute 61.142.64.176

3 ftp弱口令暴力破解

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 203.195.139.153

4 检测CVE-2011-2523中的ftp-vsftpd-backdoor

nmap -T2 --script ftp-vsftpd-backdoor 211.139.201.240

5 验证http中开启的-methods 方法

nmap -T3 --script http-methods --script-args http.test-all=true,http.url-path=/ www.haoshangjia.com

6 验证HTTP.sys 远程代码执行

nmap -sV --script http-vuln-cve2015-1635 203.195.139.153

7验证 SSL POODLE information leak

nmap -sV -p 443 --version-light --script ssl-poodle 218.19.141.16

8 验证http 中开启了put 方法

nmap --script http-put --script-args http-put.url=/uploads/testput.txt,http-put.file=/root/put.txt 218.19.141.16

9 验证mysql 匿名访问

nmap --script mysql-empty-password 203.195.139.153

10 验证cve2015-1427 漏洞
nmap --script http-vuln-cve2015-1427 --script-args command=ls 203.195.139.153

11 验证cve2014-8877漏洞
nmap -Pn --script http-vuln-cve2014-8877 --script-args
http-vuln-cve2014-8877.cmd=dir,http-vuln-cve2014-8877.uri=/wordpress
42.96.170.128

12 验证Cisco ASA中的CVE-2014-2126,CVE-2014-2127,CVE-2014-21,CVE-2014-2129漏洞

nmap -p 443 --script
http-vuln-cve2014-2126,http-vuln-cve2014-2127,http-vuln-cve2014-2128,http-vuln-cve2014-2129
203.195.139.153

13验证低安全的 SSHv1sslv2协议

nmap --script sshv1,sslv2
www.haoshangjia.com

14 验证CVE-2014-0224
ssl-ccs-injection

nmap -Pn --script ssl-ccs-injection 203.195.139.153

15 验证ssl-cert证书问题

nmap -v -v --script ssl-cert
203.195.139.153

16验证SSL证书的有限期

nmap -Pn --script ssl-date
www.haoshangjia.com

17 验证CVE-2014-0160
OpenSSL Heartbleed bug

nmap -p 443 --script ssl-heartbleed,ssl-known-key
203.195.139.153

18 验证 Debian OpenSSL
keys

nmap -p 443 --script ssl-known-key
203.195.139.153

19 验证弱加密SSL套件

nmap --script ssl-enum-ciphers
203.195.139.153

20 验证CVE 2015-4000

nmap --script ssl-dh-params
www.haoshangjia.com

21 验证多种SSL漏洞问题

nmap 203.195.139.153 --vv --script
sshv1,ssl-ccs-injection,ssl-cert,ssl-date,ssl-dh-params,ssl-enum-ciphers,ssl-google-cert-catalog,ssl-heartbleed,ssl-known-key,sslv2

22 在网络中检测某主机是否存在窃听他人流量

nmap --script sniffer-detect 10.10.167.5

23 暴力破解telnet

nmap -p 23 --script telnet-brute
--script-args userdb=myusers.lst,passdb=mypwds.lst --script-args
telnet-brute.timeout=8s 203.195.139.153

24 验证telnet是否支持加密

nmap --script telnet-encryption
203.195.139.153

25 精准地确认端口上运行的服务

nmap -sV --script unusual-port
42.96.170.128

26 收集VNC信息

nmap --script vnc-info
 203.195.139.153

27 暴力破解VNC

nmap --script vnc-brute --script-args
brute.guesses=6,brute.emptypass=true,userdb=/root/dictionary/user.txt,brute.useraspass=true,passdb=/root/dictionary/pass.txt,brute.retries=3,brute.threads=2,brute.delay=3
42.96.170.128

#这个脚本挺长的,很多详细的参数,请参阅脚本的具体参数。

0x03 使用系列的nmap NSE 进行检查

#nmap脚本主要分为以下几类,在扫描时可根据需要设置--script=类别这种方式进行比较笼统的扫描:
auth: 负责处理鉴权证书(绕开鉴权)的脚本 
broadcast: 在局域网内探查更多服务开启状况,如dhcp/dns/sqlserver等服务  
brute: 提供暴力破解方式,针对常见的应用如http/snmp等  
default: 使用-sC或-A选项扫描时候默认的脚本,提供基本脚本扫描能力  
discovery: 对网络进行更多的信息,如SMB枚举、SNMP查询等  
dos: 用于进行拒绝服务攻击  
exploit: 利用已知的漏洞入侵系统  
external: 利用第三方的数据库或资源,例如进行whois解析  
fuzzer: 模糊测试的脚本,发送异常的包到目标机,探测出潜在漏洞 
intrusive: 入侵性的脚本,此类脚本可能引发对方的IDS/IPS的记录或屏蔽  
malware: 探测目标机是否感染了病毒、开启了后门等信息  
safe: 此类与intrusive相反,属于安全性脚本  
version: 负责增强服务与版本扫描(Version Detection)功能的脚本  
vuln: 负责检查目标机是否有常见的漏洞(Vulnerability)

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

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1 使用nmap对某主机进行一系列的证书鉴权检查

nmap --script auth 203.195.139.153

使用nmap在局域网内探查更多服务开启情况

nmap --script broadcast 10.10.167.6

使用nmap 对常见的服务进行暴力破解

nmap
--script brute 203.195.139.153

4 使用nmap 进行基本的扫描

nmap --script default 203.195.139.153

#nmap --sC 203.195.139.153

5 使用nmap 进行信息挖掘

nmap --script discovery 203.195.139.153

6 使用nmap 进行拒绝服务攻击

nmap --script dos 203.195.139.153

7 使用nmap 利用已知的漏洞入侵系统

nmap --script exploit 203.195.139.153

8 使用nmap 进行利用第三方的数据库或资源进行信息收集或者攻击

nmap --script
external 203.195.139.153

9 使用nmap 进行模糊测试,发送异常的包到目标机,探测出潜在漏洞 

nmap --script fuzzer 203.195.139.153

10 使用nmap 进行入侵,此类脚本可能引发对方的IDS/IPS的记录或屏蔽

nmap --script intrusive 203.195.139.153

11 使用nmap 探测目标机是否感染了病毒、开启了后门等信息

nmap
--script malware 203.195.139.153

12 使用nmap 对系统进行安全检查

nmap
--script safe 203.195.139.153

13 使用nmap 对目标机进行检查是否存在常见的漏洞

nmap
--script vuln 203.195.139.153

14 使用nmap 负责增强服务与版本扫描(Version Detection)功能的脚本

nmap
--script version 203.195.139.153

0x04 如何新建一个nmap 脚本扫描

至于如何使用nmap中脚本,本文建议,在nmap的图形化界面zenmap 中进行:

1 在zenmap 界面中,依次点击“profile”---"New Profile or Command"  (快捷键:Ctrl + P)

2 完成步骤1后,便会弹出了“ Profile Editor" 界面:

3 然后点击” Scripting“ ,将会显示下面的界面:

左侧---脚本的名称,点击勾选该脚本名称前面的小方框,即可使用该脚本;下拉选择其他脚本。

中上方框---脚本的名称、使用情景、使用格式、参考结果;中下框---设置脚本的各种参数。

右侧的大方框------每当点击中下框的某个参数时,此处便会显示那个脚本参数的说明。

4 当选定了XXX脚本后,一定要点击右框下的” Save Changes" .

5 完成上面的步骤后,我们回到zenmap的主界面,

0x05 结论

本文首先介绍使用nmap的基本背景和知识,对它有个基本全面的了解;然后详细说明了在使用nmap 进行验证多种常见漏洞,这些漏洞验证都是我们在漏扫和渗透测试中经常见到的;接着我们介绍使用一组nmap脚本进行基线检查,简单批量地使用一系列的脚本 对系统进行信息收集和漏洞检测;最后我们详细介绍了如何使用新建和使用一个nmap 的脚本,帮助读者自己独立使用NSE。

我们在使用nmap的时候往往忽视它最强大的NSE脚本扫描功能,其实这个庞大的脚本集合能够帮助我们进行网络连接故障诊断、网络流量路径分析、服务器的开放情况和运行情况,甚至还能用来进行端口渗透。在渗透测试中,好好利用nmap及其NSE脚本,往往有意想不到的收获。

使用nmap 验证多种漏洞的更多相关文章

  1. nmap扫描验证多种漏洞

    nmap在Kali Linux中是默认安装的.它不仅可以用来确定目标网络上计算机的存活状态,而且可以扫描各个计算机的操作系统.开放端口.服务,还有可能获得用户的证书. 命令结构: nmap -sS - ...

  2. SSH登陆验证绕过漏洞(cve-2018-10933)

    名称: SSH登陆验证绕过漏洞 CVE-ID: cve-2018-10933 EXPLOIT-DB: https://www.exploit-db.com/exploits/45638/ 平台: Li ...

  3. Android证书验证存漏洞 开发者身份信息可被篡改(转)

    原帖地址:http://bbs.pediy.com/showthread.php?p=1335278#post1335278 近期在国内网易,雷锋网等网站爆出谷歌市场上的索尼官方的备份与恢复应用&qu ...

  4. jQuery前端验证多种方式

    JQuery Validate使用总结:一.导入js库<script src="../js/jquery.js" type="text/javascript&quo ...

  5. Sun公司的产品AnswerBook存在多种漏洞

    一.未授权管理脚本访问漏洞: 1.受影响版本: Sun-AnswerBook2     1.2-1.4.2 2.攻击测试手段 http://a.b.c.d:8888/ab2/@AdminViewErr ...

  6. Phpspy 2011继续身份验证绕过漏洞

    Author: Tm3yShell7 官方目前下载已经修补上了 目前官方下载是2011.php, 文件名为2011ok.php的是带洞版本. 今天m0r5和我说phpspy2011 我都不知道2011 ...

  7. 网络安全学习阶段性总结:SQL注入|SSRF攻击|OS命令注入|身份验证漏洞|事物逻辑漏洞|目录遍历漏洞

    目录 SQL注入 什么是SQL注入? 掌握SQL注入之前需要了解的知识点 SQL注入情况流程分析 有完整的回显报错(最简单的情况)--检索数据: 在HTTP报文中利用注释---危险操作 检索隐藏数据: ...

  8. 主动扫描之Nmap

    主动扫描之Nmap 本文参考于李华峰等人的图书<Kali Linux2 网络渗透测试实践指南>2018年第1版 目录 主动扫描之Nmap 基本用法 主机发现 端口发现 扫描目标操作系统 扫 ...

  9. Nmap 进阶使用 [ 脚本篇 ]

    0×01 前言 因为今天的重点并非nmap本身的使用,主要还是想借这次机会给大家介绍一些在实战中相对比较实用的nmap脚本,所以关于nmap自身的一些基础选项就不多说了,详情可参考博客端口渗透相关文章 ...

随机推荐

  1. UC算法笔试题

    说实话,昨天UC的笔试题基本全是基础,但是太基础,直接导致很多都不能确定了.看来不管找工作还是找实习,一定要复习到位.好在我也一直是抱着打酱油的味道,实习与否不是特别在意,否则真心要鄙视死自己啦. 好 ...

  2. 【R笔记】R语言进阶之4:数据整形(reshape)

    R语言进阶之4:数据整形(reshape) 2013-05-31 10:15 xxx 网易博客 字号:T | T 从不同途径得到的数据的组织方式是多种多样的,很多数据都要经过整理才能进行有效的分析,数 ...

  3. Http报头Accept与Content-Type的区别(转)

    1.Accept属于请求头, Content-Type属于实体头. Http报头分为通用报头,请求报头,响应报头和实体报头. 请求方的http报头结构:通用报头|请求报头|实体报头 响应方的http报 ...

  4. python函数getopt用法

    python内建模块,用来处理命令行参数 格式:getopt(args, shortopts, longopts = []) 参数args一般是sys.argv[1:]sys.argv[0]表示执行文 ...

  5. vmware三种网络连接模式区别

    vmware有三种网络连接模式分别是 桥接模式 相当于给虚拟机分配了一个和主机同一个子网下的ip,此时该虚拟机相当于同一子网中一台主机,可以访问子网中任意一台主机,也可以访问外网. NAT模式 虚拟机 ...

  6. BZOJ 4174 tty的求助 莫比乌斯反演

    题目大意:求∑Nn=1∑Mm=1∑m−1k=0⌊nk+xm⌋ mod 998244353 如果n和m都已经确定了.如今要求这坨玩应: ∑m−1k=0⌊nk+xm⌋ =∑m−1k=0(⌊nk%m+xm⌋ ...

  7. JAVA加解密 -- 消息摘要算法

    消息摘要算法是一种单向加密算法 主要用于验证数据完整性,也是数字签名的核心算法 消息鉴别:指在接收方将原始信息进行摘要,然后与接收到的摘要信息进行对比 a.MD家族 – MD5(128位摘要信息) M ...

  8. 程序员之---C语言细节24(段错误、类型提升、sizeof &#39;A&#39;)

    主要内容:段错误.类型提升.sizeof  'A' #include <stdio.h> int main() { union test{ char a[10]; int b; }u; i ...

  9. CentOS6.5下docker的安装及遇到的问题和简单使用(已实践)

    转载自 CentOS6下docker的安装和使用 Docker是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.利用Linux的LXC.AUFS. Go语言.c ...

  10. iOS蓝牙原生封装,助力智能硬件开发

    代码地址如下:http://www.demodashi.com/demo/12010.html 人工智能自1956年提出以来,一直默默无闻,近年来人工智能的发展得到重视逐渐发展起步,智能硬件.智能手环 ...