Как заметать следы (Часть 6)
Как заметать следы (Часть 6) Интернет и вторжение в приватность пользователей.
1. CGI, переменные окружения и IP-адреса.
Спецификация Common Gateway Interface ("общий шлюзовой интерфейс") описывает взаимодействие Web-сервера с клиентами в Интернет (в самом распространенном случае, это будет браузер). В этой же спецификации определены переменные окружения, которые можно использовать и для нарушения приватности. Но здесь нет никакого злого умысла ни проектировщиков Интернет, ни веб-мастеров, это вопрос больше этический, просто таковы "правила игры". Я приведу список переменных в нотации Perl, доступных Web-серверу, с помощью которых можно собирать информацию о посетителях сайта, с их краткой расшифровкой:
1. "REMOTE_ADDR" — IP-адрес узла удаленного клиента, делающего запрос;
2. "REMOTE_HOST" — имя узла, с которого производится запрос;
3. "HTTP_USER_AGENT" — тип удаленного клиента (браузер, реже — робот-странник и т.п.), делающего запрос (строка, которая выдает описание, версию и тип операционной системы);
4. "HTTP_REFERER" — адрес документа, ссылающегося на файл инициировавший соединение, чаще всего — это адрес, откуда вы зашли на данную страницу.
Это может использоваться для построения безобидных счетчиков или ведения статистики посетителей страницы, ограничения доступа к сайту пользователей определенных доменов и до построения систем слежения за посетителями и собирания информации о них.
Интерактивное общение
IP-адрес пользователя легко добывается, используя средства общения "real-time", зная UIN (номер) ICQ (сниферром, демаскирующим IP-адрес), в IRC (командой "/whois), в InternetPhone.
E-Mail
Из заголовка полученного по электронной почте послания определяется IP-адрес отправителя (чаще всего он в последнем поле "Received"). Кроме этого, из заголовка письма определяется: тип почтового клиента, почтового сервера отправителя, время и дата посыла, часовой пояс. Другими словами, данных для идентификации отправителя достаточно. Далее не стану сгущать краски...
Хакерский анекдот:
— Какая у меня судьба будет, бабушка?
— Скажи-ка, внучка, мне свой IP...
2. Cookies
"Cookies" — (дословно в переводе с английского — "печеньица", "булочки") текстовые строки, ассоциированные с документом. Они задумывались как альтернатива полям типа "hidden" в html-формах для обмена информацией между html-документами. На использовании cookies построена, например, аутентификация пользователей e-mail аккаунта в течение определенного, заданного в настройках, времени, для того чтобы не вводить пароль при каждом посыле. Их применяют в системах баннерного обмена. Однако их же можно использовать для похищения учетных записей или для собирания информации о посетителях. Простейшее, что можно порекомендовать — после завершения работы с почтой с Web-интерфейсом не просто закрывать окно браузера, а нажимать "logout" (выход из сеанса), который корректно сбросит (удалит) "Cookies". Есть также много программ, фильтрующих "печеньица" по заданным критериям.
3. ActiveX
Технология ActiveX, наряду с языком сценариев Visual Basic Script — это ответ Microsoft на возрастающую популярность браузера Netscape Navigator: с Java, технологиями plugin-ов (расширителей функций), языком активных сценариев JavaScript, делающий веб-страницы, созданные специально для Internet Explorer, несовместимыми с браузером Navigator. Хотя сам термин и технология — это не более чем коммерческий трюк. Однако, ActiveX, работающий с Win-API и машинными командами, гораздо опаснее, чем, к примеру, та же Java. Теоретически ActiveX способен на все "прелести" известные по вирусам и "троянцам", от перехватывания ввода с клавиатуры для слежения за действиями пользователя или похищения паролей до разрушения данных на диске, запроса уникального идентификатора процессора по команде "CPUID". Список можно продолжать, но жаль места и времени...
Для успокоения мировой общественности и пользователей Internet Explorer Microsoft выдвинул сертификацию ActiveX и цифровые подписи, доверенные зоны Интернет. Но это перекладывание ответственности на сторонние фирмы и создание очередных коммерческих альянсов для продвижения своих программных продуктов.
4. Опасная "безопасная" Java
В целом технология Java от Sun и Netscape куда более безопасна по сравнению с ActiveX, за что и заслужила мировое признание разработчиков. Но есть несколько "но":
1. С помощью Java-апплета, встроенного в html-страницу, можно перехватывать клавиатурный ввод пользователя и пересылать его дальше.
2. Java-апплет позволяет производить захват вычислительных или сетевых ресурсов. Первое можно использовать для построения распределенных вычислительных систем, обрабатывающих задачи без ведома пользователей, создавая де-факто негласную мощную сеть. Второе — использовать для построения распределенных сетевых атак или перебора паролей методом "грубой силы".
3. Апплет может запросто "повесить" клиента. Некоторые хакерские наработки используют ошибки, допущенные при проектировании языка Java. Этим ошибкам подвержены реализации Java на разных операционных системах (не только для Windows, но и для OS/2, Unix).
4. Доверяя Java-технологиям, мы фактически передоверяем безопасность компьютерной системы разработчику виртуальных Java-машин, закрывая глаза на возможные ошибки в конкретной реализации. Найдены бреши в безопасности Java как в Netscape Navigator (версии 4.x), так и у Microsoft VM (идущими с поставкой Internet Explorer версии выше четвертой включительно).
3. Нахождение и манипулирование журналами регистрации
Важно, если вы найдете все, даже скрытые, журналы протоколирования активности. Для нахождения любых журналов существует два легких способа:
1) Найти все открытые файлы.
Так как все журналы должны куда-то производить запись, достаньте "сообразительную" программку "LSOF" — LiSt Open Files, для того чтобы их увидеть... Проверьте их... и, если необходимо, поправьте.
2) Ищите все файлы, которые были изменены после вашего входа (login) в систему.
После входа в систему сделайте "touch /tmp/check", затем продолжайте работу. Позже выполните только "find / -newer /tmp/check -print" и проверьте, есть ли среди них файлы аудита. Заметьте, что не все версии "find" поддерживают опцию "-newer". Можно также выполнить "find / -ctime 0 -print" или "find / — cmin 0 -print" для нахождения файлов с журналами.
Проверьте все лог-файлы, которые вы отыскали. Обычно они находятся в "/usr/adm", "/var/adm" или "/var/log".
Если так случилось, что вы пишетесь и в "@loghost", то вы попали в беду. Вам необходимо взломать машину "loghost" и там тоже модифицировать журналы регистрации...
Для манипуляции журналами вы можете использовать команды вроде "grep -v" или производить подсчет строк с помощью "wc" и затем вырезать последние 10 строк с "head — ("номер строки" — 10)", можно проделать это же, используя редактор.
Если лог-файлы или файлы аудита не являются текстовыми файлами, но записями данных — идентифицируйте программу, которая пишет в журналы. Затем достаньте исходники с кодами. После этого найдите соответствующий заголовочный файл, в котором определена структура файла. Возьмите "zap", "clear", "cloak" или что-нибудь похожее и, используя новый заголовочный файл, перепишите программу для работы с этим специфическим типом лог-файлов (было бы очень любезно с вашей стороны опубликовать новую программу для хакерского сообщества, чтобы сэкономить другим их труд) .
Если инсталлирован учетный журнал, тогда вы можете применить "acct-cleaner" из "zhart", в текущей версии — он работает и прекрасно работает!
Небольшая хитрость, если вы должны модифицировать "WTMP", но нет возможности компилировать исходники и нет инсталлированного "perl" (работает в SCO, но не в linux): сделайте "uuencode" журнала "WTMP". Запустите "vi", переместитесь в конец файла и удалите последние 4 (!) строки, начинающиеся с "M"..., затем "save+exit", "uudecode". После этого последние 5 записей в "WTMP" удалены;).
Если в системе используются "WMTPX" и "UTMPX", то вы снова попали в беду... Мне не известна ни одна утилита очистки, которая умела с ними работать. Напишите такую программу и сделайте ее всеобщим достоянием.
Кроме всего этого, есть примитивный способ — забить журналы протоколирования активности малоинформативными записями. На этом принципе построена DoS-атака, забивающая пространство жесткого диска разросшимся журналом и тем самым лишающая сервер свободного места на диске. Это может привести к краху системы. Читатели в письмах простят меня давать почаще расшифровку терминов: "DoS" — аббревиатура от Denial of Service, в дословном переводе — "отказ в обслуживании". Так называют целый класс атак, основанных на подавлении какого-либо системного сервиса, отключении его или забивании его ресурсов, что приводит либо, в лучшем случае, к медленной работе, либо к его отключению, либо к краху системы. Среди хакеров это не приветствуется, расценивается как хулиганство и вандализм, что недостойно "мастера" и противоречит принципу хакерской этики: "Не наноси намеренно вреда никакой системе" . Однако, такие атаки допустимы против спамеров, для устрашения противника или для намеренного выведения системы из строя для последующей автоматической перезагрузки, чтобы изменения, сделанные взломщиком, вступили в силу.
Internet Information Server
Internet Information Server ("информационный Интернет сервер") от Microsoft — основное средство, обеспечивающее взаимодействие Windows-серверов с Интернет, включает следующие компоненты:
— ISM (Internet Service Manager) — программное средство администрирования;
— Служба WWW (World Wide Web) — средство публикации информации в Web;
— Служба Gopher — средство публикации текстовых файлов "библиотек", со встроенным облегченным поиском по ключевым словам;
— Служба FTP (File Transfer Protocol) — средство обмена файлами с сервером;
— Internet Explorer — браузер для просмотра Web-узлов;
— Драйверы ODBC (Open Database Connectivity) — API (драйверы и программы управления) для интегрирования баз данных с Web-страницами;
— Файлы подсказок, примеров, шаблонов для создания Web-узлов.
Далее приведена краткая таблица с размещением файлов IIS, где предполагается, что IIS был установлен на локальный жесткий диск "C" в корневую директорию и названия каталогов, даваемые при установке "по умолчанию", не изменялись.
4. Проверка конфигурации SYSLOG (системной регистрации событий)
Большинство программ используют функцию "syslog", чтобы регистрировать все, что им необходимо. Важно проверить конфигурацию, чтобы выяснить, куда "syslog" печатает специальные типы.
Файл конфигурации — это "etc/syslog.conf", и здесь я не стану описывать, какой у него формат и что означает каждая запись. Для этого читайте руководства. Для вас важными типами являются: "kern.*", "auth.*" и "authpriv.*". Посмотрите также, куда они записываются: файлы можно модифицировать. Если они переадресовываются на другие хосты, вам придется их тоже взламывать. Если сообщения пересылаются на "user", "tty" и/или на консоль, вы можете сделать небольшой трюк и сгенерировать ложное сообщение для журнала подобно "echo 17:04 12-05-85 kernel sendmail[243: can't resolve bla.bla.com > /dev/console]" или на какое-либо другое устройство, которое вы хотите забить потоком сообщений. Таким образом, сообщение, которое вам необходимо спрятать, просто пролетит по всему экрану незамеченным.
Эти файлы регистрации очень важны! Проверяйте их.
www.geocities.com/werebad/
(c) компьютерная газета
1. CGI, переменные окружения и IP-адреса.
Спецификация Common Gateway Interface ("общий шлюзовой интерфейс") описывает взаимодействие Web-сервера с клиентами в Интернет (в самом распространенном случае, это будет браузер). В этой же спецификации определены переменные окружения, которые можно использовать и для нарушения приватности. Но здесь нет никакого злого умысла ни проектировщиков Интернет, ни веб-мастеров, это вопрос больше этический, просто таковы "правила игры". Я приведу список переменных в нотации Perl, доступных Web-серверу, с помощью которых можно собирать информацию о посетителях сайта, с их краткой расшифровкой:
1. "REMOTE_ADDR" — IP-адрес узла удаленного клиента, делающего запрос;
2. "REMOTE_HOST" — имя узла, с которого производится запрос;
3. "HTTP_USER_AGENT" — тип удаленного клиента (браузер, реже — робот-странник и т.п.), делающего запрос (строка, которая выдает описание, версию и тип операционной системы);
4. "HTTP_REFERER" — адрес документа, ссылающегося на файл инициировавший соединение, чаще всего — это адрес, откуда вы зашли на данную страницу.
Это может использоваться для построения безобидных счетчиков или ведения статистики посетителей страницы, ограничения доступа к сайту пользователей определенных доменов и до построения систем слежения за посетителями и собирания информации о них.
Интерактивное общение
IP-адрес пользователя легко добывается, используя средства общения "real-time", зная UIN (номер) ICQ (сниферром, демаскирующим IP-адрес), в IRC (командой "/whois), в InternetPhone.
Из заголовка полученного по электронной почте послания определяется IP-адрес отправителя (чаще всего он в последнем поле "Received"). Кроме этого, из заголовка письма определяется: тип почтового клиента, почтового сервера отправителя, время и дата посыла, часовой пояс. Другими словами, данных для идентификации отправителя достаточно. Далее не стану сгущать краски...
Хакерский анекдот:
— Какая у меня судьба будет, бабушка?
— Скажи-ка, внучка, мне свой IP...
2. Cookies
"Cookies" — (дословно в переводе с английского — "печеньица", "булочки") текстовые строки, ассоциированные с документом. Они задумывались как альтернатива полям типа "hidden" в html-формах для обмена информацией между html-документами. На использовании cookies построена, например, аутентификация пользователей e-mail аккаунта в течение определенного, заданного в настройках, времени, для того чтобы не вводить пароль при каждом посыле. Их применяют в системах баннерного обмена. Однако их же можно использовать для похищения учетных записей или для собирания информации о посетителях. Простейшее, что можно порекомендовать — после завершения работы с почтой с Web-интерфейсом не просто закрывать окно браузера, а нажимать "logout" (выход из сеанса), который корректно сбросит (удалит) "Cookies". Есть также много программ, фильтрующих "печеньица" по заданным критериям.
3. ActiveX
Технология ActiveX, наряду с языком сценариев Visual Basic Script — это ответ Microsoft на возрастающую популярность браузера Netscape Navigator: с Java, технологиями plugin-ов (расширителей функций), языком активных сценариев JavaScript, делающий веб-страницы, созданные специально для Internet Explorer, несовместимыми с браузером Navigator. Хотя сам термин и технология — это не более чем коммерческий трюк. Однако, ActiveX, работающий с Win-API и машинными командами, гораздо опаснее, чем, к примеру, та же Java. Теоретически ActiveX способен на все "прелести" известные по вирусам и "троянцам", от перехватывания ввода с клавиатуры для слежения за действиями пользователя или похищения паролей до разрушения данных на диске, запроса уникального идентификатора процессора по команде "CPUID". Список можно продолжать, но жаль места и времени...
Для успокоения мировой общественности и пользователей Internet Explorer Microsoft выдвинул сертификацию ActiveX и цифровые подписи, доверенные зоны Интернет. Но это перекладывание ответственности на сторонние фирмы и создание очередных коммерческих альянсов для продвижения своих программных продуктов.
4. Опасная "безопасная" Java
В целом технология Java от Sun и Netscape куда более безопасна по сравнению с ActiveX, за что и заслужила мировое признание разработчиков. Но есть несколько "но":
1. С помощью Java-апплета, встроенного в html-страницу, можно перехватывать клавиатурный ввод пользователя и пересылать его дальше.
2. Java-апплет позволяет производить захват вычислительных или сетевых ресурсов. Первое можно использовать для построения распределенных вычислительных систем, обрабатывающих задачи без ведома пользователей, создавая де-факто негласную мощную сеть. Второе — использовать для построения распределенных сетевых атак или перебора паролей методом "грубой силы".
3. Апплет может запросто "повесить" клиента. Некоторые хакерские наработки используют ошибки, допущенные при проектировании языка Java. Этим ошибкам подвержены реализации Java на разных операционных системах (не только для Windows, но и для OS/2, Unix).
4. Доверяя Java-технологиям, мы фактически передоверяем безопасность компьютерной системы разработчику виртуальных Java-машин, закрывая глаза на возможные ошибки в конкретной реализации. Найдены бреши в безопасности Java как в Netscape Navigator (версии 4.x), так и у Microsoft VM (идущими с поставкой Internet Explorer версии выше четвертой включительно).
3. Нахождение и манипулирование журналами регистрации
Важно, если вы найдете все, даже скрытые, журналы протоколирования активности. Для нахождения любых журналов существует два легких способа:
1) Найти все открытые файлы.
Так как все журналы должны куда-то производить запись, достаньте "сообразительную" программку "LSOF" — LiSt Open Files, для того чтобы их увидеть... Проверьте их... и, если необходимо, поправьте.
2) Ищите все файлы, которые были изменены после вашего входа (login) в систему.
После входа в систему сделайте "touch /tmp/check", затем продолжайте работу. Позже выполните только "find / -newer /tmp/check -print" и проверьте, есть ли среди них файлы аудита. Заметьте, что не все версии "find" поддерживают опцию "-newer". Можно также выполнить "find / -ctime 0 -print" или "find / — cmin 0 -print" для нахождения файлов с журналами.
Проверьте все лог-файлы, которые вы отыскали. Обычно они находятся в "/usr/adm", "/var/adm" или "/var/log".
Если так случилось, что вы пишетесь и в "@loghost", то вы попали в беду. Вам необходимо взломать машину "loghost" и там тоже модифицировать журналы регистрации...
Для манипуляции журналами вы можете использовать команды вроде "grep -v" или производить подсчет строк с помощью "wc" и затем вырезать последние 10 строк с "head — ("номер строки" — 10)", можно проделать это же, используя редактор.
Если лог-файлы или файлы аудита не являются текстовыми файлами, но записями данных — идентифицируйте программу, которая пишет в журналы. Затем достаньте исходники с кодами. После этого найдите соответствующий заголовочный файл, в котором определена структура файла. Возьмите "zap", "clear", "cloak" или что-нибудь похожее и, используя новый заголовочный файл, перепишите программу для работы с этим специфическим типом лог-файлов (было бы очень любезно с вашей стороны опубликовать новую программу для хакерского сообщества, чтобы сэкономить другим их труд) .
Если инсталлирован учетный журнал, тогда вы можете применить "acct-cleaner" из "zhart", в текущей версии — он работает и прекрасно работает!
Небольшая хитрость, если вы должны модифицировать "WTMP", но нет возможности компилировать исходники и нет инсталлированного "perl" (работает в SCO, но не в linux): сделайте "uuencode" журнала "WTMP". Запустите "vi", переместитесь в конец файла и удалите последние 4 (!) строки, начинающиеся с "M"..., затем "save+exit", "uudecode". После этого последние 5 записей в "WTMP" удалены;).
Если в системе используются "WMTPX" и "UTMPX", то вы снова попали в беду... Мне не известна ни одна утилита очистки, которая умела с ними работать. Напишите такую программу и сделайте ее всеобщим достоянием.
Кроме всего этого, есть примитивный способ — забить журналы протоколирования активности малоинформативными записями. На этом принципе построена DoS-атака, забивающая пространство жесткого диска разросшимся журналом и тем самым лишающая сервер свободного места на диске. Это может привести к краху системы. Читатели в письмах простят меня давать почаще расшифровку терминов: "DoS" — аббревиатура от Denial of Service, в дословном переводе — "отказ в обслуживании". Так называют целый класс атак, основанных на подавлении какого-либо системного сервиса, отключении его или забивании его ресурсов, что приводит либо, в лучшем случае, к медленной работе, либо к его отключению, либо к краху системы. Среди хакеров это не приветствуется, расценивается как хулиганство и вандализм, что недостойно "мастера" и противоречит принципу хакерской этики: "Не наноси намеренно вреда никакой системе" . Однако, такие атаки допустимы против спамеров, для устрашения противника или для намеренного выведения системы из строя для последующей автоматической перезагрузки, чтобы изменения, сделанные взломщиком, вступили в силу.
Internet Information Server
Internet Information Server ("информационный Интернет сервер") от Microsoft — основное средство, обеспечивающее взаимодействие Windows-серверов с Интернет, включает следующие компоненты:
— ISM (Internet Service Manager) — программное средство администрирования;
— Служба WWW (World Wide Web) — средство публикации информации в Web;
— Служба Gopher — средство публикации текстовых файлов "библиотек", со встроенным облегченным поиском по ключевым словам;
— Служба FTP (File Transfer Protocol) — средство обмена файлами с сервером;
— Internet Explorer — браузер для просмотра Web-узлов;
— Драйверы ODBC (Open Database Connectivity) — API (драйверы и программы управления) для интегрирования баз данных с Web-страницами;
— Файлы подсказок, примеров, шаблонов для создания Web-узлов.
Далее приведена краткая таблица с размещением файлов IIS, где предполагается, что IIS был установлен на локальный жесткий диск "C" в корневую директорию и названия каталогов, даваемые при установке "по умолчанию", не изменялись.
C:\InetPub\wwwroot | <Home>- корневая директория для службы Web |
C:\InetPub\ftproot | Корневая директория для службы FTP |
C:\InetPub\gophroot | Корневая директория для службы Gopher |
C:\InetPub\scripts | /Scripts —директория с размещенными активными сценариями |
C:\InetPub\wwwroot\_vti_bin | /_vti_bin |
C:\InetPub\wwwroot\_vti_bin\_vti_adm | /_vti_bin/_vti_adm |
C:\InetPub\wwwroot\_vti_bin\_vti_aut | /_vti_bin/_vti_aut |
C:\InetPub\cgi-bin | /cgi-bin |
C:\InetPub\wwwroot\srchadm | /srchadm |
C:\WINNT\System32\inetserv\iisadmin | /iisadmin |
C:\WINNT\System32\LogFiles | Каталог размещения журналов |
C:\InetPub\wwwroot\_vti_pvt | |
C:\InetPub\wwwroot\samples | Каталог размещения шаблонов |
C:\WINNT\System32\inetserv\iisadmin\htmldocs\admin.htm | /iisadmin/isadmin |
Большинство программ используют функцию "syslog", чтобы регистрировать все, что им необходимо. Важно проверить конфигурацию, чтобы выяснить, куда "syslog" печатает специальные типы.
Файл конфигурации — это "etc/syslog.conf", и здесь я не стану описывать, какой у него формат и что означает каждая запись. Для этого читайте руководства. Для вас важными типами являются: "kern.*", "auth.*" и "authpriv.*". Посмотрите также, куда они записываются: файлы можно модифицировать. Если они переадресовываются на другие хосты, вам придется их тоже взламывать. Если сообщения пересылаются на "user", "tty" и/или на консоль, вы можете сделать небольшой трюк и сгенерировать ложное сообщение для журнала подобно "echo 17:04 12-05-85 kernel sendmail[243: can't resolve bla.bla.com > /dev/console]" или на какое-либо другое устройство, которое вы хотите забить потоком сообщений. Таким образом, сообщение, которое вам необходимо спрятать, просто пролетит по всему экрану незамеченным.
Эти файлы регистрации очень важны! Проверяйте их.
www.geocities.com/werebad/
(c) компьютерная газета
Компьютерная газета. Статья была опубликована в номере 48 за 2000 год в рубрике безопасность :: разное