Avatar billede th-thomsen Nybegynder
02. juni 2004 - 21:42 Der er 7 kommentarer og
1 løsning

Buffer overflow

Hej er der nogen der ved noget om buffer overflow, den der shell kode. er der ikke nogen der ved noget om det, er det lige meget hvad shell koden indeholder ?
Avatar billede bufferzone Praktikant
02. juni 2004 - 22:43 #1
Jeg må indrømme at jeg ikke helt forstår hvad du spørger om. Vil du vide hvad buffer overflow er generelt eller spørger du om et helt specialt bufferoverflow i noget shell script, jeg kan forklare dig hvad et buffer overflow er generelt, og finde oplysningerne om specifikke buffer overflows.
Avatar billede th-thomsen Nybegynder
03. juni 2004 - 07:58 #2
Ja.. jeg vil gerne vide hvad det er, og så vil jeg gerne have oplysninger.
Avatar billede bufferzone Praktikant
03. juni 2004 - 21:29 #3
Ok her kommer det så.

Mange løsninger, kræver at der indtastes forskellige former for data, der så behandles af programmet, det kan være alt fra brugernavne, passwords, adresser, husnumre, postnumre, forskellige variabler og andet et program har brug for. Hvis vi f.eks. kikker på postnumret som eksempel, så vil en programmør typisk afsætte 4 pladset i hukommelsen til at indeholde postnumret. Denne plads (på 4 cifre) kaldes en buffer. Hvis nu ikke programmøren har sikret sig at brugeren KUN kan indskrive 4 cifre, og der så er en bruger der ved en fejl eller med vilje, kommer til at skrive københavn der hvor der skulle stå et postnummer, og submitter dette, vil ordet københavn blive indskrevet i postnummerets buffer, der jo kun kan indholde 4 cifra. Dette vil betyde at noget af den kode der står i hukkommelsen uden om bufferen vil blive overskrevet med de cifre af ordet københavn der ikke er pladstil i bufferen, og der er nu sket et bufferoverflow.

Når dygtige hackere finder muligheder for bufferoverflow vil disse i første omgang få programmet til at gå ned, men når hackeren først har undersøgt bufferoverflowet i detaljen og fundet ud af hvor stor bufferen er samt hvilken kode der overskrives, kan han lave et indput (f.eks. et postnummer, der ikke kun overskriver koden med noget der ikke virker, men faktisk overskriver den koder der står i hukommelsen med noget der kan bruges og ikke får programmet til at gå ned. Der er nu lavet et exploit til bufferoverflowet.

http://www.securityfocus.org/bid kan du finde oplysninger om de fleste sårbarheder, herunder bufferoverflows, du kan finde exempler på exploits samt læse hvad disse overflows kan udnyttes til..


Læs her og spørg hvis du vil vide mere
Avatar billede th-thomsen Nybegynder
16. februar 2005 - 11:06 #4
Jeg syntes at det lyder meget interessant, er det muligt for mig at lære det. Jeg har viden inde for programmering, det er visual basic, og pascal. Har du nogle bruger venlige manualer ?
Avatar billede bufferzone Praktikant
16. februar 2005 - 12:13 #5
Selve teknologier om bufferoverflow er ikke svære, hvis du har forstået principperne, er det jo bare at gå i gang. Alle programmer der modtager en eller anden form for indput (og dergør alle programmer vel i en eller anden udstrækning) er potentielt sårbare for bufferoverflow.

Så det er i virkeligheden bare at gå i gang. Find de steder i programmerne hvor der sker indput. prøv så at give programmet et større eller andet indput end det der er tiltænkt. prøv med tal der hvor det skal være bogstaver, prøv med negative tal eller 0, prøv med specialtegn, gerne tegn der bruges i programmeringssproget osv osv.

Det er kun fantasien der sætter grændsen

på  http://www.securityfocus.org/bid kan du finde sårbare programmer. Nogle af disse sårbarheer er bufferoverflows og nogle af disse har exploits hvor du kan se hvordan dette overflov virker.
Avatar billede th-thomsen Nybegynder
16. februar 2005 - 14:38 #6
okay hmm.. er det, så det eneste princip i det. Men hvordan skaffer man sig så adgang til en maskine via buffer overflow.. er det noget med at man bruger et program i linux, som man i gamle dage havde root adgang med. Og så skrev man passwd, og så var der adgang til root, mens programmet var afviklet, og hvis så programmet blev brudt ned, så havde man root adgang. Det princip forstår jeg godt .. men det er mere med at forstå de enkelte processer .. og sådan. er det meget svært, det der med at lære og finde sårbarheder, og skrive exploit?
Avatar billede th-thomsen Nybegynder
16. februar 2005 - 14:50 #7
Og skal programmerne være af en speciel type for at det kan bruges til noget.. jeg kunne tænke mig at alle programmer skulle arbejde nede ved sessions laget.. altså så det operer over nettet, hen til en anden maskine.
Avatar billede bufferzone Praktikant
16. februar 2005 - 17:25 #8
Det er både relativt enkelt og relativt kompliceret.

Bufferoverflower overskriver den kode der findes i hukommelsen fordi det du indtaster (eller dit exploit indtaster) som indput fylder mere end der er afsat plads til. Derfor vil du opdage at bufferoverflows næsten altid først laver Denial og service, dvs. får maskinen til at gå ned. Hvis hackeren nu eren dygtig programmør vil han forsøge at overskrive den oprindelige kode med noget kode der gør det han ønsker, det kunne f.eks. være at konnecte ud fra maskinen på en bestemt port og tilbyde en commandoprompt. Dette betyder at han skal skrive en slags min cmd.exe der skal overskrive koden.

Dette betyder naturligvis at han skal være en ret dygtig programmør og have et dybt kendskab til netværkskommunikationer og protokoller.

Du kan finde talrige bufferoverflows der gør dette. f.eks. fandtes et overflow i Internet Printing protokollen i IIS 5.0 pre SP2 der gjorde netop dette
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester