Darth Vader utför en forensisk undersökning av air-gapped miljö
Bakgrund
I den här bloggen kommer jag visa ett flöde i en forensisk undersökning. Bakgrunden till den här undersökningen är att Darth Vader misstänker att rebellalliansen stulit ritningarna till dödsstjärnan och kräver nu att detta måste utredas.
Miljö
Miljön som Darth Vader är uppbyggd enligt följande princip. Han tycker säkerheten är viktig och har funderat mycket på loggning och hur miljön ska sättas upp.
Miljön är en Air-gapped lösning, med tunna klienter som ansluter till en server som har de viktiga ritningarna på en filserver. Darth Vader har slagit på nästan all Windows-loggning och filservern har Microsoft File-audit-loggning påslagen. Det är bara de tunna klienterna som har tillgång till den air-gappade miljön och enda möjligheten är att exfiltrera ritningarna är till ett USB-minne då miljön saknar internet-access.
I och med att konfigurationen av miljön ser ut på detta vis, så kan följande slutsatser dras:
- Filserver loggar med Microsofts file-audit
- Servern loggar inloggningar, process-exekvering, etc
- Tunn-klient saknar loggning, då dessa filer roteras nollställs vid omstart
Undersökning – Server
På servern kan vi utläsa att filen i fråga helt riktigt har lästs av användaren. Men Vader är fortfarande lite förbannad på att Microsoft inte loggar sina events på ett bättre och tydligare sätt. Följande tabell har han lyckats få fram:
Event ID | Namn | beskrivning | Data |
4656 | A handle to an object was requested | Loggar starten på all filaktivitet | Filnamn |
4663 | An attempt was made to access an object | Denna händelse loggar operationer som utförs mot filer och andra objekt. | Vad som hänt |
4660 | An object was deleted | Loggar om en fil raderas, måste korreleras med 4656 och Handle ID | Radering av filer |
4658 | The handle to an object was closed | Loggar att en fil stängs | Tid |
Här har event 4663 information vilken access som krävts och vi kan i detta event läsa ut om rättigheter för att skriva/läsa/radera filen har krävts.
Så vad har vi hittills kommit fram till:
- Vet att Rebellalliansen loggat in på servern Event ID 4624
- Vet att Rebellalliansen läst filen Event ID 4656, 4663
Vidare undersökning USB
Men nu till undersökningen om att om filen i fråga har lagts på ett USB-minne?
I och med att audit-loggningen bara sker på filservern så kan det inte utläsas eller loggas i file-audit att ett USB-minne anslutits och vi kan inte se vad som händer på den tunna klienten. Här hamnade utredningen i ett litet dödläge och Vader vill inte att vi ska sluta.
Vid tester av konfigurationen framkom det att USB-minnena mappas upp som nätverksshare med //tsclient/d. Vid närmare undersökning så är det en inbyggd funktion som kan användas i RDP-anslutningar. Enheten kommer visas på servern som en virtuell nätverksenhet. Om exempelvis C: delas ut från den tunna klienten kommer den visas som \\tsclient\c på servern. De här sharen har både skriv och läsrättigheter. För den som vill läsa mer om detta [ https://docs.microsoft.com/sv-se/archive/blogs/brendangrant/the-most-useful-feature-of-remote-desktop-i-never-knew-about ]
Väldigt smidigt och bra i och med att de är anslutna som ett share då borde Event ID 5140 – A network share object was accessed kunna användas. Men tyvärr så verkar inte Microsoft logga 5140 när det gäller tsclient, detta troligtvis pga att det är ett virtuellt share.
Så ännu ett bakslag i utredningen men skam den som ger sig. Vad händer egentligen om jag upprepar förfarandet vid en kopiering? Händelsen kan väl inte vara osynlig?
Så vi kör igång process monitor för att se vad som egentligen händer när ett USB-minne används över RDP och vad som händer när filer skrivs och läses från USB-minnet.
I analysen med hjälp av procmon så hittas egentligen bara en fil som kan härröra till //tsclient/ när tester genomförs vad som händer när vi ansluter, skriver och läser filer från ett USB från den tunna klienten.
Det återkommande mönstret är att följande filer skrivs:
C:\Users\xxxx\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\xxxxxxxxxx.automaticDestinations-ms
Jump lists
Så vad är egentligen en .automaticDestinations-ms fil?
AutomaticDestination är en del i en funktion i Windows för att som blev introducerad i Windows 7. AutomaticDestination är en hopplista (Jump lists) som är en funktion som används av program eller operativ system för att hålla koll på hur en användare kan hoppa in i tidigare använda filer och program. Som ett exempel så använder Snabbåtkomst i filsystemet sig av hopplistor även applikationer som Word använder detta för att visa tidigare filer. Hopplistorna är personliga för varje användare och finns att finna under följande sökväg:
C:\Users\xxx\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\
Hopplistorna är konstruerade som att varje applikation har ett AppID och en egen fil. Som exempelvis är 5f7b5f1e01b83767 – Quick Access. Listor över AppID finns exempelvis på Eric Zimmermans github.
Värt att nämna är att det finns en forensisk artefakt som heter CustomDestination under C:\Users\xxx\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations. Dessa är också en typ av hopplistor, men skapas när användaren fäster ett program eller fil.
Så tillbaka till utredningen, vi vet alltså att AutomaticDestinations skrivs när vi använder ett USB-minne. För att få ut vettig information från filerna kan något av följande verktyg användas:
Detta för att få följande data läsbart:
När hopplistan är bearbetad med något av programmen listade ovan, så kan exempelvis resultatet bli som nedan. Detta exempel är taget från A forensic insight into Windows 10 Jump Lists, en bra resurs om du vill läsa mer om hopplistor.
Oturligt nog kan det visas via hopplistorna att Rebellalliansen har använt sig av ett USB-minne på den tunna klient och fjärrsessionen har anslutit USB minnet till servern. Det har också i hopplistorna skapats forensiska artefakter på att ett USB-minne har anslutits och använts för att stjäla ritningarna till dödsstjärnan. Vid vidare undersökning visade det sig att Darth Vader hade valt lösenordet, deathstar vilket underlättade för Rebellalliansen att komma åt hans konto.
Slutsats
När vi väl fått ut data ur hopplistorna kan slutsatsen dras:
- Rebellalliansen har loggat in (Event ID – 4624)
- Rebellalliansen har läst den superhemliga filen (Event ID 4656, 4663)
- Rebellalliansen har anslutit ett USB till den tunna klienten (AutomaticDestination)
- Rebellalliansen har skrivit och öppnat filen från sitt USB-minne (AutomaticDestination)
- Darth Vader måste motvilligt byta sitt lösenord och använda sig av MFA.
Summa summarum dålig dag på jobbet för Vader och negativt för Rymdimperiet. Vi avslutar bloggen med ett citat!
”If the Rebels have obtained a complete technical readout of this station it is possible, however unlikely, that they might find a weakness, and exploit it.”
”The plans you refer to will soon be back in our hands.”