|
1 | 1 | # Random Malware Analysis
|
2 | 2 |
|
3 |
| -## рандом крипто [вирус](http://forums.bgdev.org/index.php?showtopic=49142&st=0) |
| 3 | +<!-- TOC --> |
| 4 | + |
| 5 | +- [Random Malware Analysis](#random-malware-analysis) |
| 6 | + - [Начало](#начало) |
| 7 | + - [Статичен анализ](#статичен-анализ) |
| 8 | + - [Динамичен анализ](#динамичен-анализ) |
| 9 | + |
| 10 | +<!-- /TOC --> |
| 11 | + |
| 12 | +## Начало |
| 13 | +рандом крипто [вирус](http://forums.bgdev.org/index.php?showtopic=49142&st=0) |
| 14 | + |
4 | 15 | 
|
5 | 16 |
|
6 | 17 | ## Статичен анализ
|
@@ -41,6 +52,12 @@ DECIMAL HEXADECIMAL DESCRIPTION
|
41 | 52 | 11213 0x2BCD PC bitmap, Windows 3.x format,, 568 x 263 x 24
|
42 | 53 |
|
43 | 54 | ```
|
| 55 | +`Strings` също не ни помогна за статичния анализ, ето интересните попадения след изпълнението му: |
| 56 | + |
| 57 | +``` |
| 58 | +C:\Program Files (x86)\Microsoft Visual Studio\VB98\VB6.OLB |
| 59 | +``` |
| 60 | +Според мен това се използва за проверка дали версията отговаря на изискванията за да се изпълни успешно вируса. |
44 | 61 |
|
45 | 62 | 
|
46 | 63 |
|
@@ -84,25 +101,77 @@ System breakpoint reached!
|
84 | 101 |
|
85 | 102 | Добре е по време на следващата част да имаме декомпилирания код за да можем да следим изпълнението по-ефективно.
|
86 | 103 |
|
87 |
| -### Динамичен анализ |
| 104 | +----------- |
| 105 | + |
| 106 | +## Динамичен анализ |
88 | 107 |
|
89 | 108 | Приготвяме си виртуалната машина(контролираната среда). Много е важно да си направим Snapshot преди да изпълним файла - това е нашия Quick Save който ще ни позволи да се дезинфектираме бързо от изпълнението на вируса.
|
90 | 109 |
|
91 | 110 | Ето го процеса:
|
92 | 111 | 
|
93 | 112 |
|
94 |
| -Пуснах [FakeNet](2017-03-14-16-20-33.png) да хвана дали изпраща някакви сигнали към C&C, все още нищо. Добре е да си имаме и един Wireshark в бакграунда. |
| 113 | +Пуснах [FakeNet](images/2017-03-14-16-20-33.png) да хвана дали изпраща някакви сигнали към C&C, все още нищо. Добре е да си имаме и един Wireshark в бакграунда. |
95 | 114 |
|
96 |
| -С програмки като Regshot можем да видим какви точно промени прави вируса по системата ви - ето го моя [резултат](files/changes.htm), общо 62 промени. |
| 115 | +С програмки като Regshot и Procmon.exe(Sysinternals) можем да видим какви точно промени прави вируса по системата ви: |
97 | 116 |
|
98 |
| -<да се допълни с пояснения> |
| 117 | + 1. Резултатите от Regshot: [1](files/changes_x86.txt) и [2](files/changes2_x86.txt). Оказа се че файлът първоначално си бърка по регистрите за да се забие и стане persistent, след което се рестартира. |
| 118 | + |
| 119 | + 2. Резултата от **Procmon** tracing-ът: [1](files/logfile.csv) |
99 | 120 |
|
| 121 | +За да разберем какво точно правят всичките мапнати(имената на фунцкийте са адреси в памета на вируса), че е необходимо да отворим декомпилирания код и дебъгър. |
100 | 122 |
|
101 | 123 | Аз използвам x32dbg. Стартираме приложението и скагаме брейк пойнт на: `0x00401099`
|
102 | 124 |
|
103 | 125 | ```
|
104 | 126 | 00401099 | E8 F0 FF FF FF | call <doc.ThunRTMain> # Main() функция |
|
105 | 127 | ```
|
| 128 | + |
106 | 129 | 
|
107 | 130 |
|
108 |
| -продължаваме... |
| 131 | + |
| 132 | +Ето го и прозореца с декомпилирания код, подчертал съм важните за нас функций(Form_) и процеси(Proc). 6 цифрените hex числа са 32битовите адреси където се помещава изпълнимия код. Всички са част от '.data' сегмента на вируса: |
| 133 | + |
| 134 | + |
| 135 | + |
| 136 | +За да разбера какви са точно тези функций и процеси, ще поставя breakpoints на всички тези адреси от паметта: |
| 137 | + |
| 138 | +``` |
| 139 | +Code -> Sheepless2 -> Form_Load_47BA84 # 0x47BA84 |
| 140 | +Code -> Sheepless2 -> Form_Initialize_47B7A0 # 0x47B7A0 |
| 141 | +Code -> Sheepless2 -> Proc_0_2_47B69C # 0x47B69C |
| 142 | +Code -> Sheepless2 -> Proc_0_3_47B664 # 0x47B664 |
| 143 | +Code -> Sheepless2 -> Proc_0_4_47B5BC # 0x47B5BC |
| 144 | +Code -> Sheepless2 -> Proc_0_5_47B62C # 0x47B62C |
| 145 | +Code -> Sheepless2 -> Proc_0_6_47B5F4 # 0x47B5F4 |
| 146 | +Code -> Sheepless2 -> Proc_0_7_47B584 # 0x47B584 |
| 147 | +``` |
| 148 | + |
| 149 | +Въобще не можах да стигна до тези брейкпоинти по време на изпълнението, след като паузирах дебъгинга се озовах на: |
| 150 | + |
| 151 | +``` |
| 152 | +7763CC70 | B8 33 00 06 00 | mov eax,60033 |
| 153 | +``` |
| 154 | + |
| 155 | + |
| 156 | + |
| 157 | +Стандартна библиотека: NtDelayExecution(милисекунди) т.е 0x60033 --> 393267 милисекунди --> 393сек --> 6:33мин. Това е забавянето след което мауеъра продължава. |
| 158 | + |
| 159 | + |
| 160 | + |
| 161 | + |
| 162 | +------- |
| 163 | + |
| 164 | +Записки: |
| 165 | + |
| 166 | +Това е push-нато на стака: |
| 167 | +``` |
| 168 | +0018F8C0 00471FE4 &L"0D};0804:{81D4E9C9-1D3B-41BC-9E6C-4B40BF79E35E}{FA550B04-5AD7-411f-A5AC-CA038EC515D7}" |
| 169 | +``` |
| 170 | +след кратка справка с Google разбираме че това е: |
| 171 | + |
| 172 | +**Windows Language Pack Default Values** |
| 173 | +Language | Default Value | |
| 174 | +---------|----------| |
| 175 | + Chinese - PRC | zh-CN: Microsoft Pinyin - Simple Fast (0804:{81D4E9C9-1D3B-41BC-9E6C-4B40BF79E35E}{FA550B04-5AD7-411f-A5AC-CA038EC515D7}) |
| 176 | + |
| 177 | + |
0 commit comments