• covfefe 靶机/缓冲区溢出


    covfefe

    信息搜集

    存活检测

    image-20231018084618541

    详细扫描

    image-20231018085004716

    后台网页扫描

    80 端口

    image-20231018085056782

    31337 端口

    image-20231018085245256

    网页信息搜集

    • 分别访问扫描出的网页

    • 说有三个不允许看的内容

      image-20231018085806444

    • 尝试访问

    • 第一个 flag

      在这里插入图片描述

    • 访问 .ssh 文件

      在这里插入图片描述

      继续根据提示访问

      在这里插入图片描述

    • 获取了三个 ssh 文件

    ssh 登录

    • 在下载的 id_rsa_pub 公钥文件中发现了用户名

      在这里插入图片描述

    • 尝试利用 id_rsa 私钥文件免密登录

      ssh -i id_rsa simon@10.4.7.142
      
      • 1

      提示权限太高

      image-20231018174310884

    • 修改权限

      chmod 600 id_rsa
      
      • 1
    • 再次登录

      提示需要密码

      image-20231018174451099

    • john 解密

      ssh2john id_rsa > pas
      
      • 1
      john pas
      
      • 1

      image-20231018174611350

    提权

    • sudo -l

      image-20231018203723906

      没权限

    • 查找敏感文件

      image-20231018210645199

    • 查找 suid 权限

      find / -perm -u=s -type f 2>/dev/null
      
      • 1

    • 缓冲区溢出漏洞

      此程序中

      1. 定义了一个长度为20的字符数组buf作为输入缓冲区。
      2. 使用gets函数来读取用户的输入,并将输入存储到buf中。gets函数没有对输入的长度进行检查,如果用户输入的字符数超过了buf的容量,就会发生缓冲区溢出。
      3. 之后,程序通过strncmp函数将buf中的前5个字符与authorized数组中的内容进行比较。如果相等,则认为用户输入的是"Simon",程序会执行execve函数来执行/usr/local/sbin/message程序。
      4. 如果输入的字符数超过20个,并且第20个字符以后的字符是合法的可执行命令,那么缓冲区溢出会导致程序执行第20个字符以后的命令。

      这种缓冲区溢出漏洞的原理是,当用户输入的字符数超过了缓冲区的容量时,多余的字符会覆盖到缓冲区之外的内存区域。在这段代码中,覆盖到的内存区域包括了函数返回地址以及其他重要的数据。

      由于execve函数的调用是通过函数返回地址实现的,如果覆盖到的内存区域中的内容是合法的可执行命令,那么程序就会执行这段命令。

      运行程序,输入

      SimonAAAAAAAAAAAAAAA/bin/bash
      
      • 1

      image-20231018222656921

      提权成功

    总结

    • ssh 私钥登录
    • 缓冲区溢出提权
  • 相关阅读:
    使用 C# 读取 zip 压缩包解压文件的方法及注意事项
    使用mklink来节省C盘空间
    我常用的两个翻译神器,程序员必备.
    汇编语言实验2:顺序程序设计
    Prometheus & Grafana 的安装
    Notepad++使用技巧
    leetcode做题笔记142. 环形链表 II
    Spring Cloud根据服务名获取服务的ip端口
    亚马逊云科技的AI新引擎,如何助力企业应对“乌卡时代”?
    【Mysql】B+树索引的使用(七)
  • 原文地址:https://blog.csdn.net/weixin_51559599/article/details/133916278