如何把NMAP扫描结果同步到Elasticsearch?

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 本文讲的是如何把NMAP扫描结果同步到Elasticsearch?,如果您对信息安全感兴趣,那么您可能熟悉端口扫描工具nmap。扫描器是用于网络发现和安全审计的免费和开源(许可证)实用程序。许多网络管理员也会使用它发现网络以及监视主机或服务正常运行时间等任务。
本文讲的是 如何把NMAP扫描结果同步到Elasticsearch?如果您对信息安全感兴趣,那么您可能熟悉端口扫描工具nmap。扫描器是用于网络发现和安全审计的免费和开源(许可证)实用程序。许多网络管理员也会使用它发现网络以及监视主机或服务正常运行时间等任务。

要把nmap的扫描存储到Elasticsearch必须按照Elasticsearch的格式存储。Nmap有一个命令行参数,它允许您以xml格式化的报告输出nmap结果。比如我们要扫描scanme.nmap.org,这是一个经常用来测试nmap的主机。任何人都可以扫描scanme.nmap.org。

$ nmap -T5 -Pn -A -oX report.xml scanme.nmap.org

这将结果输出到report.xml当前目录中。您可以通过以下方式检查扫描结果:

$ cat report.xml 
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE nmaprun> 
<?xml-stylesheet href="file:///usr/bin/../share/nmap/nmap.xsl" type="text/xsl"?> 
<!-- Nmap 7.01 scan initiated Mon Jul 18 16:26:06 2016 as: nmap -T5 -Pn -A -oX report.xml scanme.nmap.org --> 
...

现在,我们需要收集这份报告。对于本教程,我们创建了一个目录“nmap”存储报告和配置。我们将假设有多个报告要解析。

$ mkdir nmap 
$ cd nmap

我正在修改logstash-nmap插件的github页面上的一个配置。为了能够使用我的配置,您需要从配置文件中引用的github页面下载一个模板。

$ wget https://raw.githubusercontent.com/logstash-plugins/logstash-codec-nmap/master/examples/elasticsearch/elasticsearch_nmap_template.json

启动Elasticsearch及Kibana,然手在自己的窗口中打开Kibana。

$ sudo service elasticsearch start 
$ cd〜/ kibana- * 
$ cd bin / 
$ ./kibana&

现在回到nmap目录。您现在应该只有这个目录中有两个文件。

$ cd ~/nmap 
$ ls elasticsearch_nmap_template.json report.xml

将您的logstash配置添加到目录。我将它添加到一个名为的文件中nmap-logstash.conf。

要使用logstash nmap编解码器插件,您需要安装它。导航到您的logstash目录。在我的服务器上,该目录位于/opt/logstash。

$ cd/ opt /logstash 
$ sudo bin /logstash-plugin install logstash-codec-nmap

您可能需要安装ruby-nmap才能安装此插件。在您这样做之前,请确保安装:

$ sudo apt-get install ruby-dev

这是你应该在你的nmap-logstash.conf文件中:

input { file { path => "$HOME/nmap/*.xml" start_position => "beginning" sincedb_path => "/dev/null" codec => nmap tags => [nmap] } } filter { if "nmap" in [tags] { # Don't emit documents for 'down' hosts if [status][state] == "down" { drop {} } mutate { # Drop HTTP headers and logstash server hostname remove_field => ["headers", "hostname"] } if "nmap_traceroute_link" == [type] { geoip { source => "[to][address]" target => "[to][geoip]" } geoip { source => "[from][address]" target => "[from][geoip]" } } if [ipv4] { geoip { source => ipv4 target => geoip } } } } output { if "nmap" in [tags] { elasticsearch { document_type => "nmap-reports" document_id => "%{[id]}" # Nmap data usually isn't too bad, so monthly rotation should be fine index => "nmap-logstash-%{+YYYY.MM}" template => "./elasticsearch_nmap_template.json" template_name => "logstash_nmap" } stdout { codec => json_lines } } }

现在你可以在你的配置上运行logstash。确保你有最新版本的logstash,特别是如果你无法安装logstash-codec-nmap插件。

$/opt/logstash/bin/logstash - f nmap -logstash.CONF

如果你在使用OpenVas或Nessus。有一个脚本叫做VulnToE可以使用,可用于将Nessus,OpenVas,Nikto和Nmap同步到Elasticsearch中。该脚本使用了Elasticsearch的Python API。

$git clone https//github.com/ChrisRimondi/VulntoES 
$cd VulntoEs/
$sudo pip install elasticsearch

在es中,创建要将数据索引到的索引。或者,您可以使用curl从服务器的命令行创建索引。

$curl -XPUT'localhost:9200/ nmap-vuln-to-es'

现在,索引你的nmap报告。

$python VulntoES.py -i ~/report.xml -e 127.0.0.1 -r nmap -I nmap-vuln-to-es

您可以创建Kibana中nmap数据的可视化,并最终从这些可视化创建仪表板。

如何把NMAP扫描结果同步到Elasticsearch?

结论

我们已将我们的nmap报告同步到Elasticsearch。使用VulnToE脚本也可以用于Nessus,OpenVas和Nikto报告。




原文发布时间为:2017年7月4日
本文作者:愣娃
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。
相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
30天前
|
关系型数据库 MySQL
elasticsearch对比mysql以及使用工具同步mysql数据全量增量
elasticsearch对比mysql以及使用工具同步mysql数据全量增量
21 0
|
7月前
|
JSON NoSQL 关系型数据库
Logstash同步MySql数据到Elasticsearch
Logstash同步MySql数据到Elasticsearch
119 0
|
7月前
|
canal 存储 搜索推荐
mysql同步数据到elasticsearch方案详解
通俗易懂,深入浅出讲清楚高级开发人员必备基础数据同步技能
|
SQL 分布式计算 数据可视化
使用Hadoop同步Elasticsearch数据(亿级)
使用hadoop同步亿级数据到elasticsearch索引实践,约15分钟同步9300万行数据。
|
canal 消息中间件 关系型数据库
MySQL同步数据到Elasticsearch
随着平台的业务日益增多,基于数据库的全文搜索查询速度较慢,已经无法满足需求。所以,决定基于Elasticsearch 做一个全文搜索平台,支持业务相关的搜索需求。那么第一个问题就是:如何从MySQL同步数据到Elasticsearch?
196 0
MySQL同步数据到Elasticsearch
|
canal Java 关系型数据库
Elastic实战:通过spring data elasticsearch实现索引的CRUD;实现mysql全量/增量同步到ES
elasticsearch官方的java客户端有tranport client,rest high level client,但进行索引的增删改查的操作不够简便。因此我们引入spring data elasticsearch来实现索引的CRUD
263 0
Elastic实战:通过spring data elasticsearch实现索引的CRUD;实现mysql全量/增量同步到ES
|
关系型数据库 MySQL
logstash同步MySQL数据到ElasticSearch
logstash同步MySQL数据到ElasticSearch
141 0
logstash同步MySQL数据到ElasticSearch
|
存储 监控 搜索推荐
整合ElasticSearch实现数据模糊搜索(Logstash同步Mysql数据)
组件介绍: elasticsearch:搜索引擎,用于存储待搜索数据 logstash:用于将mysql中的商品数据同步到搜索引擎中 elasticsearch-head(可选):elasticsearch可视化工具 kibana(可选):elasticsearch可视化工具 本文测试环境: springboot:1.5.16 elasticsearch:2.3.5(springboot1.5仅支持2.x的es) logstash:6.5.4
550 0
|
PHP 数据库
【ElasticSearch】在项目中如何使用ElasticSearch跟数据库同步数据
【ElasticSearch】在项目中如何使用ElasticSearch跟数据库同步数据
591 0
【ElasticSearch】在项目中如何使用ElasticSearch跟数据库同步数据
|
NoSQL MongoDB 数据库
elasticsearch同步mongodb--mongo connector的使用
elasticsearch同步mongodb--mongo connector的使用
206 0
elasticsearch同步mongodb--mongo connector的使用

热门文章

最新文章