Что мешает отправке пакетов данных непосредственно на частный IP (для взлома / вирусов / вредоносных программ)?

491
Jay5671

Я новичок в области сетевых технологий, и у меня есть много основ, но я не понимаю, как интернет не может получить прямой контакт с вашими устройствами в вашей локальной сети.

Я знаю, что маршрутизаторы и NAT позволяют всем вашим устройствам иметь один и тот же IP для вашей сети, и он направляет запросы в Интернет и обратно клиенту, который его запросил, но мой вопрос таков:

Скажем, я хотел взломать чей-то компьютер и знал его домашнюю сеть (роутер) IP. Разве я не могу просто передать данные на этот IP-адрес с закодированными данными, чтобы перейти на некоторые из наиболее распространенных частных адресов (например, 192.168.1.1-80) и получить данные, отправленные на «частное» устройство?

IP-адреса обычно берут данные непосредственно на и с устройств, которые отправили запрос, поэтому, если я знал IP-адрес маршрутизатора и правильно угадал частный IP-адрес, что может помешать мне взломать это устройство?

Я предполагаю, что есть еще один способ направить данные на правильный клиент, который происходит в маршрутизаторе / NAT, который не просто IP, но я не уверен, как это сделать.

Или это просто, что вы МОЖЕТЕ отправить неправильные данные таким способом, но не было бы никакой выгоды, если бы все программное обеспечение ничего не делало с данными (не отправило запрос).

Любая информация, которую я нахожу, обычно просто говорит о том, как частные IP-адреса позволяют использовать в целом меньше общедоступных IP-адресов, и никогда не упоминает, что ограничивает доступ ваших частных IP-клиентов к внешнему миру.

Может кто-то объяснить это мне?

1
Когда маршрутизатор NAT-пакета, он запоминает (sourceIP: sourcePort, destinationIP: destinationPort) в таблице сеансов. Когда ответ получен, он передается в соответствии с запомненной информацией. Если в таблице сеансов не найдено записей, маршрутизатор отбрасывает пакет как ошибочно полученный. Таким образом, он не будет переведен в частную сеть. Akina 5 лет назад 0

4 ответа на вопрос

0
LawrenceC

Я не понимаю, как интернет не может получить прямой контакт с вашими устройствами в вашей локальной сети.

IP-адреса обычно принимают данные напрямую от устройств, которые сделали запрос

Имейте в виду, что оригинальный дизайн Интернета заключается в том, что именно так все и должно работать - Интернет должен быть «сквозным», а IP-адреса должны быть буквально глобальными - как бы там ни было данный IP-адрес есть в мире, я могу говорить с ним, и он может говорить со мной.

Проблема в том, что у нас закончились адреса IPv4, поэтому пришлось использовать такие схемы, как NAT.

NAT не был таким, каким все должно было работать, и хотя он имеет побочные эффекты для безопасности, он нарушает сквозной принцип Интернета и поощряет услуги, которые делают только посредников - хорошо для безопасности / аренды коллекция, плохо для свободы / бедных людей.

Я знаю, что маршрутизаторы и NAT позволяют всем вашим устройствам иметь одинаковый IP для вашей сети

Это появляется только за пределами вашей сети.

За вашей сетью у каждой системы есть уникальный IP - от одного из частных диапазонов IP.

NAT управляет этой иллюзией на вашем маршрутизаторе, так что системы за вашим маршрутизатором могут обращаться к другим IP-адресам, а IP-адреса могут взаимодействовать с системами за вашим маршрутизатором, если порты перенаправлены правильно.

Не могу ли я просто передать данные на этот IP-адрес с закодированными данными, чтобы перейти на некоторые из наиболее распространенных частных адресов (например, 192.168.1.1-80) и получить данные, отправленные на «частное» устройство

Нету.

192.168.1.80 не существует в Интернете. Он существует только за NAT-маршрутизаторами. Сначала вы получите NAT-маршрутизатор. Единственный способ сделать это - сначала поговорить с публичным IP-адресом маршрутизатора NAT.

На самом деле - если этот IP 192.168.1.80 и ваш собственный IP находятся в одной подсети, то случится так, что трафик даже не покинет вашу сеть - ваша система попытается достичь 192.168.1.80 из локальной сетевой карты и он даже не достигнет вашего роутера.

так что, если я знал IP-адрес маршрутизатора и правильно угадал частный IP-адрес, что может помешать мне взломать это устройство?

Маршрутизаторы NAT отслеживают и отслеживают входящие соединения.

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

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

0
Attie

Большинство маршрутизаторов NAT также будут настроены для работы в качестве межсетевого экрана, а не только маршрутизатора.

Рассмотрим следующую сеть:

example network


Без NAT устройства должны взаимодействовать напрямую:

  • 192.168.1.2 хочет поговорить с 192.168.0.2
    • Маршрут по умолчанию 192.168.1.1(Маршрутизатор A)
    • Маршрутизатор A знает, что 192.168.0.0/24достижим через 198.51.100.2 (Маршрутизатор B)
    • Маршрутизатор B напрямую подключен 192.168.0.0/24и доставляет пакет
  • 192.168.0.2 хочет ответить на 192.168.1.2
    • Маршрут по умолчанию 192.168.0.1(Маршрутизатор B)
    • Маршрутизатор B знает, что 192.168.1.0/24достижим через198.51.100.1
    • Маршрутизатор A напрямую подключен 192.168.1.0/24и доставляет пакет

С NAT на маршрутизаторе A, но не на маршрутизаторе B, все меняется немного:

  • 192.168.1.2 хочет поговорить с 192.168.0.2
    • Маршрут по умолчанию 192.168.1.1(Маршрутизатор A)
    • Маршрутизатор A настроен для « маскировки IP-адресов », поэтому переписывает исходный адрес как 192.51.100.1(это внешний интерфейс)
    • Маршрутизатор A знает, что 192.168.0.0/24достижим через 198.51.100.2(Маршрутизатор B)
    • Маршрутизатор B напрямую подключен 192.168.0.0/24и доставляет пакет
  • 192.168.0.1 хочет ответить на 198.51.100.1
    • Маршрут по умолчанию 192.168.0.1(Маршрутизатор B)
    • Маршрутизатор B напрямую подключен 198.51.100.0/24и доставляет пакет
    • Маршрутизатор A просматривает свою таблицу перевода и переписывает пункт назначения как 192.168.1.1
    • Маршрутизатор A напрямую подключен 192.168.1.0/24и доставляет пакет

На этом этапе ничто не мешает хосту использовать его 192.51.100.1в качестве маршрутизатора и просить его переслать пакет в 192.168.1.2... Ничего . Ответы могут быть замаскированы, поэтому общение может быть немного « сложным », но общение - это общение.

Расширение этого до « интернета » может несколько изменить мое утверждение « Ничего не остановить ... ». У меня нет вспомогательных материалов, но я был бы очень удивлен, если бы интернет-маршрутизаторы были действительно настроены для пересылки трафика, направленного на адрес частной сети. Вместо этого они, скорее всего, просто отбросят такие пакеты. В результате, попытка сделать это в Интернете вряд ли сработает, даже если маршрутизатор был плохо настроен.

В дополнение к этому, из-за того, как работает маршрутизация (то есть: если хост не находится в локальной сети, MAC-адрес нацелен на маршрутизатор, а IP-адрес на конечный хост), способа использовать нет в 192.51.100.1качестве маршрутизатора, если либо A) вы подключены к нему; или B) существующие маршруты будут толкать ваш трафик в его направлении.


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

Один из подходов заключается в отклонении (или отбрасывании) входящих пакетов на внешнем интерфейсе маршрутизатора A ( 198.51.100.1), которые явно не нацелены на его адрес.

Это также разрешит модель слабого хоста, которую реализует Linux (например, маршрутизатор B может взаимодействовать с маршрутизатором A через его внешний интерфейс, используя адрес, назначенный внутреннему интерфейсу).

0
Mokubai

То, что вы знали общедоступный IP-адрес маршрутизатора, а также внутренний адрес, автоматически не делает внутренний адрес общедоступным.

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

Адрес «перейти к этой машине и этому порту», ​​а не «перейти к этой машине и порту, а затем переместиться на другую машину и порт, а оттуда этот другой адрес и порт».

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

То же самое происходит в сети, но NAT не допускает использование «Джима» в качестве постоянного внутреннего адреса, внутренние и внешние сопоставления происходят, когда что-то внутреннее в сети обращается к Интернету, запрашивая соединение. В это время он эффективно создает почтовый ящик "jimTmp12345 @ PublicIP", который используется до тех пор, пока соединение не закроется, и в этот момент адрес окажется недействительным, а все адресованное ему имя будет отброшено на локальную свалку.

0
TOOGAM

[NAT] направляет запросы в Интернет и обратно клиенту, который его запросил

верно, но в качестве пояснения о том, как это работает: NAT заставляет ваши частные IP-адреса выглядеть как общедоступные IP-адреса, обычно до того, как трафик покидает вашу сеть. Таким образом, Интернет не перенаправляет трафик на ваш частный IP-адрес. Сеть возвращает трафик на общедоступный IP-адрес, по которому вас видят.

Выпуск № 1:

Я думаю, если вы понимаете, как NAT работает в деталях, это поможет ответить на некоторые ваши вопросы. Наиболее типичной реализацией, которую я видел, является NAPT (трансляция на основе «Network Address Port»). Когда вы отправляете данные с частного адреса, маршрутизатор берет этот частный адрес и добавляет эту информацию в диаграмму / таблицу в памяти маршрутизатора. Маршрутизатор также выбирает номер порта TCP или UDP (возможно, выбранный довольно случайно) и отслеживает его в той же диаграмме / таблице. Затем маршрутизатор отправляет информацию в Интернет, используя общедоступный IP-адрес, и идентифицирует номер «порта источника» в качестве номера, который он выбрал. (И TCP, и UDP используют два номера портов: номер «источника» и номер «пункта назначения».) Когда пункт назначения (скажем, веб-сервер, прослушивающий TCP-порт 443), замечает трафик, идущий на TCP-порт 443 и поступающий с другого TCP-порта (например, TCP-порт 53874), на который сервер может ответить, отправив трафик обратно на открытый IP-адрес исходного маршрутизатора на том же самом TCP-порт (например, TCP-порт 53874). Затем маршрутизатор ищет информацию в своей таблице / диаграмме и знает, на какой частный IP-адрес отправлять информацию.

Если вы просто выбрали случайный частный IP-адрес, маршрутизатор не должен иметь этот частный IP-адрес в своей таблице / диаграмме, чтобы он не работал.

Я предполагаю, что есть еще один способ направить данные на правильный клиент, который происходит в маршрутизаторе / NAT, который не просто IP, но я не уверен, как это сделать.

Нет.

Я имею в виду, ну да, есть. Существует и другая маршрутизация, поэтому я просто быстро признаю это. Существует использование тегов 802.1q «VLAN» и других технологий, которые могут использоваться для некоторых облаков данных / сигнализации и могут повлиять на то, как трафик в конечном итоге проходит через сеть. Однако эти дополнительные методы маршрутизации обычно используются для обеспечения скорости, безопасности или совместимости (в основном с сетями, не относящимися к IP, например, в некоторых старых сетях внутри телефонной компании). Вам не нужно думать, что эти передовые методы работы на профессиональном уровне будут представлять новую и необходимую часть понимания того, как работает базовая маршрутизация, потому что базовая простая IP-маршрутизация может использоваться для объяснения того, о чем вы спрашиваете.

Проблема № 2: внутренняя защита маршрутизатора

Теперь давайте притворимся, что маршрутизатор не выполняет NAPT, поэтому мы просто будем игнорировать всю таблицу / диаграмму, которая сопоставляет общедоступные номера портов TCP / UDP с частными адресами. Давайте просто притворимся, что вы сидите у интернет-провайдера клиента и хотите злонамеренно отправить пакет через маршрутизатор на частные IP-адреса клиента.

Большинство маршрутизаторов, выполняя некоторые очень простые действия, подобные брандмауэру, заметят, что входящий трафик поступает на порт, помеченный как «WAN» (что означает «глобальная сеть»). Чтобы обеспечить некоторую защиту, маршрутизаторы должны понимать, что входящий трафик через этот сетевой порт должен использовать публичный IP-адрес маршрутизатора, а не какой-либо из общих «частных» диапазонов IP-адресов.

Таким образом, маршрутизатор будет защищать сеть, отбрасывая пакет.

Проблема 3: интернет-провайдеры защищают нас лучше

Стандарт для любого интернет-провайдера состоит в том, чтобы не допускать никакого трафика в или из диапазонов частных IP-адресов (которые являются диапазонами сетевых адресов, определенных в Разделе 3 IETF RFC 1918 для IPv4, или адресами, начинающимися с «fd» для IPv6).

Итак, если вы пытаетесь отправить трафик из вашего дома, через вашего интернет-провайдера, а затем через остальную часть основной интернет-магистрали интернет-провайдера, затем через интернет-провайдера жертвы, затем через маршрутизатор вашей жертвы и, наконец, на «частный IP» адрес по вашему выбору, то вы должны потерпеть неудачу. Это связано с тем, что интернет-провайдеры обычно следуют соглашению о блокировке трафика с использованием частных IP-адресов. (Интернет-провайдеры были бы сумасшедшими, если бы не делали этого.)

В приведенном выше сценарии защита не предоставляется провайдером целевой жертвы. Конечно, интернет-провайдер целевой жертвы, скорее всего, настроен так, чтобы отбрасывать пакеты, тем самым защищая маршрутизатор целевой жертвы. Однако ваш интернет-провайдер также может отбрасывать пакеты, поэтому пакеты даже не достигают провайдера целевой жертвы.

Проблема 4: Мотивация провайдера

Почему интернет-провайдеры сумасшедшие, чтобы разрешить трафик с участием частных IP-адресов?

Помните, что всем организациям разрешено использовать частные IP-адреса для своих внутренних сетей. Это включает в себя интернет-провайдеров. Ваш интернет-провайдер может использовать частную адресацию для некоторого локального оборудования интернет-провайдера. Вы не должны быть в состоянии заметить / обнаружить, делают ли они это или нет.

Маршрут трафика ISP заключается в том, что они полагаются на «таблицы маршрутизации», которые определяют, куда трафик должен идти дальше. Эти «таблицы маршрутизации» не указывают, какой другой провайдер будет рад получить трафик с личным адресом в качестве пункта назначения. Интернет-провайдеру некуда отправлять трафик, кроме как возможному для некоторого собственного внутреннего оборудования. Поскольку большой трафик, связанный с частными IP-адресами, вероятно, является вредоносным или иным образом проблемным (возможно, связан с трафиком, поступающим с устройства, которое настроено неправильно), интернет-провайдер, безусловно, не хочет, чтобы такой трафик передавался на его собственное внутреннее оборудование ( и, возможно, вызывает проблемы для интернет-провайдера). Поэтому интернет-провайдер захочет немедленно заблокировать пакеты, идущие на частный адреспрежде чем пропустить трафик через сеть провайдера.

Если интернет-провайдер нарушил эти правила, интернет-провайдер, скорее всего, будет приглашать вредоносный трафик, который, скорее всего, не окажет никакого влияния (кроме использования пропускной способности), но если бы он был, это, скорее всего, было бы плохо для провайдера.

Проблема 5: Что бы на самом деле произошло

До сих пор я объяснил, почему Интернет блокирует трафик. Но давайте посмотрим, что на самом деле произойдет.

Если вы сидите за компьютером и решили отправить вредоносный пакет на частный IP-адрес, что произойдет?

Если трафик достигнет вашего локального провайдера, этот локальный провайдер немедленно заблокирует трафик, как уже объяснено.

Однако, что действительно может произойти, так это то, что трафик не достигнет вашего локального интернет-провайдера. Вместо этого ваш локальный маршрутизатор выяснит, что делать с этим трафиком.

Если вы не используете один и тот же «частный» IP-адрес самостоятельно, то ваш собственный маршрутизатор, вероятно, не будет знать, что делать с трафиком, поэтому трафик будет отброшен.

В противном случае, если вы используете тот же «частный IP-адрес» самостоятельно, то, скорее всего, вы будете атаковать устройство в сети, в которой находитесь. Если вы являетесь администратором этой сети, то вы будете атаковать свою собственную сеть!

В любом случае ваш маршрутизатор вряд ли (при использовании стандартных конфигураций по умолчанию) будет передавать трафик через Интернет.

Обзор:

Все эти проблемы связаны с тем, почему Интернет не разрешает вашу атаку на частный IP-адрес. Если вы на самом деле находитесь в той же локальной сети, что и ваша цель, вам, возможно, даже не понадобится проходить через маршрутизатор, поэтому ни одна из этих защит не будет вам мешать. Однако, если вы находитесь в другом месте в Интернете, эти средства защиты, вероятно, будут препятствовать попытке совершить такую ​​атаку.

Хотя вы можете нарушать определенные стандартные правила с (по крайней мере, некоторыми типами) маршрутизаторами, которые вы можете контролировать, другие организации также могут блокировать частные IP-адреса, тем самым эффективно предотвращая атаки на удаленные системы.

Похожие вопросы