Hva er en skallkode?

ShellCode er sekvens av maskinkode, eller kjørbare instruksjoner, som blir injisert i datamaskinens minne med den hensikt å ta kontroll over et løpende program. I et slikt angrep er et av trinnene å få kontroll over programtelleren, som identifiserer neste instruksjon som skal utføres. Programflyt kan deretter omdirigeres til den innsatte koden. Den påtrengende maskinkoden kalles nyttelasten til angrepet og er elementet som ofte refereres til av begrepet skallkode. Denne metoden har ofte blitt brukt til å gi en angriper tilgang ved å åpne et operasjonssystemkommandoskall, så kodeinjeksjonsangrep generelt har blitt kjent som ShellCode.

Sårbarheten som utnyttes typisk innebærer hvordan et program tildeler minne, sjekker gyldigheten av inngangsdata og håndterer minnefeil. Programvareutviklere kan vanligvis unngå denne trusselen ved å definere inputdata strengt og avvise feil verdier. Hvis de ikke er merket av, trenger verdier mer lagringsplass enn minnetildelingEd for den verdien kan aksepteres. Dette fører til at et sikkerhetsbukk kalt en bufferoverløp, der en del av dataene skrives inn i minneplasser ved siden av verdienes tildelte plass. Når denne anomalien nøye manipuleres, kan denne anomalien tillate påtrengende kode å bli introdusert.

ShellCode er normalt skrevet på et programmeringsspråk med systemtilgang på lavt nivå som montering, C eller C ++. Avhengig av den målrettede sårbarheten, kan det samme resultatet imidlertid realiseres ved å sette inn kode for et tolket skriptspråk, som Perl, eller bytecode for en virtuell maskin, for eksempel Java. Koden kan implanteres før, under eller etter kapring av programtelleren. Dermed kan den påtrengende koden være inneholdt i en fil på den målrettede maskinen eller overført over en nettverkstilkobling i sanntid.

Lokale skallkodeutnyttelser er designet for å gi en angriperkontroll over en maskin til WHICh han eller hun har fysisk tilgang. Et mål i dette tilfellet kan være å opprette en konto med administratorrettigheter, for eksempel. Tilsvarende, hvis en løpsprosess har et høyt privilegiumnivå, vil en vellykket utnyttelse midlertidig gi samme nivå av tilgang til inntrengeren.

Prosesser som kjører på en ekstern maskin kan utnyttes ved hjelp av standard nettverksprotokoller for å kommunisere med måldatamaskinen. Connect-Back ShellCode instruerer målmaskinen om å starte en tilkobling til inntrengerens datamaskin. Hvis inntrengeren initierer tilkoblingen, kalles koden en bindshell, da den prøver å ta kontroll over en nettverkstilkobling kalt en port på den eksterne maskinen. Tilkoblingsmetoden er mer utbredt, siden brannmurer sjelden forbyr utgående tilkoblinger.

ANDRE SPRÅK