Прокси-ботнет из роутеров

В 2010 году, в период тестирования SSH Bruteforce'a одним хорошим человеком, я узнал, что на Европейских диапазонах IP-адресов попадается приличное количество SSH-доступов к всевозможным роутерам. Наиболее частыми среди них оказались роутеры с MIPS-процессором и известной кастомной прошивкой DD-WRT.
Казалось бы, особой пользы с них не извлечь, но ещё тогда был предложен вариант использования их в качестве прокси. До тестирования концепции на тот момент руки не дошли, а сегодня я как раз разбирал старые архивы и решил попробовать собрать рабочий пример под подобный роутер. Благо, у меня валяется парочка таких. Стоит отметить, что поднятие прокси-серверов на роутерах также обладает всем известной спецификой, которая заключается в том, что у провайдеров часто используются динамические IP, поэтому, естественно, прокси-сервер должен сообщать свой текущий IP некой веб-админке.
Читать далее «Прокси-ботнет из роутеров»

Quest 3 — Return to Classics — Полное прохождение


В этой статье я опишу полное прохождение нашего третьего квеста.

Напоминаю его адреса:

Русская версия
Английская версия

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

Помимо сухого прохождения я расскажу, как получить все достижения квеста и доступ к секретной карте, доступной после прохождения основной сюжетной линии, а также опишу все отсылки к другим фильмам/книгам/сериалам/играм, которые были использованы при создании квеста.

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

Читать далее «Quest 3 — Return to Classics — Полное прохождение»

Методика деобфускации PHP-скриптов для чайников. Полезные советы.

Очень часто непосвященные люди задают вопросы вроде "Как расшифровать обфусцированный PHP-скрипт?", "Хороша ли защита PHP-скрипта обфускатором?" и даже "Помогите деобфусцировать! Вам же не сложно?". Цель этой статьи - показать, что обфускаторы дают в 90% случаев никакущую защиту (которая способна защитить только от людей, увидевших язык программирования первый раз в жизни). Снять ее можно обычно минут за 10-20, получив исходный PHP-скрипт в первозданном виде. Остальные 10% случаев - это немного усложненная защита, которая, впрочем, снимается теми же путями. Если вы желаете самостоятельно научиться снимать обфускацию со скриптов, то эта статья специально для вас!

Как я уже говорил выше, задача деобфускации PHP-cкриптов очень актуальна. Достаточно взглянуть на один популярный хак-форум:

Читать далее «Методика деобфускации PHP-скриптов для чайников. Полезные советы.»

Капча с использованием HTML5

На большинстве сайтов в качестве капчи используется картинка, подгружаемая в бинарном виде при обращении к некоему скрипту-обработчику. Реже встречаются капчи, отображаемые с использованием технологий Flash или Java. Плюс в использовании таких капч безусловно есть, но некоторые пользователи любят отключать подобные расширения, с целью обеспечения дополнительной безопасности при серфинге в интернете. Однако пятая версия основного языка разметки веб-страниц принесла с собой множество полезных нововведений. Одно из них - элемент canvas, который предназначен для создания растровых изображений с помощью JavaScript.
Соответственно, с помощью этого элемента и JS можно выводить изображения капчи в браузер, например, в виде массива точек, которые будут собраны в изображение с помощью JS. В чем смысл? Смысл в том, чтобы затруднить автоматизированное распознавание изображений.

Во-первых, можно придумать специфический формат хранения данных, который будет впоследствии декодироваться скриптом.
Во-вторых, можно упаковать и обфусцировать данные изображения, чтобы затруднить парсинг и навязать использование JS-интерпретаторов.
В-третьих, можно использовать специфичные для браузеров JS-«фичи», которые затруднят работу интерпретаторов.
В общем, есть, где развернуться.

И, наконец, вот простой пример подобной капчи (без маджонга и гейш). По идее должен нормально работать в FireFox, Opera, Chrome и IE9.
Исходный код: скачать

PHP Obfuscator 1.5

Вот и увидела свет новая версия этого скрипта.

Возможности обфускатора (включая новые):
[+] Замена имен переменных
[+] Замена имен функций
[+] Шифрование статических строк
[+] Шифрование имен стандартных функций PHP
[+] Обфускация INTEGER’ов
[+] Сжатие скрипта
[+] Архивация скрипта
[+] Добавление треш-комментариев
[+] Обфускация констант PHP
[+] Возможность добавления мусорных инструкций и переменных заданной вероятностью
[+++] И многое другое, множество удобств

Исправлены различные недочеты, ошибки, имевшиеся в версии 1.4, улучшена обфускация в некоторых случаях, версия 1.5 более экономно расходует память.

Теперь обфускатор создает каждый раз совершенно новый код, особенно с включенной опцией добавления мусорных инструкций.

Обфускатор не поддерживает конструкции eval() и $$var_name, а также по-прежнему могут быть проблемы со скриптами в кодировке UTF-8.

Вот, например, во что можно превратить простой "Hello, world!":

В редакторе это выглядит так:

Скачать: ZIP

Обновление 11 октября: поправлены ошибки при обфускации классов, тем не менее, поддержка классов на данный момент неполная.

Simple AJAX Chat

Написал простой движок немодерируемого чата на php+javascript.

Возможности:
[+] Вход в чат под выбранным никнеймом
[+] Смена никнейма
[+] Список участников
[+] Действия с участниками, аналогично mIRC
[+] Команда /me
[+] Смайлы
[+] Антифлуд
[+] Поддержка модулей (в движке уже есть несколько написанных для примера - время, транслитератор, печать строки наоборот, получение случайной цитаты с bash.org.ru, получение погоды, отображение списка модулей, отображение списка смайлов, курсы валют, определение PR и ТИЦ сайта)
[+] Возможность включить базовую авторизацию, что позволяет как организовать публичный чат, так и приватный для какой-то группы людей
[+] Приватные сообщения
[+] Функции для администрирования чата

Чат имеет множество настроек, все они находятся в начале файла index.php. После настройки чата необходимо сохранить этот файл в UTF-8 без BOM.

Немного документации:

1. Установка
Установка не требуется. Достаточно просто скопировать все файлы и папки на хостинг и дать права на запись файлов в папке plltxe (кроме .htaccess).
Настройки чата находятся в файле index.php в секции CONFIG.

2. Команда /me
Введите в чат
/me статус
для отображения своего статуса в окне чата.

3. Модули
Для вывода всех подключенных модулей введите /list
Модуль используется так: /имя_модуля необязательный_параметр
Например:
admin (23:50:46 23/03/2010): /currency
Курсы валют: USD: 29.3389 rub; EUR: 39.6339 rub
admin (23:51:18 23/03/2010): /weather москва
Погода: Москва: +1..+3, Давление: 747, Ветер: З, 5 - 9 м/с

4. Администраторские команды
Если вы администратор чата, войдите под произвольным никнеймом и введите:
/pass пароль_администратора
Пароль должен быть задан в самом скрипте в секции настроек.

После успешной авторизации будут доступны следующие команды:
/admin [Вася] rename Вася Пупкин
переименует пользователя Вася в Вася Пупкин

/admin [Вася] delete
Удалит пользователя Вася из чата и заблокирует текущую сессию

/admin [Вася] banip
Заблокирует IP-адрес пользователя

/admin [127.0.0.1] unbanip
Разблокирует адрес 127.0.0.1

/admin [Вася] getip
Выведет IP-адрес пользователя Вася

/admin [banlist]
Выведет список заблокированных IP-адресов

/admin [clear]
Очистит кэш чата

Рабочий пример чата тут: Simple AJAX Chat

Скачать: ZIP

Invatar — раздача инвайтов для различных сервисов

Написал скрипт, позволяющий выдавать инвайты на любые сервисы. Пример его работы представлен тут.
В комплект уже включено 8 библиотек для выдачи инвайтов (Antigate, Captchabot, Три гнома, Eroprofit, Равшанкэш, RuSpyMoney, SMS-коровка, Stabile Money, спасибо Kaimi за помощь в их написании), но также можно писать и свои под другие сервисы. Скрипт легко встраивается на страницу сайта. Кодировка по умолчанию - UTF-8, если кому-то надо другую, можно перекодировать с помощью, например, Notepad++. В приложенном архиве лежит index.php - пример встраивания модуля на страницу сайта.

Как настроить скрипт?
Просто откройте файл invites_libs/list.php, раскомментируйте строки с сервисами, для которых желаете раздавать инвайты, и впишите свои логины и пароли к ним, после чего сохраните файл в UTF-8 без BOM (сделать это можно через тот же Notepad++). Остается просто встроить скрипт на страницу, и на этом настройка завершена.

Скачать скрипт: ZIP

Плагин A-stat

Специально для владельцев блогов на движке WordPress написал небольшой плагин. Плагин позволяет выводить статистику с нескольких партнерских программ, например, в сайдбар блога.

Настроить плагин очень просто:

На данный момент плагин поддерживает следующие партнерские программы: 8coins, SMS Коровка, Fiesta, OstapCash.
Если Вы хотите, чтобы я добавил в плагин поддержку какой-либо партнерской программы - напишите об этом в комментариях, постараюсь сделать.

Скачать плагин: astat

Новые идеи про капчи

Несколько дней назад я привел пример реализации капчи-калькулятора, которую нельзя разгадать с помощью сервисов. Не так давно ко мне пришла еще одна идея - капча, вводимая мышью. Требуется четыре цифры расположить перетаскиванием в порядке возрастания. Из плюсов - быстрый ввод, не требуется несколько раз загружать картинку. Из минусов - обязательно включенный JavaScript в браузере.

Вот пример:

Файл drag.js - несколько модифицированная небольшая библиотека JS, реализующая drag'n'drop, найденная тут: javascript.ru/ui/draganddrop

Скачать исходный код: ZIP.

Когда антикапча бессильна

Если вы владеете каким-то проектом, где есть возможность для пользователей отправлять сообщения на всеобщее обозрение (форумы, гостевые и т.д.), вероятно, вы не раз чистили спам. Практически все капчи сейчас можно распознать с помощью недорогих сервисов, таких, как антикапча. Но все же, есть возможность создать такую капчу, которую нельзя будет распознать. Идея не нова, впервые подобное я увидел на mail.ru.
Готовая реализация - вот:

Пример написан на php, никакого JavaScript, для отображения капчи используется ифрейм. Никаким образом, кроме как нажимать мышью по капче, ввести ее нельзя.

Скачать исходный код: ZIP.