您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(guān)如何通過(guò)可寫(xiě)入的etcpasswd文件實(shí)現(xiàn)Linux提權(quán),小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話(huà)不多說(shuō),跟著小編一起來(lái)看看吧。
在Windows環(huán)境中,管理員或管理員組的成員會(huì)具有較高的權(quán)限,而這些高權(quán)限用戶(hù)也是攻擊者的主要目標(biāo)。同樣,在Linux環(huán)境中root或具有sudo權(quán)限的用戶(hù)也將會(huì)是攻擊者的主要針對(duì)用戶(hù)。
我們將討論有關(guān)文件配置錯(cuò)誤導(dǎo)致權(quán)限提升的例子。通常,在CTF挑戰(zhàn)期間,我們總會(huì)想到查看passwd文件,以了解系統(tǒng)上可用的用戶(hù)。
passwd文件存在于Linux root的/etc目錄中。最重要的一點(diǎn)是,該文件非特權(quán)用戶(hù)也可以進(jìn)行訪問(wèn)。
Linux系統(tǒng)中的每個(gè)用戶(hù)都在/etc/passwd文件中有一個(gè)對(duì)應(yīng)的記錄行,它記錄了這個(gè)用戶(hù)的一些基本屬性。這個(gè)文件對(duì)所有用戶(hù)都是可讀的。它是一個(gè)以冒號(hào)分隔的文件,按順序其包含的信息如下:
用戶(hù)名
加密密碼
用戶(hù) ID (或 UID)
組 ID (或 GUID)
用戶(hù)全名
用戶(hù)家目錄
登錄 Shell
現(xiàn)在,我們將查看/etc/passwd文件:
讓我們?cè)敿?xì)了解一下“/etc/passwd”文件,這里我們以root用戶(hù)為例:
root:用戶(hù)名。
x:放置用戶(hù)密碼。密碼直接從“/etc/shadow”文件中獲取。
0:root用戶(hù)UID。
0:root用戶(hù)GID。
root:用戶(hù)描述的占位符。
/root:用戶(hù)的家目錄。將在終端會(huì)話(huà)中向用戶(hù)顯示該目錄。
/bin/bash:用戶(hù)的shell。根據(jù)用戶(hù)的目的,將在用戶(hù)登錄時(shí)生成此shell。
在VM中兩個(gè)Linux系統(tǒng)的配置如下,并使用NAT網(wǎng)絡(luò)模式(用于共享主機(jī)的IP地址)。
OS Name | Role | OS Version | Machine IP | Kernel Version |
---|---|---|---|---|
Kali Linux (x64 bit) | 攻擊者機(jī)器 | Kali | 192.168.245.134 | 4.12.0-kali2-686 |
Ubuntu (x64 bit) | 易受攻擊機(jī)器 | Ubuntu 14.04.6 LTS | 192.168.245.146 | 4.4.0-142-generic |
我們假設(shè)已在攻擊者機(jī)器(kali)上獲取到了目標(biāo)系統(tǒng)的hacknpentest用戶(hù)權(quán)限?,F(xiàn)在,我們將上傳linuxprivchecker.py python腳本來(lái)查看,目標(biāo)系統(tǒng)上可能存在的錯(cuò)誤配置。
我們使用wget(或web get)將文件下載到目標(biāo)服務(wù)器。
默認(rèn)情況下,Python已在所有l(wèi)inux機(jī)器上安裝。我們將使用以下命令來(lái)運(yùn)行枚舉腳本。
python linuxprivchecker.py
仔細(xì)查看腳本輸出,我們發(fā)現(xiàn)passwd文件是world可寫(xiě)文件,具有對(duì)普通用戶(hù)的讀,寫(xiě)和修改權(quán)限。
權(quán)限的錯(cuò)誤配置可能會(huì)被以某種方式濫用,從而將當(dāng)前用戶(hù)權(quán)限提升為root用戶(hù)?,F(xiàn)在,我們將嘗試寫(xiě)入passwd文件以使我們成為root用戶(hù)。
我們將向passwd文件添加一個(gè)用戶(hù),并在相應(yīng)的字段中顯式地給出加密密碼。你可以使用perl語(yǔ)言生成帶有salt的加密密碼,如下所示:
$perl -le 'print crypt("THIS_IS_Original_PASSWORD","SALT")'
下面的命令將向passwd文件添加一個(gè)具有加密密碼和UID,GID設(shè)置為root [0]的用戶(hù)。
echo "Tom:Encrypted_Password:0:0:User_like_root:/root:/bin/bash" >> /etc/passwd
讓我們拆解下我們要添加到passwd文件的字段。
Tom:用戶(hù)名
ad7t5uIalqMws:加密用戶(hù)密碼
0:root用戶(hù)ID
0:root組ID
User_like_root:用戶(hù)描述
/root:用戶(hù)家目錄
/bin/bash:用戶(hù)的Shell
'>>'符號(hào)將輸出重定向到文件,并在結(jié)尾附加重定向輸出的內(nèi)容(此處為/etc/passwd文件)。
生成加密密碼:
perl -le ‘print crypt(“Password@973″,”addedsalt”)’
上面的命令將生成一個(gè)帶有以下密碼和salt的哈希:
原密碼:Password@973
鹽:addedsalt
加密密碼:ad7t5uIalqMws
使用上面的加密密碼,我們現(xiàn)在將以下內(nèi)容附加到/etc/passwd文件中。
echo "Tom:ad7t5uIalqMws:0:0:User_like_root:/root:/bin/bash" >> /etc/passwd
Tom用戶(hù)已成功被附加到/etc/passwd文件。
cat /etc/passwd
現(xiàn)在,使用su命令我們將嘗試使用Tom用戶(hù)登錄。
這里提示必須在終端運(yùn)行,但我們并沒(méi)有什么合適的終端。我們將使用以下python one liner(目標(biāo)服務(wù)器上已安裝了python)遷移到bash shell:
python -c 'import pty; pty.spawn("/bin/bash")'
現(xiàn)在,我們嘗試使用以下命令登錄Tom用戶(hù):
su – Tom
太棒了!可以看到現(xiàn)在我們的用戶(hù)權(quán)限已提升為了root!
我們?cè)趐asswd文件中發(fā)現(xiàn)了權(quán)限配置錯(cuò)誤,并最終利用這一點(diǎn)將我們的用戶(hù)權(quán)限提升為了root。在下一篇文章中,我們將討論有關(guān)Linux權(quán)限提升的其他方法。
以上就是如何通過(guò)可寫(xiě)入的etcpasswd文件實(shí)現(xiàn)Linux提權(quán),小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。