VirusTotal CLI: установка и настройка на Linux
Для того, чтобы им пользоваться, нужно получить API ключ, а для этого пройти регистрацию. Особых проблем с этим нет, сервис поддерживает аутентификацию через тот же github. Зашёл через свою учётку там и сразу забрал API ключ из отдельного раздела API Key. Ограничение бесплатной версии - 500 проверок в день. Для единоличного использования хватит за глаза.
Дальше забираем бинарник под свою систему: Windows, Lunux, MacOS или FreeBSD. Я взял линуксовую версию, несмотря на то, что моя основная рабочая система - Windows. Использовать его буду в WSL. Разработчики советуют запускать vt-cli под виндой не в стандартном терминале, а хотя бы в cygwin из-за того, что в стандартном окружении Windows утилита будет подтупливать при выводе портянок текста. Если вам это некритично, то можно сразу в винду поставить:
# winget install VirusTotal.vt-cli
Я в итоге поставил так:
$ wget https://github.com/VirusTotal/vt-cli/releases/download/1.3.0/Linux64.zip
$ unzip Linux64.zip
$ sudo mv vt /usr/local/bin
Дальше хотел добавить встроенное автозаполнение для bash, но у меня ничего не получилось:
$ sudo vt completion bash > /etc/bash_completion.d/vt
bash: /etc/bash_completion.d/vt: Permission denied
Кто догадается, почему эта команда не сработала с sudo? Я когда набирал, не подумал об этом, но как получил ошибку, сразу понял в чём дело. Тут есть один важный нюанс, из-за которого такая конструкция не работает. Пришлось сделать, как обычно 😁:
$ sudo su
# vt completion bash > /etc/bash_completion.d/vt
# exit
После этого регистрируем свой API Key:
$ vt init
Теперь можно в консоли делать различные проверки:
$ vt scan file awscliv2.zip
awscliv2.zip M2UwMDJjNjU2MTZjRlZmY6MTc3NjM2NDgzNQ==
Файл загрузился и ему назначен ID. Нужно некоторое время, чтобы завершилась проверка. Обычно минута-две. Смотрим результат проверки по этому ID:
$ vt analysis M2UwMDJjNjU2MTZjRlZmY6MTc3NjM2NDgzNQ==
Вываливается портянка проверок. Большого смысла читать всё нет. Нас интересует только результат:
$ vt analysis -i=stats M2UwMDJjNjU2MTZjRlZmY6MTc3NjM2NDgzNQ==
- stats:
confirmed-timeout: 0
failure: 1
harmless: 0
malicious: 0
suspicious: 0
timeout: 11
type-unsupported: 8
undetected: 56
Таким же образом можно сайты и их IP адреса проверять:
$ vt url https://serveradmin.ru
$ vt url last_serving_ip_address https://serveradmin.ru
Можно ограничить вывод, чтобы не читать всё:
$ vt -i=**.result url https://serveradmin.ru
$ vt -i=**.result url last_serving_ip_address https://serveradmin.ru
Я погонял разные проверки. Сначала вроде воодушевился, что можно использовать CLI. Но на деле анализировать вывод глазами не очень удобно. В браузере привычнее. Возможно вам где-то это пригодится больше, чем мне. У кого какие привычки.
Это решение скорее для каких-то небольших своих проектов типа телеграм бота или скриптов автоматизации с проверками доменов или IP адресов, если их не очень много. Например, с помощью этой утилиты можно автоматически проверять свои IP адреса на предмет попадания в списки нежелательных адресов.
#security