DLL Search Order Hijacking vs DLL Side-Loading

DLL Search Order HijackingとDLL Side-Loadingの違いについてのメモ。 どちらも正規の実行ファイルに悪意のあるDLLを読み込ませるという点は共通しているが、そこに至るまでの原理は厳密には異なる。 両者の違いについて自分なりに調べてまとめてみた。 ※ただし、近年では単純にEXEファイルが同一ディレクトリに存在する悪意のあるDLLをロードしていた場合、DLL Side-Loadingと呼称するケースが増えているようである。

WinRMとWMIのメモ

WinRMとWMIについて。どちらも「W」から始まる、遠隔からWindowsシステムを管理・変更することができる、などの共通点があり個人的に混同しやすいのでメモ。

RunOnceキーについてのメモ

RunとRunOnceのレジストリキーは、どちらもユーザーのログイン時に指定されたプログラムや処理を自動実行する。 Runキーに登録された処理は、ユーザーがログインするたびに毎回実行されるが、RunOnceキーに登録された処理は、一度実行されると、キーから処理が削除される。 今回はRunOnceの挙動をテストしてみた。

挿入されたUSBのシリアル番号や製品情報をレジストリから調べる

※Windows 7 での検証結果です。 挿入されたUSBのシリアル番号の情報は以下のレジストリから確認できる。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR\ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR\Disk&Ven_I-O_DATA&Prod_USB_Flash_Disk&Rev_3A\00080814A68800770338&0 ハイライトしたレジストリキー名の"&"以前がシリアル番号 (この例だと00080814A68800770338)。また親レジストリキー名よりベンダーはI-O Dataであることが確認できる。 挿入されたUSBのVID (Vendor ID)やPID (Product ID)は以下のレジストリから確認できる。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_04BB&PID_0C43\00080814A68800770338 シリアル番号00080814A68800770338のVIDは04BB、PIDは0C43であることが確認できる。こちらのサイトでUSBのVIDを調べると04BBはI-O DataのベンダーIDであることが確認できる。 取得したシリアル番号をWindows イベントログで検索すると、関連したイベントが記録されている場合がある。 FriendlyNameについて 後日、FriendlyNameというレジストリ・エントリの存在を知った。以下はBUFFALO製USBハード・ドライブ (シリアル番号 000019031A2F、VID 0411)を挿入した際のレジストリの様子。(Windows 7で検証) HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR\Disk&Ven_WDC_WD32&Prod_00BEVT-22ZCT0&Rev_\000019031A2F&0 FriendlyNameの値もUSBデバイスを特定する際の参考になるかもしれない。 以上。 参考 https://hatsoffsecurity.com/2014/06/05/usb-forensics-pt-1-serial-number/ https://hatsoffsecurity.com/2014/06/07/usb-forensics-pt-2-vendor-id-vid-product-id-pid/McGraw-Hill Education発行 Incident Response & Computer Forensics Third Edition P.320

COMオブジェクト・ハイジャックとは

Component Object Model (COM) とは 主にWindows上で動作するソフトウェア間の相互通信を可能にするための技術仕様のこと。 この技術仕様に基づいて開発されたソフトウェアをCOMオブジェクトあるいはCOMコンポーネントと呼ぶ。 詳しくはこちら。