diff --git a/src/generic-methodologies-and-resources/basic-forensic-methodology/anti-forensic-techniques.md b/src/generic-methodologies-and-resources/basic-forensic-methodology/anti-forensic-techniques.md index a8382239f..cc8f1312d 100644 --- a/src/generic-methodologies-and-resources/basic-forensic-methodology/anti-forensic-techniques.md +++ b/src/generic-methodologies-and-resources/basic-forensic-methodology/anti-forensic-techniques.md @@ -9,7 +9,7 @@ Обидва атрибути мають 4 часові мітки: **Зміна**, **доступ**, **створення** та **зміна реєстрації MFT** (MACE або MACB). -**Windows explorer** та інші інструменти показують інформацію з **`$STANDARD_INFORMATION`**. +**Провідник Windows** та інші інструменти показують інформацію з **`$STANDARD_INFORMATION`**. ### TimeStomp - Анти-слідчий інструмент @@ -17,7 +17,7 @@ ### Usnjrnl -**USN Journal** (Журнал номерів послідовності оновлень) є функцією NTFS (файлова система Windows NT), яка відстежує зміни обсягу. Інструмент [**UsnJrnl2Csv**](https://github.com/jschicht/UsnJrnl2Csv) дозволяє досліджувати ці зміни. +**USN Journal** (Журнал номерів послідовності оновлень) є функцією NTFS (файлова система Windows NT), яка відстежує зміни обсягу. Інструмент [**UsnJrnl2Csv**](https://github.com/jschicht/UsnJrnl2Csv) дозволяє перевіряти ці зміни. ![](<../../images/image (801).png>) @@ -36,13 +36,13 @@ ![](<../../images/image (1089).png>) - CTIME: Час створення файлу -- ATIME: Час зміни файлу +- ATIME: Час модифікації файлу - MTIME: Зміна реєстрації MFT файлу - RTIME: Час доступу до файлу ### Порівняння `$STANDARD_INFORMATION` та `$FILE_NAME` -Ще один спосіб виявити підозрілі змінені файли - це порівняти час на обох атрибутах, шукаючи **невідповідності**. +Ще один спосіб виявити підозрілі модифіковані файли - це порівняти час на обох атрибутах, шукаючи **невідповідності**. ### Наносекунди @@ -54,13 +54,13 @@ ## Сховані дані -NFTS використовує кластер і мінімальний розмір інформації. Це означає, що якщо файл займає кластер і півтора, **залишкова половина ніколи не буде використана**, поки файл не буде видалено. Тоді можливо **сховати дані в цьому слек-просторі**. +NFTS використовує кластер і мінімальний розмір інформації. Це означає, що якщо файл займає кластер і півтора, то **залишкова половина ніколи не буде використана** до тих пір, поки файл не буде видалено. Тоді можливо **сховати дані в цьому слек-просторі**. Існують інструменти, такі як slacker, які дозволяють ховати дані в цьому "схованому" просторі. Однак аналіз `$logfile` та `$usnjrnl` може показати, що деякі дані були додані: ![](<../../images/image (1060).png>) -Тоді можливо відновити слек-простір, використовуючи інструменти, такі як FTK Imager. Зверніть увагу, що цей тип інструменту може зберігати вміст в обфусцированому або навіть зашифрованому вигляді. +Тоді можливо відновити слек-простір, використовуючи інструменти, такі як FTK Imager. Зверніть увагу, що такі інструменти можуть зберігати вміст у зашифрованому або навіть обфусцированому вигляді. ## UsbKill @@ -85,7 +85,7 @@ NFTS використовує кластер і мінімальний розм Вимкнення UserAssist вимагає двох кроків: -1. Встановіть два ключі реєстру, `HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackProgs` та `HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackEnabled`, обидва на нуль, щоб сигналізувати, що ми хочемо вимкнути UserAssist. +1. Встановіть два ключі реєстру, `HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackProgs` та `HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackEnabled`, обидва на нуль, щоб сигналізувати про те, що ми хочемо вимкнути UserAssist. 2. Очистіть свої піддерева реєстру, які виглядають як `HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\`. ### Вимкнути часові мітки - Prefetch @@ -109,7 +109,7 @@ NFTS використовує кластер і мінімальний розм ### Видалити історію USB -Всі **USB Device Entries** зберігаються в реєстрі Windows під ключем **USBSTOR**, який містить підключі, які створюються щоразу, коли ви підключаєте USB-пристрій до свого ПК або ноутбука. Ви можете знайти цей ключ тут H`KEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR`. **Видаливши це**, ви видалите історію USB.\ +Всі **USB-пристрої** зберігаються в реєстрі Windows під ключем **USBSTOR**, який містить підключі, які створюються щоразу, коли ви підключаєте USB-пристрій до свого ПК або ноутбука. Ви можете знайти цей ключ тут H`KEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR`. **Видаливши це**, ви видалите історію USB.\ Ви також можете використовувати інструмент [**USBDeview**](https://www.nirsoft.net/utils/usb_devices_view.html), щоб переконатися, що ви їх видалили (і щоб видалити їх). Ще один файл, який зберігає інформацію про USB, - це файл `setupapi.dev.log` всередині `C:\Windows\INF`. Цей файл також слід видалити. @@ -143,7 +143,7 @@ NFTS використовує кластер і мінімальний розм ### Вимкнути журнали подій Windows - `reg add 'HKLM\\SYSTEM\\CurrentControlSet\\Services\\eventlog' /v Start /t REG_DWORD /d 4 /f` -- У розділі служб вимкніть службу "Windows Event Log" +- У розділі служб вимкніть службу "Журнал подій Windows" - `WEvtUtil.exec clear-log` або `WEvtUtil.exe cl` ### Вимкнути $UsnJrnl @@ -152,7 +152,7 @@ NFTS використовує кластер і мінімальний розм --- -## Розширене ведення журналів та підробка трас (2023-2025) +## Розширене ведення журналів та підробка слідів (2023-2025) ### Ведення журналів PowerShell ScriptBlock/Module @@ -172,9 +172,11 @@ Remove-WinEvent # requires admin & Win11 23H2+ ``` Захисники повинні стежити за змінами в цих ключах реєстру та за великим обсягом видалення подій PowerShell. -### ETW (Event Tracing for Windows) Патч +### ETW (Event Tracing for Windows) Patch -Продукти безпеки кінцевих точок сильно покладаються на ETW. Популярний метод ухилення 2024 року полягає в патчуванні `ntdll!EtwEventWrite`/`EtwEventWriteFull` в пам'яті, щоб кожен виклик ETW повертав `STATUS_SUCCESS` без виведення події: +Продукти безпеки кінцевих точок сильно покладаються на ETW. Популярний метод ухилення 2024 року полягає в тому, щоб +виправити `ntdll!EtwEventWrite`/`EtwEventWriteFull` в пам'яті, щоб кожен виклик ETW повертав `STATUS_SUCCESS` +без виведення події: ```c // 0xC3 = RET on x64 unsigned char patch[1] = { 0xC3 }; @@ -184,7 +186,7 @@ patch, sizeof(patch), NULL); ``` Public PoCs (e.g. `EtwTiSwallow`) реалізують ту ж саму примітиву в PowerShell або C++. Оскільки патч є **локальним для процесу**, EDR, що працюють в інших процесах, можуть його пропустити. -Виявлення: порівняйте `ntdll` в пам'яті з диском або перехопіть перед режимом користувача. +Виявлення: порівняти `ntdll` в пам'яті з на диску, або перехопити перед режимом користувача. ### Відродження альтернативних потоків даних (ADS) @@ -205,16 +207,92 @@ AuKill.exe -e "C:\\Program Files\\Windows Defender\\MsMpEng.exe" AuKill.exe -k CrowdStrike ``` Драйвер видаляється після цього, залишаючи мінімальні артефакти. -Заходи пом'якшення: увімкніть чорний список вразливих драйверів Microsoft (HVCI/SAC) -та сповіщайте про створення служб ядра з шляхів, доступних для запису користувачем. +Заходи пом'якшення: увімкніть чорний список вразливих драйверів Microsoft (HVCI/SAC) і сповіщайте про створення служб ядра з шляхів, доступних для запису користувачем. --- -## Посилання +## Linux Anti-Forensics: Самостійне виправлення та Cloud C2 (2023–2025) -- Sophos X-Ops – “AuKill: Зброя для вразливого драйвера для відключення EDR” (березень 2023) -https://news.sophos.com/en-us/2023/03/07/aukill-a-weaponized-vulnerable-driver-for-disabling-edr -- Red Canary – “Виправлення EtwEventWrite для прихованості: Виявлення та полювання” (червень 2024) -https://redcanary.com/blog/etw-patching-detection +### Самостійне виправлення скомпрометованих служб для зменшення виявлення (Linux) +Супротивники все частіше "самостійно виправляють" службу відразу після її експлуатації, щоб запобігти повторній експлуатації та пригнічувати виявлення на основі вразливостей. Ідея полягає в тому, щоб замінити вразливі компоненти на останні легітимні бінарні файли/JAR з верхнього рівня, щоб сканери повідомляли, що хост виправлений, в той час як стійкість і C2 залишаються. + +Приклад: Apache ActiveMQ OpenWire RCE (CVE‑2023‑46604) +- Після експлуатації зловмисники отримали легітимні JAR з Maven Central (repo1.maven.org), видалили вразливі JAR у встановленні ActiveMQ і перезапустили брокера. +- Це закрило початковий RCE, зберігаючи інші точки доступу (cron, зміни конфігурації SSH, окремі імпланти C2). + +Операційний приклад (ілюстративний) +```bash +# ActiveMQ install root (adjust as needed) +AMQ_DIR=/opt/activemq +cd "$AMQ_DIR"/lib + +# Fetch patched JARs from Maven Central (versions as appropriate) +curl -fsSL -O https://repo1.maven.org/maven2/org/apache/activemq/activemq-client/5.18.3/activemq-client-5.18.3.jar +curl -fsSL -O https://repo1.maven.org/maven2/org/apache/activemq/activemq-openwire-legacy/5.18.3/activemq-openwire-legacy-5.18.3.jar + +# Remove vulnerable files and ensure the service uses the patched ones +rm -f activemq-client-5.18.2.jar activemq-openwire-legacy-5.18.2.jar || true +ln -sf activemq-client-5.18.3.jar activemq-client.jar +ln -sf activemq-openwire-legacy-5.18.3.jar activemq-openwire-legacy.jar + +# Apply changes without removing persistence +systemctl restart activemq || service activemq restart +``` +Forensic/hunting tips +- Перегляньте каталоги служб на наявність незапланованих замін бінарних/JAR файлів: +- Debian/Ubuntu: `dpkg -V activemq` та порівняйте хеші/шляхи файлів з дзеркалами репозиторіїв. +- RHEL/CentOS: `rpm -Va 'activemq*'` +- Шукайте версії JAR, які присутні на диску, але не належать менеджеру пакетів, або символічні посилання, оновлені поза межами. +- Хронологія: `find "$AMQ_DIR" -type f -printf '%TY-%Tm-%Td %TH:%TM %p\n' | sort` для кореляції ctime/mtime з вікном компрометації. +- Історія оболонки/телеметрія процесів: докази `curl`/`wget` до `repo1.maven.org` або інших CDN артефактів відразу після початкової експлуатації. +- Управління змінами: перевірте, хто застосував "патч" і чому, а не лише те, що присутня патчена версія. + +### Cloud‑service C2 with bearer tokens and anti‑analysis stagers +Спостережуване ремесло поєднувало кілька довгострокових C2 шляхів та пакування для протидії аналізу: +- Завантажувачі ELF з PyInstaller, захищені паролем, щоб ускладнити пісочницю та статичний аналіз (наприклад, зашифрований PYZ, тимчасове витягування під `/_MEI*`). +- Індикатори: `strings` хіти, такі як `PyInstaller`, `pyi-archive`, `PYZ-00.pyz`, `MEIPASS`. +- Артефакти під час виконання: витягування до `/tmp/_MEI*` або користувацькі `--runtime-tmpdir` шляхи. +- C2 на базі Dropbox з жорстко закодованими OAuth Bearer токенами +- Мережеві маркери: `api.dropboxapi.com` / `content.dropboxapi.com` з `Authorization: Bearer `. +- Шукайте в проксі/NetFlow/Zeek/Suricata вихідний HTTPS до доменів Dropbox з серверних навантажень, які зазвичай не синхронізують файли. +- Паралельний/резервний C2 через тунелювання (наприклад, Cloudflare Tunnel `cloudflared`), зберігаючи контроль, якщо один канал заблоковано. +- Хост IOCs: процеси/одиниці `cloudflared`, конфігурація в `~/.cloudflared/*.json`, вихідний 443 до Cloudflare edges. + +### Persistence and “hardening rollback” to maintain access (Linux examples) +Зловмисники часто поєднують самопатчинг з надійними шляхами доступу: +- Cron/Anacron: редагування `0anacron` стуба в кожному каталозі `/etc/cron.*/` для періодичного виконання. +- Шукайте: +```bash +for d in /etc/cron.*; do [ -f "$d/0anacron" ] && stat -c '%n %y %s' "$d/0anacron"; done +grep -R --line-number -E 'curl|wget|python|/bin/sh' /etc/cron.*/* 2>/dev/null +``` +- Відкат жорсткості конфігурації SSH: увімкнення входу root та зміна стандартних оболонок для облікових записів з низькими привілеями. +- Шукайте увімкнення входу root: +```bash +grep -E '^\s*PermitRootLogin' /etc/ssh/sshd_config +# значення прапорців, такі як "yes" або надто поблажливі налаштування +``` +- Шукайте підозрілі інтерактивні оболонки на системних облікових записах (наприклад, `games`): +```bash +awk -F: '($7 ~ /bin\/(sh|bash|zsh)/ && $1 ~ /^(games|lp|sync|shutdown|halt|mail|operator)$/) {print}' /etc/passwd +``` +- Випадкові, коротко названі артефакти маяків (8 алфавітних символів), які скидаються на диск і також контактують з хмарним C2: +- Шукайте: +```bash +find / -maxdepth 3 -type f -regextype posix-extended -regex '.*/[A-Za-z]{8}$' \ +-exec stat -c '%n %s %y' {} \; 2>/dev/null | sort +``` + +Захисники повинні корелювати ці артефакти з зовнішнім впливом та подіями патчування служб, щоб виявити антифорензічне самовиправлення, використане для приховування початкової експлуатації. + +## References + +- Sophos X-Ops – “AuKill: A Weaponized Vulnerable Driver for Disabling EDR” (March 2023) +https://news.sophos.com/en-us/2023/03/07/aukill-a-weaponized-vulnerable-driver-for-disabling-edr +- Red Canary – “Patching EtwEventWrite for Stealth: Detection & Hunting” (June 2024) +https://redcanary.com/blog/etw-patching-detection + +- [Red Canary – Patching for persistence: How DripDropper Linux malware moves through the cloud](https://redcanary.com/blog/threat-intelligence/dripdropper-linux-malware/) +- [CVE‑2023‑46604 – Apache ActiveMQ OpenWire RCE (NVD)](https://nvd.nist.gov/vuln/detail/CVE-2023-46604) {{#include ../../banners/hacktricks-training.md}} diff --git a/src/generic-methodologies-and-resources/basic-forensic-methodology/linux-forensics.md b/src/generic-methodologies-and-resources/basic-forensic-methodology/linux-forensics.md index 591a4b640..93d46a120 100644 --- a/src/generic-methodologies-and-resources/basic-forensic-methodology/linux-forensics.md +++ b/src/generic-methodologies-and-resources/basic-forensic-methodology/linux-forensics.md @@ -11,7 +11,7 @@ export PATH=/mnt/usb/bin:/mnt/usb/sbin export LD_LIBRARY_PATH=/mnt/usb/lib:/mnt/usb/lib64 ``` -Якщо ви налаштували систему на використання хороших і відомих бінарних файлів, ви можете почати **витягувати деяку базову інформацію**: +Як тільки ви налаштували систему на використання хороших і відомих бінарних файлів, ви можете почати **витягувати деяку базову інформацію**: ```bash date #Date and time (Clock may be skewed, Might be at a different timezone) uname -a #OS info @@ -35,14 +35,14 @@ find /directory -type f -mtime -1 -print #Find modified files during the last mi - **Root процеси** зазвичай працюють з низькими PID, тому якщо ви знайдете root процес з великим PID, ви можете підозрювати - Перевірте **зареєстровані логіни** користувачів без оболонки в `/etc/passwd` -- Перевірте **хеші паролів** в `/etc/shadow` для користувачів без оболонки +- Перевірте наявність **хешів паролів** в `/etc/shadow` для користувачів без оболонки ### Дамп пам'яті Щоб отримати пам'ять працюючої системи, рекомендується використовувати [**LiME**](https://github.com/504ensicsLabs/LiME).\ Щоб **скомпілювати** його, вам потрібно використовувати **той самий ядро**, яке використовує машина жертви. -> [!NOTE] +> [!TIP] > Пам'ятайте, що ви **не можете встановити LiME або будь-що інше** на машині жертви, оскільки це призведе до кількох змін у ній Отже, якщо у вас є ідентична версія Ubuntu, ви можете використовувати `apt-get install lime-forensics-dkms`\ @@ -53,7 +53,7 @@ sudo insmod lime.ko "path=/home/sansforensics/Desktop/mem_dump.bin format=lime" ``` LiME підтримує 3 **формати**: -- Raw (кожен сегмент з'єднаний разом) +- Raw (кожен сегмент об'єднаний разом) - Padded (той же, що й raw, але з нулями в правих бітах) - Lime (рекомендований формат з метаданими) @@ -64,7 +64,7 @@ LiME також може бути використаний для **відпра #### Вимкнення По-перше, вам потрібно буде **вимкнути систему**. Це не завжди можливо, оскільки іноді система буде виробничим сервером, який компанія не може дозволити собі вимкнути.\ -Є **2 способи** вимкнення системи: **нормальне вимкнення** та **вимкнення "вийняти штекер"**. Перше дозволить **процесам завершитися як зазвичай** і **файловій системі** бути **синхронізованою**, але також дозволить можливому **шкідливому ПЗ** **знищити докази**. Підхід "вийняти штекер" може призвести до **втрати деякої інформації** (не багато інформації буде втрачено, оскільки ми вже зробили зображення пам'яті) і **шкідливе ПЗ не матиме жодної можливості** щось з цим зробити. Тому, якщо ви **підозрюєте**, що може бути **шкідливе ПЗ**, просто виконайте **команду** **`sync`** на системі і вийміть штекер. +Існує **2 способи** вимкнення системи: **нормальне вимкнення** та **вимкнення "вийняти шнур"**. Перше дозволить **процесам завершитися як зазвичай** і **файловій системі** бути **синхронізованою**, але також дозволить можливому **шкідливому ПЗ** **знищити докази**. Підхід "вийняти шнур" може призвести до **втрати деякої інформації** (не багато інформації буде втрачено, оскільки ми вже зробили знімок пам'яті) і **шкідливе ПЗ не матиме жодної можливості** щось з цим зробити. Тому, якщо ви **підозрюєте**, що може бути **шкідливе ПЗ**, просто виконайте **команду** **`sync`** на системі і вийміть шнур. #### Зняття зображення диска @@ -79,7 +79,7 @@ dcfldd if=/dev/sdc of=/media/usb/pc.image hash=sha256 hashwindow=1M hashlog=/med ``` ### Попередній аналіз образу диска -Імідж образу диска без додаткових даних. +Іміджування образу диска без додаткових даних. ```bash #Find out if it's a disk image using "file" command file disk.img @@ -139,7 +139,7 @@ ThisisTheMasterSecret Linux пропонує інструменти для забезпечення цілісності системних компонентів, що є критично важливим для виявлення потенційно проблемних файлів. - **Системи на базі RedHat**: Використовуйте `rpm -Va` для всебічної перевірки. -- **Системи на базі Debian**: `dpkg --verify` для початкової перевірки, після чого виконайте `debsums | grep -v "OK$"` (після встановлення `debsums` за допомогою `apt-get install debsums`) для виявлення будь-яких проблем. +- **Системи на базі Debian**: `dpkg --verify` для початкової перевірки, а потім `debsums | grep -v "OK$"` (після встановлення `debsums` за допомогою `apt-get install debsums`) для виявлення будь-яких проблем. ### Детектори шкідливого ПЗ/Rootkit @@ -153,10 +153,10 @@ malware-analysis.md Щоб ефективно шукати встановлені програми на системах Debian і RedHat, розгляньте можливість використання системних журналів і баз даних разом із ручними перевірками в загальних каталогах. -- Для Debian перевірте _**`/var/lib/dpkg/status`**_ і _**`/var/log/dpkg.log`**_ для отримання деталей про встановлення пакетів, використовуючи `grep` для фільтрації конкретної інформації. -- Користувачі RedHat можуть запитувати базу даних RPM за допомогою `rpm -qa --root=/mntpath/var/lib/rpm`, щоб перерахувати встановлені пакети. +- Для Debian перевірте _**`/var/lib/dpkg/status`**_ і _**`/var/log/dpkg.log`**_, щоб отримати деталі про встановлення пакетів, використовуючи `grep` для фільтрації конкретної інформації. +- Користувачі RedHat можуть запитати базу даних RPM за допомогою `rpm -qa --root=/mntpath/var/lib/rpm`, щоб перерахувати встановлені пакети. -Щоб виявити програмне забезпечення, встановлене вручну або поза цими менеджерами пакетів, досліджуйте каталоги, такі як _**`/usr/local`**_, _**`/opt`**_, _**`/usr/sbin`**_, _**`/usr/bin`**_, _**`/bin`**_, і _**`/sbin`**_. Поєднайте списки каталогів із командами, специфічними для системи, щоб ідентифікувати виконувані файли, не пов'язані з відомими пакетами, що покращить ваш пошук усіх встановлених програм. +Щоб виявити програмне забезпечення, встановлене вручну або поза цими менеджерами пакетів, досліджуйте каталоги, такі як _**`/usr/local`**_, _**`/opt`**_, _**`/usr/sbin`**_, _**`/usr/bin`**_, _**`/bin`**_, і _**`/sbin`**_. Поєднайте списки каталогів із системно-специфічними командами, щоб ідентифікувати виконувані файли, не пов'язані з відомими пакетами, що покращить ваш пошук усіх встановлених програм. ```bash # Debian package and log details cat /var/lib/dpkg/status | grep -E "Package:|Status:" @@ -174,7 +174,7 @@ find / -type f -executable | grep ``` ## Відновлення видалених запущених бінарних файлів -Уявіть процес, який був виконаний з /tmp/exec і потім видалений. Можливо, його витягти. +Уявіть процес, який був виконаний з /tmp/exec і потім видалений. Можливо, його витягти ```bash cd /proc/3746/ #PID with the exec file deleted head -1 maps #Get address of the file. It was 08048000-08049000 @@ -196,6 +196,32 @@ cat /var/spool/cron/crontabs/* \ #MacOS ls -l /usr/lib/cron/tabs/ /Library/LaunchAgents/ /Library/LaunchDaemons/ ~/Library/LaunchAgents/ ``` +#### Hunt: Зловживання Cron/Anacron через 0anacron та підозрілі стуби +Атакуючі часто редагують стуб 0anacron, що знаходиться в кожному каталозі /etc/cron.*/ для забезпечення періодичного виконання. +```bash +# List 0anacron files and their timestamps/sizes +for d in /etc/cron.*; do [ -f "$d/0anacron" ] && stat -c '%n %y %s' "$d/0anacron"; done + +# Look for obvious execution of shells or downloaders embedded in cron stubs +grep -R --line-number -E 'curl|wget|/bin/sh|python|bash -c' /etc/cron.*/* 2>/dev/null +``` +#### Hunt: SSH hardening rollback and backdoor shells +Зміни в sshd_config та системних облікових записах оболонок є звичайними після експлуатації для збереження доступу. +```bash +# Root login enablement (flag "yes" or lax values) +grep -E '^\s*PermitRootLogin' /etc/ssh/sshd_config + +# System accounts with interactive shells (e.g., games → /bin/sh) +awk -F: '($7 ~ /bin\/(sh|bash|zsh)/ && $1 ~ /^(games|lp|sync|shutdown|halt|mail|operator)$/) {print}' /etc/passwd +``` +#### Hunt: Cloud C2 markers (Dropbox/Cloudflare Tunnel) +- API-мітки Dropbox зазвичай використовують api.dropboxapi.com або content.dropboxapi.com через HTTPS з Authorization: Bearer токенами. +- Шукайте в proxy/Zeek/NetFlow несподіваний вихід Dropbox з серверів. +- Cloudflare Tunnel (`cloudflared`) забезпечує резервний C2 через вихідний 443. +```bash +ps aux | grep -E '[c]loudflared|trycloudflare' +systemctl list-units | grep -i cloudflared +``` ### Послуги Шляхи, де шкідливе ПЗ може бути встановлено як служба: @@ -210,9 +236,9 @@ ls -l /usr/lib/cron/tabs/ /Library/LaunchAgents/ /Library/LaunchDaemons/ ~/Libra - **\~/.config/autostart/**: Для автоматичних програм запуску, специфічних для користувача, які можуть бути прихованим місцем для шкідливого ПЗ, націленого на користувача. - **/lib/systemd/system/**: Стандартні файли одиниць системи, надані встановленими пакетами. -### Ядрові модулі +### Модулі ядра -Ядрові модулі Linux, які часто використовуються шкідливим ПЗ як компоненти руткітів, завантажуються під час завантаження системи. Директорії та файли, критично важливі для цих модулів, включають: +Модулі ядра Linux, які часто використовуються шкідливим ПЗ як компоненти руткітів, завантажуються під час завантаження системи. Директорії та файли, критично важливі для цих модулів, включають: - **/lib/modules/$(uname -r)**: Містить модулі для версії ядра, що працює. - **/etc/modprobe.d**: Містить конфігураційні файли для контролю завантаження модулів. @@ -246,10 +272,10 @@ Linux використовує різні файли для автоматичн - **/var/log/xferlog**: Записує FTP-передачі файлів. - **/var/log/**: Завжди перевіряйте на наявність несподіваних журналів тут. -> [!NOTE] -> Журнали системи Linux та підсистеми аудиту можуть бути вимкнені або видалені під час вторгнення або інциденту з шкідливим ПЗ. Оскільки журнали на системах Linux зазвичай містять деяку з найкорисніших інформації про злочинні дії, зловмисники регулярно їх видаляють. Тому, перевіряючи доступні журнали, важливо шукати прогалини або записи в неправильному порядку, які можуть свідчити про видалення або підробку. +> [!TIP] +> Журнали системи Linux та підсистеми аудиту можуть бути вимкнені або видалені під час вторгнення або інциденту з шкідливим ПЗ. Оскільки журнали на системах Linux зазвичай містять деяку з найкорисніших інформацій про злочинні дії, зловмисники регулярно їх видаляють. Тому, перевіряючи доступні журнали, важливо шукати прогалини або записи в неправильному порядку, які можуть свідчити про видалення або підробку. -**Linux зберігає історію команд для кожного користувача**, що зберігається в: +**Linux зберігає історію команд для кожного користувача**, яка зберігається в: - \~/.bash_history - \~/.zsh_history @@ -282,7 +308,7 @@ Linux використовує різні файли для автоматичн [**usbrip**](https://github.com/snovvcrash/usbrip) - це невеликий програмний продукт, написаний на чистому Python 3, який аналізує журнали Linux (`/var/log/syslog*` або `/var/log/messages*` залежно від дистрибутива) для створення таблиць історії подій USB. -Цікаво знати **всі USB, які були використані**, і це буде ще корисніше, якщо у вас є авторизований список USB для виявлення "порушень" (використання USB, які не входять до цього списку). +Цікаво знати **всі USB, які були використані**, і це буде ще корисніше, якщо у вас є авторизований список USB для виявлення "інцидентів порушення" (використання USB, які не входять до цього списку). ### Встановлення ```bash @@ -302,24 +328,24 @@ usbrip ids search --pid 0002 --vid 0e0f #Search for pid AND vid ## Перегляд облікових записів користувачів та активності входу Перевірте _**/etc/passwd**_, _**/etc/shadow**_ та **журнали безпеки** на наявність незвичних імен або облікових записів, створених або використаних у близькій близькості до відомих несанкціонованих подій. Також перевірте можливі атаки грубої сили на sudo.\ -Крім того, перевірте файли, такі як _**/etc/sudoers**_ та _**/etc/groups**_, на предмет несподіваних привілеїв, наданих користувачам.\ +Крім того, перевірте файли, такі як _**/etc/sudoers**_ та _**/etc/groups**_, на наявність несподіваних привілеїв, наданих користувачам.\ Нарешті, шукайте облікові записи з **без паролів** або **легко вгадуваними** паролями. ## Перевірка файлової системи ### Аналіз структур файлової системи в розслідуванні шкідливого ПЗ -Під час розслідування інцидентів з шкідливим ПЗ структура файлової системи є важливим джерелом інформації, що розкриває як послідовність подій, так і вміст шкідливого ПЗ. Однак автори шкідливого ПЗ розробляють методи, щоб ускладнити цей аналіз, такі як зміна часових міток файлів або уникнення файлової системи для зберігання даних. +Під час розслідування інцидентів з шкідливим ПЗ структура файлової системи є важливим джерелом інформації, що розкриває як послідовність подій, так і вміст шкідливого ПЗ. Однак автори шкідливого ПЗ розробляють техніки, щоб ускладнити цей аналіз, такі як зміна часових міток файлів або уникнення файлової системи для зберігання даних. Щоб протидіяти цим антифорензічним методам, важливо: -- **Провести ретельний аналіз хронології** за допомогою інструментів, таких як **Autopsy** для візуалізації хронологій подій або **Sleuth Kit's** `mactime` для детальних даних хронології. +- **Провести детальний аналіз хронології** за допомогою інструментів, таких як **Autopsy** для візуалізації хронологій подій або **Sleuth Kit's** `mactime` для детальних даних хронології. - **Дослідити несподівані скрипти** в $PATH системи, які можуть включати shell або PHP скрипти, що використовуються зловмисниками. -- **Перевірити `/dev` на наявність нетипових файлів**, оскільки він традиційно містить спеціальні файли, але може містити файли, пов'язані зі шкідливим ПЗ. +- **Перевірити `/dev` на наявність нетипових файлів**, оскільки традиційно він містить спеціальні файли, але може містити файли, пов'язані зі шкідливим ПЗ. - **Шукати приховані файли або каталоги** з іменами, такими як ".. " (крапка крапка пробіл) або "..^G" (крапка крапка контроль-G), які можуть приховувати шкідливий вміст. - **Визначити файли setuid root** за допомогою команди: `find / -user root -perm -04000 -print` Це знаходить файли з підвищеними привілеями, які можуть бути зловживані зловмисниками. - **Переглянути часові мітки видалення** в таблицях inode, щоб виявити масові видалення файлів, що може вказувати на наявність rootkit або троянів. -- **Перевірити послідовні inode** на наявність сусідніх шкідливих файлів після виявлення одного, оскільки вони могли бути розміщені разом. +- **Перевірити послідовні inodes** на наявність сусідніх шкідливих файлів після виявлення одного, оскільки вони могли бути розміщені разом. - **Перевірити загальні каталоги бінарних файлів** (_/bin_, _/sbin_) на наявність нещодавно змінених файлів, оскільки ці файли могли бути змінені шкідливим ПЗ. ````bash # List recent files in a directory: @@ -328,20 +354,20 @@ ls -laR --sort=time /bin``` # Sort files in a directory by inode: ls -lai /bin | sort -n``` ```` -> [!NOTE] +> [!TIP] > Зверніть увагу, що **зловмисник** може **змінити** **час**, щоб **файли виглядали** **легітимними**, але він **не може** змінити **inode**. Якщо ви виявите, що **файл** вказує на те, що він був створений і змінений в **один і той же час** з іншими файлами в тій же папці, але **inode** є **неочікувано більшим**, то **часові мітки цього файлу були змінені**. ## Порівняння файлів різних версій файлової системи ### Резюме порівняння версій файлової системи -Щоб порівняти версії файлової системи та виявити зміни, ми використовуємо спрощені команди `git diff`: +Щоб порівняти версії файлових систем і виявити зміни, ми використовуємо спрощені команди `git diff`: - **Щоб знайти нові файли**, порівняйте дві директорії: ```bash git diff --no-index --diff-filter=A path/to/old_version/ path/to/new_version/ ``` -- **Для зміненого контенту**, перерахувати зміни, ігноруючи конкретні рядки: +- **Для зміненого контенту** перерахувати зміни, ігноруючи конкретні рядки: ```bash git diff --no-index --diff-filter=M path/to/old_version/ path/to/new_version/ | grep -E "^\+" | grep -v "Installed-Time" ``` @@ -349,7 +375,7 @@ git diff --no-index --diff-filter=M path/to/old_version/ path/to/new_version/ | ```bash git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/ ``` -- **Опції фільтра** (`--diff-filter`) допомагають звузити до конкретних змін, таких як додані (`A`), видалені (`D`) або змінені (`M`) файли. +- **Опції фільтрації** (`--diff-filter`) допомагають звузити до конкретних змін, таких як додані (`A`), видалені (`D`) або змінені (`M`) файли. - `A`: Додані файли - `C`: Скопійовані файли - `D`: Видалені файли @@ -365,6 +391,8 @@ git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/ - [https://cdn.ttgtmedia.com/rms/security/Malware%20Forensics%20Field%20Guide%20for%20Linux%20Systems_Ch3.pdf](https://cdn.ttgtmedia.com/rms/security/Malware%20Forensics%20Field%20Guide%20for%20Linux%20Systems_Ch3.pdf) - [https://www.plesk.com/blog/featured/linux-logs-explained/](https://www.plesk.com/blog/featured/linux-logs-explained/) - [https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---diff-filterACDMRTUXB82308203](https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---diff-filterACDMRTUXB82308203) -- **Книга: Посібник з комп'ютерної криміналістики для Linux-систем: Посібники з цифрової криміналістики** +- **Книга: Посібник з комп'ютерної криміналістики для Linux: Полеві посібники з цифрової криміналістики** + +- [Red Canary – Патчинг для стійкості: Як шкідливе ПЗ DripDropper для Linux переміщується через хмару](https://redcanary.com/blog/threat-intelligence/dripdropper-linux-malware/) {{#include ../../banners/hacktricks-training.md}}