• CTF—攻防练习之ssh私钥泄露


    攻防练习1 ssh私钥泄露


    靶场镜像:链接: https://pan.baidu.com/s/1xfKILyIzELi_ZgUw4aXT7w 提取码: 59g0

    首先安装打开靶场机

     

    没办法登录,也没法获取ip地址,怎么办呢?

    打开kali

    进入控制台
    使用netdiscover命令 netdiscover -r ip/子网掩码 命令来探测靶机


    netdiscover -r 192.168.32.152/24

     

     扫描开放的端口

     我们可以看到靶场开放的端口和对应的服务,此靶场机器上开启了ssh服务和两个http服务

    接下来我们分析特殊端口,尤其对开放http服务的大端口(本靶机上31337端口开放了http服务)

    怎么探测http端口信息?我们可以使用浏览器来浏览http服务的信息

     

    探到5个隐藏文件


    访问sshrobots的目录


    taxes下发现flag1


    再看ssh目录:

     

    发现rsa的私钥和公钥信息

    id_rsa是私钥和authorized_keys  认证关键字

    我们发现在存在一个放私钥要key的目录可用下载

    下载下来(公钥不用下载)
    这里就是泄露的私钥

    那么我们就去尝试与靶机建立ssh连接
    id_rsa 赋予权限 chmod 600 id_rsa

    key文件中我们能找到主机名

    建立ssh连接:

    ssh -i id_rsa simon@192.168.32.154

    需要密码,那么我们可用通过破解私钥得到密码

    ssh2john id_rsa >rsacrack

    破解出来密码为starwars

    连接成功!

    进来看一看,有一个flag文件但,需要权限,我们也没有root权限

    那么我们先查一下具有root权限的文件:
    find / -perm -4000 2>/dev/null


    好多东西。。

    Root下也有给read_message文件打开看看


    发现flag2一枚

    int main(int argc, char *argv[]) {

        char program[] = "/usr/local/sbin/message";

        char buf[20];

        char authorized[] = "Simon";

        printf("What is your name? ");

        gets(buf);

        // Only compare first five chars to save precious cycles:

        if (!strncmp(authorized, buf, 5)) {

            printf("Hello %s! Here is your message: ", buf);

            // This is safe as the user can't mess with the binary location:

            execve(program, NULL, NULL);

        } else {

            printf("Sorry %s, you're not %s! The Internet Police have been informed of this violation. ", buf, authorized);

            exit(EXIT_FAILURE);

        }

    }

    审计这段代码 发现

    我们要执行readmessage

    然后验证数组前5个字符,限定字符数为最多20个 ,前5个为Simon即可。

    先打开

     

    我们试着输20多个字符使其溢出

    输入超过他缓存字符长度的字符 超出的部分为root权限的目录路径

    获得root权限,发现flag

  • 相关阅读:
    VMware vSphere Esxi各版本差别及各套件差别
    vue3组件封装
    JavaScript前端时间库moment.js
    vue3语法糖script setup
    vue3的reactive对象赋值后失去响应式的问题
    vscode插件安装和配置支持vue3
    Kettle 获取存储过程的返回值
    java.sql.Types中定义的JDBC类型的对应int值
    kettle报错:Unexpected problem reading shared objects from XML file:null
    Kettle转换用上一步返回结果集作为下一步输入参数
  • 原文地址:https://www.cnblogs.com/zhaoyixiang/p/10979676.html
Copyright © 2020-2023  润新知