SlideShare a Scribd company logo
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

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
Igor Korkin
 
(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)
INSIGHT FORENSIC
 
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
Igor Korkin
 
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 ...
Igor Korkin
 
44CON 2014 - Breaking AV Software
44CON 2014 - Breaking AV Software44CON 2014 - Breaking AV Software
44CON 2014 - Breaking AV Software
44CON
 
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...
Igor Korkin
 
Applying Memory Forensics to Rootkit Detection
Applying Memory Forensics to Rootkit DetectionApplying Memory Forensics to Rootkit Detection
Applying Memory Forensics to Rootkit Detection
Igor Korkin
 
(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
INSIGHT FORENSIC
 
Hacking with Remote Admin Tools (RAT)
 Hacking with Remote Admin Tools (RAT) Hacking with Remote Admin Tools (RAT)
Hacking with Remote Admin Tools (RAT)
Zoltan Balazs
 
[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 키보드보안과 관계없는 키로거들
GangSeok Lee
 
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 ...
RootedCON
 
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
ReCrypt
 
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
Zoltan Balazs
 
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
44CON
 
[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 MachinesMichael Scovetta
 
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
Michael Boman
 
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
Michael Boman
 
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
Reality Net System Solutions
 
The Listening: Email Client Backdoor
The Listening: Email Client BackdoorThe Listening: Email Client Backdoor
The Listening: Email Client BackdoorMichael 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

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
PacSecJP
 
Adam Laurie, Blue Toot -pacsec-2015
Adam Laurie, Blue Toot -pacsec-2015Adam Laurie, Blue Toot -pacsec-2015
Adam Laurie, Blue Toot -pacsec-2015
PacSecJP
 
Richard Johnson, high performance fuzzing
Richard Johnson, high performance fuzzingRichard Johnson, high performance fuzzing
Richard Johnson, high performance fuzzing
PacSecJP
 
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
 
Pac sec2016 flyer_agenda
Pac sec2016 flyer_agendaPac sec2016 flyer_agenda
Pac sec2016 flyer_agenda
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
 
Adam blue toot pacsec-2015-jp
Adam blue toot pacsec-2015-jpAdam blue toot pacsec-2015-jp
Adam blue toot pacsec-2015-jp
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
 
Kasza smashing the_jars
Kasza smashing the_jarsKasza smashing the_jars
Kasza smashing the_jars
PacSecJP
 
James Windows10 elevator action final-jp
James Windows10 elevator action final-jpJames Windows10 elevator action final-jp
James Windows10 elevator action final-jp
PacSecJP
 
Martin UPnP - pacsec -final-ja
Martin UPnP - pacsec -final-jaMartin UPnP - pacsec -final-ja
Martin UPnP - pacsec -final-ja
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
 
Filippo, Plain simple reality of entropy
Filippo, Plain simple reality of  entropyFilippo, Plain simple reality of  entropy
Filippo, Plain simple reality of entropy
PacSecJP
 
Mickey pac sec2016_final_ja
Mickey pac sec2016_final_jaMickey pac sec2016_final_ja
Mickey pac sec2016_final_ja
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

Man-In-The-Disk
Man-In-The-DiskMan-In-The-Disk
Man-In-The-Disk
Priyanka Aash
 
The art of android hacking
The art of  android hackingThe art of  android hacking
The art of android hacking
Abhinav Mishra
 
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)
OWASP Delhi
 
Extending Android's Platform Toolsuite
Extending Android's Platform ToolsuiteExtending Android's Platform Toolsuite
Extending Android's Platform Toolsuite
Opersys inc.
 
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)
Apostolos Giannakidis
 
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.
 
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-...
Demi Ben-Ari
 
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
Christoph Matthies
 
Android Security, From the Ground Up
Android Security, From the Ground UpAndroid Security, From the Ground Up
Android Security, From the Ground Up
Opersys inc.
 
MobSecCon 2015 - Burning Marshmallows
MobSecCon 2015 - Burning Marshmallows MobSecCon 2015 - Burning Marshmallows
MobSecCon 2015 - Burning Marshmallows
Ron Munitz
 
CodeMotion tel aviv 2015 - burning marshmallows
CodeMotion tel aviv 2015 - burning marshmallowsCodeMotion tel aviv 2015 - burning marshmallows
CodeMotion tel aviv 2015 - burning marshmallows
Ron Munitz
 
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
Apostolos Giannakidis
 
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
 
Pen Testing Development
Pen Testing DevelopmentPen Testing Development
Pen Testing Development
CTruncer
 
Attacking Embedded Devices (No Axe Required)
Attacking Embedded Devices (No Axe Required)Attacking Embedded Devices (No Axe Required)
Attacking Embedded Devices (No Axe Required)
Security Weekly
 
Headless Android
Headless AndroidHeadless Android
Headless Android
Opersys inc.
 
Understanding and implementing website security
Understanding and implementing website securityUnderstanding and implementing website security
Understanding and implementing website security
Drew Gorton
 
Security Issues in Android Custom Rom
Security Issues in Android Custom RomSecurity Issues in Android Custom Rom
Security Issues in Android Custom Rom
n|u - The Open Security Community
 
Security Issues in Android Custom ROM
Security Issues in Android Custom ROMSecurity Issues in Android Custom ROM
Security Issues in Android Custom ROM
Anant Shrivastava
 

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
 
Di shen pacsec_jp-final
Di shen pacsec_jp-finalDi shen pacsec_jp-final
Di shen pacsec_jp-final
PacSecJP
 
Di shen pacsec_final
Di shen pacsec_finalDi shen pacsec_final
Di shen pacsec_final
PacSecJP
 
Anıl kurmuş pacsec3-ja
Anıl kurmuş pacsec3-jaAnıl kurmuş pacsec3-ja
Anıl kurmuş pacsec3-ja
PacSecJP
 
Anıl kurmuş pacsec3
Anıl kurmuş pacsec3Anıl kurmuş pacsec3
Anıl kurmuş pacsec3
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
 
Lucas apa pacsec slides
Lucas apa pacsec slidesLucas apa pacsec slides
Lucas apa pacsec slides
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

Explore-Insanony: Watch Instagram Stories Secretly
Explore-Insanony: Watch Instagram Stories SecretlyExplore-Insanony: Watch Instagram Stories Secretly
Explore-Insanony: Watch Instagram Stories Secretly
Trending Blogers
 
[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024
hackersuli
 
1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...
JeyaPerumal1
 
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
cuobya
 
test test test test testtest test testtest test testtest test testtest test ...
test test  test test testtest test testtest test testtest test testtest test ...test test  test test testtest test testtest test testtest test testtest test ...
test test test test testtest test testtest test testtest test testtest test ...
Arif0071
 
Understanding User Behavior with Google Analytics.pdf
Understanding User Behavior with Google Analytics.pdfUnderstanding User Behavior with Google Analytics.pdf
Understanding User Behavior with Google Analytics.pdf
SEO Article Boost
 
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
3ipehhoa
 
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
keoku
 
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
vmemo1
 
guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...
Rogerio Filho
 
Search Result Showing My Post is Now Buried
Search Result Showing My Post is Now BuriedSearch Result Showing My Post is Now Buried
Search Result Showing My Post is Now Buried
Trish Parr
 
2.Cellular Networks_The final stage of connectivity is achieved by segmenting...
2.Cellular Networks_The final stage of connectivity is achieved by segmenting...2.Cellular Networks_The final stage of connectivity is achieved by segmenting...
2.Cellular Networks_The final stage of connectivity is achieved by segmenting...
JeyaPerumal1
 
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
3ipehhoa
 
Gen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needsGen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needs
Laura Szabó
 
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
CIOWomenMagazine
 
Italy Agriculture Equipment Market Outlook to 2027
Italy Agriculture Equipment Market Outlook to 2027Italy Agriculture Equipment Market Outlook to 2027
Italy Agriculture Equipment Market Outlook to 2027
harveenkaur52
 
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Brad Spiegel Macon GA
 
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
zyfovom
 
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
ufdana
 
7 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 20247 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 2024
Danica Gill
 

Recently uploaded (20)

Explore-Insanony: Watch Instagram Stories Secretly
Explore-Insanony: Watch Instagram Stories SecretlyExplore-Insanony: Watch Instagram Stories Secretly
Explore-Insanony: Watch Instagram Stories Secretly
 
[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024
 
1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...
 
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
 
test test test test testtest test testtest test testtest test testtest test ...
test test  test test testtest test testtest test testtest test testtest test ...test test  test test testtest test testtest test testtest test testtest test ...
test test test test testtest test testtest test testtest test testtest test ...
 
Understanding User Behavior with Google Analytics.pdf
Understanding User Behavior with Google Analytics.pdfUnderstanding User Behavior with Google Analytics.pdf
Understanding User Behavior with Google Analytics.pdf
 
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
 
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
 
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
 
guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...
 
Search Result Showing My Post is Now Buried
Search Result Showing My Post is Now BuriedSearch Result Showing My Post is Now Buried
Search Result Showing My Post is Now Buried
 
2.Cellular Networks_The final stage of connectivity is achieved by segmenting...
2.Cellular Networks_The final stage of connectivity is achieved by segmenting...2.Cellular Networks_The final stage of connectivity is achieved by segmenting...
2.Cellular Networks_The final stage of connectivity is achieved by segmenting...
 
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
 
Gen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needsGen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needs
 
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
 
Italy Agriculture Equipment Market Outlook to 2027
Italy Agriculture Equipment Market Outlook to 2027Italy Agriculture Equipment Market Outlook to 2027
Italy Agriculture Equipment Market Outlook to 2027
 
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
 
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
 
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
 
7 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 20247 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 2024
 

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