teisipäev, 5. jaanuar 2010

SQLSERVER loginid nõrkade salakoodidega

Otsib välja need SQL SERVER-i loginid, mille salakood on etteantud nimekirjas või salakoodiks on kasutajatunnus või kasutajatunnus pööratult

Käivitage skript ning olge loov, julm ja metoodiline nõrkuste ravimisel. Ärge halastage kellelegi !!

USE [master]
DECLARE @WeakPwdList TABLE(WeakPwd NVARCHAR(255) COLLATE DATABASE_DEFAULT )
--Nõrkade salakoodide nimekiri
--@@Name on selleks, et testida kas salakoodiks on kasutajatunnus
INSERT INTO @WeakPwdList(WeakPwd)
SELECT ''
UNION SELECT '123'
UNION SELECT '1234'
UNION SELECT '12345'
UNION SELECT '123456'
UNION SELECT 'abc'
UNION SELECT 'abc123'
UNION SELECT 'qwerty'
UNION SELECT 'qwert'
UNION SELECT 'qwer'
UNION SELECT 'asdfg'
UNION SELECT 'asdf'
UNION SELECT 'asd'
UNION SELECT 'default'
UNION SELECT 'guest'
UNION SELECT '@@Name123'
UNION SELECT '@@Name12'
UNION SELECT '@@Name1'
UNION SELECT '@@Name'
UNION SELECT '@@Name@@Name'
UNION SELECT '@@Name1@@Name'
UNION SELECT '@@Name12@@Name'
UNION SELECT '@@Name123@@Name'
UNION SELECT 'admin'
UNION SELECT 'Administrator'
UNION SELECT 'admin123'
--SELECT * FROM @WeakPwdList
SELECT sql_logins.name AS [LoginName],
CASE
WHEN PWDCOMPARE(REPLACE(t2.WeakPwd,'@@Name',REVERSE(sql_logins.name)),password_hash) = 0 THEN REPLACE(t2.WeakPwd,'@@Name',sql_logins.name)
ELSE REPLACE(t2.WeakPwd,'@@Name',REVERSE(sql_logins.name))
END AS [Password]
,sql_logins.default_database_name,sql_logins.is_policy_checked,sql_logins.is_expiration_checked,sql_logins.is_disabled
,(SELECT suser_sname(owner_sid) FROM sys.databases WHERE databases.name = sql_logins.default_database_name) AS database_owner
FROM sys.sql_logins INNER JOIN @WeakPwdList t2 ON (PWDCOMPARE(t2.WeakPwd, password_hash) = 1
OR PWDCOMPARE(REPLACE(t2.WeakPwd,'@@Name',sql_logins.name),password_hash) = 1
OR PWDCOMPARE(REPLACE(t2.WeakPwd,'@@Name',REVERSE(sql_logins.name)),password_hash) = 1 )
--WHERE sql_logins.is_disabled=0
ORDER BY sql_logins.name


SQL LOGIN-eid saab sundida jälgima Windows Serveri policy-t
http://technet.microsoft.com/en-us/library/cc875814.aspx

Kontrollige, et Windowsi policyt oleksid peale seatud
ja SQL SERVERIS kasutajate tegemisel või muutmisel CHECK_POLICY = ON