环境搭建
靶机地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/
网络拓扑结构图:
靶机配置:
- Web服务器(VM1)为Windows 7,需要双网卡,添加一个可访问的网卡即可,这里模拟外网的IP为:192.168.3.211,模拟内网IP为:192.168.52.143
- 域成员(VM2)为Win2K3 Metasploitable,模拟内网IP为:192.168.52.141
- 域控(VM3)为Windows Server 2008,模拟内网IP为:192.168.52.138
VM2和VM3在登录后需要修改密码,因此这里将默认密码进行修改,此外还需要将Windows 7重新加入域。
外围打点
使用nmap快速扫描Web服务器端口和服务,发现80端口运行着HTTP服务,3306端口运行着MySQL数据库,如图:
访问80端口发现phpStudy探针,可以看到网站绝对路径,php版本,服务器信息,相关组件信息等,如图:
在底部MySQL数据库连接检测使用root/root连接成功,但是使用数据库连接工具无法连接,应该是root用户没有远程登录权限。
扫描网站目录发现备份文件、phpmyadmin路径和其它php文件,如图:
访问phpmyadmin,然后使用root/root登录,如图:
下载并解压备份文件发现是YxCMS源码。查看文件也可找到数据库密码为root,访问yxcms目录即可跳转到演示站,在公告信息中发现后台入口和默认密码,如图:
访问后台发现该CMS版本为1.2.1,使用默认密码可登录后台,如图:
查看其它文件,在yxcms/public/kindeditor/ kindeditor.js
文件发现YxCMS使用了kindeditor 4.1.7,此外网站存在目录浏览漏洞,但利用该漏洞未获得其它有用的信息。
使用搜索引擎搜索YxCMS 1.2.1和kindeditor 4.1.7相关漏洞,发现kindeditor 4.1.7仅存在物理路径泄露漏洞,YxCMS 1.2.1存在文件上传漏洞。
GetShell
根据收集到的信息,可以利用phpMyAdmin写文件GetShell,也可以利用YxCMS文件上传漏洞GetShell。由于MySQL数据库secure_file_priv
的值为NULL,因此无法利用outfile
和dumpfile
写木马文件,如图:
但可以利用MySQL慢查询日志写入木马GetShell或全局日志GetShell。
MySQL慢查询日志GetShell
设置慢查询日志文件,并开启慢查询功能,如图:
写入php代码,如图:
访问php文件,成功执行代码,如图:
YxCMS文件上传GetShell
点击“前台模板”->“新建”,然后即可写入Webshell,如图:
根据备份文件或目录浏览可得知模板文件所在路径为:yxcms/protected/apps/default/view/default/
。使用蚁剑连接木马文件:http://192.168.3.211/yxcms/protected/apps/default/view/default/moshou.php
,如图:
权限提升
当前用户权限为管理员,此外还存在其它用户liukaifeng01,如图:
使用CobaltStrike生成Windows x64 beacon,上线之后直接利用svc-exe
即可提升权限至SYSTEM,如图:
此外还可以利用土豆(MS16-075)、CVE-2018-8120、MS14-058、MS15-051和MS16-135进行提取。
权限维持
添加开机启动项、添加注册表和添加计划任务都需要在用户登录时才可获得shell,因此通过创建服务进行权限维持,在系统重启后无需用户登录即可获得shell,实现持续控制。生成Windows Service EXE木马,如图:
然后将木马上传到Web服务器,在CS交互shell中执行shell sc create abc binPath= c:\Windows\temp\server.exe start= auto
创建服务,如图:
至此,即使服务器重启也会成功上线到CS。
横向移动
内网信息收集
在CS交互shell中执行shell systeminfo
查看系统基本信息发现操作系统使用Windows 7 x64 SP1,内网IP为192.168.52.143,且存在域:god.org,如图:
抓取本机明文密码,发现域管理员密码和本机密码相同,如图:
但目标主机未开启远程桌面服务,且我在部署环境的时候将域管理员用户密码修改了,因此无法使用该凭据直接获取域管理员用户权限。
查看用户发现存在本地用户liukaifeng01,如图:
在CS交互shell中执行portscan 192.168.52.0-192.168.52.255 1-1024,3389,5000-6000 arp 1024
扫描52网段主机和端口发现141和138主机,138主机开启了53、88和389端口,该主机为域控服务器,如图:
利用MS17-010
使用fscan扫描,发现143、138和141主机都存在MS17-010漏洞,且138为域控制器,如图:
使用frp做代理,设置服务为本机IP,端口为8000,socks5监听端口为33333,如图:
利用MS17-010永恒之蓝模块获取shell失败,如图:
使用auxiliary/admin/smb/ms17_010_command
模块时,域控主机利用成功,如图:
将beacon.exe上传到143主机网站根目录,如图:
然后将文件上传到域控主机,如图:
然后执行,但是CS并没有上线,如图:
考虑到域控主机不出网,然后使用转发上线功能,如图:
配置监听地址和端口,如图:
然后使用刚监听的端口生成木马,如图:
继续利用漏洞将木马上传到域控主机并执行,但是仍然未成功。溜达的一圈后突然想到是不是防火墙限制的原因,然后执行shell netsh advfirewall firewall add rule name="test" protocol=TCP dir=in localport=4444 action=allow
命令放行4444端口。再次上传木马并执行,成功上线,如图:
查看域用户,如图:
再次抓取明文密码发现域用户liukaifeng01的密码,如图:
使用该用户和密码不能登录域控主机。利用MS17-010psexec模块时,141主机利用成功,如图:
但是无法执行命令。
利用凭据登录
使用CS插件或在CS交互shell中执行shell REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f
和shell wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1
开启Web服务器远程桌面服务,然后执行shell netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow
使防火墙放行3389端口。但是在登录时提示“此工作站和主域间的信任关系失败”,根据百度经验将VM1重新加入域中,配置步骤:
1、 重设liukaifeng01用户的密码,默认为空
2、 将两张网卡全部禁用后重启
3、 使用liukaifeng01登录系统,退出域环境后重启
4、 启用192.168.52.143这张网卡,使用liukaifeng01登录
5、 使用域管理员用户重新加入域环境,然后启用模拟外网网卡
重新配置后再次抓取明文密码,成功获得域管理员用户密码、SID和liukaifeng01用户的密码,如图:
使用域管理员用户god\administrator和抓取到的密码登录143主机,如图:
SMB Beacon上线
虽然141和138主机不出网,但是143主机是出网的,因此可以利用SMB协议通过143主机转发上线CS。新建SMB监听,如图:
利用psexec横向移动,如图:
选择登录凭据、监听器和会话,如图:
运行之后获得域控权限,如图:
使用同样的方法获取141主机权限,如图:
开启138主机3389端口并设置允许通过防火墙,然后使用域管理员凭据成功登录,如图:
利用MS03-026 DCOM服务漏洞
通过扫描发现141主机和138主机均开启135端口,使用Metasploit尝试利用MS03-026漏洞,在141主机利用成功,如图:
成功获得shell,如图:
痕迹清理
根据入侵的路径依次删除上传的工具、删除Web日志、FTP日志等。然后执行shell wevtutil cl Security
清除安全日志,执行shell wevtutil cl System
清除系统日志,执行shell wevtutil cl Application
清除应用日志,执行shell wevtutil cl Setup
清除启动日志,如图:
执行shell wevtutil epl Security C:\Windows\System32\winevt\Logs\Security_new.evtx /q:"*[EventData[(Data[@Name='IpAddress']!='127.0.0.1')]]" /ow:true
清除RDP登录日志,如图:
执行shell del C:\Windows\System32\LogFiles\Firewall\pfirewall.log
删除防火墙日志,执行shell del C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt
删除PowerShell执行历史记录。
更多
关于该靶机的更多方法请查看:
https://blog.csdn.net/qq_42323763/article/details/115026477
https://www.cnblogs.com/liliyuanshangcao/p/13743389.html
https://www.freebuf.com/vuls/230476.htm
https://www.freebuf.com/articles/web/230725.html