Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
20201030_CFReDS1_upload
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
tochimasu
October 30, 2020
Programming
800
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
20201030_CFReDS1_upload
tochimasu
October 30, 2020
Other Decks in Programming
See All in Programming
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
140
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
150
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.7k
APNsからLive Activityを開始する話
yumnumm
0
170
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
260
Performance Optimization With LLMs
xleitix
0
140
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
220
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
190
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
400
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
エージェントを使い続けるためのメタワーク / Meta-work for keeping using the agent
rkaga
1
190
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
180
Featured
See All Featured
Being A Developer After 40
akosma
92
590k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Building Better People: How to give real-time feedback that sticks.
wjessup
371
20k
How to Think Like a Performance Engineer
csswizardry
28
2.9k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1.1k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
800
For a Future-Friendly Web
brad_frost
184
10k
Design in an AI World
tapps
1
350
Skip the Path - Find Your Career Trail
mkilby
1
260
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
850
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
290
Transcript
「CFReDS」を解説する。 (前編)
発表の主旨 1. デジタルフォレンジックとは何か 2. デジタルフォレンジックで 具体的に何をやるのか知る
1. デジタルフォレンジックとは何か
そもそも デジタルフォレンジックって何
セキュリティインシデントの発生に際し、PCや サーバ等の電子機器上のデジタルなデータを 「証拠」として保存する。 証拠をもとに、サイバー攻撃や内部不正な どの「被害分析・原因究明」を行う。 デジタルフォレンジックとは(1)
デジタルフォレンジックとは(2) Digital Forensic Forensic(法的な) デジタルフォレンジックで得られた証拠や分析結果は 裁判など法的な場面でも扱われることがある。
具体的な調査 ⚫ファイルのタイムスタンプ ⚫マルウェアの捜索・解析 ⚫各アプリケーションの起動時間 ⚫ネットワークの通信の解析
証拠保全で集めるデータ ハードディスクのデータ ⚫ハードディスク全体のコピー ⚫ハードディスクの一部(パーティション) ハードディスクには存在しないデータ ⚫メモリ内のデータ ⚫稼働プロセス情報 ⚫ネットワークのログ ⚫コンピュータの物理的情報(型番等)
2.デジタルフォレンジックで 具体的に何をやるのか知る
CFReDSを使って 実際にフォレンジックをやる
CFReDS(Computer Forensic Reference Data Sets) フォレンジックのトレーニング用のデータ NIST(アメリカ国立標準技術研究所)が公開
複数のデータがある 今回は ハッキングケース を使用します。
ハッキングケースの概要
ハッキングケース グレッグ・シャルト (Greg Schardt)という人物に、 無線LANアクセスポイントでの 盗聴容疑がかかっている。 彼の使用していたと思われる ノートPCが発見されたが、 シャルトとこのノートPCに関係 があったことを証明できない。
彼とこのノートPCに関係が あったことを証明してほしい。
問題 ノートPCのHDDのイメージが提供される。 イメージを解析し、全31の問題に答える。 例: ⚫ノートPCのOSは何か ⚫コンピュータを最後に使用したアカウントは何か ⚫盗聴された通信を記録したファイルの場所はどこか ⚫ハッキングに使用された可能性のあるプログラム 等…
全体的な調査のイメージ ノートPC(Windows OS)のHDDイメージを解析して… ⚫PCの基本的な構成情報を入手する。 ⚫犯人と紐づけるためのデータを見つける。 ⚫犯人がどんなソフトで無線LANでの盗聴を行ったか調べる。
問題とHDDイメージ、及び解答 下記のページで 提供されています。 まずは下記でHDDイメージのDLと 問題の確認を行いましょう。 https://www.cfreds.nist.gov/Hacking_C ase.html
渡されるHDDイメージ 2つの形式のHDDイメージが渡される ⚫DD imageと EnCase image ⚫どちらか1つのみを使用すればいい。 ⚫今回の解説では、DD imageを使用する。
解説の進め方(1) 今回は前半の15問の解き方を解説します。 後半は次回に…
解説の進め方 必要となる 技術を説明 問題に挑戦
今回学べること HDDイメージの解析 →HDDの構造を理解して、各種ツールを使用する Windows OSのシステム情報の調査 →レジストリを解析する
注意 ⚫問題の原文は英語です。 分かりにくいので、かなり省略や意訳をしています。 ⚫答えは直接的には示しません。 解き方を重視して解説します。 ⚫ツールのインストール手順は 発表では省略します。 ⚫答えやツールのインストール手順は プレゼンの非表示スライドに記載しています。 プレゼンはconnpassページからDL可能です。
必要となる技術1 HDD解析
使用するツール FTK Imager ⚫下記ダウンロードページからダウン ロード ⚫https://accessdata.com/product- download/ftk-imager-version-4-5
全体的な調査のイメージ ノートPC(Windows OS)のHDDイメージを解析して… ⚫PCの基本的な構成情報を入手する。 ⚫犯人と紐づけるためのデータを見つける。 ⚫犯人がどんなソフトで無線LANでの盗聴を行ったか調べる。
HDDイメージ →HDD内のデータをコピーしたデータ
ノートPCのHDDイメージを解析 →HDDに含まれるデータを解析する技術
HDDの構造を知っておく
HDDの構造 1. HDD 2. パーティション≒ファイルシステム 3. ファイル
HDD=データを記憶する媒体 ↓ HDDのデータ=ファイル ↓ HDD=ファイルを記憶する
パーティション HDD内のいくつかの分割された領域 ⚫1~複数のパーティションを作成できる OSからの見え方 ⚫Windows:Cドライブ、Dドライブ ⚫Linux:/dev/sda1,/dev/sda2 パーティション内には、ファイルシステムを作成できる
ファイルシステム HDD内にファイルを保存するためのデータ構造 ファイルを表すための型や構造体のようなもの ※詳しい定義はまたの機会に…
つまり… ⚫HDD:1~複数のパーティションを含む ⚫パーティション:ファイルシステムを含む ⚫ファイルシステム:複数のファイルを含む
渡されたHDDイメージ DD形式 →HDDを丸ごとコピーした形式
Encaseイメージ EncaseというソフトでHDDから取得されたイメージ 使用するには専用のソフトが必要
DD形式内のファイルを見る方法 1. FTK imagerを使う 2. ファイルシステム部分を切り取ってマウント する (後でやります)
FTK imager ⚫HDDイメージ上のファイルの一覧、エクスポート ⚫PCのHDDイメージの取得
ダウンロード方法は省略して、 使い方を説明します
HDDイメージを読み込む(1) ツールバーの「File」- 「Add Evidence Item」をクリック
HDDイメージを読み込む(2) 「Image File」を選択して、「次へ」
HDDイメージを読み込む(3) HDDイメージのファイルを指定して 「Finish」
配布されたHDDイメージは分割されているので、 結合しておくこと Windowsのcopyコマンドは バイナリファイルの結合にも使用できる。 Windows command prompt > copy /b
SCHARDT.001.dd + SCHARDT.002.dd + SCHARDT.003.dd + SCHARDT.004.dd + SCHARDT.005.dd + SCHARDT.006.dd + SCHARDT.007.dd + SCHARDT.008.dd SCHARDT.dd
Linuxのcatコマンドでもいける。 Linux Bash # cat SCHARDT.001.dd SCHARDT.002.dd SCHARDT.003.dd SCHARDT.004.dd SCHARDT.005.dd
SCHARDT.006.dd SCHARDT.007.dd SCHARDT.008.dd > SCHARDT.dd
左にツリー 右にディレクトリ内のアイテムが表示される WindowsのCドライブのルートは以下の場所にある イメージファイル¥Partition 1¥NONAME¥[root]
ファイルまたはフォルダを右クリックして、 「Export Files」で任意の場所にエクスポートできる。
まとめ HDDは層構造 1. HDDそのもの 2. パーティション≒ファイルシステム 3. ファイル DD形式 ⚫HDDを丸ごとコピーしたデータ形式
DD形式内のファイルの見方 ⚫FTK Imagerを使用する ⚫「File」-「 Add Evidence Item 」-「Image File」で読み込む
早速一問解いてみる
以降の問題では 結合したHDDイメージを使用します。 解説した方法の通りに HDDイメージを結合しておきましょう。
問1 ⚫取得したイメージのハッシュは正しいか 正しいハッシュ値は以下の通り(※結合後) MD5 AEE4FCD9301C03B3B054623CA261959A
ファイルのハッシュ値を計算するには コマンドを使用する Windows PowerShell PS > Get-FileHash -Algorithm MD5 .¥SCHARDT.dd
Linux Bash # MD5sum.¥SCHARDT.dd
正しいハッシュ値と合致すればOK 計算結果が間違っていたら HDDイメージを再度DLしてみる。
ここまでの問題でわかること ⚫正しい証拠を使って調査する ことが大前提 間違った証拠からは 間違った調査結果が生まれる。
必要となる技術2 レジストリ解析
使用するツール(1) Registry Viewer ⚫下記ダウンロードページからダウン ロード ⚫https://accessdata.com/product- download/registry-viewer-2-0-0
使用するツール(2) KaniReg ⚫githubからソースコードが入手で きる ⚫つまり、コンパイルが必要 ⚫https://github.com/4n6ist/KaniR eg
KaniRegのコンパイル(1) 「Code」-「Download ZIP」を クリックして、ソースコードのZIPを ダウンロード
KaniRegのコンパイル(2) ダウンロードした 圧縮ファイルを解凍
KaniRegのコンパイル(3) KaniRegは.NETの MSBuild.exeでコンパイルできる 下記のフォルダにある。 環境によってバージョン番号が異なるが、 基本的に最新のものでいい。 C:¥Windows¥Microsoft.NET¥Framework64¥vバージョン番号 ¥MSBuild.exe
KaniRegのコンパイル(4) MSBuild.exeを使用して KaniRegをコンパイルする。 引数には、解凍したフォルダ内の KaniReg.slnを指定する MSBuildがあるフォルダとKaniRegを解 凍したフォルダの部分を置き換えて コマンドを実行 MSBuildがあるフォルダ¥MSBuild.exe KaniRegを解凍したフォ
ルダ¥KaniReg.sln -p:Configuration=Release
(参考)筆者の環境でのコマンド C:¥Windows¥Microsoft.NET¥Framework64¥v4.0.30319¥MSBu ild.exe C:¥Users¥tochimasu¥Downloads¥KaniReg- master¥KaniReg.sln -p:Configuration=Release
KaniRegのコンパイル(5) コマンドの実行すると警告が出るかもしれないが 基本的にはコンパイルはできているはず。
KaniRegのコンパイル(6) コンパイルが成功すると、 以下のフォルダにEXEファイルが生成される。 EXEファイルが生成されたことを確認して コンパイルは終了。 KaniRegを解凍したフォルダKaniReg¥bin¥Release
全体的な調査のイメージ ノートPC(Windows OS)のHDDイメージを解析して… ⚫PCの基本的な構成情報を入手する。 ⚫犯人と紐づけるためのデータを見つける。 ⚫犯人がどんなソフトで無線LANでの盗聴を行ったか調べる。
Windowsの構成情報を入手するためには… →レジストリを確認する
レジストリ ⚫Windowsのシステム情報を格納するもの ⚫「レジストリエディタ」で確認できる
レジストリの構成 キーとエントリで構成される階層構造 ⚫キー:配下にキーとエントリを持つ フォルダのようなもの ⚫エントリ:自身に紐づく値を持つファ イルのようなもの
レジストリエディタ上の表示 キー エントリ
(例)わかる情報 エントリ名 説明 InstallDate OSのインストール日(読み方は後で解説) Product Name OSの名前 SystemRoot Windowsフォルダの場所
レジストリの実体 ハイブファイル ⚫レジストリのデータを保持するファイル ⚫主に” C:¥Windows¥System32¥config”に保存される ⚫ハイブファイルは複数ある
対応関係 ⚫ハイブファイルには対応するキーが存在する ⚫対応するキーをハイブと呼ぶ (例)SECURITYハイブ下のキーとエントリは、 SECRUTYハイブファイルに保存されている
今回使うハイブファイル一覧 HKLM:HKEY_LOCAL_MACHINEの略 ハイブファイルは特殊な取り出し方が必要 (後で説明します。) ※%SystemRoot%:C:¥Windowsのこと ハイブ パス ファイル HKLM¥SYSTEM %SystemRoot%¥System32¥config
SYSTEM HKLM¥SAM %SystemRoot%¥System32¥config SAM HKLM¥SECURITY %SystemRoot%¥System32¥config SECURITY HKLM¥SOFTWARE %SystemRoot%¥System32¥config SOFTWARE
%systemRoot%の正確な定義 Windowsの環境変数の一つ 大抵は「 C:¥Windows 」が設定されている 環境変数はsetコマンドで確認できる Windows command prompt >
set 環境変数名
筆者が知っているハイブファイル一覧(1) ハイブファイルがないキーもある? ハイブ パス ファイル HKLM¥BCD00000000 ¥Boot BCD HKLM¥COMPONENTS %SystemRoot%¥System32¥config
COMPONENTS HKLM¥SYSTEM %SystemRoot%¥System32¥config SYSTEM HKLM¥SAM %SystemRoot%¥System32¥config SAM HKLM¥SECURITY %SystemRoot%¥System32¥config SECURITY HKLM¥SOFTWARE %SystemRoot%¥System32¥config SOFTWARE HKU¥.DEFAULT %SystemRoot%¥System32¥config Default
筆者が知っているハイブファイル一覧(2) HKU:HKEY_USERS OSによってパスが異なる Windows Vista以降 ハイブ パス ファイル HKU¥{SID} (windows
XP, Server 2003) ¥Documents and Settings¥ユーザ名 NTUSER.DAT ¥Documents and Settings¥ユーザ名¥Local Settings¥Application Data¥Micro soft¥Windows USRCLASS.DAT HKU¥{SID} (windows Vista以降) ¥Users¥ユーザ名 NTUSER.DAT ¥Users¥ユーザ名¥AppData¥Local¥Microsoft¥Windows USRCLASS.DAT
他のPCのレジストリの閲覧 →ハイブファイルから可能
ハイブファイルは FTK ImagerでHDDイメージから取得できる イメージファイル¥Partition 1¥NONAME¥[root]¥WINDOWS ¥system32¥config¥
ハイブファイル内の レジストリ情報の確認
レジストリエディタでも可能だが… ⚫自分のPCのレジストリ内にキーを読み込む (システムに影響はないが…) →誤操作の危険が高い 既存のキー 読み込んだキー
Registry viewerを使用する ⚫ハイブファイルからレジストリ情報を読み込む ⚫レジストリエディタでは見れない情報を見れる
ダウンロード方法は省略して、 使い方を説明します
注意点 ライセンスがないので、demoモードで使用する。 セキュリティデバイスが見つかりませんでした。 ネット ワークセキュリティデバイスの場所を指定しますか? [はい]をクリックして続行するか、[いいえ]をクリックし てdemoモードでレジストリ ビューアを実行します。
Registry Viewerの使い方(1) 起動すると下記の メッセージボックスが表示される。 「いいえ」をクリックして、demoモードで実行
Registry Viewerの使い方(2) Demoモードで実行すると通告されるので 「OK」をクリック
Registry Viewerの使い方(3) Registry Viewerが起動する
Registry Viewerの使い方(3) ハイブファイルを ドラッグアンドドロップすることで開ける
キー キーとそのツリー を表示 エントリ エントリとそれに 紐づく値を表示 プロパティ 付加情報を表示 ⚫ 書き込まれた
時間 ⚫ エントリの値 をパースした 結果 16進エディタ エントリの値を16 進エディタで表示 4つの領域
Registry Viewerの使い方(4) キーを右クリック-「copy key name」 でキーのパスを取得可能
Registry Viewerの使い方(5) 16進数エディタを右クリックして エントリの値をコピー可能
レジストリの見方はわかったが…
ほしい情報を含むエントリが どこにあるかわからない
ほしい情報を含むエントリを得る方法 1. ネットで検索する 2. レジストリ解析ツールを使用する
1. ネットで検索する コツ ⚫英語のページを漁る ⚫以下のキーワードを付加する ⚫Registry ⚫Forensics
2. レジストリ解析ツールを使用する レジストリ解析ツール ⚫よく使われる情報を抜き出して整理する ⚫特殊な構造のデータをパースする
主要なツール ⚫KaniReg ⚫RegRipper 今回はKaniRegを解説します。
KaniReg ⚫レジストリから主要な情報を抜き出して テキストファイルに出力してくれるツール ⚫必要があればデータのパース等も行う
KaniRegの使い方 解析したいHiveファイルを 指定するだけでOK
(例)SAMの解析結果
KaniRegを使用すれば今回の問題は 大体解ける が…
ツールの検証もかねて 実際のキーやエントリを見た方が勉強になる。
まとめ(1) 構成情報の確認にはレジストリ ⚫キー:フォルダ ⚫エントリ:ファイル レジストリの実体 ⚫ハイブファイルに保存されている ⚫HDDイメージからとりだす必要がある
まとめ(2) ハイブファイル内のレジストリの見方 ⚫Registry Viewerを使用する ⚫起動したら「いいえ」-「OK」でDemoモードで実行する ⚫キーのパスはキーを右クリックしてコピー ⚫エントリの値は16進エディタを右クリックしてコピー キーやエントリの調べ方 ⚫ネットで調べる ⚫レジストリ解析ツール(KaniReg等)を使う
実際に問題を解く
問題を解く前に、 先ほど解説した方法で ハイブファイルを 取り出しておきましょう。
問2,4,5,6,7 レジストリを確認するだけでOK ⚫問2:OS名 ⚫問4:タイムゾーン ⚫問5:登録所有者名 ⚫問6:コンピュータ名 ⚫問7:プライマリドメイン名
各問題のキー 調べるだけでわかるので ここに記載しておく 問題 ハイブファイル キーのパス エントリ名 2 software HKLM¥software¥Microsoft¥Windows
NT¥CurrentVersion ProductName 4 system HKLM¥system¥ControlSet001¥Control¥Tim eZoneInformation StandardName 5 software HKLM¥software¥Microsoft¥Windows NT¥CurrentVersion RegisteredOwner 6 system HKLM¥system¥ControlSet001¥Control¥Co mputerName¥ComputerName Computername 7 SECURITY HKLM¥SECURITY¥Policy¥PolPrDmN (Default)
答え 問題 概要 解答 2 OS名 Microsoft WindowsXP 4 タイムゾーンの設定
Central Standard Time(中部標準日時) UTC -0600 5 登録所有者名 Greg Schardt 6 コンピュータ名 N-1A9ODN6ZXK4LQ 7 プライマリドメイン名 EVIL
問3,8 基本はレジストリを確認するだけだが 少々工夫が必要 ⚫問3:インストール日 ⚫問8:最後のシャットダウン日時
各問題のキー 問題 ハイブファイル キーのパス エントリ名 3 software HKLM¥software¥Microsoft¥Windows NT¥CurrentVersion InstallDate
8 system HKLM¥system¥ControlSet001¥Control¥Win dows ShutdownTime
早速エントリを見てみる 16進数値 0x41252E3B
エポックタイムへの変換が必要 エポックタイムとは 時間を 1970年1月1日からの経過秒数で表す形式 つまり、先ほどの値の示す時刻は 1970/1/1 00:00:00(UTC)から 0x41252E3B秒経過した時刻を示している。
16進数→10進数 まず、10進数に変換する PowerShellならそのまま入力するだけで 変換してくれる(スゴいね!PowerShell!) Windows PowerShell PS > 0x16進数
エポックタイム→通常の時間表記 エポックタイムの変換も PowerShellで可能 エポックタイムの部分を置き換える。 Windows PowerShell PS > ((Get-Date “1970-01-01
00:00:00.000Z”) + ([TimeSpan]::FromSeconds(エポックタイ ム))).ToUniversalTime()
結果 2004年8月19日 22:48:27 (UTC)
補足 NISTの正式解答だと 08/19/04 05:48:27PMとなっている おそらくタイムゾーンのをUTCではなくPCの 設定であるCST(中部標準日時)に合わせた ままの為である。 混乱を防ぐため、本解説では時間はすべて UTCに変換する。
補足の補足 CSTとUTCの時差は-0600である。 先ほど計算した解答から6時間引くことで、 NISTの正式回答と同じになるはずだが、 1時間ずれる。 2004/8/19/22:48:27 – 06:00:00 = 16:00
これは、PCの時間がサマータイム期間中の為。 CTSのサマータイム期間中での時差は -0500である。 -0500の時差であれば計算が合う。
リトルエンディアン レジストリ内では、 値がリトルエンディアンで表記されている場合がある。 (Registry Viewerは自動で ビッグエンディアン変換してくれる様子) 平たく言えば、バイト列を ⚫左から並べるか(ビッグエンディアン) ⚫右から並べるか(リトルエンディアン) 通常の表記はビッグエンディアン
ビッグエンディアンに並び替える 1バイトごとに右からに並べていく 16進数2桁で1バイトを表しているので… 41 25 2E 3B 3B 2E 25
41
エンディアンのよくある勘違い ⚫ビットごとの並び順を定めるものではない ⚫16進数1桁の並び順を定めるものではない ⚫バイトごとの並び順を定めるものである つまり、こうなったりはしない (1桁ずつ並び変えない) リトルエンディアン:41 25 2E 3B
ビッグエンディアン:B3 E2 52 14
おまけ(NTエポックタイム) 時間を 1601年1月1日(UTC)からの経過秒数で表す形式 Windows PowerShell PS > ([datetime]::fromfiletime(0x41252E3B)).ToUniversalTime( )
先ほどは問題3を例にしたが 問題8も解き方は同様
計算が面倒くさい人 Registry Viewerの プロパティに乗っている InstallDateエントリを選択していれば 勝手に変換してくれる。
答え 問題 概要 解答 3 インストール日 2004年8月19日 22:48:27 (UTC) 8
最後のシャットダウン日時 2004年8月27日 15:46:33 (UTC)
問題9 ⚫ローカルアカウントの数 少々特殊だが、レジストリを見れば すぐにわかる。 問題 ハイブファイル キーのパス エントリ名 9 SAM
HKLM¥SAM¥SAM¥Domains¥Account¥User s¥Names¥ユーザ名 -
キー名を見る Namesキー配下のキーが ユーザアカウント名の一覧
答え 以下の5つ ⚫Administrator ⚫Guest ⚫HelpAssistant ⚫Mr.Evil ⚫SUPPORT_388945a0 問題 概要 解答
9 ローカルアカウントの数 5
問題10,11 KaniRegを使えばすぐわかる ⚫問題10:ログオン回数の最も多いユーザ ⚫問題11:最後にログオンしたユーザ
使用するハイブファイル 問題 ハイブファイル 10 SAM 11 SAM
ハイブファイルをKaniRegで解析 Hiveファイル: FTKImagerで取り出したSAM タイムゾーン指定:UTC(推奨)
AccountUsersの部分: 各アカウントの情報 AccountUsers キーの説明:ユーザーアカウント キーのパス:SAM¥Domains¥Account¥Users キーの最終更新日時:2004/08/19 23:03:54 (UTC) ユーザー名 :
Administrator [01F4] フルネーム : コメント : Built-in account for administering the computer/domain 最終ログイン日時 : 1970/01/01 00:00:00 (UTC) パスワード再設定日時 : 2004/08/19 17:17:29 (UTC) パスワード失敗日時 : 1970/01/01 00:00:00 (UTC) ログイン回数 : 0 --> 普通ユーザーアカウント --> パスワード有効 …
AccountUsersの部分を見て ⚫各アカウントのログイン回数 →問題10の解答 ⚫各アカウントの最後のログイン時間 →問題11の解答 が分かる
答え 問題 概要 解答 10 ログオン回数の最も多いユーザ Mr. Evil 11 最後にログオンしたユーザ
Mr. Evil
各問題の答えはプレゼンの 非表示スライドに記載
ここまでで判明する事実 ⚫基本的なPCの構成 ⚫ノートPCでは、「Mr. Evil」というアカウン トが主に使用されていたこと なんとか、「Mr. Evil」と被疑者のSchardtを つなげる証拠を見つけられないだろうか。
必要となる技術3 HDDイメージの取り扱い ~TSK編~
使用するツール TSK(The Sleuth Kit) ⚫Windowsバイナリ等もあるが、 今回の解説ではLinuxで使う想定 ⚫RPMやDebパッケージ等でも配布され ている。
TSKのダウンロード方法 ペネトレーションテスト用 Linuxディストリビューションである kali linuxに入っているものを 使うのが手っ取り早い 下記のリンクにはKali Linuxの 出来合いのVirtualBoxやVmware向けの イメージがそろっている。
⚫https://www.kali.org/downloads/
全体的な問題のイメージ ノートPC(Windows OS)のHDDイメージを解析して… ⚫PCの基本的な構成情報を入手する。 ⚫犯人と紐づけるためのデータを見つける。 ⚫犯人がどんなソフトで無線LANでの盗聴を行ったか調べる。
犯人と紐づけるためのデータを見つけるには →データを自在に扱える必要がある
FTK Imagerでは検索ができない
マウントして 自在に扱えるようにする
丸ごとのHDDイメージのままでは マウント不可 マウント可能なファイルシステム ≒パーティションの部分を 切り出す必要がある。
やるべきこと 1. HDD内のパーティションを検出 2. HDD内のパーティションを切り出す 3. 切り出したパーティションの内容の確認
TSK(The Sleuth Kit)を使う HDDイメージを 調査できる コマンドラインツール集 ⚫ディスクの分析 ⚫パーティションの分析 ⚫ファイルシステムの分析
今回使うもの ⚫mmls ⚫mmcat ⚫fsstat
mmls HDDイメージに含まれる パーティションの一覧を表示する Linux Bash # mmls HDDイメージ
mmlsのカラム 1. 番号(mmls採番) 2. パーティション システム上の番号 3. セクタのスタート位置 4. セクタの終了位置
5. セクタの長さ 6. パーティションの概要 1 2 3 4 5 6
2番のパーティションに ファイルシステムが存在している →2番のパーティションを切り出す
パーティションを切り出すには mmcatを使用する
mmcat パーティションの内容を 標準出力に出力する パーティションの番号は mmls出力の1列目を参照 Linux Bash # mmcat HDDイメージ
パーティションの番号 > 出力ファイル
先ほどmmlsで確認した 2番のパーティションを切り出す
切り出したパーティション内の ファイルシステムを確認する
fsstat イメージに含まれる ファイルシステムの詳細を表示する Linux Bash # fsstat HDDイメージ
NTFSファイルシステムが 格納されていることが分かる
切り出したパーティションを マウントする
mountコマンドでマウント ファイルシステムタイプには NTFSを指定する Linux Bash # mount –t ntfs イメージ
マウントポイント
切り出したパーティションの イメージをマウント成功
まとめ HDDイメージ内のパーティションの確認 ⚫mmls パーティションの切り出し ⚫mmcat パーティション内のファイルシステムの確認 ⚫fsstat
問題
問題を解く前に解説した方法で イメージをマウントしておきましょう。
問12 「Greg Schardt」と検索すると 複数のファイルが出てくる。 そのうちの1つは Greg Schardt=Mr.Evilであることを 示している。 そのファイルの名前を答えよ また、そのファイルの関係する
プログラムを答えよ
要は 下記2つの文字列が出てくるファイ ルを探せ ⚫Greg Schardt ⚫Mr. Evil
解法 マウントしたイメージ内をgrep ワンライナーにしてみる マウントしたイメージを置き換える Linux Basfh # grep -FRl “Greg
Schardt” マウントしたイメージ | xargs -I '{}' grep -FRl "Mr. Evil" '{}'
2つのファイルが見つかる マウントポイント/Program Files/Look@LAN/irunin.ini マウントポイント/WINDOWS/Look@LAN Setup Log.txt
irunin.ini ユーザーがMr. Evilであること オーナーがSchardtであることが示されている [Variables] %LANHOST%=N-1A9ODN6ZXK4LQ %LANDOMAIN%=N-1A9ODN6ZXK4LQ %LANUSER%=Mr. Evil (中略)
%REGOWNER%=Greg Schardt
Look@LAN Setup Log.txt Mr. EvilとSchardtの文字列はあるが 関連性を示すものがない。 Value data = Greg
Schardt (中略) C:¥Documents and Settings¥Mr. Evil¥Desktop
より強く関連性を窺わせる方が 解答となる
関連するプログラムについて Look@LANで検索すると 同名のプログラムがあることが分かる。
答え 問題 概要 解答 12 Greg SchardtとMr. Evilの 関係を示すファイル 関連するプログラム
/Program Files/Look@LAN/irunin.ini Look@LAN
問13 PCのNICの一覧 レジストリを見るだけでわかる 問題 ハイブファイル キーのパス エントリ名 13 software HKLM¥software¥Microsoft¥Windows
NT¥CurrentVersion¥NetworkCards¥数字 -
DescriptionがNIC名
答え 問題 概要 解答 13 NICの一覧 ・Compaq WL110 Wireless LAN
PC Card ・Xircom CardBus Ethernet 100 + Modem 56 (Ethernet Interface)
問14 問13のファイルから以下を見つけろ ⚫PCのIPアドレス ⚫PCのMACアドレス すぐに見つかるので 解説は省きます。
答え 問題 概要 解答 14 IPアドレスとMACアドレス IPアドレス:192.168.1.111 MACアドレス:0010a4933e09
問15 問題14のMACアドレスから ベンダ名を調査せよ ベンダ名検索は以下の IEEEのサイトから https://regauth.standards.ieee.org/standards-ra- web/pub/view.html#registries
IEEEのサイトで調査(1) 1. Please select a Productで 「MAC Address Block Large
(MA-L)」を指定 2. をクリック
IEEEのサイトで調査(2) 1. 「Filter results by search text」に 問題13で判明したMACアドレスを入力 2. をクリック
IEEEのサイトで調査(2) 検索結果が出る Company Nameがベンダ名
MACアドレスからの ベンダ調査について
MACアドレスの前半の 24~36 bitは、俗にベンダ部と呼ばれる。 企業ごとにIEEEから割り当てられた ビット列を使用する。 そのため、MACアドレスからNICのベンダ を調査することができる。 例 ⚫Intel:982CBC ⚫東芝:000039
ベンダ部の長さは アドレスブロックによって決まる。 アドレスブロックは、 ベンダが割り振れるアドレスの多さを決める アドレスブロックは以下の3つ ⚫MA-L:約1600万アドレスを割り振れる ⚫MA-M:約100万アドレスを割り振れる ⚫MA-S:4096アドレスを割り振れる。
ベンダ部の長さ ⚫MA-L:24ビット ⚫MA-M:28ビット ⚫MA-S:36ビット ベンダ部が短い方が、 後半の企業が自由に決められるbit数が 多くなるため、割り振れるアドレス数も多くなる。 IPアドレスのネットワーク部などと 似たような概念
何が言いたいかというと ベンダによっては MA-Lではなく、MA-Mなどを使用している 場合がある。 IEEEのサイトで検索を行う際は、そこに注 意して行うこと。
MA-Lで出なかったら MA-Mなどでも検索してみよう
答え 問題 概要 解答 15 NICのベンダ XIRCOM
ここまでの調査でわかること Mr. EvilことSchardtが LooK@LANというソフトを使っていたことが Look@LANの設定ファイルから分かった。 調べによると、LooK@LANは LANにつながっているPCを 調べられるソフトウェアらしい 盗聴の助けにしたに違いない。 しかし、LANのPCを見るだけでは
LAN内の通信の盗聴はできない。 Schardtはどのようにして盗聴を 達成したのだろう。 少なくとも、盗聴をするためのソフトウェアが必要なはずだ。 PC内で実行されたソフトウェアが分かれば…?
今回はここまで
今回学べたこと HDDイメージの解析 →HDDの構造を理解して、各種ツールを使用する ⚫FTK Imagerで中身のファイルを取り出す。 ⚫The Sleuth Kitでイメージを自在に操る。 Windows OSのシステム情報の調査
→レジストリを解析する ⚫Registry Viewerでレジストリを見る ⚫KaniRegでレジストリを解析
次回はCFReDSの後半をやります。
プレゼン資料について connpassページから ダウンロードできます。 発表しきれなかった内容を 非表示スライドとして 詰め込んでいます。 ⚫答え ⚫解説の補足 ⚫ツールのインストール方法
ご清聴ありがとうございました。