この記事の目次:
- 事の発端
- DNS 欺瞞
- 原理
- 実践
- Ettercap を使用したいたずら
- SET+Ettercap を使用したフィッシング
- Bettercap
- Cain & Abel
- ARP 欺瞞
- 原理
- 実践
- arpspoof
- ettercap
- bettercap
- Cain & Abel
事の発端#
隣の妹子や兄弟が何を見ているのかを確認するため、または隣に静かにするように促すため
参考記事:
- 初心者の侵入テスト訓練キャンプ - 欺瞞と嗅探
- 技術討論 | SET と Ettercap を利用した内部ネットワークフィッシングによるアカウントパスワードの取得
- Bettercap の解説、使い方を教えます!
- Bettercap-2.6 を使用した ARP 欺瞞の試み
- 内部ネットワーク環境実験学習ノート
#
- Kali:192.168.1.107、攻撃用
- Win7:192.168.1.106、攻撃される側
2 台の機器はブリッジネットワークカードを介してインターネットに接続されています。
使用ツール:
- Ettercap
- Bettercap
Dsniff
ツールスイートのarpspoof
とdriftnet
DNS 欺瞞#
原理#
- DNS(ドメインネームシステム)とは?
ドメインネームシステム(英:Domain Name System、略称:DNS)は、インターネットのサービスの一つです。ドメイン名と IP アドレスを相互にマッピングする分散型データベースとして機能し、インターネットへのアクセスをより便利にします。
ドメイン名、例えばsoapffz.com
にアクセスすると、ブラウザは DNS サーバーにリクエストを送り、DNS サーバーを通じてドメイン名に対応する IP140.143.2.176
を取得します(私のサーバー IP は ping 機能を無効にしています)。
- DNS 欺瞞とは?
DNS 欺瞞とは、攻撃者がドメイン名サーバーを偽装する欺瞞行為です。原理:ドメイン名サーバーを偽装し、クエリの IP アドレスを攻撃者の IP アドレスに設定することができれば、ユーザーは攻撃者のホームページしか見えず、ユーザーが取得したいウェブサイトのホームページは見えなくなります。これが DNS 欺瞞の基本原理です。DNS 欺瞞は実際には相手のウェブサイトを「ハッキング」するのではなく、偽装して詐欺を働くことに過ぎません。
- したがって、私たちがよく耳にするプロバイダーの DNS ハイジャックは、プロバイダーがあなたのネットワークのデフォルト DNS サーバー内の URL に対応する IP アドレスを変更することによって発生し、ポップアップ広告などの現象が現れます。プロバイダーの DNS ハイジャックを防ぐための効果的な方法は、自分の DNS サーバーを公共 DNS アドレス(例:114.114.114.114 など)に変更することです。
DNS 解析に関する詳細な内容は、DNS レコードの理解と侵入テストにおける簡単な応用を参照してください。
では、DNS 欺瞞を使用して何ができるのでしょうか:いたずらまたはフィッシング
実践#
Linux で DNS 欺瞞を実現するにはEttercap
を使用します(実際には一部 ARP 欺瞞も使用します)。SET
と組み合わせてフィッシングを行うこともできますし、bettercap
を使用することもできます。
Windows ではCain & Abel
を使用できます。
Ettercap を使用したいたずら#
まず、強力な中間者攻撃ツールであるEttercap
を使用します。
- ettercap の dns ファイルを編集します:
vim /etc/ettercap/etter.dns
いたずらをする場合、相手にどのページにもアクセスさせたくないので、すべての URL を 1 つの IP に指し示すようにします。ここでは善意の警告をするために、すべての IP を私のコンピュータに指し示すようにします:
- apache2 サービスを起動します。
apache のデフォルト設定画面:/var/www/html/index.html
をバックアップした後、
その中の内容を自分の内容に置き換えます:
<HTML>
<HEAD>
<meta http-equiv="content-type" content="txt/html; charset=utf-8" />
<TITLE>大兄弟、こんにちは</TITLE>
<BODY>
<p>驚きましたか!</p>
<p>ちょっと挨拶に来ました</p>
<p>悪意はありません</p>
<p>暇な時に一緒に遊びましょう</p>
<p>私のウェブサイト:https://soapffz.com/</p>
</BODY>
</HEAD>
</HTML>
その後、apache2 サービスを再起動し、私たちの画面が表示されるか確認します:
OK、問題ありません。
3. 欺瞞を開始します。
まず、グラフィカルインターフェースを使用します:ettercap -G
を選択し、Unified sniffing を選択して中間者の方法で嗅探します:
自分に対応するネットワークカードを選択し、次にローカルネットワークをスキャンし、Host list からホストリストを開きます:
ゲートウェイをターゲット 1 に追加し、攻撃対象をターゲット 2 に追加します:
次に、Mitm(中間者攻撃)で ARP poisoning(ARP 欺瞞)を選択します:
リモート嗅探リンクを選択し、確認します:
プラグインで dns_spoof を選択します:
ダブルクリックすると、前に * が表示され、最後に Start sniffing をクリックして DNS 欺瞞攻撃を開始します:
これで、攻撃対象がすべてのウェブページを開くと、私たちのカスタマイズしたページが表示されます:
しかし、このような攻撃には欠点もあります。たとえば、HTTPS プロトコルの URL を欺瞞することはできず、私たちの IP が露出しやすいです:
また、コマンドを使用して ettercap を操作することもできます。IP 転送を有効にし、欺瞞ページを設計するなどの手順は、グラフィカルインターフェースと同じです。しかし、コマンドラインを利用すれば、1 つのコマンドで上記の複雑な操作を実行できます:
ettercap -TqM ARP:remote -P dns_spoof /192.168.1.1// /192.168.1.107//
パラメータの説明:
- -i:ネットワークカードを指定します。通常は eth0 がデフォルトです。
- -T:テキスト GUI のみを使用します。
- -q:静かなモードを開始します(エコーしないという意味)。
- -M:中間者攻撃を実行します。
- ARP:リモート嗅探を使用します。
- -P:プラグインを指定します。
- 後ろの 2 つの位置、最初がターゲット 1、2 番目がターゲット 2 で、両方とも /// で囲まれています。
上記で説明したいたずらの部分では、フィッシングを実現するには、/etc/ettercap/etter.dns ファイルで被害者がアクセスする可能性のあるウェブページの IP アドレスを自分のものに設定するだけです。
そのためには、Google のページや百度のページを自分で作成する必要がありますが、少し面倒です。
SET+Ettercap を使用したフィッシング#
もちろん、ここでは Ettercap の例だけを挙げましたが、他にも強力なフィッシングツールがあります。例えば:BlackEye
ここで社会工学ツールキットを導入します:Social-Engineer Toolkit、以下 SET と略します。
これは Kali アプリケーションコレクションのSocial Engineering Tools
とは異なるものです:
その名の通り、SET は主に社会工学攻撃に使用され、フィッシングサイト、無線 AP 攻撃、QRCode 攻撃などを含みます。
今回の実験では、SET はフィッシングサイトを構築し、HTTP リクエストで送信されるアカウントパスワードをリスニングするために使用されます。
他の使用方法については、社会工学ツールキットの基本使用チュートリアルを参照してください。
setoolkit
コマンドを使用して入ります。以下は手を抜くために、この記事をコピーしたものです。
メニューから選択:
1) 社会工学攻撃 // 1を選択、社会工学攻撃
2) 侵入テスト(ファストトラック)
3) 第三者モジュール
4) 社会工学ツールキットの更新
5) SET設定の更新
6) ヘルプ、クレジット、概要
......
99) 社会工学ツールキットを終了
まず、メニューの最初のオプション、社会工学攻撃を選択します。
1) スピアフィッシング攻撃ベクター
2) ウェブサイト攻撃ベクター // 2を選択、ウェブサイト攻撃
3) 感染メディアジェネレーター
4) ペイロードとリスナーの作成
5) 大量メール攻撃
6) Arduinoベースの攻撃ベクター
7) 無線アクセスポイント攻撃ベクター
8) QRコードジェネレーター攻撃ベクター
9) PowerShell攻撃ベクター
10) SMSスプーフィング攻撃ベクター
11) 第三者モジュール
次に、メニューの 2 番目のオプション、ウェブサイト攻撃を選択します。
1) Javaアプレット攻撃方法
2) Metasploitブラウザエクスプロイト方法
3) 認証情報収集攻撃方法 // 3を選択、認証情報収集
4) タブナビゲーション攻撃方法
5) ウェブジャッキング攻撃方法
6) マルチ攻撃ウェブ方法
7) フルスクリーン攻撃方法
8) HTA攻撃方法
3 番目のオプション、認証情報収集を選択します。
1) ウェブテンプレート // 事前定義されたウェブサイトテンプレートを使用
2) サイトクローン // ウェブページをクローン
3) カスタムインポート // 指定されたディレクトリからウェブサイトをインポート
ここでは、便利さのために、1 を選択し、SET に内蔵されたウェブサイトテンプレートを使用して実験を行います。
set:webattack> POSTバックのためのIPアドレスをHarvester/Tabnabbingに入力してください [192.168.1.107]:
ここで注意が必要なのは、デフォルトの IP、つまり最初の IP が使用されることです:
もしデュアルネットワークカードを使用していて、他の内部ネットワークセグメントのホストを侵入したい場合は、Enter を押して、プロンプトが表示されたら:
新しいターミナルを開き、/etc/setoolkit/set.config
ファイルを編集して、ネットワークカードを変更すれば OK です:
2 を選択し、Google のログインページをフィッシングサイトとして使用します:
次に、以下のメッセージが表示されると、
[*] Harvesterは準備完了です、被害者にあなたのサイトをブラウズさせてください。
この行が表示されると、フィッシングを開始できます。この時、被害者のコンピュータで私たちの攻撃機の IP を開くと、それが私たちのフィッシング Google インターフェースになります:
同時に、SET のコンソールにはアクセスリクエストの記録が表示されます:
しかし、これではあまりにも明白です。誰もが 192.168.* が内部ネットワーク IP であることを知っていますので、Ettercap と一緒に使用します。
以下の内容を/etc/ettercap/etter.dns
に追加します。
google.com A 192.168.1.107
*.google.com A 192.168.1.107
www.google.com PTR 192.168.1.107
その後、ettercap を実行します:
ettercap -TqM ARP -P dns_spoof /192.168.1.106///
具体的なパラメータは前述の通りです。次に、被害者のマシンでgoogle.com
にアクセスします:
私たちのフィッシングインターフェースが表示されるのが見えます。その後、ログインしてみましょう:
私たちの Ettercap と SET がアカウント名とパスワードを取得したのが見えます!フィッシング成功です。
しかし、以下の不足があります:
-
HTTPS の状況を考慮していないため、HTTPS のアクセスはターゲット IP に転送されません。
-
フィッシングウェブページでログインをクリックした後、正常なウェブサイトのホームページにリダイレクトされるべきであり、ログインページに留まるべきではありません。
BetterCap#
中間者攻撃で最も有名なのは ettercap ですが、bettercap の開発目的はそれを追い越すことではなく、代替することです。その理由は以下の通りです:
- ettercap は非常に成功しましたが、現代の時代には古くなっています。
- ettercap のフィルターは複雑で、使用のハードルが高いです。
- 大規模ネットワークでは、ホスト発見機能の効果が非常に悪いです。
- 最適化が不十分で、研究者にとっては無駄な機能が多すぎます。
- 拡張性が不十分で、開発には C/C++ 言語を習得する必要があります。
Bettercap の更新頻度は比較的高く、新しいバージョンの bettercap は msf のような埋め込み端末インターフェースを採用しています。このような端末インターフェースは没入型の体験を提供しますが、入力と出力が混在する問題や行の更新の問題なども存在します。
このバージョンの bettercap の機能は大幅に豊富になり、以前の単純なネットワークアナライザーからすべての「cap」への移行が実現されました。以前の内部ネットワークの ARP と DNS 欺瞞をサポートするだけでなく、低消費電力 Bluetooth(BLE)、GPS の嗅探、ネットワーク内の特定の MAC を持つデバイスにリモートウェイク信号(Wake On LAN)を送信する機能なども提供されており、非常に強力です。
ダウンロードリンク(Windows 版あり):https://github.com/bettercap/bettercap/releases/latest
Kali には自動的にインストールされません:apt-get install bettercap -y
基本的なパラメータを確認します:bettercap -h
パラメータの説明:
パラメータ | 意味 |
---|---|
-autostart string | カンマで区切って自動起動するモジュールを指定 |
-caplet string | ファイルからコマンドを読み込み、対話セッションで実行 |
-cpu-profile file | CPU 設定ファイルを書き込む。 |
-debug | デバッグメッセージを表示。 |
-env-file string | 環境変数ファイルを読み込む |
-eval string | 1 つ以上のコマンドを;で区切って実行;対話セッションで、コマンドラインから変数を設定。 |
-gateway-override string | 提供された IP アドレスを使用し、デフォルトゲートウェイではなく使用します。指定されていないか無効な場合は、デフォルトゲートウェイが使用されます。 |
-iface string | バインドするネットワークインターフェース、空の場合はデフォルトインターフェースが自動的に選択されます。 |
-mem-profile file | メモリ設定ファイルをファイルに書き込む。 |
-no-colors | 出力の色効果を無効にします。 |
-no-history | 対話セッションの履歴ファイルを無効にします。 |
-silent | すべての非エラーのログを禁止します。 |
では、bettercap
を開いてみましょう:
開くと、自動的に現在のサブネット内のホストを探知し始めます。help と入力すると、多くの設定オプションが表示されます:
以下はパラメータの説明:
|:-----:|:-----:|
|help MODULE | モジュール名が提供されていない場合、利用可能なコマンドをリスト表示するか、モジュール固有のヘルプを表示します。|
|active | アクティブモジュールに関する情報を表示します。|
|quit | セッションを終了し、退出します。|
|sleep SECONDS | 指定された秒数だけスリープします。|
|get NAME | 変数 NAME の値を取得します。単独で使用するか、NAME * をワイルドカードとして使用します。|
|set NAME VALUE | 変数 NAME の VALUE を設定します。|
|read VARIABLE PROMPT | ユーザー入力を尋ねる PROMPT を表示し、その入力を VARIABLE に保存します。|
|clear | 画面をクリアします。|
|include CAPLET | この caplet を現在のセッションに読み込んで実行します。|
|! COMMAND | シェルコマンドを実行し、その出力を表示します。|
|alias MAC NAME | 指定された MAC アドレスを持つエンドポイントにエイリアスを割り当てます。|
モジュールの説明:
|:-----:|:-----:|
|any.proxy | ファイアウォールを任意の指定したプロキシにリダイレクト |
|api.rest|RESTful API モジュール |
|arp.spoof|ARP 欺瞞モジュール |
|ble.recon | 低消費電力 Bluetooth デバイス発見モジュール |
|caplets|caplets モジュールをリスト表示および更新するためのもの |
|dhcp6.spoof|dhcp6 欺瞞モジュール(DHCP パケットを偽造してクライアントの DNS サーバーを改ざんするため、dns.spoof と一緒に有効にする必要があります)|
|dns.spoof|DNS 欺瞞メッセージに応答します |
|events.stream | デフォルトでこのモジュールは有効で、対話セッション中に時間の流れを表示します |
|gps||
|http.proxy|HTTP 透過プロキシ、Javascript モジュールを使用できます |
|http.server|HTTP サーバー |
|https.proxy|HTTPS 透過プロキシ |
|https.server|HTTPS サーバー |
|mac.changer | アクティブインターフェースの MAC アドレスを変更します |
|mysql.server||
|net.probe | サブネット内のすべての可能な IP に UDP データを送信してホストを探知します |
|net.recon||
|net.sniff | ネットワーク嗅探モジュール |
|packet.proxy||
|syn.scan|SYN ポートスキャンを実行します |
|tcp.proxy||
|ticker||
|update||
|wifi|WiFi モジュール、deauth 攻撃(WiFi キラー)とソフト AP の作成機能があります |
|wol||
各モジュールの詳細な使用方法については、この記事を参照してください:https://blog.csdn.net/u012570105/article/details/80561778
Bettercap 実践
Bettercap で欺瞞する URL と自分の悪意のあるサーバー IP を設定します:
set dns.spoof.domains *.baidu.com
set dns.spoof.address 1.1.1.1
dns.spoof on
Windows7 で DNS サーバーアドレスを自分の IP アドレスに設定します:
DNS をリフレッシュした後、ping コマンドを使用して(ここで ping が通らないのは疑問です、IPv4 転送は有効になっています):
Kali 側で DNS リクエスト情報が表示されます:
Cain & Abel#
Cain & Abel は、Oxid.it によって開発された Microsoft オペレーティングシステム向けの無料パスワード回復ツールです。貧乏人が使用する L0phtcrack と呼ばれています。その機能は非常に強力で、ネットワーク嗅探、ネットワーク欺瞞、暗号化されたパスワードの解読、乱されたパスワードのデコード、パスワードボックスの表示、キャッシュされたパスワードの表示、ルーティングプロトコルの分析、さらには内部ネットワークで他の人が VOIP で電話をかけるのを監視することもできます。
ダウンロードリンク:http://www.oxid.it/cain.html、[winpacp]40のサポートが必要ですが、winpacp のダウンロードページには次のように書かれています:The WinPcap project has ceased development and WinPcap and WinDump are no longer maintained. We recommend using Npcap instead:WinPcap プロジェクトは開発を停止し、WinPcap と WinDump はもはやメンテナンスされていません。Npcap を代わりに使用することをお勧めします。
したがって、直接 npcap をダウンロードします:https://nmap.org/npcap/、最新バージョンは 0.99-r9 です。[ここをクリックしてダウンロード]41
インストール時には、デフォルトオプションに加えて、最下部のオプション:Install Npcap in WinPacp API-compatible Mode をチェックすれば、Cain & Abel の winpacp サポート要件を満たすことができます。
Cain & Abel のメインインターフェースは次のようになります:
ツールインターフェースを見てみると、主な機能はパスワード解読であることがわかります:
ARP 欺瞞#
原理#
arp
アドレス解決プロトコル、すなわち ARP(Address Resolution Protocol)は、IP アドレスから物理アドレスを取得する TCP/IP プロトコルの一つです。ホストが情報を送信する際、ターゲット IP アドレスを含む ARP リクエストをネットワーク上のすべてのホストにブロードキャストし、返答メッセージを受信することで、ターゲットの物理アドレスを特定します。返答メッセージを受け取った後、その IP アドレスと物理アドレスを自ホストの ARP キャッシュに保存し、一定時間保持します。次回のリクエスト時には、リソースを節約するために ARP キャッシュを直接照会します。
arp 欺瞞
ARP 欺瞞(英:ARP spoofing)、または ARP 毒化(ARP poisoning、ネット上では多くの場合 ARP ウイルスと訳されます)または ARP 攻撃は、イーサネットアドレス解決プロトコル(ARP)に対する攻撃技術です。ネットワーク内の訪問者 PC のゲートウェイ MAC アドレスを欺くことによって、訪問者 PC が攻撃者が変更した MAC アドレスをゲートウェイの MAC アドレスだと誤認させ、ネットワークが不通になることを引き起こします。この種の攻撃により、攻撃者はローカルネットワーク上のデータパケットを取得したり、データパケットを改ざんしたりすることができ、特定のコンピュータまたはすべてのコンピュータが正常に接続できなくなることがあります。
実現#
Linux で ARP 欺瞞を実現するための最も古典的なツールはarpspoof
です(比較的安定しています)。また、ettercap や bettercap も使用できます。
Windows では使用できます。
自分の ARP キャッシュテーブルを確認します:
(一般的に)arp -a
:ただし、Linux で実行すると遅くなります。
(Linux)ip neigh show
:別のシステムコール netlink を使用して取得されます。
ARP 欺瞞が成功しない場合は、arp -d
を使用して ARP キャッシュテーブルを削除できます(管理者権限が必要です)。
arpspoof#
arpspoof は一方向の欺瞞を行うことも、双方向の欺瞞を行うこともできます(2 つのターミナルを開く)。一般的なパラメータは次のとおりです:
arpspoof -i [ネットワークカード] -t [欺瞞されるホスト] [自分が偽装したいホスト]
-i はネットワークカードを指定し、-t はターゲット(target)を指定します。指定しない場合は、ネットワーク全体に ARP 毒化を行います。
したがって、ここでは Win7(192.168.1.106)を欺瞞し、私はゲートウェイ(192.168.1.1)であり、ゲートウェイを欺瞞して私は Win7 であることを示すために、次のコマンドを使用します。
arpspoof -i eth0 -t 192.168.1.106 192.168.1.1
arpspoof -i eth0 -t 192.168.1.1 192.168.1.106
まず、ARP 欺瞞を行う前の Win7 の ARP キャッシュテーブルを確認します:
次に、欺瞞を開始します:
再度 ARP キャッシュテーブルを確認します:
元のゲートウェイの MAC アドレスが Kali のものと同じになっていることがわかります。これにより、ゲートウェイに送信されるすべてのトラフィックは Kali を経由し、Kali も同時にゲートウェイに対して自分が Win7 であると欺瞞します。これにより、Win7 は正常にインターネットに接続できますが、すべてのトラフィックが監視されていることは知りません。
ただし、ここでは Linux カーネルのトラフィック転送機能を有効にすることをお勧めします。そうしないと、相手がインターネットに接続できなくなり、警戒される可能性があります:
sysctl net.ipv4.ip_forward
sysctl -w net.ipv4.ip_forward=1
ettercap#
前述の詳細な使用方法については、ここではコマンドを直接示します:
ettercap -i eth0 -TqM ARP /192.168.1.106// ///
上記と同じ効果を持ちます。
bettercap#
同様に、bettercap
コマンドを使用して入ります。次のコマンドを実行します:
net.sniff on
set arp.spoof.targets 192.168.1.106
(1つまたは複数のターゲットに対してのみ設定し、設定しない場合はネットワーク全体に対して欺瞞を開始します)
arp.spoof on
これで ARP 欺瞞が開始されます。この時、Wireshark などのパケットキャプチャツールを使用してキャプチャすると、TCP データパケットしかキャプチャできず、HTTP/HTTPS のデータパケットはキャプチャできません。http.proxy on
またはhttps.proxy on
コマンドを使用して HTTP/HTTPS プロキシを有効にすることができます。
HTTP のウェブページブラウジングを監視するウィンドウを開きたい場合は、urlsnarf -i eth0
コマンドを使用します(urlsnarf コマンドは ARP 欺瞞の後に使用する必要があります):
Driftnet は嗅探した画像をフィルタリングするために使用でき、Driftnet を使用してトラフィックを監視し、被害者が閲覧している画像を表示します:driftnet -i eth0
:
Driftnet と arpspoof はどちらも Dsniff ツールスイートに属します。