直接通过 nic linux 传递二进制文件

直接通过 nic linux 传递二进制文件

我为我的工作做了很多模糊器创建(将随机数据发送到经常“未知”的旧协议)。有时我必须使用 saleae 分析器和适合我的 python 模板来“bit bang”它。不过,我正在尝试获得一些更深入的知识。我对 Bash 很熟悉,而且我对直接通过 TCP 套接字发送信息非常有经验

echo“无论什么”> /dev/tcp/[ip]/[端口]

我一直在玩反向 shell 调用,其中一些似乎直接调用较低级别的套接字函数,我不知道如何利用它。这是我的问题:

如何直接从 NIC 发送二进制数据?不在乎它是否不是 tcp/ip 可识别的格式...我可以在脚本中处理它。如何直接从卡中转储二进制文件?有人知道吗?

在 bash 中转储二进制文件有点棘手,这让我的测试变得困难。它经常被“解释”,因此程序和 shell 输出本身的处理方式不同。我可以将十六进制转储 ascii 转换为文本,并且 shell 会自动转换回来,当您寻找 1/0 信息时,这可能会令人困惑。 (echo "hex" |xxd -r -p) 我能得到的最接近的是:

创建实际网络流量的十六进制转储:

tcpdump -nni eth0 -e -xx -XX > 新文件

该文件有很多“元数据”,例如十六进制之前的描述,例如:

20:20:16.122740 80:2a:a8:8e:c4:56 > ff:ff:ff:ff:ff:ff,ethertype ARP (0x0806),长度 60:请求 who-has 10.1.10.26 告诉 10.1.10.1,长度46

然后使用wireshark运行测试网卡输出:

猫新文件 | xxd -r -p > /dev/tcp/8.8.8.8/53

但wireshark做了一些奇怪的事情。识别广播数据包 ASCII,但不能识别 bash 自动转换的“cat newfile | xxd -r -p”数据中看到的内容...

我知道这是一个相当大的主题。

任何帮助表示赞赏!为了清楚起见,我的问题是“如何直接从网卡中转储十六进制数据。最好像执行“echo [whatever] > /dev/tcp/”时那样

相关内容