家studyをつづって

IT技術やセキュリティで勉強したことをつづっています。

nmapを使ったポートスキャン

概要

nmapとはNetwork Mapperの略で、オープンソースで開発されているポートスキャナです。
nmapには多くのオプションが用意されており、対象ホストのOS情報や稼働しているサービスの情報を調査することができます。

 

 

 

nmapの実行例

nmapは単純に対象のホストを指定するだけでも使えます。

実行例

root@kali:~# nmap 対象のIPアドレス等
Starting Nmap 7.91 ( https://nmap.org ) at
Nmap scan report for 対象のIPアドレス等
Host is up (0.00047s latency).
Not shown: 998 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
MAC Address: 対象のMACアドレス
Nmap done: 1 IP address (1 host up) scanned in 0.38 seconds

上述の通りnmapには多くのオプションが用意されており、それらを使うことで対象ホストの情報を取得します。

 

nmapのオプション

オプション 概要
-A OSや動作しているサービスの詳細情報(バージョン等)を表示
-Pn スキャンの実行前のホスト検知として、
ICMP、TCP(80,443)ARPを送信しホストの存在を確認してスキャン実行
-P0 ホストの検知をおこなわずスキャンを実行
-sS SYNスキャン(TCPハーフスキャン)で、
SYNパケットを送ってACK/SYNの応答からポートの状態を確認します。
ACKは返さず接続を完了しないので、ログに記録されません。
-sS TCPスキャン(対象ホストにログが記録される)
-sU UDPスキャン
-sV 動作しているサービスのバージョンを表示
-v

詳細を表示

※-vvとすることでより詳細な情報が表示できる。

-iL IPアドレスのリストをファイルで指定する

 

ポートの状態

状態 説明
open ポートで何らかのサービスが待ち受けている
(ポートが開いている)
closed ポートにアクセス可能だが待ち受けを行っているサービスはない
(ポートが閉じられている)
filtered ポートに対しパケットフィルタが適用されている。
unfiltered ポートへのアクセスは可能だが、サービスの稼働状態は不明

 

参考にさせていただいたサイト

knowledge.sakura.ad.jp

 

 

 

ファイルのダウンロード元を記録するADS

ADSとは

Windows NTの標準ファイルシステムであるNTFS(NT File System)で管理するファイルやフォルダには、代替データストリーム(Alternate Data Stream、ADS)という、ファイルやフォルダの付加情報を記録する領域があります。

 

 

 

ADSには、セキュリティ管理のためにインターネットからダウンロードしたファイルに対して、ダウンロード元情報等を記載した「Zone.Identifier」という情報があります。
Zone.Identifierには、以下のような内容が含まれています。

  • HostIpAddress:ダウンロード元のホストIPアドレス
  • ZoneId:インターネットゾーン(3=インターネット)
  • ReferrerUrl:ダウンロードを開始したページのURL(HTTPリファラ)
  • HostUrl:ファイルのダウンロードURL

 

ADS(Zone.Identifier)の中身を見てみる

ADSは主にWindows OSが管理のために利用していますが、コマンドプロンプト等のアプリケーションからもアクセスすることが可能です。
アクセスする際の表記方法は以下のような形式です。

 

記載のイメージ

>C:\ファイル名:ADS名

 

インターネット上のサイトから画像ファイル(nasca_neko.png)をダウンロードしてきて、Zone.Identifierのを見てみます。

f:id:iestudy:20201023211305p:plain

ファイルのダウンロード


ダウンロードしてきた「nasca_neko.png」に対して、「more」コマンドでZone.Identifierの中身を表示させた結果が以下の図です。

f:id:iestudy:20201023211454p:plain

実行結果

 

 

 

クラウドのセキュリティ評価制度「ISMAP」

概要

ISMAPとはInformation system Security Management and Assessment Programの略で、 日本語では「政府情報システムのためのセキュリティ評価制度」と呼ばれます。

ISMAPは、クラウド・バイ・デフォルトの方針が打ち出されたことを受け、政府機関においてクラウドサービスを利用する際の、クラウドサービスの安全性評価基準の必要性うけて策定されました。

 

 

 

ISMAPは、政府機関が求めるセキュリティ要求を満たしているクラウドサービスをあらかじめ評価・登録してあるため、政府機関がクラウドサービスを利用する際の選定基準として活用できます。

ISMAPはアメリカの「FedRAMP」に近い制度で、複数のセキュリティ基準をベースに策定されています。

 

f:id:iestudy:20201021134935p:plain

ISMAPの構成
  • JIS Q(ISO/IEC) 27001、27002と、クラウドサービスの情報セキュリティに関するJIS Q(ISO/IEC) 27017が基礎
  • 政府統一基準に含まれる内容で上記に含まれない内容を追加
  • NIST SP800-53の内容から、インシデントレスポンスに関連する内容を中心に追加

 

<参考:FedRAMP>

FedRAMP(Federal Risk and Authorization Management Program)は、アメリカ政府の定めるクラウドサービスに関するセキュリティ評価のガイドラインです。

ベンダがアメリカ政府機関にサービスを提供する場合は、上記セキュリティ基準を満たす必要があります。

www.newton-consulting.co.jp

 

ISMAPの動向

ISMAPは2020年8月頃に審査機関の登録を決定し、今後、各種ベンダからのサービス登録申請を受け付け、2020年12月から2021年1月頃には登録サービスが決定し、ISMAPクラウドサービスリストを公開する予定となります。

f:id:iestudy:20201021135353p:plain

ISMAPの動向

ISMAPは政府機関向けのものですが、国が策定したこと基準であるため、日本の企業においてもクラウドサービスを選ぶ際の指針として活用できると考えられます。

 

参考にさせていただいたサイト

www.ipa.go.jp

https://www.ipa.go.jp/files/000082669.pdf

 

 

 

Metasploitの更新と入れ替え

概要

Kali LinuxにあるMetasploitについて、初期インストール状態のものと、GitHubよりインストールしなおしたものではExploitの更新に差があるらしいことがわかりました。
※初期状態ではmsfupdateを実行しても裏でapt updateが行われるのに対し、GitHubからインストールしたものは、直接リポジトリから最新ファイルを取得することができるとのことです。

この記事ではGitからmetasploitをインストールする手順をまとめます。

 

 

 

インストール手順

metasploitのダウンロード

git clone https://github.com/rapid7/metasploit-framework.git
cd metasploit-framework/

RubyGemのインストール

bundle install

なお、実行にあたって、いくつか不足しているものがあったので追加しています。

gem install bundler:1.17.3
gem install pcaprub -v '0.13.0'
gem install sqlite3 -v '1.3.13'
apt-get install libpcap0.8-dev
apt-get install libsqlite3-dev
apt-get install build-essential

データベース設定

データベースのユーザアカウントを作成します。

su - postgres
createuser msfgit -P -S -R -D

※ユーザ名は "msfgit"、パスワードは "msf"
createdb -O msfgit msfgit

データベースの接続情報設定

cd ~/.msf4
vi database.yml

以下の内容を記載します。

production:
adapter: "postgresql"
database: "msfgit"
username: "msfgit"
password: "msf"
port: 5432
host: "localhost"
pool: 256
timeout: 5

GitHubでアカウント作成

GitHub上でアカウントを作成し、以下のコマンドを実行します。

git config --global user.name "ユーザ名"
git config --global user.email "メールアドレス"

Metasploitの更新

metasploitのディレクトリで以下を実行します。

./msfupdate

上記で更新処理が実行できます。

実際に元々インストールされているmsfconsoleと今回インストールしたもので、以下のようなコマンドを実行すると、ヒットするエクスプロイトの数が違うことが確認できました。

search 2020

参考にさせていただいたサイト

www.pupha.net

 

github.com

 

 

犯罪による収益の移転防止に関する法律(犯収法)とeKYC

概要

ドコモ口座の件より、eKYCという言葉が話題になっています。

この記事ではeKYCについて調べたことをまとめます。

 

 

 

eKYCとは

eKYCとは(electronic Know Your Customer)の略で、電子的な(非対面、オンラインでの)本人確認を行うための機能です。

本人確認を行う理由としては、金融機関等で作成される口座がマネーロンダリング等の不正送金に利用されることを防止する「犯罪による収益の移転防止に関する法律(以下、犯収法)」で定められているためです。

 

 

 

犯収法の規制内容

犯収法の6条では「顧客等の本人特定事項の確認方法」が定められています。

また、2018年11月30日の改正により、オンラインで完結する本人確認方法が追加されました。

当該顧客等又はその代表者等から、特定事業者が提供するソフトウェアを使用して、本人確認用画像情報(当該顧客等又はその代表者等に当該ソフトウェアを使用して撮影をさせた当該顧客等の容貌及び写真付き本人確認書類の画像情報であって、当該写真付き本人確認書類に係る画像情報が、当該写真付き本人確認書類に記載されている氏名、住居及び生年月日、当該写真付き本人確認書類に貼り付けられた写真並びに当該写真付き本人確認書類の厚みその他の特徴を確認することができるものをいう。)の送信を受ける方法

※上記にある本人確認書類の厚みとは、撮影された本人確認書類(免許証等)が単なる画像ではなく、実際のものがあることを確認できるように行うものです。

f:id:iestudy:20201002214135p:plain

免許証での厚みのイメージ

elaws.e-gov.go.jp

 

eKYCのソリューション

eKYCのソリューションにはスマホアプリが提供されているものや、ブラウザで利用できるようなものがあります。

自社サイトのAPIを利用するものや、サイトのページにスクリプトを埋め込むタイプのものがあります。 

jpn.nec.com

 

www.ungate.co.jp

 

ekyc.showcase-tv.com

 

参考にさせていただいたサイト

www.resonabank.co.jp

www.pi-pe.co.jp

https://www.soumu.go.jp/main_content/000478067.pdf

※総務省公開資料

 

 

 

 

ActiveDirectoryのオブジェクトを操作するコマンド

概要

ActiveDirectoryを管理するツールとして「dsコマンド」があります。
組織において新入社員を登録する時等、大量のユーザを一括登録といった作業で活用されます。
dsコマンドには以下のものがあります。

 

ディレクトリサービスコマンドラインツール

ツール 概要
dsadd オブジェクトの追加
dsget オブジェクトの表示
dsmod オブジェクトの修正
dsmove オブジェクトの移動、名前変更
dsquery 検索条件に一致するオブジェクトの検索
dsrm オブジェクトの削除

   

上記の内、dsqueryをAD上で実行してみます。

C:\Users\test>dsquery

説明: このツールのコマンドにより、指定された基準に従ってディレクトリを照会することができます。

次の各 dsquery コマンドは特定のオブジェクトの種類のオブジェクトを検索します。あらゆる種類のオブジェクトを照会できる dsquery *が例外としてあります:

dsquery computer - ディレクトリの中のコンピューターを検索します。

dsquery contact - ディレクトリの中の連絡先を検索します。

dsquery subnet - ディレクトリの中のサブネットを検索します。

dsquery group - ディレクトリの中のグループを検索します。

dsquery ou - ディレクトリの中の組織単位 (OU) を検索します。

dsquery site - ディレクトリの中のサイトを検索します。

dsquery server - ディレクトリの中の AD DC/LDS インスタンスを検索します。

dsquery user - ディレクトリの中のユーザーを検索します。

dsquery quota - ディレクトリのクォータ設定を検索します。

dsquery partition - ディレクトリのパーティションを検索します。

dsquery * - 汎用 LDAP のクエリを使ってディレクトリのオブジェクトを検索します。

特定のコマンドについてのヘルプは "dsquery <オブジェクトの種類> /?" と入力してください。 このとき <オブジェクトの種類> は上記のサポートされているオブジェクトの種類の 1つです。

例: dsquery ou /?

注釈: dsquery コマンドにより、指定された検索条件に一致するディレクトリ内のオブジェクトを検索することができます: dsquery への入力は検索条件であり、dsquery からの出力は検索に一致するオブジェクトの一覧です。特定のオブジェクトのプロパティを得るには、

dsget コマンド (dsget /?) を使用してください。

dsquery コマンドの結果を dsmod、dsget、dsrm または dsmove などの他の 1 つのディレクトリ サービス コマンドライン ツールの入力としてパイプできます。

識別名で区切り文字以外にコンマを使用する場合は、円記号 ("\") をエスケープ文字として追加する必要があります

(例: "CN=Company\, Inc.,CN=Users,DC=microsoft,DC=com")。

識別名で円記号を使用する場合は、円記号をエスケープ文字として追加する必要があります

(例:"CN=Sales\\ Latin America,OU=Distribution Lists,DC=microsoft,DC=com")。

 

例: 過去 4 週間アクティブではなかったコンピューターをすべて検索し、それらのコンピューターをディレクトリから削除するとき:

dsquery computer -inactive 4 | dsrm

 

組織単位 "ou=Marketing,dc=microsoft,dc=com" のユーザーをすべて検索し、それらのユーザーを Marketing Staff のグループに追加するとき:

dsquery user ou=Marketing,dc=microsoft,dc=com | dsmod group

 

"cn=Marketing Staff,ou=Marketing,dc=microsoft,dc=com" -addmbr 名前が "John" で始まるユーザーをすべて検索し、それらのユーザーの事業所番号を表示するとき:

dsquery user -name John* | dsget user -office

 

ディレクトリの中の任意のオブジェクトの任意の属性セットを表示する場合は、 dsquery * コマンドを使用します。たとえば、DN が ou=Test,dc=microsoft,dc=com であるオブジェクトの sAMAccountName の 属性、userPrincipalName の属性、および department の属性を表示するとき:

dsquery * ou=Test,dc=microsoft,dc=com -scope base -attr sAMAccountName userPrincipalName

 

department DN が ou=Test,dc=microsoft,dc=com であるオブジェクトの属性をすべて読み取るとき:

dsquery * ou=Test,dc=microsoft,dc=com -scope base -attr * ディレクトリ サービス コマンドライン ツールのヘルプ:

dsadd /? - オブジェクトの追加のヘルプです。

dsget /? - オブジェクトの表示のヘルプです。

dsmod /? - オブジェクトの修正のヘルプです。

dsmove /? - オブジェクトの移動のヘルプです。

dsquery /? - 検索条件に一致するオブジェクトの検索のヘルプです。

dsrm /? - オブジェクトの削除のヘルプです。

 

なお、サーバをリモートから管理するために、dsコマンドをクライアント端末で実行するためのツールも公開されています。

www.microsoft.com

 

参考にさせていただいたサイト

gihyo.jp

 

 

 

CVSSの読み方

概要

脆弱性の深刻度を表すCVSSの読み方について整理しました。

 

 

 

CVSSとは

CVSS(Common Vulnerability Scoring System)は、脆弱性の深刻度を評価するための指標で、FIRST(Forum of Incident Response and Security Teams)により、適用推進や仕様改善が行われています。
CVSSは脆弱性に対する汎用的な評価手法であり、ベンダーに依存せず、脆弱性の深刻度を同一の基準の下で定量的に比較できます。


CVSSの3つの基準

CVSSは以下の3つの基準で脆弱性を評価します。

 

1.基本評価基準(Base Metrics)

脆弱性そのものの特性を評価する基準です。
セキュリティの3要素である、「機密性(Confidentiality Impact)」、「完全性(Integrity Impact)」、「可用性(Availability Impact)」に対する影響を、ネットワークから攻撃可能かどうかといった基準で評価して算出します。この評価結果は、時間の経過や利用環境の異なりによって変化しません。

ベクタ表記 概要 詳細
AV 攻撃元区分

N:ネットワーク
A:隣接(ローカルIP、ブルートゥース、IEEE 802.11など)
L:ローカル
P:物理(USB経由で攻撃が必要など)

AC 攻撃条件の複雑さ

L:低、特別な攻撃条件を必要とせず攻撃可能
H:高 攻撃者以外に依存する攻撃条件が存在する
(設定情報、シーケンス番号など、攻撃対象の情報収集が事前に必要等)

PR 必要な特権レベル N:不要
L:低
H:高
UI ユーザ関与レベル N:不要、ユーザが何もしなくても脆弱性が攻撃される可能性がある。
R:要、リンクのクリック、ファイル閲覧、設定の変更など、ユーザ動作が必要である。
S スコープ U:変更なし
C:変更あり
(XSS等、影響範囲が脆弱性のあるコンポーネントの以外にも広がる場合に該当。)
C 機密性への影響 H:高
L:低
N:なし
I 完全性への影響 H:高
L:低
N:なし
A 可用性への影響 H:高
L:低
N:なし

 

2.現状評価基準(Temporal Metrics)

脆弱性の現在の深刻度を評価する基準です。
攻撃コードの出現有無や対策情報が利用可能であるかといった基準で評価し、CVSS現状値(Temporal Score)を算出します。
この基準による評価結果は、脆弱性への対応状況に応じ、時間が経過すると変化します。

現状評価基準は以下の式で算出します。

現状値 = RoundUp1(基本値×E×RL×RC)(小数点第1位切り上げ)

CVSSの基本値は脆弱性がセキュリティのCIAにもたらす影響度合いを表すものであり、
PoCの信頼性やベンダの対策状況により基本値より減少していきます。

 

ベクタ表記 概要 詳細
E 攻撃される可能性 X:未評価
H:容易に攻撃可能
F:攻撃可能
(攻撃コードが存在し、ほとんどの状況で使用可能である。)
P:実証可能
(実証コードが存在している)
U:未実証
(実証コードや攻撃コードが利用可能でないor攻撃手法が理論上のみで存在している)
RL 利用可能な対策のレベル X:未評価
U:利用可能な対策がない。
W:製品開発者以外からの非公式な対策が利用可能である。
T:製品開発者からの暫定対策が利用可能である。
O:製品開発者からの正式対策が利用可能である。
RC 脆弱性情報の信頼性 X:未評価
C:製品開発者が脆弱性情報を確認している
R:未確証複数の非公式情報が存在している。
U:未確認の情報のみ存在している。

 

3.環境評価基準(Environmental Metrics)

ユーザの利用環境も含め、最終的な脆弱性の深刻度を評価する基準です。

ベクタ表記 概要 詳細
CR 機密性の要求度 X:未評価
H:高、該当項目を失われると、壊滅的な影響がある。
M:中、該当項目を失われると、深刻な影響がある。
L:低、該当項目を失われても、一部の影響にとどまる。
IR 完全性の要求度 X:未評価
H:高、該当項目を失われると、壊滅的な影響がある。
M:中、該当項目を失われると、深刻な影響がある。
L:低、該当項目を失われても、一部の影響にとどまる。
AR 可用性の要求度 X:未評価
H:高、該当項目を失われると、壊滅的な影響がある。
M:中、該当項目を失われると、深刻な影響がある。
L:低、該当項目を失われても、一部の影響にとどまる。

 

7月に話題になったWindows上で稼働するDNSサーバにおける脆弱性については、Microsoftより現状評価値まで算出されています。

https://portal.msrc.microsoft.com/ja-jp/security-guidance/advisory/CVE-2020-1350

 

また、CVSS値は以下のページで計算することもできます。

jvndb.jvn.jp

 

参考にさせていただいたサイト

www.ipa.go.jp

 

www.slideshare.net

 

 

 

Webにおける「オリジン」について整理してみた

概要

最近みたニュースで「オリジン」に触れたものがありました。
「オリジン」という言葉について、理解しきれていなかったので整理してみました。

 

 

 

 

オリジンとは

IPAのサイトでは、以下のような解説がされていました。

3.2. 源泉(origin) English
原則として、ユーザエージェントは、すべての URI を絶縁された保護ドメインとして扱うことができ、ある URI から別の URI と相互作用するために取得したコンテンツについて、明示的な承諾(consent)を要求する。
残念ながら、この設計は開発者にとっては厄介である。なぜならば、Web アプリケーションは、しばしば協調してふるまう数多くのリソースから成るからである。

代わりに、ユーザエージェントは、URI を「源泉(origin)」と呼ばれる保護ドメインにまとめる。
大雑把に言うと、ふたつの URI は、それらが同一スキーム、同一ホストおよび同一ポートをもつ場合(すなわち、同一の主役(principal)を表現する場合)、同一源泉の部分となる。(詳細については 4 章を参照。)

URLの「スキーム」「ホスト」「ポート」の3つの組み合わせが「オリジン」となります。
実際の例が上記のIPAサイトでも示されています。

 

同一オリジンに該当するもの

http://example.com/
http://example.com:80/
http://example.com/path/file


同一オリジンではないもの

http://example.com/
http://example.com:8080/
http://www.example.com/
https://example.com:80/
https://example.com/
http://example.org/
http://ietf.org/ 

 

同一オリジンポリシー

あるWebページのオリジンから見て同じリソースであれば「同一オリジン」異なるオリジンであれば「クロスオリジン」といいます。オリジンを境としてリソースの保護することを「同一オリジンポリシー(Same-Origin Policy)」といいます。

同一オリジンポリシーでは、あるオリジンの文書やスクリプトから、他のオリジンのリソースにアクセスを制限します。同一オリジンポリシーはウェブのセキュリティにおける重要な仕組みであり、悪意ある行動を起こしかねないリソースの分離を目的としています。

 

上記について、実際に試してみました。

f:id:iestudy:20200907123254p:plain

検証した構成

上記構成では、「cloudA-jyouno.domain/index.html」にあるJavascriptが同じホスト上の別ページ(A.html)と、別ホスト上のページ(B.html)を読み込み、内容を表示するものとなります。

動作としては同一オリジンのページAの内容は表示され、クロスオリジンのページBの内容は表示されません。

 

f:id:iestudy:20200907124132p:plain

ページA(同一オリジン)の読み込み結果

f:id:iestudy:20200907124323p:plain

ページB(クロスオリジン)の読み込み結果

 

参考:作成したWebページのソース

index.html

<!DOCTYPE html>
<meta http-equiv="content-type" charset="utf-8">
<html>
<head>
<title>cloudA-jyouno.domain/index.html</title>

<style type="text/css">
.button {
display : inline-block;
border-radius : 5%;
font-size : 18pt;
text-align : center;
cursor : pointer;
padding : 12px 12px;
background : #000000;
color : #ffffff;
line-height : 1em;
transition : .3s;
}
</style>

</head>
<body>

<a href="JavaScript:alert(frameA.secret.innerHTML);" class="button">同一オリジン実行</a>
<br>
<iframe name="frameA" src="A.html"></iframe>


<br>
<a href="JavaScript:alert(frameB.secret.innerHTML);" class="button">違うオリジンを実 行</a>
<br>
<iframe name="frameB" src="http://ckoudB-jyouno.domain/index.html"></iframe>

</body>
</html>

 

A.html(B.htmlもほぼ同じ内容)

<html>
<head>
<title>A HTML</title>
</head>
<body>
<div id="secret">読み込まれる内容</div>
</body>
</html>

 

ニュースで問題となった内容について
(Webリホスティングサービスとは)

Web Rehostingサービスとは、他のWebサイトのコンテンツを再ホストした上でユーザに閲覧させるサービスです。例として、WebアーカイブやWeb翻訳があります。

Web Rehostingサービスでは、異なるオリジンのコンテンツが、同一のオリジンとして表示されてしまうことで同一オリジンポリシーのアクセス制御が機能しなくなることが問題になります。

f:id:iestudy:20200907125156p:plain

問題のイメージ

Google翻訳などでWebページを翻訳すると上記のようなイメージになります。

※実際にはJavascriptは動作しませんでした。

f:id:iestudy:20200907125455p:plain

Google翻訳での結果

参考にさせていただいたサイト

jvn.jp

www.youtube.com

 

developer.mozilla.org

 

 

 

 

Hyper-V上でKali Linuxの検証環境を構築する

概要

個人的に勉強中のCompTIA PenTest+に関連して、Kali Linuxの検証環境(Kali Linuxと攻撃対象のmetasploitable2)をHyper-V上に構築しました。
構築した環境のイメージは以下の通りです。

f:id:iestudy:20200821101738p:plain

構築した環境イメージ

※2020/11/06追記

上記に追加して、Hyper-V上に「BadStore」を追加しました。追加手順は記事の後半に記載します。

 

 

 

環境構築

Kali Linuxのインストール

Kali Linuxのインストールについては、こちらの内容をご参照ください。

攻撃対象のmetasploitable2の構築

metasploitable2はRapid7が公開している、セキュリティトレーニングのためのツールで、意図的に脆弱性含んだ仮想のLinuxマシンです。

以下のサイトより、仮想ディスクをダウンロードできます。

sourceforge.net

 

上記サイトではmetasploitable2はvmdk形式の仮想ディスクが公開されており、vmware及びVirtualboxにはそのままデプロイする事が可能ですが、vmdk形式ではHyper-V上にデプロイできないため、vhdx形式に変換します。

vmdk→vhdxへ変換

Microsoftが公開している仮想ディスクの変換ツール「Microsoft Virtual Machine Converter 3.0」を使って仮想ディスクを変換します。

MVMCをインストール後、Powershellを管理者権限で開き、metasploitable2を展開したフォルダに移動します。

Powershell上で以下のコマンドを実行します。

Import-Module 'C:\Program Files\Microsoft Virtual Machine Converter\MvmcCmdlet.psd1'

ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath "Metasploitable.vmdk" -VhdType DynamicHardDisk -VhdFormat Vhdx -Verbose

 ここまで実行することでvhdx形式の仮想ディスクが作成されます。

metasploitable2のインストール

仮想マシンは以下のような設定で作成し、動作を確認できました。

f:id:iestudy:20200821102554p:plain

仮想マシンの設定

最初の仮想マシンの作成時、「ネットワークの構成」ではネットワークに接続せず、
仮想マシンの作成後に「設定」より「レガシネットワークアダプタ」を追加してからネットワークに接続します。

上記設定後、仮想マシンを起動すると、ログインのプロンプトが表示されます。
メッセージにも表示されていますが、「msfadmin/msfadmin」でログイン可能です。

 

追記:BadStoreのインストール

「BadStore」はわざと脆弱性が含まれた、やられWebアプリケーションの一つです。

以下のサイトからISOイメージをダウンロードすることができます。

www.vulnhub.com

 

BadStoreインストール

Hyper-V上で新規に仮想マシンを作成する手順で進めます。
起動時に上記よりダウンロードしたISOファイルを指定して仮想マシンを作成します。

また、仮想マシンの作成後、起動前にレガシーネットワークアダプターを追加して起動します。

f:id:iestudy:20201106162523p:plain

レガシーネットワークアダプターを追加

上記の設定後、起動することでBadStoreにアクセスすることができます。

起動するとプロンプトが表示されるので、ifconfigを実行し、BadStoreのIPアドレスを確認します。

確認したIPアドレスを指定してブラウザでアクセスするとBadStoreが表示されます。

f:id:iestudy:20201106162945p:plain

BadStoreにアクセスしたイメージ


 

 

 

Windowsの自動実行機能(AutoRun)について

Windowsの自動実行機能(Autorun)について

Windowsには自動実行の機能があります。Windowsの自動実行とは、CD-ROM、DVD、USBメモリ、外付けハードディスク、あるいはネットワークドライブなどをパソコンに挿入/接続したり、そのアイコンをダブルクリックした際に、その中に格納されているソフトウェアや動画を自動的に実行/再生する機能です。AutoRunとも呼ばれます。

 

 

 

AutoRunのリスク

自動実行を悪用して感染を広げる「USBメモリ感染型ウイルス」というものがあります。代表的なウイルスとしては、「Conficker」「Downad」「Autorun」「Otorun」があります。

「USBメモリ感染型ウイルス」は、次のような動作で感染を広げます。

  1. 既にウイルスに感染しているパソコンがあります。
  2. そのパソコンにUSBメモリを挿すと、ウイルスはUSBメモリにウイルス自身のコピーを作り、潜伏します。同時に、「自動実行」を悪用するための命令を組み込みます。
  3. ウイルスが潜伏しているUSBメモリを、ウイルス対策が不十分な別のパソコンに挿して利用すると、「自動実行」機能によりウイルスが実行されます。これにより、このパソコンもウイルスに感染させられてしまいます。
  4. 以上の動作の繰り返しで、連鎖的に感染が広がる可能性があります。

f:id:iestudy:20200820104816p:plain

USBメモリ感染型ウイルスの動作(IPAより)

AutoRunの使い方と制御方法

AutoRunの使い方

AutoRun機能はUSB等のディスク上に「autorun.inf」というファイルを作成し、起動時に実行したいファイルを指定することで使うことができます。

autorun.infの内容例

[Autorun]
open=実行したいファイル名

また、以下の図にあるWindowsの設定で「何もしない」から「毎回動作を確認する」に変更しておく必要があります。

f:id:iestudy:20200820105019p:plain

Windowsの自動実行設定

上記を設定後にautorun.infを保存したUSB等を接続すると、接続した機器に対する操作の確認で、autorun.infで指定したファイルの実行が提示されるようになります。

f:id:iestudy:20200820105055p:plain

AutoRun実行イメージ

AutoRunの制御方法

レジストリによる設定

以下の場所に「NoDriveTypeAutoRun」というレジストリキーを作成し、値を入力することでドライブごとにAutoRunの実行を制限できるようです。
※過去に設定していなければ、「NoDriveTypeAutoRun」含まれてないようです。

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\

※Gpedit.msc が含まれないオペレーティング システムで自動実行を無効にするには以下の場所になるようです。

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\policies\Explorer\

レジストリキー値の説明

内容
0x1または0x80 不明な種類のドライブのAutoRunを無効にします。
0x4 リムーバブルドライブのAutoRunを無効にします。
0x8 固定ドライブのAutoRunを無効にします。
0x10 ネットワークドライブのAutoRunを無効にします。
0x20 CD-ROMドライブのAutoRunを無効にします。
0x40 RAMディスクのAutoRunを無効にします。
0xFF すべての種類のドライブのAutoRunを無効にします。

 

参考にさせていただいたサイト

www.ipa.go.jp

support.microsoft.com