ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

16.09.2010, 03:25
|
|
Участник форума
Регистрация: 04.01.2007
Сообщений: 176
Провел на форуме: 17964969
Репутация:
1362
|
|
Иногда бывает необходимо иметь для каких-то IRC нужд базы, содержащие образцы никнеймов и некоторых других данных рядовых пользователей обычных сетей. Сколь бы ни был хорош механизм автоматической генерации псевдоосмысленных имен - "живые" никнеймы лучше.
Здесь предлагается программное обеспечение, обеспечивающее минимальные возможности работы с базами пользовательских данных, а также сами базы.
Итак, база данных очень простой структуры, состоит из строк: nick|user|real name. Разделитель - символ "§".
Базы две: сети RusNet (1954 пользователя) и сети FreeNode (9110 пользователей).
ПО bdb converter позволяет преобразовывать случайно выбранные строки из баз вышеуказанного формата в произвольный, самостоятельно заданный формат (справка в программе) с произвольной совместимой мутацией данных.
Теперь вполне возможно будет использовать в данных своих ботов не "floodbot00001 это flooder@host :flood-bot", а что-то почеловечнее и менее заметное, как то "Ради0котёнок это 5n1per@host :Маx".
|
|
|

22.09.2010, 04:07
|
|
Познавший АНТИЧАТ
Регистрация: 24.04.2009
Сообщений: 1,730
Провел на форуме: 30140275
Репутация:
3256
|
|
Обзор существующих IRCd
Выше всё время говорилось про IRCd RusNet, однако это IRCd далеко не является идеальным, единственным и распространённым для установки в различных IRC-сетях/отдельных IRC-серверах.
Итак, какие же IRCd существуют в "природе"? Об этом как раз и пойдёт речь далее.
Для начала, определим, что же такое есть это IRCd?
Как гласит wikipedia,
IRCd (демон Internet Relay Chat ) — это сервер который обслуживает протокол интернет чата (IRC), позволяя людям общаться друг с другом по Интернету (что предусматривает обмен текстовыми сообщениями в реальном времени).
Сервер принимает соединения от IRC клиента с определённого порта. Когда сервер является частью IRC сети, он также поддерживает соединения с другими серверами/демонами.
Термин ircd изначально относился к одной единственной разновидности программ, но в конечном счёте стал относиться к любой реализации IRC-демона. Однако, оригинальная версия до сих пор распространяется под тем же именем.
Существует множество различных по уровню функциональности и стабильности IRCd:
InspIRCd ( http://inspircd.org/). IRC демон для систем Linux, BSD, Windows и Apple OS X, написанный с нуля чтобы обеспечить стабильный, современный и легкий доступ в IRC.
beware ircd ( http://ircd.bircd.org/). IRC сервер как для windows, так и для linux. Имеет небольшие проблемы со стабильностью. Прекрасно подходит для различных тестирований или для небольшого (по кол-ву предполагаемых юзеров) IRC-сервера. С большим количеством пользователей будут проблемы в виде, например, зависания процессора, сбоев и тд.
IRCD-Hybrid ( http://ircd-hybrid.com). Старейший и наиболее известный ircd. Именно этот демон используется на большинстве серверов сети EFnet. Hybrid отличается стабильностью работы и гибкостью настройки. Поддерживает IPV6, сжатие трафика и OpenSSL (только для серверов).
IRCD-Hybrid-RU ( http://hyb.net.ru). Адаптация IRCD-Hybrid под нужды российских пользователей. Теперь в демоне можно обнаружить поддержку русских символов в никах и названиях каналов, и SSL для клиентов, и SVS-команды для сервисов.
Bahamut ( http://bahamut.dal.net). Стандарт де-факто на серверах сети DALnet. Был основан на DreamForge и IRCD-Hybrid. Содержит немало функций для организации качественной IRC-сети, но мало развивается в отличие от других ircd, таких как UnrealIRCD или IRCD-Hybrid.
ircd-RU ( http://muhnet.org.ru/). Bahamut с добавленной в него поддержкой кириллицы и других кодировок в названиях ников и каналов. Активно используется в сети WeNet.
UnrealIRCd ( http://www.unrealircd.com/). Скорее всего самое распространённое и популярное IRCd. Возможности сервера очень велики. Тут и поддержка IPV6, и SVS для сервисов, и OpenSSL, как для серверов, так и для клиентских подключений (очень полезная для клиента вещь, особенно когда он работает из локальной сети). Unreal работает со множеством сервисов, команды его неисчислимы, но и у него есть один “незначительный” минус - плохо держатся соединения между серверами. Как следствие – частые split’ы.
UltimateIRCd ( http://www.shadow-realm.org/). IRC сервер, основанный на Bahamut IRCd и Hybrid IRCd/DreamForge и Unrealircd, включающий в себя основные возможности этих серверов. Несмотря на небольшой размер, обладает весьма широким набором опций, поддерживает IPv6, SSL, и многое другое.
Sircs ( скачать) Очень маленький, компактный IRC сервер. Прост в установке и конфигурировании. Предназначен, видимо, для очень маленьких сетей или для тестирования и отладки ботов (скриптов) на своём компьютере. В архиве прилагается help файл на русском языке.
IRCd RusNet используется в одноименной сети. Можно скачать по ссылкам из:
/showpost.php?p=1747511&postcount=20
Обзор будет дополняться.
"Литература": http://www.nixp.ru/soft/, http://irc.xshell.org/, http://ruirc.ru/, http://bestirc.ru/
|
|
|

10.12.2010, 14:35
|
|
Участник форума
Регистрация: 04.01.2007
Сообщений: 176
Провел на форуме: 17964969
Репутация:
1362
|
|
О IRC WebGate
В данной публикации мы рассмотрим IRC веб-гейты - особенности их устройства, функционирования и изменения протокола IRC для них.
Для тех, кто не знаком с веб-гейтами, поясним, что это такое. Веб-гейт (вебгейт, web gate, webirc) для IRC - связная межпротокольная система, своего рода посредник, поддерживающий с одной стороны (от IRCd) IRC протокол (с небольшой модификацией) и http с другой (от веб браузера пользователя).
WEB IRC
С пользовательской стороны веб-гейт обычно реализуется на технологиях, стандартных для веб-чатов: JavaScript или AJAX, Java, Flash. Причем эти технологии используются для формирования более удобного пользовательского интерфейса веб-гейта. Интерфейс на AJAX вследствие разной поддержки браузерами оной технологии сделать максимально совместимым сложно. Однако он легче, чем Java-интерфейс, который более совместим, но, естественно, требует поддержки технологии Java в браузере. Веб-гейты на Flash крайне малочисленны, публичное ПО для них отсутствует. Теоретически можно сделать веб-гейт на одном лишь html, с минимальным пользовательским интерфейсом типа "консоль", пример наработки.
Уязвимости обычных веб-чатов для веб-гейтов малохарактерны. Дело в том, что веб-гейт не имеет собственной системы авторизации, он не хранит и не сверяет пользовательские данные, пароли. Он лишь ретранслирует данные в IRC, приводя их к стандартнову виду согласно RFC 1459. Тем не менее иногда стоит ожидать появления активных XSS.
Стандартный веб-гейт позволяет указать пользователю как минимум nickname. Подобные ограниченные веб-гейты применяются для местных, небольших IRC-сетей и даже отдельных каналов их сообществами, например http://webirc.antichat.net/. Как максимум - веб-гейт принимает от пользователя все даные, как IRC-клиент. Можно заходить на произвольный IRC-сервер/канал и иметь любые допустимые пользовательские данные. Пример - широко известный http://www.mibbit.com/.
Со стороны пользователя веб-гейт создает проблемы задержек. Они возникают при недостаточно стабильном соединении пользователя или некорректной работе используемых технологий в веб-браузере. Со стороны сервера при грамотных настройках проблем нет. Под грамотными настройками имеется ввиду возможность приемки сервером реальных хостов подключающихся к веб-гейту пользователей. Дабы в IRC у пользователей были их собственные хосты, а не единственный хост веб-гейта.
Для обеспечения передачи хоста пользователя в протокол IRC на серверах, поддерживающих webirc внесено изменение. Суть его в добавочной команде, сразу отсылаемой IRC серверу после успешного соединения с ним. Команда выглядит так:
Код:
Code:
WEBIRC [password] cgiirc [host] [IP]
За этой командой отправляются стандартные команды USER и NICK. В команде WEBIRC host и IP - данные пользователя, которые будут указаны вместо хоста веб-гейта, а password это пароль на веб-гейт в открытом виде, прописываемый и на IRC сервере. Документация на конфигурирование под веб-гейт UnrealIRCd.
ПО для организации IRC веб-гейтов :
На JAVA: http://www.jwirc.com/
На AJAX: http://cgiirc.org/
Статья написана begin_end для ANTICHAT, 10.12.2010.
|
|
|

19.12.2010, 00:50
|
|
Участник форума
Регистрация: 04.01.2007
Сообщений: 176
Провел на форуме: 17964969
Репутация:
1362
|
|
О IRC Wayback Machine
Возможно вы заметили, а если не заметили, то сейчас узнаете о одной достаточно любопытной вещи. Конечно, эта вещь относится к IRC, к RusNet и к Античату . Это так называемая IRC Wayback Machine.
Общеизвестно существование специализированных сервисов, позволяющих "заглянуть в прошлое" Интернет, увидеть, как выглядели веб-сайты в то время. Сервисы показывают пользователю по возможности полноценную видимость веб-ресурса из сохраненной у себя информации.
Некоторое время назад мной изучался вопрос разработки IRC сервисов и приложений-симуляторов IRC. Вспомнив о днях минувших, возможно отчасти из ностальгии, одна из заготовок была переделана под такую интересную задачу: восстановление в режиме реального времени событий IRC сети из логов, например mIRC.
В общем решено - сделано. Основой для подключения клиентов и сервиса-симулятора стала старая версия RusNet IRCd. Симулятор, подключаясь к ней воссоздавал картину сети, наиболее актуальную ее часть (списки серверов, сервисов, IRC операторы). Вначале предполагалось восстановить список пользователей и каналов, но такая задача чрезмерно ресурсоемка. В итоге получился внешний аналог сети RusNet с уровнем идентичности на уровне веб-wayback. В этом аналоге существует канал #antichat, на котором происходит почти полноценное воспроизведение картины, сохраненной в логе. Некоторые моменты сделать идентичными не удалось: так не получится пообщаться с пользователями (ну естественно!, хотя можно было сделать скучных ботов), в сети установлен режим read-only; хосты пользователей не были сохранены в логе - генерируются; линия времени неадекватна, участки с молчанием или отсутствием лога пропускаются. Однако в целом, по предварительным пользовательским тестам картина сети озадачивает даже самых опытных пользователей - не сразу видна искусственность происходящего.
Проект в собранном виде, с образцами логов выложен ниже. Для работы проекта требуется установить RusNet IRCd и настроить его для линковки другого сервера (сервера-имитатора проекта, имя по умолчанию irc.rinet.ru). Проект настраивается 5-ю конфигурационными файлами:
Сообщение от None
autoexec.dat
- файл, содержащий межсерверные RAW команды, отправляемые IRCd после линковки; набор команд по умолчанию воспроизводит минимальную структуру сети.
config.dat
- основные настройки программы, здесь же задаётся канал для полноценной имитации.
feeding.dat
- файл лога программы
mIRC 6.12
из которого воссоздается картина на канале; обратите внимание на формат лога, если думаете заменять (в формате нет хоста, специфических команд и прочего, что может присутствовать - при добавлении лог вызовет ошибки парсинга!).
lastline.dat
- последняя обработанная строка из файла feeding.dat, счетчик по-сути.
webadmin.dat
- файл настроек доступа к административной веб-консоли сервиса-симулятора (через консоль можно отправлять собственные дополнительные RAW IRC команды).
Ведутся логи RAW IRC и логи событий программы (с опцией автоупаковки при превышении размера). Есть минимальный крон ircscron.exe, перезапускающий сервис-имитатор в случае падения.
Итак, балуйтесь: IRC Wayback Machine 1.0, 1.3МБ
Действующая версия, если действует - в моей подписи.
|
|
|

03.11.2012, 03:43
|
|
Участник форума
Регистрация: 04.01.2007
Сообщений: 176
Провел на форуме: 17964969
Репутация:
1362
|
|
|
|
|

01.11.2013, 00:42
|
|
Участник форума
Регистрация: 04.01.2007
Сообщений: 176
Провел на форуме: 17964969
Репутация:
1362
|
|
Обнаруженные уязвимости или просто недочеты/особенности в работе сервисов
Объект исследования:
Сервисы ircservices-5.0.54[rusnet-1.4] build #32 от 24.12.2012
Проверяем команды, характерные для любого IRC сервера (естественно, из тех, что позволяют удаленный запрос для себя).
(Примечание: ircdebug – собственный nick отладочного клиента).
Смотрим версию:
version *.RusNet
:*.RusNet 351 ircdebug ircservices-5.0.54[rusnet-1.4] *.RusNet :build #32, compiled п:пҐпЄ п?п?п? 24 11:54:38 MSK 2012
Нераспознанные символы, вероятно искаженное кириллическое ДЕК (декабрь) и ПНД (понедельник).
Пингуем:
PING irc.run.net :*.RusNet
:*.RusNet PONG *.RusNet ircdebug
Пингуется успешно, сервер стандартно нам отвечает.
Смотрим whois (whois nick nick для получения ответа именно от *.RusNet), как цель выберем nickname одного из сервисных ников, Global:
whois Global Global
:*.RusNet 311 ircdebug Global service RusNet * :Global Noticer
:*.RusNet 312 ircdebug Global *.RusNet :Services for RusNet IRC Network
:*.RusNet 313 ircdebug Global :is a network service
:*.RusNet 318 ircdebug Global End of /WHOIS :response.
Сравним с ответом whois об этом нике от обычного сервера:
whois Global
:irc.run.net 311 ircdebug Global service RusNet * :Global Noticer
:irc.run.net 312 ircdebug Global *.RusNet :Services for RusNet IRC Network
:irc.run.net 313 ircdebug Global :is an IRC Operator
:irc.run.net 318 ircdebug Global :End of WHOIS list.
Наблюдаем занятное различие в ответе 313, сервер *.RusNet говорит нам, что статус Global «network service», что не совсем обычно, впрочем, ничего особого это не означает.
Запросим время через time и сравним с ответом прочих серверов:
time *.RusNet
:*.RusNet 391 ircdebug *.RusNet :Tue Dec 25 13:29:39 2012 MSK
time irc.nsu.ru
:irc.nsu.ru 391 ircdebug irc.nsu.ru :Tuesday December 25 2012 -- 17:30 +07:00
time irc.anarxi.st
:irc.anarxi.st 391 ircdebug irc.anarxi.st :Tuesday December 25 2012 -- 11:30 +01:00
Наблюдаем отличия в формате ответа от *.RusNet.
Проверим ответы на stats команды. Обычные сервера сети отвечают пользователю без флага «o» на stats с параметрами «c h o u» (то же и в верхнем регистре – «C H O U») и «P» (только в верхнем регистре):
stats c *.RusNet
:*.RusNet 219 ircdebug c :/STATS c not applicable or not supported.
stats h *.RusNet
:*.RusNet 219 ircdebug h :/STATS h not applicable or not supported.
stats o *.RusNet
:*.RusNet 219 ircdebug o :/STATS o not applicable or not supported.
stats u *.RusNet
:*.RusNet 242 ircdebug :Services up 1 day, 01:48:00
:*.RusNet 250 ircdebug :Current users: 3109 (21 ops); maximum 3299
:*.RusNet 219 ircdebug u :End of /STATS report.
Ответы вполне логичны, хоть и необычны. В случае с «u» виден более расширенный ответ, чем от обычного сервера. При попытке получить другие stats они блокировались сервером клиента (нет флага «o», «Permission Denied- You're not an IRC operator») и не пересылались к *.RusNet. На stats в верхнем регистре, например «stats P», сервисы не отвечают, хотя эта команда к ним явно успешно посылается.
Смотрим admin:
admin *.RusNet
И получаем ответ, аналогичный запросу NickServ admins от сервисного ника NickServ.
Посмотрим info:
Код:
Code:
info *.RusNet
:*.RusNet 371 ircdebug :IRC Services developed by and copyright (c) 1996-2005
:*.RusNet 371 ircdebug :Andrew Church .
:*.RusNet 371 ircdebug :Parts written by Andrew Kempe and others.
:*.RusNet 371 ircdebug :IRC Services may be freely redistributed under the GNU
:*.RusNet 371 ircdebug :General Public License, version 2.
:*.RusNet 371 ircdebug :-
:*.RusNet 371 ircdebug :Many people have contributed to the ongoing development of
:*.RusNet 371 ircdebug :IRC Services. Particularly noteworthy contributers include:
:*.RusNet 371 ircdebug :Erdem Sener
:*.RusNet 371 ircdebug :Jose R. Holzmann
:*.RusNet 371 ircdebug :Mauritz Antunes
:*.RusNet 371 ircdebug :Michael Raff
:*.RusNet 371 ircdebug :Raul S. Villarreal
:*.RusNet 371 ircdebug :Yusuf Iskenderoglu
:*.RusNet 371 ircdebug :A full list of contributers and their contributions can be
:*.RusNet 371 ircdebug :found in the Changes file included in the IRC Services
:*.RusNet 371 ircdebug :distribution archive. Many thanks to all of them!
:*.RusNet 371 ircdebug :-
:*.RusNet 371 ircdebug :For more information and a list of distribution sites,
:*.RusNet 371 ircdebug :please visit: http://www.ircservices.za.net/
:*.RusNet 371 ircdebug :-
:*.RusNet 371 ircdebug :Plenty of changes have been made by RusNet team to get it
:*.RusNet 371 ircdebug :work with rusnet-ircd
:*.RusNet 371 ircdebug :Version 5.0.54[rusnet-1.4] (build #32, compiled п?пҐпЄ п?п?п? 24 11:54:38 MSK 2012)
:*.RusNet 371 ircdebug :On-line since Mon Dec 24 12:03:41 2012 MSK
:*.RusNet 374 ircdebug :End of /INFO list.
В целом, информация полезная и только.
Запросим motd:
Код:
Code:
motd *.RusNet
:*.RusNet 375 ircdebug :- *.RusNet Message of the Day
:*.RusNet 372 ircdebug :-
:*.RusNet 372 ircdebug :- *** Rusnet IRC Services ***
:*.RusNet 372 ircdebug :-
:*.RusNet 372 ircdebug :- Nicks expiration depends on the time of your main nickname
:*.RusNet 372 ircdebug :- registration. The longer this time the later your nick will expire
:*.RusNet 372 ircdebug :- if you stop using it.
:*.RusNet 372 ircdebug :-
:*.RusNet 372 ircdebug :- Your nick ircdebug will expire in 283 days, 1 hour of non-use.
:*.RusNet 372 ircdebug :-
:*.RusNet 372 ircdebug :- Channel expiration depends on the owner nickname expiration or
:*.RusNet 372 ircdebug :- channel usage. If owner nickname expired and no successor has been set,
:*.RusNet 372 ircdebug :- a channel will expire.
:*.RusNet 372 ircdebug :- If nobody with at least AutoVoice access level joins the channel
:*.RusNet 372 ircdebug :- within 60 days days, the channel will expire.
:*.RusNet 372 ircdebug :-
:*.RusNet 372 ircdebug :- If you need services administrator assistance type
:*.RusNet 372 ircdebug :- /NickServ ADMINS
:*.RusNet 372 ircdebug :-
*** больше ничего нет ***
Ответ, конечно уникален, но есть мелкое несоблюдение стандартного формата ответа – нет завершающей строки «376 ircdebug :End of MOTD command».
На команды whowas, list, pong, links, users, summon запрашиваемые с *.RusNet ответа не поступает.
Смотрим, какими еще данными представляет себя в сети сервер сервисов, его никнеймы и особенности работы.
На *.RusNet числятся 5 постоянных пользователей, представляющих собой собственно сервисы. Посмотрим их whois:
whois NickServ NickServ
:*.RusNet 311 ircdebug NickServ service RusNet * :Nickname Registration Service
:*.RusNet 312 ircdebug NickServ *.RusNet :Services for RusNet IRC Network
:*.RusNet 313 ircdebug NickServ :is a network service
:*.RusNet 318 ircdebug NickServ End of /WHOIS :response.
whois ChanServ ChanServ
:*.RusNet 311 ircdebug ChanServ service RusNet * :Channel Registration Service
:*.RusNet 312 ircdebug ChanServ *.RusNet :Services for RusNet IRC Network
whois MemoServ MemoServ
:*.RusNet 311 ircdebug MemoServ service RusNet * :Memo Server
:*.RusNet 312 ircdebug MemoServ *.RusNet :Services for RusNet IRC Network
whois OperServ OperServ
:*.RusNet 311 ircdebug OperServ service RusNet * :Errare humanum est
:*.RusNet 312 ircdebug OperServ *.RusNet :Services for RusNet IRC Network
:*.RusNet 313 ircdebug OperServ :is a network service
:*.RusNet 318 ircdebug OperServ End of /WHOIS :response.
whois Global Global
:*.RusNet 311 ircdebug Global service RusNet * :Global Noticer
:*.RusNet 312 ircdebug Global *.RusNet :Services for RusNet IRC Network
:*.RusNet 313 ircdebug Global :is a network service
:*.RusNet 318 ircdebug Global End of /WHOIS :response.
Странным образом получаем только сокращенные ответы для ChanServ и MemoServ. Также видим шутку в realname у OperServ («Errare humanum est» – «человеку свойственно ошибаться», вероятно ее вставил туда «erra» ).
Все 5 сервисов числятся в сети IRC-операторами, но какие еще у них флаги? Узнаем, присвоен ли им +i через общий запрос who:
who * o
:irc.run.net 352 ircdebug * service RusNet *.RusNet NickServ H* :1 Nickname Registration Service
:irc.run.net 352 ircdebug * service RusNet *.RusNet ChanServ H* :1 Channel Registration Service
:irc.run.net 352 ircdebug * service RusNet *.RusNet MemoServ H* :1 Memo Server
:irc.run.net 315 ircdebug * :End of WHO list.
Замечаем отсутствие Global и OperServ, следовательно у них есть +i.
Предположим, где находятся сервисы сети физически по сообщению с канала &SERVERS:
Received SERVER *.RusNet from irc.run.net (6 [82.137.161.42] Services for RusNet IRC Network)
Логично, что они на одном хосте с irc.run.net.
Порой на сервере *.RusNet могут числиться иные пользователи – часть работы enforce-механизма. Это никнеймы, которые сервисы принудительно заняли, а затем освобождают (обычно). Все такие никнеймы имеют маску enforcer@RusNet, без каких-либо пользовательских флагов. С этим механизмом связана уязвимость, которая будет описана ниже. Пример ника:
who enforcer
:irc.run.net 352 ircdebug * enforcer RusNet *.RusNet Gas H :1 NickServ Enforcement
:irc.run.net 315 ircdebug enforcer :End of WHO list.
whois [Tycho] [Tycho]
:*.RusNet 401 ircdebug [Tycho] :No such service.
На whois в отношении таких ников сервисы отвечают некорректно, будто их нет. Скорее всего это следствие того, что whois команда на *.RusNet расчитана только на 5 вручную прописанных ников сервисов.
Разберем обращения к сервисным никам командами privmsg или ****Serv:
chanserv help
nickserv help
memoserv help
operserv help
global help
На первые три без вопросов выводится справка, на operserv клиентский сервер выдает ошибку (нужен «o»), а global «Unknown command». Дело в том, что эти команды это алиасы вариантов команд «privmsg ****Serv@*.RusNet». С operserv идет проверкана флаг «o» и алиас не срабатывает, а с global алиаса нет вовсе. Обратимся же к сервисам через «privmsg ****Serv@*.RusNet»:
privmsg chanserv@*.RusNet help
privmsg nickserv@*.RusNet help
privmsg memoserv@*.RusNet help
privmsg operserv@*.RusNet help
:OperServ!service@RusNet NOTICE ircdebug : В доступе отказано.
privmsg global@*.RusNet help
Первые трое также выдали стандартный ответ. OperServ лично ответил, что нет доступа, а global промолчал, хотя текст к нему должен был дойти. Вероятно, у него нет обработчика. Кстати, к другим никам в сети обратиться схожим образом не удалось. Попробуем обратится к сервисом третьим способом, который был устранен, хотя стандартен - обычный «privmsg nick».
privmsg chanserv help
:ChanServ!service@RusNet NOTICE ircdebug :Use /chanserv, not /MSG chanserv
privmsg niCKserv help
:NickServ!service@RusNet NOTICE ircdebug :Use /niCKserv, not /MSG niCKserv
privmsg memoserv help
*** выводится нормальная справка ***
privmsg operserv help
:OperServ!service@RusNet NOTICE ircdebug :В доступе отказано.
privmsg global help
*** ничего, как и ожидалось ***
Итак, здесь мы обнаружили несколько вещей. Отсутствие поддержки прямой команды privmsg реализовано только у ChanServ и NickServ. Хотя функция, которая отвечает таким способом расчитана на любое имя сервиса (специально имя вводилось в разном регистре, в ответе регистр сохранился «niCKserv». MemoServ и OperServ по каким-то причинам были признаны не требующими этого исправления, что является мелким недочетом.
Далее смотрим ограничения на длину ника, которое у серверов составляет 31 символ. У сервисов:
nickserv link xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxs
-NickServ- Ник должен быть не длиннее 30 символов.
Теперь же вспомним о случае, когда ник принудительно изменяется. Вообще этот момент довольно неудачен. В большинстве сетей ник меняют на GuestNNNNN и подобные. Использовать пользовательский ник, как основу - довольно уязвимо. Это показало себя в бывшей уязвимсти, связанной с режимом +z, когда попытка сервисов сменить кириллический ник на канале с запретом кириллицы приводила к конфликту, порождающему десинк и проч.
Описание уязвимости enforcer.
Представим себе следующее: имеется зарегистрированный ник длиной 30 символов. Кто-то меняет свой ник на него. Через минуту ник меняется сервисами. На какой? На прежние 30 символов + 5 случайных цифр. Но сервера поддерживают 31 символ, и 4 цифры вырезаются. В итоге получаем ник в 31 символ. Но в этом случае будет всего 10 вариантов, на которые сервисы смогут сменить ник. А если в сети будет присутствовать 10 таких ников, т.е. свободных вариантов не будет? Ник все равно будет изменен на один из них. Получим 2 ника в сети одновременно. И ваш ник будет убит, с причиной коллизия. Но ситуация будет немного другой, если вы были подключены к серверу, куда прилинкованы сервисы. В этом случае для наблюдателя ваш ник все равно выйдет из сети, будет убит. Но вы по-прежнему будете подключены к серверу. В это время сервисы заведут свой ник, enforcer. И вы будете опознаваться в сети именно как он. Т.е. хост во whois, who и иных случаях будет enforcer@RusNet. Но это не все. Такой enforcer не освобождается через минуту. Единственный сервер, который будет помнить о том, что вы в сети, это сервер *.RusNet. Прочие сервера не будут считать вас в списках пользователей каналов, из которых вы вышли по killу. Если до этого у вас на канале был статус +o, вы сможете изменять режимы канала, и это увидят все пользователи. Так же вы сможете говорить на канале. Предположительно, это благодаря вашему хосту @RusNet, так как при других уязвимостях с коллизиями подобное не наблюдалось, пользователь, которого нет на канале не мог изменять его режимы, даже имея статус. Можно выйти и зайти на канал. В этом случае вы станете видны, но хост останется enforcer@RusNet.
Решение проблемы (самое очевидное): ограничить длину регистрируемого/линкуемого ника 26 символами, хотя даже 29 уже даст хороший эффект (малореально держать 100 ников для исчерпания возможности переименования).
Пример эксплуатации (лог канала, глазами стороннего наблюдателя):
Код:
Code:
[23:16] * this-is-veryvery-1ong-nickname (~debugger@antichat.in) приходит в #chan
[23:17] * ChanServ меняет режим: +o this-is-veryvery-1ong-nickname
[23:17] -ChanServ:@#chan- OP command used for this-is-veryvery-1ong-nickname by begin_end
[23:17] * this-is-veryvery-1ong-nickname (~debugger@antichat.in) вышел (Killed (irc.meganet.ru (irc.run.net[unknown@82.137.161.42] test text
[23:21] * this-is-veryvery-1ong-nickname (enforcer@RusNet) приходит в #chan
[23:22] * this-is-veryvery-1ong-nickname меняет ник на ircdbg
[23:22] * ircdbg (enforcer@RusNet) покидает #chan
[23:22] * ircdbg (enforcer@RusNet) приходит в #chan
[23:22] * ircdbg (enforcer@RusNet) вышел ("test end" )
Запросы whois на этот ник:
whois this-is-veryvery-1ong-nickname
:irc.run.net 311 ircdebug this-is-veryvery-1ong-nickname enforcer RusNet * :NickServ Enforcement
:irc.run.net 312 ircdebug this-is-veryvery-1ong-nickname *.RusNet :Services for RusNet IRC Network
:irc.run.net 318 ircdebug this-is-veryvery-1ong-nickname :End of WHOIS list.
whois this-is-veryvery-1ong-nickname this-is-veryvery-1ong-nickname
:*.RusNet 401 ircdebug this-is-veryvery-1ong-nickname :No such service.
Критическая уязвимость, связанная с обработкой списков сервисами (ChanServ, MemoServ): полностью устранена с 24 декабря, проверено. Функциональность сервисов осталась в полном объёме.
О UTF-8...
Вдобавок хорошо заметить об отсутствии поддержки UTF-8 сервисами, введенной в новой версии ircd 2.0.5. Сервисы неспособны получать UTF-8 текст, и хранить/обрабатывать его любым способом. Главная проблема кроется в неподдержке хостов пользователей, которые прорезольвились в имена в UTF-8. Такие хосты видны для сервисов, но все смиволы в них заменяются на символы "?". Следовательно, сервисы не способны применять в их отношении такие команды: ChanServ AKICK #Chan, ChanServ CLEAR #chan [BANS,MODES], ChanServ UNBAN #Chan, NickServ ACCESS. Еще, если глобальные E-LINE, R-LINE, K-LINE проставляются посредством сервисов, то проблемы будут даже в таких случаях.
Идентичная проблема наблюдается у старой версии ircd. Увы, в данном случае предоставляется широкий спектр возможностей потенциальным нарушителям.
Этот перечень будет пополняться по мере возможности...
От 25 Dec 2012 (C) begin_end
|
|
|

18.01.2014, 21:43
|
|
Участник форума
Регистрация: 04.01.2007
Сообщений: 176
Провел на форуме: 17964969
Репутация:
1362
|
|
|
|
|

06.12.2015, 15:49
|
|
Участник форума
Регистрация: 04.01.2007
Сообщений: 176
Провел на форуме: 17964969
Репутация:
1362
|
|
|
|
|

19.06.2021, 19:33
|
|
Участник форума
Регистрация: 04.01.2007
Сообщений: 176
Провел на форуме: 17964969
Репутация:
1362
|
|
|
|
|

19.06.2021, 20:55
|
|
Guest
Сообщений: n/a
Провел на форуме: 197178
Репутация:
4
|
|
Логично. Поколение которое не познало(максимум кто то слышал) о чатах...
Короче, скоро их припишут к социальным программам истории развития
|
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|