Easy-Hack
Задача: Подменить адрес линка в строке состояния браузера IE6/IE7Решение:Я думаю, ты хорошо знаком с такой замечательной вещью, как IP-Spoofing. Вдаваться в технические подробности не имеет смысла (да поможет тебе Гугл). Порой необходимо использовать подобные махинации при создании фейковых сайтов или редиректов. Как ты знаешь, при наведении указателя мышки на линк в окне браузера, в строке состояния отображается адрес, на который указывает ссылка. Нашей первостепенной задачей станет подмена истинного адреса, который видит юзер, на наш – фейковый. Проводить все манипуляции мы будем на примере ослика 6 и 7 версии (более распространенных браузеров пока не существует). Приступим! 1. Допустим, линк сайта со сплойтом (куда обязательно должен попасть юзер:)) – www.hacker.com, а маскировать ссылку будем под мелкомягких – www.microsoft.com. 2. Открываем HTML/PHP-файл, который нам необходимо отредактировать (то есть, добавить в него фейковый линк). 3. Дописываем в открытый хтмл/пхп-файл следующий код: <a href="http://www.hacker.com/" 4. Вот и все. Открываем страничку в ослике и видим, что линк с названием «http://microsoft.com» отображается в строке состояния, как «http://microsoft.com», хотя на самом деле ведет на «http://www.hacker.com» :). Задача: Быстро и качественно создать аватаркуРешение:С давних временем рисовальщики на различных форумах предлагали свои услуги по созданию аватарок. Астрономическая цена некоторых шедевров порой просто удивляла. Что делать, когда желание иметь красивую аватарку есть, а денег нет? Нарисовать самому! А если и рисовать не умеешь – время обратиться к бесплатным сервисам. Ты не ослышался, таковые существуют. Об одном из них я расскажу более подробно:
Задача: Заюзать выполнение команд на виндовом сервере с MSSQL через sql-инъекциюРешение:Одним из больших плюсов при проведении атак на MSSQL-серверы, помимо обязательного наличия заветной таблички information_schema.tables, является еще и возможность выполнения консольных команд через СУБД. Но это только при условии, что у пользователя, от имени которого мы имеем доступ к базе, достаточно прав. Ниже я приведу список процедур, которые, при наличии определенных прав, ты можешь смело заюзать:
С таким боевым набором руки у нас полностью развязаны. Особенный интерес представляет выполнение консольных команд – «xp_cmdshell». Чтобы грамотно использовать эту возможность, тебе необходимо: 1. Найти sql-инъекцию, убедиться в наличии полей вывода и т.д. (расписывать не буду – полистай подшивку ][ на тему «SQL-инъекция в MSSQL») 2. Вставить в sql-запрос к СУБД следующий фрагмент: ;exec master..xp_cmdshell 'консольная команда'-- На практике это может выглядеть примерно так: http://target.ru/index.asp=-1;exec master..xp_cmdshell 'dir C:\'-- 3. Если команда выполнилась успешно – считай, что повезло и сервер у тебя в руках. В противном случае – причина ошибки, скорее всего, кроется в правах пользователя. Кстати, если удача на твоей стороне и команды успешно выполняются, советую попробовать добавить нового пользователя и работать с удаленным сервером уже через telnet. Поверь, так намного удобнее. Задача: Легко и красиво убить WindowsРешение:Ни для кого не секрет, что второе название Windows – mustdie. Иногда возникает желание грохнуть собственную Винду, иногда – соседскую. Разберем три варианта реализации этого доброго дела. 1. Самым скучным приемом будет удалить скрытый системный файл «ntldr». Находится он на диске, с которого производится загрузка (как правило, это диск С:). После перезагрузки перед нами черный экран с надписью: "NTLDR is missing Отсутствие системного файла сразу бросается в глаза – и юзверь может попытаться его восстановить. 2. Другое дело, если убрать скрытый системный «NTDETECT.COM», лежащий рядом. После рестарта пользователь будет наблюдать бесконечную череду перезагрузок (без вывода каких-либо сообщений). Отмечу: перезагрузок компа, а не Винды. До нее дело просто не доходит. Придется задуматься над тем, как исправить ситуацию. Для нас же очевидно: возвратить файл на свое законное место. 3. Изощренным коварством будет редактирование всем известного «boot.ini». Именно изменение, а не удаление (после удаления Винде все же удается загрузиться). Итак, открываем его блокнотом и находим строки с путями до Windows вида multi(0)disk(0)rdisk(0)partition(1)\WINDOWS Это – иерархия оборудования (железа), по которой определяется жесткий диск и раздел, где стоит Винда. Наша цель – задать несуществующую, ошибочную конфигурацию. Дадим системе понять, что Винда поставлена не на первый, а на девятый раздел: меняем все «partition(1)» на "partition(9)". Сохраняем и перезагружаемся. Любой желающий может прочесть: «Не удается запустить Windows из-за аппаратных ошибок настройки диска. Не удается выполнить чтение с выбранного загрузочного диска. Проверьте указанный путь и исправность оборудования диска. <...>». Можно и поиздеваться: напишем прогу, реализующую один из этих трех вариантов и поместим ее в автозагрузку. Как только юзверь «поднимет» Винду (если, конечно, «поднимет»), она отработает ровно до следующей перезагрузки и будет опять ожидать помощи, выводя тоскливые сообщения. А что, если не дать ей работать и прописать в проге моментальную перезагрузку и/или использовать сразу все три варианта, описанных выше? При грамотной реализации восстановлению такая Винда уже не подлежит. Задача: Создать в памяти процесса новую область, которая впоследствии может быть использована для сохранения данныхРешение:Для вставки данных (как вариант, кода) в простых случаях можно пользоваться пустыми областями, оставленными компилятором для выравнивания. К сожалению, удается это далеко не всегда, ведь пространства, «подаренного» нам форматом PE, может оказаться недостаточно. Остается только одно – зарезервировать память каким-либо другим образом. Кроме того, необходимо выставить соответствующие атрибуты страницы памяти, отвечающие за возможность чтения и записи в нее. Воспользовавшись MSDN, выясняем, что такой возможностью обладает API-функция библиотеки kernel32, которая называется VirtualAlloc. Взглянем на ее прототип: function VirtualAlloc( Выделив память при помощи VirtualAlloc, мы можем разместить там необходимые данные. Попробуем зарезервировать для собственных нужд 2000h байт памяти на примере стандартного блокнота. 1. Открываем программу для отладки в OllyDbg и копируем первые две инструкции стартового кода, располагающегося на OEP, при помощи команды контекстного меню «Binary -> Binary copy». 2. На точке входа, по адресу 0100739D, вписываем инструкцию перехода по адресу, где мы расположим код, выделяющий область памяти: 0100739D jmp 01008748. 3. Первые две инструкции, которые мы заменили условным переходом, предварительно скопировав в буфер обмена, помещаем по адресу 01008748 («Binary -> Binary paste»). 4. Определим начальный адрес региона для резервирования памяти. Откроем карту памяти процесса, нажав <ALT+M>, и выберем любой адрес, который не принадлежит ни одной из существующих (уже зарезервированных) областей памяти. В нашем примере это будет 123000h – адрес не принадлежит ни секции, которая начинается по адресу 00090000h и имеет размер 5000h байт, ни последующей секции, начинающейся с адреса 00190000h. Размер резервируемой нами области будет равен 2000h байт, как и условились ранее. 5. Параметры, необходимые для успешного выполнения VirtualAlloc, будем помещать в стек, начиная с последнего, в соответствии с принципами работы стека. Размер секции мы определили – 2000h байт. Следовательно, следующей инструкцией будет push 2000. И, наконец, параметр lpvAddress, определяющий начальный адрес для резервирования области памяти, равен 123000h. Вводим инструкцию push 123000. 6. После того, как размещены все четыре параметра, необходимые функции VirtualAlloc, вызываем ее инструкцией call VirtualAlloc. 7. Передаем управление основной программе, по адресу 010073A3: jmp 010073A3 Приведем написанный нами код целиком: 0100739D jmp 01008748; переходим к коду, который должен резервировать область памяти; 8. Сохраняем файл («Copy to executable -> All modifications»). Теперь, если протрассировать код вплоть до выполнения VirtualProtect и воспользоваться картой памяти, можно увидеть: появилась новая секция, начинающаяся по адресу 123000h. Что и требовалось получить! Задача: Создать базу e-mail адресовРешение:Как правило, много мыльников используется для поздравления всех с Новым Годом, но некоторые злоумышленники юзают их для спам-рассылок рекламы и подобной чепухи. Возьмем одну из многочисленных прог по этой тематике и соберем собственную базу мейлов. 1. Ставим бесплатную русскоязычную утилу E-Mail Capture (rsoftware.net/mail/mail.zip). 2. Запускаем, переходим «Настройки -> Общие» в меню слева. Вводим страничку, с которой начнется поиск. Максимальное количество потоков ставим в зависимости от ширины канала – либо от типа соединения: чем быстрее интернет, тем больше потоков. Если интересуют адреса с определенного сайта, ставим галочку в пункте «Не ходить по внешним ссылкам» (но без этого пункта прога ищет куда больше e-mail'ов). Для экономных пользователей создана графа, лимитирующая размер открываемой при поиске страницы. Владельцам безлимитного подключения ограничение можно смело отключить. 3. В разделе разрешенных расширений можно найти самые распространенные форматы: HTML, SHTML, PHP, JS, ASP, CGI; а можно добавить и свои. Именно на этих страницах будет производиться поиск. Удобный инструмент располагается в самом низу панели – поиск адреса по маске. Допустим, введя «leha*@*», мы получим базу мейлов, содержащих leha в своих адресах. 4. В следующем меню («Подключение») владельца высокоскоростного интернета заинтересует лишь настройка прокси. Спускаемся в «Исключения» и подгоняем поиск под нужные нам рамки: обходим нежелательные сайты, выбрасываем не нужные mail-адреса. 5. Подготовка закончена. Коннектимся к инету и запускаем поиск, который даже не требует никакого участия пользователя. Прога может самостоятельно запускать сбор мыльников в заданное время и выключать комп по завершению процедуры. Естественно, количество получаемых мейлов напрямую зависит от потраченного на поиск времени и трафика. Задача: Завершить любой несистемный процесс работающего сеанса пользователя, защищенного паролемРешение: Порой необходимо получить доступ к какому-либо процессу в памяти сеанса пользователя, который находится в фоновом режиме (приостановлен при помощи команды «Пуск -> Выход из системы -> Смена пользователя»). Но вот беда: диспетчер задач не отображает процессы, выполняемые с правами учетной записи другого пользователя. Можно воспользоваться отладчиком OllyDbg, который видит «чужие» процессы. Коме того, реально модифицировать код процесса в своих целях прямо из-под отладчика (позволит, например, добыть пароли, залогировать ввод и т.д.) 1. Входим в систему под любой учетной записью. 2. Открываем отладчик OllyDbg. Теперь выбираем пункт меню «File -> Attach» и в списке процессов выбираем необходимый. 3. Нажимаем кнопку «Attach» для отладки процесса. Завершить его можно, нажав на кнопку «Terminate». В случае модификации процесса в памяти с помощью отладчика помни одну вещь. Следует удалить все точки останова после выполнения необходимых действий, оставить процесс в состоянии исполнения (нажав <Shift+F9>), свернуть окно отладчика и выйти из текущего сеанса пользователя по команде «Пуск -> Выход из системы -> Смена пользователя». Тогда единственное, что может выдать внедрение в память процесса, – низкая скорость работы ресурсоемкого приложения. |