Новости Пару слов о "Человеке посередине"

blackzert
, 23 September 2009

Всё что пойдет дальше, скорее просто размышления, чем что-то научное. За сим, прошу не воспринимать мои высказывания как нечто поучитильное - это лишь пару моих мыслей. Со временем их, возможно, станет чуточку больше, поэтому если кого заинтересует - обсуждаем.

Речь пойдет об атаке "человек посередине".

Вкратце и на пальцах.

Пусть у нас имеются два абонента - А и Б, которые обмениваются по какому-то незащищенному каналу связи сообщениями. Есть некто Ц, кто стоит между А и Б и пропускает через себя их сообщения. Передаёт их. Как почтовый сервис. Как воздух во время общения речью.

Плохо?

Пусть меня особо не распинывают более компетентные в данном вопросе товарищи, это всего лишь мысли. Повторился )

Итак, что же плохо? Понятно, что Ц может поменять что-то в пакетах и тогда А уже не увидит красивое признание от Б, а лишь, к примеру, бранные слова. Ну или котенка. А может быть и такое, что Ц ничего не будет отдавать. Ну да всякое может быть. И так оно звучит в теории, так оно может быть, а вот на практике что же остается?..

Для осветления этого вопроса, перейду к частностям и буду писать непосредственно на примерах. Буду писать постепенно, чтобы изнурить своего читателя в ожиданиях, так что будьте готовы.  =)

1. Wi-Fi

Итак, все почему я придумал сиё беспутство, было порождено следующей схемой - Wi-Fi, точка, клиент и еще клиент.  Б, А и Ц соответственно. А посылает Б свои байты, Б в свою очередь передаёт их интернету, но вот беда - Ц всё слышит.. и даже может подделывать голоса. Как? Чуть позже осветим. Главное не забыть лампочку :)

Итак, Ц слышит. К примеру Ц слышит содержимое Web-form... Прикольно.. К примеру, пароли... Менее прикольно... И записывает.. А поскольку Б пользуется интернетом, то тут тебе и пароли от мыла, и от аськи, и от соц сетей всяких. Ну вроде бы и не опасно, скажут некоторые. Мол, чо такого ценного в них есть.. Ну помимо того, что Коля любит Машу и зацепиться то не за что.. Ну напишет Ц какую-нибудь гадость у А, ну сменит А пароль и всё. not fun. как бы неопасно..

Глянем глубже - пусть Г дал А ссылки на приватную инфу. Теперь она принадлежит и Ц. Это могут быть файлы музыки, фильмов, фотографии, видеоролики и прочие.

Вроде пока как то не очень убедительно... Что еще?.. А вот что еще, то как раз очень хитрое.  К примеру Ц подделает голос А и скажет что-то плохое....

Что именно? Пожалуй вернемся к этому позже. Сейчас поговорим о реализации данной схемы на практике.

Итак, что потребуется:

  • Ноутбук с wi-fi карточкой
  • Установленная операционка  с блэкджеком ;)
  • Wireshark
  • Беспроводная сеть в которой нас ждут)

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

Есть такая интересная фича в вайршарке, он умеет раскидывать лог по файлам, причём умеет раскидывать по некоторому их количеству, и закольцовывать. Это нам дает детальный анализ к примеру другими процессами. Пусть себе пакеты собираются, а другой процесс выбирает из них то, что нам нужно. к примеру, следущий код на пхп может быть использован дла фильтрации флагов. или сессий кукизов ;)

<?
while(true)
{
    $dir=opendir('logs');
    while($file=readdir($dir)){ // читаем все файлы в директории
        if($file=='.'||$file=='..') continue; // если это директории типа '.' - текущей или '..' - верхрней, то пропустим их
        $cont=file_get_contents($file);// отправляем содержимое в строку
        if(preg_match_all('/[0-9a-f]{32}/',$cont,$matches)){ // если есть хотябы одно совпадение, то все совпадения будут в массиве
            $matches=$matches[0]; // забираем всё, всё лежит по нулю. )
            foreach($matches as $flag){ // перебираем все
                    echo $flag."\n"; // и выводим на экран
                }
        }
    }
}
</code??>
Скрипт будет доставать флаги из файлов и выкидывать их на экран. ну к примеру. Можно также их сразу же сдавать.
Тут вроде бы всё понятно, как минимум мне // :)
<h6>Что дальше?</h6>
Дальше у меня возникла следущая мысль. А что если охота изменить ответ от сервера клиенту?.
Если вспомнить протокол tcp, и успеть передать пакет до того, как его передаст точка, то теоретически можно отправить к примеру ответ от имени вэб сервера совсем другое содержимое. Тоесть идея в том, чтобы представившись точкой доступа, отправить клиенту на http запрос вернуть ему какой нибудь червь эксплуатирующий дыру в браузере
>Собственно о реализации данной идеи дальше не только пойдет речь, но и мои размышления.. за сим ушел читать маны.