Pull to refresh

Comments 30

Пан знает толк в извращеньях :-)


С учебной точки зрения опыт интересный ! ICMP действительно может нести данные и в контексте текущей задачи не отличается от UDP. Кроме уровня в модели OSI.

UFO just landed and posted this here

Это может иметь применение в стеганографии.

Ещё тут такое упоминается:

Кстати часто операторы связи приоритезируют ICMP, чтобы скрыть перегрузки каналов связи. И "ping туннель" через таких операторов работает лучше чем UDP.

В ранней сети Корбины между районами Москвы ходили только пинги и мы с друзьями туннелировались как раз через них ;)

обидно бывает читать рассказы тех, кто застал рождение интернета из соединения своего компа с компом друга по проводу для quake по локалке) когда родился позже этого...

обиднее — периодически наблюдать что у кого-то в запасе больше лет чем у тебя, а старпёрские рассказы миллениалов — это всё фигня

обиднее — периодически наблюдать что у кого-то в запасе больше лет чем у тебя

Зачем обижаться? Я тихо радуюсь, что я буду червей кормить — а они ещё помучаются!

Если кому интересно, картинка на обложке из аниме "Врата штейна"

отправляем на другой конец земного шара и на протяжении 0.5сек он хранится, будучи в кэшах роутеров и маршрутизаторов по дороге!

Б-безопасность П-практичность

У вас (или на промежуточном роутере) выключился свет на N секунд и все пакеты с паролем от крипто кошелька потерялись. Б - но это уже не слово безопасность :)

Поэтому нужно отправлять данные на несколько хостов сразу, репликация, очевидно же

А какая разница на сколько хостов, если у вас света нет, к примеру, минуту. Все хосты пришлют ответы которые потеряются раз вас нет.

Т.е. как я понял информация жива только пока ходит запрос. Как только вас нет, то запрос потеряется и вся его информация тоже.

Верно, однако зачастую информация теряется не в моем узле. Но факт остается фактом - хранить что либо таким способом не стоит.

оно открытым текстом отправляется


так что С-сарказм

Новое — это хорошо забитое забытое старое!

Сказочка про ping.

Задумал школьный учитель детей ping-у обучить. И умер весь интернет ненадолго. Почему не надолго? Да потому что мертвый интернет не пингуется.

Интересная идея, но бесполезное.

Вспомнилось, как я в своё время реализовал ICMP-туннель между двумя подсетями. Дано: две подсети A, B, между которыми отсутствуют acl - даже пинги не ходят. И есть общий ресурс в третьей подсети C, который доступен всем. Отправляем пинг на общий ресурс, подделывая IP-адрес отправителя. В итоге пакет ходит по маршруту A->C->B. Из встреченных сложностей: нужно знать все три ip-адреса, но позже ICMP-туннель оброс функционалом служебных сообщений, чтобы можно было протестировать туннель или сообщить реальный ip-адрес отправителя. Внутри туннеля бегал обычный tcp, так что потери пакетов восстанавливались им. Для браузинга интернета по выходным этого хватало.

Много думал над этим, но пришел к выводу, что подделывать адрес отправителя бесполезно. Ведь этот адрес в заголовке пакета переписывается NATами и до получателя он дойдёт с другим адресом. Или нет? Если бы эта схема действительно работала, поверх неё можно было бы придумать ещё массу всяких плюшек...

nat'a между подсетями не было в моём случае, просто связь между двумя машинами, на одной из которых был доступ в интернет, и на обеих админские права.

nat'a между подсетями не было в моём случае

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

Я, конечно, могу ошибаться, но NAT никак не мешает подделыванию ip-адреса отправителя icmp-пакета, роутер просто пошлёт echo-ответ в поддельный ip-адрес (он то не в курсе ваших махинаций). На похожем принципе реализована ddos атака через icmp - smurf attack.

Воспользуюсь пожеланиями автора и подкину бесполезных, но весёлых идей.

Во-первых, идея изучения IP (вообще), и ICMP (в частности), по скучным RFC наверняка кем-то будет оценена как бесполезная, но эффект в итоге будет сильно веселее — и английский прокачаешь, и узнаешь больше, и в статьях на хабре не будет чуши, подобной этой:

не упоминаю порты и всё что с ними связано, ведь 1й порт для ICMP это скорее условность

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

Рис. 1
Рис. 1

А вот если бы автор изучал ICMP по RFC, или хотя бы по англоязычной Википедии, то он бы ещё до написания статьи знал, что порты в привычном смысле существуют только у транспортных (к коим ICMP не относится никак) протоколов типа UDP или TCP, но у всех интернет-протоколов есть очень даже не условный, а самый что ни на есть конкретный Protocol ID, и именно у ICMP он имеет значение 1. Файл /etc/protocols (или более близкий автору %SystemRoot%\System32\drivers\etc\protocol) — это как раз справочник по этим самым ID.

Во-вторых, идея не работать под административным аккаунтом, а для запуска программ, требующих повышения полномочий, использовать doas/sudo/runas.exe, не нова и не так уж и бесполезна, но будет очень весело, если автор себе в один прекрасный день что-нибудь снесёт вплоть до переустановки ОС. Это к тому, что работа с raw-sockets требует админских прав, о чём автор в статье не упомянул (напрасно).

А вообще — молодец, пиши ещё.
Успехов!

Скоро изобретут ассемблер на python

Скоро изобретут ассемблер на python

Дизассемлер на ruby Вас устроит? Я написал. Могу, в принципе, и ассемблер написать, просто смысла не вижу.

Sign up to leave a comment.

Articles