Techniques of Attacking Real SCADA & ICS Systems
Techniques of Attacking Real SCADA & ICS Systems
Dr StrangeLove movie
Group of security researchers focused on ICS/SCADA
OS/DB/Application
NETWORK
unbreakable
Typical network devices with default/crappy
settings
Unpatched, old as dirt, full of junk software
[malware] engineering workstations
Wireless AP with WEP ( if the best happened )
Low physical security
… and
Industrial protocols
Typical network devices with default/crappy
settings
Unpatched, old as dirt, full of junk software
[malware] engineering workstations
Wireless AP with WEP ( if the best happened )
Low physical security
… and
Industrial protocols
Full expanse
Not blocked by firewalls/switches
Accessible between LAN segments
Works from data link to application layers
Easy for detecting
Easy for intercepting and analyzing
( but not all! )
TCP/2404
HEADER:
1st byte: 0x68
2nd byte: APDU len
Huge list of functions. Depends on vendors
implementation
Read/write tags, upload/download files,
broadcast connected devices discovery, time
sync, reset process command, query log files
etc.
No auth, no encryption
Poor security mechanism: ip address whitelist
Toolkit: python and nmap scripts
Python identify script: WWW
Nmap identify script: WWW
I love this protocol!
Proprietary communication protocol supported
by Siemens SCADA Software, PLC, HMI
We can: detect protocol, extract some useful
info (device serial number, type of station,
firmware info etc.), extract and bruteforce
(thanks to JtR community) authentication
challenge-response hashes
http://www.slideshare.net/phdays/timorin-
alexander-efanov-dmitry
Toolkit:
http://code.google.com/p/scada-tools/
https://code.google.com/p/plcscan/
Welcome to our workshop!
Rooting the PLC:
don't even try
Pwn OS (often VxWorks, QNX)
Reverse internal architecture
Find bugs in services
Snatch device
Real example ?
Simple UDP packet that set “speed” of turbine to
57 (min=1, max=100)