introduction to - blackstorm security · 2020. 12. 6. · advanced threats don’t use standard...

92
1 INTRODUCTION TO ADVANCED THREATS HTTP://WWW.BLACKSTORMSECURITY.COM BHACK 2020 LIVE ALEXANDRE BORGES – MALWARE AND SECURITY RESEARCHER BLACKSTORM SECURITY Providing Skills for Hackers

Upload: others

Post on 20-Aug-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

1

INTRODUCTION TO ADVANCED THREATS

HTTP://WWW.BLACKSTORMSECURITY.COM

BHACK 2020 LIVE

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

BLACKSTORM SECURITY

Providing Skills for Hackers

Page 2: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

HTTP://WWW.BLACKSTORMSECURITY.COM2

▪ Cyber Security Researcher▪ Speaker at DEF CON USA 2019 ▪ Speaker at DEF CON USA 2018▪ Speaker at DEF CON CHINA 2019▪ Speaker at DC2711 (Johannesburg)▪ Speaker at NO HAT 2019 (Italy)▪ Speaker at HITB 2019 (Amsterdam)▪ Speaker at CONFidence 2019 (Poland)▪ Speaker at DevCon 2020▪ Speaker at SANS 2020▪ Speaker at DevOpsDays BH 2019▪ Speaker at BSIDES

2019/2018/2017/2016▪ Speaker at H2HC 2016/2015▪ Speaker at BHACK 2019/2018▪ Researcher on Android/iOS Reversing,

Rootkits and Digital Forensics.▪ Referee on Digital Investigation: The

International Journal of Digital Forensics & Incident Response

Agenda:

▪ Introduction▪ Reversing▪ Anti-Reversing▪ De-obfuscation

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

Page 3: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM3

❑Last conferences:

▪ DEF CON USA 2019 (Las Vegas / USA)▪ CONFidence Conference 2019 (Krakow / Poland)▪ DEF CON China 2019 (Beijing / China)▪ HITB Security Conference 2019 (Amsterdam)▪ BSIDES Sao Paulo 2019 (Sao Paulo / Brazil)▪ DEF CON USA 2018 (Las Vegas / USA)▪ DEVCON 2020 (ONLINE)▪ SANS 2020 (ONLINE)▪ BHACK 2019 (Belo Horizonte/Brazil)▪ DC2711 (Johannesburg/South Africa)▪ NO HAT Conference 2019 (Bergamo/Italy)

▪ Malwoverview Tool: https://github.com/alexandreborges/malwoverview

Page 4: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

INTRODUCTION

HTTP://WWW.BLACKSTORMSECURITY.COM4

Page 5: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM5

➢ INTRODUCTION

▪ During reverse engineering of a malware sample, we need to understand few aspects on the threat:

▪ Is the malware packed?▪ Are DLLs and functions resolved dynamically?▪ Are strings encrypted?▪ Are there any anti-forensic techniques such as anti-vm, anti-

debugging or anti-disassembly?▪ Is there any obfuscation technique being used?

▪ Unpacking malware is usually easy, but you might find sophisticated packers...

Page 6: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM6

➢ INTRODUCTION▪ Advanced threads are different from any daily malware because:

▪ They don’t use common packers. ▪ Most of the time, they bring malicious device drives (rootkits). ▪ Sometimes they try to compromise the platform (bootkits)▪ They can use 0-days to exploit the infrastructure and systems. ▪ They bypass most of defenses and run under the radar. ▪ C2 transmit beacons and data once per week with short duration. ▪ They might implement tricks to prevent any memory acquisition.▪ Most certainly, there’ll be anti-forensic techniques. ▪ It’s hard and take so much time to reverse it.

▪ If you have luck, so you’ll have the opportunity to analyze them. ☺

Page 7: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM7

➢ INTRODUCTION▪ There’re many packers that we know about to unpack them or, at least,

how to manage them (but it can be hard...):

▪ Native code: ASPack, Armadillo, Petite, FSG, UPX, MPRESS, NSPack, PECompact, WinUnpack and so on...

▪ .NET packers and obfuscators: .NET Reactor, Salamander .NET Obfuscator, Dotfuscator, Smart Assembly, CryptoObfuscator for .NET, Agile, ArmDot, babelfor.NET, Eazfuscator.NET, Spice.Net, Skater.NET, VM Protect 3.40+ and so on...

▪ Android Packers/Obfuscators: DexGuard, DexProtect, DevGuard, Arxan, ApkGyard, and so on...

Page 8: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM8

➢ INTRODUCTION

▪ .NET packers use similar tricks of native code:

▪ Control flow obfuscation and dead/junk code insertion. ▪ Renaming: methods signatures, fields, methods implementation,

namespaces, metadata and external references. ▪ Re-encoding: changing printable to unprintable characters▪ Simple encryption of methods and strings. ▪ Cross reference obfuscation.

▪ To native code, there’re well know memory APIs: VirtualAlloc/Ex( ), HeapCreate( ) / RtlCreateHeap( ), HeapReAlloc( ), GlobalAlloc( ), RtlAllocateHeap( )

Page 9: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM9

➢ INTRODUCTION

▪ Most packed binaries can be unpacked using debuggers, breakpoints and dumping unpacked content from memory.

▪ Even when a binary uses customized packing techniques, it is still possible:

▪ dumping the unpacked code from memory using Volatility.▪ fixing the ImageAddress field using few lines in Python its respective

IAT using impscan plugin to analyze it in IDA Pro:

▪ python vol.py -f memory.vmem procdump -p 2096 -D . --memory (to keep slack space)

▪ python vol.py -f memory.vmem impscan --output=idc -p 2096

Page 10: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

REVERSING

HTTP://WWW.BLACKSTORMSECURITY.COM10

Page 11: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 11

➢ INTRODUCTION

❖ As we’ve mentioned previously, strings are one of first reference.

❖ However, they are all encrypted and writing YARA rules using them could not be so interesting ☺

Page 12: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 12

➢ INTRODUCTION

Setup an exception framework

DLLs seem to be “obfuscated” ☺

Page 13: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 13

➢ INTRODUCTION

Old anti-debugger tricks... ☺

Page 14: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 14

➢ INTRODUCTION

Dynamic DLL name resolution being executed before resolving the function address.

Page 15: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 15

➢ INTRODUCTION

Jump table

DLL name (obfuscated format)

Page 16: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 16

➢ INTRODUCTION

Page 17: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 17

➢ INTRODUCTION

❖ Each offset takes us to a different switch case, which is a different DLL name resolution function. ☺

Page 18: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 18

➢ INTRODUCTION

❖ As expected, there’re many calls to the same function for “decrypting” the DLL names ☺

Page 19: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 19

➢ INTRODUCTION

➢output: kernel32.dll

Page 20: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM20

➢ INTRODUCTION

▪ Of course, we could try to improve and automatize the de-obfuscation of all functions names by using:

▪ IDA Python: using IDA Python you can de-obfuscated function names and save them into the idb.

▪ IDC: it’s a bit more complicated, but very powerful.

▪ If your time is short, so you could try emulation tools such as Floss (https://github.com/fireeye/flare-floss) to decode possible obfuscated strings and create an IDA script to decorate the reversed code:

▪ floss --no-static-strings -x malware.bin --ida=floss_ida.py

Page 21: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 21

➢ INTRODUCTION

Page 22: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM22

➢ INTRODUCTION

Same result, of course. ☺

Page 23: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM23

➢ INTRODUCTION▪ IDA Python is ALWAYS very handy and we can use IDA Pro SDK to write plugins

for:

▪ extending the IDA Pro functionalities▪ analyzing piece of obsfuscated code and data flow ▪ automatizing unpacking of strange malicious files▪ decoding and loading encrypted / modified MBRs

▪ It is quick to create a simple IDA Pro plugin.

▪ Download the IDA SDK from https://www.hex-rays.com/products/ida/support/download.shtml (likely, you will need a professional account).

▪ Copy it to a folder (idasdk695/) within the IDA Pro installation directory.

Page 24: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 24

▪ Create a project in Visual Studio 2017/2019 (File → New → Create Project → Visual C++ →Windows Desktop → Dynamic-Link Library (DLL) ).

▪ Change few project properties as shown in this slide and next ones.

➢ INTRODUCTION

Page 25: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM25

▪ Include the “__NT__;__IDP__” in Processor Definitions and change Runtime Library to “Multi-threaded” (MT).

Warning! It is NOT /MTd

➢ INTRODUCTION

Page 26: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM26

ida.lib: C:\Program Files (x86)\IDA 6.95\idasdk695\lib\x86_win_vc_32

Page 27: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 27

Needed headers. ☺

Initialization function.

Make the plugin available to this idb and keep the plugin loaded in memory.

Clean-up tasks.

This is called when users activates the plugin.

Simple (and incomplete) URL regex. ☺

Page 28: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM28

It gets the number of strings from “Strings view”.

It gets strings.

The core logic is only it. It checks whether the string matches to the URL regex.

If checks, so ea == strinfo.ea. ☺

Page 29: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM29

Plugin structure.

Plugin will be activated by combination ALT-C. ☺

Plugin structure.

Plugin will be activated by combination ALT-C. ☺

➢ INTRODUCTION

Page 30: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 30

URLs found within this malicious driver. ☺

ALT + C

Page 31: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

ANTI-REVERSING

HTTP://WWW.BLACKSTORMSECURITY.COM31

Page 32: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM32

➢ ANTI-REVERSING

▪ Advanced threats don’t use standard tricks and there’re many lots of facts about them:

▪ They use similar techniques from modern packers such as Themida, Arxan, Agile .NET, Tigress, Obfuscator-LLVM and so on.

▪ Most of them are focused on 64-bit code.

▪ Obviously, almost all functions are removed from IAT. Remember that Themida packer usually keeps only TlsSetValue( ).

▪ String encryption is also a common technique.

Page 33: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM33

➢ ANTI-REVERSING▪ Advanced threats are concerned to integrity:

▪ They protect and check the memory integrity.

▪ Thus, it is not possible to dump a clean executable from the memory (using Volatility, for example) because original instructions are not completely decoded in the memory.

▪ There could be checksum functions verifing the integrity of the code itself. Therefore, any attempt of changing the code may break it up.

▪ Additionally, advanced threats may use watermark to control the “ownership”. This is the same technique used to program copyright. ☺

Page 34: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM34

➢ ANTI-REVERSING

▪ Many additional techniques are used:

▪ There are also fake push instructions.

▪ There are many dead and useless pieces of code.

▪ There is some code reordering using unconditional jumps.

▪ All obfuscators use code flattening.

▪ Packers have few anti-debugger and anti-vm tricks. Weird anti-vm methods based on temperature, for example.

Page 35: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM35

B C HD

DISPATCHER

A IGFE

2

3

Instruction decoder

Instruction

A, B, C, ... are handlers such as handler_add, handler_sub,

handler_push...

Opcodes from a custom instruction set.

Initialization

Fetch

Decode

RVA → RVA + process base address and other tasks.

Instructions are stored in an encrypted format.

➢ ANTI-REVERSING

Page 36: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM36

opcode 1

opcode 2

opcode 3

opcode 4

opcode 7

opcode 5

opcode 6

handler 1

handler 2

handler 3

handler 4

handler 7

handler 5

handler 6

function pointer 1

function pointer 2

function pointer 3

function pointer 4

function pointer 7

function pointer 5

function pointer 6

function pointer table(likely encrypted)

encr_1 encr_nencr_2 encr_3 encr_5 encr_4 ...

1 2 3 4 5 n-1 n

vm_add vm_nvm_sub vm_xor vm_push vm_pop ... decrypted instructions

encrypted instructions

indexes

recovering and decrypting functions

Page 37: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 37

➢ ANTI-REVERSING

What’re the transition points from native code to virtualized code and vice-versa?

Prologues and epilogues from each function could not be virtualized. Take care. ☺

Have you tried to open an advanced packer in IDA Pro? First sight: only red and grey blocks (non-functions and data).

Remember: obfuscating is transforming a code from A to B by using different techniques (including virtualization).

Page 38: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 38

➢ ANTI-REVERSING

▪ In few cases the VM handlers come from data blocks.

▪ Original code section could be “splitted” and “scattered” around the program. In this case, data and instructions are mixed in the binary, without having just one instruction block.

▪ Instructions which reference imported functions could have been either zeroed or replaced by NOP.

▪ Most certainly, they will be restored (re-inserted) dynamically by the packer later.

Page 39: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 39

➢ ANTI-REVERSING

▪ If references are not zeroed, so they are usually translated to short jumps using RVA, for the same import address (“IAT obfuscation”) ☺

▪ API names could be hashed (as used in shellcodes). ☺

▪ Custom packers usually don’t virtualize all native (x86/x64) instructions.

▪ There’s a mix between virtualized, native instructions and data after the packing procedure.

Page 40: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 40

➢ ANTI-REVERSING

▪ Native APIs could be redirected to stub code (proxy), which forwards the call to (copied) native DLLs (from the respective APIs).

▪ The “hidden” function code could be copied (memcpy( )) to memory allocated by VirtualAlloc( ) ☺ Of course, there must be a fixup in the code to get these instructions.

Page 41: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 41

➢ ANTI-REVERSING

▪ By the way, how many virtualized instructions exist in the binary?

▪ It is recommended to try to find handlers to native x86 instructions (non-virtualized instruction)

▪ Try to classify virtualized instructions in groups according to operands and their purpose such as memory access, conditional/unconditional jumps, arithmetic, general...

▪ Try to understand the size of virtualized instructions which we might fit into a structure that represents encryption key, data, RVA (location), opcode (type) and so on.

Page 42: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 42

➢ ANTI-REVERSING

▪ Pay attention to instruction’s stem to put similar classes of instructions together as, for example, jump instructions, direct calls, indirect calls and so on.

▪ Find the transition instructions from native mode to virtualized mode and vice versa.

▪ Find similarity between virtualized instructions and x86 instructions.

▪ x86 instructions are also kept encrypted and compressed together with the virtualized instructions.

Page 43: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 43

➢ ANTI-REVERSING

▪ Constant unfolding: technique used by obfuscators to replace a contant by a bunch of code that produces the same resulting constant’s value.

▪ Pattern-based obfuscation: exchange of one instruction by a set of equivalent instructions.

▪ Abusing inline functions.

▪ Anti-VM techniques: prevents the malware sample to run inside a VM.

▪ Dead (garbage) code: this technique is implemented by inserting codes whose results will be overwritten in next lines of code or, worse, they won’t be used anymore.

Page 44: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 44

➢ ANTI-REVERSING

▪ Code duplication: different paths coming into the same destination (used by virtualization obfuscators).

▪ Control indirection 1: call instruction → stack pointer update → return skipping some junk code after the call instruction (RET x).

▪ Control indirection 2: malware trigger an exception → registered exception is called → new branch of instructions.

▪ Anti-debugging: used as irritating techniques to slow the process analysis.

Page 45: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 45

➢ ANTI-REVERSING

▪ Opaque predicate: Although apparently there is an evaluation (conditional jump: jz/jnz), the result is always evaluated to true (or false), which means an unconditional jump. Thus, there is a dead branch.

▪ Polymorphism: it is produced by self-modification code (like shellcodes) and by encrypting resources (similar most malware samples).

Page 46: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 46

Loading libs

aborges = 0

aborges < 30

printf( )aborges++

return 0

➢ ANTI-REVERSING

Page 47: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 47

Original Program

Page 48: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM48

cc = 1 cc != 0

switch(cc)

aborges < 30

cc = 0 cc = 3

break

aborges = 0

cc = 2

break

printf

aborges++

break

cc = 2

loading libs

cc = 1

cc = 2

cc = 3

❖ Disavantages:

✓ Loss of performance✓ Easy to identify the Code flattening

➢ ANTI-REVERSING

Page 49: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM49

▪ The obfuscator-llvm is an excellent project to be used for code obsfuscation. To install it, it is recommended to add a swap file first (because the linkage stage):

▪ fallocate -l 8GB /swapfile ; chmod 600 /swapfile▪ mkswap /swapfile ; swapon /swapfile ; swapon --show▪ apt-get install llvm-4.0▪ apt-get install gcc-multilib (install gcc lib support to 32 bit)▪ git clone -b llvm-4.0 https://github.com/obfuscator-llvm/obfuscator.git▪ mkdir build ; cd build/▪ cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_INCLUDE_TESTS=OFF

../obfuscator/▪ make -j7

➢ ANTI-REVERSING

Page 50: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 50

➢ ANTI-REVERSING

▪ Possible usages:

▪ ./build/bin/clang alexborges.c -o alexborges -mllvm -fla▪ ./build/bin/clang alexborges.c -m32 -o alexborges -mllvm -fla▪ ./build/bin/clang alexborges.c -o alexborges -mllvm -fla -mllvm -sub

▪ Where:

▪ fla: Control Flow Flattening▪ sub: Instruction Substitution▪ bcf: Opaque Predicate

Page 51: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 51

➢ ANTI-REVERSING

▪ A better option would be using Tigress. ▪ Download Tigress binary from https://tigress.wtf/download.html▪ Install Tigress is pretty easy:

▪ unzip tigress-3.1-bin.zip

▪ Export the TIGRESS_HOME environment variable:

▪ export TIGRESS_HOME=/root/Downloads/tigress/3.1

▪ Add the Tigress installation directory to the PATH variable:

▪ export PATH=$PATH:/root/Downloads/tigress/3.1

Page 52: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 52

➢ ANTI-REVERSING

Page 53: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 53

➢ ANTI-REVERSING

▪ To transform a C source using Tigress:

▪ tigress --Environment=x86_64:Linux:Gcc:4.6 --Transform=Flatten --Functions=main --out=aleborges_obfuscated.c aleborges_trigess.c

▪ There’re many notes about the command above:

▪ We should pick up one or more functions to be transformed. Of course, I’ve chosen the main( ) only for educational purposes.

▪ The argument for Environment must be according to your environment (x86_64:Linux:Gcc:4.6, x86_64:Darwin:Clang:5.1, armv7:Linux:Gcc:4.6, armv8:Linux:Gcc:4.6)

Page 54: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 54

➢ ANTI-REVERSING

▪ Additional notes:

▪ We could use multiple transformations (specifying the --Transform option and --Function option multiple times) such as:

▪ Opaque Predicate (InitOpaque)▪ Virtualization Obfuscation (Virtualize)▪ Split and Merge▪ Encode Literals▪ Encode Branches ▪ AntiTaintAnalysis▪ ...and much more...

Page 55: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 55

➢ ANTI-REVERSING

Program obfuscated with Tigress

Page 56: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 56

➢ ANTI-REVERSING

Program obfuscated with Tigress (remaining part)

Page 57: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 57

➢ ANTI-REVERSING

Main dispatcher

Prologue and initial assignment

Page 58: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 58

➢ ANTI-REVERSING

Page 59: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 59

.text:00401000 loc_401000: ; CODE XREF: _main+Fp

.text:00401000 push ebp

.text:00401001 mov ebp, esp

.text:00401003 xor eax, eax

.text:00401005 jz short near ptr loc_40100D+1

.text:00401007 jnz near ptr loc_40100D+4

.text:0040100D

.text:0040100D loc_40100D: ; CODE XREF: .text:00401005j

.text:0040100D ; .text:00401007j

.text:0040100D jmp near ptr 0D0A8837h

Simple opaque predicate and anti-disassembly technique

➢ ANTI-REVERSING

Page 60: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM60

00401040 call + $500401045 pop ecx00401046 inc ecx00401047 inc ecx00401048 add ecx, 400401049 add ecx, 4 0040104A push ecx0040104B ret0040104C sub ecx, 60040104D dec ecx0040104E dec ecx0040104F jmp 0x401320

▪ Call stack manipulation:

▪ Do you know what’s happening here? ☺

➢ ANTI-REVERSING

Page 61: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 61

➢ ANTI-REVERSING

▪ Few lines of code could have several anti-debugging tricks. Maybe some non-recommended functions too ☺

Page 62: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 62

➢ ANTI-REVERSING

Page 63: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 63

➢ ANTI-REVERSING

Page 64: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 64

➢ ANTI-REVERSING

▪ Are there only these anti-forensic techniques? No.... ☺

▪ Instruction substitution▪ Garbage insertion▪ Self-modifying code (like shellcode)▪ Method renaming▪ Cryptography▪ Variable reordering▪ Instruction reordering▪ Randomized Stack frame▪ Inherance manipulation▪ And more...much more ☺

Page 65: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

DEOBFUSCATION

HTTP://WWW.BLACKSTORMSECURITY.COM65

Page 66: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

METASM

HTTP://WWW.BLACKSTORMSECURITY.COM66

Page 67: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 67

➢ DEOBFUSCATION

sub eax, B9add eax,ecxadd eax, B9

sub eax, B9sub eax, 86add eax,ecxadd eax, 86push edxmov edx, 42inc edxdec edxadd edx, 77add eax, edxpop edx

push ebxmov ebx, B9sub eax, ebxpop ebxsub eax, 55sub eax, 32add eax, ecxadd eax, 50add eax, 37push edxpush ecxmov ecx, 49mov edx, ecxpop ecxinc edxadd edx, 70dec edxadd eax, edxpop edx

add eax, ecx

12

3

4

▪ How to reverse the obfuscation and, from stage 4, to return to the stage 1? ☺

Page 68: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 68

➢ DEOBFUSCATION

▪ METASM works as disassembler, assembler, debugger, compiler and linker.

▪ Key features:

▪ Written in Ruby▪ C compiler and decompiler▪ Automatic backtracking▪ Live process manipulation▪ Supports the following architecture:

▪ Intel IA32 (16/32/64 bits)▪ PPC▪ MIPS

Page 69: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 69

➢ DEOBFUSCATION

▪ root@kali:~/github# git clone https://github.com/jjyg/metasm.git

▪ Include the following line into .bashrc file to indicate the Metasm directory installation:

▪ export RUBYLIB=$RUBYLIB:~/github/metasm

▪ Test metasm:

▪ ruby -r metasm -e 'p Metasm::VERSION‘

▪ You should see a number in the output. It’s done ☺

Page 70: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 70

➢ DEOBFUSCATION▪ Based on metasm.rb file

and Bruce Dang’s code.

▪ This instruction was inserted to make the eax register evaluation easier. ☺

Page 71: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 71

➢ DEOBFUSCATION▪ initialize and disassemble

code since beginning (start).

▪ list the assemble code

▪ initialize the backtracking engine

▪ determines which is the final instruction to walk back from there

Page 72: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 72

➢ DEOBFUSCATION▪ Backtracing from the last instruction

▪ Logs the sequence of backtraced instructions.

▪ Shows only the effective instructions, which really can alter the final result.

Page 73: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 73

➢ DEOBFUSCATION

Remember: this is our obfuscated code. ☺

Page 74: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 74

➢ DEOBFUSCATION

Page 75: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 75

➢ DEOBFUSCATION

Page 76: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 76

➢ DEOBFUSCATION

Game over ☺

▪ Output originated from backtracing_log.select command (in reverse)

Page 77: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

MIASM

HTTP://WWW.BLACKSTORMSECURITY.COM77

Page 78: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 78

➢ DEOBFUSCATION

▪ MIASM is one of most impressive framework for reverse engineering, which is able to analyze, generate and modify several different types of programs.

▪ MIASM supports assembling and disassembling programs from different platforms such as ARM, x86, MIPS and so on, and it also is able to emulate by using JIT.

▪ Therefore, MIASM is excellent to de-obfuscation.

▪ Installing MIASM (python 2.7.x):

▪ git clone https://github.com/serpilliere/elfesteem.git elfesteem▪ cd elfesteem/

Page 79: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 79

➢ DEOBFUSCATION

▪ python setup.py build▪ python setup.py install▪ apt-get install clang texinfo texi2html▪ apt-get remove libtcc-dev▪ apt-get install llvm▪ cd ..▪ git clone http://repo.or.cz/tinycc.git▪ cd tinycc/▪ git checkout release_0_9_26▪ ./configure --disable-static▪ make▪ make install

Page 80: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 80

➢ DEOBFUSCATION

▪ pip install llvmlite▪ pip install future▪ apt-get install z3▪ apt-get install python-pycparser▪ pip install pyparsing▪ cd ..▪ git clone https://github.com/cea-sec/miasm.git▪ cd miasm▪ python setup.py build▪ python setup.py install▪ cd test/ ▪ python test_all.py

Page 81: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 81

➢ DEOBFUSCATION

Page 82: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 82

➢ DEOBFUSCATION▪ Before proceding with MIASM, we need to create a binary containing our

code, so we need an assembler and Keystone is great.

▪ Keystone Engine acts an assembler and:

▪ Supports x86, Mips, Arm and many other architectures. ▪ It is implemented in C/C++ and has bindings to Python, Ruby,

Powershell and C# (among other languages).

▪ Installing Keystone:

▪ root@kali:~/Desktop# wget https://github.com/keystone-engine/keystone/archive/0.9.1.tar.gz

Page 83: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 83

➢ DEOBFUSCATION

▪ root@kali:~/programs# cp /root/Desktop/keystone-0.9.1.tar.gz .▪ root@kali:~/programs# tar -zxvf keystone-0.9.1.tar.gz ▪ root@kali:~/programs/keystone-0.9.1# apt-get install cmake▪ root@kali:~/programs/keystone-0.9.1# mkdir build ; cd build▪ root@kali:~/programs/keystone-0.9.1/build# apt-get install time▪ root@kali:~/programs/keystone-0.9.1/build# ../make-share.sh▪ root@kali:~/programs/keystone-0.9.1/build# make install▪ root@kali:~/programs/keystone-0.9.1/build# ldconfig▪ root@kali:~/programs/keystone-0.9.1/build# tail -2 /root/.bashrc

export RUBYLIB=$RUBYLIB:~/programs/metasmexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

Page 84: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 84

➢ DEOBFUSCATION

▪ instructions from the original obsfuscated code

▪ Creating a keystone engine

▪ Assembling our instructions using Keystone engine.

▪ Freeing memory and closing engine.

Page 85: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 85

➢ DEOBFUSCATION

Page 86: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 86

➢ DEOBFUSCATION

IDA Pro confirms: it’s our content ☺

Page 87: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 87

➢ DEOBFUSCATIONOpen the binary file generated through Keystone. The Container provides the byte source to the disasm engine.

Instantiates the assemble engine using the x86 32-bits architecture.

Initialize and run the Symbolic Execution Engine, setting all registers to an initial value.

Print the final value of EAX.

Page 88: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 88

➢ DEOBFUSCATION

Page 89: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 89

➢ DEOBFUSCATION

Page 90: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM 90

➢ DEOBFUSCATION

▪ I’ve skipped a very long output, which shows all instruction being execute. We are interested in the final value of EAX. ☺

▪ If you want, view the graph:

▪ apt-get install graphviz▪ apt-get install xdot▪ xdot out.dot

Finally.... ☺

Page 91: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R

HTTP://WWW.BLACKSTORMSECURITY.COM91

▪ Honestly, I didn’t even scratch the surface of this topic....

▪ There’re tons of obfuscation techniques and de-obfuscation/reversing techniques to explain... it would take one or two entire weeks...and probaly you wouldn’t to know about it... ☺

▪ I’d like to thank BHACK for the event and, in special, my friends Ewerson (crashbr) and Rafael. ☺

▪ And, of course, I’d like to thank you (the audience) for attending my talk.

➢ Closing thoughts and Acknowledgments...

Page 92: INTRODUCTION TO - Blackstorm Security · 2020. 12. 6. · Advanced threats don’t use standard tricks and there’re many lots of facts about them: They use similar techniques from

HTTP://WWW.BLACKSTORMSECURITY.COM92

▪ Security Researcher▪ Speaker at SANS 2020▪ Speaker at DEF CON USA 2019 ▪ Speaker at DEF CON USA 2018▪ Speaker at DEF CON CHINA 2019▪ Speaker at DC2711 (Johannesburg)▪ Speaker at NO HAT 2019 (Italy)▪ Speaker at HITB 2019 (Amsterdam)▪ Speaker at CONFidence 2019 (Poland)▪ Speaker at DevOpsDays BH 2019▪ Speaker at BSIDES

2019/2018/2017/2016▪ Speaker at H2HC 2016/2015▪ Speaker at BHACK 2018▪ Researcher on Android/iOS Reversing,

Rootkits and Digital Forensics.▪ Referee on Digital Investigation: The

International Journal of Digital Forensics & Incident Response

THANK YOU FOR ATTENDING MY TALK ☺

➢ Twitter:

@ale_sp_brazil@blackstormsecbr

➢ Website: http://www.blackstormsecurity.com

➢ LinkedIn: http://www.linkedin.com/in/aleborges

➢ E-mail: [email protected]

ALE

XA

ND

RE

BO

RG

ES

–M

ALW

AR

E A

ND

SE

CU

RIT

Y R

ES

EA

RC

HE

R