Duqu - ondsinnet hekkende dukke

Innledning

1. september 2011 ble en fil med navnet ~DN1.tmp sendt til VirusTotal-nettstedet fra Ungarn. På det tidspunktet ble filen oppdaget som skadelig av bare to antivirusmotorer - BitDefender og AVIRA. Slik begynte historien om Duqu. Ser vi fremover, må det sies at Duqu malware-familien ble oppkalt etter navnet på denne filen. Imidlertid er denne filen en helt uavhengig spionvaremodul med keylogger-funksjoner, installert, sannsynligvis, ved hjelp av en ondsinnet nedlastings-dropper, og kan bare betraktes som en "nyttelast" lastet av Duqu malware under driften, og ikke som en komponent ( modul) av Duqu. En av Duqu-komponentene ble sendt til Virustotal-tjenesten først 9. september. Dens karakteristiske trekk er en driver digitalt signert av C-Media. Noen eksperter begynte umiddelbart å tegne analogier med et annet kjent eksempel på skadelig programvare - Stuxnet, som også brukte signerte drivere. Det totale antallet Duqu-infiserte datamaskiner oppdaget av forskjellige antivirusselskaper rundt om i verden er i dusinvis. Mange selskaper hevder at Iran igjen er hovedmålet, men å dømme etter den geografiske fordelingen av infeksjoner kan dette ikke sies med sikkerhet.
Duqu - ondsinnet hekkende dukke
I dette tilfellet bør du trygt snakke bare om et annet selskap med et nymotens ord APT (avansert vedvarende trussel).

Systemimplementeringsprosedyre

En undersøkelse utført av spesialister fra den ungarske organisasjonen CrySyS (Hungarian Laboratory of Cryptography and System Security ved Budapest University of Technology and Economics) førte til oppdagelsen av installatøren (dropperen) som systemet ble infisert gjennom. Det var en Microsoft Word-fil med en utnyttelse for win32k.sys-driversårbarheten (MS11-087, beskrevet av Microsoft 13. november 2011), som er ansvarlig for TTF-fontgjengivelsesmekanismen. Utnyttelsens shellcode bruker en font kalt 'Dexter Regular' innebygd i dokumentet, med Showtime Inc. oppført som skaperen av fonten. Som du kan se, er skaperne av Duqu ikke fremmede for en sans for humor: Dexter er en seriemorder, helten i TV-serien med samme navn, produsert av Showtime. Dexter dreper bare (hvis mulig) kriminelle, det vil si at han bryter loven i lovlighetens navn. Sannsynligvis, på denne måten, er Duqu-utviklerne ironiske over at de er engasjert i ulovlige aktiviteter for gode formål. Sendingen av e-poster ble gjort målrettet. Forsendelsen brukte mest sannsynlig kompromitterte (hackede) datamaskiner som mellomledd for å gjøre sporing vanskelig.
Word-dokumentet inneholdt dermed følgende komponenter:

  • tekstinnhold;
  • innebygd font;
  • utnytte shellcode;
  • sjåfør;
  • installasjonsprogram (DLL-bibliotek).

Hvis den lykkes, utførte utnyttelsesskallkoden følgende operasjoner (i kjernemodus):

  • det ble foretatt en sjekk for re-infeksjon; for dette ble tilstedeværelsen av 'CF4D'-nøkkelen sjekket i registeret på adressen 'HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsZones1'; hvis dette var riktig, fullførte shellcode kjøringen;
  • to filer ble dekryptert - driveren (sys) og installasjonsprogrammet (dll);
  • driveren ble injisert i services.exe-prosessen og startet installasjonsprogrammet;
  • Til slutt slettet skallkoden seg selv med nuller i minnet.

På grunn av det faktum at win32k.sys kjøres under den privilegerte brukeren 'System', har Duqu-utviklerne elegant løst problemet med både uautorisert lansering og eskalering av rettigheter (kjører under en brukerkonto med begrensede rettigheter).
Etter å ha mottatt kontroll, dekrypterte installasjonsprogrammet tre blokker med data som er inneholdt i minnet, som inneholder:

  • signert sjåfør (sys);
  • hovedmodul (dll);
  • installasjonsprogrammets konfigurasjonsdata (pnf).

En datoperiode ble spesifisert i installatørens konfigurasjonsdata (i form av to tidsstempler - start og slutt). Installasjonsprogrammet sjekket om gjeldende dato var inkludert i det, og hvis ikke, fullførte det utførelsen. Også i installasjonsprogrammets konfigurasjonsdata var navnene som driveren og hovedmodulen ble lagret under. I dette tilfellet ble hovedmodulen lagret på disken i kryptert form.

Duqu - ondsinnet hekkende dukke

For å autostarte Duqu ble det opprettet en tjeneste ved hjelp av en driverfil som dekrypterte hovedmodulen med en gang ved hjelp av nøkler lagret i registeret. Hovedmodulen inneholder sin egen konfigurasjonsdatablokk. Ved første lansering ble den dekryptert, installasjonsdatoen ble lagt inn i den, hvoretter den ble kryptert igjen og lagret av hovedmodulen. Således, i det berørte systemet, etter vellykket installasjon, ble tre filer lagret - driveren, hovedmodulen og dens konfigurasjonsdatafil, med de to siste filene lagret på disken i kryptert form. Alle dekodingsprosedyrer ble kun utført i minnet. Denne komplekse installasjonsprosedyren ble brukt for å minimere muligheten for oppdagelse av antivirusprogramvare.

Hovedmodulen

Hovedmodul (ressurs 302), iht informasjon selskapet Kaspersky Lab, skrevet med MSVC 2008 i ren C, men med en objektorientert tilnærming. Denne tilnærmingen er ukarakteristisk når du utvikler ondsinnet kode. Som regel skrives slik kode i C for å redusere størrelsen og bli kvitt de implisitte kallene som ligger i C++. Det er en viss symbiose her. I tillegg ble det brukt en hendelsesdrevet arkitektur. Kaspersky Lab-ansatte er tilbøyelige til teorien om at hovedmodulen ble skrevet ved hjelp av et pre-prosessor-tillegg som lar deg skrive C-kode i en objektstil.
Hovedmodulen er ansvarlig for prosedyren for å motta kommandoer fra operatører. Duqu tilbyr flere metoder for interaksjon: bruk av HTTP- og HTTPS-protokollene, samt bruk av navngitte rør. For HTTP(S) ble domenenavn til kommandosentraler spesifisert, og muligheten til å jobbe gjennom en proxy-server ble gitt - et brukernavn og passord ble spesifisert for dem. IP-adressen og navnet er spesifisert for kanalen. De angitte dataene lagres i hovedmodulens konfigurasjonsdatablokk (i kryptert form).
For å bruke navngitte rør, lanserte vi vår egen RPC-serverimplementering. Den støttet følgende syv funksjoner:

  • returner den installerte versjonen;
  • injiser en dll i den angitte prosessen og kall den angitte funksjonen;
  • last dll;
  • start en prosess ved å kalle CreateProcess();
  • lese innholdet i en gitt fil;
  • skrive data til den angitte filen;
  • slette den angitte filen.

Navngitte rør kan brukes i et lokalt nettverk for å distribuere oppdaterte moduler og konfigurasjonsdata mellom Duqu-infiserte datamaskiner. I tillegg kunne Duqu fungere som en proxy-server for andre infiserte datamaskiner (som ikke hadde tilgang til Internett på grunn av brannmurinnstillingene på gatewayen). Noen versjoner av Duqu hadde ikke RPC-funksjonalitet.

Kjente "nyttelast"

Symantec oppdaget minst fire typer nyttelast lastet ned under kommando fra Duqus kontrollsenter.
Dessuten var bare én av dem hjemmehørende og kompilert som en kjørbar fil (exe), som ble lagret på disk. De resterende tre ble implementert som dll-biblioteker. De ble lastet dynamisk og utført i minnet uten å bli lagret på disk.

Den beboer "nyttelasten" var en spionmodul (infosteler) med keylogger-funksjoner. Det var ved å sende det til VirusTotal at arbeidet med Duqu-forskning startet. Hovedspionfunksjonaliteten var i ressursen, hvorav de første 8 kilobytene inneholdt en del av et bilde av galaksen NGC 6745 (for kamuflasje). Det bør minnes om at i april 2012 publiserte noen medier informasjon (http://www.mehrnews.com/en/newsdetail.aspx?NewsID=1297506) om at Iran ble utsatt for noe ondsinnet programvare "Stars", mens detaljer om hendelsen ble ikke avslørt. Kanskje var det nettopp et slikt utvalg av Duqu "nyttelasten" som ble oppdaget da i Iran, derav navnet "Stars".
Spionmodulen samlet inn følgende informasjon:

  • liste over kjørende prosesser, informasjon om gjeldende bruker og domene;
  • liste over logiske stasjoner, inkludert nettverksstasjoner;
  • skjermbilder;
  • nettverksgrensesnitt adresser, ruting tabeller;
  • loggfil med tastaturtastetrykk;
  • navn på åpne programvinduer;
  • liste over tilgjengelige nettverksressurser (delingsressurser);
  • en komplett liste over filer på alle disker, inkludert flyttbare;
  • en liste over datamaskiner i "nettverksmiljøet".

En annen spionmodul (infosteler) var en variant av det som allerede var beskrevet, men kompilert som et dll-bibliotek; funksjonene til en keylogger, kompilering av en liste over filer og liste opp datamaskiner inkludert i domenet ble fjernet fra den.
Neste modul (rekognosering) innsamlet systeminformasjon:

  • om datamaskinen er en del av et domene;
  • stier til Windows-systemkataloger;
  • operativsystemversjon;
  • nåværende brukernavn;
  • liste over nettverkskort;
  • system og lokal tid, samt tidssone.

Siste modul (levetidsforlenger) implementerte en funksjon for å øke verdien (lagret i konfigurasjonsdatafilen for hovedmodulen) for antall dager som gjenstår til jobben er fullført. Som standard ble denne verdien satt til 30 eller 36 dager avhengig av Duqu-modifikasjonen, og ble redusert med én hver dag.

Kommandosentraler

Den 20. oktober 2011 (tre dager etter at informasjon om funnet ble spredd) gjennomførte Duqu-operatører en prosedyre for å ødelegge spor etter funksjonen til kommandosentralene. Kommandosentre var lokalisert på hackede servere over hele verden - i Vietnam, India, Tyskland, Singapore, Sveits, Storbritannia, Holland og Sør-Korea. Interessant nok kjørte alle identifiserte servere CentOS versjoner 5.2, 5.4 eller 5.5. OS-ene var både 32-bit og 64-bit. Til tross for at alle filer knyttet til driften av kommandosentre ble slettet, var Kaspersky Lab-spesialister i stand til å gjenopprette noe av informasjonen fra LOG-filer fra lite plass. Det mest interessante er at angripere på servere alltid erstattet standard OpenSSH 4.3-pakken med versjon 5.8. Dette kan tyde på at en ukjent sårbarhet i OpenSSH 4.3 ble brukt til å hacke servere. Ikke alle systemene ble brukt som kommandosentraler. Noen, å dømme etter feilene i sshd-loggene når de forsøkte å omdirigere trafikk for portene 80 og 443, ble brukt som en proxy-server for å koble til sluttkommandosentrene.

Datoer og moduler

Et Word-dokument distribuert i april 2011, som ble undersøkt av Kaspersky Lab, inneholdt en installeringsdriver for nedlasting med en kompileringsdato 31. august 2007. En lignende driver (størrelse - 20608 byte, MD5 - EEDCA45BD613E0D9A9E5C69122007F17) i et dokument funnet i CrySys laboratorier hadde en kompileringsdato 21. februar 2008. I tillegg fant Kaspersky Lab-eksperter autorun-driveren rndismpc.sys (størrelse - 19968 byte, MD5 - 9AEC6E10C5EE9C05BED93221544C783E) med datoen 20. januar 2008. Ingen komponenter merket 2009 ble funnet. Basert på tidsstemplene for kompileringen av individuelle deler av Duqu, kan utviklingen dateres tilbake til begynnelsen av 2007. Dens tidligste manifestasjon er assosiert med gjenkjenning av midlertidige filer av typen ~DO (sannsynligvis opprettet av en av spionvaremodulene), hvis opprettelsesdato er 28. november 2008 (artikkel "Duqu & Stuxnet: A Timeline of Interesting Events"). Den siste datoen knyttet til Duqu var 23. februar 2012, inneholdt i en installeringsdriver som ble oppdaget av Symantec i mars 2012.

Kilder til informasjon som er brukt:

serie artikler om Duqu fra Kaspersky Lab;
Analytisk rapport fra Symantec "W32.Duqu Forløperen til neste Stuxnet", versjon 1.4, november 2011 (pdf).

Kilde: www.habr.com

Legg til en kommentar