Land #6502, add -x flag for showing extended sessions info
commit
1e58b1574a
|
@ -524,18 +524,18 @@ class ReadableText
|
|||
def self.dump_sessions(framework, opts={})
|
||||
ids = (opts[:session_ids] || framework.sessions.keys).sort
|
||||
verbose = opts[:verbose] || false
|
||||
show_extended = opts[:show_extended] || false
|
||||
indent = opts[:indent] || DefaultIndent
|
||||
col = opts[:col] || DefaultColumnWrap
|
||||
|
||||
return dump_sessions_verbose(framework, opts) if verbose
|
||||
|
||||
columns =
|
||||
[
|
||||
'Id',
|
||||
'Type',
|
||||
'Information',
|
||||
'Connection'
|
||||
]
|
||||
columns = []
|
||||
columns << 'Id'
|
||||
columns << 'Type'
|
||||
columns << 'Checkin?' if show_extended
|
||||
columns << 'Information'
|
||||
columns << 'Connection'
|
||||
|
||||
tbl = Rex::Ui::Text::Table.new(
|
||||
'Indent' => indent,
|
||||
|
@ -551,10 +551,21 @@ class ReadableText
|
|||
sinfo = sinfo[0,77] + "..."
|
||||
end
|
||||
|
||||
row = [ session.sid.to_s, session.type.to_s, sinfo, session.tunnel_to_s + " (#{session.session_host})" ]
|
||||
if session.respond_to? :platform
|
||||
row[1] << (" " + session.platform)
|
||||
row = []
|
||||
row << session.sid.to_s
|
||||
row << session.type.to_s
|
||||
row[-1] << (" " + session.platform) if session.respond_to?(:platform)
|
||||
|
||||
if show_extended
|
||||
if session.respond_to?(:last_checkin) && session.last_checkin
|
||||
row << "#{(Time.now.to_i - session.last_checkin.to_i)}s ago"
|
||||
else
|
||||
row << '?'
|
||||
end
|
||||
end
|
||||
|
||||
row << sinfo
|
||||
row << session.tunnel_to_s + " (#{session.session_host})"
|
||||
|
||||
tbl << row
|
||||
}
|
||||
|
|
|
@ -38,14 +38,15 @@ class Core
|
|||
"-h" => [ false, "Help banner" ],
|
||||
"-i" => [ true, "Interact with the supplied session ID " ],
|
||||
"-l" => [ false, "List all active sessions" ],
|
||||
"-v" => [ false, "List verbose fields" ],
|
||||
"-v" => [ false, "List sessions in verbose mode" ],
|
||||
"-q" => [ false, "Quiet mode" ],
|
||||
"-k" => [ true, "Terminate sessions by session ID and/or range" ],
|
||||
"-K" => [ false, "Terminate all sessions" ],
|
||||
"-s" => [ true, "Run a script on the session given with -i, or all" ],
|
||||
"-r" => [ false, "Reset the ring buffer for the session given with -i, or all" ],
|
||||
"-u" => [ true, "Upgrade a shell to a meterpreter session on many platforms" ],
|
||||
"-t" => [ true, "Set a response timeout (default: 15)"])
|
||||
"-t" => [ true, "Set a response timeout (default: 15)" ],
|
||||
"-x" => [ false, "Show extended information in the session table" ])
|
||||
|
||||
@@jobs_opts = Rex::Parser::Arguments.new(
|
||||
"-h" => [ false, "Help banner." ],
|
||||
|
@ -1759,6 +1760,7 @@ class Core
|
|||
begin
|
||||
method = nil
|
||||
quiet = false
|
||||
show_extended = false
|
||||
verbose = false
|
||||
sid = nil
|
||||
cmds = []
|
||||
|
@ -1779,6 +1781,8 @@ class Core
|
|||
when "-c"
|
||||
method = 'cmd'
|
||||
cmds << val if val
|
||||
when "-x"
|
||||
show_extended = true
|
||||
when "-v"
|
||||
verbose = true
|
||||
# Do something with the supplied session identifier instead of
|
||||
|
@ -2041,7 +2045,7 @@ class Core
|
|||
end
|
||||
when 'list',nil
|
||||
print_line
|
||||
print(Serializer::ReadableText.dump_sessions(framework, :verbose => verbose))
|
||||
print(Serializer::ReadableText.dump_sessions(framework, :show_extended => show_extended, :verbose => verbose))
|
||||
print_line
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue