Ut ur lådan: del 2
För många år sedan skrev jag ett blogginlägg som handlade om hur du, som penetrationtestare, kan rymma från en app I kioskläge. I detta blogginlägg följer jag upp på det tidigare blogginlägget med fler trick som du kan använda för att rymma ut ur lådan.
Först lite repetition
Vi börjar med att repetera vad en app I kioskläge är. För att göra det hela mer simpelt så klumpar jag ihop alla varianter av virtualiserade, kiosk och strömmade applikationer under samma paraply då metoderna för att bryta sig ur vardera variant är snarlik eller identisk.
En app I kioskläge kan då förklaras som en applikation som körs på ett system där användaren inte ska ha möjlighet att interagera med det underliggande operativsystemet. Ett typexempel är de terminaler du kan stöta på I varuhus som tillåter dig leta fram hyllan där rivjärnen hänger eller den finansapplikation du ansluter till via Citrix Workspace eller RDP från din jobbdator. Den gemensamma faktorn är att du som användare, per design, inte ska kunna interagera med det underliggande operativsystemet.
Men som vi snart kommer gå in på så kan vi inte alltid lita på det första intrycket, utan I många fall är dessa applikationer sårbara.
Lite kort om inställningar och dialogrutor.
Majoriteten av de applikationer vi interagerar med har tillhörande flikar för inställningar och andra form av dialogrutor. Dessa blir ofta bortglömda när en app sätts I en kiosk av någon sort. Som penetrationstestare kan vi utnyttja detta och via inställning- och dialogrutor av olika slag ta oss ner på det underliggande operativsystemet. Tyvärr går det inte att skriva en generell guide på dessa ska hanteras då varje applikation skiljer sig åt. Det finns däremot generella tankesätt vi kan förhålla oss till när vi testar en applikation I kioskläge. Bland annat kan vi tänka på:
- Finns det inställningar som tillåter dig ladda in eller spara ner filer? Vart hamnar dessa?
- Finns det nätverksinställningar I applikationen?
- Finns det dialgorutor eller inställningar för skrivare/skrivarfunktionalitet?
- Finns det dialogrutor som tillåter oss öppna andra applikationer på servern? Exempelvis hjälpmanualer som öppnas I internet explorer eller motsvarande webbläsare.
Arbetet med dialgrutor och inställningar låter oss jobba steg för steg ner mot det underliggande operativsystemet. Oftast kräver det mer än ett hopp för att nå slutdestinationen.
Den korta vägen ut
Det går inte att ignorera det faktum att majoriteten av alla applikationer I kioskläge kör på ett underliggande Windows operativsystem. Detta är till stor fördel för dig som penetrationstestare eftersom Windows som standard kommer med ett stort antal kortkommandon påslagna. Dessa kortkommandon tjänar I vårt fall syftet att få en prompt från det underliggande operativsystemet som frågar om vi vill aktivera funktionen kortkommandot är kopplat till eller gå till kontrollpanelen (eller motsvarande panel).
Självklart är det andra alternativet det vi är ute efter. I mitt tidigare blogginlägg gick jag igenom kortkommandon så som “Sticky Keys” och skärmtangentbordet. Dessa exempel har gemensamt att de alla leder oss till kontrollpanelen. Om åtkomst till kontrollpanelen däremot stängts av så kommer vi inte speciellt långt med dessa exempel, men tänk om det finns ett annat alternativ? Detta leder oss till det första kortkommandot
Mouse Keys
Mouse keys är till skillnad från sticky keys inte placerad I kontrollpanelen utan I ease of access center (hjälpmedelcentret på svenska) och kortkommandot leder oss därmed dit. Under ett uppdrag där vi testade en kioskapplikation I närtid stötte vi på en härdning där kontrollpanelen stängts av. Till vår förvåning räknas inte ease of access center som en del av kontrollpanelen trots att det är en underfunktion till kontrollpanelen.
Du kan enkelt aktivera mouse keys med kortkommandot alt + vänster shift + numlock.
Control-kortkommandon
Jag har under mina tidigare tester haft framgång med control-kortkommandona när jag testar fysiska kioskappar (exempelvis den tidigare nämnda terminalen I varuhus). Det är dock viktigt att notera att dessa kortkommandon troligtvis inte kommer funka I en strömmad applikation, så som en Citrix Workspace-app då kommandot I stället exekveras på din egen dator.
Bland control-kortkommandona finner vi bland annat:
- CTRL + H – Öppnar internet explorer-historik fliken.
- CTRL + O – Ger oss en prompt för att öppna en fil/programvara.
- CTRL + S – Sparar ner en resurs till hårddisken. Funkar ofta bäst I kombination med Electron-appar.
High Contrast
Här har vi ytterligare ett exempel på en funktion som är placerad I ease of access center och därmed också följer principen kring att vara tillgänglig trots att kontrollpanelen är avstängd. Kortkommandot för high contrast är alt + vänster shift + printscn.
En gemensam faktor för ease of access center-kortkommandona är att vi behöver använda tangenter som ofta inte interagerar bra med en strömmad applikation. Tangenten för numlock prioriterar exempelvis din egna dator och inte det operativsystem som applikationen exekveras från. Medan det vid första anblick ser blekt ut så kommer också en gammal vän till räddning.
Skärmtangentbordet
Skärmtangentbordet är till stor nytta när vi använder kortkommandon där knappar som printscn, numlock, insert, m.m. är involverade. Som tidigare nämnt skickas dessa knappar ofta inte korrekt till den strömmade applikationen när du fysiskt trycker ner tangenten. Lösningen på problemet blir då att använda motsvarande knapp på skärmtangentbordet. Beroende på vilket kortkommando som används kan fysiska tangenter och tangenter på skärmtangentbordet behöva blandas. Exempelvis skulle kortkommandot för mouse keys bestå av:
- Fysiska knappar: alt + vänster shift.
- Knapp på skärmtangentbordet: numlock.
För att avrunda
Jag valde att skriva en uppföljare på mitt tidigare blogginlägg eftersom vi fortfarande stöter på kioskapplikationer I hög utsträckning. Säkerheten I dessa har inte ökat I någon markant utsträckning utan de vanliga knepen funkar ofta I hög utsträckning. Det finns inget enkelt knep att täppa igen alla luckor som Citrix Workspace eller andra varianter av kiosk:ifering medför, men det är samtidigt viktigt att försöka täppa igen de enklaste luckorna, så som åtkomst till kontrollpanelen/ease of access center och kortkommandon som tillåter oss att direkt interagera med det underliggande operativsystemet.
Samtidigt är det viktigt att alltid beakta djupförsvarsprincipen när det kommer till säkerhet. Det räcker inte att lägga allt krut på det första lagret användarna/angriparna interagerar med. Det händer fortfarande allt för ofta att jag, efter att ha brutit mig ur en kioskapplikation, har möjlighet att interagera med andra kunders data, skriva godtyckliga filer eller till och med byta ut den applikation som exekveras i kioskläget.