Shellkode

Shellcode ( engelsk  shellcode , shell startup code) er en binær eksekverbar kode , der normalt overfører kontrol til kommandoprocessoren, for eksempel '/bin/sh' i Unix shell , 'command.com' i MS-DOS og 'cmd.exe' på Microsoft Windows -operativsystemer . Shellcode kan bruges som en udnyttelsesnyttelast , der tillader en angriber at få adgang til en shell et computersystem . 

Når man udnytter en ekstern sårbarhed , kan shell-koden åbne en forudbestemt TCP -port på den sårbare computer, hvorigennem yderligere adgang til kommandoskallen vil blive udført, en sådan kode kaldes port binding shellcode .  Hvis shellcoden forbinder til porten på angriberens computer, hvilket gøres for at omgå firewallen eller NAT , så kaldes en sådan kode en omvendt shell ( eng. reverse shell shellcode ).  

Sådan virker det

Shellcode injiceres normalt i hukommelsen af ​​det kørende program, hvorefter kontrol overføres til det ved stack overflow eller ved et heap buffer overflow eller ved at bruge format string angreb . Overførslen af ​​kontrol til shellcoden sker ved at overskrive returadressen på stakken med adressen på den injicerede shellcode, overskrive adresserne på kaldte funktioner eller ændre interrupt-handlere. Resultatet af dette er udførelse af en shellcode, der åbner en kommandolinje til brug for en angriber.

Discovery

Crackers skriver shellcodes og bruger ofte tricks til at skjule deres angreb. De forsøger ofte at finde ud af, hvordan intrusion detection-systemer (IDS) genkender ethvert indkommende angreb. En typisk IDS scanner normalt alle indgående pakker på udkig efter en shellcode-specifik struktur (ofte et stort udvalg af uønskede koder, NOP'er i det enkleste tilfælde ); hvis den finder en sådan struktur, ødelægges pakken, før den når sin destination. Den svage position for IDS i dette tilfælde er, at den ikke laver en rigtig god søgning, ellers vil den tage for lang tid og dermed bremse internetforbindelsen.

Shellcode indeholder næsten altid en streng med navnet på skallen . Alle indgående pakker, der indeholder en sådan streng, betragtes altid som mistænkelige i IDS'ens øjne. Desuden accepterer nogle programmer ikke ikke-alfanumerisk input (de accepterer ikke tegn uden for intervallet az, AZ, 0-9 og nogle få andre tegn).

For at komme igennem alle disse anti-indtrængningsforanstaltninger bruger crackere kryptering , selvmodificerende kode , polymorf kode og alfanumerisk kode .

Se også

Links