2012-06-29 00:18:28 -05:00
|
|
|
# -*- coding: binary -*-
|
2011-06-01 22:48:55 +00:00
|
|
|
require 'msf/core/post/common'
|
|
|
|
|
require 'msf/core/post/file'
|
2012-05-19 11:43:12 -06:00
|
|
|
require 'msf/core/post/unix'
|
2011-06-01 22:48:55 +00:00
|
|
|
|
|
|
|
|
module Msf
|
|
|
|
|
class Post
|
2011-06-20 23:27:57 +00:00
|
|
|
module Linux
|
2011-06-01 22:48:55 +00:00
|
|
|
module System
|
2013-08-30 16:28:33 -05:00
|
|
|
include ::Msf::Post::Common
|
|
|
|
|
include ::Msf::Post::File
|
|
|
|
|
include ::Msf::Post::Unix
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Returns a Hash containing Distribution Name, Version and Kernel Information
|
|
|
|
|
#
|
|
|
|
|
def get_sysinfo
|
|
|
|
|
system_data = {}
|
|
|
|
|
etc_files = cmd_exec("ls /etc").split()
|
|
|
|
|
|
|
|
|
|
kernel_version = cmd_exec("uname -a")
|
|
|
|
|
system_data[:kernel] = kernel_version
|
|
|
|
|
|
|
|
|
|
# Debian
|
|
|
|
|
if etc_files.include?("debian_version")
|
|
|
|
|
if kernel_version =~ /Ubuntu/
|
|
|
|
|
version = read_file("/etc/issue").gsub(/\n|\\n|\\l/,'')
|
|
|
|
|
system_data[:distro] = "ubuntu"
|
|
|
|
|
system_data[:version] = version
|
|
|
|
|
else
|
|
|
|
|
version = read_file("/etc/issue").gsub(/\n|\\n|\\l/,'')
|
|
|
|
|
system_data[:distro] = "debian"
|
|
|
|
|
system_data[:version] = version
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# Amazon
|
|
|
|
|
elsif etc_files.include?("system-release")
|
|
|
|
|
version = read_file("/etc/system-release").gsub(/\n|\\n|\\l/,'')
|
|
|
|
|
system_data[:distro] = "amazon"
|
|
|
|
|
system_data[:version] = version
|
|
|
|
|
|
|
|
|
|
# Fedora
|
|
|
|
|
elsif etc_files.include?("fedora-release")
|
|
|
|
|
version = read_file("/etc/fedora-release").gsub(/\n|\\n|\\l/,'')
|
|
|
|
|
system_data[:distro] = "fedora"
|
|
|
|
|
system_data[:version] = version
|
|
|
|
|
|
|
|
|
|
# Oracle Linux
|
|
|
|
|
elsif etc_files.include?("enterprise-release")
|
|
|
|
|
version = read_file("/etc/enterprise-release").gsub(/\n|\\n|\\l/,'')
|
|
|
|
|
system_data[:distro] = "oracle"
|
|
|
|
|
system_data[:version] = version
|
|
|
|
|
|
|
|
|
|
# RedHat
|
|
|
|
|
elsif etc_files.include?("redhat-release")
|
|
|
|
|
version = read_file("/etc/redhat-release").gsub(/\n|\\n|\\l/,'')
|
|
|
|
|
system_data[:distro] = "redhat"
|
|
|
|
|
system_data[:version] = version
|
|
|
|
|
|
|
|
|
|
# Arch
|
|
|
|
|
elsif etc_files.include?("arch-release")
|
|
|
|
|
version = read_file("/etc/arch-release").gsub(/\n|\\n|\\l/,'')
|
|
|
|
|
system_data[:distro] = "arch"
|
|
|
|
|
system_data[:version] = version
|
|
|
|
|
|
|
|
|
|
# Slackware
|
|
|
|
|
elsif etc_files.include?("slackware-version")
|
|
|
|
|
version = read_file("/etc/slackware-version").gsub(/\n|\\n|\\l/,'')
|
|
|
|
|
system_data[:distro] = "slackware"
|
|
|
|
|
system_data[:version] = version
|
|
|
|
|
|
|
|
|
|
# Mandrake
|
|
|
|
|
elsif etc_files.include?("mandrake-release")
|
|
|
|
|
version = read_file("/etc/mandrake-release").gsub(/\n|\\n|\\l/,'')
|
|
|
|
|
system_data[:distro] = "mandrake"
|
|
|
|
|
system_data[:version] = version
|
|
|
|
|
|
|
|
|
|
#SuSE
|
|
|
|
|
elsif etc_files.include?("SuSE-release")
|
|
|
|
|
version = read_file("/etc/SuSE-release").gsub(/\n|\\n|\\l/,'')
|
|
|
|
|
system_data[:distro] = "suse"
|
|
|
|
|
system_data[:version] = version
|
|
|
|
|
|
|
|
|
|
# Gentoo
|
|
|
|
|
elsif etc_files.include?("gentoo-release")
|
|
|
|
|
version = read_file("/etc/gentoo-release").gsub(/\n|\\n|\\l/,'')
|
|
|
|
|
system_data[:distro] = "gentoo"
|
|
|
|
|
system_data[:version] = version
|
|
|
|
|
else
|
|
|
|
|
|
|
|
|
|
# Others
|
|
|
|
|
version = read_file("/etc/issue").gsub(/\n|\\n|\\l/,'')
|
|
|
|
|
system_data[:distro] = "linux"
|
|
|
|
|
system_data[:version] = version
|
|
|
|
|
end
|
|
|
|
|
return system_data
|
|
|
|
|
end
|
2011-06-02 22:21:28 +00:00
|
|
|
|
|
|
|
|
|
2011-06-01 22:48:55 +00:00
|
|
|
end # System
|
2012-08-23 23:57:55 -04:00
|
|
|
end # Linux
|
2011-06-01 22:48:55 +00:00
|
|
|
end # Post
|
|
|
|
|
end # Msf
|