Un autre client m'a demandé de vérifier la sécurité de leur serveur SQL.
Au travail, j'ai mis le script en pointillé, je ne l'ai pas vérifié chez le client, mais au travail à la banque (je ne préciserai pas le nom), la vérité est sur le serveur DEV, et le tour est joué! - 522 Connexion SQL avec des mots de passe simples. Et c'est un trou de sécurité.
En général, je propose de vérifier des vulnérabilités similaires sur mon SQL Server. La liste des mots de passe simples est complétée comme vous vous en souvenez, quelques mots de passe simples, je les ai repris des 2-3 premières pages après googler.
Le script lui-même:
declare @popular_passwords table ( pwd varchar(4000) not null ) insert @popular_passwords VALUES ('!@#$%^&*') ,('000000') ,('1') ,('11') ,('111') ,('1111') ,('11111') ,('111111') ,('121212') ,('123123') ,('12') ,('123') ,('1234') ,('12345') ,('123456') ,('1234567') ,('12345678') ,('123456789') ,('1234567890') ,('131313') ,('1qaz2wsx') ,('55555') ,('654321') ,('666666') ,('696969') ,('7777777') ,('987654') ,('987654321') ,('aa123456') ,('abc123') ,('abcd1234') ,('admin') ,('affair') ,('amanda') ,('andrew') ,('anthony') ,('asdfasdf') ,('asdfg') ,('asdfgh') ,('asdfghjkl') ,('ashley') ,('ashleymadison') ,('asshole') ,('baseball') ,('batman') ,('bigdick') ,('buster') ,('charlie') ,('cheater') ,('computer') ,('corvette') ,('cowboys') ,('dallas') ,('DEFAULT') ,('donald') ,('dragon') ,('football') ,('freedom') ,('fuckme') ,('fuckoff') ,('fuckyou') ,('george') ,('harley') ,('hello') ,('hockey') ,('horny') ,('hosts') ,('hunter') ,('iloveyou') ,('jackson') ,('jennifer') ,('jessica') ,('jordan') ,('jordan23') ,('kazuga') ,('killer') ,('letmein') ,('liverpool') ,('looking') ,('madison') ,('maggie') ,('master') ,('matthew') ,('michael') ,('money') ,('monkey') ,('mustang') ,('P@ssw0rd') ,('P@ssword') ,('Pa$$w0rd') ,('Pa$$word') ,('password') ,('password1') ,('pepper') ,('princess') ,('pussy') ,('qazwsx') ,('qwert') ,('qwerty') ,('qwerty123') ,('qwertyuiop') ,('ranger') ,('robert') ,('secret') ,('shadow') ,('soccer') ,('steelers') ,('summer') ,('sunshine') ,('superman') ,('thomas') ,('tigger') ,('welcome') ,('whatever') ,('william') ,('yankees') ,('zxcvbnm') select l.name, p.pwd, l.type_desc, l.is_disabled, sl.sysadmin, sl.dbcreator, sl.serveradmin from @popular_passwords p join sys.sql_logins l on pwdcompare(p.pwd,l.password_hash)=1 join sys.syslogins sl on sl.name = l.name union all select -- l.name, l.name, l.type_desc, l.is_disabled, sl.sysadmin, sl.dbcreator, sl.serveradmin from sys.sql_logins l join sys.syslogins sl on sl.name = l.name and pwdcompare(l.name,l.password_hash)=1 order by 4, 5 desc, 1 option(recompile)