SCADA deep inside: protocols and security mechanisms
Aleksandr Timorin
- 05|06|07 September 2014
SCADA deep inside: protocols and security mechanisms Aleksandr - - PowerPoint PPT Presentation
SCADA deep inside: protocols and security mechanisms Aleksandr Timorin 05|06|07 September 2014 # whoami penetration tester at Positive Technologies SCADA security researcher, main specialisation -
Aleksandr Timorin
SCADA deep inside: protocols and security mechanisms BalCCon2k14
2
SCADA deep inside: protocols and security mechanisms BalCCon2k14
3
SCADA deep inside: protocols and security mechanisms BalCCon2k14
4
SCADA deep inside: protocols and security mechanisms BalCCon2k14
5
SCADA deep inside: protocols and security mechanisms BalCCon2k14
6
many many vendors in the world:
SCADA deep inside: protocols and security mechanisms BalCCon2k14
7
SCADA deep inside: protocols and security mechanisms BalCCon2k14
8
➡
➡
➡
➡
➡
SCADA deep inside: protocols and security mechanisms BalCCon2k14
9
➡
➡
➡
➡
➡
SCADA deep inside: protocols and security mechanisms BalCCon2k14
10
SCADA deep inside: protocols and security mechanisms BalCCon2k14
11
SCADA deep inside: protocols and security mechanisms BalCCon2k14
12
SCADA deep inside: protocols and security mechanisms BalCCon2k14
13
SCADA deep inside: protocols and security mechanisms BalCCon2k14
14
functions:
SCADA deep inside: protocols and security mechanisms BalCCon2k14
15
SCADA deep inside: protocols and security mechanisms BalCCon2k14
16
DNP3 Distributed Network Protocol
DNP3 Secure Authentication v5. First version in 2007. Add device and user authentication Data protection
SCADA deep inside: protocols and security mechanisms BalCCon2k14
17
dnp3 frame:
crc for every 16 bytes of data -> max frame len = 292 bytes work on iso/osi layers: data link layer, transport layer, application layer
SCADA deep inside: protocols and security mechanisms BalCCon2k14
18
SCADA deep inside: protocols and security mechanisms BalCCon2k14
19
SCADA deep inside: protocols and security mechanisms BalCCon2k14
20
frame types:
payload=‘fefe05000401000200800004ffff’.decode(‘hex’) srp(Ether(type=0x8892, src=smac, dst=’01:0e:cf:00:00:00’)/payload)
request 05 service id: identify 00 service type: request 04010002 xid (request id) 0080 delay 0004 data len ff
ff suboption: all
SCADA deep inside: protocols and security mechanisms BalCCon2k14
21
SCADA deep inside: protocols and security mechanisms BalCCon2k14
22
SCADA deep inside: protocols and security mechanisms BalCCon2k14
23
SCADA deep inside: protocols and security mechanisms BalCCon2k14
24
SCADA deep inside: protocols and security mechanisms BalCCon2k14
25
SCADA deep inside: protocols and security mechanisms BalCCon2k14
26
SCADA deep inside: protocols and security mechanisms BalCCon2k14
27
SCADA deep inside: protocols and security mechanisms BalCCon2k14
28
SCADA deep inside: protocols and security mechanisms BalCCon2k14
29
SCADA deep inside: protocols and security mechanisms BalCCon2k14
30
SCADA deep inside: protocols and security mechanisms BalCCon2k14
31
SCADA deep inside: protocols and security mechanisms BalCCon2k14
32
~ nmap —script mms-identify.nse —script-args=‘mms-identify.timeout=500’ -p 102 <host>
SCADA deep inside: protocols and security mechanisms BalCCon2k14
33
IEC 61870-5-101/104
SCADA deep inside: protocols and security mechanisms BalCCon2k14
34
SCADA deep inside: protocols and security mechanisms BalCCon2k14
35
SCADA deep inside: protocols and security mechanisms BalCCon2k14
36
~ nmap --script iec-identify.nse --script-args='iec-identify.timeout=500' -p 2404 <host>
SCADA deep inside: protocols and security mechanisms BalCCon2k14
37
SCADA deep inside: protocols and security mechanisms BalCCon2k14
38
SCADA deep inside: protocols and security mechanisms BalCCon2k14
39
SCADA deep inside: protocols and security mechanisms BalCCon2k14
40
SCADA deep inside: protocols and security mechanisms BalCCon2k14
41
SCADA deep inside: protocols and security mechanisms BalCCon2k14
42
SCADA deep inside: protocols and security mechanisms BalCCon2k14
43
SCADA deep inside: protocols and security mechanisms BalCCon2k14
44
SCADA deep inside: protocols and security mechanisms BalCCon2k14
45
SCADA deep inside: protocols and security mechanisms BalCCon2k14
46
SCADA deep inside: protocols and security mechanisms BalCCon2k14
47
SCADA deep inside: protocols and security mechanisms BalCCon2k14
48
SCADA deep inside: protocols and security mechanisms BalCCon2k14
49
SCADA deep inside: protocols and security mechanisms BalCCon2k14
50
SCADA deep inside: protocols and security mechanisms BalCCon2k14
51
SCADA deep inside: protocols and security mechanisms BalCCon2k14
52
SCADA deep inside: protocols and security mechanisms BalCCon2k14
53
PmzR9733Q8rG3LpwjCGZT9N/ocMAAQABAAKK1woAqsgAAAAAAAAAAIrXIUM=
SCADA deep inside: protocols and security mechanisms BalCCon2k14
54
3e6cd1f7bdf743cac6dcba708c21994fd37fa1c30001000100028ad70a00aac800000000000000008ad72143
+ d37fa1c30001000100028ad70a00aac800000000000000008ad72143
d37fa1c3 - ? 0001 - ? 0001 - ? 00028ad7 - ? 0a00aac8 - ? 00000000000000008ad72143 - ?
SCADA deep inside: protocols and security mechanisms BalCCon2k14
55
3e6cd1f7bdf743cac6dcba708c21994f MD5 of ? (16 bytes) d37fa1c3 CONST (4 bytes) 0001 user logout counter (2 bytes) 0001 counter of issued cookies for this user (2 bytes) 00028ad7 value that doesn’t matter (4 bytes) 0a00aac8 user IP address (10.0.170.200) (4 bytes) 00000000000000008ad72143 value that doesn’t matter (12 bytes)
3e6cd1f7bdf743cac6dcba708c21994f ???
SCADA deep inside: protocols and security mechanisms BalCCon2k14
56
SCADA deep inside: protocols and security mechanisms BalCCon2k14
57
SECRET generates after PLC start by ~PRNG.
SCADA deep inside: protocols and security mechanisms BalCCon2k14
58
What about SEED ? SEED very often depends on time value
SCADA deep inside: protocols and security mechanisms BalCCon2k14
59
Current time via web interface
community string “public”
SCADA deep inside: protocols and security mechanisms BalCCon2k14
60
SCADA deep inside: protocols and security mechanisms BalCCon2k14
61
But if user (admin) not logged out properly then after 7 logins it is not possible to login again
To generate cookie we should brute:
SCADA deep inside: protocols and security mechanisms BalCCon2k14
62
SCADA deep inside: protocols and security mechanisms BalCCon2k14
63
Exploitation dependences:
SCADA deep inside: protocols and security mechanisms BalCCon2k14
64
SCADA deep inside: protocols and security mechanisms BalCCon2k14
65
SCADA deep inside: protocols and security mechanisms BalCCon2k14
66
SCADA deep inside: protocols and security mechanisms BalCCon2k14
67
SCADA deep inside: protocols and security mechanisms BalCCon2k14
68
History of S7:
(FETCH/WRITE, Sinec H1)
SCADA deep inside: protocols and security mechanisms BalCCon2k14
69
SCADA deep inside: protocols and security mechanisms BalCCon2k14
70
SCADA deep inside: protocols and security mechanisms BalCCon2k14
71
SCADA deep inside: protocols and security mechanisms BalCCon2k14
72
SCADA deep inside: protocols and security mechanisms BalCCon2k14
73
show_byte_sequences.py
SCADA deep inside: protocols and security mechanisms BalCCon2k14
74
s7-show-payloads.py
SCADA deep inside: protocols and security mechanisms BalCCon2k14
75
s7-packet-structure.py
SCADA deep inside: protocols and security mechanisms BalCCon2k14
76
SCADA deep inside: protocols and security mechanisms BalCCon2k14
77
SCADA deep inside: protocols and security mechanisms BalCCon2k14
78
SCADA deep inside: protocols and security mechanisms BalCCon2k14
79
SCADA deep inside: protocols and security mechanisms BalCCon2k14
80
SCADA deep inside: protocols and security mechanisms BalCCon2k14
81