转载至

https://www.4hou.com/technology/10481.html

 

导语:Nmap本身内置有丰富的NSE脚本,可以非常方便的利用起来,当然也可以使用定制化的脚本完成个人的需求。本文将讲述如何利用Nmap的Scripts检测CVE漏洞。

Nmap是一款应用最广泛的安全扫描工具,备受渗透人员和黑客的青睐,在对目标服务器进行扫描的时候,能够快速识别潜在的漏洞。NSE(Nmap Scripting Engine)作为Nmap的一部分,具有强大灵活的特性,允许使用者编写自己的脚本来完成各种各样的网络扫描任务。Nmap本身内置有丰富的NSE脚本,可以非常方便的利用起来,当然也可以使用定制化的脚本完成个人的需求。今天就要讲讲如何利用Nmap的Scripts检测CVE漏洞。

Nmap有一个少为人知的部分是NSE脚本引擎,NSE是Nmap的最强大和灵活的功能之一。它允许用户编写(并共享)简单的脚本来自动执行各种网络任务。Nmap内置了全面的NSE脚本集合,用户可以轻松使用这些Nse脚本或者创建自定义Nse脚本以满足他们的个性化需求。

使用NSE脚本更快地查找更多漏洞

在这里,我将一次演示两个NSE脚本,nmap-vulnersvulscan。这两种脚本的设计都是为了增强Nmap的版本检测,为特定服务(如SSH,RDP,SMB等)生成相关的CVE信息。CVE或通用漏洞披露是安全研究人员使用的一种方法,它利用数据库对单个漏洞进行编目和引用。

例如,漏洞利用数据库是公开披露的漏洞的流行数据库。Exploit-DB使用CVE编制与特定版本的服务(如“SSH v7.2”)相关的单个漏洞和漏洞。以下是Exploit-DB的屏幕截图…请注意分配给此特定SSH漏洞的CVE编号。

nmap-vulners和vulscan都可以使用CVE记录来增强Nmap的版本检测。Nmap将识别已扫描服务的版本信息。NSE脚本将获取这些信息并生成可用于利用该服务的已知CVE。这使查找漏洞变得更简单。

下面是不使用NSE脚本的Nmap版本检测示例。Nmap使用版本“OpenSSH 4.3”在端口22上发现了一个SSH服务。

使用NSE脚本的服务器的例子。我们可以看到现在有更多的信息输出。

nmap-vulners NSE脚本(以红色突出显示)报告了过去几年中披露的十几个CVE。nmap-vulners CVEs按严重性组织,“9.3”开始最严重,位于列表顶部,因此值得深入研究。vulscan NSE脚本(以蓝色突出显示)还报告了十多个与OpenSSH v4.3相关的有趣漏洞。

这两个NSE脚本在显示与易受攻击的服务相关的有用信息方面做得非常出色。每次我们使用NSE脚本时,Nmap-vulners都会查询Vulners exploit数据库。另一方面,Vulscan会在我们的计算机上查询当我们第一次下载vulscan时预先配置的本地数据库。

现在,在上面的屏幕截图中有很多内容,所以让我们先来学习如何在使用它们之前安装这些NSE脚本。

安装NSE脚本

步骤1 安装Nmap-Vulners

要安装nmap-vulners脚本,我们首先使用cd切换到Nmap脚本目录

cd /usr/share/nmap/scripts/

然后,通过在终端中输入以下命令来克隆nmap-vulners GitHub存储库。

git clone https://github.com/vulnersCom/nmap-vulners.git

nmap-vulners安装后不需要配置

第2步 安装Vulscan

要安装vulscan,我们还需要将GitHub存储库克隆到Nmap脚本目录中。键入下面的命令来执行此操作。

git clone https://github.com/scipag/vulscan.git

如前所述,vulscan利用本地存储在我们计算机上的预配置数据库。我们可以在vulscan目录的根目录中查看这些数据库。运行以下命令列出可用的数据库。

ls vulscan/*.csv

Vulscan支持许多优秀的漏洞数据库。这是一个完整的列表:

· scipvuldb.csv

· cve.csv

· osvdb.csv

· securityfocus.csv

· securitytracker.csv

· xforce.csv

· expliotdb.csv

· openvas.csv

为确保数据库完全保持最新,我们可以使用vulscan /utilities/updater/目录中的updateFiles.sh脚本。通过在终端中输入以下命令更改到更新程序目录。

cd vulscan/utilities/updater/

然后,使用下面的命令确保该文件具有在计算机上执行的适当权限。

chmod+x updateFiles.sh

然后,我们可以通过在我们的终端中输入以下命令来执行和运行脚本。

./updateFiles.sh

步骤3 使用Nmap-Vulners进行扫描

使用NSE脚本很简单。我们所要做的就是将–script参数添加到我们的Nmap命令中,并告诉Nmap使用哪个NSE脚本。要使用nmap-vulners脚本,我们将使用下面的命令。

nmap --script nmap-vulners -sV <目标IP>

该-sV是绝对必要的。使用-sV,我们告诉Nmap探测版本信息的目标地址。如果Nmap不生成版本信息,nmap-vulners将不会有任何数据来查询Vulners数据库。使用这些NSE脚本时始终使用-sV。

步骤4使用Vulscan进行扫描

我们可以像nmap-vulners一样使用vulscan NSE脚本:

nmap --script vulscan -sV <目标IP>

默认情况下,vulscan会一次查询所有前面提到的数据库!正如我们在上面的图片中看到的那样,消化的信息量非常大。这比我们需要的信息要多得多。我强烈建议一次只查询一个数据库。我们可以通过将vulscandb参数添加到我们的Nmap命令并指定数据库来实现此目的,如下面的示例所示。

nmap --script vulscan --script-args vulscandb = database_name -sV <目标IP>
nmap --script vulscan --script-args vulscandb = scipvuldb.csv -sV <目标IP>
nmap --script vulscan --script-args vulscandb = exploitdb.csv -sV <目标IP>
nmap --script vulscan --script-args vulscandb = securitytracker.csv -sV <目标IP>

第5步 合并为一个命令

NSE脚本作为安全扫描器显着提高了Nmap的多功能性,范围。为了充分利用Nmap的版本扫描,我们可以在一个命令中使用nmap-vulners和vulscan。要执行此操作,请在终端中输入以下命令。

nmap --script nmap-vulners,vulscan --script-args vulscandb = scipvuldb.csv -sV <目标IP>

Nmap简单的漏扫的更多相关文章

  1. 商业web漏扫神器——appscan篇

      版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/dongfei2033/article/details/78472507 很快,已经到了三大商业漏 ...

  2. [推荐] 网络侦查工具 NMAP 简单入门

    [推荐] 网络侦查工具 NMAP 简单入门 # 前言 作为一只运维开发,总是避不开要和网络打交道的.尤其是当自身能力到达瓶颈,开始从事云计算以求突破.会有搭建多台虚拟机的需要,这时候如果在手工的查询 ...

  3. WEB渗透测试之三大漏扫神器

    通过踩点和查点,已经能确定渗透的目标网站.接下来可以选择使用漏扫工具进行初步的检测,可以极大的提高工作的效率. 功欲善其事必先利其器,下面介绍三款适用于企业级漏洞扫描的软件 1.AWVS AWVS ( ...

  4. nmap简单使用方法

    1.作用扫描整个网络的主机服务状态和存活优点,快速,准确,效率高2.nmap 选项 Usage: nmap [Scan Type(s)] [Options] {target specification ...

  5. Nmap简单扫描

    Nmap所识别的6个端口状态. open(开放的) 应用程序正在该端口接收TCP 连接或者UDP报文.发现这一点常常是端口扫描 的主要目标.安全意识强的人们知道每个开放的端口 都是攻击的入口.攻击者或 ...

  6. nmap简单使用

    探测同网段ip的存活及开放端口很方便-nmap,行千里者半九十,在于恒心! Nmap 7.40 ( https://nmap.org ) Usage: nmap [Scan Type(s)] [Opt ...

  7. Nmap 简单功能介绍/TCP Header/常见端口

    Nmap:Network Mapper,网络扫描和嗅探的工具包 基本功能有3个: 1.扫描主机端口,嗅探所提供的网络服务 2.探测一组主机是否在线 3.推断主机所用的操作系统,到达主机经过的路由,系统 ...

  8. w3af漏扫的基本使用

    一.安装 apt安装 apt-get update apt-get install -y w3af 出现无法定位软件包 源码安装 sudo apt-get install git sudo apt-g ...

  9. 小白日记15:kali渗透测试之弱点扫描-漏扫三招、漏洞管理、CVE、CVSS、NVD

    发现漏洞 弱点发现方法: 1.基于端口服务扫描结果版本信息,比对其是否为最新版本,若不是则去其 官网查看其补丁列表,然后去逐个尝试,但是此法弊端很大,因为各种端口应用比较多,造成耗时大. 2.搜索已公 ...

随机推荐

  1. Fix Scheduled Task Won’t Run for .BAT File

    Step 1: Check File/Folder Permissions The first step to fixing this issue is ensuring that the accou ...

  2. springboot-oracle工程win下正常,centos下不能访问数据库

    工程在win下正常运行,部署到centos下出现下述异常: ### Error querying database. Cause: org.springframework.jdbc.CannotGet ...

  3. js数组的所有方法

    修改器方法 下面的这些方法会改变调用它们的对象自身的值: Array.prototype.copyWithin()  在数组内部,将一段元素序列拷贝到另一段元素序列上,覆盖原有的值. Array.pr ...

  4. 【Day1】3.数据类型

     视频地址(全部) https://edu.csdn.net/course/detail/26057 课件地址(全部) https://download.csdn.net/download/gentl ...

  5. deep_learning_Function_sklearn的train_test_split()

    sklearn的train_test_split   train_test_split函数用于将矩阵随机划分为训练子集和测试子集,并返回划分好的训练集测试集样本和训练集测试集标签. 格式: X_tra ...

  6. resultMap自定义映射---8.3.1. 解决列名(表中的字段名称)和实体类中的属性名不一致

    1.1.1.1.      步骤一:将驼峰匹配注释掉 --------------测试完成后仍然 回来开启  其他地方可能用到 一旦注释掉驼峰匹配,那么再通过queryUserById查询的结果中,用 ...

  7. python基础编程:生成器、迭代器、time模块、序列化模块、反序列化模块、日志模块

    目录: 生成器 迭代器 模块 time 序列化 反序列化 日志 一.生成器 列表生成式: a = [1,2,3,3,4,5,6,7,8,9,10] a = [i+1 for i in a ] prin ...

  8. 自动化测试 selenium 测试软件安装

      一.自动化测试优点 1.对程序的回归测试更方便.在程修改的比较平凡的时候,表现的更明显. 2.可以代替测试人员运行更繁琐的测试,也可以代替测试人员不可能完成的操作(比如连续点击50次) 3.更好的 ...

  9. QTP(3)

    Test3001_Flight4a_手动启动录制购票 (VBS脚本) Window("Flight Reservation").WinObject("Date of Fl ...

  10. Python中的操作符及优先级

    附注: 1.  Python中的按位运算符是把数字看作二进制来进行计算的.Python中的按位运算法则如下: 按位与   ( bitwise and of x and y ) &  举例: 5 ...