Artikel top billede

(Foto: Computerworld)

Lav et virtuelt netværk, der kan hackes - del 1

Prøv at hacke seriøst ved at opbygge et virtuelt netværk med VirtualBox.

Af Redaktionen, Alt om Data

Denne artikel er oprindeligt bragt på Alt om Data. Computerworld overtog i november 2022 Alt om Data. Du kan læse mere om overtagelsen her.

Professionelle foretagender, der arbejder med netsikkerhed, har råd til at opbygge store fysiske netværk med mange computere i forskellige grader af sikkerhed. Vi andre plejede at gå i stå, når det gjaldt om at afprøve potentielle netværkskonfigurationer og om at skaffe sig generel viden om netværkssikkerhed. Sådan var det, indtil virtualisering blev opfundet.

Ideen bag virtualisering er enkel nok. Med en tilstrækkelig hurtig computer (enhver desktopmaskine eller bærbar, der er købt inden for de seneste par år, bør være helt fin) kan man oprette et softwaremiljø, der emulerer næsten perfekte kopier af den fysiske computers hardware.

Med disse virtuelle maskiner installerer og booter man så operativsystemer, kører applikationer og udsætter dem for at blive inficeret af malware. Hvis de bliver det, skal man simpelthen slette emuleringen frem for at skulle genformatere og geninstallere det fysiske operativsystem.

Med tilstrækkelig ram og harddiskplads plus en mikroprocessor, der er hurtig nok, kan man køre mange virtuelle maskiner samtidig på én fysisk computer. I denne artikel skal vi vise dig, hvordan du installerer og konfigurerer sådan en virtualiseringspakke og lærer de teknikker, der gør det muligt at lave et virtuelt netværk, som egner sig til seriøs hacking på lavt niveau.

Virtuelle anvendelsesområder

Virtualisering har nogle glimrende anvendelsesområder uden for sikkerhedsforskningen. Hvis du for eksempel har lyst til at prøve Linux, kan du gøre det, mens du er i Windows 7, uden at skulle genstarte.

Selvom det lyder ineffektivt at køre mange virtuelle computere på én fysisk maskine, kan fordelene langt overstige ulemperne. I store datacentre går man fra at have store fysiske serverfarme til færre, men kraftigere servere, der hoster mange virtuelle maskiner.

Mindre fysisk hardware betyder færre udgifter til elektricitet og vedligeholdelse, og der er mange meget praktiske aspekter ved virtualisering, som gør håndteringen meget nemmere. En virtuel maskine kan for eksempel stoppe, startes, holde pause og endda få sin tilstand kopieret til et ”snapshot” på få sekunder. Hvis og når noget går galt, kan administratoren simpelthen genindlæse snapshottet i stedet for at skulle bakse med at få en fysisk server online igen.

Det er ikke usædvanligt for en virtualiseringspakke at understøtte op til otte netkort. Det gør dem oplagte, når man vil sætte sig ind i firewalls og de demilitariserede zoner, der findes mellem internettet og en virksomheds private interne netværk. Det bedste af det hele er måske, at den slags netkort er softwareemuleringer, og der er derfor ingen grund til at købe ekstra hardware.

Et andet fint anvendelsesområde til virtualisering knytter sig til det at lære mere om de myriader af Linux-serverpakker, der findes, såsom Apache-webserver, det aldrende, men stadig meget udbredte Sendmail, dns, dhcp og mange andre.

Muligheden for at tage et snapshot af en virtuel maskine betyder, at man har råd til at eksperimentere med konfigurationerne. Den tid, man normalt skal bruge efter en konfigurationskatastrofe under installationen af et rent eksemplar af Linux, hvor man skal indlæse alle patches og afprøve en ny konfiguration, bliver reduceret fra måske flere timer til få sekunder.

Start VirtualBox

VirtualBox blev oprindelig skrevet af Innotech og videreudviklet af Sun Microsystems, og nu ejer Oracle det. VirtualBox er en gratis virtualiseringspakke. Den er ikke helt på højde med kommercielle produkter som VMWare, men den virker udmærket, og den er fin, når man vil opbygge et netværk, som man kan hacke lovligt.

Når du skal begynde at bruge VirtualBox, skal du downloade den eksekverbare fil fra det officielle website på www.virtualbox.org/wiki/Downloads. Dobbeltklik på den eksekverbare fil for at installere den, og accepter alle standardindstillingerne. Under installationen kommer der adskillige undervinduer, som spørger, om du vil installere forskellige moduler fra Oracle. De drejer sig om understøttelse af usb-enheder. Sig ja til at installere dem, og afslut.

Når du kører VirtualBox, kommer VirtualBox Manager frem. Den opregner alle de virtuelle maskiner, du opretter, og giver dig mulighed for at modificere deres virtuelle hardware og tage snapshots af deres tilstande.

Når du første gang kører VirtualBox Manager, har du ikke installeret noget gæsteoperativsystem. Det kan vi meget nemt ordne ved at downloade en Linux-distribution såsom Ubuntu Desktop (den aktuelle version er 10.10). Download iso-filen til din harddisk, men lad være med at brænde den på en dvd.

I virtualisering kalder man de operativsys-temer, man vælger at installere på virtuelle maskiner, for gæsteoperativsystemer. Det faktiske operativsystem, der kører på rigtig hardware, kalder man værtsoperativsystemet. Vi går ud fra, at din computer kører Windows 7. Følg gennemgangen nedenfor, og lav din første virtuelle maskine. Når du vil køre den installerede gæst, skal du blot vælge den og klikke på den store grønne ’Start’-knap.

Nem interaktion

VirtualBox bruger din mus og dit tastatur på forskellig vis, afhængig af dit gæsteoperativsystem. Hvis den virtuelle maskine kører Linux, og maskinens vindue er valgt, vil musemarkøren over vinduet gribe fokus, og du interagerer med desktoppen. Flyt dig til siden af vinduet, så kommer du tilbage til gæsteoperativsystemet.

Når det gælder Windows-gæster, skal du eksplicit klikke i maskinens vindue for at få den til at bruge musemarkøren. Når du flytter markøren væk fra maskinens vindue, bliver du ikke sendt tilbage til værtsoperativsystemet. Musemarkøren rammer en væg, når den rører siderne på gæstens desktop. For at få den tilbage i værtsoperativsystemet skal du trykke højre [Ctrl]-tast på tastaturet ned.

Der er nogle andre fikse genveje, som gør VirtualBox nem at bruge. Den nyttigste er måske højre [Ctrl]-tast +[F]. Den sætter gæs-ten i fuld skærmtilstand. Tryk højre [Ctrl]+[F] endnu en gang for at gå tilbage til vinduestilstand. Hvis du hurtigt vil have en gæst lukket ned, som om den havde modtaget en nedlukmeddelelse fra strømforsyningen, skal du trykke højre [Ctrl]+[H].

Hvis du er vant til hurtigt at blade mellem applikationer i Windows med [Alt]+[Tab], får du en overraskelse. Når du vælger en virtuel maskine med denne teknik, i værtsoperativsystemet, griber den tastaturfokus og slipper ikke. Når du trykker [Alt]+[Tab] igen, kan du blade gennem de applikationer, der kører på gæsteoperativsystemet. Hvis du husker det, undgår du nogle frustrationer senere, når du begynder at skrive kommandoer ind i det forkerte vindue!

Du opdager måske også noget, der umiddelbart ligner en irriterende fejl, hvis du installerer Linux fra en iso-fil, der ligger på værtens harddisk: VirtualBox gør iso-filen tilgængelig for den virtuelle maskine. Næste gang du booter gæsteoperativsystemet, bliver du mødt af det samme ”Try or install”-skærmbillede. Det ser ud, som om du har efterladt en rigtig Linux-dvd i det optiske drev, men der er intet drev at skubbe den ud fra.

Du kan fravælge iso-filen, mens gæsteoperativsystemet kører, ved at klikke ’Devices | CD/DVD devices’ og vælge navnet på iso-filen. Der vil være et hak ud for den. Det viser, at den bliver indlæst automatisk, hver gang den virtuelle maskine booter. Hvis man klikker på den, fjerner man hakket og gør den utilgængelig for gæsten. Hvis du vælger navnet på cd/dvd-drevet, begynder gæsteoperativsystemet at genkende det og kan indlæse det og læse og skrive til og fra det.

Hvis gæsteoperativsystemet kører, kan du frakoble iso-filen ved at vælge den virtuelle maskine i VirtualBox Manager og derefter i panelet til højre ved at klikke på Storage-sektionen. I det efterfølgende vindue ser du lagertræet. Klik ud for iso’en, og klik i det højre panel på cd-symbolet. En liste over diske og iso’en kommer frem. Vælg iso’en for at fjerne hakket ud for dens navn.

Virtuelt netværksarbejde

VirtualBox gør det muligt for hvert af gæsternes netkort at fungere i adskillige tilstande, og hvert af dem har sin egen bestemte opgave. Man vælger tilstand ved at vælge den virtuelle maskine og klikke på sektionen ’Network’. Den første tilstand er ’Unconnected’. Det betyder, at der ikke er netværksforbindelse.

Den næste tilstand er ’Network address translation’ (NAT). I NAT får hvert gæsteoperativsystem den samme ip-adresse, og VirtualBox leverer tjenester til adresseoversættelse, således at hvert af dem kan se verden udenfor.

Imidlertid tror hvert gæsteoperativsystem, at det er det eneste, der kører på den fysiske hardware, og kan ikke få kontakt med andre gæster eller interagere med gæs-teoperativsystemet. Det er glimrende, når man besøger sites, som måske prøver at installere malware, og man har brug for hurtigt at rulle maskinens tilstand tilbage til et tidligere snapshot.

En anden tilstand er ’Internal’, som du kan bruge, når du ønsker, at gæster skal kunne kommunikere med hinanden, men ikke med verden udenfor. Men den dur ikke til vores formål. Vi ville ignorere værtsoperativsystemet. Vi kan lige så godt inddrage det i vores virtuelle netværk, og vi skal derfor bruge en anden tilstand, der kaldes ”bridged” netværk.

Bridged netværk

Når man bruger bridged netværk, leverer VirtualBox en sti mellem gæsteoperativsystemet og det rigtige netværk, herunder internetadgang, hvis værten er forbundet med verden udenfor. Gæsterne har hver en unik ip-adresse og kan kommunikere med rigtige computere og med hinanden. De kan også starte Windows-shares og fjerne Linux-filsys-temer. De virtuelle maskiner forekommer i enhver henseende at være ægte.

Standard-netværkstilstanden er NAT. Netværkstilstanden skal ændres for hvert gæsteoperativsystem, du installerer. Hvis du glemmer det, kan du ændre tilstanden i et kørende gæsteoperativsystem ved at klikke ’Devices | Network adapters’ i den kørende maskines menubjælke. I det efterfølgende vindue vælger du ’Bridged adapter’ og klikker ’OK’. Giv gæsten nogle få øjeblikke til at følge med i ændringen, og åbn så en webbrowser for at se, om den stadig har internet- adgang.

Du kan tjekke, om gæsten kan se værtsoperativsystemet, ved at pinge den. I Windows gør man det ved at åbne en kommandolinje i værten og skrive ipconfig. Noter ipV4-adressen.

I et gæsteoperativsystem, der kører Ubuntu, klikker du ’Applications | Accessories | Terminal’ og skriver kommandoen ifconfig. I ’Eth0’-sektionen af den følgende tekst bør du kunne se et felt, der hedder ’inet addr:’. Den ipV4-adresse, der følger, er gæstens. Brug ping-kommandoen (ping <address>) på både gæst og vært for at sikre dig, at forbindelsen virker begge veje.

Du kan oprette flere virtuelle maskiner og installere andre Linux-distributioner for at få en god blanding af miljøer. Hvis du installerer Windows, skal du bruge en gyldig licensnøgle. Ellers opdager senere versioner, at de ikke har licens, og vil nægte at køre.

Du er nødt til at installere lovlige eksemplarer. Men hvis du installerer Windows XP, burde du få en prøveperiode på 28 dage, før du skal anskaffe en licens online.

1. Når du skal oprette en ny virtuel maskine, begynder du med at klikke på den blå ’New’-knap foroven til venstre i VirtualBox’ hovedgrænseflade. Velkomstskærmen for New Virtual Machine-wizarden kommer frem. Klik ’Next’ for at gå videre.

2. Nu skal du skrive et passende navn på den virtuelle maskine og sikre dig, at operativ-systemet og dets version er indstillet til den, du vil installere, ellers får du problemer senere. Klik ’Next’ igen for at gå videre.

3. VirtualBox bestemmer, hvor megen hukommelse der kræves til det valgte operativsystem. Lad hukommelsesindstillingerne være standard, og klik ’Next’. Accepter standardindstillingerne for den virtuelle harddisk, der skal forbindes med gæsten.

4. Klik ’Next’ gentagne gange for at gå igennem New Virtual Disk-wizarden, og accepter standardindstillingerne undervejs. VirtualBox afgør, hvor megen plads operativsystemet kræver. Tryk ’Finish’.

5. Vælg den virtuelle maskine, og klik på knappen ’Start’. Når den første Run-wizard kommer frem, klikker du ’Next’ igen. Nu kan du enten klikke på mappeikonet for at installere fra en iso-fil eller vælge et dvd-drev.

6. Klik ’Next’ og derefter ’Finish’. Gæsteoperativsystemet bør nu begynde at installere sig selv i den virtuelle maskine.

Virtualisering går tilbage til 1960’erne og tiden med eksperimentel hardware hos IBM. Nu om dage, med fremkomsten af cpu’er med flere kerner, bliver den ofte brugt til at erstatte flere uudnyttede servere med henblik på at reducere vedligeholdelsesomkostninger og til at teste forskellige netværkskonfigurationer.

Virtualisering omfatter som regel, at man opretter en virtuel ”klient” på værtsoperativsystemet, der kører, som om det kørte på selve hardwaren. Et program ved navn hypervISOr emulerer hardwaren, så hver virtuel maskine kan klare alt fra bios-post-rutinen og indlæsning af masterboot-record fra et virtuelt drev til at boote et gæsteoperativsystem og køre applikationer.

Gæsteoperativsystemet er ”i matrixen”, så at sige, og det aner ikke, at det ikke kører den rigtige hardware. Virtualisering har mange fordele. En de vigtigste er, at et gæsteoperativsystem kan udsættes for situationer, hvor der kan være malware til stede. Hvis den virtuelle maskine fanger noget væmmeligt, kan man klare det ved simpelthen at rulle dens tilstand tilbage til, før infektionen fandt sted.

Udgifterne ved virtualisering kommer fra behovet for stærkere hardware. Men da hardwaren er mere centraliseret, falder administrationsomkostningerne tilsvarende.

[themepacific_accordion]
[themepacific_accordion_section title="Fakta"]

Det skal du bruge:

[/themepacific_accordion_section]
[themepacific_accordion_section title="Fakta"]

Ryd op

[/themepacific_accordion_section]
[/themepacific_accordion]