SlideShare a Scribd company logo
1 of 60
Download to read offline
James Forshaw @tiraniddo 1
James Forshaw @tiraniddo
Obligatory Background Slide
2
●  Researcher in Google’s Project Zero
●  Specialize in Windows
○  Especially local privilege escalation
●  Never met a logical vulnerability I didn’t like
James Forshaw @tiraniddo
What I’m Going to Talk About
●  Privilege escalation in Windows
○  Good places to look for bugs, mixture of user mode and kernel mode
tips
●  Fun tricks you can use to exploit vulnerabilities
○  Some even many at Microsoft weren’t aware of
●  Mainly logical vulnerabilities, not worrying about memory corruption
3
James Forshaw @tiraniddo
Windows Local Attack Surface
4
James Forshaw @tiraniddo
Windows Local Attack Surface
5
James Forshaw @tiraniddo
Windows Local Attack Surface
6
James Forshaw @tiraniddo 7
Hunting for Elevation of Privilege Bugs
James Forshaw @tiraniddo
Local System Vulnerabilities are Dead!
8
James Forshaw @tiraniddo
Windows Kernel Attack Surface
9
James Forshaw @tiraniddo
System Services and Drivers
10
Windows 7
SP1
Windows
8.1 Windows 10
Services 150 169 196
Drivers 238 253 291
7 8 10
James Forshaw @tiraniddo
Service Privilege Levels
11
Windows 7
SP1 Windows 8.1 Windows 10
Local System 53.69% 56.89% 61.14%
Local Service 32.21% 31.14% 28.50%
Network
Service 14.09% 11.98% 10.36%
7 8 10
James Forshaw @tiraniddo
Service Start Mode
12
Windows 7 Windows 8.1 Windows 10
Auto 30.07% 26.19% 24.10%
Disabled 5.23% 3.57% 2.05%
Manual 53.59% 43.45% 42.56%
Triggered 11.11% 26.79% 31.28%
7 8 10
James Forshaw @tiraniddo
Command Line Arguments for Services?
13
Arbitrary Arguments for
Service
James Forshaw @tiraniddo
Who uses the Arguments?
14
Used here.
James Forshaw @tiraniddo
Example: Mozilla Maintenance Service
/** 
 * Main entry point when running as a service. 
 */ 
void WINAPI 
SvcMain(DWORD argc, LPWSTR *argv) { 
  // ... 
  ExecuteServiceCommand(argc, argv);   
   
} 
15
James Forshaw @tiraniddo
A Number of Security Issues
16
James Forshaw @tiraniddo
Simple C# Test Program
class Program { 
  static void Main(string[] args) { 
    if (args.Length < 1) { 
      Console.WriteLine("Usage: ServiceName args"); 
      Environment.Exit(1); 
    } 
  
    ServiceController service = new ServiceController(args[0]); 
    if (service.Status == ServiceControllerStatus.Stopped) { 
      service.Start(args); 
    } 
  } 
} 
17
James Forshaw @tiraniddo
Finding RPC Services
18
James Forshaw @tiraniddo
Finding Exposed COM Services
19
Menu: Registry > Local Services
James Forshaw @tiraniddo
Device Drivers
James Forshaw @tiraniddo
Accessible Device Objects
21
7 8 10
Windows 7
Windows
8.1
Windows
10
Read/Write 64 54 52
Read-Only 6 6 5
James Forshaw @tiraniddo
Opening a Device Name
DeviceHarddisk1SomeName 
Native NT Path
James Forshaw @tiraniddo
Opening a Device Name
DeviceHarddisk1SomeName 
DeviceHarddisk1  SomeName 
Device Path
Native NT Path
Device
Namespace Path
James Forshaw @tiraniddo
Opening a Device Name
DeviceHarddisk1SomeName 
DeviceHarddisk1  SomeName 
Device Path
Native NT Path
Device
Namespace Path
Harddisk Driver
Create File
Handler
James Forshaw @tiraniddo
Securing the Device Namespace
●  So what’s the problem?
○  By default security of device path enforced by kernel
○  Security of namespace IS NOT enforced by kernel
●  If the driver doesn’t do its own checking or sets appropriate flags
there’s NO security
James Forshaw @tiraniddo
Vulnerable Code Patterns
NTSTATUS DriverEntry(DRIVER_OBJECT *DriverObject, ...) { 
 // Potentially vulnerable 
 IoCreateDevice(DriverObject, 0, Name,  FILE_DEVICE_UNKNOWN,  
                0, TRUE, &DeviceObject); 
                   
 // Device namespace security enforced 
 IoCreateDevice(DriverObject, 0, Name, FILE_DEVICE_UNKNOWN,  
                FILE_DEVICE_SECURE_OPEN, TRUE, &DeviceObject); 
                   
 // Despite the name, still vulnerable 
 IoCreateDeviceSecure(DriverObject, 0, Name, 
                      FILE_DEVICE_UNKNOWN,  
                      0, TRUE, SecuritySddl, NULL, 
                      &DeviceObject); 
} 
26
James Forshaw @tiraniddo
Example: Windows Sockets
●  On Linux/OSX sockets implemented as system calls
●  Implemented in the Ancillary Function Driver
●  You interact with it via DeviceAfd
●  But you must open the device namespace passing it DeviceAfd
Endpoint
●  No security on the namespace :(
●  Further interaction via DeviceIoControl
James Forshaw @tiraniddo
Native Sockets
BOOL ConnectSocket(HANDLE hSocket, u_short srcport, 
                   const SOCKADDR_IN& inaddr) { 
   // hSocket is opened file DeviceAfdEndpoint 
   ConnectData data = { 0 }; 
   data.sin_family = AF_INET; 
   data.sin_port = htons(srcport); 
   data.inaddr = inaddr; 
 
   DWORD dwSize; 
 
   return DeviceIoControl(hSocket, 0x00012007, 
                          &data, sizeof(data), nullptr, 
                          0, &dwSize, nullptr); 
} 
James Forshaw @tiraniddo
Talk to Any Registered IP Endpoint
●  For example SMB or DCE/RPC
29
https://code.google.com/p/google-security-research/issues/detail?id=222
James Forshaw @tiraniddo
What to Look For?
●  Best place to look is in the handlers for:
○  IRP_MJ_DEVICE_CONTROL
○  IRP_MJ_FILE_SYSTEM_CONTROL
○  Classic IOCTL bugs
●  Control Code encodes what permissions the device handle needs
to call and includes parameter passing information.
30
Device Type
bits 30 - 16
Required
Access
15-14
Function Code
12-2
Transfer
Type
1-0
METHOD_BUFFERED 0
METHOD_IN_DIRECT 1
METHOD_OUT_DIRECT 2
METHOD_NEITHER 3
FILE_ANY_ACCESS 0
FILE_READ_ACCESS 1
FILE_WRITE_ACCESS 2
James Forshaw @tiraniddo
IOCTL Example
31
Online decoder: https://www.osronline.com/article.cfm?article=229
James Forshaw @tiraniddo
DosDevice Drive Lookup
32
??C:SomePath
Per-User Device Map
Per-Process Device Map
GLOBAL?? Device Map
Virtual ?? Device Map
DeviceXYZSomePath
James Forshaw @tiraniddo
Per-Process DeviceMap
const int ProcessDeviceMap = 23; 
 
struct PROCESS_DEVICEMAP_INFORMATION { 
    HANDLE DirectoryHandle; 
}; 
 
bool SetProcessDeviceMap(HANDLE hDir) { 
    PROCESS_DEVICEMAP_INFORMATION DeviceMap = {hDir}; 
    NTSTATUS status = NtSetInformationProcess( 
                          GetCurrentProcess(), 
                          ProcessDeviceMap, 
                          &DeviceMap, 
                          sizeof(DeviceMap)); 
    return status == 0; 
} 
33
James Forshaw @tiraniddo
Using Per-Process Device Map
NTSTATUS DoDeviceIoControl(DRIVER_OBJECT *Driver, PIRP Irp) { 
   // Potentially vulnerable 
   PIO_STACK_LOCATION stack_loc = ...; 
   if (stack_loc‐>DeviceIoControl.IoControlCode ==  
       IOCTL_SOMETHING) { 
     UNICODE_STRING name = L"??C:"; 
     UNICODE_STRING target = L"DeviceTarget": 
     IoCreateSymbolicLink(&name, &target); 
   } 
} 
 
HANDLE hDir; 
UNICODE_STRING name = L"GLOBAL??"; 
NtOpenDirectoryObject(&hDir, DIRECTORY_TRAVERSE, &ObjAttr); 
SetProcessDeviceMap(hDir); 
34
https://code.google.com/p/google-security-research/issues/detail?id=538
James Forshaw @tiraniddo
The Hand Which Giveth…
●  MS15-111 Removed Per-Process Device Map from Sandboxes
if (ProcessInformationClass == 
    ProcessDeviceMap) { 
  if (RtlIsSandboxedToken(NULL)) { 
    return STATUS_ACCESS_DENIED; 
  } 
  return ObSetDeviceMap(ProcessHandle, 
                        DirectoryHandle); 
} 
35
James Forshaw @tiraniddo
Per-User DeviceMap
36
James Forshaw @tiraniddo
Impersonation and DeviceMaps
●  When a privileged service impersonates a user they also
impersonate their device map.
●  Dropping a C: symbolic link in per-user device map directory allows
control over where that service things the C: is while
impersonating.
●  Prior to MS15-038 you could use this load DLLs in the target
process
○  This was fixed by adding a new object attribute
OBJ_IGNORE_IMPERSONATED_DEVICEMAP which disables the
impersonation device map.
●  But still useful, for example process creation while impersonating
still vulnerable
●  Also reading of “protected” configuration.
●  Original DLL version available at
https://code.google.com/p/google-security-research/issues/detail?
id=240
37
James Forshaw @tiraniddo
Use Process Monitor
●  Process Monitor logs the impersonation context on file creation
events.
●  Use this to see if any system service is impersonating the user
while opening anything useful (DLLs probably don’t count).
38
Look for this value
James Forshaw @tiraniddo
Interesting Object Attribute Flags
39
Flag Name Value Description
OBJ_CASE_INSENSITIVE 0x0040
Interesting if system is
configured as case
sensitive (default is no)
OBJ_OPENLINK 0x0100
Opens a “link” object. Used
to open a registry key
symbolic link
OBJ_KERNEL_HANDLE 0x0200
If not set in kernel mode,
exposed handle to current
process
OBJ_FORCE_ACCESS_CHECK 0x0400
If not set in kernel mode will
open the resource with no
security checks
OBJ_IGNORE_IMPERSONATED_DEVICEMAP 0x0800
Ignore the impersonated
device map
James Forshaw @tiraniddo
Default ACLs and Owners
●  A file or object’s permissions depend one of three things:
○  The inherited permissions from its container (e.g. a Directory) and/or,
○  The default permissions from the current active token
○  An explicit Security Descriptor passed to kernel system call
40
Default
GROUP
Default
DACL
Default
OWNER
Integrity Level also Inherited
from Token
James Forshaw @tiraniddo
What if DeviceMap Doesn’t Exist?
NTSTATUS SeGetTokenDeviceMap(TOKEN *token, 
                             DEVICE_MAP **device_map) { 
   if (!token‐>LogonSession‐>pDeviceMap) { 
     swprintf_s( 
       &SourceString,           
       L"Sessions0DosDevices%08x‐%08x", 
       token‐>AuthenticationId.HighPart, 
       token‐>AuthenticationId.LowPart);         
     InitializeObjectAttributes(&ObjectAttributes,  
                  SourceString, OBJ_KERNEL_HANDLE, ...); 
     ZwCreateDirectoryObject(&DirectoryHandle,  
           DIRECTORY_ALL_ACCESS, &ObjectAttributes); 
     ObSetDirectoryDeviceMap(&token‐>LogonSession, 
                             DirectoryHandle); 
   } 
   *device_map = token‐>LogonSession‐>pDeviceMap;  
} 
41
James Forshaw @tiraniddo
Default Security
●  Because devicemap directory created in-process on demand it
gains the permissions of the caller:
○  Owner set
○  Default DACL
●  Means we can access the device map
●  We can use this in limited ways to circumvent loss of per-process
Device Map
●  Also works for many other resources such as Registry Keys and
Files
1. Get a token (such as from S4U) with an uninitialized devicemap
2. Impersonate token and access device map to create it
3. Open resource/call kernel function while impersonating the user
42
James Forshaw @tiraniddo
Win32 Automatic Redirection
43
●  Win32 APIs redirect certain file names when called native APIs e.g.
○  COM1 -> ??COM1
○  NUL -> ??NUL
○  And others
●  System services rarely guard against it.
●  If you can get the call under impersonation you can redirect the file
access even if you don’t have control over the complete path
●  For example
○  If the service will open c:somepathyourfile you can redirect to
another file
○  Potentially exploitable for configuration information
James Forshaw @tiraniddo
Path Canonicalization
●  Path canonicalization is fundamentally different between Windows
and Linux/OSX
●  In Linux or OSX the path is passed to the kernel as is
○  Kernel responsible for path canonicalization
○  Both . and .. directories are real directory entries
●  In Windows it must be passed as an absolute path to kernel
○  Relative path components removed in user mode
○  Current directory processed
○  Both . and .. are simulated
44
James Forshaw @tiraniddo
Path Canonicalization
45
A B C
Path Linux/OSX Windows
A/B/C Valid Valid
A/B/C/../../B Valid Valid
A/B/D/../C Invalid Valid
A/B/D”/../C Invalid Valid
const char* path = "c:myapp.exe" ....windowsnotepad.exe";  
if (CheckSig(path)) { 
  snprintf(cmdline, ""%s" arg", path); 
  CreateProcess(NULL, cmdline, ...); 
} 
James Forshaw @tiraniddo
NTFS Invalid Characters
46
James Forshaw @tiraniddo
Object Manager Invalid Characters
47
James Forshaw @tiraniddo
Windows Kernel Uses Counted Strings
48
Specifies length in
bytes
James Forshaw @tiraniddo
Windows Kernel Uses Counted Strings
49
NUL terminated!
James Forshaw @tiraniddo
Alternate Data Streams on Directories
50
James Forshaw @tiraniddo
UAC Auto Elevation Directory Check
51
c:windows c:windowstracingapp.exe app.exe
ALLOWED BANNED
James Forshaw @tiraniddo
Folder Permissions
52
c:windows c:windowstracingapp.exe app.exe
ALLOWED BANNED
James Forshaw @tiraniddo
AiCheckSecureApplicationDirectory Bypass
53
●  Need to be able to write a file with a secure path
●  How can we write to C:Windows without writing to C:Windows?
c:windows malicious.exe
ALLOWED
c:windows ????
ALLOWED?
James Forshaw @tiraniddo
NTFS Alternate Data Streams FTW!
54
c:windows tracing:malicious.exe
ALLOWED
●  Only need FILE_WRITE_DATA/FILE_ADD_FILE access right on
directory to created named stream.
●  Bug only fixed in Windows 10, not in Windows 8.1 and below.
James Forshaw @tiraniddo
Windows Symbolic Links
Windows NT 3.1 - July 27 1993
Object Manager Symbolic Links
Registry Key Symbolic Links
Windows 2000 - Feb 17 2000
NTFS Mount Points and
Directory Junctions
Windows Vista - Nov 30 2006
NTFS Symbolic Links
James Forshaw @tiraniddo
Mitigated in Sandboxes
56
NTFS Mount Points
Registry Key Symbolic
Links
Object Manager
Symbolic Links
BANNED
LIMITED
LIMITED
James Forshaw @tiraniddo
Weird Default Permissions
●  Both C:WindowsTemp and C:ProgramData have permissions
which allow a normal user to create new files
●  If you can find a program misusing these you can create new files
or symbolic links to attack them
●  You can’t delete files necessarily, but of course worth finding a way
of doing so.
57
James Forshaw @tiraniddo 58
James Forshaw @tiraniddo
The Tools of the Trade (well my choice)
59
●  SysInternals
○  Process Explorer
○  Process Monitor
○  WinObj
●  WinDBG
●  Rohitab API Monitor (http://www.rohitab.com/apimonitor)
●  RPCView (http://www.rpcview.org/)
●  OleView.NET (https://github.com/tyranid/oleviewdotnet)
●  Sandbox Analysis Tools (
https://github.com/google/sandbox-attacksurface-analysis-tools
●  IDA Pro
James Forshaw @tiraniddo
Questions?
60

More Related Content

What's hot

[ENG] OHM2013 - The Quest for the Client-Side Elixir Against Zombie Browsers -
[ENG] OHM2013 - The Quest for the Client-Side Elixir Against Zombie Browsers - [ENG] OHM2013 - The Quest for the Client-Side Elixir Against Zombie Browsers -
[ENG] OHM2013 - The Quest for the Client-Side Elixir Against Zombie Browsers -
Zoltan Balazs
 
Don't Give Credit: Hacking Arcade Machines
Don't Give Credit: Hacking Arcade MachinesDon't Give Credit: Hacking Arcade Machines
Don't Give Credit: Hacking Arcade Machines
Michael Scovetta
 
The Listening: Email Client Backdoor
The Listening: Email Client BackdoorThe Listening: Email Client Backdoor
The Listening: Email Client Backdoor
Michael Scovetta
 

What's hot (20)

Divide et Impera: MemoryRanger Runs Drivers in Isolated Kernel Spaces
Divide et Impera: MemoryRanger Runs Drivers in Isolated Kernel SpacesDivide et Impera: MemoryRanger Runs Drivers in Isolated Kernel Spaces
Divide et Impera: MemoryRanger Runs Drivers in Isolated Kernel Spaces
 
(130105) #fitalk trends in d forensics (dec, 2012)
(130105) #fitalk   trends in d forensics (dec, 2012)(130105) #fitalk   trends in d forensics (dec, 2012)
(130105) #fitalk trends in d forensics (dec, 2012)
 
Kernel Hijacking Is Not an Option: MemoryRanger Comes to The Rescue Again
Kernel Hijacking Is Not an Option: MemoryRanger Comes to The Rescue AgainKernel Hijacking Is Not an Option: MemoryRanger Comes to The Rescue Again
Kernel Hijacking Is Not an Option: MemoryRanger Comes to The Rescue Again
 
Hypervisor-Based Active Data Protection for Integrity and Confidentiality of ...
Hypervisor-Based Active Data Protection for Integrity and Confidentiality of ...Hypervisor-Based Active Data Protection for Integrity and Confidentiality of ...
Hypervisor-Based Active Data Protection for Integrity and Confidentiality of ...
 
44CON 2014 - Breaking AV Software
44CON 2014 - Breaking AV Software44CON 2014 - Breaking AV Software
44CON 2014 - Breaking AV Software
 
Your Linux Passwords Are in Danger: MimiDove Meets the Challenge (lightning t...
Your Linux Passwords Are in Danger: MimiDove Meets the Challenge (lightning t...Your Linux Passwords Are in Danger: MimiDove Meets the Challenge (lightning t...
Your Linux Passwords Are in Danger: MimiDove Meets the Challenge (lightning t...
 
Applying Memory Forensics to Rootkit Detection
Applying Memory Forensics to Rootkit DetectionApplying Memory Forensics to Rootkit Detection
Applying Memory Forensics to Rootkit Detection
 
(140716) #fitalk digital evidence from android-based smartwatch
(140716) #fitalk   digital evidence from android-based smartwatch(140716) #fitalk   digital evidence from android-based smartwatch
(140716) #fitalk digital evidence from android-based smartwatch
 
Hacking with Remote Admin Tools (RAT)
 Hacking with Remote Admin Tools (RAT) Hacking with Remote Admin Tools (RAT)
Hacking with Remote Admin Tools (RAT)
 
[2010 CodeEngn Conference 04] window31 - Art of Keylogging 키보드보안과 관계없는 키로거들
[2010 CodeEngn Conference 04] window31 - Art of Keylogging 키보드보안과 관계없는 키로거들[2010 CodeEngn Conference 04] window31 - Art of Keylogging 키보드보안과 관계없는 키로거들
[2010 CodeEngn Conference 04] window31 - Art of Keylogging 키보드보안과 관계없는 키로거들
 
Sheila Ayelen Berta - The Art of Persistence: "Mr. Windows… I don’t wanna go ...
Sheila Ayelen Berta - The Art of Persistence: "Mr. Windows… I don’t wanna go ...Sheila Ayelen Berta - The Art of Persistence: "Mr. Windows… I don’t wanna go ...
Sheila Ayelen Berta - The Art of Persistence: "Mr. Windows… I don’t wanna go ...
 
Under the hood of modern HIPS-es and Windows access control mechanisms
Under the hood of modern HIPS-es and Windows access control mechanismsUnder the hood of modern HIPS-es and Windows access control mechanisms
Under the hood of modern HIPS-es and Windows access control mechanisms
 
Sandbox detection: leak, abuse, test - Hacktivity 2015
Sandbox detection: leak, abuse, test - Hacktivity 2015Sandbox detection: leak, abuse, test - Hacktivity 2015
Sandbox detection: leak, abuse, test - Hacktivity 2015
 
44CON London 2015 - Old Dog, New Tricks: Forensics With PowerShell
44CON London 2015 - Old Dog, New Tricks: Forensics With PowerShell44CON London 2015 - Old Dog, New Tricks: Forensics With PowerShell
44CON London 2015 - Old Dog, New Tricks: Forensics With PowerShell
 
[ENG] OHM2013 - The Quest for the Client-Side Elixir Against Zombie Browsers -
[ENG] OHM2013 - The Quest for the Client-Side Elixir Against Zombie Browsers - [ENG] OHM2013 - The Quest for the Client-Side Elixir Against Zombie Browsers -
[ENG] OHM2013 - The Quest for the Client-Side Elixir Against Zombie Browsers -
 
Don't Give Credit: Hacking Arcade Machines
Don't Give Credit: Hacking Arcade MachinesDon't Give Credit: Hacking Arcade Machines
Don't Give Credit: Hacking Arcade Machines
 
How to drive a malware analyst crazy
How to drive a malware analyst crazyHow to drive a malware analyst crazy
How to drive a malware analyst crazy
 
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
 
Study and analysis of Orweb anonymizer on Android Devices
Study and analysis of Orweb anonymizer on Android DevicesStudy and analysis of Orweb anonymizer on Android Devices
Study and analysis of Orweb anonymizer on Android Devices
 
The Listening: Email Client Backdoor
The Listening: Email Client BackdoorThe Listening: Email Client Backdoor
The Listening: Email Client Backdoor
 

Viewers also liked

Jonathan Andersson, attacking IoT with SDR pacsec 2015 english
Jonathan Andersson, attacking IoT with SDR pacsec 2015 englishJonathan Andersson, attacking IoT with SDR pacsec 2015 english
Jonathan Andersson, attacking IoT with SDR pacsec 2015 english
PacSecJP
 
kyoungju_kwak_the_new_wave_of_cyber_terror
kyoungju_kwak_the_new_wave_of_cyber_terrorkyoungju_kwak_the_new_wave_of_cyber_terror
kyoungju_kwak_the_new_wave_of_cyber_terror
PacSecJP
 
Stuart Larsen, attacking http2implementations-rev1
Stuart Larsen, attacking http2implementations-rev1Stuart Larsen, attacking http2implementations-rev1
Stuart Larsen, attacking http2implementations-rev1
PacSecJP
 
Akila srinivasan microsoft-bug_bounty-(publish)
Akila srinivasan microsoft-bug_bounty-(publish)Akila srinivasan microsoft-bug_bounty-(publish)
Akila srinivasan microsoft-bug_bounty-(publish)
PacSecJP
 
Qinghao vulnerabilities mining technology of cloud and virtualization platfo...
Qinghao  vulnerabilities mining technology of cloud and virtualization platfo...Qinghao  vulnerabilities mining technology of cloud and virtualization platfo...
Qinghao vulnerabilities mining technology of cloud and virtualization platfo...
PacSecJP
 
Gang gong, escalate privilege by vulnerabilities in android system services
Gang gong, escalate privilege by vulnerabilities in android system servicesGang gong, escalate privilege by vulnerabilities in android system services
Gang gong, escalate privilege by vulnerabilities in android system services
PacSecJP
 
Jonathan attacking IoT with Software Defined Radio pacsec-2015-japanese (fin...
Jonathan  attacking IoT with Software Defined Radio pacsec-2015-japanese (fin...Jonathan  attacking IoT with Software Defined Radio pacsec-2015-japanese (fin...
Jonathan attacking IoT with Software Defined Radio pacsec-2015-japanese (fin...
PacSecJP
 
Hyperchem Ma, badbarcode en_1109_nocomment-final
Hyperchem Ma, badbarcode en_1109_nocomment-finalHyperchem Ma, badbarcode en_1109_nocomment-final
Hyperchem Ma, badbarcode en_1109_nocomment-final
PacSecJP
 
Guang gong escalate privilege by vulnerabilities in android system services ...
Guang gong  escalate privilege by vulnerabilities in android system services ...Guang gong  escalate privilege by vulnerabilities in android system services ...
Guang gong escalate privilege by vulnerabilities in android system services ...
PacSecJP
 
Marc schoenefeld grandma‘s old handbag_draft2_ja
Marc schoenefeld grandma‘s old handbag_draft2_jaMarc schoenefeld grandma‘s old handbag_draft2_ja
Marc schoenefeld grandma‘s old handbag_draft2_ja
PacSecJP
 

Viewers also liked (20)

Georgi Geshev, warranty void if label removed
Georgi Geshev,   warranty void if label removedGeorgi Geshev,   warranty void if label removed
Georgi Geshev, warranty void if label removed
 
Adam Laurie, Blue Toot -pacsec-2015
Adam Laurie, Blue Toot -pacsec-2015Adam Laurie, Blue Toot -pacsec-2015
Adam Laurie, Blue Toot -pacsec-2015
 
Richard Johnson, high performance fuzzing
Richard Johnson, high performance fuzzingRichard Johnson, high performance fuzzing
Richard Johnson, high performance fuzzing
 
Jonathan Andersson, attacking IoT with SDR pacsec 2015 english
Jonathan Andersson, attacking IoT with SDR pacsec 2015 englishJonathan Andersson, attacking IoT with SDR pacsec 2015 english
Jonathan Andersson, attacking IoT with SDR pacsec 2015 english
 
kyoungju_kwak_the_new_wave_of_cyber_terror
kyoungju_kwak_the_new_wave_of_cyber_terrorkyoungju_kwak_the_new_wave_of_cyber_terror
kyoungju_kwak_the_new_wave_of_cyber_terror
 
Stuart Larsen, attacking http2implementations-rev1
Stuart Larsen, attacking http2implementations-rev1Stuart Larsen, attacking http2implementations-rev1
Stuart Larsen, attacking http2implementations-rev1
 
Akila srinivasan microsoft-bug_bounty-(publish)
Akila srinivasan microsoft-bug_bounty-(publish)Akila srinivasan microsoft-bug_bounty-(publish)
Akila srinivasan microsoft-bug_bounty-(publish)
 
Pac sec2016 flyer_agenda
Pac sec2016 flyer_agendaPac sec2016 flyer_agenda
Pac sec2016 flyer_agenda
 
Qinghao vulnerabilities mining technology of cloud and virtualization platfo...
Qinghao  vulnerabilities mining technology of cloud and virtualization platfo...Qinghao  vulnerabilities mining technology of cloud and virtualization platfo...
Qinghao vulnerabilities mining technology of cloud and virtualization platfo...
 
Gang gong, escalate privilege by vulnerabilities in android system services
Gang gong, escalate privilege by vulnerabilities in android system servicesGang gong, escalate privilege by vulnerabilities in android system services
Gang gong, escalate privilege by vulnerabilities in android system services
 
Adam blue toot pacsec-2015-jp
Adam blue toot pacsec-2015-jpAdam blue toot pacsec-2015-jp
Adam blue toot pacsec-2015-jp
 
Jonathan attacking IoT with Software Defined Radio pacsec-2015-japanese (fin...
Jonathan  attacking IoT with Software Defined Radio pacsec-2015-japanese (fin...Jonathan  attacking IoT with Software Defined Radio pacsec-2015-japanese (fin...
Jonathan attacking IoT with Software Defined Radio pacsec-2015-japanese (fin...
 
Kasza smashing the_jars
Kasza smashing the_jarsKasza smashing the_jars
Kasza smashing the_jars
 
James Windows10 elevator action final-jp
James Windows10 elevator action final-jpJames Windows10 elevator action final-jp
James Windows10 elevator action final-jp
 
Martin UPnP - pacsec -final-ja
Martin UPnP - pacsec -final-jaMartin UPnP - pacsec -final-ja
Martin UPnP - pacsec -final-ja
 
Hyperchem Ma, badbarcode en_1109_nocomment-final
Hyperchem Ma, badbarcode en_1109_nocomment-finalHyperchem Ma, badbarcode en_1109_nocomment-final
Hyperchem Ma, badbarcode en_1109_nocomment-final
 
Guang gong escalate privilege by vulnerabilities in android system services ...
Guang gong  escalate privilege by vulnerabilities in android system services ...Guang gong  escalate privilege by vulnerabilities in android system services ...
Guang gong escalate privilege by vulnerabilities in android system services ...
 
Filippo, Plain simple reality of entropy
Filippo, Plain simple reality of  entropyFilippo, Plain simple reality of  entropy
Filippo, Plain simple reality of entropy
 
Mickey pac sec2016_final_ja
Mickey pac sec2016_final_jaMickey pac sec2016_final_ja
Mickey pac sec2016_final_ja
 
Marc schoenefeld grandma‘s old handbag_draft2_ja
Marc schoenefeld grandma‘s old handbag_draft2_jaMarc schoenefeld grandma‘s old handbag_draft2_ja
Marc schoenefeld grandma‘s old handbag_draft2_ja
 

Similar to James Forshaw, elevator action

Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Opersys inc.
 
Fantastic Red Team Attacks and How to Find Them
Fantastic Red Team Attacks and How to Find ThemFantastic Red Team Attacks and How to Find Them
Fantastic Red Team Attacks and How to Find Them
Ross Wolf
 
Understanding and implementing website security
Understanding and implementing website securityUnderstanding and implementing website security
Understanding and implementing website security
Drew Gorton
 

Similar to James Forshaw, elevator action (20)

Man-In-The-Disk
Man-In-The-DiskMan-In-The-Disk
Man-In-The-Disk
 
The art of android hacking
The art of  android hackingThe art of  android hacking
The art of android hacking
 
The art of android hacking by Abhinav Mishra (0ctac0der)
The art of  android hacking by Abhinav Mishra (0ctac0der)The art of  android hacking by Abhinav Mishra (0ctac0der)
The art of android hacking by Abhinav Mishra (0ctac0der)
 
Network security
Network securityNetwork security
Network security
 
Extending Android's Platform Toolsuite
Extending Android's Platform ToolsuiteExtending Android's Platform Toolsuite
Extending Android's Platform Toolsuite
 
Mitigating Java Deserialization attacks from within the JVM (improved version)
Mitigating Java Deserialization attacks from within the JVM (improved version)Mitigating Java Deserialization attacks from within the JVM (improved version)
Mitigating Java Deserialization attacks from within the JVM (improved version)
 
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
 
Hacker vs company, Cloud Cyber Security Automated with Kubernetes - Demi Ben-...
Hacker vs company, Cloud Cyber Security Automated with Kubernetes - Demi Ben-...Hacker vs company, Cloud Cyber Security Automated with Kubernetes - Demi Ben-...
Hacker vs company, Cloud Cyber Security Automated with Kubernetes - Demi Ben-...
 
Beat Your Mom At Solitaire—Reverse Engineering of Computer Games
Beat Your Mom At Solitaire—Reverse Engineering of Computer GamesBeat Your Mom At Solitaire—Reverse Engineering of Computer Games
Beat Your Mom At Solitaire—Reverse Engineering of Computer Games
 
Android Security, From the Ground Up
Android Security, From the Ground UpAndroid Security, From the Ground Up
Android Security, From the Ground Up
 
MobSecCon 2015 - Burning Marshmallows
MobSecCon 2015 - Burning Marshmallows MobSecCon 2015 - Burning Marshmallows
MobSecCon 2015 - Burning Marshmallows
 
CodeMotion tel aviv 2015 - burning marshmallows
CodeMotion tel aviv 2015 - burning marshmallowsCodeMotion tel aviv 2015 - burning marshmallows
CodeMotion tel aviv 2015 - burning marshmallows
 
Mitigating Java Deserialization attacks from within the JVM
Mitigating Java Deserialization attacks from within the JVMMitigating Java Deserialization attacks from within the JVM
Mitigating Java Deserialization attacks from within the JVM
 
Fantastic Red Team Attacks and How to Find Them
Fantastic Red Team Attacks and How to Find ThemFantastic Red Team Attacks and How to Find Them
Fantastic Red Team Attacks and How to Find Them
 
Pen Testing Development
Pen Testing DevelopmentPen Testing Development
Pen Testing Development
 
Attacking Embedded Devices (No Axe Required)
Attacking Embedded Devices (No Axe Required)Attacking Embedded Devices (No Axe Required)
Attacking Embedded Devices (No Axe Required)
 
Headless Android
Headless AndroidHeadless Android
Headless Android
 
Understanding and implementing website security
Understanding and implementing website securityUnderstanding and implementing website security
Understanding and implementing website security
 
Security Issues in Android Custom ROM
Security Issues in Android Custom ROMSecurity Issues in Android Custom ROM
Security Issues in Android Custom ROM
 
Security Issues in Android Custom Rom
Security Issues in Android Custom RomSecurity Issues in Android Custom Rom
Security Issues in Android Custom Rom
 

More from PacSecJP

Kavya racharla ndh-naropanth_fin_jp-final
Kavya racharla ndh-naropanth_fin_jp-finalKavya racharla ndh-naropanth_fin_jp-final
Kavya racharla ndh-naropanth_fin_jp-final
PacSecJP
 
Ryder robertson security-considerations_in_the_supply_chain_2017.11.02
Ryder robertson security-considerations_in_the_supply_chain_2017.11.02Ryder robertson security-considerations_in_the_supply_chain_2017.11.02
Ryder robertson security-considerations_in_the_supply_chain_2017.11.02
PacSecJP
 
Ryder robertson pac-sec skeleton 2017_jp
Ryder robertson pac-sec skeleton 2017_jpRyder robertson pac-sec skeleton 2017_jp
Ryder robertson pac-sec skeleton 2017_jp
PacSecJP
 
Yuki chen from_out_of_memory_to_remote_code_execution_pac_sec2017_final-j
Yuki chen from_out_of_memory_to_remote_code_execution_pac_sec2017_final-jYuki chen from_out_of_memory_to_remote_code_execution_pac_sec2017_final-j
Yuki chen from_out_of_memory_to_remote_code_execution_pac_sec2017_final-j
PacSecJP
 
Yuki chen from_out_of_memory_to_remote_code_execution_pac_sec2017_final
Yuki chen from_out_of_memory_to_remote_code_execution_pac_sec2017_finalYuki chen from_out_of_memory_to_remote_code_execution_pac_sec2017_final
Yuki chen from_out_of_memory_to_remote_code_execution_pac_sec2017_final
PacSecJP
 
Rouault imbert view_alpc_rpc_pacsec_jp
Rouault imbert view_alpc_rpc_pacsec_jpRouault imbert view_alpc_rpc_pacsec_jp
Rouault imbert view_alpc_rpc_pacsec_jp
PacSecJP
 
Rouault imbert alpc_rpc_pacsec
Rouault imbert alpc_rpc_pacsecRouault imbert alpc_rpc_pacsec
Rouault imbert alpc_rpc_pacsec
PacSecJP
 
Ahn pacsec2017 key-recovery_attacks_against_commercial_white-box_cryptography...
Ahn pacsec2017 key-recovery_attacks_against_commercial_white-box_cryptography...Ahn pacsec2017 key-recovery_attacks_against_commercial_white-box_cryptography...
Ahn pacsec2017 key-recovery_attacks_against_commercial_white-box_cryptography...
PacSecJP
 
Ahn pacsec2017 key-recovery_attacks_against_commercial_white-box_cryptography...
Ahn pacsec2017 key-recovery_attacks_against_commercial_white-box_cryptography...Ahn pacsec2017 key-recovery_attacks_against_commercial_white-box_cryptography...
Ahn pacsec2017 key-recovery_attacks_against_commercial_white-box_cryptography...
PacSecJP
 
Yunusov babin 7sins-pres_atm_v4(2)_jp
Yunusov babin 7sins-pres_atm_v4(2)_jpYunusov babin 7sins-pres_atm_v4(2)_jp
Yunusov babin 7sins-pres_atm_v4(2)_jp
PacSecJP
 
Yunusov babin 7 sins pres atm v2
Yunusov babin 7 sins pres atm v2Yunusov babin 7 sins pres atm v2
Yunusov babin 7 sins pres atm v2
PacSecJP
 
Shusei tomonaga pac_sec_20171026_jp
Shusei tomonaga pac_sec_20171026_jpShusei tomonaga pac_sec_20171026_jp
Shusei tomonaga pac_sec_20171026_jp
PacSecJP
 
Shusei tomonaga pac_sec_20171026
Shusei tomonaga pac_sec_20171026Shusei tomonaga pac_sec_20171026
Shusei tomonaga pac_sec_20171026
PacSecJP
 
Kavya racharla ndh-naropanth_fin
Kavya racharla ndh-naropanth_finKavya racharla ndh-naropanth_fin
Kavya racharla ndh-naropanth_fin
PacSecJP
 
Lucas apa pacsec_slides_jp-final
Lucas apa pacsec_slides_jp-finalLucas apa pacsec_slides_jp-final
Lucas apa pacsec_slides_jp-final
PacSecJP
 

More from PacSecJP (20)

Kavya racharla ndh-naropanth_fin_jp-final
Kavya racharla ndh-naropanth_fin_jp-finalKavya racharla ndh-naropanth_fin_jp-final
Kavya racharla ndh-naropanth_fin_jp-final
 
Ryder robertson security-considerations_in_the_supply_chain_2017.11.02
Ryder robertson security-considerations_in_the_supply_chain_2017.11.02Ryder robertson security-considerations_in_the_supply_chain_2017.11.02
Ryder robertson security-considerations_in_the_supply_chain_2017.11.02
 
Ryder robertson pac-sec skeleton 2017_jp
Ryder robertson pac-sec skeleton 2017_jpRyder robertson pac-sec skeleton 2017_jp
Ryder robertson pac-sec skeleton 2017_jp
 
Yuki chen from_out_of_memory_to_remote_code_execution_pac_sec2017_final-j
Yuki chen from_out_of_memory_to_remote_code_execution_pac_sec2017_final-jYuki chen from_out_of_memory_to_remote_code_execution_pac_sec2017_final-j
Yuki chen from_out_of_memory_to_remote_code_execution_pac_sec2017_final-j
 
Yuki chen from_out_of_memory_to_remote_code_execution_pac_sec2017_final
Yuki chen from_out_of_memory_to_remote_code_execution_pac_sec2017_finalYuki chen from_out_of_memory_to_remote_code_execution_pac_sec2017_final
Yuki chen from_out_of_memory_to_remote_code_execution_pac_sec2017_final
 
Rouault imbert view_alpc_rpc_pacsec_jp
Rouault imbert view_alpc_rpc_pacsec_jpRouault imbert view_alpc_rpc_pacsec_jp
Rouault imbert view_alpc_rpc_pacsec_jp
 
Rouault imbert alpc_rpc_pacsec
Rouault imbert alpc_rpc_pacsecRouault imbert alpc_rpc_pacsec
Rouault imbert alpc_rpc_pacsec
 
Di shen pacsec_jp-final
Di shen pacsec_jp-finalDi shen pacsec_jp-final
Di shen pacsec_jp-final
 
Di shen pacsec_final
Di shen pacsec_finalDi shen pacsec_final
Di shen pacsec_final
 
Anıl kurmuş pacsec3-ja
Anıl kurmuş pacsec3-jaAnıl kurmuş pacsec3-ja
Anıl kurmuş pacsec3-ja
 
Anıl kurmuş pacsec3
Anıl kurmuş pacsec3Anıl kurmuş pacsec3
Anıl kurmuş pacsec3
 
Ahn pacsec2017 key-recovery_attacks_against_commercial_white-box_cryptography...
Ahn pacsec2017 key-recovery_attacks_against_commercial_white-box_cryptography...Ahn pacsec2017 key-recovery_attacks_against_commercial_white-box_cryptography...
Ahn pacsec2017 key-recovery_attacks_against_commercial_white-box_cryptography...
 
Ahn pacsec2017 key-recovery_attacks_against_commercial_white-box_cryptography...
Ahn pacsec2017 key-recovery_attacks_against_commercial_white-box_cryptography...Ahn pacsec2017 key-recovery_attacks_against_commercial_white-box_cryptography...
Ahn pacsec2017 key-recovery_attacks_against_commercial_white-box_cryptography...
 
Yunusov babin 7sins-pres_atm_v4(2)_jp
Yunusov babin 7sins-pres_atm_v4(2)_jpYunusov babin 7sins-pres_atm_v4(2)_jp
Yunusov babin 7sins-pres_atm_v4(2)_jp
 
Yunusov babin 7 sins pres atm v2
Yunusov babin 7 sins pres atm v2Yunusov babin 7 sins pres atm v2
Yunusov babin 7 sins pres atm v2
 
Shusei tomonaga pac_sec_20171026_jp
Shusei tomonaga pac_sec_20171026_jpShusei tomonaga pac_sec_20171026_jp
Shusei tomonaga pac_sec_20171026_jp
 
Shusei tomonaga pac_sec_20171026
Shusei tomonaga pac_sec_20171026Shusei tomonaga pac_sec_20171026
Shusei tomonaga pac_sec_20171026
 
Kavya racharla ndh-naropanth_fin
Kavya racharla ndh-naropanth_finKavya racharla ndh-naropanth_fin
Kavya racharla ndh-naropanth_fin
 
Lucas apa pacsec_slides_jp-final
Lucas apa pacsec_slides_jp-finalLucas apa pacsec_slides_jp-final
Lucas apa pacsec_slides_jp-final
 
Lucas apa pacsec slides
Lucas apa pacsec slidesLucas apa pacsec slides
Lucas apa pacsec slides
 

Recently uploaded

一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
pxcywzqs
 
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
ayvbos
 
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
ydyuyu
 
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdfpdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
JOHNBEBONYAP1
 
Abu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
Abu Dhabi Escorts Service 0508644382 Escorts in Abu DhabiAbu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
Abu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
Monica Sydney
 
一比一原版奥兹学院毕业证如何办理
一比一原版奥兹学院毕业证如何办理一比一原版奥兹学院毕业证如何办理
一比一原版奥兹学院毕业证如何办理
F
 
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsIndian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Monica Sydney
 
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
gajnagarg
 

Recently uploaded (20)

APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
 
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
 
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
 
Call girls Service in Ajman 0505086370 Ajman call girls
Call girls Service in Ajman 0505086370 Ajman call girlsCall girls Service in Ajman 0505086370 Ajman call girls
Call girls Service in Ajman 0505086370 Ajman call girls
 
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
 
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdfpdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
 
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency""Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
 
Trump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts SweatshirtTrump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts Sweatshirt
 
Abu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
Abu Dhabi Escorts Service 0508644382 Escorts in Abu DhabiAbu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
Abu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
 
一比一原版奥兹学院毕业证如何办理
一比一原版奥兹学院毕业证如何办理一比一原版奥兹学院毕业证如何办理
一比一原版奥兹学院毕业证如何办理
 
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirt
 
Tadepalligudem Escorts Service Girl ^ 9332606886, WhatsApp Anytime Tadepallig...
Tadepalligudem Escorts Service Girl ^ 9332606886, WhatsApp Anytime Tadepallig...Tadepalligudem Escorts Service Girl ^ 9332606886, WhatsApp Anytime Tadepallig...
Tadepalligudem Escorts Service Girl ^ 9332606886, WhatsApp Anytime Tadepallig...
 
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsIndian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
 
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
 
Local Call Girls in Seoni 9332606886 HOT & SEXY Models beautiful and charmin...
Local Call Girls in Seoni  9332606886 HOT & SEXY Models beautiful and charmin...Local Call Girls in Seoni  9332606886 HOT & SEXY Models beautiful and charmin...
Local Call Girls in Seoni 9332606886 HOT & SEXY Models beautiful and charmin...
 
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime NagercoilNagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
 
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac RoomVip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
 
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
 
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
 

James Forshaw, elevator action

  • 2. James Forshaw @tiraniddo Obligatory Background Slide 2 ●  Researcher in Google’s Project Zero ●  Specialize in Windows ○  Especially local privilege escalation ●  Never met a logical vulnerability I didn’t like
  • 3. James Forshaw @tiraniddo What I’m Going to Talk About ●  Privilege escalation in Windows ○  Good places to look for bugs, mixture of user mode and kernel mode tips ●  Fun tricks you can use to exploit vulnerabilities ○  Some even many at Microsoft weren’t aware of ●  Mainly logical vulnerabilities, not worrying about memory corruption 3
  • 4. James Forshaw @tiraniddo Windows Local Attack Surface 4
  • 5. James Forshaw @tiraniddo Windows Local Attack Surface 5
  • 6. James Forshaw @tiraniddo Windows Local Attack Surface 6
  • 7. James Forshaw @tiraniddo 7 Hunting for Elevation of Privilege Bugs
  • 8. James Forshaw @tiraniddo Local System Vulnerabilities are Dead! 8
  • 9. James Forshaw @tiraniddo Windows Kernel Attack Surface 9
  • 10. James Forshaw @tiraniddo System Services and Drivers 10 Windows 7 SP1 Windows 8.1 Windows 10 Services 150 169 196 Drivers 238 253 291 7 8 10
  • 11. James Forshaw @tiraniddo Service Privilege Levels 11 Windows 7 SP1 Windows 8.1 Windows 10 Local System 53.69% 56.89% 61.14% Local Service 32.21% 31.14% 28.50% Network Service 14.09% 11.98% 10.36% 7 8 10
  • 12. James Forshaw @tiraniddo Service Start Mode 12 Windows 7 Windows 8.1 Windows 10 Auto 30.07% 26.19% 24.10% Disabled 5.23% 3.57% 2.05% Manual 53.59% 43.45% 42.56% Triggered 11.11% 26.79% 31.28% 7 8 10
  • 13. James Forshaw @tiraniddo Command Line Arguments for Services? 13 Arbitrary Arguments for Service
  • 14. James Forshaw @tiraniddo Who uses the Arguments? 14 Used here.
  • 15. James Forshaw @tiraniddo Example: Mozilla Maintenance Service /**   * Main entry point when running as a service.   */  void WINAPI  SvcMain(DWORD argc, LPWSTR *argv) {    // ...    ExecuteServiceCommand(argc, argv);        }  15
  • 16. James Forshaw @tiraniddo A Number of Security Issues 16
  • 17. James Forshaw @tiraniddo Simple C# Test Program class Program {    static void Main(string[] args) {      if (args.Length < 1) {        Console.WriteLine("Usage: ServiceName args");        Environment.Exit(1);      }         ServiceController service = new ServiceController(args[0]);      if (service.Status == ServiceControllerStatus.Stopped) {        service.Start(args);      }    }  }  17
  • 19. James Forshaw @tiraniddo Finding Exposed COM Services 19 Menu: Registry > Local Services
  • 21. James Forshaw @tiraniddo Accessible Device Objects 21 7 8 10 Windows 7 Windows 8.1 Windows 10 Read/Write 64 54 52 Read-Only 6 6 5
  • 22. James Forshaw @tiraniddo Opening a Device Name DeviceHarddisk1SomeName  Native NT Path
  • 23. James Forshaw @tiraniddo Opening a Device Name DeviceHarddisk1SomeName  DeviceHarddisk1  SomeName  Device Path Native NT Path Device Namespace Path
  • 24. James Forshaw @tiraniddo Opening a Device Name DeviceHarddisk1SomeName  DeviceHarddisk1  SomeName  Device Path Native NT Path Device Namespace Path Harddisk Driver Create File Handler
  • 25. James Forshaw @tiraniddo Securing the Device Namespace ●  So what’s the problem? ○  By default security of device path enforced by kernel ○  Security of namespace IS NOT enforced by kernel ●  If the driver doesn’t do its own checking or sets appropriate flags there’s NO security
  • 26. James Forshaw @tiraniddo Vulnerable Code Patterns NTSTATUS DriverEntry(DRIVER_OBJECT *DriverObject, ...) {   // Potentially vulnerable   IoCreateDevice(DriverObject, 0, Name,  FILE_DEVICE_UNKNOWN,                   0, TRUE, &DeviceObject);                       // Device namespace security enforced   IoCreateDevice(DriverObject, 0, Name, FILE_DEVICE_UNKNOWN,                   FILE_DEVICE_SECURE_OPEN, TRUE, &DeviceObject);                       // Despite the name, still vulnerable   IoCreateDeviceSecure(DriverObject, 0, Name,                        FILE_DEVICE_UNKNOWN,                         0, TRUE, SecuritySddl, NULL,                        &DeviceObject);  }  26
  • 27. James Forshaw @tiraniddo Example: Windows Sockets ●  On Linux/OSX sockets implemented as system calls ●  Implemented in the Ancillary Function Driver ●  You interact with it via DeviceAfd ●  But you must open the device namespace passing it DeviceAfd Endpoint ●  No security on the namespace :( ●  Further interaction via DeviceIoControl
  • 28. James Forshaw @tiraniddo Native Sockets BOOL ConnectSocket(HANDLE hSocket, u_short srcport,                     const SOCKADDR_IN& inaddr) {     // hSocket is opened file DeviceAfdEndpoint     ConnectData data = { 0 };     data.sin_family = AF_INET;     data.sin_port = htons(srcport);     data.inaddr = inaddr;       DWORD dwSize;       return DeviceIoControl(hSocket, 0x00012007,                            &data, sizeof(data), nullptr,                            0, &dwSize, nullptr);  } 
  • 29. James Forshaw @tiraniddo Talk to Any Registered IP Endpoint ●  For example SMB or DCE/RPC 29 https://code.google.com/p/google-security-research/issues/detail?id=222
  • 30. James Forshaw @tiraniddo What to Look For? ●  Best place to look is in the handlers for: ○  IRP_MJ_DEVICE_CONTROL ○  IRP_MJ_FILE_SYSTEM_CONTROL ○  Classic IOCTL bugs ●  Control Code encodes what permissions the device handle needs to call and includes parameter passing information. 30 Device Type bits 30 - 16 Required Access 15-14 Function Code 12-2 Transfer Type 1-0 METHOD_BUFFERED 0 METHOD_IN_DIRECT 1 METHOD_OUT_DIRECT 2 METHOD_NEITHER 3 FILE_ANY_ACCESS 0 FILE_READ_ACCESS 1 FILE_WRITE_ACCESS 2
  • 31. James Forshaw @tiraniddo IOCTL Example 31 Online decoder: https://www.osronline.com/article.cfm?article=229
  • 32. James Forshaw @tiraniddo DosDevice Drive Lookup 32 ??C:SomePath Per-User Device Map Per-Process Device Map GLOBAL?? Device Map Virtual ?? Device Map DeviceXYZSomePath
  • 33. James Forshaw @tiraniddo Per-Process DeviceMap const int ProcessDeviceMap = 23;    struct PROCESS_DEVICEMAP_INFORMATION {      HANDLE DirectoryHandle;  };    bool SetProcessDeviceMap(HANDLE hDir) {      PROCESS_DEVICEMAP_INFORMATION DeviceMap = {hDir};      NTSTATUS status = NtSetInformationProcess(                            GetCurrentProcess(),                            ProcessDeviceMap,                            &DeviceMap,                            sizeof(DeviceMap));      return status == 0;  }  33
  • 34. James Forshaw @tiraniddo Using Per-Process Device Map NTSTATUS DoDeviceIoControl(DRIVER_OBJECT *Driver, PIRP Irp) {     // Potentially vulnerable     PIO_STACK_LOCATION stack_loc = ...;     if (stack_loc‐>DeviceIoControl.IoControlCode ==          IOCTL_SOMETHING) {       UNICODE_STRING name = L"??C:";       UNICODE_STRING target = L"DeviceTarget":       IoCreateSymbolicLink(&name, &target);     }  }    HANDLE hDir;  UNICODE_STRING name = L"GLOBAL??";  NtOpenDirectoryObject(&hDir, DIRECTORY_TRAVERSE, &ObjAttr);  SetProcessDeviceMap(hDir);  34 https://code.google.com/p/google-security-research/issues/detail?id=538
  • 35. James Forshaw @tiraniddo The Hand Which Giveth… ●  MS15-111 Removed Per-Process Device Map from Sandboxes if (ProcessInformationClass ==      ProcessDeviceMap) {    if (RtlIsSandboxedToken(NULL)) {      return STATUS_ACCESS_DENIED;    }    return ObSetDeviceMap(ProcessHandle,                          DirectoryHandle);  }  35
  • 37. James Forshaw @tiraniddo Impersonation and DeviceMaps ●  When a privileged service impersonates a user they also impersonate their device map. ●  Dropping a C: symbolic link in per-user device map directory allows control over where that service things the C: is while impersonating. ●  Prior to MS15-038 you could use this load DLLs in the target process ○  This was fixed by adding a new object attribute OBJ_IGNORE_IMPERSONATED_DEVICEMAP which disables the impersonation device map. ●  But still useful, for example process creation while impersonating still vulnerable ●  Also reading of “protected” configuration. ●  Original DLL version available at https://code.google.com/p/google-security-research/issues/detail? id=240 37
  • 38. James Forshaw @tiraniddo Use Process Monitor ●  Process Monitor logs the impersonation context on file creation events. ●  Use this to see if any system service is impersonating the user while opening anything useful (DLLs probably don’t count). 38 Look for this value
  • 39. James Forshaw @tiraniddo Interesting Object Attribute Flags 39 Flag Name Value Description OBJ_CASE_INSENSITIVE 0x0040 Interesting if system is configured as case sensitive (default is no) OBJ_OPENLINK 0x0100 Opens a “link” object. Used to open a registry key symbolic link OBJ_KERNEL_HANDLE 0x0200 If not set in kernel mode, exposed handle to current process OBJ_FORCE_ACCESS_CHECK 0x0400 If not set in kernel mode will open the resource with no security checks OBJ_IGNORE_IMPERSONATED_DEVICEMAP 0x0800 Ignore the impersonated device map
  • 40. James Forshaw @tiraniddo Default ACLs and Owners ●  A file or object’s permissions depend one of three things: ○  The inherited permissions from its container (e.g. a Directory) and/or, ○  The default permissions from the current active token ○  An explicit Security Descriptor passed to kernel system call 40 Default GROUP Default DACL Default OWNER Integrity Level also Inherited from Token
  • 41. James Forshaw @tiraniddo What if DeviceMap Doesn’t Exist? NTSTATUS SeGetTokenDeviceMap(TOKEN *token,                               DEVICE_MAP **device_map) {     if (!token‐>LogonSession‐>pDeviceMap) {       swprintf_s(         &SourceString,                   L"Sessions0DosDevices%08x‐%08x",         token‐>AuthenticationId.HighPart,         token‐>AuthenticationId.LowPart);               InitializeObjectAttributes(&ObjectAttributes,                     SourceString, OBJ_KERNEL_HANDLE, ...);       ZwCreateDirectoryObject(&DirectoryHandle,              DIRECTORY_ALL_ACCESS, &ObjectAttributes);       ObSetDirectoryDeviceMap(&token‐>LogonSession,                               DirectoryHandle);     }     *device_map = token‐>LogonSession‐>pDeviceMap;   }  41
  • 42. James Forshaw @tiraniddo Default Security ●  Because devicemap directory created in-process on demand it gains the permissions of the caller: ○  Owner set ○  Default DACL ●  Means we can access the device map ●  We can use this in limited ways to circumvent loss of per-process Device Map ●  Also works for many other resources such as Registry Keys and Files 1. Get a token (such as from S4U) with an uninitialized devicemap 2. Impersonate token and access device map to create it 3. Open resource/call kernel function while impersonating the user 42
  • 43. James Forshaw @tiraniddo Win32 Automatic Redirection 43 ●  Win32 APIs redirect certain file names when called native APIs e.g. ○  COM1 -> ??COM1 ○  NUL -> ??NUL ○  And others ●  System services rarely guard against it. ●  If you can get the call under impersonation you can redirect the file access even if you don’t have control over the complete path ●  For example ○  If the service will open c:somepathyourfile you can redirect to another file ○  Potentially exploitable for configuration information
  • 44. James Forshaw @tiraniddo Path Canonicalization ●  Path canonicalization is fundamentally different between Windows and Linux/OSX ●  In Linux or OSX the path is passed to the kernel as is ○  Kernel responsible for path canonicalization ○  Both . and .. directories are real directory entries ●  In Windows it must be passed as an absolute path to kernel ○  Relative path components removed in user mode ○  Current directory processed ○  Both . and .. are simulated 44
  • 45. James Forshaw @tiraniddo Path Canonicalization 45 A B C Path Linux/OSX Windows A/B/C Valid Valid A/B/C/../../B Valid Valid A/B/D/../C Invalid Valid A/B/D”/../C Invalid Valid const char* path = "c:myapp.exe" ....windowsnotepad.exe";   if (CheckSig(path)) {    snprintf(cmdline, ""%s" arg", path);    CreateProcess(NULL, cmdline, ...);  } 
  • 46. James Forshaw @tiraniddo NTFS Invalid Characters 46
  • 47. James Forshaw @tiraniddo Object Manager Invalid Characters 47
  • 48. James Forshaw @tiraniddo Windows Kernel Uses Counted Strings 48 Specifies length in bytes
  • 49. James Forshaw @tiraniddo Windows Kernel Uses Counted Strings 49 NUL terminated!
  • 50. James Forshaw @tiraniddo Alternate Data Streams on Directories 50
  • 51. James Forshaw @tiraniddo UAC Auto Elevation Directory Check 51 c:windows c:windowstracingapp.exe app.exe ALLOWED BANNED
  • 52. James Forshaw @tiraniddo Folder Permissions 52 c:windows c:windowstracingapp.exe app.exe ALLOWED BANNED
  • 53. James Forshaw @tiraniddo AiCheckSecureApplicationDirectory Bypass 53 ●  Need to be able to write a file with a secure path ●  How can we write to C:Windows without writing to C:Windows? c:windows malicious.exe ALLOWED c:windows ???? ALLOWED?
  • 54. James Forshaw @tiraniddo NTFS Alternate Data Streams FTW! 54 c:windows tracing:malicious.exe ALLOWED ●  Only need FILE_WRITE_DATA/FILE_ADD_FILE access right on directory to created named stream. ●  Bug only fixed in Windows 10, not in Windows 8.1 and below.
  • 55. James Forshaw @tiraniddo Windows Symbolic Links Windows NT 3.1 - July 27 1993 Object Manager Symbolic Links Registry Key Symbolic Links Windows 2000 - Feb 17 2000 NTFS Mount Points and Directory Junctions Windows Vista - Nov 30 2006 NTFS Symbolic Links
  • 56. James Forshaw @tiraniddo Mitigated in Sandboxes 56 NTFS Mount Points Registry Key Symbolic Links Object Manager Symbolic Links BANNED LIMITED LIMITED
  • 57. James Forshaw @tiraniddo Weird Default Permissions ●  Both C:WindowsTemp and C:ProgramData have permissions which allow a normal user to create new files ●  If you can find a program misusing these you can create new files or symbolic links to attack them ●  You can’t delete files necessarily, but of course worth finding a way of doing so. 57
  • 59. James Forshaw @tiraniddo The Tools of the Trade (well my choice) 59 ●  SysInternals ○  Process Explorer ○  Process Monitor ○  WinObj ●  WinDBG ●  Rohitab API Monitor (http://www.rohitab.com/apimonitor) ●  RPCView (http://www.rpcview.org/) ●  OleView.NET (https://github.com/tyranid/oleviewdotnet) ●  Sandbox Analysis Tools ( https://github.com/google/sandbox-attacksurface-analysis-tools ●  IDA Pro