# **3. Threat Hunting. Анализ действий злоумышленников**
1. **Написать детект по событиям (в синтаксисе SIGMA) на скачивание файла с помощью certutil.exe**

Установим конфиг sysmon

Скачаем архив через cetrutil

Появился лог скачивания нашего файла

2. **Написать сетевой детект (в синтаксисе suricata) на активность из 1 задания.**
Правило детекта будет реагировать на все tcp пакеты, приходящие на 443 порт
```
alert tcp any any -> any 443
(content:"certutil"; msg:"Download file via certutil"; metadata:created_at 2022_10_06;classtype: high;)
```
3. **Написать программу, выдающую строку по заданным произвольному началу md5-хеша и длине этой строки**
Было два варианта решения:
1. Перебор по словарю, но такие словари весят очень много. Пару штук, которые я нашёл, весили чуть меньше 2ТБ. Хотел написать программу, которая будет парсить сайт со словарём, но не получилось
2. Генерация строки, пока не совпадёт начало хеша
```python
import hashlib
import itertools
FIRST = input('Введите первые несколько символов MD5 хэша: ')
F = len(FIRST)
N = int(input('Введите длину исходной строки: '))
symbols = 'abcdefghijklmnopqrstuvwxyz'
start = ''
i = 1
while i <= N:
start = start + 'a'
i = i+1
lst = list(itertools.product(symbols, repeat=N))
for line in lst[lst.index(tuple(start)):]:
i = 1
line_var = ''
while i <= N:
line_var = line_var + line[i-1]
i=i+1
M5_var = hashlib.md5(line_var.encode())
M5_var_hex = M5_var.hexdigest()
M5_split = M5_var_hex[:F]
if M5_split == FIRST:
print('Строка: ', line_var)
print('Ее хэш: ', M5_var_hex)
break
```
Программа при большой длине строки и маленьком количестве символов md5 сильно перегружает процессор и память компьютера
**Введите первые несколько символов MD5 хэша: 3becb4d7181c01bf1403c02fdfebe
Введите длину исходной строки: 3
Строка: ccd
Ее хэш: 3becb4d7181c01bf1403c02fdfebe147**