битва в канале ДРОЗДОВ АНДРЕЙ 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. |