Хакер №024. Спецвыпуск
Хакер №024. Спецвыпуск

Intro\
Спецвыпуск Xakep, номер #024, стр. 024-001-1
"Нуууууу, где же вы <пиб>, ай, выручайте дядю!!!" (с) Ленинград – только и остается завыть, когда утром залогинившись в систему, обнаруживаешь девственно пустой кластер хардов, прожранный за ночь месячный трафик всей конторы или характерный /var/www/html/index.html.bup, а в самом index.html - какой-нибудь симпотный дефейс... Что тут можно сказать: сколько бы всякие бюллетени по сетевой безопасности не капали на мозги, мол, файерволл – это не панацея от всех атак, на практике оказывается именно так.\\\\\
Ох, сколько же админов ограничиваются в секюрности своих систем только настройкой файерволла! А что им делать? Там у секретарши ворд не открывается, тут у тупого менеджера файл не печатается, и за всем этим делом надо поспевать. А секюрность... Ну, файерволл есть, и то хорошо – большинство хулиганствующих малолеток отвалятся, наткнувшись на огненную стену, а если попадется реальный хацкер... А хацкерам в моей сети, типа, делать нечего, ничего интересного для них тут нет.\\\\\
А потом - "Нуууууу, где же вы <пиб>...!!!" и попа, готовящаяся принять детородный орган начальства.\\\\\
Плохо. Не хорошо. Но ничего поделать нельзя, закон природы – голодный и злой всегда пожирает беспечного и откормленного. Так что, ребята, давайте приступим к изучению файерволлинга ;) – в жизни пригодится. Этот номер мы решили посвятить как раз этому делу:\\\\\
Ну, надеюсь, что очередной Спец даст тебе хорошего пинка в плане изучения сетевой секюрити и устремит тебя дальше по той же дорожке с хорошей инерцией :). Увидимся в следующем месяце!\\\\\
n0ah\\\\\
Содержание
Хакер №024. Спецвыпуск

БИТЫ: схема Инета
demiurg (arkhangel@mail.ru)
Спецвыпуск Xakep, номер #024, стр. 024-004-1
Привет, кулхацкер. Вот ты сейчас прочитал новый Спец-Хакер и уже готов ломануть сайт мелкомягких, прорваться через заграждения портала www.nato.gov, ощутить опьяняющий ментальный оргазм, взламывая базу кредиток www.porno.com... Но все это мечты, а знаешь ли ты, как вообще построен Интернет? Каким образом, набирая www.playboy.com, ты лицезреешь на своем роскошном 22-дюймовом мониторе (я ведь прав?) обольстительных красоток, а не потного фидошника. Что ты сказал? Интернет - это компьютер... Хм... Достойный ответ. А как тогда они соединяются? Мдя... Проводами? Да... давай разбираться, а то потом будет просто стыдно перед слепой девушкой с весами, когда будут оглашать приговор...
Я РАНЕН ТАК, ЧТО ВИДЕН МОЗГ
Что такое Интернет? Интернет - это сеть сетей. В таком же случае что такое сеть, спросишь ты? Сеть - это группа компьютеров, соединенных между собой. Как видишь, определения очень расплывчаты, давай разберемся. В идеале один комп представляет собой сеть, в которой только этот комп и существует. У него даже есть IP адрес - 127.0.0.1. Т.е. не имея никакой сетевой карты, ты уже имеешь свою маленькую сетку с самим собой. Разумеется, этого мало - допустим, ты и твой друг Гоша решили поиграть в кваку, для этого ты тащишь к Гоше свой комп... сразу же возникает вопрос, а как же их соединить? Бежим на Савеловку, покупаем у барыги две сетевухи + витую пару пару метров. У тебя с Гошей сейчас два компьютера - сетевухи вставлены - соединены... но возникает вопрос: как же компы будут различаться? По имени, говоришь? Ты представляешь, сколько в мире компов? Если каждый юзер захочет, чтобы его компьютер идентифицировался уникальным именем - то никаких слов не хватит, и появится масса безликих - veryprettysexypornogirl8932 или rulezzzcoolfuckman2971. Я не хочу ничего сказать, имя компьютера очень часто используется в сети (тем более в локальной), но так как мы моделируем свой маленький Интернет, это имя остается вторичным, а идентификация компов определяется IP адресом. Помнишь, в начале статьи мы говорили, что у каждого компа есть собственный IP - так вот, он никуда не делся. Пингуя, ты всегда можешь получить от своего же компа ответ, но установив сетевые карты (и разумеется, правильно настроив их), мы получим два IP: один твой (пусть будет 192.168.0.1), а второй для Гоши (192.168.0.2). Мы получили маленькую сеть из двух компьютеров, которые распознают друг друга (по IP) и, разумеется, в состоянии обмениваться информацией. Все понятно? Тогда усложняем ситуацию...
А ЧТО ЭТО ЗА ДЕВУШКА И ГДЕ ОНА ЖИВЕТ?
Все идет своим чередом... Вы с Гошей играете в кваку, но вдруг из другого подъезда к вам приходит девочка Алиса, которая тоже не прочь поиграть в кваку. Получается, что сеть разрастается. На базе витой пары нельзя соединить более двух компов - придется приобретать концетратор (он же хаб или свитч (switch)). Хабу (удлинителю) наплевать, что за трафик через него ползет. А свитч же представляет собой интеллектуальное устройство: все дело в том, что любая сетевуха имеет собственный уникальный (это очень важно) MAC адрес. Так вот, свитч запоминает его и уже контролирует трафик.
Содержание Вперед на стр. 024-004-2
Хакер №024. Спецвыпуск

БИТЫ: схема Инета
demiurg (arkhangel@mail.ru)
Спецвыпуск Xakep, номер #024, стр. 024-004-2
Постепенно ваша сеть разрастается, подключаются новые подъезды, и вы задумываетесь - неплохо бы подключиться к Интернету. Не вопрос! Находите ближайшего провайдера, он кидает до вашего свитча шнур и выделяет вам один IP адрес. Что? Да. Вы не ослышались - именно один, на самом деле больше и не надо... Мы просто подходим к самому интересному.
НЕ ПЛАЧЬ, АЛИСА, ТЫ СТАЛА ВЗРОСЛОЙ
Возникает масса вопросов... Что за IP выделил провайдер, зачем он нужен, почему только один? Вернемся к началу - вспомни, что у каждого компа вашей сети есть IP адреса (у тебя 192.168.0.1 и т.д.), но эти IP существуют только в локальной сети и для Интернета открыты не будут. Провайдер выделяет тебе IP адрес из своей подсети, но что с ними делать?
Как им пользоваться? Проведу небольшую аналогию - допустим, Гоша обиделся на тебя (т.к. тебе Алиса дала, а ему нет). Он показывает пальцем на дверь и отлучает тебя от сети. Думает, что ты пропадешь... Фигушки :). У тебя еще сохранился модем на 14400 + аккаунт в Интернет. Ты звонишь провайдеру - выходишь в Интернет. Получаешь IP, только автоматически, т.к. у провайдера уже стоит специальный сервер (DHCP), который отвечает за раскидон IP адресов юзерам и выполняет всякую черную работу (чтобы двум юзерам один и тот же адрес не кинуть). Та же самая ситуация и с локалкой, только разница в том, что на дайлапе IP у тебя меняется от подключения к подключению, а в локалке провайдер выделил тебе статический IP, который уже никуда не денется.
ОСТАВЬ ОДЕЖДУ ВСЯК СЮДА ВХОДЯЩИЙ
Ну ладно, допустим - разобрались с IP. А что же делать со шнуром, который кинул провайдер? Совать в свитч! Давай решимся на такой эксперимент... (хотя на самом деле это ошибка). Естественно, чтобы защититься от вторжений извне - надо ставить файрволл, причем на каждую локальную машину. Это хорошо, если у тебя в сети 2-3 компа, а если 50? Причем поставить - это слабо сказано, надо создать правила: блокировка одних подсетей, допуск других. Банальный пример: допустим, в соседнем городе Мухосранске живет (эээ... существует) хакер Жора, который очень хочет сломать твою сеть и изнасиловать Гошу. Естественно, вы все (ну, кроме Гоши) хотите блокировать этого варвара. Ты знаешь его IP и просто на роутере прописываешь, что с такого IP пакеты не принимать, а посылать сообщение "Network is Unreachable" или что-то типа этого. Но заваривается интрига: Алиса хочет контактировать с Жориком и специально для него расшаривает папку "C:\My Documents\Alice\бурундуки" - естественно, тебе надо бежать к ней и разрешать подключения с Жоркиного IP адреса, открывать необходимые порты и т.д. А если он у него частенько меняется или Алиса просто не дала Жоржу и они разбежались? Опять бежать к ней? Нет, фигушки! Нам нужна система защиты, которая централизованно будет администрироваться (желательно удаленно) и позволит задавать правила (рулесы) для всех пользователей. Для этого вполне подойдет роутер - компьютер, через который идет трафик из Интернета в локальную сеть и наоборот. На нем уже стоят разные файрволлы, анализаторы трафика и т.д., что позволяет админить сеть легко и непринужденно.
Назад на стр. 024-004-1 Содержание Вперед на стр. 024-004-3
Хакер №024. Спецвыпуск

БИТЫ: схема Инета
demiurg (arkhangel@mail.ru)
Спецвыпуск Xakep, номер #024, стр. 024-004-3
ЛЮДИ ГИБНУТ ЗА МЕТАЛЛ
Но вдруг Жора понял, что его перехитрили, он посылает своего провайдера на фиг и покупает крутой модем на 14400, надеясь взломать вашу сеть. Согласись, блокировать его IP просто глупо. Хотя бы потому, что он с легкостью его сменит, отключившись и вновь подключившись к Инету. Но если ты знаешь IP адрес сети его провайдера (допустим, он 200.200.200.*), то шанс поглумиться над Жоржем есть. Тебе придется просканить все адреса от 200.200.200.0 до 200.200.200.255. Времени это займет немного, зато какой интеллектуальный оргазм получит Жорж, увидав синий экранчик смерти или еще что похуже.
ПОСМЕЕМСЯ КЕПЛЕР ВЕЛИКОЙ ГЛУПОСТИ ЛЮДЕЙ
А как по твоему, что представляет собой сеть провайдера? Чем она отличается от твоей? Да, конечно - крутые свитчи, распальцованные сервера... А конкретно? Радикально? Да ничем! Равно как твоя сеть является посредником между компом Гоши и Интернетом, так и провайдер образует связующее звено между твоей сетью и Инетом. Связка поистине очень проста: комп Гоши -> свитч сетки -> роутер локалки -> роутер прова -> свитч прова (обычно бывает) -> Internet -> www.porno.com. А что такое www.porno.com? Та же самая сеть с web-сервером, c файрволлом, с роутером. Каких-то компонентов может и не быть или они могут быть по-другому реализованы. Не суть важно. Главное, что трафик должен приходить, обрабатываться, уходить. В наше тяжелое военное время файрволл - это обязательное условие построения любой сети, т.к. даже если проблема безопасности отсутствует, то всегда возникают вопросы о контроле трафика (сколько порнухи юзер Саша накачал), его стоимости (на сколько у.е.), в какое время...
Что мы поняли? Интернет - это сеть, а компьютер - это часть Интернета... Хотелось бы верить, что моя статья помогла разобраться в сложных технологиях, окружающих нашу жизнь. Если есть вопросы - пиши. Всегда твой и только твой маленький и пушистый -
demiurg (arkhangel@mail.ru).
Назад на стр. 024-004-2 Содержание
Хакер №024. Спецвыпуск

FAQ
Матушка Лень
Спецвыпуск Xakep, номер #024, стр. 024-006-1
(MLEN@mail.ru) MatushkaLEN'[LoveTech]
Я забыл, что такое пакет?
В предыдущих номерах по взлому я уже просверлил тебе все уши рассказами про пакеты! В этом номере экзекуция продолжается, ведь файрволлы, которые так мечтают обойти хакеры, работают именно с пакетами! Все в нашем сетевом мире крутится вокруг этих мусорных пакетиков, поэтому ты должен четко себе представлять, зачем они нужны и какие бывают.
Итак, ты должен запомнить, что пакеты состоят из заголовка и полезной информации. Заголовок нужен для того, чтобы доставить пакет по нужному адресу. В информационном поле может лежать информация пользователя, или другой пакет. Если ты не забыл, то когда один пакет вложен в другой пакет - это называют инкапсуляцией.
Что такое фильтр пакетов?
Классический файрволл - это именно фильтр пакетов. Фильтр пакетов позволяет отбрасывать пакеты в зависимости от адреса получателя, адреса отправителя и номера порта. Такой фильтр очень полезно ставить для того, чтобы защитить локальную сеть.
Например, в локальной сети пользователи могут использовать протокол NetBIOS поверх TCP/IP для обмена файлами и доступа к принтерам. Но для того, чтобы этот протокол не могли использовать хакеры из глобальной сети, на файрволле закрывают 136-й, 137-й и 139-й порты протокола.
А бывает, что нужно защитить пользователей локальной сети от тлетворного влияния всемирной паутины. Для этого ласковый администратор закрывает на своем файрволле порты Аськи (ICQ) и Ирки (IRC), чтобы пользователи работали как рабы на урановых рудниках, а не чатились целый день.
Одним словом, фильтр - это устройства или программы, которые отбрасывают пакеты по заголовку, но в содержимое не лезут!
Как файрволл спасает от порнухи и рекламы?
Пакетный фильтр, как ты уже понял, умеет отбрасывать пакеты с определенных адресов. То есть если ты скачаешь из Инета список адресов баннерных систем, то на твоих страничках не будет рекламы. А все потому, что пакеты с тошнотными баннерами не пропустит твой файрволл. Так же можно защититься от порносайтов, если у тебя не хватает силы воли, и ты начинаешь качать порнуху каждый раз, как только зайдешь в сеть.
Однако всегда найдется порносайт или баннерная сеть, о которых не знает твой файрволл :). В таких случаях возможностей фильтров пакетов уже недостаточно, поскольку приходится анализировать не только заголовки пакетов, но и их содержимое. Например, можно фильтровать все картинки размером со стандартный баннер или анализировать сигнатуру женских сисек в загружаемых картинках.
Что такое правила файрволла?
Вопрос, конечно, риторический. Ведь любому понятно, что этими правилами пользуется фильтр пакетов для того, чтобы определить, какой пакет пропустить, какой отбросить, а какой перенаправить. Получаются так называют настройки файрволла. И если администратор допустил ошибку в составлении правил для своего фильтра, то этим обязательно воспользуется сетевой разбойник. Отсюда мораль: для того чтобы научиться обходить файрволлы, хакеры изучают правила фильтрации пакетов. Ну и, конечно, существуют списки стандартных ошибок в составлении правил обхода файрволлов. Эти списки помогают админам защищаться, а хакерам обходить файрволлы.
Содержание Вперед на стр. 024-006-2
Хакер №024. Спецвыпуск

FAQ
Матушка Лень
Спецвыпуск Xakep, номер #024, стр. 024-006-2
С помощью правил можно очень тонко настроить свой фильтр. Для этого есть три типа правил: входящие, исходящие и перенаправляемые пакеты. То есть файрволлу можно независимо указать, что делать с этими тремя типами пакетов.
Как пакетный фильтр спасает от DOS атак и как он лажает?
На своем фильтре бородатый хранитель сервера может закрыть ICMP порт, по которому проводится распределенная атака на отказ (DDOS), или же он может закрыть порты NetBIOS. Причем он может сделать такую подлянку хакерам, используя простейший пакетный фильтр, встроенный в маршрутизатор. В таком случае маршрутизатор будет отбрасывать эти пакеты, вместо того чтобы передать их дальше (маршрутизировать).
Однако фильтр пакетов не умеет отбрасывать пакеты с поддельным адресом или пакеты с мусором, от которого может взглюкнуть сервер. Допустим, хакер атакует сеть бородатого админа с определенного IP адреса. Тупой админ запрещает файрволлу пропускать пакеты с этого адреса. А хакеру пофиг, он просто вставляет другой поддельный адрес или атакует с перебором адресов. Вот тут-то файрволл и лажанулся, нельзя же перекрыть сообщения сразу со всех адресов Интернет, сразу по всем портам. Во время такой атаки логичнее выдернуть шнур из сервера, целее будет!
Может ли фильтр защитить от IP спуфинга?
Спуфинг - подделка адреса отправителя IP-пакета. Нужно это для того, чтобы администратор файрволла не мог закрыть адрес атакующего. Для этого хакер может атаковать с сотни поддельных адресов. Все-таки есть один кривой метод защиты от спуфинга: проверять маршрутную информацию. То есть фильтр с помощью программы маршрутизации проверяет, в какой сети живет адрес и мог ли он оттуда к нам прийти по этому пути. Как не сложно догадаться, метод защиты слабый и жутко тормозной. А еще нужно его правильно настроить, чтобы не отбрасывать хорошие пакеты, заблудившиеся в сети. Спасает это только от спуфинга тупых или запрещенных адресов.
Кто такой прокси-сервер и причем он тут?
Если ты помнишь, proxy переводится как представитель. Он позволяет тебе лазить в сети так, чтобы все видели только адрес прокси-сервера. То есть прокси принимает запрос от локального компьютера и передает его в сеть, но уже от своего имени. Такое свойство посредника-представителя позволяет прокси-серверу скрыть реальные IP-адреса компьютеров в локальной сети от глаз хакера. Кроме этого, прокси-сервер экономит IP-адреса, то есть на одном IP может висеть целая сеть.
Такая ситуация очень неприятна для хакера, ведь он не может обратиться к компьютеру в локальной сети, потому что прокси-сервер не принимает пакеты, которые не запрашивал.
Прокси-сервер тесно связан с файрволлом. Например, часто файрволл используют для организации прозрачного прокси. Для этого сетевой фильтр перенаправляет пакеты на вход прокси. То есть прокси существует, но его не видно за файроволлом. Потому и прозрачный, что за файрволлом. То есть представитель прячет от хакерских глаз сеть, а файрволл прячет представителя, тяжело подкопаться.
Назад на стр. 024-006-1 Содержание Вперед на стр. 024-006-3
Хакер №024. Спецвыпуск

FAQ
Матушка Лень
Спецвыпуск Xakep, номер #024, стр. 024-006-3
Что такое туннелирование?
Допустим, что у хакера есть бесплатная почта. То есть из Интернета он может получать только почту, а хочется по страничкам полазить, Аську с Иркой поласкать. Но работает только почтовый протокол SMTP. Тогда хакер организует TCP/IP туннель внутри этого протокола. Идея простая: нужна программа, которая будет упаковывать обычный TCP/IP в пакеты почтового протокола у пользователя. И нужна программа, которая будет распаковывать эти пакеты в Интернете. Для этого тунеядец вешает на каком-нибудь хакнутом сервере в Интернете скрипт, который притворяется почтовым сервером, а на самом деле распаковывает хакерский TCP/IP.
Получается, что по почтовому протоколу бегает обычный интернет-трафик. Заметь, что файрволл его не видит, поскольку не заглядывает в содержимое пакетов.
Или, допустим, какой-то провайдер открыл тестовый вход на свой домашний сервер и закрыл на файрволле все протоколы кроме DNS (служба доменных имен). А по протоколу HTTP провайдер разрешил обращаться только к своим серверам, при этом обращения к другим серверам провайдерский фильтр не пускает. Тогда хакер организует туннелирование DNS и сидит в Интернете на халяву.
А если хакер хочет включить себе Интернет на работе, в локальной сети за файрволлом, он может использовать туннелирование Telnet. Прелесть в том, что для этого можно использовать стандартные программы и не надо ничего писать. О том, как это сделать, читай подробнее на русском языке: http://www.linuxdoc.ru/HOWTO/mini/html/Firewall-Piercing.html
Туннелировать можно любые другие протоколы, при этом нужен клиент на хакерской машине и сервер в Интернете. Конечно, это все работает гораздо медленнее, чем обычное соединение, но это работает!
Как файрволл от вирусов спасает?
Да никак он от них не спасает. Допустим, пользователь в локальной сети заразился вирусом через ВЕБ-протокол HTTP при просмотре интернет-страничек или ему вирус по почте прислали. Файрволл ведь в пакеты не заглядывает, поэтому вирусы лезут по всем возможным протоколам, положив огромный болт на фильтры пакетов.
Спасает ли файрволл от троянов?
Многие продвинутые пользователи думают, что мощный файрволл не даст трояну связаться со своим хозяином-хакером, чтобы передать ему пароли. А что мешает трояну использовать тоже туннелирование и обращаться к файрволлу от имени твоего браузера или от имени твоей почтовой программы по открытым портам? При этом приходится выбирать: либо дели Интернет с трояном, либо вообще без Интернета. Ситуация доводит мирных юзверей до истерики: пользователь видит, как браузер стучится в порт без его ведома, а ничего сделать не может. Ведь обычный файрволл не может отличить пользовательские запросы от троянских!
Какие отличия между прокси и маскарадингом?
Маскарадинг выполняет те же функции, что и proxy-сервер, то есть маскарадинг скрывает адреса компьютеров внутренней сети, позволяет локальным пользователям работать с сетью через один IP-адрес и не пускает в сеть пакеты, которых не просил. Он также связан с файрволлом, только работает немного по-другому. Прокси-сервер устанавливает соединение с локальным компьютером, получает от него запрос, по этому запросу выкачивает данные из Интернета и отправляет их локальному компьютеру. То есть proxy извлекает данные из пакета! Маскарадинг - это сервис, который меняет адреса, перезаписывая заголовок пакета, когда тот проходит сквозь фильтр пакетов. То есть он получает пакет с обратным адресом локального компустера, меняет его на свой адрес и отправляет в Интернет. Из Интернета он получает ответ на свое имя и пересылает его на адрес локального компустера, который запомнил.
Назад на стр. 024-006-2 Содержание Вперед на стр. 024-006-4
Хакер №024. Спецвыпуск

FAQ
Матушка Лень
Спецвыпуск Xakep, номер #024, стр. 024-006-4
Получается, что маскарадинг работает быстрее, т.к. не извлекает информации из пакетов. Поэтому его проще настроить и приспособить практически к любым службам. Proxy сложнее в настройках и работает медленнее, зато он умеет кэшировать WEB-странички, чтобы сделать их доступными другим пользователям. За счет того, что не требуется закачивать одни и те же странички из Интернета по десять раз, благодаря кэширующему proxy работа с Интернетом в локальной сети оптимизируется.
На что смотрит файрволл, кроме адресов и портов?
Файрволл изучает весь заголовок пакета. Так что вспоминаем, что живет в заголовках. Сперва фильтр проверяет контрольную сумму и выявляет кривые пакеты, которые удаляет. Потом он смотрит на структуру заголовка пакета, и если она не совпадает со стандартной, тоже удаляет. То есть файрволл может удалить сбойный хакерский пакет, направленный в целях повесить сервер. Дальше файрволл сверяет пакет со своими правилами, и они подсказывают, что делать дальше. В правилах можно указать запрещенные адреса и порты отправителей/получателей, запрещенные размеры пакетов, запрещенные задержки. Можно заставить фильтр вести логи сбойных пакетов, удалять, перенаправлять пакеты, отправлять хакеру сообщение об отказе работать с ним и, на худой конец, бить тревогу в случае чего.
Что такое редирект портов?
Часто firewall мешает хакеру ломать какой-то сервер. То есть паршивец уже захватил администраторские права, а пользоваться сервисами не может - фильтр мешает. Можно, конечно, пытаться перенастроить файрволл, что не просто и заметно. Но проще повесить нужный сервис на порт, не прикрытый фаерволлом, и использовать перенаправления с этого порта на нужный злоумышленнику сервис в обход файрволла. А все дело в том, что некоторые файрволлы оставляют какое-то количество портов, на которых ничего не висит, незакрытыми. Поэтому хакер, пользуясь правами администратора, вешает редирект с нужного порта на нужную услугу. Естественно, программу на хакерском компьютере тоже нужно настроить на нестандартный порт. Иногда для этого требуется специальная программа-редиректор.
В результате мы имеем обходной путь, на который настроенный и отлично функционирующий файрволл внимания не обращает.
Кстати, этим грешат многие домашние файрволлы и программы защиты от хакеров, они перекрывают порты стандартных хакерских атак, и все. Вместе с таким файрволлом отлично уживается троян, который садится на нестандартный порт.
Назад на стр. 024-006-3 Содержание Вперед на стр. 024-006-5
Хакер №024. Спецвыпуск

FAQ
Матушка Лень
Спецвыпуск Xakep, номер #024, стр. 024-006-5
Как проще всего обойти файрволл?
Я лично слышал как минимум три рассказа про то, как сотрудник использовал личный модем у себя на работе. И правильно, наш человек! Хакер даже у себя на работе остается хакером. Администратор может закрыть на файрволле доступ в Интернет вообще, тогда некоторые сознательные сотрудники приходят со своим модемом, благо с телефоном проблем нет, на скучной работе скучать не придется.
Так что мало защитить сеть от внешнего проникновения, нужно еще держать под прицелом внутреннего врага, дорогие мои администраторы! Ведь большая корпоративная сеть совсем не застрахована от физического подключения в самом неожиданном месте. Не застрахована от хака изнутри, кто мешает хакеру специально устроиться на работу за восемьдесят баксов во вражескую контору? Или затроянить врага своей подругой Машей с вредоносными дискетками? Кто мешает просто расспросить своих друзей, которые работают на врага, об устройстве сети?
Этот способ очень распространен в больших организациях. И если все хорошо защищено снаружи - хакер действует изнутри, прям как в плохих фильмах. Только тут не надо изгаляться с навороченными системами охраны, достаточно просто прийти в гости или на собеседование. Да и сам работодатель посадит хакера за компьютер, чтобы протестить интеллект, к примеру.
Кто мешает затроянить контору уборщицей, которая возит тряпкой вокруг сервера? Все боятся злобных сетевых хакеров, ставят мощные файрволлы. Ну а хакеры ходят рядом с тобой, пьют твое пиво и стреляют у тебя сигареты. Уволь своего админа, при этом забыв ему заплатить, и ты хакнут!
Что такое анализатор пакетов?
Допустим, хакер решил затроянить пользователя сети и прислал ему вирус по почте. Глупый пользователь запустил троянского коня, и тот размножился по всей сети и обошел фильтр изнутри. Опять файрволл лажанулся, пропустив пакет с вирусом!
Чтобы избежать таких проблем, используют анализаторы пакетов. Это такие программы или устройства, которые не ограничиваются информацией заголовка и лезут в содержимое пакета. Сетевые анализаторы могут проверять трафик на наличие вирусных сигнатур (цифровых отпечатков вирусных пальцев), на наличие туннеля другого протокола, на определенные слова или участки кода.
С помощью анализатора пакетов можно даже отучить пользователей ругаться матом в письмах. Только анализатор работает очень медленно, ведь распаковывать каждый пакет дело не быстрое, особенно когда они валятся с хорошей скоростью.
Да и глубина проникновения этого любителя грязного белья оставляет желать лучшего. Можно научить анализатор определенным фокусам, но хакеры все время придумывают что-то новенькое. Поэтому набор фокусов приходится постоянно обновлять. Proxy-сервер - один из примеров анализатора пакетов.
Что такое система обнаружения атак?
Сейчас в Интернете очень модная тема. Серьезные дядьки классифицируют хакерские атаки и даже их стандартизируют. На основе этих стандартов пишут системы обнаружения атак. Есть масса косвенных признаков атаки, при которых система должна кричать караул или самостоятельно бороться со взломщиком. Такая система использует логи файрволла, данные анализатора пакетов, следит за целостностью системных файлов и стоит очень дорого.
Назад на стр. 024-006-4 Содержание Вперед на стр. 024-006-6
Хакер №024. Спецвыпуск

FAQ
Матушка Лень
Спецвыпуск Xakep, номер #024, стр. 024-006-6
Что такое сетевой экран?
В современном мире даже самому неграмотному администратору не придет в голову защищаться только фильтром пакетов. Он обязательно накрутит туда прокси, маскарадинг, анализатор пакетов для отлова вирусов и даже новомодную систему обнаружения атак. Так что в реальности хакеру приходится обходить не Файрволл в его традиционным понимании, а сетевой экран, то есть целую систему страхующих друг друга заслонов. Даже домашние персональные файрволлы выходят за рамки обычного фильтра пакетов.
Часто сетевой экран называют привычным словом FireWall, хотя он сильно мутировал с тех пор.
Что такое аппаратный сетевой экран?
Если у организации много денег и серьезные требования не только к безопасности, но и к скорости, то принимается решение установить аппаратный экран. Если от межсетевого экрана требуется достаточно глубоко анализировать сетевые пакеты на высоких скоростях, то обычное программное обеспечение поверх обычного компьютера уже не справляется. Поэтому нужные функции полезно разместить в железе. То есть все функции экрана будут реализованы на микросхемах. Чтобы апгрейдить такой железный экран поддержкой новых протоколов, в его флеш-память заливают новую прошивку, как в обычный модем. Иногда аппаратный межсетевой экран выполняет заодно функции маршрутизатора.
Иногда аппаратным файрволлом называют специальный компьютер, который купили с уже предустановленной операционной системой и установленной программой сетевого экрана. Такое чудо-юдо называют аппаратным скорее в рекламных целях, чтобы запудрить мозги покупателям. Ведь все знают, что аппаратный межсетевой экран - это круто.
Назад на стр. 024-006-5 Содержание
Хакер №024. Спецвыпуск

ISO/OSI - СЕМЬ УРОВНЕЙ в мозгу телекоммуникатора,
ИЛИ
Спецвыпуск Xakep, номер #024, стр. 024-012-1
как не запутаться в протоколах
Матушка Лень (MLEN@mail.ru) MatushkaLEN'[LoveTech]
Вот уже несколько номеров подряд мы загружаем твой мозг информацией о протоколах. Протоколов очень много, и возникает путаница, как с нею бороться? Для того чтобы телекоммуникатор не сошел с ума и не запутался в проводах Международная Организация Стандартизации (ISO - International Standardization Organization) разработала модель Взаимодействия Открытых Систем (OSI - Open System Interconnection). Сокращенно получилось ISO/OSI.
Про эту загадочную модель OSI очень любят рассказывать преподы в институте и авторы в толстых сетевых книжках, причем в самом начале. Не удивительно, что новичок ничего не понимает. Другое дело - рассказать про OSI человеку, который уже знает какие-то протоколы и имеет вопросы. Для него модель взаимодействия открытых систем станет ОЗАРЕНИЕМ. Нормальный телекоммуникатор так хорошо умеет анализировать системы связи потому, что у него в голове все раскладывается по семи удобным полочкам - по семи стандартным уровням. Хакер также должен обладать такой прозорливостью, чтобы четко понимать, что происходит. Хакер должен пролезть через ФАЙРВОЛЛ и при этом не попасться, ISO/OSI для него настоящая карта вражеской территории!
В учебниках и доках все написано очень сухо. Наша с тобой задача научиться применять ISO на практике. Постепенно ты поймешь, что давно применяешь OSI, только подсознательно.
Физический уровень
Правильнее называть этот уровень механически-электрическим. На этом уровне живут типы проводов, типы разъемов, уровни напряжения, сигналы, модуляции. На практике ты идешь покупать себе внешний модем. Модем нужно выбрать с евророзеткой под телефонный кабель, с разъемом под компорт на 25 штырьков или на 9 штырьков, либо USB или PCI. Ты подбираешь параметры физического уровня ISO/OSI. Дальше ты должен выбрать модем с хорошим набором физических протоколов, например, V.34, V.90, V.95, K56flex. Эти протоколы отвечают за сигналы, чем круче закодированы сигналы, тем быстрее модем передает инфу. Кроме обычного телефонного модема, бывают модемы кабельные, спутниковые, радиомодемы и модемы выделенных линий, все это особенности физического уровня.
Допустим, тебя достал твой модем, и ты решил строить домашнюю сеть. Что ты выберешь: коаксиальный кабель, витую пару или, может быть, оптоволокно? Или все вместе? Мы опять выбираем оборудование физического уровня: кабели, разъемы, повторители, концентраторы. От выбора физического оборудования зависит пропускная способность твоей сети: 10 мегабит в секунду, 100 мбит/сек или 1 Гигабит.
Один из способов обхода файрволла - подсоединение к чужому кабелю или подключение своего модема к одному из компов вражеской сети. Для этого хакеру нужно знать, что творится на физическом уровне!
Канальный уровень
Канальный уровень отвечает за связь между двумя устройствами, подключенными к одной физической среде, фактически к одному шнуру. Канальный уровень должен с помощью последовательности электрических сигналов физического уровня доставить информацию.
Содержание Вперед на стр. 024-012-2
Хакер №024. Спецвыпуск

ISO/OSI - СЕМЬ УРОВНЕЙ в мозгу телекоммуникатора,
ИЛИ
Спецвыпуск Xakep, номер #024, стр. 024-012-2
Допустим, на одном коаксиальном кабеле у тебя висят три компа, у каждого по сетевой карте. Каждая сетевая карта имеет свой адрес доступа к среде (MAC - Media Access Control). Этот адрес для многих карт прошивают на заводе, а для некоторых можно запрограммировать самостоятельно. По этому адресу карточки, подключенные к одному шнуру (к одной среде), могут обнаружить друг друга. Кроме того, чтобы нормально обмениваться данными, им нужно исправлять ошибки и запрашивать недошедшие данные. Эти задачи и решает протокол канального уровня.
Если ты строишь локальную сеть, то частично за адресацию и контроль ошибок отвечает сам стандарт твоей сети. Стандарты Ethernet, Token Ring, Fast Ethernet, Gigabit Ethernet и другие включают в себя описание физического и канального уровней.
Чтобы устройства могли общаться на канальном уровне, нужно, чтобы все они были подключены к одному кабелю и использовали один стандарт!
Что же делать, если у тебя в локальной сети сотня компов? Они же будут мешать друг другу! Если один компьютер занял провод, то остальные передавать не могут! А если пытаются, то начинаются глюки и передавать не может никто! Для того чтобы разбить провод на сегменты, используют коммутаторы и мосты. Они пропускают сквозь себя только те кадры, адрес которых лежит в другом сегменте. Поэтому компьютер при передаче информации занимает не весь шнур, а только один сегмент. Коммутатор (switch - переключатель) это мост с большим количеством портов. Мост (bridge) - это коммутатор с двумя портами. Один мост делит сеть только на два сегмента, а коммутатор на несколько, вот и все различия.
Если провод один, а по нему хотят передавать компьютерные данные, к нему же хотят подсоединить телефон, сигнализацию, систему видеонаблюдения и телевизор, то используют мультиплексор. Мультиплексор может упаковать несколько разных протоколов в один протокол канального уровня.
У современных модемов тоже есть некоторые свойства канального уровня, это протоколы коррекции ошибок и сжатия данных, такие как V.42, V.42bis, MNP.
Даже если ты подключишь два компа через COM-порты напрямую, то они будут использовать протокол канального уровня для коррекции ошибок и управления скоростью связи.
Почти все протоколы канального уровня основаны на SDLC (стандартный канальный протокол ISO), есть много модификаций и разновидностей: HDLC, Frame Relay, Lap-B, LLC.
Хакеры хорошо разбираются в тонкостях канального уровня. Если хакеру удалось подключиться к одному сегменту с администратором, то можно подслушать его пароли и MAC-адрес, чтобы ломануть сервер. Ведь компьютеры принимают всю инфу, которая идет по проводу, и только после этого выбирают адресованные им кадры по MAC-адресу. Так что есть возможность читать чужие сообщения и отправлять их от чужого имени!
Современные файрволлы умеют работать с MAC-адресами. Поэтому, если хакер занимается вредительством в локальной сети, IP-адрес подделать недостаточно! Ведь вредителя могут найти по MAC-адресу его сетевой карты. Даже если негодник украл пароль администратора, то правильно настроенный файрволл не пустит его на сервер с неправильным MAC-адресом.
Назад на стр. 024-012-1 Содержание Вперед на стр. 024-012-3
Хакер №024. Спецвыпуск

ISO/OSI - СЕМЬ УРОВНЕЙ в мозгу телекоммуникатора,
ИЛИ
Спецвыпуск Xakep, номер #024, стр. 024-012-3
Сетевой уровень
Протокол IP (Internet Protocol) известен тебе намного лучше, мы уже просто замусолили его в своих выпусках по взлому! Теперь давай разберемся, зачем же он нужен, если есть такой великолепный протокол канального уровня?
Из описания канального уровня ты должен был понять, что на этом уровне могут общаться компьютеры, подключенные к одному шнуру, причем во время передачи один комп на некоторое время занимает весь шнур. То есть чем больше компов, тем больше простои. А теперь представь, что у тебя лежит коаксиальный кабель, потом оптоволокно, потом спутник, потом радиомодем, потом снова оптоволокно. И у каждого стандарта свой способ адресации. По коаксиальному кабелю бегает Ethernet с MAC-адресами, а по оптоволокну - HDLC со своей адресацией. И как же передать из одной сети в другую? Никак! (Есть, конечно. технологии для извращенцев - прим. извращенца.) Канальный уровень этого не умеет, потому что нужен глобальный сетевой адрес - IP-адрес. Его можно присвоить каждому компьютеру в мировой сети, и неважно, на чем он сидит, на модеме или на спутнике.
Еще одна проблема, когда на шнуре, разбитом коммутаторами на сегменты, висит тысяча компьютеров! Если компьютер, с которым нужно связаться, находится в каком-то дальнем сегменте, то придется отправлять инфу во все сегменты. А это значит, что один компьютер снова займет всю сеть на время передачи. Если нужно часто обращаться к дальним компьютерам, начнутся штормы чужих сообщений! Кроме того, есть возможность отправлять сообщения всем станциям (широковещательно), такие сообщения коммутаторы не блокируют. И возникают широковещательные штормы.
Одним словом, при современных объемах передаваемой инфы нужно уменьшать количество компьютеров, висящих на одном шнуре.
Другое дело - маршрутизатор! Он работает на сетевом уровне и умеет прокладывать маршруты, то есть отыскивать в своих таблицах путь к адресату, вместо того чтобы размножать сообщение на всю сеть. Пространство Интернет разбито на сети, то есть у адреса есть сетевая часть. Сначала прокладывается путь к нужной сети, а потом уже на месте отыскивается нужный адресат. На канальном уровне сетевой части нет - считается, что все адресаты сидят в одной сети.
Кроме IP-протокола широкое распространение получил X.25. Этот протокол также охватывает сетевой уровень. Только вместо маршрутизации прокладываются виртуальные каналы во время установки соединения. Глобальный адрес сети X.25 похож на телефонный номер, а маршрутизаторы - на телефонные станции. Вывод такой: существуют сети разного типа, где одни и те же проблемы решаются разными способами. Модель ISO/OSI позволяет описать любую сеть.
Телефонная сеть - сеть с коммутацией каналов, когда АТС соединяют (коммутируют) несколько отрезков провода в одну физическую линию. Однако телефонные сети сейчас активно используют мультиплексоры и пакетную передачу данных.
Сеть FIDO - сеть с коммутацией сообщений. Мы отправляем сообщение, и оно постепенно передается от одного компа к другому, пока не дойдет до адресата.
Назад на стр. 024-012-2 Содержание Вперед на стр. 024-012-4
Хакер №024. Спецвыпуск

ISO/OSI - СЕМЬ УРОВНЕЙ в мозгу телекоммуникатора,
ИЛИ
Спецвыпуск Xakep, номер #024, стр. 024-012-4
Сеть Internet - сеть с маршрутизацией пакетов. Очень похоже на FIDO, только сеть работает в режиме ONLINE, а не OFFLINE. Хотя e-mail действует почти так же, как FIDO.
Сеть X.25 - сеть с коммутацией виртуальных каналов. Такая сеть обладает высокими надежностью и безопасностью, поэтому используется в банковских технологиях.
Настоящему хакеру полезно знать, что, кроме Интернет, существует много других сетей. Ведь взломы происходят не только через Интернет.
Этот номер посвящен обходу интернетовских файрволлов. Поэтому важно знать, что простейший файрволл работает именно на сетевом уровне. Фильтр пакетов анализирует заголовки сетевых пакетов, достает оттуда IP-адреса, проверяет контрольную сумму и делает другие операции сетевого уровня. Обидно, но за время жизни Интернета файрволлы сильно мутировали и научились работать на других уровнях модели ISO/OSI, это усложняет хакерам работу.
Транспортный уровень
На четвертом уровне ISO/OSI нас ждут новые проблемы. Если помнишь, канальный уровень умел исправлять ошибки и запрашивать повторы. То есть по шнуру инфа проходит надежно и без ошибок. Только вдруг она потеряется где-нибудь между сетями, вдруг она исказится при переходе из одной сети в другую?
Одним словом, нам нужно снова проверять ошибки и запрашивать повторы, после того как информация прошла через несколько сетей. Для этого и нужен протокол TCP/IP, отвечающий за доставку (Transmission Control Protocol).
Как ты уже знаешь, заголовок TCP/IP имеет не только адрес, но и порт. Порт позволяет обратиться к определенной программе на машине. В сети Интернет протоколы верхних уровней лазают по определенным портам TCP/IP, поэтому в файрволлах появилась возможность анализировать и перекрывать трафик по определенным портам. Один из способов обхода файрволла - редирект портов, когда хакер переназначает нужные ему службы на открытые порты.
Транспортные протоколы имеют массу интересных функций, поэтому позволяют хакеру массу вещей. Например, TCP/IP позволяет производить несколько типов DOS атак, которые приводят к повисанию компьютера. Транспортные функции протокола NetBIOS позволяют негоднику получить доступ к чужому диску и украсть важные файлы. Если порыться в реализации транспортных протоколов, всегда можно найти дырочку, уж больно они сложные.
Сеансовый уровень
Этот уровень отвечает за установление соединения между приложениями на сервере и на компьютере. В обычных TCP/IP сетях нет специальных протоколов этого уровня. Просто это не нужно, так как TCP уже установил сеанс. Все функции сеансового уровня впитали в себя протоколы прикладного уровня. Например, протокол FTP позволяет установить сеанс связи с файловым сервером. Авторизация FTP происходит именно на сеансовом уровне.
Другое дело - беспроводные протоколы, такие как WAP (Wireless Access Protocol). Этот один из протоколов, используемый для доступа в Интернет с мобильного телефона. В WAP входит специальный протокол установки сессии WSP (Wireless Session Protocol). Заодно на этом уровне происходит шифрование сообщения. При обычном доступе в Интернет ты открываешь для каждой службы свою транспортную сессию TCP/IP (порт). На мобильном телефоне транспортная сессия одна, и уже поверх нее софт телефона связывается с сервером. Этот уровень позволяет подключить к Интернет даже такой нестандартный софт, как телефонный браузер.
Назад на стр. 024-012-3 Содержание Вперед на стр. 024-012-5
Хакер №024. Спецвыпуск

ISO/OSI - СЕМЬ УРОВНЕЙ в мозгу телекоммуникатора,
ИЛИ
Спецвыпуск Xakep, номер #024, стр. 024-012-5
Потребность в сеансовом уровне возникает всегда, когда нужно как-то нестандартно подключиться к Интернет. Например, в том случае, когда ты запросы посылаешь по модему, а ответы принимаешь через спутниковую тарелку.
Если необходимо установить шифрованный сеанс связи между приложениями, также выручает сеансовый уровень. Пример такого специализированного протокола сеансового уровня для защиты соединения - протокол SSL (Secure Socket Level - Уровень Безопасности Сокета). Он позволяет защитить весь стек протоколов прикладного уровня перед тем, как они отправятся в сокет.
Также сеансовый уровень спасает любителей закачки с Интернет многомегабайтных файлов с порномультиками по модему. Средствами сеансового уровня можно запоминать контрольные точки и после разрыва соединения возобновлять закачку не заново, а с контрольной точки.
Представительский уровень
Уровень представления данных позволяет прочитать текст на машинах с разной кодировкой. Позволяет распознать структуру каталогов на удаленной операционной системе. Одним словом, это нужно, чтобы китайский выглядел китайским независимо от того, на каком компьютере ты его смотришь. К сожалению, так не получается, и все еще очень часто мы сталкиваемся с глюками кодировок.
В идеале этот уровень должен распознавать данные любого стандартного формата и конвертировать их в тот вид, который понимает локальная машина.
В стандарте ISO/OSI именно этот уровень должен отвечать за шифрование данных, однако в случае с SSL эту функцию выполняет сеансовый уровень.
Прикладной уровень
На этом уровне живут специализированные протоколы каждой службы. Например: HTTP для загрузки страничек веб-браузерами, FTP для удаленного взаимодействия с файловой системой, SMTP и POP3 для отправки и получения мыла, Telnet для получения доступа к командной строке удаленного сервера. Сколько приложений - столько прикладных протоколов. Однако в сетях TCP/IP прикладные протоколы включают в себя функции представительского и сеансового уровней. Поэтому в сети TCP/IP три уровня (прикладной, представительский, сеансовый) объединяют в один и называют прикладным.
Как использовать ISO/OSI
Как ты уже понял, все эти протоколы вкладываются один в другой, как матрешка. Например, HTTP инкапсулируется в TCP, TCP в IP, IP в Ethernet. Ethernet кадр преобразуется в электрический сигнал и передается по кабелю, а на другом конце все распаковывается в обратной последовательности.
Как ты заметил, далеко не все протоколы точно соответствуют определенным уровням модели OSI. Это и не нужно, главное - они умеют инкапсулироваться (упаковываться) друг в друга.
Модель ISO/OSI позволяет объединить все сети мира в одну. Ведь в IP можно инкапсулировать X.25. А в X.25 можно инкапсулировать IP. То есть мы можем инкапсулировать все что угодно во все что угодно, практически на любом уровне OSI. Это называется туннелированием, то есть в сети X.25 мы прокладываем IP-туннель. Или внутри сети IP мы прокладываем телефонный туннель - IP-телефонии. Или внутри телефонной сети мы прокладываем туннель V.90 модемного соединения, который несет в себе IP-трафик.
Назад на стр. 024-012-4 Содержание Вперед на стр. 024-012-6
Хакер №024. Спецвыпуск

ISO/OSI - СЕМЬ УРОВНЕЙ в мозгу телекоммуникатора,
ИЛИ
Спецвыпуск Xakep, номер #024, стр. 024-012-6
Штука эта очень полезная, а хакеры, как всегда, используют ее во вред. Например, для обхода файрволла, на котором закрыто все, кроме почты, через почтовый протокол SMTP можно проложить туннель IP и сидеть в Интернете на халяву.
К современным файрволлам администраторы прикручивают анализаторы пакетов, которые, кроме сетевых и транспортных пакетов, тормошат пакеты прикладного уровня, пытаясь найти скрытые туннели, вирусы, порнографию.
Однако против хитрого хакера, который знает много протоколов и хорошо представляет их взаимодействие в виде модели ISO/OSI, бороться практически бесполезно. Хакер всегда выиграет, воспользовавшись тонкостями реализации очередного протокола!
Назад на стр. 024-012-5 Содержание
Хакер №024. Спецвыпуск

РАЗВЕДКА-слушаем стену nmap'ом
GREEN (green@rootshell.ru)
Спецвыпуск Xakep, номер #024, стр. 024-016-1
ВВЕДЕНИЕ
Бесконечное богатство полезной информации хранится за корпоративными и иными фаерволлами, во внутренних и домашних сетях, на серверах, рабочих станциях и просто домашних компьютерах. Но если у этих компьютеров есть доступ во внешний мир, значит, и у внешнего мира есть доступ к ним, а частенько и к хранящейся там информации (ну, хоть ты наизнанку вывернись!). Кому-то эта статья может показаться наивной, но я надеюсь, что для кого-то она все же окажется полезной и откроет глаза как на несовершенство используемых программ, так и на несовершенные конфиги и забытые дефолтные возможности, которые треба вырубать сразу. Грамотная разведка - 50% успеха атаки.
РАЗВЕДКА БОЕМ
Итак, когда ты уже выбрал цель - самое время произвести разведку и выяснить, какие силы нам противопоставляют админы. Если исследуется сеть, то - как она устроена изнутри, какие сервисы имеются в наличии и тому подобную полезную инфу. Обычно самой подробной информацией такого рода обладают... сами админы сети, они же могут помочь получить доступ ко внутренним ресурсам. Но если ты не готов заплатить братве за поимку и раскалывание админа, то есть и более дешевые, хотя и не такие надежные методы :).
NMAP
Тулза NMAP (http://www.insecure.org/nmap) от небезызвестного дяди Fyodor'а поможет нам многое узнать. Это мощный инструмент, который позволит в разных режимах просканировать сети и отдельные хосты, по особенностям ответов сетевого стека исследуемой цели угадать, какая операционка запущена на той стороне. В лучших традициях сетевой общественности nmap раздается в виде исходников, но если тебе неохота заморачиваться с компиляцией, тебе дадут и уже скомпилированные бинари для твоей OS'ки, в том числе и для разных версий WindowZ. Тем, кому не хочется возиться с командной строкой, дадут даже графическую морду.
Самый простой режим использования - это просто запустить nmap и указать ему цель для исследования:
$ nmap 172.17.10.55
Starting nmap V. 3.00 (www.insecure.org/nmap/)
Interesting ports on testbox.sample.ru (172.17.10.55):
(The 1594 ports scanned but not shown below are in state: closed)
Port State Service
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
79/tcp open finger
110/tcp open pop-3
113/tcp open auth
8080/tcp open http-proxy
Nmap run completed -- 1 IP address (1 host up) scanned in 4 seconds
Из приведенного вывода можно узнать, что машинка с таким IP включена и отвечает на сетевые запросы. Также нам дали список портов, на которых кто-то отвечает с предположением, кто бы это мог быть. Если nmap был запущен от обычного непривилегированного пользователя, то он использует так называемый "грязный" TCP скан, после которого в логах на той стороне остаются наши следы:
Sep 21 06:19:14 testbox sshd[2188]: Did not receive identification string from 213.25.7.123
Sep 21 13:37:08 testbox xinetd[976]: START: pop3 pid=2473 from=172.17.10.90
Запущенный от рута или с опцией -sS - nmap выбирает более безопасный режим сканирования, который обычно не оставляет следов в логах, хотя некоторые пакетные фильтры и способны обнаруживать такие попытки. Секрет невидимости сканирования (SYN scan, или half-open scanning) заключается в том, что мы не устанавливаем соединение до конца, для каждого порта высылается пакет на установление соединения (с установленным SYN флагом); в случае, если та сторона отвечает, что порт открыт и соединение может быть установлено (выставлены флаги SYN и ACK), то мы запоминаем этот факт и высылаем пакет, запрашивающий сброс соединения (флаг RST) вместо пакета с подтверждением. Бай, бейби! Если же мы в ответ получаем пакет с отказом, значит, этот порт никем не слушается либо прикрыт фаерволлом, что мы также запоминаем.
Содержание Вперед на стр. 024-016-2
Хакер №024. Спецвыпуск

РАЗВЕДКА-слушаем стену nmap'ом
GREEN (green@rootshell.ru)
Спецвыпуск Xakep, номер #024, стр. 024-016-2
НЕВИДИМЫЙ, ЕЛОВЫЙ И НУЛЕВЫЙ СКАНЫ
Помимо этого есть еще три типа сканирования: Stealth FIN, Xmas Tree и Null scan, которые включаются, соответственно, как -sF -sX -sN. Эти режимы полезны, чтобы обмануть некоторые фаерволлы и пакетные фильтры, которые обнаруживают предыдущий вид сканирования, следя за приходом SYN пакетов на запрещенные/никем не обслуживаемые порты. Эти режимы посылают пакет с установленным флагом завершения соединения (-sF и -sX) либо вообще без флагов; ответы для открытого и закрытого порта должны различаться, что нам и нужно. К сожалению, в фирме Microsoft, как всегда, креативно подошли к интерпретации сетевых стандартов, и все пакеты такого вида совершенно игнорируются, так что эти опции не применимы для сканирования Windows-тачек.
СКАН ОТ ЧУЖОГО ИМЕНИ
Еще один скрытный вариант сканирования - это так называемый Idle scan, включаемый по опции -sI host или -sI host:port. Вместо host необходимо подставить IP-адрес какого-нибудь сетевого хоста, желательно, чтобы через этот хост проходило как можно меньше траффика в момент сканирования. В случае использования этого режима сканирование выглядит как выполняемое с того самого хоста, который мы указали как параметр к опции -sI, что, несомненно, есть очень гут. Второй плюс такого сканирования в том, что мы видим список открытых портов с точки зрения того хоста, через который выполняется сканирование, так что при аккуратном выборе можно узнать кое-что из того, что владельцы внутренней сети и фаерволла хотели бы скрыть.
Очень сходный результат с предыдущей опцией можно получить, проводя сканирование через ftp-сервер (можно указать с помощью опции -b username:password@server:port), присутствуют все те же плюсы, что и в предыдущем пункте. Единственная проблема заключается в том, что ftp-серверов, поддерживающих "ftp proxy" соединения в Интернете, становится с каждым днем все меньше.
СЛУШАЕМ НЕПИНГУЮЩИХСЯ
По умолчанию nmap сканирует только те тачки, которые отвечают на ping запросы (такой запрос посылается перед сканированием), так как некоторые фаерволлы блокируют такие запросы, этот режим можно отключить с помощью опции -P0.
А ТЕПЕРЬ UDP
Все сказанное выше относилось к сканированию TCP-портов. Nmap также способен сканировать и UDP-порты. Для этого служит опция -sU. Несмотря на то, что обычно самые интересные и дырявые сервисы слушают только TCP-порты, все же существуют сервисы, рассчитанные на UDP. В частности многие RPC-сервисы (включая nfs) в Solaris известны своей дырявостью. Также, если повезет, можно найти установленный и готовый к работе бекдор BackOrifice от cDc или еще что-нибудь подобное. К сожалению, одним из недостатков UDP-сканирования является его низкая скорость, так как многие операционки искусственно ограничивают количество отказов в соединении по закрытым UDP-портам. Например, Linux по умолчанию дает не более восьмидесяти отрицательных ответов за четыре секунды, Solaris имеет еще более строгий лимит в два отказа в секунду. К счастью, Windows не вводит никаких ограничений на эту тему, так что сканировать UDP-порты в Windows легко, быстро и приятно.
Назад на стр. 024-016-1 Содержание Вперед на стр. 024-016-3
Хакер №024. Спецвыпуск

РАЗВЕДКА-слушаем стену nmap'ом
GREEN (green@rootshell.ru)
Спецвыпуск Xakep, номер #024, стр. 024-016-3
ЧЕКНЕМ САМУ ОГНЕСТЕНУ
В режиме сканирования -sA можно попытаться получить некоторые сведения о правилах в фаерволле, а также является ли он простым пакетным фильтром либо запоминает состояние всех проходящих через него соединений. Порты, которые обозначены как "filtered", в результатах работы nmap явно закрыты огнестеной.
Еще один режим сканирования, похожий на предыдущий, включается параметром -sW. Помимо определения прикрытых фаерволлом портов он также в некоторых случаях способен определить и открытые порты (работает в случае, если на той стороне тусуются некоторые виды операционок, в частности *BSD, SunOS 4.x).
ГАДАЕМ ИМЕНА
Опция -sR пытается отослать на все открытые порты RPC-команду NULL, и если получает вразумительный ответ - получает от обнаруженного сервиса его имя и версию.
Используя опцию -O, можно попросить nmap угадать, какая версия OS запущена на интересующем нас хосте, а в некоторых случаях также и сколько времени прошло с момента последней перезагрузки. Этот анализ производится на основе ответов OS на специально скомпонованные правильные и неправильные сетевые пакеты. К сожалению, если зло-админ системы менял настройки TCP-стека, такое угадывание становится неэффективным. Для предыдущего примера в самом начале результат угадывания выглядит так:
Remote operating system guess: Linux Kernel 2.4.0 - 2.5.20
Uptime 13.057 days (since Sun Sep 8 13:14:58 2002)
Используя опцию -I, можно выяснить, от какого пользователя запущен тот или иной сетевой сервис. К сожалению, это работает, только если в списке сервисов есть "auth" и выполняется "грязный скан".
МНОГОСТАНОЧИМ
Nmap способен сканировать больше чем один хост за раз. Для этого можно перечислить список IP адресов или хостемов в командной строке. Для сканирования сетей существуют способы указать сразу сеть целиком, например, для сканирования всех хостов, чей адрес начинается на 192.168, можно воспользоваться такими сокращениями: 192.168.0-255.0-255 или '192.168.*.*' или даже 192.168.1-50,51-255.1,2,3,4,5-255. И, конечно же, можно просто указать маску подсети: 192.168.0.0/16. Используя '*', помни, что многие шеллы пытаются подставлять имена файлов, так что не забывай заключать такие конструкции в одинарные кавычки.
Назад на стр. 024-016-2 Содержание
Хакер №024. Спецвыпуск

АТАКА проходим сквозь фаерволл
GREEN (green@rootshell.ru)
Спецвыпуск Xakep, номер #024, стр. 024-018-1
Итак, разведка дала свои результаты, пора проверить на прочность саму огнестену. Ты в курсе, что иногда стену легче обойти, чем стучаться в нее головой и яйцами :)?
АТАКА НА ФАЕРВОЛЛ
В случае, когда фаерволл вынесен на отдельный хост либо используется кисковская или еще какая железка, то можно считать фаерволл одним из самых защищенных хостов сети и не тратить на него время. Совсем другое дело, когда помимо функций фаерволла на компе выполняются другие сервисы. Такое решение можно встретить довольно часто ввиду его дешевизны (жилят деньги пузатые начальнички). Порядок действий в этом случае очевиден - проверяем, ломаются ли какие из торчащих наружу сервисов хотя бы до локального шелла.
ДУРИМ СТЕНКУ ИЗНУТРИ
А имея локальный шелл, уже можно собрать редиректор, который будет переправлять наши пакеты внутрь "защищенной" сети, как будто эти пакеты исходят от самого фаерволла, ну и, само собой, переправлять нам ответы изнутри. Фишка в том, что фаерволл частенько выполняет функции перенаправления пакета внутрь сети, после того как его просмотрит. А если мы сидим внутри фаерволла, то, естественно, имеем его IP'шник, а значит, имеем сетку, расписываясь от имени тачки-фаерволла.
В случае получения рутового акцесса все еще проще, можно изменить настройки фаерволла так, как нам нужно. Стоит также обратить внимание на наличие уже запущенных редиректоров, призванных помогать внутренней сети получать доступ в Инет, но в результате админских глюков не закрытых от доступа снаружи. Нам вполне подойдет открытый socks или https-прокси. Если имеется ftp-сервер, то также можно выяснить кое-что для себя полезное.
ВЫЦЕПЛЯЕМ ВНУТРЕННИЕ АДРЕСА
Для успешного использования редиректора пакетов неплохо бы узнать используемые внутри сети адреса. Не слать же запросы наудачу! Так можно истратить лучшие годы жизни на ожидание. Если ты уже получил локальный шелл, то самое время запустить /sbin/ifconfig, который покажет все работающие сетевые интерфейсы, связанные с ними адреса и сетевые маски. Отбрось тот, через который ты пришел, а также другие внешние каналы (если их больше одного), и все остальное - внутренняя сеть. Самое время ее сканировать.
ЗАСЛАННЫЕ КАЗАЧКИ
Без шелла все не так тривиально, и придется попросить помощи у тех, кто живет внутри. Например, если известно, что внутри защищенной сети кто-то постоянно отвисает в irc, то самое время зайти в ту же irc-сеть и завязать с этим челом разговор. Наша цель в данном случае - чтобы он открыл к нам DCC соединение, будь то DCC-chat или просто файлик, который мы у него попросим. Стоит предвидеть, что чел начнет плакаться на неработу DCC :). Самое время вспомнить про НЛП и свой дар убеждения. Результатом успешной работы будет запрос, выглядящий примерно так:
*** DCC CHAT (chat) request received from green-- [172.17.10.90:40251]
В данном случае 172.17.10.90 - это и есть один из адресов во внутренней сети, по которому можно понять, что, скорее всего, используется сеть 172.17.10.0/24. Естественно, это работает только в том случае, если используемый фаерволл ничего не знает про irc-протокол. Если же в запросе приехал нормальный адрес и DCC нормально работает, то у нас есть три варианта: адрес совпадает с одним из адресов фаервольного компа, чел либо имеет шелл на фаервольном компе и ходит оттуда, либо фаерволл знает про DCC и правильно подменяет адреса в проходящих через него пакетах. Все эти варианты представляют для нас практическую ценность, и их стоит запомнить. Еще один вариант - это использование во внутренней сети обычных IP-адресов, просто прикрытых фаерволлом от доступа снаружи. В таком случае мы также получаем данные об используемых внутри сети адресах.
Содержание Вперед на стр. 024-018-2
Хакер №024. Спецвыпуск

АТАКА проходим сквозь фаерволл
GREEN (green@rootshell.ru)
Спецвыпуск Xakep, номер #024, стр. 024-018-2
НЕ ИРЦЕМ ЕДИНЫМ...
Даже если в конторе никто не юзает irc, еще не все потеряно - ведь у нас в запасе есть очень богатый возможностями протокол ftp. Можно попытаться заставить кого-то из внутренней сети нажать на ссылку, подобную этой: . В данном случае myevilhost.ru - это комп, на котором у тебя есть возможность запустить сервер на 1111-м порту (либо на любом другом, тогда нужно поправить ссылку). На 1111-м порту нужно запустить модифицированный ftp-сервер, который будет запоминать все PORT-команды. В случае, если клиент не ходит через ftp/http-прокси, - это, наверняка, сработает, и ты увидишь в созданном логе строчки наподобие этой: PORT 1,2,3,4,0,44452. Это значит, что у клиента был адрес 1.2.3.4. Подобную ссылку можно завернуть в письмо, посланное внутрь сети. Но если ссылка требует ручного нажатия, что не всегда удобно, то
ХОД КОНЕМ
Еще одним способом получить множество информации о внутренностях сети является засылка туда трояна, который может не только узнать используемые внутри сети адреса, но также установить туннель с твоим хостом для удобства исследования сети, собрать и отослать нужные файлы и тому подобное. К сожалению, этот способ эффективен, только если широко расплодившиеся в последнее время антивирусы не уничтожат твоего троянца по пути к месту назначения, и к тому же внутри сети трояну удастся запуститься. Мы рассмотрим кое-какие триксы, применяемые в троянах ниже.
ПУБЛИЧНЫЕ СЕРВЕРА В ОДНОЙ СЕТИ С ВНУТРЕННИМИ КОМПАМИ
Не так уж редко можно столкнуться с архитектурой, при которой за фаерволлом сидят сервера и рабочие станции внутри одной сети. При этом часть серверов находится в публичном доступе, и фаерволл пропускает пакеты к этим серверам, а часть серверов и рабочие компы фаерволлом прикрыты и имеют, например, адреса из private address space типа 192.168.0.0/16. В этом случае полностью применимо все сказанное выше относительно сервисов на фаерволле, то есть, сломав один из таких видимых снаружи серверов, получаем полный доступ в локальную сеть. К тому же, сломав один из серверов, можно получить расширенный доступ и к соседним серверам. Мало кто станет закрывать свои сервера друг от друга, и если снаружи зайти на 139-й порт windows-серверов не удастся из-за фаерволла, то сделать это изнутри скорей всего удастся.
Назад на стр. 024-018-1 Содержание Вперед на стр. 024-018-3
Хакер №024. Спецвыпуск

АТАКА проходим сквозь фаерволл
GREEN (green@rootshell.ru)
Спецвыпуск Xakep, номер #024, стр. 024-018-3
ОБХОДИМ NAT
NAT расшифровывается как Network Address Translation. Общий принцип работы заключается в перехвате пакетов, посланных из внутренней сети фаерволлом и подмене внутренних адресов на внешние, при этом составляется табличка соответствия между парой внешний (подставленный) IP, внешний (подставленный) порт и внутренний (изначальный) IP и порт. Когда на отправленный запрос приходит ответ, по адресу и порту фаерволл выясняет, куда необходимо отправить этот ответ во внутренней сети, еще раз подменяет IP и порт и отправляет пакет внутрь. Такая схема работы не требует специальной настройки клиентских программ и полностью для них прозрачна (то есть клиентам вообще по барабану, есть фаерволл или его нет), а потому очень популярна.
На самом деле такая "прозрачность" легко осуществима только для простых протоколов, которым достаточно одного соединения типа HTTP. С более сложными протоколами, например FTP, все обстоит гораздо сложнее. При работе по FTP-протоколу открывается так называемое управляющее соединение, по этому соединению сервер и клиент обмениваются командами и ответами на команды. Когда необходимо передать файл или другие, не управляющие, данные, открывается еще одно соединение, по которому данные и передаются. Причем открытие соединения осуществляется со стороны сервера на адрес и порт, указанные клиентом. Чтобы такие сложные последовательности работали через NAT, в него обычно встраиваются специальные хелперы для определенных протоколов (обычно протоколы определяются по портам), которые обрабатывают управляющие команды протоколов и подменяют, если это необходимо, адреса не только в пакетах, но и в командах внутри пакетов. Поскольку, согласно протоколу, клиент передает не только адрес для соединения, но и порт, это открывает нам возможность обратиться практически к любым портам машин, находящихся за фаерволлом с включенным NAT и поддержкой active ftp соединений. К примеру, можно послать внутрь такого рода сети письмо, содержащее html тег
RETR aaaaa PORT 1,2,3,4,0,139
После необходимой подмены ftp серверу приходит пакет с настоящим IP-адресом и портом, при коннекте на который на самом деле соединение будет установлено со 139-м портом внутреннего компа. Естественно, можно использовать не только 139-й, но и любой другой.
Помимо ftp подобными же свойствами обладают протоколы DCC (в irc), Oracle SQL*Net (версия, использующая раздельные каналы данных), RealAudio/Video (использует дополнительный UDP-канал), H.323 (NеtMeeting и тому подобные).
ЭКТИВ? ПЭССИВ!
Очень похожий глюк можно использовать и против ftp сервера, находящегося за фаерволлом и работающего в passive режиме. В данном случае фаерволл следит за сообщениями сервера в поисках 227-го кода ответа, который выглядит как "227 (1,2,3,4,10,11)", что расшифровывается как положительный ответ на команду PASV для открытия соединения для передачи данных с сервером 1.2.3.4, порт 2571 (10*256+11). Наша задача - заставить ftp-сервер выдать такой ответ, а фаерволл - его принять. Один из способов это проделать - добиться, чтобы переданные нами данные были возвращены сервером (например, как сообщение об ошибке), а 227-й ответ начинался на границе пакета. Тогда с точки зрения фаерволла это будет выглядеть, как вполне нормальный ответ сервера, и доступ по указанному порту будет открыт (само собой, по этому порту будет что-то нам интересное). Для удобства контроля за расположением данных в пакете мы уменьшим MTU на интерфейсе, через который мы посылаем данные до 100 байт. (MTU - максимальный размер пакета, который может передаваться через интерфейс). Вот как это может выглядеть (ftp-сервер находится по адресу 172.16.0.2):
Назад на стр. 024-018-2 Содержание Вперед на стр. 024-018-4
Хакер №024. Спецвыпуск

АТАКА проходим сквозь фаерволл
GREEN (green@rootshell.ru)
Спецвыпуск Xakep, номер #024, стр. 024-018-4
# /sbin/ifconfig eth0 mtu 100
# nc -vvv 172.16.0.2 21
(UNKNOWN) [172.16.0.2] 21 (?) open
220 sol FTP server (SunOS 5.6) ready.
227 (172,16,0,2,128,7)
500 '
[1]+ Stopped nc -vvv 172.16.0.2 21
В этот момент мы можем соединиться сервером по порту 32775 (128*258+7), в случае, если на той стороне установлен Solaris 2.6, на этом порту сидит дырявый ToolTalk сервис, который мы теперь можем поиметь.
Некоторые реализации фаерволла позволяют передавать данные по такому открытому порту только в одном направлении - к серверу, так что для окончательного успеха нам нужен такой ToolTalk, который выполнит, например, такие операции:
"cp /usr/sbin/in.ftpd /tmp/in.ftpd.back ; rm -f /usr/sbin/in.ftpd ; cp /bin/sh /usr/sbin/in.ftpd".
В результате следующее соединение к этому серверу по 21-му порту даст нам root shell.
ПЕРЕДАЧА ИНФОРМАЦИИ ИЗНУТРИ
Теперь посмотрим, как можно передать инфу изнутри сети, прикрытой фаерволлом. Естественно, для этого нужно иметь помощника - например, трояна или живого человека, готового продать информацию изнутри, но не готового носить внутрь дискетки/винты (например, из-за строгого пропускного режима).
В самом простом случае все исходящие соединения, сделанные с внутренних машин наружу, будут работать. В таком случае информацию можно просто переслать. В случае с трояном - он установит соединение наружу, по которому ему будут передавать команды, что делать дальше, например, установить еще одно соединение и все данные из него перенаправить для выполнения cmd.exe (или другим локальным шеллом, если троян не для windows).
В чуть более сложном случае - исходящие соединения будут разрешены только на определенные порты (например, 80-й - для http); этот случай почти так же тривиален, как и предыдущий. Всего лишь нужно заставить троян соединяться с твоим серваком по 80-му порту. Ну, или человеку передавать данные на 80-й порт. В общем, если из внутренней сети есть доступ в Internet и внутри есть помощник - информацию утаить невозможно.
Назад на стр. 024-018-3 Содержание Вперед на стр. 024-018-5
Хакер №024. Спецвыпуск

АТАКА проходим сквозь фаерволл
GREEN (green@rootshell.ru)
Спецвыпуск Xakep, номер #024, стр. 024-018-5
Рассмотрим один из полупараноидальных случаев - никаких прямых соединений с Интернетом установлено быть не может, доступ в Интернет через запароленный proxy с мониторингом, кто куда ходит и что передает. В таком случае информацию можно передать, например... через DNS! Простейший пример: регистрируется домен mydomain.ru, на обслуживающем его сервере имен устанавливается специальный софт. Стороны договариваются (либо создатель трояна встраивает его в троян) о секретном протоколе обмена, например, запрос к aN.mydomain.ru означает единицу, а к bN.mydomain.ru означает ноль, передаваемый со стороны внутренней сети. N - любое число (чтобы не получать ответы из кеша - число меняется каждый раз). Запрос на zN.mydomain.ru служит для получения информации от внешнего хоста. Информация передается, например, как один из двух IP-адресов.
Указанная схема довольно примитивна. Чуваки из dereference написали полноценный туннель, который будет работать в случае, если единственный доступный Internet сервис - это DNS. Их тулза предназначена, в основном, для получения халявного Инета через демо-аккаунты буржуйских ISP (само собой, где-то в Инете нужно иметь и сервер со вторым концом туннеля). Скачать исходники тулзы можно с http://nstx.dereference.de/. Удачи тебе в спортивной ловле халявы!
Назад на стр. 024-018-4 Содержание
Хакер №024. Спецвыпуск

NIX-ПРЕДОХРАНИЛОВО
вся правда об ipchains
Спецвыпуск Xakep, номер #024, стр. 024-022-1
Tony (tony@nifti.unn.ru), ICQ: 165066287
Что, дружище, пропало желание? Заплати налоги и живи спокойно. К несчастью, если тебя задолбали стада отморозков, в изобилии пасущихся на просторах Интернета и желающих поиметь тебя и твой Инет, то этот трюк с налогами не пройдет, и тебе пора ставить и конфигурировать firewall. Для любителей покувыркаться с фонетикой есть другое название - брандмауэр, а твой преподаватель информатики называет его межсетевым экраном.
ЧТО ТАКОЕ FIREWALL?
В общем смысле - это софтина или железяка, которая фильтрует проходящие через нее ip-пакеты, используя при этом набор правил, составленных разработчиками и дополненных тобою. Фильтрация пакетов заключается в том, что файрволл смотрит в заголовок пакета (между прочим, он еще может анализировать содержимое пакета, т.е., собственно говоря, саму передаваемую информацию), сопоставляет его с заданными правилами и разрешает или запрещает прохождение пакета внутрь сети, во внешний мир или к локальным процессам. Не упущу очередной повод пнуть Билла в причинное место - в Linux'e механизм файрволла встроен в ядро и является неотъемлемой частью операционки, в отличие от виндузы, где за хороший межсетовой экран приходится платить нехилое количество америкосских президентов (ну... в Буржундии так считают :)). Управление этим механизмом осуществляется при помощи специализированного софта. В ядрах, начиная с 2.1.х, используется утилита ipchains, начиная с ядер 2.4.х, появилась новая прога - iptables, функционирующая на тех же принципах. Кроме фильтрации пакетов ipchains позволяет также конфигурировать несколько полезных вещей: маскарадинг (подмена параметров в заголовках ip-пакетов) и прозрачное проксирование (переадресация ip-пакетов на другой порт).
КАК ЗАПУСТИТЬ ЕГО?
Очень просто, достаточно записать символ «1» в файл «/proc/sys/net/ipv4/ip_forward»; соответственно, для того чтобы остановить, необходимо записать туда же символ «0»: «echo 1 > /proc/sys/net/ipv4/ip_forward». Имеет смысл записать эту команду в один из стартовых скриптов. Что-то не работает? Проверить это просто - если есть файл "/proc/net/ip_fwchains" то все чики-пуки. Если нет, то необходимо сконфигурировать ядро для работы с фаерволлом, а дальше действовать по инструкции номер 609258/инд. 8965 МО РФ для компиляции и установки ядра :)). Опции ядра, которые необходимо сконфигурировать, следующие: "CONFIG_FIREWALL = y", "CONFIG_IP_FIREWALL = y", "CONFIG_IP_FIREWALL_NETLINK = y" (направляет копии пакетов программам мониторинга), "CONFIG_IP_MASQUERADE = y" (включает маскарадинг), "CONFIG_IP_TRANSPARET_PROXY = y" (включает прозрачный прокси).
КАК РАБОТАЕТ FIREWALL?
По умолчанию имеются три встроенные цепочки (chains) правил (rules): входная (input), выходная (output) и пересылочная (forward). Можно дополнять их своими цепочками. Каждая цепочка состоит из правил. Каждое правило содержит условие и действие, которое необходимо произвести с пакетом, если он удовлетворяет условию. Если пакет не соответствует условию, то проверяется следующее правило цепочки. Если все условия исчерпаны, задействуется политика (policy) цепочки.
Содержание Вперед на стр. 024-022-2
Хакер №024. Спецвыпуск

NIX-ПРЕДОХРАНИЛОВО
вся правда об ipchains
Спецвыпуск Xakep, номер #024, стр. 024-022-2
Так подожди-ка, я уже запутался, а как файрволл определяет, по какой цепочке проверять пакет? Все очень просто, как апельсин... Если пакет приходит из внешнего мира (скажем, по Ethernet карте или по момеду) и предназначен драндулету, на котором работает firewall (а вернее - локальным процессам), то он проверяется по входной цепочке. Если же, наоборот, пакет был создан локальным процессом и предназначен для внешнего мира, то он проверяется по выходной цепочке. Если же пакет приходит из внешнего мира, но предназначен другим компам, тогда он проверяется по пересылочной цепочке. Правда, тут есть одна хитрость - этот механизм (пересылочный) не будет работать в том случае, если в ядре запрещена маршрутизация (т.е. передача пакета с одного компа на другой - фактически с одного сетевого интерфейса на другой), в этом случае пакет будет разрушен.
КОЛБАСИМСЯ С ЦЕПОЧКАМИ
Сначала научимся создавать новые цепочки, это делается при помощи команды «ipchains -N имя_цепочки». При этом имя цепочки не должно превышать восьми символов, а также не должно совпадать со стандартными именами цепочек и операций (input, output, forward, ACCEPT, DENY, REJECT, MASQ, REDIRECT, RETURN). Кроме того, рекомендуется задавать имена цепочек в нижнем регистре.
Даже в том случае, если ты безвылазно проводишь свою жизнь в танке, ты должен понимать, что, кроме создания цепочки, у тебя должна быть и возможность пристукнуть ее в темном уголке твоей (или чужой :)) операционки. Тут тебе на помощь приходит заветная буква X (прикинь, насколько она многолика, эта великая буква русского и латинского шрифта!). Соответственно команда, которая позволяет тебе выполнить это магическое деяние, выглядит так: «ipchains -X имя_цепочки». Удаление цепочки произойдет в том случае, если она существует, она пустая (т.е. в ней нет ни одного правила), а также если в других цепочках нет правил, ссылающихся на нее.
А как я удалю цепочку, если она не пустая? Очень просто - ее надо пропылесосить от правил, а вернее отправососить :). Это делается с помощью команды «ipchains -F имя_цепочки». И будь осторожен, если ты не укажешь имя цепочки, то ко всем правилам во всех цепочках придет в гости безоговорочный звездец.
Просматриваются цепочки по команде «ipchains -L имя_цепочки». Если имя не указано, то будут показаны все цепочки. Вместе с флагом -L можно также указывать следующие флаги: -n (не преобразовывать IP-адреса в символьные), -v (дополнительная инфа по правилам, счетчики пакетов и байт), -x (получить точные численные значения, например, вместо 2K bytes будет написано 2048 bytes).
Обнуление счетчиков происходит по команде «ipchains -Z имя_цепочки». Как можно догадаться, если имя цепочки не задано, то обнуляться будут счетчики всех цепочек. Наконец, политику цепочки можно определить с помощью команды «ipchains -P имя_цепочки политика». Политика бывает ACCEPT (принять), DENY (грохнуть) и REJECT (злобно грохнуть, т.е. грохнуть и отправить уведомление отправителю). Политика может задаваться только для встроенных (built-in) цепочек - входной, выходной и пересылочной. Для пересылочной цепочки также возможно значение политики MASQ, но я тебе рекомендую забыть об этом значении, если ты хочешь нормальной безопасности.
Назад на стр. 024-022-1 Содержание Вперед на стр. 024-022-3
Хакер №024. Спецвыпуск

NIX-ПРЕДОХРАНИЛОВО
вся правда об ipchains
Спецвыпуск Xakep, номер #024, стр. 024-022-3
Так, дружище, я забыл сказать, что за звери такие - «счетчики»? Сщас гляну в документацию... шутка :). Когда пакет начинает просматриваться в цепочке и проверяется для каждого правила, то, если он удовлетворяет условию, счетчик байт для этого правила увеличивается на размер пакета (плюс размер заголовка), а также на единицу увеличивается счетчик пакетов для данного правила.
ПРАВОВОЕ ПОЛЕ
Итак, ты уже научился создавать и убивать цепочки, теперь покопаемся у них в требухе. Внутри цепочек у тебя есть правила для пакетов, у которых в свою очередь есть условия, на которые проверяется пакет в этом правиле, и если он удовлетворяет этому правилу, то совершается определенное действие. С правилами ты можешь выполнять следующие операции:
- добавлять новое правило в конец списка правил («ipchains -A имя_цепочки»);
- вставлять новое правило на определенное место в цепочке («ipchains -I имя_цепочки номер_места»);
- заменять указанное правило в цепочке («ipchains -R имя_цепочки номер_места»);
- удалять правило в указанной позиции («ipchains -D имя_цепочки номер_места»);
- удалять правило, соответствующее условию, - это когда тебе в лом искать номер нужного правила, и ты вместо номера указываешь условие («ipchains -D имя_цепочки условие»). Правда, если в цепочке есть несколько одинаковых правил, на встречу с создателем отправится только первое правило.
Совершая эти действия, ты должен помнить, что каждое правило имеет свой порядковый номер, и при удалении правила из середины цепочки или вставки туда нового правила все нижележащие правила уменьшат или увеличат свои номера на единицу.
Ок, наконец наш пакет попал в правило, и теперь он проверяется на соответствующее условие:
- Пакет должен иметь указанный адрес отправителя (флаг «-s адрес_отправителя»), адреса могут указываться в виде символического адреса (www.xakep.ru), в виде IP-адреса (192.168.10.78), в виде IP-адреса с численной маской (192.168.10.0/255.255.255.0 - иными словами говоря, 192.168.10.*), а также в виде IP-адреса c битовой маской (192.168.10.0/24 то же самое, что и 192.168.10.0/255.255.255.0, ну а 192.168.10.0/16 - то же самое, что и 192.168.10.0/255.255.0.0); если тебе надо указать все адреса, можно использовать такое написание - 192.168.10.0/0 (при этом адрес 192.168.10.0 может быть АБСОЛЮТНО любым);
- Пакет должен иметь указанный адрес получателя (флаг «-d адрес_получателя»), формат адреса такой же, как и у флага -s.
- Инверсия указанного условия (! - например, «ipchains -s ! www.lamers.com»).
- Указанный протокол («ipchains -p TCP -d 192.168.10.78/0 ! 80», эта запись, к примеру, значит - все пакеты протокола TCP, кроме пакетов, адресованных на 80-ый порт), помимо протокола можно также задать и номер порта (можно символическое имя порта, загляни в файл сервисов «/etc/services»). Также можно указывать диапазоны портов - 21:80 (если пропущена первая цифра, т.е. - :80, то имеются в виду все порты вплоть до 80-ого).
Назад на стр. 024-022-2 Содержание Вперед на стр. 024-022-4
Хакер №024. Спецвыпуск

NIX-ПРЕДОХРАНИЛОВО
вся правда об ipchains
Спецвыпуск Xakep, номер #024, стр. 024-022-4
- Интерфейс (флаг -i), к интерфейсам также применима инверсия, например «-i ! lo» будет значить «все интерфейсы, кроме lo». До кучи ты можешь указывать группу интерфейсов «-i eth+», это будет означать все интерфейсы, имена которых начинаются с «eth».
- TCP SYN пакеты (-y) - это пакеты с запросом на установление TCP соединения. Они могут применяться только в правилах с TCP протоколом (например так: «-p TCP -s 0.0.0.0/0 -y», что означает принимать TCP SYN пакеты с любого адреса).
- Только фрагменты пакетов (-f). Если пакет превышает по своему размеру MTU (Maximum Transfer Unit - максимальный размер), то он фрагментируется - разбивается на несколько пакетов, которые пересылаются по отдельности (на одной стороне разбираются, а на другой - собираются). На нашем файрволле эти пакеты можно собирать - дефрагментировать (для задействования этой опции ядра необходимо установить "CONFIG_IP_ALWAYS_DEFRAG = y") и транзитом отправлять их дальше. Вот тут и вылезает, аки гад из-под коряги, простая проблема - в первом фрагменте пакета лежит заголовок, а в остальных нет. Будь осторожен - злобные досеры могут закормить тебя обрывками пакетов, такие методы существуют, так что без нужды не запускай дефрагментатор.
Вот почти все условия, которые тебе могут понадобиться, (я, правда, не рассказал о типах и кодах для протокола ICMP, но о них прочитаешь по ссылкам, которые указаны чуть ниже).
Наконец, мы определились что за пакет нам пришел, и теперь надо принять решение, что же с ним делать. Для этого существуют шесть специальных действий плюс два дополнительных. Специальные действия задаются флагом -j:
- ACCEPT - принять пакет.
- DENY - грохнуть.
- REJECT - издевательски грохнуть, т.е. послать отправителю ICMP-пакет о совершенном деянии (при условии, что проверяемый пакет не был ICMP-пакетом).
- MASQ - замаскарадить пакет, действует только для пересылочной цепочки и при условии, что ядро поддерживает маскарадинг.
- REDIRECT - применить прозрачное проксирование, т.е. отправить пакет на указанный порт локальной машины (возможно только во входной цепочке, формат «-j REDIRECT номер_порта»).
- RETURN - применить к этому пакету политику цепочки.
Если после -j ты укажешь действие, отличное от этих шести, то пакет начнется проверяться по указанной тобою цепочке (после флага -j), по завершении проверки по пользовательской цепочке проверка продолжится по текущей цепочке правил.
Кроме этих общих переходов, ты можешь записать в логи пришедший тебе пакет (флаг -l) и изменить тип обслуживания пакета (-t), а еще... Ладно, хватит, это уже совсем необязательные фишки (любопытным - welcome2rtfm).
ПОЛЕЗНЫЕ ХИНТЫ
Прикинь, дружище, что ты полезешь разбираться на уже работающий файрволл со своим энтузазизмом великого конфигуратора. Готов поспорить на ящик «Балтики»-пятерки и упаковку кальмаров, что у тебя с первого раза мало чего стoящего получится, а вот угробить текущую конфигурацию - это запросто. Но не волнуйся, если ты будешь предохраняться, то и твой волк будет сыт и овечки мало пострадают (да и пастуху вечная память!)... Ведь текущие правила цепочки (или цепочек) можно сохранить при помощи утилиты «ipchains-save имя_цепочки > имя_файла»; если вдруг забудешь указать имя цепочки, не волнуйся - сохранятся правила для всех цепочек. А если ты забыл указать имя файла, то извини, твой танк припаркован на запасном пути :). Ну а раз можно сохранить правила, то со стороны разработчиков было бы верхом глупости, если их нельзя было бы загрузить - «ipchains-restore < имя_файла».
Назад на стр. 024-022-3 Содержание Вперед на стр. 024-022-5
Хакер №024. Спецвыпуск

NIX-ПРЕДОХРАНИЛОВО
вся правда об ipchains
Спецвыпуск Xakep, номер #024, стр. 024-022-5
Очень аккуратным нужно быть и с ICMP-пакетами. ICMP-протокол используется для распознавания ошибок в других протоколах, и если ты будешь грохать, не задумываясь, его пакетики, то цикл, запрашивающий соединение с сервантом, который будет орать что-нибудь вроде «Ой, вы знаете, а я ведь сегодня анричибл», никогда не получит этой мессаги, а следовательно, будет мотаться и мотаться... Тот же ICMP используется для определения MTU (максимального размера пакета), и если ты фрагментируешь свои пакеты, а ICMP-пакеты не пролетают, то сервант на другом конце провода не получит сообщения о фрагментации пакетов. Соответственно - нужная тебе mp3-шка так и не придет, сколько бы ты ни молился Биллу.
Во время процесса конфигурации тебя могут подстерегать и другие опасности - злобный хацкер может проникнуть в конфигурируемую тобой систему, поэтому имеет смысл перед началом конфигурации запретить весь траффик, например, так - «ipchains -I input 1 -j DENY» (это надо повторить для всех встроенных цепочек). После завершения процесса конфигурации убери эти правила - «ipchains -D input 1». Кроме того, для проверки правил ты можешь послать фиктивный пакет командой с параметром «-C». Пример - «ipchains -C input -p TCP -s 0.0.0.0/0 -d 192.168.10.78/80», по этой команде сгенерируется для входной цепочки TCP пакет с произвольным адресом отправителя и с адресом получателя 192.168.10.78 для порта 80. Если он пройдет все проверки и уйдет адресату, то ipchains ответит - "Packet accepted", а в противном случае - "Packet rejected".
ОБЩАЯ БЕЗОПАСНОСТЬ
На любых уровнях человеческой жизнедеятельности, начиная с банального пикапа симпатичных подруг и кончая нашими файрволлами, - есть два основных принципа, называй их как хочешь, но от этого их суть не изменится:
- что не запрещено, то - разрешено;
- и наоборот, что не разрешено, то запрещено.
Хорошие системы безопасности строятся по второму принципу, кривые - по первому. Мотай на ус.
КОНЧАЛО
Я надеюсь, твой мозг не воспалился от потока вылитой инфы, а если ты хочешь добавки, лезь сюда - http://www.opennet.ru/docs/135.shtml. Сомневаюсь, что представленной здесь инфы будет мало, ну а если так, то да поможет тебе man и ipchains-HOWTO. И помни, что паранойя это не порок, а образ жизни.
Назад на стр. 024-022-4 Содержание
Хакер №024. Спецвыпуск

ЗАЩИЩАЕМСЯ ПОД WIN
Спецвыпуск Xakep, номер #024, стр. 024-026-1
настройка Agnitum Outpost Firewall
Трудно раскидывать пальцы в сети, если сам падаешь от первого толчка ламера, скачавшего себе Voidozer и даже не представляющего себе, как он работает. Еще труднее спокойно спать, будучи админом сервака под NT или 2000. Но есть счастье у виндусятников, его надо только скачать и настроить :).
СТАВКА
Качать здесь: http://www.agnitum.com/products/outpost/. Нам на выбор дают 2 версии Free и Pro. Первая, соответственно, бесплатная, за вторую придется заплатить. Во имя существования великой халявы описывать буду бесплатную версию со всеми подробностями и наворотами. Первым делом после установки перегрузись, поскольку прога работает на достаточно низком уровне с сетевухой/модемом. Ставится он, к счастью, на все MSWin платформы от 95 до XP, так что качать для 98 отдельно, а для XP/NT отдельно тебе не придется. Русский интерфейс опять же делает ее более разговорчивой. Очень жаль, что на сайте разработчиков не осталось старых версий, в которых была опция debug, пользуя которую, можно было переделать программку в маленький снифер, так сказать, "для себя" (гы, ради такого дела я держу копию той самой версии на http://www.dronich.nm.ru :) - прим. ред.). Лично мной Аутпост ставился без каких-либо глюков на 98, NT4, XP. На XP ставил сразу после установки оной для успокоения разнообразных стукачей, чего и тебе советую.
ОБЩИЕ НАСТРОЙКИ
Первым делом прога падает в "режим обучения", советую там ее и держать при использовании на домашней тачке, много лишнего спрашивать она не станет. Если придется ставить на гейте или серваке, то можно сделать настройки и отправить ее в "режим блокировки" или "режим разрешения", в зависимости от целей установки. Первым делом лезем в меню параметров -> общие, на первой странице ставим везде галочки, если еще не стоят. В системных убираем (если стоит) галочку на NetBIOS, в "тип ответа" ставим невидимку. Все, первое дело сделано, можно выходить на полосу препятствий в И-нет.
НАСТРОЙКА ПОД ПРИЛОЖЕНИЯ
В отличие от NetStat, в OutPost ты можешь посмотреть не только, какие порты открыты, но и кто именно их открыл. Добавить эту строчку можно правым кликом по "Моя сеть", это очень удобно для поимки троянов. При первых же соединениях некие: RPCSS, он же DCOM, ICQSRP, он же баннер для аськи, пытаются установить соединения. Для них смело выбирай "запретить любые действия", ибо нефиг кому попало твой трафик жрать. У меня в запрещенных еще и Winamp болтается, достал своей "более новой" версией. Туда же посылай всякие "AUTOUPD" и "AUPDRUN", приспичит, сам скачаешь :). Если ставишь Outpost под XP, то есть еще один немаловажный момент, данная система очень любит стучать Билли. Для пресечения этого после первого выхода в сеть просто подожди, как только начнут появляться запросы во внешний мир, смело режь их, ябедничать нехорошо! Пусть привыкает это изнеженное американское дитятко жить в наших постсоветских условиях.
ЛИЧНЫЕ НАСТРОЙКИ
Теперь начинаем знакомить наш OutPost со всеми приложениями. Запускаем мылер, файрволл начинает яростно орать. На что в правом вываливающемся меню мы объясняем ему, что это e-mail client. Запускаем браузер, объясняем, что это browser. И так по очереди. Конечно, можно все сделать руками и нудно прописать все порты, для всех программ. Но раз уж сделали меню, пусть работает. Тетя Ася настраивается в автомате замечательно, но я потом отрезал ей mail и http, мыло я ей не проверяю, а качать странички и картинки за мой счет нельзя. Все nntp клиенты, если ты их пользуешь, идут по разряду мылеров, позже просто кастрируем им pop и smtp, на всякий случай. Обрезание делается в меню "приложения" в параметрах. Единственный, кто попал не по автомату, был telnet, уж очень я люблю им на http и smtp коннектиться, потому повесил его в привилегированную группу "можно все". В эту же ложу можешь определять проги, которые ты написал сам. Проги друзей и знакомых туда лучше не отправлять, помни, что кодер кодеру - хакер, ламер и юзер :). Так что эти проги проверяй в первую голову.
Содержание Вперед на стр. 024-026-2
Хакер №024. Спецвыпуск

ЗАЩИЩАЕМСЯ ПОД WIN
Спецвыпуск Xakep, номер #024, стр. 024-026-2
ДЛЯ ПРОГРАММИСТА
Если ты сам активно пишешь проги, то будь готов к тому, что Outpost тебя достанет сообщением типа "тут кто-то говорит, что он Project1.exe, но я того кекса в лицо знаю, это не он, что делать будем?". На период написания серверной или клиентской проги лучше его отрубать переводом в "режим бездействия". Соответственно, в И-нете ты окажешься на это время беззащитным. Сам факт проверки программ радует, поскольку встроить троянец в icq.exe или в твой любимый браузер уже будет более проблематично. В качестве хакерского использования можно добавить несколько программ просто для отслеживания изменений в них. То есть добавляем в наш Outpost, например, прогу "notepad.exe" и разрешаем ей коннектиться на сервер 127.0.0.1; как только прога изменится, нам выскочит предупреждение, что, мол, вы ей разрешали, а она не та, что была. При этом прога может даже и не думать куда-либо коннектиться. Таким образом получаем простую и надежную проверялку программ.
РЕЖИМЫ РАБОТЫ
Разберемся для начала с первым и последним режимами, поскольку они наиболее просты в понимании. Первый - это режим бездействия, а последний - это режим "блокировать все". Первый отключает файрволл и позволяет любому приложению устанавливать любые соединения, что удобно при работе не совсем стандартных программ с использованием множественных соединений. Последний отрубает все и вся, то есть ты как бы в офф-лайне, и, кроме IP адреса, ничто и никто не скажет, что ты являешься частью сети. Следующие по сложности это режим "блокировки" и режим "разрешения". Первый включает все правила, которые явно разрешают соединения и запрещает все остальное. Второй разрешает все, что явно не оговорено как запрещенное действие. Последний, в принципе устанавливаемый по умолчанию, это режим "обучения", то есть тебя спрашивают обо всех действиях, которые выполняет твой компьютер или которые пытаются выполнить с твоим компьютером из сети. При работе в автопилоте лучше настроить все, что можно делать, и поставить "режим блокировки", в таком случае будет труднее сделать то, чего ты бы добровольно не разрешил :). Уже позже, если кому понадобится выход по другому порту, можно будет добавить его отдельно.
Назад на стр. 024-026-1 Содержание Вперед на стр. 024-026-3
Хакер №024. Спецвыпуск

ЗАЩИЩАЕМСЯ ПОД WIN
Спецвыпуск Xakep, номер #024, стр. 024-026-3
ПРАВИЛА, КАК ОНИ УСТРОЕНЫ
В отличие от многих файрволлов, в Outpost правила задаются для каждой проги отдельно. Само правило состоит из нескольких пунктов. Во-первых, это протокол, его выбор не велик - есть только TCP и UDP. Во-вторых, это направление, то есть есть входящее или исходящее. Затем удаленный адрес, он может представлять собой IP адрес (или несколько), который заносится в таблицу, или диапазон адресов, например - с 127.0.0.1 по 127.255.255.255, диапазонов тоже может быть несколько. Если в удаленный адрес написать имя домена, то Outpost дойдет до ближайшего DNS сервера и вставит в таблицу IP адрес, что при использовании в качестве запрета может отрезать не один хост, а всю пачку хостов с этим IP адресом. Вместо маски можно использовать звездочки в IP адресе, то есть с 127.0.0.0 по 127.255.255.255 будет эквивалентно 127.*.*.*, что удобнее использовать, выбирай сам.
Четвертым на очереди пунктом идет удаленный порт, можно задать в цифровом виде, например, 21, можно в буквенном, то есть FTP, можно в виде диапазона (например, 1024-65535). Если есть необходимость указать несколько портов или диапазонов, то они разделяются между собой запятыми (то есть 1,12-15,21). Теперь наиболее интересная фича для настройки гейта, "где локальный адрес", то есть если у тебя стоит сетевуха с IP-шником 192.168.0.1 и мопед с плавающим дайл-апом, то есть возможность разрешить по сети лазить к тебе на винт, а из И-нета запретить это делать. Задаются адреса так же, как в пункте про удаленный адрес, то есть одним IP или маской, диапазоном или по имени, которое переводится в IP адрес. Последний пункт описания соединения - это локальный порт. Задается так же, как удаленный, то есть цифрой, буквой или диапазоном, при необходимости разделяется запятыми. Удобно использовать при настройке локального сервера, особенно сервера, на который заходить можно не всем. Все, теперь осталось выбрать действие по этому правилу, варианты: блокировать, разрешить, отклонить. Разрешить - и так понятно: если соединение удовлетворяет описанию, то оно разрешается. Блокирование и отклонение отличаются тем, что при блокировании высылается RST пакет, говорящий о том, что такого порта нет; при отклонении не делается вообще ничего, то есть про это соединение просто забывают. Первое обычно ставят для исходящих соединений, чтобы программка не мучалась и сразу поняла, что туда долбиться бесполезно. Отклонение лучше ставить на свой сервер, чтобы входящие извне соединения просто терялись, тогда зафлудить твой канал будет более трудно, поскольку твой комп не будет отсылать ответ.
Очень грамотная фича в настройках - не обязательно указывать все правила, можно указать только протокол, что будет означать любое направление и любые адрес и порт, но нельзя не указать действие, а то Outpost просто не будет знать, что с ним делать.
PRACTICE
Давай попробуем создать правило для telnet-клиента. Заходим в приложения или просто устанавливаем Policy в "обучение" и долбимся telnet-ом по любому адресу. В первом случае отыскиваем наш telnet и говорим, что хотим создать правило, во втором говорим "запретить все" и идем в приложения, где перетаскиваем наш телнет из запрещенных в пользовательские. Теперь собственно само правило. В протоколе ставим TCP. Направление, поскольку у нас клиент, ставим исходящее. Удаленный порт ставим 23 или пишем TELNET, или просто выбираем его в таблице и кликаем мышкой. Все, теперь осталось сказать "разрешить эти данные" и жать "ок". Если у нас несколько правил, то не забудь, что проверяются они сверху вниз, поэтому если ты хочешь разрешить все соединения, кроме telnet, то поставь запрещающее правило повыше. Если же тебе надо запретить все, кроме HTTP, то разрешающее правило поставь перед запретом. В противном случае, наткнувшись на первое правило и увидев соответствие, никто не станет проверять весь список, а тупо выполнит первое приказание. Теперь давай попробуем настроить что-нибудь для локального сервака, например, для apache. Для начала отыскиваем его и добавляем в список приложений. Теперь добавляем правило для пользователей, то есть разрешаем входящее соединение на порты HTTP, HTTPS. Если ты пользуешь SQL, то не забудь прописать разрешающее правило на порты 1433 и 1434 или MS_SQL_S и MS_SQL_M (последний порт в принципе апачу не нужен, но он на него долбится. Дятел :)). При использовании исходящих соединений в PHP или Perl не забудь и про них. Если ты хочешь открыть сервак только для локалки, то мало во всех правилах прописать локальный IP адрес со звездочками или диапазон, надо еще запретить все остальные TCP соединения, только поставь запрет ниже разрешения. Таким образом файрвольчик проверит "входящее, TCP, из сетки = нет", идем дальше, а там "входящее, TCP = да", значится - отклоняем его (ну или запрещаем, тут тебе решать, что лучше).
Назад на стр. 024-026-2 Содержание Вперед на стр. 024-026-4
Хакер №024. Спецвыпуск

ЗАЩИЩАЕМСЯ ПОД WIN
Спецвыпуск Xakep, номер #024, стр. 024-026-4
СТАНДАРТНЫЕ ПРАВИЛА
Начнем с правил для ICQ. По умолчанию выставляются два правила на 4000 UDP порт для связи с сервером, два правила на TCP 1024-65535 порт, пара для посылки и приема почты и правило для работы с HTTP. С первой парой все понятно, раз с сервером ты обязан связаться, то и правило для этого необходимо. Правда, вместо двух можно указать одно, но не указывать направление, то же можно проделать и с клиентским коннектом. А вот правило про HTTP я бы удалил, вместо него более выгодно создать правило про запрет TCP 80 и поднять его в иерархии повыше. Не забудь про icqsrp, ему надо запретить любые действия, для тотальной блокировки баннеров. Таким образом получаем вместо 5 правил всего 3 плюс срезаем баннеры. Лепота!
Стандартное правило для браузеров - тоже не прелесть, например, есть строка PASV FTP, в которой указано, что исходящее соединение разрешено на порты 1024-65535, что полностью перекрывает правило PROXY, то есть одно из них явно лишнее. Если же ты работаешь через проксю и только через нее, то следует оставить единственное разрешенное соединение на твою проксю, а остальное потереть. Меньше будет проверять, значит быстрее будет работать. В противном случае стирай правило про проксики, оно тебе не пригодится. Наиболее грамотно написано стандартное правило для Download manager, в принципе для всяких reget, flashget и прочих менять ничего не надо. Но если тебе досаждают баннеры, то можно запретить обращаться к конкретному серверу, а можно просто включить плуг для кастрации рекламы. Мылер тоже переполнен всем, что только можно. Тут и NNTP, и IMAP, ну, конечно же, есть POP3/SMTP :). Лично я оторвал ему IMAP и NNTP, поскольку для работы с ними использую другие проги, а не свой мылосборник. Стандарты для IRC, FTP, Storage критике не подлежат, поскольку критиковать там, собственно, нечего. Для telnet я все же переделал проверку из двух строк в одну, просто переписав оба порта telnet и ssh в одну строку через запятую. В «синхронизация времени» вроде написано все правильно, но я так и не нашел сервера, где 123 UDP порт был бы нужен для какой-нибудь синхронизации :). Про NetMeeting говорить не буду, в его хелпе по подключению через прокси-сервер описаны все порты, именно они и занесены в список разрешенных. В общем, если ты ставишь стандартные правила, то не поленись и пройдись по ним позже для удаления лишних проверок.
Назад на стр. 024-026-3 Содержание Вперед на стр. 024-026-5
Хакер №024. Спецвыпуск

ЗАЩИЩАЕМСЯ ПОД WIN
Спецвыпуск Xakep, номер #024, стр. 024-026-5
ЗАТЫЧКИ
В качестве первой затычки нам предлагают плуг "реклама". Сам по себе достаточно полезный, поскольку срезает влет все баннеры и счетчики на страницы, оставляя о них лишь воспоминание в виде квадратных скобок с текстом. Но на слабых машинах он может достаточно сильно притормаживать процесс работы, так как обрабатывается весь пролетающий мимо трафик. Блокировка идет как по размеру баннера, так и по адресу, откуда его скачивают. Первый всплывший глюк с этим плагином это невозможность зайти на RLE :). Очень интересная особенность - это корзина, куда можно перетаскивать мышкой пролетающие баннеры, после чего ты их больше не увидишь.
Вторым на очереди стоит "Содержимое", что позволяет блокировать сайты с "определенным" содержимым или блокировать содержание сайта. Первое действие дает понять, что сайт блокирован, второе действие блокирует сайт без особого оповещения. И вовсе не обязательно заносить туда приятные и радующие глаз порносайты, можно занести туда журнал Бурда, чаты, в которых любит сидеть твой младший родственник, и другие неприятные сайты.
Плуг DNS позволяет обращаться реже к внешнему серверу, а следовательно, немного сократить трафик. Но будь готов к глюкам - если сервер переехал на другой адрес, но оставил старое имя, то во время кэширования (по умолчанию на неделю) твой комп будет безуспешно долбиться по неправильному IP адресу. Ограничения в размере кеша можно поднять до 500, но на скорости, если честно, это мало сказывается. Если же тебе надо часто лазить по новым серверам, то скорость практически не изменится. Имеется возможность посмотреть все кэшированные адреса, а следовательно, узнать, кто и куда лазил, но можно и удалить, даже выборочно, некоторые записи.
Назад на стр. 024-026-4 Содержание Вперед на стр. 024-026-6
Хакер №024. Спецвыпуск

ЗАЩИЩАЕМСЯ ПОД WIN
Спецвыпуск Xakep, номер #024, стр. 024-026-6
Плуг "активное содержимое" позволяет блокировать кусочки кода, которые относятся к ActiveX и прочим приблудам, но взамен сильно притормаживает комп, а количество реально существующих активных Х в сети сводит реальную пользу от плага практически на ноль. Кому действительно может пригодиться этот плаг, так это тому, кто никогда не патчит мастдайку и пользует исключительно IE и OutLook. При использовании Netscape и Bat пользы практически нет.
«Защита файлов», а именно так называется следующий подопытный, который ковыряется в твоих письмах и выбрасывает оттуда все лишнее. Это позволяет скачивать письма с вирусягами без их запуска и с сохранением своих нервных клеток.
И, наконец, самый полезный плаг - "детектор атак", он позволяет определить сканирование твоих портов и засечь безуспешно долбящихся на 138 и 139 порт ушлых парней. Качество определения сканирования достаточно высоко, ошибается в основном только при использовании FTP в пассивном режиме. При настройке плагина можно установить режимы блокировки, что позволит блокировать атакующего или блокировать всю сеть. Эффект со стороны такой: начинается сканирование, и через 5-6 отсканированных портов компьютер просто исчезает, якобы ты упал. Смешно :).
ПРИГОВОР
Аутпост - качественно написанный файрвольчик, который позволяет использовать себя задарма и при этом очень хорошо настраивается. Можно ставить как на домашний комп, так и на гейте для маленькой сетки. Главное его преимущество - это быстрая и удобная настройка. При испытаниях на 98 виндах он отлично выдержал удар IGMP, за что получил от меня лично плюс в свою сторону.
Назад на стр. 024-026-5 Содержание
Хакер №024. Спецвыпуск

BACKSTEALTH
удар в спину
Спецвыпуск Xakep, номер #024, стр. 024-030-1
TanaT (TanaT@hotmail.ru)
Предположим, ты хочешь кого-то хакнуть, а у этого чела стоит файрволл, что делать? Надо сказать, что сегодня эта проблема достигла пика своей актуальности. Суди сам - все, кому не лень, обвешались антивирусами и файрволлами. Даже полные ламеры знают, что "защита от злобных хацкеров достигается с помощью огромного числа security utils". Сейчас мы и поговорим об одном принципиальном способе обхода файрволла.
В мае этого года некий программер Паоло Иорио реализовал метод, позволяющий обходить файрволлы изнутри. Итальянец написал небольшую программу, которая, будучи запущенной под файрволлом, может беспрепятственно подключиться к сети и скачивать тестовый файл. Если быть точным, то эта мега-прога дурачит не все файрволлы, а лишь: Kerio Personal Firewall, McAfee Personal Firewall, Norton Internet Security 2002, Sygate Personal Firewall Pro, Tiny Personal Firewall (всего-то :) - прим. ред.).
Вначале разберем, что делает утилитка под названием BackStealth. Чтобы она заработала, нужно запустить ее на компе с установленным файрволлом. Тогда BS просканирует машину и попытается определить, установлен ли на ней какой-либо из "поддерживаемых" файрволлов. Если BS найдет хоть один из них, то попытается установить соединение с сетью и скачать файл по адресу: www.pc-facile.com/security/backstealth.txt. Этот файл она сохраняет на винте: C:\retrieve.dat. Вот его содержимое:
BACKSTEALTH test
A collaboration with http://www.pc-facile.com
Copyright 2002 Paolo Iorio
If you are reading this message it means BackStealth has managed to download this file WITHOUT your firewall being aware of it. No need to say that this is not good at all!
Как видишь, проведение самого теста никакого вреда причинить не может. Благо файл текстовый, а не деструктивно-исполняемый. Теперь давай посмотрим, как BS'у удается такой трюк.
Сам автор решил не сильно распространяться о механизме работы своей программы и сообщил лишь следующее: "BS использует Win API функцию VirtualAlloc, чтобы разместить необходимый для исполнения код в памяти, которую ОС выделила файрволлу. Таким образом, при обращении к сети и ОС, и файрволл думают, что в Интернет лезет сам файрволл!"
Действительно, если запустить эту прогу под файрволлом (мы пробовали это на каждом файрволле из предлагаемого списка), то в списке открытых соединений реально будет прописан работающий файрволл. (Список открытых соединений можно просмотреть командой "netstat -an" или с помощью любой графической утилиты, например, TCPview: www.sysinternals.com/files/tcpview.zip)
Кажись, все ясно, прога маскируется под файрволл и пытается выдать себя за его часть. Но на самом деле автор немножко схитрил. Что будет, если запустить BackStealth под любой последней версией файрволла (было бы глупо думать, что разработчики никак не отреагируют на такую дырку)? Очень просто, BS отыщет сторожа и попытается в него внедриться; так как разработчики уже что-то там поменяли, у нашего ренегата ничего не получится. Появится ошибка: VirtualAllocEx failed:120.
Содержание Вперед на стр. 024-030-2
Хакер №024. Спецвыпуск

BACKSTEALTH
удар в спину
Спецвыпуск Xakep, номер #024, стр. 024-030-2
Ну что ж. Запускаем MSDN и смотрим, что это за функция и где она живет. Видим, данная функция позволяет работать с памятью, уже занятой другим процессом. В отличие от VirtualAlloc, которая управляет памятью, еще никому не выделенной или выделенной своему процессу. Создатель "случайно" перепутал функции?
LPVOID VirtualAllocEx(
HANDLE hProcess, // дескриптор процесса;
LPVOID lpAddress, // начальный адрес выделяемой памяти;
SIZE_T dwSize, // размер выделяемой памяти;
DWORD flAllocationType, // вид выделения памяти;
DWORD flProtect // вид защиты при работе с данной памятью.
);
Обрати внимание на последний формальный параметр функции. Он может принимать несколько значений, позволяющих либо полностью защитить выделенную память от чтения/записи, либо сделать это частично. Видимо, разработчики файрволлов не обратили на flProtect особого внимания и использовали память, не защищая ее от вторжения. Теперь же попытка обращения к защищенной памяти приводит к ошибкам или исключениям.
Также интересным является тот факт, что функцию VirtualAllocEx не поддерживают Win95/98/ME, хотя VirtualAlloc поддерживается всеми ОС.
Теперь становится почти прозрачным алгоритм работы BS:
1. Сканируем память и ищем запущенные файрволлы.
2. Внедряемся в их память (благо дома можно с помощью отладчика подобрать все размеры памяти либо адреса дескрипторов или сами дескрипторы файрвольных процессов).
3. Записываем свой небольшой кусочек кода, скачивающий наш файл. Можно либо поместить его в оставшееся свободное место в памяти (ты же помнишь, что память выравнивается по параграфам для ускорения обращения к ней), либо на занятое место процесса так, чтобы ОС не зависла.
Примечательно, что представитель компании Symantec заявил, что их пользователям данная программа не страшна, так ее еще на момент запуска отловит Norton Antivirus. В принципе, это самый верный подход, ведь фаерволл не может защитить сам себя от внутреннего вмешательства. Хотя эту дыру уже залатали (мы проверили работоспособность проги на САМЫХ последних версиях файрволлов - BS везде проваливается с треском), можно найти и новые. А вот антивирус здесь в самый раз. Если софтина ищет что-то в памяти и начинает прыгать по чужим процессам - значит она вирус или, в крайнем случае, просто подлежит уничтожению.
Другие компании отреагировали проще: втихую поменяли какие-то свои параметры и выпустили новые версии своих продуктов.
Обрати внимание, что всеми любимые ZoneAlarm Pro и Agnitum Outpost оказались на высоте - у них врожденный иммунитет к этой программе. Видимо, у автора просто не дошли руки до них...
Что касается BS, то тут можно согласиться с BugTraq, который на странице, посвященной творению Паоло, написал просто: "Дискуссия закрыта".
Мы же возвращаемся к нашим баранам: чтобы обойти файрволл, нужно найти в нем дырку, заслать свою прогу-эксплоит и придумать легенду, чтобы ее запустили. Самым сложным моментом является поиск дырок. Не все способны кодить в ring 0 или на низком осевом уровне, но посещать сетевые проекты, посвященные безопасности, может каждый. Опыт показывает, что 75% пользователей и сисадминов не реагируют на новые сообщения о дырках и ошибках. Поэтому единственное, что тебе нужно, - отыскать дыру среди вновь найденных и правильно ею воспользоваться. Вывод прост - чаще посещай www.xakep.ru, а конкретно - его раздел BugTraq, и не забывай поглядывать на www.securityfocus.com (там иногда тоже полезное лежит).
Назад на стр. 024-030-1 Содержание
Хакер №024. Спецвыпуск

ВСЕОБЩАЯ ИНТЕГРАЦИЯ
предохраняемся средствами XP
Спецвыпуск Xakep, номер #024, стр. 024-032-1
Roman AKA Docent (docentmobile@yandex.ru)
Работники Microsoft, похоже, решили подмять под себя всех мыслимых и немыслимых конкурентов. Поэтому с каждой новой версией Окон ты можешь наблюдать, насколько расширяется арсенал включаемых в них прог, заменяющих многие программы других производителей, которые раньше нужно было ставить отдельно. К примеру, заменитель ICQ - Messenger (которым они обещают затмить популярность системы ICQ) или интерфейс для записи дисков, позволяющий обойтись без внешней программы вроде DirectCD, и даже Web-сервер IIS - это и многое другое, хочешь ты этого или нет, тебе без лишних вопросов поставят вместе с Windows XP. Видимо, скоро достаточно будет поставить на твою тачку один лишь Windows и больше не придется ставить ничего другого (только не это, шеф! - прим. ред.). Про то, сколько все эти прелести будут занимать места и сколько сожрут ресурсов, страшно, пожалуй, даже подумать (ты уже сейчас можешь это увидеть, если поставишь XP на несильно навороченную тачку). Особенно учитывая тот факт, что мелкомягкие изо всех сил стараются свести манипуляции пользователя при установке этой оси к критическому минимуму и избавить от такой бесполезной, на их взгляд, функции, как возможность выбрать компоненты для установки. А вот избавиться от некоторых ненужных тебе программ по окончанию установки иногда бывает очень трудно, вспомни хотя бы, как ты выковыривал IE из Windows 98, ведь без него окошки работали куда шустрей, а в качестве браузера можно было использовать Opera или Netscape. Я вот только недавно смог избавиться от пресловутого Messenger'а - не знаю, как ты, но Асю я ни на что не променяю. То же самое касается и брандмауэра, встроенного в XP, о котором, собственно, и пойдет речь.
ДЕСКРИПШН
Итак, в XP встроен пользовательский файрволл, напоминающий чем-то старый добрый ATGuard (который, кстати, никуда не исчезал, а просто входит сейчас в состав Norton Internet Security), но с меньшим набором возможностей. Конечно, для защиты корпоративного сервера или чего-то более серьезного, чем домашняя или офисная тачка или небольшая сеть, он вряд ли подойдет. Но для мирных домашних (и офисных) целей вполне покатит, если, конечно, ты не ярый любитель сетевых разборок с применением тяжелых вооружений. Ведь основной принцип защиты основан на том, что прога не только закрывает порты, но и делает твою машину невидимой в сети; так ее вряд ли удастся обнаружить сетевым сканером (впервые эта фича появилась в Outpost'e, а теперь ее юзают все, кому не лень - прим. ред.). Хотя, как можно предположить, у этого есть и свои отрицательные стороны, так как некоторые нужные сервисы могут оказаться неработоспособными при таких условиях. Поговорим о том, как лучше и логичней настраивать это средство. ХР-шный файрволл можно настроить индивидуально для каждого соединения, то есть, если тебе в домашней сети нужно запретить доступ к некоторым сервисам, а в Инете ты активно их юзаешь, то, соответственно, в настройках соединения для домашней сети их можно отключить, но оставить включенными для соединений с Инетом (кстати, эту функцию поддерживают далеко не все пользовательские файрволлы). Плохо это или хорошо -решать тебе; с одной стороны - это удобно, с другой - много лишнего гимора, так как, возможно, придется выполнять двойную работу для каждого из соединений. Кроме того, если твоя тачка является сервером и все компьютеры сети соединены с Инетом через нее, то можно защитить их и распределить их обязанности, настроив правила для каждого: вот этот компьютер будет HTTP/FTP сервером, а этот почтовым и т.д.
Содержание Вперед на стр. 024-032-2
Хакер №024. Спецвыпуск

ВСЕОБЩАЯ ИНТЕГРАЦИЯ
предохраняемся средствами XP
Спецвыпуск Xakep, номер #024, стр. 024-032-2
Настроить файрволл для любого из соединений очень просто. Дело в том, что у него нет практически никакого интерфейса :). Войди в свойства соединения и выбери вкладку «дополнительно». В этой вкладке поставь флажок «защитить мое подключение» и нажми кнопку «параметры». Там ты увидишь список различных служб и протоколов, для каждого из которых можно задать свои правила, а также указать сетевое имя или IP машины в сети, на которой данная служба работает. В списке уже есть наиболее распространенные службы, такие, как HTTP, FTP, Telnet и POP3/SMTP. Но если тебе нужно настроить правила для чего-то другого, то можно задать все самому, с этим проблем нет.
По умолчанию любые службы и сервисы будут запрещены, пока ты не пометишь их флажком и не выберешь соответствующие параметры. Например, если на твоей тачке (или на любой другой в твоей сети) нужно разрешить работу с протоколом HTTP, то помечай ее флажком и указывай в ее свойствах сетевое имя или IP своей тачки или той, на которой эта служба требуется. Во вкладке «ведение журнала безопасности» можно указать, нужно ли записывать логи и куда их сохранять. При этом есть возможность получить информацию о пропущенных пакетах и успешных соединениях.
И еще одна полезная функция - это настройка правил для ICMP пакетов. По умолчанию они тоже являются заблокированными, и до твоего компьютера при такой настройке не пройдет даже ping-запрос (как раз та самая «плохая» невидимость, о которой я уже упоминал).
БИЛЕТ В ОДИН КОНЕЦ
Самый большой недостаток и, собственно, причина, по которой лично я не юзаю это средство самообороны, так это то, что ХР-шный файрволл позволяет защищать порты лишь для входящих соединений. А вот любая программа или сервис могут без проблем заюзать любой порт на твоей тачке и передавать через него пакеты, не спросив у тебя разрешения. Это значит, что любой засланный троянец может открыть свой порт и передать через него любые данные своему хозяину. То же самое касается и подмены экзешника - ему плевать, какой размер или версия у файла. Конечно, залетный кулхацкер может быть и не получит доступ к открытому трояном порту и не сможет тебя админить, но если он не ламер, ничто не помешает ему грамотно настроить свою лошадку. И тогда она принесет хозяину все что нужно и без его непосредственного вмешательства. Не буду упоминать даже банальное отсылание твоих данных на мыло - от этого вообще может спасти только твоя бдительность. Как вариант - вполне возможно, что троянец просто пропишет свой порт как открытый в настройки программы, и, пока ты этого не заметишь, злобный хаксор сможет юзать этот порт как ему вздумается - но это в принципе можно сделать практически с любым файрволлом, если знать, как он устроен.
Назад на стр. 024-032-1 Содержание Вперед на стр. 024-032-3
Хакер №024. Спецвыпуск

ВСЕОБЩАЯ ИНТЕГРАЦИЯ
предохраняемся средствами XP
Спецвыпуск Xakep, номер #024, стр. 024-032-3
Еще один момент. Предупреждение о запросе на открывание каким-либо сервисом, какого-либо порта ты вряд ли получишь, чего не скажешь о большинстве других файрволлов. Единственное, что ты можешь сделать с исходящими соединениями, это почитать логи и узнать, что, куда и через какой порт передавалось («передавай привет мамочке!»).
Кроме всего прочего, разработчики не рекомендуют использовать этот файрволл в локалке без выхода в Инет, так как это может нарушить обмен данными между компами в этой сети. Так что в локалке, особенно если она у тебя большая, этот файрволл особо не сможет тебе помочь.
Отсутствие блокировки исходящего трафика, невозможность тонкой настройки, отсутствие предупреждений и возможные конфликты с сетевыми сервисами - вот основные слабые моменты этого файрволла.
НЕ ХЭППИЭНД
Не знаю, как ты, а я по-прежнему буду юзать свой Norton Internet Security (aka ATGuard), который тоже не является эталоном безопасности, но все же не раз меня спасал от всяческих сетевых атак и бесцеремонных вторжений. А однажды он даже обнаружил троянца, которого пропустил даже хваленый AVP - но это уже совсем другая история...
Назад на стр. 024-032-2 Содержание
Хакер №024. Спецвыпуск

ПЕРСОНАЛЬНЫЕ FIREWALL'Ы ДЛЯ WIN
утепление окон на зиму,
Спецвыпуск Xakep, номер #024, стр. 024-034-1
недорого
Скрыпников Сергей aka Slam (slam@soobcha.org)
Скажи мне, у тебя есть Firewall? Что это такое, спросишь ты? Ну, тогда тебе в рубрику "FAQ" нашего журнала. А пока ты ползаешь в факах, я расскажу о самых надежных и популярных Firewall'ах для всеми нами уважаемой и почитаемой Windows.
Ты, наверное, догадываешься, что мы живем в XXI веке - веке цифровых технологий. И защита информации - одна из самых важных задач человечества в целом (будь то защита от самих себя или от инопланетян =)). Согласись, не каждый может позволить себе выложить порядка 3000$ за защиту своей информации, купив профессиональный аппаратный файрволл. А людей, которым просто хочется навредить кому-то, в сети меньше не становится, но когда они наткнутся на твою стену, то, скорее всего, пойдут искать тебе другую жертву. Или вообще забьют на хаксорство :).
В тестировании принимают участие:
Tiny Personal Firewall
ZoneAlarm Pro
NeoWatch
Outpost Firewall
Anti-Hack
BlackICE Defender
TermiNet
Sygate Personal Firewall Pro
Tiny Personal Firewall
Язык: English
Качать: http://www.kodsweb.ru/dwn/netsecurity/tinypf2015.exe
Размер: 1384 Кб
Freeware
Ось: all win32
Очень неплохой файрволл. Имеет три состояния своей работы:
1) Сеть полностью недоступна - полезна тем, у кого выделенка (например, ты пошел есть пирожки, а к тебе никто не смог проникнуть, т.е. полностью уверен в том, что придешь туда, откуда ушел =)).
2) Файрволл будет тебя спрашивать при каждом подключении к порту: разрешить или нет. Но если ты сидишь, допустим, в ICQ, то у тебя сдадут нервы, для этого придумана галочка "Don't ask me again", ставишь галку и разрешаешь или запрещаешь действие - и все. Больше подобных вопросов не будет.
3) Все, что не запрещено - разрешено ;). Так вот можно сказать о третьем режиме работы данной проги.
Если ты хочешь добиться абсолютного максимума безопасности для своей машины с помощью этой программы, то тебе придется немного повозиться в настройках, которые в основном касаются того, чтобы запретить весь диапазон IP адресов или только один адрес, запретить выход для данной проги только на один порт или на все. В общем, ничего трудного я не увидел.
Все попытки трояна на выход в сеть Tiny сразу же пресекал и оставил самые хорошие впечатления.
Итог: Для обычного домашнего пользования очень и очень неплох. В настройках разберется даже младенец. К полезностям можно добавить то, что при работе под NT может писать все в syslog =). Сисадмины в восторге!
ZoneAlarm Pro
Язык: English
Качать: http://www.kodsweb.ru/dwn/netsecurity/zapro26362.exe
Размер: 3215 Кб
Shareware
Ось: all win32
Это файрволл понравится тем, кто любит, чтобы все хорошее было красивым. Надеюсь, ты и сам можешь увидеть это на скриншоте выше.
Из обычных файрвольных функций присутствуют почти все. При инсталляции программа спросит тебя, хочешь ли ты сразу разрешить своему браузеру выходить в Интернет; советую ответить "Yes", т.к. в дальнейшем все равно придется создавать для него правило. При попытке программы соединиться с Интернет, ZoneAlarm тут же оповестит тебя об этом и предложит тебе два варианта: разрешить исходящий трафик или блокировать. Также существует галочка "Remember this answer the next time I use this program" (напомни мне этот вопрос в следующий раз, когда я буду использовать эту программу), которая по дефолту не нажата, что очень удобно.
Содержание Вперед на стр. 024-034-2
Хакер №024. Спецвыпуск

ПЕРСОНАЛЬНЫЕ FIREWALL'Ы ДЛЯ WIN
утепление окон на зиму,
Спецвыпуск Xakep, номер #024, стр. 024-034-2
Можно выставить режим автоматической блокировки всего входящего\исходящего трафика, например, когда нету интернет-активности в течение 10 мин или когда включается Screen Saver. Файрволл удачно прячет последний сегмент твоего IP адреса, блокирует все не IP-пакеты (что полезно при ДОС-атаке на тебя - прим. ред.), ведет логфайл, проверяет себя на обновление и делает еще кучу всякого полезного (ловит, например, вирей во входящем мыле).
Как и предыдущий конкурент, ZA сразу засек трояна и не дал ему пробиться в Интернет.
Ах да, забыл добавить, что при стандартной замене iexplore.exe на telnet.exe firewall вежливо сказал мне, что файл изменился с момента последнего его запуска. Приятно.
Итог: получился хороший, добротно сделанный файрволл, который можно использовать уже не только для домашних и личных целей, но и в офисе, для защиты корпоративной сетки.
NeoWatch
Язык: English
Качать: http://www.kodsweb.ru/dwn/netsecurity/neowatch23.exe
Размер: 1566 Кб
Shareware
Ось: all win32
Чтобы не мотать тебе нервы одним и тем же, скажу, что NeoWatch умеет делать все, что может понадобиться дома. Про ведение лога, настройку безопасности и т.п. я говорить не буду.
Из полезного отмечу, что при помощи функции Trace Firewall может показать тебе на карте то место, откуда тебя только что пинганули. Только сначала тебе нужно указать свое место жительства, но если ты живешь в Козлопердуйске, то лучше укажи самый близкий к тебе большой город, тогда ты сможешь увидеть все в нормальном цвете =).
Если ты не знаешь что такое Ping или Flood, то при помощи пимпы "More information" в логе ты сможешь про все это подробно почитать в системе помощи. Но плохо то, что помощь эта вся в Интернете и обязательно нужно быть в онлайне ;(, и если у тебя проблемы с английским, то лучше ею не пользоваться.
Если тебя кто-то пытается просто пропинговать, то файрволл тут же сообщит тебе об этом на бросающемся в глаза попапе, где будет информация об обидчике, включая его IP адрес.
Ты сразу же можешь занести его в Banned List. Также файрволл выдаст тебе всю информацию о том, кто и что у тебя сканирует.
Например, если кто-то сканирует тебе 5000 порт, то NW тут же выдаст тебе окно со всей инфой, включая то, где обычно используется данный порт и чем это опасно.
Итог: Красивый, удобный в настройке, понятный даже новичку файрволл. С большим количеством действительно полезных функций, и если добавить сюда еще ведение лога с возможностью фильтрации и печати отчета, то получается очень полезная в хозяйстве вещь!
Outpost Firewall
Язык: русский, но можно и другой
Качать: http://www.agnitum.com/download/OutpostProInstall.exe
Размер: 2577 Кб
Shareware (но есть и Freeware)
Ось: all win32
Начну с того, что OF признан лучшим файрволлом года! Это уже о многом тебе должно сказать. В природе существует как полнофункциональная платная версия (о ней я тебе и расскажу), так и полностью Freeware. Первое, что бросается в глаза - это полностью русифицированный интерфейс, так что с настройками у тебя проблем возникнуть не должно.
Назад на стр. 024-034-1 Содержание Вперед на стр. 024-034-3
Хакер №024. Спецвыпуск

ПЕРСОНАЛЬНЫЕ FIREWALL'Ы ДЛЯ WIN
утепление окон на зиму,
Спецвыпуск Xakep, номер #024, стр. 024-034-3
Этот файрволл имеет функции всех вышеперечисленных, но... Просто так файрволлом года не станешь, у него есть туча приятных фич внутри :). Из особых полезностей хочу выделить блокировку Куков и АктивХ элементов, так что теперь можно быть немного спокойнее за сохранность своей анонимности в то время, когда ты бродишь по сети.
Встроенная резалка рекламы. "А, такое мы уже видели", - скажешь ты. Но не тут-то было, т.к. Аутпост режет рекламу разными способами, как то: не загружает картинки заданных размеров (например, популярные баннеры 100*100 и т.п., в поставке проги уже есть стандартный набор правил для обрезания =)), но ты можешь как удалять, так и добавлять свои. Еще можно заблокировать графику\рекламу по ключевым строкам в коде HTML, в итоге все эти действия существенно повысят скорость загрузки страничек, притом что ничего полезного ты пропустить не должен (а кто-то нам говорил про ускорялки Интернета...).
Еще одна замечательная фича пригодится в большинстве своем родителям или системным администраторам. Она позволяет блокировать загрузку страниц как по ключевым словам, так и по названию самого сайта. "Теперь ваши детки не будут лазить по вкусным сайтам!" - так можно обозвать эту возможность OF. Самой же главной отличительной чертой этого файрволла от других является открытость архитектуры, за счет чего можно создавать различные плагины ("подключаемые модули" в жаргоне программы). В стандартный набор входят уже шесть плагинов, которых должно хватить на все случаи жизни: Детектор атак, Защита файлов, Блокировка рекламы, Блокировка содержимого страниц, Кеширование DNS (для еще более быстрой загрузки страниц) и Блокировка активного содержимого, куда входят блокировка куков, АктивХ компонентов, всплывающих окон и т.п.
Все действия, производимые файрволлом, тут же записываются в лог и выводятся на экран, так что ты можешь без напрягов наблюдать за ней.
И что еще замечательно, так это то, что для каждого сетевого приложения можно настроить свои правила работы в Интернете: к примеру, если ты пользуешься несколькими браузерами, то данная фенька тебе очень пригодится.
При тестировании файрволл с легкостью заметил, что троян хочет проникнуть в Интернет и что мою машину кто-то усиленно сканирует. И начал злостно орать, когда я попытался заменить файл iexplore.exe на telnet.exe.
Итог: Must Have однозначно! Мой выбор!
СОСКРЕБЕМ НАКИПЬ
Это, так сказать, лидеры в желтых майках. Я хочу сказать тебе, что больше в Интернете я на данный момент не нашел достойных к рассмотрению файрволлов! Я не стал придерживаться такой тактики, как "Что найдешь, то и опиши", т.к. в последнее время обзоры стали немного скучнее - пара-тройка программ супер, а остальные описаны как фуфлыжные. Так зачем их описывать, если все равно пользоваться ими никто не будет!? Такие проги, как AtGurad, ConSeal PC Firewall, я рассматривать не стал по причине того, что уже староваты они - сами на ногах не держатся.
Назад на стр. 024-034-2 Содержание Вперед на стр. 024-034-4
Хакер №024. Спецвыпуск

ПЕРСОНАЛЬНЫЕ FIREWALL'Ы ДЛЯ WIN
утепление окон на зиму,
Спецвыпуск Xakep, номер #024, стр. 024-034-4
Остальные тестируемые мною FireWall'ы не справились с большинством из поставленных задач, а они были, если ты забыл:
1) замена файла iexplore.exe на telnet.exe;
2) попытка трояна (Dd2) вырваться в Интернет;
3) сканирование портов на моей машине;
4) сокрытие от посторонних глаз IP адреса.
Итак, лажанувшиеся:
Net Sentinel
Очень странная прога. При попытке трояна вылезти наружу она никаких предупреждений не выводила (записи в лог не было), но трафик блокировала; при попытке просканировать мои порты опять же никаких Alert'ов не выводила, но делала систему недосягаемой. Если кому-то интересно узнать, что это такое, то качать здесь: http://www.kodsweb.ru/dwn/netsecurity/netsentinel204.zip (2014 Кб).
В мой совсем черный список попали:
Anti-Hack (некоторые порты оставались открытыми)
BlackICE Defender (сокрытие IP не работало)
TermiNet (сокрытие IP не работало + открыты некоторые порты)
Sygate Personal Firewall Pro (сокрытие IP не работало)
Ах, да. Я ничего не сказал про легендарный Jammer. Файрволл заслуживает места на твоем компьютере, но учти, что на данный момент почти все антивирусы воспринимают его как вирус =). Так что не пугайся, если что!
Качать тут: http://online.download.ru/Download/[ProgramID=1296] (1095 Кб).
Запомни, что ненастроенный файрволл - огромная дыра в твоей машине! И еще, сверху я привел список параметров для тестирования файрволлов, так вот - это САМЫЙ минимум, который должен выполнять твой персональный файрволл!
На этом все. Надеюсь, что скоро твоя система станет неприступной крепостью!
Первый шагом по настройке файрволла будет получение ясного представления для тебя, чего именно ты ожидаешь от его работы. В будущем это даст возможность сравнить результаты тестирования и имевшиеся до этого ожидания и таким образом оценить величину имевшейся ошибки.
Убедись в безопасности файрволла в плане физического доступа к нему посторонних лиц. Если с этим проблемы, то весь остальной труд напрасен.
Следующее, используемая ОС сама по себе должна быть достаточно грамотно настроена в плане безопасности. Но т.к. мы рассматриваем виндовые файрволлы, то лучшим выбором будет, на мой взгляд, Windows NT/2К.
Следующий шаг - сканирование портов файрволла как со стороны внутренней сети, так и со стороны Internet (icmp, udp, tcp) для определения открытых портов. Большинство правильно сконфигурированных файрволлов не имеет открытых портов. Более того, они игнорируют ICMP-пакеты, приходящие из внешней сети.
Работать должно всего несколько служб. Без крайней необходимости порты не должны открываться.
Необходимо руководствоваться правилом: запрещено все, что не разрешено, а не правилом - разрешено все, что не запрещено. Поэтому база правил должна начинаться с правила, запрещающего любой трафик (Режим полной блокировки), входящий и исходящий. Остальные правила должны идти за этим основным. После проверки базы правил firewall'а проверь его логи. Определил ли firewall проводившееся сканирование и давал ли он соответствующие сигналы (alerts).
Назад на стр. 024-034-3 Содержание Вперед на стр. 024-034-5
Хакер №024. Спецвыпуск

ПЕРСОНАЛЬНЫЕ FIREWALL'Ы ДЛЯ WIN
утепление окон на зиму,
Спецвыпуск Xakep, номер #024, стр. 024-034-5
Какой трафик и каким образом был записан в логи. Если файрволл не зафиксировал большую часть активности во время тестирования его настроек, это свидетельствует о наличии серьезных проблем. Степень безопасности, которую дает применение файрволла, прямо пропорциональна тщательности, с которой он был настроен.
Назад на стр. 024-034-4 Содержание
Хакер №024. Спецвыпуск

ЯДЕРНЫЕ РЕАКЦИИ-настройки кернела для файерволлинга
ViTLS (vitls@beshtau.ru)
Спецвыпуск Xakep, номер #024, стр. 024-038-1
Добро пожаловать в ядерный реактор! Наверное, так следует поприветствовать начинающего монстра компьютерного мира, к которым ты себя причисляешь. Причем тут ядерный реактор?! Да ни при чем! А вот на ядре aka kernel стоит остановиться.
ЧТО К ЧЕМУ
Ты уже в курсе, что, для того чтобы ты смог защитить свою раздолбанную систему или сеть от нашествия всяких гнусных парней, нужно поставить firewall. Файрволлы бывают разных типов, в том числе и такого весьма забавного, как пакетные фильтры. У тебя есть возможность прочесть про них, но... там не рассказано о некоторых заморочках, с которыми тебе придется столкнуться. Перед применением пакетного фильтра тебе придется повозиться с самым сердцем твоей операционной системы - с ядром.
Я тебе не буду рассказывать про такую шнягу, как Windows. Это все пошло и неинтересно. Да, там можно быстро поставить программку фильтра трафика, только вот никто тебе не даст никакой гарантии, что она сама окажется без дырок. И никто тебе не даст гарантии, что эта фигня будет работать именно так, как задумал ты сам.
В операционной системы Linux все совсем по-другому. Подобно многим настоящим nix'ам, внутри Linux содержится система защиты. Тебе остается только активировать ее, настроить и задать правила фильтрации. После всех этих извращений ни одна сволочь к тебе не прорвется.
ПРОГУЛКА ПО ЯДРАМ
Как и любая нормальная система, Linux развивалась от версии к версии. Если быть откровенным, то самые первые версии ОС были очень слабы и неразвиты и представляли собой лишь полигон, на котором талантливые кодеры проводили свои эксперименты. Лишь с версии 2.0 Linux полноценно пошел в массы.
Номер версии ядра состоит из трех чисел в виде х.y.z (главный номер версии, вторичный номер версии, номер релиза). Главный номер, по сути, является номером поколения ядра. Вторичный номер (номер ветки) означает смену технологии внутри поколения, ну а номер релиза говорит об очередном шаге в улучшении и развитии ядра данного поколения. Чем выше номер релиза, тем лучше ядро данной ветки.
В литературе и в Сети говорят о ветках 2.0.х, 2.2.х и 2.4.х. Ты, наверное, заметил, что вторичный номер у них четный. Дело в том, что ядра с нечетными вторичными номерами являются экспериментальными и очень часто неработоспособны - они предназначены только для разработчиков ядер или для экстремалов.
Про ядра 2.0.х я говорить не буду. Компьютеры под управлениям этих ядрышек практически не встречаются и интереса не представляют. В настоящее время на серверах крутятся ядра веток 2.2.х и 2.4.х. Пакетные фильтры, встроенные в них, очень похожи (впрочем, ничего удивительного - iptables, встроенный в 2.4.х, является потомком ipchains из 2.2.х).
НАЧИНАЕМ КОВЫРЯНИЕ В МОЗГАХ
Прежде чем ты сможешь воспользоваться мощной защитой пакетного фильтра, тебе ее надо предварительно включить в состав твоего ядра. Для этого тебе нужны:
а) исходные тексты ядра Linux;
б) компилятор gcc;
в) текстовый редактор.
Способ установки исходных текстов ядра зависит от того, какой дистрибутив у тебя установлен. Если у тебя Slackware, Gentoo, LFS или еще что-то в этом роде, то мне нефига тут перед тобой распинаться. Ты и сам знаешь, что и как устанавливается (иначе как ты воткнул себе этот дистриб?).
Содержание Вперед на стр. 024-038-2
Хакер №024. Спецвыпуск

ЯДЕРНЫЕ РЕАКЦИИ-настройки кернела для файерволлинга
ViTLS (vitls@beshtau.ru)
Спецвыпуск Xakep, номер #024, стр. 024-038-2
В случае rpm-based дистрибутивов (ALT Linux, ASP Linux, Red Hat, Mandrake, SuSE, Connectiva) тебе нужно будет установить пакеты с исходниками ядра и всеми причиндалами. Отдельная песня - дистрибутивы на основе пакетов deb (Debian, Corel), там проще - система установки, принятая в них, существенно облегчает установку нужных пакетов.
В общем случае установка rpm-based дистрибутива в режиме разработчика автоматически подразумевает установку компилятора и исходных текстов ядра.
Ядро Linux ты также можешь скачать с ftp.kernel.org. На этом ftp-сервере лежат чистые ядра от разработчиков без каких-либо заплаток и доработок от изготовителей дистрибутивов (кстати, хорошо настроенное чистое ядро иногда работает гораздо лучше, чем ядро от изготовителя дистриба).
Сам я пользуюсь дистрибутивами Mandrake Linux 7.0 (на самосборном ядре 2.2.20) и ALT Linux Master 2.0 (на штатном ядре 2.4.18). В любом случае, какой бы дистрибутив ты ни выбрал, настройка и компиляция ядра ничем отличаться не будут.
Ок, допустим, что у тебя все получилось, и ты таки установил требуемые компоненты. Посмотрим внутрь. Хочу предупредить, что все действия нужно совершать очень аккуратно, потому что ты будешь работать под root'ом.
В комплект ядра входит несколько утилит настройки. Простая текстовая, красивая текстовая и красивая графическая. Запуск каждой из них производится из командной строки.
Графическая программа настройки ядра будет работать, только если ты ее запустил из терминала, работая с Х сервером. Для запуска программ настроек тебе надо будет перейти в каталог /usr/src/linux.
Простая текстовая настройка выглядит не фонтан. По сути дела это набор вопросов, на которые ты должен будешь отвечать Y, N или M. Это означает, опция ядра включена или вкомпилена в ядро (Y), опция выключена (N) или будет собрана как модуль (M). На рис. 1 показано, как это выглядит. Одна ошибка в ответе, и тебе придется все начинать с самого начала. Простая текстовая настройка запускается командой make config.
Красивая текстовая программа настройки требует наличия на твоем компе библиотеки ncurces. Так что проследи, чтобы эта хреновина у тебя была установлена. Запускается она выполнением команды make menuconfig. На рис. 2 показан вид этой проги.
Первый и второй режимы настройки ядра прекрасно работают в текстовой консоли.
Ну и третий вид. Графическая программа настройки ядра требует наличия у тебя языка программирования tck/tk и всех причиндалов к нему. Зато под Х это выглядит просто суперски (смотри на рис. 3). Запускается она из терминала командой make xconfig.
Преимущества второй и третьей программ настроек заключается в том, что ты в любой момент можешь включить или выключить любую опцию и только потом записать конфигурацию. Конфигурация ядра записывается в файл /usr/src/linux/.config. Все настройки лежат там в виде "параметр = значение". На рис. 4 как раз виден кусок файла конфигурации, отвечающий за настройки пакетного фильтра.
Назад на стр. 024-038-1 Содержание Вперед на стр. 024-038-3
Хакер №024. Спецвыпуск

ЯДЕРНЫЕ РЕАКЦИИ-настройки кернела для файерволлинга
ViTLS (vitls@beshtau.ru)
Спецвыпуск Xakep, номер #024, стр. 024-038-3
Названия нужных тебе параметров ты можешь отрыть в подсказке программ настройки. На рис. 5 параметр выделен черным.
Список параметров, которые необходимы для настройки пакетного фильтра, а также подробное разъяснение, для чего это все нужно, находятся в документе Iptables-tutorial (http://gazette.linux.ru.net/rus/articles/iptables-tutorial.html). Я тебе настоятельно рекомендую его изучить. Если у тебя ядро 2.2.х, то тебе понадобится документ Ipchains-HOWTO. Его русский перевод есть на сайте linux.org.ru в разделе документы. Пересказать эти доки здесь нет никакой возможности, так что грызи их сам, как истинный никсоид.
ЧТО ПОЛУЧАЕМ
После того как мы закончили настройку параметров ядра, его надо собрать. Я тебя хочу предостеречь, чтобы ты не давил Y на все нужные тебе опции. Дело в том, что куски кода, отвечающие за работу тех или иных опций, будут включены в ядро, и оно станет очень большим, что может привести к траблам с компиляцией. Проще отобрать фишки, используемые непостоянно, и оформить их в виде модуля. Потом этот модуль ты сможешь сам включить или выключить в любое время. Ядра от производителей практически все содержат именно в виде модулей. Так удобнее.
Для сборки ядра тебе нужно выполнить команды:
make dep
make bzImage
make modules
make modules_install
make install
Последняя команда установит ядро. Короче, всю эту науку прочитаешь в Kernel-HOWTO.
Гораздо удобнее воспользоваться ядром, идущим с дистрибутивом. Зачастую, там даже не нужны исходные тексты и не нужно пересобирать ядро самому, чтобы настроить его по своему вкусу. Практически все опции ядра делаются в виде модулей, и тебе остается только включить нужные.
Для ядер 2.4.х модули, отвечающие за пакетный фильтр, лежат в каталоге /lib/modules/2.4.x/kernel/net/ipv4/netfilter. Для ядер 2.2.х - /lib/modules/2.2.x/net/ipv4.
Загляни туда и увидишь огромную кучу файлов. Каждый из этих модулей отвечает за какую-нибудь дополнительную функцию пакетного фильтра. Если делать универсальную и гибкую систему, то тебе придется все оформить в виде модулей. Их получится немало. В моей системе их 71 штука. Если их перечислять все, то я просто застрелюсь. Посмотрев на список внимательно и сбросив первое офигевание от количества файлов, ты увидишь, что модули можно поделить на несколько групп с общими признаками в названии.
Группа ip_conntrack*.o. Модули этой группы используются для трассировки соединений (даже не спрашивай меня, что это такое, все равно не скажу), а также применяются для трансляции адресов. В этой группе присутствуют модули для разных протоколов (ftp, irc, netlink, pptp, udp, tcp).
Группа ip_nat*.o используется для трансляции адресов (Network Address Tranlation, NAT). Несколько модулей для различных протоколов.
Группа ipt*.o служит для управления и эксплуатации пакетным фильтром iptables. Это добавление правила, установка маркировок, установка владельца пакета, действия с пакетом и многое другое. Наличие этой группы зависит от установленных параметров ядра CONFIG_IP_NF_*. Подробное описание этих параметров есть в Iptables-tutorial.
Назад на стр. 024-038-2 Содержание Вперед на стр. 024-038-4
Хакер №024. Спецвыпуск

ЯДЕРНЫЕ РЕАКЦИИ-настройки кернела для файерволлинга
ViTLS (vitls@beshtau.ru)
Спецвыпуск Xakep, номер #024, стр. 024-038-4
Модуль ip_tables отвечает за пакетный фильтр, модули ipchains и ipfwadm отвечают за режим эмуляции пакетных фильтров ядер веток 2.2.х и 2.0.х. Модули iptable_filter, iptable_mangle, iptable_nat являются реализацией таблиц фильтрации пакетов (filter), редактирования пакетов (mangle) и трансляции адресов (nat).
Несмотря на такое множество модулей, система не настолько тупа, чтобы заставлять тебя, неразумного, все это загружать вручную. Хочу тебя обрадовать - большинство из этих модулей загружается автоматически при обработке заданных тобой правил.
Собранный модуль включается из командной строки: insmod имя_модуля. Естественно, ты должен предварительно находиться в этом каталоге. Другой способ - команда modprobe имя_модуля. Она поумнее и загрузит этот модуль и модули, зависящие от данного.
Посмотреть наличие модуля в памяти можно командой lsmod. А удалить модуль можно командой rmmod имя_модуля.
Вот, например, как это выглядит:
[root@localhost root]# lsmod | grep ip_tables
[root@localhost root]# modprobe ip_tables
[root@localhost root]# lsmod | grep ip_tables
ip_tables 10880 0 (unused)
[root@localhost root]# rmmod ip_tables
[root@localhost root]# lsmod | grep ip_tables
[root@localhost root]#
Первая строка - команда lsmod с фильтром grep ip_tables - показывает, что такого модуля у нас нет. Второй запуск, после выполнения modprobe, нам показывает, что модуль сидит в памяти и никем не используется. После удаления модуля командой rmmod мы опять видим чистоту и порядок.
РАБОТА НАД СОБОЙ
А вот тебе материал для самостоятельной работы:
1. Kernel-HOWTO
2. Linux 2.4 Packet-filtering-HOWTO
3. Ipchains-HOWTO
(http://www.linux.org.ru:8100/books/HOWTO/index.html)
4. Iptables-HOWTO
(http://www.linuxguruz.org/iptables/howto/iptables-HOWTO.html)
5. Firewall-HOWTO
(http://linuxdocs.org/HOWTOs/Firewall-HOWTO.html)
6.Netfilter-hacking-HOWTO
(http://www.netfilter.org/documentation/HOWTO/netfilter-hacking-HOWTO.html)
7. Iptables-tutorial
(http://gazette.linux.ru.net/rus/articles/iptables-tutorial.html)
Ну, вот ты и в курсе, что сидит внутри ядра Linux и как с этим бороться. Успехов и хорошего хака.
Назад на стр. 024-038-3 Содержание
Хакер №024. Спецвыпуск

ЗА ЖЕЛЕЗНЫМ ЗАНАВЕСОМ
аппаратные файрволлы
Спецвыпуск Xakep, номер #024, стр. 024-042-1
Pingvinov (mailto:$echo cvativabi@znvy.eh|rot13)
Привет, старик! Как настроение? Хорошее, говоришь... Это правильно, старик, завари себе зеленого чаю, сядь в лотос и на сегодня никакого пива. Будем медитировать на железную стенку. Гоню, говоришь? Ну, это ты после вчерашнего, а я про железный файрволл. Наверное, ты уже почитал другие статьи в этом номере и понял, что файрволл - просто очень удобное и красивое слово, а не устройство и не приложение. Клиенту говорят "брандмауэр" и потом сразу объясняют, что есть в строительстве такая конструкция, чтобы не дать огню распространяться по зданию :). Ну, ты меня понял ;). Это все от того, что тема про сетевую безопасность сейчас очень модная, и про хак пишут статьи все, кому не лень. А написав очередной рассказ про страшных хацкеров, говорят, что защита от них, конечно, есть - надо купить надежный файрволл. Ну а что под этим словом подразумевается, пишущий статью скорее всего сам не знает, но слово красивое, идея прямая и прозрачная, а потому желающих "купить файрволл" нынче хватает.
ПРО МАРКЕТИНГ
Маркетинг постарался, и большинство покупателей и вправду представляют себе файрволл в виде такой умной коробочки, которая от всего защищает. А гиганты сетевой промышленности - они же добрые, они не могут обмануть надежды населения и такие коробочки выпускают и продают. И называют их файрволлы. Есть и маленькие, не очень заметные подробности. Дело в том, что каждый гигант имеет свое собственное мнение про то, из каких деталей и какого софта должна состоять такая коробочка, поэтому изучение существующих "стенок" очень похоже на науку зоологию, где сначала надо запомнить всех тварей, больших и малых, а потом уже говорить "птица, это такая с крыльями" (и тут тебе, старик, показывают летучую мышь, чтобы не задавался) :).
Ну да, а у знакомого админа на большой богатой фирме можно увидеть в раке коробочку, синюю, красную или желтую, и услышать от него: "А вот файрволл стоит". Не, не он раком, а у него в раке :). Шкаф такой, понял, да? И в нем коробочка красная, высотой два-у. На передней панели индикатор такой красивый, циферки всякие, лампочки.
Ты, конечно, уже догадываешься, что внутри коробочки находится сильно (или не очень сильно) переделанный комп. То есть стоит мать, на матери - камень и мозги, в слоты воткнуто несколько сетевух, операционка и все настройки вместо харда пишутся во флешку, то есть доступ на запись в настройки сильно затруднен и крутящихся деталей минимум - одни вентиляторы. Есть, конечно, исключения, но их мало, в основном так оно и устроено.
Зоологический подход говорит нам, что стоит для начала разобраться с несколькими популярными моделями и попробовать понять, что можно ожидать от такой коробочки. Но начнем мы не с железки, как можно было бы думать, а с коммерческой программы.
CHECKPOINT SOFTWARE
(http://www.checkpoint.com)
Почему софт, а не железка, старик? А дело в том, что это почти что стандарт коммерческого софта для файрволла. Как Апач для веба, как Фотошоп для дизигна. И именно этот софт установлен во многих аппаратных файрволлах, выпускаемых крупными фирмами. А в тех, где установлен другой софт, очень многие идеи слизаны отсюда. Теперь понятно? Дистрибутивы есть для большинства популярных *nix платформ, ну и для Матушки Виндоус, само собой.
Содержание Вперед на стр. 024-042-2
Хакер №024. Спецвыпуск

ЗА ЖЕЛЕЗНЫМ ЗАНАВЕСОМ
аппаратные файрволлы
Спецвыпуск Xakep, номер #024, стр. 024-042-2
Checkpoint не пытается продавать одно приложение на все случаи жизни, а честно предлагает собрать систему из нескольких компонентов. Набор богатый, в том числе там есть межсетевой экран, сервер VPN, антифлудер, клиент для управления всеми компонентами. Всего в списке их почти тридцать, но это для того, чтобы прилавок был полным, основных, разумеется, меньше. Давай посмотрим, что это чудо природы умеет.
Первая и главная компонента это межсетевой экран Firewall-1, фильтрующий трафик между сетевыми интерфейсами. Правила фильтрации настраивает админ с помощью удобной и красивой клиентской части прямо со своего рабочего места.
Для того чтобы скрыть адреса внутренней сети от внешнего мира, применяется трансляция сетевых адресов (NAT). Пакет, прошедший через файрволл с включенной NAT, будет подписан не внутренним адресом машины, отправившей пакет, а тем адресом, который напишет туда файрволл (если настройка толковая, то в пакете остается только адрес самого файрволла). То есть ты бы и рад нюкнуть какую-нибудь машину за файрволлом, но не знаешь их адресов, увы. Настраивается NAT на том же клиенте.
Но настоящего хацкера этим не напугать, разумеется, мы все равно будем тыкаться во все известные дыры. Против этого фирма Checkpoint предлагает подробные и очень удобные для просмотра логи активности на любом интерфейсе. IP-адрес твоего любимого Интернет-кафе будет виден сразу. Очень грамотно и толково сделаны сортировка и выборочная чистка логов, при желании можно вычистить из них DDoS атаку и посмотреть, что там происходило до того. Но это надо еще догадаться, что надо вычистить :).
Да, при написании софта Checkpoint позаботилась и о тех несчастных, которые бродят вдали от фирмы со своими ноутбуками. Для них есть модуль VPN-1, серверная часть которого ставится на один из серверов фирмы, а клиентская часть - на ноутбук. При соединении клиентская часть находит свой сервер, они сливаются и в едином порыве создают шифрованный туннель, про который ты уже, наверное, читал в этом номере.
В этом комплекте мне не удалось обнаружить прокси-сервера; видимо, с точки зрения Checkpoint, это не входит в понятие файрволла.
Все настройки по максимуму сделаны графическими и интуитивными, во многих меню предлагаются типовые (и довольно грамотные) конфигурации. Одним словом, хороший продукт, через правильную настройку прорываться будет очень сложно.
Но Checkpoint не делает железок. Он только продает свой софт тем, кто хочет поставить его на железки. И выпускает рекомендации, как готовить операционку для аппаратного файрволла.
УКРЕПЛЕНИЕ ОСЕЙ
Уже ближе к железу, старик. Как ты понимаешь, ставить что-либо на стандартного Пингвина из коробки и сразу вывешивать машину в Интернет - это смелость, граничащая с безумием. Поэтому сначала систему готовят к установке, а подготовленную называют "система с укрепленной ОС", что, видимо, должно успокоить клиента и отбить охоту у морально слабых. Все советы по укреплению ОС для будущего файрволла довольно просты и разумны и вполне подходят и для простых смертных. Жаль только, пользуются ими редко.
Назад на стр. 024-042-1 Содержание Вперед на стр. 024-042-3
Хакер №024. Спецвыпуск

ЗА ЖЕЛЕЗНЫМ ЗАНАВЕСОМ
аппаратные файрволлы
Спецвыпуск Xakep, номер #024, стр. 024-042-3
Очень приблизительно последовательность укрепления системы выглядит так: вначале, при установке, убирают все ненужные службы и прибамбасы. В Линуксе это делается через тип установки "Custom", при этом из будущего файрволла удаляется всякая лабуда типа графики, звука, сервера новостей. Затем отключают все ненужные сервисы. Общее правило такое - чем меньше сервисов, тем спокойнее жизнь. Затем настраивают логи и удаляют ненужных юзеров, которых система заводит при установке по умолчанию. После этого на систему ставят все свежие патчи (для RedHat можно глянуть на страницу http://www.redhat.com/apps/support/errata/) и работают. Наверное, имеет смысл оставить все доки - опасности ноль и всегда под рукой :).
И вот уже на такую систему ставят софт файрволла. Кстати, чтобы ты чего не подумал, на работающем файрволле доступ во флешку, где записана операционка, защищен. И не паролем, а переключателем, админ переключает его в положение "можно" только перед установкой свежего патча от фирмы.
Ну, хватит про софт, наверное, давай теперь про железо.
КИСКА
(http://www.cisco.com)
Начнем с самых модных и стильных, то есть с темно-синих коробочек Cisco. Фирма идет навстречу пожеланиям широких масс админов и хакеров и постоянно расширяет линейку выпускаемых устройств. Недавно файрволлы были поделены на два семейства: PIX Firewall и IOS Firewall, при этом PIX позиционируется как мощный и промышленный, для сильно загруженных узлов, а IOS - как менее мощный, но универсальный, для небольших фирм. Маркетинг называется, типа.
Оба семейства умеют фильтровать пакеты в режиме межсетевого экрана, маскируют внутренние адреса через NAT, поддерживают виртуальные частные сети и управляются через специальный административный софт, который ставится на рабочем месте админа. Семейство IOS, кроме того, умеет фильтровать веб-трафик по именам сайтов, то есть админ сможет выборочно позакрывать твои любимые сайты с веселыми картинками, оставив директору его собачек и лошадок. PIX же ставит рекорды производительности при поддержке шифрованных туннелей.
Что там внутри за ось, для меня осталось загадкой. Сама Cisco говорит, что файрволлы работают на специальной "ОС PIX собственной разработки фирмы Cisco", но, по непроверенным слухам, это сильно переделанный и укрепленный SCO UNIX.
ПОЖАРНАЯ МАШИНА
(http://www.watchguard.com)
Файрволлы от Watchguard выпускаются тревожного ярко-красного цвета. Они производят очень сильное впечатление в стойке среди черных, синих и серых устройств от других, менее изобретательных фирм. Глядя на такую стойку, задать вопрос: "А есть ли у вас аппаратный файрволл?" - может только дальтоник.
Как и Cisco, фирма Watchguard выпускает два семейства файрволлов: Firebox и Firebox Vclass. Наборы функций слегка различаются, у Vclass явственно обозначен уклон в большую производительность и управление трафиком, в то время как Firebox, наверное, можно с большим основанием назвать настоящим файрволлом, если судить по тому количеству функций, которым его умудрились нагрузить. Работает простой Firebox помедленнее (хотя я бы не назвал пропускную способность в 200 мегабит в секунду очень медленной), но содержит море разных функций, гораздо больше, чем Киска.
Назад на стр. 024-042-2 Содержание Вперед на стр. 024-042-4
Хакер №024. Спецвыпуск

ЗА ЖЕЛЕЗНЫМ ЗАНАВЕСОМ
аппаратные файрволлы
Спецвыпуск Xakep, номер #024, стр. 024-042-4
Основные функции файрволла, впрочем, присутствуют в обеих линейках: пакетный фильтр в виде межсетевого экрана с набором правил, маскировка внутренней сети через NAT, поддержка VPN и административная консоль. Как и у Cisco и Checkpoint, административная консоль очень красивая и позволяет очень наглядно управлять и представлять себе всю структуру сети фирмы. Vclass может ограничивать уровень трафика на определенные адреса, что полезно для предотвращения флуда. Простая "пожарная машина" может также работать как прокси для нескольких видов трафика, фильтровать веб-трафик, раздавать динамические IP по DHCP и еще, и еще. Богатая система, в общем. Подкачала, пожалуй, система логов, в ней довольно скромные возможности для сортировки и выборочной чистки. Это, кстати, может нам очень пригодиться, о чем ниже. Очень красив самописец, регистрирующий активность на интерфейсах, так все смотрел бы и смотрел бы.
Внутри корпуса стоят системная плата с камнем от AMD и укрепленный Пингвин имени Красной шапочки. Вместо харда, как нетрудно догадаться, флешка.
ЖЕЛЕЗНЫЙ НОРТОН
(http://www.symantec.com)
Кстати, знаешь ли ты, что любимая фирма Symantec делает не только софт, но и железо? Ага, и свои изделия украшает панелями дешевого желтого цвета, надоевшего всем еще в Norton Antivirus и pcAnywhere.
Эти файрволы когда-то делала фирма Axcent technologies, но Symantec ее купил и теперь, похоже, не очень понимает, зачем он это сделал. Во всяком случае, смельчаки, попробовавшие выступить в роли клиентов и получить от Symantec помощь в установке и настройке прибора, писали о переговорах с фирмой с недоумением и затаенной обидой. Видимо, поддержка железяк там вроде нелюбимого дитяти. Но стоят железки дорого, даже очень.
Есть два семейства файрволлов от Symantec (похоже, это такой упрощенный маркетинг для людей, привыкших к двоичной системе счисления), одни попроще, другие посложней. Семейство Firewall/VPN попроще, семейство VelociRaptor посложнее. Функции файрволла умеренно полные, есть пакетный фильтр, по умолчанию включена сетевая адресная трансляция (NAT), есть поддержка виртуальных частных сетей, сервер DHCP, логи внешней активности. Ну и софт для администрирования с разными оттенками знакомого желтого цвета.
NOKIA: МЕЛОДИЯ ДЛЯ СЕРВЕРА
Мда, я тебе специально ищу фирмы, про которые трудно подумать, что они выпускают сетевое оборудование. Про Nokia ты, наверное, знаешь, что они делают хорошие мобилы. Авторезина тоже очень приличная когда-то была, и телевизоры. Теперь еще и файрволл. Наверное, не за горами презервативы.
Назад на стр. 024-042-3 Содержание Вперед на стр. 024-042-5
Хакер №024. Спецвыпуск

ЗА ЖЕЛЕЗНЫМ ЗАНАВЕСОМ
аппаратные файрволлы
Спецвыпуск Xakep, номер #024, стр. 024-042-5
Это изделие работает на софте Checkpoint Software. Похоже, горячие финские парни хорошо поработали над установкой, отзывы о машине сплошь положительные, причем особо хвалят ее за гибкость при настройке на нестандартные конфигурации, за быстродействие и за надежность. В качестве платформы для своего файрволла Nokia взяла типовой сервер и основательно поработала над его начинкой, операционкой и установленным софтом.
WEBSCREEN: DDOS > NULL
А вот это очень специализированное устройство. Ничего лишнего в нем нет, ни виртуальных сетей, ни прокси, ни даже любимого пакетного фильтра. Webscreen 100 предназначен только для отражения DDoS-атак и применяется в основном для защиты веб-серверов и других критических точек внешнего периметра, которые можно завалить такой атакой.
Интересно, что сама фирма советует ставить свой экран на переднюю линию, перед всеми прочими системами защиты, в том числе и перед файрволлом. Принцип работы тоже довольно необычен: рабочие интерфейсы устройства не имеют своих собственных адресов, то есть с точки зрения прочих устройств Webscreen там просто отсутствует. Он и отсутствует - до тех пор, пока не распознает какую-нибудь атаку. Тогда он включается и начинает задерживать все подозрительные пакеты, отмечая это в логе. Третий интерфейс предназначен для управления, и ему может быть присвоен адрес, и через него можно работать с операционной системой. Внутри стоит укрепленная версия RedHat Linux. Коробка корректно определяет и задерживает атаки Lan.d и Syn-флуды.
Теперь про смешное: для настройки IP-адреса административного интерфейса надо отредактировать конфигурационный файл, записать этот файл на дискету и вставить дискету в дисковод файрволла (да, у него есть дисковод!), чтобы он прочитал новую конфигурацию при перезагрузке. Только после такой процедуры удается соединиться с файрволлом по сети. Впрочем, можно просто воткнуть в коробку клавиши и монитор и задать адрес руками. Еще про смешное: файрволл никак не сигнализирует админу про то, что началась и происходит атака. То есть логи ведутся и очень подробно, но они копятся внутри коробочки. Машинки от других фирм, кстати, умеют звонить по телефону, отправлять SMS и вообще всячески портить админу заслуженные выходные.
ПОЧЕМ ЗВОНИТ КОЛОКОЛ
И не спрашивай, старик, все это железо очень дорогое. Производство этих коробок стало большим бизнесом, ведь продают не какую-то мелочь, а Безопасность Вашей Информации, а на сколько можно развести человека, приговаривая "это решит все ваши проблемы", ты можешь себе представить. То железо, о котором я писал, стоит от нескольких тонн грина и выше. Рекорды ставят Киска и горячие финские парни: самая продвинутая Киска может стоить около семидесяти, а финики просят за свою машину полтинник.
Впрочем, такая цена может сильно расслабить админа, а вероятность ошибки в настройке дорогого ящика не меньше, а на мой взгляд, даже больше, чем обычного пня с парой сетевух и одним из бесплатных файрволлов на Пингвине.
ГДЕ ТОНКО, ТАМ И...
Как ты понимаешь, шансы получить в свои хацкерские руки управление файрволлом не очень высоки. Как правило, для этого потребуются фирменный софт для управления файрволлом и админ, который сообщит тебе административный пароль к своему ненаглядному. Если ты сидишь во внутренней сети (ну интересно тебе, как устроена сетка на родной фирме), можно еще попытаться перехватить сеанс работы админа с файрволлом с помощью сниффера. Чтобы это получилось, однако, нужен на редкость тупой админ, который создаст тебе условия для такого перехвата: включит тебя в один хаб с собой или файрволлом, будет пользоваться простым телнетом. Можешь попробовать применить социальную инженерию, например, написать админу что-нибудь типа: "Привет, Вася, это я, вторая шизоидная компонента твоей личности. Если ты помнишь, сегодня я просыпаюсь и работаю с шести вечера до полуночи. Приклей к монитору листок с мастер-паролем от Киски, пжалста, я его забыл".
Назад на стр. 024-042-4 Содержание Вперед на стр. 024-042-6
Хакер №024. Спецвыпуск

ЗА ЖЕЛЕЗНЫМ ЗАНАВЕСОМ
аппаратные файрволлы
Спецвыпуск Xakep, номер #024, стр. 024-042-6
Да, кстати, если ты снаружи, в Интернете, то про перехват управления файрволлом можешь просто забыть, толково подключенный файрволл не пустит тебя с внешнего интерфейса даже с правильным паролем.
Будет гораздо плодотворнее, на мой взгляд, если ты попытаешься поискать ошибки настроек. Ты же понимаешь, что главная дыра в защите находится между креслом и административной консолью. Советов на все случаи жизни не существует, да я и не знаю, зачем нужно пролезать через файрволл :). Поэтому просто попробуем посмотреть, какие типичные ошибки может допустить админ и что из них следует.
Порядок применения правил - очень коварная штука, потому что админ может сам открыть огромную дыру и не заметить ее. Дело в том, что почти все файрволлы примеряют к пакету правила по очереди, в том порядке, в котором они записаны, и выполняют первое подошедшее правило. То есть если правило номер 11 разрешает машине 192.168.11.10 все виды обмена, а правило номер 14 запрещает всем смотреть WWW, то счастливый юзер на машине 192.168.11.10 сможет лазить по вебу без ограничений. Как ты понимаешь, возможны и менее мирные варианты.
Флуд логов: увы, во всех этих коробочках регистрация нашей с тобой деятельности устроена очень грамотно. В смысле - все как на ладони, видны адреса и удобно для просмотра, и совсем неудобно для высокохудожественной деятельности, которой мы с тобой занимаемся. То есть если просто сканировать открытые порты, то вся эта деятельность будет хорошо видна и, соответственно, наказуема. Почистить логи самому, как уже говорилось, почти нереально, но можно посканировать, выяснить все, что нужно, и затем устроить DoS-атаку. Завалить файрволл ты, скорее всего, так не завалишь, он как раз на такие штучки и рассчитан, но админ, придя с утра, скорее всего, порадуется на свою систему и... правильно, прибьет все логи вместе со следами твоих сканов :).
Обходим NAT: ты смотришь на файрволл снаружи и видишь только пакеты, подписанные файрволлом? Ты хочешь знать внутренние адреса полюбившейся тебе сети? Напиши веб-мастеру письмо про орфографическую ошибку на сайте и внимательно изучи заголовок ответа. Если повезет, ты увидишь там внутренний адрес.
Назад на стр. 024-042-5 Содержание Вперед на стр. 024-042-7
Хакер №024. Спецвыпуск

ЗА ЖЕЛЕЗНЫМ ЗАНАВЕСОМ
аппаратные файрволлы
Спецвыпуск Xakep, номер #024, стр. 024-042-7
Конечно, железный файрволл это достойная преграда, но вовсе не безнадежная и вполне преодолимая при соответствующей подготовке. А если проще, то, как говорил старшина, "учи матчасть, боец". Салют :)!
Назад на стр. 024-042-6 Содержание
Хакер №024. Спецвыпуск

ОГНЕННОЕ РЕШЕТО - дыры в виндовых фарволлах
][rimZ (hrimz@xakep.ru)
Спецвыпуск Xakep, номер #024, стр. 024-048-1
Дарова, читатель! Сегодня я подготовил для тебя обзор известных дыр и уязвимостей в персональных фаерволлах, приводящих в одном случае к падению системы, в другом - к обходу защиты "огненной стены" и доступу к ресурсам. Так сказать, багатрака по теме. Итак, вникай - пригодится!
ZONEALARM
О-го-го-го!! Это персональный защитник - явный победитель данного обзора по количеству уязвимостей. Просто-таки решето какое-то! Но обо всем по порядку.
Жук номер раз
В некоторых случаях ZoneAlarm принимает внешние (из Сети) соединения за внутренние (из локалы) и присваивает им самый низкий уровень защиты (нам это и нужно =). Программа рассматривает в качестве внутренних любые IP-адреса, у которых первые два разряда совпадают с первыми двумя разрядами адреса самого пользователя. То есть, если IP пользователя - 66.66.66.66, то все адреса типа 66.66.*.* будут рассматриваться как безопасные (хотя на деле оказывается, что это просто айпишники того же прова - прим. ред.). В результате, при соединении с тачкой, имеющей такой IP, фаерволл не будет обеспечивать необходимую защиту.
Уязвимости подвержены все версии фаерволла, включая pro и фриварную...
Жук номер два
В ZoneAlarm присутствует особенность MailSafe, используемая для блокировки электронных мессаг, содержащих аттачем исполняемые файлы.
MailSafe может блокировать вложения файла с некоторым расширением, например, все «.exe» файлы. Если тот же самый файл послан с дополнительной точкой (.), добавленной в конец к имени файла, такой файл не будет блокирован. Так что вири и трояны ждут своего череда...
Уязвимости найдена в ZoneAlarm 3.0.
Жук номер три
Опять же дыра в MailSafe. Напоминаю, что MailSafe идентифицирует в почтовых вложениях потенциально вредные файлы (исключая: *.exe, *.com, *.reg, *.vbs или другие, которые могут быть добавлены в обычной конфигурации) и переименовывают их расширение в *.zl*; в то же самое время информация об этом поступает юзеру (Проснись! Тебя имеют! =)). Проблема связана с тем, что это приложение не может работать с очень длинными файлами, что-то типа: "aaaaaaaaaaaaaaaaaaaa(и так далее).exe". При этом происходит переполнение буфера, и система виснет. Вот такой персональный 3.14zDoS наступает юзеру ушастому от его "Персональной защиты"...
Уязвимости подвержены все версии ZoneAlarm.
TINY PERSONAL FIREWALL
Жук номер раз
Если пользователь Tiny Personal Firewall пытается просмотреть файлы регистрации Personal Firewall Agent Logs в то время, как его порты во всю сканит хакер Стасик, программа начнет использовать 100% ресурсов машины и зависнет. Такие невкусные ватрушки.
Уязвимость обнаружена в Tiny Personal Firewall 3.0-3.0.6.
Жук номер два
Еще один не очень известный баг очень известного фаерволла. Суть уязвимости в том, что если юзер ставит в настройках Tiny уровень защиты HIGH Security, а в этот момент все тот же хакер Стасик попытается просканировать порты его компа, перед этим подделав свой IP на его, - все на хрен повиснет. Реализовать и понять этот баг можно у себя на машине и без Стасика. Ставишь в Tiny уровень защиты HIGH Security, потом запускаешь любой сканер портов и сканишь 127.0.0.1 - вот и виснет все =). В общем, если обращаться к машине "как бы" с ее же айпишника (будь то Инет или LAN), происходит "аварийное завершение работы системы" :). Так что, господа хакеры, нужно еще и IP грамотно подделывать уметь...
Содержание Вперед на стр. 024-048-2
Хакер №024. Спецвыпуск

ОГНЕННОЕ РЕШЕТО - дыры в виндовых фарволлах
][rimZ (hrimz@xakep.ru)
Спецвыпуск Xakep, номер #024, стр. 024-048-2
Уязвимость обнаружена в Tiny Personal Firewall 3.0-3.0.6.
Жук номер три
Проблема, найденная в Tiny Personal Firewall, позволяет хакеру, который находится с юзером в одной локальной сетке, модифицировать настройки фаерволла. Это возможно, когда местная система блокирована. Хакер Стасик, просматривающий сеть, может инициализировать аварийный диалог с рабочей станцией юзера. Появится диалоговое окно, которое потребует, чтобы хакер или разрешил, или запретил ввод. Если система работает автоматически или юзер отошел от компа и всю защиту повесил на плечи фаерволла, то нападающий может выбрать "разрешить" и без авторизации менять настройки Tiny Personal.
Уязвимость найдена в Tiny Personal Firewall 2.0.15.
SYGATE PERSONAL FIREWALL
Итак, что у нас теперь интересного? Ага, Sygate Personal Firewall уязвим к нападениям IP спуфинга, если хакер Стасик использует IP адрес 127.0.0.0 - 127.0.0.255. Уязвимость позволяет нападать на хост без риска быть обнаруженным. Проблема также может использоваться для организации других типов атак. Все ограничено только твоей фантазией и знаниями... Всего-то =).
Уязвимость обнаружена в Sygate Personal Firewall 5.0.
NORTON PERSONAL INTERNET FIREWALL
Переполнение буфера происходит при попытке обработать большие запросы HTTP (как изнутри, так и по редиректу с сайта). Самое обидное для разработчиков, что даже если юзер просто кликнет по ссылочке на «www.aaaaaaaaa(и так далее).com», бага все равно работает. В результате возможно выполнение произвольного кода с завышенными привилегиями.
Баг стабильно работает в Symantec Norton Internet Security 2001-3.0.4.91.
ATGUARD
Теперь обходим ограничения многими любимого @Guard. AtGuard - это утилита, умеющая блокировать баннеры, cookies, а также устанавливающая персональный firewall для защиты машины от воздействия троянов и сканирования портов из сети (а ведь когда-то рулил именно файрволл, а не все эти рюшечки - прим. ред.). AtGuard может разрешать только определенным приложениям выход в Интернет (например, IE). Однако при этом он проверяет только имя программы и не сохраняет путь к файлу или его контрольную сумму (в случае IE - IEXPLORE.EXE). Уязвимость позволяет недозволенным прогам не блокироваться, используя программы типа HTTP-Tunneling. Например, если на твоей тачке разрешен только IE и только на 80 порту, можно использовать следующие действия, чтобы заработала ася.
Устанавливаем HTTP-Tunnel-Client (www.HTTP-Tunnel.com) на компьютер. При попытке его сконфигурировать он выдаст сообщение об ошибке, что не может найти сервер HTTP-Tunnel. Теперь мы переименуем "HTTP-Tunnel Client.exe" на "IEXPLORE.EXE". После чего программа сообщит тебе, что она работает правильно. Используя HTTP-Tunnel, можно обойти любые ограничения на внешние подключения любыми программами (ася, трояны и т.п.).
Назад на стр. 024-048-1 Содержание Вперед на стр. 024-048-3
Хакер №024. Спецвыпуск

ОГНЕННОЕ РЕШЕТО - дыры в виндовых фарволлах
][rimZ (hrimz@xakep.ru)
Спецвыпуск Xakep, номер #024, стр. 024-048-3
Бажены все версии собакиGuard.
KERIO PERSONAL FIREWALL
Тоже очень известный персональный фаерволл для вынь-систем. Когда хакер Стасик начинает посылать, а Kerio, соответственно, получать большое количество SYN пакетов из одного источника, firewall-процесс начнет на 100% потреблять ресурсы процессора и в конечном счете приведет к зависанию всей системы. Хакер Стасик любит Firewall`ные 3.14zDoS`ы =).
Уязвимость обнаружена в Kerio Personal Firewall 2 2.1-2.1.4.
А КАК ЖЕ AGNITUM OUTPOST?
Наверняка мой ящик уже готовится принять тучи флейма на тему, а где же баги в Outpost`е. Их есть у меня, но немного =). После продолжительного серфа по просторам Сети выяснилось, что это фаерволл, наименее бажный из семейства "Виндово-персональных". Но все же лови одну уязвимость на закусь :).
Итак, Agnitum Outpost блокируют только пакеты, созданные стандартным адаптером протокола Windows. Т.е. если у пользователя достаточно прав создавать пакеты с другими адаптерами протокола, то он сможет обходить правила фильтрации firewall. Эксплуатация уязвимости ставит под угрозу политику безопасности (так вроде в Bugtraq`ах пишут? :)).
Ну вот. На сегодня вроде и все. Читай остальной Спец, и удачного хака тебе, приятель. Обойти грамотно настроенный фаерволл - это тебе не два пальца обо... Удачи, в общем.
Назад на стр. 024-048-2 Содержание
Хакер №024. Спецвыпуск

NORTON CLIENT FIREWALL
свежачок от П. Нортона
Спецвыпуск Xakep, номер #024, стр. 024-050-1
Андрей "Дронич" Михайлюк (dronich@real.xakep.ru)
Эх, братва, ностальгия замучила... Были же времена, когда мы Аутпоста видом не видывали, а старик @guard на все сто оправдывал фразу из меню "Firewall Rules" :). Жалко мне АтГарда, страсть как жалко - не выжил он под лейблом NIS (Norton Internet Security), опопсел и гикнулся в самые дальние каталоги пиратских дисков. Забыли о нем, наложили проклятие на Symantec, загубившую любимца, и посыпали вековой пылью... Вот такая присказка, а сказка... Сказка впереди!
Началась сказка, как водится, со случайности. Отобрал я у Кириона диск "Коллекция Symantec 2003" (горбушечный, с гордым лейблом "100% вирусов"), собрался утилы ставить, а там... "Symantec Client Firewall Corp Edition, профессиональная программа для защиты сети от хакеров". Мелькнула робкая надежда: неужели? Неужели мы снова можем бросить всю свою секьюрность в мозолистые руки дядьки Питера? Мышка на сетуп.ехе, даблкликнул... И пос-ка-кал :).
ЧТО ТАКОЕ, КТО ТАКОЙ?
Первое впечатление чуть ни разрушило все мечты до основания. Стандартный желтенький интерфейс, ползуночки-пеленочки и прочая сопливая фигня. Но это только поначалу :). Обкликав все, что мог, и прочитав хелпы от корки до корки, я выяснил, что:
1. Новый нортоновский файрволл перестал быть персональным. То есть никто не мешает тебе юзать его клиент-версию на диалапном компе для защиты своего винта с попсой и порнухой (как я :)), а особо продвинутые смогут поставить его на все компьютеры локальной сети и админить удаленно (и массово :)). Для этого в комплекте идет Symantec Packager - прога для составления инсталляционных пакетов, содержащих только необходимые фичи. Зачем бегать по компам локалки и отключать административный модуль во всех клиентах, когда можно просто исключить его из списка устанавливаемых компонентов? Такая вот забота о пользователе :).
2. Как истинный преемник АтГарда, он умеет собирать детальнейшую статистику на текущее соединение и писать безупречные логи. Если тебя не смущают восемь типизированных и один глобальный журнал событий по каждому из соединений, то ты либо админ, уставший от логов на работе (шутка хумора: что делает админ, когда в его доме гаснет свет? - вздыхает, зажигает свечку и идет к счетчику читать логи :))), либо ОЧЕНЬ нелюбопытный юзер.
3. Нортон файрволл умеет не просто отражать атаки, а классифицировать их и предоставлять подробный отчет о нападавшем... потом... после BSoD и ребута :).
4. Разработчики не смогли удержаться и запихнули в него модную западную фишку - Privacy Control. Лично я мало понимаю, какая же это приватность, если все под контролем :). Но им лучше знать.
Итак, за ламеровато-мультяшным интерфейсом скрывается вполне профессиональный продукт. Посмотрим, как заставить его работать на дражайшего юзера.
ЧТО ВНУТРИ?
Настройки разделены по пунктам, что, вроде бы, должно облегчить процесс конфига, но... Нелогично как-то они раскиданы, особенно сложно кастомайзить нортонов файрволл после Аутпоста (уж очень там деревце приятное, но об этом в статье Алекса Шарка).
Содержание Вперед на стр. 024-050-2
Хакер №024. Спецвыпуск

NORTON CLIENT FIREWALL
свежачок от П. Нортона
Спецвыпуск Xakep, номер #024, стр. 024-050-2
Самые жизненно важные опции, как и следовало ожидать, лежат на первой закладке и состоят из одной галки "Enable Security" :). Не стоит нервничать - впереди еще много сюрпризов. Так вот, под галкой притаилась кнопочка "Custom Level", на которую и возложена почетная миссия - выставлять основной уровень безопасности. Для Жавы и Активного Х можно назначить три варианта поведения: все разрешать, все убивать или обо всем спрашивать. Для софта же выбор поинтереснее: блокать все подряд, спрашивать или разрешать все, кроме троянов :). Мать честная, что ж это делается? Трояну, состоящему в блок-листе файрволла (там изначально штук 50), вырваться на свободу не удастся, даже если разрешено все! Очень правильный подход для тупых юзверей, любящих давать кому попало :)... права на выход в Инет.
В закладке "Internet Access Control" нашлось место для конфигов каждого из юзерских приложений. Проще всего сказать "Permit all" (Разрешить), но если залезть в "Custom"... Отдыхают даже юниксоиды, такого количества пунктов для фильтрации я не видел даже в хваленых iptables (чего стоит один только фильтр на отдельные КОМАНДЫ протоколов!). Помурыжившись всего несколько минут, я создал для Бата правило на доступ к СМТПшникам только по SMTP, к POP3-сервакам только по РОР3, отменил подключения к его портам извне, а все нештатные ситуации повелел закатывать в лог и сообщать мне об этом в специальном попапе. Неплохо? А главное, что времени на это почти не ушло. Респекты Симантеку. Кстати, на той же закладке задаются все правила для системных служб и троянов, а также присутствует оригинальная фича - скан всех приложений с целью определить, кто из них может рваться в нет. Делается это очень оригинально: отловив запросы к системе, я выяснил, что он проверяет каждый из экзешников на тему использования им стандартных библиотек Remote Access'a. Во как хитро. Правда, поймать экзешник с самопальным модулем доступа ему не удастся, но это уже придирки.
Новостью для меня стала закладка "Internet Zone". Файрволл предложил мне указать доверенные и запрещенные компы. Суть запрещенных я еще могу понять (порнуха, хаксоры и прочее), а вот нафига нужны доверенные? В хелпе пишут, что с них доступ к компу никак не ограничен... Видимо, туда надо запихнуть все тачки из локалки, но лично мне проще создать для них правило. Загадка, в общем.
С детектором атак приключилась следующая история - он пытается найти злой умысел в обычном пинге (Алярм! PingOfDeath expected! :)). Именно поэтому тебе дано право отключать распознавание отдельных типов атак или же атак с отдельных компов. Плохо только то, что нельзя скомбинировать оба этих действия - получается, что, разрешив портскан своему прову (для того чтобы меня не отрубили раньше времени), я разрешаю его всем. Хорошенькое дело! Смутная польза, очень смутная...
ПОШЛИ В ПРИВАТ?
Трясутся буржуи за свою "интеллектуальную собственность", ох, как трясутся! Для успокоения их больных нервов наш файрволл умеет блокать кукисы, отсеивать запросы к броузеру (тебе ведь неоднократно говорили, какая версия винды стоит на компе прямо с сайта? вот это и есть те самые запросы) и... внимание... блокировать конфиденциальную информацию. Нафига это надо? Веришь, не знаю! Файрволл просто не пропускает сохраненную инфу наружу по протоколу НТТР. Видимо, чтобы ты случайно не ввел номер своей кредитки в форму на порнушном рейтинге.
Назад на стр. 024-050-1 Содержание Вперед на стр. 024-050-3
Хакер №024. Спецвыпуск

NORTON CLIENT FIREWALL
свежачок от П. Нортона
Спецвыпуск Xakep, номер #024, стр. 024-050-3
АДВАНСЕД
Как всегда, самое вкусное спрятано за пимпой "Только для уверенных в себе и отвечающих за последствия своих действий" ака "Advanced Options". На закладочке "Web" можно заполнить список сайтов со специфическими настройками. То есть ты можешь выставить галку "Сообщать версию броузера" для сайта, которому это нужно (если админ держит две версии - для Оперы и для ИЕ, а тебя все время выкидывает на кривой вариант), оставить в покое кукисы из интернет-магазина или разрешить скрипты для сайтов с апдейтами (вроде microsoft.com).
В закладке "Other" (или "Вроде-что-то-нужное-но-впихнуть-некуда-поэтому-лежит-здесь") можно задать порты, по которым ходит НТТР-трафик (для блокировки АктивХ и прочего) и выставить режим стелс - когда комп не заморачивается написанием ответного пакета на тему "Порт закрыт, нехрен сюда ломиться".
ФИШКА
Если ты повнимательнее приглядишься к скринам, то заметишь половинку маленького глобуса, торчащую из-за правого края монитора. Это есть очень модный аксессуар по имени Алерт Трекер. Когда происходит какая-нибудь задница с соединением или тебя кто-то нюкает, или кто-то рвется в Инет, глобус выезжает и с модной анимацией докладывает о происшествии. Полезно и приятно.
АДМИНИМ
Нортон не был бы нортоном, если бы не приготовил нам очередного сюрприза. Наставив файрволл-клиентов по компам локалки, можно приступить к настройке правил для них. Все, что до сих пор было разложено по закладочкам для юзеров, теперь стало доступно через эргономичный интерфейс админской консоли. Хотя какая это консоль - те же закладки и галочки, просто более грамотно сколоченные. Междумордие выполнено на чистой Жаве (Java Runtime Environment второй версии идет в комплекте), то есть абсолютно платформонезависимо. Админ может сидеть хоть на Маке, хоть под Линухом - до своих юзверей он в любом случае доберется :).
Импорт-экспорт конфигов (файлы *.cfp) устроен через простейшую менюшку, нужен только доступ к компу подопечного. Удобство и простота - что еще нужно для настройки безопасности сети? Да ничего! :).
ВОЗВРАЩЕНИЕ ДЖЕДАЯ
Не знаю, как ты, а я уже приготовился выкидывать свой Аутпост - все равно в локальной сети от него нет никакого толка. А так как он нужен мне только в тяжкие минуты диалапа вне родной сети, держать его на винте незачем, ведь Нортон более универсален. Так что скоро еще одна сеть перейдет на новый файрволл, а ее админ (некто Дронич) будет получать несказанное удовольствие от настройки файрволлов бедных юзеров. Чего и тебе желаю.
Назад на стр. 024-050-2 Содержание
Хакер №024. Спецвыпуск

ЯДОВИТЫЙ DNS: ПИВО ИЗ ДАУН!
GREEN (green@rootshell.ru)
Спецвыпуск Xakep, номер #024, стр. 024-054-1
ЗАЧЕМ НУЖНЫ ТРИ ВЕСЕЛЫХ БУКВЫ?
Иногда бывает так, что очень нужно, чтобы некий чел зашел на нашу веб-страничку, послал через нас какое-то письмо или каким-то иным образом связался с нашим серваком, сам того не желая и даже не зная этого. Поскольку лишь редкие "зубры" Инета помнят IP'шники всех используемых ими ресурсов, для остальных смертных была придумана DNS-система, которая позволяла присваивать безликим цифрам IP-адресов вполне понятные и запоминаемые имена, вроде vasechka.buhlo.ru, и преобразовывать потом эти имена в IP-адреса. Не будем слишком глубоко рассматривать, как устроен DNS (иначе мы с тобой прямо тут костьми и поляжем), обойдемся лишь базовыми сведениями: у каждого DNS сервера есть своя "зона ответственности" - это те записи о соответствии имя -> IP-адрес, которые забиты в файлах его конфигурации. Часть серверов также содержит ссылки на адреса других DNS серверов для имен, входящих в зону их ответственности, но не обслуживаемых непосредственно ими (так называемые поддомены).
Рассмотрим домен mydomain.net.ru. DNS-сервер, отвечающий за зону ru, содержит ссылку на сервера второго уровня, которые знают про зону net.ru, а те, в свою очередь, уже укажут на сервера третьего уровня, которые знают про mydomain.net.ru и его содержимое.
Также, для минимизации сетевого траффика, DNS-серверы часто имеют включенный кеш для запоминания ответов других серверов. При поступлении соответствующего запроса для определения IP-адреса sexygirls.mydomain.net.ru DNS-сервер (обычно провайдерский), к которому обратился сетевой клиент, узнает адрес сервера, ответственного за домен ru у специальных "корневых" доменных серверов. Знания о них заложены в него при конфигурации, а применять он их будет только в случае, если sexygirls.mydomain.net.ru не находится в его зоне ответственности. Его запрос проходит по цепочке нейм серверов, пока не достигнет нужного сервака, который определенно сможет сказать: какой же IP-адрес у нужного хоста. Все полученные ответы попутно сохраняются в кеше (время сохранения ответов в кеше прописано в каждой зоне свое).
DNS CACHE POISONING
Первая проблема с таким подходом была опубликована в ноябре 1998 года и тогда же была исправлена во многих DNS-серверах (но далеко не во всех!). Проблема заключалась в том, что достаточно было послать некоему DNS-серверу DNS-ответ с информацией о каком-нибудь домене, и, несмотря на то, что сервер не посылал такого запроса, этот ответ все равно попадал в его кеш, и при последующих запросах сервак отдавал закешированный ответ, а не тот, который нужно. Вот сервера с таким багом: дефолтовая инсталляция Windows 2000 (но в настройках это можно выключить, если, конечно, знать про этот баг и где, собственно, выключать), BIND версий до 4.9.1, BIND 8.1 (подвержен модифицированной версии атаки). Тулзы для юзания этой весьма полезной фичи можно взять тут:
http://www.insecure.org/sploits/dns.cache-poison.cname.html http://packetstormsecurity.org/spoof/unix-spoof-code/
http://www.team-teso.net/releases/zodiac-0.4.9.tar.gz
Содержание Вперед на стр. 024-054-2
Хакер №024. Спецвыпуск

ЯДОВИТЫЙ DNS: ПИВО ИЗ ДАУН!
GREEN (green@rootshell.ru)
Спецвыпуск Xakep, номер #024, стр. 024-054-2
DNS POISONING
Вторая возможность - подделать ответ от одного из серверов в цепочке. Сначала нужно узнать, с какого адреса посылаются ответы про домен, информацию о котором нужно подделать, затем выяснить адрес DNS-сервера, используемого жертвой. Обычно это делается так: нужно зарегистрировать какой-нибудь домен и послать с адреса в этом домене мыло внутрь сетки чела, для которого мы подделываем DNS-инфу. Mail server начнет резолвить домен, и мы увидим их запрос в логе нашего DNS-сервера или в выводе банального tcpdump'а. Дальше все просто - начинаем бомбардировать их DNS-сервер ответами якобы от DNS-сервера, ответственного за подделываемую зону (само собой, с подделанным исходящим IP-адресом). Когда атакуемый сервак посылает запрос запоизоненному DNS-серванту, ему тут же приходит наш ответ.
С ТОЧКИ ЗРЕНИЯ ПИВА
DNS poisoning - явление частое, поэтому ситуация в этой области может быть представлена как постоянная борьба админов с хакерами. Вот как это описывает Daniel F. Boyd с точки зрения воровства пива:
"Однажды к вам приходит чувак и говорит, что он пришел проверить электросчетчик. Когда он уходит, выясняется, что пиво из холодильника пропало...
В следующий раз, когда приходят проверять счетчик, вы просите показать удостоверение, - чувак показывает фальшивое удостоверение, и пива снова нет.
В очередной раз ты набираешь телефонный номер, написанный на удостоверении, и подруга этого чувака (чей номер, конечно же, был записан в удостоверении) говорит: "Да, конечно, у нас работает такой сотрудник". Пиво, само собой, пропадает.
Еще одна попытка - ты набираешь номер, написанный на счете за электричество, но оказывается, что в прошлый раз воры кинули поддельный счет за электричество в твой почтовый ящик. И снова нужно идти в магазин за пивом...
Через месяц, когда приходят проверять счетчик, ты берешь телефонную книгу и узнаешь оттуда номер конторы, но выясняется, что в один из прошлых визитов мошенники подменили телефонную книгу у тебя дома! И снова нет пива!
Когда ты, наконец, узнал настоящий номер конторы, которая продает тебе свет, знакомый пришедшего чувака уже стоит наготове у телефонного распределительного ящика. И когда ты набираешь номер, он говорит тебе, что все O'Key и теперь-то к тебе точно пришел настоящий сотрудник. Очень хочется пива!!!
Через некоторое время, когда ты знаешь всех сотрудников той конторы в лицо, знаешь, куда звонить, купил мобилу для таких звонков, и обмануть тебя, казалось бы, просто невозможно!.. Они просто подкупают настоящего электрика, и ты опять остаешься без пива!"
ДЛЯ ТЕХ, КТО НЕ ПЬЕТ ПИВО
Как, ты так и не понял, в чем фишка DNS poisoning'а?!! Тогда тебя не спасет даже замок на холодильнике! Можно сделать кучу веселых вещей:
1. Просекаем пароли:
Наивный админ заходит на свой хост (через telnet или ftp) по имени supersex.ru, само собой, он получает кривой ответ (админа мы вычислили ранее, и DNS сервачок, который он юзает, наполнили тем, что нам нужно) и попадает на наш хост (который, тем не менее, представляется как нужный ему хост). После ввода логина и пароля коннекшен, например, рвется или подвисает (симулируем всякие сетевые проблемы) - это самый простой вариант, либо делается проброс на настоящий сервак, и чувак вообще ничего не замечает, кроме того, что он пришел не с того адреса, на котором сидит ;) (это тоже можно поправить через DNS). А у нас в логах пишутся его пароли ;).
Назад на стр. 024-054-1 Содержание Вперед на стр. 024-054-3
Хакер №024. Спецвыпуск

ЯДОВИТЫЙ DNS: ПИВО ИЗ ДАУН!
GREEN (green@rootshell.ru)
Спецвыпуск Xakep, номер #024, стр. 024-054-3
Как вариант - умный админ ходит через ssh, который проверяет, действительно ли это тот хост, на который мы идем (достигается путем сверки запомненного серверного ключа с тем, который сервер предъявляет на этот раз). Обходится это тоже легко: выясняем ssh какой версии (1 или 2) пользуется этот умный админ, и на нашем хосте ставим другую версию. Тогда ssh, порывшись в своих файлах, обнаруживает, что у него нет такого ключа, и предлагает админу этот ключ запомнить как правильный (вместо большой страшной таблички на тему "ОЙ! КУДА ТЫ ПРИВЕЛ НАС, ПРОКЛЯТЫЙ СУСАНИН?"). Админ обычно соглашается. Дальше все как с телнетом.
Практически то же самое с другими протоколами, спрашивающими пароль.
2. Просекаем cookies:
Некоторые системы (ну, типа, там порнуха, а иногда даже и всякие связанные с деньгами) хранят логин/пароль в куках. Подменяем IP нужного веб-сервака, и все эти куки предъявляются нам, ну а мы их, само собой, сохраняем. Дальше, чтоб никто не догадался, мы редиректим юзера на реальный ресурс (делать это надо по IP, иначе его опять к нам принесет ;)) во фрейме на весь экран (это чтобы адрес в "Location" поле не сменился).
3. Накручиваем баннеры:
Если ты подрабатываешь накруткой баннеров, заодно можно открыть невидимый фрейм с кучей рефрешащихся баннеров, заполнить DNS кеш какого-нибудь провайдера "правильными" ссылками на популярные ресурсы - и баннеры закрутятся с новой силой.
4. Суем ишаку:
Также вместо баннеров можно подсунуть какой-нибудь свежий эксплойт для лучшего друга всех черных шапок - Internet Explorer'а, и засунуть троянов всем, кто зайдет. Что делать после того, как троян подсажен, думаю, не нужно объяснять.
Ну и, возвращаясь к теме файрволлов, скажу, что DNS poisoning - очень хороший способ заставить кого-то из внутренней сетки, защищенной файрволлом, попасть на наш сервак. А как использовать сей замечательный факт, ты узнаешь из статьи "Проходим сквозь файрволл" в этом же номере.
Так что юзай мощные фичи, почаще читай доки и баг-траки, а главное... веди себя хорошо ;)!
Назад на стр. 024-054-2 Содержание
Хакер №024. Спецвыпуск

IP-МАСКАРАДИНГ
прячем сеть от чужих глаз
Спецвыпуск Xakep, номер #024, стр. 024-056-1
][rimZ (hrimz@xakep.ru)
Сегодня мы подробно рассмотрим популярный метод защиты сетей - ip-маскарадинг. Что за зверь такой и кто его юзает? Сейчас в Интернете это очень-очень популярно среди многих компаний. Конечно же, никто из админов сеток не хочет, чтобы вся сеть, подрубленная к нету, была доступна все остальным. Нужно, чтобы доступ был только туда, куда надо админам и злобному боссу, а кто пытается пройти куда-то еще - сразу и без разговоров посылался нах. Все это можно реализовать с помощью файрволлов. Для этого брандмауэр нужно сконфигурировать на фильтрацию входящих/исходящих пакетов. Такие фильтры имеются как в софтверных, так и в аппаратных реализациях файрволлов. Вообще-то, если у тебя dial-up доступ, то маскарадинг тебе нафиг не нужен, а вот если есть LAN, и всем охота иметь выход в сеть, и безопасность тоже важна, то ip-маскарадинг - твой выбор. Или пров выделяет твоей сетке только один ip, а у тебя там 100 машин :). Да даже если у каждой тачки твоей сетки есть реальный ip в нете, то можно юзать маскарадинг, чтобы скрыть "нутровую" структуру сети. Надеюсь, ты понял, что вещь это архиполезная.
А вот в чем заключается основная фишка всего этого маскарада. Есть Интернет и есть LAN, все исходящие пакеты из внутренней сети фильтруются файрволлом и в header`ах пакетов в поле «source IP» внутренние адреса сети переписываются на IP фильтрующего шлюза, а во входящих (ответных) пакетах переписывает «destination IP» (свой) на внутренний IP той машины, которая делала запрос вовне. Для хацкера, сидящего где-то далеко в нете, это выглядит так, как будто все запросы исходят из единственной тачки-шлюза. То есть внутренний LAN как бы и нет =). Реализовать все это можно без особого напряга, если шлюз - это *nix`овая система (и подзаморочиться, если вынь-дос). Это все потому, что в никсах есть офигенная утилита-файрволл - ipchains (да и вообще там много офигенных утилит). Вот на примере ipchains мы и реализуем ip-маскарадинг для "нашей сети".
НАША СЕТЬ
Итак, что же будет представлять наша сеть? Допустим, ты простой работник в крутой конторе, и тебе нужно настроить ip-маскарадинг. Ты открываешь Спец на нужной странице и жадно вчитываешься =). В общем, ситуация такая. Куплен домен, например, megatron.net. К нету подрублена только одна шлюз-тачка через оптику. Адрес шлюза security.megatron.net. Сеть построена на Ethernet, твоя личная машина зовется xakep_host. Приступим! Нам нужно, чтобы пакеты из внутренней сетки некогда не выходили в Инет без фильтрации, ну и наоборот - соответственно. Адресация внутренней сети должна быть из определенного диапазона: 10.*.*.*, 172.16.*.* и 192.168.*.*. Это fake-адреса, которые не маршрутизируются глобально, то есть в нете ты не найдешь серваков с IP из этого диапазона. Только в частных сетях. Реализовывать мы все это будем в *nix`ах. Так будет лучше для всех (если с никсами траблы - читай в этом же номере статью по ipchains - там все хорошо рассказано и снабжено примерами).
ПРИМЕР НОМЕР РАЗ
Попытаемся разрешить доступ из LAN к веб-серваку в Инете. Адресация в конкретно нашей LAN - 192.168.13.*, твой xakep_host имеет адресок 192.168.13.111, а адрес файрволла - 192.168.13.222. Файрволл настроен на подмену любых пакетов, исходящих из LAN и направленных на 80 порт сервака в Инете. Твой браузер (Opera, например) стандартно настроен для соединения, и DNS-сервер во внутренней сети поставлен грамотно, а не Дедом Морозом. Да, и еще одно условие - файрволл должен служить стандартным маршрутизатором в сети.
Содержание Вперед на стр. 024-056-2
Хакер №024. Спецвыпуск

IP-МАСКАРАДИНГ
прячем сеть от чужих глаз
Спецвыпуск Xakep, номер #024, стр. 024-056-2
Теперь проследим сам экшн по net-surf`у. Опера на твоей таче запрашивает хост http://www.worldsex.com и получает IP 207.246.141.25. Она открывает соединение с этим айпишником, юзая локальный порт 666, и запрашивает на веб-сервере (портик 80) страничку harcore_gibbon_anal_mpegs.htm. Пакеты от xakep_host (портик 666) к worldsex.com (портик 80) проходят через фаервольный фильтр, они перелопачиваются так, чтобы выходить с фаервольного порта 11111. Наш любимый firewall имеет допустимый в Инете IP-адрес (213.45.76.11 - взять просто из головы), следовательно ответные пакеты от worldsex.com нормально приходят на файрволл. По прибытию пакеты от worldsex.com к security.megatron.net (порт 11111) перезаписываются так, чтобы идти на xakep_host порт 666. В этом и состоит фокус маскарада: он помнит, когда он перезаписал исходящие пакеты, и может переписывать их обратно, когда приходят ответы на них. Opera отображает долгожданную порнуху. То есть с точки зрения worldsex.com соединение было сделано между 213.45.76.11 (firewall'ом) порт 11111 и 207.246.141.25 (worldsex.com) порт 80. С точки зрения xakep_host соединение было сделано между 192.168.1.111 (xakep_host) порт 666 и 207.246.141.25 (worldsex.com) порт 80. И только файрволл знает всю правду. Вот такие стремные дела =).
ПРИМЕР НОМЕР ДВАС
Так, давай рассмотрим еще один пример. Твоя сетка - часть Интернета: пакеты могут бегать без изменения из одной сети в другую. Адреса IP внутренней сети должны быть назначены из выделенного блока адресов IP (которые пров дал) так, чтобы остальная часть сети знала, как передать пакеты, адресованные тебе. В этом случае фильтрация используется для ограничений пакетов, пересылаемых между твоей сетью и остальной частью Инета, то есть ограничивается только доступ остальной части Интернета к твоим внутренним серверам. Сам пример: открываем доступ из твоей сети к web-сервакам в Инете. В нашей внутренней сети адреса назначены согласно выделенному блоку IP адресов (допустим - 213.45.76.*). Файрволл настроен на пропуск всего траффика. Остальное же настроено так же, как в первом примере. Зажигай! Опера обращается на http://www.worldsex.com и опять же узнает его IP - 207.246.141.25. Затем браузер открывает соединение с этим айпишником, юзая локальный порт 666 и удаленный (на worldsex`е) 80 порт. Ну и, конечно, запрашивается любимая страничка :-). Пакеты преодолевают файрволл так же, как они проходят через несколько маршрутизаторов между тобой и worldsex.com. Гиббоны снова на экране. Что же у нас имеется? А у нас имеется только одно соединение между 192.168.13.111 (xakep_host) порт 666 и 207.246.141.25 (worldsex.com) порт 80. Никаких наворотов, только злобные хацкеры в сеть уже не залезут.
Назад на стр. 024-056-1 Содержание Вперед на стр. 024-056-3
Хакер №024. Спецвыпуск

IP-МАСКАРАДИНГ
прячем сеть от чужих глаз
Спецвыпуск Xakep, номер #024, стр. 024-056-3
ВДОГОНКУ
Кроме файрволла существуют еще и другие способы обеспечить доступ из Инета к ресурсам нашей супер-LAN. Эти способы основаны на принципах маскарадинга для внешних соединений. Самый простой способ заключается в запуске так называемого перенаправителя (redirector), который является своеобразным прокси. Он ожидает соединения на заданном порте, а затем открывает соединение на фиксированном "нутровым" хосте и порте и копирует данные между двумя соединениями. Пример такой программы - redir в никсах. С точки зрения глупого нета соединение установлено с нашим файрволлом. А вот с точки зрения не менее глупого внутреннего сервака - соединение установлено от внутреннего интерфейса файрволла к серваку. Короче, обмануты все =). Другой подход (для него нужны *nix с версией ядра выше 2.1, а есть еще у кого-то ниже? :)) состоит в использовании форвардинга портов в ядрышке. Он делает ту же самую работу, что и тулза redir, но другим способом: ядро переписывает проходящие пакеты, заменяя их адрес и порт назначения на адрес и порт внутреннего хоста. Инет думает, что соединение установлено с нашим файрволлом, а "нутровый" сервак думает, что это прямое соединение из нета до него. Опять всех админ надул :).
НАТЯГИВАЕМ
Теперь рассмотрим, как наш брат хацкер всех натягивать будет, ведь обойти маскарадинг тоже можно. Например, вот таким способом. Этот способ нашел бравый хацкер из забугорья H.D. Moore (hdm@secureaustin.com). Из-за того, что в коде, отвечающем за маскарадинг, найдены траблы, хацкер может перезаписать установки маскарадинга UDP, после чего он будет способен организовать туннелирующее (подробно об этом тоже читай в этом номере) UDP-соединение с тачкой, находящейся за файрволлом, осуществляющим маскарадинг. Хакер не может знать, какие порты и адреса используются во внутренней сети, если, конечно, ему сам админ по пьяни не скажет (НЛП, блин), но он может вычислить число текущих соединений, идущих через файрволл и количество машин, находящихся за огненной стеной. Любая сетка, где юзается маскарадинг UDP-траффика, уязвима для такой атаки (а ведь UDP-протокол юзает множество прог). Поскольку UDP - это протокол, в котором отсутствует понятие соединения (как TCP), то единственный путь определить, что маскированное соединение более не используется, - по тайм-ауту или же после получения сообщений ICMP, говорящих, что порт закрыт (пинговать надобно). На тайм-аут по умолчанию полагается 5 минут, это одно и то же значение для форвардинга UDP-пакетов. А это позволит хакеру найти действующий туннель и поюзать его в своих корыстных целях. Протоколы TCP и UDP требуют, чтобы и порт, с которого отправлен пакет, и порт, на который он отправлен, так же как адрес источника и получателя, обязательно присутствовали в пакете. Порт для исходящих соединений обычно выбирается, как первый доступный из диапазона 1024-65535 (подробнее об этом читай в предыдущем Спеце) - а как же выбирает порты файрволл с установленным маскарадингом? Ядро использует для этих целей порты от 61000 до 65906 по умолчанию, позволяя теоретически обслуживать до 4096 TCP и UDP-сессий одновременно. Эти значения могут быть изменены путем редактирования и пересборки кода или же редактированием /proc - файловой системы, через которую можно осуществить доступ к адресному пространству процесса. Итак, теперь, когда соединение, запрошенное внутренним хостом megatron, осуществляется в порт 1050, и его назначение - внешний DNS-сервер dns_server, а в порт 53 маскирующая машина добавляет новое поле таблицы маскарадинга, выглядящее примерно так:
Назад на стр. 024-056-2 Содержание Вперед на стр. 024-056-4
Хакер №024. Спецвыпуск

IP-МАСКАРАДИНГ
прячем сеть от чужих глаз
Спецвыпуск Xakep, номер #024, стр. 024-056-4
megatron A:1035 (651001) -> dns_server B:53
Порт в скобках - это порт файрволла, с которого оно осуществляет соединение и который использует для коннекта с портом 53 хоста B. А далее мы рассмотрим, как хакер может перезаписать правую часть данного соединения, чтобы подключиться к порту внутреннего хоста. Код, отвечающий за UDP-маскарадинг, проверяет только ПОРТ НАЗНАЧЕНИЯ, чтобы определить - пришел ли пакет из внутренней сетки или извне, и должен быть переслан внутрь. Затем поля PORT и HOST устанавливаются в исходный адрес и порт отправителя. Хацкеру достаточно только определить порт, открытый для соединения на файрволле, чтобы внести свои модификации в таблицу, перезаписав поля Host Z:53 cвоими данными. Но как определить, что порт из диапазона 65100 - 65096 используется для форвардинга соединений? Мы просто посылаем тестовый пакет каждому из этих хостов (файрволлу и внешнему хосту, с которым производится соединение) и просматриваем поле IP_ID в каждом из ответов. Данное поле последовательно увеличивается каждым хостом с каждым посланным пакетом, и ответы от файрволла будут иметь IP_ID ВНУТРЕННЕГО хоста (это примерно на 1000 меньше, чем IP_ID пакетов, полученных непосредственно от файрволла). В результате этих манипуляций у хацкера появился туннель к порту закрытой тачки во внутренней сети. Вот так вот. Читай доки, изучай исходники *nix`ов и пей чаек с лимоном, и тогда все будет пинцетно.
Назад на стр. 024-056-3 Содержание
Хакер №024. Спецвыпуск

TCP WRAPPERS
плащ для админа
Спецвыпуск Xakep, номер #024, стр. 024-060-1
MеnderX (forother@fromru.com)
Пакет TCP Wrappers (wrappers - обертки) занимает 25-ое место (из 50) в рейтинге полезных админу (не буду скрывать, иногда и хакеру =) утилит, проводимом Insecure.org. Это место находится не так далеко от 18-ого, оккупированного iptables/netfilter/ipchains/ipfwadm. Что же это за обертки? Чем они полезны админу? Я постараюсь ответить на эти и многие другие вопросы, касающиеся TCP Wrappers, в рамках одной статьи.
ШО ЗА ФАНТИКИ?
Пакет этих оберток обеспечивает контроль доступа к системе (или сети). Также он логирует все коннекты к сервисам. Чтобы ты лучше понял механизм работы, я объясню на двух примерах: когда этот пакет установлен в системе и, соответственно, когда не установлен.
При старте системы запускается демон inetd/xinetd и ищет в файле /etc/inetd.conf или каталоге /etc/xinetd.d записи разрешенных сервисов. И когда он получает запрос от, например, клиента telnet, то запускает экземпляр другого демона - telnetd. Сам посуди, проще запускать демон telnetd тогда, когда он действительно нужен (то есть когда к нему уже обратились), чем постоянно поддерживать кучу служб! Но эти сервисы (сервисы, демоны, службы - одно и то же) по умолчанию не используют контроль доступа к системе, а сие не есть гуд.
Теперь посмотрим, что будет, если в системе установлен пакет TCP Wrappers. После получения запроса от клиента tcpd (это и есть обертка) перехватывает запрос и обрабатывает его (сверяет с установленными правилами), после этого он может или разрешить коннект (передать его нужному сервису, например, telnetd) или отказать в нем. Также он логирует все соединения, отправляя их демону syslogd (глянь - /etc/syslog.conf).
Рассмотрим структуру /etc/inetd.conf (если перед сервисом стоит #, значит - он закомментирован, т.е. запрещен, советую тебе оставить только самые нужные службы). Пример записи, когда пакет TCP Wrappers отсутствует в системе:
А теперь, когда присутствует:
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
Здесь демон /usr/sbin/tcpd обертывает демон telnetd.
Если у тебя в системе отсутствует файл /etc/inetd.conf, то, скорее всего, используется xinetd. Это усовершенствованный демон Инета, так что топай в /etc/xinetd.conf. Если там присутствует строка «includedir /etc/xinetd.d», то демон xinetd читает содержимое этого каталога и использует его как настроечный. В таком каталоге каждый файл содержит инфу об одной службе - чтобы запретить службу, достаточно удалить файл (или добавить в него строку «disable=yes»). На первом скрине виден конфигурационный файл службы телнет без использования фантиков, на втором - с использованием оных. Тоже очень хорошо видно, как tcpd обертывает telnetd.
Не лишним будет сказать, что xinetd имеет свои собственные функции ограничения доступа. Для ограничения добавь строку only_from = <доверенный хост> или no_access = <хост твоего врага> в файл настроек демона.
Теорией я тебя уже достаточно загрузил, пора переходить к практике, т.е. к настройке.
ИСПОЛЬЗОВАНИЕ
Скачать пакет TCP Wrappers (автор - Виетс Венема) ты можешь с этого фтп - ftp://ftp.porcupine.org/pub/security/, там же ты найдешь еще много утилит, связанных с security. Но особо не спеши, скорее всего этот пакет уже установлен у тебя в системе :). Для инстала распакуй архив, заходи в распакованную диру, далее тебе придется править Makefile под себя, а потом вводить make. Скомпилировав с ключом -DPARANOID, ты защитишь себя от ip-spoofing-а со стороны клиента, т.е. wrappers будут всегда проверять имя хоста дважды и при несовпадении в коннекте откажут =).
Содержание Вперед на стр. 024-060-2
Хакер №024. Спецвыпуск

TCP WRAPPERS
плащ для админа
Спецвыпуск Xakep, номер #024, стр. 024-060-2
А теперь о настройке. Все правила доступа читаются из двух файлов - /etc/hosts.deny и /etc/hosts.allow. Прочитав хотя бы половину Спеца, ты уже должен понять, что значит deny и allow. Правильно, в /etc/hosts.deny запишем хосты, которым не доверяем, а в /etc/hosts.allow запишем доверенные хосты. В только что установленной системе эти файлы пусты, так что приступим к конфигуру. Виетс Венема создал специальный язык (hosts_options) для этого дела, и первое, что надо добавить в /etc/hosts.deny, - запись "ALL: ALL". А теперь разберем ее: слева список демонов, потом идет символ «:» (разделяющий символ) и далее список хостов. В данном примере мы всем хостам запретили юзать все сервисы =) (ALL - это символ-заместитель). Это правило называется - «то, что не разрешено, запрещено». Вот теперь можем приступить к редактированию /etc/hosts.allow, т.е. разрешать.
Запиши туда строчку - "ALL: 127.0.0.1"ь, что позволит тебе подсоединятся ко всем сервисам (можно перечислять хосты дальше через пробел).
В языке hosts_options имеется еще один очень полезный оператор, а зовут его EXCEPT. Зачем он нужен? Ну, к примеру, если в /etc/hosts.deny записать - "ALL EXCEPT in.telnetd: ALL", то ко всем сервисам, кроме telnet, будет запрещено подсоединяться. Возможно, ты уже подумал, что ничего сложного в языке нет, но ты глубоко ошибаешься, посмотри на этот пример:
/etc/hosts.deny:
ALL: ALL: spawn ((/path/to/save_finger -l @%h; \
echo Alien's IP %a; echo Alien's domain %n; \
/bin/mail -s " %c wanted to connect %s at 'date'" root)&
ALL: ALL - это мы уже разобрали, потом идет еще один знак «:» (разделитель) и команды, которые выполняются при коннекте, spawn - команда, которая запускает shell. Для того, чтобы выяснить, кто работает на удаленной машине, я использую safe_finger (поставляется вместе с обертками), в документации написано, что он безопаснее стандартного. Затем я вывожу на консоль IP и доменное имя того хрюнделя, который хочет приконнектиться. А также стучу кому надо, т.е. отправляю письмо руту с темой (ключ -s) "%c хочет присоединиться к %s в такое-то число". Тут %a - IP клинета, %n - доменное имя клиента, %c - информация о клиенте, %s - информация о сервере. Т.е. получается, что я отправляю письмо с темой - "Какой-то ежик (идет инфа о нем) хочет приконнектиться к моей тачке (идет инфа о тачке, с которой отправляется письмо) в такое-то время" (заменяется на дату). Если ты тоже хочешь мутить подобные конструкции - милости просим в man pages: hosts_options(5) и hosts_access(5) (5 - это номер секции, File Formats).
Назад на стр. 024-060-1 Содержание Вперед на стр. 024-060-3
Хакер №024. Спецвыпуск

TCP WRAPPERS
плащ для админа
Спецвыпуск Xakep, номер #024, стр. 024-060-3
ТЕСТИРОВАНИЕ
Иногда ты можешь просто запутаться и настроить не так, как хочется, а так, как получится =(. А поймешь ты это только тогда, когда тебя в очередной раз поимеют :(. Вот для этого и включены в пакет утилиты тестирования настроек - tcpdchk и tcpdmatch. Первая проверяет неверные пути, неверные имена хостов и ip, службы, для которых указаны правила, но которые не защищены демоном tcpd и т.д. Запусти ее, и она выдаст тебе инфу об ошибках.
А вот tcpdmatch предсказывает, как Wappers обработает конкретное сообщение к службе. Использование: tcpdmatch [Демон] [хост].
КОНЕЦ
TCP Wappers ассоциируются у меня с плащом от дождя, тогда как xinetd - это современная непромокаемая куртка, а файрволл - это зонтик (какой богатый внутренний мир :) - прим. ред.). Но у всех этих штук есть одно общее - при их использовании существует вероятность промокнуть ;). А вот если юзать связку из этих средств защиты, то вероятность быть замоченным уменьшается. Как бы то ни было, желаю тебе всегда выходить сухим из воды!
Назад на стр. 024-060-2 Содержание
Хакер №024. Спецвыпуск

ПОСТРОЙ СЕБЕ САМ: БЫСТРЫЙ СПОСОБ ПОЗНАКОМИТЬСЯ С IPTABLES
ViTLS (vitls@beshtau.ru)
Спецвыпуск Xakep, номер #024, стр. 024-062-1
Привет, мужик. Сегодня я хочу с тобой поговорить о том, что бездумная работа может привести к очень печальным последствиям. Но главное - я расскажу тебе, как этих последствий можно избежать, на примере защиты любимой оси aka Linux. Делать мы это будем при помощи встроенной утилитки iptables, которая присутствует в ядрах 2.4.*.
ВТЫКАЕМ
Надеюсь, ты сумеешь установить пакет с исходниками ядра или скачать свежее ядро ветки 2.4.х с ftp.kernel.org. Коротко это будет выглядеть так: администратором входишь в каталог /usr/src/linux, есессено, в консоли или в терминале. Даешь команду:
make menuconfig
или
make xconfig
(если ты работаешь в Х)
Идешь в Networking Options и включаешь поддержку Network packet filtering (Рис. 1).
Затем, спустившись немного ниже, можешь настроить фильтр пакетов в разделе Netfilter Configuration (Рис. 2).
Если что-то из вариантов настройки фильтра пакетов тебе покажется непонятным, а я на 100 процентов уверен, что тебе будет непонятно почти все, я настоятельно рекомендую выйти в Сеть и прочитать (а заодно слить на свой винт) вот эту доку: http://gazette.linux.ru.net/rus/articles/iptables-tutorial.html. Там про iptables написано почти все.
Сразу скажу, что в современных дистрибутивах ALT Linux Master 2.0, ASP Linux 7.2, Mandrake Linux 7.2 и выше, Red Hat Linux 7.0 и выше, SuSE Linux, Debian 2.2 и выше и так далее - пакетный фильтр iptables уже включен в ядро и настроен на решение часто используемых задач. Значит, тебе с большой вероятностью не придется самому заниматься конфигурированием и сборкой ядра.
Другое дело в случае консервативного дистриба Slackware или Gentoo. Скорее всего, тебе самому придется ковыряться в ядре, собирать его, скачивать пакет iptables (его тоже надо будет собрать) и устанавливать все это барахло. Но я уверен, справившись с установкой такого дистрибутива, ты на 100% расправишься с такой мелочью, как настройка и сборка ядра.
УЧИМ ПРАВИЛА
В iptables правило фильтрации определяет, как из общего потока данных отбирать определенные пакеты и что с ними делать. С приходящим или уходящим пакетом ты можешь сделать не очень много, но этого вполне достаточно, чтобы создать довольно мощную защиту.
Пакет мы может принять, отбросить с уведомлением отправителя пакета, уничтожить или переслать на другое правило или куда-то еще. Несколько правил составляют цепочку. Фильтр просматривает правила в цепочке одно за другим и выполняет предписанные действия.
Есть стандартные цепочки, но можно намутить и пользовательские, их может быть сколько угодно и каждая из них может иметь свое имя.
Стандартная цепочка INPUT
В нее попадают все ВХОДЯЩИЕ в фильтр пакеты.
Цепочку INPUT проходят пакеты, которые предназначены локальным приложениям (самому firewall'у).
Стандартная цепочка OUTPUT
В нее попадают все ВЫХОДЯЩИЕ из фильтра пакеты. Цепочка OUTPUT используется для фильтрации исходящих пакетов, сгенерированных приложениями на самом firewall'е.
Стандартная цепочка FORWARD
Используется для фильтрации пакетов, идущих транзитом через firewall (во внутреннюю сеть).
Содержание Вперед на стр. 024-062-2
Хакер №024. Спецвыпуск

ПОСТРОЙ СЕБЕ САМ: БЫСТРЫЙ СПОСОБ ПОЗНАКОМИТЬСЯ С IPTABLES
ViTLS (vitls@beshtau.ru)
Спецвыпуск Xakep, номер #024, стр. 024-062-2
Так как ты защищаешь только свой компьютер, можно обойтись первыми двумя.
Пакетный фильтр iptables может работать с тремя таблицами правил. Таблица для фильтрации filter (она ставится по умолчанию, если явно ничего не указано), таблица для nat-маскарадинга и трансляции адресов (очень полезно для вывода локалки в Инет). И, наконец, таблица mangle для редактирования пакетов.
В каждую таблицу заносятся цепочки правил фильтрации. Они последовательно просматриваются и исполняются фильтром. Цепочки ты либо заносишь сам из командной строки (рис. 3), либо пишешь сценарий на shell.
Хочу сказать, что скриптовые языки вроде perl и php для такого дела не подходят, хотя на них и можно написать системы, облегчающие составление правил и цепочек. Зайди на www.freshmeat.net и поищи по слову firewall или по слову iptables - увидишь массу ссылок на программы для быстрого и удобного составления правил фильтрации пакетов.
ПРАВИЛА ПО КОСТОЧКАМ
Правило состоит из нескольких элементов - команды, опции, критерия отбора и действия. Элементы могут в принципе располагаться как угодно, но лучше придерживаться указанного порядка - так будет потом понятнее самому.
Команды предназначены для того, чтобы сказать фильтру, что мы будем делать. Например, добавить правило в цепочку, удалить правило, очистить цепочку, вывести список правил в цепочке и тому подобное.
Опции нужны, чтобы определенным образом модифицировать выводимую на экран информацию или выполнять добавочные, не присущие самому фильтру действия (например, округлять числовые показатели или подгружать модуль ядра).
Критерий отбора. Это самая важная часть правила. Пакетный фильтр при разборках с пакетом смотрит именно на них. В качестве критериев отбора может выступать интерфейс, с которого пришел пакет, адрес отправителя или адрес получателя, порт отправителя или порт получателя, тип протокола.
Действие. Действие определяет, что именно нам делать с пакетом, который удовлетворяет заданному тобой критерию.
Самый полный список команд, опций, критериев и действий ты найдешь в доке Iptables-tutorial. Там все по-русски, поэтому тебе много не придется ломать голову. К тому же там есть просто шикарные примеры.
РАЗБЕРЕМ ПРАВИЛО:
iptables -A INPUT -i eth0 -p tcp -s 0/0 -d 192.168.1.1 --dport 53 -j DROP
Вот его части:
* iptables - системная программа для вызова утилиты управления пакетным фильтром;
* -A INPUT - команда iptables, означающая "добавить (-A) новое правило в цепочку INPUT";
* критерий -i eth0 говорит, что нам нужен пакет, приходящий с интерфейса (-i) eth0 (сетевуха); если у тебя диал-ап, то интерфейс, скорее всего, будет ppp0;
* критерий -p говорит, что нам нужен пакет протокола (-p) tcp;
* критерий -s 0/0 говорит, что нам нужен пакет с адресом отправителя (-s) любым, то есть 0.0.0.0 с маской подсети 0.0.0.0 или в краткой записи 0/0;
* критерий -d 192.168.1.1 говорит, что нам нужен пакет, который получает (-d) машина с адресом 192.168.1.1;
* критерий --dport 53 говорит, что номер порта принимающей (--dport) машины должен быть равен 53;
* действие -j DROP означает, что если пакет удовлетворяет ВСЕМ перечисленным критериям, то есть если все критерии присутствуют, то этот пакет прыгнет (-j) на цепочку DROP. Проще говоря, он будет уничтожен.
Назад на стр. 024-062-1 Содержание Вперед на стр. 024-062-3
Хакер №024. Спецвыпуск

ПОСТРОЙ СЕБЕ САМ: БЫСТРЫЙ СПОСОБ ПОЗНАКОМИТЬСЯ С IPTABLES
ViTLS (vitls@beshtau.ru)
Спецвыпуск Xakep, номер #024, стр. 024-062-3
В результате выполнения этого правила на защищаемой машине получим вот такую картину после сканирования портов:
-------------------------------------------------------------------
[vitls@zeelog:~]# nmap 192.168.1.1
Starting nmap V. 2.54BETA37 (www.insecure.org/nmap/)
Interesting ports on 192.168.1.1 (192.168.1.1):
(The 1597 ports scanned but not shown below are in state: closed)
Port State Service
21/tcp open ftp
25/tcp open smtp
53/tcp filtered domain
110/tcp open pop-3
Nmap run completed -- 1 IP address (1 host up) scanned in 2 seconds
[vitls@zeelog:~]#
-------------------------------------------------------------------
КУЕМ ЦЕПИ
Как я уже успел упомянуть, правила могут быть объединены в цепочки. В твоей системе защиты может быть несколько независимых друг от друга цепей. Про стандартные цепочки ты уже знаешь, а любая нестандартная цепочка, то есть твоя собственная, может взаимодействовать со стандартной. Например, можно принять пакет из цепочки INPUT, проверить его на соответствие какому-то критерию отбора и отправить на твою собственную цепочку для дальнейшей экзекуции. Основываясь на этих возможностях, можно построить очень сложную систему распределения и фильтрации входящего к тебе или исходящего от тебя трафика.
Самое главное заключается в мудрости построения последовательности правил в цепочке. Пакетный фильтр просматривает правила исключительно в том порядке, в которым ты их задаешь. Он тупой и исполнительный.
Если ты в первом правиле скажешь, что такой-то пакет отправить на уничтожение, а затем вторым правилом скажешь, что такой же пакет принимать для пересылки, в ответ на это я тебе отвечу, что до второго правила твой пакет просто не доживет, и вся работа пойдет псу под хвост. Так что всегда анализируй то, что уже написал.
КАК ЭТО ДЕЛАЕТСЯ?
Цепочки ты можешь вводить либо напрямую из командной оболочки (shell), в качестве которой у тебя могут быть sh, bash, ash, zsh, tcsh или что-то еще твое любимое. Я все примеры буду приводить для стандартного sh, так как он есть практически в любом дистрибутиве.
Вводя правила непосредственно из shell, ты должен их набирать последовательно и быть осторожным, любая ошибка - и тебе придется вводить: iptables -F имя_цепочки, чтобы ее очистить.
Для устранения этих проблем лучше написать сценарий, который можно будет легко отредактировать в любой момент и выполнить только тогда, когда он будет полностью готов. Сгодится любой текстовый редактор. Все равно текст будет обычный, посему навороты, вроде word, на фиг не нужны.
Для примера я наведу разборки с простым сценарием.
ПРОСТОЙ СЦЕНАРИЙ
Задача - с помощью iptables закрыть на ppp0 все порты с 1 по 1024 и оставить открытыми только некоторые, например, 53 и 80. Чтобы кто-то из внешней сети мог воспользоваться только нашим dns сервером и www сервером.
Внутренности файла сценария выглядят примерно так:
Назад на стр. 024-062-2 Содержание Вперед на стр. 024-062-4
Хакер №024. Спецвыпуск

ПОСТРОЙ СЕБЕ САМ: БЫСТРЫЙ СПОСОБ ПОЗНАКОМИТЬСЯ С IPTABLES
ViTLS (vitls@beshtau.ru)
Спецвыпуск Xakep, номер #024, стр. 024-062-4
--------------------------------------------------------------------------------
#!/bin/sh
IPT=/usr/sbin/iptables
$IPT -F INPUT
$IPT -A INPUT -i ppp0 -p tcp -s 0/0 --sport 0:65535 -d 0/0 --dport 80 -j ACCEPT
$IPT -A INPUT -i ppp0 -p tcp -s 0/0 --sport 0:65535 -d 0/0 --dport 1:1024 -j DROP
$IPT -A INPUT -i ppp0 -p udp -s 0/0 --sport 0:65535 -d 0/0 --dport 53 -j ACCEPT
$IPT -A INPUT -i ppp0 -p udp -s 0/0 --sport 0:65535 -d 0/0 --dport 1:1024 -j DROP
--------------------------------------------------------------------------------
Теперь построчно:
#!/bin/sh
В этой строке мы говорим командной оболочке, что данный сценарий будет выполняться программой /bin/sh.
IPT=/usr/sbin/iptables
Объявляем переменную IPT, куда заносим строку, содержащую путь к тому месту, где находится утилита iptables. В данном случае /usr/sbin/iptables. В своей системе ты этот путь можешь узнать, выполнив в командной строке команду whiсh iptables.
$IPT -F INPUT
В результате выполнения сценария $ITP будет заменена на /usr/sbin/iptables, то есть мы обозначаем саму утилиту iptables. Это нужно для удобства, чтобы по десять раз не писать одно и то же. Команда -F INPUT приказывает очистить цепочку INPUT.
$IPT -A INPUT -i ppp0 -p tcp -s 0/0 --sport 0:65535 -d 0/0 --dport 80 -j ACCEPT
Данная строка добавляет в цепочку INPUT фильтр по критериям: пакет должен прийти с интерфейса ppp0 (-i ppp0), пакет должен быть по протоколу tcp (-p tcp), прийти с любого адреса (-s 0/0), с любого из портов, указанных в диапазоне (--sport 0:65535), пакет должен быть адресован любому адресу (-d 0/0) и прийти на порт 80 (--dport 80). Если пакет подходит под ВСЕ условия, он направляется в цепочку ACCEPT (-j ACCEPT). То есть принимается системой. Если пакет не подходит под данное правило фильтрации, то он переходит к следующему правилу в цепочке:
$IPT -A INPUT -i ppp0 -p tcp -s 0/0 --sport 0:65535 -d 0/0 --dport 1:1024 -j DROP
Данная строка добавляет в цепочку INPUT фильтр по критериям: пакет должен прийти с интерфейса ppp0 (-i ppp0), пакет должен быть по протоколу tcp (-p tcp), прийти с любого адреса (-s 0/0), с любого из портов, указанных в диапазоне (--sport 0:65535), пакет должен быть адресован любому адресу (-d 0/0) и прийти на любой порт в указанном диапазоне (--dport 1:1024). Если пакет подходит под ВСЕ условия, он направляется в цепочку DROP (-j DROP). То есть уничтожается системой.
Короче, в этом правиле уничтожаются все пакеты на порты от 1 до 1024, которые не подпадают под предыдущее правило. Задача же стояла закрыть все, кроме 80-го порта, вот мы и сделали это.
Далее:
$IPT -A INPUT -i ppp0 -p udp -s 0/0 --sport 0:65535 -d 0/0 --dport 53 -j ACCEPT
Данная строка добавляет в цепочку INPUT фильтр по критериям: пакет должен прийти с интерфейса ppp0 (-i ppp0), пакет должен быть по протоколу udp (-p udp), прийти с любого адреса (-s 0/0), с любого из портов, указанных в диапазоне (--sport 0:65535), пакет должен быть адресован любому адресу (-d 0/0) и прийти на порт 53 (--dport 53). Если пакет подходит под ВСЕ условия, он направляется в цепочку ACCEPT (-j ACCEPT). То есть принимается системой.
Назад на стр. 024-062-3 Содержание Вперед на стр. 024-062-5
Хакер №024. Спецвыпуск

ПОСТРОЙ СЕБЕ САМ: БЫСТРЫЙ СПОСОБ ПОЗНАКОМИТЬСЯ С IPTABLES
ViTLS (vitls@beshtau.ru)
Спецвыпуск Xakep, номер #024, стр. 024-062-5
И наконец:
$IPT -A INPUT -i ppp0 -p udp -s 0/0 --sport 0:65535 -d 0/0 --dport 1:1024 -j DROP
Данная строка добавляет в цепочку INPUT фильтр по критериям: пакет должен прийти с интерфейса ppp0 (-i ppp0), пакет должен быть по протоколу udp (-p udp), прийти с любого адреса (-s 0/0), с любого из портов, указанных в диапазоне (--sport 0:65535), пакет должен быть адресован любому адресу (-d 0/0) и прийти на любой порт в указанном диапазоне (--dport 1:1024). Если пакет подходит под ВСЕ условия, он направляется в цепочку DROP (-j DROP). То есть уничтожается системой.
СОХРАНЯЕМ И ВОССТАНАВЛИВАЕМ ПРАВИЛА
Iptables хранит все таблицы и цепочки в оперативной памяти компьютера. Но авторы не были идиотами и сделали возможность сохранения настроек и их последующего восстановления. Для этого в природе существуют утилиты iptables-save и iptables-restore. Их использовать ну очень просто.
Для сохранения:
iptables-save > filename
(надо указать имя файла с сохраненными цепочками).
Для восстановления:
iptables-restore < filename
(надо указать имя файла с сохраненными цепочками).
Iptables-save cохранит все твои цепочки в специальном файле. А iptables-restore их потом так же хорошо восстановит.
Если ты намерен пользоваться iptables постоянно, лучше всего один раз написать и отладить набор нужных тебе правил. Затем дать сохранить при помощи iptables-save. Для восстановления же при включении компьютера нужно в конец одного из стартовых сценариев (рекомендуется /etc/rc.d/rc.local) добавить строку iptables-restore < filename, где filename - имя файла с правилами, сохраненными при помощи iptables-save.
ПОЛЕЗНЫЕ ПРИМЕРЫ
Как настроить пакетный фильтр для фильтрации по содержимому пакетов?
Следующие правила блокируют прохождение пакетов, данные в которых содержат подстроку virus.exe и ведут лог пакетов со строкой secret внутри:
#!/bin/sh
iptables -A INPUT -m string --string "secret" -j LOG --log-level info \ --log-prefix "SECRET"
iptables -I INPUT -j DROP -p tcp -s 0.0.0.0/0 -m string --string "virus.exe"
# Block Code Red
iptables -I INPUT -j DROP -p tcp -m string --string "cmd.exe"
# Block Nimda
iptables -I INPUT -j DROP -p tcp -m string --string "root.exe"
iptables -I INPUT -j DROP -p tcp -m string --string "default.ida"
Другая ситуация: машина подключена к Инету напрямую, нужно сделать так, чтобы доступ с нее был только на ftp, а все остальные in и out пакеты блокировались.
iptables -F OUTPUT
iptables -P OUTPUT DROP
iptables -A OUTPUT -p tcp --dport 20 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 21 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT # это если не хочешь по ip лазать
iptables -F INPUT
iptables -P INPUT DROP
iptables -A INPUT -p tcp -m state --state ESTABLISHED, RELATED -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT # опять же для dns
ЧТО ЧИТАЕМ?
Читать тебе, перчик ты недозрелый, придется много, часто и густо. Ха! Не делай такое кислое лицо - это тебе не идет. Ты думаешь, что крутые перцы, о которых идет такая громкая слава, родились с такими мозгами? Ни хрена подобного! Они просиживают ночами, пытаясь вникнуть в документацию. Бери с них пример. И твои нервы станут мягкими и шелковистыми.
Назад на стр. 024-062-4 Содержание Вперед на стр. 024-062-6
Хакер №024. Спецвыпуск

ПОСТРОЙ СЕБЕ САМ: БЫСТРЫЙ СПОСОБ ПОЗНАКОМИТЬСЯ С IPTABLES
ViTLS (vitls@beshtau.ru)
Спецвыпуск Xakep, номер #024, стр. 024-062-6
Вот тебе список документов и статей для интенсивной самоподготовки:
1. Kernel-HOWTO
2. Linux 2.4 Packet-filtering-HOWTO
(http://www.linux.org.ru:8100/books/HOWTO/index.html)
3. Iptables-HOWTO
(http://www.linuxguruz.org/iptables/howto/iptables-HOWTO.html)
4. Firewall-HOWTO
(http://linuxdocs.org/HOWTOs/Firewall-HOWTO.html)
5. NAT-HOWTO
(http://imc.edu.trekhgorny.ru/~merlin/iptables/NAT-HOWTO.linuxdoc.html)
6.Netfilter-hacking-HOWTO
(http://www.netfilter.org/documentation/HOWTO/netfilter-hacking-HOWTO.html)
7. Iptables-tutorial
(http://gazette.linux.ru.net/rus/articles/iptables-tutorial.html)
Вот и все. Желаю успехов на тяжком пути хакера.
Назад на стр. 024-062-5 Содержание
Хакер №024. Спецвыпуск

ПУТЕВОДИТЕЛЬ
Спецвыпуск Xakep, номер #024, стр. 024-066-1
Плохие Туннели / Хорошие туннели
Матушка Лень (MLEN@mail.ru) MatushkaLEN'[LoveTech]
Как ты уже понял из этого номера, туннелирование - один из основных способов обхода файрволов и других мелких препятствий, которые пытаются изобразить бородатые админы. Бедненькие, они ведь не знают, с кем воюют!
А все дело в том, что туннелирование - один из главных сетевых принципов современности, ведь без него интернет просто не существовал бы!
ТУННЕЛИ НА КАЖДЫЙ ДЕНЬ
Чтобы ты не думал, что туннели это что-то необычное или исключительное, задумайся о том, как ты подключен к Интернет. Допустим, ты сидишь на модеме. В этом случае два модема (твой и провайдерский) образуют цифровой туннель в телефонной сети (или цифровой канал). Через этот канал твой компьютер может общаться с сетью провайдера. Получается так, что COM-порт твоего компьютера думает, что он связан напрямую c COM-портом компьютера твоего провайдера. И действительно, если два компа подключить COM-портами через специальный кабель, то они смогут установить между собой соединение. Важно понять, что двум компам все равно, есть ли между ними модемы или нет. То есть модемы для них невидимы (прозрачны). Поэтому такое соединение называется прозрачным.
Идем дальше! Допустим твой компьютер установил TCP/IP сессию с почтовым сервером в интернете. И теперь твоя почтовая программа связывается с почтовым сервером по протоколу SMTP. При этом электронному письму все равно, через какие модемы оно пройдет, какие шлюзы и сети в интернете оно преодолеет, потому что оно движется по SMTP-туннелю через глобальную сеть интернет. Этот туннель прозрачен, то есть за ним не видно внутреннего устройства сети.
Ты должен уяснить, что любое сетевое соединение сегодня не обходится без туннелирования. Обязательно туннель одного протокола прокладывается через другой протокол. Чтобы ты лучше это понял, я приведу тебе примеры не только хакерских туннелей, но и других туннелей из сетевой жизни.
ГОЛОСОВОЙ ТУННЕЛЬ
Знаешь ли ты, что такое IP-телефония? Да-да-да, это тоже туннель. И в некотором роде он тоже используется компаниями для обхода файрволов. В этом случае с файрволом можно сравнить межгородскую и международную АТС. Если ты хочешь поговорить с Америкой через АТС, то тебе прейдет огроменный счет за телефонные услуги. Как же обойти этот файрвол? Вспоминаем, что сеть Интернет не заставляет пользователя платить за соединение в зависимости от географии. Ты платишь только за трафик, а с какой точкой мира ты установил соединение не важно. Значит осталось проложить голосовой-телефонный туннель через почти халявную (по сравнению с телефонной) сеть интернет и можно будет говорить очень дешево.
Только чтобы проложить этот туннель, у тебя должны быть два устройства, одно будет преобразовывать твой телефонный вызов в интернет-трафик - это устройство должно стоять в твоем городе у оператора IP-телефонии. Другое устройство будет преобразовывать интернет-трафик в телефонный вызов. Оно должно находиться в городе, где живет твой абонент. То есть оно позвонит по местному телефону твоему другу. И твоя и чужая АТС примет такой вызов за местный, и тарифицирует его по местным тарифам.
Содержание Вперед на стр. 024-066-2
Хакер №024. Спецвыпуск

ПУТЕВОДИТЕЛЬ
Спецвыпуск Xakep, номер #024, стр. 024-066-2
Технологию IP-телефонии называют Voice over IP, или сокращенно VoIP, то есть Голос через Интернет Протокол. Запомни это магическое слово OVER, ты еще не раз встретишься с ним!
ФАЙРВОЛЫ И ТУННЕЛИ
Как ты уже догадался, файрвол пользуется примерно той же идеологией, что и АТС. Он проверяет входящие и исходящие вызовы и в зависимости от их особенностей решает разрешать или не разрешать. А если разрешать, то сколько денег брать с пользователя за соединение.
Но если файрвол стоит, то есть услуги, которые разрешены. То есть если бы нужно было запретить все на свете, то бородатый администратор просто бы вынул шнур из сети. А поскольку он поставил файрвол, значит что-то через него обязательно должно проходить. Что-то единственное и исключительное, что администратор разрешил, остальное проходить не должно.
Так вот, туннелирование позволяет использовать ЛЮБЫЕ известные услуги через единственную включенную услугу. Все услуги которые мы хотим использовать, и которые нам запрещает файрвол, мы можем свернуть в туннель и пустить поверх (over) единственной разрешенной.
SMTP ТУННЕЛИ
Реальная проблема многих хакеров в том, что во многих местах разрешен только почтовый протокол. То есть можно пользоваться только почтовым трафиком, все остальные виды трафика обрезает файрвол.
Допустим, ты сидишь на работе, и у тебя работает только почта. И правильно, нечего работником в рабочее время серфить Инет! Но ведь по инету полазить хочется! Допустим у тебя есть приятель, у которого на работе есть много халявного инета. И ты пишешь ему письма с просьбами прислать тебе ту или иную страничку. Приятель не жмот, на работе ему все равно скучно, и он может выслать тебе по мылу хоть пол-Интернета, только попроси. Вот и получился простейший туннель HTTP over SMTP. Ведь по почте ты получаешь HTML документы.
А теперь представь себе более серьезную и денежную проблему: хакер сидит на выделенке. Злобный буржуй-провайдер считает HTTP трафик на своем файрволе и нажитые нечестным трудом хакерские денежки капают за каждый мегабайт прошедшей через файрвол информации. Понятно, что в этом случае просить друга присылать странички по почте - вариант тормозной. Вся прелесть выделенной линии пропадает. Поэтому хакер создает в интернете робота, который в ответ на запросы по почте закачивает нужные страницы из интернета и отправляет их по почте. При этом хакеру не нужно платить за web-трафик, smtp-трафик некоторые глупые провайдеры не считают, и денег за него не дерут.
А теперь другая ситуация, когда хакер надыбал где-то пулы халявной почты. То есть можно звонить на телефон провайдера и совершенно бесплатно качать почту. Но ведь хакеру нужно и в аське посидеть и по страничкам полазить. Поэтому хакер пишет две почтовых программы-робота. Одну он вешает на бесплатном сервере в интернете, а другую на своем компьютере. Один робот запаковывает TCP/IP пакеты в почтовый протокол, а другой их распаковывает и отправляет в интернет. Получился туннель TCP/IP over SMTP.
Назад на стр. 024-066-1 Содержание Вперед на стр. 024-066-3
Хакер №024. Спецвыпуск

ПУТЕВОДИТЕЛЬ
Спецвыпуск Xakep, номер #024, стр. 024-066-3
DNS ТУННЕЛИ
А теперь возьмем другой вариант, когда провайдер открыл пользователям тестовый доступ только на свои странички. То есть пользователь дозванивается в интернет и может смотреть странички провайдера, а вот смотреть другие странички не дает файрвол.
И в таком случае хакер не унывает, поскольку он может использовать протокол DNS (Domain Name Service). Этот протокол используется для определения IP-адреса по имени странички. Обычно не очень грамотный провайдер этот протокол не фильтрует и можно отправить DNS-запрос любому серверу в интернете. Поэтому хакер вешает на бесплатном сервере в сети скрипт-робот, который претворяется DNS-сервером. А на самом деле в DNS запросах содержится самый обычный Интернет-трафик. Получился туннель TCP/IP over DNS.
Культовая статья о возможностях туннелирования DNS на сайте: http://list.nfr.com/pipermail/firewall-wizards/2000-September/009091.html
Инструменты для DNS tunneling: http://nstx.dereference.de/
На русском: http://tj.ru/cgi-bin/engine.cgi?tj2;8450315;1;
HTTP ТУННЕЛИ
Раз уж мы заговорили о бедных жертвах фашистов-администраторов, которые не могут сидеть сидеть на работе в интернете, нужно вспомнить другую крайность. Часто администраторы разрешают доступ к web-страничкам, если он нужен по работе, но запрещают ICQ, IRC, и наконец мыло.
В таком случае самые обычные сотрудники (не хакеры) пользуются WEB-гейтами. Сейчас можно получить доступ к Ирке, Аське и конечно к мылу через WEB-интерфейс. В таком случае получается ICQ/IRC/e-mail over HTTP. И это опять туннель.
А теперь допустим, что хакеру понадобилось проникнуть через файрволл с разрешенным протоколом HTTP. Понятно, что через HTTP хакер может проложить любой тоннель.
О HTTP туннелировании можно узнать подробнее и качнуть необходимый софт здесь: http://www.htthost.com/ (или просто перевернуть страницу :)).
ICMP ТУННЕЛИ
Принцип туннелирования прост, ведь каждый протокол несет в своем теле какую-то полезную информацию. То есть у всех протоколов в том или ином виде должно быть информационное поле, в которое этот полезный груз записывается. Такие поля можно найти даже в протоколе ICMP (Internet Control Message Protocol). Если ты помнишь, эхо запросы и эхо ответы могут содержать специальные тестовые пакеты, для тестирования качества соединения. Так вот вместо этих пакетов хакеры научились подставлять пакеты TCP/IP. Обычно если файрвол позволяет пинговать компьютеры расположенные за ним, то он позволит проложить ICMP-туннель. Обычно этот метод хакеры используют для обхода файрволов при взломе серьезных серверов.
ICMP туннели и софт для них на сайте: http://www.phrack.com/show.php?p=51&a=6
О возможностях использования ICMP-прохода: http://www.iss.net/security_center/static/1452.php
ACK ТУННЕЛИ
А что же делать хакеру, если попался начитанный администратор, который сумел закрыть на файрволе возможности тунелирования SMTP, HTTP, DNS, ICMP? Для этого он разработал очень сложные правила фильтрования пакетов, и теперь файрвол пропускает пакеты в зависимости от кучи параметров, а также файрвол не дает установить соединение по определенным адресам.
Назад на стр. 024-066-2 Содержание Вперед на стр. 024-066-4
Хакер №024. Спецвыпуск

ПУТЕВОДИТЕЛЬ
Спецвыпуск Xakep, номер #024, стр. 024-066-4
Так вот, многие файрволы фильтруют в основном SYN пакеты. Дело в том, что для установления TCP/IP соединения станции должны пройти через процесс тройного рукопожатия и обменяться SYN пакетами. SYN - от слова synchronization, то есть две станции пытаются синхронизоваться (договориться о передачи данных друг другу). После того, как соединение установлено, пакетам присваивается статус ACK - от слова acknowledge. То есть после процесса синхронизации TCP/IP - соединение считается известным (acknowledge). Так думает файрвол, пропуская ACK TCP пакеты. Ведь если мы все проверили на стадии соединения (SYN), то логично предположить, что после того как соединение установлено, пакеты (ACK) идут правильные. Если файрвол начнет проверять ВСЕ пакеты идущие через него, то он надорвется. То есть нужен очень мощный компьютер, который бы проверял бы все пакеты.
Все, что остается хакеру, это научить своих злобных программных роботов устанавливать TCP/IP соединение без использования пакетов SYN, а пользуясь только ACK. Вот и получается, что такие пакеты свободно проходят через большинство файрволов.
На этом сайте можно прочитать более подробно о таких туннелях и качнуть пример трояна с этой технологией http://ntsecurity.nu/papers/acktunneling/
На русском (перевод): http://hack.com.ua/article.php?story=20020131004352991&mode=print
КАК ФАЙРВОЛЫ СПАСАЮТ ОТ ТРОЯНОВ
Многие умники ставят себе домашние файрволы и считают себя полностью защищенными от Троянских коней. А теперь давай вместе посмеемся над ними, представив представив себе Троянца с механизмом туннелирования. Собственно представлять его не надо, посколько таких написано в изобилии.
TCP/IP over X.25
И смех и грех. Некоторые считают, что поставить файрвол недостаточно. Необходимо сделать сами сети защищенными, по защищенному стандарту. Отчасти поэтому банковские сети построены по более надежной технологии X.25, не совместимой с TCP/IP.
Но и тут спасает туннелирование. Используя технологию TCP/IP over X.25 многие хакеры сидят на халяву в интернете через банковские сети. Для этого они звонят на модемные пулы сети X.25 предназначенные для банкоматов, и удаленных банковских отделений. Такие пулы есть практически во всем мире. Используя простенький софт можно иметь конечно тормозной, но надежный доступ в интернет. Не удивительно, что часто банкоматы не могут дозвониться на свои пулы X.25, ведь хакеры сидят в инете именно через них.
Подробнее о переоборудовании банковских сетей под халявный хакерский инет можно узнать на сайте http://ahtuxpuct.fromru.com/free/free.htm.
ПИРСИНГ ФАЙРВОЛА
Пользователи, которые имеют логин на сервере с файрволом могут проложить туннель через терминалы. Для этого необходим простой софт, который позволит копировать TCP/IP трафик в терминал. Необходимо два терминала, один открытый в сеть интернет, другой в сеть пользователя. Копирование данных между этими терминалами легко осуществимо.
Назад на стр. 024-066-3 Содержание Вперед на стр. 024-066-5
Хакер №024. Спецвыпуск

ПУТЕВОДИТЕЛЬ
Спецвыпуск Xakep, номер #024, стр. 024-066-5
Чтобы открыть терминал извне понадобиться программа-робот на бесплатном сервере, которая удаленно откроет терминал и будет преобразовывать текстовую информацию снова в TCP/IP трафик.
Инструменты для пирсинга файрвла http://fare.tunes.org/files/fwprc/
Пирсинг файрвола на русском (перевод): http://www.linuxdoc.ru/HOWTO/mini/html/Firewall-Piercing.html
ЗАКЛЮЧЕНИЕ
Туннелирование - настолько разнообразная технология, что с помощью нее можно обойти любой, даже самый зверский, мощный, и интеллектуальный файрвол. Просто запомни магическое словечко over, потом задумайся над тем какие протоколы на файрволе разрешены. Достаточно набрать в строке поисковой машины "IP over DNS" или "IP over [разрешенный на файрволе протокол]", и хакер получит сотню ссылок на легкие способы обхода файрволов!
Назад на стр. 024-066-4 Содержание
Хакер №024. Спецвыпуск

ПРИКЛАДНОЕ ТУННЕЛИРОВАНИЕ
httpTunnel для win32
Спецвыпуск Xakep, номер #024, стр. 024-070-1
Андрей "Дронич" Михайлюк (dronich@real.xakep.ru)
Ну что, комарад, прочел изыскания нашей любимой Матушки Лени на тему туннелирования? Слюнки, поди, потекли? Конечно, имея два компа с никсами по обе стороны файрволла, можно обойти его в два счета. Даже средств дополнительных не понадобится, усе уже включено :). Только вот хрена лысого ты такой расклад получишь в реальном лайфе...
Гораздо чаще встречается более банальная ситуевина: на работе корпоративная сетка под винтукеем, где админ-извращенец запретил все, кроме НТТР, а дома (или не совсем дома) - шельчик на богом забытом сервачке где-то на Гавайях. А хочется-то и аськи, и ирки, и МР3шками в Казее (или еще каком гнутеллоподобном клиенте) покидаться. Вот для решения таких банальных проблем хороший человек накатал забавную прожку - httpTunnel. Умеет она только одно - аккуратно паковать и форвардить чужой трафик, а самое главное... Самое главное в том, что версий этой проги имеется целая куча, под все никсы и винды. Что ноздрями-то зашевелил? Учуял чего? Точно, это же очень неплохой способ решения нашей застарелой проблемы :).
КОГО ИМЕЕМ
Наше патентованное средство для натягивания админа состоит, как водится, из двух независимых частей. Первая работает клиентом и ставится на той тачке, с которой нужен доступ во внешнюю сеть по запрещенному протоколу (проще говоря, на участке сети, защищенном брэндмауэром). Вторая же должна жить снаружи файрволла на шелле или твоем домашнем компе (если он, конечно, перманентно подрублен к нету). Фишка в том, что тебе абсолютно неважно, под какие платформы реализованы отдельные части - клиент под винтукеем вполне ладит с сервером под BSD. Так что проблем с реализацией туннеля в жизни быть не должно.
Давай рассмотрим самый простой вариант - нужно упаковать в протокол НТТР трафик твоего Мирка. То есть нужна связь с сервером irc.haxorz.com, порт 7000, организовать которую путем подпаивания админа не удалось :). Для этого придется конфигурить обе части httpTunnel.
ТЕОРИЯ
Прежде чем браться за консоль, давай прикинем, что именно и как именно мы хотим замутить. Посмотри на рисунок, он наглядно отображает нашу текущую ситуацию. Файрволл сконфигурен так, чтобы пропускать только НТТР-трафик, идущий на восьмидесятый порт. Как ты видишь, гадкий ИЕ без проблем соединяется с веб-сервером и даже качает с него какую-то Клю. А вот запрос от Мирка был нахально отклонен :(, так как его целевой порт 7000.
А теперь в нашей игре участвуют два компонента httpTunnel (на картинке они изображены синими кружочками). Запросы Мирка идут не на irc.haxorz.com, а на клиентскую часть httpTunnel, которая перепаковывает их и засылает на shell.server.com. А там их уже дожидается наш сервер, перенаправляющий весь трафик от клиента на irc.haxorz.com. Вроде все просто, посмотрим, как связать сервер с клиентом и заставить их работать на благо хитрого юзера (т.е. тебя).
СЕРВЕР
На шелле мы запускаем серверную часть в виде демона, заставляя ее ждать коннекта на восьмидесятом порту и форвардить весь поступивший трафик (а также не забывать принимать ответный) на наш ирковый сервак. Выглядит это вот так:
Содержание Вперед на стр. 024-070-2
Хакер №024. Спецвыпуск

ПРИКЛАДНОЕ ТУННЕЛИРОВАНИЕ
httpTunnel для win32
Спецвыпуск Xakep, номер #024, стр. 024-070-2
hts -F irc.haxorz.com:7000 80
Начнем разборку нестандартно - с конца :). Последним параметром всегда идет номер порта, используемого для соединения клиента и сервера. Так как мы маскируемся под НТТР, пусть порт будет 80 - стандартный для этого протокола. В параметре -F указываются сервер и порт для редиректа, это, думаю, понятно без разъяснений. Другие возможные варианты перенаправления: "-d название_устройства", когда трафик кидается на другой сетевой интерфейс, или "-s" - когда для перенаправления используются стандартные stdin-stdout (правда, для этого сервер нужно будет запускать не демоном, а обычным процессом).
КЛИЕНТ
Теперь займемся клиентом. Если ты еще помнишь, он должен обволакивать мирковый траф и отправлять его серверу. Для этого на своем компе тебе придется запустить такой процесс:
htc -F 6666 shell.server.com:80
Здесь все с точностью до наоборот: в параметре "-F" указывается порт, трафик с которого пойдет к серверу, а последний параметр отвечает за адрес и порт этого злосчастного сервака. Разумеется, замена на "-d" и "-s" тоже остается в силе.
Другое дело, если корпоративный файрволл не просто просматривает трафик, а заодно отрабатывает программу проксика. В этом случае количество промежуточных соединений возрастает (прога -> клиент httpTunnel -> прокси -> сервер httpTunnel -> ирковый сервер). Для того чтобы наш туннель без проблем пролезал через прокси, командную строку клиента нужно проапгрейдить до следующего вида:
htc -P proxy.company.ru:80 -F 6666 shell.server.com:80
И все! Админы натянуты, траф ползет без препятствий.
ФИЧИ
Для любителей поизвращаться у ttpTunnel есть туча параметров, которые стоит выставить при неидеальных условиях для туннелинга. Краткий их обзор:
для клиента:
-A USER:PASSWORD
пользователь и пароль для не анонимных проксиков (при условии, что прокси уже указан в -Р);
-z FILE
та же фигня, только для авторизации используется файл;
-B BYTES
размер буфера прокси в байтах (понимает цифры типа 56К и 1М);
-c BYTES
выставляет content-length для запросов;
-M SECONDS
максимальное время соединения;
-T SECONDS
выставляет тайм-аут для соединения;
-U STRING
задает строку user-agent (если админ решит пропускать только ИЕ);
для обоих:
-k SECONDS
посылает keepalive-запросы раз в SECONDS (по дефолту 5);
-s
прописывать content-length во все пакеты;
-w
не уходить в бэкграунд после запуска.
ФИНИТА
Туннель помогает пройти сквозь корпоративный, но не сквозь персональный файрволл. Однако при тестировании выяснилось, что персональники видят соединения клиента, но не предпринимают никаких действий к их завершению (игнорируют, проще говоря). Так что у сказочки может быть не просто счастливый, а гиперсчастливый КОНЕЦ!
Назад на стр. 024-070-1 Содержание
Хакер №024. Спецвыпуск
ПРИКЛАДНОЕ ТУННЕЛИРОВАНИЕПРИКЛАДНОЕ ТУННЕЛИРОВАНИЕ
Биржа
Бытует мнение о том, что самые большие деньги обретаются на биржах. Спорить не буду, их там есть. Другое дело не всем они достаются. Здесь собраны сведения не только о валютном рынке, но и о биржах вообще. Связано это с тем, что методика и методология работы на них очень похожи. Конечно, есть нюансы связанные с особенностями конкретного рынка, но основные подходы можно назвать общими.Биржевая азбука
Аксиомы спекулянта
Биржевая аналитика
Биржевой беттинг
Биржевые брокеры
Биржевые букмекеры
Биржевой дилинг
Закон о биржах
Биржевые заявки
Знакомство с биржей
Игра на бирже
Срочный рынок и биржа
Ставки на биржи
Биржевые термины
Биржевая торговля
Биржевые индексы
Иностранные биржи
Биржевые инструменты
Биржевая информация
История биржи
Лекции о бирже
Биржевые манипуляции
Методика торгов на бирже
Мониторинг биржи
Виды биржевых сделок
Игра на повышение на бирже
Биржевой торговый автомат
Биржевой тренажер
Биржевые университеты
Условия торговли на бирже
Биржевая ставка на снижения
Мотивы поведения на бирже
Биржевой надзор
Обучение торговле на бирже
Биржевые площадки
Биржевые прогнозы
Биржи в Россия
Биржевые сделки
Биржевые системы торговли
Биржевые словари
Биржевые спекуляция
Характеристики торгов га бирже
Критерий Келли на бирже
Спор о цене на бирже
Субъекты рынка - биржа
Работа с информацией: Безопасность - Защита - Софт - Криптография
- Информационная безопасность
- Аспекты информационной безопасности
- Системы информационной безопасности
- Софт и информационная безопасность
- IInternet Information Services
- Защита и безопасность
- Защита с Firewall
- Атаки и информационная безопасность
- Информационная безопасность в интернет
- Борьба с вирусами
- Антивирусы против вирусов
- Хакеры и информационная безопасность
- Криптография