放在公网中的服务器总免不了被各种漏洞扫描工具扫描,比如每次登录服务器都能看到几千到几万次的ssh登录记录。
本次实验通过在服务器上架设SSH蜜罐,收集了三百万条登录记录。
简介
几乎每次登录服务器的时候,都会看到这样的提示:
There were 91 failed login attempts since the last successful login.
从上次登录成功后,共有91次失败的登录。登录失败的记录大多来源于恶意扫描脚本,这些恶意脚本一旦发现存活的主机,将不停地猜测主机的密码。
这些登录失败的记录可以使用命令sudo lastb
查看,其中包含了用户名、登录IP和登录时间等信息,如下:
guest ssh:notty 120.131.0.201 Fri Jun 7 13:21 - 13:21 (00:00)
root ssh:notty 218.92.0.185 Fri Jun 7 13:21 - 13:21 (00:00)
root ssh:notty 218.92.0.185 Fri Jun 7 13:21 - 13:21 (00:00)
root ssh:notty 218.92.0.185 Fri Jun 7 13:21 - 13:21 (00:00)
root ssh:notty 218.92.0.185 Fri Jun 7 13:21 - 13:21 (00:00)
root ssh:notty 218.92.0.185 Fri Jun 7 13:21 - 13:21 (00:00)
root ssh:notty 218.92.0.185 Fri Jun 7 13:21 - 13:21 (00:00)
ftptest ssh:notty 112.64.34.165 Fri Jun 7 13:21 - 13:21 (00:00)
安全起见,上述登录记录没有记录下登录密码。要想把尝试登录服务器的密码记录下来,可以搭建一个ssh蜜罐系统,例如 ssh-honeypot(注:蜜罐系统可能存在后门、漏洞,谨慎使用)。
本次实验在公网服务器上搭建ssh蜜罐系统,运行大概2个月时间,记录下大约350多万条登录记录,登录密码去重后有77532个,攻击源IP有4170个。
用户名统计
在尝试登录的所有用户名中,root
用户占比大约99%,稳居第一,其次是admin。排序前30的依次是:
频次 => 用户名
3538394 => root
6602 => admin
1689 => test
1409 => user
1330 => ubnt
792 => oracle
619 => guest
605 => support
433 => nbpt
388 => ubuntu
388 => postgres
373 => nagios
351 => pi
351 => ftpuser
325 => git
309 => ftp
302 => adm
291 => 1234
277 => temp
263 => default
245 => usuario
228 => mysql
221 => 111111
206 => manager
204 => user1
203 => operator
203 => administrator
200 => butter
199 => hadoop
186 => super
除root之外用户名中,大部分来自应用程序默认创建的用户,例如git
, oracle
, postgres
, mysql
, hadoop
, ftp
等。如果这些用户没有被禁止登录ssh,则可能被恶意用户利用,以登录到主机。
密码统计
如果你在网上搜索”弱密码榜单“,你会发现123456
这个密码总是排在第一位。在本此实验中,123456
也意料之中地排在第一位。频次排序前30的密码分别是:
频次 => 密码
6184 => 123456
4745 => password
3983 => root
3242 => root123
3214 => ubuntu
2896 => centos6svm
2889 => passwrod
1689 => admin
1443 => 1234
1126 => 123
1122 => 12345
750 => test
719 => wubao
642 => ubnt
590 => user
565 => qwerty
548 => 1
545 => 111111
527 => admin123
504 => raspberry
475 => default
469 => 12345678
467 => support
464 => abc123
455 => a
430 => 1qaz2wsx
412 => 123123
409 => oracle
405 => guest
404 => toor
从上述密码中可以看出,部分密码可能为系统安装后的默认密码,例如root
、ubuntu
、centos6svm
、raspberry
、toor
等。
ssh安全建议
- 系统安装完成后,如有默认密码,请立即修改;
- 修改ssh服务端口;
- 禁用root登录,或禁止root使用密码登录(99%的登录记录使用root用户);
- 禁止应用创建的用户登录bash shell,例如git、mysql等用户;
- 使用强度高的密码;
- 不与其它系统使用相同的密码,防止撞库攻击;
- 设置密码过期时间,定期修改密码。