使用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脚本,往往有意想不到的收获。

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • python趣味编程100例pdf(python游戏趣味编程)

    1 Python基础知识1.1简介1.2诞生1.3应用1.4优点2 开发环境配置2.1Python下载与安装2.2VSCode安装2.3VSCode辅助插件3 VSCode使用3.1Python文件创建3.2简单输出代码测试4 输出与变量4.1Python的输出语句4.2Python的变量及类型4.3输出变量案例练习5 输入与判断5.1Python的输入语句5.2…

  • 静态代理和动态代理的理解一样吗_动态代理原理怎么理解

    静态代理和动态代理的理解一样吗_动态代理原理怎么理解Java静态代理静态代理通常用于对原有业务逻辑的扩充。比如持有二方包的某个类,并调用了其中的某些方法。然后出于某种原因,比如记录日志、打印方法执行时间,但是又不好将这些逻辑写入二方包的方法里。所以可以创建一个代理类实现和二方方法相同的方法,通过让代理类持有真实对象,然后在原代码中调用代理类方法,来达到添加我们需要业务逻辑的目的。这其实也就是代理模式的一种实现,通过对真实对象的封装

    2022年10月16日
  • dga 分析_tcga数据库分析

    dga 分析_tcga数据库分析02n-0iy6gn3ozzwmyu.7i43n9qil1g1z2-.com0e527eaf_5ec5_4623_9fe9_e459583acd72.com0fmgm1cuu7h1279dghgka0ltg.com0gqo9jx0ir0rjy4b.com0hm4mqw9hoe3gvajwi.com-0j2zkzul4p5v8zo4d0m.127f5zlwuhq7yy2qufp6l.com…

  • Centos7安装mysql+keepalived 高可用环境[通俗易懂]

    Centos7安装mysql+keepalived 高可用环境[通俗易懂]一、环境准备1.节点信息节点IP 节点名称 系统 软件及版本 192.168.51.187 node187 CentOS7 keepalived-1.3.5 mysql-5.7.24 192.168.51.226 node226 CentOS7 2.虚拟VIP虚拟VIP 192.168.51.170 3.初始化,在两个节点上进行常用工具的安装yuminstallgccgcc…

  • python基础(1)python语法规范

    python基础(1)python语法规范python语法规范python的语法规范非常重要,简洁明了是python的特性,以下是python语法的一些说明python3的编码格式是unicode(utf-8)标识符的规则:由字母、数字

发表回复

您的电子邮箱地址不会被公开。

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