elastic search 查询语句

部署了半个月,分析一下数据:

需要提前知道的是,tpot中,每天的数据存一个index,然后每个index里面有不同的type,每条请求一个document

共24万条请求:

查看整个集群所有数据

以7月23日为例,1.5万条请求:

查看某一index的所有数据

查看每天都能捕获到哪些type的请求,想要看所有type需要自己整理:

查看每个index的type

 dashboard中显示的请求都是攻击吗

dashboard中显示的honeypot中捕获的攻击请求只有cowrie,rdpy,elasticpot。

看了一下,cowire,rdpy中的请求基本上都算是攻击。

但是查看一下捕获到的elasticpot的请求:

查看某一type的所有数据,使用正则表达式*

src_ip 172.22.0.1是本地地址,这明明是我自己发的请求,却被当作攻击了,event_pot还被标做了alert。。。

然后用src_ip过滤掉自己的请求,发现就没有elasticpot攻击:

不等于

dashboard中没显示的请求就不是攻击吗

但是我们在type里还看到了许多其他的请求,那这些是不是攻击呢?

以suricata为例,我们看一下所有的suricata,八万条:

看一下请求的具体信息:

有的比较像攻击:src_ip不是本地ip,event_type的值为alert

有的一看就不是攻击:

例如上图这个event_type显示只是dns请求而已。

所以使用src_ip=192.168.0.233过滤掉所有dns请求:

过滤完直接从8w条变成1.5w条,没用的dns请求是真滴多啊。。。

但过滤出来的这1.5w条请求都是攻击么?

先筛选出event_type为alert的请求,5k多条,发现都是known attacker,src_ip都是陌生ip,可以肯定是攻击

不等于+等于双条件查询

然后筛选出event_type不为alert的请求,1w多条,发现也都是陌生的ip,而根据蜜罐的性质,蜜罐不向外提供服务,所以基本可以肯定这些是位置的攻击者,也都是攻击ip

不等于+不等于双条件查询

正则表达式过滤regexp(注意插入.要用\.,表示选择要用,匹配16-32之间的整数,只能[16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31],不能[16-31],但是可以[0-9])

匹配10.xxx.xxx.xxx的局域网地址:10\..+

匹配172.16-31.xxx.xxx的局域网地址:172\.[16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31]\..+

匹配192.168.xxx.xxx的局域网地址:192\.168\..+

匹配127.xxx.xxx.xxx的本地地址:127\..+

使用scroll分页查询

第一次查询。正常请求后面 加上?scroll=3m(这里3m表示缓存保留3min),然后从响应中取得_scroll_id来进行下一次分页请求。

下一次分页请求:POST _search/scroll 并在请求体中带上scroll和scroll_id参数即可

els查询:

https://coyee.com/article/10764-23-useful-elasticsearch-example-queries

https://blog.csdn.net/donghaixiaolongwang/article/details/57418306

原文地址:https://www.cnblogs.com/zealousness/p/9359228.html