Użyj [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), aby łatwo tworzyć i **automatyzować zadania** przy użyciu najbardziej zaawansowanych narzędzi społeczności.\
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi trikami hakerskimi, przesyłając PR do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
Po pierwsze, zaleca się posiadanie **pendrive'a** z **dobrze znaczącymi binarnymi i bibliotekami** (możesz po prostu pobrać Ubuntu i skopiować foldery _/bin_, _/sbin_, _/lib_ i _/lib64_), następnie zamontować pendrive i zmodyfikować zmienne środowiskowe, aby używać tych binarnych plików:
Jeśli masz identyczną wersję Ubuntu, możesz użyć `apt-get install lime-forensics-dkms`\
W innych przypadkach musisz pobrać [**LiME**](https://github.com/504ensicsLabs/LiME) z githuba i skompilować go z odpowiednimi nagłówkami jądra. Aby **uzyskać dokładne nagłówki jądra** maszyny ofiary, po prostu **skopiuj katalog**`/lib/modules/<wersja jądra>` na swoją maszynę, a następnie **skompiluj** LiME, używając ich:
Przede wszystkim będziesz musiał **wyłączyć system**. Nie zawsze jest to możliwe, ponieważ czasami system będzie serwerem produkcyjnym, którego firma nie może sobie pozwolić na wyłączenie.\
Istnieją **2 sposoby** wyłączania systemu: **normalne wyłączenie** i **wyłączenie "wyciągnij wtyczkę"**. Pierwszy pozwoli na **zakończenie procesów** i **synchronizację systemu plików**, ale również umożliwi **potencjalnemu złośliwemu oprogramowaniu zniszczenie dowodów**. Podejście "wyciągnij wtyczkę" może wiązać się z **pewną utratą informacji** (nie wiele informacji zostanie utraconych, ponieważ już zrobiliśmy obraz pamięci) i **złośliwe oprogramowanie nie będzie miało możliwości** nic z tym zrobić. Dlatego jeśli **podejrzewasz**, że może być **złośliwe oprogramowanie**, po prostu wykonaj polecenie **`sync`** na systemie i wyciągnij wtyczkę.
Ważne jest zauważenie, że **przed podłączeniem swojego komputera do czegokolwiek związanego z tą sprawą**, musisz upewnić się, że będzie on **zamontowany w trybie tylko do odczytu**, aby uniknąć modyfikowania jakichkolwiek informacji.
Użyj [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), aby łatwo tworzyć i **automatyzować zadania** przy użyciu najbardziej zaawansowanych narzędzi społeczności.\
- **Systemy oparte na RedHat**: Użyj `rpm -Va` do przeprowadzenia kompleksowej kontroli.
- **Systemy oparte na Debian**: `dpkg --verify` do wstępnej weryfikacji, a następnie `debsums | grep -v "OK$"` (po zainstalowaniu `debsums` za pomocą `apt-get install debsums`) do identyfikacji ewentualnych problemów.
Aby skutecznie wyszukiwać zainstalowane programy zarówno w systemach Debian, jak i RedHat, rozważ wykorzystanie dzienników systemowych i baz danych w połączeniu z ręcznymi sprawdzaniami w popularnych katalogach.
- Dla systemu Debian, sprawdź pliki **_`/var/lib/dpkg/status`_** i **_`/var/log/dpkg.log`_** w celu uzyskania szczegółów dotyczących instalacji pakietów, używając `grep` do filtrowania konkretnych informacji.
Aby odkryć oprogramowanie zainstalowane ręcznie lub poza tymi menedżerami pakietów, przejrzyj katalogi takie jak **_`/usr/local`_**, **_`/opt`_**, **_`/usr/sbin`_**, **_`/usr/bin`_**, **_`/bin`_**, i **_`/sbin`_**. Połącz listy katalogów z poleceniami specyficznymi dla systemu, aby zidentyfikować pliki wykonywalne niepowiązane z znanymi pakietami, co zwiększy skuteczność wyszukiwania wszystkich zainstalowanych programów.
Użyj [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), aby łatwo tworzyć i **automatyzować przepływy pracy** z wykorzystaniem najbardziej zaawansowanych narzędzi społecznościowych na świecie.\
Zaplanowane zadania są jednym z miejsc, w których można znaleźć autostartujące się programy w systemie Linux. Aby sprawdzić zaplanowane zadania, wykonaj następujące kroki:
- **/etc/inittab**: Wywołuje skrypty inicjalizacyjne, takie jak rc.sysinit, kierując dalej do skryptów uruchamiania.
- **/etc/rc.d/** i **/etc/rc.boot/**: Zawierają skrypty do uruchamiania usług, przy czym te drugie występują w starszych wersjach systemu Linux.
- **/etc/init.d/**: Używane w niektórych wersjach systemu Linux, takich jak Debian, do przechowywania skryptów uruchamiania.
- Usługi mogą być również aktywowane za pomocą **/etc/inetd.conf** lub **/etc/xinetd/**, w zależności od wariantu systemu Linux.
- **/etc/systemd/system**: Katalog dla skryptów systemowych i menedżera usług.
- **/etc/systemd/system/multi-user.target.wants/**: Zawiera linki do usług, które powinny być uruchamiane w wieloużytkownikowym poziomie uruchamiania.
- **/usr/local/etc/rc.d/**: Dla niestandardowych lub zewnętrznych usług.
- **~/.config/autostart/**: Dla aplikacji uruchamianych automatycznie dla konkretnego użytkownika, co może być ukrytym miejscem dla złośliwego oprogramowania ukierunkowanego na użytkownika.
- **/lib/systemd/system/**: Pliki jednostek domyślnych dla całego systemu dostarczane przez zainstalowane pakiety.
Moduły jądra Linux, często wykorzystywane przez złośliwe oprogramowanie jako komponenty rootkitu, są ładowane podczas uruchamiania systemu. Katalogi i pliki istotne dla tych modułów to:
- **/etc/profile.d/***, **/etc/profile** i **/etc/bash.bashrc**: Wykonywane dla każdego logowania użytkownika.
- **~/.bashrc**, **~/.bash_profile**, **~/.profile** i **~/.config/autostart**: Pliki specyficzne dla użytkownika, które są uruchamiane po jego zalogowaniu.
- **/etc/rc.local**: Uruchamiany po uruchomieniu wszystkich usług systemowych, oznaczając zakończenie przejścia do środowiska wieloużytkownikowego.
Systemy Linux rejestrują aktywności użytkowników i zdarzenia systemowe za pomocą różnych plików dziennika. Te dzienniki są kluczowe do identyfikacji nieautoryzowanego dostępu, infekcji złośliwym oprogramowaniem i innych incydentów związanych z bezpieczeństwem. Kluczowe pliki dziennika to:
Dzienniki systemowe i podsystemy audytu w systemach Linux mogą być wyłączone lub usunięte w przypadku włamania lub incydentu związanego z złośliwym oprogramowaniem. Ponieważ dzienniki w systemach Linux zazwyczaj zawierają najbardziej przydatne informacje o działaniach złośliwych, intruzi rutynowo je usuwają. Dlatego podczas analizy dostępnych plików dziennika ważne jest, aby szukać przerw lub wpisów w niewłaściwej kolejności, które mogą wskazywać na usunięcie lub manipulację.
- **SSH**: Sprawdź _~/.ssh/authorized_keys_ i _~/.ssh/known_hosts_ w celu znalezienia nieautoryzowanych połączeń zdalnych.
- **Pulpit Gnome**: Sprawdź _~/.recently-used.xbel_ w poszukiwaniu ostatnio używanych plików za pomocą aplikacji Gnome.
- **Firefox/Chrome**: Sprawdź historię przeglądarki i pobrane pliki w _~/.mozilla/firefox_ lub _~/.config/google-chrome_ w poszukiwaniu podejrzanej aktywności.
- **VIM**: Przejrzyj _~/.viminfo_ w celu uzyskania szczegółów dotyczących korzystania, takich jak ścieżki dostępu do plików i historia wyszukiwania.
- **Open Office**: Sprawdź ostatnio używane dokumenty, które mogą wskazywać na skompromitowane pliki.
- **FTP/SFTP**: Przejrzyj dzienniki w _~/.ftp_history_ lub _~/.sftp_history_ w poszukiwaniu nieautoryzowanych transferów plików.
- **MySQL**: Zbadaj _~/.mysql_history_ w celu znalezienia wykonanych zapytań MySQL, które mogą ujawnić nieautoryzowane działania na bazie danych.
- **Less**: Analizuj _~/.lesshst_ w celu uzyskania historii korzystania, w tym przeglądanych plików i wykonanych poleceń.
- **Git**: Sprawdź _~/.gitconfig_ i _.git/logs_ projektu w celu znalezienia zmian w repozytoriach.
[**usbrip**](https://github.com/snovvcrash/usbrip) to niewielkie oprogramowanie napisane w czystym Pythonie 3, które analizuje pliki dziennika systemu Linux (`/var/log/syslog*` lub `/var/log/messages*` w zależności od dystrybucji) w celu tworzenia tabel historii zdarzeń USB.
Warto **znać wszystkie używane urządzenia USB**, a będzie to bardziej przydatne, jeśli masz autoryzowaną listę urządzeń USB, aby znaleźć "zdarzenia naruszenia" (użycie urządzeń USB, które nie znajdują się na tej liście).
1. Zidentyfikuj lokalizację plików logów systemowych na systemie Linux. Zwykle są one przechowywane w katalogu `/var/log`.
2. Wybierz odpowiedni plik logów, który chcesz zbadać. Na przykład, jeśli interesuje Cię log związany z autoryzacją, możesz wybrać plik `/var/log/auth.log`.
3. Skorzystaj z narzędzi takich jak `cat`, `less` lub `grep`, aby przeglądać zawartość wybranego pliku logów. Na przykład, możesz użyć polecenia `cat /var/log/auth.log` do wyświetlenia całej zawartości pliku.
4. Przeanalizuj logi w poszukiwaniu podejrzanych aktywności, takich jak nieudane próby logowania, podejrzane adresy IP lub nieznane procesy.
5. Jeśli zauważysz coś podejrzanego, zapisz odpowiednie informacje, takie jak daty, adresy IP lub nazwy procesów.
6. Przeanalizuj inne pliki logów systemowych, które mogą być powiązane z podejrzaną aktywnością.
#### Przykład 2: Analiza obrazu dysku
1. Skopiuj obraz dysku, który chcesz zbadać, na bezpieczne medium, takie jak zewnętrzny dysk twardy lub serwer plików.
2. Skorzystaj z narzędzi takich jak `Autopsy` lub `The Sleuth Kit`, aby przeprowadzić analizę obrazu dysku. Te narzędzia umożliwiają przeglądanie zawartości obrazu, odzyskiwanie plików, analizę rejestru systemowego i wiele innych.
3. Przeanalizuj strukturę katalogów i plików w obrazie dysku, aby znaleźć potencjalnie interesujące informacje. Możesz szukać plików z rozszerzeniami, które wskazują na dane użytkownika, takie jak pliki tekstowe, dokumenty, obrazy itp.
4. Przeanalizuj rejestry systemowe, takie jak rejestry Windows lub pliki dziennika systemowego Linux, w celu znalezienia śladów podejrzanej aktywności, takiej jak instalacja podejrzanych programów, zmiany w ustawieniach systemowych itp.
6. Przeanalizuj inne obszary obrazu dysku, takie jak przestrzeń nieprzydzielona lub ukryte partycje, w celu znalezienia dodatkowych informacji.
#### Przykład 3: Analiza ruchu sieciowego
1. Skorzystaj z narzędzi takich jak `Wireshark` lub `tcpdump`, aby przechwycić ruch sieciowy na systemie Linux.
2. Skonfiguruj narzędzie do przechwytywania ruchu na odpowiednim interfejsie sieciowym. Na przykład, jeśli chcesz przechwycić ruch na interfejsie eth0, użyj polecenia `sudo tcpdump -i eth0 -w capture.pcap`.
3. Przeglądaj przechwycony ruch sieciowy w narzędziu analizy pakietów, takim jak `Wireshark`. Możesz filtrować pakiety według różnych kryteriów, takich jak adresy IP, porty, protokoły itp.
4. Przeanalizuj pakiety w poszukiwaniu podejrzanych aktywności, takich jak nieznane połączenia, podejrzane protokoły, niezwykłe wielkości pakietów itp.
5. Jeśli zauważysz coś podejrzanego, zapisz odpowiednie informacje, takie jak adresy IP, porty, treść pakietów itp.
6. Przeanalizuj inne przechwycone sesje sieciowe, które mogą być powiązane z podejrzaną aktywnością.
#### Przykład 4: Analiza plików cookie
1. Zlokalizuj pliki cookie na systemie Linux. Zwykle są one przechowywane w katalogu domowym użytkownika w folderze `.mozilla` lub `.config/google-chrome`.
2. Skorzystaj z narzędzi takich jak `cat` lub `less`, aby przeglądać zawartość plików cookie. Na przykład, możesz użyć polecenia `cat ~/.mozilla/firefox/*.default/cookies.sqlite` do wyświetlenia zawartości pliku cookie dla przeglądarki Firefox.
3. Przeanalizuj zawartość plików cookie w poszukiwaniu informacji, takich jak zapisane sesje logowania, preferencje użytkownika, dane autoryzacyjne itp.
4. Jeśli zauważysz coś podejrzanego, zapisz odpowiednie informacje, takie jak nazwy stron internetowych, identyfikatory sesji, dane autoryzacyjne itp.
5. Przeanalizuj inne pliki cookie, które mogą być powiązane z podejrzaną aktywnością.
#### Przykład 5: Analiza plików dziennika aplikacji
1. Zidentyfikuj lokalizację plików dziennika aplikacji na systemie Linux. Zwykle są one przechowywane w katalogu `/var/log` lub w katalogu domowym użytkownika w folderze `.log`.
2. Wybierz odpowiedni plik dziennika aplikacji, który chcesz zbadać. Na przykład, jeśli interesuje Cię log aplikacji Apache, możesz wybrać plik `/var/log/apache2/access.log`.
3. Skorzystaj z narzędzi takich jak `cat`, `less` lub `grep`, aby przeglądać zawartość wybranego pliku dziennika. Na przykład, możesz użyć polecenia `cat /var/log/apache2/access.log` do wyświetlenia całej zawartości pliku.
4. Przeanalizuj dzienniki aplikacji w poszukiwaniu informacji, takich jak żądania HTTP, błędy aplikacji, adresy IP klientów itp.
5. Jeśli zauważysz coś podejrzanego, zapisz odpowiednie informacje, takie jak daty, adresy IP, treść żądań itp.
6. Przeanalizuj inne pliki dziennika aplikacji, które mogą być powiązane z podejrzaną aktywnością.
Użyj [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), aby łatwo tworzyć i **automatyzować przepływy pracy** przy użyciu najbardziej zaawansowanych narzędzi społecznościowych na świecie.\
Sprawdź pliki _**/etc/passwd**_, _**/etc/shadow**_ oraz **dzienniki zabezpieczeń** w celu znalezienia nietypowych nazw lub kont utworzonych lub używanych w pobliżu znanych nieautoryzowanych zdarzeń. Sprawdź również możliwe ataki brute-force na sudo.\
Dodatkowo, sprawdź pliki takie jak _**/etc/sudoers**_ i _**/etc/groups**_ w celu znalezienia nieoczekiwanych uprawnień przyznanych użytkownikom.\
Na koniec, poszukaj kont bez hasła lub z łatwo odgadnionymi hasłami.
Podczas badania incydentów związanych z złośliwym oprogramowaniem, struktura systemu plików jest kluczowym źródłem informacji, ujawniającym zarówno sekwencję zdarzeń, jak i zawartość złośliwego oprogramowania. Jednak autorzy złośliwego oprogramowania opracowują techniki utrudniające tę analizę, takie jak modyfikowanie znaczników czasowych plików lub unikanie systemu plików do przechowywania danych.
- **Przeprowadzenie dokładnej analizy chronologicznej** za pomocą narzędzi takich jak **Autopsy** do wizualizacji chronologii zdarzeń lub **Sleuth Kit's**`mactime` do uzyskania szczegółowych danych chronologicznych.
- **Badanie nieoczekiwanych skryptów** w ścieżce systemowej $PATH, które mogą zawierać skrypty powłoki lub PHP używane przez atakujących.
- **Sprawdzanie katalogu `/dev` pod kątem nietypowych plików**, ponieważ tradycyjnie zawiera on specjalne pliki, ale może również zawierać pliki związane z złośliwym oprogramowaniem.
- **Szukanie ukrytych plików lub katalogów** o nazwach takich jak ".. " (kropka kropka spacja) lub "..^G" (kropka kropka control-G), które mogą ukrywać złośliwe treści.
- **Identyfikowanie plików setuid root** za pomocą polecenia:
```find / -user root -perm -04000 -print```
To znajduje pliki z podwyższonymi uprawnieniami, które mogą być wykorzystane przez atakujących.
- **Sprawdzanie znaczników czasu usunięcia** w tabelach inodów w celu wykrycia masowych usunięć plików, co może wskazywać na obecność rootkitów lub trojanów.
- **Sprawdzanie kolejnych inodów** w poszukiwaniu pobliskich złośliwych plików po zidentyfikowaniu jednego, ponieważ mogą one zostać umieszczone razem.
- **Sprawdzanie wspólnych katalogów binarnych** (_/bin_, _/sbin_) pod kątem niedawno zmodyfikowanych plików, ponieważ mogą być one zmieniane przez złośliwe oprogramowanie.
Zauważ, że **atakujący** może **zmodyfikować****czas**, aby **pliki wydawały się****legitymacyjne**, ale nie może zmienić **inode**. Jeśli zauważysz, że **plik wskazuje**, że został utworzony i zmodyfikowany w **tym samym czasie** co reszta plików w tym samym folderze, ale **inode** jest **niespodziewanie większy**, to znaczy, że **zostały zmodyfikowane znaczniki czasowe tego pliku**.
- **Opcje filtrowania** (`--diff-filter`) pomagają zawęzić wyniki do konkretnych zmian, takich jak dodane (`A`), usunięte (`D`) lub zmodyfikowane (`M`) pliki.
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Czy pracujesz w **firmie zajmującej się cyberbezpieczeństwem**? Chcesz zobaczyć swoją **firmę reklamowaną na HackTricks**? A może chcesz mieć dostęp do **najnowszej wersji PEASS lub pobrać HackTricks w formacie PDF**? Sprawdź [**PLAN SUBSKRYPCYJNY**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** [**💬**](https://emojipedia.org/speech-balloon/) [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** mnie na **Twitterze** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
Użyj [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), aby łatwo tworzyć i **automatyzować zadania** przy użyciu najbardziej zaawansowanych narzędzi społecznościowych na świecie.\