hacktricks/forensics/basic-forensic-methodology/malware-analysis.md

180 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Аналіз шкідливих програм
{% hint style="success" %}
Вивчайте та практикуйте взлом AWS: <img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**Навчання HackTricks AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Вивчайте та практикуйте взлом GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**Навчання HackTricks GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Підтримайте HackTricks</summary>
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами на **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Поширюйте хакерські трюки, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв GitHub.
</details>
{% endhint %}
## Шпаргалки Forensics
[https://www.jaiminton.com/cheatsheet/DFIR/#](https://www.jaiminton.com/cheatsheet/DFIR/)
## Онлайн сервіси
* [VirusTotal](https://www.virustotal.com/gui/home/upload)
* [HybridAnalysis](https://www.hybrid-analysis.com)
* [Koodous](https://koodous.com)
* [Intezer](https://analyze.intezer.com)
* [Any.Run](https://any.run/)
## Офлайн антивірусні та інструменти виявлення
### Yara
#### Встановлення
```bash
sudo apt-get install -y yara
```
#### Підготовка правил
Використовуйте цей скрипт для завантаження та об'єднання всіх правил виявлення шкідливих програм yara з github: [https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9](https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9)\
Створіть каталог _**rules**_ та виконайте його. Це створить файл з назвою _**malware\_rules.yar**_, який містить всі правила yara для виявлення шкідливих програм.
```bash
wget https://gist.githubusercontent.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9/raw/4ec711d37f1b428b63bed1f786b26a0654aa2f31/malware_yara_rules.py
mkdir rules
python malware_yara_rules.py
```
#### Сканування
```bash
yara -w malware_rules.yar image #Scan 1 file
yara -w malware_rules.yar folder #Scan the whole folder
```
#### YaraGen: Перевірка наявності шкідливих програм та створення правил
Ви можете використовувати інструмент [**YaraGen**](https://github.com/Neo23x0/yarGen) для генерації правил yara з бінарного файлу. Перегляньте ці уроки: [**Частина 1**](https://www.nextron-systems.com/2015/02/16/write-simple-sound-yara-rules/), [**Частина 2**](https://www.nextron-systems.com/2015/10/17/how-to-write-simple-but-sound-yara-rules-part-2/), [**Частина 3**](https://www.nextron-systems.com/2016/04/15/how-to-write-simple-but-sound-yara-rules-part-3/)
```bash
python3 yarGen.py --update
python3.exe yarGen.py --excludegood -m ../../mals/
```
### ClamAV
#### Встановлення
```
sudo apt-get install -y clamav
```
#### Сканування
```bash
sudo freshclam #Update rules
clamscan filepath #Scan 1 file
clamscan folderpath #Scan the whole folder
```
### [Capa](https://github.com/mandiant/capa)
**Capa** виявляє потенційно шкідливі **можливості** в виконуваних файлах: PE, ELF, .NET. Таким чином, він знайде такі речі, як тактика Att\&ck або підозрілі можливості, такі як:
* перевірка помилки OutputDebugString
* запуск як служба
* створення процесу
Отримайте його в [**репозиторії Github**](https://github.com/mandiant/capa).
### IOCs
IOC означає Індикатор Компрометації. IOC - це набір **умов, які ідентифікують** деяке потенційно небажане програмне забезпечення або підтверджене **шкідливе програмне забезпечення**. Команди Blue використовують цей тип визначення для **пошуку цього типу шкідливих файлів** у своїх **системах** та **мережах**.\
Дуже корисно ділитися цими визначеннями, оскільки коли шкідливе програмне забезпечення ідентифікується на комп'ютері і створюється IOC для цього шкідливого програмного забезпечення, інші команди Blue можуть використовувати його для ідентифікації шкідливого програмного забезпечення швидше.
Інструмент для створення або зміни IOCs - [**IOC Editor**](https://www.fireeye.com/services/freeware/ioc-editor.html)**.**\
Ви можете використовувати інструменти, такі як [**Redline**](https://www.fireeye.com/services/freeware/redline.html) для **пошуку визначених IOCs на пристрої**.
### Loki
[**Loki**](https://github.com/Neo23x0/Loki) - це сканер для простих індикаторів компрометації.\
Виявлення базується на чотирьох методах виявлення:
```
1. File Name IOC
Regex match on full file path/name
2. Yara Rule Check
Yara signature matches on file data and process memory
3. Hash Check
Compares known malicious hashes (MD5, SHA1, SHA256) with scanned files
4. C2 Back Connect Check
Compares process connection endpoints with C2 IOCs (new since version v.10)
```
### Виявлення шкідливих програм для Linux
[**Linux Malware Detect (LMD)**](https://www.rfxn.com/projects/linux-malware-detect/) - це програма для виявлення шкідливих програм для Linux, яка випущена під ліцензією GNU GPLv2 і призначена для боротьби з загрозами, з якими стикаються в спільних хостингових середовищах. Вона використовує дані про загрози з систем виявлення вторгнень на мережевому краю для вилучення шкідливих програм, які активно використовуються в атаках, та генерує підписи для виявлення. Крім того, дані про загрози також походять від користувацьких внесків за допомогою функції перевірки LMD та ресурсів спільноти щодо шкідливих програм.
### rkhunter
Інструменти, такі як [**rkhunter**](http://rkhunter.sourceforge.net), можуть бути використані для перевірки файлової системи на можливі **rootkits** та шкідливі програми.
```bash
sudo ./rkhunter --check -r / -l /tmp/rkhunter.log [--report-warnings-only] [--skip-keypress]
```
### FLOSS
[**FLOSS**](https://github.com/mandiant/flare-floss) - це інструмент, який спробує знайти зашифровані рядки всередині виконуваних файлів, використовуючи різні техніки.
### PEpper
[PEpper](https://github.com/Th3Hurrican3/PEpper) перевіряє деякі основні речі всередині виконуваного файлу (бінарні дані, ентропія, URL-адреси та IP-адреси, деякі правила yara).
### PEstudio
[PEstudio](https://www.winitor.com/download) - це інструмент, який дозволяє отримувати інформацію про виконувані файли Windows, таку як імпорт, експорт, заголовки, а також перевіряє VirusTotal та знаходить потенційні техніки Att\&ck.
### Detect It Easy(DiE)
[**DiE**](https://github.com/horsicq/Detect-It-Easy/) - це інструмент для виявлення того, чи є файл **зашифрованим**, а також для пошуку **упаковувальників**.
### NeoPI
[**NeoPI**](https://github.com/CiscoCXSecurity/NeoPI) - це сценарій Python, який використовує різноманітні **статистичні методи** для виявлення **зашифрованого** та **зашифрованого** вмісту в текстових/сценарних файлах. Призначення NeoPI - допомогти в **виявленні прихованого коду веб-оболонок**.
### **php-malware-finder**
[**PHP-malware-finder**](https://github.com/nbs-system/php-malware-finder) робить все можливе для виявлення **зашифрованого**/**підозрілого коду**, а також файлів, які використовують функції **PHP**, які часто використовуються в **зловмисних програмах**/веб-оболонках.
### Apple Binary Signatures
При перевірці деякого **зразка шкідливого ПЗ** ви завжди повинні **перевіряти підпис** бінарного файлу, оскільки **розробник**, який підписав його, може вже бути **пов'язаний** з **шкідливим ПЗ**.
```bash
#Get signer
codesign -vv -d /bin/ls 2>&1 | grep -E "Authority|TeamIdentifier"
#Check if the apps contents have been modified
codesign --verify --verbose /Applications/Safari.app
#Check if the signature is valid
spctl --assess --verbose /Applications/Safari.app
```
## Техніки виявлення
### Стекінг файлів
Якщо ви знаєте, що деяка тека, що містить **файли** веб-сервера, була **останнім разом оновлена на певну дату**. **Перевірте** дату всіх **файлів** у **веб-сервері були створені та змінені**, і якщо яка-небудь дата є **підозрілою**, перевірте цей файл.
### Базові лінії
Якщо файли теки **не повинні були бути змінені**, ви можете обчислити **хеш** **оригінальних файлів** теки та **порівняти** їх з **поточними**. Будь-що, що було змінено, буде **підозрілим**.
### Статистичний аналіз
Коли інформація зберігається в журналах, ви можете **перевірити статистику, таку як скільки разів кожен файл веб-сервера був доступний, оскільки веб-оболонка може бути одним з найбільш**.
{% hint style="success" %}
Вивчайте та практикуйте взлом AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**Навчання HackTricks AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Вивчайте та практикуйте взлом GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**Навчання HackTricks GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Підтримайте HackTricks</summary>
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи telegram**](https://t.me/peass) або **слідкуйте** за нами на **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Поширюйте хакерські трюки, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на GitHub.
</details>
{% endhint %}