python统计通过暴力破解尝试登陆本机的ip和次数

1、需要root用户执行

2、将会在脚本所在目录生成hosts.deny文件,里面存数据

脚本奉上【本人菜鸟,千万不要喷啊】:

#!/usr/bin/python
# _*_coding:utf-8 _*_

import time
import re
import sys
import os
from datetime import date

logfile = r‘/var/log/secure‘
current_path = sys.path[0]
denyfile = r‘/‘+current_path+‘/hosts.deny‘
months_31 = [‘Jan‘,‘Mar‘,‘May‘,‘Jul‘,‘Aug‘,‘Oct‘,‘Dec‘]
months_30 = [‘Apr‘,‘Jun‘,‘Sep‘,‘Nov‘]
month_28or29 = ‘Feb‘
months = {
          ‘Jan‘:1,‘Feb‘:2,‘Mar‘:3,‘Apr‘:4,‘May‘:5,‘Jun‘:6,
          ‘Jul‘:7,‘Aug‘:8,‘Sep‘:9,‘Oct‘:10,‘Nov‘:11,‘Dec‘:12
         }
month_days = {}
for mon in months_31:
    month_days[mon] = 31
for mon in months_30:
    month_days[mon] = 30
if date.isocalendar(date.today())[0] % 4 == 0:
    month_days[month_28or29] = 29
else:
    month_days[month_28or29] = 28

def copyFiles(sourceFile, targetFile):
    open(targetFile, "wb").write(open(sourceFile, "rb").read())

def search_source():
    t = date.today()
    month = t.strftime(‘%b‘)
    day = t.strftime(‘%d‘)
    pat = re.compile(‘.+sshd.+Failed password.+ (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) .+‘)
    lines = []
    f = open(logfile,‘r‘)
    for line in f:
        if line.split()[0] == month and (int(day) - int(line.split()[1])) < 7 and (int(day) - int(line.split()[1])) >= 0:
            if re.search(pat,line):
                 lines.append(line)
        elif (months[month] - months[line.split()[0]]) == 1 or (months[month] - months[line.split()[0]]) == -11:
            if (int(day) + month_days[line.split()[0]] - int(line.split()[1])) < 7 and re.search(pat,line):
                lines.append(line)
    return lines

def count_ips(lines):
    count = {}
    if len(lines) == 0:
        print ‘No one use ssh and failed.‘
        raise SystemExit
    pat = re.compile(‘ (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) ‘)
    for line in lines:
        ip = re.findall(pat,line)[0]
        if ip in count:
            count[ip] += 1
        else:
            count[ip] = 1
    return count

def deny_ips(count):
    f = open(denyfile,‘w‘)
    valve = 50
    for ip in count:
        if count[ip] >= valve:
            word = ‘ALL: %s #failed %d times in a week.\n‘ % (ip,count[ip])
            f.write(word)
    f.close()

def main():
    current_path=sys.path[0]
    if os.path.isfile(current_path+"/hosts.deny"):
        copyFiles(current_path+"/hosts.deny", current_path+"/hosts.deny."+str(int(time.time())))
    lines = search_source()
    count = count_ips(lines)
    deny_ips(count)

if __name__ == ‘__main__‘:
    main()
时间: 2024-08-28 21:19:23

python统计通过暴力破解尝试登陆本机的ip和次数的相关文章

利用Python自动生成暴力破解的字典

Python是一款非常强大的语言.用于测试时它非常有效,因此Python越来越受到欢迎. 因此,在此次教程中我将聊一聊如何在Python中生成字典,并将它用于任何你想要的用途. 前提要求 1,Python 2.7(对于Python 3.x的版本基本相同,你只需要做一些微小调整) 2,Peace of mine(作者开的一个玩笑,这是一首歌名) 如果你用virtualenv搭建Python开发环境,请确保已经安装了itertools.因为我们将会用到itertools生成字典.我们将一步一步地演示

centos 7 DenyHosts 安装 防暴力破解ssh登陆

为了减少软件扫描ssh登陆 还是用这个比较好点  默认端口号22 也要改 登陆密码也不要使用 弱口令 123456 这样的 Description DenyHosts is a python program that automatically blocks ssh attacks by adding entries to /etc/hosts.deny. DenyHosts will also inform Linux administrators about offending hosts,

2-3 sshd服务---暴力破解应对策略

  sshd服务暴力破解步骤 sshd暴力破解方法 防止暴力破解调优 1. 变更默认端口 2. 变更root用户 3. 日志监控-->防止暴力破解(fail2ban应用) fail2ban详解 在初始化的服务器中,20种ssh服务调优方法! 技术来源于生活!!! =============================================== sshd服务暴力破解步骤 第一步:确认目标IP地址 第二步:确认目标端口--->根据目标开放端口,确定其操作系统 第三步:运行暴力破解程序

云平台数据库安全系列之(一)暴力破解

各行业的企业.个人.开发者希望以低成本的方式实现IT运维外包,通过互联网云服务器实现快速数据分享,充分享受云计算带来的便利,这正是云的魅力所在. 对于快速增长的云应用,在享受随时.随地.随需的高效云服务的同时,企业和个人用户同样面临一个不容忽视的问题:企业重要数据和个人隐私数据保存在云平台的数据库中,如果这些数据资产丢失将会造成巨大损失. 一.云平台下暴力破解攻击现状 暴力破解攻击是云用户面临的最主要威胁之一,以某云平台防护的日常安全运营记录为例,每周黑客对云租户的暴力破解数量高达数亿次.下图是

如何有效防范暴力破解和敏感信息穷举漏洞

我们浏览网站经常会用到一些验证码,主要目的是防止来自暴力破解或密码穷举等方面的攻击, 但有时候验证码的出现也会影响用户的浏览体验,解决方案之一就是设置一个抛错阀值,当有恶意用户 在尝试暴力破解或穷举的时候输错次数超过阀值,便触发验证码框的弹出,这样既可以阻止攻击者的 恶意行为又可以提高合法用户的浏览体验. 那么trouble来了,我通过什么信息去标识一个用户呢?解决方案有很多种. 对于已注册过的用户 已经注册过的用户肯定有自己的用户ID,而且这个ID是不会变的,那么就可以利用这个ID做全局变量,

网络攻防研究第001篇:尝试暴力破解某高校研究生管理系统学生密码

前言 如果你是在校大学生,而且还对网络攻防比较感兴趣的话,相信你最开始尝试渗透的莫过于所在院校的学生管理系统.因为一般来说这样的系统往往比较薄弱,拿来练手那是再合适不过的了.作为本系列的第一篇文章,我将会利用暴力破解的方式,尝试对某高校的研究生管理系统的学生密码进行破解.由于这个管理系统的网站属于该高校的内网资源,外网是无法访问的,因此大家就不要尝试按照文中的内容来对文中出现的网址进行访问了.利用本文所论述的暴力破解思想,可以帮助大家更好地认识我们的网络,也有助于了解目标网站是否安全.那么在这里

[小技巧] Python 脚本暴力破解 HC2600 机顶盒管理密码

家里最近接入了广电有线电视,配了三个创维 HC2600 机顶盒,并且每个机顶盒还带有无线路由器功能. 免费赠送 Internet 接入服务倒也没什么,不过机顶盒内置的 WIFI 实在有点寒酸:只支持 2.4 GHz 频段下 802.11n 150 Mbps 速率的传输.2.4 GHz 频段本来就很拥挤,用户体验并不好,要是和支持 802.11 ac 的双频无线路由器混用的话,恐怕反而会因为干扰起到反作用. 然而要对 HC2600 机顶盒作任何配置修改,都需要管理员密码.网上搜索到 HC2600

python 暴力破解密码脚本

以下,仅为个人测试代码,环境也是测试环境,暴力破解原理都是一样的, 假设要暴力破解登陆网站www.a.com 用户 testUser的密码, 首先,该网站登陆的验证要支持 无限次的密码尝试 假设testUser 的密码为 6位的纯数字 1:先长成 6位纯数字密码字典 import os pds=[] rg=range(0,10) for first in rg: for second in rg: for three in rg: for four in rg: for five in rg:

Python黑客编程2 入门demo--zip暴力破解

Python黑客编程2 入门demo--zip暴力破解 上一篇文章,我们在Kali Linux中搭建了基本的Python开发环境,本篇文章为了拉近Python和大家的距离,我们写一个暴力破解zip包密码的小程序.这个例子来自于<Voilent Python>一书,这也是一本python黑客编程的入门书,推荐大家看一看. 照顾没有接触过Python编程的同学,行文可能会有些啰嗦. 废话少说,我们进入正题. 2.1 准备基本材料 在/home/ziptest/目录下,我创建了两个文件,一个test