Архив статей

Все статьи из текущего раздела

RTK: Русская ОСь для Хакеров

Рассказ об OS RTK: Russian Trinux Kit. Floppy Edition


Наверное, ничто не развивается так быстро, как компьютерная индустрия, и хакерское искусство здесь не является исключением. Общий объем ПО постоянно растет, бывает, приходится держать на винте более 100 различных программ (хотя это зависит от широты твоих "интересов"). Угнаться за постоянно появляющимися версиями и новым программным обеспечением очень трудно... Проблему еще усугубляют системные сбои - вещи хоть и не очень распространенные, но сильно неприятные! Обычному юзеру достаточно поставить какой-нибудь Win9x, установить DivX ;-) кодеки и DirectX 8.0 :-). Но что же делать нам? Придется не только инсталлить систему, усиленно ее настраивать, но и устанавливать довольно много софта...

Обратная сторона

Возьмем другой пример: допустим, ты попал в неизвестную квартиру с каким-то компом, и владелец попросил сделать что-нибудь этакое. Но вот стоит у него WinMe и несколько стандартных программ вроде WinRar, Far, XnView и т.п. Что делать? Можно, конечно, слепить свою болванку со всем нужным софтом, сесть и усиленно устанавливать... Но у тебя могут возникнуть проблемы с совместимостью (например, прога идет только в w2k, а в линуксе есть разные дистрибутивы со своими пакетами и наборами библиотек, к тому же не надо забывать о туче лог-файлов, которые остаются после тебя...). И это проблема. Ты можешь просто свалить, сказав что-то типа: "Да не, надо на моем компе, чего я тут сделаю!". Некоторые могут предложить таскать с собой жесткий диск. И вот опять неудача! Несовместимость оборудования так сказать. Например, живет на винте slackware, сам он на новой машине запускаться не будет (во всяком случае, частично), то есть модель монитора изменится - X-Window в дауне. Придется химичить с xf86config (+видеокарта), ну и т.д. В дальнейших комментариях, надеюсь, это не нуждается. Примеров таких "сбоев" можно привести сотню...


Выход?!

Есть ли решение этой проблемы? Отвечу честно - нет! Люди пока еще не придумали

способ оградить пользователей от сбоев и создать гибкую систему слежения за нужным тебе софтом. Я отброшу стандартные советы, типа, делайте резервные копии, подпишитесь на всякие рассылки и т.д. Это не выход! Возможно, ты скажешь: "Да зачем мне следить за обновлениями всех программ! Есть у меня десяток самых нужных, и это меня вполне устраивает!". Дай угадаю, это, скорее всего: nmap, john, netcat, XSpider? Приведу тебе один пример: есть сервер Y, у него открыт порт 25 (smtp-сервер в большинстве случаев), и он выдает левый баннер. Есть идеи, как определить реальную версию? А вот существует интересная прога под названием smtpscan, которая содержит отпечатки многих демонов/сервисов (sendmail, qmail, Microsoft Exchange, Lotus Domino etc). К чему это я? А к тому, что всегда найдется много интересного софта, который прошел мимо тебя! Грузимся дальше... Что же делать? Думаю, ты уже ощущаешь привязку к своему рабочему месту и полную беспомощность (это уже перегиб, не стоить принимать эти слова всерьез :) - прим. ред.)... Учитывая все вышесказанное, я разработал примерные критерии хакерской ОС:

1. Высокая мобильность и переносимость.

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

2. Стабильность работы.

Это очень важный показатель. Как можно работать с постоянно зависающей системой? Это оставляет неприятные воспоминания об ОС и ее создателях :). Операционка должна поддерживать максимальные нагрузки и сохранять самый высокий режим стабильности.

3. Нетребовательность к ресурсам.

Не у каждого есть деньги на высокоскоростные ПК. На самом деле не так уж они и нужны. Я вот лично спокойно обхожусь своими 366 целеронами. Кто-то всегда мечтает идти в ногу со временем, покупая за большие деньги всякие навороченные штуки. Это личное дело каждого.

4. Широта охвата.

Надо учитывать, что систему могут использовать совершенно разные "слои" компьютерного андеграунда (будь то хакеры, фрикеры, в общем, ты понял...). Одним нужен nmap, p0f, john, firewalk, другим cuts, kismet, третьим gpg, stego, bcrypt... Следовательно, должно быть портировано большое количество совершенно разных программ.

5. Простота настройки.

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

Что же выбирать? Немного истории...

На мой взгляд, рынок ОС не очень развит. В основном это UNIX- и Windows-мир. Хотя есть еще BeOS, Novell Netware и другие. Но они не очень распространены. За основу был выбран Linux. Эта ОСь непридирчива к характеристикам компьютера, работает на многих архитектурах и вполне стабильна. Плюс к этому, исходники открыты (на условиях GNU GPL), есть огромное количество хакерского и околохакерского софта. В теории все, конечно, хорошо, но как все это применить на практике? Для этого существует целая индустрия под названием мини-дистрибутивы. Вообще они предназначены для своих особых целей - построение программных роутеров, repair системы, проверка на вирусы и т.д. Время шло, и никому не приходило в голову создать именно хакерский дистрибутив, но в далеком 1998 году первые шаги в этом направлении сделал Мэтью Франз, создатель Trinux. Системой сразу же заинтересовались, стали появляться статьи в Сети и журналах. Все бы хорошо, но документация, поддержка, обновления... Падал общий темп развития, и интерес постепенно угас.

Я наткнулся на эту ОСь в ноябре 2001 года, а в апрельском выпуске ][ вышла статья Trinux: Хакерская ОС. Появился проект Trinux.Russian.Community (trinux.atanor.ru), который работает и по сей день, освещая особенности хакерских мини-дистрибутивов, а также развивая первую русскую операционную систему для хакеров - RTK.

OS RTK: Russian Trinux Kit

Первый релиз RTK состоялся 15 ноября. На момент написания статьи доступна версия 0.2. Что же изменилось (по сравнению с Тринуксом)? Во-первых, дефолтная поддержка русского языка и раскладки клавиатуры, а также русифицированная загрузка. Много новых функций в ядре (поддержка PCMCIA, BSD Process Accounting, ELF/MISC/a.out binaries, X.25, DHCP, Frame Relay, FDDI, Token Ring, Wireless Network, SYN Cookies...), оптимизирован linuxrc, исправлены некоторые баги, добавлено несколько необходимых команд, новая версия SysLinux. ОСь основана на Trinux (который, в свою очередь, основан на линуксе). Система содержит стандартные команды вроде: ls, cd, cp, rm, mount и т.д. Документацию по ним можно почитать в любой unixlike системе. Большая часть из них линкуется с busybox (это облегченные версии стандартных утилит). RTK нельзя установить в раздел винта. Виртуальный диск системы создается в RAM, который сбрасывается после каждой перезагрузки, так что все созданные тобой файлы/каталоги будут потеряны. Я советую монтировать раздел жесткого диска или дискету и записывать все данные туда. Пакеты и/или модули можно динамично подключать/удалять во время работы системы. А их очень много, это всякие сканеры (портов/уязвимостей/ОСей), сниферы, конструкторы пакетов, сетевые мониторы, различные утилиты (работа по их русификации постоянно идет), с модулями тоже все нормально (для дефолтного 2.4.18 их предостаточно). Кроме того, в RTK НЕТ никаких логов - syslogd и klogd выключены. Более того, как уже было сказано выше, раздел создается в RAM, который сбрасывается после каждой перезагрузки. Следовательно, никаких следов не останется (во всяком случае, на твоем компе). Понял, о чем я? Ты можешь спокойно юзать "стандартные" ОСи вроде Windows или Linux, а при необходимости загружать РТК и делать всякую работу. Скопировав необходимые данные на дискету, ты жмешь ребут и продолжаешь играть в Morrowind (или как его там?) или в XBill :-). Хорошенько вдумайся в эти слова - ты ПОЛНОСТЬЮ освобождаешься от проблемы лог-файлов.

Practика rabоты

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

# gzip -d initrd.gz

# mount -o loop initrd /mnt/initrd

Дерево каталогов, конечно, не такое богатое (сказывается наследство емкости дискет и ограниченность рама у многих компов), но чего еще надо? Бинарики/скрипты находятся в bin/, sbin/. Самое интересное - linuxrc, ищи его в корне. Далее следует "загрузка" ядра, после идет код linuxrc (представляет собой "обычный" скрипт на шелле). Его-то сообщения ты и видишь на экране (а это настройка русского языка, создание виртуального пространства, установка переменных env, информация по монтированию). При успешной загрузке ОСи ты должен увидеть:

Добро пожаловать в RTK: Russian Trinux Kit

Наберите `man` для просмотра списка доступных справок.

Для получения общих сведений о системе наберите `man основы`.

ALT-<Лево/Право> позволяет переключаться между терминалами.

переключает раскладку клавиатуры.

За более подробной информацией обращайтесь по адресу

http://trinux.atanor.ru

# - приглашение интерпретатора ash (busybox).

В основном работа не отличается от обычного линукс-дистрибутива за исключением нескольких особенностей. Во-первых, дискету лучше монтировать через fmount (во избежание бага "register status", который скоро будет пофиксен). Во-вторых, надо помнить, что ВСЕ созданные тобой данные на виртуальном диске будут уничтожены (в теории это запомнить легче, чем применить на практике :-)). В-третьих, надо привыкнуть к урезанному отчету busybox`ных утилит. Вообще, чистая система мало кому полезна (разве что для монтирования дисков под ntfs/ext2/ext3). Основной интерес представляют пакеты (а их примерно 70 на данный момент!) самого различного типа, например: arping, firewalk, fragroute, dsniff, ethereal и т.д. Список очень длинный. И никаких проблем с установкой, компилированием, использованием! Все как на ладони, смотри сам:

# pkgadd arping.tgz - добавляем пакет

# arping -i eth0 -v 169.254.178.206 - используем его

Интерфейс: eth0 IP: 169.254.178.200 MAC-адрес: 00:50:bf:69:53:14

ARPING 169.254.178.206

60 байтов от 00:c0:df:c5:e0:46 (169.254.178.206): номер=0 время=3.118 мсек

Не видишь ничего странного :-)? Вместе с ip-адресом мы получаем MAC карты. Конечно, в обычном случае ты можешь пропинговать машину и посмотреть записи таблицы ARP:

# ping 169.254.178.206

64 octets from 169.254.178.206: icmp_seq=0 ttl_8 time=2.8 ms

64 octets from 169.254.178.206: icmp_seq=1 ttl_8 time=0.8 ms

# arp -a

(169.254.178.206) at 00:C0:DF:C5:E0:46 [ether] on eth0

Но что если пинг закрыт (или вообще весь ICMP)? Ладно, пакеты - дело хорошее, но без модулей никуда! И это не только поддержка различных девайсов/оборудования, но и файловых систем, протоколов и пр. Но давай сначала установим нашу сетевую карту (на примере Ne2000 Clone ISA):

# insmod isa-pnp.o - вставляем ISA Plug`n`Play модуль

# insmod ne.o - собственно сам драйвер сетевухи

/* Если попробуешь вставить без isa-pnp, то появится множество сообщений unresolved symbol. Это все равно, что грузить звуковую карту без sound_core *\

# ifconfig eth0 up 169.254.178.210 - поднимаем интерфейс и даем ему ip-адрес

И сеть настроена. Теперь все зависит от твоего упорства. Немного о файловых системах - это важная вещь, особенно, если тебе надо монтировать какой-нибудь раздел. Вот, к примеру, QNX: # insmod qnx4.o. РТК поддерживает примерно 30 fs (adfs, hpfs, smbfs, ufs, reiserfs). Небольшое дополнение: по дефолту в ртк 0.2 есть возможность подключать партишины под NTFS.

RTK Modifай

Так или иначе, со временем появится необходимость модифицировать процесс загрузки, чтобы он проходил динамично и без лишних напрягов. Монтировать виртуальный диск слишком долго. Для этого и была создана папка RTK на загрузочной дискете (аналог tux/ тринукса, но в усовершенствованном виде). В подпапке INIT есть четыре скрипта - first, last, postnet, prenet. Название соответствует порядку их выполнения в linuxrc. Есть еще папка OPTIONS - это наследство тукса, скоро ее уже не будет, в предыдущих версиях использовалась для tmpfs. Что можно засунуть в скрипты? Во-первых, твою конфигурацию сети (то есть ip/MAC-адрес, маску, шлюз). Во-вторых, к примеру, монтирование каких-нибудь разделов с пакетами (и их установку), загрузку модулей - да все что угодно. Переходим к ядру - при его конфигурации я ориентировался на "массы", то есть встраивал лишь необходимые для стандартной работы возможности, остальная же поддержка осуществляется через модули. Но предположим, тебе нужны какие-нибудь "экстра-функции", тогда сразу переходи к поиску конфигов, отправляйся на www.trinux.org (для Тринукса) или на trinux.atanor.ru для RTK.

The End

Конечно, RTK/Trinux не способны заменить тебе полноценной системы, но если тебе нужны мобильность, хорошая переносимость и стабильность, то сам Бог велел использовать мини-дистрибутивы. Ты забудешь о нудном поиске и компиляции программ, о проблемах с портированием и несовместимостью оборудования. Это карманная операционная система для Хакеров! Вот реальный пример: ты садишься на совершенно неизвестную систему с желанием почекать сервера в Сети. Ты можешь поинтересоваться, какая стоит операционка, софт и т.д. А можешь без лишних вопросов загрузить РТК со словами: "Ты уверен, что хочешь этого?" %). Bye...

Помощь в создании и развитии RTK.

В создании и развитии "первой русской операционной системы для Хакеров" может поучаствовать любой человек с соответствующей технической подготовкой. Проекту всегда нужны программисты, переводчики, скриптеры, линуксоиды, веб-мастеры, хакеры, фрикеры, художники... любые энтузиасты! Если тебя это заинтересовало, то смело присылай свое резюме на trinux@trinux.atanor.ru.

Если есть желание помочь проекту в материальном плане (будь то обеспечение хостингом и/или доменом второго уровня или "выступление" в качестве спонсора), то пиши на stalsen@mail.ru. Кроме того, мы всегда рады сотрудничать с другими security/hacking/андеграунд-проектами!

"Манифест" RTK:

Это русская операционная система для хакеров, офицеров безопасности и сетевых администраторов. RTK содержит последние версии популярных digital security утилит. Он основан на Trinux (trinux.sourceforge.net), но этот факт не доказывает их идентичность. Система оптимизирована и дополнена, кроме того, имеет встроенную поддержку русского языка и раскладки клавиатуры. Доступны русские man-пакеты, постоянно появляются обновления как самой операционной системы, так и пакетов, скриптов... Сама ОСь умещается на одной дискете 3.5", в RAM создается виртуальный раздел, с которым и работает RTK. Есть возможность динамически подключать пакеты и/или модули, которые можно загрузить с дополнительных дискет, жесткого диска, CD-R/RW, а также через сеть.