From BruCON 2015
Jump to: navigation, search
(Pentesting Smart Grid and SCADA with SamuraiSTFU by Justin Searle)
m (Protected "Training SCADA" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)))
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
=Pentesting Smart Grid and SCADA with SamuraiSTFU by Justin Searle=
 
=Pentesting Smart Grid and SCADA with SamuraiSTFU by Justin Searle=
<!--In the professional information security world, there has yet to be a course which provides the
+
=Course Abstract=
students the knowledge and skills to carry out a real world attack. Traditional penetration
+
This is not your traditional SCADA security course! This course
testing courses impart only a limited view of the exposure and vulnerabilities companies suffer
+
teaches hands-on penetration testing techniques used to test embedded
from. Traditional classes are generally focused on standard scanner, framework and tool usage
+
electronic field devices, network protocols, RF communications, and
as well as techniques for collecting “shells” on target systems. In contrast, this course is
+
controlling servers of ICS and Smart Grid systems like PLCs, RTUs,
designed to teach its students how to plan and execute a successful attack against a target,
+
smart meters, Home Area Networks (HAN), smart appliances, SCADA,
using the same techniques and mindsets that real attackers use.
+
substation automation, and synchrophasors. This course is structured
 +
around the formal penetration testing methodology created by the
 +
National Energy Sector Cybersecurity Organization Resource (NESCOR), a
 +
United States Department of Energy project. Using this methodology and
 +
SamuraiSTFU (Security Testing Framework for Utilities), an open source
 +
Linux distribution for pentesting energy sector systems and other
 +
critical infrastructure, we'll perform hands-on penetration testing
 +
tasks on embedded electronic field devices, their RF communications,
 +
and the myriad of user interfaces used throughout smart grid systems.
 +
We’ll tie these techniques and exercises back to the smart grid
 +
devices that can be tested using these techniques. We will also do
 +
exercises on dissecting and fuzzing smart grid protocols like modbus,
 +
DNP3, IEC 61850, ICCP, ZigBee, C37.118, and C12.22. 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.
  
Attack Research will bring a unique approach to penetration testing, using deep system
+
Advances in modern ICS systems such as the energy sector’s "Smart
knowledge and lesser-known techniques that will arm the student with true offensive
+
Grid" brings great benefits for electric utilities and customer alike,
capabilities. This class is designed to help students think past the need for known exploits.
+
however these benefits come at a cost from a security perspective.
Alternating between hands-on exercises and lectures the students will walk away with having
+
With increased functionality and addition inter-system communication,
been given the chance to utilize the new skills that they will learn. A virtual target network will
+
the smart grid brings with it a greater risk of compromise that both
be provided, along with all of the software needed to participate in the labs.
+
utilities and customers must accept to realize their desired business
 +
benefits. To minimize this risk, penetration testing in conjunction
 +
with other security assessment types must be performed to minimize
 +
vulnerabilities before attackers can exploit the critical
 +
infrastructures that exist in all countries around the world.
  
The first day of the class will cover the basic, core skill sets, that are needed to be successful in
+
==Course Prerequisites==
an offensive operation. These skills are the foundation for being able to handle and evade a
+
Basic penetration testing experience is desirable, but not required.
large array of technical defensive measures which the student may experience when attacking
+
It is assumed that attendees will have no knowledge of ICS, Smart
sophisticated environments. The Metasploit Framework will be used as a development
+
Grid, SCADA, or critical infrastructure. This course is designed for
platform for building custom tools and launching specialized attacks.
+
intermediate level security professionals, be they engineers,
 +
technicians, analysts, managers, or penetration testers.
  
In the second day, our attention will turn to the initial target exploitation and lateral
+
==Recommended Reading before the Course==
movement. The students will learn how to gain persistence and deep footholds into an
+
1. For those with little or no ICS experience, these Wikipedia articles
organizations network. We will focus heavily on the persistence and post exploitation
+
provide a brief introduction to the concepts and history of control
techniques that have been perfected by the Attack Research team. At the end of this day
+
systems that will be helpful to know for class.
students will have a strong understanding of how to get into a network and then stay in.
+
* http://en.wikipedia.org/wiki/ICS
The third day will focus on deeply penetrating a Unix environment which is designed to emulate
+
* http://en.wikipedia.org/wiki/SCADA
common corporate setups. Many penetration testing classes focus on Windows based
+
* http://en.wikipedia.org/wiki/Smart_grid
methodologies and attacks, neglecting the wide array of Unix scenarios that may be
+
2. 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.
encountered in the real world. After the third day the students will not only be capable of
 
taking over a Windows domain, but they will also be able to compromise Unix domains as well.
 
Some of the techniques covered in the Unix domain are also applicable to mobile devices.
 
  
Students will test all of the skills they have gained in the course against a virtual network
+
3. http://csrc.nist.gov/publications/nistir/ir7628/nistir-7628_vol3.pdf - Chapter 7 of the NIST Interagency Report 7628, titled Bottom-up Security Analysis of the Smart Grid, provides a great overview of the challenges faced in Smart Grid and energy sector systems, many of which we are testing for and exploiting in this class.
specially designed for the class. The labs will be interwoven into the lecture so that students
 
will receive a significant amount of time practically exercising these new skills as they learn. By
 
the end of the class students will have spent roughly 50% of the time in a lab environment.
 
  
===Technical Requirements and prerequisites===
+
==Resources You Are Responsible to Bring==
Student machines must be able to run at least 2 virtual machines utilizing either: VMWare
+
# Laptop with at least two USB ports (three ports preferred). If you only have two USB ports and they are right next to each other, you will need to bring a USB extension cable.
Workstation (which can be obtained through a demo license) or Virtual Box. This usually means
+
# Latest VMware Player, VMware Workstation, VWware Fusion installed. (Other virtualization software such as Parallels or VirtualBox will probably work if the attendee is familiar with its functionality, however VMware Player should be prepared as a backup just in case.)
at least 4 gig’s of memory is needed.
+
# Ability to disable all security software on their laptop such as Antivirus and/or firewalls
 +
# At least twenty (20) GB of hard drive space
 +
# At least four (4) GB of RAM
  
Student laptops must be running either OSX, Linux, or Windows and they must have the ability
+
==Resources Provided at the Course==
to disable all antivirus on the machine. You must have administrative access on your machine as
+
# Power for your laptop
well for sniffing traffic, adjusting firewalls, etc, etc.
+
# Internet connectivity may or may not be available depending on the facility hosting the course
 +
# Latest version of SamuraiSTFU (Security Testing Framework for Utilities)
 +
# PDF version of the course slide deck
 +
# Student hardware kits to use in class that must be returned at the end of class
 +
# List of hardware items in the student kits and links to where students can purchase their own kits
  
Students must have:
+
==Course Outline==
* a concept of scripting languages such as Python/Perl/Ruby
+
===Day 1 – Pentesting ICS Network Protocols===
* A medium level of systems administration on a Windows or Linux machine (Windows preferable but not a must)
+
Introduction to SamuraiSTFU (Security Testing Framework for Utilities)
* Student’s laptop must be capable of running the Metasploit software
+
* Setting up the virtual machine
 
+
* Walk through the tools and functionality
===Detailed Agenda===
+
* Introduction to the student hardware kits
 
+
Different levels of network communication penetration testing
'''Day 1'''
+
* Testing of network mediums vs network protocols
* intros
+
* Where security defenses should be place …… and tested
* schedule & venue
+
Serial communications
* class setup
+
* RS-485 and RS-232
* class overview / philosophy
+
* Modbus RTU
* Metasploit Tutorial
+
* 16-bit unsigned registers and single bit coils
** msf background / history
+
Pentesting RF communications between master servers and field devices
** core components/meterpreter
+
* Hands-on RF spectrum analysis and signal capture
** Multihandler
+
* Spread Spectrum types and strategies
** auxiliary modules / scanners
+
* Hands-on signal demodulation with GNU Radio
** exploits & payloads
+
* Hands-on network traffic extraction
* recon activities
+
* Traffic transmission and exploitation
 
+
Pentesting TCP/IP based ICS protocols
'''Day 2'''
+
* Protocol capture and analysis
* Initial Penetration
+
* modbus, DNP3, IEC 61850, ICCP, ZigBee, C37.118, and C12.22
** Web / sqli
+
* Dealing with unknown protocols
** Social Engineering
+
* Hands-on entropy analysis of network payloads
** File format attacks
+
* Reverse engineering unknown protocols
** Java applet
+
* Hands-on ICS protocol fuzzing
** Physical & Hardware
+
===Day 2 – Pentesting ICS Field and Floor Devices===
* Post Exploitation
+
Pentesting technician interfaces on ICS field and floor devices
** Command & Control
+
* Functional analysis of field technician interfaces
** Persistence
+
* Hands-on exercise capturing USB communications to tech interfaces
** Stealth
+
* Hands-on exercise analyzing captured USB communications
** PSP Evasion
+
* Impersonating endpoints in field tech interface communications
** Cleanup
+
* Hands-on exercises fuzzing AMI Smart Meter c12.18 optical interfaces
** Data Exfiltration Strategies
+
* Exploiting vulnerabilities found during analysis
 
+
Analyzing field and floor device firmware
'''Day 3'''
+
* Obtaining field and floor device firmware
* Unix Domain Takeover
+
* Hands-on exercise disassembling firmware
** Unix Intro
+
* Hands-on exercise analyzing disassembled firmware
** NFS
+
* Exploiting firmware flaws
** Authentication Systems
+
Overview of pentesting field and floor device embedded circuits
** Kerberos
+
* Local attack through physically exposed devices
** SSH
+
* Expanding physical attacks to remote attacks
* Windows Domain Takeover
+
* Cryptographic keys and firmware
** Lateral Movement
+
Analysis of embedded electronics in ICS field and floor devices
** SMB
+
* Discussion of device disassembly
*** WPAD
+
* Component analysis on embedded circuits
*** SMBRELAY
+
* Datasheet acquisition and analysis for target components
* Insecure Services
+
===Day 3 – Pentesting ICS Field and Floor Devices Continued===
* Privilege Escalation
+
Dumping data at rest on embedded circuits
* RDP/VNC/Sethc
+
* Using the Bus Pirate and other similar tools
* Authentication Abuse
+
* Overview of I2C or two-wire serial protocol
** Hashes and Passwords
+
* Hands-on exercise dumping I2C EEPROMs
** Token Hijacking
+
* Overview of SPI serial protocol
* Domain Enumeration
+
* 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
 +
* Hands-on exercise doing systematic key searches through datasets
 +
* Hands-on exercise doing file carving from datasets
 +
End-to-end analysis and reporting
 +
* Strategies for end-to-end analysis after targeted pentesting
 +
* Strategies for reporting and remediation recommendations
 +
Conclusion
  
 
=Trainer Biography=
 
=Trainer Biography=
[[File:Attack-Research-Logo.jpg|190px|thumb|left]] '''Russ Gideon''' has many years of experience in information security fulfilling many diverse roles from
+
[[File:Searle_snapshot.jpg|190px|thumb|left]]
being a core component of an Incident Response operation to managing an effective Red Team.
 
Russ excels both at malware reverse engineering, which enables him to deeply understand how
 
the attackers do what they do, as well as at high end Red Teaming where he has to penetrate
 
sophisticated and well protected high value systems. Russ currently serves as the Director of
 
Malware Research at Attack Research, LLC.
 
  
More information is available on [http://carnal0wnage.attackresearch.com carnal0wnage]
+
'''Justin Searle''' is a Managing Partner of UtiliSec, specializing in
 +
Smart Grid security architecture design and penetration testing.
 +
Justin led the Smart Grid Security Architecture group in the creation
 +
of NIST Interagency Report 7628 and played key roles in the Advanced
 +
Security Acceleration Project for the Smart Grid (ASAP- ). He
 +
currently leads the testing group at the National Electric Sector
 +
Cybersecurity Organization Resources (NESCOR). 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), Middler, Yokoso!, and Laudanum. Justin
 +
has an MBA in International Technology and is a CISSP and SANS GIAC
 +
certified Incident Handler (GCIH), Intrusion Analyst (GCIA), and Web
 +
Application Penetration Tester (GWAPT).
  
[[Image:300px-twitter-icon.jpg|17px]] [https://twitter.com/#!/attackresearch @attackresearch]
+
More information is available on [http://www.meeas.com/ Meeas Security blog]
  
[http://www.attackresearch.com http://www.attackresearch.com]
+
[[Image:300px-twitter-icon.jpg|17px]] [https://twitter.com/#!/meeas @meeas]
  
[[File:Attack-Research-Logo.jpg|190px|thumb|left]] '''Dave Sayre''' has worked in the computer security area for the past ten years. He has specialized in reverse engineering, malware research, and penetration testing. He is currently a researcher at Attack Research.  Dave specializes on *nix systems and enjoys figuring out how to abuse various trust relations between *nix systems.-->
+
[http://utilisec.com/ http://www.utilisec.com]
  
<br><br><br><br><br><br><br><br><br><br><br>
+
''Wed. 23 - Fri. 25 April (09:00 - 17:00)''
''23 - 25 April (09:00 - 17:00)''
 
  
 
[[File:Register.jpg||link=https://registration.brucon.org/training-registration/]]
 
[[File:Register.jpg||link=https://registration.brucon.org/training-registration/]]
  
 
[[Training|Back to Training Overview]]
 
[[Training|Back to Training Overview]]

Latest revision as of 08:18, 28 January 2014

Pentesting Smart Grid and SCADA with SamuraiSTFU by Justin Searle

Course Abstract

This is not your traditional SCADA security course! This course teaches hands-on penetration testing techniques used to test embedded electronic field devices, network protocols, RF communications, and controlling servers of ICS and Smart Grid systems like PLCs, RTUs, smart meters, Home Area Networks (HAN), smart appliances, SCADA, substation automation, and synchrophasors. This course is structured around the formal penetration testing methodology created by the National Energy Sector Cybersecurity Organization Resource (NESCOR), a United States Department of Energy project. Using this methodology and SamuraiSTFU (Security Testing Framework for Utilities), an open source Linux distribution for pentesting energy sector systems and other critical infrastructure, we'll perform hands-on penetration testing tasks on embedded electronic field devices, their RF communications, and the myriad of user interfaces used throughout smart grid systems. We’ll tie these techniques and exercises back to the smart grid devices that can be tested using these techniques. We will also do exercises on dissecting and fuzzing smart grid protocols like modbus, DNP3, IEC 61850, ICCP, ZigBee, C37.118, and C12.22. 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 ICS systems such as the energy sector’s "Smart Grid" brings great benefits for electric utilities and customer alike, however these benefits come at a cost from a security perspective. With increased functionality and addition inter-system communication, the smart grid brings with it a greater risk of compromise that both utilities and customers must accept to realize their desired business benefits. To minimize this risk, penetration testing in conjunction with other security assessment types must be performed to minimize vulnerabilities before attackers can exploit the critical infrastructures that exist in all countries around the world.

Course Prerequisites

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 Reading before the Course

1. 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.

2. 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.

3. http://csrc.nist.gov/publications/nistir/ir7628/nistir-7628_vol3.pdf - Chapter 7 of the NIST Interagency Report 7628, titled Bottom-up Security Analysis of the Smart Grid, provides a great overview of the challenges faced in Smart Grid and energy sector systems, many of which we are testing for and exploiting in this class.

Resources You Are Responsible to Bring

  1. Laptop with at least two USB ports (three ports preferred). If you only have two USB ports and they are right next to each other, you will need to bring a USB extension cable.
  2. Latest VMware Player, VMware Workstation, VWware Fusion installed. (Other virtualization software such as Parallels or VirtualBox will probably work if the attendee is familiar with its functionality, however VMware Player should be prepared as a backup just in case.)
  3. Ability to disable all security software on their laptop such as Antivirus and/or firewalls
  4. At least twenty (20) GB of hard drive space
  5. At least four (4) GB of RAM

Resources Provided at the Course

  1. Power for your laptop
  2. Internet connectivity may or may not be available depending on the facility hosting the course
  3. Latest version of SamuraiSTFU (Security Testing Framework for Utilities)
  4. PDF version of the course slide deck
  5. Student hardware kits to use in class that must be returned at the end of class
  6. List of hardware items in the student kits and links to where students can purchase their own kits

Course Outline

Day 1 – Pentesting ICS Network Protocols

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

Different levels of network communication penetration testing

  • Testing of network mediums vs network protocols
  • Where security defenses should be place …… and tested

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

Day 2 – Pentesting ICS Field and Floor Devices

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

  • 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

Day 3 – Pentesting ICS Field and Floor Devices Continued

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
  • Hands-on exercise doing systematic key searches through datasets
  • Hands-on exercise doing file carving from datasets

End-to-end analysis and reporting

  • Strategies for end-to-end analysis after targeted pentesting
  • Strategies for reporting and remediation recommendations

Conclusion

Trainer Biography

Searle snapshot.jpg

Justin Searle is a Managing Partner of UtiliSec, specializing in Smart Grid security architecture design and penetration testing. Justin led the Smart Grid Security Architecture group in the creation of NIST Interagency Report 7628 and played key roles in the Advanced Security Acceleration Project for the Smart Grid (ASAP- ). He currently leads the testing group at the National Electric Sector Cybersecurity Organization Resources (NESCOR). 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), Middler, Yokoso!, and Laudanum. Justin has an MBA in International Technology and is a CISSP and SANS GIAC certified Incident Handler (GCIH), Intrusion Analyst (GCIA), and Web Application Penetration Tester (GWAPT).

More information is available on Meeas Security blog

300px-twitter-icon.jpg @meeas

http://www.utilisec.com

Wed. 23 - Fri. 25 April (09:00 - 17:00)

Register.jpg

Back to Training Overview