今天要介紹的是unix-privesc-check
,它是一個在 Unix 系統上運行的腳本,會檢查程式、資料夾、各種設定,嘗試找到錯誤的配置,來將一般使用者的權限提升,而提升權限意味使用者不再受限,甚至可以掌控整個主機。而且不像之前介紹的那些工具,是在Kali上遠端對目標機器執行一些工作,而是直接在本機上執行。本機端執行
這點可能會讓人疑惑:「本機上要如何去安裝程式?」,因為本身是個shell腳本,所以其實不需要經過安裝的步驟,只要能夠上傳或是複製、編輯檔案等方式,將腳本放到受測機器上就可以來運行了,因此必要條件其實是要擁有受測機器上的一般使用者登入權限。
unix-privesc-check
位於Kali的Vulnerability Analysis
分類,直接執行的話可以看到介紹跟使用方式
unix-privesc-check v1.4 ( http://pentestmonkey.net/tools/unix-privesc-check )
Usage: unix-privesc-check { standard | detailed }
"standard" mode: Speed-optimised check of lots of security settings.
"detailed" mode: Same as standard mode, but also checks perms of open file
handles and called files (e.g. parsed from shell scripts,
linked .so files). This mode is slow and prone to false
positives but might help you find more subtle flaws in 3rd
party programs.
This script checks file permissions and other settings that could allow
local users to escalate privileges.
Use of this script is only permitted on systems which you have been granted
legal permission to perform a security assessment of. Apart from this
condition the GPL v2 applies.
Search the output for the word 'WARNING'. If you don't see it then this
script didn't find any problems.
看來使用方式只有分standard
跟detailed
,另外也有提到如果找到問題會有關鍵字WARNING
,所以執行的時候可以直接過濾出關鍵字
/usr/bin/unix-privesc-check standard | grep WARNING
但我自己在執行過程中看到許多腳本語法問題造成無法正常執行的狀況
/usr/bin/unix-privesc-check: 1076: [: standard: unexpected operator
本來以為是腳本太久,但後來打開腳本實際去看,第一行是#!/bin/sh
,代表直接執行是會用sh
去執行,然後ls -al /bin/sh
去檢查是否有軟連結,會發現Kali是使用dash
來執行,所以接下來改用bash
來執行腳本
bash /usr/bin/unix-privesc-check standard | grep WARNING
在Kali上的掃瞄結果
Search the output below for the word 'WARNING'. If you don't see it then
WARNING: There are SSH agents running on this system:
WARNING: There are GPG agents running on this system:
接下來可以把腳本複製到靶機上去試試看,可以利用scp
將腳本傳到靶機上
scp /usr/bin/unix-privesc-check msfadmin@192.168.1.86:
然後到靶機的家目錄上執行上面的指令
bash unix-privesc-check standard | grep WARNING
偵測結果跟Kali上就有些不同,真不愧是靶機...
Search the output below for the word 'WARNING'. If you don't see it then
WARNING: Unencrypted Private SSH Key Found in /home/msfadmin/.ssh/id_rsa
WARNING: Public SSH Key Found in /root/.ssh/authorized_keys
WARNING: Public SSH Key Found in /home/msfadmin/.ssh/authorized_keys
今天介紹了unix-privesc-check
這個古老的腳本,但其實還不是很了解它是如何判斷設定是有問題,什麼是可利用的,但好在它是腳本,行數也大概一千多行左右,所以之後還是需要投資一些時間來了解它實際上是如何運作的。