Yandex Dzen.

Hvad er udnyttelse og hvordan hackere bruger det

Vær hilset. Hvem er hackere og hvad de allerede har diskuteret. Vi vil ikke gentage, desuden er det åbent dækket af netværket og i biograf. Hackermetoder og typer af hackerangreb er mange, derfor ikke at skabe fra artiklen "Vinaigrette", markerer vi en, som er populær blandt sorte hackere og i 2020. Jeg vil ikke forsøge at "spare intrigue", vi vil beskrive: "udnytter".

For indledende bekendtskab forstår vi, at udnyttelsen er en del af computerkoden (eller kompileret program og ikke kun ...), som bruger "offerets sårbarhed" og så er målene forgrenet til: At få adgang; "Hængende" server; Forstyrrelse. Hvis læseren kom på tværs af ordene "DOS ATAK", så ved du, at 85%, hackere brugte "udnyttelser". Faktisk vil navnet, hvis du oversætter fra engelsk, betyde: "Brug noget". Eller udnyttelse, dermed rødderne af ordet "udnyttelse".

Disse programmer (vi vil opfordre til udnyttelse af programmer, Selvom det ikke er sandt ) er opdelt i destinationer: til vinduer, Linux og andre operationer; For andre programmer og så videre. Etc.

Jeg tror, ​​at læserne ønsker at forsøge at forstå, hvordan dette magiske program, der kan engagere sig, hænge og give adgangen "Master" på den "mærkelige" server. Lad os først finde ud af det, hvorfor aftalen hedder programmet, ikke sandt. Faktum er, at det ikke kun udnyttes den kompilerede fil, men også en tekst (selv Notepad med en beskrivelse af, hvordan man hack "Systemet" er allerede udnyttet). Jeg forstår den nemmeste misforståelse af læsningen, men det er: Hvis du åbner en notesbog og der i form af en tekst for at skrive, hvordan man "nyd" enhver server, vil den også være en udnyttelse. Men hvad der i det mindste ville lide, diversificere en artikel, lad os i det mindste nogle gange skrive ordet: programmet. Desuden kommer sådanne udnyttelser på tværs af et program på "ethvert" sprog. Hackere, disse er tidligere programmører, der i fortiden søgte fejl i programmer Derfor ejer sådanne mennesker nemt C / C ++, Perl og TD sprog. Opgaven med sådanne programmer reduceres til bufferoverløb, SQL-poster, "Linden" anmodninger om webstedet og så videre.

Hvad er udnyttelse og hvordan hackere bruger det

Det sker med at bruge sekvensen af ​​programmer, hvis opgaven skal være "kompliceret".

Find og download færdige udnyttelser i åbent internet er ikke lovligt. Og selvfølgelig anbefaler forfatteren ikke på udkig efter sådanne programmer i DarkNET.

Så nu, når en forståelse af udnyttelsen deponeret i hovedet, gå til "Virtual Practice". Antag situationen: I byen Voronezh bor en mand, der regelmæssigt flyver til Moskva og der "vores" en gift dame. Den bedragerede ægtefælle, der ikke er i stand til at fange elskeren, afgøres om hævn, men eksternt. For at gøre dette er din mand brug for adgang til computeren "Scounding". Lad os ikke gå ind i detaljerne, men vi siger det faktum: det blev kendt, hvordan browseren bruger en "snedig rival". Heldigvis for en avanceret mand, i denne browser er der en "sårbarhed". Det forbliver kun at tvinge loveren "Run Code", som uden brugerens viden, indlæser malware "på siden". Derefter skriver manden et brev på vegne af sin kone og sender en elsker via mail. Resultatet er forståeligt (åbner brevet, og koden er allerede "i sagen").

De berømte programmer er: "Angler" (komplekse sæt (værker i RAM)); "Neutrino" (Russian Brainchild på Java, koster 34 tusind dollars); "Blackhole Kit" (slår browserne Chrome, "Osblik", "Firefox" ).

Kommentar ("negativ \ positiv"). Abonnere. Synes godt om. Farvel.

Hej, Habrovsk. I forventning om starten af ​​kurset "Administrator Linux. Professionel » Vores ekspert - Alexander Kolesnikov forberedte en interessant artikel, som vi gerne vil dele med dig. Inviter også fremtidige studerende og alle dem, der ønsker at besøge en åben lektion om emnet "Metoder og evnen til at fejle scripts af bash shell."

Linux-operativsystemet har vist sig at være verdens alle kraften i open source-projekter - takket være hende i dag har vi mulighed for at se på kildekoden i Working OS og baseret på det for at samle dit eget system for at løse visse mål. På grund af dens åbenhed skulle Linux blive det sikreste operativsystem i verden, da open source-koden giver mulighed for at udvikle og forbedre beskyttelsesundersystemerne fra angreb på OS og forbedre operativsystemet selv. Faktisk er der i øjeblikket et stort antal fællesskabsbeskyttelse skabt: I dag er det ikke længere så nemt at overføre sårbarhederne af typen af ​​bufferoverløb for at opnå forhøjede privilegier for lidt for 20 år siden. Men i dag kan du finde udnyttelser på det offentlige område, som selv på de nyeste versioner af kernen kan øge brugerrettigheder. Overvej i denne artikel, som det virker, og hvorfor det viser sig. Vi vil gennemgå de vigtigste komponenter i udnyttelsen og overveje, hvordan nogle af dem fungerer.

Alle angivne oplysninger blev udelukkende indsamlet til informative formål.

Typer af udnyttelse

Vælg en generel betegnelse, som vi vil betegne, hvad der er Exploit. - algoritmen, der krænker operativsystemets normale funktion, nemlig mekanismerne for separation af adgang. Vi vil også introducere konceptet Sårbarheder - Dette er en software ufuldkommenhed, der kan bruges af en udnyttelsesalgoritme. Uden sårbarhed er eksistensen af ​​en udnyttelse umulig.

Vi introducerer klassificeringen af ​​udnyttelser. Den grundlæggende adskillelse af udnyttelser til undergrupperne for ethvert operativsystem begynder på niveauet for arkitekturen. I dag omfatter operativsystemer mindst 2 niveauer af privilegier, der bruges til deres arbejde. Nedenfor er et billede, der tydeligt viser adskillelsen af ​​privilegier. Billede taget Herfra .

Billedet viser meget tydeligt, at kernen (kernel rum) er til stede i operativsystemet, det er normalt den mest privilegerede tilstand, det er her, at vi kalder operativsystemet. Og det andet niveau er brugerdefineret (brugerrum): Regelmæssige applikationer og tjenester, som vi bruger hver dag, lanceres her.

Det har historisk udviklet, at der for hvert af de ovennævnte niveauer findes sårbarheder, for hvilke der kan skabes en udnyttelse, men udnyttelsen for hvert niveau har sine begrænsninger.

På brugerniveau vil enhver udnyttelse, der påvirker applikationen, præcis de privilegier, som brugeren bruger, der lancerede en sårbar ansøgning. Derfor giver denne type udnyttelse dig kun at få fuld kontrol over OS, hvis programmet lanceres af systemadministratoren. I modsætning til brugerniveau, kernel niveau Hvis den indeholder en sårbar kode, kan den straks aktivere operativsystemet med maksimale privilegier. Nedenfor vil fokusere på undersøgelsen af ​​disse udnyttelser.

Explant.

Forestil dig små statistikker om offentliggørelse af sårbarheder for kernen i Linux-operativsystemfordelingen af ​​Debian, Suse, Ubuntu, Arch Linux i de sidste 4 år.

Data taget Herfra . Billedet foregiver ikke at være komplet, men det viser, at der er mange sårbarheder, og selv i dag er der fra, hvad man skal vælge at opbygge en udnyttelse. Lad os prøve at beskrive, hvad der udnyttes.

Enhver udnyttelse af ethvert niveau af operativsystemet i dag består af dele, der skal implementeres i sin kode:

  1. Forberedende operationer:

    1) Naviger det nødvendige hukommelsesdisplay

    2) Oprettelse af de nødvendige objekter i OS

    3) Omgås OS Beskyttelsesmekanismer til sårbarhed

  2. Ring sårbar del.

  3. Udfører en nyttelast:

    1) for at åbne adgang til operativsystemet

    2) For at ændre konfigurationen af ​​OS

    3) For systemets udgang

Når du udfører alle elementer, som er angivet ovenfor, kan du skrive en brugbar udnyttelse. Tag flere udnyttelse af de sidste år og prøv at finde ud af, om det er muligt at finde nogle regelmæssigheder eller lån, der bruges til at krænke adskillelsen af ​​adgang i Linux-operativsystemet. Som studieobjekter tager vi udnyttelse, der bruger følgende sårbarheder med CVE-identifikatorer:

CVE-2020-8835.

CVE-2020-27194.

Katastrofeudnyttelse

CVE-2020-8835. рAsperser kernen i Linux OS fra version 5.5.0. Sårbarhed er i teknologi implementering Ebpf. . Teknologien blev designet til at sikre, at brugeren kan oprette brugerdefinerede håndtere til at filtrere netværkstrafik. Som hovedkomponent til filtrering anvendes en virtuel maskine med eget sæt kommandoer. Koden, der udføres af den virtuelle maskine, bor i kernen: En fejl i denne kode bringer en angriber til at arbejde med hukommelse med maksimale rettigheder. I tilfælde af den beskrevne sårbarhed var problemet, at operationsbehandlingsoperationerne 32 bits ikke blev behandlet korrekt, og den virtuelle maskine kunne skrive og læse dataene i nuklear RAM.

Da forfatteren af ​​udnyttelsen anvender denne sårbarhed, og hvad en nyttelast udføres, overveje yderligere.

Forberedende trin.

For denne fase er den næste del af koden ansvarlig.

Række 394 - Oprettelse af et objekt i hukommelsen, der gemmer data på kommandoer til Ebpf. . Række 400 indlæser i hukommelseskoden, der udføres i den virtuelle maskine og vil overtræde betingelserne for behandling af 32 bit kommandoer. Hukommelsesforberedelsen er forbi, følgende linjer vil skabe et objekt af en stikkontakt, der vil blive kaldt uploadede kommandoer til bpf. . Derefter begynder sårbarhedskammeret.

Ring sårbar kode

Opkald til en sårbar kode eller snarere arbejder med de virtuelle maskinkommandoer fra linjen 423 til 441. Hovedopgaven for denne kode er at opnå den grundlæggende adresse på den struktur, der er i hukommelsen, i dette tilfælde er det en bunke (bunke) proces. Så snart disse kommandoer udføres, vil udnyttelsen detektere de data, der anvendes af operativsystemet til at styre adskillelsen af ​​adgangen. I Linux-operativsystemet gemmes disse data i strukturen Task Instruct. .

Nyttelast

Den nyttige belastning af denne udnyttelse er, at efter dens udførelse kan du køre en proces med brugerrettigheder rod . Til dette producerer udnyttelseskoden modifikation af Linux-operativsystemet kernelfeltfelter - Cred. Dette er en struktur, der kommer ind i strukturen Task Instruct. . Kilde kode struktur. Cred. Kan findes her .

Feltændringshandlinger Struktur cred. kan ses på rækker 472.473.474. . Det vil sige, at denne handling nulstiller værdien UID, GID, SGID Proces oprettet. Ud fra synspunktet er det sat til identifikationsværdier, der normalt bruger rod . Metoden ligner meget den, der bruges til angrebene på Windows-operativsystemet.

Du kan beskytte dig selv uden at opdatere OS, hvis du foretager følgende ændringer i konfigurationen: sudo sysctl kernel.unprivileged_bpf_disabled = 1

CVE-2020-27194. - igen sårbarhed i Ebpf. . Der er en version af version 5.8. *. Skaberne af denne teknologi er sjov det bpf. - Dette er javascript for kernen. Faktisk er denne dom ikke langt fra sandheden. Den virtuelle maskine udfører virkelig manipulationer over hold ved hjælp af JIT-teknologi, som i sig selv bærer alle de typiske browsere sårbarheder i operativsystem kernen, det vil sige, det er svært at konfigurere beskyttelsessubsystemet for at beskytte koden. Den undertstående sårbarhed er, at fra koden for den virtuelle maskine kan du ændre ethvert område af RAM. Måske skyldes det, at den virtuelle maskine er usikker på at arbejde med 64 bit længdeoperationer. Fuldt lignende sårbarhed af den, vi overvejede ovenfor.

Udnyttelse, som er designet til at anvende den beskrevne sårbarhed, udfører de samme operationer som udnyttelsen CVE-2020-8835. Exploit algoritme næste:

  1. Download kode med behandling 64 bit operationer

  2. Opret en stikkontakt og send data til opkaldskommandoer Ebpf.

    1. Find i tankerne adressen til strukturen Task Instruct. Ved at udføre kommandoer i en virtuel maskine

  3. Modificere værdier UID, GID, SGID og lancere en interaktiv skal.

Forfatteren skrev kildekoden med nye chips og yderligere funktioner. Vi tilbyder selv læseren til at se på koden selv. De angivne faser af udnyttelsens arbejde vil ikke blive forvirret.

Beskyttelse mod denne sårbarhed uden brug af opdateringer er den samme: sudo sysctl kernel.unprivileged_bpf_disabled = 1

Hvad er resultatet?

Baseret på to udnyttelser, som blev overvejet i artiklen, kan det antages, at stigende privilegier i det moderne Linux OS ikke længere er mørk programmeringsmagic, men en fuldt opladet skabelonproces, der omfatter genbrug af funktioner og objekter i RAM. Samtidig er det ikke engang nødvendigt at skrive baseafhængig (shellcode) kode, der udfører de fleste handlinger. Det er nok til blot at ændre de identifikatorer, der bruges til at tildele privilegier for brugerne.

Lær mere om kurset "Administrator Linux. Professionel. "

Tilmeld dig en åben lektion "Metoder og evnen til at fejle scripts af bash shell."

Læs mere:

Hvad er udnyttelse?

På udviklingsstadiet i alle programmer og netværk er beskyttelsesmekanismerne mod hackere i typen af ​​låse, advarselsautoriseret overvågning, indlejret. Sårbarheden ligner det åbne vindue for at komme igennem, hvilket ikke vil være meget svært for en angriber. I tilfælde af en computer eller netværk kan angriberne etablere ondsindet software ved at bruge sårbarhed for at opnå kontrol eller inficere systemet for deres lejesoldat med relevante konsekvenser. Skålen af ​​alt dette sker uden brugerens viden.

Explant.
Hvordan opstår udnyttelsen?

Udnyttelsen er forårsaget af fejl i softwareudviklingsprocessen, som et resultat af hvilke sårbarheder med succes anvendes i programbeskyttelsessystemet, som med succes anvendes af cyberkriminelle for at opnå ubegrænset adgang til selve programmet, og gennem det videre til hele computeren . Eksplanter er klassificeret i overensstemmelse med typen af ​​sårbarhed, som anvendes af en hacker: nul dag, dos, spoofing eller xxs. Selvfølgelig vil programudviklere snart frigive sikkerhedsopdateringer for at eliminere fundet fejl, dog indtil dette punkt er programmet stadig sårbart over for indtrengere.

Hvordan man genkender udnyttelse?

Da udnyttelsen bruger barer i programsikkerhedsmekanismer, har en almindelig bruger næsten ingen chance for at bestemme deres tilstedeværelse. Derfor er det yderst vigtigt at opretholde de etablerede programmer, der opdateres, især i en rettidig måde af sikkerhedsopdateringer, fremstillet af programudviklere. I tilfælde af at softwareudvikleren frigiver sikkerhedsopdatering for at eliminere en bestemt sårbarhed i sin software, men brugeren vil ikke etablere den, så vil programmet desværre ikke modtage de seneste virale definitioner.

Sådan eliminerer du udnyttelse?

På grund af det faktum, at udnyttelsen er konsekvensen af ​​engagerede mangler, er deres eliminering inkluderet i udviklernes direkte opgaver, så forfatterne skal forberede og sende fejlkorrektion. Forpligtelsen til at opretholde de installerede programmer, der opdateres og rettidigt installeres opdateringspakkerne for ikke at give chancen for at bruge sårbarheder, ligger helt på brugeren. En af de mulige måder går ikke glip af de seneste opdateringer - Brug applikationsadministratoren, der sikrer, at alle installerede programmer opdateres, eller - hvad der endnu bedre - brug det automatiske søgnings- og installationsværktøj.

Sådan stopper du forsøg af hackere til at bruge sårbarheder i tredjepartsprogrammer
  • Sørg for, at du har installeret de nyeste sikkerhedsopdateringer og patches til alle programmer.
  • For at være sikker online og holde dig opdateret med begivenheder, skal du sætte alle opdateringer straks efter deres udgivelse.
  • Installer og brug Premium Anti-Virus, som er i stand til automatisk at opdatere de installerede programmer.
Sikre dig selv fra udnyttelser

Stole på sund fornuft og følge de grundlæggende regler for sikkert arbejde på internettet. Hackere kan kun udnytte sårbarhed, hvis de formår at få adgang til din pc. Åbn ikke vedhæftede filer i mistænkelige meddelelser, og download ikke filer fra ukendte kilder. Support installerede programmer opdateret, og også rettidige installation af sikkerhedsopdateringer. Hvis du vil maksimere at forenkle denne opgave, skal du downloade Avast Antivirus, som ikke kun vil give pålidelig beskyttelse mod alle typer malware, men også vil hjælpe med installationen af ​​de seneste opdateringer til tredjepartsprogrammer.

Добавить комментарий