たれながし.info

とあるITエンジニアの備忘録

Microsoft Defender for EndpointにLinuxをオンボードする

Microsoft Defender for EndpointにCentOS7.9をオンボードしてみたので、手順などメモします。

f:id:tarenagashi_info:20210920215708p:plain:w600

はじめに

Microsoft Defender for EndpointにCentOS7.9をオンボードしてみました。

展開方法

Linuxオンボードするには、2つの方法があります。
今回は手動展開で実施します。

  1. スクリプトを利用した手動展開
  2. 構成ツールを利用した展開(Puppet、Ansible、Chef)

参考資料

下記ページを参考にしました。
docs.microsoft.com

docs.microsoft.com

Linuxオンボード

前提条件とシステム要件の確認

SELinuxは無効にしておく

# getenforce
Disabled



カーネルバージョンが「3.10.0-327」以上であることを確認する

# uname -r
3.10.0-1160.el7.x86_64



カーネルオプション「fanotify」が有効であることを確認する

# grep -ir FANOTIFY /boot/config-`uname -r`
CONFIG_FANOTIFY=y
CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y



「auditd」が動作していることを確認する

# systemctl status auditd
● auditd.service - Security Auditing Service
   Loaded: loaded (/usr/lib/systemd/system/auditd.service; enabled; vendor preset: enabled)
   Active: active (running) since 月 2021-09-20 20:32:07 JST; 20min ago
...


リポジトリの登録

リポジトリを登録する

# yum install yum-utils
# yum-config-manager --add-repo=https://packages.microsoft.com/config/rhel/7/prod.repo
# rpm --import http://packages.microsoft.com/keys/microsoft.asc
# yum makecache


エージェントのインストール

エージェントをインストールする

# yum install mdatp


オンボーディングパッケージのダウンロード

M365 DefenderからLinux用のオンボーディングパッケージをダウンロードする
f:id:tarenagashi_info:20210920211259p:plain


Linuxに転送し解凍する

# yum -y install unzip
# unzip WindowsDefenderATPOnboardingPackage.zip
# ls -l MicrosoftDefenderATPOnboardingLinuxServer.py
---------- 1 root root 8794  9月 20 05:48 MicrosoftDefenderATPOnboardingLinuxServer.py


クライアントの構成

構成スクリプト実行前は組織に関連付けられていない

# mdatp health --field org_id
ATTENTION: No license found. Contact your administrator for help.
unavailable



構成スクリプトを実行する

# python MicrosoftDefenderATPOnboardingLinuxServer.py
Generating /etc/opt/microsoft/mdatp/mdatp_onboard.json ...


動作確認

端末登録の確認

組織に関連づけられたことを確認する

# mdatp health --field org_id
"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"



「デバイスのインベントリ」に端末が登録されて、タイムラインも取得できる
f:id:tarenagashi_info:20210920215708p:plain

脅威検知

定義の更新を実行する

# mdatp definitions update
Security intelligence update finished



healthy=trueになることを確認する

# mdatp health --field healthy
true



リアルタイムプロテクションが有効であることを確認する

# mdatp health --field real_time_protection_enabled
true



eicarファイルをダウンロードする

# curl -o /tmp/eicar.com.txt https://www.eicar.org/download/eicar.com.txt



eicarを検知していることを確認できる

# mdatp threat list
Id: "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
Name: EICAR-Test-File (not a virus)
Type: "virus"
Detection time: Mon Sep 20 21:39:19 2021
Status: "quarantined"
Path: "/tmp/eicar.com.txt"
File size: 68
Sha256 hash: 275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f



「インシデントとアラート」でも検知を確認できる
f:id:tarenagashi_info:20210920214603p:plain

脆弱性情報

少し放置しておいたら、脆弱性情報も取得できてました。
f:id:tarenagashi_info:20210922031756p:plain

おまけ情報

MDATPコマンド

MDATPコマンドでエージェントを操作できるようです。

# mdatp help
Expected one of:
  config                Manage product configuration
  connectivity          Troubleshoot cloud connectivity
  definitions           Manage security intelligence updates
  diagnostic            Troubleshoot product issues and collect diagnostics
  edr                   Manage Endpoint Detection & Response (EDR) configuration
  exclusion             Manage antivirus exclusions
  health                Display product health information
  help                  Display all available options for this tool
  log                   Manage product logging
  notice                Display the Third-Party Notice
  scan                  Scan for malicious software
  threat                Manage threats and configure threat handling policies
  version               Display the product version

コマンドリファレンスはこちらのようです。
docs.microsoft.com

Log出力

ログは「/var/log/microsoft/mdatp」に出るもよう。

# ls -l /var/log/microsoft/mdatp/
合計 232
-rw-rw---- 1 root  mdatp  4363  9月 20 21:08 install.log
-rw-rw---- 1 mdatp mdatp  4959  9月 23 05:47 microsoft_defender.log
-rw-rw---- 1 root  root  56733  9月 23 05:47 microsoft_defender_core.log
-rw-rw---- 1 root  root   6762  9月 20 21:34 microsoft_defender_core_err.log
-rw-rw---- 1 root  root  25986  9月 20 21:08 microsoft_defender_diagnostic.log
-rw-rw---- 1 root  root    514  9月 20 21:08 microsoft_defender_diagnostic_err.log
-rw-rw---- 1 root  root  82412  9月 23 05:51 microsoft_defender_enterprise.log
-rw-rw---- 1 root  root   6969  9月 23 05:49 microsoft_defender_enterprise_err.log
-rw-rw---- 1 root  root  13107  9月 23 05:51 microsoft_defender_enterprise_telemetryd.log
-rw-rw---- 1 root  root   2415  9月 23 05:41 microsoft_defender_enterprise_telemetryd_err.log
-rw-rw---- 1 mdatp mdatp   771  9月 20 21:17 microsoft_defender_err.log
drwxrwxr-x 2 root  mdatp  4096  9月 23 00:17 rotated

Microsoft Defender for Endpointを構築してみた


はじめに

Microsoft Defender for Endpointを検証目的で構築したので、手順をメモします。

参考資料

マイクロソフトの公開情報を元に作業を実施しました。

docs.microsoft.com

管理ポータルについて

管理ポータルは旧ポータルと新ポータルの2つあります。旧ポータルに表示される内容は、新ポータルにも全て表示されているようです。
今回は「Defanderセキュリティセンター(旧ポータル)」で作業しましたが、今後は「M365 Defender(新ポータル)」を使った方が良さそうです。

Defanderセキュリティセンター


M365 Defender

  • 新しい管理ポータル(2021年7月6日にリリースされたもよう)
  • 他のMSセキュリティサービスと統合されたポータル(Defender for Identity、Defender for O365、Microsoft Cloud App)
  • ユーザーの言語設定に沿って、日本語表示も可能
  • URL: https://security.microsoft.com


環境構築

ライセンスの取得

まずライセンスを取得します。今回は試用版ライセンスを使用しました。
tarenagashi.hatenablog.jp

初期設定

Defenderセキュリティーセンター(https://securitycenter.windows.com/)にアクセスします。
このページが表示されました。

参考資料だと、このページで下記の3つが設定可能な旨記載されていましたが、表示されませんでした

「データストレージの場所(Data Storage)」は、デバイスオンボード(デバイスをMDEに登録)した後に変更することは難しいので、デフォルト値のUS以外に設定したい場合、この画面ではデバイスオンボードせず、ページ下部の「Start using Microsoft Defender for Endpoint」から抜けて、[Settings] > [General] > [data retention]を開き、先に設定する必要があります。
(デバイスオンボードすると、設定がグレーアウトされ変更できない)

バイスオンボード

MDEにデバイスを登録します。今回はWindows10 Enterpriseを登録してみます。
※Proxy環境では、WinHTTPプロキシの設定が必要

「1. Onboard a device」に、デバイスオンボード方法が記載されている。オンボード方法は6つある

今回はローカルスクリプトオンボードします。
「Download onboarding package」からダウンロード用のスクリプトをDLします。

ダウンロードしたスクリプトを管理者権限で実行する

リロードすると、オンボードステータスが「Completed」になりました。

「2. Run a detection test」に、オンボードしたデバイスの検知テスト方法が記載されているので、コマンドプロンプトで実行します。
5分程待ってリロードすると、Detection Testが「Completed」になりました。

「Start using Microsoft Defender for Endpoint」をクリックするとダッシュボードに移動します。

動作確認

Device Inventoryを確認すると、端末が登録されています。

Timelineからデバイスの活動状況が分かります。

Alert Queueを見ると、テストアラートが表示されています。

レジストリ値「OnboardingState」でも確認できるようです。
→OnboardingState=1ならオンボードらしい

>reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Advanced Threat Protection\Status"

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Advanced Threat Protection\Status
    ConfigurationVersion    REG_SZ    10.7740.6435478.6481326-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    deniedCnCActionsBitmask    REG_DWORD    0x0
    isWdagDetected    REG_DWORD    0x0
    OrgId    REG_SZ    XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
    OnboardingState    REG_DWORD    0x1
    LastConnected    REG_QWORD    0x1d7ae022d776b9d

各種設定

設定画面をいくつか眺めてみます。

バイスグループの構成

[Device groups]では、様々な条件でデバイスをグループ化できる

高度な機能の構成

[Advanced features]は、機能のオン/オフ スイッチです。

各機能の詳細は、以下のページが詳しいです。
docs.microsoft.com

Microsoft Defender for Endpointの試用版ライセンス取得してみた。

Microsoft Defender for Endpointの試用版ライセンスを取得したので、手順を記載します。

試用版ライセンス取得の流れ

Defender for Endpointのページにアクセスし「無料試用版にサインアップしてください。」をクリック
f:id:tarenagashi_info:20210920010232p:plain:w600

メールアドレスを入力する
f:id:tarenagashi_info:20210920010642p:plain:w600

名前、組織名、電話番号を入力する
f:id:tarenagashi_info:20210920010809p:plain:w600

電話番号認証をする
f:id:tarenagashi_info:20210920011035p:plain:w600

AzureADテナント名を入力する
※既に存在するテナント名は指定できないもよう(既存のテナントにはライセンスを追加できない)
f:id:tarenagashi_info:20210920011401p:plain:w600

グローバル管理者のユーザー名とパスワードを入力する
※通知メールは来なかったので、ユーザー名とパスワードはメモしておいた方がよい
f:id:tarenagashi_info:20210920012653p:plain:w600

作成完了
f:id:tarenagashi_info:20210920012803p:plain:w600

「Get Started」をクリックして、作成したアカウントでサインインするとM365 Defenderが開く
f:id:tarenagashi_info:20210920011755p:plain:w600

Azureポータルからライセンスを確認するとライセンスが25個ある
f:id:tarenagashi_info:20210920011940p:plain:w600

メーカー製PCのWindows10新規インストールでエディションが選択できない件とその解決策



はじめに

元々Windows10 Homeが入っていたLenovoのPCにProをインストールしようとしたら、エディション選択画面が表示されず勝手にHomeがインストールされてしまいました。

調べたところ、メーカー製PCのマザーボードにはWindows10のライセンスが記録されていて、OSインストール時に認証される&認証されたOSのエディションがインストールされるらしい。

解決策は、インストールしたいエディションだけが含まれるインストールディスクを作成すれば良いらしい。
(今回ならProだけのインストールディスクを作る)

Windows10 Proだけのインストールディスクを作成する

インストールディスクの作成

まず、通常の手順でインストールディスクを作成します。

Windows10のダウンロード(https://www.microsoft.com/ja-jp/software-download/windows10)にアクセスし、「ツールを今すぐダウンロード」をクリックする
f:id:tarenagashi_info:20210919173207p:plain:w600

ダウンロードしたツール(メディアクリエーションツール)を起動し、Windows10のインストールディスクをUSBメモリに作成する
f:id:tarenagashi_info:20210919173229p:plain:h300
f:id:tarenagashi_info:20210919173236p:plain:h300
f:id:tarenagashi_info:20210919173246p:plain:h300

Proだけのインストールディスクの作成

コマンドプロンプトを管理者権限で開き、下記コマンドを実行する。
※インストールディスクはEドライブとして認識されています。

5つのエディションが含まれていて、Winows10 Proは「インデックス: 3」であることが分かる。

>Dism /Get-wiminfo /wimfile:"e:\sources\install.wim"

展開イメージのサービスと管理ツール
バージョン: 10.0.19041.844

イメージの詳細: e:\sources\install.wim

インデックス: 1
名前: Windows 10 Home
説明: Windows 10 Home
サイズ: 15,237,935,499 バイト

インデックス: 2
名前: Windows 10 Education
説明: Windows 10 Education
サイズ: 15,494,124,328 バイト

インデックス: 3
名前: Windows 10 Pro
説明: Windows 10 Pro
サイズ: 15,491,336,787 バイト

インデックス: 4
名前: Windows 10 Pro Education
説明: Windows 10 Pro Education
サイズ: 15,494,062,746 バイト

インデックス: 5
名前: Windows 10 Pro for Workstations
説明: Windows 10 Pro for Workstations
サイズ: 15,494,093,537 バイト

操作は正常に完了しました。



Windows Pro(インデックス3)だけ抜き出します。

>dism /Export-image /SourceImageFile:"e:\sources\install.wim" /SourceIndex:3 /DestinationImageFIle:"%USERPROFILE%\Desktop\install.wim"

展開イメージのサービスと管理ツール
バージョン: 10.0.19041.844

イメージをエクスポートしています
[==========================100.0%==========================]
操作は正常に完了しました。



エクスポートした「install.wim」を元の「install.wim」に上書きすると、Proだけのインストールディスクの作成完了です。

動作確認

作成したディスクからインストールを実施します。

無事Proがインストールされました。
f:id:tarenagashi_info:20210919172103p:plain:w450

当時12歳のイーロン・マスクが作ったゲーム「Blastar」で遊んでみる(Playing Elon Musk's Game "Blastar" with MSX Emulator)

当時12歳のイーロン・マスクが作ったゲーム「Blastar」で遊んでみる
(Playing Elon Musk's Game "Blastar" with MSX Emulator)


はじめに

イーロン・マスクは、言わずと知れた航空宇宙メーカー「スペースX」の創設者、電気自動車メーカー「テスラ」の共同創設者です。現在は約21兆円の資産があり、世界1位の富豪です(タイミングによってはAmazonジェフ・ベゾスの方が金持ちの時がある。)

そんな彼が、1984年(当時12歳)に制作したゲームが「Blastar」です。
ゲームのソースコードがネットに公開されていたので、MSXエミュレータで動かしてみます。

(ちなみに、「Blastar」のHTML5版が下記サイトで遊べます。)
moretesla.com

「Blastar」について

「Blastar」は1984年、当時12歳のイーロンが制作したゲームで、SV-318/SV-328というコンピュータ向けにBASICで書かれています。侵略に来たエイリアンの宇宙船を打ち落とすというシンプルなシューティングゲームになっています。

「PC and Office Technology」という雑誌に掲載され、500ドルを貰ったとのこと(1ドル=250円位)。
当時の雑誌のスキャンが下記サイトで公開されています。
archive.org

イーロン・マスクのプログラミングスキル

イーロン・マスクの伝記「イーロン・マスク 未来を創る男」から読み取れる、彼のプログラミングの素養について抜き出してみます。

  • 10歳の時:南アフリカ ヨハネスブルグのショッピングモールで、父にコモドールの「VIC-20」を買ってもらう。6ヵ月掛けて学ぶ想定の「BASICの入門書」を脅迫観念により一睡もせず3日で読了する
  • 高校時代:BASIC、COBOLPascalなどを習得できるコンピュータ教育プログラムに積極的に参加する
  • 大学の時:インターン先の企業でマウスやジョイスティックのドライバを書いていた(多分、C言語アセンブラを使用)
  • 1995年:弟のキンバル・マスクと創業した会社Zip2では、自身でコーディングもしていた。
  • 1999年に創業したX.com以降、自身でコーディングはしてなさそう。
    2000年、クーデターによりイーロンはCEOを追われるが、会社のシステム(オンラインバンク)をマイクロソフトC++(Visual C++)にするかLinuxにするかで他の取締役と意見が合わなかったことも原因のひとつとイーロンは考えている(開発環境が整っている、実行速度が速い、優秀なプログラマが多いという点でイーロンはマイクロソフトC++を推進していた)。

イーロンの従兄弟のリーブ兄弟(母親同士が双子)もEverdreamというソフトウェア会社を設立しており(後にDellに買収された)、プログラミングの素養はありそう。
リーブ兄弟はその後SolarCity(太陽光発電の会社)を設立し、テスラに買収されている。

「Blastar」をMSXで動かしてみる

ディスクイメージの作成

WebMSXを使って、ソースコードをディスクイメージに書き込みます。
※WebMSXを使う理由はコピペが使えるからです。

ソースコードの書き込み

WebMSX(https://webmsx.org)にアクセスする

MSXが起動するので、[Alt+v]を押下する
「PASTE NOW」と表示されるので、[Ctrl+v]を押下しゲームのソースコードをコピペする

ソースコードの修正

「Blastar」はSV-318/SV-328向けに書かれているので、MSXで動くようにソースコードを修正する
再度[Alt+v]を押下し、下記の<修正後>のコード10行をペースト[Ctrl+v]する

<修正前>
20 CLICKOFF
250 SCREEN1:CIRCLE(45,90),0:DRAW"u80r180d80l180"

170 LOCATE10,5:PRINT"              BLASTAR":PRINT:PRINT"         DO YOU NEED INSTRUCTIONS"
260 PRINT:PRINT:PRINT:PRINT"        <       USE JOYSTICK        >":PRINT:PRINT"               FOR CONTROL AND":PRINT:PRINT"                 FIRE BUTTON":PRINT:PRINT"                  TO SHOOT"
265 PRINT:PRINT:PRINT:PRINT"    MISSION:DESTROY ALIEN FREIGHTER":PRINT:PRINT"    CARRYING DEADLY HYDROGEN BOMBS":PRINT:PRINT"    AND STATUS BEAM MACHINES"
580 PRINT"   SCORE";SC;"           SHIPS";SH
1030 SC=SC+80:FORA=1TO20:PUTSPRITE4,(H,G),14,4:NEXTA:CLS:LOCATE3,0:PRINT"SCORE";SC;"            SHIPS ";SH:SPRITEOFF:G=20+INT(150*RND(-TIME)):GOTO620
1100 LOCATE15,15:PRINT"            STATUS BEAM"
1180 SH=SH-1:FORT=1TO60:NEXTT:CLS:LOCATE0,3:PRINT"SCORE ";SC;"             SHIPS ";SH:PUTSPRITE5,(128,205),14,5:PUTSPRITE4,(P,C),8,5:G=20+INT(170*RND(-TIME)):H=0: SPRITEOFF:IFSH<0THEN1200
1200 CLS:LOCATE0,0:PRINT"                  BLASTAR":PRINT:PRINT"             FLEET DESTROYED":PRINT:PRINT"      WOULD YOU LIKE ANOTHER GAME"

<修正後>
20 REM CLICKOFF
250 SCREEN1

170 LOCATE10,5:PRINT"BLASTAR":PRINT:PRINT"DO YOU NEED INSTRUCTIONS"
260 PRINT:PRINT:PRINT:PRINT"< USE JOYSTICK >":PRINT:PRINT"FOR CONTROL AND":PRINT:PRINT"FIRE BUTTON TO SHOOT"
265 PRINT:PRINT:PRINT:PRINT"MISSION:DESTROY ALIEN FREIGHTER":PRINT:PRINT"CARRYING DEADLY HYDROGEN BOMBS":PRINT:PRINT"AND STATUS BEAM MACHINES"
580 PRINT"SCORE";SC;"           SHIPS";SH
1030 SC=SC+80:FORA=1TO20:PUTSPRITE4,(H,G),14,4:NEXTA:CLS:PRINT"SCORE";SC;"           SHIPS ";SH:SPRITEOFF:G=20+INT(150*RND(-TIME)):GOTO620
1100 LOCATE15,15:PRINT"STATUS BEAM"
1180 SH=SH-1:FORT=1TO60:NEXTT:CLS:PRINT"SCORE ";SC;"           SHIPS ";SH:PUTSPRITE5,(128,205),14,5:PUTSPRITE4,(P,C),8,5:G=20+INT(170*RND(-TIME)):H=0: SPRITEOFF:IFSH<0THEN1200
1200 CLS:LOCATE0,0:PRINT"BLASTAR":PRINT:PRINT"FLEET DESTROYED":PRINT:PRINT"WOULD YOU LIKE ANOTHER GAME"
ディスクイメージの出力

左下のアイコンから「Drive A」 > 「Add Blank Disk」を選択(ブランクディスクの挿入)

「save "blastar.bas"」を実行し、プログラムをディスクに書き込む
※日本語キーボードだとうまく入力できないので、ペースト機能([Alt+v][Ctrl+v])を使ってコピペで入力する

「Save Disk Image」を実行し、ディスクイメージをファイル出力する

MSX環境の準備

blueMSXのダウンロード

プログラムを動かすMSXエミュレータを準備します。
ジョイスティックのエミュレートを使いたいので、blueMSXを使います。

blueMSXのダウンロードにアクセスし、ZIP版「blueMSXv28full.zip」をDLする

適当な場所に解凍し「blueMSX.exe」を起動する

マシン構成

「ツール」 > 「マシン構成編集」からマシン構成「 MSX2 - Japanese」を選択
「起動」をクリックする

MSXが起動する

ジョイスティックの設定

「ツール」 > 「コントローラー/キーボード構成編集」を選択
「Joystick 1」で「2ボタン ジョイスティック」を選択し、ジョイコンのテンキーをキーボードの「上下左右」、ボタン2を「スペース」に割り当てる

ゲームの起動

「ファイル」 > 「ディスクドライブ A」 > 「挿入」から、WebMSXで作成したディスクイメージを読込む

「load "blastar.bas"」コマンドを実行し、プログラムを読込む
※「blastar」と「blaster」を間違わないよう注意!!!

「run」コマンドでゲーム起動する

ゲームプレイ

起動画面

ゲームの説明

キーボードの「上下左右」で味方の宇宙船を操作し、「スペース」でボムを発射する。
敵の宇宙船を打ち落とすと80点取得できる。

敵の宇宙船は、STATUS BEAMを発射してくるもよう。
STATUS BEAMからは逃げられないようです。

ゲームオーバー画面

おわりに(問題点)

MSXで動かすといくつか問題があって、1つは敵の宇宙船にボムを当てると本来消えるはずの爆発の残像が残ってしまう。そして、残像を打っても80点獲得できてしまいます。
多分、SV-318/SV-328とMSXの動作の違いによって発生していると思われます。

他にも問題があるはずで、解決策は2つあるかなと思います。

問題解決案1 :SVI-318/SVI-328のエミュレートを利用する

今回使用したblueMSXでは、マシン構成「SVI-318/SVI-328」の選択が可能なので、「SVI-318/SVI-328」でエミューレートすれば、「Blustar」のオリジナルソースが動くかもしれません。
ただし、blueMSXではコピペできない&「SVI-318/SVI-328」のエミュレートではWebMSXで作成したディスクイメージを読めないので、手打ちでコードを入力する必要がありそうです。

問題解決案2 :完全移植

SVI-328のマニュアルのコピーが公開されているので、SVI-328とMSXの差分を見つけて、MSX向けにソースコードを直せばいけるかもしれません。
hansotten.file-hunter.com

ESXiのデータストアにssh/scpで接続したい

ESXi6.7のデータストアにssh/scpで接続したいと思って調べたメモです。

実施方法

ESXiのsshを有効にする
f:id:tarenagashi_info:20210912204219p:plain:w600


sshで接続する
※キーボードインタラクティブ認証を使う
f:id:tarenagashi_info:20210912205201p:plain:h450


「/vmfs/volumes/[データストア名]」がデータストア
f:id:tarenagashi_info:20210912204456p:plain:w650

PowerShellで文字列がIPアドレス(IPv4)か判定する方法

PowerShellで文字列がIPアドレスIPv4)か判定する方法です。

正規表現を使う方法

^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$



ということで、下記でIPv4アドレスか判断できる

> $str -match "^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$"



いくつかの文字列でテストしてみる。

# テストスクリプト
$list = @(
    '192.168.0.24'
    '10.0.0'
    '256.1.0.3'
    '211.255.1.3'
)

$regex = "^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$"

foreach($ip in $list){
    $bool = $ip -match $regex
    Write-Host "${ip}: ${bool}"
}

# 結果
192.168.0.24: True
10.0.0: False
256.1.0.3: False
211.255.1.3: True

その他の方法

型変換を使って判定することもできるらしい。
mtgpowershell.blogspot.com