Er is veel informatie verborgen in link files. Met name de MAC tijden (Modified (last written), Accessed, Created) lijken erg interessant. Het aardige is dat de link file zowel MAC tijden van zichzelf bijhoudt, als MAC tijden van het bestand dat het (ooit heeft) vertegenwoordigd. Ook is de padstructuur naar het vertegenwoordigde bestand en het volume label (van het volume waarop het bestand is / was opgeslagen) in de link file verborgen. Ik heb uitgezocht hoe je deze informatie kunt vinden.
Link files (met de extensie .lnk) komen het meest voor in de mappen:
- Desktop (Bureaublad)
- Recent (Onlangs geopend)
- Menu Start
- SendTo
Je vindt deze mappen onder Windows, en wel in:
C:\Documents and Settings\gebruikersnaam\
Fileheader
Tijdens mijn uitzoekwerk bleek dat de fileheaders van de meeste linkfiles telkens dezelfde hexwaarde hebben, namelijk 4c0000000114020000000000c000000000000046
Een voorbeeld van een 'onlangs geopend' linkfile met de header in FTK Imager
Simpelweg betekent dit, als je carved of een zoekopdracht doet met behulp van deze hexadecimale waarde, dan vind je het merendeel van de linkfiles die het systeem kent (dus ook die in de unallocated clusters).
Mijn waarneming blijkt hetzelfde te zijn als die van Jesse Hager in diens documentatie over het Shortcut File Format. Jesse Hager meldt het volgende over de opbouw van het bestand (File header):
De linkfile start uiteraard met offset 0h
de bijbehorende waarde is altijd 4C 00 00 00h ('L')
deze fileheader wordt gevolgd door 16 bytes die toebehoren aan de GUID van shell links. In bytes is dat 01 14 02 00 00 00 00 00 c0 00 00 00 00 00 00 46
Een GUID is een 128-bit integer (16 bytes) die gebruikt kan worden op alle soorten computers en alle soorten netwerken wanneer een unieke identificatie is vereist. De kans is minimaal dat een dergelijke identificatie dubbel wordt gebruikt.
Het lijkt er op dat alle kleine .lnk bestanden (maximaal zo'n 300 - 600 bytes) in de MFT zijn terug te vinden. Programma's zoals Winhex geven in dat geval als fileheader FILE0 aan.
Zoals te zien is in dit voorbeeld (Winhex) staat de hele linkfile in de MFT. Het formaat van de linkfile is zo'n 600 bytes en de fileheader is FILE0. Alle bestanden in de MFT (dus niet alleen de linkfiles) hebben een fileheader FILE0. Als je een zoekopdracht zou doen naar FILE0 dan is het resultaat al snel enige tienduizenden cq. honderdduizenden treffers en zul je de linkfiles er niet snel tussenuit halen !
Desktop
C:\Documents and Settings\gebruikersnaam\Bureaublad
De Desktop map bevat snelkoppelingen naar de huidig geïnstalleerde en eerder geïnstalleerde (doch alweer gewijzigde) configuraties van het bureaublad. De snelkoppelingen refereren naar doelbestanden (applicaties, mappen, bestanden) of naar objecten zoals printers of externe harddisks. Elke snelkoppeling die in deze map staat wordt op het bureaublad vertegenwoordigd door een icoon. Als je op zo’n icoon op het bureaublad klikt dan wordt bijvoorbeeld een bestand gestart of een map geopend.
Als een bepaalde snelkoppeling aanwezig is op het bureaublad, dan maakt dat aannemelijk dat de eigenaar van de computer wist dat het bijbehorende programma of bestand op zijn computer aanwezig is / was. Tijdens de installatie van programma’s wordt over het algemeen de optie geboden om een snelkoppeling op het bureaublad te plaatsen.
Belangrijke informatie
Zoals eerder genoemd registreert het besturingssysteem MAC tijden (Modified (last written), Accessed, Created) met betrekking tot de link files. Je kunt deze MAC tijden vergelijken met bijvoorbeeld de installatiedatum van het bijbehorende softwareprogramma of de map waarin het programma staat. Dan kan blijken dat de snelkoppeling is gemaakt nadat het programma op de computer is geïnstalleerd. De gebruiker heeft dan mogelijk opzettelijk de snelkoppeling op het bureaublad gemaakt en moet dan van het bestaan van het programma af hebben geweten. De snelkoppelingen in de Desktop map geven zicht op de configuratie van een computer op een bepaald tijdstip.
Menu Start
C:\Documents and Settings\gebruikersnaam\Menu Start
Tijdens de installatie van een softwareprogramma wordt over het algemeen een snelkoppeling gemaakt in het Start menu. De gebruiker kan er later zelf voor kiezen om deze snelkoppeling te verplaatsen naar het bureaublad (wat dan indiceert dat hij van het bestaan van het programma af moet hebben geweten).
De snelkoppelingen in de Start Menu map wijzen naar programma’s en mappen die in het Windows start menu staan. Een snelkoppeling kan aanduiden dat een programma, dat nu niet meer op de computer aanwezig is, ooit geïnstalleerd is geweest. De datum en tijdstempels van de snelkoppeling kunnen helpen om te bepalen wanneer een applicatie geïnstalleerd is. Hun datum / tijd van creatie corresponderen met de datum van installatie. De snelkoppelingen bevatten ook het complete pad naar de bestanden die ze vertegenwoordigen.
Onlangs geopend
C:\Documents and Settings\gebruikersnaam\Onlangs geopend
De Onlangs geopend map bevat snelkoppelingen die wijzen naar bestanden die zijn geopend op de computer. Deze snelkoppelingen worden automatisch in deze folder aangemaakt, zodra de computergebruiker een document of een map opent. Onder het Startmenu is een optie aanwezig waarin standaard de laatste 15 snelkoppelingen worden bijgehouden (let op: er zijn er dus vaak meer, maar die moet je terugvinden in de map c:\Documents and Settings\gebruikersnaam\Onlangs geopend). Als een gebruiker klikt op op de Start knop en vervolgens Documents selecteert, dan toont het besturingssysteem een lijst van recent geopende bestanden. Als de gebruiker in deze lijst een keuze maakt, dan wordt het bestand geopend. De snelkoppelingen in deze map bevatten het complete pad naar het bestand. De snelkoppelingen kunnen aanduiden hoe de computer op een bepaalde datum en tijd was geconfigureerd. Een snelkoppeling kan refereren aan een volume dat niet beschikbaar was op het moment van onderzoek.
LNK bestanden in Restore Points
Het lijkt er op dat de snelkoppelingen (.lnk bestanden) uit de folder Onlangs geopend worden verplaatst naar een RP map tijdens het maken van een restore point. Dit is goed nieuws, want dan kan de informatie nog lange tijd worden teruggevonden, ook al is de map c:\Documents and Settings\gebruikersnaam\Onlangs geopend leeg.
Ik heb een test gedaan met Encase v. 6 > Case Processor > Link File Parser, waarbij ik alleen de inhoud van de map System Volume Information heb geparsed (Restore Points). Hierbij werden een paar honderd .lnk bestanden aangetroffen. Dit, terwijl de map c:\Documents and Settings\gebruikersnaam\Onlangs geopend nagenoeg leeg was. De .lnk bestanden die worden aangetroffen in de Restore Points hebben een naam, welke begint met A0. Omdat echter de inhoud van een .lnk bestand eenvoudig te lezen is, is snel duidelijk naar welk bestand de snelkoppeling verwees. Bovendien is nog e.e.a. uit te zoeken via het bestand change.log dat in elke Restore Point aanwezig is. De meest simpele procedure hiervoor is alle change.log.* bestanden in dezelfde Restore Point map aan te vinken en vervolgens via Encase te zoeken naar de bestandsnaam, waarbij uitsluitend wordt gezocht in de aangevinkte change.log.* bestanden. Hierdoor zal het juiste bestand snel worden gevonden.
MAC tijden
De Created, Accessed en Modified (last written) tijden van het doelbestand zijn opgeslagen in byte offsets 28, 36 en 44 van de link file. Elke datum / tijd is 8 bytes lang en eindigt met 01h.
Je kunt met FTK Imager eenvoudig zien dat dit klopt. Ga bijvoorbeeld naar c:\Documents and Settings\gebruikersnaam\Bureaublad\bestand.lnk en ga (gemeten vanaf de eerste byte van dit bestand) naar de 28e byte. Selecteer vervolgens de 8 navolgende bytes en je eindigt op een 01h.
8 bytes vanaf byte offset 28
8 bytes vanaf byte offset 36
8 bytes vanaf byte offset 44

Met andere woorden, beginnende met byte offset 28 kun je 24 bytes selecteren. Deze 24 bytes bevatten de MAC tijden van de linkfile.
Binnen Encase kun je de MAC tijden eenvoudig opvragen. Met dit programma kun je ook de genoemde 24 bytes selecteren (dus beginnende met byte offset 28). Klik met de rechtermuisknop, selecteer Bookmark data en kies voor Windows date / time.
Let op: als je een volume bekijkt dat met Fat is gemaakt, dan wordt de tijd niet juist getoond. Dat komt omdat FAT, in tegenstelling tot NTFS, alleen de datum opslaat.
Bovendien zijn de meningen of je nu wel of niet van de juistheid van de MAC tijden in de link file uit kunt gaan verschillend. Een tip hierbij is om de image van de harde schijf te mounten in VMware en vervolgens te testen of het betreffende systeem op de juiste wijze omgaat met de MAC tijden in de link files.
Serienummer
Om te bepalen of een bestand origineel is opgeslagen op het volume dat je aan het ondezoeken bent, dan kun je gebruik maken van de Volume Serial Number. Dit is een sinds 1987 standaard aanwezige, doch voor elk volume unieke waarde, die werd gegeven toen het volume werd geformatteerd, op basis van datum/tijd van formatteren en andere factoren.
Helaas kun je het Volume Serial Number niet zomaar terugvinden en decoderen. Tools zoals FTK Imager en Encase kunnen het serienummer voor je opzoeken.
Volume Serial Number, gevonden door FTK Imager
Om het serienummer met Encase te vinden moet je kijken naar 10h voor het volume label. De vier bytes voor deze 10h bevatten het volume serienummer, in little endian formaat. Kies voor rechtermuisknop – Bookmark – kies voor optie Integers: 32 bit integer – en je ziet het serienummer staan onder Hex. Je kunt nu dit serienummer vergelijken met het serienummer van het volume dat je aan het onderzoeken bent. Klik hiertoe (in de Cases – Entries – Home view) op Devices (in de tree pane). Klik vervolgens op het volume dat je wilt onderzoeken (in de table pane) en klik op Report view (in de view pane). Het serienummer komt nu tevoorschijn in het rapport en moet overeenkomen met het serienummer dat je zojuist bij de snelkoppeling hebt aangetroffen. Als de serienummers overeenkomen, dan betekent dat dat de snelkoppeling is gemaakt op het volume dat je aan het onderzoeken bent.
Als je zelf het Volume Serial Number wilt berekenen (het kan namelijk wel), dan kun je hier een goede handleiding vinden.
De meest duidelijke aanwezigheid van linkfiles vind je in de unallocated clusters. Een groot voordeel van NTFS is dat de inhoud van kleine bestanden (zoals kleine .lnk bestanden) compleet in de MFT wordt opgeslagen. Verwijderde snelkoppelingbestanden zijn hierdoor nog direct leesbaar. Clusters in het unallocated gebied van het volume kunnen ook snelkoppelingbestanden bevatten, ook al is er geen map of MFT meer die de link kan identificeren (zie bovenaan onder fileheaders).
Parsen met Encase
Om met Encase alle informatie in linkbestanden te decoderen kun je gebruik maken van de Case Processor EnScript module en kiezen voor Link File Parser.
Doscommando
Het Volume Serial Number van een disk vind je eenvoudig via het doscommando vol dat je in een dosbox kunt uitvoeren.
Pad naar bestand
De inhoud van een linkfile is redelijk eenvoudig te lezen, bijvoorbeeld met FTK Imager. Je ziet dan bijvoorbeeld het originele pad naar het bestand.
Pad in een linkfile, bekeken met FTK Imager.
Mocht je, in het geval dat een belangrijk bestand al gewist of gewiped is, het geluk hebben dat de linkfile nog aanwezig is in de MFT of in de unallocated clusters, dan kun je op deze manier eenvoudig zien waar het oorspronkelijke bestand heeft gestaan.
Pad in een linkfile, bekeken met Winhex.
Winhex geeft meer informatie, zoals de MAC tijden van de linkfile en het pad naar het originele bestand dat wordt cq. werd vertegenwoordigd. Als je hierbij vanaf byte offset 28 nog de MAC tijden van het vertegenwoordigde bestand weet te vinden (een reeks van 24 bytes, zoals hierboven omschreven) dan is je informatie vrijwel compleet, onder voorbehoud dat de tijden goed door het systeem werden geinterpreteerd tijdens het maken van de linkfile. Hiervoor zijn mogelijk nog wat tests van het systeem onder VMware nodig.
Handige tool
De gratis verkrijgbare Windows File Analyzer van MiTec is een handige tool om de MAC tijden, volume serienummer etc. binnen een linkfile te bekijken.
Je kunt met dit programma een rapport samenstellen met informatie over alle linkfiles die in een map aanwezig zijn.
Meer informatie
http://www.forensicfocus.com/link-file-evidentiary-value
http://www.i2s-lab.com/Papers/The_Windows_Shortcut_File_Format.pdf









Comments