Jump Lists¶
Apa itu Jump Lists¶
Jump Lists menjadi dasar menu yang ditampilkan dari entri aplikasi di taskbar dan Start menu. Automatic Jump Lists adalah riwayat item yang digunakan oleh sebuah aplikasi yang dikelola Windows. Custom Jump Lists adalah kategori dan tugas yang didefinisikan aplikasi. Keduanya dapat menyematkan struktur LNK dengan path target, waktu, konteks volume/jaringan, referensi MFT, dan argumen peluncuran.
Record otomatis dapat mengungkap berkas atau folder yang dibuka oleh sebuah aplikasi, urutan/waktu penggunaan terakhir, jumlah interaksi, dan status penyematan (pin). Daftar kustom dapat memperlihatkan halaman “baru saja ditutup” atau tugas aplikasi—termasuk argumen perintah berbahaya.
Kesimpulan terbaik: aplikasi pemilik mencatat atau menampilkan item/tugas tersebut di Jump List-nya. Perilakunya berbeda antar aplikasi; dukung eksekusi/akses yang sebenarnya dengan bukti lain.
Lokasi dan pengumpulan¶
%APPDATA%\Microsoft\Windows\Recent\AutomaticDestinations\*.automaticDestinations-ms
%APPDATA%\Microsoft\Windows\Recent\CustomDestinations\*.customDestinations-ms
Prefiks heksadesimal pada nama berkas adalah AppID. Kumpulkan kedua direktori dan pertahankan path profil
pengguna. Daftar otomatis adalah kontainer OLE Compound File dengan stream DestList dan stream LNK
bernomor; daftar kustom menggunakan format kategori/tautan tersendiri.
Peringatan bagi analis¶
- Deskripsi AppID berasal dari pemetaan yang sudah dikenal; AppID yang tidak dikenal tidak mencurigakan dengan sendirinya.
- Field
LastModified/ last-used milik entri DestList; waktu target yang disematkan adalah hal yang berbeda. - Jumlah interaksi hanya ada pada versi yang didukung dan bukan jumlah pembukaan secara lengkap.
- Penyematan mempertahankan item melampaui batas kebaruan normal; pembersihan atau pengaturan aplikasi dapat menghapus item lain.
- Sebuah daftar dapat berisi stream yang usang/tidak terhubung atau byte dari daftar kustom sebelumnya yang lebih panjang.
- Argumen dan path LNK yang disematkan dapat dikendalikan penyerang. Asosiasi aplikasi adalah konteks, bukan dasar kepercayaan.
Mengurai dengan Juntei¶
Usage: juntei parse-file jump-lists <INPUT> [OPTIONS]
Input:
-d, --directory <DIR> Recursively find automatic/custom destination files
-f, --file <FILE> Parse one Jump List
--code-page <CP> ANSI code page for embedded links
Output:
-o, --output <PATH> Directory of CSV tables, or JSON/JSONL file
-t, --output-type <TYPE> csv, json, or jsonl
juntei parse-file jump-lists -d evidence/ -o jump-list-csv
juntei parse-file jump-lists -f sample.automaticDestinations-ms -t jsonl | jq .
Dengan auto-parse, tabel CSV-nya adalah FileAndFolderOpening/JumpLists-AutomaticDestinations.csv
dan FileAndFolderOpening/JumpLists-CustomDestinations.csv, langsung di bawah setiap komputer.
Log bersama adalah JumpLists-logs.txt di kategori tersebut. Manifest mencantumkan path yang tepat
di OutputFiles. Ekspor CSV mandiri mempertahankan AutomaticDestinations.csv dan
CustomDestinations.csv di direktori yang Anda pilih. Ekspor otomatis JSON dan JSONL berupa
satu berkas JumpLists.json atau JumpLists.jsonl; struktur record-nya tidak berubah.
Field CSV AutomaticDestinations¶
| Kelompok field | Field dan interpretasi |
|---|---|
| Sumber | SourceFile, SourceCreated, SourceModified, SourceAccessed: kontainer Jump List dan waktu sistem berkasnya. |
| Aplikasi | AppId, AppIdDescription: AppID dari nama berkas dan pemetaan aplikasi yang dikenal. Jangan menyimpulkan identitas dari hash yang tidak dikenal. |
| Kontainer | HasSps, DestListVersion, LastUsedEntryNumber: struktur/versi DestList dan konteks header. |
| Urutan | MRU, EntryNumber: posisi penggunaan terbaru dan pengenal entri/stream heksadesimal. |
| Metadata penggunaan | CreationTime, LastModified, InteractionCount, PinStatus, PinPosition: siklus hidup/penggunaan/status pin DestList. Interpretasikan sesuai versi. |
| Host/path | Hostname, MacAddress, Path, DisplayPath: lokasi target dan konteks pelacakan. Host/MAC bukan satu-satunya dasar atribusi. |
| ID pelacakan | FileBirthDroid, FileDroid, VolumeBirthDroid, VolumeDroid: korelasikan target yang dipindahkan dan pelacakan LNK yang disematkan. |
| Catatan | Notes: memberi tahu Anda tentang stream yang tidak terhubung, sisa data yang dipulihkan, atau konteks parser lainnya. |
| LNK yang disematkan | TargetCreated, TargetModified, TargetAccessed, FileSize, RelativePath, WorkingDirectory, FileAttributes, HeaderFlags, DriveType, VolumeSerialNumber, VolumeLabel, LocalPath, CommonPath, TargetIDAbsolutePath, TargetMFTEntryNumber, TargetMFTSequenceNumber, MachineID, MachineMACAddress, TrackerCreatedOn, ExtraBlocksPresent, Args: interpretasikan seperti yang dijelaskan di Pintasan LNK. |
| LNK tambahan | NetworkPath, Name, IconLocation: field jaringan dan tampilan dari pintasan yang disematkan. |
| Validasi | Problems: stream yang hilang, pemotongan, ketidaksesuaian hitungan, atau kerusakan tautan. |
Field CSV CustomDestinations¶
Keluaran kustom diawali dengan SourceFile, SourceCreated, SourceModified, SourceAccessed, AppId,
AppIdDescription, dan EntryName (nama kategori atau Tasks), diikuti oleh semua field LNK yang disematkan
yang tercantum di atas, lalu Notes, NetworkPath, Name, IconLocation, dan Problems.
JSON/JSONL juga mempertahankan header DestList, score/checksum/property store per entri,
DestListPropertyStore, stream compound-file, kategori kustom, byte setelah kategori terakhir,
dan field bersarang dari setiap LNK yang disematkan.
Strategi investigasi¶
- Identifikasi pengguna dan profil sumber, lalu petakan AppID ke aplikasi dengan hati-hati.
- Urutkan entri otomatis berdasarkan
LastModifieddanMRU; pisahkan item yang disematkan. - Tinjau path, network share, nomor seri volume lepas pasang, referensi MFT, dan argumen.
- Periksa
Notesdan tautan yang tidak terhubung/sisa—item yang dihapus atau sebelumnya dapat bertahan di sana. - Korelasikan dengan RecentDocs, LNK Recent yang berdiri sendiri, Prefetch, SRUM,
$MFT, dan log peristiwa.