马上注册,结交更多好友,享用更多功能,让你轻松玩转闽南师范大学。
您需要 登录 才可以下载或查看,没有账号?立即加入
×
如果我们有一个能执行xp_cmdshell的数据库帐号,比如是空口令的sa帐号。那么我们可以执行这样的命令:
) x& A$ P/ E% i. J- b% ]
6 ^' K6 _# \' b2 l4 u: ?
; N( q+ _& c7 W$ L; t1 R/ x< >exec xp_cmdshell 'net user refdom 123456 /add'
1 g" ~) x) s6 ?( N0 Eexec xp_cmdshell 'net localgroup administrators refdom /add' </P>
9 ]2 Y3 \; ^$ g9 E4 u) m< >上面两次调用就在系统的管理员组中添加了一个用户:refdom </P>
0 i2 x4 A: [5 A: e8 }9 w< >当我们获得数据库的sa管理员帐号后,就应该可以完全控制这个机器了。可见数据库安全的重要性。 </P>8 u! h5 H( {8 q3 B" L* W* x8 ]
< >下面这些存储过程都是对Public可以执行的:
& {- ^3 _ N9 @xp_fileexist,用来确定一个文件是否存在。 7 t& R, k+ y7 [& W1 s& K7 y5 p
xp_getfiledetails,可以获得文件详细资料。 " Y2 N/ P8 e, ~' v5 z3 g5 k. O
xp_dirtree,可以展开你需要了解的目录,获得所有目录深度。
{5 k$ x8 z/ b. O! ~0 a! l8 PXp_getnetname,可以获得服务器名称。 </P>: Y2 @1 Q1 f* z- X8 |
< >还有可以操作注册表的存储过程,这些不是对Public可以执行的,需要系统管理员或者授权执行:
v: h6 u4 g5 y3 A. _) S6 @9 D3 `0 f1 mXp_regaddmultistring 3 G) w7 p4 C4 g1 ]7 A
Xp_regdeletekey 3 Z E1 _8 ~* L# n
Xp_regdelete<I>value</I> + y( Y/ M9 E- m9 ]: n# C; u
Xp_regenum<I>value</I>s
9 F6 J* `6 }5 |5 Q/ }. q3 _0 X) EXp_regread (对Public可以执行)
$ G( g) I9 N; A, y7 TXp_regremovemultistring 0 w& a/ ~# j' Z; }1 b# S8 S- g
Xp_regwrite </P>( |; q& F5 H+ D4 b; |) Z% c
< >
/ H: B; V( B- t# HSQL Server的安全配置 </P>5 `3 o3 r5 W; Q
< >除跟着微软打满所有补丁外,还需要加强数据库的安全。
6 \$ H% g' o R, Z. C首先,你需要加强象sa这样的帐号的密码,跟系统帐号的使用配置相似,一般操作数据库不要使用象sa这样的最高权限的帐号,而使用能满足你的要求的一般帐号。 </P>, G/ o( B/ z" s k6 h
< >接着对扩展存储过程开始大屠杀,首先就是xp_cmdshell,还有就是上面那些一大堆存储过程,都drop吧,一般也用不着。 </P>
9 o; B% r) B/ }5 |0 ?< >执行:
+ i% B9 b" k; f' B2 Ause master - k! ^. m; S" C- t9 ?
sp_dropextendedproc 'xp_cmdshell' </P>9 \- T/ A, z( u$ ?- u! ^
< >去掉guest帐号,阻止非授权用户访问。 </P>
b6 M, Z6 } ~" U4 \8 D* U<P>去掉不必要的网络协议。 </P>
4 W4 {: b: E* q4 r& n<P>加强对数据库登陆的日志记录,最好记录所有登陆事件。可以用下面的简单DOS命令来查看日志: </P>7 Y, R& s9 t( |) o: g0 w4 M
<P>findstr /C:"登录" d:\Microsoft SQL Server\MSSQL\LOG\*.* </P>$ m+ R& i! p9 w. C# v! q, z6 r
<P>用管理员帐号定期检查所有帐号,是否密码为空或者过于简单,比如下面的语句: </P>
1 H( C0 E. M4 a' Z& |/ Y& W( U<P>Use master
; y$ T6 |; q2 M2 KSelect name,Password from syslogins where password is null </P>$ k( ^" A* w& e$ H _( ?
<P>用下面语句对所有帐号,检查对存储过程和扩展存储过程的执行权,提防不必要的执行权限扩散: </P>
8 U9 {: ~$ L* E<P>Use master 3 X6 [$ x8 g/ g4 _
Select sysobjects.name From sysobjects, sysprotects Where sysprotects.uid = 0 AND xtype IN </P>
6 z* `3 e, Y$ x" @<P>('X','P') AND sysobjects.id = sysprotects.id </P>, `2 ^/ S2 s" j$ A; x7 B2 z
<P>加强数据库的安全是非常重要的,有的数据库服务器是和WEB服务器隔离开的,这就同MAIL服务器一样,数据库的日志可能就基本很少去查看,这将会成为管理员的一个疏忽点。类似DNS、MAIL等等,数据库服务器往往成为各种入侵的跳板。 </P>
7 _* ? I; a, }) B0 }# g<P>当然,数据库服务器的安全和缺陷还有很多,还需要更多的研究。</P> |