无意间看到一个服务器持续被人猜密码,顺手把这些IP段都加入之前的库里。

系统为windows server 2019,安装有wsl,所以用的是linux子系统中的命令。

 

不正常的FTP行为大概有3种,第一种是纯粹扫端口,判断此端口是否可连接;第二种是猜密码;第三种是在第一种基础上试着进行sftp连接。

第一种没有办法进行分辨,因为合法用户使用的时候也会产生类似的行为,所以这种放弃掉;后面两种都有较明显的日志特征,可以抓取。

命令如下:

#分析日志得到ip段前三位列表

cat /mnt/c/weblogs/FTPSVC2/* | grep PASS | grep 530 | awk '{print $3}'  | gawk '{match($0,"(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){2}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])",a)}{print a[0]}' | uniq | sort | uniq | awk 'NF > 0' | grep -v '171.80.221' | grep -v '185.105.12' > badiptomysql.txt
cat /mnt/c/weblogs/FTPSVC2/* | grep 'AUTH TLS' | awk '{print $3}'  | gawk '{match($0,"(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){2}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])",a)}{print a[0]}' | uniq | sort | uniq | awk 'NF > 0' | grep -v '171.80.221' | grep -v '185.105.12' >> badiptomysql.txt

cat badiptomysql.txt | uniq | sort | uniq > badiptomysql2.txt

#入库

mysql -u数据库用户 -h数据库IP -p数据库密码 数据库名 --local-infile=1 -e "LOAD DATA LOCAL INFILE 'badiptomysql2.txt' IGNORE into table ips(ip) "
rm badiptomysql.txt badiptomysql2.txt

 

简单解释一下,前面两行是分别对应两种不良行为,排除两个IP段,因为这俩是我用的,有时候也会敲错密码……

第三行是将结果进行排除重复。

后面两个就是入库和清理临时文件了。

 

 

分离出来的格式是这样的:

 

可以看到,有些IP段很明显不干正事的。

 

数据库的格式和使用方法可以看以前的文章《大部分用来扫描密码的IP段》。

至于第一种无法分辨出的IP,也可以不理会了,我目前收集了近千个段,基本上已经没几个恶意IP了……

后面抽时间统计一下扫WEB密码的。

 

如果,你和我一样无聊,找个没用的IP自己做个蜜罐,也挺好玩的,没事干的时候看看日志,看看这些货或者bot都在干什么,呵呵。

作者 听涛

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注