Large Bin Attack
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aby uzyskać więcej informacji na temat tego, czym jest duży bin, sprawdź tę stronę:
Bins & Memory AllocationsMożna znaleźć świetny przykład w how2heap - large bin attack.
W zasadzie tutaj możesz zobaczyć, jak w najnowszej "aktualnej" wersji glibc (2.35) nie jest sprawdzane: P->bk_nextsize
, co pozwala na modyfikację dowolnego adresu wartością dużego kawałka, jeśli spełnione są określone warunki.
W tym przykładzie możesz znaleźć następujące warunki:
Duży kawałek jest alokowany
Duży kawałek mniejszy niż pierwszy, ale w tym samym indeksie, jest alokowany
Musi być mniejszy, więc w binie musi iść pierwszy
(Tworzony jest kawałek, aby zapobiec łączeniu z górnym kawałkiem)
Następnie pierwszy duży kawałek jest zwalniany, a nowy kawałek większy od niego jest alokowany -> Kawałek1 trafia do dużego binu
Następnie drugi duży kawałek jest zwalniany
Teraz, luka: Atakujący może zmodyfikować chunk1->bk_nextsize
na [target-0x20]
Następnie alokowany jest większy kawałek niż kawałek 2, więc kawałek2 jest wstawiany do dużego binu, nadpisując adres chunk1->bk_nextsize->fd_nextsize
adresem kawałka2
Istnieją inne potencjalne scenariusze, chodzi o dodanie do dużego binu kawałka, który jest mniejszy niż aktualny kawałek X w binie, więc musi być wstawiony tuż przed nim w binie, a my musimy być w stanie zmodyfikować bk_nextsize
X, ponieważ tam zostanie zapisany adres mniejszego kawałka.
To jest odpowiedni kod z malloc. Dodano komentarze, aby lepiej zrozumieć, jak adres został nadpisany:
To może być użyte do nadpisania globalnej zmiennej global_max_fast
w libc, aby następnie wykorzystać atak na szybkie biny z większymi kawałkami.
Możesz znaleźć inne świetne wyjaśnienie tego ataku w guyinatuxedo.
Atak na duże biny w tej samej sytuacji, w jakiej pojawia się w how2heap.
Primitwa zapisu jest bardziej złożona, ponieważ global_max_fast
jest tutaj bezużyteczne.
FSOP jest potrzebny do zakończenia eksploitu.
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)