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

本文讲的是如何把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。使用VulnToE脚本也可以用于Nessus,OpenVas和Nikto报告。

原文发布时间为:2017年7月4日

本文作者:愣娃

本文来自合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。

原文链接

时间: 2024-09-17 04:25:27

如何把NMAP扫描结果同步到Elasticsearch?的相关文章

HBase数据同步到ElasticSearch的方案

ElasticSearch的River机制 ElasticSearch自身提供了一个River机制,用于同步数据. 这里可以找到官方目前推荐的River: http://www.elasticsearch.org/guide/en/elasticsearch/rivers/current/ 但是官方没有提供HBase的River. 其实ES的River非常简单,就是一个用户打包好的jar包,ES负责找到一个node,并启动这个River.如果node失效了,会自动找另外一个node来启动这个Ri

Red Flag Asianux Server 3系统管理:Nmap扫描工具

Red Flag Asianux Server 3中提供了一个网络探索工具和安全扫描器--Nmap. 扫描器是一种自动检测远程或本地主机安全弱点的程序.使用扫描器,可以获得远程服务器的大量信息,通过这些信息,可以了解到远程主机存在的安全问题,从而能够及时修补系统的安全隐患.同时,扫描器也能够为攻击者提供很大的方便,可以大大简化他们的工作. 扫描器一般会先向远程 TCP/IP端口发出请求,记录目标给予的回答,然后对应答信息进行分析.通过这种方法,可以搜集到目标主机的各种有用信息,比如,端口是否开放

求大神指教-awk过滤nmap扫描结果.求大神解答

问题描述 awk过滤nmap扫描结果.求大神解答 nmap扫描结果 Interesting ports on 172.22.43.251: PORT STATE SERVICE 23/tcp open telnet 80/tcp open http 135/tcp filtered msrpc 139/tcp filtered netbios-ssn 445/tcp filtered microsoft-ds 514/tcp filtered shell 1025/tcp filtered NF

巧用python和libnmapd,提取Nmap扫描结果_python

每当我进行内网渗透面对大量主机和服务时,我总是习惯使用自动化的方式从 nmap 扫描结果中提取信息.这样有利于自动化检测不同类型的服务,例如对 web 服务进行路径爆破,测试 SSL/TLS 服务使用的密钥或协议,以及其他有针对性的测试. 我在渗透测试中也会经常使用到 IPthon 或 *nix shell,而这些又都能够通过 Python 来访问,无论是直接在脚本中使用.在 REPL 环境下使用,还是将代码写入到磁盘上然后通过 shell 命令访问都是非常好用的. 为了完成这些,libnmap

自动执行Nmap扫描的工具:LazyMap

LazyMap可以自动进行nmap扫描,并且能自动生成定制的Nessus策略. 特点 扫描存活的设备 对发现的设备自动进行端口扫描 可以同时在多个网卡上运行多个实例 为每次扫描生成一个参考目录 以Nessus格式输出开放的端口,实现在Nessus中快速扫描 默认以T4速度扫描.如果你认为这太慢了,在扫描窗口中输入CTRL C,它就会清空并重新以T5速度扫描. 日志记录开始和结束时间.存活主机.开放端口 针对扫描出的端口,自动创建一个定制的Nessus策略,加快扫描速度 请仔细阅读脚本的开头部分,

es同步数据-Elasticsearch使用elasticsearch-river-jdbc插件操作Mysql遇到的问题。

问题描述 Elasticsearch使用elasticsearch-river-jdbc插件操作Mysql遇到的问题. 我用elasticsearch-river-jdbc添加了一个mysql的数据源.代码如下:curl -XPUT 'localhost:9200/_river/bankinfo/_meta' -d '{strategy"" : ""simple""interval"" : 0flush_interval&qu

nmap扫描服务器端口(远程桌面端口)_Linux

我经常用它来检测远程的 Windows服务器的ip地址,因为不是固定ip地址,该服务器的ip地址会经常变化,但是有个规律,只在一个网段内变化,这样就给ip地址的确定带来 了方便.1. 如果没有安装nmap,就安装 yum install -y nmap2. 扫描指定网段的远程桌面连接端口nmap -sT -p3389 218.206.112.0/243. 如果觉得输出太多,可以用 grep 命令过滤nmap -sT -p3389 218.206.112.0/24 | grep -B2 open 

Linux安全扫描工具Nmap用法及参数详解

  扫描器是一种能够自动检测主机安全性弱点的程序.扫描器通过发送特定的网络数据包,记录目标主机的应答消息,从而收集关于目标主机的各种信息.目前网络上有很多扫描软件,比较著名的扫描器有SSS,X-Scan,Superscan等,功能最强大的当然是Nmap. Nmap(Network Mapper)是一款开放源代码的网络探测和安全审核工具. 它用于快速扫描一个网络和一台主机开放的端口,还能使用TCP/IP协议栈特征探测远程主机的操作系统类型.nmap支持很多扫描技术,例如:UDP.TCP conne

Linux下NMAP常用扫描简介(二)

在我们之前的 NMAP 安装一文中,列出了 10 种不同的 ZeNMAP 扫描模式,大多数的模式使用了不同的参数.各种不同参数代表执行不同的扫描模式.之前我们介绍过两种扫描类型 PING 扫描 和 UDP 扫描,这篇文章将介绍最后剩下的两种常用扫描类型. 四种通用扫描类型 下面列出了最常用的四种扫描类型: PING 扫描(-sP) TCP SYN 扫描(-sS) TCP Connect() 扫描(-sT) UDP 扫描(-sU) 当我们利用 NMAP 来执行扫描的时候,这四种扫描类型是我们需要熟