---
# System prepended metadata

title: Threat Hunting. Анализ действий злоумышленников

---

# Threat Hunting. Анализ действий злоумышленников
## 1. Написать детект по событиям (в синтаксисе SIGMA) на скачивание файла с помощью certutil.exe
```
title: certutil.exe download file
id: 88b2f7db-af0b-4f1a-a3d1-42c4d7987c2c
description: Test rule to figure certutil.exe features in downloading files
author: Klykova
date: 2022/09/25
references:
	- https://lolbas-project.github.io/lolbas/Binaries/Certutil/
tags:
	- attack.ingress-tool-transfer
	- attack.t1105
logsource:
	category: process_creation
	product: windows
detection: 
	selection_1: 
		Image|startswith: 'C:\Windows\System32\'
	selection_2: 
		ParentCommandLine|contains|all: 
			- 'cmd.exe'
			- 'certutil.exe'
			- '-urlcache'
	condition: selection_1 and selection_2
fields:
	- CommandLine
	- ParentCommandLine
falsepositives:
	- Unknown
level: medium
```
![](https://i.imgur.com/jVq0pRd.png)
![](https://i.imgur.com/cSCBlxG.png)
## 2. Написать сетевой детект (в синтаксисе suricata) на активность из 1 задания.
```
alert tcp any -> any any (msg:"certutil.exe download file"; flow:to_server; content:"certutil.exe -urlcache"; sid:10101010; rev:2; classtype:bad-unknown)
```
## 3. Написать программу, выдающую строку по заданным произвольному началу md5-хеша и длине этой строки
```
import random
import string
import hashlib

def generate_alphanum_random_string(length):
    letters_and_digits = string.ascii_letters + string.digits
    rand_string = ''.join(random.sample(letters_and_digits, length))
    return rand_string

hash_ = input()  # вводим начало искомого хэша
lengh = int(input())  # длина искомой строки
dlina_maski = len(hash_)  # длина введенного хэша
i = 1
while i == 1:
    stroka = str(generate_alphanum_random_string(lengh))  # рандомная строка
    hash_object = hashlib.md5(stroka.encode()).hexdigest()[:dlina_maski]
    if hash_object == hash_:
        print(stroka)
        break
```
![](https://i.imgur.com/LzwgDJo.png)
![](https://i.imgur.com/3Jpvv1h.png)
