Ghidra, zestaw narzędzi do inżynierii odwrotnej NSA

ghydra

Podczas konferencji RSA amerykańska Agencja Bezpieczeństwa Narodowego ogłosiła udostępnienie zestawu narzędzi do inżynierii wstecznej „Ghidra” , który obejmuje interaktywny deasembler z obsługą dekompilacji kodu C i udostępnia zaawansowane narzędzia do analizy plików wykonywalnych.

Projekt jest rozwijany od blisko 20 lat i jest aktywnie wykorzystywany przez amerykańskie agencje wywiadowcze do identyfikacji znaczników, analizy złośliwego kodu, badania różnych plików wykonywalnych i analizy skompilowanego kodu.

Pod względem możliwości produkt jest porównywalny z rozszerzoną wersją zastrzeżonego pakietu IDA Pro , jest jednak przeznaczony wyłącznie do analizy kodu i nie zawiera debuggera.

Z drugiej strony Ghidra obsługuje dekompilację do pseudokodu przypominającego C (w IDA ta funkcja jest dostępna za pośrednictwem wtyczek firm trzecich), a także bardziej zaawansowane narzędzia do wspólnej analizy plików wykonywalnych.

Główne cechy

W zestawie narzędzi do inżynierii odwrotnej Ghidra możemy znaleźć:

  • Obsługa różnych zestawów instrukcji procesora i plików wykonywalnych.
  • Analiza obsługi plików wykonywalnych dla systemów Linux, Windows i macOS.
  • Zawiera dezasembler, asembler, dekompilator, generator grafiki wykonywania programów, moduł do wykonywania skryptów oraz duży zestaw narzędzi pomocniczych.
  • Możliwość wykonywania w trybach interaktywnych i automatycznych.
  • Obsługa wtyczek przy wdrażaniu nowych komponentów.
  • Wsparcie dla automatyzacji działań i rozszerzenia istniejącej funkcjonalności poprzez połączenie skryptów w językach Java i Python.
  • Dostępność środków na pracę zespołową zespołów badawczych i koordynację prac podczas inżynierii odwrotnej bardzo dużych projektów.

Co ciekawe, kilka godzin po wydaniu Ghidry, pakiet wykrył lukę w zabezpieczeniach trybu debugowania (domyślnie wyłączonego), który otwiera port sieciowy 18001 w celu zdalnego debugowania aplikacji przy użyciu protokołu JDWP (Java Debug Wire Protocol).

Domyślnie połączenia sieciowe były nawiązywane za pośrednictwem wszystkich dostępnych interfejsów sieciowych, a nie 127.0.0.1 , co pozwalało na łączenie się z Ghidrą z innych systemów i uruchamianie dowolnego kodu w kontekście aplikacji.

Na przykład możesz połączyć się z debugerem i przerwać wykonywanie przez ustawienie punktu przerwania i zastąpić kod do dalszego wykonywania za pomocą polecenia „print new”, na przykład »
drukuj nowe java.lang.Runtime (). exec ('/ bin / mkdir / tmp / dir') ».

Ponadto można zaobserwować publikację niemal całkowicie zmienionej edycji otwartego interaktywnego deasemblera REDasm 2.0.

Program posiada rozszerzalną architekturę, która umożliwia podłączenie sterowników dla dodatkowych zestawów instrukcji i formatów plików w postaci modułów. Kod projektu jest napisany w C ++ (interfejs oparty na Qt) i rozpowszechniany na licencji GPLv3. Praca obsługiwana w systemach Windows i Linux.

Podstawowy pakiet jest kompatybilny z formatami oprogramowania układowego PE, ELF, DEX (Android Dalvik), Sony Playstation, XBox, GameBoy i Nintendo64 . Obsługiwane zestawy instrukcji obejmują x86, x86_64, MIPS, ARMv7, Dalvik i CHIP-8.

Wśród funkcji możemy wymienić obsługę interaktywnej wizualizacji w stylu IDA, wielowątkową analizę aplikacji , budowę wizualnego wykresu postępu, silnik przetwarzania podpisów cyfrowych (który współpracuje z plikami SDB) oraz narzędzia do zarządzania projektami.

Jak zainstalować Ghidrę?

Osoby zainteresowane instalacją zestawu narzędzi do inżynierii wstecznej „Ghidra” powinny wiedzieć, że muszą posiadać co najmniej następujące elementy:

  • 4 GB RAM
  • 1 GB do przechowywania zestawu
  • Zainstaluj pakiet Java 11 Runtime and Development Kit (JDK).

Aby pobrać Ghidrę, musisz odwiedzić jej oficjalną stronę internetową. Link znajduje się tutaj.

Po wykonaniu tej czynności wystarczy rozpakować pobrany pakiet, a w katalogu znajdzie się plik „ghidraRun”, który uruchomi pakiet.

Jeśli chcesz dowiedzieć się więcej, możesz kliknąć poniższy link.


Dodaj jako preferowane źródło w Google