Интернет под угрозой военных ботов!

Master-lame-master

Xakep, номер #056, стр. 056-050-3


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

1) идент мастера должен быть cafeteam;

2) мастеру нужен оп на канале;

3) мастеру необходимо передать хеш, который каким-то образом дешифровал бот.

Хакер очень заинтересовался этими ботами и захотел порулить ими на полную катушку (читай - за3.14DoSить несколько крупных серверов). Ему предстояло обмануть ботов по всем трем пунктам. Первое условие и условием-то трудно назвать - обычная смена идента. Как выполнить второе условие, взломщик также теоретически знал. Судя по коду, при передаче боту в приват строку !op "пароль", бот должен опнуть чела на канале.

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

Зашифровал? Расшифровывай!

Смысл шифрования заключался в следующем: бот просматривает полную маску чела, пусть это будет "master!cafeteam@warbots.net". Затем происходит порождение цикла по каждому символу этого хоста. Этот символ преобразуется в эквивалентный ему ASCII-код, который делится на текущую длину строки, а потом округляется. Затем происходит дозапись цифрового хеша в суммарную строку. Через определенное число символов происходит вставка в хеш некоторой посторонней цифры. Этот процесс повторяется до истечения длины полной маски. В завершение процедуры банальное сравнение. Если хеш, созданный ботом, совпал с последовательностью, переданной извне, то человек становится ботмастером, и боты переходят в его подчинение.

После изнурительных тестов хакер написал обратную процедуру. Это давало возможность взять под контроль тысячи ботов. Кстати, последовательность посторонних цифр оказалось очень простой - 31337 ;). Теперь предстояло подконнектиться к серваку и протестить возможности ботов.

Убедившись, что, кроме него самого, на ircd не было живых обитателей, хакер запросил у бота статус оператора. Затем передал заветный хеш и получил в ответ около тысячи приветствий ;). Как было сказано выше, у взломщика уже был список команд, одну из которых ты знаешь - !udp :). Ее родимую он и протестил на одном серваке. Как и предполагалось, сервер стал недоступным в считанные секунды. Все бы хорошо, но хакер не знал, как остановить флуд ;). Из-за этого сервер поливался грязью аж целых 10 минут. Это время наш герой потратил на то, чтобы перерыть горы скриптов в поисках команды по отмену udp-флуда.

Назад на стр. 056-050-2  Содержание  Вперед на стр. 056-050-4