Захват канала в IRC

Среда, 23 Май 2007

На детском рисунке домик с трубой.
Тебе Михаил машет рукой.
Мы никак не можем
Привыкнуть жить без войны...
гр. Чайф.


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

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

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

  • Тэйковер

    Давайте определим главную цель захвата, в чем она заключается. Во-первых Вы должны получить статус оператора, что бы иметь возможность контролировать канал. Во-вторых никто из Ваших врагов (считай все существующие операторы на момент до захвата ) не должен иметь статус оператора. Для этого после получения статуса оператора, нужно как можно быстрее лишить всех остальных такого статуса, то есть деопнуть. Делать это вручную, значит не иметь ни единного шанса победить. Эту работу должен выполнять скрипт. Всевозможных скриптов в интернете можно накачать кучу. В этом документе я не буду объяснять как пишуться скрипты, но алгоритм работы скрипта прост - проверка списка пользователей, находящийся на канале. Если пользователь является оператором, и этот пользователь не Вы, то включить его в список "жертв". После проверки всего списка - деопнуть одним разом всех, кто входит в список "жертв". А что бы скрипт заработал, нужно что бы он был автоматически вызван, как только Вы получите статус оператора. Для этого в систему реагирования на события (EVENTS) нужно добавить строку типа:
    ON OPED:#channelname:/runscript [massdeop] #channelname

    Приведенный пример справедлив для PIRCH, но и в других клиентах он выглядит примерно также. Запомните: от того, как быстро и отлаженно действует Ваш скрипт, зависит исход борьбы за власть на канале. Поэтому откройте новый канал и протестируйте там скрипт вместе со своими друзьями прежде, чем использовать его в серьезном деле. Главным параметром, на который нужно обращать внимание, является скорость - пинг от Вас до сервера должен быть минимальным. Для этого лучше выбирать сервера, находящиеся близко к Вам по географическому расположению. Итак, скрипт протестирован и дает превосходные результаты - срабатывает так быстро, что Вы и глазом моргнуть не успеваете. Теперь встает вопрос как же получить статус оператора на избранном канале хотя бы на несколько секунд, которых бы хватило, что бы скрипт сделал свое черное дело. Ну по-первых это может быть просто ошибка одного из операторов, который окунувшись в 40-градусную жидкость перестал различать своих и чужих. На это конечно расчитывать трудно, но чего в жизни не бывает. Во-вторых можно зайти на канал под другим ником, идентом и адресом. Обратите внимание, что если хотя бы одно из них останется прежним, то Вы выдадите себя с ног до головы. Приведу пример. Допустим Ваш обычный полный адрес -[email protected]
    Вы решили сменить свой ник и на канал заваливает:
    [email protected]
    Хехе, первым делом Вас выпнут с канала со словами - 'CoolGuy, go fuck yourself'. Вы можете вылететь даже если поменяете идент, так как Ваш адрес @ppp112-dial-up.demos.ru все равно выдает Вас и может быть занесен в черный список операторов. Поэтому пользуйтесь прокси, другим провайдером, шелом на других серверах и т.д. Итак, Вас не узнали, значит у Вас есть шанс "понравиться" операторам. Так как Вы уже знаете их взгляды на некоторые вопросы ( за разногласия в которых Вы вероятно и были подвержены экзекуции ), то Вы можете ненароком перевести разговор на эту тему и выдать их точку зрения за свою - это прибавит очко в вашу пользу. В какой-то момент один из операторов может вдруг решить, что Вы свой парень и одарит Вас плюшкой, то бишь даст Вам опа. Вот тут-то и сработает Ваш скрипт, которых тихонько сидел и ждал своего часа. И вот на канале только один оператор, и этот счастливчик - Вы. Пришел зведный час, теперь все в Ваших руках и дальше Вы действуете по своему усмотрению. Это конечно хорошо, если все так и случиться, но как правило такое случается редко, и операторы не делятся плюшками и в лучшем случае могут дать Вам войса (voice), который Вам никчему. И если бы не было других способов получить оператора, я бы даже и не стал об этом писать. Но способ есть, и Вы о нем узнаете.
  • Сплит

    В мире нет ничего идеального и IRC не исключение. Вспомним, что IRC-сеть представляет собой группу объединенных серверов, к которым подключаются пользователи. Иногда случается так, что один или несколько серверов откалываются от этой сети на некоторое время. Состояние раскола и есть сплит. Если кто-то из пользователей, находящихся на одном канале с Вами, был соединен с отделившимся сервером, то Вы увидите примерно такое сообщение:
    [16:32] Borg [[email protected]] has quit IRC (algo.se.eu.dal.net algo-u.se.eu.dal.net)
    В скобках указаны сервера, между которыми произошел разрыв. Первый сервер - тот, который остался на вашей стороне, второй - отделившийся. Причины могут быть разные, но нас интересуют не причины, а сам факт. Дело в том, что в результате раскола образуются две независимые сети, то есть в них могут одновременно существовать каналы с одинаковыми именами. После того, как серверы опять соединятся - пользователи с одноименных каналов окажутся в одном канале, при этом они сохранят статус, который имели до воссоединения. То есть если Вы были оператором, то Вы им и останетесь. Как Вы знаете, человек, первым зашедший на канал (основатель) автоматически становится оператором. Так вот, идея заключается в том, что бы на отколовшейся части создать канал, который Вы собираетесь захватить. То есть если Вы хотите захватить канал #lamerz, то во время сплита Вы должны соединиться с отколовшимся сервером и создать там #lamerz. Естественно главное условие - что бы на отделившемся сервере не было никого из тех, кто сидел на #lamerz. Теперь остается сидеть и ждать когда серверы опять воссоединятся в одну сеть. В этом случае это будет выглядеть так, как будто все пользователи, находившиеся в другой (основной) части зашли на канал одновременно. А все установки, которые были на основном канале, будут сделаны серверами, на которых они находятся. Выглядеть весь процесс будет примерно так:
    [18:54] Dark-Angel [[email protected]] has joined #lamerz
    [18:54] DataDamage [[email protected]] has joined #lamerz
    [18:54] HackersGod [[email protected]] has joined #lamerz
    [18:54] Crazy_Ping [[email protected]] has joined #lamerz
    [18:54] UnixGuru [[email protected]] has joined #lamerz
    [18:54] quantum-r.ny.us.dal.net sets mode: +ooo Dark-Angel DataDamage Crazy_Ping
    [18:54] quantum-r.ny.us.dal.net sets mode: +bbb *!*@*.aol.com [email protected] Karma!*@*
    [18:54] quantum-r.ny.us.dal.net has changed the topic to "Join our channel, the BEST irc-channel!!!"

    В тоже время те, кто был с той стороны сплита увидят примерно следующее:
    [18:54] CoolGu [email protected] has joined #lamerz
    [18:54] glass.oh.us.dal.net sets mode: +o CoolGuy

    В результате на канале сидят 4 оператора, один из которых Вы, но почему-то скрипт Ваш молчит и ничего не делает. В чем причина? Правильно. Потому, что вы не получили опа, так как Вы были им еще до их "прихода", и следовательно события 'ON OPED' не произошло. Как же быть? Можно включить обработку следующих событий:
     
    ON JOIN:#lamerz:/mode #lamerz -o $nick
    ON SERVEROP:#lamerz:/mode #lamerz -o $nick

    В первом случае будут деопаться все, кто заходит на канал без разбора, во втором - только операторы. В первом случае, если пользователей на основном канале много, то кроме того, что уйдет много времени на бесполезное исполнение команды, Вы еще можете либо вылететь за флуд, либо какое-то время сервер не будет исполнять Ваши команды. С другой стороны событие 'ON SERVEROP' произойдет позже, чем 'ON JOIN', а следовательно теряется время. Выбор событий зависит от конкретного случая. Кто-то может сказать: "Ладно, я понял что такое сплит и зачем он нужен, но я же не экстрасенс. Откуда я узнаю, что произошел сплит, если никто на канале не был на отделившемся сервере?". Ну если Вы не экстрасенс, то это не страшно, у каждого свои недостатки :) Для выявления сплитов существуют опять таки скрипты. Если у Вас их нет, то я рекомендую программу LinkLooker. Должен сказать, что во избежание захватов каналов, некоторые серверы не дают создателю канала статус оператора во время сплита, но их число ничтожно мало. Другая проблема - Desynch. Это такое состояние сети, когда сервера вроде бы соединились, но сообщения и команды посылаемые в канал не доходят до остальных. Таким образом Вы вроде всех деопнули, а на самом деле с той стороны никаких изменений не произошло. При этом приватные сообщения между людьми с разных сторон могут доходить нормально. Во время дезинча сервера по нескольку раз разъединяются и опять соединяются. Объяснить это явление трудно. По моему происходит это когда существует много пар одинаковых каналов с разницей в установках, и серверам требуется какое-то время, чтобы договориться какую установку считать правильной в каждом конкретном случае. Как правило если произошел дезинч, то можно считать, что атака не удалась.
  • Nick-Collide-attack

    Теперь давайте спустимся на землю. Ведь не Вы один такой умный, и операторы канала тоже могут иметь(100% имеют) скрипты, которые деопают всех, кому дает плюшку сервер. Кроме того они наверняка используют 'protection scripts', которые защищают от deop/kick/ban других операторов. То есть после того, как Вы деопните первого оператора, остальные деопнут Вас. Согласитесь расклад не в Вашу пользу. Только наличие скорости на несколько порядков выше, чем у противников может Вам помочь. Как правило на это расчитывать не приходится, так как многие каналы имеют ботов, которые висят на шелах и имеют скорость коннекта от 1,5 мегабит/сек и выше. Куда Вам с Вашим диалапом на 28800. Что ж, если нельзя опередить, то почему бы просто взять и не убить? Вы спросите - "Что значит убить? А разве это возможно?". Можно, если только осторожно. Давайте вспомним одну особеннось IRC. В сети не могут существовать два человека с одинаковыми никами, то есть не может одновременно существовать два CoolGuy. Мысль улавливаете? Если нет, то слушайте. В одной сети не могут, но могут в двух разных сетях. То есть во время сплита могут существовать два CoolGuy в двух разных частях. Что же происходит во время воссоединения серверов? Происходит то, что серверы не находят ничего умнее, как выкинуть обоих пользователей с одинаковыми никами вообще из сети со словами 'Nick Collide'. ЙАХ-Х-ХА!!! А почему-бы не зайти на сплитнутый сервер под ником одного из операторов канала? Во время воссоединения серверов одним противником меньше. А почему-бы не избавиться сразу от всех врагов. Конечно если их не меньше пяти, то заходить через mIRC или PIRCH под большим количеством ников мягк о говоря неудобно. Для этого есть программа MCB (Multi-Collide-Bot), которая позволяет указать ники, а она сама запустит на IRC клоны под этими никами и скинет всех недругов с IRC. "Значит сплит+massdeop скрипт+MCB=ключ к успеху?", спросите Вы. Да, раньше все так и было, но времена меняются и на многих IRC-серверах установили защиту пользователей от nick-collide-атак. Она заключается в том, что сервера проверяют время появления каждого из одинаковых ников и скидывают только того, кто пришел позже. В таких случаях ничего не остается, как прибегнуть к старым, проверенным способам - всем видам флудов. Но один человек вряд ли сможет что-то сделать, такой метод может использовать группа нападающих. Причем скинуть с IRC нужно всех операторов оновременно, что бы не дать возможность слетевшим опять вернуться и получить опа от оставшихся.
    P.S. Чем больше людей (не только операторов, но и простых посетителей) на атакуемом канале (в основной части сети), тем меньше шансов на успех. Для повышения этих шансов нужно увеличить количество людей на атакующем канале (на сплитнутом сервере).
Последнее обновление ( Среда, 25 Июль 2007 )
< Пред.   След. >