Пишем скрипт для работы с VirusTotal-ом

  • Автор темы Gidroponika
  • Дата начала
G

Gidroponika

61834db370f449ee99b80.png

Приветствую всех! Сегодня я вам покажу как сделать скрипт, который будет загружать все что вы скачали на вирустотал, т.е это для того, чтобы не подхватить вирус. Возможно этот скрипт не будет вам полезен.

Недавно перешел на python3. Советую всем переходить))



Приступим к программированию !



По дефолту(у меня уже привычка) ставим это # -*- coding: utf-8 -*- в начале нашего скрипта.



Теперь импортируем библиотеки, которыми мы будем пользоваться.



Код:
from termcolor import *
import colorama
import os
import time
from sys import platform
import requests
import webbrowser

Я захотел сделать цветной текст, но в windows он не отображался, путем гугления нашел решение пишем: colorama.init()



Далее я создаю функцию которая отобразит банер нашего скрипта.
Код:
def banner():
    cprint('-' * 50,'green')
    cprint(' ' * 17 + 'DefendMySystem','red')
    cprint('-' * 50,'green')
Теперь я создаю функцию для очистки консоли(для красоты).

Код:
def cleaner():
    if platform == "linux" or platform == "linux2": # Определяю OC системы
        os.system('clear')
    if platform == "win32":
        os.system('cls')
Я решил, что часть настроек будет лежать в .conf файлах. Поэтому я написал функцию для проверки существования этих файлов.

Код:
def checkfiles():
    arr = os.listdir('.') # Список файлов в текущей дириктории
    for x in arr:
        if 'delay.conf' not in arr:
            handle = open('delay.conf','w')
            handle.close() # Если файла нету создать

        if 'api.conf' not in arr:
            handle = open('api.conf','w')
            handle.close() # Если файла нету создать

Потом я написал функцию настройки скрипта.

Код:
def setting():
    handle = open('config.conf')
    data = handle.read()
    handle.close()
 
    handle = open('delay.conf')
    data2 = handle.read()
    handle.close()
    if data2 == '': #Если конфиг пустой - настроить
        cprint("Установите задержку для проверки папки загрузки(в секундах)","cyan")
        delay = input(':')
        handle = open('delay.conf','w')
        handle.write(delay)
        handle.close()
        cleaner()
    handle = open('api.conf')
    data3 = handle.read()
    handle.close()

    if data3 == '': #Если конфиг пустой - настроить
        cprint("Введите ваш api ключ","cyan")
        webbrowser.open("https://www.virustotal.com/ru/", new=2)
        api = input(':')
        handle = open('api.conf','w')
        handle.write(api)
        handle.close()
        cleaner()

Далее я написал функцию отправки файла на вирустотал.

Код:
def sendfiles(filename,api):
    params = {'apikey': api} # Работу с api обычно документируют на сайте
    response = requests.post('https://www.virustotal.com/vtapi/v2/file/scan', files={'file': (filename, open(filename, 'rb'))}, params=params)
    json_response = response.json()
    dct = eval(str(json_response))
    link = dct['permalink']
    webbrowser.open(link, new=2)

Потом я написал главную функцию, которая выполняет всю тяжелую работу.

Код:
def main():
    temp = []
    path = 'C:\\Users\\Алекс\\Downloads\\' # Путь к папке куда файлы загружаются
                                            # С этой папки файлы будут слаться
    handle = open('delay.conf')
    delay = handle.read()
    handle.close()
    delay = int(delay) # Читаем конфиг

    handle = open('api.conf')
    api = handle.read() # Читаем конфиг
    handle.close()
    files = os.listdir(path) # Список файлов в path(переменная)
    while True: # Бесконечный цикл
        files2 = os.listdir(path) # Список файлов в path(переменная)
        if files != files2: # Если добавился новый файл
            for x in files2:
                if x not in files:
                    temp.append(x)
                    for x in temp:
                        filename = path + x
                    sendfiles(filename,api) # Мы его отправим и у нас откроется отчет со сканом
            temp = []
            files = files2
        time.sleep(delay) # Задержка цикла

Все готово! Теперь просто вызываю функции.


Код:
banner()
checkfiles()
setting()
try:
    main() # Если пользователь нажмет ctrl + c он просто выйдет, а не получит ошибку
except KeyboardInterrupt:
    exit()

Код:
Для удобства полный код:

Код:
# -*- coding: utf-8 -*-
from termcolor import *
import colorama
import os
import time
from sys import platform
import requests
import webbrowser

colorama.init()

def banner():
    cprint('-' * 50,'green')
    cprint(' ' * 17 + 'DefendMySystem','red')
    cprint('-' * 50,'green')

def cleaner():
    if platform == "linux" or platform == "linux2":
        os.system('clear')
    if platform == "win32":
        os.system('cls')


def checkfiles():
    arr = os.listdir('.')
    for x in arr:
        if 'delay.conf' not in arr:
            handle = open('delay.conf','w')
            handle.close()

        if 'api.conf' not in arr:
            handle = open('api.conf','w')
            handle.close()



def setting():
    handle = open('config.conf')
    data = handle.read()
    handle.close()
 
    handle = open('delay.conf')
    data2 = handle.read()
    handle.close()
    if data2 == '':
        cprint("Установите задержку для проверки папки загрузки(в секундах)","cyan")
        delay = input(':')
        handle = open('delay.conf','w')
        handle.write(delay)
        handle.close()
        cleaner()
    handle = open('api.conf')
    data3 = handle.read()
    handle.close()

    if data3 == '':
        cprint("Введите ваш api ключ","cyan")
        webbrowser.open("https://www.virustotal.com/ru/", new=2)
        api = input(':')
        handle = open('api.conf','w')
        handle.write(api)
        handle.close()
        cleaner()

def sendfiles(filename,api):
    params = {'apikey': api}
    response = requests.post('https://www.virustotal.com/vtapi/v2/file/scan', files={'file': (filename, open(filename, 'rb'))}, params=params)
    json_response = response.json()
    dct = eval(str(json_response))
    link = dct['permalink']
    webbrowser.open(link, new=2)

def main():
    temp = []
    path = 'C:\\Users\\Алекс\\Downloads\\'

    handle = open('delay.conf')
    delay = handle.read()
    handle.close()
    delay = int(delay)

    handle = open('api.conf')
    api = handle.read()
    handle.close()
    files = os.listdir(path)
    while True:
        files2 = os.listdir(path)
        if files != files2:
            for x in files2:
                if x not in files:
                    temp.append(x)
                    for x in temp:
                        filename = path + x
                    sendfiles(filename,api)
            temp = []
            files = files2
        time.sleep(delay)

banner()
checkfiles()
setting()
try:
    main()
except KeyboardInterrupt:
    exit()

На этом все. Спасибо за чтение статьи!

PS Моя версия python 3.7
 
  • Like
Реакции: mixaton2 и Aceki1
Название темы
Автор Заголовок Раздел Ответы Дата
U Интересно PHP - Пишем свой фишинг скрипт для кражи тт аккаунтов {Уровень: EASY} Другие ЯП 10
Ёшкин_кот Интересно Пишем любой текст на листочке который держит обнажённая девушка. 18+ Свободное общение и флейм 0
Ёшкин_кот Интересно Пишем вредоносное ПО с помощью ChatGPT. Формат mp4. English-speaking. Полезные статьи 0
A Пишем свой RAT на Python > {Часть 1} Уязвимости и взлом 3
L Интересно C# - Пишем Watchdog (Модуль защиты вашего трояна) .NET 2
L Интересно C# - Динамическая загрузка DLL (пишем стиллер в 9кб) .NET 4
K Интересно [Roman Akhromieiev] Telegram. Пишем ботов на Node JS и Telegraf (2020) Другое 1
3 Взлом вашей второй Половинки или Конкурента связь [email protected] Eсли вы хотите узнать что делает ваша вторая половинка в сети пишем нам на почту Корзина 0
X Взлом вашей второй Половинки или Конкурента связь [email protected] Eсли вы хотите узнать что делает ваша вторая половинка в сети пишем нам на поч Ищу работу. Предлагаю свои услуги. 1
sxkury Пишем малютку для скана сайта Софт от наших юзеров 6
АнАлЬнАя ЧуПаКаБрА Интересно Пишем брут на любой(почти) банк [OFX] Другие ЯП 1
S Пишем свой перехватчик СМС Android Другие ЯП 3
S Взлом вашей второй Половинки или Конкурента связь [email protected] Eсли вы хотите узнать что делает ваша вторая половинка в сети пишем нам н Ищу работу. Предлагаю свои услуги. 0
T Пишем WinLocker на Delphi С/C++ 0
N Пишем отзывы и получаем от 200 рублей в день. Способы заработка 12
G Пишем парсер на Python - грабим Proxy ч.2 Бруты/Парсеры/Чекеры 0
G Пишем парсер на Python - грабим Proxy ч.1 Бруты/Парсеры/Чекеры 2
G Пишем шифровальщик на python Полезные статьи 0
Traven Пишем спамер Telegram, на Python Другое 0
Traven Пишем свой стиллер на Python Другие ЯП 5
Traven WinLocker на python. Пишем вирус. Другое 0
V Пишем переносной кейлоггер на C++ Полезные статьи 1
O Пишем стиллер на Batch Вирусология 15
A Delphi для начинающих – Урок 6 – Пишем свой калькулятор С/C++ 0
E [PHP] Пишем свой движок 2.0 Другие ЯП 0
Glods Пишем многопоточный Brute С/C++ 0
R Пишем билдер C# вариант 1 .NET 2
lonesttar Ожидает оплаты Скрипт бота по аренде виртуальных номеров + бот техподдержка! Продажа софта 0
lonesttar Ожидает оплаты Скрипт бота по аренде прокси + бот техподдержка! Продажа софта 0
olivander Продам ПРОДАЖА или ОТРАБОТКА APIKEY/SECRETKEY + скрипт Автовывода приватников Финансы - биллинги, банки, кошельки, логи 1
Mr Crabs Продам Скрипт ПП для продажи инфотоваров Куплю/Продам 1
balof [Steam] Скрипт для получении карточек с премии Раздача (аккаунтов/ключей) 1
Mr Crabs Закрыто Telegram Первонах - скрипт на PHP Корзина 1
balof Скрипт на Летнюю распродажу Steam Другое 0
Z Асана — скрипт автоматической внутренней перелинковки Продажа софта 2
olivander Куплю Куплю скрипт/бота для автовывода токенов Куплю/Продам 1
Denik Интересно Скрипт сайта "Bitwallet" Другое 2
Denik Интересно СКРИПТ ЛОТЕРЕИ ZEND-LOTO 36 Другое 0
Denik Интересно Скрипт фишинга VK MINI Другое 0
zladey1986 Продам Скрипт приема платежей p2p с карты на карту Все что не подошло по разделу 3
A Скрипт: Автоучастие в розыгрышах lоlzteam Cracked & Remastered by PC-RET Бруты/Парсеры/Чекеры 0
Mr Crabs Продам Скрипт магазина для продажи аккаунтов Сайты/Хостинг/Сервера 2
Z Продам скрипт для спама по группам и лс телеграмма. Все что не подошло по разделу 1
P Скрипт онлайн игры Flower Field Продажа софта 0
zladey1986 Продам Скрипт прием платежей p2p, card 2 card (с карты на карту) Все что не подошло по разделу 1
P Продам Скрипт rtb exchange suite - система перепродажи трафика dsp/ssp в реальном времени. Сайты/Хостинг/Сервера 1
Denik Интересно Скрипт онлайн рулетки с денежными кейсами / Еgger/ Другое 1
Denik Интересно скрипт payeer удвоителя /Germillion/ Другое 1
K Продам Скрипт казино Goldsvet 7.1 MRS (рулетка club) NULLED Сайты/Хостинг/Сервера 9
Denik Интересно Скрипт социальной сети / DCMS-SOCIAL/ Другое 0

Название темы