Re: Wady unixa, bylo: M$ Exchange

Autor: Jarek Lis (lis_at_okapi.ict.pwr.wroc.pl)
Data: Tue 13 Aug 1996 - 14:14:22 MET DST


Andrzej Resztak (resz_at_helios.man.lublin.pl) wrote:
: I na koniec, wytlumaczcie mi, jak jest mozliwe w Unixie
: przepelnienie stosu i zamazanie danych. Chyba albo stos
: przydziela sie statycznie, albo dynamicznie, ale wtedy
: dba, zeby nie wchodzil na inne dane lub kod programu.
: A tu co troche sa jakies patche do aplikacji, bo mozna
: uzyskac uprawnienia root-a przepelniajac stos.
: A jesli chodzi o producentow (mikro)procesorow, to jesli
: juz daja wspomaganie stosu, to mogliby tez generowac
: przerwanie, gdy tenze sie przepelnia.

To chyba cos nie tak. Bo [dawno temu, kiedy jeszcze chcialo mi sie o tym
czytac], na stos byl zwykle przeznaczany osobny segment (co oznaczalo
np pamiec generalnie w zakresie np 80000000-BFFFFFFF], objety normalnym
stronnicowaniem i w ten sposob chroniony przed przepelnieniem.

Zdobywanie uprawniej root'a polega raczej na tym, ze sie programowi
wykonywanemu jako root podsyla nienormalnie dlugie dane, ktore ten
w dobrej wierze wrzuca do zmiennej lokalnej, a wiec na stosie,
a poniewaz danych jest wiecej niz zarezerwowana zmienna, to program
sam sobie zajezdza stos. A tam sa m.in adresy powrotow z procedur. I przy
najblizszym powrocie, program tak naprawde skacze do ... cre dump, albo
sprytnie wybranego przez wlamaywacza punktu.
Ale program juz musi byc root, a wlamywac powoduje, ze root traci nad
programem kontrole.

Jarek.



To archiwum zostało wygenerowane przez hypermail 2.1.7 : Wed 19 May 2004 - 15:58:57 MET DST