воскресенье, 25 декабря 2011 г.

Испытываем базовую устойчивость AVG, Trend Micro и Microsoft Security Essentials


Подготовка

В первую очередь необходимо настроить стенд для тестирования. Тестировать, а тем более «убивать» антивирусное ПО на рабочей машине — не самая хорошая идея. Тем не менее, второго (ненужного) компьютера у меня нет, поэтому я решил пойти самым очевидным способом — экспериментировать на виртуальной машине.
В качестве ПО для виртуализации я использую Oracle VirtualBox с установленным на нем Windows XP SP3. Кодить мы будем на локальной машине, а запускать и отлаживать приложение — на виртуальной.
Для начала настроим виртуальную машину. Чтобы она была доступна с хоста, нужно настроить второе сетевое соединение. Сетевой адаптер должен иметь тип «Виртуальный адаптер хоста» («VirtualBox Hostonly Ethernet adapter»). После загрузки ОС второй адаптер получит адрес из подсети 192.168.56.0/24.
В моем случае адрес был 192.168.56.102. Далее расшариваем папку на машине — я выбрал C:\Share\ fuckAv.
В качестве IDE я использую Visual Studio 2010, в комплекте с которой имеется весьма неплохой удаленный отладчик. Открывай свойства проекта, выбирай пункт Debugging.

понедельник, 19 декабря 2011 г.

Native API



Шелл для синего экрана: Изучаем программирование на Native API на примере шелла


Если программе проверки диска требуется исправить ошибки системного раздела, который не может быть отключен во время работы Windows, после перезагрузки программа запускается до открытия окна логина, отображая белые буквы на синем экране. Это — особый режим работы Windows, в котором еще не работает подсистема Win32, зато есть полный доступ к файлам и реестру.

воскресенье, 18 декабря 2011 г.

Оптимизация PHP


Стандартная практика, которой пользуются разработчики больших приложений, заключается в переносе ресурсоемких участков кода на С++. Функционал оформляется в виде модулей, которые далее подключаются к PHP. Но есть и альтернативные пути. Например, в недрах Facebook’а был разработан замечательный инструмент HipHop for PHP 

среда, 14 декабря 2011 г.

Хроника внедрений в автозагрузку


Скрытые ключи автозапуска в системном реестре
Существует множество широко известных ключей автозапуска, в которые прописываются вирусы, черви, трояны и другие программы, пытающиеся внедриться в атакуемую систему, и которые проверяют антивирусы, брандмауэры и прочие сторожевые механизмы, бьющие хакеров еще на старте. Чтобы выжить в этом суровом мире, полном ужасных защитных монстров, приходится извращаться не по-детски и разрабатывать методики поиска малоизвестных ключей автозапуска, неподвластные никаким анализаторам реестра.

воскресенье, 20 ноября 2011 г.

Убрать возможность захода в безопасный режим Windows.


Наверное каждый, кто пользовался виндой, залезал в этот пресловутый безопасный режим (Safe Mode) для решения каких-то проблем в самой ОС, либо вычищая накопившиеся кучи вирей :). Ну так вот, чтобы твой вирь не покоцал комп, да или просто из хулиганских целей (вспоминаются ранние выпуски журнала Хакер :)), безопасный режим можно убить. Делается это просто – удалением следующей ветки реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SafeBoot

понедельник, 17 октября 2011 г.

алгоритм конвертирования MySQL таблицы в Excel файл.


алгоритм конвертирования MySQL таблицы в Excel файл.

зашифровать фейковую ссылку


 Сейчас в паблике известны следующие редиректы:

сгенерировать список IP-адресов по определенному диапазону

 С поставленной тобой задачей легко справятся следующие несколько строк php-кода:

Игра в прятки на уровне ядра


Процессы в Windows (как и в любой другой ОС) – это наше все. От ядра до калькулятора, операционная система представляет собой лишь набор процессов. Когда ты дважды кликаешь на значок какой-нибудь программки, чтобы запустить ее, в недрах системы приводятся в действие огромные ресурсы, выделяется память, вызываются десятки Native API... И сегодня мы поговорим о том, как эффективно использовать эти ресурсы в решении нетривиальных задач при работе с процессами на уровне ядра Windows.

пятница, 23 сентября 2011 г.

обезопасить сервер от популярных атак


Через апачевый .htaccess обезопасить сервер от популярных атак (кроме как блокировать доступ по IP-адресу в определенные папки)

Секреты netcat


Задача: необычным способом запустить netcat с явной выгодой для хакера

Приведу несколько способов запуска netcat’а, о которых мало кто знает.

Полезные команды UNIX


Наиболее полезными командами будут:

уязвимости в php-функции parse_str()


Это не совсем уязвимости, скорее - неграмотное использование функции веб-разработчиками. Итак, функция parse_str(string str [, array arr]) разбирает строку str, которая должна иметь формат строки запроса URL, и присваивает значения переменным в текущем контексте, если не передан второй аргумент arr. В последнем случае значения будут сохранены в этой переменной в качестве элементов массива.
Представь, что у тебя есть скрипт script.php, в котором вписан следующий код:

Эмуляция "браузерных" функций (отправка/прием POST, GET-пакетов, работа с кукисами и т.д.)

php-класс «PhpSploit Class» может выполнять практически все, что позволяет протокол HTTP.
Сам класс (а также все его апдейты) находится по адресу http://mgsdl.free.fr/?2:3. Привожу ниже код:


защищаем веб-приложения, построенные на популярных AJAX-фреймворках


Год назад об AJAX говорили как о новой перспективной технологии, но сегодня он как-то выпал из поля зрения. Значит ли это, что AJAX не оправдал надежд и постепенно уходит в историю? Нет и еще раз нет. AJAX – это технология back-end, реализация которой перешла с прикладного уровня на уровень фреймворков.

Основы работы с библиотекой cURL в Builder C++


Если твои сиприплюснутые программы когда-нибудь нуждались в широких и гибких автоматизированных возможностях работы с интернет-ресурсами, то настоятельно рекомендую прочитать этот захватывающий рассказ о самой простой их реализации. Почему простой? Да потому, что в программировании все, как в жизни – сложно и ничего не понятно… но только до тех пор, пока сам не попробуешь.

В этой статье я покажу, как легко интегрировать и использовать функции библиотеки libcurl в программу на C++ (Builder 6 C++ ). Кроме того, мы рассмотрим некоторые основы работы с libcurl: работу по протоколам HTTP и HTTPS, формирование запросов, работу через разные типы прокси с возможностью авторизации, отправку данных методом POST и GET, а также настройку работы с cookies. Все возможности библиотеки libcurl рассматривать, думаю, не стоит, главное - понять принципы.

Создать код, который будет изменять инструкцию, передающую ему управление, с последующим возвратом управления на нее же.


Иногда необходимо задать кодокопателю задачу и наставить ловушек, из которых выбраться будет непросто. Как тебе, например, идея: превратить некоторую исходную инструкцию PE-файла в переход к коду, – он будет выполнять модификацию этой инструкции перехода (от которой получил управление), превращая ее в исходную?
Схематично этот процесс выглядит следующим образом:

Объединить вывод записей из таблицы БД в одну строку при проведении sql-инъекции в MySQL


Несмотря на свою «популярность», SQL-инъекции по-прежнему встречаются на множестве ресурсов. Но, как известно, основной проблемой при реализации скул-инъектов является вытягивание записей из табличек. Конечно, можно по старинке менять значение LIMIT'а, регулируя, тем самым, вывод данных в отображаемые поля. Однако есть более простой и действенный способ, заюзав который, ты получишь много данных и сразу. Речь идет о функции GROUP_CONCAT() в MySQL => 4.1 версии. Она позволяет объединить в одну строку несколько записей из таблицы (по аналогии с известной тебе функцией concat(), объединяющей несколько полей).

Как залить свой файл при safe-mode и отключенных nix* качалках?


 Я подскажу тебе пару трюков с PHP-сценариями на тему заливки файлов на сервер:

что такое PUT-запрос и как им воспользоваться в хакерских целях


Приведу недавний пример использования бага с PUT в популярном блоговом движке WordPress 2.2:

обезопасить доры от кражи


Обычно доры воруют на сайтах, взломанных с помощью паблик-уязвимостей. Чтобы избежать этого, найди открытые на запись конфигурационные файлы паблик-движка (или инклуд на худой конец :)) и вставь в любое место PHP-кода следующее:

четверг, 22 сентября 2011 г.

Некоторые полезные линки для спама и парсинга


 Достать валидные строки с юзерагентами поисковиков

Специальный сервис useragentstring.com/pages/useragentstring.php с легкостью предоставляет тебе такую возможность. Зайдя на представленную выше страницу ты увидишь полные списки из всех известных юзерагентов, разбитые по категорияем:

Из одного списка мыл удалить те, которые присутствуют в другом списке.


Проще всего с поставленной тобой задачей справится следующий несложный скрипт на php:

Изменить время создания файла, тем самым, замаскировав шелл на сайте


Опять возвращаемся к вопросу сокрытия шелла, залитого на сайт. Каким образом админы находят и удаляют залитые файлы? Вариантов много, но один из них - это поиск по дате создания и изменения файла. А это время мы можем изменить, тем самым, усложнив админу задачу. Конечно, не панацея, но иначе шансы спалиться резко возрастают.
Итак, приступим:

Замаскировать шелл под местность с помошью .htaccess


Заливая шелл на какой-нибудь ресурс, ты, конечно, хочешь, чтобы он прожил максимально долго, и не был удален злобными админами в первый же день. Для этого шеллы прячут и маскируют под местность, чтобы файл не вызывал подозрений. А какие файлы в первую очередь вызывают подозрения? Ну, конечно же, скрипты. То есть, файлы с расширением .php .phtml .cgi .pl и т.д. будут проверены первыми. И, напротив, не вызывают подозрения, например, картинки. Но какая же польза от файла с расширением .jpg или .gif, скажешь ты. Ведь он неисполняемый и, если даже засунуть в него .php-код, то, чтобы он заработал, нужен будет инклуд. Это не совсем так, а точнее, совсем не так. Заставить апач воспринимать файл с любым расширением как .php нам поможет .htaccess.
Посмотрим, как это делается:

скрыть время создания залитых файлов на взломанной Винде


Напишем небольшую прогу, меняющую время создания и изменения наших файлов на параметры, не вызывающие никаких подозрений. Используем для этого API-функции, например, при помощи языка C++.

Oтослать письмо с поддельным адресом отправителя


Зачастую у многих из нас возникает необходимость отправить на мыло мессагу с поддельным адресом отправителя. Цели у всех разные: кто-то просто хочет приколоться над другом, а кто-то таким образом обходит антифрод в очередном забугорном шопе :). Тем не менее способ реализации в обоих случаях одинаковый. Для наглядности я подробно распишу все необходимые действия, чтобы у тебя не возникало лишних вопросов. Итак:
1. Берем в руки PHP и начинаем кодить (комменты ниже):

Интернет из нулевого кольца: программируем сеть в ядре Windows


Прочтя заголовок, ты, наверное, ожидаешь, что сейчас тебе во всех подробностях расскажут оработе с сетью в ядре Windows. Но задача это трудная по двум причинам: во-первых, из-за сложности темы; а во-вторых, из-за практически полного отсутствия осмысленных статей на эту тему на русском языке. Но, как говорят китайцы, «дорога в тысячу ли начинается с первого шага». Мы с тобой начнем ее прямо сейчас.

Овладеваем чужим компом за несколько секунд


Мутим западло

Итак, мы оказались за чужим компом всего на несколько минут. Что можно сделать за это время? В принципе, все что угодно, но это должно быть заранее подготовлено. Да, отформатировать винт можно одной командой в консоли, но скучнее шутки не придумаешь. Мы попробуем сымитировать всем знакомый BSOD (Blue Screen of Death). Синий экран смерти можно наблюдать в тех случаях, когда возникает ошибка в коде ядра или драйвера, выполняющегося в режиме ядра, либо вызвать его вручную. В отличие от оригинального, во время показа нашего BSOD Винда будет продолжать свою работу, выполняя нужные нам задачи, а после перезагрузки от него не останется и следа.
Напишем небольшую программку на С++, использующую Win32 API. Для фейкового экрана нам необходимо полностью очистить рабочий стол, поместить на него изображение оригинального BSOD и убрать мышь. Также для примера обработаем нажатие клавиш <Alt-Tab> и вызов диспетчера задач.

получить права SYSTEM в Винде


Ни для кого не секрет, что самым верхним уровнем доступа в Винде является ring 0 или, как говорят, нулевое кольцо. А самым низким - права гостя. Тем не менее Винда не Линукс, и завидное большинство пользователей в повседневной работе сидит из-под админского аккаунта. Чем это грозит и что из этого можно извлечь, мы описывали в статье «Овладеваем чужим компом за несколько секунд». Но порой одним западлостроением не обойтись, да и права SYSTEM лишними не бывают, тем более что с ними открываются поистине рутовые возможности в Винде. На самом деле получить такие права в системе не составляет никакого труда, нужен лишь админский аккаунт и минута свободного времени. Итак, приступим:

3амутить бэкап данных без потери места на винчестере


Попытаемся решить эту проблему раз и навсегда при помощи одной из фишек файловой системы NTFS - жестких ссылок (hard links). Имя файла является жесткой ссылкой на определенную область памяти, причем мы не ограничены в использовании нескольких жестких ссылок на одну и ту же область, а значит, файл может иметь несколько имен. Жесткие ссылки работают только в пределах одного логического диска с NTFS, не занимают места на винте и равноправны. Файл не будет удален, пока остается хотя бы одна жесткая ссылка.

Cоздать лоадер для загрузки трояна на компьютер


В последнее время в Сети появилось огромное множество самых разнообразных троянов. На страницах журнала мы не раз описывали принцип действия распространенных зверьков, поэтому возвращаться к этому мы не будем. Лучше рассмотрим достаточно простой в реализации, но вполне работоспособный вариант собственного производства. Ведь все, что есть в паблике, ты и так найдешь, не правда ли? :) Суть идеи такова: заюзать стандартный виндовый батник (с заранее описанными командами) и Java-скрипт, который будет прикрывать батник в процессе выполнения.

преобразовать SQL-дамп к виду email:password


Проблема парсинга баз, в том числе и SQL-дампов, не нова даже для хакеров-новичков. Ведь не секрет, что большинство ломаемых хакерами ресурсов в качестве логина пользователя использует именно мыло :). Также известно, что многие юзеры очень любят ставить один и тот же пассворд на кучу сервисов, а значит, и здесь есть, чем поживиться широкому хакерскому карману. Сразу скажу, что способов реализации задуманного несколько. Начнем с первого:

Что такое JSON?


JSON (англ. JavaScript Object Notation) — это специальный текстовый формат, который часто используется для передачи структурированных данных по сети. Основанный на JavaScript, он обычно применяется именно с этим языком и представляет собой альтернативу традиционному формату XML. Практическая польза использования JSON открывается при применении технологии AJAX. Формат JSON является более кратким и удобочитаемым по сравнению с XML. Кроме того, в JSON-код возможна вставка вполне работоспособных функций. Вот так, например, можно представить информацию о нашем редакторе Forb'е и преобразовать ее в JSON-формат.

Вариант автозагрузки


Одними из первых при запуске системы стартуют сервисы. Создадим фейковую службу для автозагрузки нашей проги.
Для начала определимся, чем отличается обычное win-приложение от сервиса?
Сервис имеет определенную структуру, должен откликаться на управляющие команды (запуск, остановка, пауза, продолжение работы) и сообщать о своем состоянии (работает, остановлен и т.д.). Есть несколько способов запустить приложение как службу Windows: от написания и использования полноценного сервиса до запуска любой проги как сервиса при помощи instsrv.exe и srvany.exe из Windows Resource Kit. Рассмотрим один из вариантов.

Методы обхода safe-mode php


Вот некоторые скрипты, которые помогут тебе прочитать содержимое файлов и каталогов в системе при включенном safe-mode:

бесплатный хостинг в качестве прокси сервиса

Cуществует отличная реализация прокси, написанная на PHP. Я имею в виду Glype Proxy (www.glype.com), единственным требованием для работы с которой является наличие интерпретатора PHP5 с установленным cURL. При всей простоте использования (для установки, достаточно залить скрипт на сервер) она предоставляет широкую функциональность. Тут тебе и кэширование на сервере (для ускорения работы), и управление доступом (для того, чтобы твою прокси не использовал кто попало), и преобразования URL (для обхода корпоративных фильтров, отсеивающих контент по URL), и поддержка плагинов. Развернуть целую сеть из проксей позволяет Glype Manager, также доступный на офсайте.

Энциклопедия антиотладочных приемов


Трассировка или игры в прятки

Обзор антиотладочных приемов мы начнем с базовых понятий, фундаментальным из которых является трассировка (или пошаговое исполнение кода). Сначала мы узнаем, зачем нужна трассировка, как и в каких целях она используется отладчиками, по каким признакам защитный код может определить, что его трассируют и какие примочки к отладчикам позволят хакеру избежать расправы.
Уже давно никто не трассирует программы от начала и до конца – слишком утомительно и непродуктивно. Однако не стоит полностью списывать трассировку со счетов, она и сейчас живее всех живых!

зверский кликер на C#


Объектная модель HTML в C#

Язык С# представляет разработчику богатый набор классов для работы с Html, который поможет нам совершать с веб-страницей практически все, что угодно, без малейшего напряжения. Жаль, что Microsoft практически это не документирует. Уж не знаю, в чем причина, но замечено, что Microsoft делает возможным реализацию очень многих вещей на C#, но документирует из них лишь 15-20%, до остального же приходится доходить самому (либо с помощью своего обширного мозга, либо сперев нужные участки из чужих листингов).
Главным классом здесь, конечно же, будет WebBrowser, который заключает в себе почти весь набор методов, свойств и событий, присущих Internet Explorer. По сути, WebBrowser является клоном IE, поскольку, к примеру, при обработке каких-либо веб-скриптов или ошибок будут задействованы его библиотеки.

Простой loader на С++

Заливать файл на сервер будем по ftp при помощи стандартной виндовой утилы ftp.exe. Процесс автоматизируем небольшой прогой на С++. Одно из преимуществ этого метода – обход криво настроенных фаерволов, так как у большинства незадачливых владельцев «огнестенок» командная строка (через которую, собственно, и работает майкрософтовский фтп-клиент) находится в списке доверенных приложений. Вооружившись компилятором, приступим к решению.

Об этом блоге

Данный блог будет скорее чем-то типа записной книжки, в которую будут скопированы различные интересные идеи с журнала "Хакер". Что бы там кто не говорил, но в данном журнале очень много различных интересных идей для кодинга и хака,и среди печатных и непечатных изданий равных ему нет.
Сайт журнала http://xakep.ru/