reversing banking trojan: an in-depth look into gataka

39
Reversing banking trojan: an in-depth look into Gataka Jean-Ian Boutin ESET

Upload: jiboutin

Post on 27-May-2015

1.471 views

Category:

Documents


2 download

DESCRIPTION

Slides from my workshop @ ZeroNights 2012 in Moscow

TRANSCRIPT

Page 1: Reversing banking trojan: an in-depth look into Gataka

Reversing banking trojan: an in-depth look

into Gataka

Jean-Ian Boutin

ESET

Page 2: Reversing banking trojan: an in-depth look into Gataka

Outline

• Background

• Architecture

• Overview of plugins

• Network Protocol

• Webinject

• Campaigns

Page 3: Reversing banking trojan: an in-depth look into Gataka

Background

Page 4: Reversing banking trojan: an in-depth look into Gataka

Origins

• Aliases: Tatanga, Hermes

• First publicly discussed in 2011 by S21Sec

• Targets mostly European users

Page 5: Reversing banking trojan: an in-depth look into Gataka

What is it?

• Banking trojan

• Designed to steal all kind of sensitive information through Man-

In-The-Browser scheme

• Regionalized

• Not very wide spread

• Developped in C++

• Modular architecture similar to SpyEye

• Very verbose, a lot of debug information are sent to Command and

Control Server.

• Frequent update with new plugins and plugin versions.

• Several advanced features

Page 6: Reversing banking trojan: an in-depth look into Gataka

Geographic distribution of detection

Page 7: Reversing banking trojan: an in-depth look into Gataka

Business model

• This is not a do-it-yourself kit like

SpyEye

• It seems that this kit is private or sold

only to selected groups

• Infection vector

• BlackHole

• Malicious attachment

Page 8: Reversing banking trojan: an in-depth look into Gataka

Basics

Page 9: Reversing banking trojan: an in-depth look into Gataka

DEMO1

Page 10: Reversing banking trojan: an in-depth look into Gataka

Installation

• Infection vector • BlackHole • Malicious attachment

• Installation • Injection in all processes

• Communications done through IE

Page 11: Reversing banking trojan: an in-depth look into Gataka

Persistence

Page 12: Reversing banking trojan: an in-depth look into Gataka

Architecture

Page 13: Reversing banking trojan: an in-depth look into Gataka

Modular Architecture

• HermesCore • Communicate with C&C • Ability to launch downloaded

executable

Page 14: Reversing banking trojan: an in-depth look into Gataka

DEMO2

Page 15: Reversing banking trojan: an in-depth look into Gataka

Interceptor

Page 16: Reversing banking trojan: an in-depth look into Gataka

Interceptor

• Supported browsers • Firefox • Internet Explorer • Opera • Maxthon

• Frequent update to support latest browser versions

Page 17: Reversing banking trojan: an in-depth look into Gataka

Communication can now be monitored

• NextGenFixer • Install filters on particular

URLs • Webinject

• Inject html/javascript • Record videos/screenshots

• HttpTrafficLogger • Log selected communications

to/from specific websites • CoreDb

• Stores information received from C&C

Page 18: Reversing banking trojan: an in-depth look into Gataka

DEMO3

Page 19: Reversing banking trojan: an in-depth look into Gataka

IEXPLORE – certificate patching

Page 20: Reversing banking trojan: an in-depth look into Gataka

Network Protocol

Page 21: Reversing banking trojan: an in-depth look into Gataka

Topology

Compromised hosts C&C Proxy servers

Page 22: Reversing banking trojan: an in-depth look into Gataka

Packet Decomposition

TCP/IP Header

Gataka Header

Encrypted Data

Gataka Header

Encrypted Data

Packet 1

Packet n

Page 23: Reversing banking trojan: an in-depth look into Gataka

C++ Reversing

• Some basic suff

• This pointer usually passed in ecx

• In object, vtable is at first offset

Page 24: Reversing banking trojan: an in-depth look into Gataka

DEMO4

Page 25: Reversing banking trojan: an in-depth look into Gataka

Gataka header

0-7 8-15 16-23 24-31

Magic Number

NW Protocol Byte mask

Use xor key dword1

dword2

Data size

Uncompressed Data Size

XOR key

dword6

dword7

checksum

dword9

Bot Id (64 bytes)

• When packets are

received from C&C,

dword9 is optional

and Bot Id is absent

Page 26: Reversing banking trojan: an in-depth look into Gataka

Send packet - log

Page 27: Reversing banking trojan: an in-depth look into Gataka

Plugins Storage

Page 28: Reversing banking trojan: an in-depth look into Gataka

Webinject

Page 29: Reversing banking trojan: an in-depth look into Gataka

CoreDb

Page 30: Reversing banking trojan: an in-depth look into Gataka

Webinject

Page 31: Reversing banking trojan: an in-depth look into Gataka

Self-contained webinject

Webinject contained in DB

Webinject downloaded from external server

Injected content

Page 32: Reversing banking trojan: an in-depth look into Gataka

Webinject – Gataka platform communications

Page 33: Reversing banking trojan: an in-depth look into Gataka

DEMO5

Page 34: Reversing banking trojan: an in-depth look into Gataka

Campaigns

Page 35: Reversing banking trojan: an in-depth look into Gataka

Germany – statistics from one campaign

72,92%

25,10%

1,51% 0,25% 0,17%

0,05%

Germany

Unresolved/Unknown

United States

Israel

Sweden

Canada

Total Hits: 248,468

• These statistics were obtained

from a C&C

• Almost 75% of

compromised hosts in

Germany

Page 36: Reversing banking trojan: an in-depth look into Gataka

Germany – Two factor authentication bypass

Image sources: wikipedia.org and postbank.de

Page 37: Reversing banking trojan: an in-depth look into Gataka

Netherlands

Page 38: Reversing banking trojan: an in-depth look into Gataka

Conclusion

Page 39: Reversing banking trojan: an in-depth look into Gataka

Thank You! Questions ?