2015-02-24 132 views
0

對於我的安全類,我們應該使用寫得很差的文件複製程序來獲得root shell。我們應該把我們的黑客寫入腳本。我知道如何訪問/ etc/shadow文件,但我不知道如何從bash腳本中搜索root密碼並將其替換爲無密碼。我知道影子文件的格式,username:password:etc,但在腳本中可以找到密碼的位置並替換它?如何使用bash腳本替換/ etc/shadow中的密碼?

我發現了命令sed,但那需要我知道舊密碼是什麼。在此之前有另一個命令可以用來獲取密碼嗎?

注:我與/ etc/shadow文件的副本,我就可以覆蓋原來的

+0

除非你是'root',否則你不能讀取'/ etc/shadow',所以如果你錯過了這個點,你最終不會得到root的密碼。 – fedorqui 2015-02-24 15:39:40

+0

通過他給我們的代碼,我可以獲得/ etc/shadow的副本,更改它,然後將其寫回原始代碼。這只是改變它的一部分我遇到了問題 – art3m1sm00n 2015-02-24 15:41:35

+2

如果你鎖定自己,你有恢復計劃嗎? :) :) – jm666 2015-02-24 16:37:02

回答

1

工作這是你的根哈希

pass=`cat /etc/shadow | grep root| awk -F: '{print $2}'` 
+3

可以只是一個命令:'awk -F:'$ 1 ==「root」{print $ 2} '/ etc/shadow' – fedorqui 2015-02-24 15:44:50

+0

這樣就可以找到與root相關的密碼並將其存儲在pass中?很明顯,因爲我正在處理/ etc/shadow的副本(正如上面的註釋中提到的那樣),我只是用我的副本的名稱替換該行的那一部分是正確的? – art3m1sm00n 2015-02-24 15:45:57

+0

它將存儲根密碼的散列,而不是密碼itslef。 – candymanuu 2015-02-24 15:48:29

1

爲了避免解析和使用Python/Perl的/ AWK/....一個不可能性的解決方案是在該方法,可使用usermod命令:

usermod -R /var/lib/lxc/mycontainer/rootfs -p `mkpasswd -m sha-512 lol` root 

在我所指定的不同的chroot上面的例子(-R),我用lol作爲密碼。

+0

你能否詳細說明一下,並解釋你在這裏做什麼,而不是發佈明碼嗎? – Adriaan 2015-09-25 10:58:54