Extracting a 19-Year-Old Code Execution From WinRAR Introduction | - - PowerPoint PPT Presentation

extracting a 19 year old code execution from winrar
SMART_READER_LITE
LIVE PREVIEW

Extracting a 19-Year-Old Code Execution From WinRAR Introduction | - - PowerPoint PPT Presentation

Extracting a 19-Year-Old Code Execution From WinRAR Introduction | Who Am I? I am a vulnerability researcher @ Check Point Research Worked @ Akamai as a security researcher Worked @ IBM as a malware researcher Twituer: @


slide-1
SLIDE 1

Extracting a 19-Year-Old Code Execution From WinRAR

slide-2
SLIDE 2
  • I am a vulnerability researcher @ Check Point Research
  • Worked @ Akamai as a security researcher
  • Worked @ IBM as a malware researcher
  • Twituer: @NadavGrossman

Introduction | Who Am I?

slide-3
SLIDE 3
  • Fuzzing 101
  • Step-by-Step explanatjon about the fuzzing process we did
  • the evolutjon of our harness / fuzzing process untjl fjnding the critjcal

vulnerability

  • Root cause Analysis
  • Exploitatjon process
  • PoC
  • Conclusions
  • Afuermath

Introduction | Agenda

slide-4
SLIDE 4

Introduction | What is WinRAR?

  • WinRAR is a trialware fjle archiver utjlity for Windows
  • closed source
  • Developed by RARLAB and fjrst released in 1995
slide-5
SLIDE 5

Introduction | What is WinRAR?

slide-6
SLIDE 6

Introduction | Motivation for the

research

  • Good results from fuzzing Adobe Reader with WinAFL fuzzer

Research conducted by @yoavalon and @NetanelBenSimon htups://research.checkpoint.com/50-adobe-cves-in-50-days/

slide-7
SLIDE 7

Introduction | Motivation for the

research

  • Good results from fuzzing Adobe Reader with WinAFL fuzzer

Research conducted by @yoavalon and @NetanelBenSimon htups://research.checkpoint.com/50-adobe-cves-in-50-days/

  • AFL intended for fuzzing fjle formats, WinRAR support 17 archive types
  • WinRAR is popular program and has more than 500M users worldwide
  • Aturactjve target, Zerodium ofgered $100K for an RCE exploit in WinRAR
slide-8
SLIDE 8

Introduction | Motivation for the

research

slide-9
SLIDE 9

Fuzzing 101 | What Does Fuzzing

Mean?

  • Automated sofuware testjng technique that provides to a computer program:
  • Invalid data
  • Unexpected data
  • Random data
  • The program is monitored for exceptjons such as:
  • Crashes
  • memory leaks
  • Failing built-in code assertjons
slide-10
SLIDE 10

Fuzzing 101 | Dumb Fuzzing VS Smart

Fuzzing

  • There are 2 major types of fuzzing:
  • Dumb Fuzzing = no feedback from the fuzzed program.
  • Smart Fuzzing = gettjng feedback on the fuzzed program
slide-11
SLIDE 11

Fuzzing 101 | Dumb Fuzzing VS Smart

Fuzzing

  • There are 2 major types of fuzzing:
  • Dumb Fuzzing = no feedback from the fuzzed program.
  • Smart Fuzzing = gettjng feedback on the fuzzed program
  • smart fuzzing gets insights on the fuzzed program and utjlizes it:
  • expanding the code coverage and the chances for crashes.
  • dumb fuzzing is a blind fuzzing without insights on the fuzzed program
slide-12
SLIDE 12

Fuzzing 101 | What is AFL?

  • AFL = American Fuzzy Lop
  • Security-oriented fuzzer for coverage-guided fuzzing
  • Created by Michał Zalewski from Google / Project Zero
slide-13
SLIDE 13

Fuzzing 101 | What is AFL?

  • AFL = American Fuzzy Lop
  • Security-oriented fuzzer for coverage-guided fuzzing
  • Created by Michał Zalewski from Google / Project Zero
  • Open source project: htup://lcamtuf.coredump.cx/afm/
slide-14
SLIDE 14

Fuzzing 101| Code Coverage and Basic

Blocks

slide-15
SLIDE 15

Fuzzing 101| Code Coverage and Basic

Blocks

slide-16
SLIDE 16

Fuzzing 101| Code Coverage and Basic

Blocks

slide-17
SLIDE 17

Fuzzing 101| Code Coverage and Basic

Blocks

slide-18
SLIDE 18

Fuzzing 101| Code Coverage and Basic

Blocks

slide-19
SLIDE 19

Fuzzing 101| Code Coverage and Basic

Blocks

slide-20
SLIDE 20

Fuzzing 101| Code Coverage and Basic

Blocks

slide-21
SLIDE 21

Fuzzing 101| Code Coverage and Basic

Blocks

slide-22
SLIDE 22

Fuzzing 101| Code Coverage and Basic

Blocks

slide-23
SLIDE 23

Fuzzing 101| Code Coverage and Basic

Blocks

slide-24
SLIDE 24

Fuzzing 101 | What is AFL?

slide-25
SLIDE 25

Fuzzing 101| What is WinAFL?

  • WinAFL fuzzer is a fork of AFL fuzzer for Windows
  • Used for fuzzing closed source binaries
  • Supports binary instrumentatjon only using DynamoRio
slide-26
SLIDE 26

Fuzzing 101| What is WinAFL?

  • WinAFL fuzzer is a fork of AFL fuzzer for Windows
  • Used for fuzzing closed source binaries
  • Supports binary instrumentatjon only using DynamoRio
  • You can think about instrumentatjon as a smart hooking mechanism
slide-27
SLIDE 27

WinAFL 101 | WinAFL Workfmow

  • 1. Your target runs normally untjl your target functjon is reached.
  • 2. WinAFL starts recording coverage
  • 3. Your target functjon runs untjl return
  • 4. WinAFL reports coverage, rewrites the input fjle and patches EIP so

that the executjon jumps back to step 2

  • 5. Afuer your target functjon runs for specifjed number of iteratjons,

the target process is killed and restarted.

slide-28
SLIDE 28

WinAFL 101 | Target Function

Requirements

The target functjon should do these things during its lifetjme:

  • 1. Open the input fjle
  • 2. Parse it
  • 3. Close the input fjle
slide-29
SLIDE 29

WinAFL 101 | Target Function

Requirements

The target functjon should do these things during its lifetjme:

  • 1. Open the input fjle
  • 2. Parse it
  • 3. Close the input fjle
  • 4. Return normally (So that WinAFL can "catch“ this return)
slide-30
SLIDE 30

WinAFL 101 | What is a Harness

  • A harness is the code you stjtch for fuzzing the target functjon
  • Harness could be:
  • The binary itself
  • Patched or modifjed version of the binary
  • Chunk of the program that we want to fuzz
  • Custom code which calls a specifjc export of the target dll
slide-31
SLIDE 31

WinAFL 101 | What is a Harness

  • A harness is the code you stjtch for fuzzing the target functjon
  • Harness could be:
  • The binary itself
  • Patched or modifjed version of the binary
  • Chunk of the program that we want to fuzz
  • Custom code which calls a specifjc export of the target dll
  • It contains or calls the functjonality that we want to fuzz
  • There are 2 types of harnesses:
  • Internal
  • external
slide-32
SLIDE 32

WinAFL 101 | Corpus

  • Baseline of input fjles that being tested on the fuzzed program
  • The fuzzer mutates the corpus to generate fjles that produce new coverage
slide-33
SLIDE 33

WinAFL 101 | Corpus

  • Baseline of input fjles that being tested on the fuzzed program
  • The fuzzer mutates the corpus to generate fjles that produce new coverage
  • Each fjle from the corpus should:
  • Produce new/unique code coverage
  • Be the smallest as possible and produce the most coverage
  • To create an efgectjve corpus you should:
  • Generate or search for small and difgerent inputs from the format you want to fuzz
  • Minimize the input fjles to those that create the most coverage using winafm-cmin.py
slide-34
SLIDE 34

WinAFL 101 | How to Run WinAFL

afm-fuzz.exe [afm optjons] -- [instrumentatjon optjons] -- target_cmd_line [afm optjons]:

  • i [corpus folder] -o [output folder] -t [tjmeout for each run] -D [DynamoRio Path]

<-M/-S> [master or slave] [instrumentatjon optjons]:

  • fuzz_iteratjons [20000] –coverage_module [unacev2.dll]

–target_module [WinRAR.exe] -target_method [extract_func] –covtype [edge] –nargs 2

[target_cmd_line]:

C:\program fjles\WinRAR\WinRAR.exe x @@

slide-35
SLIDE 35

WinAFL 101 | External Harness

slide-36
SLIDE 36

WinAFL 101 | External Harness

  • A custom code which loads and calls the target binary (DLL)
  • It gets the test case fjle from WinAFL
  • It adjusts the target binary for being fuzzable
  • Calls to set of export functjon for example: init(), parse(), clean()
slide-37
SLIDE 37
slide-38
SLIDE 38

WinAFL 101 | Internal Harness

slide-39
SLIDE 39

WinAFL 101 | Internal Harness

  • Using the binary as is or patch it to transform it to be fuzzable
  • Patching work:
  • patch “select fjle dialog” to a functjon parameter which WinAFL can pass (CLI)
  • patch binary calls to ExitProcess() API to return
  • Remove redundant code from the binary which delays the fuzzing process
slide-40
SLIDE 40

Fuzzing T ake #1 | Our Initial Corpus

  • @EyalItkin found an interestjng research conducted by University of Oulu
  • htups://www.ee.oulu.fj/roles/ouspg/PROTOS_Test-Suite_c10-archive
  • A giant corpus that contains thousands of archive fjles from each type
  • We minimized it using winafm-cmin.py from 100K to 100 samples per type

For example, R:\ACE_FUZZER\output_folders\Slave_2\

slide-41
SLIDE 41

Fuzzing T ake #1 | How to start fuzzing

WinRAR

  • Stjtched an internal harness inside WinRAR executable
  • Start by corpus that contains un-popular / old dated fjle formats
  • Detect memory corruptjons by using page heap optjon of GFlags
slide-42
SLIDE 42

Fuzzing T ake #1 | Fuzzing WinRAR

  • Problems we had:

1 . WinRAR gets parameters by GetCommandLineW use –f optjon of WinAFL which sets constant input fjle name

  • 2. WinRAR uses GUI even when CLI parameters are forwarded

we had to patch GUI’s thread and APIs

  • 3. WinRAR does CRC checks for archives during the extractjon process

We found CLI optjons for: Parsing broken archive, but it doesn’t work on all formats

slide-43
SLIDE 43

Fuzzing T ake #1 | Our Fuzzing

Environment

  • 20 cores server
  • VMWare ESX instance for each team member
  • Custom windows 10 image without:
  • Windows Indexing Service
  • Send crashes to Microsofu
  • Basic user interface
  • Using RamDisk to speed-up the fuzzing process
slide-44
SLIDE 44
slide-45
SLIDE 45

Fuzzing T ake #1 | Conclusions

  • Use BugID – for bug triage

htups://github.com/SkyLined/BugId

  • Remove “old fjles” from the extractjon folder, to free up the RAM
slide-46
SLIDE 46

Fuzzing T ake #1 | Results 4 vulnerabilitjes in 3 fjle formats: RAR, LZH, ACE

  • OOB-Write X 2
  • Use-Afuer-Free X 1
  • Null Dereference X 1
  • We notjfjed about 3 of them:
  • CVE-2018-20252, CVE-2018-20253, CPRID-2038
  • The Null Dereference was interestjng
  • we contjnued to research its module
slide-47
SLIDE 47

Fuzzing T ake #1 | Results

  • The Null-Dereference found in UNACVE2.dll
  • We checked the dll and found:
  • Compiled back in 2006!!!
  • Without ASLR or DEP!
slide-48
SLIDE 48

ACE 101 | ACE?!

  • ACE is a data compression archive fjle format
  • Developed by Marcel Lemke in ~1998, bought by e-merge GmbH
  • Peak of its popularity 1999–2001, it had a betuer compression rates than RAR
  • Creatjon/compression of an ACE archive is protected by a patent
  • Extractjon/decompression of ACE archive is *not* protected by a patent
  • A shareware named WinAce by e-merge is used to compress ACE fjles
  • e-merge provided a freeware DLL for ACE decompression
slide-49
SLIDE 49

ACE 101 | ACE?!

slide-50
SLIDE 50

ACE 101 | ACE?!

slide-51
SLIDE 51

ACE 101 | Understanding the ACE fjle

format

  • We found a pure python project named acefjle, its features are:
  • 1. It can extracts ACE archives.
  • 2. It has a helpful feature that prints the fjle format header
slide-52
SLIDE 52

ACE 101 | Understanding the ACE fjle

format

slide-53
SLIDE 53

ACE 101 | Understanding the ACE fjle

format

slide-54
SLIDE 54

ACE 101 | Understanding the ACE fjle

format

slide-55
SLIDE 55
slide-56
SLIDE 56
slide-57
SLIDE 57
slide-58
SLIDE 58

Is there a chance to fjnd a critical vulnerability?

slide-59
SLIDE 59

It’s a GOLD MINE !

slide-60
SLIDE 60

Fuzzing T ake #2 | Improved WinRAR generic fuzzer

(CRC bypass)

  • Changed the corpus to ACE fjle only
  • We patched the CRC checks in unacv2.dll
slide-61
SLIDE 61

Fuzzing T ake #2 | Results and Conclusions

(CRC bypass)

  • WinRAR loads and unloads unacev2.dll for each fuzzing iteratjon
  • WinAFL generates test cases that triggers other formats parsing code
  • This fuzzing approach is too slow, we need a difgerent approach!
slide-62
SLIDE 62

Fuzzing T ake #3 | Creation of a custom harness (Ace dedicated fuzzer)

  • RE how WinRAR uses unacev2.dll for ACE fjle extractjon and mimicked it
  • Quick RE founds that 2 exported functjons should be called in this order:
  • 1. An initjalizatjon functjon named ACEInitDll:
  • 2. An extractjon functjon named ACEExtract:
slide-63
SLIDE 63

Let’s Search For An Open Source!

slide-64
SLIDE 64

Fuzzing T ake #3 | Searching for an open source (Ace dedicated fuzzer)

  • Found a project named FarManager that uses unace.dll
  • FarManager includes a detailed header fjle for the unknown structs:
  • Loading the headers to IDA, ease the RE of how WInRAR uses the dll
  • We mimicked our harness in the same way
slide-65
SLIDE 65

Fuzzing T ake #3 | What is this fjle?!

  • Summarize
slide-66
SLIDE 66

Bug Analysis | Quick Bug Analysis

  • The harness extracts the archive to sub-directories under “output_folders”
  • Why do we have a new folder named sourbe in the parent folder?
  • Inside the sourbe folder we found a fjle named RED VERSION

For example, R:\ACE_FUZZER\output_folders\Slave_2\

slide-67
SLIDE 67

Bug Analysis | Quick Bug Analysis

slide-68
SLIDE 68
slide-69
SLIDE 69
slide-70
SLIDE 70

Bug Analysis | Quick Bug Analysis

Conclusions

we arrived at these conclusions:

  • 1. The fjrst char should be a ‘\’
  • 2. * should be included in the fjlename at least once

Our fjrst assumption was the fjrst character of the fjlename fjeld (the ‘\’ char) triggers the vulnerability

slide-71
SLIDE 71

Bug Analysis | Trying the exploit on

WinRAR

  • YES! The sourbe folder was created in the root of drive C:\sourbe
slide-72
SLIDE 72

Bug Analysis | Trying the exploit on

WinRAR

  • What about the fjle?!
  • It was not created!
slide-73
SLIDE 73

Bug Analysis | Why did the harness and WinRAR

behave difgerently?

Callbacks defjned in the harness difger from those defjned in WinRAR

slide-74
SLIDE 74

Bug Analysis | ACE callback functions

  • We mentjoned this signature when calling the exported functjon
  • Inner member of ACEInitDllStruc contains pointers to 4 callback functjons
slide-75
SLIDE 75

Bug Analysis | ACE callback functions

  • The callbacks are called by the unacev2.dll during the extractjon process.
  • The callbacks validate operatjon that about to happen
  • If the operatjon is allowed, the following constant returned to the dll:

ACE_CALLBACK_RETURN_OK

  • if the operatjon is not allowed by the callback functjon, it returns:
  • ACE_CALLBACK_RETURN_CANCEL
  • If the operatjon is not allowed by the callback it will be aborted.
slide-76
SLIDE 76

Bug Analysis | ACE callback functions

  • WinRAR does validatjon for the extracted fjlename
  • In case of abort code the fjle will be deleted (already empty) by the dll
slide-77
SLIDE 77
slide-78
SLIDE 78

Bug Analysis | WinRAR’s Callback /

Validation Functions

  • 1. The fjrst char does not equal “\” or “/”.
  • 2. The fjle name doesn’t start with “Path Traversal” sequences like:
  • a. “..\”
  • b. “../”
  • 3. The following “Path Traversal” sequences don’t exist in the string:
  • c. “\..\”
  • d. “\../”
  • e. “/../”
  • f. “/..\”
slide-79
SLIDE 79

Bug Analysis | WinRAR’s Callback /

Validation Functions

  • The following string passes to the WinRAR callback’s validator:

“\sourbe\RED VERSION_¶”

  • Because it start with “\” The return code is:

ACE_CALLBACK_RETURN_CANCEL

  • The fjle write operatjon is aborted and a call to a DeleteFile() is made
slide-80
SLIDE 80

Bug Analysis | Why is * vital for the Path

Traversal?

  • There is a check in unacev2.dll code that aborts the extractjon operatjon if:
  • relatjve path string starts with “\”
  • This checks is triggered before the CreateFile()
  • However our fjlename starts with “\”

“\sourbe\RED VERSION*¶”

  • By adding “*”or “?” characters this check is skipped!
slide-81
SLIDE 81

Bug Analysis | Recap

  • We found a Path Traversal vulnerability in unacev2.dll .
  • Two constraints lead to the Path Traversal vulnerability
  • 1. The fjrst char should be ‘\’
  • 2. ‘*’ should be included in the fjlename at least once
  • WinRAR is partjally vulnerable to this Path Traversal bug
slide-82
SLIDE 82

Let’s Find The Root Cause!

slide-83
SLIDE 83

Bug Analysis | Understanding the root

cause

  • 1. We used DynamoRio to record the code coverage in unacev2.dll of:
  • a. regular ACE fjle
  • b. exploit fjle which triggered the bug

drrun -t drcov -- harness.exe [regular ace archive path] drrun -t drcov -- harness.exe [exploit archive path]

  • 2. We then used the lighthouse plugin for IDA
  • To subtracted the coverage of our exploit archive from regular ACE archive
  • 3. we analyze the difgerence basic blocks and found the root cause
slide-84
SLIDE 84

Bug Analysis | Understanding the root

cause

slide-85
SLIDE 85
slide-86
SLIDE 86
  • GetDevicePathLen checks if the device or drive

name prefjx appears in the Path parameter, and returns the length of that string

  • For Example, the functjon returns:

C:\some_folder\some_fjle.ext => 3 \some_folder\some_fjle.ext => 1 \\LOCALHOST\C$\some_folder\some_fjle.ext => 15 \\?\Harddisk0Volume1\some_folder\some_fjle.ext => 21 some_folder\some_fjle.ext => 0

slide-87
SLIDE 87
slide-88
SLIDE 88

Bug Analysis | Understanding the root

cause

slide-89
SLIDE 89

C:\some_folder\some_fjle.ext UnACE_GetDevicePathLen() Returns 3

slide-90
SLIDE 90

C:\some_folder\some_fjle.ext UnACE_GetDevicePathLen() Returns 3

slide-91
SLIDE 91

C:\some_folder\some_fjle.ext Unknown_Clean_Functjon() “some_folder\some_fjle.ext” UnACE_GetDevicePathLen() Returns 0

slide-92
SLIDE 92

Bug Analysis | Finding the Unknown

Function

  • We searched in IDA strings window, references to “:” and “\”
  • We found several functjons that use these string
  • We put BP on all the suspected functjons and started a debug session
  • The Unknown functjon have been found afuer 5 minutes of debugging
  • Let’s call the unknown functjon CleanPath
slide-93
SLIDE 93
slide-94
SLIDE 94

Bug Analysis | CleanPath()

  • The functjon omits all the path traversal sequences of ..\
  • It omits these sequences only once from the beginning of Path:
  • C:\ - fjrst omits it and updates the new path
  • C: - omits it only if the next char is not \
  • It just check of *:\ and *: (* means any char)
  • 1. C:\try1.exe => try1.exe
  • 2. C:try2.exe => try2.exe
  • 3. C:\C:try3.exe => try3.exe
  • 4. C:\C:\try4.exe => C:\try4.exe
slide-95
SLIDE 95

Bug Analysis | The Bug in CleanPath

Function

  • It doesn’t omit ../
  • It doesn’t check recursively the path afuer omittjng a sequence
  • Let’s check this sequence fjrst: C:\C:\some_folder\some_fjle.ext
slide-96
SLIDE 96

C:\C:\some_folder\some_fjle.ext UnACE_CleanPath() C:\some_folder\some_fjle.ext UnACE_GetDevicePathLen() returns 3 CreateFile() WinRAR_CallBack() WriteFile()

CVE-2018-20250

slide-97
SLIDE 97

Exploitation process | Building an Exploit

  • We can extract the fjle to an arbitrary locatjon
  • Files in Startup Folder will be executed in boot tjme
  • There are 2 types of Startup Folder:
  • C:\ProgramData\Microsofu\Windows\Start Menu\Programs\StartUp
  • C:\Users\<user name>\AppData\Roaming\Microsofu\Windows\Start Menu\

Programs\Startup

  • The fjrst demands high privileges / high integrity level

= RCE

slide-98
SLIDE 98

Exploitation process | Building an Exploit

  • If UAC is disabled in the victjm machine we can use this path:
  • C:\ProgramData\Microsofu\Windows\Start Menu\Programs\StartUp
  • Otherwise, embed many fjles in the archive with guessed user names:
  • C:\Users\John\AppData\Roaming\Microsofu\Windows\Start Menu\Programs\

Startup

  • C:\Users\Robert\AppData\Roaming\Microsofu\Windows\Start Menu\

Programs\Startup

  • If UAC is disabled we have 100% success
  • If UAC is enabled the odds for success are low (guessing game)
slide-99
SLIDE 99

Exploitation process | Exploit Limitation all the occurrence of these 3 sequences: If path starts by these 6 sequences, they will be omitued only once:

  • 1. ..\
  • 2. \../
  • 3. /../
  • 9. C:\
  • 6. \
  • 8. C:
  • 5. ../
  • 7. /
  • 10. C:\C:

WinRAR_callback() or/and CleanPath() omit these sequences:

slide-100
SLIDE 100

Exploitation process | Most Powerful Exploit

  • The sequence C: translated in Windows to the CWD of the process
  • WinRAR CWD’s is being set by the WinRAR’s shell extension
  • The shell extension set the CWD to the folder of the selected fjle/fjles
slide-101
SLIDE 101

Exploitation process | Most Powerful Exploit

  • The sequence C: translated in Windows to the CWD of the process
  • WinRAR CWD’s is being set by the WinRAR’s shell extension
  • The shell extension set the CWD to the folder of the selected fjle/fjles
slide-102
SLIDE 102

Exploitation process | Most Powerful Exploit

  • C: is translated to C:\Users\John\Downloads\
  • the path to startup folder is:

C:\Users\John\AppData\Roaming\Microsofu\Windows\Start Menu\ Programs\Startup

All we have to do is:

  • 1. Go one folder backward
  • 2. Append the relatjve path to the Startup folder

C: C:\C:C: CWD

Set to the archive’s folder (Downloads, Desktop, etc)

slide-103
SLIDE 103

Exploitation process | Most Powerful Exploit

C:\C:C:../AppData\Roaming\Microsofu\Windows\Start Menu\Programs\Startup\mal.exe

slide-104
SLIDE 104

C:\C:C:../AppData\Roaming\Microsofu\Windows\Start Menu\Programs\Startup\mal.exe UnACE_CleanPath() C:../AppData/Roaming\Microsofu\Windows\Start Menu\Programs\Startup\mal.exe WinRAR_CallBack() returns 2 UnACE_GetDevicePathLen() CreateFile() WriteFile() C:\Users\John\AppData\Roaming\Microsofu\Windows\......\Startup\mal.exe

slide-105
SLIDE 105
slide-106
SLIDE 106

Exploitation process | Demo

slide-107
SLIDE 107

Exploitation process | Demo

slide-108
SLIDE 108

Coordinated Disclosure

  • 24/12/2018 - Check Point notjfy RARLAB about the bug in unacev2.dll
  • 28/01/2019 - A Fixed version of WinRAR was released
  • 20/02/2019 - Blog post was published

htups://research.checkpoint.com/2019/extractjng-code-executjon-from-winrar/

slide-109
SLIDE 109

Aftermath

  • ACE is dead! WinRAR decided to drop ACE archive support startjng with

WinRAR 5.70

  • Afuer our research, we were notjfjed, that there is now a Metasploit

module for our exploit

slide-110
SLIDE 110

Conclusions

  • Don’t use sofuware without automatjc update in your organizatjon
  • Vulnerabilitjes can reside in popular sofuware for decades
  • Don’t use in your product code from an unmaintained projects
  • If you want to omit functjonality from your code, don’t leave “dead code”
slide-111
SLIDE 111

Thank You!

  • TODO: add gif
  • Mr bena + queen
slide-112
SLIDE 112

Q&A

Twituer: @NadavGrossman