You are viewing [info]3_1415926535898's journal

Previous 10

Sep. 15th, 2009

reverse engineering

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

[xxxxxxxx](23:10:07 7/09/2009)
Ссылка для скачивания файла Frogs.rar
http://file.qip.ru/file/100122839/beef555a/Frogs.html
[-- Файл отправлен через file.qip.ru. Подробнее на сайте: http://file.qip.ru --]

[xxxxxxxx] (23:10:07 7/09/2009)
:)


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

Мне стало интересно, можно ли определить, какой новый пароль приписывал вирус сворованной аське. Тогда можно было бы помочь другу вернуть его аккаунт.
Раздобыв архив с программой-вирусом, я во всеоружии принялся изучать творение безумного гения.
Заведя для этих целей новый UIN, я начал экспериментировать.
Программа оказалась флэш-игрушкой со встроенным зловредным кодом. Для начала я запустил самую могучую штуку, которая помогает реверсерам. Имя ей дизассемблер IDA Pro. Произведя поиск срок, содержащихся в экзешнике, и не найдя ничего подозрительного, похожего на пароль, я подумал, что наверняка программа работает с сокетами windows и посылает запросы на асечный сервер login.icq.com (иначе как же она спамит контакт-лист и вообще ворует вашу аську). В теле обнаружилось четыре вызова функции wsock32.send, которая посылает запросы.

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

00470666    E8 7957FFFF                             CALL <JMP.&wsock32.send>

При каждой остановке на этой строчке в стеке можно было наблюдать четыре параметра:

02C5FEF4   000002F8     Socket = 2F8
02C5FEF8   02C5FF1D     Data = 02C5FF1D
02C5FEFC   0000000A    DataSize = A (10.)
02C5FF00   00000000     Flags = 0


Существенными в данном случае являются второй и третий - адрес в памяти, откуда начинается содержимое запроса, посылаемого на сервер, и размер этого запроса в байтах. Потребовалась посылка пяти сообщений для того, чтобы вирус залогинился в аське. Насколько я мог судить по поведению программы, она ищет пароль для асечного аккаунта напрямую в памяти, а не в каких-то файлах. (пароль для аськи я не сохранял). Дальше я позволял вирусу слать по одному запросу и после каждого пробовал заходить в аську под старым паролем. Таким образом я пытался отловить сообщение, которое содержит в себе информацию о смене пароля. После 10 сообщений мне это надоело и я решил автоматизировать процесс. Воспользовавшись очень полезным плагином OllyScript для OllyDbg, я написал скрипт, который ставил брэйкпоинт на вызов wsock32.send, пускал программу в режиме свободного выполнения и при остановке смотрел параметры, которые передаются в функцию send, считывал нужный кусок памяти с телом запроса и сохранял в файле.

Выяснилось, что после 33-го запроса уже невозможно зайти в аську под старым паролем. Методом пристального вглядывания в содержимое сохраненных файлов я обнаружил, что 27-е сообщение несет в себе информацию о смене пароля на новый и сам пароль в не зашифрованном виде (!). А 28-е - это отправка информации о сворованной аське на другой UIN (очевидно, человека, который написал этот вирус). Попробовал зайти в аську с этим паролем - он подошел. Теперь оставалось выяснить, генерируется ли этот пароль по UIN'у, или же он постоянный. Оказалось, что все немного хуже. При повторном запуске программы, вирус сгенерировал пароль, отличный от того, что был в первый раз...

Алгоритм, который генерирует новый пароль, я не осилил. Код, который реализует этот алгоритм, я бы назвал "зубодробительной жопой". Возможно, как-нибудь в другой раз, когда будет побольше времени, я возьмусь за него повторно, и что-нибудь у меня получится... Единственное, что могу сообщить (возможно это поможет брутфорсерам :)), пароль представляет собой восьмизначное число, т.е. содержит только цифры, что значительно уменьшает количество вариантов для перебора.
Подводя итог, могу сказать, что пострадавшим от вируса рекомендуется воспользоваться функцией восстановления пароля. Выслать на почту, ответить на секретный вопрос и т.п., что там предоставляет для этого icq.com . Ничего более стоящего на ум не приходит.


P.S.
<--! Мною было обнаружено, что при повторном запуске этой флэш-игры вирусный код бездействует и не хочет воровать аську! Пришлось воспользоваться утилитой RegMon, которая мне помогла отловить запись в реестре, которую создает программа при первом запуске и наличие которой проверяет при каждом последующем запуске: если запись не существует, то вирус активируется, иначе - нет. Путь к записи следующий:  HKEY_LOCAL_MACHINE\SOFTWARE\started !-->



Apr. 20th, 2009

(no subject)

Ну вот, нет у меня никаких спортивных данных 

Mar. 6th, 2009

МВАХАХА!!! ЩАС ДАМ ПО МОРДЕ!

Пятничная тренировка оказалась какой-то мегахалявной
(для пятницы, конечно), так что боевой настрой сохраняется и дома :)


Ария - Колизей 
Боги прокляли спятивший Рим,
Город брошенных женщин и калек,
Здесь глотают отравленный дым,
Режут лезвием вены...
Здесь по праздникам ходят смотреть,
Как в агонии бьётся человек,
Как пирует свирепая смерть
В жёлтом круге арены...


Сила приносит свободу,
Побеждай и станешь звездой,
А может, обретёшь
Покой.
Твой враг в пыли, жалок и слаб,
Загнанный зверь, раненый раб.
Ещё секунду и скажет "Убей!", -
Перст Императора...
Святой Судьбе не прекословь,
Воет толпа, чувствует кровь.
Не знает скорби ни жён ни друзей,
Жизнь гладиатора - Колизей!


Словно псы, что дерутся за кость,
Обречённые рвут дру другу плоть,
В их глазах ни азарт и не злость,
Ничего кроме боли...
Ты один не сломался, не лёг,
От ударов хранил тебя Господь,
Видишь Цезарь взашёл на песок
Наградить тебя волей...


Сила приносит свободу,
Побеждай и станешь звездой,
А может, обретёшь
Покой.


Твой враг в пыли, жалок и слаб,
Загнанный зверь, раненый раб.
Ещё секунду и скажет "Убей!", -
Перст Императора...
Святой Судьбе не прекословь,
Воет толпа, чувствует кровь.
Не знает скорби ни жён ни друзей,
Жизнь гладиатора - Колизей!


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

Хлеба и зрелищ народу
Через край...
Сила приносит свободу -
Побеждай!


Твой враг в пыли, жалок и слаб,
Загнанный зверь, раненный раб.
И выбил искры из серых камней
Меч гладиатора...
Святой Судьбе не прекословь,
Воет толпа, чувствует кровь,
Не знает скорби, ни жён, ни друзей -
Жизнь Императора - Колизе-е-е-е-й!


Распеваю чуть ли не в голос.

Feb. 14th, 2009

Прикладной рукопашный бой

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


На заметку:
1) Удары наносятся БЕЗ замаха и наполовину за счет поворота корпуса
2) После КАЖДОГО удара руки возвращаются в защиту
3) Не забывать про дыхание! Ни в коем случае его не задерживать, иначе быстро выдохнешься
4) Необходимо всегда беречь голову. (Сегодня поплатился за несоблюдение этого правила :))
5) При прямом ударе руку "выбрасываем" вперед, лишний раз ее не напрягаем

Jan. 12th, 2009

(no subject)

Выхожу из дома за хлебом, спускаюсь по лестнице у домофонной двери. По той же самой лестнице медленно-медленно спускается какая-то бабушка и говорит мне: "Осторожней, сынок, тут лед! Прям голый лед". Пришлось ее успокаивать :)
Мысль: бабушка не была на зимнем Эльбрусе :D

Jan. 11th, 2009

Зимний Эльбрус. Часть 1

Поезд )

 

Dec. 26th, 2008

Бухалово

Корпоратив.
Смеркалось.
Нажрался.
Весело.
Не повторится.

Dec. 16th, 2008

Жопа

"Что ж за жопа-то такая?" (с)
Она повсеместна и вездесуща.. и всегда приходит в самый неподходящий момент.
Вот и сейчас. Уже в седьмой раз за время обучения в универе приходится выпрыгивать из штанов и как-то сдавать зачеты с экзаменами.
Итак, мозги, не отягощенные разумом, при поддержке наглости и изворотливости против великих университетских умов.
В бой :)

Nov. 19th, 2008

Снег

В Москве выпал первый снег. Очень соскучился по нему. Не видел с июля..
Как же мне хочется холода и пронизывающего ветра...
Надеюсь, мне повезет с этой зимой.

Nov. 12th, 2008

Воспоминания

Когда-нибудь настанет время оглянуться назад.
Что я вспомню?
Бесконечные бизнес-планы… или наши авантюры с друзьями?
Как сладко засыпал вечерами… или ту ночь без сна, когда вдруг все так изменилось?
Как хотел все успеть… или как однажды время остановилось?
Как шел по проторенной тропе… или как шагнул в неизвестность?
А что вспомнишь ты?

Previous 10