House of Einherjar

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Podstawowe informacje

Kod

Cel

  • Celem jest alokacja pamięci praktycznie w dowolnym określonym adresie.

Wymagania

  • Utwórz fałszywy kawałek, gdy chcemy zaalokować kawałek:

  • Ustaw wskaźniki tak, aby wskazywały na siebie same, aby ominąć kontrole spójności

  • Przesunięcie o jeden z jednego kawałka do drugiego, aby zmodyfikować poprzedni w użyciu

  • Wskaż w prev_size nadużywanego kawałka o jeden różnicę między nim a fałszywym kawałkiem

  • Rozmiar fałszywego kawałka musi również być ustawiony na ten sam rozmiar, aby ominąć kontrole spójności

  • Do skonstruowania tych kawałków będziesz potrzebować wycieku sterty.

Atak

  • A fałszywy kawałek jest tworzony wewnątrz kawałka kontrolowanego przez atakującego, wskazując z fd i bk na oryginalny kawałek, aby ominąć zabezpieczenia

  • Alokowane są 2 inne kawałki (B i C)

  • Wykorzystując przesunięcie o jeden w kawałku B, bit prev in use jest czyszczony, a dane prev_size są nadpisywane różnicą między miejscem, w którym jest alokowany kawałek C, a fałszywym kawałkiem A wygenerowanym wcześniej

  • Ten prev_size oraz rozmiar w fałszywym kawałku A muszą być takie same, aby ominąć kontrole.

  • Następnie wypełniana jest tcache

  • Następnie C jest zwalniane, aby skonsolidowało się z fałszywym kawałkiem A

  • Następnie tworzony jest nowy kawałek D, który będzie zaczynał się w fałszywym kawałku A i pokrywał kawałek B

  • Dom Einherjar kończy się tutaj

  • Można kontynuować to atakiem na fast bin:

  • Zwolnij B, aby dodać go do fast bin

  • fd B jest nadpisywane, aby wskazywał na docelowy adres nadużywając kawałka D (ponieważ zawiera w sobie B)

  • Następnie wykonuje się 2 alokacje i druga z nich będzie alokować docelowy adres

Odwołania i inne przykłady

Last updated