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

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

对该压缩包进行解压后,分别查看authorized_keys、id_rsa.pub文件内容

为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

http://www.lryc.cn/news/517542.html

相关文章:

  • Eclipse配置Tomcat服务器(最全图文详解)
  • STM32烧写失败之Contents mismatch at: 0800005CH (Flash=FFH Required=29H) !
  • 用户界面的UML建模10
  • 电影动画shader解析与实现
  • 蓝桥杯 第十五届 研究生组 B题 召唤数学精灵
  • 在 Go 应用中 如何像 FastAPI 一样优雅地构建控制器
  • 用户界面的UML建模11
  • 历代iPhone运行内存大小和电池容量信息
  • 计算机网络之---物理层设备
  • 57. Three.js案例-创建一个带有聚光灯和旋转立方体的3D场景
  • 第八讲 一元函数积分学的概念和性质
  • ADMM原理及应用
  • mysql之sql的优化方案(重点)
  • 【LeetCode】303. 区域和检索 - 数组不可变
  • 前端开发 vue 中如何实现 u-form 多个form表单同时校验
  • 【网络】什么是速率 (Rate)带宽 (Bandwidth)吞吐量 (Throughput)?
  • (leetcode算法题)769. 最多能完成排序的块
  • 高光谱相机的特点
  • 《Spring Framework实战》8:4.1.3.Bean 概述
  • BGP的local_preference本地优先级属性
  • IP地址与端口号
  • Fastapi + vue3 自动化测试平台(2)--日志中间件
  • iOS - AutoreleasePool
  • 1.CSS的复合选择器
  • 优质内容在个人IP运营中的重要性:以开源AI智能名片商城小程序为应用实例的深度探讨
  • Kafka性能测试
  • 解决Docker冲突问题
  • 新手入门 React .tsx 项目:从零到实战
  • 基于可信数据空间的企业数据要素与流通体系建设(附ppt 下载)
  • 二维数组:求最大元素及其所在的行坐标及列坐标(PTA)C语言