Pull to refresh

Взлом TLS с денежным призом

Reading time1 min
Views12K
Разработчики TLS-имплементации на языке OCaml объявили конкурс BTC Piñata, чтобы доказать надёжность своей защиты. Известно, что конкурсы не могут быть настоящим доказательством, но этот очень уж забавный, да ещё с небольшим денежным призом.

Итак, двое хакеров открыли демо-сервер ownme.ipredator.se.

На сервере лежит ключ от биткоин-адреса 183XuXTTgnfYfKcHbJ4sZeF46a49Fnihdh. Сервер отдаст нам ключ, если мы предъявим сертификат.

Организаторы предусмотрели механизм MiTM для нас. Мы можем пропускать через себя трафик между виртуальными машинами BTC Piñata (TLS-сервер и TLS-клиент). Как понятно, в этом трафике есть нужный сертификат, нужно его только извлечь каким-то образом.

Интерфейс TLS-сервера находится на порту 10000, TLS-клиент на порту 10002, а порт 10001 используется для форвардинга трафика к нам на 40001.

Значит, инициируем общение сервера с клиентом и слушаем порт 40001.

Например, на Node.js это делается таким скриптом:

var net = require("net");
var server = net.connect({ host: 'ownme.ipredator.se', port: 10002 });
var client = net.connect({ host: 'ownme.ipredator.se', port: 10000 });
server.on('data', console.log.bind(console, 'server'));
client.on('data', console.log.bind(console, 'client'));
client.pipe(server).pipe(client);

Теперь записываем и анализируем трафик.

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



Код и библиотеки BTC Piñata открыты.
Список установленного ПО на демо-сервере.
Tags:
Hubs:
+22
Comments9

Articles

Change theme settings