Linux用户植入全实操教程(含普通用户、sudo提权、影子用户,附权限详解)
在Linux系统管理与渗透测试场景中,用户植入是核心基础操作——无论是合法运维中创建普通用户分配权限,还是渗透测试里的权限维持(如隐藏影子用户),掌握用户创建、提权、权限查看的核心命令,都是必备技能。本文基于实操笔记,全程拆解Linux用户植入全流程,涵盖普通用户创建、sudo提权、影子用户隐藏,搭配详细权限解析和可直接复制的命令,新手能快速上手,老手可查漏补缺。
一、基础植入:新建带家目录的普通用户(核心实操)
新建普通用户是最基础的植入操作,默认情况下useradd命令仅创建用户,不自动生成家目录,需添加参数手动指定,全程需root权限,终端执行即可。
1. 新建带家目录的普通用户
核心命令(可直接复制):useradd -m 用户名
参数说明:-m 是核心参数,作用是自动为新建用户创建对应的家目录,默认路径为 /home/用户名,无需手动创建,简化操作流程。
实操示例:useradd -m testuser,执行后系统会自动生成 /home/testuser 目录,作为testuser的专属家目录。
2. 为新建用户设置登录密码
新建用户默认无密码,无法登录,需用passwd命令设置密码,命令可直接复制:
核心命令:passwd 用户名
实操步骤:执行命令后,终端会提示 Enter new UNIX password,输入密码(输入时不显示,避免密码泄露),再次确认密码即可完成设置。
注意:建议设置复杂密码(字母+数字+特殊符号),避免弱密码被破解;若提示 password too simple,可忽略提示或按系统要求调整密码复杂度。
3. 补充:查看SSH状态(适配远程登录)
若需通过SSH远程登录新建用户,需先确认SSH服务是否开启,核心命令:
service ssh status
效果说明:若终端显示 active (running),说明SSH服务已开启,可直接远程登录;若显示 inactive (dead),需执行 service ssh start 启动SSH服务。
4. 补充:查看系统版本(适配不同发行版命令)
不同Linux发行版(如Ubuntu、CentOS)部分命令略有差异,可先查看系统版本,避免命令失效:
简化命令(查看内核版本):uname
详细命令(查看完整系统信息):uname -a
二、核心解析:用户、组及密码相关文件(必学知识点)
Linux中用户、组、密码的核心信息均存储在特定系统文件中,掌握这些文件的解析方法,既能快速排查权限问题,也能为后续提权、隐藏用户打下基础。
1. 查看所有用户信息:/etc/passwd 文件
核心命令:cat /etc/passwd
文件解析:每一行对应一个用户,用冒号(:)分隔,共7列,重点解析如下:
-
第1列:用户名(核心标识,用于区分不同用户);
-
第2列:X(密码占位符)—— 重点:密码并非存放在该文件中,X仅表示“预留密码位置”,真实密码存储在另一文件中(下文详解);
-
第3列:UID(用户ID)—— 核心权限标识,管理员(root用户)的UID和GID(组ID)均为0,通过UID可快速判断是否为root用户;
-
第4列:GID(组ID)—— 用户所属主组的ID;
-
第5列:用户描述(可选,默认为空,可手动修改,用于说明用户用途);
-
第6列:家目录路径(普通用户默认
/home/用户名,root用户默认/root); -
第7列:shell(命令解释器,相当于“翻译官”,负责解析用户输入的命令,默认是
/bin/bash)。
2. 查看所有用户组信息:/etc/group 文件
核心命令:cat /etc/group
作用:查看系统中所有用户组,每一行对应一个组,包含组名、组密码占位符、GID、该组下的所有用户,后续给用户添加附加组时,需通过此文件确认组名(如sudo组)。
3. 查看用户密码详情:/etc/shadow 文件
核心命令:cat /etc/shadow
说明:该文件是Linux系统的密码配置文件,权限严格(仅root用户可查看),每一行对应一个用户的密码信息,用冒号(:)分隔,核心列解析:
-
第1列:用户名(与
/etc/passwd第1列完全一致); -
第2列:加密后的密码—— 若显示 ※ 或 !,表示该用户密码被禁用,无法登录;
-
第3列:密码最后修改日期(以1970年1月1日为起始点,计算的天数);
-
第4列:密码最小修改间隔(天数,即修改密码后,至少过多少天才能再次修改);
-
第5列:密码有效期(天数,超过该天数,密码会过期,需重新设置)。
4. 查看文件权限与归属:ls -l 命令
核心命令:ls -l
作用:详细查看当前目录下所有文件/目录的信息,包括文件类型、权限、所有者、所属组、最后修改日期等,核心用于判断用户对文件的操作权限。
权限解析(r、w、x 对应读、写、执行,数字表示更直观,核心记忆):
-
r(读权限):数字4,对应权限—— 可查看文件内容、列出目录下的文件;
-
w(写权限):数字2,对应权限—— 可修改文件内容、创建/删除目录下的文件;
-
x(执行权限):数字1,对应权限—— 可执行文件、进入目录;
-
-(无权限):数字0,对应权限—— 无法对文件/目录进行任何操作。
实操示例:若文件权限为 -rwxr-xr--,则:
所有者(第一个rwx):拥有读、写、执行权限(4+2+1=7);
所属组(第二个r-x):拥有读、执行权限(4+1=5);
其他用户(第三个r--):仅拥有读权限(4)。
三、权限提升:普通用户sudo提权(实操可直接复制)
新建的普通用户默认无管理员权限,无法执行 cat /root、ls /root 等操作,需通过两种方式实现sudo提权,其中第二种方式可实现临时root权限,实操性更强。
方式1:将普通用户添加到sudo附加组
核心命令(可直接复制):usermod -aG sudo 用户名
参数说明:-aG 中,G表示“添加到附加组”,a表示“追加”,避免覆盖用户原有组;sudo是系统默认的管理员权限组,加入该组后,用户可使用sudo命令临时提权。
注意:此方式添加后,用户虽能使用sudo,但部分高权限操作仍可能受限,且可通过 cat /etc/group 查到该用户所属的sudo组,隐蔽性一般。
方式2:修改/etc/sudoers文件(推荐,提权更彻底)
此方式可让普通用户拥有与root同等的临时权限,且隐蔽性优于方式1,步骤如下(全程root权限执行):
-
编辑sudoers配置文件,核心命令:
nano /etc/sudoers; -
在文件中找到root用户的配置行(通常为
root ALL=(ALL:ALL) ALL); -
复制该行内容,粘贴到下一行,将“root”改为新建的用户名(如testuser),修改后为
testuser ALL=(ALL:ALL) ALL; -
保存退出:按
ctrl+X,输入Y确认保存,回车退出编辑器; -
测试提权:切换到新建用户,执行
sudo ls /root,输入该用户密码,即可临时提权到root,成功查看/root目录内容。
四、权限维持:影子用户创建(更隐秘,渗透测试常用)
影子用户是一种隐蔽性极强的用户,本质是复制root用户的权限配置,修改用户名后隐藏,不易被发现,适合渗透测试中的权限维持,实操步骤可直接复制:
-
编辑用户配置文件,核心命令:
nano /etc/passwd; -
在文件中找到root用户的配置行(UID和GID均为0),复制该行内容;
-
将复制的内容粘贴到下一行,将该行的“root”改为自己创建的影子用户名(如hiddenuser),确保UID和GID仍为0(保持root权限);
-
保存退出:按
ctrl+X,输入Y确认保存,回车退出编辑器; -
生效测试:退出当前连接(执行
exit),重新连接目标机器,使用影子用户名和密码登录,即可获得root权限,且不易被常规排查发现。
五、补充知识点:用户(user)与组(group)核心概念
掌握用户与组的基础概念,能更好地理解权限分配逻辑,避免操作失误:
1. 用户(user)分类(按UID区分)
-
root用户:UID=0,是系统最高权限用户,可执行所有操作;
-
系统用户:UID=1-999,通常用于系统服务进程,无需登录,仅用于运行服务;
-
普通用户:UID≥1000,是日常使用的用户,权限受限制,需提权才能执行高权限操作。
2. 组(group)分类(批量管理用户权限)
-
主组(primary Group):用户创建时默认归属的组,用户创建的文件/目录,默认归属主组;
-
附加组(supplementary Group):用户可额外加入的组,用于获取该组的权限,一个用户可加入多个附加组。
六、实操总结(重点梳理,快速回顾)
本文所有命令均可直接复制实操,核心流程梳理:
-
新建普通用户:
useradd -m 用户名→passwd 用户名; -
辅助操作:
service ssh status(查SSH)、uname -a(查系统版本); -
权限查看:
cat /etc/passwd(用户)、cat /etc/group(组)、cat /etc/shadow(密码)、ls -l(文件权限); -
sudo提权:
usermod -aG sudo 用户名或 修改/etc/sudoers文件; -
影子用户:复制root配置到
/etc/passwd,修改用户名,保存生效。
注意:所有操作需在合法授权下进行,渗透测试仅用于授权场景,禁止未授权操作!
更多推荐
所有评论(0)