Атака Man-In-The-Middle на PokerStars (перехват ssl трафика покерного клиента)

Discussion in 'Песочница' started by justcoolgeo, 2 Jun 2015.

  1. justcoolgeo

    justcoolgeo New Member

    Joined:
    2 Jun 2015
    Messages:
    10
    Likes Received:
    1
    Reputations:
    0

    Клиент PokerStars работает через tcp.
    И конечно могут быть вшиты настройки проверки валидности сертификата.
    Тогда прийдется декомпилировать клиента, искать функции которые используют API для работы с SSL или с сертификатами, и перехватывать их...
    Конечно это будет немного геморно :)
     
  2. BabaDook

    BabaDook Well-Known Member

    Joined:
    9 May 2015
    Messages:
    1,066
    Likes Received:
    1,565
    Reputations:
    40
    То что вы задумали не очень то и легко. Можно узнать ваш план осуществление. Допустим я жертва, ваши действия?!
     
  3. frank

    frank Member

    Joined:
    8 May 2015
    Messages:
    200
    Likes Received:
    95
    Reputations:
    28
    В помощь justcoolgeo в ответе тебе, сложно когда задача с анализим чужого трафика... а так, если поснифить от себя это опыт в настройке, развертывании на своем стенде, перехвате и анализе трафика, возможно даже и реверс :) Короче скилы себе прокачать тоже норм задачка :)
     
  4. ZodiaX

    ZodiaX Reservists Of Antichat

    Joined:
    7 May 2009
    Messages:
    533
    Likes Received:
    308
    Reputations:
    51
    Не совсем так, жертва в данном случае клиент PokerStar установленный у себя же:)
    Цель я так понимаю разобраться какие параметры он передает на сервер и попытаться ими манипулировать.
     
    frank likes this.
  5. BabaDook

    BabaDook Well-Known Member

    Joined:
    9 May 2015
    Messages:
    1,066
    Likes Received:
    1,565
    Reputations:
    40
    В научных целях самое то. Поддерживаю такую идею. Или мир изменился, или я что-то перестал его понимать. Всё, начинаю спать по ночам со следующей недели
     
    frank likes this.
  6. Партнёр

    Joined:
    7 Sep 2010
    Messages:
    224
    Likes Received:
    67
    Reputations:
    1
    Или коспирация;)
     
  7. justcoolgeo

    justcoolgeo New Member

    Joined:
    2 Jun 2015
    Messages:
    10
    Likes Received:
    1
    Reputations:
    0
    Уважаемый frank, просто проснифить трафик в данном случае не поможет т.к. трафик зашифрован (SSL)
     
  8. frank

    frank Member

    Joined:
    8 May 2015
    Messages:
    200
    Likes Received:
    95
    Reputations:
    28
    Там что, двусторонний SSL? Сильно сомневаюсь. А значит есть открытый трафик в виде обмена hello пакетами и первичного сертификата от сервера, вот его поля и серт вы можете изучить.
    Дальше уже идет шифрованный трафик...
     
    justcoolgeo likes this.
  9. justcoolgeo

    justcoolgeo New Member

    Joined:
    2 Jun 2015
    Messages:
    10
    Likes Received:
    1
    Reputations:
    0
    Уважаемый BabaDook, план таков:
    Если проверки сертификата в клиенте pokerStars нет - то можно перехватить трафик и парсить его налету.
    Если защита всё же есть, то прийдется заняться реверс-инженеренгом (крэкингом).
    Нужно будет декомпилировать клиент pokerStars, найти функцию(и) которые осуществляют эту проверку (защиту).
    Потом или пропатчить клиента OllyDbg-ром или написать библиотеку (dll) с перехватом и модификацией этой(х) функции(й),
    которую нужно будет заинжектить в процесс клиента pokerStars.

    Чтобы использовать OllyDbg - нужно очень хорошо знать assembler (я его практически не знаю :))
    Перехват функций с инжектом dll - нужно знать C++, и пользоваться декомпилятором ida hex rays, где hex rays - это почти удачная попытка преобразования
    кода Assembler в C++

    ida hex rays мне более понятна и мне с ней проще так что я буду не патчить клиента, а перехватывать и модифицировать функции...
     
  10. frank

    frank Member

    Joined:
    8 May 2015
    Messages:
    200
    Likes Received:
    95
    Reputations:
    28
    А можно подробнее про послденее предложение, я просто в реверсе совсем не силен, так, на уровне примитива. Т.е., я правильно понимаю что в клиента внедряется некая функция, на не котором этапе обработки кода, отдает функции и код в программу, модифицирует на лету и возвращает в клиента уже где-то на другом этапе обработки?
     
  11. BabaDook

    BabaDook Well-Known Member

    Joined:
    9 May 2015
    Messages:
    1,066
    Likes Received:
    1,565
    Reputations:
    40
    Ясно
     
  12. justcoolgeo

    justcoolgeo New Member

    Joined:
    2 Jun 2015
    Messages:
    10
    Likes Received:
    1
    Reputations:
    0
    Уважаемый frank, вы немного не так поняли :)
    1. сначала декомпилируем приложение, находим нужную нам функцию и узнаем её адрес
    2. в библиотеке (dll) пишем перехват функции и модификацию данных
    например:
    в программе есть функция "пить чай" :) с входными параметрами "тип чая (зелёный, чёрный)" и "кол-во сахара (в чайных ложках)"
    эта функция имеет следующий вид - ПитьЧай(чай, сахар) с адресом 0x0000001

    делаем прототип функции "пить чай"
    эта функция имеет следующий вид - ПрототипПитьЧай(чай, сахар)

    делаем перехват функции - я использую метод сплайсинга (https://ru.wikipedia.org/wiki/Перехват_(программирование))

    суть в том, что когда идёт вызов оригинальной функции ПитьЧай по адресу 0x0000001 то запускается наш прототип ПрототипПитьЧай и получает входные параметры, которые передаются в оригинальную функцию

    в функции ПрототипПитьЧай мы изменяем входные параметры и модифицированные данные передаем в оригинальную функцию ПитьЧай
    это выглядит примерно так:

    //допустим что "чай" - чёрный, а "сахар" - 2 ложки
    функция ПрототипПитьЧай(чай, сахар){
    //меняем параметры
    чай = кофе
    сахар = 100500

    //передаем модифицированные параметры
    ПитьЧай(чай, сахар)
    }

    или так

    //допустим что "чай" - чёрный, а "сахар" - 2 ложки
    функция ПрототипПитьЧай(чай, сахар){
    //передаем модифицированные параметры
    ПитьЧай(кофе, 100500)
    }
     
    frank likes this.
  13. frank

    frank Member

    Joined:
    8 May 2015
    Messages:
    200
    Likes Received:
    95
    Reputations:
    28
    Спасибо. действительно понял не так, почему и заинтересовался :) Спасибо за разъяснение.
     
  14. Filipp

    Filipp Elder - Старейшина

    Joined:
    10 May 2015
    Messages:
    251
    Likes Received:
    56
    Reputations:
    31
    Не знаю что это за PockerStar, но могу предложить возможный вариант. Иногда бывает так, что в клиент встроен браузер, например, для просмотра профиля чужого игрока. Если такая схема возможна, есть вектор MITM JS. Вы заставляете браузер выполнить JS скрипт, с ВК например, даже если SSL не сбрасывается, схема катит на отлично.
     
  15. frank

    frank Member

    Joined:
    8 May 2015
    Messages:
    200
    Likes Received:
    95
    Reputations:
    28
    Я правильно понимаю, вы имеете ввиду вот такую схему?
    [​IMG]
     
  16. justcoolgeo

    justcoolgeo New Member

    Joined:
    2 Jun 2015
    Messages:
    10
    Likes Received:
    1
    Reputations:
    0
    PokerStars - это покерный клиент (http://www.pokerstars.info/)

    Он использует SSL (TCP)
     
  17. Filipp

    Filipp Elder - Старейшина

    Joined:
    10 May 2015
    Messages:
    251
    Likes Received:
    56
    Reputations:
    31
    Типа да.. Оно. Я MITM'ом никогда не увлекался, но видел пару раз как такую вещь проворачивают.
     
  18. compass

    compass Banned

    Joined:
    9 Jan 2016
    Messages:
    101
    Likes Received:
    10
    Reputations:
    0
    PokerStars - сложно будет, а вот https://nitrogensports.eu/ думаю проще, тут тоже есть покер только играют на BTC.
     
  19. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,582
    Likes Received:
    1,310
    Reputations:
    1,557
    Посмотри на даты. ТС давно уже PokerStars сломал и разбогател, ему твои мелочи не интересны.
     
  20. compass

    compass Banned

    Joined:
    9 Jan 2016
    Messages:
    101
    Likes Received:
    10
    Reputations:
    0
    Тема еще не закрыта. А на счет того, что PokerStars взломали не слышал да и к тому же в этой теме не довели идею до конца.