【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 ※無し

【セキュリティ事件簿#2023-076】新潟県 はまぐみ小児療育センターで利用者等の写真データを保存したUSBメモリを紛失しました 2023年2月20日


はまぐみ小児療育センターにおいて、利用者等の写真データを保存した公用のUSBメモリを紛失しました。

今後、同様の事案が発生することのないよう、対策を速やかに実施します。

1 事案概要

2月15日(水):当所の職員が、利用者と保護者が親子で写った写真を利用者に提供するため、写真データの入ったUSBメモリを所定の保管場所から取り出し、パソコンに接続して作業を行った後、USBメモリを保管場所に戻そうとした際に、USBメモリが見当たらず、紛失したことに気が付いた。
  • 2月15日(水)以降、作業した室内を入念に捜索したが発見できず、所内全体を含めて可能性のある場所を徹底的に捜索したが、発見できなかった。
  • 2月20日(月)、警察に遺失届を提出
  • 現在のところ、当該データの外部への流出等は確認されていない。
2 紛失した情報

利用者と保護者の写真データ(21組分)

3 対応

(1) 対象者に謝罪を行いました。
(2) 引き続きUSBメモリの捜索を行います。

4 今後の対策

(1) USBメモリの取扱いには細心の注意を払い、取り外しの際は、速やかに所定の場所へ戻すことを徹底します。
(2) 職員に対する情報セキュリティ教育を徹底します。

【セキュリティ事件簿#2023-063】ニプロ株式会社 不正アクセスを受けた当社中国子会社の基幹システム等の復旧に関するお知らせ 2023年2月22日

 

2 月 14 日付「当社中国子会社への不正アクセスの発生について」(以下、「第 1 報といいます。」)にて公表いたしました、当社中国子会社である尼普洛医療器械(合肥)有限公司(董事長:嶋田 勝則、以下「NMH」)への外部からの不正アクセスに関して、NMH の基幹システムサーバーをランサムウェア感染前の状態へ復元し、正常業務復旧に向かっていることをお知らせいたします。

なお、第1報でお知らせしましたとおり、本件では、当初より製品の製造・出荷については継続できており、また、当社および国内外グループ会社において直接的二次被害には及んでおりませんので、本件による当社連結業績への影響は軽微です。今後、調査を進めるなかで開示すべき事項が発生すれば、速やかに開示を行います。

お客さまをはじめ、関係者の皆さまにご迷惑およびご心配をおかけする事態となりましたこと、重ねてお詫び申し上げます。

リリース文アーカイブ

関連:【セキュリティ事件簿#2023-063】ニプロ株式会社 当社中国子会社への不正アクセスの発生について 2023年2月14日

週刊OSINT #2023-03号

 

今号ではTikTokとTelegramのコツ、様々なデータベースの構築に関するニュースをお届けします。

  • More on InfoRos
  • Sort for TikTok
  • Sock Puppets
  • Telegram Tip
  • Building Databases
  • WordPress Tip


2022-04号で、InfoRosに関するOpenFactoの報告書についてお話しました。先週、彼らはさらに多くの発見を含む、別のレポートを発表した。最初の報告書の後、InfoRosは少し沈黙していたが、しばらくして通常通り運営を再開した。このレポートは、興味深い発見があり、情報が地政学においていかに重要な役割を果たすかについて、よく理解できるものである。


ツール: Sort for TikTok

Brecht Castelが気の利いたツールを教えてくれました。これは、TikTokのプロフィール内のすべての動画を人気順で素早くソートできるChrome拡張機能です。これにより、最も人気のある動画に素早く焦点を当てることができます。アカウントのサイズにもよりますが、ワンクリックで数秒以内に動画をロードし、ソートすることができます。


メディア: Sock Puppets

TOCP Discordサーバーのユーザーᴋᵒᵍᵃᵐⁱが、ソックパペットの作成について語ったビデオを公開しました。彼は、オンラインサービスを使用して、テキスト認証を回避する方法について、いくつかのヒントを与えています。彼はまた、ソーシャルメディアのプロフィールを埋める方法についても手短に触れています。もちろん、このビデオで紹介されている以外にもソックパペットを作る方法はたくさんありますが、ソックパペットの経験がほとんどない人にとっては参考になるはずです。


小技: Telegram Tip

Telegram Desktopでは、自分がメンバーになっているグループや、参加していない公開グループのチャットメッセージをエクスポートすることができます。チャットメッセージをエクスポートした後、さまざまな方法で名前のリストを作成することができます。macOS や Linux を使用している場合、最も簡単な方法は、ダウンロードフォルダに移動し、コマンドラインを使用して、次のように固有のユーザー名のリストを作成することです。

cat messages* | grep -A1 "from_name" | cut -f1 -d "<" | sort -u > members.txt

これにより、以下のことが行われます。
  • cat は'messages'で始まるファイル名を読み上げます。
  • grep -A1  from_name を含む行を取得します。 
  • cut -f1 -f  < の後のテキストを切り取り、投稿された日付を削除します。
  • sort -u は、名前をソートし、ユニークな名前だけを残します。
  • > members.txt は、名前のリストをファイル members.txtに保存します。

これでは、Telegram IDのアカウント名は分からず、表示名のみが分かります。これらを取得するには、Telegram APIから情報を取得する他のテクニックを使用する必要があります。

サイト: Building Databases

2022年9月、データベースを構築する世界ではいくつかのことが変わりました。Emporisはオフラインになり、PhorioはSKYDBとして再スタートし、2022年11月にベータ版となったのです。SKYDBにはまだいくつかの問題があり、例えば、複数の都市がヒットしたときに正確な都市が表示されないなどです。


しかし、建物に関する情報を掲載しているウェブサイトはSKYDBだけではありません。ここでは、高さ、階数、場所などの建物情報を持つウェブサイトのリストを紹介します。


小技: Wordpress Tip

この小技はOSINTコミュニティの中ではすでに何年も前からよく知られていることです。
Wordpressのブログに潜り込むとき、APIが有効になっていれば、API経由でユーザーに関する情報を取得できることがあります。ユーザーのリストを見るには、URLを以下のように変更します。

{site}/wp-json/wp/v2/users

これは、特定のサイトにアカウントを持つ全員のJSONダンプを返し、さらに興味深い情報を明らかにするかもしれません。


以下のAPIの「エンドポイント」をチェックしてみるのもいいかもしれません(上の例のusersの部分を置き換えてみてください)。

APIエンドポイント情報
comments:公開されたすべてのコメント
media:ブログ内の全メディア
pages:静的ページを持つ情報
posts:公開されているすべてのブログ記事
users:'著者'のリスト

結果が多すぎる場合は、per_pageパラメータを追加して、自由にページ分割を追加してください。

{site}/wp-json/wp/v2/posts/?per_page=100&page=1


【セキュリティ事件簿#2023-075】日本大学 ノートパソコン及びUSBメモリの盗難に伴う個人情報漏えいについて 2023年2月20日


このたび、本学教員の個人所有のノートパソコン及びUSBメモリがパリ(フランス)で盗難被害に遭いました。現時点において、第三者への個人情報の流出及び不正使用等は確認されておりません。

当該ノートパソコン及びUSBメモリには、生物資源科学部に平成16年度から現在(令和4年度)までの期間に在籍していた方の個人データ271名分(学生証番号、学生氏名、成績評価及び令和2年度以降に提出されたレポート)及び国際関係学部に平成16年度から平成23年度までの期間に在籍していた方の個人データ384名分(学生証番号、学生氏名及び成績評価)が含まれておりました。

このような事態を招いたことにつきまして、御迷惑をお掛けした学生の皆様をはじめとする関係者の皆様に対しまして、心よりお詫び申し上げます。
 
本学では、今回の事態を重く受け止め、深く反省し、再発防止対策を早急に実施するとともに、教職員に対して、今一度、個人情報の適正な取扱いを周知徹底いたします。

【セキュリティ事件簿#2023-074】特定非営利活動法人きたうら花ねっと サイバー攻撃による被害について 2023年02月07日


日頃より、きたうら花ねっとのサービスをご利用いただき、誠にありがとうございます。

WEBサーバーで発生しているサイバー攻撃による被害および状況についてお知らせいたします。

2月4日(土)未明、きたうら花ねっとのWEBサーバーが不正アクセスを受け、ホームページの更新や閲覧等に影響が発生いたしました。
同日、対策チームを立ち上げ、状況の把握や対策の検討を開始したところ、身代金要求型ウィルス「ランサムウェア」によるものと判明し、現在復旧に取り組んでおります。
2月6日(月)には、秋田県警に被害の届出をしております。

なお、今回の「ランサムウェア」による被害に関して、情報漏えいは確認されておらず、メールサービス等にも影響はございません。

会員の皆様にご迷惑、ご心配をおかけしていることをお詫び申し上げます。

早急な復旧を目指し、チームで尽力しておりますので、ご理解のほどよろしくお願いいたします。

※「ランサムウェア」は、コンピューターが感染すると、保存しているデータを暗号化して、復元と引き換えに金銭を要求する悪質なプログラムで、世界各国で被害が相次いでおります。

【セキュリティ事件簿#2023-073】浜松ケーブルテレビ株式会社 モデム制御サーバーへの不正アクセスに関するご報告とお詫び 2023年2月16日


弊社の同軸インターネットサービスを提供するために利用しているケーブルモデムの制御サーバーに対する不正アクセスが確認されました。

弊社は本件の発覚後、当該サーバーを停止することで被害の拡大を防止するとともに、全容を解明すべく、外部の専門機関へ調査を依頼しておりました。

今般、調査結果に基づいた最終報告を受け取り、これにより判明した本件に関する被害範囲につきまして、下記の通りご報告申し上げますとともに、ご心配をおかけいたしますことを深くお詫び申し上げます。

1.経緯ならびに不正アクセスの概要
  発生日時:2022年11月21日19 時58分
  終息日時:2022年11月29日18時29分

2022年11月21日 同軸インターネットサービスを管理するモデム制御サーバーの更改作業を実施。
2022年11月29日 外部からの不正アクセスの可能性を確認。ネットワークからサーバーを切り離し症状は終息。
2022年11月30日 旧サーバーへ切り戻し、更改作業前の状態へ戻す。

その後、原因と影響範囲の特定のため外部の専門機関へ調査を依頼いたしました。原因は新サーバーへのセキュリティ設定の不備であり、XorDDoSと呼ばれるマルウェアが不特定のサイトに向けてDDos攻撃を行っていたものと判明いたしました。当該サーバー内に保存されていた情報が外部へ流出した可能性については、低いものの完全には否定できないとの報告を受け取りました。

2.流出した可能性のある情報
  項目:顧客ID(※1)、住所
  件数:最大22,671件
  対象:同軸インターネットをご利用いただいているお客さま

  ※1  顧客IDは弊社サービスご契約者様へ自動採番で付与される管理用の通番であり、
     顧客IDの流出による実質的な被害はございません。
     また、氏名・電話番号・決済情報・その他のご契約内容については、別ネット
     ワーク上のサーバーで管理されているため、顧客ID・住所から個人を特定する
     ことや、契約・決済などの情報の流出の恐れはございません。

3.本件に関する問い合わせ窓口
  浜松ケーブルテレビ株式会社 技術部
  電話番号:0120-80-6170 受付時間(平日9:30~17:30 )

今後、このような事態が発生しないよう再発防止を徹底するとともに、情報管理の強化ならびに徹底に努めてまいります。

この度は、お客さまへ多大なご迷惑とご心配をおかけいたしますこと、また、影響範囲の特定に時間を要しご報告が遅くなりましたこと、重ねて深くお詫び申し上げます。

【セキュリティ事件簿#2023-072】タカラベルモント株式会社 不正アクセスによる一部情報流出の可能性のお知らせとお詫び 2023年2月20日


弊社がSALONPOS LinQサービスおよびSALONPOS LinQ2サービス(以下「SALONPOS LinQサービス」と総称します。)を提供するために利用している、富士通株式会社のFENICSインターネットサービスのネットワークを構成する一部機器が不正アクセスを受け、当該機器から外部に向けて不正な通信があった事実が判明いたしました。

その後の調査の結果、SALONPOS LinQサービスのご利用による通信データ(個人情報を含む。)の一部について、外部に流出した可能性を完全に否定することのできる状況にはないとの判断に至りましたので、以下のとおり、お知らせいたします。

この度は、SALONPOS LinQサービスのご利用者様をはじめとした関係者の皆様にご迷惑とご心配をおかけすることになり、深くお詫び申し上げます。

なお、現時点において、本件による情報の不正利用などの事実は確認されておりません。

また、このお知らせは現時点で確認できた情報によるものですが、今後、新たな事実が判明した場合は、必要に応じて、弊社ホームページなどで報告させていただきます。

1.本件の概要

2022年12月22日に富士通株式会社から一報を受け、その後、追加説明を受けるなどした結果、同社のFENICSインターネットサービスのネットワークを構成する一部機器が不正アクセスを受け、当該機器から外部に向けて不正な通信のあったことを確認し、更に、その後の調査により、弊社のSALONPOS LinQサービスのご利用による通信データ(個人情報を含む)の一部が外部に流出した可能性のあることを確認いたしました。

なお、不正な通信の発信元となっていたネットワークの一部機器に対しては、富士通株式会社において、同年12月23日までに必要な対策が講じられております。

2.外部流出した可能性のある個人情報の内容

SALONPOS LinQサービスご利用の理美容サロン様において不正な通信のあった時間に使用されていたPOS端末のキャッシャー画面および受付台帳画面に表示されていた、ご来店顧客様およびスタッフ様に関わる情報が外部に流出した可能性があります。

氏名、電話番号、メールアドレス、生年月日、住所などの個人情報を含みますが、クレジットカード情報は含まれません。

3.原因と対策

富士通株式会社のネットワーク機器が不正アクセスを受けた原因については、同社において調査中ですが、当該機器が再び不正な通信の発信元とならないよう、同社において、既に必要な対策が講じられています。

弊社におきましても、SALONPOS LinQサービスにおいてなされる通信および情報に対する技術的な安全管理措置の構築に努めておりますが、お客様に安心してサービスをご利用いただけるように、更に、セキュリティ対策の強化に取り組んでまいります。

なお、本件については、個人情報保護委員会に対し必要な報告を実施しております。

4.二次被害に対するご注意

本日現在、本件による二次被害の発生は確認しておりません。

万一、不審な電子メールが届いた場合は、メールを開かない、リンクにアクセスしない、添付ファイルを開かない等の対応をとっていただくようにお願いいたします。

リリース文(アーカイブ)