image Привет, Хаброжители! Практическое руководство по взлому компьютерных систем с нуля, от перехвата трафика до создания троянов. Книга «Этичный хакинг» освещает современные проблемы кибербезопасности и помогает освоить навыки, необходимые любому этичному хакеру. Сделайте первый шаг в карьере пентестера, ознакомившись с методами взлома, которые используют эксперты. Доктор Дэниел Г. Грэм — доцент кафедры информатики в Университете Вирджинии в Шарлоттсвилле. К сфере его исследовательских интересов относятся защищенные встраиваемые системы и сети. До того как начать преподавать в Университете Вирджинии, доктор Грэм был программным менеджером в компании Microsoft. Помимо всего прочего, он пишет статьи для журналов IEEE, посвященные датчикам и сетям.

Перехват трафика с помощью ARP-спуфинга


Любой человек, зашедший в кафе и подключившийся к сети Wi-Fi, может перехватывать и просматривать незашифрованный веб-трафик других пользователей, используя метод под названием ARP-спуфинг, который эксплуатирует уязвимость протокола определения адресов (address resolution protocol, ARP). В данной главе мы обсудим принцип работы протокола ARP, рассмотрим этапы проведения ARP-спуфинга, а затем осуществим эту атаку.

Передача данных в интернете

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

Пакеты

Вся информация в интернете передается пакетами, которые можно представить в виде конверта с данными, подлежащими отправке. Как и в случае с обычной почтой, эти пакеты направляются по указанному адресу. На рис. 2.1 продемонстрированы некоторые сходства между почтовыми конвертами и пакетами.

image


Раздел «От кого» на конверте содержит два важных фрагмента информации: 1) имя отправителя; 2) его адрес. Точно так же у пакетов есть MAC-адрес источника, который представляет отправившую пакет машину, и IP-адрес источника, который указывает, откуда поступил этот пакет. Другие аналогичные поля, называемые заголовками пакета, определяют пункт его назначения.

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

MAC-адреса

Ваш ноутбук оснащен сетевой картой (network interface card, NIC), которая позволяет ему подключаться к маршрутизаторам Wi-Fi. Эта карта имеет уникальный MAC-адрес (media access control, управление доступом к среде), позволяющий идентифицировать ваш компьютер в сети. Перед отправкой информации вашему компьютеру маршрутизатор помечает соответствующий пакет MAC-адресом вашего ноутбука, а затем передает его в виде радиосигнала. Все компьютеры, подключенные к данному маршрутизатору, получают этот радиосигнал и проверяют MAC-адрес пакета, чтобы выяснить, которому из них он предназначен. Как правило, MAC-адреса представляют собой 48-битные значения, записанные в шестнадцатеричном формате (например, 08:00:27:3b:8f:ed).

IP-адреса

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

IPv4-адрес кодирует информацию о сетевой иерархии в виде 32-битного числа. Обычно оно разделяется точками на четыре раздела (например, 192.168.3.1). Каждый раздел представляет собой восьмибитное двоичное число. Например, 3 в 192.168.3.1 — это восьмибитное двоичное число 00000011.

IP-адреса, принадлежащие одному и тому же региону иерархии, также имеют одинаковые биты верхнего уровня. Например, IPv4-адреса всех компьютеров в кампусе Университета Вирджинии имеют вид 128.143.xxx.xxx. В нотации CIDR (classless interdomain routing, бесклассовая междоменная маршрутизация) IP-адреса записываются в виде 128.143.1.1/16. Это указывает на то, что компьютеры используют одни и те же 16 старших бит или первые два числа. Поскольку IP-адреса имеют определенную структуру, маршрутизаторы могут использовать части IP-адреса, чтобы решить, как переместить пакет по иерархии. На рис. 2.2 показан упрощенный пример иерархии маршрутизаторов.

На рис. 2.2 также показан мультиплексор доступа к цифровой абонентской линии (Digital Subscriber Line Access Multiplexer, DSLAM), позволяющий передавать сигналы, имеющие отношение к интернет-трафику, по проводам, изначально предназначенным для кабельного телевидения. Устройство DSLAM отличает интернет-сигнал от телевизионного, что позволяет подключить телевизор и маршрутизатор к одному и тому же разъему.

Проследим за перемещением пакета по сетевой иерархии на примере кофейни. Представьте, что вы находитесь в кафе в Сан-Франциско и переходите на веб-страницу www.cs.virginia.edu, размещенную на веб-сервере с IP-адресом 128.143.67.11. На первом этапе веб-запрос проходит через сетевую карту вашего ноутбука, которая затем отправляет его на маршрутизатор Wi-Fi, установленный в кафе. Затем маршрутизатор отправляет веб-запрос мультиплексору DSLAM, который перенаправляет этот запрос на маршрутизатор интернет-провайдера (internet service provider, ISP), например, Comcast. Затем маршрутизаторы Comcast сравнивают IP-адрес со списком префиксов в поисках совпадения. Например, он может обнаружить соответствие префиксу 128.xxx.xxx.xxx, указывающему на конкретный раздел иерархии. По мере перемещения запроса по иерархии совпадения становятся более конкретными, например, сначала 128.143.xxx.xxx, а затем 128.143.67.xxx. Как только пакет достигнет самого нижнего уровня иерархии, на котором отсутствуют другие маршрутизаторы, маршрутизатор использует MAC-адрес, содержащийся в пакете, для определения пункта назначения запроса. Самый нижний уровень иерархии называется локальной вычислительной сетью (local area network, LAN), поскольку все компьютеры на этом уровне подключены к интернету через один маршрутизатор.

image


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

ARP-таблицы

Мы выяснили, что после того, как пакет достигает заданной LAN, сеть использует MAC-адрес пакета, чтобы определить его пункт назначения. Но как маршрутизатор узнает MAC-адрес компьютера с IP-адресом 128.143.67.11? Для этого используется протокол ARP. Маршрутизатор отправляет сообщение, называемое ARP-запросом, всем компьютерам в сети, предлагая машине с IP-адресом 128.143.67.11 прислать ARP-ответ со своим MAC-адресом. Затем маршрутизатор сохраняет результат сопоставления IP-адреса и MAC-адреса в специальной ARP-таблице, что избавляет его от необходимости повторно отправлять ARP-запросы в ближайшем будущем.

Если вкратце
MAC-адрес идентифицирует ваш компьютер, IP-адрес определяет его местоположение, а ARP-таблицы хранят результаты сопоставления этих фрагментов информации. При проведении ARP-спуфинга мы стремимся выдать себя за кого-то другого.

Атака методом ARP-спуфинга

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

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

Простая схема ARP-спуфинга показана на рис. 2.3. В данном случае Джейн (злоумышленник) обманом заставляет Алису (жертву) отправить ей письмо.

image

ARP-спуфинг — пример атаки посредника (man in the middle, MITM), поскольку злоумышленник в данном случае оказывается между жертвой и маршрутизатором.

Выполнение ARP-спуфинга

Перед реализацией ARP-спуфинга запустите виртуальные машины pfSense, Kali и Metasploitable. Соответствующие инструкции приведены в главе 1. Теперь установим инструменты, которые нам понадобятся для проведения этой атаки. Откройте терминал виртуальной машины Kali Linux и установите инструмент dsniff. По умолчанию в Kali Linux используется пароль kali. Выполните команду sudo -i, чтобы стать пользователем root. Вам также потребуется обновить менеджер пакетов apt-get, выполнив команду apt-get update.

kali@kali:~$ sudo -i
kali@kali:~$ apt-get update
kali@kali:~$ apt-get install dsniff


Утилита dsniff содержит несколько полезных инструментов для перехвата сетевого трафика, в том числе инструмент arpspoof, который позволяет выполнять ARP-спуфинг.
Чтобы выдать свой компьютер за другие машины в сети, сначала мы должны выяснить их IP-адреса. Запустите инструмент netdiscover, используя следующую команду:

kali@kali:~$ sudo netdiscover


Инструмент netdiscover сканирует сеть, рассылая ARP-запросы по всем IP-адресам в подсети и после получения ответа от подключенного к ней компьютера записывает и отображает его MAC- и IP-адрес. Кроме того, этот инструмент определяет производителя сетевой карты по MAC-адресу. Для обеспечения уникальности всех MAC-адресов Институт инженеров по электротехнике и электронике (Institute of Electrical and Electronics Engineers, IEEE) выдает производителям диапазон MAC-адресов.

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

image


Фактические IP-адреса будут зависеть от ваших настроек. Как правило, машина с наименьшим IP-адресом является маршрутизатором в локальной сети. В оставшейся части этой главы мы будем называть данный IP-адрес <IP-адрес_маршрутизатора>.

Второй IP-адрес, принадлежащий виртуальной машине Metasploitable (нашей жертве), мы будем называть <IP-адрес_жертвы>. Как только вы обнаружите обе машины, завершите сканирование, нажав сочетание клавиш Ctrl+C.

Теперь вам нужно разрешить машине Kali Linux пересылать пакеты от имени других машин, включив пересылку IP-пакетов. Убедитесь в том, что являетесь пользователем root в машине Kali Linux, а затем включите пересылку IP-пакетов, установив соответствующий флаг:

kali@kali:~$ echo 1 > /proc/sys/net/ipv4/ip_forward

Теперь вам нужно заставить жертву поверить в то, что ваш компьютер является маршрутизатором. Для этого отправьте поддельные ARP-ответы, говорящие о соответствии вашего MAC-адреса IP-адресу маршрутизатора. Схема данного этапа атаки представлена на рис. 2.4.

image


Вы можете сгенерировать несколько поддельных ответов ARP, выполнив команду:

arpspoof -i eth0 -t <IP-адрес_жертвы> <IP-адрес_маршрутизатора>

Флаг -t обозначает цель, а флаг -i — интерфейс. Ваша сетевая карта поддерживает несколько способов подключения к сети. Например, wlan обозначает беспроводную локальную сеть (соединение Wi-Fi), а eth0 — соединение Ethernet. В нашей виртуальной лаборатории машины связаны через Ethernet, поэтому в качестве интерфейса мы будем использовать eth0. Если бы вы находились в кафе, то в качестве интерфейса выступала бы сеть wlan.

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

kali@kali:~$ sudo arpspoof -i eth0 -t 192.168.100.101 192.168.100.1
[sudo] password for kali:
8:0:27:1f:30:76 8:0:27:fe:31:e6 0806 42: arp reply 192.168.100.1 is-at 8:0:27:1f:30:76 
8:0:27:1f:30:76 8:0:27:fe:31:e6 0806 42: arp reply 192.168.100.1 is-at 8:0:27:1f:30:76



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

  1. 8:0:27:1f:30:76 — MAC-адрес машины Kali Linux (компьютер злоумышленника), создавшей пакет.
  2. 8:0:27:fe:31:e6 — MAC-адрес компьютера (жертвы), который получит этот пакет.
  3. 0806 — поле типа, указывающее на то, что ARP-пакет содержится в передаваемом Ethernet-кадре.
  4. 42 — общее количество байтов, содержащихся в Ethernet-кадре.
  5. Последний фрагмент, arp reply 192.168.100.1 is-at 8:0:27:1f:30:76, представляет собой краткое содержание поддельного ARP-ответа, в котором указано, что IP-адрес маршрутизатора (192.168.100.1) соответствует MAC-адресу машины Kali Linux (8:0:27:1f:30:76).

Для перехвата входящего интернет-трафика от имени жертвы вам также необходимо заставить маршрутизатор поверить в то, что ею являетесь вы. Откройте новое окно терминала и выполните следующую команду. Обратите внимание на то, что <IP-адрес_маршрутизатора> и <IP-адрес_жертвы> поменялись местами. Это связано с тем, что теперь вы генерируете пакеты, чтобы обмануть маршрутизатор, выдав себя за жертву:

kali@kali:~$ arpspoof -i eth0 -t <IP-адрес_маршрутизатора> <IP-адрес_жертвы>

Теперь, когда вы обманули компьютер жертвы и маршрутизатор, проверим перехваченные пакеты и извлечем из них URL. Это позволит нам создать список сайтов, которые посещает жертва. Извлеките URL, выполнив следующую команду в новом окне терминала:

kali@kali:~$ urlsnarf -i eth0

Вы также можете сгенерировать некий интернет-трафик на компьютере жертвы. Аутентифицируйтесь в виртуальной машине Metasploitable, используя msfadmin в качестве имени пользователя и пароля, а затем введите следующую команду, чтобы сгенерировать веб-запрос для google.com:

msfadmin@metasploitable:~$ wget http://www.google.com

На рис. 2.5 схематически показано, что происходит на данном этапе.

image


Если вы все сделали правильно, то через пару минут в окне терминала отобразится связанный с веб-запросом URL. Проявите терпение; для анализа пакетов требуется время:

kali@kali:~$ sudo urlsnarf -i eth0
urlsnarf: listening on eth0 [tcp port 80 or port 8080 or port 3128]
192.168.100.101 - - "GET http://www.google.com/ HTTP/1.0"

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

Достигнув цели, не следует оставлять ARP-таблицы в поврежденном состоянии. Когда злоумышленник покинет кафе, жертва больше не сможет подключиться к интернету и заподозрит неладное. Перед завершением атаки необходимо восстановить исходную конфигурацию ARP-таблиц. К счастью, инструмент arpspoof способен сделать это за нас. Завершите атаку, нажав сочетание клавиш Ctrl+C в обоих терминалах c запущенным arpspoof.

ЗАЩИТА ОТ ARP-СПУФИНГА
Несмотря на то что предотвратить атаку этого типа довольно сложно, шифрование интернет-трафика помогает защитить информацию от кражи и изменения. Любой трафик, отправляемый через HTTPS-соединение, является зашифрованным. Однако проверять URL каждой посещаемой страницы вручную довольно утомительно, поэтому Фонд электронных рубежей (Electronic Frontier Foundation, EFF) (eff.org) создал расширение браузера (для Chrome, Edge, Firefox и Opera) под названием HTTPS Everywhere, которое гарантирует то, что весь ваш сетевой трафик проходит через HTTPS-соединение. Таким образом, установка данного плагина — отличный способ защитить себя.

Более подробно с книгой можно ознакомиться на сайте издательства
» Оглавление
» Отрывок

По факту оплаты бумажной версии книги на e-mail высылается электронная книга.

Для Хаброжителей скидка 25% по купону — Hacking

Комментарии (4)


  1. Valser
    17.02.2022 16:40

    Купить с доставкой в Украину, чтобы получить и в электронном виде, есть возможность?


    1. ph_piter Автор
      17.02.2022 16:43

      К сожалению, нет


    1. Vilos
      18.02.2022 09:37

      Неужели у вас нет товарища в России? Делаете покупку на российский адрес, а e-mail указываете свой (то бишь украинский)....правда товарищь бумажный экземляр получит, но я так понял вам важнее получить электронную версию чем бумажную.

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


    1. ph_piter Автор
      18.02.2022 12:02

      Бумажную книгу Вам можно будет купить здесь, через 1-2 недели

      Купить книги в Киеве, Украине - цена в интернет-магазине Аконит, доставка почтой (akonit.net)