背景
授权测试XX工程公司内部OA系统
主要业务:监理,工程造价等
接入内部网络,拿到网址后使用nmap扫描服务器信息
nmap -O 目标
开启了不少端口,扫描结果服务器可能为win7或windows sever 2012,开启了445端口,试试永恒之蓝是否能直接拿下
msfconsole
use exploit/windows/smb/ms17_010_eternalblue
set rhost 目标IP
exploit
没成功,意料之中。
尝试3306端口爆破mysql口令。
mysql -h 目标ip
拒绝了我们的连接,不过在这里曝出了服务器名,现在尝试查看80端口的web服务,web才是我们的主要目标。
登录页
这里未做验证码控制,说明可能允许爆破,打开purb进行抓包,查看信息
密码未进行加密,手动尝试了几个弱口令没有提示异常,
选择OA系统成功率高的字典开始枚举
且把从浏览器收集到的公司暴露在外面的员工姓名加入字典
枚举途中查看网站指纹,下图为wappalyzer插件
可以看到网站使用thinkphp框架,中间件为APache 2.4.4
thinkphp不同版本具有远程代码执行漏洞,信息泄露、文件包含、SQL注入漏洞
尝试利用文件包含漏洞途中thinkphp报错
虽然没利用成功,但是这里曝出了网站路径和thinkphp具体版本
知道具体版本后尝试使用thinkphp3.2.3经典漏洞信息泄露查看日志文件
<domain>/Application/Runtime/Logs/Home/19_07_022.log
成功查看到日志文件,包含了历史登录的所有用户名、密码和一些其他信息,数据量巨大,没来得及慢慢看。
这个漏洞详细利用方式介绍:https://newsn.net/say/thinkphp-bug-log.html
这里使用泄露的用户名密码登录系统
进入系统后从项目信息中获取到公司内部结构,然后从日志信息中获取权限更高的用户密码
登录到高权限账户后发现待我处理模块中可以上传合同文件
thinkphp框架中规定了各类函数的安全引用方法
尝试过程中发现XSS已经做了转译处理,SQL注入也已预编译,防护均OK
但是上传功能配合APache 2.4.4的解析漏洞可能绕过thinkphp规定的安全策略,
开始从上传点入手
下载部分网站图片等文件作为上传测试,乱输入一个后缀无法上传,
说明为白名单,测试结果仅允许JPG,PNG,docx,xlsx后缀上传
这里花费了很多功夫,发现安全策略检查了MIME,检查了后缀,检查了文件内容,
且上传后会二次渲染并重新随机命名文件
安全策略还是很全面的,单配合解析漏洞无法利用
但工作表的上传可能带来另一个危险漏洞,如果上传的合同文件带有Office宏病毒,当工作人员下载查看文件的时候可能被控制主机
上传点进行到这里结束,寻找其他漏洞
这时我们想起之前的信息泄露,目录文件为wamp,wamp server为开发者的集成环境
推测服务器环境使用此环境搭建,且wamp默认安装了phpmyadmin进行mysql管理,尝试访问phpmyadmin
这里显示无权限访问phpmyadmin界面
这里修改IP尝试访问,最终在58网段成功访问phpmyadmin界面
对之前的泄露的口令进行口令组合尝试密码枚举
成功登录枚举出root密码,密码为小写字母加数字加特殊字符方式,进入数据库
数据在系统里已经呈现七七八八了,尝试写入shell获得系统权限
select ‘内容’ into outfile ‘这里的绝对路径thinkphp报错已经告诉我们,
并且日志文件泄露,mysql日志文件同样记录有绝对路径’
成功执行,访问地址
接下来写入一句话,写入一句话的时候遇到点问题
执行后访问无这个文件,推测可能装了杀毒,写入免杀脚本成功连接
执行MSF的payload进入后渗透
作者:大疯
转自:https://www.freebuf.com/articles/web/258989.html