【セキュリティ事件簿#2023-081】神奈川県住宅供給公社 不正アクセスによる一部情報流出の可能性のお知らせとお詫びについて 2023年2月27日


当公社で利用しております富士通株式会社が提供するFENICSインターネットサービスにおいて、ネットワークを構成する一部機器が不正アクセスを受け、当該機器から外部に向けて不正な通信があった事実が判明しております。
(詳細につきましては、下記富士通株式会社のリンク先をご参照ください)

FENICSインターネットサービスに関するネットワーク機器からの不正な通信について(調査結果)
https://www.fujitsu.com/jp/services/infrastructure/network/news/2023/0220.html

調査の結果、不正な通信に当公社の情報が含まれているかは判明せず、また現時点において当公社以外のサービス利用者を含め、本件による情報の不正利用などの事実は確認されておりませんが、一定の期間においてメール送受信などにおける通信データの一部について、外部に流出した可能性を完全に否定することが出来ない状況であるとの判断に至りました。

なお調査の結果、不正な通信に当公社の情報が含まれているかは判明していないものの、不正アクセスを受けた機器に関しては、現在すでに同社において、必要な対策が講じられております。

また、可能性として、窃取されたと想定できるのはメールの送受信や一部インターネットサイトとの通信のみであり、当公社が保有するデータを保管するサーバー類へのアクセスはないことが確認できております。

関係者の皆様にご心配をおかけすることとなり、深くお詫び申し上げます。

今後、新たな事実が判明した場合や富士通株式会社から新たな情報提供があった場合は必要に応じて、公社ホームページでご報告させていただきます。

【セキュリティ事件簿#2022】国立大学法人室蘭工業大学 不正アクセスによる個人情報の漏えいの報告とお詫びについて 2023年2月27日


令和4年4月~7月にかけて、本学の教職員等4名が利用していたパソコンが不正アクセスを受け、その攻撃者の遠隔操作により本学メールサーバがSPAMメール等の送信に利用される事例が発生いたしました。

調査の結果、当該教職員等のメールサーバ内にある過去の送受信メールが攻撃者に閲覧された可能性があり、そのメールに553人分の個人情報が記載されていたことが判明いたしました。

なお、現時点において本件の個人情報が不正に使用された事実は確認されておりません。

個人情報が漏えいしたおそれのあるご本人へは、順次メールにて連絡を差し上げております。

なお、漏えいしたおそれのある個人情報が氏名のみで連絡先が含まれていない方及び本学で把握している連絡先が現在は使用されていない等の理由で個別に連絡ができない方には、このホームページでのお知らせをご本人への通知に代えさせていただきます。ご自身の個人情報が対象となっているか否かの確認をご希望の方は、以下のお問合せ先へご連絡いただきますようお願いいたします。

本学では、定期的にセキュリティ点検及び研修を実施しておりましたが、この事例の発生を受け、改めて全教職員及び学生向けにセキュリティ点検の実施及びシステムのセキュリティの強化を実施いたしました。

今回、このような問題が発生したことは、極めて重大なことであると受け止めており、関係の皆様に多大なご迷惑をおかけしたことを深くお詫び申し上げます。また、ご本人へのご報告が遅くなりましたことを重ねてお詫び申し上げます。

今後はこのようなことが起こらないよう、再発防止に努めてまいります。


【セキュリティ事件簿#2023-080】株式会社 ラウンドワン ホームページ改ざんに関するお詫びと復旧のご報告 2023年2月27日


平素よりラウンドワンをご利用いただき、誠にありがとうございます。

弊社ホームページにおきまして、第三者からの不正アクセスにより店舗料金案内ページが令和 5 年 2 月 25 日(土) 22 時 53 分~令和 5 年 2 月 26 日(日)11 時 10 分のあいだ改ざんされ、不適切な Web ページに誘導されるようになっていたことが判明いたしました。

お客様には大変ご迷惑、ご不便をお掛けしました事を改めて深くお詫びいたしますとともに、以下のとおり、本件の概要についてご報告いたします。

令和 5 年 2 月 25 日(土)、店舗料金案内ページにおいて、本来とは異なる Web ページへ誘導されることを確認いたしました。このため、同 Web サイトへのアクセスについて調査を開始いたしました。

調査の結果、サーバに不正アクセスされ、店舗料金案内ページが改ざんされていたことが判明しましたので、改ざんされたページを削除し復旧作業を実施し現在は正常にご利用できる状態となっております。

今回の店舗料金案内ページ改ざんによる弊社ホームページからの個人情報等の流出はないことを確認しております。

当社では、このような事態を防ぐために、セキュリティ対策を一層強化するとともに、不正アクセスの再発防止に向けて、改めて取り組みを強化してまいります。

再発防止に向け、今後とも引き続き努めてまいりますので、何卒ご理解賜りますようお願い申し上げます。

【セキュリティ事件簿#2023-079】埼玉県 観光応援キャンペーンにおけるメールの誤送信について 2023年2月20日


概要

令和5年2月17日(金曜日)18時9分、「2023 全国版 旅して!埼玉割」観光応援キャンペーン事業を受託している株式会社JTB埼玉支店(以下、「受託者」という。)が、同キャンペーンへの参画意向確認のため、事業者(270事業者)に対して事務連絡のメールを一斉送信しました。その際、誤ってほかの事業者のメールアドレスが表示される状態で送信しました。

対応状況

受託者では、メールアドレスが表示されてしまった事業者に対し、お詫びのメールを送信するとともに、先に送信したメールの削除を依頼しました。また、架電によるお詫びも併せて行いました。

再発防止策

県は、受託者に対し、メール送信時に複数人による確認を徹底するなどチェック体制の強化を指導し、適切な事業の管理を図ってまいります。

【セキュリティ事件簿#2023-078】東海大学 本学教員所有のノートパソコンとUSBメモリの盗難被害について 2023年2月22日


本学教員が、海外で盗難被害に遭い、個人情報が保存されたノートパソコンとUSBを紛失しました。現時点では第三者への個人情報の流出の事実は確認されておりません。
関係する皆様に多大なご迷惑とご心配をおかけしましたことを深くお詫び申し上げます。

1.経緯
本学教員が、2023年2月6日(月)にフランス・パリ近郊の空港にて、置き引きに遭い、カバンの中のノートパソコンとUSBメモリを盗難されました。
すぐに現地警察署に被害届を提出し受理されましたが、現時点では発見されたという連絡は受けておりません。

2.盗難品
① ノートパソコン
② USBメモリ2本

3.盗難被害に遭ったノートパソコンとUSBメモリに保存されていた個人情報の内容
① 履修者名簿に記載された、在学生216名、卒業生1530名の「学生証番号」「氏名」「出欠記録」「成績評価」
② 顔写真(ゼミ生270名)
③ 提出レポート(2020年以降電子データで提出を受けたもの)
④ 試験答案(2020年以降電子データで提出を受けたもの)

4.対応
連絡先が判明した該当者に対し、お詫びと状況説明のための連絡をいたしました。
既に本学を卒業され,現在の連絡先が不明な方々には本通知をもってお詫び申し上げます。

5.再発防止に向けた今後の取組
本学では、「東海大学情報セキュリティポリシー」を遵守し、情報資源や個人情報などの適切な管理に努めてまいりましたが、この度の事態を重く受け止め、改めて教職員への通達や研修等を通じて情報機器の管理徹底と個人情報の取り扱いについて教職員のより一層の意識向上を図り、再発防止に取り組んでまいります。

6.本件に関するお問い合わせ
本件につきまして、ご不明な点やご心配等がございましたら、大変お手数ですが、以下までご連絡いただくようお願いいたします。

【セキュリティ事件簿#2023-077】株式会社帝国データバンク 当社ネットワークへの不正アクセスについて 2023年2月24日


株式会社帝国データバンクは、2023年2月21日に当社のネットワークで異常を検知し、第三者による不正アクセスを確認しました。

不正アクセスについて、速やかに関係機関への報告を行うとともに、外部の専門機関による協力を得ながら被害状況の詳細を確認中です。不正アクセスの影響を受けた社内システムに不具合が生じ、一部商品の提供ができない状況となっておりますが、順次復旧に取り組んでおります。

今回の不具合の影響により、お客さま、関係者の皆様にご心配、ご迷惑をおかけしていることをお詫び申し上げます。

なお、現在までに提供済みの商品および稼働中のサービスについては安全の確認が取れており、お客さまや社外の皆様へ被害が拡大することはありません。

今後お知らせすべき新たな事実が判明次第、改めてホームページ等にてお知らせいたします。

乗り継ぎ回数や移動時間よりもコストを下げたい人向けのツール「Skipplagged」

 

航空券とは不思議なもので、何故か直行便は金額が高く、経由便は安い傾向にあります。

例えば都市A⇒Bの直行便の航空券の金額よりも、都市A⇒B⇒Cへの経由便の航空券の方が安いケースもあります。

悪知恵を働かせると、このようなケースに遭遇した場合、都市A⇒B⇒Cへの航空券を買って都市Bに向かうのが最も効率的となります。

こういうことを英語でskiplagging(通称隠れ都市発券)というらしい。

今回はこのskiplaggingについて触れてみたい。

ITA Matrix vs. Skipplagged

ITA Matrixというツールをご損字でしょうか?

使いこなすにはそれなりの学習が必要ですが、非常に強力なツールです。 

以下の例では、目的地として、デトロイト(DTW)と、1000マイル以内の空港をすべて入力しています。

 そして、詳細経路コードに「DTW DL+」入力しています。 これは、デトロイト(DTW)経由で、1つ以上のデルタ航空便(DL+)を含むルートのみを検索することを意味します。これで、検索対象をデルタ航空のみに絞り、ツールに余計な負荷をかけることを防ぎます。


直行便だと450USD以上するフライトですが、経由便にすることで、200USD程度に抑えることが可能です。

もうひとつの選択肢は、Skiplaggedを使うことです。 Skiplaggedは、ほとんどトレーニングを必要としないユーザーフレンドリーなツールで、隠れた運賃だけでなく、復路を破棄できるような安い往復運賃も見つけることができるのです。 

skiplaggingのルールとアドバイス

skiplaggingは頻繁に使うようなものではありませんが、必要な状況になることを踏まえて備えておくべきです。

  • 破棄する区間は、旅程の最後の区間である必要があります。 それ以前の区間で破棄すると、ほとんどの航空会社は残りの区間をキャンセルします。skiplaggingは通常片道発券です。

  • この方法は、乗り継ぎ空港(ハブ空港)へ飛ぶ場合にのみ有効です。 例えば、ハブ空港から地方空港へのフライトは、地方空港からの乗り継ぎ便が少ないため、うまくいきません。 地方空港からハブ空港にすることでチケットが見つかる可能性が高くなります。

  • 手荷物は絶対に預けないこと。

  • 航空券にマイレージプログラムの番号を記入しないことを考える。 マイルを失うリスクもあるため、そのフライトでマイル貯めることは考えない方がよいかもしれません。 

  • 経由地で降機する言い訳を用意しておく。フライトイレギュラーが発生した場合、航空会社は最終目的地へのルート変更を試みるかもしれません。 なぜその経由地に行く必要があるのか、言い訳を用意しておくとよいでしょう。

  • 子供と一緒にやらない。一人なら、意図しないところで足止めを食らっても、対処できますが、 家族全員で旅行している場合は悲惨です。

【TryHackMeウォークスルー】Nmap Live Host Discovery


Task 1  Introduction

ネットワークを標的にする際、繰り返し行われる下記のタスクを処理するための効率的なツールが欲しくなります。

  1. どのシステムが稼働しているか?
  2. どのシステムが稼働しているか、これらのシステムでどのサービスが稼働しているか。

その答えの一つのツールがNmapです。こちらでは、稼働中のコンピュータを見つける方法を紹介します。こちらは、Nmapに特化した4つのルームのうちの最初のルームです。実行中のサービスの発見に関する方法は、ポートスキャンに焦点を当てた次のNmapのルームで回答しています。

このルームは、Nmapシリーズの4つのうちの1つ目でです。これらの4つのルームは、Network Securityモジュールの一部でもあります。

  1. Nmap Live Host Discovery
  2. Nmap Basic Port Scans
  3. Nmap Advanced Port Scans
  4. Nmap Post Port Scans

このルームでは、ポートスキャンの前に、オンラインになっているシステムを発見するためにNmapが実行するステップについて説明します。オフラインのシステムをポートスキャンしても時間を浪費するだけで、ネットワークに不要なノイズを発生させるだけなので、この対応は非常に重要です。

Nmapが稼働中のホストを発見するために使用する様々なアプローチについて紹介します。特に、以下のものを取り上げます。

  • ARPスキャン:このスキャンは、ARPリクエストを使って稼動中のホストを発見します。
  • ICMPスキャン:このスキャンでは、ICMPリクエストを使用して稼働中のホストを検出します。
  • TCP/UDP pingスキャン:このスキャンでは、TCPポートとUDPポートにパケットを送信し、稼働中のホストを特定します。

また、arp-scanmasscanという2つのスキャナーを紹介し、それらがNmapのホスト発見の一部とどのように重なっているかを説明します。

このルームでは、Nmap を使ってシステムやサービスを積極的に発見していくことにします。Nmapは、ネットワークセキュリティの専門家でオープンソースプログラマーのGordon Lyon(Fyodor)氏によって作られ、1997年にリリースされました。NmapはNetwork Mapperの略で、GPLライセンスで公開されている無償のオープンソースソフトウェアです。Nmapは、ネットワークをマッピングし、稼働中のホストを特定し、稼働中のサービスを発見するための業界標準のツールです。Nmapのスキャンは多くのオプションがあり、提供するコマンドライン引数に依存します。

■Question ※無し


Task 2  Subnetworks

主要な作業に移る前に、いくつかの用語について復習しておきましょう。ネットワーク・セグメントとは、共有媒体によって接続されたコンピュータのグループです。例えば、媒体はイーサネットスイッチやWiFiアクセスポイントになります。IPネットワークでは、サブネットワークは通常、一緒に接続され、同じルーターを使用するように構成された1つまたは複数のネットワークセグメントに相当します。ネットワークセグメントは物理的な接続を意味し、サブネットワークは論理的な接続を意味します。

能動的な偵察の一環として、ホストのグループまたはサブネットに関するより多くの情報を発見したいとします。同じサブネットに接続している場合、スキャナは生きているホストを発見するためにARP(アドレス解決プロトコル)に頼ります。ARPは、リンク層上での通信が可能になるようにハードウェアアドレス(MACアドレス)を取得することですが、これを利用してホストがオンラインであることを推測することができます。

ネットワークAにいる場合、ARPはそのサブネット(10.1.100.0/24)内のデバイスのみを発見することができます。ターゲットシステムのサブネットが異なる場合、生成されたすべてのパケットは、デフォルトゲートウェイ(ルーター)を経由して別のサブネット上のシステムに到達しますが、ARPクエリーはルーティングされないため、ルーターを越えることができません。ARPはリンク層のプロトコルのため、サブネットを超えることができません。

■Question

  • From computer1
  • To computer1 (to indicate it is broadcast)
  • Packet Type: “ARP Request”
  • Data: computer6 (because we are asking for computer6 MAC address using ARP Request)

How many devices can see the ARP Request?
4

Did computer6 receive the ARP Request? (Y/N)
N

  • From computer4
  • To computer4 (to indicate it is broadcast)
  • Packet Type: “ARP Request”
  • Data: computer6 (because we are asking for computer6 MAC address using ARP Request)

How many devices can see the ARP Request?
4

Did computer6 reply to the ARP Request? (Y/N)
Y


Task 3  Enumerating Targets

Task 1でスキャンに使用できる様々なテクニックについて触れました。それぞれを詳しく説明し、実際のターゲットに対して使用する前に、スキャンしたいターゲットを指定する必要があります。一般的には、リスト、範囲、サブネットのいずれかを指定することができます。ターゲット指定の例としては以下となります。

  • リスト:MACHINE_IP scanme.nmap.org example.com は、3つのIPアドレスをスキャンします。
  • レンジ:10.11.12.15-20は、6つのIPアドレス(10.11.12.15-20)をスキャンします。
  • サブネット:MACHINE_IP/30は、4つのIPアドレスをスキャンします。

nmap -iL list_of_hosts.txt のように、ターゲットリストの入力としてファイルを指定しておくことも可能です。

Nmapがスキャンするホストのリストを確認したい場合は、nmap -sL TARGETSを使用することができます。このオプションは、Nmapがスキャンするホストの詳細なリストをスキャンせずに表示します。ただし、Nmapはすべてのターゲットに対して、名前を取得するためにDNSの逆解析を試みます。名前は、ペンテスターに対して、さまざまな情報を明らかにする可能性があります。(NmapにDNSサーバーへのアクセスをさせたくない場合は、-nを追加します)。

Start AttackBoxボタンでAttackBoxを起動し、AttackBoxの準備ができたらターミナルを開き、Nmapを使ってQuestionに回答してください。

■Question

What is the first IP address Nmap would scan if you provided 10.10.12.13/29 as your target?
(ヒント:コンソールでnmap -sL 10.10.12.13/29 を実行)
10.10.12.8

How many IP addresses will Nmap scan if you provide the following range 10.10.0-255.101-125?
(ヒント:コンソールでnmap -sL 10.10.0-255.101-125 を実行し、最終行を確認)
6400


Task 4  Discovering Live Hosts

次に図に示したTCP/IPのレイヤーを再確認してみましょう。稼働中のホストを発見するために各プロトコルを活用します。下から上に向かって、使用することができます。


スキャナがそれぞれをどのように利用できるかを詳しく説明する前に、4つのプロトコルを簡単におさらいします。

ARP の目的は一つで、ネットワークセグメント上のブロードキャストアドレスにフレームを送信し、特定の IP アドレスを持つコンピュータに、その MAC(ハードウェア)アドレスを提供して応答するように要求することです。

ICMPには多くのタイプがあります。ICMPのpingはType8(Echo)とType0(Echo Reply)を使用します。

同じサブネット上のシステムにpingを送信する場合は、ICMP Echoの前にARPクエリを送信する必要があります。

TCPとUDPはトランスポート層ですが、ネットワーク・スキャンを目的とする場合、スキャナは一般的なTCPまたはUDPポートに特別に作成したパケットを送信して、ターゲットが応答するかどうかを確認することができます。この方法は、特にICMP Echoがブロックされている場合に効率的です。

■Question

Send a packet with the following:

From computer1

To computer3

Packet Type: “Ping Request”

What is the type of packet that computer1 sent before the ping?
ARP REQUEST

What is the type of packet that computer1 received before being able to send the ping?
ARP RESPONSE

How many computers responded to the ping request?
1

Send a packet with the following:

From computer2

To computer5

Packet Type: “Ping Request”

What is the name of the first device that responded to the first ARP Request?
router

What is the name of the first device that responded to the second ARP Request?
computer5

Send another Ping Request. Did it require new ARP Requests? (Y/N)
N


Task 5  Nmap Host Discovery Using ARP

どのホストが稼働しているかはどうやって知るのですか? オフラインのホストや使われていないIPアドレスをスキャンして時間を浪費しないようにすることが重要です。オンラインホストを発見する方法には、いろいろなものがあります。ホスト発見オプションが提供されていない場合、Nmapは以下のアプローチに従って、稼働中のホストを発見します。

  1. 特権ユーザがローカルネットワーク(Ethernet)上のターゲットをスキャンしようとするとき、NmapはARPリクエストを使用します。特権ユーザとは、rootまたはsudoersに属し、sudoを実行できるユーザです。

  2. 特権ユーザがローカルネットワーク外のターゲットをスキャンしようとする場合、NmapはICMPエコー要求、ポート80へのTCP ACK(応答)、ポート443へのTCP SYN(同期)、およびICMPタイムスタンプ要求を使用します。

  3. 非特権ユーザーがローカルネットワーク外のターゲットをスキャンしようとすると、Nmapはポート80と443にSYNパケットを送信して、TCP 3ウェイハンドシェイクに頼ろうとします。

Nmapは、デフォルトでは、ライブホストを見つけるためにpingスキャンを使用し、その後、ライブホストのみをポートスキャンします。Nmapを使って、ポートスキャンせずにオンラインホストの検出のみをした場合は、nmap -sn TARGETSを実行します。使用されるさまざまな技術をしっかり理解するために、さらに深く掘り下げてみましょう。

ARPスキャンは、ターゲットシステムと同じサブネットにいる場合にのみ可能です。イーサネット(802.3)およびWiFi(802.11)では、通信する前にシステムのMACアドレスを知っておく必要があります。MACアドレスはリンク層のヘッダーに必要で、ヘッダーには送信元MACアドレスと送信先MACアドレスなどのフィールドが含まれます。MACアドレスを取得するために、OSはARPクエリーを送信します。ARPクエリに応答するホストは、稼働しています。ARPクエリーは、ターゲットが自分と同じサブネット上にある場合、つまり、同じイーサネット/WiFi上にある場合にのみ機能します。ローカルネットワークのNmapスキャン中に、多くのARPクエリが生成されることを予期しておく必要があります。Nmapにポートスキャンを行わず、ARPスキャンだけを実行させたい場合は、nmap -PR -sn TARGETSを使用します。次の例は、Nmapがポートスキャンを行わずにARPを使用してホストを発見することを示しています。nmap -PR -sn MACHINE_IP/24を実行して、ターゲットマシンと同じサブネット上のすべての稼働中のシステムを発見しています。

Pentester Terminal
pentester@TryHackMe$ sudo nmap -PR -sn 10.10.210.6/24

Starting Nmap 7.60 ( https://nmap.org ) at 2021-09-02 07:12 BST
Nmap scan report for ip-10-10-210-75.eu-west-1.compute.internal (10.10.210.75)
Host is up (0.00013s latency).
MAC Address: 02:83:75:3A:F2:89 (Unknown)
Nmap scan report for ip-10-10-210-100.eu-west-1.compute.internal (10.10.210.100)
Host is up (-0.100s latency).
MAC Address: 02:63:D0:1B:2D:CD (Unknown)
Nmap scan report for ip-10-10-210-165.eu-west-1.compute.internal (10.10.210.165)
Host is up (0.00025s latency).
MAC Address: 02:59:79:4F:17:B7 (Unknown)
Nmap scan report for ip-10-10-210-6.eu-west-1.compute.internal (10.10.210.6)
Host is up.
Nmap done: 256 IP addresses (4 hosts up) scanned in 3.12 seconds

このケースでは、攻撃側のIPアドレスは10.10.210.6で、ARPリクエストを使用して同じサブネット上の稼働中のホストを発見しています。ARPスキャンは、下図のように動作します。Nmapは、すべてのターゲットコンピュータにARPリクエストを送信し、オンラインになっているコンピュータはARP応答を返送します。


もし、tcpdumpやWiresharkなどのツールを使って生成されたパケットを見ることができれば、下図のようなネットワークトラフィックを確認することができます。下図では、Wiresharkが各ARPリクエストに関連する送信元MACアドレス、送信先MACアドレス、プロトコル、クエリを表示しています。送信元アドレスは攻撃側のMACアドレス、送信先アドレスはターゲットのMACアドレスが分からないのでブロードキャストアドレスになっています。しかし、Info欄に表示されるターゲットのIPアドレスは確認できます。図では、10.10.210.1から始まるサブネット上のすべてのIPアドレスのMACアドレスを要求していることがわかります。要求しているIPアドレスを持つホストは、そのMACアドレスを含むARP応答を送信し、それによって、そのホストがオンラインであることを知ることができます。


ARPスキャンについて話すと、ARPクエリを中心に構築されたスキャナであるarp-scanを挙げることができます。スキャンをカスタマイズするための多くのオプションがありますので、詳細な情報はarp-scan wikiをご覧ください。よく使われるのは arp-scan --localnet または単に arp-scan -l です。このコマンドはローカルネットワーク上の全ての有効なIPアドレスにARPクエリーを送信します。さらに、システムが複数のインターフェースを持っていて、そのうちの一つのインターフェースにある稼働中のホストを発見したい場合、-I を使ってインターフェースを指定することができます。例えば、sudo arp-scan -I eth0 -l は eth0 インターフェース上の全ての有効な IP アドレスに対して ARP クエリーを送信します。

以下の例では、arp-scan ATTACKBOX_IP/24 を使用して AttackBox のサブネットをスキャンしています。このスキャンは、前回のスキャンと近い時間帯に実行したため nmap -PR -sn ATTACKBOX_IP/24 では、同じ 3 つの稼働ホストが確認できました。

Pentester Terminal
pentester@TryHackMe$ sudo arp-scan 10.10.210.6/24
Interface: eth0, datalink type: EN10MB (Ethernet)
WARNING: host part of 10.10.210.6/24 is non-zero
Starting arp-scan 1.9 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
10.10.210.75	02:83:75:3a:f2:89	(Unknown)
10.10.210.100	02:63:d0:1b:2d:cd	(Unknown)
10.10.210.165	02:59:79:4f:17:b7	(Unknown)

4 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9: 256 hosts scanned in 2.726 seconds (93.91 hosts/sec). 3 responded

同様に、arp-scanコマンドは、tcpdump、Wireshark、または同様のツールを使用して見ることができる多くのARPクエリを生成します。arp-scanとnmap -PR -snのパケットキャプチャは、同じようなトラフィックパターンを生成していることがわかります。以下は、Wiresharkの出力です。


■Question

We will be sending broadcast ARP Requests packets with the following options:

  • From computer1
  • To computer1 (to indicate it is broadcast)
  • Packet Type: “ARP Request”
  • Data: try all the possible eight devices (other than computer1) in the network: computer2, computer3, computer4, computer5, computer6, switch1, switch2, and router.
How many devices are you able to discover using ARP requests?
3


Task 6  Nmap Host Discovery Using ICMP

ターゲット・ネットワーク上のすべてのIPアドレスにPingを打ち、Ping(ICMP Type 8/Echo)リクエストに対して、誰がPing応答(ICMP Type 0)を返すかを確認することができます。簡単でしょう?これは最も簡単な方法ですが、必ずしも信頼できるとは限りません。多くのファイアウォールはICMPエコーをブロックします。Windowsの新しいバージョンでは、デフォルトでICMPエコー要求をブロックするホストファイアウォールが設定されています。ターゲットが同じサブネット上にある場合、ARPクエリーがICMPリクエストに先行することを忘れないでください。

ICMPエコー要求を使用して稼働中のホストを検出するには、オプション -PEを追加します。(次の図に示すように、ICMPエコースキャンは、ICMPエコー要求を送信し、ターゲットがオンラインであればICMPエコー応答で返信することを前提として動作します)


以下の例では、nmap -PE -sn MACHINE_IP/24を使用してターゲットのサブネットをスキャンしています。このスキャンでは、サブネット上のすべてのIPアドレスにICMPエコーパケットを送信します。ここでも、生きているホストが応答することを期待します。しかし、多くのファイアウォールがICMPをブロックしていることを覚えておくとよいでしょう。以下の出力は、攻撃端末から sudo nmap -PE -sn MACHINE_IP/24 を使用して、仮想マシンのクラス C サブネットをスキャンした結果を示しています。

Pentester Terminal
pentester@TryHackMe$ sudo nmap -PE -sn 10.10.68.220/24

Starting Nmap 7.60 ( https://nmap.org ) at 2021-09-02 10:16 BST
Nmap scan report for ip-10-10-68-50.eu-west-1.compute.internal (10.10.68.50)
Host is up (0.00017s latency).
MAC Address: 02:95:36:71:5B:87 (Unknown)
Nmap scan report for ip-10-10-68-52.eu-west-1.compute.internal (10.10.68.52)
Host is up (0.00017s latency).
MAC Address: 02:48:E8:BF:78:E7 (Unknown)
Nmap scan report for ip-10-10-68-77.eu-west-1.compute.internal (10.10.68.77)
Host is up (-0.100s latency).
MAC Address: 02:0F:0A:1D:76:35 (Unknown)
Nmap scan report for ip-10-10-68-110.eu-west-1.compute.internal (10.10.68.110)
Host is up (-0.10s latency).
MAC Address: 02:6B:50:E9:C2:91 (Unknown)
Nmap scan report for ip-10-10-68-140.eu-west-1.compute.internal (10.10.68.140)
Host is up (0.00021s latency).
MAC Address: 02:58:59:63:0B:6B (Unknown)
Nmap scan report for ip-10-10-68-142.eu-west-1.compute.internal (10.10.68.142)
Host is up (0.00016s latency).
MAC Address: 02:C6:41:51:0A:0F (Unknown)
Nmap scan report for ip-10-10-68-220.eu-west-1.compute.internal (10.10.68.220)
Host is up (0.00026s latency).
MAC Address: 02:25:3F:DB:EE:0B (Unknown)
Nmap scan report for ip-10-10-68-222.eu-west-1.compute.internal (10.10.68.222)
Host is up (0.00025s latency).
MAC Address: 02:28:B1:2E:B0:1B (Unknown)
Nmap done: 256 IP addresses (8 hosts up) scanned in 2.11 seconds

スキャン出力は、8台のホストが起動していることを示し、さらに、そのMACアドレスを示しています。一般的に、ターゲットが自分のシステムと同じサブネットにいない限り、ターゲットのMACアドレスを知ることはないと思われます。上記の出力は、Nmapが、受け取ったARP応答に基づいてこれらのホストが稼働していることを確認したため、ICMPパケットを送信する必要がなかったことを示しています。

上記のスキャンを繰り返します。ただし、今回は、異なるサブネットに属するシステムからスキャンします。結果は同様ですが、MACアドレスがありません。

Pentester Terminal
pentester@TryHackMe$ sudo nmap -PE -sn 10.10.68.220/24

Starting Nmap 7.92 ( https://nmap.org ) at 2021-09-02 12:16 EEST
Nmap scan report for 10.10.68.50
Host is up (0.12s latency).
Nmap scan report for 10.10.68.52
Host is up (0.12s latency).
Nmap scan report for 10.10.68.77
Host is up (0.11s latency).
Nmap scan report for 10.10.68.110
Host is up (0.11s latency).
Nmap scan report for 10.10.68.140
Host is up (0.11s latency).
Nmap scan report for 10.10.68.142
Host is up (0.11s latency).
Nmap scan report for 10.10.68.220
Host is up (0.11s latency).
Nmap scan report for 10.10.68.222
Host is up (0.11s latency).
Nmap done: 256 IP addresses (8 hosts up) scanned in 8.26 seconds

Wiresharkのようなツールを使ってネットワークパケットを見ると、下の画像のようなものが見えてきます。宛先サブネットとは異なるサブネットにある1つのソースIPアドレスが、ターゲットサブネット内のすべてのIPアドレスにICMPエコーリクエストを送信し、どれが応答するかを確認していることがわかります。


ICMPエコーリクエストはブロックされる傾向があるので、システムがオンラインかどうかを判断するために、ICMPタイムスタンプまたはICMPアドレスマスクのリクエストも考慮するとよいでしょう。Nmapはタイムスタンプ要求(ICMPタイプ13)を使用し、タイムスタンプ応答(ICMPタイプ14)を得るかどうかをチェックします。-PPオプションを追加すると、NmapはICMPタイムスタンプリクエストを使用するようになります。下図のように、生きているホストが応答することを期待します。


次の例では、nmap -PP -sn MACHINE_IP/24を実行して、ターゲットマシンサブネット上のオンラインコンピュータを検出します。

Pentester Terminal
pentester@TryHackMe$ sudo nmap -PP -sn 10.10.68.220/24

Starting Nmap 7.92 ( https://nmap.org ) at 2021-09-02 12:06 EEST
Nmap scan report for 10.10.68.50
Host is up (0.13s latency).
Nmap scan report for 10.10.68.52
Host is up (0.25s latency).
Nmap scan report for 10.10.68.77
Host is up (0.14s latency).
Nmap scan report for 10.10.68.110
Host is up (0.14s latency).
Nmap scan report for 10.10.68.140
Host is up (0.15s latency).
Nmap scan report for 10.10.68.209
Host is up (0.14s latency).
Nmap scan report for 10.10.68.220
Host is up (0.14s latency).
Nmap scan report for 10.10.68.222
Host is up (0.14s latency).
Nmap done: 256 IP addresses (8 hosts up) scanned in 10.93 seconds

前のICMPスキャンと同様に、このスキャンでは、ターゲットのサブネット内のすべての有効なIPアドレスに、多数のICMPタイムスタンプ要求が送信されます。下のWiresharkのスクリーンショットでは、1つのソースIPアドレスが、オンラインホストを発見するために、可能な限りのIPアドレスにICMPパケットを送信しているのがわかります。


同様に、Nmapはアドレスマスククエリー(ICMPタイプ17)を使用し、アドレスマスク応答(ICMPタイプ18)を取得するかどうかをチェックします。このスキャンは、オプション -PMで有効にすることができます。下図に示すように、ライブホストはICMPアドレスマスク要求に対して応答することが期待されます。


ICMPアドレスマスククエリを使用して稼働中のホストを発見するため、nmap -PM -sn MACHINE_IP/24コマンドを実行しました。以前のスキャンで、少なくとも8台のホストが稼働していることが分かっていましたが、このスキャンでは1台も返されませんでした。これは、ターゲットシステムまたはルート上のファイアウォールが、このタイプのICMPパケットをブロックしているためです。したがって、同じ結果を得るためには、複数のアプローチを学ぶことが不可欠です。1つのタイプのパケットがブロックされている場合、ターゲットネットワークとサービスを発見するために、常に別の方法を選択することができます。

Pentester Terminal
pentester@TryHackMe$ sudo nmap -PM -sn 10.10.68.220/24

Starting Nmap 7.92 ( https://nmap.org ) at 2021-09-02 12:13 EEST
Nmap done: 256 IP addresses (0 hosts up) scanned in 52.17 seconds

応答は得られず、どのホストがオンラインであるかを把握することはできませんでしたが、このスキャンでは、すべての有効なIPアドレスにICMPアドレスマスク要求を送信し、応答を待っていたことに注目することが重要です。以下のスクリーンショットに見られるように、各ICMPリクエストは2回送信されました。


■Question

What is the option required to tell Nmap to use ICMP Timestamp to discover live hosts?
-PP

What is the option required to tell Nmap to use ICMP Address Mask to discover live hosts?
-PM

What is the option required to tell Nmap to use ICMP Echo to discover life hosts?
-PE


Task 7  Nmap Host Discovery Using TCP and UDP

TCP SYN Ping

TCPポート(デフォルトでは80)にSYN(Synchronize)フラグを設定したパケットを送信し、応答を待つことができます。開いているポートであればSYN/ACK(Acknowledge)、閉じているポートであればRST(Reset)の応答があるはずです。この場合、ホストが立ち上がっているかどうかを推測するために、何らかの応答があるかどうかだけをチェックします。ポートの具体的な状態は、ここでは重要ではありません。下図は、TCPの3ウェイハンドシェイクが通常どのように行われるかを示したものです。


NmapにTCP SYN pingを使わせたい場合は、-PSオプションの後にポート番号、範囲、リスト、またはそれらの組み合わせを指定することで実現できます。たとえば、-PS21はポート21を対象とし、-PS21-25はポート21、22、23、24、25を対象とします。最後に、-PS80,443,8080は、80、443、8080の3つのポートをターゲットにします。

特権ユーザー(rootとsudoers)は、下図のように、TCP SYNパケットを送信でき、ポートが開いていてもTCP 3ウェイ・ハンドシェイクを完了する必要がありません。非特権ユーザーは、ポートが開いている場合、3ウェイハンドシェイクを完了させる必要があります。


nmap -PS -sn MACHINE_IP/24 を実行して、ターゲット VM のサブネットをスキャンしてみます。以下の出力に見られるように、5つのホストを発見することができました。

Pentester Terminal
pentester@TryHackMe$ sudo nmap -PS -sn 10.10.68.220/24
Starting Nmap 7.92 ( https://nmap.org ) at 2021-09-02 13:45 EEST
Nmap scan report for 10.10.68.52
Host is up (0.10s latency).
Nmap scan report for 10.10.68.121
Host is up (0.16s latency).
Nmap scan report for 10.10.68.125
Host is up (0.089s latency).
Nmap scan report for 10.10.68.134
Host is up (0.13s latency).
Nmap scan report for 10.10.68.220
Host is up (0.11s latency).
Nmap done: 256 IP addresses (5 hosts up) scanned in 17.38 seconds

下図のWiresharkでネットワークトラフィックを見ることで、舞台裏で何が起きているのかを詳しく見てみましょう。技術的には、TCP pingスキャンで使用するTCPポートを指定していなかったため、Nmapは一般的なポートを使用しました。ポート80でリッスンしているサービスはすべて応答することが期待され、ホストがオンラインであることを間接的に示しています。


TCP ACK Ping

これは、ACKフラグが設定されたパケットを送信するものです。これを実行するには、Nmapを特権ユーザで実行する必要があります。非特権ユーザーで試すと、Nmapは3ウェイハンドシェイクを試みます。

デフォルトでは、ポート80が使用さ れます。構文は、TCP SYN pingと似ています。-PAの後には、ポート番号、範囲、リスト、またはそれらの組み合わせを指定する必要があります。たとえば、-PA21、-PA21-25、-PA80,443,8080 を考えてください。ポートを指定しない場合、ポート80が使用されます。

次の図は、ACKフラグを持つTCPパケットは、RSTフラグを設定したTCPパケットを返してもらう必要があることを示しています。ACKフラグを持つTCPパケットは進行中のコネクションの一部ではないので、ターゲットはRSTフラグをセットして応答します。期待される応答は、ターゲットホストが稼働しているかどうかを検出するために使用されます。


この例では、sudo nmap -PA -sn MACHINE_IP/24を実行して、ターゲットのサブネット上のオンラインホストを検出します。TCP ACK pingスキャンにより、5つのホストがアップしていることが検出されました。

Pentester Terminal
pentester@TryHackMe$ sudo nmap -PA -sn 10.10.68.220/24
Starting Nmap 7.92 ( https://nmap.org ) at 2021-09-02 13:46 EEST
Nmap scan report for 10.10.68.52
Host is up (0.11s latency).
Nmap scan report for 10.10.68.121
Host is up (0.12s latency).
Nmap scan report for 10.10.68.125
Host is up (0.10s latency).
Nmap scan report for 10.10.68.134
Host is up (0.10s latency).
Nmap scan report for 10.10.68.220
Host is up (0.10s latency).
Nmap done: 256 IP addresses (5 hosts up) scanned in 29.89 seconds

下図のようにネットワークトラフィックを覗いてみると、ACKフラグが設定され、ターゲットシステムのポート80に送信されたパケットを多数発見することができます。Nmapは各パケットを2回送信しています。応答がないシステムは、オフラインまたはアクセス不能になります。


UDP Ping

最後に、ホストがオンラインかどうかを調べるためにUDPを使用することができます。TCP SYN Pingとは逆に、開いているポートにUDPパケットを送っても、何も返ってこないことが予想されます。しかし、閉じたUDPポートにUDPパケットを送ると、ICMP port unreachableパケットを受け取ることが期待できます。これは、ターゲットシステムが稼働していて利用可能であることを示します。

次の図では、開いているUDPポートにUDPパケットを送信しても、何も応答がないことがわかります。しかし、閉じたUDPポートにUDPパケットを送信すると、ターゲットがオンラインであることを間接的に示す応答がトリガーされることがあります。



ポートを指定する構文は、TCP SYN pingおよびTCP ACK pingと同様です。Nmapは、UDP pingに-PUを使用します。次の例では、UDPスキャンを使用し、5つのライブホストを発見しています。

Pentester Terminal
pentester@TryHackMe$ sudo nmap -PU -sn 10.10.68.220/24
Starting Nmap 7.92 ( https://nmap.org ) at 2021-09-02 13:45 EEST
Nmap scan report for 10.10.68.52
Host is up (0.10s latency).
Nmap scan report for 10.10.68.121
Host is up (0.10s latency).
Nmap scan report for 10.10.68.125
Host is up (0.14s latency).
Nmap scan report for 10.10.68.134
Host is up (0.096s latency).
Nmap scan report for 10.10.68.220
Host is up (0.11s latency).
Nmap done: 256 IP addresses (5 hosts up) scanned in 9.20 seconds

生成されたUDPパケットを検証してみましょう。次のWiresharkのスクリーンショットでは、Nmapが、閉じている可能性が高いUDPポートにUDPパケットを送信していることが分かります。下の画像は、Nmapが一般的でないUDPポートを使って、ICMP宛先到達不能(port unreachable)エラーを引き起こしていることを示しています。


Masscan

余談ですが、Masscan は利用可能なシステムを発見するために同様のアプローチを使用しています。ただし、ネットワークスキャンを迅速に終了させるため、Masscanは生成するパケットのレートをかなり積極的に上げています。構文は非常に似ており、-p の後にポート番号、リスト、または範囲を指定することができます。次の例を見てください。

  • masscan MACHINE_IP/24 -p443
  • masscan MACHINE_IP/24 -p80,443
  • masscan MACHINE_IP/24 -p22-25
  • masscan MACHINE_IP/24 --top-ports 100

■Question

Which TCP ping scan does not require a privileged account?(特権アカウントを必要としないTCP pingスキャンはどれですか?)
TCP Syn PING

Which TCP ping scan requires a privileged account?(特権アカウントを必要とするTCP pingスキャンはどれですか?)
TCP ACK PING

What option do you need to add to Nmap to run a TCP SYN ping scan on the telnet port?(TelnetポートでTCP SYN pingスキャンを実行するために、Nmapにどのようなオプションを追加する必要がありますか?)
-PS23


Task 8  Using Reverse-DNS Lookup

Nmapのデフォルトの動作は、リバースDNSオンラインホストを使用することです。ホスト名から多くのことがわかるので、これは有用なステップでしよう。しかし、そのようなDNSクエリを送信したくない場合は、-nを使用してこのステップをスキップすることができます。

デフォルトでは、Nmapはオンラインホストを検索します。しかし、-Rオプションを使用すると、オフラインのホストであってもDNSサーバに問い合わせることができます。特定のDNSサーバを使用したい場合は、-dns-servers DNS_SERVERオプションを追加することができます。

■Question

We want Nmap to issue a reverse DNS lookup for all the possibles hosts on a subnet, hoping to get some insights from the names. What option should we add?(Nmapに、サブネット上のすべての可能性のあるホストのDNS逆引きを発行させ、その名前から何らかの洞察を得たいと考えています。どのようなオプションを追加すればよいでしょうか。)
-R


Task 9  Summary

ARP、ICMP、TCP、UDPがどのように生きているホストを検出することができるかを学習しました。ホストからのいかなる応答も、それがオンラインであることを示すものです。以下は、これまで取り上げたNmapのコマンドラインオプションの簡単な要約です。

Scan TypeExample Command
ARP Scansudo nmap -PR -sn MACHINE_IP/24
ICMP Echo Scansudo nmap -PE -sn MACHINE_IP/24
ICMP Timestamp Scansudo nmap -PP -sn MACHINE_IP/24
ICMP Address Mask Scansudo nmap -PM -sn MACHINE_IP/24
TCP SYN Ping Scansudo nmap -PS22,80,443 -sn MACHINE_IP/30
TCP ACK Ping Scansudo nmap -PA22,80,443 -sn MACHINE_IP/30
UDP Ping Scansudo nmap -PU53,161,162 -sn MACHINE_IP/30

ポートスキャンを行わず、ホストの発見のみを目的とする場合は、-snを付けることを忘れないでください。-snを省略すると、Nmapはデフォルトで生きているホストを見つけた後、ポートスキャンを実行します。

OptionPurpose
-nno DNS lookup
-Rreverse-DNS lookup for all hosts
-snhost discovery only

■Question ※無し