@@ -11,7 +11,6 @@ class Metasploit3 < Msf::Post
11
11
include Msf ::Post ::File
12
12
include Msf ::Post ::Linux ::System
13
13
14
-
15
14
def initialize ( info = { } )
16
15
super ( update_info ( info ,
17
16
'Name' => 'Linux Gather System and User Information' ,
@@ -53,13 +52,15 @@ def run
53
52
users = execute ( "/bin/cat /etc/passwd | cut -d : -f 1" )
54
53
user = execute ( "/usr/bin/whoami" )
55
54
55
+ print_good ( "\t Module running as \" #{ user } \" user" )
56
+
56
57
installed_pkg = get_packages ( distro [ :distro ] )
57
58
installed_svc = get_services ( distro [ :distro ] )
58
59
59
60
mount = execute ( "/bin/mount -l" )
60
61
crons = get_crons ( users , user )
61
62
diskspace = execute ( "/bin/df -ahT" )
62
- disks = ( mount +"\n \/ " + diskspace )
63
+ disks = ( mount + "\n \/ " + diskspace )
63
64
logfiles = execute ( "find /var/log -type f -perm -4 2> /dev/null" )
64
65
uidgid = execute ( "find / -xdev -type f -perm +6000 -perm -1 2> /dev/null" )
65
66
@@ -71,7 +72,6 @@ def run
71
72
save ( "Disk info" , disks )
72
73
save ( "Logfiles" , logfiles )
73
74
save ( "Setuid/setgid files" , uidgid )
74
-
75
75
end
76
76
77
77
@@ -107,16 +107,17 @@ def cat_file(filename)
107
107
end
108
108
109
109
def get_packages ( distro )
110
- packages_installed = nil
111
- if distro =~ /fedora|redhat|suse|mandrake|oracle|amazon/
110
+ packages_installed = ""
111
+ case distro
112
+ when /fedora|redhat|suse|mandrake|oracle|amazon/
112
113
packages_installed = execute ( "rpm -qa" )
113
- elsif distro =~ /slackware/
114
- packages_installed = execute ( "ls /var/log/packages" )
115
- elsif distro =~ /ubuntu|debian/
116
- packages_installed = execute ( "dpkg -l" )
117
- elsif distro =~ /gentoo/
114
+ when /slackware/
115
+ packages_installed = execute ( "/bin/ ls /var/log/packages" )
116
+ when /ubuntu|debian/
117
+ packages_installed = execute ( "/usr/bin/ dpkg -l" )
118
+ when /gentoo/
118
119
packages_installed = execute ( "equery list" )
119
- elsif distro =~ /arch/
120
+ when /arch/
120
121
packages_installed = execute ( "/usr/bin/pacman -Q" )
121
122
else
122
123
print_error ( "Could not determine package manager to get list of installed packages" )
@@ -126,46 +127,47 @@ def get_packages(distro)
126
127
127
128
def get_services ( distro )
128
129
services_installed = ""
129
- if distro =~ /fedora|redhat|suse|mandrake|oracle|amazon/
130
+ case distro
131
+ when /fedora|redhat|suse|mandrake|oracle|amazon/
130
132
services_installed = execute ( "/sbin/chkconfig --list" )
131
- elsif distro =~ /slackware/
133
+ when /slackware/
132
134
services_installed << "\n Enabled:\n *************************\n "
133
135
services_installed << execute ( "ls -F /etc/rc.d | /bin/grep \' *$\' " )
134
136
services_installed << "\n \n Disabled:\n *************************\n "
135
137
services_installed << execute ( "ls -F /etc/rc.d | /bin/grep \' [a-z0-9A-z]$\' " )
136
- elsif distro =~ /ubuntu|debian/
137
- services_installed = execute ( "/usr/bin /service --status-all" )
138
- elsif distro =~ /gentoo/
138
+ when /ubuntu|debian/
139
+ services_installed = execute ( "/usr/sbin /service --status-all" )
140
+ when /gentoo/
139
141
services_installed = execute ( "/bin/rc-status --all" )
140
- elsif distro =~ /arch/
141
- services_installed = execute ( "/bin/egrep '^DAEMONS' /etc/rc.conf" )
142
+ when /arch/
143
+ services_installed = execute ( "/bin/grep '^DAEMONS' /etc/rc.conf" )
142
144
else
143
- print_error ( "Could not determine the Linux Distribution to get list of configured services" )
145
+ print_error ( "Could not determine the Linux Distribuition to get list of configured services" )
144
146
end
145
147
return services_installed
146
148
end
147
149
148
150
def get_crons ( users , user )
149
- if user == "root" and users != nil
151
+ if user == "root" && users != nil
150
152
users = users . chomp . split ( )
151
153
users . each do |u |
152
154
if u == "root"
153
155
vprint_status ( "Enumerating as root" )
154
156
cron_data = ""
155
- users . each do |u |
156
- cron_data += "*****Listing cron jobs for #{ u } *****\n "
157
- cron_data += execute ( "crontab -u #{ u } -l" ) + "\n \n "
157
+ users . each do |usr |
158
+ cron_data += "*****Listing cron jobs for #{ usr } *****\n "
159
+ cron_data += execute ( "crontab -u #{ usr } -l" ) + "\n \n "
158
160
end
159
161
end
160
162
end
161
163
else
162
- vprint_status ( "Enumerating as #{ user } " )
164
+ vprint_status ( "Enumerating as \" #{ user } \" " )
163
165
cron_data = "***** Listing cron jobs for #{ user } *****\n \n "
164
166
cron_data += execute ( "crontab -l" )
165
167
end
166
168
167
169
# Save cron data to loot
168
170
return cron_data
169
-
170
171
end
172
+
171
173
end
0 commit comments