SSH日志审计脚本优化

admin 2021年2月6日02:00:50评论8 views字数 1323阅读4分24秒阅读模式

在实际用的时候,感觉体验不怎么样,后来仔细想了一下, 觉得少了点什么东西,于是就加上了一个检测爆破是否成功的功能,这样就更直观的发现问题了

我还把失败的记录改成了,如果超过10条,那么不显示了,太多了,没必要,详细的保存在单独的txt里了

同时,使用了PrettyTable进行输出,更美观点

主要加了以下代码

 1def intrusion_detection(wfile,success_ip,failed_ip,fdst):
2    check_result=set(success_ip).intersection(set(failed_ip)) # 查看成功的IP和失败的IP中是否有交集,检查是否爆破成功
3    if check_result:
4        print("n[+]入侵检测:")
5        wfile.write("n[+]入侵检测: n")
6        prcheck=PrettyTable(field_names=["登录IP","结果","原因"])
7        for i in check_result:
8            if int(fdst[i])>5:
9                prcheck.add_row([i,"成功","该IP进行密码爆破,猜解到成功的密码后,登录了系统..."])
10                wfile.write("  检测到IP:"+str(i)+" 爆破成功n")
11            else:
12                wfile.write("  检测到IP:"+str(i)+" 可疑,请核实n")
13                prcheck.add_row([i,"可疑","该IP已登录过系统,但是因为次数过少不像是暴力破解,请核实..."])
14        print(prcheck)
15    else:
16        print("n[-]未发现有可疑|成功事件n")

我用set的方式来看两组数据中是否存在交集

1set(success_ip).intersection(set(failed_ip))

后来测试的时候,又发现了一个新的问题,因为有的时候只是手抖敲错了密码,并非是爆破导致的连接失败的操作被记录在日志里

所以稍微改了一下形式,并且输出了原因

1if int(fdst[i])>5:
2 prcheck.add_row([i,"成功","该IP进行密码爆破,猜解到成功的密码后,登录了系统..."])
3    wfile.write("  检测到IP:"+str(i)+" 爆破成功n")
4else:
5    wfile.write("  检测到IP:"+str(i)+" 可疑,请核实n")
6    prcheck.add_row([i,"可疑","该IP已登录过系统,但是因为次数过少不像是暴力破解,请核实..."])

效果图:

SSH日志审计脚本优化

github链接

1https://github.com/Ernket/SSH-log-audit

 

 

原文始发于微信公众号(E条咸鱼):SSH日志审计脚本优化

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年2月6日02:00:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   SSH日志审计脚本优化https://cn-sec.com/archives/1022614.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息