Pentesting Network
Discovering hosts from the outside
これは、インターネットから応答しているIPを見つける方法についての簡単なセクションです。 この状況では、いくつかのIPの範囲(場合によっては複数の範囲)があり、どのIPが応答しているかを見つける必要があります。
ICMP
これは、ホストが稼働しているかどうかを発見するための最も簡単で最速の方法です。
いくつかのICMPパケットを送信し、応答を期待することができます。最も簡単な方法は、エコーリクエストを送信し、応答を期待することです。これを単純なping
を使用するか、範囲のためにfping
を使用して行うことができます。
また、nmapを使用して他のタイプのICMPパケットを送信することもできます(これにより、一般的なICMPエコーリクエスト-応答のフィルターを回避できます)。
TCPポート発見
あらゆる種類のICMPパケットがフィルタリングされていることが非常に一般的です。そのため、ホストが稼働しているかどうかを確認するためにできることは、オープンポートを見つけることだけです。各ホストには65535ポートがありますので、「大きな」スコープがある場合、各ホストの各ポートがオープンかどうかをテストすることはできません。それにはあまりにも多くの時間がかかります。 そのため、必要なのは高速ポートスキャナー(masscan)と、最も使用されるポートのリストです:
nmap
を使ってこのステップを実行することもできますが、遅く、nmap
はホストの識別に問題があります。
HTTPポート発見
これは、HTTP サービスの発見に焦点を当てたいときに便利なTCPポート発見です:
UDPポート発見
いくつかのUDPポートが開いているかどうかを確認して、ホストにもっと注意を払うべきかを判断することもできます。UDPサービスは通常、通常の空のUDPプローブパケットにデータで応答しないため、ポートがフィルタリングされているのか開いているのかを判断するのは難しいです。これを判断する最も簡単な方法は、実行中のサービスに関連するパケットを送信することであり、どのサービスが実行されているかわからないため、ポート番号に基づいて最も可能性の高いものを試すべきです:
提案されたnmapの行は、/24範囲内のすべてのホストで上位1000のUDPポートをテストしますが、これだけでも**>20分かかります。最速の結果が必要な場合は、udp-proto-scannerを使用できます:./udp-proto-scanner.pl 199.66.11.53/24
これにより、これらのUDPプローブが予想されるポート**に送信されます(/24範囲の場合、これにはわずか1分かかります):DNSStatusRequest, DNSVersionBindReq, NBTStat, NTPRequest, RPCCheck, SNMPv3GetRequest, chargen, citrix, daytime, db2, echo, gtpv1, ike,ms-sql, ms-sql-slam, netop, ntp, rpc, snmp-public, systat, tftp, time, xdmcp.
SCTPポートディスカバリー
Pentesting Wifi
ここでは、執筆時点でのよく知られたWifi攻撃のガイドを見つけることができます:
Pentesting Wifi内部からホストを発見する
ネットワーク内にいる場合、最初に行いたいことの一つは他のホストを発見することです。どれだけのノイズを出すことができるか/したいかによって、異なるアクションを実行できます:
パッシブ
接続されたネットワーク内でホストを受動的に発見するために、これらのツールを使用できます:
Active
外部からホストを発見するための技術については、Discovering hosts from the outside (TCP/HTTP/UDP/SCTP Port Discovery) でコメントされた技術もここで適用できます。 しかし、他のホストと同じネットワークにいるため、より多くのことができます:
Active ICMP
外部からホストを発見する際にコメントされた技術(ICMP)はここでも適用可能です。 しかし、他のホストと同じネットワークにいるため、より多くのことができます:
サブネットブロードキャストアドレスにpingを送信すると、pingは各ホストに到達し、彼らはあなたに応答することができます:
ping -b 10.10.5.255
ネットワークブロードキャストアドレスにpingを送信すると、他のサブネット内のホストを見つけることができます:
ping -b 255.255.255.255
nmap
の-PE
、-PP
、-PM
フラグを使用して、ICMPv4エコー、タイムスタンプ、およびサブネットマスクリクエストをそれぞれ送信し、ホスト発見を行います:nmap -PE -PM -PP -sn -vvv -n 10.12.5.0/24
Wake On Lan
Wake On Lanは、ネットワークメッセージを通じてコンピュータを起動するために使用されます。コンピュータを起動するために使用されるマジックパケットは、MAC Dstが提供され、その後同じパケット内で16回繰り返されるだけのパケットです。 この種のパケットは通常、イーサネット0x0842またはポート9へのUDPパケットで送信されます。 [MAC]が提供されない場合、パケットはブロードキャストイーサネットに送信され(ブロードキャストMACが繰り返されるものになります)。
ホストのスキャン
深くスキャンしたいすべてのIP(外部または内部)を発見したら、さまざまなアクションを実行できます。
TCP
オープンポート: SYN --> SYN/ACK --> RST
クローズポート: SYN --> RST/ACK
フィルタポート: SYN --> [NO RESPONSE]
フィルタポート: SYN --> ICMPメッセージ
UDP
UDPポートをスキャンするための2つのオプションがあります:
UDPパケットを送信し、ポートが閉じている場合は_ICMP到達不能_の応答を確認します(いくつかのケースではICMPがフィルタリングされるため、ポートが閉じているか開いているかの情報は受け取れません)。
サービスからの応答を引き出すためにフォーマットされたデータグラムを送信します(例:DNS、DHCP、TFTPなど、_nmap-payloads_にリストされています)。応答を受け取った場合、ポートは開いています。
Nmapは"-sV"を使用して両方のオプションを混合します(UDPスキャンは非常に遅いですが)、UDPスキャンはTCPスキャンよりも遅いことに注意してください:
SCTPスキャン
SCTP (ストリーム制御伝送プロトコル) は、TCP (伝送制御プロトコル) と UDP (ユーザーデータグラムプロトコル) と一緒に使用されるように設計されています。その主な目的は、IPネットワーク上での電話データの輸送を促進することであり、SS7 (信号システム7) に見られる多くの信頼性機能を反映しています。SCTP は、SS7信号をIPネットワーク上で輸送することを目的としたSIGTRANプロトコルファミリーのコアコンポーネントです。
SCTP のサポートは、IBM AIX、Oracle Solaris、HP-UX、Linux、Cisco IOS、および VxWorks などのさまざまなオペレーティングシステムによって提供されており、通信およびネットワーキングの分野での広範な受け入れと有用性を示しています。
nmapでは、SCTPのために2つの異なるスキャンが提供されています: -sY と -sZ
IDSとIPSの回避
IDS and IPS Evasionより多くのnmapオプション
Nmap Summary (ESP)内部IPアドレスの明示
誤設定されたルーター、ファイアウォール、ネットワークデバイスは、非公開のソースアドレスを使用してネットワークプローブに応答することがあります。tcpdumpを利用して、テスト中にプライベートアドレスから受信したパケットを特定できます。具体的には、Kali Linux上で、eth2インターフェースでパケットをキャプチャできます。NATやファイアウォールの背後にセットアップがある場合、そのようなパケットはフィルタリングされる可能性が高いことに注意が必要です。
Sniffing
スニッフィングでは、キャプチャされたフレームやパケットをレビューすることで、IP範囲、サブネットサイズ、MACアドレス、およびホスト名の詳細を学ぶことができます。ネットワークが誤って構成されている場合やスイッチングファブリックがストレス下にある場合、攻撃者はパッシブネットワークスニッフィングを通じて機密情報をキャプチャすることができます。
スイッチされたイーサネットネットワークが適切に構成されている場合、ブロードキャストフレームとあなたのMACアドレス宛のデータのみが表示されます。
TCPDump
リモートマシンからSSHセッションを介してWiresharkをGUIとして使用し、リアルタイムでパケットをキャプチャすることもできます。
Bettercap
Wireshark
明らかに。
認証情報のキャプチャ
https://github.com/lgandx/PCredz のようなツールを使用して、pcapまたはライブインターフェースから認証情報を解析できます。
LAN攻撃
ARPスプーフィング
ARPスプーフィングは、マシンのIPが私たちのデバイスのMACであることを示すために、無償のARPレスポンスを送信することです。これにより、被害者はARPテーブルを変更し、スプーフィングされたIPに接続したいときに私たちのマシンに連絡します。
Bettercap
Arpspoof
MAC Flooding - CAM overflow
スイッチのCAMテーブルをオーバーフローさせるために、異なるソースMACアドレスを持つ多くのパケットを送信します。CAMテーブルが満杯になると、スイッチはハブのように動作し始め(すべてのトラフィックをブロードキャストします)。
In modern switches this vulnerability has been fixed.
802.1Q VLAN / DTP Attacks
Dynamic Trunking
The **Dynamic Trunking Protocol (DTP)**は、トランクの自動システムを促進するために設計されたリンク層プロトコルであり、スイッチがトランクモード(Trunk)または非トランクモードのポートを自動的に選択できるようにします。DTPの展開は、しばしば最適でないネットワーク設計の指標と見なされ、必要な場合にのみトランクを手動で構成し、適切な文書化を確保することの重要性を強調します。
デフォルトでは、スイッチポートはダイナミックオートモードで動作するように設定されており、隣接するスイッチからの要求があればトランクを開始する準備が整っています。セキュリティ上の懸念は、ペンテスターまたは攻撃者がスイッチに接続し、DTP Desirableフレームを送信してポートをトランクモードに強制する場合に生じます。このアクションにより、攻撃者はSTPフレーム分析を通じてVLANを列挙し、仮想インターフェースを設定することでVLANセグメンテーションを回避できます。
多くのスイッチにデフォルトでDTPが存在することは、敵がスイッチの動作を模倣し、すべてのVLANのトラフィックにアクセスすることを可能にします。スクリプトdtpscan.shは、インターフェースを監視し、スイッチがデフォルト、トランク、ダイナミック、オート、またはアクセスポートモードにあるかを明らかにします。後者はVLANホッピング攻撃に対して唯一免疫のある構成です。このツールは、スイッチの脆弱性状態を評価します。
ネットワークの脆弱性が特定された場合、_Yersinia_ツールを使用してDTPプロトコルを介して「トランクを有効にする」ことができ、すべてのVLANからのパケットを観察することが可能になります。
VLANを列挙するために、スクリプトDTPHijacking.py**を使用してDTP Desirableフレームを生成することも可能です。**いかなる状況でもスクリプトを中断しないでください。3秒ごとにDTP Desirableを注入します。スイッチ上で動的に作成されたトランクチャネルは5分間のみ存在します。5分後、トランクは切断されます。
私は**Access/Desirable (0x03)**がDTPフレームがDesirableタイプであることを示し、ポートにTrunkモードに切り替えるよう指示することを指摘したいと思います。また、802.1Q/802.1Q (0xa5)は802.1Qカプセル化タイプを示します。
STPフレームを分析することで、VLAN 30とVLAN 60の存在について学びます。
特定のVLANへの攻撃
VLAN IDとIP値を知ったら、特定のVLANを攻撃するために仮想インターフェースを設定できます。 DHCPが利用できない場合は、_ifconfig_を使用して静的IPアドレスを設定してください。
Automatic VLAN Hopper
議論された攻撃であるDynamic Trunkingと仮想インターフェースを作成し、他のVLAN内のホストを発見するは、ツールによって自動的に実行されます: https://github.com/nccgroup/vlan-hopping---frogger
Double Tagging
攻撃者が被害者ホストのMAC、IP、およびVLAN IDの値を知っている場合、彼はフレームをダブルタグし、指定されたVLANと被害者のVLANでパケットを送信しようとすることができます。被害者は攻撃者に接続できないため、攻撃者にとって最良の選択肢はUDPを介して通信することです。これにより、いくつかの興味深いアクションを実行できるプロトコル(例えばSNMP)と通信できます。
攻撃者の別のオプションは、攻撃者が制御し、被害者がアクセス可能なIPを偽装してTCPポートスキャンを実行することです(おそらくインターネットを介して)。その後、攻撃者は、被害者からのパケットを受信した場合、彼が所有する2番目のホストでスニッフィングを行うことができます。
この攻撃を実行するには、scapyを使用できます: pip install scapy
Lateral VLAN Segmentation Bypass
もし直接接続されているスイッチにアクセスできる場合、ネットワーク内でVLANセグメンテーションをバイパスする能力があります。単にポートをトランクモードに切り替え(トランクとも呼ばれます)、ターゲットVLANのIDを持つ仮想インターフェースを作成し、IPアドレスを設定します。アドレスを動的に要求する(DHCP)か、静的に設定することができます。ケースによります。
Lateral VLAN Segmentation BypassLayer 3 Private VLAN Bypass
ゲスト無線ネットワークなどの特定の環境では、**ポートアイソレーション(プライベートVLANとも呼ばれます)**設定が実装され、無線アクセスポイントに接続されたクライアント同士が直接通信するのを防ぎます。しかし、これらのアイソレーション対策を回避できる技術が特定されています。この技術は、ネットワークACLの欠如または不適切な設定を利用し、IPパケットがルーターを通じて同じネットワーク上の別のクライアントにルーティングされることを可能にします。
攻撃は、宛先クライアントのIPアドレスを持つパケットを作成し、ルーターのMACアドレスを使用することによって実行されます。これにより、ルーターは誤ってパケットをターゲットクライアントに転送します。このアプローチは、被害者にアクセス可能なホストを制御する能力を利用してセキュリティの欠陥を悪用するダブルタグ攻撃で使用されるものに似ています。
攻撃の主要なステップ:
パケットの作成: ターゲットクライアントのIPアドレスを含むように特別に作成されたパケットを作成しますが、ルーターのMACアドレスを使用します。
ルーターの動作を悪用: 作成されたパケットがルーターに送信され、設定により、パケットがターゲットクライアントにリダイレクトされ、プライベートVLAN設定によるアイソレーションをバイパスします。
VTP Attacks
VTP(VLANトランクプロトコル)はVLAN管理を集中化します。VLANデータベースの整合性を維持するためにリビジョン番号を利用し、変更があるとこの番号が増加します。スイッチは、より高いリビジョン番号を持つ設定を採用し、自身のVLANデータベースを更新します。
VTP Domain Roles
VTPサーバー: VLANを管理します—作成、削除、変更します。ドメインメンバーにVTPアナウンスをブロードキャストします。
VTPクライアント: VTPアナウンスを受信し、自身のVLANデータベースを同期します。この役割はローカルVLAN設定の変更が制限されています。
VTPトランスペアレント: VTP更新に関与せず、VTPアナウンスを転送します。VTP攻撃の影響を受けず、リビジョン番号は常にゼロのままです。
VTP Advertisement Types
サマリーアナウンス: VTPサーバーによって300秒ごとにブロードキャストされ、重要なドメイン情報を含みます。
サブセットアナウンス: VLAN設定変更後に送信されます。
アナウンスリクエスト: VTPクライアントによってサマリーアナウンスを要求するために発行され、通常はより高い設定リビジョン番号を検出した際に行われます。
VTPの脆弱性は、VTPアナウンスがトランクポートを通じてのみ循環するため、トランクポートを介してのみ悪用可能です。DTP攻撃後のシナリオはVTPに移行する可能性があります。Yersiniaのようなツールは、VLANデータベースを消去し、ネットワークを効果的に混乱させることを目的としたVTP攻撃を支援できます。
注:この議論はVTPバージョン1(VTPv1)に関するものです。
Yersiniaのグラフィカルモードで、VLANデータベースを削除するためにすべてのVTP VLANを削除するオプションを選択します。
STP攻撃
インターフェースでBPDUフレームをキャプチャできない場合、STP攻撃に成功する可能性は低いです。
STP BPDU DoS
多くのBPDU TCP(トポロジ変更通知)やConf(トポロジが作成されるときに送信されるBPDU)を送信すると、スイッチが過負荷になり、正しく動作しなくなります。
STP TCP攻撃
TCPが送信されると、スイッチのCAMテーブルは15秒で削除されます。その後、この種のパケットを継続的に送信していると、CAMテーブルは継続的に(または15秒ごとに)再起動され、再起動されるとスイッチはハブのように動作します。
STPルート攻撃
攻撃者はスイッチの動作を模倣してネットワークのSTPルートになります。これにより、より多くのデータが彼を通過します。これは、異なる2つのスイッチに接続されているときに興味深いです。 これは、優先度値が実際のルートスイッチの実際の優先度よりも低いと伝えるBPDUs CONFパケットを送信することによって行われます。
攻撃者が2つのスイッチに接続されている場合、彼は新しいツリーのルートになり、これらのスイッチ間のすべてのトラフィックが彼を通過します(MITM攻撃が実行されます)。
CDP攻撃
CISCO Discovery Protocol (CDP)は、CISCOデバイス間の通信に不可欠であり、互いを識別し、設定詳細を共有することを可能にします。
パッシブデータ収集
CDPはすべてのポートを通じて情報をブロードキャストするように設定されており、これがセキュリティリスクにつながる可能性があります。攻撃者はスイッチポートに接続すると、Wireshark、tcpdump、またはYersiniaのようなネットワークスニファーを展開することができます。この行動は、ネットワークデバイスに関する機密データ、モデルや実行中のCisco IOSのバージョンを明らかにする可能性があります。攻撃者は、特定のCisco IOSバージョンの脆弱性をターゲットにするかもしれません。
CDPテーブルフラッディングの誘発
より攻撃的なアプローチは、正当なCISCOデバイスを装ってスイッチのメモリを圧倒することによってサービス拒否(DoS)攻撃を開始することです。以下は、テスト用に設計されたネットワークツールYersiniaを使用してそのような攻撃を開始するためのコマンドシーケンスです:
この攻撃中、スイッチのCPUとCDP隣接テーブルは大きな負担を受け、過剰なリソース消費により、しばしば**「ネットワーク麻痺」**と呼ばれる状態になります。
CDPなりすまし攻撃
You could also use scapy. Be sure to install it with scapy/contrib
package.
VoIP攻撃とVoIP Hopperツール
VoIP電話は、IoTデバイスとますます統合されており、特別な電話番号を通じてドアの解錠やサーモスタットの制御などの機能を提供します。しかし、この統合はセキュリティリスクをもたらす可能性があります。
ツールvoiphopperは、さまざまな環境(Cisco、Avaya、Nortel、Alcatel-Lucent)でVoIP電話をエミュレートするように設計されています。CDP、DHCP、LLDP-MED、802.1Q ARPなどのプロトコルを使用して、音声ネットワークのVLAN IDを発見します。
VoIP Hopperは、Cisco Discovery Protocol (CDP)のための3つのモードを提供します:
スニフモード (
-c 0
): ネットワークパケットを分析してVLAN IDを特定します。スプーフモード (
-c 1
): 実際のVoIPデバイスのパケットを模倣したカスタムパケットを生成します。事前作成パケットモード (
-c 2
): 特定のCisco IP電話モデルのパケットと同一のパケットを送信します。
速度のために推奨されるモードは3番目です。次のことを指定する必要があります:
攻撃者のネットワークインターフェース(
-i
パラメータ)。エミュレートされるVoIPデバイスの名前(
-E
パラメータ)、Ciscoの命名形式に従う(例:SEPの後にMACアドレス)。
企業環境では、既存のVoIPデバイスを模倣するために、次のことを行うことがあります:
電話のMACラベルを確認する。
電話のディスプレイ設定をナビゲートしてモデル情報を表示する。
VoIPデバイスをラップトップに接続し、Wiresharkを使用してCDPリクエストを観察する。
ツールを3番目のモードで実行するためのコマンドの例は次のとおりです:
DHCP攻撃
列挙
DoS
DoSの2種類はDHCPサーバーに対して実行できます。最初のものは、すべての可能なIPアドレスを使用するために十分な偽のホストをシミュレートすることです。 この攻撃は、DHCPサーバーの応答を確認し、プロトコルを完了できる場合にのみ機能します(Discover (Comp) --> Offer (server) --> Request (Comp) --> ACK (server))。例えば、これはWifiネットワークでは不可能です。
DHCP DoSを実行する別の方法は、すべての可能なIPをソースコードとして使用してDHCP-RELEASEパケットを送信することです。そうすると、サーバーは誰もIPの使用を終了したと考えます。
より自動化された方法は、ツール DHCPing を使用することです。
前述のDoS攻撃を使用して、クライアントが環境内で新しいリースを取得するよう強制し、正当なサーバーを枯渇させて応答しなくすることができます。したがって、正当なサーバーが再接続しようとすると、次の攻撃で言及される悪意のある値を提供できます。
悪意のある値を設定する
不正なDHCPサーバーは、/usr/share/responder/DHCP.py
にあるDHCPスクリプトを使用して設定できます。これは、トラフィックを悪意のあるサーバーにリダイレクトすることによって、HTTPトラフィックや認証情報をキャプチャするためのネットワーク攻撃に役立ちます。ただし、不正なゲートウェイを設定することは、クライアントからのアウトバウンドトラフィックをキャプチャするだけで、実際のゲートウェイからの応答を見逃すため、効果が薄いです。代わりに、不正なDNSまたはWPADサーバーを設定することが、より効果的な攻撃のために推奨されます。
以下は、不正なDHCPサーバーを構成するためのコマンドオプションです:
私たちのIPアドレス(ゲートウェイ広告):
-i 10.0.0.100
を使用して、あなたのマシンのIPをゲートウェイとして広告します。ローカルDNSドメイン名: 任意で、
-d example.org
を使用してローカルDNSドメイン名を設定します。元のルーター/ゲートウェイIP:
-r 10.0.0.1
を使用して、正当なルーターまたはゲートウェイのIPアドレスを指定します。プライマリDNSサーバーIP:
-p 10.0.0.100
を使用して、あなたが制御する不正なDNSサーバーのIPアドレスを設定します。セカンダリDNSサーバーIP: 任意で、
-s 10.0.0.1
を使用してセカンダリDNSサーバーのIPを設定します。ローカルネットワークのネットマスク:
-n 255.255.255.0
を使用して、ローカルネットワークのネットマスクを定義します。DHCPトラフィック用インターフェース:
-I eth1
を使用して、特定のネットワークインターフェースでDHCPトラフィックをリッスンします。WPAD構成アドレス:
-w “http://10.0.0.100/wpad.dat”
を使用して、ウェブトラフィックの傍受を支援するWPAD構成のアドレスを設定します。デフォルトゲートウェイIPを偽装:
-S
を含めて、デフォルトゲートウェイのIPアドレスを偽装します。すべてのDHCPリクエストに応答:
-R
を含めて、サーバーがすべてのDHCPリクエストに応答するようにしますが、これはノイジーで検出される可能性があることに注意してください。
これらのオプションを正しく使用することで、不正なDHCPサーバーを効果的に設定し、ネットワークトラフィックを傍受することができます。
EAP攻撃
ここでは、802.1X実装に対して使用できる攻撃戦術のいくつかを示します:
EAPを介したアクティブなブルートフォースパスワードグラインディング
形式が不正なEAPコンテンツを使用してRADIUSサーバーを攻撃する **(エクスプロイト)
EAPメッセージのキャプチャとオフラインパスワードクラッキング(EAP-MD5およびPEAP)
TLS証明書検証をバイパスするためにEAP-MD5認証を強制する
ハブや類似のものを使用して認証時に悪意のあるネットワークトラフィックを注入する
攻撃者が被害者と認証サーバーの間にいる場合、必要に応じて認証プロトコルをEAP-MD5にダウングレードし、認証試行をキャプチャしようとすることができます。その後、次の方法でブルートフォース攻撃を行うことができます:
FHRP (GLBP & HSRP) Attacks
FHRP (First Hop Redundancy Protocol) は、ホット冗長ルーティングシステムを作成するために設計されたネットワークプロトコルのクラスです。FHRPを使用すると、物理ルーターを単一の論理デバイスに統合でき、障害耐性が向上し、負荷の分散が助けられます。
Cisco Systemsのエンジニアは、GLBPとHSRPの2つのFHRPプロトコルを開発しました。
GLBP & HSRP AttacksRIP
ルーティング情報プロトコル(RIP)の3つのバージョンが存在することが知られています:RIP、RIPv2、およびRIPng。RIPとRIPv2は、UDPを使用してポート520経由でピアにデータグラムを送信しますが、RIPngは、IPv6マルチキャストを介してUDPポート521にデータグラムをブロードキャストします。MD5認証のサポートはRIPv2によって導入されました。一方、RIPngにはネイティブ認証が組み込まれておらず、代わりにIPv6内のオプションのIPsec AHおよびESPヘッダーに依存しています。
RIPとRIPv2: 通信はポート520のUDPデータグラムを介して行われます。
RIPng: IPv6マルチキャストを介してデータグラムをブロードキャストするためにUDPポート521を利用します。
RIPv2はMD5認証をサポートしている一方で、RIPngはネイティブ認証を含まず、IPv6内のIPsec AHおよびESPヘッダーに依存しています。
EIGRP Attacks
EIGRP (Enhanced Interior Gateway Routing Protocol) は動的ルーティングプロトコルです。これは距離ベクトルプロトコルです。 認証がなく、受動インターフェースの設定がない場合、侵入者はEIGRPルーティングに干渉し、ルーティングテーブルの中毒を引き起こす可能性があります。さらに、EIGRPネットワーク(言い換えれば、自律システム)はフラットであり、ゾーンに分割されていません。攻撃者がルートを注入すると、そのルートは自律EIGRPシステム全体に広がる可能性があります。
EIGRPシステムを攻撃するには、正当なEIGRPルーターとの隣接関係を確立する必要があり、これにより基本的な偵察からさまざまな注入まで多くの可能性が開かれます。
FRRouting は、BGP、OSPF、EIGRP、RIPおよびその他のプロトコルをサポートする仮想ルーターを実装することを可能にします。 これを攻撃者のシステムに展開するだけで、実際にルーティングドメイン内の正当なルーターのふりをすることができます。
EIGRP AttacksColy は、EIGRP(Enhanced Interior Gateway Routing Protocol)ブロードキャストを傍受する機能を持っています。また、パケットの注入を可能にし、ルーティング構成を変更するために利用できます。
OSPF
Open Shortest Path First (OSPF) プロトコルでは、ルーター間の安全な通信を確保するためにMD5認証が一般的に使用されます。しかし、このセキュリティ対策は、LokiやJohn the Ripperのようなツールを使用して侵害される可能性があります。これらのツールはMD5ハッシュをキャプチャして解読することができ、認証キーを暴露します。このキーが取得されると、新しいルーティング情報を導入するために使用できます。ルートパラメータを設定し、侵害されたキーを確立するために、_Injection_および_Connection_タブがそれぞれ利用されます。
MD5ハッシュのキャプチャと解読: LokiやJohn the Ripperのようなツールがこの目的で使用されます。
ルートパラメータの設定: これは_Injection_タブを通じて行われます。
侵害されたキーの設定: キーは_Connection_タブで設定されます。
Other Generic Tools & Sources
Spoofing
攻撃者は、偽のDHCP応答を送信してネットワークの新しいメンバーのすべてのネットワークパラメータ(GW、IP、DNS)を設定します。
ARP Spoofing
Check the previous section.
ICMPRedirect
ICMPリダイレクトは、攻撃者がIPに到達する最良の方法であることを示すICMPパケットタイプ1コード5を送信することから成ります。次に、被害者がIPに連絡したい場合、攻撃者を通じてパケットを送信します。
DNS Spoofing
攻撃者は、被害者が要求するいくつか(またはすべて)のドメインを解決します。
dnsmasqを使用して独自のDNSを構成する
ローカルゲートウェイ
システムやネットワークへの複数のルートが存在することがよくあります。ローカルネットワーク内のMACアドレスのリストを作成したら、_gateway-finder.py_を使用してIPv4フォワーディングをサポートするホストを特定します。
DNSルックアップが失敗した場合、MicrosoftシステムはLink-Local Multicast Name Resolution (LLMNR)とNetBIOS Name Service (NBT-NS)に依存します。同様に、Apple BonjourやLinuxゼロコンフィギュレーションの実装は、ネットワーク内のシステムを発見するために**Multicast DNS (mDNS)**を利用します。これらのプロトコルは認証されておらず、UDP上でメッセージをブロードキャストするため、攻撃者がユーザーを悪意のあるサービスにリダイレクトするために悪用することができます。
Responderを使用してホストによって検索されるサービスを偽装し、偽の応答を送信することができます。 Responderを使用してサービスを偽装する方法についての詳細はこちらをお読みください。
ブラウザは一般的にWeb Proxy Auto-Discovery (WPAD)プロトコルを使用して自動的にプロキシ設定を取得します。これは、特に「http://wpad.example.org/wpad.dat」のようなURLを介してサーバーから構成詳細を取得することを含みます。このサーバーの発見は、クライアントによってさまざまなメカニズムを通じて行われる可能性があります:
DHCPを通じて、特別なコード252エントリを利用して発見が促進されます。
DNSによって、ローカルドメイン内で_wpad_というラベルの付いたホスト名を検索します。
Microsoft LLMNRおよびNBT-NSを介して、DNSルックアップが成功しない場合に使用されるフォールバックメカニズムです。
ツールResponderは、このプロトコルを利用して悪意のあるWPADサーバーとして機能します。DHCP、DNS、LLMNR、およびNBT-NSを使用して、クライアントを誤導して接続させます。Responderを使用してサービスを偽装する方法についてさらに詳しくは、こちらを確認してください。
ネットワーク内で異なるサービスを提供して、ユーザーを騙してプレーンテキストの認証情報を入力させることができます。**この攻撃に関する詳細は、Spoofing SSDP and UPnP Devicesで確認できます。
IPv6 Neighbor Spoofing
この攻撃はARP Spoofingに非常に似ていますが、IPv6の世界で行われます。被害者は、GWのIPv6が攻撃者のMACを持っていると考えるようになります。
IPv6ルーター広告のスプーフィング/フラッディング
一部のOSは、ネットワーク内で送信されたRAパケットからデフォルトでゲートウェイを設定します。攻撃者をIPv6ルーターとして宣言するには、次のようにします:
IPv6 DHCPスプーフィング
デフォルトでは、一部のOSはネットワーク内のDHCPv6パケットを読み取ってDNSを構成しようとします。これにより、攻撃者は自分自身をDNSとして構成するためにDHCPv6パケットを送信することができます。DHCPはまた、被害者にIPv6を提供します。
HTTP (偽ページとJSコード注入)
インターネット攻撃
sslStrip
基本的にこの攻撃が行うことは、ユーザーがHTTPページにアクセスしようとした場合、そのページがHTTPSバージョンにリダイレクトされることです。sslStripはクライアントとのHTTP接続とサーバーとのHTTPS接続を維持するため、平文で接続をスニッフィングすることができます。
More info here.
sslStrip+ と dns2proxy を使用した HSTS のバイパス
sslStrip+ と dns2proxy の 違い は、sslStrip に対して、例えば www.facebook.com を wwww.facebook.com にリダイレクト し(余分な "w" に注意)、このドメインの アドレスを攻撃者の IP に設定することです。この方法で、クライアント は wwww.facebook.com (攻撃者) に 接続 しますが、裏では sslstrip+ が www.facebook.com との 実際の接続 を 維持 します。
この技術の 目的 は HSTS を回避する ことで、wwww.facebook.com は ブラウザの キャッシュ に保存されないため、ブラウザは HTTP での facebook 認証を実行するように騙されます。 この攻撃を実行するには、被害者が最初に http://www.faceook.com にアクセスしなければならないことに注意してください。これは、http ページ内のリンクを変更することで実行できます。
More info here, here and here.
sslStrip または sslStrip+ はもう機能しません。これは、ブラウザに事前保存された HSTS ルールがあるため、ユーザーが「重要な」ドメインに初めてアクセスする場合でも、HTTPS 経由でアクセスされます。また、事前保存されたルールや他の生成されたルールは、 includeSubdomains
フラグを使用できるため、以前の _wwww.facebook.com_ の例は、_facebook.com_ が includeSubdomains
で HSTS を使用しているため、もはや機能しません。
TODO: easy-creds, evilgrade, metasploit, factory
ポートでの TCP リッスン
TCP + SSL ポートでリッスン
キーと自己署名証明書を生成する
証明書を使用してリッスンする
証明書を使用してリッスンし、ホストにリダイレクトする
時々、クライアントがCAが有効であることを確認すると、CAによって署名された他のホスト名の証明書を提供することができます。 もう一つの興味深いテストは、要求されたホスト名の証明書を自己署名で提供することです。
他にテストすることは、有効なCAではない有効な証明書で証明書に署名しようとすることです。または、有効な公開鍵を使用し、Diffie-Hellmanのようなアルゴリズムを強制的に使用し(実際の秘密鍵で何も復号化する必要がないもの)、クライアントが実際の秘密鍵のプローブ(ハッシュのような)を要求したときに、偽のプローブを送信し、クライアントがこれを確認しないことを期待します。
Bettercap
Active Discovery Notes
UDPパケットが要求されたポートを持たないデバイスに送信されると、ICMP(ポート到達不能)が送信されることに注意してください。
ARP discover
ARPパケットは、ネットワーク内で使用されているIPを発見するために使用されます。PCは各可能なIPアドレスにリクエストを送信し、使用されているものだけが応答します。
mDNS (multicast DNS)
Bettercapは、_services_.dns-sd._udp.localを要求するMDNSリクエストを(X msごとに)送信します。このパケットを受信したマシンは通常、このリクエストに応答します。その後、「services」に応答するマシンを検索します。
Tools
Avahi-browser (--all)
Bettercap (net.probe.mdns)
Responder
NBNS (NetBios Name Server)
Bettercapは、ポート137/UDPに「CKAAAAAAAAAAAAAAAAAAAAAAAAAAA」という名前を要求するブロードキャストパケットを送信します。
SSDP (Simple Service Discovery Protocol)
Bettercapは、あらゆる種類のサービスを検索するためにSSDPパケットをブロードキャストします(UDPポート1900)。
WSD (Web Service Discovery)
Bettercapは、サービスを検索するためにWSDパケットをブロードキャストします(UDPポート3702)。
References
Network Security Assessment: Know Your Network (3rd edition)
Practical IoT Hacking: The Definitive Guide to Attacking the Internet of Things. By Fotios Chantzis, Ioannis Stais, Paulino Calderon, Evangelos Deirmentzoglou, Beau Wood
Last updated