Простой скрипт для проверки слива на VT. Ищет файл по хешу, используя публичный АПИ.
Всё нужное вбивать в hashes в формате { "хеш": "человеческое название" }
Как-то так:
Всё нужное вбивать в hashes в формате { "хеш": "человеческое название" }
Python:
#!/usr/bin/python
# Docs: https://www.virustotal.com/en/documentation/public-api/
import http.client
import json
vt_api_key = '4e3202fdbe953d628f650229af5b3eb49cd46b2d3bfe5546ae3c5fa48b554e0c' # SysInternals
hashes = {
'a5e980aac32d9c7af1d2326008537c66d55d7d9ccf777eb732b2a31f4f7ee523': 'Cobalt Strike 4.5 (December 14, 2021)',
'8331a77fb2f81ce969795466f8f441f02813789c24b47d0771ffdceddf8d91fe': 'Cobalt Strike 4.4 Linux Distributions Package',
'f82531f3e18de0801bf18a4f65070cd927b656c3ef4b9ae8fb2c666338e65352': 'Cobalt Strike 4.2 Linux Distributions Package',
'7af9c759ac78da920395debb443b9007fdf51fa66a48f0fbdaafb30b00a8a858': 'Cobalt Strike 4.4 Licensed (cobaltstrike.jar)'
}
for k, v in hashes.items():
conn = http.client.HTTPSConnection("www.virustotal.com")
conn.request('GET', f'/vtapi/v2/file/report?apikey={vt_api_key}&resource={k}')
res = conn.getresponse()
if res.status == 200:
data = res.read()
if data:
data_decoded = json.loads(data)
if data_decoded['response_code'] == 1:
print(f'{v} found: https://www.virustotal.com/gui/search/{k}')
else:
print(f'{v} not found')
else:
print('Unable to get page content')
else:
print('Return code != 200. Check API key and rate limits.')
conn.close()
Как-то так: