记一次利用SQL调用powershell命令获取管理员密码
1. 前言
这篇文章是把以前写在word文档中的内容搬过来了,主要内容就是记录了一次提权过程,通过MSSQL
权限调用PowerShell
并执行命令,最终获取了管理员的密码。虽然最后总结的流程很简单,但中间踩过的坑、遇到的问题可是不计其数(自己比较菜),所以将此过程做了一个记录。
2. 初试提权
首先,已经得到了某个服务器的
IP
和MSSQL
的SA
账户和密码,很高兴的连上去,心想SA
账户都有了,提个权还不是分分钟的事登路上去之后马上尝试调用
xp_cmdshell
,看管理员是否禁用了xp_cmdshell
虽然报了一个错误(不清楚是什么错误),但是还好没有被禁用,而且还是
system权限
,看来提权触手可得,马上使用net user
创建用户what xxxx! 什么情况,居然没执行成功,怀疑管理员把
xp_cmdshell
做了什么手脚,于是去百度了许多不利用xp_cmdshell
来执行命令的sql
语句但是并没有什么卵用,无一例外都失败了,只能另想办法了,然后发现可以执行
systeminfo
命令,显示是win2008
Nmap
扫描了一下端口,445
是开启的,刚好这几天学会了ms17-010
的漏洞,就打算用msf
直接获取到shell
,但是想象都是美好的,这服务器好像打了补丁,而且自己没有公网地址,导致反弹不回来shell
3. 山穷水尽疑无路
经过上面的测试,我意识到事情并没有那么简单。这台服务器不知道做了啥手脚,CMD命令
只能执行一部分没有啥危害的命令,执行创建用户这种命令就直接报错。需要换一换思路搞搞。
刚才使用
Nmap
扫描了一下端口,观察了一下开启的端口,其中包括很多个IIS
的http端口
进了一个网站看了看,发现是需要登录的
从数据库里找到
admin
的密码,心想能不能从网站获取一个shell
,进去看了之后我放弃了,全是英文,看着头疼看了一下其余的网站,全是
aspx
的,而且都是英文站,让我放弃了从网站入手的想法。继续翻着端口列表,突然看到一个Apache
服务心里很疑惑,这个服务器不是布置的
IIS
吗,怎么Apache
也在上面,访问一下这个端口试试卧槽,居然是
wamp
刚搭建好的页面,难道运气这么好,又能登录MySQL
了?果然事不如愿,居然访问不了,看来还是不行啊,又回去看了看
MSSQL
数据库,发现dir
命令可以执行,通过dir
命令,发现了wamp
目录下的WordPress
,尝试admin
登录,竟然登录进去了然后百度了一下
WordPress拿shell
,利用修改文件
内容写进一句话木马用菜刀连接,果然能连接上了(不知道
shell路径
就自己本地搭建一个WordPress测试)尝试用
cmd
创建用户试试还是一样无法创建,可能就是因为管理员把
net命令给禁用了
或者给更改了什么的,反正通过创建用户这一条路是不可能的了,只有直接读取Administrator的密码
才行,上传getpass64.exe
上去执行,显示超时然后想起是
2008的系统
,powershell
应该能用,尝试了一下果然能用,然后就想能不能使用
powershell反弹shell
来获取一个权限但是好像是没
公网IP
的缘故,也失败了,一直收不到反弹的shell
4. 柳暗花明又一村
到这里就很难受了,我感觉能利用的都利用了,能试的方法都试了,但都搞不下来。难道就要放弃了么,可近在咫尺的胜利以及花费的时间让我放弃感到很吃亏,那就继续搞呗。
经过黑无常大佬的提醒,可以利用
msf
调用mimikatz
来读取密码但是我
msf
反弹不回shell
啊,这个方法有个屁用啊,白高兴一场了然后一直在网上寻找其他方法,找到了可
利用powershell调用mimikatz来读取密码
然后尝试在本地执行,本地执行都失败了,这就很尴尬了
然后又研究这个原理,终于知道了本地为什么会失败,这个
powershell命令
是在网上下载powershell脚本
,然后再执行,失败的原因下载链接不对
,所以导致失败,然后找到了GitHub
上的脚本,再去本地执行,果然执行成功了然后放在菜刀里执行,然后开始几次后面执行超时,后面执行时报了如下错误,大概是因为网速太慢或者菜刀执行命令不和cmd一样,具体为什么不太清楚
然后又想到了
MSSQL
(为什么总能想到它啊,大概是因为首先拿到权限就是因为它吧哈哈哈),执行powershell
命令试试果然可以执行,然后把刚才那段在本地执行的
powershell命令
带进去执行(因为有特殊字符,需要使用转义字符)哇,终于成功了,用了三天时间终于拿下来了,真是不容易,这次提权就算告一段落了
5. END
这次提权算是学到了不少东西,比如MSSQL
不只有xp_cmdshell
可以执行系统命令,还有很多语句都能执行。还有powershell反弹shell
、powershell下载脚本执行
等等技术。最重要的是学到了一些道理:
不抛弃不放弃
这句话不只是CF的宣言,在现实中也是很好的道理骚思路
一定要多,不能在一个地方吊死
2020.05月更新:
该文章的写作时间看上去是19年,实际时间其实更早。从技术水平、写作水平上来说,的确是稍显稚嫩。但这篇文章应该是我入安全圈以来第一篇文章,所以一直保存到现在,里面很多话语不正确的地方也没有去改,当留作纪念吧,望读到该篇文章的大佬们轻喷。