Опять про странные бесполезные штуки с компами пост. Получаем интернет в сети с captive portal.
Ковыряясь в одной такой сети - я обнаружил, что DNS запросы ходят без проблем. И резолвятся любые домены. Любые. То есть я могу сделать nslookup ivanik.ru
и оно отдаст ip. То есть хоть какие то байтики мы можем послать в интернет и получить ответ! А вот пинги и остальной трафик уже ходить не будет. Почему бы не обернуть обернуть нужный нам трафик в DNS, и таким образом сделать туннель в интернеты.
Как оказалось такие штуки уже есть. Я взял dnstt . Написано на go и без проблем собралась под винду и андроид в termux. На сервере нужно открыть 53 udp порт и добавить NS запись у себя в домене. Дальше делаем:
dnstt-server -udp :5300 -privkey-file priv.key t.example.ru 127.0.0.1:1080
dnstt-server -udp 8.8.8.8 -pubkey-file pub.key t.example.com 1080
Если пройдет хорошо, то на клиенте на порту 1080 будет доступен сервис, который на порту 1080 на сервер. Таким образом можно прокинуть какой-нибудь socks прокси или ssh.
Когда мы ходим на something.t.example.ru - запрос приходит на наш сервер и он может вернуть любые полезные данные в ответе.
По скорости все конечно грустно. И по стабильности тоже. Но через это все работал даже телеграм. Практического смысла в этом мало, но было интересно.
А если вы думаете, что все нормальные люди блокируют dns, или вообще переносят клиентов в отдельную сеть для captive portal - я тоже так думал. Пока не запустил это все на неоплаченной сим карте одного из мобильных операторов.