Training 2016 - Assessing and Exploiting Control Systems - BruCON 2016
Training 2016 - Assessing and Exploiting Control Systems - BruCON 2016
Training 2016 - Assessing and Exploiting Control Systems
Training 2016 - Assessing and Exploiting Control
Systems
From BruCON 2016
Contents
1 Assessing and Exploiting Control Systems
1.1 Course Description
1.2 Objectives
2 Course Content
2.1 Introduction to the NESCOR methodology for penetration testing
2.2 Introduction to SamuraiSTFU (Security Testing Framework for Utilities)
2.3 Performing traditional network pentests on control systems
2.4 Types of ICS user interfaces
2.5 Pentesting Different Communication Layers
2.6 Serial communications
2.7 Pentesting RF communications between master servers and field devices
2.8 Pentesting TCP/IP based ICS protocols
2.9 Pentesting technician interfaces on ICS field and floor devices
2.10 Analyzing field and floor device firmware
2.11 Overview of pentesting field and floor device embedded circuits
2.12 Analysis of embedded electronics in ICS field and floor devices
2.13 Dumping data at rest on embedded circuits
2.14 Bus Snooping on embedded circuits
2.15 Analyzing data obtained from data dumping and bus snooping
3 Requirements
3.1 Recommended read
3.2 Software and hardware requirements
3.3 Provided at the course
4 Trainer Biography
http://2016.brucon.org/index.php/Training_2016__Assessing_and_Exploiting_Control_Systems 1/8
11/12/2019 Training 2016 Assessing and Exploiting Control Systems BruCON 2016
Assessing and Exploiting Control Systems
This is not your traditional SCADA/ICS/IoT security course! How many courses send you home with your own
PLC and a set of hardware/RF hacking tools?!? In this 3-day version of the course, you will receive all six
days worth of slides.
Course Description
This course teaches hands-on penetration testing techniques used to test individual components of a
control system, including embedded electronic field devices, network protocols, RF communications,
Human Machine Interfaces (HMIs), and various forms of master servers and their ICS applications. Skills you
will learn in this course will apply directly to systems such as the Smart Grid, PLCs, RTUs, smart meters,
building management, manufacturing, Home Area Networks (HAN), smart appliances, SCADA, substation
automation, and synchrophasors. This course is structured around the formal penetration testing
methodology created by UtiliSec for the United States Department of Energy. Using this methodology and
Control Things Pentest Platform (previously SamuraiSTFU), an open source Linux distribution for pentesting
energy sector systems and other critical infrastructure, we will perform hands-on penetration testing tasks
on user interfaces (on master servers and field device maintenance interfaces), control system protocols
(modbus, DNP3, IEC 60870-5-104), RF communications (433MHz, 869MHz, 915MHz), and embedded circuit
attacks (memory dumping, bus snooping, JTAG, and firmware analysis). We will tie these techniques and
exercises back to control system devices that can be tested using these techniques. The course exercises
will be performed on a mixture of real world and simulated devices to give students the most realistic
experience as possible in a portable classroom setting.
Advances in modern control systems such as the energy sector’s Smart Grid has brought great benefits for
asset owners/operators and customers alike, however these benefits have often come at a cost from a
security perspective. With increased functionality and addition inter-system communication, modern
control systems bring a greater risk of compromise that vendors, asset owners/operators, and society in
general must accept to realize the desired benefits. To minimize this risk, penetration testing in conjunction
with other security assessment types must be performed to minimize vulnerabilities before attackers can
exploit critical infrastructures that exist in all countries around the world. Ultimately, this is the goal of this
course, to help you know how, when, and where this can be done safely in your control systems.
Objectives
Attendees will be able to explain the steps and methodology used in performing penetration tests on
Industrial Control and Smart Grid systems.
Attendees will be able to use the free and open source tools in SamuraiSTFU to discover and identify
vulnerabilities in web applications.
Attendees will be able to exploit several hardware, network, user interface, and server-side
vulnerabilities.
http://2016.brucon.org/index.php/Training_2016__Assessing_and_Exploiting_Control_Systems 2/8
11/12/2019 Training 2016 Assessing and Exploiting Control Systems BruCON 2016
Course Content
Introduction to the NESCOR methodology for penetration testing
Preparing for a penetration test
Architecture reviews
Pentesting the master servers
Pentesting the user interfaces
Pentesting the network communications
Pentesting the embedded field devices
End- ‐to- ‐end assessment
Reporting
Introduction to SamuraiSTFU (Security Testing Framework for Utilities)
Setting up the virtual machine
Walk through the tools and functionality
Introduction to the student hardware kits
Performing traditional network pentests on control systems
Overview of a traditional network penetration test methodology
Dangers of port and vulnerability scanning
Strategies to perform port and vulnerability scanning
Types of ICS user interfaces
Traditional applications
Web applications
Terminal interfaces
Pentesting Different Communication Layers
Testing of communication mediums vs communication protocols
Where security defenses should be place …… and tested
http://2016.brucon.org/index.php/Training_2016__Assessing_and_Exploiting_Control_Systems 3/8
11/12/2019 Training 2016 Assessing and Exploiting Control Systems BruCON 2016
Serial communications
RS-485 and RS-232
Modbus RTU
16-bit unsigned registers and single bit coils
Pentesting RF communications between master servers and field
devices
Hands-on RF spectrum analysis and signal capture
Spread Spectrum types and strategies
Hands-on signal demodulation with GNU Radio
Hands-on network traffic extraction
Traffic transmission and exploitation
Pentesting TCP/IP based ICS protocols
Protocol capture and analysis
modbus, DNP3, IEC 61850, ICCP, ZigBee, C37.118, and C12.22
Dealing with unknown protocols
Hands-on entropy analysis of network payloads
Reverse engineering unknown protocols
Hands-on ICS protocol fuzzing
Pentesting technician interfaces on ICS field and floor devices
Functional analysis of field technician interfaces
Hands-on exercise capturing USB communications to tech interfaces
Hands-on exercise analyzing captured USB communications
Impersonating endpoints in field tech interface communications
Hands-on exercises fuzzing AMI Smart Meter c12.18 optical interfaces
Exploiting vulnerabilities found during analysis
Analyzing field and floor device firmware
http://2016.brucon.org/index.php/Training_2016__Assessing_and_Exploiting_Control_Systems 4/8
11/12/2019 Training 2016 Assessing and Exploiting Control Systems BruCON 2016
Obtaining field and floor device firmware
Hands-on exercise disassembling firmware
Hands-on exercise analyzing disassembled firmware
Exploiting firmware flaws
Overview of pentesting field and floor device embedded circuits
Local attack through physically exposed devices
Expanding physical attacks to remote attacks
Cryptographic keys and firmware
Analysis of embedded electronics in ICS field and floor devices
Discussion of device disassembly
Component analysis on embedded circuits
Datasheet acquisition and analysis for target components
Dumping data at rest on embedded circuits
Using the Bus Pirate and other similar tools
Overview of I2C or two-wire serial protocol
Hands-on exercise dumping I2C EEPROMs
Overview of SPI serial protocol
Hands-on exercise dumping SPI EEPROMs
Overview of JTAG
Hands-on exercise interfacing with JTAG
Bus Snooping on embedded circuits
Overview of bus snooping
Hands-on exercise snooping busses
Analyzing data obtained from data dumping and bus snooping
Hands-on exercise doing string analysis of datasets
Hands-on exercise doing entropy analysis of datasets
http://2016.brucon.org/index.php/Training_2016__Assessing_and_Exploiting_Control_Systems 5/8
11/12/2019 Training 2016 Assessing and Exploiting Control Systems BruCON 2016
Hands-on exercise doing systematic key searches through datasets
Hands-on exercise doing file carving from datasets
Requirements
Basic penetration testing experience is desirable, but not required. It is assumed that attendees will have no
knowledge of ICS, Smart Grid, SCADA, or critical infrastructure. This course is designed for intermediate level
security professionals, be they engineers, technicians, analysts, managers, or penetration testers.
Recommended read
For those with little or no ICS experience, these Wikipedia articles provide a brief introduction to the
concepts and history of control systems that will be helpful to know for class.
http://en.wikipedia.org/wiki/ICS
http://en.wikipedia.org/wiki/SCADA
http://en.wikipedia.org/wiki/Distributed_control_system
http://en.wikipedia.org/wiki/Smart_grid
http://csrc.nist.gov/publications/nistpubs/800-82/SP800-82-final.pdf - NIST 800-82 is a great introduction to
industrial control systems and the security issues surrounding them.
http://nostarch.com/xboxfree - While this has nothing to do with control systems, it provides a great
introduction to the concepts and techniques taught in this class to pentest embedded electronic hardware
in ICS field/floor devices.
Software and hardware requirements
Laptop with at least two USB ports (three ports preferred). If only two USB ports exist on the laptop
and they are right next to each other (such as found on a Macbook Air), a USB extension cable must
be brought as well
Latest VMware Player, VMware Workstation, VWware Fusion installed. Other virtualization software
such as Parallels or VirtualBox may work if the attendee is familiar with its functionality, however
VMware Player should be prepared as a backup just in case
Access to an account with administrative permissions and the ability to disable all security software
on their laptop such as Antivirus and/or firewalls if needed for the class
At least thirty (30) GB of free hard drive space
At least four (4) GB of RAM, preferably eight (8) GB of RAM
Windows 7, 8.x, or 10.x installed on your host laptop or inside a VM
http://2016.brucon.org/index.php/Training_2016__Assessing_and_Exploiting_Control_Systems 6/8
11/12/2019 Training 2016 Assessing and Exploiting Control Systems BruCON 2016
Provided at the course
The following items are provided to each student to use in class and take home with them:
Programmable Logic Controller (PLC)
Software to program the PLC to keep (non-expiring)
Software to program an HMI for the PLC (non-expiring)
Buspirate with probes and EEPROMS for exercises
Software Defined Radio (SDR)
915MHz or 898Mhz based access point and remote device for exercises
MSP430 Launchpad for Firmware exercises
Latest version of the Control Things Pentest Platform on DVD or USB
Power for your laptop
Internet connectivity may or may not be available depending on the facility hosting the course
PDF version of the course slide deck
Trainer Biography
Justin Searle is the Managing Partner of UtiliSec, specializing in ICS security
architecture design and penetration testing. Justin led the Smart Grid Security
Architecture group in the creation of NIST Interagency Report 7628 and has played
key roles in the Advanced Security Acceleration Project for the Smart Grid (ASAP-
SG), National Electric Sector Cybersecurity Organization Resources (NESCOR), and
Smart Grid Interoperability Panel (SGIP). Justin has taught courses in hacking
techniques, forensics, networking, and intrusion detection for multiple universities,
corporations, and security conferences.
Mr. Searle is currently a certified instructor for the SANS Institute. In addition to electric power industry
conferences, Justin frequently presents at top international security conferences such as Black Hat,
DEFCON, OWASP, Nullcon, and AusCERT. Justin co-leads prominent open source projects including the
Samurai Web Testing Framework (SamuraiWTF), the Samurai Security Testing Framework for Utilities
(SamuraiSTFU), Yokoso!, and Laudanum. Justin has an MBA in International Technology and is a CISSP and
SANS GIAC certified Incident Handler (GCIH), Intrusion Analyst (GCIA), Web Application Penetration Tester
(GWAPT), and GIAC Industrial Control Security Professional (GICSP).
More information on his security blog (http://www.meeas.com/).
@meeas (https://twitter.com/meeas)
Links :
http://www.utilisec.com
http://2016.brucon.org/index.php/Training_2016__Assessing_and_Exploiting_Control_Systems 7/8
11/12/2019 Training 2016 Assessing and Exploiting Control Systems BruCON 2016
Mon. 24 - 26 October 2016 (09:00 - 17:00) (3-day)
Back to Training Overview
Retrieved from "http://2016.brucon.org/index.php?title=Training_2016_-
_Assessing_and_Exploiting_Control_Systems&oldid=5249"
http://2016.brucon.org/index.php/Training_2016__Assessing_and_Exploiting_Control_Systems 8/8