Введение в реверс-инжиниринг вредоносного ПО - Сергей...
-
Upload
hackit-ukraine -
Category
Software
-
view
399 -
download
8
Transcript of Введение в реверс-инжиниринг вредоносного ПО - Сергей...
Сергей Харюк aka ximera
Introduction into malware analysis
О себе
Администратор форума reve r se4you .o rg
Вирусный аналитик в Z i l l ya !
Капитан CTF -команды R0 -C rew
Что такое вирусный анализ
Этапы анализа
С т а т и ч е с к и й а н а л и з
Б а з о в ы й
Уг л у бл е н н ы й
Д и н а м и ч е с к и й а н а л и з
С о з д а н и е с и г н а т у р
Базовый статический анализ
О п р е д е л е н и е т и п а ф а й л а
О п р е д е л е н и е к о м п и л я т о р а / л и н к е р а
О п р е д е л е н и е з а щ и т ы н а ф а й л е
А н а л и з с л у ж е б н о й и н ф о р м а ц и и ( з а г о л о в к и , с е к ц и и )
А н а л и з т а бл и ц ы и м п о р т а / э к с п о р т а
П о и с к и а н а л и з с т р о к
Инструменты базового анализа
D e t e c t i t E a s y
P E S t u d i o
P E To o l s
C F F E x p l o r e r
Углубленный статический анализ
А н а л и з и с п о л н я е м о г о к о д а в д и з а с с е м бл е р е / д е к о м п и л я т о р е
П о и с к з а щ и т н ы х м е х а н и з м о в ( а н т и в м / а н т и э м у л ь / ш и ф р о в а н и е к о д а )
П о и с к в р е д о н о с н о г о к о д а
О п р е д е л е н и е а л г о р и т м а р а б о т ы
Инструменты углубленного статического анализа
I D A
r a d a r e 2
. N e t R e f l e c t o r
I D R
Расшифровк а блок а данных.text:00401526 mov edi, dword_40504C ; помещаем в EDI размер расшифровываемого блока
.text:0040152C mov esi, off_405050 ; помещаем в ESI адрес начала блока расшифроки
.text:00401532 xor ecx, ecx ; обнуляем счетки
.text:00401534 test edi, edi ; если EDI == 0
.text:00401536 jle short loc_40154E ; выходим из цикла
.text:00401538 loc_401538: ; CODE XREF: .text:0040154Cj
.text:00401538 mov eax, ecx ; помещаем в eax значение счетчика
.text:0040153A push 14h ; помещаем в стек значение 20
.text:0040153C cdq ; заполняем EDX значением старшего байта регистра EAX
.text:0040153D pop ebx ; извлекаем из стека значение 20 в EBX
.text:0040153E idiv ebx ; помещаем в EBX результат EBX%EAX
.text:00401540 mov al, [edx+405038h] ; извлекаем в AL ключ расшифровки
.text:00401546 xor [ecx+esi], al ; расшифровываем байт
.text:00401549 inc ecx ; увеличиваем счетчик
.text:0040154A cmp ecx, edi ; если счетчик меньше размера блока
.text:0040154C jl short loc_401538 ; продолжаем цикл
Тот же алгоритм на Python
def xor_decrypt_key_array(effective_address, keys, size):
counter = 0
key_counter = 0
while counter < size :
key_counter = counter % 20
patchbyte( effective_address + counter,
byte( effective_address + counter ) ^ keys [ key_counter ] )
counter += 1
.text:00401511 call sub_4018A6
.text:00401516 nop
.text:00401517 nop
.text:00401518 nop
.text:00401519 nop
.text:0040151A call sub_4018CC
.text:00401511 call sub_4018A6
.text:00401516 adc edx, [ebx]
.text:00401518 adc edx, [ebx]
.text:0040151A call sub_4018CC
Примеры зашифрованных участков кода
З а ш и ф р о в а н н ы й к о д О р и г и н а л ь н ы й к о д
Динамический анализ
И с с л е д о в а н и е в п е с о ч н и ц е
А н а л и з ф а й л о в о й с и с т е м ы
А н а л и з р е е с т р а
А н а л и з с е т е в о г о т р а ф и к а
И с с л е д о в а н и е п о д о т л а д ч и к о м
П о ш а г о в о е и с п о л н е н и е
И з у ч е н и е п р о и с х о д я щ е г о
Рабочий день вирусного аналитик а
Инструменты динамического анализа П е с о ч н и ц ы ( S a n d b o x e s )
c u c k o o ( m a l w r . c o m )
A n u b i s
H a r d w a r e s a n d b o x e s
В н у т р е н н и е р а з р а б о т к и
О т л а д ч и к и
O l l y D b g
X 6 4 d b g
W i n D b g
Создание сигнатур
П о и с к и о п и с а н и е з а к о н о м е р н о с т е й
П р о в е р к а в ы я в л е н н ы х з а к о н о м е р н о с т е й
П о и с к д о п о л н и т е л ь н ы х ф а к т о р о в
Инструменты для поиск а сигнатур
0 1 0 E d i t o r
W i n H e x
В н у т р е н н и е р а з р а б о т к и
Привет для Бацьки
D e l p h i - t h e b e s t . F u c k o f f a l l t h e r e s t . N e s h t a 1 . 0 M a d e i n B e l a r u s .
П р ы в i т а н н е у с i м ц i к а в ы м б е л а р у с _ к i м д з я у ч а т а м . А л я к с а н д р Р ы г о р а в i ч , в а м т а к с а м а : )
В о с е н ь - к е п с к а я п а р а . . . А л i в а р ы я - л е п ш а е п i в а ! B e s t r e g a r d s 2 To m m y S a l o . [ N o v - 2 0 0 5 ] y o u r s [ D z i a d u l j a A p a n a s ]
Литература для изучения
R E f o r b e g i n n e r s - h t t p : / / b e g i n n e r s . r e/
P r a c t i c a l M a l w a r e A n a l y s i s - h t t p : / / g o o . g l / W w R X m S
M a l w a r e A n a l y s t ' s C o o k b o o k - h t t p : / /g o o . g l / t q 5 3 n r
T h e I D A P r o B o o k - h t t p : / /g o o . g l / M P 4 5 m H
P r a c t i c a l R e v e r s e E n g i n e e r i n g - h t t p: / /g o o . g l / B i 7 r l S
S e c r e t s o f R e v e r s e E n g i n e e r i n g - h t t p : / /g o o . g l / Z K r m 7 a
G r a y H a t P y t h o n - h t t p s : / /g o o . g l / e c 5 z v n
R o o t k i t s a n d B o o t k i t s - h t t p s : / /g o o . g l / S U c L m m
Ресурсы для изучения R 0 - C r e w - > Б и бл и о т е к a - h t t p s : / /
g o o . g l / F W 2 V C d
h t t p: / / w w w. o p e n s e c u r i t y t r a i n i n g . i n f o/
w a s m . r u
e x e l a b . r u
A w e s o m e M a l w a r e A n a l y s i s - h t t p s : / /g o o . g l / i L j H t T
Вопросы
КонтактыS o c i a l :
t w i t t e r . c o m / x i m e r u s
f b . c o m / x i m e r u s
l i n k e d i n . c o m / x i m e r u s
J a b b e r / e - m a i l :
x i m e r a @ r e v e r s e 4 y o u . o r g
S i t e :
r e v e r s e 4 y o u . o r g
Спасибо за внимание