Easy HackЗадача: Спрятать любой файл в JPEG’ЕРешениеДавно уже руки чесались написать что-нибудь про стеганографию. Как нам сообщает Wikipedia, стеганография — это наука о скрытой передаче информации путeм сохранения в тайне самого факта передачи. Например, невидимые чернила — это один из классических методов стеганографии. В той же Вики написано, что можно писать молоком (как Ленин), а с помощью огня проявлять текст. У меня молока не было, только сгущeнка. Попробовал — не получилось. Сгущeнка палится, видать метод ненадежный… Лучше съесть :). Но мы живeм в XXI веке, и технологии требуется использовать соответствующие. Некто Антуан Санто опубликовал недавно небольшую работу по поводу скрытия любых файлов в jpeg’ах (dl.packetstormsecurity.net/papers/general/Embedding_hidden_files_in_jpeg_and_abuses.pdf). В общем-то, ничего нового он не открыл, но зато всe чeтко и последовательно описал :). Суть метода, который использовал Антуан, заключается в том, что мы можем хранить/прятать любое количество данных в exif-заголовках jpeg-файлов. Exif — это стандарт, позволяющий добавлять к изображениям и прочим медиафайлам дополнительную информацию (метаданные), комментирующую этот файл, описывающую условия и способы его получения, авторство и так далее. В общем, метаданные. Все современные фотоаппараты добавляют такую инфу к фоткам, а многие принтеры используют еe для корректной печати. Мы же эти заголовки используем для своих целей. Автор заюзал для своих экспериментов какой-то linux. Для начала поступим аналогично. Возьмeм любую фотку — test.jpg, и файл, который хотим спрятать — evil.exe. Для начала посмотрим содержимое exif-заголовков нашего jpeg’а:
Здесь exiftools — стандартная тулза для работы с exif. Главная особенность exif — количество хранимых данных не ограничено. Единственное ограничение — текстовый формат. Отсюда и решение — конвертируем наш evil.exe в Base64.
Здесь uuencode — тулза для работы с конвертацией; –m — указываем, что конвертируем в Base64. Теперь добавим полученный файл в exif-заголовок файла test.jpg.
Где:
Теперь если ты запустишь exiftools test.jpg, то обнаружишь изменения в заголовках. Таким образом, мы всe спрятали. Изображение при этом никак не изменилось. Разве что размер файла увеличился. Конечно, метод лайтовый, и задетектить его просто. Но самое интересное заключается в том, что мы можем залить этот файл в альбом на facebook или на flickr! Вообще говоря, мы можем залить и файлы, в которых использовались даже более крутые средства стеганографии (инфу прячут в самом изображении), но на всех онлайн-сервисах графические файлы проходят предобработку и содержимое меняется. Но это не касается exif-заголовков! Только Вконтакте эта тема не работает — там имеет место полная обработка изображения. Для декодирования и получения evil.exe из нашего jpeg’а нам требуется выполнить следующую последовательность. Качаем фотку с фэйсбука, а далее:
Где dd — стандартная тулза для конвертации и копирования файлов; if — из какого файла; of — в какой файл; bs=1 — размер блока 1 байт; skip=24 — пропустить первые 24 байта (заголовок jpeg). Таким образом, мы получим в test_from_FB.uue только текстовые строки, то есть наш evil.exe в Base64. Далее декодируем строку образно в exe-файл:
Вторым плюсом этого метода является его простота. Пример приведeн для *nix’ов, но то же самое можно сделать и в Win, только потребуется больше работать ручками. Например:
Для конвертации файлов в Base64 можно воспользоваться любым онлайн-сервисом. Задача: Проверить «малварь» на детектируемость, или замена VIRUSTOTALРешениеДа, антивирей развелось видимо-невидимо! Они теперь фактически входят в стандартный комплект ПО любого ПК. И чтобы кого-то заразить (естественно, в ознакомительных целях), нам приходится эти антивири обходить. На самом деле, если действовать по всем правилам, то желательно знать, что у жертвы за антивирь, да и вообще «характеристики» системы — ОС, фаера и так далее. Тогда можно будет накатить на вируталке аналогичную, максимально сэмулированную систему и протестить всю атаку, чтобы она потом прошла, как по маслу. Но чаще получается, что наша цель «анонимна» и имеет неизвестный антивирь. Приходится обходить все. Но поставить даже десять основных экземпляров на виртуалки — дело накладное и муторное. Потому мы воспользуемся онлайн-сервисами. Кстати, здесь под «малварью» давай понимать что-то более обширное. Пусть это будут как всякие вири, так и хакерские тулзы. Ведь даже с безобидным netcat’ом были проблемы из-за детектов. Итак, в ходе поисков нашлась следующая группа онлайн-сервисов:
Основной же «проблемой» большинства сервисов является то, что итоги их работы попадают в антивирусные компании. То есть запихнeм мы туда подозрительный бинарник, который покамест палится лишь частью антивирусов — и тем, которые не спалили файл, будет отправлен соответствующий отчeт. Таким образом, через некоторое время и остальные антивирусы добавят сигнатуры в свои базы. Но на самом деле не всe так страшно. Отчeтов в антивирусные компании отсылается много, обрабатываются они медленно, а многое и вовсе отбрасывается. Кроме того, у большинства перечисленных сервисов есть галка в стиле «No distribute», которая предполагает, что файлы/результаты не будут никуда отправляться. Но на античате (forum.antichat.ru/threadnav32269-1-10.html) есть старый пост, говорящий об обратном. Типа, такие файлы наоборот подвергаются более тщательной проверке. Вместе с тем, в сети нашлась ещe парочка онлайн-сервисов, которые утверждают, что никуда ничего не отправляют, но они платные (недорого). Задача: Перебор паролей по-умномуРешениеЯ уже не раз описывал тему перебора аутентификационных данных в том или ином контексте, не пропущу и сегодня. Такая информация важна, так как это распространeнная уязвимость, актуальная для самых разных систем, которые в итоге очень просто эксплуатировать. В подтверждение этому — доклад Дмитрия Евтеева (Positive Technologies) — ptsecurity.ru/download/PT-Metrics-Passwords-2009.pdf. В нeм представлена большая и хорошая статистика по российским компаниям. Документ не очень новый, но всe равно актуальный. По нему становится ясно, как перебирать пароли и куда идти с ними дальше :). В качестве бонуса — разнообразные словари самых распространeнных паролей с привязкой к ресурсам можно почерпнуть тут: В заключение — мотаем на ус самые распространeнные пароли «в среднем по больнице»:
Задача: Закачка бинарных файлов жертве (BIN2HEX)РешениеДостаточно распространeнная ситуация, когда ломаешь win-системы (хотя и под nix’ами бывает) и понимаешь, что шелл есть, а сделать с ним ничего нельзя. Это связано в основном с ограниченностью консольного ПО винды, а также с наличием всяких файерволов. В общем, задача классическая: закачать файлик «через консоль». Для этого можно воспользоваться старым добрым методом — через debug.exe. Debug — это стандартная программа-отладчик в Windows, которую используют для проверки и отладки выполняемых файлов. Метод чем-то похож на описанный выше стеганографический. Для начала мы конвертируем наш exe-файл в hex (шестнадцатиричный формат). Но не просто в хекс, а в специально отформатированный хекс. Подав его на «вход» debug’у, мы на выходе получим полноценный exe’шник. Чтобы соблюсти это специальное форматирование, воспользуемся сторонним продуктом — Fast Track’ом или каким-нибудь другим (в Сети их целый пучок).
В итоге мы получим последовательность echo, которую и потребуется ввести в консоль жертве. Понятно, что вводить вручную — безумно. Но автоматизация, как понимаешь, зависит от ситуации. Пример профессиональный и применим к продукту от Citrix (с использованием протокола RDP). В общем, всe было бы просто и элегантно, но есть большой минус: ограничение на размер создаваемого файла, а именно — 64 Кб. Это очень мало. Мы можем залить тот же netcat (например, его старую версию весом 60 Кб) или какой-нибудь легкий шелл-код из Metasploit’а, но meterpreter уже великоват. Тем не менее, это ограничение можно обойти. Как? Его первое описание было сделано на DefCon 16 в 2008 году компанией Securestate (defcon.org/images/defcon-16/dc16-presentations/defcon-16-panel-black_vs_white.pdf). Описанную в документе тулзу было непросто найти, так как на неe уже давно забили (https://media.defcon.org/dc-16/tools/sa_exploiter.rar). Суть способа тоже вполне проста — мы сначала закачиваем exe’шник-конвертер, некий аналог debug.exe, только со снятыми ограничениями на размер файла. А потом пользуемся им для создания больших файлов по тому же алгоритму, что и с debug’ом. К сожалению, мне не удалось найти в сети конкретного описания, как работает данный конвертер (похоже, на гугле меня забанили). Но всe не так уж плохо. В Metasploit’е есть модуль, который реализует загрузку больших файлов через MSSQL, как раз используя конвертер (метод c DefCon’а). Описание и исходный код в простейшем для портирования виде (в новых версиях MSF он усложнился) можно взять на offensive-security.com/metasploit-unleashed/The_Guts_Behind_It. Создаeм exe-шник:
Переименовываем с правильным расширением:
Далее мы можем закачивать любые другие exe-файлы. Здесь также потребуется автоматизация. При этом «закачка» происходит просто в hex-виде. Последний шаг — конвертировать hex-файл в exe. Он создастся с тем же именем, что и файл на входе:
Напоследок расскажу об очередном минусе данного метода — в последних версиях Windows отсутствует debug.exe. В каких именно — вопрос (в Win7 файла точно нет). Задача: Определение версий плагинов браузера, используя javascriptРешениеБраузеры уже давно являются одной из основных целей, одним из главных мест для проникновения и захвата систем. Оно и понятно. Интернет — это наше всe, а браузер — основное средство для взаимодействия. Ввиду разнообразия применяемых в Сети технологий одного браузера не хватает, и к нему ставятся плагины. Предположим, мы подсунули нашей жертве ссылку на наш сайт. Практически 100%, что при заходе на него в http-заголовке будет передана точная версия браузера в поле «User-Agent». Но информацию о плагинах мы можем получить, только используя JavaScript. Можно было бы показать несколько лайтовых примеров о том, как получить версию плагина, но, во-первых, их легко найти в сети, а вовторых, они не особо юзабельны, так как взаимодействие с плагинами в IE происходит посредством соответствующих ActiveX-элементов, а в других браузерах — напрямую с плагинами. Таким образом, код под различные браузеры — разный. В-третьих, кроме того, что плагин установлен, он должен быть включeн (enabled). В-четвертых — зачем изобретать велосипед? Есть несколько «детекторов», многие из которых входят в стандартные веб-фрэймворки. Мне по нраву pinlady.net/PluginDetect, который написал Эрик Гердс. Детектор определяет версию Java, QuickTime, Flash, Shockwave, Silverlight, а также версии различных PDF-ридеров и ещe нескольких плагинов. То есть, основные темы, через которые ломают. К тому же можно дописать детект других плагинов по аналогии. На сайте есть подробное описание работы и возможность настроить детектор под себя. В итоге мы получаем с сайта javascript-файл plugindetect.js. Подпихиваем его на наш сайт:
И получаем версию Adobe Reader, например:
Точность определения зависит от некоторых условий, но чаще всего мы получаем четырехциферную версию плагина. Подробности методов определения и ограничений ищи на вышеуказанном сайте. Также в детекте есть ещe несколько полезных функций, которые можно использовать и для благих целей. Задача: Сделать журнал ][ лучше!РешениеВсe просто — group.xakep.ru. Вступай в фокус-группу и излагай свои мысли и пожелания по материалам журнала. Могу тебя уверить, что многие авторы читают отзывы читателей, реагируют на них. Так что это реально действенный способ изменить что-то к лучшему. |