Атаки и взлом IRC-сетей KZer-Za Xakep, номер #067, стр. 067-046-3 Впишись в историю Что можно сделать, получив шелл с правами юзера, под которым крутится ircd? Предел мечтаний: ламерюга-сисадмин запустил процесс ircd с привилегиями пользователя root. Что это такое, думаю объяснять не стоит :). Но мечты есть мечты. Обычно ircd запускается с ограниченными правами пользователя irc: ircd, либо еще какого-нибудь, nobody, к примеру. Традиционной бывает ситуация, когда с соизволения системного администратора ircd размещается в домашней директории пользователя, в которой кроме файлов, необходимых для работы ircd, лежат всевозможнейшие ftp, веб-странички и прочее. Основательно покопавшись в домашнем "чемодане" пользовательского аккаунта, можно отыскать массу полезного и бесполезного для себя, но цель нашей атаки не в этом. Получив доступ к процессу с привилегиями ircd, прежде всего, детально исследуем конфигурационные файлы ircd. В большинстве случаев это обычные текстовые файлы, в которых содержатся суперполезные данные - в частности, секции, описывающие правила аутентификации и задающие информацию об иркопах и пароли для линковки к другим серверам. Вот пример блока аутентификации hybrid-подобных ircd: Секция аутентификации ircd auth { user = "xyz@*.my.domain.tld"; /* твой спуф */ spoof = "hidden.org"; /* чтобы иркопы не видели бесчинств */ spoof_notice = no; /* а это позволит избежать неприятностей с kill, gline и прочим */ exceed_limit = yes; kline_exempt = yes; gline_exempt = yes; no_tilde = yes; class = "opers"; password = "mypzzwd12332894"; }; Почему бы не скрыть свой собственный IP, используя замечательное средство spoof ircd hybrid, а заодно получить исключения из лимитов и класс иркопа? Свой блок auth следует размещать перед блоками auth IRC-операторов, поскольку ircd при парсинге конфигов использует правило "от частного к общему". Теперь, после того, как ты присоединишься к серверу от хоста my.domain.tld и посмотришь, во что ты превратился, ты увидишь следующее: /whois nick -!- Me [xyz@hidden.org] -!- ircname : Some irc name -!- server : irc.domain.tld [Mega IRC Server] -!- End of WHOIS Если для атаки был выбран IRC-сервер, на котором иркопы появляются раз в полгода, тебе обеспечен чуть ли не пожизненный спуф и очень приятные лимиты, поскольку класс соединения opers имеет довольно внушительные цифры sendq (ограничение на объем передаваемой информации). Чтобы все, кто будет заходить с твоего my.domain.tld (к примеру, dialup00xx.isp.provider.com), не получали элитный спуф "hidden.org", доступ к блоку auth ограничен паролем. Теперь, имея почти неограниченный доступ к процессу ircd и его конфигурационным файлам, можно сделать себя IRC-оператором. Горе тому иркопу, который собрал свой ircd, не криптуя паролей! Его megapazzw3rdz хранится как обычный текст, и ты можешь запросто узнать этот пароль! Но такая халява встречается крайне редко, обычно опция криптования включена по умолчанию при сборке ircd. И как правило, приходится иметь дело с паролями, зашифрованными одним из популярных алгоритмов (Unix crypt, MD5 и т.д.). О расшифровке MD5 мы уже не раз писали, кроме того, я бы советовал тебе прочесть статью Форба "Расшифруем зашифрованное". Чтобы тебе было проще вытащить из конфигов информацию об иркопах, я приведу пример соответствующего блока: |