码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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 私钥登录
    • 缓冲区溢出提权
  • 相关阅读:
    (JavaSE) String类
    iNeuOS工业互联网操作系统,三维(3D)模型在线编辑应用和实时数据统计(和值、均值、众数、方差、中位数等)
    如何通过WinDbg获取方法参数值
    Unity场景物体动态合批
    【云原生Kubernetes系列第二篇】kubeadm v1.20 部署K8S 集群架构【admin部署】
    Visual Studio 2017 调试全局变量
    创信短信API的无代码开发集成:电商平台、CRM和用户运营
    ffmpeg 合并视频到一个画布
    SAP UI5 ObjectPageLayout 控件使用方法分享
    Linux学习-47-Linux系统进程管理和启动方式
  • 原文地址:https://blog.csdn.net/weixin_51559599/article/details/133916278
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号