专栏首页Bypass使用ELK实时分析SSH暴力破解

使用ELK实时分析SSH暴力破解

在上一篇《通过rsyslog搭建集中日志服务器》,我们分享了如何通过rsyslog搭建集中日志服务器,收集系统日志,在本篇,我们会利用这些系统日志进行安全分析。

这是ELK入门到实践系列的第二篇文章,分享如何使用ELK实时分析SSH暴力破解。从一张图看出SSH登录时间、登录状态、用户名字典,尝试次数、来源IP等,可洞悉SSH暴力破解,迅速定位攻击者。

安全日志分析

linux系统的安全日志为/var/log/secure,记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH登录。

登录成功:

Nov  7 00:57:50 localhost sshd[22514]: Accepted password for root from 192.168.28.1 port 18415 ssh2
Nov  7 00:57:50 localhost sshd[22514]: pam_unix(sshd:session): session opened for user root by (uid=0

登录失败:

Nov  7 00:59:12 localhost sshd[22602]: Failed password for root from 192.168.28.1 port 18443 ssh2
Nov  7 00:59:14 localhost sshd[22602]: error: Received disconnect from 192.168.28.1 port 18443:0:  [preauth]

通过以上信息,我们只需要一条信息就可以判断登录成功或失败。

# SSH登录成功
Nov  7 00:57:50 localhost sshd[22514]: Accepted password for root from 192.168.28.1 port 18415 ssh2
#  SSH登录失败
Nov  7 00:59:12 localhost sshd[22602]: Failed password for root from 192.168.28.1 port 18443 ssh2

Grok正则捕获

基于上述,我们来构造Grok正则捕获关键信息字段。

在线grok调试地址:http://grokdebug.herokuapp.com/

Logstash安装配置

1、下载安装(环境要求:JDK8)

wget https://artifacts.elastic.co/downloads/logstash/logstash-7.3.2.tar.gz
tar -zxvf logstash-7.3.2.tar.gz
cp -r logstash-7.3.2 /usr/local/logstash

2、测试

/usr/local/logstash/bin/logstash -e 'input { stdin{}} output{ stdout{}}'

3、Logstash配置

input {
  file {
    path => "/var/log/secure"
  }
}

filter {
    grok {
        match => {            "message" => ".*sshd\[\d+\]: %{WORD:status} .* %{USER:username} from.*%{IP:clientip}.*"
        }
    }
}
output {     if ([status] == "Accepted" or [status] == "Failed") {
          elasticsearch {
            hosts => ["http://192.168.28.151:9200"]
            index => "secure-%{+YYYY.MM.dd}"
            #user => "elastic"
            #password => "changeme"
          }
          stdout {
            codec => rubydebug
          }
    }
}

Elasticsearch部署

1、安装

yum -y install elasticsearch

2、配置

cd /etc/elasticsearch/vi  elasticsearch.yml    network.host: 0.0.0.0    http.port: 9200

3、启动ES

/bin/systemctl daemon-reloadsystemctl start elasticsearch

Kibana数据展示

安装部署

# 安装yum -y install kibana# 配置cd /etc/kibana
cp kibana.yml kibana.yml.bak
vi kibana.yml
    server.port: 5601
    server.host: "0.0.0.0"
    elasticsearch.hosts: ["http://192.168.28.151:9200"]# 启动systemctl daemon-reload
systemctl restart kibana

绘制数据表

可以直观的看到攻击者所使用的用户名字典,登录成功或者失败的次数。

绘制折线图

Y轴为登录失败次数,X轴为登录时间,对SSH登录状态和IP地址做了一个直观的统计。

制作仪表盘

将前面绘制的数据表和折线图导入到一个仪表盘,就可以通过一张图进行安全日志分析,实时洞悉SSH暴力破解。

结语

本文中,通过对secure日志的分析,构建Grok正则捕获关键字段信息,然后将日志数据导入ELK进行实时分析。基于ELK实现日志收集分析,有着更多的应用场景,慢慢去摸索,继续分享一些最佳实践。

本文分享自微信公众号 - Bypass(Bypass--)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 渗透利器 | 提权辅助工具箱

    作为技术宅的我,日常最大的爱好就是逛论坛。某日看到论坛里有一款基于主机的漏洞扫描工具,用来查找主机上公开EXP的CVE。嗯嗯,我想还是叫提权辅助工具可能会更顺口...

    Bypass
  • 在线检测你的密码是否被泄露

    在互联网上,每天都有网站遭受黑客攻击,用户数据被窃取,这些数据通常包含用户名、密码(加密字段,甚至可能是明文)、电子邮件地址、IP地址等,用户的隐私安全将受到极...

    Bypass
  • 使用ELK分析Windows事件日志

    这是ELK入门到实践系列的第三篇文章,分享如何使用ELK分析Windows事件日志。

    Bypass
  • Architecture Components ViewModel的控制。

    前言 作为MVVM 系列的第二篇,我们来看一下之前提出的第二个问题,就是ViewModel是如果控制生命周期的,并且保证在一定范围内的唯一性。 ViewMode...

    我就是马云飞
  • Java8新特性

    1. Lambda 表达式 2. 函数式接口 3. 方法引用与构造器引用 4. Stream API 5. 中的默认方法与静态方法 6....

    用户1212940
  • python内置常用高阶函数(列出了5个

    引用自:http://www.cnblogs.com/duyaya/p/8562898.html

    py3study
  • 浅析PropertySource 基本使用

    一、PropertySource 简介二、@PropertySource与Environment读取配置文件三、@PropertySource与@Value读取...

    cxuan
  • JVM笔记-前端编译与优化

    所谓”编译“,通俗来讲就是把我们写的代码“翻译“成机器可以读懂的机器码。而编译器就是做这个翻译工作的。

    WriteOnRead
  • 【设计模式自习室】桥接模式 Bridge Pattern:处理多维度变化

    桥接模式是软件设计模式中最复杂的模式之一,它把事物对象和其具体行为、具体特征分离开来,使它们可以各自独立的变化。

    后端技术漫谈
  • 浅谈PHP中的设计模式

    沈唁

扫码关注云+社区

领取腾讯云代金券