概述 (Overview)
HOST: 10.10.11.143
OS: LINUX
发布时间: 2022-02-06
完成时间: 2022-06-15
机器作者: secnigma
困难程度: EASY
机器状态: 退休
MACHINE TAGS: #DirectoryTraversal #WordPress #Polkit
攻击链 (Kiillchain)
使用 Nmap 工具识别目标服务器开放端口,访问开放的 Web 服务并进行指纹识别和目录枚举。通过 WordPress 的历史漏洞阅读私有内容,使用邀请注册链接进入聊天服务器操作自动化 bot 进行文件读取,使用密码复用成功拿到立足点。
最终通过 CVE-2021-3560 完成权限提升。
枚举(Enumeration)
前期使用 Nmap
工具对目标开放端口进行识别:
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.0 (protocol 2.0)
| ssh-hostkey:
| 2048 10:05:ea:50:56:a6:00:cb:1c:9c:93:df:5f:83:e0:64 (RSA)
| 256 58:8c:82:1c:c6:63:2a:83:87:5c:2f:2b:4f:4d:c3:79 (ECDSA)
|_ 256 31:78:af:d1:3b:c4:2e:9d:60:4e:eb:5d:03:ec:a0:22 (ED25519)
80/tcp open http Apache httpd 2.4.37 ((centos) OpenSSL/1.1.1k mod_fcgid/2.3.9)
| http-methods:
| Supported Methods: OPTIONS HEAD GET POST TRACE
|_ Potentially risky methods: TRACE
|_http-title: HTTP Server Test Page powered by CentOS
|_http-generator: HTML Tidy for HTML5 for Linux version 5.7.28
|_http-server-header: Apache/2.4.37 (centos) OpenSSL/1.1.1k mod_fcgid/2.3.9
443/tcp open ssl/http Apache httpd 2.4.37 ((centos) OpenSSL/1.1.1k mod_fcgid/2.3.9)
|_http-generator: HTML Tidy for HTML5 for Linux version 5.7.28
| http-methods:
| Supported Methods: OPTIONS HEAD GET POST TRACE
|_ Potentially risky methods: TRACE
|_http-title: HTTP Server Test Page powered by CentOS
| ssl-cert: Subject: commonName=localhost.localdomain/organizationName=Unspecified/countryName=US
| Subject Alternative Name: DNS:localhost.localdomain
| Issuer: commonName=localhost.localdomain/organizationName=Unspecified/countryName=US
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2021-07-03T08:52:34
| Not valid after: 2022-07-08T10:32:34
| MD5: 579a 92bd 803c ac47 d49c 5add e44e 4f84
|_SHA-1: 61a2 301f 9e5c 2603 a643 00b5 e5da 5fd5 c175 f3a9
|_http-server-header: Apache/2.4.37 (centos) OpenSSL/1.1.1k mod_fcgid/2.3.9
|_ssl-date: TLS randomness does not represent time
| tls-alpn:
|_ http/1.1
可以看到开放端口挺少的,目标服务器系统为 centos ,Web 中间件是 Apache httpd 2.4.37,80、443 上的 Web 服务从 title 信息上识别都是一个站。
所以已知的攻击线路是从 Web 服务进行打点(reconnaissance)了。
Port 80 - office.paper
使用 whatweb 工具识别了下目标站点的指纹,发现除了版本信息外并没有过多额外的信息,其中 X-Backend 暂时不知道代表的特殊意义是什么。
# whatweb http://10.10.11.143
http://10.10.11.143 [403 Forbidden] Apache[2.4.37][mod_fcgid/2.3.9], Country[RESERVED][ZZ], Email[webmaster@example.
com], HTML5, HTTPServer[CentOS][Apache/2.4.37 (centos) OpenSSL/1.1.1k mod_fcgid/2.3.9], IP[10.10.11.143], MetaGenera
tor[HTML Tidy for HTML5 for Linux version 5.7.28], OpenSSL[1.1.1k], PoweredBy[CentOS], Title[HTTP Server Test Page p
owered by CentOS], UncommonHeaders[x-backend-server], X-Backend[office.paper]
浏览器访问后页面如下,看起来是个 Blog 类网站。
通过目录扫描工具可以识别出是 WordPress 应用,根据版本信息查找历史漏洞发现存在:WordPress <= 5.2.3 - 未经身份验证查看私人/草稿帖子。
https://wpscan.com/vulnerability/3413b879-785f-4c9f-aa8a-5a4a1d5e0ba2
访问后得到隐藏内容。
http://office.paper/?static=1
内容中暴漏了一个新的域名: http://chat.office.paper,这是个用于团队沟通的免费开源应用,访问这个域名后进入邀请注册页面。
立足点(Foothold)
翻阅左侧板块,可以在 #ganeral
中找到特殊内容,用于操作该频道中的聊天机器人进行自动化脚本操作。
简单使用下,Bot 成功读取目标服务器上的 hosts 文件内容。
利用它识别出机器上可以登录的用户:
...snip...
dwight:x:1004:1004::/home/dwight:/bin/bash
rocketchat:x:1001:1001::/home/rocketchat:/bin/bash
root:x:0:0:root:/root:/bin/bash
...snip...
查看文件夹内容则是使用 recyclops list ..
,组合起来使用成功在 /home/dwight
目录下找到一组密码。
export ROCKETCHAT_URL='http://127.0.0.1:48320'
export ROCKETCHAT_USER=recyclops
export ROCKETCHAT_PASSWORD=Queenofblad3s!23
export ROCKETCHAT_USESSL=false
export RESPOND_TO_DM=true
export RESPOND_TO_EDITED=true
export PORT=8000
export BIND_ADDRESS=127.0.0.1
使用该组密码进行 ssh 登录,成功以 dwight 用户身份进入目标服务器。
权限提升(Privilege Escalation)
将 linpeas.sh
文件传递到目标服务器上运行,进行风险项分析已帮助权限提升操作。关注到 sudo 服务的版本非常低,且在 CVEs Check 中识别出可用的 CVE-2021-3560
。
通过搜索 CVE 信息了解到:CVE-2021-3560 是 polkit 中潜伏了7年之久的漏洞,于2021年6月份公布。该漏洞能使非特权本地用户获得系统 root 权限。
该权限提升漏洞适用于 Polkit Versions 0.0 - 0.118,正好该服务器的 Polkit 就属于风险版本内,直接在 Github 上找利用 exploit 传递至服务器,运行后完成最终的权限提升。