自制靶机--Believe

news2026/5/24 1:22:34
Believe设计思路靶机名称: Believe作者Gropers靶机ID661难度: baby靶机下载地址: https://ova-believe.oss-cn-beijing.aliyuncs.com/Believe.ova靶机收集地址: https://maze-sec.com靶机IP: 192.168.1.150攻击机IP: 192.168.1.195(Kali Linux)QQ Group: 660930334信息收集与外网突破端口扫描┌──(root㉿Gropers)-[~] └─# nmap -A -sT -p- 192.168.1.150 Starting Nmap 7.99 ( https://nmap.org ) at 2026-05-23 04:31 -0400 Nmap scan report for 192.168.1.150 Host is up (0.0011s latency). Not shown: 65531 closed tcp ports (conn-refused) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 10.3 (protocol 2.0) 80/tcp open http Apache httpd 2.4.67 ((Unix)) |_http-title: Login |_http-server-header: Apache/2.4.67 (Unix) | http-cookie-flags: | /: | PHPSESSID: |_ httponly flag not set 2222/tcp open ssh OpenSSH 10.3 (protocol 2.0) 54321/tcp open ssh OpenSSH 10.3 (protocol 2.0) MAC Address: 08:00:27:AC:0E:5E (Oracle VirtualBox virtual NIC) No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ). TCP/IP fingerprint: OS:SCAN(V7.99%E4%D5/23%OT22%CT1%CU38292%PVY%DS1%DCD%GY%M080027%T OS:M6A1165E6%Px86_64-pc-linux-gnu)SEQ(SP100%GCD1%ISR104%TIZ%CIZ%III OS:%TS22)SEQ(SP104%GCD1%ISR10C%TIZ%CIZ%III%TS21)SEQ(SP106%GCD1%IS OS:R107%TIZ%CIZ%TS21)SEQ(SP106%GCD1%ISR10B%TIZ%CIZ%III%TS21)SEQ( OS:SPF9%GCD1%ISR10F%TIZ%CIZ%III%TS21)OPS(O1M5B4ST11NW9%O2M5B4ST11N OS:W9%O3M5B4NNT11NW9%O4M5B4ST11NW9%O5M5B4ST11NW9%O6M5B4ST11)WIN(W1FE88 OS:%W2FE88%W3FE88%W4FE88%W5FE88%W6FE88)ECN(RY%DFY%T40%WFAF0%OM5B4 OS:NNSNW9%CCY%Q)T1(RY%DFY%T40%SO%AS%FAS%RD0%Q)T2(RN)T3(RN)T4(R OS:Y%DFY%T40%W0%SA%AZ%FR%O%RD0%Q)T5(RY%DFY%T40%W0%SZ%AS%F OS:AR%O%RD0%Q)T6(RY%DFY%T40%W0%SA%AZ%FR%O%RD0%Q)T7(RY%DFY%T OS:40%W0%SZ%AS%FAR%O%RD0%Q)U1(RY%DFN%T40%IPL164%UN0%RIPLG%RID OS:G%RIPCKG%RUCKG%RUDG)IE(RY%DFIN%T40%CDS) Network Distance: 1 hop TRACEROUTE HOP RTT ADDRESS 1 1.06 ms 192.168.1.150 OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 24.77 seconds靶机一共开启了四个端口80端口用于web页面进入之后是一个登录页面gobuster扫一下目录┌──(root㉿kali)-[~] └─# gobuster dir -u http://192.168.1.150 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,txt,html,bak Gobuster v3.8.2 by OJ Reeves (TheColonial) Christian Mehlmauer (firefart) [] Url: http://192.168.1.150 [] Method: GET [] Threads: 10 [] Wordlist: /usr/share/wordlists/dirbuster/directory-list-2.3- medium.txt [] Negative Status codes: 404 [] User Agent: gobuster/3.8.2 [] Extensions: txt,html,bak,php [] Timeout: 10s Starting gobuster in directory enumeration mode index.php (Status: 200) [Size: 772] dashboard.php (Status: 302) [Size: 0] [-- index.php] yu.txt (Status: 200) [Size: 27] server-status (Status: 403) [Size: 318] Progress: 1102790 / 1102790 (100.00%) Finished 在这可以发现除了登录页面还有一个dashboard控制面板在这里出现了一个设计失误导致yu.txt直接被扫描器扫出来了结果导致选手没有通过登陆页面直接获取到了准备的提示信息22、2222、54321开放了三个ssh端口其中22端口下有一组banner凭证通常来说选手得到这组凭证之后一定回去网页的登录口进行尝试但是输入这组凭证却无法进入这其实就是这个靶机的制作初衷就像是ssh登录一样哪怕你输入错误也会给你输入三次的机会需要连续 3 次使用 admin:yubao9694482664 登录同一次会话就可以进入到dashboard控制面板首先一进来就可以得到存在一yu用户我直接将它放在了网页上当然也可以直接通过ls -al /home得到存在的这个用户网页下给出的提示文件yu.txt也同样给出了提示SSH登录通过-p来修改端口尝试凭据复用成功从54321端口登录上了yu用户查看用户文件夹目录得到user flag还可以发现准备的hint文件yuBelieve:~$ cat hint.txt The walls have ears, and the logs have a heartbeat. it keeps whispering the truth. Just...以及一个没有任何权限的be文件hint文件提醒选手去查看log就可以注意到/var/log/.hidden/.ghost_radio这是个命名管道将管道内的内容提取出来并去掉影响字符就可以得到是一个反复输出的believe再通过sudo -l可以知道yu可以无密码以root身份执行/root/be发现是一个密钥验证程序同时也提醒了密钥是七位(*******)输入之前获得的believe密钥就可以得到密钥正确这时候再查看yu用户的当前目录下就可以看到be文件从 ---------- 变为 -rwsr-xr-xSUID root4755运行./be这同样是一个口令验证程序但是可以将它拉到本地进行一个逆向反编译反汇编分析main 函数 (0x401b1a)1. 在栈上设置 20 字节的硬编码密钥目标 2. 调用 generate_key() 生成 7 字节 RC4 密钥 3. 打印 请输入系统密钥: 4. 使用 scanf(%255s) 读取用户输入 5. 计算输入长度 strlen 6. 调用 rc4_init(key, 7) 初始化 RC4 7. 调用 rc4_crypt(state, input, length) 解密输入 8. 检查长度是否为 20 (0x14) 9. 逐字节比较解密后的输入与硬编码的 20 字节目标 10. 匹配则调用 get_shell() 并打印 验证成功。 11. 不匹配则打印 权限不足。generate_key 函数 (0x401a24)movl $0xc3c6cfc8,-0xb(%rbp) # 栈上存储加密数据 movl $0xcfdccfc3,-0x8(%rbp) # 循环 7 次 (i 0..6)每字节 XOR 0xaa推导过程偏移原始字节XOR 0xaaASCII00xc80x62b10xcf0x65e20xc60x6cl30xc30x69i40xcf0x65e50xdc0x76v60xcf0x65eRC4 密钥 “believe”get_shell 函数 (0x401a77)# 解码 /bin/bash (bitwise NOT 每字节) movabs $0x8c9e9dd091969dd0,%rax # NOT → 0x62696e2f /bin movw $0xff97,-0x6(%rbp) # NOT → 0x0068 h\0 # → 解码结果: /bin/bash setuid(0) # 设置 UID 为 root setgid(0) # 设置 GID 为 root puts([] 正在请求 Believe 核心权限...) execve(/bin/bash, {/bin/bash, -p, NULL}, NULL)计算密码get_shellRC4 架构密钥:believe(7 字节)对 20 字节硬编码目标进行 RC4 加密因为程序会解密用户输入后比对targetbytes([0x24,0x53,0x27,0x50,0x78,0x4b,0x9d,0xab,0xab,0x7e,0xf0,0xa1,0x49,0xf2,0xea,0x7e,0xec,0x6c,0x82,0x77])rc4_keybbelieve# RC4 加密目标得到密码passwordrc4_crypt(rc4_init(rc4_key),target)# → bBelieve_in_yourself! (20 字节)最后得到了口令就是Believe_in_yourself!输入口令就会执行一个/bin/bash得到最终的root flagWeb分析回过头来看/var/www/html文件夹下的文件分析index和dashboardindex.php?php error_reporting(0); session_start(); $m ; if (isset($_SESSION[auth]) $_SESSION[auth] true) { header(Location: dashboard.php); exit; } if ($_SERVER[REQUEST_METHOD] POST) { $u $_POST[u] ?? ; $p $_POST[p] ?? ; if ($u admin $p yubao9694482664) { $_SESSION[c] ($_SESSION[c] ?? 0) 1; if ($_SESSION[c] 3) { $_SESSION[auth] true; header(Location: dashboard.php); exit; } } else { $_SESSION[c] 0; } $m ; } ? !DOCTYPE html html head meta charsetutf-8 titleLogin/title style body { display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background: #f4f4f4; font-family: sans-serif; } form { background: #fff; padding: 30px; border: 1px solid #ddd; box-shadow: 0 0 10px rgba(0,0,0,0.1); } input { margin-bottom: 15px; padding: 8px; width: 200px; display: block; } input[typesubmit] { width: 100%; cursor: pointer; background: #333; color: #fff; border: none; } .e { color: red; font-size: 14px; text-align: center; } /style /head body form methodPOST input typetext nameu placeholderUsername input typepassword namep placeholderPassword input typesubmit valueLogin ?php if ($m ! ) { echo div classe . htmlspecialchars($m) . /div; } ? /form /body /html需要连续 3 次使用admin:yubao9694482664登录同一次会话才能获得authtrue并访问dashboard.php。dashboard.php?php error_reporting(0); session_start(); if (isset($_POST[logout])) { session_destroy(); header(Location: index.php); exit; } if (!isset($_SESSION[auth]) || $_SESSION[auth] ! true) { header(Location: index.php); exit; } $r ; if (isset($_POST[cmd])) { $c trim($_POST[cmd]); if (preg_match(/^ls(\s.*)?$/, $c) || preg_match(/^cat\s.*\.txt$/, $c)) { if (!preg_match(/[;|$\n]/, $c)) { $r shell_exec($c); } } } ? !DOCTYPE html html head meta charsetutf-8 titleDashboard/title style body { background: #1e1e1e; color: #00ff00; font-family: monospace; padding: 20px; } .top-bar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; border-bottom: 1px solid #333; padding-bottom: 10px; } input[typetext] { background: #000; color: #00ff00; border: 1px solid #00ff00; padding: 5px; width: 300px; } input[typesubmit] { background: #00ff00; color: #000; border: none; padding: 6px 15px; cursor: pointer; } .logout-btn { background: #ff0000; color: #fff; border: none; padding: 6px 15px; cursor: pointer; } pre { background: #000; padding: 15px; border: 1px solid #333; min-height: 50px; } /style /head body div classtop-bar spanSystem Console/span form methodPOST stylemargin: 0; input typesubmit namelogout valueLogout classlogout-btn /form /div form methodPOST span classpromptyuBelieve:~$/span input typetext namecmd autofocus autocompleteoff input typesubmit valueExec /form br pre?php echo htmlspecialchars($r, ENT_QUOTES, UTF-8); ?/pre /body /html认证后可以执行ls和cat *.txt命令但存在过滤禁止;|$等字符。倒是可以用多文件规避正则实现读任意文件if (preg_match(/^ls(\s.*)?$/, $c) || preg_match(/^cat\s.*\.txt$/, $c)) { if (!preg_match(/[;|$\n]/, $c)) { $r shell_exec($c);总结这个靶机哪怕经过了多轮测试还是存在一些问题现在ai的不断强大对于静态二进制文件还是冲击较大选手可以通过ai快速完成最后对于二进制文件的反编译快速得到口令只有动态调试的文件暂时还算良好但是相信不久以后ai也能解决类似的问题这个靶机制作的一个初衷就是之前听到的一个玩笑话当你输入正确密码后也不能进入页面才能正在防护爆破因为真正知道密码的人一定还会输入几遍emoji[嘻嘻]if (preg_match(‘/^ls(\s.*)?$/’,KaTeX parse error: Undefined control sequence: \s at position 24: …eg_match(/^cat\̲s̲.*\.txt/‘,KaTeX parse error: Expected }, got at position 36: …reg_match(/[;|̲\n]/’, $c)) {r s h e l l e x e c ( r shell_exec(rshelle​xec(c);## 总结 这个靶机哪怕经过了多轮测试还是存在一些问题 现在ai的不断强大对于静态二进制文件还是冲击较大选手可以通过ai快速完成最后对于二进制文件的反编译快速得到口令只有动态调试的文件暂时还算良好但是相信不久以后ai也能解决类似的问题 这个靶机制作的一个初衷就是之前听到的一个玩笑话 当你输入正确密码后也不能进入页面才能正在防护爆破因为真正知道密码的人一定还会输入几遍emoji[嘻嘻] 而对于后面的提权只是因为我最初接触这个行业的时候是作为一个CTF选手去解决reverse方向的题目所以做了一道反编译题目。

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

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…