Wątek przeniesiony 2015-11-06 15:37 z Hardware/Software przez Shalom.

Przeciążenie bufora.

0

Witam.
Mam kilka pytań. W celach edukacyjnych w domowym "laboratorium" chce zrobić atak przepełnienia bufora pewnej usługi. Mianowicie:

  1. Jak obliczyć rozmiar bufora?
  2. Ile wysłać danych aby dotrzeć to rejestru EIP?
    Z góry dzięki!
0

Jeśli nie masz binarki tej usługi to guzik zrobisz bo to tak jakbyś po pijaku nawlekał nitkę na igłę ;] A jeśli masz binarkę to zacznij od jej dekompilacji za pomocą Hoppera albo IDA Hexrays (jeśli cie stać).
Poza tym nie ma czegoś takiego jak Ile wysłać danych aby dotrzeć to rejestru EIP?. Dane są na stosie a rejestry są w procesorze. Jedno z drugim nie ma nic wspólnego. Żeby przesunąć instruction pointer na bufor który zapełniłeś (bo zakładam ze o to pytasz?) musiałyś nadpisać adres powrotu z funkcji (i liczyc na to że nie ma kanarków albo jakiegos stack guarda). Żeby wiedzieć "ile bajtów" musiałbyś wiedzieć jak wygląda stos w tej funkcji więc znów dekompilacja.
Chyba że jest tam jakieś string format vuln i możesz sobie wpisywać dane pod wybranymi adresami, wtedy też coś można oszacować.

0

Bez information leaka będzie ciężko. Nawet jeżeli zbrutowałbyś rozmiar bufora to nie wiesz gdzie skoczyć.

0

@Shalom
Mam plik exe tej usługi i debugger.

0

No to musisz zanalizować dokładnie funkcję którą chcesz zaatakować, dobrać sposób ataku do tego w jaki sposób zabezpieczona jest binarka i ta konkretna funkcja, co tam innego w pamięci może być jak już uda się nadpisać adres powrotu żeby dalej jechać z ROP-em i tak dalej i tak dalej.

Dość obszerny writeup z podobnego zadania (buffer overflow/stack guard/ROP) masz w moim i MSMa artykule w obecnym Programiście - znajdziesz w prawie każdym Empiku).

ps. jak zrobisz to i ładnie opiszesz to możemy cię wziąć na testy do naszego teamu :P.

0

A czy jest możliwe żeby przepełnić bufor serwera WWW np. Apache?

0

Jak ci się uda to dostaniesz nawet trochę kasy: https://hackerone.com/apache

1 użytkowników online, w tym zalogowanych: 0, gości: 1