• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Статья Имитация взлома или как обманывают во Вконтакте

Попросил меня мой хороший товарищ, написать такую программу, которая будет менять вёрстку в браузере на лету, дабы похвастаться перед друзьями сколько много у него денег на счету или обмануть каких - нибудь людей "взломом вк".

Казалось бы, "Да чё нам стоит - дом построить", залез в исходный код элемента, нажал редактировать элемент, поменял в вёрстке на нужный элемент. Профит. Дело это, конечно, хорошее, но беда в том, что ничего из этого не выйдет и после перезагрузки страницы наш счет вернется на прежний. Что же давайте это поправим....

Итак, пишем собственного бота для работы со стороннем браузером на C# или прокси сервер.

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

Поехали.

Открываем Visual Studio, создаем консольный проект. А далее устанавливаем следующий пакет.
Код:
Install-Package Titanium.Web.Proxy

Как это сделать?

Открываем Консоль диспетчера пакетов
upload_2016-12-30_0-18-34.png


И в окне вводим команду выше.

А далее всё просто. Пишем следующий код.

Код:
using System;
using System.Net;
using System.Threading.Tasks;
using Titanium.Web.Proxy;
using Titanium.Web.Proxy.EventArguments;
using Titanium.Web.Proxy.Models;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            ProxyServer proxy = new ProxyServer();

            proxy.TrustRootCertificate = true;
            proxy.BeforeRequest -= OnRequest; // Подписываем методы запрос
            proxy.BeforeResponse -= OnResponse; // Подписываем методы ответа
            proxy.ServerCertificateValidationCallback -= OnCertificateValidation; // Получени сертификата для SSL
            proxy.ClientCertificateSelectionCallback -= OnCertificateSelection;

           // Создаем точки входа и исключения
            ExplicitProxyEndPoint explicitEndPoint = new ExplicitProxyEndPoint(IPAddress.Any, 8000, true);
            proxy.AddEndPoint(explicitEndPoint);
            proxy.Start();

            var transparentEndPoint = new TransparentProxyEndPoint(IPAddress.Any, 8001, true)
            {
                GenericCertificateName = "google.com"
            };

            proxy.AddEndPoint(transparentEndPoint);

            foreach (ProxyEndPoint endPoint in proxy.ProxyEndPoints)
                Console.WriteLine("Listening on '{0}' endpoint at Ip {1} and port: {2} ",
                    endPoint.GetType().Name, endPoint.IpAddress, endPoint.Port);

            // Устанавливаем прокси
            proxy.SetAsSystemHttpProxy(explicitEndPoint);
            proxy.SetAsSystemHttpsProxy(explicitEndPoint);

            Console.Read();

            proxy.BeforeRequest -= OnRequest;
            proxy.BeforeResponse -= OnResponse;
            proxy.ServerCertificateValidationCallback -= OnCertificateValidation;
            proxy.ClientCertificateSelectionCallback -= OnCertificateSelection;
            proxy.Stop();
        }

        public static async Task OnRequest(object sender, SessionEventArgs e)
        {
            Console.WriteLine(e.WebSession.Request.Url);

            requestHeaders = e.WebSession.Request.RequestHeaders;

            var method = e.WebSession.Request.Method.ToUpper();
            if ((method == "POST"))
            {
                byte[] bodyBytes = await e.GetRequestBody();
                await e.SetRequestBody(bodyBytes);
                string bodyString = await e.GetRequestBodyAsString();
                await e.SetRequestBodyString(bodyString);
            }
        }

        public static async Task OnResponse(object sender, SessionEventArgs e)
        {
            var responseHeaders = e.WebSession.Response.ResponseHeaders;
            if (e.WebSession.Request.Method == "GET" || e.WebSession.Request.Method == "POST")
            {
                // Если всё ок возвращаем ответ
                if (e.WebSession.Response.ResponseStatusCode == "200")
                {
                    if (e.WebSession.Response.ContentType != null && e.WebSession.Response.ContentType.Trim().ToLower().Contains("text/html"))
                    {
                        byte[] bodyBytes = await e.GetResponseBody();
                        await e.SetResponseBody(bodyBytes);
                        // если запрашиваем вконтакте
                        if (e.WebSession.Request.Url.Contains("vk.com"))
                        {
                            //то изменяем верстку
                            string body = e.GetResponseBodyAsString();
                            await e.SetResponseBodyString(body.Replace(@"<span class=""current_text"">W.E.L.C.O.M.E..</span>", @"<span class=""current_text"">Специально для Codeby</span>"));
                        }
                        else
                        {
                            string body = await e.GetResponseBodyAsString();
                            await e.SetResponseBodyString(body);
                        }
                    }
                }
            }
        }

        public static Task OnCertificateValidation(object sender, CertificateValidationEventArgs e)
        {
            if (e.SslPolicyErrors = System.Net.Security.SslPolicyErrors.None)
                e.IsValid = true;

            return Task.FromResult(0);
        }

        public static Task OnCertificateSelection(object sender, CertificateSelectionEventArgs e)
        {
            return Task.FromResult(0);
        }
    }
}

Меня просили пилить видосики к статьям, вот Вам видосик.

 

<~DarkNode~>

~^M1st3r_Bert0ni^~
Platinum
19.10.2016
722
3 099
BIT
0
Вот так вот и разводят вас на покупку яко бы "взлома голосов вконтакте" и всего что можно изменить визуально на странице )))
Автору спасибо)
 
Последнее редактирование:
  • Нравится
Реакции: ghostphisher и BaJIepraH
G

German

Вот так вот и разводят вас на покупку якобы "взлома голосов вконтакте" и все го что можно изменить визуально на странице )))
Автору спасибо)

А другие за такие скрипты бабло дерут со школоты и ботнетом заражают )
***Скрытый текст***
Как бы валлпапер рабочего стола получить?

Я даже не знаю зачем и как использовать информацию выше.
 

z3RoTooL

Grey Team
28.02.2016
803
696
BIT
7
Вот так вот и разводят вас на покупку якобы "взлома голосов вконтакте" и все го что можно изменить визуально на странице )))
Автору спасибо)

А другие за такие скрипты бабло дерут со школоты и ботнетом заражают )
***Скрытый текст***
ну зачем ты этого ушлёпка сюда запостил )))))
 
  • Нравится
Реакции: m0tion
B

BaJIepraH

Вот так вот и разводят вас на покупку якобы "взлома голосов вконтакте" и все го что можно изменить визуально на странице )))
Автору спасибо)

А другие за такие скрипты бабло дерут со школоты и ботнетом заражают )
***Скрытый текст***
это что за обморок?зачем он ведет видеоблог?
 

SooLFaa

Platinum
15.07.2016
898
1 559
BIT
18
Как бы валлпапер рабочего стола получить?

Я даже не знаю зачем и как использовать информацию выше.
Это собственный прокси - сервер. Зачем использовать прокси - сервер?! Ты можешь через себя прогонять весь свой (и не только свой) трафик и видоизменять его как хочешь. Самый простой сценарий это писать фейковые взломщики вк, которые будут выглядеть более чем правдободонным, можешь прикручивать любой процессинг, подменять SSL, писать ботов, да что хочешь. В умелых руках это действительно сильное оружие. А если у тебя еще и белый ip, можешь вообще под своей собственной проксёй ходить, откуда угодно.
 
Последнее редактирование:

<~DarkNode~>

~^M1st3r_Bert0ni^~
Platinum
19.10.2016
722
3 099
BIT
0
это что за обморок?зачем он ведет видеоблог?
Очередной герой школьных хекеров...
Для чего ведет видеоблог - скорее всего как и большинствр видеоблогеров - для заработка,для рекламы своих програмулек,для распространенние по (Вредоносного или нет,пока хз).
 

SooLFaa

Platinum
15.07.2016
898
1 559
BIT
18
Очередной герой школьных хекеров...
Для чего ведет видеоблог - скорее всего как и большинствр видеоблогеров - для заработка,для рекламы своих програмулек,для распространенние по (Вредоносного или нет,пока хз).
ХЗ, мне кажется, он такое не напишет.
 
B

bitlord

Изи ошибки исправить) Всё компилиться, но не работает, проверял на мозилле
В настройках прокси браузера что ставить? использовать системные настройки прокси?
 

SooLFaa

Platinum
15.07.2016
898
1 559
BIT
18
Изи ошибки исправить) Всё компилиться, но не работает, проверял на мозилле
В настройках прокси браузера что ставить? использовать системные настройки прокси?
Значит, что то не так исправил.

Пришли мне код в лс, только христа ради не через кодеби. Меня раздражает покраска кода на форуме. Пости через pastebin и желательно приват.

UPDATE: Прокси ставится автоматический, ничего ставить самому не нужно.
 
  • Нравится
Реакции: bitlord

[?]

Green Team
27.12.2016
15
9
BIT
0
Значит, что то не так исправил.
Что-то не так исправить проблемно, так как ты код на видео засветил ) Присоединюсь, что не работает. По началу думал, что проблема в портативном браузере, но оказалось, что нет и на заинсталеном работать не желает. Реализация интересная и про библу не слышал такую. Однозначный плюс за труды.
 

SooLFaa

Platinum
15.07.2016
898
1 559
BIT
18
Что-то не так исправить проблемно, так как ты код на видео засветил ) Присоединюсь, что не работает. По началу думал, что проблема в портативном браузере, но оказалось, что нет и на заинсталеном работать не желает. Реализация интересная и про библу не слышал такую. Однозначный плюс за труды.
Пришли мне исправленный код в ЛС. Тольтко аналогично на pastebin. Предыдущий клиент исправил не до конца.
 
M

m0tion

Очередной герой школьных хекеров...
Для чего ведет видеоблог - скорее всего как и большинствр видеоблогеров - для заработка,для рекламы своих програмулек,для распространенние по (Вредоносного или нет,пока хз).
ХЗ, мне кажется, он такое не напишет.
Приятного просмотра.
 

SooLFaa

Platinum
15.07.2016
898
1 559
BIT
18
Приятного просмотра.
Это что за туфту ты мне пытаешься впарить?
Код в студию, я на него взгляну и тогда поговорим. Пока не убедил, что этот клоун способен на что - то большее чем веселить знающих людей и поражать школоту своими псевдо "скиллами".
 

SooLFaa

Platinum
15.07.2016
898
1 559
BIT
18
Ещё одно доказательство, что Mr. Alex кидок и мошенник.
p.s. сорцы по ссылке в описании.
p.s.2 к этой теме(прокси серверу) не имеет никакого отношения
Аааа, Я думал ты наоборот его защищаешь. Лапа..На видосе не сорцы, точнее сорцы декомпилированного билда msil.
 
C

cutoff

еще один способ - написать расширение для браузера
 

SooLFaa

Platinum
15.07.2016
898
1 559
BIT
18
еще один способ - написать расширение для браузера
А как ты его запустишь? И будешь контролить траффик и видоизменять его?

UPDATE: А главное как это будет работать во всех браузерах.
 
Последнее редактирование:
C

cutoff

А как ты его запустишь? И будешь контролить траффик и видоизменять его?

UPDATE: А главное как это будет работать во всех браузерах.

API расширений несильно отличаются друг от друга, и в основном отличия есть у firefox, но в целом для таких нужд их практически нет, все взаимодействие идет через JS код, манипулированием DOM, что в разы мощнее, чем простая замена текста в запросе, установка - через настройки браузера или стор приложений, вопрос доставки - это уже другой вопрос). Плюсы: кроссплатформенность, работать будет на любом современном браузере, возможность выполнять некоторые действия от лица пользователя, не нужно заморачиваться с сертификатами для ssl и системными прокси, минусы: может быть задержка в обработке сложной логики при переходах в SPA приложениях) а в случае с прокси кстати в SPA ничего вообще не будет работать
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!