HackTheBox-Starting Point--Tier 1---Funnel

文章目录

    • [一 题目](#一 题目)
    • [二 实验过程](#二 实验过程)
    • [三 利用SSH隧道](#三 利用SSH隧道)
      • [3.1 本地端口转发](#3.1 本地端口转发)

一 题目

++Tags++

c 复制代码
FTP、PostgreSQL、Reconnaissance、Tunneling、Password Spraying、Port Forwarding、Anonymous/Guest Access、Clear Text Credentials

译文:FTP、PostgreSQL、侦察、隧道技术、密码喷洒、转发端口、匿名/访客访问、明文凭证

++Connect++

c 复制代码
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++

c 复制代码
Spawn the target machine and the IP will show here.

译文:生成目标机器,IP 将显示在此处

++TASK 1++

c 复制代码
How many TCP ports are open?

译文:打开了多少个 TCP 端口?

答:2

++TASK 2++

c 复制代码
What is the name of the directory that is available on the FTP server?

译文:FTP 服务器上可用的目录名称是什么?

答:mail_backup

++TASK 3++

c 复制代码
What is the default account password that every new member on the "Funnel" team should change as soon as possible?

译文:"Funnel" 团队的每个新成员应该尽快更改的默认帐户密码是什么?

答:funnel123#!#

++TASK 4++

c 复制代码
Which user has not changed their default password yet?

译文:哪个用户还没有更改过默认密码?

答:christine

++TASK 5++

c 复制代码
Which service is running on TCP port 5432 and listens only on localhost?

译文:哪个服务在 TCP 端口 5432 上运行并且仅侦听本地主机?

答:postgresql

++TASK 6++

c 复制代码
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++

c 复制代码
What is the name of the database that holds the flag?

译文:持有flag的数据库的名称是什么?

答:secrets

++TASK 8++

c 复制代码
Could you use a dynamic tunnel instead of local port forwarding? Yes or No.

译文:您可以使用动态隧道代替本地端口转发吗?是还是不是。

答:yes

++SUBMIT FLAG++

c 复制代码
Submit root flag

译文:提交根标志

二 实验过程

1.端口扫描

c 复制代码
nmap -sC -sV 10.129.152.201

2.FTP匿名登录

c 复制代码
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登录及操作

c 复制代码
ssh christine@10.129.252.232
c 复制代码
# 检查哪些端口在给定的机器上执行本地监听
ss -tln

# 检查在端口上运行的默认服务 为postgresql
ss -tl
c 复制代码
# 检查并没有安装了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 本地端口转发

c 复制代码
ssh -L 1234:localhost:5432 christine@10.129.252.232

**  使用SSH在我们本地机器上的4444端口上打开了一个套接字 ,我们可以访问4444端口,将我们想要转发的流量直接转发到目标机器上的5432端口。**

注意:因端口冲突,后面把1234端口改成了4444端口

1.在本地系统安装psql,在本地远程访问5432端口的postgresql服务

c 复制代码
psql -U christine -h localhost -p 4444

2.现在已经成功使用ssh隧道连接到了postgresql服务,可以执行命令查看数据库信息

sql 复制代码
# \list缩写,列出现有数据库
\l

如下列出了5个数据库:christine、postgres、secrets、template0、template1

sql 复制代码
# 连接数据库 
\c secrets

# 查看数据库中的表
\dt
sql 复制代码
# 查看flag
select * from flag;
相关推荐
阿乾之铭12 小时前
通过Django 与 PostgreSQL 进行WEB开发详细流程
python·postgresql·django
TMDOG66615 小时前
PostgreSQL 学习笔记:PostgreSQL 主从复制
笔记·学习·postgresql
大霸王龙16 小时前
django+postgresql
数据库·后端·python·postgresql·django
喵手2 天前
PostgreSQL 增量备份:保护你的数据资产
数据库·postgresql
君败红颜3 天前
MySQL 和 PostgreSQL 的对比概述
数据库·mysql·postgresql
MMMMMMMMMMemory3 天前
服务器内存不够导致postgresql进程被kill的问题记录
运维·服务器·postgresql
PGCCC3 天前
【PGCCC】Postgresql 缓存池原理
spring·缓存·postgresql
DBA实战3 天前
PostgreSQL核心揭秘(二)-进程和内存架构
数据库·postgresql·架构
君败红颜3 天前
PostgreSQL 触发器的深入探讨
数据库·postgresql
高铭杰3 天前
Postgresql源码(137)执行器参数传递与使用
数据库·postgresql·参数·param·paramlistinfo