Windows端末の過去のグローバルIPアドレスを調べる方法(dosvc解析)

フォレンジック
この記事は約5分で読めます。

備忘録でメモ。

Windowsで端末内のetlファイルから、過去のグローバルIPアドレスを取り出す方法があった。

メモリダンプ調べてるときに見かけたファイルをパースしてみたらまぁまぁいい感じだったというもの。dosvcはたぶん日本語記事ないので誰かの役に立てばと思いメモ。

一般的なグローバルIPアドレスの調べ方

端末のグローバルIPを調べるとき、基本的に外部サイトを使用するだろう。

個人的に一番お世話になったのは「確認くん」だ。
ブラウザのついてないPCの場合は、無理やりCURLを打ってグローバルIPを調べたりしていた。

確認くん

グローバルIPを調べる方法1:netshでdosvcをパースする

まず、dosvcは「Delivery Optimization」というWindows標準機能の略(別称?)のようなもので、アップデートの更新に関するネットワーク状況を管理するもの。
(自信がないのでインサイドWindowsで調べておきまーす。ごめんねー)

Windows10では以下のフォルダにdosvc関係のデータが保存されている。

C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Microsoft\Windows\DeliveryOptimization

このフォルダの中にLogsフォルダがある。

C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Microsoft\Windows\DeliveryOptimization\Logs

中身はこのような感じ。

全てetl形式。
etlはデータ詰込み系拡張子の代表格で、いろんなものがブチこまれていたりする。
とりあえずテキストエディタで開いてみると意外と内容を表示可能。

ただ、このままでは大変見づらいので、きれいにパースする必要がありそうだ。

Windows標準のetlファイルであれば、netshコマンドでサクッとパースできることがあるためチャレンジ。
netshは言わずと知れたWindowsのネットワークコマンドで、ARPテーブルをバグらせるときによく使うよね。(そんなことある?)

以下のコマンドを実行。

>netsh trace convert input=dosvc.20221023_063145_069.etl output=1025.txt

このようにきれいにパースできた。

あとはこの中で「ExternalIpAddress」の項目を探すと・・・

赤文字部分がグローバルIP(IPv4)

我が家のグローバルIPアドレスだ!
結構簡単に調べられるね。
国やらのジオロケーション系も含まれているのが特徴。

dosvc.○○○○ファイルは私の環境で9つあり、日付としては約3か月前まである。
このくらいさかのぼれって調べられるのは優秀。

グローバルIPアドレスを調べる方法2:Powershellを使う

1つ目の方法を見つけていろいろググっていたら、Powershellで一発パースする方法があるとわかった。
こちらのほうが楽だな。(1つ目いらんやん)

What was my IP? Ask DoSvc on Windows 10
What was the public IP address of a Windows 10 device?

やり方は簡単で、以下のPowershellコマンドを実行するだけ。
グローバルIPアドレスの項目だけでよければ後者のコマンド。

PS>Get-DeliveryOptimizationLog
PS> Get-DeliveryOptimizationLog | Where-Object Message 
-Like "*ExternalIpAddress*"
赤文字部分がグローバ(ry

こちらも過去3か月前程度まで調べることが可能。
netshでパースするよりもお手軽なので、可能ならPowershellを使った方がいい。

このアーティファクトの使いみち

インシデント調査ではあまり使い道はないだろうが、不正調査系のフォレンジックでは使用場面があるだろう。

特に、法執行機関による犯罪捜査であれば有用なフォレンジックアーティファクトになるはず。

押収したWindowsPCのHDDからこれを解析すれば、特定のタイミングに限られるものの過去のグローバルIPアドレスを遡って調査できるのは良い感じ。
これは、犯罪事実にかかる証明になる可能性もあるし、余罪の捜査にも役立つだろう。

また、被疑者が利用した外部サイトのアクセスログ(に載っているグローバルIPアドレス)との突合により、犯行前後の外部アクセス状況の捜査にも使える。
過去に所在した位置の推定に使える可能性もある。(もちろんそれをするなら、レジストリとか別のアーティファクトの方が優先度は高いが)
なにより、ISPのログがないときにグローバルIPを特定するための最後の手段の一つとして持っておくのは十分価値があるはず。

とかなんとか書いてはみたものの、結局のところ昨今の家庭用ルータのグローバルIPアドレスはポート制御によって複数世帯でIPv4を共有していることも多いし、さらにはdosvcの解析結果自体は、あくまでブツ切りのグローバルIP履歴でしかないので、さすがにこれだけで強力な証明とはなりえないだろう。
やっぱり疎明資料のレベルまで根拠を整えるならISPのログが必要なんだろうね。残念。

だから、dosvc自体はあくまで弱めの間接的な証拠として知ってて損はない程度で、捜査員側の心象強化(やっぱこいつ犯人で違いないわ)にはそれなりに役立つというレベルかな。

警察の捜査員のみなさんはぜひ使ってみよう。
FTKImagerで複製HDDから抜き取ってきて、パターン1のほうのnetshコマンドでパースするだけでいいよ。
時々クリティカルヒットするかも。

まとめ

過去のグローバルIPアドレスを調べる方法についてメモ。

たぶん使わん。ほんとにメモしただけ。

ただ、IPv6の場合どうなるのかよくわからない。
他にもなんかあるかもしれないので、ちょっと周辺フォルダ調べてみる。

コメント

タイトルとURLをコピーしました