Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Песочница (https://forum.antichat.xyz/forumdisplay.php?f=189)
-   -   Атака Man-In-The-Middle на PokerStars (перехват ssl трафика покерного клиента) (https://forum.antichat.xyz/showthread.php?t=426212)

justcoolgeo 02.06.2015 17:28

Привет форумчане!

Прочел блог на хабре http://habrahabr.ru/post/213397/

Хочу сделать ssl (tcp) proxy для перехвата трафика, но загвоздка в следующем, клиент PokerStars коннектится на сервак 77.87.178.74:26002, на этом серваке отключен ping!!!

Вопрос к знатокам:

1. как мне узнать его dns имя?

2. или как-нибудь можно замутить атаку MitM ssl(tcp) без dns имени?

Заранее спасибо!!!

Mister_Bert0ni 02.06.2015 19:41

Если я не ошибаюсь то MITM актуальна в одном сегменте сети...Если все было так просто то все бы были богачами))

BabaDook 02.06.2015 20:53

неее. mitm не только арп спуф, речь наверное может идти о том как попасть в сессию

frank 03.06.2015 08:36

1. у этого сервера может и не быть днс имени, т.е. ситуация, когда идет обращение на покер стар, сервак к которому обращаются является просто балансировщиком нагрузки и он редеректит на другие фронты, которые уже и обрабатывают запросы.А так, сервис whois вам в помощь...по ip вытаскиваете всю информацию.

2. про проксю посередине или MITM. уже частично я объяснял тонкость вот тут

PHP код:

[COLOR="#000000"][COLOR="#0000BB"]http[/COLOR][COLOR="#007700"]:[/COLOR][COLOR="#FF8000"]/threads/425286/#post-3853231[/COLOR][/COLOR] 

если нужно что-то про митм подробнее, спрашивайте.

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

Дружище BabaDook, и все-таки согласись, что арп спуфинг, это не митм как таковой А просто разновидность и даже скорее способ достижения man-in-the-middle Ваше мнение , сэр?

M_script 03.06.2015 10:32

Можно использовать ProxyCap и Fiddler/Charles. Но клиент может не использовать http(s), а работать по своему собственному протоколу. Также может использоваться Certificate Pinning для защиты от подмены сертификата и перехвата трафа, в этом случае придется патчить клиент.

ZodiaX 03.06.2015 12:01

А будет ли в этом смысл? Маловероятно, что сервер слепо доверяет данным клиента.

Для начала хорошо бы wireshark/tcpdump'ом снять трафик, попробовать его проанализировать и от это уже отталкиваться для организации 'mitm'.

justcoolgeo 03.06.2015 12:05

Цитата:

Сообщение от frank

1. у этого сервера может и не быть днс имени, т.е. ситуация, когда идет обращение на покер стар, сервак к которому обращаются является просто балансировщиком нагрузки и он редеректит на другие фронты, которые уже и обрабатывают запросы.А так, сервис whois вам в помощь...по ip вытаскиваете всю информацию.
2. про проксю посередине или MITM. уже частично я объяснял тонкость вот тут
PHP код:

[COLOR="#000000"][COLOR="#0000BB"]http[/COLOR][COLOR="#007700"]:[/COLOR][COLOR="#FF8000"]/threads/425286/#post-3853231[/COLOR][/COLOR] 

если нужно что-то про митм подробнее, спрашивайте.
И про не которые заблуждения, прокся не обязательно должна быть в одной локале с жертвой (в одной подсети), но так проще конечно.
Дружище
BabaDook
, и все-таки согласись, что арп спуфинг, это не митм как таковой
А просто разновидность и даже скорее способ достижения man-in-the-middle
Ваше мнение , сэр?

Уважаемый frank, на счет dns имени - у любой тачки хоть у сервера, хоть у обычного АРМ есть имя!

Просто стоит защита, например, я работаю в организации у которой есть корпоративная сеть между 55-ти организациями, так вот

когда проходили переаттестацию по степени защищенности нам настроили VipNet Coordinator HW 1000 так, чтобы web-сервер из локальной сети не пинговался!

Ведь ping - это просто посылается сообщение hello на сервак на определённый порт, на которое сервак в свою очередь здоровается и

в итоге замеряется скорость обмена...

А сервер PokerStars не культурный - не здоровается в ответ

frank 03.06.2015 12:06

Цитата:

Сообщение от ZodiaX

А будет ли в этом смысл? Маловероятно, что сервер слепо доверяет данным клиента.
Для начала хорошо бы wireshark/tcpdump'ом снять трафик, попробовать его проанализировать и от это уже отталкиваться для организации 'mitm'.

Это да...или понять хотя бы, а реально завернуть трафик жертвы на себя (ну так, отбросим остальные тех аспекты. как SSL, отличные от HTTP(s) протоколы, дампинг SSL, Certificate Pinning). А в целом все эти достаточно давно существующие ресурсы типа pokerstar очень хорошо закрыты.

justcoolgeo 03.06.2015 12:11

Цитата:

Сообщение от ZodiaX

А будет ли в этом смысл? Маловероятно, что сервер слепо доверяет данным клиента.
Для начала хорошо бы wireshark/tcpdump'ом снять трафик, попробовать его проанализировать и от это уже отталкиваться для организации 'mitm'.

Уважаемый ZodiaX, можете подробнее описать какую информацию я могу получить wireshark/tcpdump'ом?

У меня есть Kali linux и wireshark, если я не ошибаюсь, я использовал для хака соседской вафельки

frank 03.06.2015 12:11

Цитата:

Сообщение от justcoolgeo

Уважаемый frank, на счет dns имени - у любой тачки хоть у сервера, хоть у обычного АРМ есть имя!
Просто стоит защита, например, я работаю в организации у которой есть корпоративная сеть между 55-ти организациями, так вот
когда проходили переаттестацию по степени защищенности нам настроили VipNet Coordinator HW 1000 так, чтобы web-сервер из локальной сети не пинговался!
Ведь ping - это просто посылается сообщение hello на сервак на определённый порт, на которое сервак в свою очередь здоровается и
в итоге замеряется скорость обмена...
А сервер PokerStars не культурный - не здоровается в ответ

Имя машины в сети и публичное днс имя это разные вещи. А HW1000 просто у вас скорее всего стоит сетевым интерфейсом в режиме 3 или выше, Эти режимы блокируют icmp запросы, если не создавать правила исключения. По факту это просто аттестованый на требования фсб и фстэк фаервол с функцией маршрутизации и шифрования(если используется режим полутунель) Я знаю что такое випнетовский координатор, работал с ними Я вообще очень хорошо знаю линейку по и железа випнет и не только випнета ну а раз между 55-ти организациями и випнет, не ПФР часом ли или РЖД ?

frank 03.06.2015 12:25

Ааааа точно... у вас тоже решался когда то вопрос випнет или континет и вроде даже как, для защиты ваших веб ресурсов, ну по крайне мере в ряде регионов, WAF Imperva закупалась... хотя инфа может быть устаревшая

justcoolgeo 03.06.2015 12:28

Скажите, а без dns имени перехват ssl трафика методом "человек посередине" не получится?

Ведь исходя из этой статья http://habrahabr.ru/post/213397/ нужно сделать алиас в файле hosts на dns имя, а потом его использовать в сертификате...

frank 03.06.2015 12:31

Цитата:

Сообщение от justcoolgeo

Скажите, а без dns имени перехват ssl трафика методом "человек посередине" не получится?
Ведь исходя из этой статья
http://habrahabr.ru/post/213397/ нужно сделать алиас в файле hosts на dns имя, а потом его использовать в сертификате...

Можно и в этой статье пошагово человек описал как . Только он приводил пример все-таки своей машины, к которой он имеет доступ и может на ней проводить любые настройки фактически.

ZodiaX 03.06.2015 12:40

Цитата:

Сообщение от justcoolgeo

Уважаемый ZodiaX, можете подробнее описать какую информацию я могу получить wireshark/tcpdump'ом?
У меня есть Kali linux и wireshark, если я не ошибаюсь, я использовал для хака соседской вафельки

Вы получите дамп трафика из которого уже приблизительно будет видно, используется ли ssl/tls или что-то другое.

Без dns для перенаправления трафика можно попробовать использовать netsh/iptables.

ps: все АПКШ СЗИ отечественного производства редкое УГ

frank 03.06.2015 12:44

зато STERRa умеет на L2 работать наконец то ... Хотя вроде как инфотекс тоже год назад анонсировал это Но в целом согласен! Настраивается порой не тревиально, работает пока не трогаешь и не дышишь в ту сторону.

justcoolgeo 03.06.2015 12:50

Цитата:

Сообщение от frank

Можно и в этой статье пошагово человек описал как
. Только он приводил пример все-таки своей машины, к которой он имеет доступ и может на ней проводить любые настройки фактически.

Ладно, допустим я перенаправил трафик с клиента PokerStars на localhost (127.0.0.1)

А что мне тогда в сертификате указывать, какой домен?

CN=*.playdata.co.uk - это можно заменить на *.* ?

например:

makecert -n CN=MyCA -cy authority -a sha1 -sv “MyCA.pvk” -r “MyCA.cer” //Создаём сертификат ЦА

certmgr -add -all -c “MyCA.cer” -s -r LocalMachine Root //Добавляем в довереные коневые центры сертификаты

makecert -n CN=*.playdata.co.uk -ic MyCA.cer -iv MyCA.pvk -a sha1 -sky exchange -pe -sr currentuser -ss my SslServer.cer

//Создаём серверный сертификат

frank 03.06.2015 12:54

Цитата:

Сообщение от justcoolgeo

Ладно, допустим я перенаправил трафик с клиента PokerStars на localhost (127.0.0.1)
А что мне тогда в сертификате указывать, какой домен?
CN=*.playdata.co.uk - это можно заменить на *.* ?
например:
makecert -n CN=MyCA -cy authority -a sha1 -sv “MyCA.pvk” -r “MyCA.cer” //Создаём сертификат ЦА
certmgr -add -all -c “MyCA.cer” -s -r LocalMachine Root //Добавляем в довереные коневые центры сертификаты
makecert -n CN=*.playdata.co.uk -ic MyCA.cer -iv MyCA.pvk -a sha1 -sky exchange -pe -sr currentuser -ss my SslServer.cer
//Создаём серверный сертификат

можно...это просто будет означать что сертификат распространяется на любые доменные имена 4 уровня для данного домена playdata.co.uk

Но, корневик который с генерируете, MyCA должен быть в доверенном корневом на машине, иначе браузер будет блокировать.

UPD сразу не обратил внимание, у вас второй строкой экспорт в машину стоит

ZodiaX 03.06.2015 13:03

Цитата:

Сообщение от frank

зато STERRa умеет на L2 работать
наконец то
... Хотя вроде как инфотекс тоже год назад анонсировал это
Но в целом согласен! Настраивается порой не тревиально, работает пока не трогаешь и не дышишь в ту сторону.

ничего не говори про С-Терру... с этими железками я года три "развлекался"

если не учитывать утечку памяти в корневом процессе, ежемесячные перезагрузки и потерю пакетов на длинных каналах (что для UDP/ipsec критично) в остальном нормальные железки

А, забыл еще процедуру обновления с разворотом вм и загрузкой по сети..

Попробуйте перехватить поля сертификата в сессии, сразу будет понятно какой серт генерить.

BabaDook 03.06.2015 13:25

Интересная конечно тема. Всё никак руки не доходили до инъекции сертификата

frank 03.06.2015 13:29

Цитата:

Сообщение от justcoolgeo

Скажите, а каким образом перехватить поля сертификата в сессии?
И какой сессии?
Можете подробней рассказать?

Ну zodiaX выше писал сделать tcpdump запроса к серверу, а потом тем же шарком посмотреть.. вы клиента трафик хотите попробовать перехватить? или все-таки через браузерное подключение?

UPD хотя... можно и не заморачиваться. Если рассматривать классическую цепочку user->proxy->server. То мы можем любой SSL серт испоьзовать между user->proxy вне зависимости какой он идет реально, с этим реальным будет работать прокси, мы собираем расшифрованный трафик на прокси в обе стороны. Ну это конечно если работаем через браузер. а не через клиента. у которого могут быт вшиты настройки проверки валидности сертификата.

justcoolgeo 03.06.2015 13:56

Цитата:

Сообщение от frank

Ну zodiaX выше писал сделать tcpdump запроса к серверу, а потом тем же шарком посмотреть.. вы клиента трафик хотите попробовать перехватить? или все-таки через браузерное подключение?
UPD хотя... можно и не заморачиваться. Если рассматривать классическую цепочку user->proxy->server. То мы можем любой SSL серт испоьзовать между user->proxy вне зависимости какой он идет реально, с этим реальным будет работать прокси, мы собираем расшифрованный трафик на прокси в обе стороны. Ну это конечно если работаем через браузер. а не через клиента. у которого могут быт вшиты настройки проверки валидности сертификата.

Клиент PokerStars работает через tcp.

И конечно могут быть вшиты настройки проверки валидности сертификата.

Тогда прийдется декомпилировать клиента, искать функции которые используют API для работы с SSL или с сертификатами, и перехватывать их...

Конечно это будет немного геморно

BabaDook 03.06.2015 14:28

Цитата:

Сообщение от justcoolgeo

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

То что вы задумали не очень то и легко. Можно узнать ваш план осуществление. Допустим я жертва, ваши действия?!

frank 03.06.2015 14:33

Цитата:

Сообщение от BabaDook

То что вы задумали не очень то и легко. Можно узнать ваш план осуществление. Допустим я жертва, ваши действия?!

В помощь justcoolgeo в ответе тебе, сложно когда задача с анализим чужого трафика... а так, если поснифить от себя это опыт в настройке, развертывании на своем стенде, перехвате и анализе трафика, возможно даже и реверс Короче скилы себе прокачать тоже норм задачка

ZodiaX 03.06.2015 14:41

Цитата:

Сообщение от BabaDook

То что вы задумали не очень то и легко. Можно узнать ваш план осуществление. Допустим я жертва, ваши действия?!

Не совсем так, жертва в данном случае клиент PokerStar установленный у себя же

Цель я так понимаю разобраться какие параметры он передает на сервер и попытаться ими манипулировать.

BabaDook 03.06.2015 14:46

Цитата:

Сообщение от frank

В помощь justcoolgeo в ответе тебе, сложно когда задача с анализим чужого трафика... а так, если поснифить от себя это опыт в настройке, развертывании на своем стенде, перехвате и анализе трафика, возможно даже и реверс
Короче скилы себе прокачать тоже норм задачка

Цитата:

Сообщение от ZodiaX

Не совсем так, жертва в данном случае клиент PokerStar установленный у себя же
Цель я так понимаю разобраться какие параметры он передает на сервер и попытаться ими манипулировать.

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

Партнёр 03.06.2015 16:05

Цитата:

Сообщение от BabaDook

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

Или коспирация

justcoolgeo 04.06.2015 17:56

Цитата:

Сообщение от frank

В помощь justcoolgeo в ответе тебе, сложно когда задача с анализим чужого трафика... а так, если поснифить от себя это опыт в настройке, развертывании на своем стенде, перехвате и анализе трафика, возможно даже и реверс
Короче скилы себе прокачать тоже норм задачка

Уважаемый frank, просто проснифить трафик в данном случае не поможет т.к. трафик зашифрован (SSL)

frank 04.06.2015 18:08

Цитата:

Сообщение от justcoolgeo

Уважаемый frank, просто проснифить трафик в данном случае не поможет т.к. трафик зашифрован (SSL)

Там что, двусторонний SSL? Сильно сомневаюсь. А значит есть открытый трафик в виде обмена hello пакетами и первичного сертификата от сервера, вот его поля и серт вы можете изучить.

Дальше уже идет шифрованный трафик...

justcoolgeo 04.06.2015 18:13

Цитата:

Сообщение от BabaDook

То что вы задумали не очень то и легко. Можно узнать ваш план осуществление. Допустим я жертва, ваши действия?!

Уважаемый BabaDook, план таков:

Если проверки сертификата в клиенте pokerStars нет - то можно перехватить трафик и парсить его налету.

Если защита всё же есть, то прийдется заняться реверс-инженеренгом (крэкингом).

Нужно будет декомпилировать клиент pokerStars, найти функцию(и) которые осуществляют эту проверку (защиту).

Потом или пропатчить клиента OllyDbg-ром или написать библиотеку (dll) с перехватом и модификацией этой(х) функции(й),

которую нужно будет заинжектить в процесс клиента pokerStars.

Чтобы использовать OllyDbg - нужно очень хорошо знать assembler (я его практически не знаю )

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

кода Assembler в C++

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

frank 04.06.2015 21:52

Цитата:

Сообщение от justcoolgeo

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

А можно подробнее про послденее предложение, я просто в реверсе совсем не силен, так, на уровне примитива. Т.е., я правильно понимаю что в клиента внедряется некая функция, на не котором этапе обработки кода, отдает функции и код в программу, модифицирует на лету и возвращает в клиента уже где-то на другом этапе обработки?

BabaDook 04.06.2015 22:35

Цитата:

Сообщение от justcoolgeo

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

Ясно

justcoolgeo 05.06.2015 12:28

Цитата:

Сообщение от frank

А можно подробнее про послденее предложение, я просто в реверсе совсем не силен, так, на уровне примитива. Т.е., я правильно понимаю что в клиента внедряется некая функция, на не котором этапе обработки кода, отдает функции и код в программу, модифицирует на лету и возвращает в клиента уже где-то на другом этапе обработки?

Уважаемый frank, вы немного не так поняли

1. сначала декомпилируем приложение, находим нужную нам функцию и узнаем её адрес

2. в библиотеке (dll) пишем перехват функции и модификацию данных

например:

в программе есть функция "пить чай" с входными параметрами "тип чая (зелёный, чёрный)" и "кол-во сахара (в чайных ложках)"

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

делаем прототип функции "пить чай"

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

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

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

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

это выглядит примерно так:

//допустим что "чай" - чёрный, а "сахар" - 2 ложки

функция ПрототипПитьЧай(чай, сахар){

//меняем параметры

чай = кофе

сахар = 100500

//передаем модифицированные параметры

ПитьЧай(чай, сахар)

}

или так

//допустим что "чай" - чёрный, а "сахар" - 2 ложки

функция ПрототипПитьЧай(чай, сахар){

//передаем модифицированные параметры

ПитьЧай(кофе, 100500)

}

frank 05.06.2015 12:37

Спасибо. действительно понял не так, почему и заинтересовался Спасибо за разъяснение.

Filipp 05.06.2015 13:25

Не знаю что это за PockerStar, но могу предложить возможный вариант. Иногда бывает так, что в клиент встроен браузер, например, для просмотра профиля чужого игрока. Если такая схема возможна, есть вектор MITM JS. Вы заставляете браузер выполнить JS скрипт, с ВК например, даже если SSL не сбрасывается, схема катит на отлично.

frank 05.06.2015 13:29

Цитата:

Сообщение от Filipp

Не знаю что это за PockerStar, но могу предложить возможный вариант. Иногда бывает так, что в клиент встроен браузер, например, для просмотра профиля чужого игрока. Если такая схема возможна, есть вектор MITM JS. Вы заставляете браузер выполнить JS скрипт, с ВК например, даже если SSL не сбрасывается, схема катит на отлично.

Я правильно понимаю, вы имеете ввиду вот такую схему?

http://i.stack.imgur.com/xkwhU.png

justcoolgeo 05.06.2015 13:57

Цитата:

Сообщение от Filipp

Не знаю что это за PockerStar, но могу предложить возможный вариант. Иногда бывает так, что в клиент встроен браузер, например, для просмотра профиля чужого игрока. Если такая схема возможна, есть вектор MITM JS. Вы заставляете браузер выполнить JS скрипт, с ВК например, даже если SSL не сбрасывается, схема катит на отлично.

PokerStars - это покерный клиент (http://www.pokerstars.info/)

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

Filipp 05.06.2015 14:13

Цитата:

Сообщение от frank

Я правильно понимаю, вы имеете ввиду вот такую схему?
http://i.stack.imgur.com/xkwhU.png

Типа да.. Оно. Я MITM'ом никогда не увлекался, но видел пару раз как такую вещь проворачивают.

compass 19.04.2016 02:40

PokerStars - сложно будет, а вот https://nitrogensports.eu/ думаю проще, тут тоже есть покер только играют на BTC.

M_script 19.04.2016 03:21

Цитата:

Сообщение от compass

PokerStars - сложно будет, а вот
https://nitrogensports.eu/
думаю проще

Посмотри на даты. ТС давно уже PokerStars сломал и разбогател, ему твои мелочи не интересны.

compass 19.04.2016 13:27

Цитата:

Сообщение от M_script

Посмотри на даты. ТС давно уже PokerStars сломал и разбогател, ему твои мелочи не интересны.

Тема еще не закрыта. А на счет того, что PokerStars взломали не слышал да и к тому же в этой теме не довели идею до конца.


Время: 09:33