問題タブ [arp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - Linux TAP デバイスで ARP または ICMPv6 パケットが処理されないのはなぜですか
を使用してTAPデバイスを開いています
私が直面している問題は、アプリケーション (mozilla など) がタップ デバイスを介してパケットを送信したい場合、dst MAC アドレスを取得する必要があることです。そのため、カーネルは ARP 要求を送信します。私が書いているアプリケーションは、arp 要求を (物理 eth デバイスの raw ソケットを介して) 転送し、arp 応答を受け取ります。この arp 応答はタップ デバイスに転送されますが、カーネルはこれを受け入れることを拒否します。arp エントリを手動で追加すると、arp 要求は生成されず、双方向の IP パケット交換が行われます (mozilla は満足しています)。
Wireshark はパケットを受信でき、エラーは検出されません。ICMPv6 パケット (近隣要請と広告) の場合も同様です。デバイスでリッスンしているすべてのアプリケーションは、パケットをそのまま取得します。しかし、カーネルは ARP/ICMP のためにそれを処理しません。
私の質問は、カーネルが arp 応答/ICMPv6 メッセージを受け入れないのはなぜですか? 呼び出す必要がある ioctl 呼び出しはありますか?
編集:
タップデバイス「ethgress」でキャプチャしたパケット(tshark出力)の詳細はこちら
これは、「ethgress」の ifconfig 出力です。
ご覧のとおり、カーネルは受信した ICMPv6 パケットの受け入れを拒否しています。ただし、tx パケットはインクリメントされます。
タップ デバイス「ethgress」は IPv6 アドレス fc00:1::2 で構成されており、アプリケーションは fc00:1::1 と通信しようとしています。fc00:1::1 は、適切な MAC アドレスを持つネイバー アドバタイズメント (ターゲット IP はそのパケットの fc00:1::1 です) で応答している fc00:1:100 と同じインターフェイスにあります。Tcpdump はそれをキャプチャすることができ、wireshark/tshark はそれなしでそれをデコードすることができ、適切に形成されたパケットであると言います。ただし、Rx カウンターはカーネルによってインクリメントされず、arp キャッシュも更新されません。ARP パケットの場合も同様です。
編集2:
ネットワークはこんな感じ。冗長構成の外部ボックスが 2 台あります。それらのうちの 1 つだけがアクティブになります。それらはそれぞれ物理 NIC を介して PC に接続されています。私が書いているアプリケーションはこの PC で実行され、各 NIC で raw ソケットを開きます。また、TAP デバイスも開きます。NIC に IP アドレスが設定されていません。TAP デバイスは、IPv4 と IPv6 の両方のアドレスで構成されています。mozilla などの標準アプリケーションは、タップ デバイスを介してソケットを開き、アクティブなボックスに接続しようとします。そのために、カーネルはタップ デバイスで ARP 要求/近隣要請メッセージを生成します。アプリケーションはこのメッセージを読み取り、両方の NIC に転送します。アクティブなボックスは、アプリケーションがそれを読み取り、TAP デバイスに書き込む ARP 応答で ARP 要求に応答します。この arp 応答パケットは tcpdump によってキャプチャされ、しかし、カーネルは arp キャッシュを更新しません。両方の NIC と TAP デバイスの MAC アドレスは同じです。
要求されるその他のパラメーター。
winsock - Winsock を使用して ARP パケットを作成して送信したり、ARP パケットを受信したりできますか? どのように?
私は WINDOWS XP で試してみましたが (これは重要ではありません)、Raw Winsock で ARP パケットを送受信できないと思っていましたが、インターネットからのいくつかの論文では、そうであれば、Winsock 機能を設定する方法は?
dns - ARP スプーフィング/DNS スプーフィング - 違い
ARP スプーフィングと DNS スプーフィングには違いがありますか、それとも同じものですか?
arp - ネットワークでパケットを変更して再送信する方法
ARP スニッフィングの演習を行っています。
Man in The Middle のような攻撃をシミュレートしたい。アタッカー PC に経路変更パケットの arp を送信していました。しかし、A から受信したこのパケットを B に転送する方法がわかりません。
どうすればいいですか?LibIPQ または Libnet で実行できますか。
linux - arptablesからキューにarpパケットを送信する方法
私の目的は、レイヤー2からのパケットを処理(ドロップ、受け入れ、転送など)する方法を見つけることでした...
* inuxの「iptables」を使用すると、パケットを「NFQUEUE」に送信してさらにパケットを処理できることを知っています。
ただし、レイヤー3パケットをサポートしています...つまり、レイヤー2からのパケットは検出されません。
「arptables」はレイヤー2宛てのパケットを検出しますが、「NFQUEUE」に送信する方法が見つかりませんでした。
レイヤーパケットを受け入れる/ドロップする/続行するかどうかを選択できる方法はありますか?
c - ohrwurm はどのように libpcap と arpspoof を使用して RTP トラフィックを破損しますか?
2 つの SIP エンドポイント間の RTP トラフィックを破損できると主張するohrwurmというツールを評価しようとしています。ソースコードを読んでも、うまくいくとは思えません。試してみる前に、他の人の意見を聞きたいです。
その前提は簡単です:
- エンドポイント A の IP アドレスは 192.168.0.11、エンドポイント B の IP アドレスは 192.168.0.22 であるとします。
- A および B と同じサブネット上の 3 番目のボックス C で、2 つの SSH セッションで次のコマンドを実行します。
- arpspof 192.168.0.11
- arpspof 192.168.0.22
- オーワームを実行します。
ohrwurm のソース コードを見ると、次のことが行われます。
- /proc/sys/net/ipv4/ip_forward を 1 に設定します。
- libpcap を無差別モードで使用して、上記の 2 つのボックス間のすべての IP パケットを傍受します。
- SIP のパケットについては、RTP ポート番号を取得します。
- UDP であり、以前に取得した 2 つの RTP ポート間のパケットについては、RTP の内容をファジングします。
これは私が得られないものです。arpspoof'ing により、A と B の間のすべての IP トラフィックが C を通過することを受け入れます。我ら。
しかし、libpcap は読み取り専用だと思いましたか? 無差別モードでスニッフィングしたパケットをその場で変更するにはどうすればよいですか? ohrwurm.c の 401 行目で、RTCP パケットをドロップしようとしていることに気付くでしょう。これは可能ですか?
私は libpcap について何も知らないので、もっと知りたいと思っています! 私を教育してください。ありがとう。
c# - IPアドレスをMACアドレスバイト配列に変換する方法は?
IPアドレスをMACアドレスに変換してから、バイト配列に変換しようとしています。私は最初の部分で立ち往生していて、これを行う方法がわかりません。いくつかの検索結果が話題になっているのを見ましSystem.Net.NetworkInformation.NetworkInterface
たが、使い方がわかりません。
これはMACバイト配列を必要とする私のコードです。これを行う方法?
c# - ARPを使用してpingを実行すると、常にホストがオフラインになります
ARPパケットを使用してチェックするはずのコードを使用して、ネット上のコンピューターがオンラインかどうかをチェックしようとしています。
オンラインであると確信している場合でも、ホストがオフラインであるというメッセージが常に表示されます。ローカルホストのIPと、Googleなどの常に機能しているIPを確認しました。
それはこのコードで間違っている可能性がありますか?
以前のコードを使用して、基本的に次のコードのようなことをしようとしています。しかし、このコードの問題は、ホストが閉じられているときに、削除したい応答を取得するのに2秒ほどかかることです。誰かがARPpingを使用することを提案しました:
bash - Linux/Bash ARP ルックアップ
非常に単純に、特定のサブネット上のすべてのデバイスのリストを取得して、MAC アドレスを特定し、そのネットワーク上の特定のベンダーによってすべてのデバイスを見つけようとしています。
現在、これを実現するために使用していますが、アドレスに適しnmap
たホスト、 example を指定する必要がありますが、デバイスとデバイスも取得できるようにしたいと考えています。10.0.0.0/24
10.0.0.0
10.0.1.0
10.1.1.0
何か案は?
networking - tracerouteを使用してARPスプーフィングを検出する
私はarpスプーフィングを検出できるアプリケーションを作成しています:]
私の考えでは、サブネットに攻撃者がいて、彼がarpポイズニングを使用してMITMを試みた場合、tracerouteをデフォルトゲートウェイに実行します(またはarpキャッシュエントリを変更します)。
すべてのパケットが攻撃者のPCを通過するため、tracerouteに何らかの兆候が現れます。
私の考えに何か問題はありますか?それは適切ですか?か否か?