使用nmap 进行多种安全评估[通俗易懂]

使用nmap 进行多种安全评估[通俗易懂]本文主要介绍漏洞扫描和渗透测试中会经常遇到的一些漏洞,并且尝试使用namp对这些被扫描工具扫描出来的漏洞进行人工手动验证

大家好,又见面了,我是你们的朋友全栈君。

0x00 前言

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

一是在漏洞工具中,进行多次的重复测试,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

使用nmap 进行多种安全评估[通俗易懂]

2 IIS 短文件泄露

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

使用nmap 进行多种安全评估[通俗易懂]

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

 使用nmap 进行多种安全评估[通俗易懂]

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

 使用nmap 进行多种安全评估[通俗易懂]

7验证 SSL POODLE information leak

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

 使用nmap 进行多种安全评估[通俗易懂]

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

使用nmap 进行多种安全评估[通俗易懂]

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验证低安全的 SSHv1,sslv2协议

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

18 验证弱加密SSL套件

nmap –script ssl-enum-ciphers 203.195.139.153

使用nmap 进行多种安全评估[通俗易懂]

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

使用nmap 进行多种安全评估[通俗易懂]

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

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

nmap –script broadcast 10.10.167.6

3 使用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)

使用nmap 进行多种安全评估[通俗易懂]

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

使用nmap 进行多种安全评估[通俗易懂]

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

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

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

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

使用nmap 进行多种安全评估[通俗易懂]

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

使用nmap 进行多种安全评估[通俗易懂]

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

使用nmap 进行多种安全评估[通俗易懂]

0x05 结论

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

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

欢迎大家分享更好的思路,热切期待^^_^^ !!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132065.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java 读写文件的两种方式

    java 读写文件的两种方式1.情景展示在实际开发过程中,对于文件的读写操作也是经常碰到的,如何用java完成对文件的准确无误的读写呢?2.场景分析在java中,我们可以通过数据流(二进制)来完成对文件的操作;其中,数据

    2022年7月1日
    22
  • windows本地用户及组的区别「建议收藏」

    windows本地用户及组的区别「建议收藏」Administrators(超级管理员组)用来管理注册用户或者具有一定权限的其他管理员,维护网站的运行。Administrators中的用户对计算机/域有不受限制的完全访问权,分配给该组的默认权

    2022年8月3日
    7
  • 分治算法详解_算法的优劣通常用什么来衡量

    分治算法详解_算法的优劣通常用什么来衡量分治算法详解 一、基本概念  在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)……   任何一个可以用计算机求解的问

    2025年8月14日
    2
  • uat测试环境是预生产环境_php开发环境与测试环境

    uat测试环境是预生产环境_php开发环境与测试环境开发环境:开发环境是程序猿们专门用于开发的服务器,配置可以比较随意,为了开发调试方便,一般打开全部错误报告。测试环境:一般是克隆一份生产环境的配置,一个程序在测试环境工作不正常,那么肯定不能把它发布到生产机上。生产环境:是指正式提供对外服务的,一般会关掉错误报告,打开错误日志。可以理解为包含所有的功能的环境,任何项目所使用的环境都以这个为基础,然后根据客户的个性化需求来做调整或者

    2022年9月30日
    2
  • 2020vue面试题及答案_人际关系面试题及答案

    2020vue面试题及答案_人际关系面试题及答案1、虚拟DOM中key的作用:key是虚拟DOM对象的标识,当状态中的数据发生变化时,Vue会根据【新数据】生成【新的虚拟DOM】,随后Vue进行【新虚拟DOM】的差异比较,比较规则如下:2、key的对比规则:1、旧虚拟DOM中找到了与新虚拟DOM相同的key:若虚拟DOM中内容没变,直接使用之前的真实DOM若虚拟DOM中内容变了,则生成新的真实DOM,随后替换掉页面中之前的真实DOM………

    2025年8月31日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号