dnsspoofを使用しようとしましたが、期待どおりに機能しませんでした。これらは私が従ったステップです:
arpspoof -i eth0 -t 192.168.1.39 -r 192.168.1.1
およびarpspoof -i eth0 -t 192.168.1.1 -r 192.168.1.39
。 arp -a
で確認し、機能する137.222.0.38 *.hello.com
でfile.txtを作成しますdnsspoof -i eth0 -f file.txt
被害者のコンピュータ192.168.1.39
からwww.hello.com
にアクセスすると、実際のサイトにリダイレクトされます。 dnsspoof
からの出力は次のとおりです。
dnsspoof: listening on eth0 [udp dst port 53 and not src 192.168.1.35]
192.168.1.39.1113 > 8.8.8.8.53: 3864+ A? www.hello.com
192.168.1.39.1113 > 8.8.8.8.53: 3864+ A? www.hello.com
私はWireshark
を確認しましたが、被害者が同じIPからルーターMAC(1番目)と攻撃者MAC(2番目)で応答を受信しているようです。これは理論的には必要ないはずですが、DNSをフラッシュして、新しいリクエストを試しました。私の質問は:
1)なぜこれが機能しないのですか? Someone は、ルーターからのパケットをブロックするためにiptables
を使用することを提案しましたが、dnsspoof
がそれ自体ではブロックしないこと、そして私がチェックしたチュートリアルはどれも奇妙なようです( 1 、 2 、、 4 )はこのステップを必要とします。また、これを正しく機能させるための正しいiptables
ルールを取得できません。
2)多くのチュートリアルでは、dnsspoof
なしでarpspoof
を使用しているようです。後者は本当に必要ですか? DNSスプーフィングが「偽装」されていない別のコンピューターで(偶然に)機能したように見えたためです。
3)dnsspoof
はどのように機能しますか? LAN全体でDNS要求をリッスンし、解決策を送り返すだけですか?
[〜#〜]編集[〜#〜]
iptables
コマンドiptables -D FORWARD --match string --algo kmp --hex-string '|68 65 6c 6c 6f|' --jump DROP
を使用すると、ルーターは照会されず、スプーフィングされたDNSのみが送信されます。ただし、被害者のブラウザは永久にロードされたままで、最終的にはサイトにアクセスできない(?)と表示されます。 iptables
コマンドを使用しないと、リクエストが次のようになるのがわかります。
victim --> attacker --> router
と回答:router --> attacker --> victim
そしてこの直後に、攻撃者は偽装されたDNSを被害者に2回送信します。繰り返しますが、私はまだこの動作について混乱しており、3つの質問のいずれにもまだ答えていません。 (2)の答えはdnsspoof
がネットワーク全体を偽装したことだと思いますが、偽造されたパケットが正当な前に被害者に到達することを保証できる前にarpspoof
を実行した場合のみ1。しかし、私の場合、請願書が転送されるため、これは機能しません。
[〜#〜]編集[〜#〜]
これは、別のネットワーク(10.10.10.0)を介した同じ例のネットワークキャプチャです。正当なDNSが最初に転送され、その後、なりすましのDNSが転送されます。この例では、両方の応答の真ん中に他の請願書がありましたが、かなり頻繁に次々にパケットを受け取ります。
インストールしてみてくださいlibpcap0.8
およびlibpcap-dev
。バグがあり、これで修正されたはずですが、私にはうまくいきませんでした。 Linuxを導入したタブレットでkaliを使用していますが、多くの問題があります。
私は親密ではありませんが:
arpspoofは、ルーター(DNSリゾルバーであるか、DNSリゾルバーへのルーティングに使用される)への被害者のトラフィックを攻撃者のPC経由にします。
dnsspoofは、そのトラフィックと医師の応答を必要に応じて傍受します。
犠牲者が依然としてルータからの応答を受信している場合は、arpspoofが完全に機能していないことを示しています。