Hvad er en shellcode?

ShellCode er sekvens af maskinkode eller eksekverbare instruktioner, der injiceres i en computers hukommelse med det formål at tage kontrol over et kørende program. I et sådant angreb er et af trinnene at få kontrol over programtælleren, der identificerer den næste instruktion, der skal udføres. Programstrømmen kan derefter omdirigeres til den indsatte kode. Den påtrængende maskinkode kaldes nyttelasten for angrebet og er det element, der ofte henvises til af udtrykket shellcode. Denne metode er ofte blevet brugt til at give en angriberen adgang ved at åbne en operationssystemkommando -shell, så kodeinjektionsangreb generelt er blevet kendt som shellcode.

Den sårbarhed, der udnyttes typisk, involverer, hvordan et program tildeler hukommelse, kontrollerer gyldigheden af ​​inputdata og håndterer hukommelsesfejl. Softwareudviklere kan normalt undgå denne trussel ved strengt at definere inputdata og afvise forkerte værdier. Hvis det ikke er markeret, er værdier, der har brug for mere lagerplads end hukommelsen AllottEd for denne værdi kan accepteres. Dette medfører en sikkerhedsskib kaldet en bufferoverløb, hvor en del af dataene skrives til hukommelsessteder, der støder op til værdiens tildelte plads. Når den omhyggeligt manipuleres, kan denne afvigelse gøre det muligt at introduceres påtrængende kode.

shellcode er normalt skrevet på et programmeringssprog med adgang til lavt niveau, såsom montering, C eller C ++. Afhængig af den målrettede sårbarhed kan det samme resultat imidlertid realiseres ved at indsætte kode for et fortolket scriptingsprog, som Perl eller Bytecode for en virtuel maskine, såsom Java. Koden kan implanteres før, under eller efter kapring af programtælleren. Således kan den påtrængende kode være indeholdt i en fil på den målrettede maskine eller transmitteret over en netværksforbindelse i realtid.

Lokale shellcode -udnyttelser er designet til at give en angriberkontrol over en maskine til WHICH Han eller hun har fysisk adgang. Et mål i dette tilfælde kan være at oprette en konto med administratorrettigheder, for eksempel. Tilsvarende, hvis en løbsproces har et højt privilegiumniveau, ville en vellykket udnyttelse midlertidigt give det samme niveau af adgang til den indtrængende.

Processer, der kører på en fjernmaskine, kan udnyttes ved hjælp af standardnetværksprotokoller til at kommunikere med målcomputeren. Connect-Back ShellCode instruerer målmaskinen til at starte en forbindelse til den indtrængende computer. Hvis den indtrængende initierer forbindelsen, kaldes koden et bindskal, da den forsøger at tage kontrol over en netværksforbindelse kaldet en port på fjernmaskinen. Connect-back-metoden er mere udbredt, da firewalls sjældent forbyder udgående forbindelser.

ANDRE SPROG

Hjalp denne artikel dig? tak for tilbagemeldingen tak for tilbagemeldingen

Hvordan kan vi hjælpe? Hvordan kan vi hjælpe?