文章目录
- 一 题目
- 二 实验过程
- 三 利用SSH隧道
- 3.1 本地端口转发
一 题目
Tags
FTP、PostgreSQL、Reconnaissance、Tunneling、Password Spraying、Port Forwarding、Anonymous/Guest Access、Clear Text Credentials
译文:FTP、PostgreSQL、侦察、隧道技术、密码喷洒、转发端口、匿名/访客访问、明文凭证
Connect
To attack the target machine, you must be on the same network.Connect to the Starting Point VPN using one of the following options.
It may take a minute for HTB to recognize your connection.If you don't see an update after 2-3 minutes, refresh the page.
译文:要攻击目标机器,您必须位于同一网络上。使用以下选项之一连接到起点 VPN。
HTB 可能需要一分钟才能识别您的连接。如果 2-3 分钟后没有看到更新,请刷新页面。
SPAWN MACHINE
Spawn the target machine and the IP will show here.
译文:生成目标机器,IP 将显示在此处
TASK 1
How many TCP ports are open?
译文:打开了多少个 TCP 端口?
答:2
TASK 2
What is the name of the directory that is available on the FTP server?
译文:FTP 服务器上可用的目录名称是什么?
答:mail_backup
TASK 3
What is the default account password that every new member on the "Funnel" team should change as soon as possible?
译文:"Funnel" 团队的每个新成员应该尽快更改的默认帐户密码是什么?
答:funnel123#!#
TASK 4
Which user has not changed their default password yet?
译文:哪个用户还没有更改过默认密码?
答:christine
TASK 5
Which service is running on TCP port 5432 and listens only on localhost?
译文:哪个服务在 TCP 端口 5432 上运行并且仅侦听本地主机?
答:postgresql
TASK 6
Since you can't access the previously mentioned service from the local machine, you will have to create a tunnel and connect to it from your machine. What is the correct type of tunneling to use? remote port forwarding or local port forwarding?
译文:由于您无法从本地计算机访问前面提到的服务,因此您必须创建一个隧道并从您的计算机连接到它。正确使用的隧道类型是什么?远程端口转发还是本地端口转发?
答:local port forwarding
TASK 7
What is the name of the database that holds the flag?
译文:持有flag的数据库的名称是什么?
答:secrets
TASK 8
Could you use a dynamic tunnel instead of local port forwarding? Yes or No.
译文:您可以使用动态隧道代替本地端口转发吗?是还是不是。
答:yes
SUBMIT FLAG
Submit root flag
译文:提交根标志
二 实验过程
1.端口扫描
nmap -sC -sV 10.129.152.201
2.FTP匿名登录
ftp 10.129.252.232
anonymous
空密码
3.下载FTP上的文件
4.查看password_policy.pdf和welcome_28112022
发现邮件账号:optimus@funnel.htb albert@funnel.htb andreas@funnel.htb christine@funnel.htb maria@funnel.htb
发现一个默认密码:
funnel123#!#
5.利用上文获取的账号密码爆破ssh账号密码
账号字典:user.txt:[optimus、albert、andreas、christine、maria]
密码字典:
6.SSH登录及操作
ssh christine@10.129.252.232
# 检查哪些端口在给定的机器上执行本地监听
ss -tln
# 检查在端口上运行的默认服务 为postgresql
ss -tl
# 检查并没有安装了postgresql客户端工具
psql
# 并且不能进行下载,需要root权限
apt install postgresql-client-common
三 利用SSH隧道
1.隧道简介
隧道协议是一种通信协议,它允许利用封装将数据从一个网络移动到另一个网络。
隧道协议的工作原理是使用数据包的数据部分(有效载荷)来携带实际提供服务的数据包。隧道使用一种分层的协议模型,如OSI或TCP/IP协议套件的那些,但通常在使用有效载荷来承载通常不由网络提供的服务时违反分层。通常,交付协议在分层模型中运行在与有效载荷协议相等或更高的级别上。
利用隧道,可以访问支队内部网络可用的资源。
常见的三种隧道:
1.本地端口转发
使用本地端口转发,则在现有的有效SSH会话中创建一个单独的隧道,该隧道将网络流量从客户端机器的本地端口转发到远程服务器的端口。在底层,SSH在给定端口的客户机上分配一个套接字侦听器,当连接到该端口时,该连接将通过现有的SSH会话转发到远程服务器的端口 。
2.远程端口转发
也称为反向隧道挖掘,它是与本地端口转发隧道完全相反。SSH连接成功,创建一个单独的隧道,SSH使用该隧道将到服务器端口的传入流量重定向回客户端 。
在底层,SSH在给定端口的服务器上分配一个套接字侦听器。当连接到该端口时,该连接将通过现有的SSH会话转发到本地客户端的端口 。
3.动态端口转发
与本地和远程都有转发,在隧道创建之前必须定义本地端口和远程端口。动态隧道允许用户指定一个将从客户端动态地将传入的流量转发到服务器的端口。因此,在内部发生的事情是,SSH变成了一个SOCKS5代理,通过SOCKET5代理服务器在客户端和服务器之间交换网络数据包。
3.1 本地端口转发
ssh -L 1234:localhost:5432 christine@10.129.252.232
使用SSH在我们本地机器上的4444端口上打开了一个套接字 ,我们可以访问4444端口,将我们想要转发的流量直接转发到目标机器上的5432端口。
注意:因端口冲突,后面把1234端口改成了4444端口
1.在本地系统安装psql,在本地远程访问5432端口的postgresql服务
psql -U christine -h localhost -p 4444
2.现在已经成功使用ssh隧道连接到了postgresql服务,可以执行命令查看数据库信息
# \list缩写,列出现有数据库
\l
如下列出了5个数据库:christine、postgres、secrets、template0、template1
# 连接数据库
\c secrets
# 查看数据库中的表
\dt
# 查看flag
select * from flag;