Czasami udaje ci się znaleźć i wykorzystać lukę w zabezpieczeniach pliku informacyjnego, ale nie jest możliwe obliczenie przesunięcia w stosunku do bazy libc lub innych funkcji, chyba że znasz wersję libc używaną na zdalnym hoście. Biblioteka libcdatabase pobiera listę skonfigurowanych wersji ibc, wyodrębnia przesunięcia symboli i umożliwia sprawdzenie nazwy funkcji i adresu, który wyciekł, w celu zidentyfikowania używanej wersji libc.
1. Sklonujmy repozytorium GitHub libc-database:
- Możliwe jest pobranie wszystkich wstępnie udostępnionych wersji libc w ramach skryptu get, ale można także pobrać wersje specyficzne dla dystrybucji dla systemów Ubuntu, Debian, RPM, CentOS, Arch, Alpine, Kali i Parrot OS. Pobierzmy wersje libc używane przez Kali Linux. W folderze /home/kali/libc-database wykonaj następujące czynności:
3. Znajdź w bazie danych wszystkie wersje libc, które mają podane nazwy pod podanymi adresami. Użyjmy readelf, aby uzyskać przesunięcie put, a następnie użyjmy skryptu find libc-database:
3. Znajdź w bazie danych wszystkie wersje libc, które mają podane nazwy pod podanymi adresami. Użyjmy readelf, aby uzyskać przesunięcie put, a następnie użyjmy skryptu find libc-database: