Easy-HackЛеонид «r0id» Стройков (stroikov@gameland.ru) Леонид «Cr@wler» Исупов (crawlerhack@rambler.ru) Владимир «Dot.err» Савицкий (kaifoflife@bk.ru) Хакер, номер #112, стр. 112-050-1 Задача: Подглядеть, как вирмейкеры готовят Pinch для распространения.РешениеНа фоне прочего хакерского ПО трой Pinch заметно выделяется. Наверняка, ты слышал о нем и, возможно, поэтому решил заюзать в корыстных целях. Перед тем, как ты примешь окончательное решение, хотим предупредить об уголовной ответственности за создание и распространение вредоносных утил (ознакомься на досуге со статьей №273 УК РФ). Но если наказание и погода под Магаданом тебя не пугают – расскажем, как вирмейкеры работают с этим троем. Рассматривать будем версию Pinch 2.99, как самую распространенную. Приведем последовательные действия злоумышленника: 1. Слить Pinch 2.99 (эта версия лежит на многих известных хак-форумах). 2. После распаковки архива обнаруживается: Директории: admin Файлы:
3. В каталоге /admin находятся пхп-скрипты, которые нужно залить на свой сервер. Скрипт filelist.php отвечает за администрирование логов, admin.php – принимает отчет от трояна и пишет его в диру ./reps. Кстати, если забыть поставить права 777 на каталог ./reps, логов злоумышленник не увидит, как своих ушей. 4. Запустить Builder.exe, указать имя хоста и путь до скрипта. В итоге хакер получает ехе-шник с трояном. P.S. Ни в коем разе не призываем повторять описанные действия, ибо они незаконны! Задача: Замутить фейковую справку.РешениеКак известно, без бумажки, ты – букашка. Порой мы сталкиваемся с проблемами, которые проще всего решить, предоставив ту или иную справку. Например, часто требуется справочка о прохождении флюорографии, но ходить и брать ее в поликлинике – удовольствие еще то. Прежде чем читать дальше, советуем погуглить на тему «статья Подделка документов» и понять, что нижеследующее приведено с чисто ознакомительными целями. 1. Итак, вооружаемся отечественной прогой Stamp (www.stampz.ru), радуемся размеру менее 500 килобайт и открываем третью вкладку «Центр». В поле «Строки в центре печати» вводим текст со старой справки, напоминающий: МОЯ «Любимая поликлиника №777» Флюорографический кабинет Рентгенологических изменений легких и сердца не выявлено Врач _________ Дата _________ Далее, выставляем размер – 1, интервал между символами – 0,1. Выбирая шрифт, стоит взять для сравнения старую флюорографию. Обводим весь текст, делаем его жирным (кнопка с толстой «B»). Убираем галочку с чек-бокса «Рисунок 1 в центре» (так как никаких изображений мы не используем). В поле «Толщина обвода» вводим «0,1» (штамп имеет очень тонкий контур). 2. Переходим на четвертую вкладку «Форма». Ищем кнопочку с изображением квадрата, щелкаем по ней и растягиваем прямоугольник произвольной формы по чистому листу. Поля «Радиус X» и «Радиус Y» – это длина и ширина штампа; соответственно, вводим 6,0 и 2,0. Размер формы ставим 14. Находим и обнуляем следующие поля: «Толщина линии 1», «Толщина линии 2», «Интервал». 3. На вкладке «Параметры строк» в поле «Отступ сверху» вводим 0,2, а в «Отступ снизу» – 0,1. Проверяем выпадающую менюшку «Расположение строки», в ней должно быть выбрано «Снизу». 4. Вот и настало время посмотреть на предварительный результат. Открываем вкладку «Создание и редактирование» и щелкаем кнопку «Создать». Перед нами черно-белое шаблонное изображение, которому нужно придать более натуральный вид. Находим три цветные буквы («R G B») и щелкаем над ними кнопку «Выбрать». Нас, естественно, не устраивает такая скудная «палитра», поэтому жмем «Определить цвет >>>». Выбираем цвет, наиболее схожий с цветом старого штампа просроченной флюорографии (мне подошли значения «Оттенок» 131, «Контраст» 147, «Яркость 93», «Красный» 38, «Зеленый» 126, «Синий» 159), и добавляем в набор. 5. Обычно печать на справке – неровная и чуть смазанная. Щелкаем «Неточность», вводим 1 в поле «Допуск», жмем кнопку со стрелочкой вправо. Кликаем «Размытие», выбираем стрелочку влево. 6. Сохраняем и распечатываем готовый штамп, красивым почерком заполняем поля «Врач», «Дата» и пишем сверху: «Пыжиков Е.С., 1980г.», в общем, все как на старой :). P.S. Все изыски моего творчества ты можешь просмотреть на видеоуроке, прилагаемом к статье. Задача: Заэнролить карту.РешениеКак ты понимаешь, в вещевухе aka вещевой кардинг редко можно обойтись без такого важного компонента, как энрол. По определению, энрол отличается от обычного картона возможностью изменения информации о кардхолдере, в частности – физического адреса, привязанного к кредитной карте. Изменяют адрес, как правило, на данные дропа – чтобы стаф четко и уверенно попадал к заказчику. Проблема одна: цена картонки с кодом сегодня варьируется в пределах $2-3, а вот энрол стоит от $40 и выше. В такой ситуации порой выгоднее заэнролить карточку собственноручно, благо, это вполне осуществимо. Итак, рассмотрим действия по порядку (исключительно в ознакомительных целях!): 1. Для начала нужно определить банк-эмитент картонки (банк, который выдал креду). Для этого берутся первые 6 цифр номера карты (BIN) и ищутся в базе, например, с помощью утилы CC2Bank. 2. На сайте банка кардхолдера смотрят требования, предъявляемые к энролу. Чаще всего необходимо знать SSN (Social Security Number), MMN (Mother Maiden Name) и DOB (Date Of Birth). 3. Далее требуется пробить SSN, MMN и DOB. Сделать это можно либо за плату на соответствующих забугорных ресурсах (www.ancestry.com, www.intelius.com, www.zabasearch.com), либо через людей, предоставляющих подобные услуги на кардинг-форумах. 4. После указания необходимых данных на сайте банка – вот он, доступ к редактированию информации о кардхолдере! Можно вбивать адрес дропа. Остается отметить лишь пару нюансов:
Соблюдая перечисленные правила, ты всегда будешь иметь под рукой свежий и готовый к бою энрол. Но помни: кардинг – зло, причем, уголовно наказуемое! Задача: Получить список методов DirectX, вызываемых определенным приложением.РешениеПолучить список методов вполне может пригодиться, если ты захочешь узнать, каков же общий механизм работы игрового приложения, использующего DirectX. Иногда просто не хочется тратить часы или даже дни на изучение специальной литературы. В таком случае можно воспользоваться программой-шпионом, которая отслеживает вызываемые методы. Рассмотрим утилиту dxmon, благо она обладает простым и понятным интерфейсом и не требует долгой настройки. Чтобы получить лог вызовов методов DirectX целевым приложением, достаточно выполнить несколько простых действий.
Задача: Поиметь PayPal-акковРешениеПрежде, чем перейти к описанию действий, хочу предупредить, что PayPal в настоящее время имеет свое представительство в Ру. А значит – найти и наказать тебя в случае противоправных действий будет намного проще, чем раньше. Наиболее распространенных схем получения акков от палки три: 1. Протроянивание 2. Фейк-сайт (aka скам) 3. Чек акков по базе Протроянивание – тема довольно сложная, обширная и дорогая, поэтому затрагивать ее мы сейчас не будем. Создание фейковых ресурсов тоже неоднократно освещалось на страницах журнала. Остается – проверка акков по базе. Как ты уже догадался, речь идет о базах с записями вида мыло/пароль, которые платежка требует при авторизации. Добыть рабочие аккаунты можно следующим образом: 1. Ломаем/покупаем базу вида мыло/пароль, причем желательно брать БД с какого-нибудь финансового амерского сайта. Кстати, пароли к такой базе можно и нагенерить, используя распространенные пассы. 2. Подгружаем базу к PPC (PayPal Checker) и чекаем акки на валидность. Юзать можно любой другой софт, лишь бы он работал через соксы. 3. Забираем базу с валидными акками и... В общем, что делать дальше – зависит напрямую от тебя и твоей совести. Об уголовной ответственности я тебя предупредил. Задача: Сделать скан кредитки.РешениеЗадача непростая, но, имея начальное представление о Фотошопе, выполнить ее не составит труда. 1. Создаем новый холст (Файл -> Новый) размером, скажем, 640x480 с прозрачным фоном. Выбираем инструмент «Горизонтальный текст», ставим размер 36, красивый шрифт OCR A Extended и набираем 16 нужных цифр, разделяя каждые четыре пробелами. Делаем отступ в строку и набиваем 30 шрифтом, пару дат в формате месяц/год с отступом в несколько пробелов между датами. Переходим в раздел «Редактирование -> Определить узор», жмем «Ок». Сохраняем файл, как numbers.psd. 2. Повторяем создание холста с теми же параметрами. Выбираем инструмент «Прямоугольная область» (М). Стиль: «Заданный размер», ширина 580 пикселей, длина 380. Щелкаем в любое место на холсте, перетаскиваем выделение на центр. Ищем в меню «Выделение -> Модификация -> Оптимизировать», пишем 19 в качестве параметра. Теперь выделение у нас с закругленными краями. Заполняем выделение любым цветом инструментом «Заливка». 3. Переходим «Слой -> Стиль слоя -> Параметры наложения -> Тиснение->Текстура». Выбираем «numbers» в качестве текстуры, перетаскиваем текст на центр так, как он расположен на большинстве кредиток. Далее, «Слой -> Стиль слоя -> Параметры наложения -> Перекрытие узора». Выбираем нужную текстурку для фона, непрозрачность – 100%, «Ок». 4. Создаем новый слой с именем uptext. Инструментом «Горизонтальный текст» набираем текст в точности, как на первом шаге, и перетаскиваем его так, чтобы он совместился с текстом на фоне (накрыл его). Идем дальше: «Слой -> Растрировать -> Слой». Зажимаем <Ctrl> и щелкаем по слою uptext, тем самым выделив набранное внутри слоя. Выбираем «Выделение -> Модификация -> Сжать» (1 – в качестве параметра). Затем «Выделение -> Инверсия», жмем кнопочку Delete, «Выделение -> Отменить выделение». 5. Не надоело лазать по меню? Почти готово. «Слой -> Стиль слоя -> Параметры наложения -> Внутреннее свечение»; параметры: непрозрачность 100%, цвет #CCCCCC, контур – полукруг (aka HalfRound, второй ряд, первый элемент). Еще несколько настроек:
6. В правом нижнем углу размещаем нужный логотип (в моем случае Visa), а чуть выше – голограмму. Их можно достать/вырезать из других кредиток, погуглив в разделе картинок на тему «Credit cards». Создаем новый слой и красивым, большим шрифтом (около 36) пишем название нашего банка и перетаскиваем наверх, по центру. Слегка подкрашиваем под цвет фона. Двенадцатым строгим шрифтом (например, Arial) большими буквами подписываем «VALID FROM» и «VALID THRU» над датами и дублируем первые четыре цифры номера кредитки под основными. 7. Накладываем все это на белый фон, выполняем «Слой -> Объединить видимые». Сохраняем в jpeg или bmp. Шлифуя точные значения параметров, можно добиться высоких результатов. Дерзай, но помни об Уголовном Кодексе! Задача: Модифицировать инструкции скомпилированного PE-файла в памяти, оставляя при этом неизменным сам файл программы.РешениеВо-первых, для чего это может понадобиться? Представь, что сторонние модули проверяют файл на целостность или «ругается» антивирус. В таком случае, неплохо бы изменить программу не на диске, а в оперативной памяти! Как это делается? Принцип прост. Существует масса утилит, создающих так называемые «лоадеры» – маленькие исполняемые файлы, которые загружают исходную программу в память, меняют необходимые байты кода/данных и передают управление самой загруженной и немного измененной программе. Мы рассмотрим процесс изменения программы notepad.exe в памяти при помощи лоадера, созданного утилитой R!SC's Process Patcher (далее – RPP). Алгоритм выполнения задачи несложен: открываем исследуемую программу под отладчиком, находим байт-код инструкций, которые необходимо модифицировать, записываем его (а заодно и адреса, по которым расположены данные инструкции), модифицируем инструкции, копируем байт-код модифицированных инструкций. Далее передаем программе RPP данные о том, какие байты и по каким адресам будут модифицированы. Сам процесс передачи происходит посредством указания программе пути к файлу-скрипту, который мы должны написать сами. Да, программа обладает «скриптовым языком». Звучит громко, и я не случайно взял выражение в кавычки, ибо язык этот примитивен. Вот приблизительный шаблон скрипта: O=Имя_лоадера: F=Имя_исходной_программы: P=Адрес_изменяемых_байт/значения_изменяемых_байт_через_запятую/новые_значения_через_запятую: $ ;конец скрипта Итак, попробуем при помощи RPP создать лоадер, создающий «невидимый» блокнот (то есть лоадер, при запуске которого notepad.exe не открывает окна и заметить его можно только в диспетчере задач). 1. Открываем отладчик OllyDbg и ставим точку останова на функцию ShowWindow. Для этого нажимаем <Alt+F1> и вводим команду «bpx ShowWindow». 2. Запускаем программу. После остановки по адресу 01004934h нажимаем на инструкции call USER32.ShowWindow правой кнопкой мыши и выбираем из открывшегося меню «Binary -> Binary copy». В буфер скопирован байт-код «FF 15 B0 11 00 01» – это код, который нам понадобится, запоминаем его. Также запоминаем и адрес, по которому располагается данная команда – 01004934h. 3. Нажимаем дважды на вызове ShowWindow и в открывшемся окошке изменяем инструкцию вызова на «nop» («пустой» оператор, который не делает ничего). Выделяем шесть команд «nop», которые заменили инструкцию «call USER32.ShowWindow» и при помощи команды «Binary copy», как и в предыдущем пункте, копируем байт-код данных инструкций («90 90 90 90 90 90»). Он нам тоже понадобится! 4. Создаем в директории программы RPP файл script.rpp, а в нем скрипт – по нашему шаблону: O=loader_notepad.exe: ; имя нашего лоадера F=notepad.exe: ; имя программы, для которой создается лоадер (советую скопировать блокнот в директорию программы RPP) P=1004934/FF,15,B0,11,00,01/90,90,90,90,90,90: $ ;конец скрипта Думаю, что в комментариях нуждается лишь предпоследняя строка скрипта. Как ты уже догадался, после команды «P=» следуют три разделенных бэкслэшами строки. Первая строка содержит адрес начала последовательности байт, которые будут изменены. Вторая – сами эти байты, подлежащие замене. И, наконец, третья строка содержит новые значения, которыми будут заменены исходные байты. Не забывай, что OllyDbg копирует в буфер последовательность байт, разделенных пробелами, а RPP принимает значения, между которыми стоят запятые. Также помни о том, что в конце значений, получаемых операторами «F», «P» и «O», ставится двоеточие. Теперь сохраняй скрипт, запускай rpp.exe и указывай утилите путь к файлу script.rpp. Лоадер будет автоматически создан. Запусти его и notepad.exe загрузится в память (в чем можно легко убедиться, посмотрев список процессов в диспетчере задач). В то же время окно блокнота не будет отображаться, так как мы блокировали его прорисовку, сняв вызов ShowWindow. Напоследок скажу, что утилита работает достаточно просто, загружая процесс в память и переписывая нужные байты при помощи API-функции WriteProcessMemory. Если ты интересуешься вопросом патчинга «на лету» или даже хочешь написать утилиту, создающую лоадеры, то RPP будет очень кстати, так как эта утилита распространяется вместе с исходными кодами. |