Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #72, НОЯБРЬ 2006 г.

битва в канале

ДРОЗДОВ АНДРЕЙ AKA SULVERUS

Спецвыпуск: Хакер, номер #072, стр. 072-028-5


[сверлим каналы.]

Самым простым способом перехвата данных будет непосредственное подключение на канал, но для этого необходимо точно знать тип протокола и порт. Вернемся к нашему приложению и вновь запустим сервер. Теперь откроем любой браузер и зайдем по адресу http://localhost:5000:/RemoteObjectPort. В окне браузера мы увидим консольный вывод, такой же, как если бы мы запустили программу без параметров. Чуть больше информации даст нам возможность соединиться с http-каналом через telnet. Там мы увидим версию .NET и вывод с текстом о том, что никаких параметров не было передано. То же самое мы увидим, если открыть cmd и в консоли ввести:

telnet localhost 5001

После некоторых раздумий сервер выплюнет нам сообщение об ошибке - протокол tcp в каналах также легко перехватывается! Более того, соединение проходит не только с локалхоста, но и с любого компьютера из сети, и даже из интернета. А если передать параметры при помощи программы, подготовленной хакером, то сервер может выполнить ЛЮБОЙ код в системе! Такие обстоятельства делают .NET Remoting крайне уязвимой. Однако все просто только с нашим примером, поскольку в реальных условиях хакер не знает, на каких портах находятся каналы и какие протоколы ей используются. Однако уже сегодня есть канальные сниферы, отслеживающие все запущенные каналы и протоколы, использующиеся .NET Remoting. Самым известным и удобным, на мой взгляд, является .NET-сниффер netstat. Также есть независимый проект tcptrace, обладающий практически такими же функциями (эту программу ты найдешь на компакт-диске к журналу). Для того чтобы найти все постоянные каналы, нужно просто выполнить команду

C:\netstat

А чтобы просмотреть текущие каналы, надо выполнить команду

C:\netstat -a

И мы увидим каналы нашего сервера:

TCP/HTTP sulvlab1:5000 sulvlab1:0 LISTENING

TCP sulvlab1:5001 sulvlab1:0 LISTENING

И теперь, перехватив адреса, порты и протоколы, мы можем осуществить атаку. Если канал защищен, все каналы нашего сервера будут видны как TCP. Для решения этой проблемы можно написать простой брутфорс, который будет подбирать протокол к каналу. Возможно, некоторые сильно обрадовались грядущим дыркам в Windows Vist'e. Но мы не дадим в обиду злобным хакерам наивных и добрых пользователей и используем методы защиты канала, реализованные в .NET Framework 2.0.

Назад на стр. 072-028-4  Содержание  Вперед на стр. 072-028-6