无意间看到一个服务器持续被人猜密码,顺手把这些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都在干什么,呵呵。