【TryHackMeウォークスルー】Windows PowerShell

 

Introduction

ようこそ!

このページにたどり着いたということは、PowerShell の魅力を耳にして、もっと深く知りたいと思っているか、あるいは「コマンドラインモジュール」の第一章(Windowsコマンドライン)から航海してきたのかもしれません。

いずれにせよ、これからWindowsシステムの秘密を解き明かす旅が始まります。さあ、出航の時です!

学習目標

このルームは「コマンドラインモジュール」の第2章にあたります。PowerShell についての入門的な内容を扱っており、Windows向けに開発された2番目のコマンドラインツールです。

  • PowerShellとは何か、その機能を学ぶ
  • PowerShellの基本的な構文や構造を理解する
  • 基本的なPowerShellコマンドを実行してみる
  • PowerShellがサイバーセキュリティ分野でどのように活用されているかを知る

What Is PowerShell

PowerShellは、Microsoftが提供するタスク自動化と構成管理のためのツールです。コマンドラインシェル、スクリプト言語、構成管理フレームワークの3つの要素で構成されており、.NETフレームワークの上に作られています。

従来のコマンドラインツールとは異なり、PowerShellは「オブジェクト指向」で動作します。これにより、複雑なデータの操作やシステムとの連携がしやすくなっています。もともとはWindows専用でしたが、現在ではmacOSやLinuxにも対応しており、さまざまな環境で利用できます。

PowerShellの歴史

PowerShellは、従来のコマンド(cmd.exeやバッチファイル)では対応しきれなかった複雑な管理作業を効率化するために、2000年代初頭に開発されました。

開発の中心となったのは、MicrosoftのエンジニアであるJeffrey Snoverです。彼は、Windowsでは構造化データとAPIが中心である一方、Unixではテキストが中心であるという違いに注目しました。そして、.NETの機能を活かしつつ、スクリプトでも扱いやすい「オブジェクト指向のシェル」を作るという発想から、PowerShellが生まれました。

2006年に最初のバージョンがリリースされ、その後、IT環境の多様化に対応する形で、2016年にはWindows以外のOSでも動作する「PowerShell Core(オープンソース)」が登場しました。

PowerShellの特徴

PowerShellの特徴のひとつは「オブジェクトを扱えること」です。

たとえば、車を例にすると「色」「モデル」「燃料の量」などの情報がプロパティ(属性)で、「走る」「クラクションを鳴らす」「給油する」といった操作がメソッド(動作)になります。PowerShellでも同様に、ファイル名やサイズ、ユーザー情報などをプロパティとして持ち、コピーや削除といった操作をメソッドとして実行できます。

従来のコマンドラインではすべての出力が文字列(テキスト)でしたが、PowerShellではコマンドを実行するとオブジェクトが返ってきます。そのため、余計な文字列の加工をせずに、効率的に情報を操作できます。

今後のセクションでは、PowerShellで使えるコマンド(cmdlet)について、より詳しく見ていきます。

What do we call the advanced approach used to develop PowerShell?

object-oriented

PowerShell Basics

PowerShellの学習を進める前に、ラボ環境に接続しましょう。

PowerShellの起動方法

PowerShellは、利用する環境や目的に応じて、いくつかの方法で起動できます。Windowsのグラフィカルユーザーインターフェース(GUI)から操作する場合、主な起動方法は以下の通りです。

・スタートメニューから

スタートメニューの検索バーに「powershell」と入力し、表示された「Windows PowerShell」または「PowerShell」をクリックします。

・「ファイル名を指定して実行」から

Windowsキー + R を押して「ファイル名を指定して実行」ダイアログを開き、「powershell」と入力して Enter キーを押します。

・エクスプローラーから

任意のフォルダーを開き、アドレスバーに「powershell」と入力して Enter キーを押すと、そのフォルダーをカレントディレクトリとしてPowerShellが起動します。

・タスクマネージャーから

タスクマネージャーを開き、「ファイル」→「新しいタスクの実行」を選択し、「powershell」と入力して Enter キーを押します。

また、コマンドプロンプト(cmd.exe)を使っている場合は、「powershell」と入力して Enter キーを押すことでPowerShellを起動できます。

Terminal
captain@THEBLACKPEARL C:\Users\captain>powershell
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

Install the latest PowerShell for new features and improvements! https://aka.ms/PSWindows

PS C:\Users\captain> 

PowerShellが起動すると、現在の作業ディレクトリを示す「PS」プロンプトが表示されます(「PS」はPowerShellの略です)。

基本構文:動詞-名詞の形式

先述のとおり、PowerShellのコマンドは「コマンドレット(cmdlet)」と呼ばれます。従来のWindowsコマンドに比べて、cmdletはより強力で、複雑なデータの操作も可能です。

PowerShellのcmdletは、基本的に「動詞-名詞(Verb-Noun)」の形式で命名されています。この命名規則により、それぞれのコマンドが何をするのかが直感的に理解しやすくなっています。

・動詞(Verb):どのような動作を行うか

・名詞(Noun):その動作の対象となるもの

例:

Get-Content

→ ファイルの内容を取得し、コンソールに表示します。

Set-Location

→ 作業ディレクトリ(カレントディレクトリ)を変更します。

このように、PowerShellのコマンドは一貫した構文を持っており、学習しやすくなっています。

基本的なコマンドレット(cmdlet)

現在のPowerShellセッションで使用できるコマンドレット、関数、エイリアス、スクリプトを一覧表示するには、次のコマンドを実行します。

 Get-Command

このコマンドは、どのような操作が可能かを確認するための基本的な手段であり、PowerShellを使い始める際に非常に役立ちます。

Terminal
PS C:\Users\captain> Get-Command

CommandType     Name                                               Version    Source 
-----------     ----                                               -------    ------ 

Alias           Add-AppPackage                                     2.0.1.0    Appx                                                                                                                                       
Alias           Add-AppPackageVolume                               2.0.1.0    Appx                                                                                                                                       
Alias           Add-AppProvisionedPackage                          3.0        Dism                                                                                                                                       
[...]
Function        A:
Function        Add-BCDataCacheExtension                           1.0.0.0    BranchCache                                                                                                                                
Function        Add-DnsClientDohServerAddress                      1.0.0.0    DnsClient
[...]
Cmdlet          Add-AppxPackage                                    2.0.1.0    Appx
Cmdlet          Add-AppxProvisionedPackage                         3.0        Dism                                                                                                                                       
Cmdlet          Add-AppxVolume                                     2.0.1.0    Appx
[...]

このコマンドレットによって取得される各コマンド情報(CommandInfoオブジェクト)には、いくつかの基本的な情報(プロパティ)がコンソールに表示されます。

表示されたプロパティの値を使って、コマンドの一覧を絞り込むことも可能です。たとえば、「関数(function)」タイプのコマンドだけを表示したい場合は、以下のように入力します。

 Get-Command -CommandType “Function”

このように条件を指定することで、必要なコマンドだけを効率よく確認できます。

Terminal
PS C:\Users\captain> Get-Command -CommandType "Function"

CommandType     Name                                               Version    Source                                                                                                                                     
-----------     ----                                               -------    ------
Function        A:
Function        Add-BCDataCacheExtension                           1.0.0.0    BranchCache
Function        Add-DnsClientDohServerAddress                      1.0.0.0    DnsClient
Function        Add-DnsClientNrptRule                              1.0.0.0    DnsClient
[...]

今後の課題では、cmdletの出力をより効率的にフィルタする方法について学んでいきます。

もう一つ、ぜひ覚えておきたい重要なコマンドレットが「Get-Help」です。

このコマンドは、各cmdletの使い方やパラメータ、実行例などの詳しい情報を表示してくれるもので、PowerShellの使い方を学ぶうえで欠かせない存在です。

PowerShellコマンドの使い方に迷ったときは、まずこのGet-Helpを使うのが基本です。

Terminal
PS C:\Users\captain> Get-Help Get-Date

NAME
    Get-Date

SYNOPSIS
    Gets the current date and time.

SYNTAX
    Get-Date [[-Date] <System.DateTime>] [-Day <System.Int32>] [-DisplayHint {Date | Time | DateTime}] [-Format <System.String>] [-Hour <System.Int32>] [-Millisecond <System.Int32>] [-Minute <System.Int32>] [-Month <System.Int32>] [-Second <System.Int32>] [-Year <System.Int32>] [<CommonParameters>]

    Get-Date [[-Date] <System.DateTime>] [-Day <System.Int32>] [-DisplayHint {Date | Time | DateTime}] [-Hour <System.Int32>] [-Millisecond <System.Int32>] [-Minute <System.Int32>] [-Month <System.Int32>] [-Second <System.Int32>] [-UFormat <System.String>] [-Year <System.Int32>] [<CommonParameters>]

DESCRIPTION
        The `Get-Date` cmdlet gets a DateTime object that represents the current date or a date that you specify. `Get-Date` can format the date and time in several .NET and UNIX formats. You can use `Get-Date` to generate a date or time character string, and then send the string to other cmdlets or programs.
        
        `Get-Date` uses the current culture settings of the operating system to determine how the output is formatted. To view your computer's settings, use `(Get-Culture).DateTimeFormat`.

RELATED LINKS
    Online Version: https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/get-date?view=powershell-5.1&WT.mc_id=ps-gethelp
    ForEach-Object
    Get-Culture
    Get-Member
    New-Item
    New-TimeSpan
    Set-Date
    Set-Culture xref:International.Set-Culture

REMARKS
    To see the examples, type: "get-help Get-Date -examples".
    For more information, type: "get-help Get-Date -detailed".
    For technical information, type: "get-help Get-Date -full".
    For online help, type: "get-help Get-Date -online".

前述の結果にあるように、Get-Help コマンドは、基本構文にオプションを追加することで、さらに有用な情報を得られることを教えてくれます。たとえば、「-examples」というオプションを付けることで、そのcmdletがどのように使われるかの具体的な例を確認できます。

PowerShellは、既存のWindowsユーザーやITエンジニアが移行しやすいように、「エイリアス(alias)」と呼ばれる別名(ショートカット)を多数用意しています。これは、従来のコマンドラインに慣れているユーザーにとって非常に便利な機能です。

エイリアスの一覧を確認するには、次のコマンドを使います。

 Get-Alias

たとえば、「dir」は「Get-ChildItem」のエイリアスであり、「cd」は「Set-Location」のエイリアスです。つまり、昔ながらのコマンドに近い書き方でもPowerShellを扱えるようになっています。

Terminal
PS C:\Users\captain> Get-Alias

CommandType     Name                                               Version    Source 
-----------     ----                                               -------    ------
Alias           % -> ForEach-Object
Alias           ? -> Where-Object
Alias           ac -> Add-Content
Alias           asnp -> Add-PSSnapin
Alias           cat -> Get-Content
Alias           cd -> Set-Location
Alias           CFS -> ConvertFrom-String                          3.1.0.0    Microsoft.PowerShell.Utility
Alias           chdir -> Set-Location 
Alias           clc -> Clear-Content
Alias           clear -> Clear-Host
[...]

コマンドレットの入手方法とダウンロードについて

PowerShellの特徴のひとつに、オンラインリポジトリから追加のコマンドレットをダウンロードして、機能を拡張できる点があります。

※注意:このセクションで紹介するコマンドレットを使うには、インターネット接続が必要です。

PowerShell Galleryのようなオンラインリポジトリでモジュール(複数のコマンドレットを含むパッケージ)を検索するには、次のコマンドを使います。

 Find-Module

モジュール名がはっきり分からない場合は、部分的な名前でも検索できます。「Name」プロパティを指定し、モジュール名の一部のあとにワイルドカード(*)を付けて検索することで、似た名前のモジュールを探せます。

標準的なPowerShellの書き方は次のとおりです。

 コマンドレット名 -プロパティ名 "部分名*"

モジュール名をうろ覚えのときなどに便利な方法です。

Terminal
PS C:\Users\captain> Find-Module -Name "PowerShell*"   

Version    Name                                Repository           Description 
-------    ----                                ----------           ----------- 
0.4.7      powershell-yaml                     PSGallery            Powershell module for serializing and deserializing YAML

2.2.5      PowerShellGet                       PSGallery            PowerShell module with commands for discovering, installing, updating and publishing the PowerShell artifacts like Modules, DSC Resources, Role Capabilities and Scripts.                                                   
1.0.80.0   PowerShell.Module.InvokeWinGet      PSGallery            Module to Invoke WinGet and parse the output in PSOjects

0.17.0     PowerShellForGitHub                 PSGallery            PowerShell wrapper for GitHub API  

目的のモジュールが見つかったら、Install-Module コマンドを使ってリポジトリからダウンロードおよびインストールすることができます。これにより、そのモジュールに含まれる新しいコマンドレットが使用可能になります。

Terminal
PS C:\Users\captain> Install-Module -Name "PowerShellGet"

Untrusted repository
You are installing the modules from an untrusted repository. If you trust this repository, change its InstallationPolicy value by running the Set-PSRepository cmdlet. Are you sure you want to install the modules from 'PSGallery'?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "N"): 

これらの基本的なツールを身につけたところで、いよいよPowerShellのさまざまな機能を探っていきましょう。

Answer the questions below

How would you retrieve a list of commands that start with the verb Remove? [for the sake of this question, avoid the use of quotes (" or ') in your answer]

Get-Command -Name Remove*

What cmdlet has its traditional counterpart echo as an alias?

Write-Output

What is the command to retrieve some example usage for the cmdlet New-LocalUser?

Get-Help New-LocalUser -examples

Navigating the File System and Working with Files

PowerShellには、ファイルシステムの移動やファイル操作に使えるコマンドレットが多数用意されています。これらの多くは、従来のWindowsコマンドライン(CLI)にあるコマンドと似た機能を持っています。

たとえば、コマンドプロンプトの「dir」や、Unix系システムの「ls」に相当するのが「Get-ChildItem」です。このコマンドレットは、-Path パラメータで指定した場所のファイルやフォルダーを一覧表示します。

ディレクトリの中身を確認したいときに使える便利なコマンドです。Pathを省略した場合は、現在の作業ディレクトリの内容が表示されます。

Terminal
PS C:\Users\captain> Get-ChildItem 

    Directory: C:\Users\captain

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-r---          5/8/2021   9:15 AM                Desktop
d-r---          9/4/2024  10:58 AM                Documents
d-r---          5/8/2021   9:15 AM                Downloads
d-r---          5/8/2021   9:15 AM                Favorites
d-r---          5/8/2021   9:15 AM                Links
d-r---          5/8/2021   9:15 AM                Music
d-r---          5/8/2021   9:15 AM                Pictures
d-----          5/8/2021   9:15 AM                Saved Games
d-r---          5/8/2021   9:15 AM                Videos

別のディレクトリへ移動したい場合は、「Set-Location」コマンドレットを使用します。これは現在の作業ディレクトリを変更し、指定したパスに移動するためのコマンドです。コマンドプロンプトで使う「cd」と同じような働きをします。

Terminal
PS C:\Users\captain> Set-Location -Path ".\Documents"
PS C:\Users\captain\Documents> 

従来のWindowsコマンドラインでは、ディレクトリやファイルなどの項目ごとに別々のコマンドを使って作成・管理していましたが、PowerShellではそれらをひとつのコマンドレットでシンプルに扱えるようになっています。

新しい項目を作成するには、「New-Item」コマンドレットを使用します。作成する項目のパスと、ファイルかディレクトリかといった種類を指定する必要があります。

Terminal
PS C:\Users\captain\Documents> New-Item -Path ".\captain-cabin\captain-wardrobe" -ItemType "Directory"

    Directory: C:\Users\captain\Documents\captain-cabin

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----          9/4/2024  12:20 PM                captain-wardrobe

PS C:\Users\captain\Documents> New-Item -Path ".\captain-cabin\captain-wardrobe\captain-boots.txt" -ItemType "File"     

    Directory: C:\Users\captain\Documents\captain-cabin\captain-wardrobe

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----          9/4/2024  11:46 AM              0 captain-boots.txt  

同様に、「Remove-Item」コマンドレットを使えば、ディレクトリとファイルの両方を削除できます。従来のWindowsコマンドラインでは、「rmdir」と「del」という別々のコマンドを使い分けていましたが、PowerShellではひとつのコマンドで対応できます。

Terminal
PS C:\Users\captain\Documents> Remove-Item -Path ".\captain-cabin\captain-wardrobe\captain-boots.txt"
PS C:\Users\captain\Documents> Remove-Item -Path ".\captain-cabin\captain-wardrobe" 

ファイルやディレクトリをコピーしたり移動したりするには、それぞれ「Copy-Item」(copyコマンドに相当)と「Move-Item」(moveコマンドに相当)を使います。どちらもファイルとディレクトリの両方に対応しています。

Terminal
PS C:\Users\captain\Documents> Copy-Item -Path .\captain-cabin\captain-hat.txt -Destination .\captain-cabin\captain-hat2.txt
PS C:\Users\captain\Documents> Get-ChildItem -Path ".\captain-cabin\" 

    Directory: C:\Users\captain\Documents\captain-cabin

Mode                 LastWriteTime         Length Name 
----                 -------------         ------ ----
d-----          9/4/2024  12:50 PM                captain-wardrobe
-a----          9/4/2024  12:50 PM              0 captain-boots.txt
-a----          9/4/2024  12:14 PM            264 captain-hat.txt
-a----          9/4/2024  12:14 PM            264 captain-hat2.txt
-a----          9/4/2024  12:37 PM           2116 ship-flag.txt 

最後に、ファイルの内容を読み取って表示するには、「Get-Content」コマンドレットを使います。これは、コマンドプロンプトの「type」コマンドや、Unix系システムの「cat」に相当する動作をします。

Terminal
PS C:\Users\captain\Documents\captain-cabin> Get-Content -Path ".\captain-hat.txt"
 _           _   
| |         | |
| |__   __ _| |_
| '_ \ / _ | __|
| | | | (_| | |_
|_| |_|\__,_|\__|

Don't touch my hat!

Answer the questions below

What cmdlet can you use instead of the traditional Windows command type?

Get-Content

What PowerShell command would you use to display the content of the "C:\Users" directory? [for the sake of this question, avoid the use of quotes (" or ') in your answer]

Get-ChildItem -Path C:\Users

How many items are displayed by the command described in the previous question?

4

Piping, Filtering, and Sorting Data

パイプ(piping)は、コマンドライン環境でよく使われるテクニックのひとつで、あるコマンドの出力結果を、次のコマンドの入力として渡す方法です。これにより、複数の処理を連続して実行することができ、データが一連のコマンドの中を流れていくような仕組みになります。パイプは「|」という記号で表され、WindowsのコマンドラインやUnix系のシェルでも広く使われています。

PowerShellでは、このパイプ処理がさらに強力になっており、単なるテキストではなく「オブジェクト」を渡すことができます。オブジェクトは、データだけでなく、そのデータに関する属性(プロパティ)や操作(メソッド)も含んでいます。

たとえば、あるディレクトリ内のファイル一覧を取得して、それをサイズ順に並べ替えたい場合は、次のようなコマンドをPowerShellで実行します。

 Get-ChildItem | Sort-Object Length

このように、パイプを使うことで処理の流れを効率的に構築できます。

Terminal
PS C:\Users\captain\Documents\captain-cabin> Get-ChildItem | Sort-Object Length

    Directory: C:\Users\captain\Documents\captain-cabin

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----          9/4/2024  12:50 PM              0 captain-boots.txt
-a----          9/4/2024  12:14 PM            264 captain-hat2.txt
-a----          9/4/2024  12:14 PM            264 captain-hat.txt
-a----          9/4/2024  12:37 PM           2116 ship-flag.txt
d-----          9/4/2024  12:50 PM                captain-wardrobe

この例では、Get-ChildItem がファイルをオブジェクトとして取得し、パイプ(|)を使ってそれらのオブジェクトを Sort-Object に渡します。Sort-Object は、そのオブジェクトの Length(サイズ)プロパティを基に並べ替えを行います。

このように、PowerShellではオブジェクトを扱うことで、より詳細で柔軟なコマンドの組み合わせが可能になります。

上記の例では、Sort-Object コマンドレットを使って、指定したプロパティを基準にオブジェクトを並べ替えました。PowerShell にはこれ以外にも、パイプと組み合わせて使える便利なコマンドレットが多数用意されており、高度なデータ操作や分析が可能です。

特定の条件に合致するオブジェクトだけを抽出(フィルタ)したい場合は、「Where-Object」コマンドレットを使います。

たとえば、あるディレクトリ内の .txt ファイルだけを一覧表示したい場合は、次のように入力します。

 Get-ChildItem | Where-Object {$_.Extension -eq ".txt"}

このように、条件を指定することで、目的のファイルやデータだけを効率よく抽出できます。

Terminal
PS C:\Users\captain\Documents\captain-cabin> Get-ChildItem | Where-Object -Property "Extension" -eq ".txt" 

    Directory: C:\Users\captain\Documents\captain-cabin

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----          9/4/2024  12:50 PM              0 captain-boots.txt
-a----          9/4/2024  12:14 PM            264 captain-hat.txt
-a----          9/4/2024  12:14 PM            264 captain-hat2.txt
-a----          9/4/2024  12:37 PM           2116 ship-flag.txt

上記の例では、Where-Object コマンドレットがファイルの Extension プロパティ(拡張子)を基にフィルタを行い、拡張子が ".txt" のファイルだけを表示しています。

ここで使われている「-eq」演算子は、「等しい(equal)」という意味で、Bash や Python など他のスクリプト言語にも共通する比較演算子のひとつです。

PowerShellのフィルタ機能の幅広さを示すために、よく使われる比較演算子をいくつか紹介します。

 -ne:等しくない(not equal)
  指定した条件に合わないオブジェクトを除外するときに使います。

 -gt:より大きい(greater than)
  指定された値より大きいオブジェクトだけを抽出します。等しいものは含まれません(厳密な比較)。

 -ge:以上(greater than or equal to)
  -gt と -eq の組み合わせで、指定値以上のオブジェクトを抽出します(非厳密)。

 -lt:より小さい(less than)
  指定された値より小さいオブジェクトだけを抽出します。等しいものは含まれません。

 -le:以下(less than or equal to)
  -lt と -eq の組み合わせで、指定値以下のオブジェクトを抽出します。

さらに、特定のパターンに一致するプロパティを基にフィルタすることもできます。その際は「-like」演算子を使います。以下にその例を示します。

Terminal
PS C:\Users\captain\Documents\captain-cabin> Get-ChildItem | Where-Object -Property "Name" -like "ship*"  

    Directory: C:\Users\captain\Documents\captain-cabin

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----          9/4/2024  12:37 PM           2116 ship-flag.txt

次に紹介するフィルタ用のコマンドレット「Select-Object」は、オブジェクトから特定のプロパティだけを抜き出したり、出力されるオブジェクトの数を制限したりするために使います。

必要な情報だけを表示したいときに、出力内容を絞り込むのに便利なコマンドレットです。

Terminal
PS C:\Users\captain\Documents\captain-cabin> Get-ChildItem | Select-Object Name,Length 

Name              Length
----              ------
captain-wardrobe
captain-boots.txt 0
captain-hat.txt   264
captain-hat2.txt  264
ship-flag.txt     2116

PowerShellのパイプラインは、2つのコマンドレットだけでなく、さらに多くのコマンドをつなげて拡張することができます。

練習として、次のような課題にチャレンジしてみましょう。

C:\Users\captain\Documents\captain-cabin フォルダー内で、最もサイズの大きいファイルを表示するようなコマンドレットのパイプラインを作ってみてください。

この課題では、並べ替えやフィルタを活用して、出力結果を目的の情報に絞り込む練習になります。

課題の答え
Get-ChildItem | Sort-Object Length -Descending | Select-Object -First 1

    Directory: C:\Users\captain\Documents\captain-cabin

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----          9/4/2024  12:37 PM           2116 ship-flag.txt

今回紹介するフィルタ系コマンドレットの最後は「Select-String」です。

このコマンドレットは、ファイル内のテキストパターンを検索するために使われます。Unix系システムの「grep」や、Windowsのコマンドプロンプトにある「findstr」と同じような働きをします。

ログファイルやドキュメントの中から特定の内容を探したいときによく使われる便利なコマンドレットです。

Terminal
PS C:\Users\captain\Documents\captain-cabin> Select-String -Path ".\captain-hat.txt" -Pattern "hat" 

captain-hat.txt:8:Don't touch my hat!

Select-String コマンドレットは、正規表現(regex)に完全対応しています。

この高度な機能を使うことで、より複雑なパターンでの検索が可能になり、ファイル内のテキストデータを柔軟かつ強力に調査・分析することができます。

Answer the questions below

How would you retrieve the items in the current directory with size greater than 100? [for the sake of this question, avoid the use of quotes (" or ') in your answer]

Get-ChildItem | Where-Object -Property Length -gt 100

System and Network Information

PowerShellは、システム管理者やIT技術者のために、より強力な自動化および管理ツールが必要とされていたことを背景に開発されました。

そのため、システムの構成やネットワーク設定などに関する詳細な情報を取得できるコマンドレットが数多く用意されています。

その中のひとつ「Get-ComputerInfo」は、オペレーティングシステムの情報、ハードウェアの仕様、BIOSの詳細など、システム全体の構成情報を一括で取得できるコマンドレットです。

従来の「systeminfo」コマンドも似た機能を持ちますが、取得できる情報は限定的であり、「Get-ComputerInfo」の方がはるかに多くの詳細を提供します。

Terminal
PS C:\Users\captain> Get-ComputerInfo

WindowsBuildLabEx                                       : 20348.859.amd64fre.fe_release_svc_prod2.220707-1832
WindowsCurrentVersion                                   : 6.3
WindowsEditionId                                        : ServerDatacenter
WindowsInstallationType                                 : Server Core
WindowsInstallDateFromRegistry                          : 4/23/2024 6:36:29 PM
WindowsProductId                                        : 00454-60000-00001-AA763
WindowsProductName                                      : Windows Server 2022 Datacenter
[...]

ローカルユーザーアカウントの管理や、システムのセキュリティ設定を把握するうえで重要なのが「Get-LocalUser」コマンドレットです。

このコマンドを使うと、システム上に存在するすべてのローカルユーザーアカウントを一覧表示できます。

標準の出力では、各ユーザーについて「ユーザー名」「アカウントの状態」「説明」などの情報が表示されます。

Terminal
PS C:\Users\captain> Get-LocalUser

Name               Enabled Description 
----               ------- -----------
Administrator      True    Built-in account for administering the computer/domain
captain            True    The beloved captain of this pirate ship.
DefaultAccount     False   A user account managed by the system.
Guest              False   Built-in account for guest access to the computer/domain
WDAGUtilityAccount False   A user account managed and used by the system for Windows Defender Application Guard scenarios.

従来の「ipconfig」コマンドと同様に、システムのネットワーク構成に関する詳細な情報を取得するためのコマンドレットがいくつか用意されています。

そのひとつが「Get-NetIPConfiguration」です。このコマンドレットを使うと、IPアドレス、DNSサーバー、デフォルトゲートウェイなど、ネットワークインターフェースに関する詳細な情報を確認することができます。

Terminal
PS C:\Users\captain> Get-NetIPConfiguration

InterfaceAlias       : Ethernet
InterfaceIndex       : 5
InterfaceDescription : Amazon Elastic Network Adapter
NetProfile.Name      : Network 3
IPv4Address          : 10.10.178.209
IPv6DefaultGateway   :
IPv4DefaultGateway   : 10.10.0.1
DNSServer            : 10.0.0.2

ネットワークインターフェースに割り当てられているIPアドレスの詳細を確認したい場合は、「Get-NetIPAddress」コマンドレットを使用します。

このコマンドレットを実行すると、現在アクティブでないものも含めて、システムに設定されているすべてのIPアドレスの情報が表示されます。

Terminal
PS C:\Users\captain> Get-NetIPAddress

IPAddress         : fe80::3fef:360c:304:64e%5
InterfaceIndex    : 5
InterfaceAlias    : Ethernet
AddressFamily     : IPv6
Type              : Unicast
PrefixLength      : 64
PrefixOrigin      : WellKnown
SuffixOrigin      : Link
AddressState      : Preferred
ValidLifetime     : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource      : False
PolicyStore       : ActiveStore

IPAddress         : ::1
InterfaceIndex    : 1
InterfaceAlias    : Loopback Pseudo-Interface 1
AddressFamily     : IPv6
[...]

IPAddress         : 10.10.178.209
InterfaceIndex    : 5
InterfaceAlias    : Ethernet
AddressFamily     : IPv4
[...]

IPAddress         : 127.0.0.1
InterfaceIndex    : 1
InterfaceAlias    : Loopback Pseudo-Interface 1
AddressFamily     : IPv4
[...]

これらのコマンドレットを使うことで、IT担当者は重要なシステム情報やネットワーク情報をコマンドラインから素早く取得できます。

その結果、ローカルマシンだけでなく、リモートマシンの監視や管理もより効率的に行えるようになります。

Answer the questions below

Other than your current user and the default "Administrator" account, what other user is enabled on the target machine?

p1r4t3

This lad has hidden his account among the others with no regard for our beloved captain! What is the motto he has so bluntly put as his account's description?

A merry life and a short one.

Now a small challenge to put it all together. This shady lad that we just found hidden among the local users has his own home folder in the "C:\Users" directory. 

Can you navigate the filesystem and find the hidden treasure inside this pirate's home?

THM{p34rlInAsh3ll}

Real-Time System Analysis

より高度なシステム情報、特に実行中のプロセスやサービス、アクティブなネットワーク接続といった動的な情報を取得するには、静的なマシン情報とは異なる一連のコマンドレットを活用することができます。

そのひとつ「Get-Process」は、現在実行中のすべてのプロセスを詳細に表示し、CPU使用率やメモリ使用量なども確認できます。システムの監視やトラブルシューティングに非常に便利なコマンドレットです。

Terminal
PS C:\Users\captain> Get-Process

Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName 
-------  ------    -----      -----     ------     --  -- -----------
     67       5      872        500       0.06   2340   0 AggregatorHost
     55       5      712       2672       0.02   3024   0 AM_Delta_Patch_1.417.483.0
    309      13    18312       1256       0.52   1524   0 amazon-ssm-agent
     78       6     4440        944       0.02    516   0 cmd
     94       7     1224       1744       0.31    568   0 conhost
[...]

同様に「Get-Service」コマンドレットを使うと、システム上のサービスの状態に関する情報を取得できます。たとえば、どのサービスが実行中か、停止中か、一時停止中かといった情報が確認できます。

このコマンドは、システム管理者によるトラブルシューティングに広く使われているだけでなく、フォレンジックの現場でも、異常なサービスがインストールされていないかを調べる目的で活用されています。

Terminal
PS C:\Users\captain> Get-Service

Status   Name               DisplayName                           
------   ----               -----------
Stopped  Amazon EC2Launch   Amazon EC2Launch
Running  AmazonSSMAgent     Amazon SSM Agent
Stopped  AppIDSvc           Application Identity
Running  BFE                Base Filtering Engine
Running  CertPropSvc        Certificate Propagation
Stopped  ClipSVC            Client License Service (ClipSVC)
[...]

アクティブなネットワーク接続を監視するには、「Get-NetTCPConnection」コマンドレットを使います。

このコマンドレットは、現在のTCP接続を一覧表示し、ローカルおよびリモートの接続先情報を確認することができます。

インシデント対応やマルウェア解析の場面でも非常に役立つコマンドで、外部の攻撃者が管理するサーバーとの隠れた接続やバックドアの存在を発見する手がかりになります。

Terminal
PS C:\Users\captain> Get-NetTCPConnection

LocalAddress        LocalPort RemoteAddress       RemotePort State       AppliedSetting OwningProcess 
------------        --------- -------------       ---------- -----       -------------- -------------
[...]
::                  22        ::                  0          Listen                     1444          
10.10.178.209       49695     199.232.26.172      80         TimeWait                   0
0.0.0.0             49668     0.0.0.0             0          Listen                     424
0.0.0.0             49667     0.0.0.0             0          Listen                     652
0.0.0.0             49666     0.0.0.0             0          Listen                     388
0.0.0.0             49665     0.0.0.0             0          Listen                     560
0.0.0.0             49664     0.0.0.0             0          Listen                     672           
0.0.0.0             3389      0.0.0.0             0          Listen                     980
10.10.178.209       139       0.0.0.0             0          Listen                     4
0.0.0.0             135       0.0.0.0             0          Listen                     908
10.10.178.209       22        10.14.87.60         53523      Established Internet       1444
0.0.0.0             22        0.0.0.0             0          Listen                     1444

さらに、ファイルのハッシュ値を生成するための便利なコマンドレットとして「Get-FileHash」も紹介しておきます。

このコマンドは、ファイルの整合性を確認したり、改ざんの有無を調べたりするのに役立つため、インシデント対応や脅威ハンティング、マルウェア解析などの場面で特に有用です。

Terminal
PS C:\Users\captain\Documents\captain-cabin> Get-FileHash -Path .\ship-flag.txt    

Algorithm       Hash                      Path 
---------       ----                      ----
SHA256          54D2EC3C12BF3D[...]       C:\Users\captain\Documents\captain-cabin\ship-flag.txt

これらのコマンドレットを組み合わせて使うことで、リアルタイムなシステム監視や分析に必要なツール群が揃います。

特に、インシデント対応や脅威ハンティングを行う担当者にとって、非常に有用な手段となります。

Answer the questions below

In the previous task, you found a marvellous treasure carefully hidden in the target machine. What is the hash of the file that contains it?

71FC5EC11C2497A32F8F08E61399687D90ABE6E204D2964DF589543A613F3E08

【補足】

Get-FileHashの出力が途中で省略されてしまう場合、Format-List を使って出力を縦表示にするのが良い。

(例)Get-FileHash -Path .\big-treasure.txt | Format-List

What property retrieved by default by Get-NetTCPConnection contains information about the process that has started the connection?

OwningProcess

It's time for another small challenge. Some vital service has been installed on this pirate ship to guarantee that the captain can always navigate safely. But something isn't working as expected, and the captain wonders why. Investigating, they find out the truth, at last: the service has been tampered with! The shady lad from before has modified the service DisplayName to reflect his very own motto, the same that he put in his user description.

With this information and the PowerShell knowledge you have built so far, can you find the service name?

p1r4t3-s-compass

Scripting

スクリプティングとは、シェル(ここではPowerShell)の中で通常手動で行っていた操作を、自動化するためにテキストファイル(スクリプト)として一連のコマンドを書き、実行することを指します。

簡単に言えば、スクリプトはコンピューターに渡す「やることリスト」のようなもので、スクリプトの各行は実行するタスクを意味します。これにより、作業の手間が省けるだけでなく、ヒューマンエラーのリスクも減り、手作業では難しい処理も自動で実行できるようになります。

スクリプトやシェルの知識を深めるにつれて、スクリプトがシステム管理やデータ処理など、さまざまな場面で非常に強力なツールとなることがわかってきます。

このルームではPowerShellスクリプトの書き方までは扱いませんが、その強力さから、サイバーセキュリティ分野では非常に重要なスキルであることは理解しておくべきです。

【Blue Team(防御側)の活用例】

インシデントレスポンダー、マルウェア解析者、脅威ハンターなどのBlue Team担当者にとって、PowerShellスクリプトは以下のような作業を自動化する手段になります。

  • ログの分析
  • 異常検出
  • 攻撃の痕跡(IOC)の抽出
  • マルウェアのリバースエンジニアリング
  • システム全体のスキャン処理など

【Red Team(攻撃側)の活用例】

ペネトレーションテスターや倫理的ハッカーなどのRed Teamにとっても、PowerShellは有効です。

  • システム情報の列挙(エニュメレーション)
  • リモートコマンドの実行
  • 防御回避のための難読化スクリプトの作成
  • システムの耐性テストや模擬攻撃

【システム管理者の活用例】

システム管理者にとっても、PowerShellスクリプトは以下のような場面で役立ちます。特にリモート環境や大規模ネットワークでその力を発揮します。

  • システム整合性のチェック自動化
  • 構成管理やネットワークの保護
  • セキュリティポリシーの適用
  • システムの状態監視やインシデント対応の自動化

このように、防御・攻撃どちらの立場でも、PowerShellスクリプティングはサイバーセキュリティにおける必須スキルの一つです。

【Invoke-Commandの紹介】

スクリプティングの話題を締めくくる前に、もうひとつ重要なコマンドレットを紹介しておきます。それが「Invoke-Command」です。

Invoke-Command は、リモートマシンでコマンドを実行するためのコマンドレットです。

システム管理者、セキュリティエンジニア、ペネトレーションテスターなどにとって不可欠な機能であり、複数のマシンに対して一括で処理を実行したり、スクリプトと組み合わせて自動化したりすることができます。

ペネトレーションテストや攻撃の現場では、ターゲットマシン上でのペイロードやコマンドの実行にも使われます。

それでは、次にこの強力な Invoke-Command の使用例を、Get-Help コマンドの "examples" ページで確認してみましょう。

Terminal
PS C:\Users\captain> Get-Help Invoke-Command -examples

NAME
    Invoke-Command
    
SYNOPSIS
    Runs commands on local and remote computers.
    
    ------------- Example 1: Run a script on a server -------------
    
    Invoke-Command -FilePath c:\scripts\test.ps1 -ComputerName Server01
    
    The FilePath parameter specifies a script that is located on the local computer. The script runs on the remote computer and the results are returned to the local computer.

    --------- Example 2: Run a command on a remote server ---------

    Invoke-Command -ComputerName Server01 -Credential Domain01\User01 -ScriptBlock { Get-Culture }

    The ComputerName parameter specifies the name of the remote computer. The Credential parameter is used to run the command in the security context of Domain01\User01, a user who has permission to run commands. The ScriptBlock parameter specifies the command to be run on the remote computer.

    In response, PowerShell requests the password and an authentication method for the User01 account. It then runs the command on the Server01 computer and returns the result.
[...]

Get-Help コマンドの "examples" ページにある最初の2つの例だけでも、Invoke-Command コマンドレットのシンプルさと強力さを理解するには十分です。

最初の例では、Invoke-Command を任意のスクリプトと組み合わせて使うことで、リモートコンピューター上での処理を簡単に自動化できることが示されています。

2つ目の例では、スクリプトを書く技術がなくても Invoke-Command を使えることが示されています。コマンドに -ScriptBlock { ... } を追加することで、リモートマシン上で任意のコマンドやコマンドの連続実行が可能になります。

その結果は、リモートマシンの PowerShell セッションで直接コマンドを入力した場合と同じように動作します。

Answer the questions below

What is the syntax to execute the command Get-Service on a remote computer named "RoyalFortune"? Assume you don't need to provide credentials to establish the connection. [for the sake of this question, avoid the use of quotes (" or ') in your answer]

Invoke-Command -ComputerName RoyalFortune -ScriptBlock { Get-Service }

Conclusion

お見事です、諸君!
PowerShellという荒波を無事に乗り越え、TheBlackPearl号に隠された財宝や謎のサービスを見つけ出すことに成功しました。

ここまで習得したツールがあれば、どんなWindowsシステムの奥深くも探検する準備は万端です。

覚えておいてください。真の探求者(海賊)は、決して学びを止めません。これからもスキルを磨き続けていけば、きっと次の冒険でも新たな「真珠」が見つかるはずです。

それでは、コマンドレットが鋭く、スクリプトが素早く動作することを祈っています。
よい航海を。そして、さらなる発見を!

このままコマンドラインスキルを高めたい方は、次の学習ステップである「Linuxコマンドライン」ルームへ進んでください。

出典:Windows PowerShell

【セキュリティ事件簿#2025-234】株式会社テゲバジャーロ宮崎 個人情報漏えいの可能性に関するお詫びとご報告 2025/6/26

 

ファミリーの皆様、平素よりテゲバジャーロ宮崎の公式オンラインショップをご利用いただき、まことにありがとうございます。

大変申し訳ございません。

このたび、当オンラインショップにおきまして、受注から発送に至るプロセスに使用している販売管理画面のセキュリティ設定の不備により、一部のお客様の個人情報が第三者に閲覧可能な状態となっていたことが判明いたしました。

お客様に多大なご心配とご迷惑をおかけいたしましたことを、心より深くお詫び申し上げます。

■ 事案の概要

当クラブでは、公式オンラインショップの構築・運用業務を外部協力会社に委託しております。

同社が開発したECサイトにおいて、本来ログイン認証が必要である販売管理ページに対し、認証が設定されていない状態で約3ヶ月間運用されていたことが、本日判明いたしました。

具体的には、当該ページのURLを知る第三者が、ログインなしで販売情報を閲覧・ダウンロードできる状況となっておりました。

本件については、宮崎県警察サイバー犯罪対策課とも連携のうえ必要な対応を進めておりますが、現時点では、アクセス・ダウンロードともにURLを知る関係者によるものと推定されております。

■ 漏えいの可能性がある情報

当該ページに掲載されていた情報は、オンラインショップをご利用いただいたお客様の以下の情報です:

氏名

ご住所

電話番号、メールアドレス

注文情報(商品名・購入日など)

※クレジットカード番号など、決済に関わる情報は一切含まれておりません。

※対象件数:709名分

■ 現在の対応状況

本件を受け、当クラブおよび委託先では以下の初期対応を実施済です:

該当ページのアクセス遮断および認証設定の強化

アクセスログの保全および外部アクセスの有無の解析

警察への報告、連携

日本プロサッカーリーグ(Jリーグ)本部への報告

■ 今後の対応とお客様へのお詫び

対象となるお客様へは、書面によるお詫び状とあわせて、1,000円分の商品券を同封のうえ、6月27日(金)までに順次ご連絡をさせていただきます。

リリース文アーカイブ

YouTube OSINT活用術:効果的な検索と便利なツールの紹介


こんにちは。動画は文章よりも直感的な情報源だと感じたことはありませんか?もちろんフェイク動画も存在しますが、動画は文章よりもずっと説得力があります。

YouTubeはその特性を最大限に活かした情報の宝庫。OSINT(オープンソース・インテリジェンス)活動にも大いに活用できます。とはいえ、膨大な動画の中から目的の情報を見つけ出すのは容易ではありません。この記事では、YouTubeの検索をもっと効率化するための知識とツールを紹介します。


YouTube検索の基本構造を理解しよう

まず、YouTubeが動画をどのようにインデックスしているかを理解する必要があります。これは図書館の本の分類と似ています。

YouTubeが重視する情報

  • 動画タイトル:検索順位に最も強く影響します。キーワードの密度が高いほど有利。

  • 動画説明欄:内容の要約として扱われ、キーワード抽出に使われます。

  • タグ(キーワード):補助的要素。説明やタイトルと一致する場合に強く影響します。

  • 字幕:自動生成でも対象。本文にない情報が含まれる場合もあるため、侮れません。

  • チャンネル名:チャンネル名でも検索できます。

  • 視聴者の反応:視聴回数、いいね、コメント数、再生時間なども評価対象です。コメントのテキストもインデックスされます。


検索クエリの処理プロセス

YouTubeに検索語を入力すると、次のような段階を経て検索結果が表示されます。

  1. キーワード抽出:助詞や冠詞などの意味の薄い単語は省かれます。

  2. 言語の認識と正規化:例えば「探した」は「探す」として処理。

  3. 検索意図の判定

    • 情報型(例:「美味しいカレーの作り方」)

    • ナビゲーション型(例:「堀江貴文のビジネス解説動画」)

    • トランザクション型(例:「面白い猫動画」)

  4. データベース照合:インデックスに基づき該当する動画を抽出。

  5. ランク付けとフィルタリング:表示順位を決定。規約違反や個人の視聴履歴によるフィルタもかかることがあります。

※検索に引っかからない場合、Google検索でYouTube動画を探すという裏技も有効です。


YouTubeの検索フィルターを使いこなそう

検索結果ページの「フィルター」機能は意外と強力です。

  • アップロード日時:過去1時間、1日、1週間、1ヶ月、1年

  • タイプ:動画/チャンネル/再生リスト

  • 再生時間:短編/長編

  • 機能:字幕あり、4K画質、位置情報あり など

  • 並び替え:視聴数順、新着順、評価順

これらの条件は検索語に直接追加することも可能ですが、機能するケースとしないケースがあります。

例:

osint, shorts, this week

→ OSINTに関するショート動画のうち、今週投稿されたものが表示されます。


検索演算子(YouTube Dorks)

Googleと同様に、YouTubeでも「検索演算子」を使って高度な検索が可能です。以下は主な演算子とその使い方です。

"フレーズ"
完全一致検索。部分一致より優先度が高くなります。
例:「"バズレシピ カレー"」

+キーワード
検索結果に必ず含まれるキーワードを指定します。
例:「カレー +簡単」

-キーワード
検索結果から除外したいキーワードを指定します。
例:「バズレシピ -肉」

*
任意の単語にマッチします(ワイルドカード)。
例:「簡単 * レシピ」

$数値 ..
金額や数値の範囲を指定します。
例:「$10..$50」

intitle:
タイトル内に含まれる単一のキーワードで検索します。
例:「intitle:ミナミの帝王」

allintitle:
タイトル内に複数のキーワードすべてが含まれる動画を検索します。
例:「allintitle:バズレシピ カレー」

description:
説明欄に含まれる語句を検索します。正確に指定するには「"」や「*」の併用が効果的です。
例:「description:"低糖質 カレー"」

before:after:
特定の期間にアップロードされた動画を検索できます。
例:「after:2023-01-01」「before:2024-01-01」


OSINTに便利なツール紹介

以下の外部ツールは、YouTube調査に非常に役立ちます。

  1. YouTube Metadata Viewer

    • 公開日、タグ、カテゴリ、統計、サムネイルなどが確認できる。

  2. YouTube GeoFind

    • 地図上で位置情報付き動画を検索可能。

  3. YTB Comments Downloader

    • 動画コメントを抽出・CSVで保存。

  4. Filmot

    • 字幕検索ツール。動画内の発言をテキストで検索。

  5. Find Deleted YouTube Video

    • 削除済み動画の情報(メタデータや字幕)を検索。


まとめ

YouTube検索を使いこなすことで、OSINT調査の幅は確実に広がります。検索構造を理解し、演算子や外部ツールを組み合わせることで、目的の情報に早く、正確にたどり着けるようになります。

YouTubeはもはや娯楽の場だけではなく、情報収集の最前線でもあります。ぜひ実際に検索を試して、あなたのスキルに取り入れてみてください!

.li・.es・.ru――2025年に最も悪用された国別TLDランキング


インターネットにおけるサイバー攻撃の手口は日々進化していますが、依然としてフィッシング詐欺は根強い脅威のひとつです。特に近年では、特定のトップレベルドメイン(TLD)、なかでも『国別コードトップレベルドメイン(ccTLD)』が悪用されるケースが増加しています。

セキュリティ分析プラットフォーム「ANY.RUN」の2025年版レポートによれば、一部のccTLDがフィッシングに特に多く利用されていることが明らかになりました。

フィッシングに悪用された国別ドメインTOP5(2025年)

順位ccTLD国名フィッシング比率
1位.liリヒテンシュタイン57.22%
2位.esスペイン47.63%
3位.ruロシア30.32%
4位.soソマリア26.89%
5位.reフランス領レユニオン島21.13%

これらのccTLDは、本来は各国・地域を示す目的で使われていますが、登録コストの安さや規制の緩さ、匿名性の確保しやすさなどが悪用される要因になっていると考えられています。

スペインの国別コードTLDである .es は、近年認証情報を狙ったフィッシングや偽の宅配通知詐欺で悪用されるケースが増えています。

攻撃者は、Microsoft 365 や郵便・宅配業者など実在するサービスを装った偽サイトを .es ドメインで作成し、ユーザーにログイン情報やクレジットカード情報を入力させる手口を使います。

.es ドメインはスペイン語圏のユーザーにとって馴染みがあり信頼されやすいため、フィッシングサイトだと気づかれにくく、被害につながりやすいのが特徴です。

また、.ru は本来ロシアの正規の国別コードTLDですが、依然として悪意あるキャンペーンで頻繁に使われているドメインのひとつです。

特にロシア国内やその周辺地域のユーザーを標的にした攻撃では、.ru ドメインを使うことで見た目の信頼性を演出しやすく、騙されやすい傾向があります。

.ru は、偽のログイン画面を設置したり、正規のソフトウェアを装ったマルウェアを配布したりする用途で多く利用されています。見慣れたドメインだからこそ、警戒が薄れやすい点に注意が必要です。

なぜccTLDが狙われるのか?


ccTLDの中には、以下のような特性を持つものがあります:

  • 誰でも取得可能(居住要件なし)
  • 安価で大量取得可能
  • ブランド保護意識が薄い地域の運用者
  • TLDの管理が甘い、または脆弱

こうした背景から、攻撃者にとっては信頼感があるように見せかけながら、検知回避も容易な手段として利用されやすい状況になっています。

企業・個人ができる対策は?


  • 不審なTLDのリンクには注意を払い、クリック前に必ず確認を。
  • 送信元ドメインの**正当性(whois情報やSPF/DKIM設定)**を確認する習慣を。
  • ブランド保護の観点から、自社に関係するccTLDを事前に取得・監視することも有効です。

おわりに


TLDの選び方ひとつで、ユーザーの信頼を獲得することも、逆に失うこともあります。今回のレポートは、国別ドメインの利用リスクを再確認する良い機会になるはずです。

引き続き最新の脅威動向に目を光らせ、自衛策を講じていくことが求められています。


【セキュリティ事件簿#2025-232】千葉県教育委員会 個人情報漏えい事案の発生について 2025/5/30

 

県立千城台高等学校において、数学の成績等を含む個人情報の漏えい事案が発生しました。同校では、本事案を認知後、ただちにファイル等を削除し、現在のところ、二次流出等の報告は受けておりません。

個人情報の取扱い及び情報管理の徹底等について、厳重な注意喚起を行い、再発防止に万全を期してまいります。

1 概要

県立千城台高等学校において、同校教員が、90名の生徒のみが閲覧できるTeams(※)上に、誤って1学年321名分の数学の成績等を含むエクセルファイルをアップロードし、保護者からの通報により認知。

同校では、事実を確認後、ただちに当該ファイルを削除するとともに、ファイルを閲覧した生徒(44名)を特定し、当該生徒の端末内のファイルを削除した。

(※)Teamsとは、マイクロソフト社製のグループウェアで、登録したメンバーのみが閲覧等利用できる。

2 漏えい情報

1学年全員の1学期中間考査の得点(数学I及び数学A)、入学者選抜の数学の得点、生徒名、メールアドレス、

座席表、出欠数、平常点

3 漏えいの原因

当該ファイル内に個人情報が入ったシートが存在していないものと誤認したまま、当該教員が一人で、Teams上に当該ファイルのアップロードを行った。

4 経緯

5月26日(月曜日)

午後7時頃、県立千城台高等学校の教員が、90名の生徒をチームに登録するために、Teams上に当該ファイルをアップロードした。

5月27日(火曜日)

午前9時頃、生徒の保護者からの連絡により当該ファイルに1学年321名分の数学の成績等が含まれていることが発覚し、学校は事実を確認後、当該ファイルを直ちに削除した。

午後7時頃、当該ファイルの閲覧状況の履歴確認を完了し、閲覧者を全て特定した。

5月28日(水曜日)

午後3時頃、同校において、臨時の全校集会を開催し、校長より事故の経緯説明と謝罪を行った。

午後4時頃、当該ファイルを閲覧した生徒の端末上からの削除を確認した。

5月29日(木曜日)

午後7時、保護者会を開き、校長は、保護者会に参加した保護者に対し、これまでの経緯と再発防止策を説明し謝罪した。 

5月30日(金曜日)

午前10時、国の個人情報保護委員会へ本件の事実関係や再発防止策等について速報を報告した。

現時点で二次流出等の報告は受けていない。

5 再発防止策

個人情報の取扱い及び情報管理の徹底等について、改めて厳重な注意喚起を行う。

(1)個人情報を保存する際は、暗号化技術を使用してデータを保護する。

(2)個人情報へのアクセス権限を最小限に抑え、必要な者のみがアクセスできるようにする。

(3)情報セキュリティに関する研修を定期的に実施し、個人情報の取扱いに関する意識を高める。

リリース文アーカイブ

【セキュリティ事件簿#2025-231】三菱地所ホテルズ&リゾーツ株式会社 宿泊予約システム運営委託先における個人情報漏洩の可能性に関するお知らせとお詫び 2025/6/25

 

このたび、三菱地所ホテルズ&リゾーツ株式会社(取締役社長 大島 正也、以下「当社」)が運営する丸ノ内ホテルで利用している宿泊予約システムの運営委託先「CendynGroup, LLC」(以下「Cendyn」)において、同社予約システムに対する外部からの不正アクセスが判明いたしました。

現時点で、個人情報漏洩の事実は確認されておりませんが、個人情報漏洩の可能性を完全に否定できない状況であるため、ご報告いたします。尚、本件につきましては、すでに個人情報保護委員会に対し報告を行っております。

お客様ならびに関係者の皆様には、多大なご迷惑とご心配をおかけいたしますこと、深くお詫び申し上げます。

1. 概要

丸ノ内ホテルが、主に外国語による直接予約ツールとして利用している宿泊予約システムの運営委託先 Cendyn において、同社予約システムに対する外部からの不正アクセスが判明いたしました。

2. 対象となる予約

丸ノ内ホテル英語版ウェブサイト、海外旅行代理店等が運営している予約システム経由のご予約

3. 対象となった個人情報

2025 年 2 月 28 日から 2025 年 3 月 10 日までの期間、同システムに保管されていたお客様個人の氏名、住所、メールアドレス、電話番号、カード名義人氏名、クレジットカード番号の下 4 桁、当該宿泊料金、チェックイン・チェックアウト日などが含まれている可能性がございます。

4. 経過および当社の対応

2025 年 3 月 13 日に本件に関する報告を Cendyn から受けたのち、当該報告の信ぴょう性を精査のうえ、当社顧客情報の確認を進めるとともに、個人情報保護委員会へ報告いたしました。今回の不正アクセスの原因および対策については、Cendyn へ継続的に説明を求め、対応が確認できましたので、現在は予約受注を継続しております。引き続き Cendyn および関係各機関と連携し、必要な対応を進めております。

本件については、あくまで対象期間内の不正アクセスが確認されたことにより、情報漏洩の可能性があったものであり、漏洩が特定された状況ではないと Cendyn より報告を受けております。なお、本件対象以外のお客様の個人情報の漏洩は確認されておりません。また、これまでに個人情報を悪用される等の被害報告もございません。

5. お客様への対応

ご連絡先が確認できた対象のお客様に対しては、改めてホテルより本件についてのお詫びとご説明を電子メールにてご連絡いたします。

■お客様にご留意いただきたい事項

なりすまし、詐欺、フィッシング攻撃などの不正行為に引き続き十分にご注意いただきますようお願い申し上げます。

6. 再発防止策

本件に該当する Cendyn に対しては、より強力な再発防止策の実施を求めるとともに、当社においても情報管理および情報システムセキュリティの再確認・再徹底による安全性の確保に努め、再発防止を徹底いたします。

リリース文アーカイブ

【セキュリティ事件簿#2025-230】Mellia株式会社 クレジットカード決済の一時停止について 2025/6/17

 

平素よりアイム ラフロリアをご利用いただき、誠にありがとうございます。

一時的に停止しておりましたクレジットカード決済機能につきまして、 本日、通常通りご利用いただける状態に復旧いたしましたことをお知らせいたします。

お客様にはご不便・ご迷惑をおかけいたしましたこと、改めて深くお詫び申し上げます。 

今後もお客様に安心してご利用いただけるよう、セキュリティ強化とサービス向上に努めてまいります。 

<定期便をご契約中で『【アイム ラフロリア】お支払い情報確認のご案内』のメールを受け取られたお客様へ> 

今回の決済機能停止に伴い、本来ご利用可能なクレジットカードであっても決済エラーとなってしまう事象が一部で発生し、 その結果として、「【アイム ラフロリア】お支払い情報確認のご案内」のメールが送信された場合がございます。 混乱を招くご案内となりましたことを、心よりお詫び申し上げます。 

該当のお客様のご注文につきましては、再決済が完了次第、順次出荷させていただきます。 ご不便をおかけいたしますが、何卒ご理解賜りますようお願い申し上げます。

 ご不明な点などございましたら、いつでもお気軽にお問い合わせください。 今後とも変わらぬご愛顧のほど、何卒よろしくお願い申し上げます。

リリース文アーカイブ

【2025/6/16リリース分】

リリース文アーカイブ

【セキュリティ事件簿#2025-229】ぴあ株式会社 個人情報に関するご報告とお詫び 2025/6/24

 

ぴあ株式会社が運営する当リセールサイトにつきまして、弊社の誤設定により、数時間にわたり、一部のお客様の情報を別のお客様が閲覧できる状態にあったことが判明いたしました。

お客様に多大なるご迷惑とご心配をおかけいたしましたことを、心より深くお詫び申し上げます。

既に修正対応は完了しており、現在の画面表示は正常に戻っております。

■発生日時

2025年6月23日(月)18:15 〜 2025年6月23日(月)22:00頃

■経緯

6月23日(月)18:15、当サイトのアクセス集中によるサーバー負荷を軽減する目的で、Webページの表示を一時的に保存(キャッシュ)する設定を強化いたしました。

その際に、誤ってログイン状態を識別する情報(Cookie)を含めて保存する設定となっていたため、当サイトを訪問した他のお客様に、Myページがログイン済み状態で表示され、ログイン履歴のある一部のお客様の情報が閲覧・修正可能な状態となっておりました。

(外部からの攻撃や不正アクセスによるものではありません。)

ログイン状態を識別する情報(Cookie)を解除し、ログイン状態にある全てのお客様をログアウト状態に変更することで、他のお客様の情報を閲覧できないよう対処し、現在は正常に稼働しております。

■対象となる個人情報

・住所、電話番号:閲覧、変更できる状態

・漢字氏名、かな氏名、生年月日、メールアドレス:閲覧できる状態

・クレジットカード番号(下3桁のみ)、有効期限、名義:閲覧、登録、削除できる状態

・金融機関名、支店名、口座種別、口座番号、口座名義:閲覧、編集できる状態

※当該期間中、他のお客様 によって対象情報の閲覧または変更ができる状態となっていたお客様には、別途メールにて個別にご連絡差し上げます。

その中で、対象情報の更新履歴があったお客様につきましても、別途ご連絡いたします。

この度の事象を厳粛に受け止め、再発防止と管理体制の強化に努めてまいります。

お客様の信頼を損なうこととなりましたことを、改めて深くお詫び申し上げます。

リリース文アーカイブ

【セキュリティ事件簿#2025-228】聖十字病院 当院サーバーへの不正アクセス検知のお知らせ 2025/6/20

 

令和7年6月19日12時30分頃、当院のサーバーに対し、第三者による不正アクセスの可能性がある通信が検知されました。現在、詳細を調査中であり、個人情報の安全を最優先に「医療情報システムの安全管理に関するガイドライン」に沿って対応を進めております。

現時点で確認されている情報漏えい等はございませんが、進展があり次第、改めてご報告させていただきます。

患者様をはじめ関係者の皆様にはご心配とご迷惑をおかけしますこと、心よりお詫び申し上げます。

リリース文アーカイブ

【セキュリティ事件簿#2025-227】株式会社システムエグゼ 当社にて発生したインシデントのご報告と対応措置について 2025/6/20

 

この度、当社においてサイバー攻撃によるものと思われるインシデント(以下、本件)が発生したことをご報告いたします。

本件により、お客様をはじめ、お取引先様・関係者の皆様に多大なるご迷惑とご心配をおかけすることになり、深くお詫び申し上げます。

現在、システムの完全復旧に向けて鋭意対応を進めておりますが、復旧には一定期間時間を要する見込みです。

被害の全容の把握には今しばらく時間を要する見込みですが、現時点で判明しております内容について、以下の通りご報告いたします。

1.経緯

2025年6月20日(金)未明、当社システムに対し、外部の第三者からの不正アクセスを受けたことを確認いたしました。

確認後速やかに対策チームを立ち上げ外部専門家の協力のもと、侵入経路の特定、被害範囲の調査を開始いたしました。

また、同時に被害拡大の防止、システム復旧に向けて必要な措置を実施しております。

2.現在の状況と今後の対応

現在、さらなる被害拡大防止のため、不正アクセスの疑いがあるすべてのサーバーをネットワークから一時的に隔離し、影響範囲を確認する作業を進めております。

この影響により、受発注業務やお客様からのお問い合わせ対応など、一部の通常業務に遅延が生じております。

本件については、関係機関への報告・相談も行い、適切な対応を講じています。

今後、お知らせすべき事項が明らかになりました場合には、速やかに開示を行います。

リリース文アーカイブ

【セキュリティ事件簿#2025-226】株式会社パル 6/15に発生した不正ログインについてのご報告 2025/6/20

 

当社が運営するオンライン通販サイトPAL CLOSETにおきまして、2025年6月15日から6月16日にかけて、第三者が外部から取得した情報を利用した「リスト型アカウントハッキング(リスト型攻撃)※」によるものと推測される、不正なログイン操作が行われたことを確認いたしました。

当社は、お客様のログインパスワードを復号できないような「ハッシュ化」をして保存しており、調査の結果、ログインの際に使用するお客様のID、パスワードが当社内から流出した証跡もございませんでした。

※何らかの手段で多数のIDおよびパスワードを入手した第三者が、これらのID・パスワードを用いて様々なサイトにログインを試みることで、個人情報の閲覧等を行うサイバー攻撃をいいます。

<不正ログインの状況>

不正ログイン試行回数は1,722,379件、そのうち不正ログインされたものが194,307件あり、ログイン後に一部の会員情報ページが閲覧されたおそれがございます。

ただし、どのお客様の会員情報ページが閲覧されたかについては、当社のシステムの仕様上、特定することができておりません。

不正ログインが確認されたお客様には2025年6月20日付けで本文書と同内容のメールを送付させていただいております。

会員情報ページには、お名前、カナ、性別、生年月日、郵便番号、住所、電話番号、バーコードNoが掲載されておりますが、

クレジットカード情報は掲載されておらず、当社において保持もしておりませんので、流出はございません。

また現在までに不正注文等の二次被害は発生しておりません。

なお、本件につきましては個人情報保護委員会への報告を行っております。

<お客様へのお願い>

すでに会員登録されている全会員様において、パスワードを無効化させていただいております。(2025年6月16日に対応済み)

お手数をおかけしますが、以下のURLよりパスワードの再設定をお願いいたします。

今後の第三者の悪用を防止するためにも、他のWEBサービスを含め、同じパスワードを使用しないようにお願い申し上げます。

リリース文アーカイブ

【セキュリティ事件簿#2025-225】クミアイ化学工業株式会社 不正アクセスによる個人情報流出可能性についてのお知らせとお詫び 2025/6/23

 

クミアイ化学工業株式会社(東京都台東区 代表取締役社長 横山優)は、当社が管理運用するサーバの一部が第三者からの不正アクセスを受け、一部の元当社従業員の氏名等の個人情報が流出した可能性があることを確認いたしましたので、お知らせいたします。

本件に関して、関係者の皆様には、多大なご迷惑とご心配をおかけすることとなり、深くお詫び申し上げます。今回の事態を踏まえ、さらなるセキュリティ強化と再発防止に取り組んでまいります。

1.経緯

2025 年 4 月 28 日にセキュリティツールにより不正アクセスを検知したため、調査を行ったところ、4 月上旬に当社が管理する社内サーバへの不正アクセスがあったことが判明いたしました。その後も引き続き調査を進め、個人情報にかかる不正アクセスはないものと見られておりましたが、入念な調査の結果、一部の元当社従業員の情報への不正アクセスが確認されましたので、本公表に至った次第です。本件は、個人情報保護委員会に対して報告を行っております。また、情報流出の可能性が確認された元従業員の皆さまへは、個人情報保護法に則り、順次、個別にご連絡させていただいております。なお、連絡先不明等により直接のご連絡が困難な元従業員におかれましては、本公表をもって当社からのご連絡に代えさせていただきます。

流出した可能性のある情報は、一部の元当社従業員の「氏名、所属部署、役職、メールアドレス(在職当時、当社より従業員に与えられているメールアドレス)、社員番号」となります。

当社のお取引様に関する情報は含まれておりません。

2.元従業員の皆さまへのお願い(流出した情報による二次被害のおそれ)

現時点においては、本件に関わる個人情報の不正利用等は確認されておりませんが、流出した情報が第三者に悪用され、新たに被害が発生する可能性がございますので、ご注意下さいますよう、お願いいたします。

例)行政機関を名乗り、個人番号が漏えいしているなどとして金銭の振り込みに誘導するような詐欺を行うこと

3.対策および今後の対応

社内サーバへの不正アクセスを確認後、直ちに対象サーバのネットワーク分離や社内アカウントのパスワード変更、デジタルフォレンジックの実施など被害拡大を防止するための措置を講じてまいりました。引き続き、調査結果や外部の専門家からの助言を元に、ネットワーク、サーバ、コンピューターなどの監視を一層強化し、情報セキュリティレベルの向上および再発防止に取り組んでまいります。

【セキュリティ事件簿#2025-224】階上町 個人情報の漏えいのおそれがある事案の発生について 2025/6/12

 

この度、町ホームページ上において、農業経営基盤強化促進法に基づく「地域計画」の公表に当たり、当該計画内の個人情報(氏名)の不開示処理を行いましたが、閲覧者が当該ファイルを加工することで、当該個人情報が閲覧できる状態となっておりました。

関係者の皆様へ多大なご迷惑をお掛けし、深くお詫び申し上げます。

このような事態を招いたことを深く反省し、今後は、個人情報の適正な管理を徹底し、再発防止に努めてまいります。

事案の経緯と覚知

  1. 対象ファイルのホームページへの掲載 令和7年3月25日(火曜日)
  2. 情報漏えいのおそれがある事案の覚知 令和7年6月9日(月曜日)

漏えいのおそれがある情報と人数

 農業を担う者の「氏名」…284名

事案が発生した原因

  1. 個人情報の不開示処理を誤った方法で行ったものです。
  2. 担当課において、対象ファイルを印刷した紙媒体のみを確認し、データを確認していなかったため、当該事案に気がつかなかったものです。
  3. ホームページ公開後のページを確認したものの、氏名欄が空白状態(不開示)であったため、当該事案に気がつかなかったものです。

二次被害

現時点で二次被害は確認されておりませんが、本事案の対象となった方々への連絡を行う中で、被害状況を確認します。

再発防止策

個人情報を不開示とするための処理方法を再度確認するとともに、認識の共有を行います。

公開する情報について、紙ベースだけでなく、ファイルのデータを複数体制で確認することを徹底します。

再発防止策および個人情報の適正な管理について、全職員に対し周知徹底します。

リリース文アーカイブ

【セキュリティ事件簿#2025-223】株式会社チャレジョブ 公式Instagramアカウントの不正アクセスについて 2025/6/22

 

このたび、当社が運用しております公式Instagramアカウント(@challejob)が第三者により不正アクセスを受け、乗っ取られてしまったことが判明いたしました。

現在、Instagramの運営会社であるMeta社に対し、事実関係の確認に向けた対応を進めております。また、当該アカウントにつきまして(@challejob)は6月22日に既に削除を行っております。

■経緯と対応状況

2025年6月22日午前:不審な投稿が行われていることを確認

2025年6月22日午後:社内調査を行い、第三者による不正アクセスの可能性を確認

現在:Meta社に正式な報告・対応依頼を行い、調査を要請中

■皆さまへのお願い

不正アクセス後に当該アカウントより発信された投稿・DM等は当社とは一切関係がございません。万が一、不審なリンクやメッセージを受け取った場合は、開かずに削除していただきますようお願いいたします。

■今後の対応について

新たな公式Instagramアカウントの開設を含め、今後の情報発信体制の見直しを進めております。

進展があり次第、当ホームページおよび各種公式媒体にてお知らせいたします。

このたびは、皆さまにご不安とご迷惑をおかけしましたことを心よりお詫び申し上げます。

今後はより一層の情報セキュリティ対策を講じ、再発防止に努めてまいります。引き続き、株式会社チャレジョブをどうぞよろしくお願いいたします。

リリース文アーカイブ

ハッキングを始めた頃に知っておきたい5つのツール


セキュリティの学習初期に知っておくと大きな助けになる、基本かつ実践的な5つのハッキングツールを紹介します。シンプルで扱いやすく、実用性が高いため、業界全体で広く活用されているこれらのツールは、初心者にとっては学びの入り口として、経験者にとっては日々の頼れるパートナーとして活躍してくれるはずです。

Burp Suite


カテゴリ:Webアプリケーションテスト

おすすめ理由: Webトラフィックの傍受と改変が可能な多機能ツール

Webアプリケーションの脆弱性診断を始めたばかりの段階では、HTMLソースの確認やブラウザの開発者ツール、簡易的なスクリプトを用いたテストなど、手作業による検証が中心となることが多い。

その一方で、「Burp Suite」のような高機能なツールは、機能の多さゆえに初心者にとって敷居が高く、導入が後回しになりがちである。

しかし、Burp SuiteはWebアプリケーションテストにおいて非常に多機能で汎用性が高く、専門家の間でも「これ一つで幅広い作業をこなせる定番ツール」として高く評価されている。主な機能としては以下のようなものがある:

  • ブラウザとターゲットサイト間のHTTP/HTTPS通信を傍受

  • リクエストやレスポンスをリアルタイムで改変

  • 「Intruder」を使って入力値の繰り返しテスト

  • サイト全体をクロールしてページ構造を把握(Spider機能)

  • よくあるWeb脆弱性のスキャン(※Pro版のみ)

Webアプリケーションのセキュリティテストにおいて、Burp Suiteは幅広く利用されている主要ツールのひとつである。


無償で提供されている「Community Edition」でも基本的な機能は充実しており、学習用途や初学者の実践にも十分対応可能なレベルとなっている。

💡 ちょっとしたコツ
Firefoxに「FoxyProxy」アドオンを入れてBurp Suiteと連携すれば、トラフィックのリダイレクトが簡単にできて便利です。


Nmap


カテゴリ: ネットワークスキャン

用途: 開いているポート、稼働中のサービス、脆弱性の把握に有効

Nmapは「ポートスキャナ」として広く知られていますが、実際にはネットワーク調査全般に活用できる多機能ツールとして、セキュリティ分野で重宝されています。単なるスキャンツールにとどまらず、幅広い診断・分析機能を備えています。

主な機能は以下のとおり:

  • 同一ネットワーク上に存在するホストの検出

  • 開いているポートと、それに対応するサービスの確認

  • OSやハードウェア構成の推測

  • NSE(Nmap Scripting Engine)によるスクリプト実行による脆弱性診断

たとえば、以下のコマンドは非常に多くの情報を取得できます:

nmap -sC -sV -A target.com

(※ -sCはデフォルトスクリプトの実行、-sVはサービスのバージョン検出、-AはOS検出・トレースルートなどの高度なスキャン)

💡 活用のヒント:
CTF(Capture The Flag)や実際のネットワーク診断を行う際は、最初にNmapを使って全体像を把握することが推奨されます。


Amass


カテゴリ: 偵察 / サブドメイン列挙

用途: 隠れたサブドメインを発見し、攻撃対象領域を広げる

情報収集(Reconnaissance)は、エシカルハッキングにおいて最も重要なプロセスの一つとされています。対象を深く理解することで、脆弱性の発見率も大きく向上します。

Amassは、サブドメイン列挙に特化した高性能なリコンツールであり、以下のような機能を備えています:

  • 複数のデータソースからサブドメインを収集

  • ドメイン間の関係性の可視化

  • アクティブ/パッシブ両方の偵察手法に対応

たとえば、以下のようなシンプルなコマンドでも多くのサブドメインを洗い出すことが可能です:

amass enum -d example.com
(対象ドメインに関連するサブドメインの列挙)

💡 活用のヒント:
Amassで収集したサブドメイン情報は、httpx などのツールと組み合わせて、実際にアクセス可能かどうかを確認すると、さらに有用です。


CyberChef


カテゴリ: データのエンコード/デコード

用途: データの変換・復号・検査を迅速に実行可能

CyberChefは、イギリスの情報機関 GCHQ(政府通信本部)が提供するブラウザベースのデータ変換ツールです。直感的なインターフェースを備えており、あらゆるデータ操作を簡単かつ高速に行うことができます。

対応している代表的な処理は以下のとおり:

  • Base64 エンコード/デコード

  • 16進数(Hex)とASCIIの相互変換

  • XOR暗号の復号・実行

  • 各種ハッシュ生成(MD5, SHA-256 など)

  • JWTの解析(JSON Web Token)

  • 正規表現による抽出

操作は「処理(Operation)」をドラッグ&ドロップでつなげる形式で、複数の処理をパイプラインのように組み合わせることが可能。視覚的で直感的な設計により、短時間で複雑な処理を実現できます。

💡 活用のヒント:
CyberChef はブックマークしておくと便利です:
https://gchq.github.io/CyberChef/
繰り返し発生する変換作業の手間を大幅に省いてくれることでしょう。


Gobuster


カテゴリ: ディレクトリ/コンテンツ列挙

用途: Webサーバ上の隠れたディレクトリやファイルを特定

Gobusterは、Webサーバに存在する可能性のあるディレクトリやファイルを、指定した単語リスト(ワードリスト)をもとに総当たりで調査するCLIツールです。通常のリンク構造ではたどり着けない隠しページや機密ファイルを発見するために用いられます。

使用例として、以下のようなコマンドがあります:

gobuster dir -u http://example.com -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
(例:対象のURLに対して、指定ワードリストに含まれるディレクトリ名を順に試行)

このようなスキャンによって、以下のような隠れたリソースが見つかる可能性があります:

  • /admin

  • /login

  • /backup.zip

こうしたページやファイルは、Webサイト内から直接リンクされていないことが多く、見落とされがちですが、重大な脆弱性の手がかりとなるケースもあります。

💡 活用のヒント:
SecListsのような高品質なワードリストと組み合わせて使うのがおすすめです。HTTPステータスコード(例:200、403、301 など)にも注目しながら調査すると、より精度の高い列挙が可能になります。


まとめ:知識とツール、どちらも武器になる


ハッキングに必要なのは、創造力と姿勢、そして適切なツールの選定です。
特に優れたツールは、作業の効率を飛躍的に高め、見落とされがちな脆弱性を明らかにし、時間と労力を節約してくれます。

ここで紹介した5つのツール(Burp Suite / Nmap / Amass / CyberChef / Gobuster)は、セキュリティ分野における基本かつ強力な選択肢です。初学者にとっては、まずそれぞれを試しながら仕組みや背景にも目を向けることで、より深い理解が得られるでしょう。

最後に忘れてはならないのは、「ツールは進化するが、知識は残る」ということ。
目先の操作だけでなく、原理を学ぶ姿勢こそが、長く役立つ武器になります。

【セキュリティ事件簿#2025-222】ジブラルタ生命保険株式会社 弊社の社内ネットワークへの不正アクセスによる社員等の情報流出について 2025/6/20

 

このたび、弊社の特定サーバー(モバイルデバイス管理サーバー)が第三者によって脆弱性を悪用され、不正アクセスを受けました。その結果、一部の社員等の個人情報(氏名、ユーザーID、会社メールアドレス)が流出したことが判明しました。なお、モバイルデバイス管理サーバーに顧客情報は含まれておらず、顧客情報の流出はございません。

弊社は、この事態を把握後、直ちに原因となったモバイルデバイス管理サーバーをインターネットから遮断し、脆弱性を解消するための必要な対策を講じました。これにより、さらなる流出等の被害が発生することはございません。また、関係機関への報告も完了しております。引き続き、セキュリティ専門機関等の協力を得ながら再発防止策を講じてまいります。

関係者の皆さまには、多大なるご迷惑とご心配をおかけしましたことを心よりお詫び申し上げます。以下に、本件の詳細を説明いたします。

1. 概要(発生原因・発覚経緯)

弊社では、電子メールおよびモバイルアプリケーションへアクセスするために、モバイルデバイス管理サーバーを利用しておりました。脆弱性解消のための対策を実施し、攻撃の有無を確認するためログ調査を行った結果、5月 16 日に外部の第三者によって不正アクセスが行われ、一部の社員等の個人情報が窃取されたことが、5月 22 日に判明いたしました。不正アクセスは 5 月 16 日にのみ発生したことを確認しております。

※ モバイルデバイス管理サーバーには 2015 年から 2023 年に弊社に在籍していた一部の社員等の情報が登録されておりました。また、退職者については、退職時に本サーバー上から登録情報を削除する運用を行っておりましたが、削除した情報が論理的にサーバー内に残留する製品仕様であったため、流出対象に含まれておりました。

2. 流出した情報

流出した情報は、5月 16 日時点で弊社のモバイルデバイス管理サーバーに登録されていた 2015 年から 2023 年に弊社に在籍をしていた一部の社員等の以下の項目です。

・氏名

・ユーザーID

・会社メールアドレス

3. 情報流出した社員等の数

・550 件

※対象者:弊社社員、退職者、一部の委託先社員 等

※対象となった方に個別の通知を実施しております。

4. 本件による影響

現時点で、本件による流出情報がインターネット上で公開された事実や不正利用などの二次被害は確認されておりません。

最後に、関係者の皆さまにご迷惑とご心配をおかけしましたことを改めて深くお詫び申し上げます。弊社は、今後とも情報セキュリティの強化に努め、同様の事案防止に全力を尽くしてまいります。今後とも変わらぬご支援を賜りますようお願い申し上げます。

リリース文アーカイブ

【セキュリティ事件簿#2025-221】株式会社富士山マガジンサービス 当社への不正アクセスによる個人情報流出の可能性に関するお知らせ 2025/6/20

 

このたび、当社運営のウェブサイト「Fujisan.co.jp」(以下、「当社サイト」という)の一部が第三者による不正アクセスを受け、保管するお客様個人情報の一部が外部に漏洩した可能性があることが判明いたしました。お客様および関係者の皆様には多大なるご心配とご迷惑をおかけすることとなり、深くお詫び申し上げます。

なお、不正アクセスを受けた当社サイトにつきましては、不正アクセスを遮断するシステムの修正措置を既に実施済みであり、漏洩した可能性がある個人情報にはお客さまのクレジットカードや銀行口座等の決済に関する情報は含まれておりません。

引き続き被害状況の詳細について調査を進め、必要な対応が発生した場合は速やかに対応してまいります。また、本件に関しては個人情報保護委員会に法令上の報告を行っており、弁護士及び警察とも連携の上、今後の対応について協議中であります。

お客様をはじめ関係者の皆様には重ねてお詫びを申し上げますとともに、現時点で判明しております本件の概要につきまして、以下の通りお知らせいたします。

1. 不正アクセス発見の経緯、当社の措置状況

2025年5月31日より、当社サイトに主に海外から大量の不正アクセスが発生していることを当社セキュリティシステムより検知いたしました。

6月6日付で弊社顧客サポートデスクに情報漏洩の可能性を指摘する問い合わせを受け、社内で調査を進めたところ、当該お客様の「マイページ」への直接的なアクセスは認められませんでした。

6月13日、対応策を検討するなか、先に問い合わせを受けたお客様以外の3名のお客様について、お客様の「マイページ」への不正ログインが判明し、当該ユーザのパスワードを強制変更、当該お客様の「マイページ」へのログインの制御、攻撃元のIPアドレスのブロック、個人情報参照画面のリクエスト制限のモジュール導入を実施し、それ以降、不正アクセスが止まったことを確認しました。

また、不正アクセスのパターンから、当社並びにお客様を特定しての攻撃の可能性が高いと判断しました。

6月16日付で、6月6日付のお客様とは別のお客様より弊社顧客サポートデスクに情報漏洩の可能性を指摘する問い合わせを受け、更なる広範での調査を進めたところ、

6月17日になり、6月13日の3名とは別の6名のお客様の「マイページ」にログインされた形跡を発見し、更に「マイページ」にログインされたお客様の「住所録の変更」ページを起点に、他のお客様の「住所録の変更」ページを閲覧している形跡が多数発見されたため、一時的に該当ページへのアクセスを停止し、更なる不正アクセス遮断措置のシステム修正を実施しました。

現在、弊社では、引き続き被害状況の調査及びセキュリティ対策の強化を進めております。

2. お客様への影響

現時点で、流出の可能性が判明している情報は以下のとおりです。

(1)「マイページ」への不正ログインをされたお客様数:9人

(2)(1)のお客様の「マイページ」を起点に、なりすましにより、「マイページ」に登録された住所情報にアクセスされた可能性のあるお客様数(最大可能性):2,528,491人

3. 今後の対応

本事象の影響を受けた可能性があるお客様につきましては、順次、電子メール等にてご案内を差し上げてまいります。

また、引き続き被害状況の詳細について調査を進めるとともに、再発防止のためのセキュリティ対策、監視体制のさらなる強化を進め、より一層のサービス品質の向上を図ってまいります。

新たにお知らせすべき内容が判明した場合、速やかに情報を開示してまいります。ご理解賜りますよう、よろしくお願い申し上げます。

リリース文アーカイブ

【セキュリティ事件簿#2024-581】日揮ユニバーサル株式会社 当社におけるセキュリティインシデントの発生について 2025/6/13


2024 年 12 月 27 日に公表しました「当社におけるセキュリティインシデントの発生について」のとおり、当社の一部サーバー内の電子データにて暗号化被害が発生していることおよび漏えいの可能性があることについてご報告させていただきました。

これまで外部セキュリティ専門会社の協力のもと、被害状況の確認を含めて調査を進めてまいりました。今般、調査が完了いたしましたので、経緯と対応の状況、および調査により判明した内容をご報告申し上げます。

お取引先様をはじめとする関係者の皆様には多大なるご心配とご迷惑をおかけしましたことを、深くお詫び申し上げます。

1. 経緯と対応の状況

2024 年 12 月 22 日(日本時間)にシステム障害が発生し、調査の結果、当社で管理する一部のサーバーがランサムウェアに感染していることを確認しました。感染が確認されたシステム環境は外部とのネットワークを切断しており、被害拡大を防ぐための対応を実施しております。

なお、ネットワークやシステムの復旧にあたっては、被害を受けた環境は再利用せず、新しく環境を構築する方針とし、おおむね復旧が完了しており、業務につきましても通常通り継続しております。

2. 暗号化被害の原因

外部セキュリティ専門会社の調査結果から、当社のインターネットとの接続口から当社環境へ侵入されたことが判明しております。当社では事態を重く受け止め、再発を防止すべく上記専門会社による助言を受けながらさらなる対策を講じてまいります。

3. 外部への情報漏えいについて

外部セキュリティ専門会社の調査結果から、外部への情報漏えいが発生していたことが判明しております。漏えいしたデータにはお取引に関連する情報や個人情報(*)などが含まれておりました。なお、現時点までにおいて個人情報を悪用した不正利用等の被害が発生した事実は確認されておりませんが、念のため、不審なメール等には十分ご注意ください。

* 漏えい等が発生し、又は発生したおそれがある個人データの項目:

氏名、会社名、会社メールアドレス等

なお、個人情報保護委員会に対して、本内容は報告しております。

4. 公表の経緯について

12 月 27 日に当社ホームページにてご案内を差し上げてから、その後今回の公表に至るまで時間を要したことを深くお詫び申し上げます。不確定な情報の公開はいたずらに混乱を招く可能性があるため、お客様へのご迷惑を最小限に食い止める対応準備を整えてからの告知が不可欠であると判断し、事実の公表には外部セキュリティ専門会社の調査結果を待ってから行うことにいたしました。

今回の調査結果のご報告に至るまでお時間をいただきましたこと、重ねてお詫び申し上げます。

5. 再発防止策について

当社は今回の事態を厳粛に受け止め、調査結果を踏まえてシステムのセキュリティ対策および情報セキュリティ管理体制の強化を行い、再発防止を図ってまいります。

関係者の皆様には多大なるご迷惑をおかけすることとなり、改めて深くお詫び申し上げます。今後とも誠実に対応し、再発防止に努めてまいりますので、何卒ご理解とご協力を賜りますようお願い申し上げます。

リリース文アーカイブ

【2024/12/27リリース分】

リリース文アーカイブ

【セキュリティ事件簿#2025-220】名古屋大学 個人情報漏えいの可能性について 2025/6/18

 

このたび、本学人文学研究科教員がサポート詐欺に遭い、当該教員のパソコンが第三者による不正アクセスを受ける事案が発生しました。

これにより、当該パソコンに保存されていた個人情報が漏えいした可能性があることを確認しました。

令和7年4月13日、当該教員が当該パソコンでWebサイトを閲覧中、突然、大音量の警告音が鳴り、画面上に「ウイルスを検出した」とする警告表示が現れました。

その表示では、アンチウイルスソフトによるウイルス駆除の実施及びサポート窓口への電話連絡を促されており、当該教員がその指示に従い操作したところ、第三者による遠隔操作を受け、当該パソコンが不正にアクセスされる事態となりました。

速やかにネットワークを遮断し、当該パソコンを調査したところ、1,626名分の学生・生徒の名簿が以下のとおり保存されていたことが判明しました。

・学部学生(482名):氏名、学籍番号、該当科目の成績(437名)

・大学院学生(175名):氏名、学籍番号、メールアドレス(83名)

・附属学校生徒(969名):氏名、性別、クラス、出席番号

現時点では、これらの情報が不正に流用された事実等は確認されていません。

当該名簿に氏名等が記載されていた学生・生徒の方々には、メール又は郵送にて本件の概要をご説明し、対応窓口の設置及びその連絡先をご案内するとともに、お詫び申し上げました。

このような事態を招き、関係者の皆様に多大なるご迷惑とご心配をおかけしましたことを深くお詫び申し上げます。

今後は、個人情報保護及び情報セキュリティに関する教育研修の充実を図り、構成員の意識向上を図るなど、再発防止に努めて参ります。

リリース文アーカイブ

【セキュリティ事件簿#2025-161】株式会社淀川製鋼所 連結子会社におけるランサムウェア被害の発生および情報漏えいの可能性に関するお知らせ 2025/6/18

 

2025年4月25日付けでお知らせしました当社の連結子会社である台湾の盛餘股份有限公司(以下、「SYSCO社」)におけるランサムウェア被害の発生および情報漏えいの可能性について現時点の状況についてご報告いたします。

1.現時点の状況について

SYSCO社のサーバーへの第三者による不正アクセスにより被害を受けたシステムは全て復旧しており、データの復元も概ね完了し、SYSCO社の業務運営が滞るような事態は起こっておりません。またその後二次被害が発生した事実は確認されておりません。

対策として、外部専門家の支援を受けセキュリティ強化の施策も完了しております。

また、流出した情報については、SYSCO社の社員関係および個人様式の個人情報が漏えいした可能性があり、現地において適時開示およびウェブサイト等で情報公開を行うとともに、外部専門家とも協議の上、必要な対応を進めております。

引き続き、当社および現地の関係機関からも本件の事実関係に関する調査を受けており、調査結果の詳細が判明いたしましたら、改めてご報告いたします。

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

2.業績への影響

本件が当社グループの業績に及ぼす影響については軽微であると判断しています。今後、業績に重大な影響があると判断した場合は速やかに公表いたします。

リリース文アーカイブ

【2025/4/25リリース分】

リリース文アーカイブ