Podczas testów bezpieczeństwa systemów operacyjnych lub różnego rodzaju zawodów typu „Capture the Flag” możemy spotkać się z potrzebą szybkiej analizy nieznanego pliku wykonywalnego.

W tym przypadku skupimy się na pliku na systemie Linux i tego, w jaki sposób wstępnie zweryfikować co dana „binarka” robi, jaki przyjmuje input i jakie funkcje wykonuje. Zanim odpalimy ciężki sprzęt jak Ghidra czy IDA , to aby przeprowadzić wstępny rekonesans możemy wykorzystać narzędzia takie jak:

Wszystkie z nich to darmowe, command-line’owe narzędzia, a większość z nich można zainstalować na systemie Linux z poziomu managera apt. Z poniższego filmu dowiesz się jak użyć tych narzędzi i jakie informacje o badanym programie możemy uzyskać korzystając z każdego z nich. Video można obejrzeć na naszym kanale na Youtube – linkujemy je także poniżej:

 

A czego konkretnie powinniśmy szukać podczas oględzin pliku wykonywalnego? Przede wszystkim:

  • Architektury pliku i jego typu
  • Zabezpieczeń (NX, RELRO, Itd.)
  • Interesujących stringów lub hardcode’owanych sekretów
  • Wszystkich inputów – czy to z linii komend, terminala czy np. zmiennych środowiskowych lub plików
  • Funkcji i bibliotek z których korzysta, zwłaszcza podatnych funkcji (np. strcpy, gets, itp.)

W przypadku prostego programu wykonywalnego powyższe operacje dadzą nam dużo szybsze i równie skuteczne efekty, co np. próba otwarcia „binarki” w IDA/Ghidra i rozpoczęcie szeroko zakrojonej operacji Reverse Engineeringu.