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.



1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
# File 'lib/msf/core/post/file.rb', line 1275

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.



1273
1274
1275
# File 'lib/msf/core/post/file.rb', line 1273

def stathash
  @stathash
end