порты. В коаксиальных сетях репитер не является обязательным компонентом, и при подключении методом общей шины можно обойтись без него.
В сетях на витой паре и коаксиальных сетях, построенных по топологии «звезда», репитер присутствует изначально.
Свитч (от англ. switch – коммутатор), также называемый интеллектуальным хабом/маршрутизатором, представляет собой разновидность репитера, передающего данные только на порт того узла, которому они адресованы, что предотвращает возможность перехвата трафика (во всяком случае, теоретически).
Для перехвата трафика на модемном подключении через обычную или электронную АТС (то есть не через кабельный модем) необходимо перепрограммировать маршрутизатор, находящийся у провайдера, что непросто сделать, однако у большинства провайдеров он так криво настроен, что посторонний трафик сыплется сам – только успевай принимать. В основном он состоит из обрывков бессвязного мусора, но порой в нем встречается кое-что интересное (например, пароли на почтовые ящики).
С другой стороны, перехват Dial-Up трафика позволяет исследовать все пакеты, принимаемые/отправляемые твоей машиной. Когда огонек модема возбуждающе мигает, но ни браузер, ни почтовый клиент, ни файлокачалка не активны, разве не интересно узнать, какая зараза ломиться в сеть, что и куда она передает? Вот тут-то локальный снифер и помогает!
Не все сниферы поддерживают соединения типа PPP, хотя с технической точки зрения это даже проще, чем грабить Ethernet. Переводить сетевую карту в неразборчивый режим не нужно, достаточно лишь сформировать сырой IP-сокет. Правда, если операционная система создает для PPP-соединения виртуальный сетевой адаптер, то ситуация становится неоднозначной. Некоторые драйвера требуют перехода в неразборчивый режим, некоторые – нет. За подробностями обращайся к документации на свою операционную систему.
Чтобы снифать трафик и гарантированно остаться незамеченным, достаточно настроить карту только на прием пакетов, запретив передачу на аппаратном уровне. На картах с витой парой для этого нужно просто перерезать передающие провода (обычно они оранжевого цвета). И хотя существует оборудование, позволяющее засечь левое подключение, подавляющему большинству организаций оно недоступно, поэтому реальная угроза разоблачения хакера мала.
Разумеется, stealth-сниффинг поддерживает только пассивный перехват, и потому в сетях с коммутатором придется дожидаться пиковой загрузки последнего, при которой он дублирует поступающие данные на все порты, как обычный хаб.
Никита Кислицин, редактор рубрики «Взлом» журнала «Хакер»:
«Чрезвычайно эффективным методом взлома компьютерных сетей является снифинг данных. Что и говорить, зачастую бывает куда проще отснифать пароль к какому-то ресурсу, нежели ломать систему „с головы“. Однако прошло время, когда, запустив простейший пакетный снифер, любой желающий получает доступ ко всем данным, передаваемым по локалке. Большинство компьютерных систем строятся сейчас на базе коммутируемых сетей, в которых пакетные сниферы бессильны. Тут то на помощь и пришла атака Man- In-the-Middle и ARP-спуфинг как частный ее случай. От этого уже никуда не деться, поэтому в очередной раз спешу напомнить сетевым администраторам о целесообразности использования защищенных соединений, в которых потоки информации криптуются стойким алгоритмом и передаваемая информация недоступна сетевым злодеям».
Большинство сниферов представляют собой вполне легальные средства мониторинга и не требуют установки дополнительного оборудования.
Слово «sniffer» является торговой маркой компании Network Associates, распространяющей сетевой анализатор «Sniffer(r) Network Analyzer».
Пассивный снифинг позволяет перехватывать лишь ту часть трафика, которая физически проходит через данный узел.
Для перехвата трафика карту необходимо перевести в неразборчивый режим, в котором на IP- уровень передаются все принятые пакеты.
Перевод интерфейса в неразборчивый режим не проходит бесследно и легко обнаруживается утилитой ifconfig.
Никакой авторизации для обновления ARP-таблицы не требуется!
Некоторые операционные системы самостоятельно обнаруживают факт захвата своего IP-адреса посторонним узлом.
Xploits. How to? / Эксплоиты под *nix для начинающих
Hi-Tech ([email protected], http://nsd.ru)
Очень часто требуется добыть важную информацию, упрятанную на вражеском сервере. В большинстве случаев эта информация рядовому пользователю системы недоступна, поэтому встает вопрос о повышении прав в системе, разрешается который при помощи специальных программ – эксплоитов.
Эксплоиты – специальные программы, использующие уязвимости в том или ином компоненте системы или сервисе с целью повышения или получения прав в системе либо для деструктивных целей, например, DOS-атак. Для поиска уязвимостей чаще всего берутся сервисы или компоненты системы, запущенные с высокими привилегиями, или приложения, принадлежащие руту, у которых установлен бит SUID/SGID. Практически все программные эксплоиты используют уязвимости класса buffer overflow. Как ты, наверное, уже догадался, взломщик, а, точнее, shell-код (набор машинных инструкций, который заполняет собой переполненный буфер), встроенный в эксплоит, получит права дырявого приложения и предоставит их атакующему, например, в виде открытого на каком-либо порту shell’а с повышенными правами. Немного по-другому обстоят дела с DoS-эксплоитами, shell-код которых представляет из себя своего рода «кракозябру», не имеющую никакого лексического значения, и поэтому приложение, пытаясь понять, что же это такое, сваливается в кору (core), или, говоря простым языком, глючит и зависает. Если ты не знаешь, что значит выпадать в core, приведу аналогичный пример из Винды, с которым ты уж точно не раз сталкивался: программа зависает и выдает окошко «programm.exe – Ошибка приложения» примерно такого содержания: «Инструкция по адресу 0x12121212 обратилась к памяти по адресу 0x13131313. Память не может быть 'read'». Отличие лишь в том, что *nix-системы пишут на диск своеобразный дамп памяти, по которому можно определить причину ошибки.
Существует множество различных типов переполнения буфера, соответственно, и причин столько же. Чтобы наглядно показать тебе, каким образом получаются переполнения, я приведу пример.
#include <stdio.h>
int main()
{