Exploit ( engelsk exploit , exploit) - et computerprogram , et stykke programkode eller en sekvens af kommandoer , der udnytter sårbarheder i software og bruges til at angribe et computersystem. Målet med et angreb kan enten være at tage kontrol over systemet ( privilegie-eskalering ) eller at forstyrre dets funktion ( DoS-angreb ).
Virus til at ødelægge programmer, spil, applikationer.
Afhængigt af metoden til at få adgang til sårbar software opdeles udnyttelser i remote ( eng. remote ) og local ( eng. local ).
Et udnyttelsesangreb kan målrettes mod forskellige komponenter i et computersystem - serverapplikationer , klientapplikationer eller operativsystemmoduler . For at udnytte en serversårbarhed behøver en udnyttelse kun at generere og sende en anmodning indeholdende ondsindet kode til serveren. At udnytte en klientsårbarhed er lidt sværere - du skal overbevise brugeren om at oprette forbindelse til en falsk server (ved at følge et link, hvis den sårbare klient er en browser ).
Udnyttelse er faktisk designet til at udføre tredjepartshandlinger på et sårbart system og kan opdeles mellem sig som følger:
Udtrykket pivoting refererer til en teknik, der bruges af computersikkerhedstestere i penetrationstests [2] , som bruger et kompromitteret system til at angribe andre systemer på det samme netværk for at undgå begrænsninger, såsom firewall -konfigurationer , der kan forbyde direkte adgang til alle maskiner. For eksempel, hvis en angriber kompromitterer en webserver på et virksomhedsnetværk, kan angriberen derefter bruge den kompromitterede webserver til at angribe andre systemer på netværket. Disse typer angreb omtales ofte som lagdelte angreb. [3]
Udnyttelsen kan distribueres i form af kildekode , eksekverbare moduler eller en verbal beskrivelse af udnyttelse af sårbarheden. Det kan skrives i et hvilket som helst programmeringssprog (mest brugt: C / C++ , Perl , Python , PHP , HTML + JavaScript ) [4] .
Udnyttelser kan også klassificeres efter typen af sårbarhed, de udnytter, såsom: bufferoverløb , SQL-injektion , cross-site scripting , cross site request forgery , osv.
De oplysninger, der opnås som følge af opdagelsen af en sårbarhed, kan bruges både til at skrive en udnyttelse og til at rette op på sårbarheden. Derfor er begge parter lige interesserede i det – både krakkeren og producenten af den krakkede software. Fordelingen af disse oplysninger bestemmer, hvor lang tid en udvikler skal bruge, før en patch frigives .
Efter at sårbarheden er lukket af producenten, begynder chancen for at anvende udnyttelsen hurtigt at falde. Derfor er de såkaldte 0day exploits, som bruger nyligt opståede sårbarheder, som endnu ikke er blevet offentligt kendte, særligt populære blandt hackere [5] .
Exploit bundles er en udnyttelsespakke til flere programmer (versioner) på én gang og/eller til forskellige sårbarheder i dem. I de seneste versioner af bundter er en udnyttelse valgt specifikt til et specifikt brugerprogram.
I de fleste tilfælde bruges udnyttelsessæt til angreb, der udnytter sårbarheder i browsere eller browsertilføjelser ( f.eks. Java , Flash og PDF [6] er almindelige mål ).
Der er også sæt af lokale udnyttelser til at hæve privilegier i det angrebne system. Faktisk er sådanne sæt også bundter, men i hackermiljøet betragtes de ikke som sådan og kaldes ikke.