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



    一 题目

    Tags

    FTP、PostgreSQL、Reconnaissance、Tunneling、Password Spraying、Port Forwarding、Anonymous/Guest Access、Clear Text Credentials
    
    译文:FTP、PostgreSQL、侦察、隧道技术、密码喷洒、转发端口、匿名/访客访问、明文凭证
    
    • 1
    • 2
    • 3

    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 分钟后没有看到更新,请刷新页面。
    
    • 1
    • 2
    • 3
    • 4
    • 5

    SPAWN MACHINE

    Spawn the target machine and the IP will show here.
    
    译文:生成目标机器,IP 将显示在此处
    
    • 1
    • 2
    • 3

    TASK 1

    How many TCP ports are open?
    
    译文:打开了多少个 TCP 端口?
    
    答:2
    
    • 1
    • 2
    • 3
    • 4
    • 5

    TASK 2

    What is the name of the directory that is available on the FTP server?
    
    译文:FTP 服务器上可用的目录名称是什么?
    
    答:mail_backup
    
    • 1
    • 2
    • 3
    • 4
    • 5

    TASK 3

    What is the default account password that every new member on the "Funnel" team should change as soon as possible?
    
    译文:"Funnel" 团队的每个新成员应该尽快更改的默认帐户密码是什么?
    
    答:funnel123#!#
    
    • 1
    • 2
    • 3
    • 4
    • 5

    TASK 4

    Which user has not changed their default password yet?
    
    译文:哪个用户还没有更改过默认密码?
    
    答:christine
    
    • 1
    • 2
    • 3
    • 4
    • 5

    TASK 5

    Which service is running on TCP port 5432 and listens only on localhost?
    
    译文:哪个服务在 TCP 端口 5432 上运行并且仅侦听本地主机?
    
    答:postgresql
    
    • 1
    • 2
    • 3
    • 4
    • 5

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5

    TASK 7

    What is the name of the database that holds the flag?
    
    译文:持有flag的数据库的名称是什么?
    
    答:secrets
    
    • 1
    • 2
    • 3
    • 4
    • 5

    TASK 8

    Could you use a dynamic tunnel instead of local port forwarding? Yes or No.
    
    译文:您可以使用动态隧道代替本地端口转发吗?是还是不是。
    
    答:yes
    
    • 1
    • 2
    • 3
    • 4
    • 5

    SUBMIT FLAG

    Submit root flag
    
    译文:提交根标志
    
    • 1
    • 2
    • 3

    二 实验过程

    1.端口扫描

    nmap -sC -sV 10.129.152.201
    
    • 1

    在这里插入图片描述

    2.FTP匿名登录

    ftp 10.129.252.232
    anonymous
    空密码
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    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
    
    • 1

    在这里插入图片描述

    # 检查哪些端口在给定的机器上执行本地监听
    ss -tln
    
    # 检查在端口上运行的默认服务 为postgresql
    ss -tl
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    # 检查并没有安装了postgresql客户端工具
    psql
    
    # 并且不能进行下载,需要root权限
    apt install postgresql-client-common
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述


    三 利用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
    
    • 1

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

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

    在这里插入图片描述

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

    psql -U christine -h localhost -p 4444
    
    • 1

    在这里插入图片描述

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

    # \list缩写,列出现有数据库
    \l
    
    • 1
    • 2

    如下列出了5个数据库:christine、postgres、secrets、template0、template1
    在这里插入图片描述

    # 连接数据库 
    \c secrets
    
    # 查看数据库中的表
    \dt
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    # 查看flag
    select * from flag;
    
    • 1
    • 2

    在这里插入图片描述

  • 相关阅读:
    谈谈对数据库中索引的理解
    Cookie和session 及Web相关工具
    读《Segment Anything in Defect Detection》
    RocketMQ如何保证消息被有序消费
    重建大师提交空三后引擎状态是等待,怎么开启?
    Typora+PicGO+腾讯云COS做图床
    ESP8266 WiFi物联网智能插座—下位机软件实现
    Java代码基础算法练习-求数据序列的最大值及最小值---2024.3.15
    代码随想录算法训练营第48天 | ● 198.打家劫舍 ● 213.打家劫舍II ● 337.打家劫舍III
    Ajax的应用
  • 原文地址:https://blog.csdn.net/sycamorelg/article/details/134166718