Как сделать винлокер на python
[Вирусология] Пишем винлокер на Python
Мы с вами напишем локер для компьютера, на базе Windows или UNIX систем. Наша программа будет блокировать систему пользователя, пока он не введет пароль. В простонародье данный вирус называют «WinLocker».
Переходим на официальный сайт PythonА —
. Скачиваем последнюю версию и устанавливаем ее.
Начинаем кодить.
Комментарии к коду будут помечены #комментарий
Для написания вы можете использовать обычный IDLE от питона, или любой другой. Для начала мы должны к нашей программе подключить нужные нам библиотеки.
*Библиотека — написанные коды/функции, которые подключаются к нашей программе.
Но при запуске нам выдаст ошибку, указывающую на отсутствие библиотек pyautogui и pygame. Они не являются стандартными и их нужно установить. Для этого выполняем действия как на видео(через систему для установки пакетов мы ставим нужные нам библиотеки)
ДАЛЬШЕ МЫ ЗАДАДИМ ПЕРЕМЕННЫЕ, КОТОРЫЕ МЫ БУДЕМ ИСПОЛЬЗОВАТЬ
Почти в самом начале мы должны создать функции. Которые будут отвечать за блокировку компьютера и за проверку на ввод правильного пароля. Сначала создаем функцию блокировки компьютера.
Теперь мы создаем функцию, которая проверяет, введен ли правильный пароль.
Дальше мы должны создать окно нашего локера,которое откроется на весь экран.
В winlock-ерах принято оставлять сообщения с информацией,требованием перевода денег. Я решил, что оставлять текстовое сообщение — слишком банально, и при запуске нашего вируса будет проигрываться голосовое сообщение. Голосовое сообщение я сделал с помощью этого сервиса —
Дальше мы должны обновить наш экран и выполнить нажатие на поле для ввода
Теперь мы должны запустить цикл, который будет работать,пока от пользователя мы не получим правильный пароль.
Компилируем в exe При запуске программы(F5) все будет работать, но распространять код и установщик питона, это явно не лучший вариант. Поэтому мы наш код скомпилируем в exe файл. Для этого мы через pip установить специальную программу. Смотрим видео.
После в папке dist появится наш код скомпилированный в EXE. У него есть 2 минуса
1. Большой вес, исправить можно удалив голосовое сообщение и заодно отключить импорт pygame.
2. Долгий запуск, это происходит из за сбора всех файлов в один. Наш exe можно назвать архивом, который распаковывается в временную папку. Этого можно избежать не собирая все в один файл.
. ВАЖНО если вы добавили голосовое сообщение и скомпилировали программу, файл с звуком(message.wav) должен лежать рядом с EXE иначе программа крашнется.
НЕБОЛЬШОЙ СЛОВАРЬ ТЕРМИНОВ:
IDLE/IDE — среда для разработки программного обеспечения.
Библиотека/модуль — написанные коды/функции,которые подключаются к нашей программе.
pip — система для установки пакетов(Для Python).
Переменная — ячейка в памяти,которая имеет свое уникальное название и может хранить определенную информацию
Функция — часть кода, который имеет свое уникальное название по которому его можно запустить/вызвать
Цикл — действие, которое будет повторятся N-ное количество раз и может зависит
Ядовитый питон. Пишем на Python простейшую малварь: локер, шифровальщик и вирус
Чаще всего Python применяют для создания бэкдоров в софте, чтобы загружать и исполнять любой код на зараженной машине. Так, в 2017 году сотрудники компании Dr.Web обнаружили Python.BackDoor.33, а 8 мая 2019 года был замечен Mac.BackDoor.Siggen.20. Другой троян — RAT Python крал пользовательские данные с зараженных устройств и использовал Telegram в качестве канала передачи данных.
Мы же создадим три демонстрационные программы: локер, который будет блокировать доступ к компьютеру, пока пользователь не введет правильный пароль, шифровальщик, который будет обходить директории и шифровать все лежащие в них файлы, а также вирус, который будет распространять свой код, заражая другие программы на Python.
Тема удаленного администрирования зараженных машин осталась за рамками этой статьи, однако ты можешь почерпнуть основу для кода со всеми объяснениями в статье «Reverse shell на Python».
Несмотря на то что наши творения не претендуют на сколько-нибудь высокий технический уровень, они в определенных условиях могут быть опасными. Поэтому предупреждаю, что за нарушение работы чужих компьютеров и уничтожение информации может последовать строгое наказание. Давай сразу договоримся: запускать все, что мы здесь описываем, ты будешь только на своей машине, да и то осторожно — чтобы случайно не зашифровать себе весь диск.
WARNING
Вся информация предоставлена исключительно в ознакомительных целях. Ни автор, ни редакция не несут ответственности за любой возможный вред, причиненный материалами данной статьи.
Настройка среды
Итак, первым делом нам, конечно, понадобится сам Python, причем третьей версии. Не буду детально расписывать, как его устанавливать, и сразу отправлю тебя скачивать бесплатную книгу «Укус питона» (PDF). В ней ты найдешь ответ на этот и многие другие вопросы, связанные с Python.
Дополнительно установим несколько модулей, которые будем использовать:
На этом с подготовительным этапом покончено, можно приступать к написанию кода.
Локер
Идея — создаем окно на полный экран и не даем пользователю закрыть его.
Теперь возьмемся за основную часть программы.
Здесь pyautogui.FAILSAFE = False — защита, которая активируется при перемещении курсора в верхний левый угол экрана. При ее срабатывании программа закрывается. Нам это не надо, поэтому вырубаем эту функцию.
Чтобы наш локер работал на любом мониторе с любым разрешением, считываем ширину и высоту экрана и по простой формуле вычисляем, куда будет попадать курсор, делаться клик и так далее. В нашем случае курсор попадает в центр экрана, то есть ширину и высоту мы делим на два. Паузу ( sleep ) добавим для того, чтобы пользователь мог ввести код для отмены.
Сейчас мы не блокировали ввод текста, но можно это сделать, и тогда пользователь никак от нас не избавится. Для этого напишем еще немного кода. Не советую делать это сразу. Сначала давай настроим программу, чтобы она выключалась при вводе пароля. Но код для блокирования клавиатуры и мыши выглядит вот так:
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Валерий Линьков
Дипломированный специалист Cisco, инструктор Cisco Networking Academy, основатель первой в Москве академии Cisco на базе предприятия, автор технических статей посвящённых национальной безопасности России, сисадмин, ИБшник, питонист, гик
Статья Пишем WinLocker на python | 2 часть
Приветствую всех, кто переписывал Винлокер! Это вторая часть, уверен никому не интересно за что отвечает каждая функция, поэтому весь код в конце, просто нажмите на него.
Окно для Вл
Создадим переменную для создания окна, название может быть совершенно любым.
screen=Tk()
Назовем наше окно.
screen.title(«WinLocker»)
Сделаем окно на весь экран, при надобности сделать меньше, пишите через height и width
screen.attributes(«-fullscreen»,True)
Сделаем задний фон, у меня будет черный, свой цвет можете сделать на сайте
screen.configure(background=»#000000″)
Конечный код
urText=Entry(screen,fg=»red»,justify=CENTER) — поле для ввода пароля.
unBlock=Button(screen,text=»ваш текст») — кнопка для разблокировки
text=Label(screen,text=»ваш текст, «,font=»Impact»,fg=»white»,bg=»#000000″) — текст для своей коронной надписи
text1=Label(screen,text=»ваш текст»,font = «Impact»,fg=»green»,bg=»#000000″) — текст для запугивания
tt=Label(text=time,font=»Calibri»,fg=»red»,bg=»#1c1c1c») — текст переменной time из первой части
ttt=Label(text=»ваш текст:»,fg=»white»,bg=»#000000″,font=»Calibri») — текст перед временем (time)
Теперь создадим для кнопки действие. В нашем случае — проверка пароля
but.bind(‘ ’,password_check)
Код
text.place(x=380,y=180) — при хотении переместить текст, просто измените числа на нужные
field.place(width=150,height=50,x=600,y=300)
but.place(width=150,height=50,x=600,y=380)
text1.place(x=410,y=250) — при хотении переместить текст, просто измените числа на нужные
ttt.place(x=20,y=70) — при хотении переместить текст, просто измените числа на нужные
tt.place(x=20,y=100) — при хотении переместить текст, просто измените числа на нужные
Программа
Сделаем бесконечный цикл для работы программы. он будет заключаться в том, что при неправильном пароле все будет обновляться, а по истечении времени.
[Вирусология] Пишем винлокер на Python
BeyondRedemption
Бывалый
BeyondRedemption
Бывалый
Мы с вами напишем локер для компьютера, на базе Windows или UNIX систем. Наша программа будет блокировать систему пользователя, пока он не введет пароль. В простонародье данный вирус называют «WinLocker».
. Скачиваем последнюю версию и устанавливаем ее.
Начинаем кодить.
Комментарии к коду будут помечены #комментарий
Но при запуске нам выдаст ошибку, указывающую на отсутствие библиотек pyautogui и pygame. Они не являются стандартными и их нужно установить. Для этого выполняем действия как на видео(через систему для установки пакетов мы ставим нужные нам библиотеки)
ДАЛЬШЕ МЫ ЗАДАДИМ ПЕРЕМЕННЫЕ, КОТОРЫЕ МЫ БУДЕМ ИСПОЛЬЗОВАТЬ
Почти в самом начале мы должны создать функции. Которые будут отвечать за блокировку компьютера и за проверку на ввод правильного пароля. Сначала создаем функцию блокировки компьютера.
Теперь мы создаем функцию, которая проверяет, введен ли правильный пароль.
Дальше мы должны создать окно нашего локера,которое откроется на весь экран.
Дальше мы должны обновить наш экран и выполнить нажатие на поле для ввода
Теперь мы должны запустить цикл, который будет работать,пока от пользователя мы не получим правильный пароль.
Компилируем в exe При запуске программы(F5) все будет работать, но распространять код и установщик питона, это явно не лучший вариант. Поэтому мы наш код скомпилируем в exe файл. Для этого мы через pip установить специальную программу. Смотрим видео.
После в папке dist появится наш код скомпилированный в EXE. У него есть 2 минуса
1. Большой вес, исправить можно удалив голосовое сообщение и заодно отключить импорт pygame.
2. Долгий запуск, это происходит из за сбора всех файлов в один. Наш exe можно назвать архивом, который распаковывается в временную папку. Этого можно избежать не собирая все в один файл.
. ВАЖНО если вы добавили голосовое сообщение и скомпилировали программу, файл с звуком(message.wav) должен лежать рядом с EXE иначе программа крашнется.
Написание WinLocker’а на Python
Внимание!
Данная статья была создана в познавательных целях! Автор не несёт ответственности за ваши незаконные действия и за вред причинённый вашему компьютеру. Помните, это не игрушка какая-то, это ВИНЛОКЕР! Автор настоятельно не рекомендует запускать программу, которая описана в этой статье без детального ознакомления с кодом.
Вступление
И всем привет братва, с вами я, Геймер Дисклеймер. Как вы думаете, чем я занимался 2 дня подряд? Нет, я не в доту рубился (и вам не советую, раз уж вы себя программистами называете). Я подготавливал материал для Хабра. А точнее, создавал винлокер. И нет, я его не скоммуниздил украл у кого-то, а сам создавал его с нуля. И сегодня я научу вас его создавать. И да, если вы дисклеймер так и не прочитали, то ни в коем случае не используйте этот код во вред другим! Ну ладно, без лишних слов, погнали!
Что нам нужно?
Для создания винлокера нам понадобится:
Сам Python, установить который вы сможете на официальном сайте
Текстовый редактор, в моём случае это будет S*****e Text, цензура для того, чтобы модерация не сочла это за пиар (фактически, вы сможете его написать хоть в простом блокноте)
Доступ к интернету для установки необходимых модулей в PyPI
Компьютер, работающий на ОС Windows
Хоть какое-то базовое познание Python
Чай с молоком, или в крайнем случае кофе
Приступаем к написанию
Ну что-же, раз мы убедились, что всё необходимое у нас есть, теперь можем начинать писать код.
Создаём файл main.py в любой директории
После этого открываем его в любом редакторе.
И начинаем писать наш волшебный код.
Установка и импорт модулей
Ах да. чуть не забыл. Надо нам еще окрыть командную строку (вводим Win + R, и пишем cmd
и попадаем в командную строку.
вводим туда pip install getpass3
И у нас происходит установка
Таким же образом вводим комманды pip install pyautogui и pip install playsound
Потом возвращаемся в наш файл, и пишем в нём слудующее:
Создание окна
После этого для удобства ставим отступ, и пишем вот такое
Тут мы присваиваем переменной USER_NAME имя нашего пользователя, в моём случае это просто User.
Потом вводим в наш файл такие истрочки, пояснение будет в комментариях
Для удобства, вот вам код, который вы должны скопировать:
Запуск, и проверка кода на работоспособность
Сохраняем файл. После сохранения заходим опять в консоль, переходим в нашу директорию, где расположен файл. Делается это так:
Моя директория C:/myFiles. Поэтому моя комманда будет выглядеть вот так
потом вводим вот такую строчку:
В результате у вас должно запуститься окно.
Круто! Но ведь это ещё далеко не винлокер.
Но до этого мы ещё не дошли. Сейчас Мы поговорим про адаптивность
Делаем окно адаптивным
Давайте сначало поговорим, зачем нам это вообще нужно. Я вам скажу. Не у всех же нормальный 1920×1080 мониторы. У меня самого монитор 1366×768. А у кого-то мониторы ещё меньше
И чтобы у некоторых людей текст не вылазил за пределы экрана, мы настроим адаптивность.
К сожалению, для меня этот код тоже был сложным, и мне пришлось его копировать с другого сайта.
ПРИМЕЧАНИЕ. Весь последующий код следует вставлять до строчки window.mainloop()
Опять-же вот вам весь код:
Сохраняем и проверяем. Если код не выдал ошибок, то идём дальше
Добавляем функции
Сохраняем, и запускаем. Вроде-бы ничего не изменилось. Так и должно быть! Ведь мы нигде не запускали наши функции. И запускать мы их пока-что не будем. Иначе будет очень плохо
Сохраняем его в директорию с нашим файлом. Если у файла название не sound.mp3, то переименовываем
Делаем апгрейд интерфейса
До этого момента у нас в окне выводился просто черный квадрат. Не вариант! Где вы видели такой винлокер?
Вводим вот эти строчки кода (опять-же, все обьясняю в комментариях):
ВНИМАНИЕ! ОКНО ЗАКРЫВАЕМ КОМБИНАЦИЕЙ КЛАВИШ ALT + F4
А ТАКЖЕ, КОД ОТ ВИНЛОКЕРА: petya
Запускаем и проверяем. Окно должно выглядеть вот так:
Если же нет, то вот вам весь код:
Убираем возможность закрытия окна путём Alt + F4
Мы с вами закрывали окно путём комбинации клавиш, упомянутой в заголовке.
Нам нужно это убрать. Для этого просто вводим перед строчкой window.mainloop() строку block()
Теперь от винлокера можно избавиться вводом кода.
КОД: petya
Убираем возможность снять винлокер путём закрытия командной строки
Особо внимательные читатели додумались закрывать винлокер обычного закрытия командной строки. Если вы меня не поняли, ничего страшного. Потом поймёте. нам нужно всего лишь к файлу main.py добавить w, чтобы получилось main.pyw
Исходный код
Вот и всё! Наш винлокер готов, вот вам весь исходный код файла:
.EXE файл
Заключение
Так что всем спасибо за то, что прочитали мою статью, а модерации спасибо, в случае, если моя статься попадёт на ленту.
Пишем локер для Windows на Python 3.x
Приветствую любителей питона. Как-то раз я невзначай сунул палец в ctypes. И знаете, мне понравилось. Особенно блок ввода с клавиатуры и мыши. И первое, что мне взбрело в голову,- «А почему бы не написать локер для винды на питоне, с разблокировкой по флешке, как ключом» (Не спрашивайте почему именно это, я сам не знаю). И тут пошло поехало моё воображение. Сейчас я распишу с чем вам придётся столкнуться для его написания.
Ну что ж, приступим!
Почему pyw? Да потому что при запуске локера вылезет консоль, которую потенциальный плохой дядя может закрыть, тогда и весь локер накроется, а оно нам не надо.
Импортируем библиотеки для locker.pyw
* hashlib нам нужен для сохранения ключа в хэш виде, так меньше шансов на лом (если вам это не нужно, можете не импортировать!)
* time просто для sleep()
* sys для красивого выхода exit()
* os для старта задачи части локера system()
* tkinter это и есть наша граф часть
* pyautogui для смещения мыши в угол (пусть подумает над свои поведением)
* threading для второго потока смещения мыши (чтобы не мешалась основному потоку)
Сделаем функцию смещения мыши в сторону, чтобы пользователь не успел никуда нажать.
screen_width, screen_height это размер вашего экрана
Теперь нужно вызвать Tk(), чтобы сделать граф начинку, а после и получить размеры этого самого экрана
Вот мы и получили размеры экрана, теперь можно и запускать поток
Теперь сделаем граф начинку
Теперь нужно как сделать локер ввода с клавиатуры и мыши.
Вот тут я сделал костыль.
Проблема в том, чтобы заблокировать ввод необходимы права администратора. Так как мы собираемся сделать работу в один клик, нажимать на выскакивающее окно «повышения прав» не очень хочется, поэтому воспользуемся тем что нам даёт сама windows. В windows есть очень полезная утилита «Планировщик заданий». Мы сделаем бесконечный цикл который будет проверять в определённом месте, определённое значение и решать, блокировать ввод или нет. А запускать мы его будет как раз из Планировщика заданий с наивысшими правами (При запуске скрипта в планировщике задач, не будет запрашиваться повышение прав, что нам и нужно ).
Нажмите «Создать задачу»
В поле «Имя» введите на свой каприз любое название (желательно слитно)
Снизу обязательно нажмите на галочку «Выполнить с наивысшими правами»
Всё, больше не трогаете вкладку «Общие»
Откройте вкладку «Триггеры»
Добавьте триггеры : «При входе в систему» и «Один раз (Однократно, повторять задачу каждые 1 минуту, в течении Бесконечно)«
Откройте вкладку «Действия»
Создайте действие «Запуск программы»
Создаём файл с бесконечным циклом про который мы говорили чуть выше. Назовём его input_block.pyw
Теперь сделаем lofu
Да, да я знаю что вы хотите сказать: «ФУУУУ ЮЗАЕШЬ ТУПА ФАЙЛ, КАК ТАК МОЖНО? ВСЕ ДАВНО ЛИБО ЛОКАЛЬНУЮ БД ЛИБО JSON ИСПОЛЬЗУЮТ! МУСОР!»
Вы конечно можете юзать json, sqlite3 и тд. Это не меняет сути. Как пример я просто использую файл. Всё!
Теперь нам нужно сделать из input_block.pyw >> input_block.exe
Для этого используем pyinstaller
Что? Нет pyinstaller?
Для полученного файла делаем ярлык и ставим ему флажок «Запускать от имени Администратора».
Возвращаемся к «Планировщику заданий» и в поле «Программа или сценарий» вводим адрес до ярлыка.
Возвращаемся к нашему locker.pyw
Отлично, а теперь осталось лишь доделать граф часть, блокировку и разблокировку
Тут уже на вкус, кому как нравится. Регулируйте задержки, текст
Всё, теперь нужно подумать об автостарте locker.pyw.
Можно через реестр, shell:startup, да даже через «Планировщик заданий».