zhuohao 发表于 2019-2-11 00:58:05

智障方法解决SSH暴力攻击

lz有个放在cloudcone上的小博客,为了作死删掉了iptables和fail2ban,今天一翻SSH错误日志,发现几天就积攒了30M的文件,气愤之下就用少的可怜的C++姿势来干掉这些坏蛋,高手可以直接右上角了。
大体就是直接用C++的fscanf每次读入一行,如果在一行中检测到登陆失败的关键词,就用内置的regex提取ip,然后在哈希表里统计每个ip捣乱的次数。
最后遍历一下哈希表,次数大于一定值时直接用你喜爱的各种防火墙来干掉这个ip就好了。
程序的时间复杂度很低,但是30多兆的日志文件因为STL的常数因子实在太大了所以还是跑了40s左右,就不放上来了。
纯粹搞着玩,大神轻喷。
最后放上来我干掉的ip,只有二百多个(大概就是攻击10次以上的)(顺手就用ipip.net的免费api查了查归属地):
https://paste.ubuntu.com/p/Mvzv4j3MVv/

风在吹屌在飞 发表于 2019-2-11 01:01:57

大佬有点牛逼啊

litter123 发表于 2019-2-11 01:03:46

ovh瞩目,哈哈哈
010.gif

zhuohao 发表于 2019-2-11 01:08:05


倾城翻翻分身一 发表于 2019-2-11 01:08

SSH暴力攻击很简单,换端口,让攻击者摸不清你是哪个端口。

还有个方法就是限制次数,1个小时只允许试3次 ...
其实我是怕自己有的时候要试好多次密码才不限制次数的。。。
然而这个方法除了ssh外适用于任何有错误日志的东西,加上cron就能造出来fail2ban,所以好像有点强行造轮子。。。
如果拿到了ip列表,一个一个D一遍岂不美哉?

openos 发表于 2019-2-11 01:17:07

强制ssh key登录就好了

aRNoLD 发表于 2019-2-11 01:08:00

我一直不知道登录进ssh时,有时候上面显示成功登录前有过xx次失败登录,这个信息是如何显示出来的。

我知道last命令,但只能显示自己登录的时间信息。

hjvn2211445 发表于 2019-2-11 01:20:08


aRNoLD 发表于 2019-2-11 01:39

我一直不知道登录进ssh时,有时候上面显示成功登录前有过xx次失败登录,这个信息是如何显示出来的。

我知 ...
lastb   显示登录失败的日志

aRNoLD 发表于 2019-2-11 01:39:04


hjvn2211445 发表于 2019-2-11 01:43

lastb   显示登录失败的日志
哦,看来一台主机还行。

另外,有个这个,可能可以减轻一些受损可能:
https://infosec.mozilla.org/guidelines/openssh

haole 发表于 2019-2-11 01:43:16

不错啊。
页: [1]
查看完整版本: 智障方法解决SSH暴力攻击