Tworzenie niestandardowych exploitów

https://chacker.pl/

Tworzenie niestandardowych exploitów.

Sterowanie EIP

Program  jest aplikacją sieciową. Gdy go uruchomimy, będzie nasłuchiwał na porcie 5555:

Podczas testowania aplikacji możemy czasami znaleźć słabości po prostu wysyłając długie ciągi znaków. W innym oknie połączmy się z działającym plikiem binarnym za pomocą netcat:

Teraz użyjmy Pythona, aby utworzyć bardzo długi ciąg i wysłać go jako nazwę użytkownika za pomocą naszego połączenia netcat:

Nasz plik binarny zachowuje się inaczej z długim ciągiem znaków. Aby dowiedzieć się dlaczego, musimy dołączyć gdb. Uruchomimy nasz podatny program w jednym oknie, używając gdb, i wyślemy nasz długi ciąg znaków w innym oknie. Ten program rozwidli proces potomny za każdym razem, gdy zostanie zaakceptowane nowe połączenie. Musisz poinstruować gdb, aby podążał za rozwidlonym procesem potomnym po połączeniu, aby debugować exploit. Możesz to zrobić, uruchamiając set follow-fork-mode child w interfejsie gdb. Rysunek 10-2 pokazuje, co dzieje się na ekranie debugera, gdy wysyłamy długi ciąg znaków. Używając debugera w jednym oknie i naszego długiego ciągu znaków w innym, możemy zobaczyć, że nadpisaliśmy zapisaną ramkę i adres powrotu w pamięci stosu, co skutkuje kontrolą rejestrów EIP i EBP po powrocie z podatnej funkcji

Teraz mamy klasyczne przepełnienie bufora i nadpisaliśmy EIP. To kończy pierwszy krok procesu rozwoju exploita. Przejdźmy do następnego kroku.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *