hacktricks/reversing-and-exploiting/linux-exploiting-basic-esp/common-binary-protections-and-bypasses
2024-07-18 22:15:55 +00:00
..
aslr Translated ['binary-exploitation/basic-stack-binary-exploitation-methodo 2024-07-18 22:15:55 +00:00
pie Translated ['binary-exploitation/basic-stack-binary-exploitation-methodo 2024-07-18 22:15:55 +00:00
stack-canaries Translated ['binary-exploitation/basic-stack-binary-exploitation-methodo 2024-07-18 22:15:55 +00:00
no-exec-nx.md Translated ['binary-exploitation/basic-stack-binary-exploitation-methodo 2024-07-18 22:15:55 +00:00
README.md Translated ['binary-exploitation/basic-stack-binary-exploitation-methodo 2024-07-18 22:15:55 +00:00
relro.md Translated ['binary-exploitation/basic-stack-binary-exploitation-methodo 2024-07-18 22:15:55 +00:00

Common Binary Protections

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

Włącz pliki rdzeniowe

Pliki rdzeniowe to rodzaj pliku generowanego przez system operacyjny, gdy proces ulega awarii. Pliki te przechwytyują obraz pamięci awaryjnego procesu w momencie jego zakończenia, w tym pamięć procesu, rejestry i stan licznika programu, między innymi szczegóły. Ten zrzut może być niezwykle cenny do debugowania i zrozumienia, dlaczego wystąpiła awaria.

Włączanie generowania zrzutów rdzeniowych

Domyślnie wiele systemów ogranicza rozmiar plików rdzeniowych do 0 (tj. nie generują plików rdzeniowych), aby zaoszczędzić miejsce na dysku. Aby włączyć generowanie plików rdzeniowych, można użyć polecenia ulimit (w bashu lub podobnych powłokach) lub skonfigurować ustawienia systemowe.

  • Używając ulimit: Polecenie ulimit -c unlimited pozwala bieżącej sesji powłoki na tworzenie plików rdzeniowych o nieograniczonej wielkości. Jest to przydatne w sesjach debugowania, ale nie jest trwałe po ponownym uruchomieniu lub w nowych sesjach.
ulimit -c unlimited
  • Trwała konfiguracja: Aby uzyskać bardziej trwałe rozwiązanie, możesz edytować plik /etc/security/limits.conf, aby dodać linię taką jak * soft core unlimited, co pozwala wszystkim użytkownikom na generowanie plików core o nieograniczonej wielkości bez konieczności ręcznego ustawiania ulimit w ich sesjach.
* soft core unlimited

Analiza plików rdzeniowych za pomocą GDB

Aby przeanalizować plik rdzeniowy, możesz użyć narzędzi do debugowania, takich jak GDB (GNU Debugger). Zakładając, że masz plik wykonywalny, który wygenerował zrzut rdzenia, a plik rdzeniowy nazywa się core_file, możesz rozpocząć analizę za pomocą:

gdb /path/to/executable /path/to/core_file

To polecenie ładuje plik wykonywalny i plik rdzenia do GDB, co pozwala na zbadanie stanu programu w momencie awarii. Możesz używać poleceń GDB, aby eksplorować stos, badać zmienne i zrozumieć przyczynę awarii.

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}