nic linuxで直接バイナリファイルを渡す

nic linuxで直接バイナリファイルを渡す

私は私の仕事のためにたくさんのパージャーを作ります(しばしば「未知の」古いプロトコルへのランダムなデータ転送)。時には、Saleaeアナライザと私に合ったPythonテンプレートを使用して「ビットバン」を実行する必要があります。しかし、私はもっと深い知識を得るために努力しています。私はBashに精通しており、TCPソケットを介して直接情報を送信するのに非常に経験があります。

echo "何でも" > /dev/tcp/[ip]/[port]

私はリバースシェル呼び出しで遊んでいましたが、そのうちのいくつかはより低いレベルのソケット関数を直接呼び出すようだったので、それを利用する方法がわかりません。私の質問は次のとおりです。

NICから直接バイナリデータを送信する方法は? TCP/IP 認識形式でなくても構いません。スクリプトとして処理できます。カードから直接バイナリファイルをダンプする方法は?知っている人はいますか?

Bashでバイナリをダンプするのは少し面倒で、テストが難しくなりました。多くの場合、「解釈」されるため、プログラムとシェル出力自体が異なる方法で処理されます。 16進ダンプASCIIをテキストに変換すると、シェルは自動的にそれを再変換し、1/0情報を見つけると混乱する可能性があります。 (echo "hex" |xxd -r -p) 私が得ることができる最も近いものは次のとおりです。

実際のネットワークトラフィックの16進ダンプを作成します。

tcpdump -nni eth0 -e -xx -XX > 新しいファイル

ファイルには、16進数の前の説明など、多くの「メタデータ」があります。たとえば、次のようになります。

20:20:16.122740 80:2a:a8:8e:c4:56 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), 長さ 60: 10.1.10.26 が 10.1.10.1 に言った要求, 長さ46

その後、Wiresharkを使用してテストネットワークカードの出力を実行します。

Cat新しいファイル| xxd -r -p > /dev/tcp/8.8.8.8/53

ところでWiresharkは変なことをします。ブロードキャストパケットASCIIを認識しますが、bashの自動的に変換された「cat newfile | xxd -r -p」データには表示されません。

私はこれがかなり大きなトピックであることを知っています。

助けてくれてありがとう!わかりやすくするために、私の質問は「ネットワークカードから直接16進データをダンプする方法です。

ベストアンサー1

おすすめ記事