Easy-Hack
Хакер, номер #111, стр. 111-042-1 Задача
РешениеОдними из первых при запуске системы стартуют сервисы. Создадим фейковую службу для автозагрузки нашей проги. Для начала определимся, чем отличается обычное win-приложение от сервиса? Сервис имеет определенную структуру, должен откликаться на управляющие команды (запуск, остановка, пауза, продолжение работы) и сообщать о своем состоянии (работает, остановлен и т.д.). Есть несколько способов запустить приложение как службу Windows: от написания и использования полноценного сервиса до запуска любой проги как сервиса при помощи instsrv.exe и srvany.exe из Windows Resource Kit. Рассмотрим один из вариантов. 1. Копируемся в системный каталог, называемся как-нибудь мутно, например, "csrsc.exe". 2. Регистрируемся в реестре. Создаем раздел под свой сервис: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Csrsc] 3. Создаем строковый параметр (REG_SZ) с именем «Description». В качестве значения необходимо в паре предложений описать, чем занимается сервис. Нет, не надо писать туда «обычный троян» и т.п., а лучше посмотреть описания стандартных Майкрософтовских сервисов и вбить что-то похожее. 4. Следующий строковый параметр «DisplayName». Так будет выглядеть дружественное пользователю название службы. Значение «CSRsc-клиент» вполне подойдет. 5. Далее, REG_SZ «ObjectName». Ставим значение «LocalSystem» для запуска от имени SYSTEM. 6. Создаем и оставляем пустыми параметры типа REG_MULTI_SZ «DependOnGroup» и «DependOnService». 7. Параметр REG_SZ «ImagePath2» заполняем как «%SystemRoot%\csrsc.exe». Это и есть наш экзешник запускаемого сервиса. 8. Определяем тип загрузки нашей службы. Добавляем REG_DWORD «Start» со значением «2», что соответствует загрузке вместе с системой, но после драйверов. В «Службах» отображается как «авто». REG_DWORD параметр «ErrorControl» ставим в «1», REG_DWORD параметр «Type» ставим в 120 (0x00000120). Итак, мы попытались закосить под сервис, но если пользователь и не заметит подвоха, то Винда при загрузке службы понимает, что подсунули ей никакой не сервис. Однако проверка идет больше 20 секунд (пользователь ничего не видит), и мы спокойно копируемся во второй файл, например в WINDOWS\csrsc.exe (в автозагрузке у нас как служба прописан WINDOWS\system32\csrsc.exe), запускаем его (второй файл), завершая наш фейковый сервис. В итоге имеем в процессах нашу прогу csrsc.exe, запущенную от имени пользователя SYSTEM. Задача
РешениеНе будем вдаваться в подробности, откуда у нас чужой паспорт/виза/права/etc., а приступим к работе. Воспользуемся небезызвестной прогой Adobe Photoshop любой версии. Подделать скан можно разными путями, я опишу наиболее простой и не требующий особых знаний или умений в работе с фотошопом. 1. Делаем резервную копию и перетаскиваем скан в фотошоп (либо Файл -< Открыть). 2. Допустим, необходимо поменять имеющиеся имя и фамилию на желаемые данные «Vasia Vasechkin» в иностранной визе/паспорте. Выбираем из имеющегося в скане текста нужные нам символы. Данные заполняются шрифтом одного стиля, поэтому можно набирать со скана любые буквы. Жмем «Z», увеличивая масштаб до максимума. Выбираем инструмент Лассо (клавиша «L») и попиксельно обводим букву. Здесь надо обратить внимание на то, что текст не может быть идеален, поэтому внимательно обводим пиксели, отличающиеся от фона. Выделение считается законченным, когда совмещены начало и конец. 3. Копируем выделенное на новый слой. Выбираем Слой -> Новый -> «Скопировать на новый слой» (Ctrl+J). То же самое делаем с каждой буквой по очереди, пока не наберем все необходимые для составления нужного имени и фамилии символы. Каждая буква должна располагаться на отдельном слое, которые перечислены на панельке справа внизу. После каждого копирования щелкаем по значку глаза слева от имени слоя (либо Слой -< Спрятать_слой, – он становится невидимым) и переходим на основной слой со сканом, кликая по нему мышью. 4. Затираем старые данные. От того, насколько хорошо вырезаны буквы и затерт старый текст, зависит качество нашей работы. Поэтому не ленимся, копируем пикселы, окружающие буквы на скане, и вставляем их на сами буквы. Жмем «М» (инструмент «Прямоугольная область»), обводим пиксел фона, жмем <Ctrl+C>, обводим пиксел на букве, жмем < Ctrl+V>. Стараемся сохранить переход цвета из одного тона в другой, контуры водяных знаков, различные полосы. 5. Выстраиваем имеющиеся буквы на подготовленном в предыдущем шаге месте. Щелкаем по слою с очередным символом, делаем его видимым (Слой ->Показать_слой), выбираем инструмент «Перемещение» (клавиша «V») и перетаскиваем изображение буквы на нужное место. 6. Проверяем получившийся результат. Если все устраивает, соединяем слои через Слой -> Объединить_видимые (Shift+Ctrl+E) и сохраняем изображение в нужном формате (JPEG, BMP и т.п.), выбрав меню Файл -> Сохранить_как (Shift+Ctrl+S). Качество получившегося скана напрямую зависит от количества потраченного времени и прямоты твоих рук. Удачи начинающим художникам! Задача
РешениеВардрайвинг aka взлом Wi-Fi сетей с каждым днем становится все более актуальным. Это и неудивительно, ведь беспроводные сети получили широкое распространение на территории нашей необъятной Родины. Ну да ладно, от лирики к делу. Как ты знаешь, многие сети используют WEP-шифрование, поэтому для реализации задуманного нам потребуется:
Также необходимо запастись следующим софтом (под Линух):
После того, как ты заинсталишь вышеуказанные утилы, можешь смело двигать в поисках Wi-Fi-точек. Как только ты обнаружишь наличие WEP-шифрования, дальнейшие действия будут выглядеть следующим образом: 1. Запускаем Airodump: airodump Wi-Fi-cart dump CHANNEL 1 – где Wi-Fi-cart – имя твоей Wi-Fi-карточки, а CHANNEL – канал точки доступа. Тулза перехватит и сохранит IVs (Initialization Vectors) в файл с расширение .ivs. 2. Теперь запускаем утилу Aircrack, причем сделать это можно даже в момент работы Airodump: aircrack -a 1 -b MAC dump.ivs – где MAC – MAC-адрес точки доступа, а dump.ivs – файл, в который Airodump собирает IVs. 3. Ждать. Время взлома ключа напрямую зависит от количество собранных IVs. Весь указанный софт давно существует и для Win-платформы, но все же я советую юзать тебе Linux. Существует даже специальный Live CD для вардрайверов на базе SLAX – Backtrack Linux, включающий в себя сканеры, анализаторы сетей и прочие полезные тулзы. Кстати, ты запросто можешь установить данный дистр себе на винт и юзать в качестве штатной ОС. Но тут, как говорится, каждому свое. Кроме того, советую позаботиться о собственной безопасности и конспирации. В общем, удачного вардрайвинга. Задача
РешениеТы, наверное, слышал о таком виде хакинга, как bluehacking, то есть хакинге посредством блютус-соединения. Тем не менее, информации по данному типу атак довольно мало, посему начнем по порядку. Прежде всего, нам потребуется КПК, либо смартфон с WIndows Mobile, а также тулза под скромным названием «Терминал». Смело инсталь утилу на свой девайс и запускай блютус. Единственный минус – тулза работает только после осуществления авторизации и установления соединения с другим устройством, но тут уж применяй собственные навыки Си :). После того, как жертва авторизирует тебя, запускай «Терминал» и выбирай необходимый режим работы:
Как ты видишь, тулза обладает огромным потенциалом. Важно лишь грамотно им распорядиться. Кстати, софтинку мы заботливо выложили на наш DVD. Задача
РешениеТакая задача возникает в процессе отладки практически любой программы. Например, часто требуется отследить, когда в ячейке памяти появится некоторое значение или же остановить выполнение программы, когда содержимое регистра находится в определенном числовом диапазоне. Здесь стоит сказать пару слов об условных точках останова и о таком понятии, как трассировка. Трассировка – это пошаговое выполнение программы с остановкой на каждой команде и «фиксированием» состояния регистров процессора и ячеек памяти. Если мы задали какое-либо условие, отладчик автоматически выполняет программу до тех пор, пока оно не выполнится, делая «сверку» на каждой инструкции. Небольшой пример: попробуем при помощи OllyDbg поставить условную точку останова. Прикажем отладчику остановить трассировку программы, когда значение регистра EAX будет равно 1,2 или 3. Для этого необходимо использовать логические операторы: оператор равенства («==») и оператор «или» («||»). Выражение для нашего случая будет выглядеть так: (EAX==1)||(EAX==02)||(EAX==03). Вот действия, которые необходимо выполнить для установки условной точки останова:
Теперь выполнение программы остановится каждый раз, как только наше условие будет выполнено. В том, что это действительно так, ты можешь убедиться на примере, проследив за значением регистра EAX в окне «Registers». Совет: раздел «Evaluation of expressions» стандартной справки OllyDbg содержит много полезной информации о логических выражениях. Задача
РешениеРассмотрим нашу задачу на примере трояна, определяемого DrWeb-ом как Trojan.DownLoader.20168 (создан ребятами из MadTeam). 1. Запускаем PEid и определяем тип пакера, которым запакован троян (а, как правило, это так); 2. Ищем при помощи google.ru анпакер и распаковываем лоадер. Внимание! Многие анпакеры запускают запакованный файл на исполнение, так что лучше проводить операцию распаковки на vmware или другой виртуальной машине с отключенными антивирусами; 3. Открываем файл при помощи шестнадцатеричного редактора, например, WinHex, и ищем нечто похожее на интернет-адрес. Я советую искать при помощи WinHex, так как он обладает возможностью поиска по маске. Например, поиск по маске «http://?» c указанием в параметрах поиска «использовать знак вопроса в качестве подстановочного символа» («Use this as a wildcard») дает отличные результаты. Лоадер зачастую может быть встроен в довольно объемный файл, и ручной поиск в этом случае может дать массу ложных срабатываний. Также можно попробовать произвести поиск по маске «??.??.??.??» (на случай, вдруг в лоадере содержится IP-адрес). 4. Если адрес найден, то задача успешно выполнена. Если же «операция» провалена, и адрес никак не отыскивается, придется перейти к тяжелой «артиллерии». Воспользуемся отладчиком OllyDbg. На всякий случай перед запуском лоадера под отладчиком создай его копию, так как он зачастую самоуничтожается после загрузки. Итак, загружай исследуемую программу в OllyDbg, но ни в коем случае не жми на «F9» или на «Run», иначе окажешься затрояненным. Дальше путь исследования раздваивается – либо все окажется все предельно просто, либо чуть сложнее. 5а. Первый вариант. Ставь точку останова на все функции, которые создают соединение с сервером. Мы поставим точку останова на функцию InternetOpenUrlA. Как правило, все тривиальные лоадеры используют ее (описание функции ищи на нашем DVD). Нас интересует второй параметр функции – LpszUrl, так как он и будет содержать ссылку. Смело жми <ALT-F1> и в открывшемся окошке пиши «bpx InternetOpenUrlA» (без кавычек). Точку останова установили, запускаем программу и смотрим в окошке стека параметры функции. Обычно этот путь срабатывает, но, как мы и договаривались выше, мы рассмотрим более сложный вариант – на примере лоадера Trojan.DownLoader.20168. 5б. Вариант второй – ни на какой API-функции, создающей соединение с сайтом, мы не остановились. Попробуем покопать чуть глубже. При прокрутке дампа лоадера Trojan.DownLoader.20168 чуть ниже точки входа мы видим такой набор API-функций (если представить его упрощенно и опустить лишние подробности):
Здесь необходимо краткое пояснение. Внутри одного процесса может выполняться несколько потоков (их также именуют как «нити» (threads)), причем каждому из потоков соответствует свой «контекст», то есть состояние регистров и стека. Вышеприведенная конструкция API - функций дает полное представление о работе файла лоадера. Он создает поток, который маскируется в файле svchost.exe. Хорошая маскировка :). 6. Ставь точку останова на функцию ResumeThread, которая находится по адресу 00401387h и запускай процесс по F9. После остановки процесса на брекпойнте открой диспетчер задач (CTRL-ALT-DEL) и отсортируй список процессов по имени пользователя. Как ты видишь, одна копия svchost.exe исполняется не от имени системы или локальных/сетевых сервисов, а от имени пользователя! Это и демаскирует процесс, указывая на то, что он создан лоадером. Щелкай по нему правой кнопкой и выбирай «отладка» (OllyDbg должен быть установлен в качестве Just-In-Time отладчика, это делается при помощи пункта меню «Options -> Just-In-Time debugging»). Откроется второе окно отладчика. Самое время посмотреть на потоки отлаживаемого процесса svchost.exe. Жми на кнопку с буквой «T» на панели инструментов отладчика. Данный процесс имеет 2 потока, один из них со статусом «Suspended», а другой – «Active». Как ты уже догадался, первый поток внедрен лоадером, его и выбираем. Прокрути дамп чуть ниже и по адресу 00401081 располагается... адрес сайта! Что мы и хотели получить. Одним выстрелом мы убили двух зайцев: научились искать адрес внутри троян-лоадера и разобрались в популярном механизме создания скрытно выполняемого кода! |