2015-02-24 134 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