Adventures of the Elusive Malvari, del I

Adventures of the Elusive Malvari, del I

Med denne artikkelen starter vi en serie publikasjoner om unnvikende skadelig programvare. Filløse hackingprogrammer, også kjent som filløse hackingprogrammer, bruker vanligvis PowerShell på Windows-systemer for å kjøre kommandoer stille for å søke etter og trekke ut verdifullt innhold. Å oppdage hackeraktivitet uten skadelige filer er en vanskelig oppgave, fordi... antivirus og mange andre deteksjonssystemer fungerer basert på signaturanalyse. Men den gode nyheten er at slik programvare eksisterer. For eksempel, UBA-systemer, i stand til å oppdage ondsinnet aktivitet i filsystemer.

Da jeg først begynte å forske på temaet dårlige hackere, ikke bruker tradisjonelle infeksjonsmetoder, men bare verktøyene og programvaren som er tilgjengelig på offerets datamaskin, hadde jeg ingen anelse om at dette snart ville bli en populær angrepsmetode. Sikkerhetseksperter siat dette er i ferd med å bli en trend, og skumle artikkeloverskrifter - bekreftelse på dette. Derfor bestemte jeg meg for å lage en serie publikasjoner om dette emnet.

Det store og kraftige PowerShell

Jeg har skrevet om noen av disse ideene før i PowerShell obfuskasjonsserie, men mer basert på et teoretisk konsept. Senere kom jeg over nettsted for hybridanalyse, hvor du kan finne prøver av skadelig programvare "fanget" i naturen. Jeg bestemte meg for å prøve å bruke dette nettstedet for å finne eksempler på filløs skadelig programvare. Og jeg lyktes. Forresten, hvis du ønsker å dra på din egen malware-jaktekspedisjon, må du bli verifisert av denne siden slik at de vet at du gjør jobben som en spesialist på hvite hatter. Som sikkerhetsblogger besto jeg den uten spørsmål. Det er jeg sikker på at du også kan.

I tillegg til selve prøvene kan du på nettstedet se hva disse programmene gjør. Hybridanalyse kjører skadelig programvare i sin egen sandkasse og overvåker systemanrop, kjørende prosesser og nettverksaktivitet, og trekker ut mistenkelige tekststrenger. For binærfiler og andre kjørbare filer, dvs. hvor du ikke engang kan se på den faktiske høynivåkoden, avgjør hybridanalyse om programvaren er skadelig eller bare mistenkelig basert på kjøretidsaktiviteten. Og etter det er prøven allerede evaluert.

Når det gjelder PowerShell og andre eksempelskript (Visual Basic, JavaScript, etc.), var jeg i stand til å se selve koden. For eksempel kom jeg over denne PowerShell-forekomsten:

Adventures of the Elusive Malvari, del I

Du kan også kjøre PowerShell i base64-koding for å unngå gjenkjenning. Legg merke til bruken av ikke-interaktive og skjulte parametere.

Hvis du har lest innleggene mine om obfuskering, så vet du at -e-alternativet spesifiserer at innholdet er base64-kodet. Hybridanalyse hjelper forresten også med dette ved å dekode alt tilbake. Hvis du vil prøve å dekode base64 PowerShell (heretter referert til som PS) selv, må du kjøre denne kommandoen:

 [System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($EncodedText))

Gå dypere

Jeg dekodet PS-skriptet vårt ved å bruke denne metoden, nedenfor er teksten til programmet, om enn litt modifisert av meg:

Adventures of the Elusive Malvari, del I

Merk at skriptet var knyttet til datoen 4. september 2017 og overførte øktinformasjonskapsler.

Jeg skrev om denne angrepsstilen i PS obfuskasjonsserie, der det base64-kodede skriptet selv laster inn savnet skadelig programvare fra et annet nettsted, ved å bruke .Net Framework-bibliotekets WebClient-objekt for å gjøre det tunge arbeidet.

Hva gjør den?

For sikkerhetsprogramvare som skanner Windows-hendelseslogger eller brannmurer, forhindrer base64-koding at strengen "WebClient" blir oppdaget av et vanlig tekstmønster for å beskytte mot en slik nettforespørsel. Og siden all "ondskapen" til skadelig programvare deretter lastes ned og sendes inn i PowerShell-en vår, lar denne tilnærmingen oss dermed fullstendig unngå oppdagelse. Eller rettere sagt, det var det jeg trodde først.

Det viser seg at med Windows PowerShell Advanced Logging aktivert (se artikkelen min), vil du kunne se den lastede linjen i hendelsesloggen. jeg er som og andre ) Jeg tror Microsoft bør aktivere dette nivået av logging som standard. Derfor, med utvidet logging aktivert, vil vi se i Windows-hendelsesloggen en fullført nedlastingsforespørsel fra et PS-skript i henhold til eksemplet vi diskuterte ovenfor. Derfor er det fornuftig å aktivere det, er du ikke enig?

La oss legge til flere scenarier

Hackere skjuler på en smart måte PowerShell-angrep i Microsoft Office-makroer skrevet i Visual Basic og andre skriptspråk. Tanken er at offeret får en melding, for eksempel fra en leveringstjeneste, med vedlagt rapport i .doc-format. Du åpner dette dokumentet som inneholder makroen, og det ender opp med å starte selve den ondsinnede PowerShell.

Ofte er selve Visual Basic-skriptet tilslørt slik at det fritt unngår antivirus- og andre skadelige skannere. I ånden til det ovennevnte bestemte jeg meg for å kode PowerShell ovenfor i JavaScript som en øvelse. Nedenfor er resultatene av arbeidet mitt:

Adventures of the Elusive Malvari, del I

Tilsløret JavaScript som skjuler PowerShell. Ekte hackere gjør dette en eller to ganger.

Dette er en annen teknikk jeg har sett flyte rundt på nettet: å bruke Wscript.Shell til å kjøre kodet PowerShell. Forresten, selve JavaScript er det midler levering av skadelig programvare. Mange versjoner av Windows har innebygd Windows Script Host, som selv kan kjøre JS.
I vårt tilfelle er det ondsinnede JS-skriptet innebygd som en fil med filtypen .doc.js. Windows vil vanligvis bare vise det første suffikset, så det vises for offeret som et Word-dokument.

Adventures of the Elusive Malvari, del I

JS-ikonet vises kun i rulleikonet. Det er ikke overraskende at mange vil åpne dette vedlegget og tro at det er et Word-dokument.

I eksemplet mitt endret jeg PowerShell ovenfor for å laste ned skriptet fra nettstedet mitt. Det eksterne PS-skriptet skriver bare ut "Evil Malware". Som du kan se, er han ikke ond i det hele tatt. Selvfølgelig er ekte hackere interessert i å få tilgang til en bærbar datamaskin eller server, for eksempel gjennom et kommandoskall. I den neste artikkelen skal jeg vise deg hvordan du gjør dette ved å bruke PowerShell Empire.

Jeg håper at vi for den første introduksjonsartikkelen ikke dykket for dypt inn i emnet. Nå lar jeg deg trekke pusten, og neste gang skal vi begynne å se på virkelige eksempler på angrep med filløs skadevare uten unødvendige innledende ord eller forberedelser.

Kilde: www.habr.com

Legg til en kommentar