Class: Msf::Post::File::FileStat

Inherits:
Rex::Post::FileStat show all
Defined in:
lib/msf/core/post/file.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Rex::Post::FileStat

#atime, #blksize, #blockdev?, #blocks, #chardev?, #ctime, #dev, #directory?, #executable?, #executable_real?, #file?, #filetype?, #ftype, #gid, #grpowned?, #ino, #mode, #mtime, #nlink, #owned?, #perm?, #pipe?, #pretty, #prettymode, #rdev, #readable?, #readable_real?, #setgid?, #setuid?, #size, #socket?, #sticky?, #symlink?, #uid, #update, #update32, #writeable?, #writeable_real?

Constructor Details

#initialize(filename, session) ⇒ FileStat

Returns a new instance of FileStat.



1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
# File 'lib/msf/core/post/file.rb', line 1205

def initialize(filename, session)
  data = session.shell_command_token(
    "stat --format='%d,%i,%h,%u,%g,%t,%s,%B,%o,%X,%Y,%Z,%f' '#{filename}'"
  ).to_s.chomp

  unless data =~ /(\d+,){12}\w+/
    data = session.shell_command_token(
      "stat -f '%d,%i,%l,%u,%g,%r,%z,%k,%b,%a,%m,%c,%p' '#{filename}'"
    ).to_s.chomp
  end

  raise "stat command returned an unexpected result: #{data}" unless data =~ /(\d+,){12}\w+/

  data = data.split(',')

  @stathash = {}
  @stathash['st_dev']     = data[0].to_i
  @stathash['st_ino']     = data[1].to_i
  @stathash['st_nlink']   = data[2].to_i
  @stathash['st_uid']     = data[3].to_i
  @stathash['st_gid']     = data[4].to_i
  @stathash['st_rdev']    = data[5].to_i
  @stathash['st_size']    = data[6].to_i
  @stathash['st_blksize'] = data[7].to_i
  @stathash['st_blocks']  = data[8].to_i
  @stathash['st_atime']   = data[9].to_i
  @stathash['st_mtime']   = data[10].to_i
  @stathash['st_ctime']   = data[11].to_i
  @stathash['st_mode']    = data[12].to_i(16)
end

Instance Attribute Details

#stathashObject

Returns the value of attribute stathash.



1203
1204
1205
# File 'lib/msf/core/post/file.rb', line 1203

def stathash
  @stathash
end