Главная » Правописание слов » Как написать стиллер паролей на python

Слово Как написать стиллер паролей на python - однокоренные слова и морфемный разбор слова (приставка, корень, суффикс, окончание):


Морфемный разбор слова:

Однокоренные слова к слову:

Стиллер паролей на python с отправкой на почту

Стиллер паролей на python

Привет, сейчас будем делать стиллер паролей на ЯП python. Наш стиллер будет воровать пароли браузеров таких как хром, яндекс браузер, амиго, и др., их куки, делать скриншот экрана, узнавать айпи адрес пк на котором открыли стиллер, его место нахождение и его установленная система.

Приступим к делу

Создаем новый файл в IDLE Python или в другой IDE.

Подключаем все нужные библиотеки. В некоторых нужно в cmd скачивать модули.

Собираем с пользователя все его данные.

Собираем пароли с хрома.

Собираем куки с хрома.

Пароли с яндекс браузера.

Данные с FILEZILLA.

Делаем скриншот экрана.

Тут записываем наши тхт в один ZIP — doc.

Вот он наш ZIP по всеми данными.

Тут мы создаем вложение для нашего doc’а ZIP.

Здесь мы собственно производим отправку на емаил с помощью SMTP

Чтобы отправилось сообщение с вашей новой почты gmail нужно проделать это:
На странице «Аккаунт Google» откройте раздел Ненадежные приложения, у которых есть доступ к аккаунту, и включите. Тогда все будет ОК.

Открываете cmd консоль и пишете cd и путь к папке где лежит ваш файл с кодом, ентер.
cd и путь к файлу.

Ссылки

О песочнице

Это «Песочница» — раздел, в который попадают дебютные посты пользователей, желающих стать полноправными участниками сообщества.

Если у вас есть приглашение, отправьте его автору понравившейся публикации — тогда её смогут прочитать и обсудить все остальные пользователи Хабра.

Чтобы исключить предвзятость при оценке, все публикации анонимны, псевдонимы показываются случайным образом.

О модерации

Не надо пропускать:

Источник

Стиллер паролей на python с отправкой на почту

Стиллер паролей на python

Привет, сейчас будем делать стиллер паролей на ЯП python. Наш стиллер будет воровать пароли браузеров таких как хром, яндекс браузер, амиго, и др., их куки, делать скриншот экрана, узнавать айпи адрес пк на котором открыли стиллер, его место нахождение и его установленная система.

Приступим к делу

Создаем новый файл в IDLE Python или в другой IDE.

Подключаем все нужные библиотеки. В некоторых нужно в cmd скачивать модули.

Собираем с пользователя все его данные.

Собираем пароли с хрома.

Собираем куки с хрома.

Пароли с яндекс браузера.

Данные с FILEZILLA.

Делаем скриншот экрана.

Тут записываем наши тхт в один ZIP — doc.

Вот он наш ZIP по всеми данными.

Тут мы создаем вложение для нашего doc’а ZIP.

Здесь мы собственно производим отправку на емаил с помощью SMTP

Чтобы отправилось сообщение с вашей новой почты gmail нужно проделать это:
На странице «Аккаунт Google» откройте раздел Ненадежные приложения, у которых есть доступ к аккаунту, и включите. Тогда все будет ОК.

Открываете cmd консоль и пишете cd и путь к папке где лежит ваш файл с кодом, ентер.
cd и путь к файлу.

Ссылки

About the sandbox

This is the Sandbox — the part of Habr that accumulates all the debut posts of those who want to become full members of the community.

If you have an invitation send it to the author of the pending publication you like in order to share the post with the rest of Habr community so they can read and comment it.

To avoid any prejudice all the posts here are anonymous and nicknames are generated randomly.

About post’s verification

Don’t pass such stuff:

Источник

Крадущийся питон. Создаем простейший троян на Python

Содержание статьи

Ко­неч­но, при­веден­ные в статье скрип­ты никак не годят­ся для исполь­зования в боевых усло­виях: обфуска­ции в них нет, прин­ципы работы прос­ты как пал­ка, а вре­донос­ные фун­кции отсутс­тву­ют нап­рочь. Тем не менее при некото­рой сме­кал­ке их воз­можно исполь­зовать для нес­ложных пакос­тей — нап­ример, вырубить чей‑нибудь компь­ютер в клас­се (или в офи­се, если в клас­се ты не наиг­рался).

Теория

Итак, что вооб­ще такое тро­ян? Вирус — это прог­рамма, глав­ная задача которой — самоко­пиро­вание. Червь активно рас­простра­няет­ся по сети (типич­ный при­мер — «Петя» и WannaCry), а тро­ян — скры­тая вре­донос­ная прог­рамма, которая мас­киру­ется под «хороший» софт.

Ло­гика подоб­ного зараже­ния в том, что поль­зователь сам ска­чает себе вре­донос на компь­ютер (нап­ример, под видом кряк­нутой прог­раммы), сам отклю­чит защит­ные механиз­мы (ведь прог­рамма выг­лядит хорошей) и захочет оста­вить надол­го. Хакеры и тут не дрем­лют, так что в новос­тях то и дело мель­кают сооб­щения о новых жер­твах пират­ско­го ПО и о шиф­роваль­щиках, поража­ющих любите­лей халявы. Но мы‑то зна­ем, что бес­плат­ный сыр быва­ет толь­ко в мусор­ке, и сегод­ня научим­ся очень прос­то начинять тот самый сыр чем‑то не впол­не ожи­даемым.

warning

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

Определяем IP

Сна­чала нам (то есть нашему тро­яну) нуж­но опре­делить­ся, где он ока­зал­ся. Важ­ная часть тво­ей информа­ции — IP-адрес, по которо­му с заражен­ной машиной мож­но будет соеди­нить­ся в даль­нейшем.

Нач­нем писать код. Сра­зу импорти­руем биб­лиоте­ки:

Ес­ли ты видишь ошиб­ку, что у тебя отсутс­тву­ет pip, сна­чала нуж­но уста­новить его с сай­та pypi.org. Любопыт­но, что рекомен­дуемый спо­соб уста­нов­ки pip — через pip, что, конеч­но, очень полез­но, ког­да его нет.

Код получе­ния внеш­него и внут­ренне­го адре­сов будет таким. Обра­ти вни­мание, что, если у жер­твы нес­коль­ко сетевых интерфей­сов (нап­ример, Wi-Fi и Ethernet одновре­мен­но), этот код может вес­ти себя неп­равиль­но.

Ес­ли с локаль­ным адре­сом все более‑менее прос­то — находим имя устрой­ства в сети и смот­рим IP по име­ни устрой­ства, — то вот с пуб­личным IP все нем­ного слож­нее.

Вы­вес­ти информа­цию еще про­ще:

Стро­ковые литера­лы не толь­ко хорошо смот­рятся в коде, но и помога­ют избе­гать оши­бок типа сло­жения строк и чисел (Python — это тебе на JavaScript!).

Источник

Собираем пароли Chrome и отправляем в Telegram. Простейший стилер на Rust

Мы уже рассказывали о написании стилера паролей на C и делали кейлогер и RAT своими руками. С тех пор многое изменилось, например в Chrome появилось шифрование паролей, а многие злоумышленники не стесняются использовать Telegram для сбора ворованных данных. Сегодня я покажу в деталях как написать простейший стилер паролей от Chrome с отправкой в «телегу» на языке Rust. Почему Rust? Это очень перспективный язык, по синтаксису и скорости выполнения кода очень похожий на C. Поэтому для тех, кто имел дело с C освоить Rust не составит труда. Rust, на ряду с С горяче любим создателями различной малвари. И, хотя, C остаётся «олдскульным» выбором, разработка Rust не стоит на месте и некоторые считают, что за ним будущее.

Качаем и устанавливаем Rust

Стилер будет работать из под винды, соответвенно предполагается что ваша среда разработки Windows.

Поэтому начнем с установки Rust для Windows. Сделать это довольно просто, качаем exe отсюда: https://www.rust-lang.org/tools/install

Открываем Windows PowerShell и переходим в терминале на наш Рабочий стол командой:

Если проект необходимо создать в другой папке, а не на рабочем столе, зайдите через PowerShell куда вам необходимо, это не принципиально.

Теперь создаем проект с помощью пакетного менеджера cargo, пишем в терминале:

*strl_chrm_password_rust — название проекта, ваше название может быть другим.

Папка strl_chrm_password_rust должна была появиться на рабочем столе.

Открываем Visual Studio Code (или любой другой удобный редактор) и папку которую только что создали.

Если всё ок, вы увидите следующую структуру:

Открываем терминал в VS Code: CTRL + SHIFT + ` (` — возле клавиши 1, вверху)

Проверим если всё работает выполнив команду:

Если всё ок, в папке проекта появится папка target, а результатом будет выполнение программы из файла src/main.rs, а именно вывод строки “Hello, world!”.

Собираем данные о пользовате

Начнём с того, что соберём данные о пользователе — его ип, юзернейм, имя хост-машины.

Открываем файл main.rs и приступаем.

Для начала создадим необходимые структуру пользователя с опеределением типов:

Теперь наш main.rs должен выглядить примерно так:

В Rust в качестве подключаемых библиотек используются «крейты» от слова crate, ящик. Бывает два типа крейтов: библиотечный и исполняемый. Библиотечные крейты можно подключать в другие крейты, но нельзя исполнять. Исполняемые же крейты — полная противоположность библиотечным — могут исполняться, но их нельзя подключить в другие крейты. Для того, чтобы определить имя хоста и юзернейм воспользуемся крейтом whoami.

Установить крейт можно благодаря уже знакомому нам пакетному менеджеру cargo.

Добавим зависимость в файл Cargo.toml и при следующей сборке зависимость автоматически подтянется.

В файл Cargo.toml в dependencies:

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

Для этого в функции main вместо:

В самый верх файла main.rs добавляем:

В итоге теперь наш main.rs должен выглядить следующим образом:

Теперь вместо «Hello, world!» у нас должно отобразиться имя пользователя и хоста.

С этим разобрались, теперь необходимо определить ip. Для этого будем использовать get запрос на httpbin тчк org/ip

Формат ответа у нас будет приходить в json в следующем формате:

Поэтому подготовим структуру для такого ответа:

Добавляем структуру Ip куда-нибудь под структуру User.

Напишем саму функцию, которая поможет нам получить ip.

Т.к. IP мы будем десеарилизовывать при ответе, нам необходимо добавить derive аттрибут из крейта serde — Deserialize к структуре Ip.

Так же мы будем делать запросы, в этом нам поможет крейт ureq.

Для этого в Cargo.toml добавляем новые зависимости под/над whoami:

В самый верх main.rs добавляем:

Теперь к скрутуре Ip можем добавить Deserialize, делаем это таким образом:

Имплементируем структуре User следущую логику:

Ну и давайте снова все проверим, в вывод строки добавим ип:

Теперь в терминале, помимо имени пользователя и хоста должно появиться ещё и значение ip.

Таким образом теперь наш main.rs должен выглядеть примерно так:

Готовим структуру для данных Chrome

С информацией о пользователе мы разобрались. Теперь давайте приступим к основной части, а именно попробуем вытащить сохраненные в Chrome пароли.

Для начала сделаем структуру и разместим её под стурктурой Ip:

Ну и сразу же давайте подготовим блок для имлементации функций типу Chrome, по аналогии как с User, добавляем:

Первое, что нам необходимо будет сделать, это как-то взаимодействовать с файловой системой. Поэтому снова добавим зависимость в наш Cargo.toml:

Этот крейт поможет определить нужные нам пути.

Как обычно добавляем вверху файла main.rs:

Также из стандартной библиотеки нам понадобится PathBuf:

Записываем в таком формате, т.к. список зависимостей из стандартной библиотеки еще будет расширяться.

Ищем локальную БД Chrome и работаем с файлом

И так, теперь давайте приступим к самим паролям. Пароли хрома хранятся в файле Login Data, который обычно находится по такому пути — C:\Users\USERNAME\AppData\Local\Google\Chrome\User Data\Default

Login Data – это самая простая sqlite БД, отсюда нам и необходимо вытащить сокровенное.

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

Для этого вверху файла main.rs немного расширим используемые нами модули из стандартной библиотеки, добавим к path::PathBuf еще fs, для работы с файловой системой:

Для того, что бы определить папку нашего пользователя воспользуемся библиотекой platform_dirs которую мы ранее добавили. И сразу же найдем файл с БД.

В блоке impl Chrome добавим функцию:

Аргумент open мы передадим уже из функции, которая поможет найти и переместить наш файл.

Теперь мы можем найти наш файл с БД и давайте сразу перенесем его куда-нибудь, чтоб не получилось так, что в момент обращения к БД она будет локнута. Так же в блок impl Chrome добавим функцию find_db:

В переменной local_sqlite_path мы сразу передаем аргументом то, что нам надо найти, а именно: Google\\Chrome\\User Data\\Default\\Login Data, а там уже наша библиотека path_dirs сама определит у какого пользователя искать.

Отлично, теперь у нас есть функции которые определят папку пользователя, найдут и переместят наш файл с БД.

Снова давайте проверим, если всё работает как надо, в main.rs добавим:

Открываем C:\Users\USERNAME\AppData\Local и смотрим, у нас появился файл с именем sqlite_file, значит всё ок.

Наш main.rs постепенно приобретает вид:

Подключение к БД и попытка вытащить информацию

Файл с БД мы нашли и переместили куда нам надо, теперь давайте подключимся к самой БД и посмотрим что там.

Для работы с БД, воспользуемся крейтом rusqlite.

Возвращаемся к нашему файлу Cargo.toml и под блок dependencies, отдельно добавим rusqlite таким образом:

Объяснять почему именно так не буду, если кому интересно, почему с этим пакетом так, то загуглите — «How to build rusqlite on Windows».

Теперь Cargo.toml должен выглядить примерно так:

В main.rs так же как обычно наверх добавляем нашу новую зависимость:

Теперь давайте попобуем вытащить данные из нашего файла с БД, напишем функцию obtain_data_from_db и там же попробуем использовать нашу ранее написанную функцию find_db. Все так же, добавляем функцию в блок imlp Chrome:

В переменной conn, мы аргументом в open передаем файл БД sqlite который мы нашли и переместели ранее с помощью find_db.

Далее пишем простой SQL запрос, который вытащит все, что нам надо из таблицы logins.

Ну и с помощью query_map создаем структуры Chrome и всё это помещаем в вектор, отдав результат.

Как обычно проверяем, в функции main вместо:

И над структурой Chrome, добавим derive Debug, теперь она будет выглядить так:

Скрестим пальцы и надеемся, что сейчас всё выведет в терминал:

Но мимо нас пролетает розовая птица обломинго, что-то не так с типом пароль:

У нас в структуре password это String. Ну ок, давайте себя немного успокоим, мы то знаем, что пароль зашифрован и так совершенно другой тип(Vec ), к этому мы вернемся чуть позже, а так то всё работает?

Давайте в нашей функции obtain_data_from_db, где создается стуктура Chrome попробуем паролю поставить row1, вместо row2.

Где password ставим row.get(1)?, теперь так:

Вот теперь то, что надо, только вместо пароля логин. Хорошо, с этим мы разберемся позже, давайте посмотрим на наш main.rs и пойдем дальше:

Расшифровываем пароль

И так, мы знаем что наш пароль в БД зашифрован.

Вдаваться в подробности я сильно не буду, лишь кратко скажу, что используется AEAD-режим блочного шифрования. Можно загуглить, если интересно.

Первое что необходимо — это вытащить ключ хрома, ну и второе — собственно расшифровать сам пароль.

Как я уже сказал, в детали углубляться не будем, кратко:

1. Вытаскиваем файл Local State

2. Находим там ключ

3. Декодируем его, с помощью winapi расшифровываем и на выходе получаем нужный вектор с байтами. (подробнее тут: docs тчк microsoft тчк com/ru-ru/windows/win32/api/dpapi/nf-dpapi-cryptunprotectdata)

Для всех этих манипуляций нам будет необходим крейт winapi и base64, поэтому в Cargo.toml добавляем:

В main.rs, как обычно наверх добавим:

Так же немного расширим использование стандартной библиотеки, вместо:

Теперь напишем саму функцию получения ключа, в наш блок impl Chrome, под функцию local_app_data_folder добавим:

Проверяем, в функцию main добавим под println!(«<:?>», res.unwrap()):

Запускаем. Уже помнишь как?

Теперь в терминале под вектором из Chrome стуктур должен появится еще и вектор байтов, значит всё ок.

Строку println!(«<:?>», res) из chrome_saved_key теперь можно убрать.

Сейчас main.rs должен выглядеть примерно так:

Ключ мы вытащили, теперь давайте расшифруем сам пароль, который есть в БД.

Для расшифровки пароля нам потребуется крейт aes_gcm.

В Cargo.toml добавим:

Теперь он выглядит вот так:

Как обычно добавим зависимости вверх main.rs:

В блоке impl Chrome в самый низ добавим функцию decrypt_password, входным аргументом будет собственно сам зашифрованный пароль из БД:

Теперь вернемся в функцию obtain_data_from_db и вспомним, как мы вместо пароля ставили логин, теперь попробуем воспользоваться нашей новой функцией расшифровки пароля.

А теперь запускаем:

Хех, теперь у нас есть вектор из Chrome структур с полным набором данных.

Наш main.rs теперь должен иметь следующий вид:

Отправляем полученные данные в телеграм

Пароли мы вытащили, теперь давайте разберемся, что с ними делать. А давайте отправим себе в телеграм, можно придумать и что-то другое, но пусть в данном случае будет творение Дурова.

И так, в нашей функции main стираем всё, что мы ранее писали:

Под ней напишем функцию grabber, которая очень некрасивым кодом превратит все данные в красивую строку:

В main вызваем собственно фунцию grabber:

Добавляем последнию зависимость в Cargo.toml:

Финальная версия Cargo.toml:

Она поможет нам отправить сообщение в телеграм.

Под let res = grabber() добавим в функции main:

Значение токена и chat_id, понятное дело, должно быть ваше.

Если токен и chat_id верные, то в телеграм должно прийти, что-то вроде:

Где поля конечно же не должны быть пустыми.

И так, финальная версия нашего main.rs:

Наконец давайте соберем наш бинарник.

В терминале выполняем cargo run, только с флагом release:

Если всё удачно скомпилировалось, то в папке target/release появится файл strl_chrm_password_rust.exe

Отправляем файл другу — все его пароли у нас. Перенаправьте ему сообщение с паролями и скажите ему чтоб больше так не делал, а заодно сменил все пароли.

Загрузим наш бинарник на вирустотал. В Багдаде всё спокойно (пока).

Получим несколько сообщений от ботов с вирустотал(или нет) в телеграм и удаляем всю папку strl_chrm_password_rust и забываем обо всём.

Совсем не сложно, правда? Конечно же функционал можно доработать, например, добавить кейлогер. И сделать это совсем не сложно.

Админ сайта. Публикует интересные статьи с других ресурсов, либо их переводы. Если есть настроение, бывает, что пишет и что-то своё.

Комментарии

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

Добавить комментарий Отменить ответ

Python в ИБ. Часть 3. Основы работы с библиотекой pwntools.

Хочешь написать свой эксплоит? Ты на верном пути. В этом уроке мы рассмотрим специализированную библиотеку для сетевого.

Шифруем свои файлы удалённо через телеграм. Python 3.8

Я уже давно перестал доверять Дурову и его детищу. Слишком много слухов и подозрений витает вокруг. Тем не менее.

Учимся писать JS снифер. Теория и практика для самых маленьких. Часть 2

Наверняка ты не раз слышал о том, что злоумышленники похищают персональные данные форм со взломанных ими ресурсов.

Python в ИБ. Часть 5. Создаём брутфорсер формы

Сегодня мы научимся писать скрипт для брута формы авторизации. Брутить будем форму авторизации, созданную в сервере.

Введение в PEDA и Pwntools. Часть 1

В этой тстатье поёдет разговор про PEDA. Нет, не про тех «педа», не, пугайтесь, а про Python Exploit.

Пациент, укольчик. Фреймворк для автоматизации поиска SQL инъекций на Python

В этой статье мы объясним, что такое SQL-инъекция, опишем некоторые распространенные примеры, объясним, как найти и.

Введение в PEDA и Pwntools. Часть 2

Продолжим наше знакомство с необходимым инструментарием.. Pwntools Pwntools — это python библиотека позволяющая.

Python в ИБ. Часть 8. Парсинг и обработка данных

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

Стеганография 2020: вещь в себе. Прячем иголку в стоге сена.

В наше время шифрование является краеугольным камнем цифровой безопасности и использование его стойких методов отличный.

Python в ИБ. Часть 4. Создаём продвинутый TCP-сервер

Этот урок будет посвящён созданию более продвинутого и функционального TCP-сервера. Создание базового сервера было в.

Пишем снифер формы для самых маленьких

Предположим, ты заинтересовался, как прочесть информацию из форм передавамых на каком то сайте, но ты не понимаешь.

Пишем 3 SMS бомбера на Python 3.8

Идеальных людей нет, как нет и идеальных сервисов в интернете. В этой статье мы рассмотрим проблемы с известными.

Источник

Теперь вы знаете какие однокоренные слова подходят к слову Как написать стиллер паролей на python, а так же какой у него корень, приставка, суффикс и окончание. Вы можете дополнить список однокоренных слов к слову "Как написать стиллер паролей на python", предложив свой вариант в комментариях ниже, а также выразить свое несогласие проведенным с морфемным разбором.

Какие вы еще знаете однокоренные слова к слову Как написать стиллер паролей на python:



Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *