2. Захват сеанса



Захват сеанса


Сетевые устройства поддерживают весь корпоративный поток сообщений. Каждое сообщение электронной почты, каждый файл, каждый номер кредитной карточки клиента передается по сети и обрабатывается этими устройствами. Очевидно, что обеспечение их безопасности является первоочередной задачей. Поэтому никогда нельзя исключать возможности, что сетевой трафик будет перехвачен злоумышленником. Ниже вы узнаете, как это можно осуществить с помощью так называемого захвата соединения TCP (TCP hijacking).
Такой подход стал возможным из-за наличия ошибок в протоколе TCP. Протоколы TCP/IP допускают внедрение в поток сообщений ложного пакета, позволяя тем самым запускать команды на удаленном узле. Однако этот тип взлома возможен только в сети с множественным доступом (этому вопросу посвящен раздел "Множественный доступ и коммутация пакетов" главы 10, "Сетевые устройства"), и для него нужно немного везения. С помощью программы Juggernaut или Hunt взломщик может попытаться "подсмотреть" передаваемые данные, а затем перехватить соединение.

Juggernaut



Одна из первых попыток применить на практике теорию захвата TCP была предпринята Майком Шиффманом (Mike Schiffman), в результате чего появился продукт Juggernaut (возможно, многие вспомнят Майка по его предыдущей программе. Появление этого бесплатного программного продукта оказалось революционным в том отношении, что с его помощью можно было "шпионить" за соединением TCP, а затем на некоторое время его захватывать. Это позволило взломщикам вводить команды в качестве легитимного пользователя. Например, если сетевые устройства используются в сети с множественным доступом, то взломщики могут отслеживать соединения, а затем перехватить сеанс telnet или ввести пароль для устройств Cisco.

Juggernaut
?) Help
0) Program information
1) Connection database
2) Spy on a connection
3) Reset a connection
4) Automated connection reset daemon
5) Simplex connection hijack
6) Interactive connection hijack
7) Packet assembly module
8) Souper sekret option number eight
9) Step Down

Одной из лучших возможностей программы Juggernaut является функция simplex connection hijack (захват симплексного соединения). Эта возможность позволяет взломщику посылать команды в локальную систему. Применение режима interactive connection hijack (захват интерактивного соединения) всегда было затруднено, поскольку из-за большого потока сообщений АСК связь часто прерывалась. Однако зачастую возможности захвата симплексного соединения оказывается вполне достаточно. Она позволяет взломщику отправить, например, команду enable password О hello, которая выполнится на удаленном узле и отменит шифрование пароля.

Hunt



Утилита Hunt (ее можно найти на Web-узле http://www.cri.cz/-kra/index.html#HUNT) — это еще одна программа перехвата, отличающаяся стабильностью работы. Ее автор, Павел Крауз (Pavel Krauz) создал замечательную программу, которая наглядно демонстрирует недостатки протокола TCP.
Как и Juggernaut, программа Hunt позволяет взломщику легко следить за соединением и, таким образом, выведывать такую ценную информацию, как пароли. Как это происходит, видно из следующего примера.

--- Main Menu---rcvpkt 1498, free/alloc pkt 63/64 ---
1/w/r) list/watch/reset connections
u) host up tests
a) arp/simple hijack (avoids ack storm if arp used)
s) simple hijack
d) daemons rst/arp/sniff/mac
o) options
x) exit
> w
0) 172.29.11.207 [1038] -> 172.30.52.69 [23]
1) 172.29.11.207 [1039] -> 172.30.52.69 [23]
2) 172.29.11.207 [1040] -> 172.30.52.66 [23]
3) 172.29.11.207 [1043] -> 172.30.52.73 [23]
4} 172.29.11.207 [1045] -> 172.30.52.74 [23]
5) 172.29.11.207 [1047] -> 172.30.52.74 [23]
choose conn> 2
dump [s]rc/[d]st/[b]oth [b]> s
CTRL-C to break
uname -a su
hello
cat /etc/passwd

В процессе наблюдения за сеансом telnet в системе UNIX взломщик может получить ценную информацию, например (как видно из предыдущего примера) пароль пользователя root. Утилита Hunt предоставляет также возможность передачи команд на удаленный узел и их выполнения. Например, взломщик может передавать команды, а результат их выполнения будет отображаться только на его компьютере, что в значительной мере затрудняет его обнаружение.

---Main Menu--- rcvpkt 76, free/alloc pkt 63/64---
1/w/r) list/watch/reset connections u) host up tests
a)arp/simple hijack (avoids ack storm if arp used)
s) simple hijack
d) daemons rst/arp/sniff/mac
o) options x) exit > s
0) 172.29.11.207 [1517] --> 192.168.40.66
[23] choose conn>0
dump connection y/n [n]>n
dump [s]rc/[d]st/[b]oth [b]>
print src/dst same characters y/n [n]>
Enter the command string you wish executed or [cr]>
cat /etc/passwd cat /etc/passwd
root:rhayrl.AHfasd:0:1:Super-User:/:/sbin/sh daemon:x:
1:1::/: bin:x:2:2::/usr/bin: sys:x:3:3::/
:adm:x:4:4:Admin:/var/adm:
Ip:x:71:8:Line Printer Admin:/usr/spool/lp:
uucp:x:5:5:uucp Admin:/usr/lib/uucp:
nuucp:x:9:9:uucp Admin:/var/spool/uucppublic:/usr/lib/
uucp/uucicc listen:x:37:4:Network Admin:/usr/net/nls:
nobody:x:60001:60001:Nobody:/: noaccess:x:60002:60002:
No Access User:/: nobody4:x:65534:65534:SunOS 4.x Nobody:/:
sm:a401ja8fFla.;:100:1::/export/home/sm:/bin/sh
[r]eset connection/[s]ynchronize/[n]one [r]>n
done

Как видно из приведенного примера, на удаленный узел может быть передана довольно коварная команда (cat /etc/passwd), а полученный результат отобразится лишь на компьютере взломщика.

Контрмеры против захвата соединений



Применение шифрующих коммуникационных протоколов, например IPSec или SSH, позволит значительно снизить или свести к нулю эффективность таких перехватов данных. Когда-то считалось, что технология сетей с коммутацией пакетов обеспечивает адекватную защиту от взломов подобного рода, но с тех пор средства сетевого мониторинга стали настолько хитроумными, что при определенных обстоятельствах они позволяют добиться желаемого результата (см. описание утилиты dsnif f в главе 8). Поэтому кодирование информации является самой лучшей защитой.