Skip to main content

Vad är en skalkod?

Shellcode är sekvensen av maskinkod, eller körbara instruktioner, som injiceras i ett datorminne med avsikt att ta kontroll över ett löpande program.I en sådan attack är ett av stegen att få kontroll över programräknaren, som identifierar nästa instruktion som ska utföras.Programflödet kan sedan omdirigeras till den infogade koden.Den påträngande maskinkoden kallas attacken för attacken och är det element som vanligtvis hänvisas till av termen skalkod.Denna metod har ofta använts för att ge en angripare åtkomst genom att öppna ett Operation System Command Shell, så kodinjektionsattacker i allmänhet har blivit kända som Shellcode.

Den sårbarhet som utnyttjas innebär vanligtvis hur ett program tilldelar minnet, kontrollerar giltighetenav inmatningsdata och hanterar minnesfel.Programvaruutvecklare kan vanligtvis undvika detta hot genom att strikt definiera inmatningsdata och avvisa felaktiga värden.Om det inte är avmarkerat kan värden som behöver mer lagringsutrymme än minnet som tilldelas för det värdet accepteras.Detta orsakar en säkerhetsbäcke som kallas ett buffertöverskridande, där en del av uppgifterna skrivs till minnesplatser intill de tilldelade värdena.När man noggrant manipuleras kan denna anomali tillåta påträngande kod att introduceras.

Shellcode skrivs normalt på ett programmeringsspråk med lågnivåsystemåtkomst som montering, C eller C ++.Beroende på den riktade sårbarheten kan emellertid samma resultat realiseras genom att infoga kod för ett tolkat skriptspråk, som Perl, eller bytekod för en virtuell maskin, till exempel Java.Koden kan implanteras före, under eller efter kapningens kap.Således kan den påträngande koden ingå i en fil på den riktade maskinen eller överföras över en nätverksanslutning i realtid.

Lokala skalkodutnyttjelser är utformade för att ge en angripare kontroll över en maskin som han eller hon har fysisk åtkomst till.Ett mål i detta fall kan vara att skapa ett konto med administratörsbehörighet, till exempel.På samma sätt, om en löpningsprocess har en hög privilegiumnivå, skulle en framgångsrik utnyttjande tillfälligt bevilja samma åtkomstnivå till inkräktaren.

Processer som körs på en fjärrmaskin kan utnyttjas med hjälp av standardnätverksprotokoll för att kommunicera med måldatorn.Connect-Back ShellCode instruerar målmaskinen för att initiera en anslutning till inkräktarens dator.Om inkräktaren initierar anslutningen kallas koden ett bindshell, eftersom den försöker ta kontroll över en nätverksanslutning som kallas en port på fjärrmaskinen.Connect-back-metoden används mer i stor utsträckning, eftersom brandväggar sällan förbjuder utgående anslutningar.